Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | update curl to version 7.69.0 |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
198759586b4f6d88548caf2ad9557b8c |
User & Date: | chw 2020-03-05 06:44:56.041 |
Context
2020-03-07
| ||
09:10 | add tcl upstream changes check-in: af28079f4a user: chw tags: trunk | |
2020-03-05
| ||
06:45 | merge with trunk check-in: 056d8d6828 user: chw tags: wtf-8-experiment | |
06:44 | update curl to version 7.69.0 check-in: 198759586b user: chw tags: trunk | |
06:24 | add tcl upstream changes check-in: c175eb2e69 user: chw tags: trunk | |
Changes
Changes to jni/curl/CHANGES.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| Changelog Version 7.68.0 (8 Jan 2020) Daniel Stenberg (8 Jan 2020) - RELEASE-NOTES: 7.68.0 - THANKS: updated with names from the 7.68.0 release | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 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 159 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 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 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 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 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 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 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 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 | _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| Changelog Version 7.69.0 (4 Mar 2020) Daniel Stenberg (4 Mar 2020) - RELEASE-NOTES: 7.69.0 - THANKS: from 7.69.0 Now sorted case insensitive Marc Hoersken (3 Mar 2020) - ci/tests: fix escaping of testnames and disable proxy for CI APIs Follow up to ada581f and c0d8b96 Closes #5031 Jay Satiro (3 Mar 2020) - cmake: Show HTTPS-proxy in the features output - Show HTTPS-proxy in the features output for those backends that support it: OpenSSL, GnuTLS and NSS. Prior to this change HTTPS-proxy was missing from the cmake features output even if curl was built with it. Only cmake output was affected. Both the library and tool correctly reported the feature. Bug: https://curl.haxx.se/mail/lib-2020-03/0008.html Reported-by: David Lopes Closes https://github.com/curl/curl/pull/5025 Marc Hoersken (3 Mar 2020) - ci/tests: Make it possible to still run but ignore failing tests This enables the development of a solution for the failing tests by running them on CI while ignoring their result for the overall status. Closes #4994 - README.md: add Azure DevOps Pipelines build status badge - ci/tests: Move CI test result creation above environment setup This avoids using our test servers as proxy to the AppVeyor API. Closes #5022 - ci/tests: Send test results to AppVeyor for status overview Closes #5021 Daniel Stenberg (3 Mar 2020) - Revert "sha256: Added SecureTransport implementation" This reverts commit 4feb38deed33fed14ff7c370a6a9153c661dbb9c (from #4956) That commit broke test 1610 on macos builds without TLS. Closes #5027 - dist: include tests/azure.pm in the tarball Bug: https://github.com/curl/curl/commit/ada581f2cc32f48c1629b729707ac19208435b27#commitcomment-37601589 Reported-by: Marcel Raad Steve Holme (3 Mar 2020) - configure.ac: Disable metalink if mbedTLS is specified Follow up to cdcc9df1 and #5006. Even though I mentioned mbedTLS as being one of the backends that metalink needs to be disabled for, I seem to have included it in the list of allowed SSL/TLS backends in comnfigure.ac :( Closes #5013 - sha256: Tidy up following recent changes Reviewed-by: Daniel Stenberg Closes #4956 - sha256: Added WinCrypt implementation - sha256: Added SecureTransport implementation - sha256: Added mbedtls implementation - sha256: Added GNU TLS gcrypt implementation - sha256: Added GNU TLS Nettle implementation Jay Satiro (2 Mar 2020) - curl_escape.3: Add a link to curl_free Ref: https://github.com/curl/curl/pull/5016#issuecomment-593628582 - curl_getenv.3: Fix the memory handling description - Tell the user to call curl_free() to free the pointer returned by curl_getenv(). Prior to this change the user was directed to call free(), but that would not work in cases where the library and application use separate C runtimes and therefore have separate heap memory management. Closes https://github.com/curl/curl/pull/5016 Daniel Stenberg (2 Mar 2020) - [Nick Zitzmann brought this change] md4: use init/update/final functions in Secure Transport We can use CC_MD4_Init/Update/Final without having to allocate memory directly. Closes #4979 Marc Hoersken (2 Mar 2020) - ci/tests: some MacOS builds randomly take longer than 20min Daniel Stenberg (2 Mar 2020) - multi_wait: stop loop when sread() returns zero It's unclear why it would ever return zero here, but this change fixes Robert's problem and it shouldn't loop forever... Reported-by: Robert Dunaj Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html Closes #5019 - http: mark POSTs with no body as "upload done" from the start As we have logic that checks if we get a >= 400 reponse code back before the upload is done, which then got confused since it wasn't "done" but yet there was no data to send! Reported-by: IvanoG on github Fixes #4996 Closes #5002 - tests: disable 962, 963 and 964 on Windows These tests are also doing UTF-8 SMTP. Follow-up to df207d2dd93b9e73 Marc Hoersken (2 Mar 2020) - ci/tests: fine-tune Azure Pipeline timeouts with a small puffer Daniel Stenberg (2 Mar 2020) - configure: bump the AC_COPYRIGHT year range - [Steve Holme brought this change] tests: disable SMTP UTF-8 tests on Windows Fixes #4988 Closes #4992 - formdata/mime: copyright year range update Due to the merge/revert cycle - Revert "mime: latch last read callback status." This reverts commit 87869e38d7afdec3ef1bb4965711458b088e254f. Fixes #5014 Closes #5015 Reopens #4833 - Revert "mime: do not perform more than one read in a row" This reverts commit ed0f357f7d25566110d4302f33759f4ffb5a6f83. - Revert "mime: fix the binary encoder to handle large data properly" This reverts commit b2caaa0681f329eed317ffb6ae6927f4a539f0c1. - altsvc: both h3 backends now speak h3-27 ... also updated the HTTP3 build description for ngtcp2 accordingly. - [Patrick Monnerat brought this change] mime: fix the binary encoder to handle large data properly New test 666 checks this is effective. As upload buffer size is significant in this kind of tests, shorten it in similar test 652. Fixes #4860 Reported-by: RuurdBeerstra on github - [Patrick Monnerat brought this change] mime: do not perform more than one read in a row Input buffer filling may delay the data sending if data reads are slow. To overcome this problem, file and callback data reads do not accumulate in buffer anymore. All other data (memory data and mime framing) are considered as fast and still concatenated in buffer. As this may highly impact performance in terms of data overhead, an early end of part data check is added to spare a read call. When encoding a part's data, an encoder may require more bytes than made available by a single read. In this case, the above rule does not apply and reads are performed until the encoder is able to deliver some data. Tests 643, 644, 645, 650 and 654 have been adapted to the output data changes, with test data size reduced to avoid the boredom of long lists of 1-byte chunks in verification data. New test 664 checks mimepost using single-byte read callback with encoder. New test 665 checks the end of part data early detection. Fixes #4826 Reported-by: MrdUkk on github - [Patrick Monnerat brought this change] mime: latch last read callback status. In case a read callback returns a status (pause, abort, eof, error) instead of a byte count, drain the bytes read so far but remember this status for further processing. Takes care of not losing data when pausing, and properly resume a paused mime structure when requested. New tests 670-673 check unpausing cases, with easy or multi interface and mime or form api. Fixes #4813 Reported-by: MrdUkk on github Closes #4833 Steve Holme (1 Mar 2020) - unit1651: Fixed conversion compilation warning 371:17: warning: conversion to 'unsigned char' from 'int' may alter its value [-Wconversion] Closes #5008 - configure.ac: Disable metalink support if an incompatible SSL/TLS specified tool_metalink only supports cryptography from OpenSSL, GnuTLS, NSS, The Win32 Crypto library and Apple's Common Crypto library. If an TLS backend such as mbedTLS or WolfSSL is specified then the following error is given during compilation along, with a load of unresolved extern errors: Can't compile METALINK support without a crypto library. Reviewed-by: Daniel Stenberg Closes #5006 Marc Hoersken (1 Mar 2020) - ci/tests: Update Azure DevOps pipeline job display names Make the configure step more descriptive and align others. - ci/tests: Fix typo in previous commit 597cf2 - ci/tests: Make sure that the AZURE_ACCESS_TOKEN is available For security reasons the access token is not available to PR builds. Therefore we should not try to use the DevOps API with an empty token. Daniel Stenberg (1 Mar 2020) - build: remove all HAVE_OPENSSL_ENGINE_H defines ... as there's nothing in the code that actually uses the define! The last reference was removed in 38203f158. Closes #5007 Jay Satiro (29 Feb 2020) - [Rolf Eike Beer brought this change] CMake: clean up and improve build procedures - remove check for unsupported old CMake versions - do not link to c-ares library twice - modernize custom Find modules - FindLibSSH2: - pass version to FPHSA to show it in the output - use LIBSSH2_VERSION define to extract the version number in one shot. This variable exists in the header for 10 years. - remove unneeded code - FindNGHTTP2.cmake: - drop needless FPHSA argument - mark found variables as advanced - FindNSS.cmake: - show version number - FindCARES.cmake: - drop default paths - use FPHSA instead of checking things by hand - remove needless explict variable dereference - simplify count_true() - allow all policies up to version 3.16 to be set to NEW - do not rerun check for -Wstrict-aliasing=3 every time In contrast to every other compiler flag this has a = in it, which CMake can't have in a variable name. - only read the interesting strings from curlver.h Reviewed-by: Peter Wu Closes https://github.com/curl/curl/pull/4975 - runtests: fix output to command log - Record only the command of the most recently ran test in the command log. This is a follow-up to 02988b7 from several weeks ago which fixed writing to the command log, however it saved all commands for all tests instead of just the most recently ran test as we would now expect. Fixes https://github.com/curl/curl/commit/02988b7#commitcomment-37546876 Closes https://github.com/curl/curl/pull/5001 Steve Holme (1 Mar 2020) - polarssl: Additional removal Follow up to 6357a19f. Reviewed-by: Daniel Stenberg Closes #5004 - [Jonathan Cardoso Machado brought this change] docs: fix typo on CURLINFO_RETRY_AFTER - alwaus -> always Reviewed-by: Steve Holme Closes #5005 - md5: Added implementation for mbedTLS Reviewed-by: Jay Satiro Closes #4980 - md5: Use pointer notation for array parameters in GnuTLS implementation - md4: Use non-deprecated functions in mbedTLS >= 2.7.0 Closes #4983 Marc Hoersken (29 Feb 2020) - ci/tests: Send test results to Azure DevOps for reporting Daniel Stenberg (29 Feb 2020) - pause: force-drain the transfer on unpause ... since the socket might not actually be readable anymore when for example the data is already buffered in the TLS layer. Fixes #4966 Reported-by: Anders Berg Closes #5000 - TODO: curl --proxycommand Suggested-by: Kristian Mide Closes #4941 - smtp: overwriting 'from' leaks memory Detected by Coverity. CID 1418139. Also, make sure to return error if the new 'from' allocation fails. Closes #4997 - CIfuzz: switch off 'dry_run' mode Follow-up from #4960: now make it fail if it detects problems. Closes #4998 Marc Hoersken (28 Feb 2020) - ci/tests: Increase timeouts of Windows builds due to new tests Recently added tests increased their runtime above the limit of 60min. - ci/tests: align Azure Pipeline job names with each other - ci/tests: Add Windows builds via Azure Pipelines using Docker - tests: fix Python 3 compatibility of smbserver.py Daniel Stenberg (27 Feb 2020) - runtests: restore the command log The log file with all command lines for the invoked command lines is now called logs/commands.log Fixes #4911 Closes #4989 - smtp: fix memory leak on exit path Detected by Coverity. CID 1418139. "leaked_storage: Variable 'from' going out of scope leaks the storage it points to" Closes #4990 Steve Holme (27 Feb 2020) - gtls: Fixed compilation when using GnuTLS < 3.5.0 Reverts the functionality from 41fcb4f when compiling with GnuTLS older than 3.5.0. Reviewed-by: Daniel Stenberg Closes #4984 - RELEASE-NOTES: Corrected the link to issue #4892 Daniel Stenberg (27 Feb 2020) - Curl_is_ASCII_name: handle a NULL argument Make the function tolerate a NULL pointer input to avoid dereferencing that pointer. Follow-up to efce3ea5a85126d Detected by OSS-Fuzz Reviewed-By: Steve Holme Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20907 Fixes #4985 Closes #4986 - RELEASE-NOTES: synced - http2: make pausing/unpausing set/clear local stream window This reduces the HTTP/2 window size to 32 MB since libcurl might have to buffer up to this amount of data in memory and yet we don't want it set lower to potentially impact tranfer performance on high speed networks. Requires nghttp2 commit b3f85e2daa629 (https://github.com/nghttp2/nghttp2/pull/1444) to work properly, to end up in the next release after 1.40.0. Fixes #4939 Closes #4940 - [Anderson Toshiyuki Sasaki brought this change] libssh: improve known hosts handling Previously, it was not possible to get a known hosts file entry due to the lack of an API. ssh_session_get_known_hosts_entry(), introduced in libssh-0.9.0, allows libcurl to obtain such information and behave the same as when compiled with libssh2. This also tries to avoid the usage of deprecated functions when the replacements are available. The behaviour will not change if versions older than libssh-0.8.0 are used. Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Fixes #4953 Closes #4962 Steve Holme (27 Feb 2020) - tests: Automatically deduce the tool name from the test case for unit tests It is still possible to override the executable to run during the test, using the <tool> tag, but this patch removes the requirement that the tag must be present for unit tests. It also removes the possibility of human error when existing test cases are used as the basis for new tests, as recently witnessed in 81c37124. Reviewed-by: Daniel Stenberg Closes #4976 - test1323: Added the missing 'unit test' feature requirement in the test case Daniel Stenberg (26 Feb 2020) - cookie: remove unnecessary check for 'out != 0' ... as it will always be non-NULL at this point. Detected by Coverity: CID 1459009 - http: added 417 response treatment When doing a request with a body + Expect: 100-continue and the server responds with a 417, the same request will be retried immediately without the Expect: header. Added test 357 to verify. Also added a control instruction to tell the sws test server to not read the request body if Expect: is present, which the new test 357 uses. Reported-by: bramus on github Fixes #4949 Closes #4964 Steve Holme (26 Feb 2020) - smtp: Tidy up, following recent changes, to maintain the coding style Closes #4892 - smtp: Support the SMTPUTF8 extension for the EXPN command Simply notify the server we support the SMTPUTF8 extension if it does. - smtp: Support the SMTPUTF8 extension in the VRFY command - smtp: Support the SMTPUTF8 extension in the RCPT TO command Note: The RCPT TO command isn't required to advertise to the server that it contains UTF-8 characters, instead the server is told that a mail may contain UTF-8 in any envelope command via the MAIL command. - smtp: Support the SMTPUTF8 extension in the MAIL command Support the SMTPUTF8 extension when sending mailbox information in the MAIL command (FROM and AUTH parameters). Non-ASCII domain names will be ACE encoded, if IDN is supported, whilst non-ASCII characters in the local address part are passed to the server. Reported-by: ygthien on github Fixes #4828 - smtp: Detect server support for the UTF-8 extension as defined in RFC-6531 - smtp: Support UTF-8 based host names in the VRFY command - smtp: Support UTF-8 based host names in the RCPT TO command - smtp: Support UTF-8 based host names in the MAIL command Non-ASCII host names will be ACE encoded if IDN is supported. - url: Make the IDN conversion functions available to others - smtp: Added UTF-8 mailbox tests to verify existing behaviour - ftpserver: Updated VRFY_smtp() so the response isn't necessary in the test case - ftpserver: Corrected the e-mail address regex in MAIL_smtp() and RCTP_smtp() The dot character between the host and the tld was not being escaped, which meant it specified a match of 'any' character rather than an explicit dot separator. Additionally removed the dot character from the host name as it allowed the following to be specified as a valid address in our test cases: <bad@example......com> Both are typos from 98f7ca7 and 8880f84 :( I can't remember whether my intention was to allow sub-domains to be specified in the host or not with these additional dots, but by placing it outside of the host means it can only be specified once per domain and by placing a + after the new grouping support for sub-domains is kept. Closes #4912 - hmac: Added a unit test for the HMAC hash generation Closes #4973 - ntlm: Moved the HMAC MD5 function into the HMAC module as a generic function - tests: Added a unit test for MD4 digest generation Closes #4970 - md4: Use const for the length input parameter This keeps the interface the same as md5 and sha256. - test1610: Fixed the link to the unit test Typo from 81c37124. - ntlm: Removed the dependency on the TLS libaries when using MD5 As we have our own MD5 implementation use the MD5 wrapper to remove the TLS dependency. Closes #4967 - md5/sha256: Updated the functions to allow non-string data to be hashed - digest: Corrected the name of the local HTTP digest function Follow up to 2b5b37cb. Local static functions do not require the Curl prefix. - tests: Added a unit test for SHA256 digest generation Follow up to 2b5b37c. Closes #4968 - md4: Fixed compilation issues when using GNU TLS gcrypt * Don't include 'struct' in the gcrypt MD4_CTX typedef * The call to gcry_md_read() should use a dereferenced ctx * The call to gcry_md_close() should use a dereferenced ctx Additional minor whitespace issue in the USE_WIN32_CRYPTO code. Closes #4959 Daniel Stenberg (21 Feb 2020) - RELEASE-NOTES: synced - http2: now require nghttp2 >= 1.12.0 To simplify our code and since earlier versions lack important function calls libcurl needs to function correctly. nghttp2 1.12.0 was relased on June 26, 2016. Closes #4961 - gtls: fix the copyright year Follow-up from 41fcb4f609 - [jethrogb brought this change] GnuTLS: Always send client cert TLS servers may request a certificate from the client. This request includes a list of 0 or more acceptable issuer DNs. The client may use this list to determine which certificate to send. GnuTLS's default behavior is to not send a client certificate if there is no match. However, OpenSSL's default behavior is to send the configured certificate. The `GNUTLS_FORCE_CLIENT_CERT` flag mimics OpenSSL behavior. Authored-by: jethrogb on github Fixes #1411 Closes #4958 - [Leo Neat brought this change] github action: add CIFuzz Closes #4960 - cleanup: comment typos Spotted by 'codespell' Closes #4957 Steve Holme (20 Feb 2020) - win32: USE_WIN32_CRYPTO to enable Win32 based MD4, MD5 and SHA256 functions Whilst lib\md4.c used this pre-processor, lib\md5.c and src\tool_metalink.c did not and simply relied on the WIN32 pre-processor directive. Reviewed-by: Marcel Raad Closes #4955 Daniel Stenberg (19 Feb 2020) - connect: remove some spurious infof() calls As they were added primarily for debugging, they provide little use for users. Closes #4951 - HTTP-COOKIES: mention that a trailing newline is required ... so that we know we got the whole and not a partial line. Also, changed the formatting of the fields away from a table again since the table format requires a github-markdown tool version that we don't run on the web server atm. Reported-by: Sunny Bean Fixes #4946 Closes #4947 - nit: Copyright year out of date Follow-up to 1fc0617dcc Jay Satiro (18 Feb 2020) - tool_util: Improve Windows version of tvnow() - Change tool_util.c tvnow() for Windows to match more closely to timeval.c Curl_now(). - Create a win32 init function for the tool, since some initialization is required for the tvnow() changes. Prior to this change the monotonic time function used by curl in Windows was determined at build-time and not runtime. That was a problem because when curl was built targeted for compatibility with old versions of Windows (eg _WIN32_WINNT < 0x0600) it would use GetTickCount which wraps every 49.7 days that Windows has been running. This change makes curl behave similar to libcurl's tvnow function, which determines at runtime whether the OS is Vista+ and if so calls QueryPerformanceCounter instead. (Note QueryPerformanceCounter is used because it has higher resolution than the more obvious candidate GetTickCount64). The changes to tvnow are basically a copy and paste but the types in some cases are different. Ref: https://github.com/curl/curl/issues/3309 Closes https://github.com/curl/curl/pull/4847 Daniel Stenberg (18 Feb 2020) - SOCKS: fix typo in printf formatting Follow-up to 4a4b63daa Reported-by: Peter Piekarski Bug: https://github.com/curl/curl/commit/4a4b63daaa01ef59b131d91e8e6e6dfe275c0f08#r37351330 - CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section to be in sync with the description above Reported-by: Joonas Kuorilehto Fixes #4943 Closes #4945 - docs/GOVERNANCE: refreshed + added "donations" and "commercial support" - altsvc: make saving the cache an atomic operation ... by writing the file to temp name then rename to the final when done. Assisted-by: Jay Satiro Fixes #4936 Closes #4942 - rename: a new file for Curl_rename() And make the cookie save function use it. - cookies: make saving atomic with a rename Saves the file as "[filename].[8 random hex digits].tmp" and renames away the extension when done. Co-authored-by: Jay Satiro Reported-by: Mike Frysinger Fixes #4914 Closes #4926 - RELEASE-NOTES: synced - socks: make the connect phase non-blocking Removes two entries from KNOWN_BUGS. Closes #4907 - multi: if Curl_readwrite sets 'comeback' use expire, not loop Otherwise, a very fast single transfer ricks starving out other concurrent transfers. Closes #4927 - ftp: convert 'sock_accepted' to a plain boolean This was an array indexed with sockindex but it was only ever used for the secondary socket. Closes #4929 Jay Satiro (15 Feb 2020) - CURLINFO_COOKIELIST.3: Fix example Prior to this change the example would try to import cookies from stdin, which wasn't what was intended. Reported-by: 3dyd@users.noreply.github.com Fixes https://github.com/curl/curl/issues/4930 Daniel Stenberg (14 Feb 2020) - TODO: Paged searches on LDAP server Closes #4452 - TODO: CURLOPT_SSL_CTX_FUNCTION for LDAPS Closes #4108 - azure: disable brotli on the macos debug-builds Because of: brotli/decode.h:204:33: error: variable length array used [-Werror,-Wvla] const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)], Closes #4925 Steve Holme (13 Feb 2020) - tool_home: Fix the copyright year being out of date Follow up to 9dc350b6. Jay Satiro (12 Feb 2020) - tool_homedir: Change GetEnv() to use libcurl's curl_getenv() - Deduplicate GetEnv() code. - On Windows change ultimate call to use Windows API GetEnvironmentVariable() instead of C runtime getenv(). Prior to this change both libcurl and the tool had their own GetEnv which over time diverged. Now the tool's GetEnv is a wrapper around curl_getenv (libcurl API function which is itself a wrapper around libcurl's GetEnv). Furthermore this change fixes a bug in that Windows API GetEnvironmentVariable() is called instead of C runtime getenv() to get the environment variable since some changes aren't always visible to the latter. Reported-by: Christoph M. Becker Fixes https://github.com/curl/curl/issues/4774 Closes https://github.com/curl/curl/pull/4863 Daniel Stenberg (12 Feb 2020) - strerror.h: Copyright year out of date Follow-up to 1c4fa67e8a8fcf6 Jay Satiro (12 Feb 2020) - strerror: Increase STRERROR_LEN 128 -> 256 STRERROR_LEN is the constant used throughout the library to set the size of the buffer on the stack that the curl strerror functions write to. Prior to this change some extended length Windows error messages could be truncated. Closes https://github.com/curl/curl/pull/4920 - multi: fix outdated comment - Do not say that conn->data is "cleared" by multi_done(). If the connection is in use then multi_done assigns another easy handle still using the connection to conn->data, therefore in that case it is not cleared. Closes https://github.com/curl/curl/pull/4901 - easy: remove dead code multi is already assigned to data->multi by curl_multi_add_handle. Closes https://github.com/curl/curl/pull/4900 Daniel Stenberg (12 Feb 2020) - create-dirs.d: mention the mode Reported-by: Dan Jacobson Fixes #4766 Closes #4916 - CURLOPT_ALTSVC_CTRL.3: fix the DEFAULT wording Assisted-by: Jay Satiro Reported-by: Craig Andrews Fixes #4909 Closes #4910 - RELEASE-NOTES: synced Steve Holme (9 Feb 2020) - smtp: Simplify the MAIL command and avoid a duplication of send strings This avoids the duplication of strings when the optional AUTH and SIZE parameters are required. It also assists with the modifications that are part of #4892. Closes #4903 Daniel Stenberg (9 Feb 2020) - altsvc: keep a copy of the file name to survive handle reset The alt-svc cache survives a call to curl_easy_reset fine, but the file name to use for saving the cache was cleared. Now the alt-svc cache has a copy of the file name to survive handle resets. Added test 1908 to verify. Reported-by: Craig Andrews Fixes #4898 Closes #4902 Steve Holme (9 Feb 2020) - url: Include the failure reason when curl_win32_idn_to_ascii() fails Provide the failure reason in the failf() info just as we do for the libidn2 version of code. Closes #4899 Jay Satiro (9 Feb 2020) - asyn-thread: remove dead code Daniel Stenberg (8 Feb 2020) - [Emil Engler brought this change] github: Instructions to post "uname -a" on Unix systems in issues Closes #4896 - [Cristian Greco brought this change] configure.ac: fix comments about --with-quiche A simple s/nghttp3/quiche in some comments of --with-quiche. Looks like a copy-paste error from --with-nghttp3. Closes #4897 Steve Holme (7 Feb 2020) - checksrc.bat: Fix not being able to run script from the main curl directory If the script was ran from the main curl directory rather then the projects directory then the script would simply exit without error: C:\url> projects\checksrc.bat The user would either need to change to the projects directory, explicitly specify the current working directory, or perform a oneline hacky workaround: C:\url> cd projects C:\url\projects> checksrc.bat C:\url> checksrc.bat %cd% C:\url> pushd projects & checksrc.bat & popd Closes #4894 Daniel Stenberg (7 Feb 2020) - [Pierre-Yves Bigourdan brought this change] digest: Do not quote algorithm in HTTP authorisation RFC 7616 section 3.4 (The Authorization Header Field) states that "For historical reasons, a sender MUST NOT generate the quoted string syntax for the following parameters: algorithm, qop, and nc". This removes the quoting for the algorithm parameter. Reviewed-by: Steve Holme Closes #4890 - ftp: remove the duplicated user/password struct fields Closes #4887 - ftp: remove superfluous checking for crlf in user or pwd ... as this is already done much earlier in the URL parser. Also add test case 894 that verifies that pop3 with an encodedd CR in the user name is rejected. Closes #4887 Steve Holme (6 Feb 2020) - ntlm_wb: Use Curl_socketpair() for greater portability Reported-by: Daniel Stenberg Closes #4886 Daniel Stenberg (5 Feb 2020) - [Frank Gevaerts brought this change] contributors: Also include people who contributed to curl-www Closes #4884 - [Frank Gevaerts brought this change] contrithanks: Use the most recent tag by default (similar to 5296abe) Closes #4883 - scripts: use last set tag if none given Makes 'delta' and 'contributors.sh' easier to use. Make the delta script invoke contrithanks to get current number of contributors instead of counting THANKS, for accuracy. Closes #4881 - ftp: shrink temp buffers used for PORT These two stack based buffers only need to be 46 + 66 bytes instead of 256 + 1024. Closes #4880 - curl: error on --alt-svc use w/o support Make the tool check for alt-svc support at run-time and return error accordingly if not present when the option is used. Reported-by: Harry Sintonen Closes #4878 - docs/HTTP3: add --enable-alt-svc to curl's configure - RELEASE-PROCEDURE: feature win is closed post-release a few days We've tried to uphold this already but let's make it official by publicly stating this is the way we do it. Closes #4877 - altsvc: set h3 version at a common single spot ... and move the #ifdefs out of the functions. Addresses the fact they were different before this change. Reported-by: Harry Sintonen Closes #4876 - [Harry Sintonen brought this change] altsvc: improved header parser - Fixed the flag parsing to apply to specific alternative entry only, as per RFC. The earlier code would also get totally confused by multiprotocol header, parsing flags from the wrong part of the header. - Fixed the parser terminating on unknown protocols, instead of skipping them. - Fixed a busyloop when protocol-id was present without an equal sign. Closes #4875 - [Harry Sintonen brought this change] ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6 - docs/HTTP3: update the OpenSSL branch to use for ngtcp2 Reported-by: James Fuller Steve Holme (4 Feb 2020) - ntlm: Pass the Curl_easy structure to the private winbind functions ...rather than the full conndata structure. Daniel Stenberg (4 Feb 2020) - RELEASE-NOTES: synced - tool_operhlp: Copyright year out of date, should be 2020 Follow-up from 2bc373740a3 - [Orgad Shaneh brought this change] curl: avoid using strlen for testing if a string is empty Closes #4873 Steve Holme (3 Feb 2020) - ntlm: Ensure the HTTP header data is not stored in the challenge/response Marcel Raad (3 Feb 2020) - openssl: remove redundant assignment Fixes a scan-build failure on Bionic. Closes https://github.com/curl/curl/pull/4872 - travis: update non-OpenSSL Linux jobs to Bionic For the OpenSSL builds, test 323 [TLS-SRP to non-TLS-SRP server] is failing with "curl returned 52, when expecting 35". Closes https://github.com/curl/curl/pull/4872 Dan Fandrich (3 Feb 2020) - cirrus: Add some missing semicolons Newlines aren't preserved in this section so they're needed to separate commands. The exports luckily worked anyway as a single long line, but erroneously exported a variable called "export" [skip ci] Daniel Gustafsson (2 Feb 2020) - [Pedro Monreal brought this change] cleanup: fix typos and wording in docs and comments Closes #4869 Reviewed-by: Emil Engler and Daniel Gustafsson Steve Holme (2 Feb 2020) - ntlm: Move the winbind data into the NTLM data structure To assist with adding winbind support to the SASL NTLM authentication, move the winbind specific data out of conndata into ntlmdata. Daniel Stenberg (30 Jan 2020) - quiche: Copyright year out of date Follow-up to 7fc63d72333a - altsvc: use h3-25 Closes #4868 - [Alessandro Ghedini brought this change] quiche: update to draft-25 Closes #4867 - ngtcp2: update to git master and its draft-25 support Closes #4865 - cookie: check __Secure- and __Host- case sensitively While most keywords in cookies are case insensitive, these prefixes are specified explicitly to get checked "with a case-sensitive match". (From the 6265bis document in progress) Ref: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-04 Closes #4864 - KNOWN_BUGS: Multiple methods in a single WWW-Authenticate: header - oauth2-bearer.d: works for HTTP too Reported-by: Mischa Salle Bug: https://curl.haxx.se/mail/lib-2020-01/0070.html Closes #4862 - multi_done: if multiplexed, make conn->data point to another transfer ... since the current transfer is being killed. Setting to NULL is wrong, leaving it pointing to 'data' is wrong since that handle might be about to get freed. Fixes #4845 Closes #4858 Reported-by: dmitrmax on github - location.d: the method change is from POST to GET only Not from generic non-GET to GET. Reported-by: Andrius Merkys Ref: #4859 Closes #4861 - urlapi: guess scheme correct even with credentials given In the "scheme-less" parsing case, we need to strip off credentials first before we guess scheme based on the host name! Assisted-by: Jay Satiro Fixes #4856 Closes #4857 - global_init: move the IPv6 works status bool to multi handle Previously it was stored in a global state which contributed to curl_global_init's thread unsafety. This boolean is now instead figured out in curl_multi_init() and stored in the multi handle. Less effective, but thread safe. Closes #4851 - [Jay Satiro brought this change] README: mention that the docs is in docs/ Reported-by: Austin Green Fixes #4830 Closes #4853 - curl.h: define CURL_WIN32 on windows ... so that the subsequent logic below can use a single known define to know when built on Windows (as we don't define WIN32 anymore). Follow-up to 1adebe7886ddf20b Reported-by: crazydef on github Assisted-by: Marcel Raad Fixes #4854 Closes #4855 - RELEASE-NOTES: synced - [Jon Rumsey brought this change] urldata: do string enums without #ifdefs for build scripts ... and check for inconsistencies for OS400 at build time with the new chkstrings tool. Closes #4822 - curl: make the -# spaceship bar not wrap the line The fixed-point math made us lose precision and thus a too high index value could be used for outputting the hashtags which could overwrite the newline. The fix increases the precision in the sine table (*100) and the associated position math. Reported-by: Andrew Potter Fixes #4849 Closes #4850 - global_init: assume the EINTR bit by default - Removed from global_init since it isn't thread-safe. The symbol will still remain to not break compiles, it just won't have any effect going forward. - make the internals NOT loop on EINTR (the opposite from previously). It only risks returning from the select/poll/wait functions early, and that should be risk-free. Closes #4840 - [Peter Piekarski brought this change] conn: do not reuse connection if SOCKS proxy credentials differ Closes #4835 - llist: removed unused Curl_llist_move() (and the corresponding unit test) Closes #4842 - conncache: removed unused Curl_conncache_bundle_size() - strcase: turn Curl_raw_tolower into static Only ever used from within this file. - singleuse.pl: support new API functions, fix curl_dbg_ handling - wolfssh: make it init properly via Curl_ssh_init() Closes #4846 - [Aron Rotteveel brought this change] form.d: fix two minor typos Closes #4843 - openssl: make CURLINFO_CERTINFO not truncate x509v3 fields Avoid "reparsing" the content and instead deliver more exactly what is provided in the certificate and avoid truncating the data after 512 bytes as done previously. This no longer removes embedded newlines. Fixes #4837 Reported-by: bnfp on github Closes #4841 Jay Satiro (23 Jan 2020) - CURLOPT_PROXY_SSL_OPTIONS.3: Sync with CURLOPT_SSL_OPTIONS.3 - Copy CURLOPT_SSL_OPTIONS.3 description to CURLOPT_PROXY_SSL_OPTIONS.3. Prior to this change CURLSSLOPT_NO_PARTIALCHAIN was missing from the CURLOPT_PROXY_SSL_OPTIONS description. Daniel Stenberg (22 Jan 2020) - mk-ca-bundle: add support for CKA_NSS_SERVER_DISTRUST_AFTER For now, no cert in the bundle actually sets a date there... Co-Authored-by: Jay Satiro Reported-by: Christian Heimes Fixes #4834 Closes #4836 - RELEASE-NOTES: synced - [Pavel Volgarev brought this change] smtp: Allow RCPT TO command to fail for some recipients Introduces CURLOPT_MAIL_RCPT_ALLLOWFAILS. Verified with the new tests 3002-3007 Closes #4816 - copyright: fix year ranges follow-up from dea17b519d (one of these days I'll learn to check before I push) - [nao brought this change] http: move "oauth_bearer" from connectdata to Curl_easy Fixes the bug where oauth_bearer gets deallocated when we re-use a connection. Closes #4824 - [Emil Engler brought this change] curl: Let -D merge headers in one file again Closes #4762 Fixes #4753 - data.d: remove "Multiple files can also be specified" It is superfluous and could even be misleading. Bug: https://curl.haxx.se/mail/archive-2020-01/0016.html Reported-by: Mike Norton Closes #4832 Marcel Raad (20 Jan 2020) - CMake: support specifying the target Windows version Previously, it was only possible to set it to Windows Vista or XP by setting the option `ENABLE_INET_PTON` to `ON` resp. `OFF`. Use a new cache variable `CURL_TARGET_WINDOWS_VERSION` to be able to explicitly set the target Windows version. `ENABLE_INET_PTON` is ignored in this case. Ref: https://github.com/curl/curl/pull/1639#issuecomment-313039352 Ref: https://github.com/curl/curl/pull/4607#issuecomment-557541456 Closes https://github.com/curl/curl/pull/4815 Daniel Stenberg (20 Jan 2020) - http.h: Copyright year out of date, should be 2020 Follow-up to 7ff9222ced8c - [加藤郁之 brought this change] HTTP: increase EXPECT_100_THRESHOLD to 1Mb Mentioned: https://curl.haxx.se/mail/lib-2020-01/0050.html Closes #4814 - ROADMAP: thread-safe `curl_global_init()` I'd like to see this happen. - RELEASE-NOTES: synced - wolfssl: use the wc-prefixed symbol alternatives The symbols without wc_ prefix are not always provided. Ref: https://github.com/wolfSSL/wolfssl/issues/2744 Closes #4827 - polarssl: removed As detailed in DEPRECATE.md, the polarssl support is now removed after having been disabled for 6 months and nobody has missed it. The threadlock files used by mbedtls are renamed to an 'mbedtls' prefix instead of the former 'polarssl' and the common functions that previously were shared between mbedtls and polarssl and contained the name 'polarssl' have now all been renamed to instead say 'mbedtls'. Closes #4825 Marcel Raad (16 Jan 2020) - libssh2: fix variable type This led to a conversion warning on 64-bit MinGW, which has 32-bit `long` but 64-bit `size_t`. Closes https://github.com/curl/curl/pull/4823 Daniel Stenberg (16 Jan 2020) - curl:progressbarinit: ignore column width from terminals < 20 To avoid division by zero - or other issues. Reported-by: Daniel Marjamäki Closes #4818 - wolfssh: set the password correctly for PASSWORD auth - wolfssh: remove fprintf() calls (and uses of __func__) Marcel Raad (14 Jan 2020) - CMake: use check_symbol_exists also for inet_pton It doesn't make much sense to only check if the function can be linked when it's not declared in any header and that is treated as an error. With the correct target Windows version set, the function is declared in ws2tcpip.h and the comment above the modified block is invalid. Also, move the definition of `_WIN32_WINNT` up to before all symbol availability checks so that we don't have to care which ones must be done after it. Tested with Visual Studio 2019 and current MinGW-w64. Closes https://github.com/curl/curl/pull/4808 Jay Satiro (13 Jan 2020) - schannel_verify: Fix alt names manual verify for UNICODE builds Follow-up to 29e40a6 from two days ago, which added that feature for Windows 7 and earlier. The bug only occurred in same. Ref: https://github.com/curl/curl/pull/4761 Daniel Stenberg (13 Jan 2020) - HTTP-COOKIES.md: describe the cookie file format ... and refer to that file from from CURLOPT_COOKIEFILE.3 and CURLOPT_COOKIELIST.3 Assisted-by: Jay Satiro Reported-by: bsammon on github Fixes #4805 Closes #4806 - [Tobias Hieta brought this change] CMake: Add support for CMAKE_LTO option. This enables Link Time Optimization. LTO is a proven technique for optimizing across compilation units. Closes #4799 - RELEASE-NOTES: synced - ConnectionExists: respect the max_concurrent_streams limits A regression made the code use 'multiplexed' as a boolean instead of the counter it is intended to be. This made curl try to "over-populate" connections with new streams. This regression came with 41fcdf71a1, shipped in curl 7.65.0. Also, respect the CURLMOPT_MAX_CONCURRENT_STREAMS value in the same check. Reported-by: Kunal Ekawde Fixes #4779 Closes #4784 - curl: make #0 not output the full URL It was not intended nor documented! Added test 1176 to verify. Reported-by: vshmuk on hackerone Closes #4812 - wolfSSH: new SSH backend Adds support for SFTP (not SCP) using WolfSSH. Closes #4231 - curl: remove 'config' field from OutStruct As it was just unnecessary duplicated information already stored in the 'per_transfer' struct and that's around mostly anyway. The duplicated pointer caused problems when the code flow was aborted before the dupe was filled in and could cause a NULL pointer access. Reported-by: Brian Carpenter Fixes #4807 Closes #4810 - misc: Copyright year out of date, should be 2020 Follow-up to recent commits [skip ci] Jay Satiro (11 Jan 2020) - [Santino Keupp brought this change] libssh2: add support for forcing a hostkey type - Allow forcing the host's key type found in the known_hosts file. Currently, curl (with libssh2) does not take keys from your known_hosts file into account when talking to a server. With this patch the known_hosts file will be searched for an entry matching the hostname and, if found, libssh2 will be told to claim this key type from the server. Closes https://github.com/curl/curl/pull/4747 - [Nicolas Guillier brought this change] cmake: Improve libssh2 check on Windows - Add "libssh2" name to FindLibSSH2 library search. On Windows systems, libSSH2 CMake installation may name the library "LibSSH2". Prior to this change cmake only checked for name "ssh2". On Linux that works fine because it will prepend the "lib", but it doesn't do that on Windows. Closes https://github.com/curl/curl/pull/4804 - [Faizur Rahman brought this change] schannel: Make CURLOPT_CAINFO work better on Windows 7 - Support hostname verification via alternative names (SAN) in the peer certificate when CURLOPT_CAINFO is used in Windows 7 and earlier. CERT_NAME_SEARCH_ALL_NAMES_FLAG doesn't exist before Windows 8. As a result CertGetNameString doesn't quite work on those versions of Windows. This change provides an alternative solution for CertGetNameString by iterating through CERT_ALT_NAME_INFO for earlier versions of Windows. Prior to this change many certificates failed the hostname validation when CURLOPT_CAINFO was used in Windows 7 and earlier. Most certificates now represent multiple hostnames and rely on the alternative names field exclusively to represent their hostnames. Reported-by: Jeroen Ooms Fixes https://github.com/curl/curl/issues/3711 Closes https://github.com/curl/curl/pull/4761 - [Emil Engler brought this change] ngtcp2: Add an error code for QUIC connection errors - Add new error code CURLE_QUIC_CONNECT_ERROR for QUIC connection errors. Prior to this change CURLE_FAILED_INIT was used, but that was not correct. Closes https://github.com/curl/curl/pull/4754 - multi: Change curl_multi_wait/poll to error on negative timeout - Add new error CURLM_BAD_FUNCTION_ARGUMENT and return that error when curl_multi_wait/poll is passed timeout param < 0. Prior to this change passing a negative value to curl_multi_wait/poll such as -1 could cause the function to wait forever. Reported-by: hamstergene@users.noreply.github.com Fixes https://github.com/curl/curl/issues/4763 Closes https://github.com/curl/curl/pull/4765 - [Marc Aldorasi brought this change] cmake: Enable SMB for Windows builds - Define USE_WIN32_CRYPTO by default. This enables SMB. - Show whether SMB is enabled in the "Enabled features" output. - Fix mingw compiler warning for call to CryptHashData by casting away const param. mingw CryptHashData prototype is wrong. Closes https://github.com/curl/curl/pull/4717 - vtls: Refactor Curl_multissl_version to make the code clearer Reported-by: Johannes Schindelin Ref: https://github.com/curl/curl/pull/3863#pullrequestreview-241395121 Closes https://github.com/curl/curl/pull/4803 Daniel Stenberg (10 Jan 2020) - fix: Copyright year out of date, should be 2020 Follow-up to 875314ed0bf3b Marcel Raad (10 Jan 2020) - hostip: move code to resolve IP address literals to `Curl_resolv` The code was duplicated in the various resolver backends. Also, it was called after the call to `Curl_ipvalid`, which matters in case of `CURLRES_IPV4` when called from `connect.c:bindlocal`. This caused test 1048 to fail on classic MinGW. The code ignores `conn->ip_version` as done previously in the individual resolver backends. Move the call to the `resolver_start` callback up to appease test 655, which wants it to be called also for literal addresses. Closes https://github.com/curl/curl/pull/4798 Daniel Stenberg (9 Jan 2020) - scripts/delta: adapt to new public header layout - test1167: verify global symbols in public headers are curl prefixed ... using the new badsymbols.pl perl script Fixes #4793 Closes #4794 - libtest/mk-lib1521: adapt to new public header layout - include: remove non-curl prefixed defines ...requires some rearranging of the setup of CURLOPT_ and CURLMOPT_ enums. - curl.h: remove WIN32 define It isn't our job to define this in a public header - and it defines a name outside of our naming scope. - tool_dirhie.c: fix the copyright year range Follow-up to: 4027bd72d9 - bump: work towards 7.69.0 is started Jay Satiro (9 Jan 2020) - tool_dirhie: Allow directory traversal during creation - When creating a directory hierarchy do not error when mkdir fails due to error EACCESS (13) "access denied". Some file systems allow for directory traversal; in this case that it should be possible to create child directories when permission to the parent directory is restricted. This is a regression caused by me in f16bed0 (precedes curl-7_61_1). Basically I had assumed that if a directory already existed it would fail only with error EEXIST, and not error EACCES. The latter may happen if the directory exists but has certain restricted permissions. Reported-by: mbeifuss@users.noreply.github.com Fixes https://github.com/curl/curl/issues/4796 Closes https://github.com/curl/curl/pull/4797 Daniel Stenberg (9 Jan 2020) - KNOWN_BUGS: AUTH PLAIN for SMTP is not working on all servers Closes #4080 - docs/RELEASE-PROCEDURE.md: pushed some release dates Ref: https://curl.haxx.se/mail/lib-2020-01/0031.html - runtests: make random seed fixed for a month When using randomized features of runtests (-R and --shallow) it is useful to have a fixed random seed to make sure for example extra commits in a branch or a rebase won't change the seed that would make repeated runs work differently. As it is also useful to change seed sometimes, the default seed is now determined based on the current month (and first line curl -V output). When the month changes, so will the random seed. The specific seed is also shown in the standard test suite top header and it can be set explictly with the new --seed=[num] option so that the exact order of a previous run can be achieved. Closes #4734 - RELEASE-PROCEDURE.md: fix next release date (Feb 26) [skip ci] Version 7.68.0 (8 Jan 2020) Daniel Stenberg (8 Jan 2020) - RELEASE-NOTES: 7.68.0 - THANKS: updated with names from the 7.68.0 release |
︙ | ︙ | |||
5509 5510 5511 5512 5513 5514 5515 | Daniel Stenberg (27 May 2019) - [Maksim Stsepanenka brought this change] tests: make test 1420 and 1406 work with rtsp-disabled libcurl Closes #3948 | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 7233 7234 7235 7236 7237 7238 7239 | Daniel Stenberg (27 May 2019) - [Maksim Stsepanenka brought this change] tests: make test 1420 and 1406 work with rtsp-disabled libcurl Closes #3948 |
Changes to jni/curl/CMake/CurlSymbolHiding.cmake.
1 2 3 4 5 6 7 8 9 10 11 12 13 | include(CheckCSourceCompiles) option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON) mark_as_advanced(CURL_HIDDEN_SYMBOLS) if(CURL_HIDDEN_SYMBOLS) set(SUPPORTS_SYMBOL_HIDING FALSE) if(CMAKE_C_COMPILER_ID MATCHES "Clang") set(SUPPORTS_SYMBOL_HIDING TRUE) set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))") set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden") elseif(CMAKE_COMPILER_IS_GNUCC) | < < < < < < | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | include(CheckCSourceCompiles) option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON) mark_as_advanced(CURL_HIDDEN_SYMBOLS) if(CURL_HIDDEN_SYMBOLS) set(SUPPORTS_SYMBOL_HIDING FALSE) if(CMAKE_C_COMPILER_ID MATCHES "Clang") set(SUPPORTS_SYMBOL_HIDING TRUE) set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))") set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden") elseif(CMAKE_COMPILER_IS_GNUCC) if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) # note: this is considered buggy prior to 4.0 but the autotools don't care, so let's ignore that fact set(SUPPORTS_SYMBOL_HIDING TRUE) set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))") set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden") endif() elseif(CMAKE_C_COMPILER_ID MATCHES "SunPro" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 8.0) set(SUPPORTS_SYMBOL_HIDING TRUE) |
︙ | ︙ |
Changes to jni/curl/CMake/FindCARES.cmake.
1 2 3 4 5 6 7 8 9 | # - Find c-ares # Find the c-ares includes and library # This module defines # CARES_INCLUDE_DIR, where to find ares.h, etc. # CARES_LIBRARIES, the libraries needed to use c-ares. # CARES_FOUND, If false, do not try to use c-ares. # also defined, but not for general use are # CARES_LIBRARY, where to find the c-ares library. | | < < < < < < < < < < | | < < | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # - Find c-ares # Find the c-ares includes and library # This module defines # CARES_INCLUDE_DIR, where to find ares.h, etc. # CARES_LIBRARIES, the libraries needed to use c-ares. # CARES_FOUND, If false, do not try to use c-ares. # also defined, but not for general use are # CARES_LIBRARY, where to find the c-ares library. find_path(CARES_INCLUDE_DIR ares.h) set(CARES_NAMES ${CARES_NAMES} cares) find_library(CARES_LIBRARY NAMES ${CARES_NAMES} ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CARES REQUIRED_VARS CARES_LIBRARY CARES_INCLUDE_DIR) mark_as_advanced( CARES_LIBRARY CARES_INCLUDE_DIR ) |
Changes to jni/curl/CMake/FindLibSSH2.cmake.
1 2 3 4 5 6 7 | # - Try to find the libssh2 library # Once done this will define # # LIBSSH2_FOUND - system has the libssh2 library # LIBSSH2_INCLUDE_DIR - the libssh2 include directory # LIBSSH2_LIBRARY - the libssh2 library name | < < < < | | < | | < | | < < < < < < < < < | > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # - Try to find the libssh2 library # Once done this will define # # LIBSSH2_FOUND - system has the libssh2 library # LIBSSH2_INCLUDE_DIR - the libssh2 include directory # LIBSSH2_LIBRARY - the libssh2 library name find_path(LIBSSH2_INCLUDE_DIR libssh2.h) find_library(LIBSSH2_LIBRARY NAMES ssh2 libssh2) if(LIBSSH2_INCLUDE_DIR) file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" libssh2_version_str REGEX "^#define[\t ]+LIBSSH2_VERSION[\t ]+\"(.*)\"") string(REGEX REPLACE "^.*\"([^\"]+)\"" "\\1" LIBSSH2_VERSION "${libssh2_version_str}") endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LibSSH2 REQUIRED_VARS LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR VERSION_VAR LIBSSH2_VERSION) mark_as_advanced(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY) |
Changes to jni/curl/CMake/FindNGHTTP2.cmake.
1 2 3 4 5 6 7 8 9 10 11 12 | include(FindPackageHandleStandardArgs) find_path(NGHTTP2_INCLUDE_DIR "nghttp2/nghttp2.h") find_library(NGHTTP2_LIBRARY NAMES nghttp2) find_package_handle_standard_args(NGHTTP2 FOUND_VAR NGHTTP2_FOUND REQUIRED_VARS NGHTTP2_LIBRARY NGHTTP2_INCLUDE_DIR | < < > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | include(FindPackageHandleStandardArgs) find_path(NGHTTP2_INCLUDE_DIR "nghttp2/nghttp2.h") find_library(NGHTTP2_LIBRARY NAMES nghttp2) find_package_handle_standard_args(NGHTTP2 FOUND_VAR NGHTTP2_FOUND REQUIRED_VARS NGHTTP2_LIBRARY NGHTTP2_INCLUDE_DIR ) set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR}) set(NGHTTP2_LIBRARIES ${NGHTTP2_LIBRARY}) mark_as_advanced(NGHTTP2_INCLUDE_DIRS NGHTTP2_LIBRARIES) |
Changes to jni/curl/CMake/OtherTests.cmake.
︙ | ︙ | |||
28 29 30 31 32 33 34 | check_c_source_compiles("${_source_epilogue} int main(void) { recv(0, 0, 0, 0); return 0; }" curl_cv_recv) if(curl_cv_recv) | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | check_c_source_compiles("${_source_epilogue} int main(void) { recv(0, 0, 0, 0); return 0; }" curl_cv_recv) if(curl_cv_recv) if(NOT DEFINED curl_cv_func_recv_args OR curl_cv_func_recv_args STREQUAL "unknown") foreach(recv_retv "int" "ssize_t" ) foreach(recv_arg1 "SOCKET" "int" ) foreach(recv_arg2 "char *" "void *" ) foreach(recv_arg3 "int" "size_t" "socklen_t" "unsigned int") foreach(recv_arg4 "int" "unsigned int") if(NOT curl_cv_func_recv_done) unset(curl_cv_func_recv_test CACHE) |
︙ | ︙ | |||
77 78 79 80 81 82 83 | string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG1 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG2 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG3 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" RECV_TYPE_ARG4 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" RECV_TYPE_RETV "${curl_cv_func_recv_args}") endif() | | | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG1 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG2 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG3 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" RECV_TYPE_ARG4 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" RECV_TYPE_RETV "${curl_cv_func_recv_args}") endif() if(curl_cv_func_recv_args STREQUAL "unknown") message(FATAL_ERROR "Cannot find proper types to use for recv args") endif() else() message(FATAL_ERROR "Unable to link function recv") endif() set(curl_cv_func_recv_args "${curl_cv_func_recv_args}" CACHE INTERNAL "Arguments for recv") set(HAVE_RECV 1) |
︙ | ︙ |
Changes to jni/curl/CMake/Utilities.cmake.
1 2 3 4 | # File containing various utilities # Returns a list of arguments that evaluate to true function(count_true output_count_var) | | | < | 1 2 3 4 5 6 7 8 9 10 11 12 | # File containing various utilities # Returns a list of arguments that evaluate to true function(count_true output_count_var) set(lst_len 0) foreach(option_var IN LISTS ARGN) if(${option_var}) math(EXPR lst_len "${lst_len} + 1") endif() endforeach() set(${output_count_var} ${lst_len} PARENT_SCOPE) endfunction() |
Changes to jni/curl/CMakeLists.txt.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
34 35 36 37 38 39 40 | # - curl-specific tests (the ones that are in m4/curl-*.m4 files); # - (most obvious thing:) curl version numbers. # Add documentation subproject # # To check: # (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not. # (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options. | | > | | 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 | # - curl-specific tests (the ones that are in m4/curl-*.m4 files); # - (most obvious thing:) curl version numbers. # Add documentation subproject # # To check: # (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not. # (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options. cmake_minimum_required(VERSION 3.0...3.16 FATAL_ERROR) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}") include(Utilities) include(Macros) include(CMakeDependentOption) include(CheckCCompilerFlag) project(CURL C) message(WARNING "the curl cmake build system is poorly maintained. Be aware") file(STRINGS ${CURL_SOURCE_DIR}/include/curl/curlver.h CURL_VERSION_H_CONTENTS REGEX "#define LIBCURL_VERSION( |_NUM )") string(REGEX MATCH "#define LIBCURL_VERSION \"[^\"]*" CURL_VERSION ${CURL_VERSION_H_CONTENTS}) string(REGEX REPLACE "[^\"]+\"" "" CURL_VERSION ${CURL_VERSION}) string(REGEX MATCH "#define LIBCURL_VERSION_NUM 0x[0-9a-fA-F]+" CURL_VERSION_NUM ${CURL_VERSION_H_CONTENTS}) string(REGEX REPLACE "[^0]+0x" "" CURL_VERSION_NUM ${CURL_VERSION_NUM}) |
︙ | ︙ | |||
75 76 77 78 79 80 81 | option(PICKY_COMPILER "Enable picky compiler options" ON) option(BUILD_CURL_EXE "Set to ON to build curl executable." ON) option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(ENABLE_ARES "Set to ON to enable c-ares support" OFF) if(WIN32) option(CURL_STATIC_CRT "Set to ON to build libcurl with static CRT on Windows (/MT)." OFF) option(ENABLE_INET_PTON "Set to OFF to prevent usage of inet_pton when building against modern SDKs while still requiring compatibility with older Windows versions, such as Windows XP, Windows Server 2003 etc." ON) | > > > > > > > > > | > > > | | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | option(PICKY_COMPILER "Enable picky compiler options" ON) option(BUILD_CURL_EXE "Set to ON to build curl executable." ON) option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(ENABLE_ARES "Set to ON to enable c-ares support" OFF) if(WIN32) option(CURL_STATIC_CRT "Set to ON to build libcurl with static CRT on Windows (/MT)." OFF) option(ENABLE_INET_PTON "Set to OFF to prevent usage of inet_pton when building against modern SDKs while still requiring compatibility with older Windows versions, such as Windows XP, Windows Server 2003 etc." ON) set(CURL_TARGET_WINDOWS_VERSION "" CACHE STRING "Minimum target Windows version as hex string") if(CURL_TARGET_WINDOWS_VERSION) add_definitions(-D_WIN32_WINNT=${CURL_TARGET_WINDOWS_VERSION}) elseif(ENABLE_INET_PTON) # _WIN32_WINNT_VISTA (0x0600) add_definitions(-D_WIN32_WINNT=0x0600) else() # _WIN32_WINNT_WINXP (0x0501) add_definitions(-D_WIN32_WINNT=0x0501) endif() endif() option(CURL_LTO "Turn on compiler Link Time Optimizations" OFF) cmake_dependent_option(ENABLE_THREADED_RESOLVER "Set to ON to enable threaded DNS lookup" ON "NOT ENABLE_ARES" OFF) option(ENABLE_DEBUG "Set to ON to enable curl debug features" OFF) option(ENABLE_CURLDEBUG "Set to ON to build with TrackMemory feature enabled" OFF) if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) if(PICKY_COMPILER) foreach(_CCOPT -pedantic -Wall -W -Wpointer-arith -Wwrite-strings -Wunused -Wshadow -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wundef -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wstrict-aliasing=3 -Wcast-align -Wtype-limits -Wold-style-declaration -Wmissing-parameter-type -Wempty-body -Wclobbered -Wignored-qualifiers -Wconversion -Wno-sign-conversion -Wvla -Wdouble-promotion -Wno-system-headers -Wno-pedantic-ms-format) # surprisingly, CHECK_C_COMPILER_FLAG needs a new variable to store each new # test result in. string(MAKE_C_IDENTIFIER "OPT${_CCOPT}" _optvarname) check_c_compiler_flag(${_CCOPT} ${_optvarname}) if(${_optvarname}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") endif() endforeach() endif() endif() if(ENABLE_DEBUG) |
︙ | ︙ | |||
119 120 121 122 123 124 125 | # initialize CURL_LIBS set(CURL_LIBS "") if(ENABLE_ARES) set(USE_ARES 1) find_package(CARES REQUIRED) list(APPEND CURL_LIBS ${CARES_LIBRARY}) | < | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | # initialize CURL_LIBS set(CURL_LIBS "") if(ENABLE_ARES) set(USE_ARES 1) find_package(CARES REQUIRED) list(APPEND CURL_LIBS ${CARES_LIBRARY}) endif() include(CurlSymbolHiding) option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" OFF) mark_as_advanced(HTTP_ONLY) option(CURL_DISABLE_FTP "disables FTP" OFF) |
︙ | ︙ | |||
168 169 170 171 172 173 174 175 176 177 178 179 180 181 | set(CURL_DISABLE_TELNET ON) set(CURL_DISABLE_DICT ON) set(CURL_DISABLE_FILE ON) set(CURL_DISABLE_TFTP ON) set(CURL_DISABLE_RTSP ON) set(CURL_DISABLE_POP3 ON) set(CURL_DISABLE_IMAP ON) set(CURL_DISABLE_SMTP ON) set(CURL_DISABLE_GOPHER ON) endif() option(CURL_DISABLE_COOKIES "to disable cookies support" OFF) mark_as_advanced(CURL_DISABLE_COOKIES) | > | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | set(CURL_DISABLE_TELNET ON) set(CURL_DISABLE_DICT ON) set(CURL_DISABLE_FILE ON) set(CURL_DISABLE_TFTP ON) set(CURL_DISABLE_RTSP ON) set(CURL_DISABLE_POP3 ON) set(CURL_DISABLE_IMAP ON) set(CURL_DISABLE_SMB ON) set(CURL_DISABLE_SMTP ON) set(CURL_DISABLE_GOPHER ON) endif() option(CURL_DISABLE_COOKIES "to disable cookies support" OFF) mark_as_advanced(CURL_DISABLE_COOKIES) |
︙ | ︙ | |||
281 282 283 284 285 286 287 | if(WIN32) check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) check_library_exists_concat("winmm" getch HAVE_LIBWINMM) list(APPEND CURL_LIBS "advapi32") endif() # check SSL libraries | | | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | if(WIN32) check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) check_library_exists_concat("winmm" getch HAVE_LIBWINMM) list(APPEND CURL_LIBS "advapi32") endif() # check SSL libraries # TODO support GnuTLS and WolfSSL if(APPLE) option(CMAKE_USE_SECTRANSP "enable Apple OS native SSL/TLS" OFF) endif() if(WIN32) option(CMAKE_USE_WINSSL "enable Windows native SSL/TLS" OFF) cmake_dependent_option(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON |
︙ | ︙ | |||
407 408 409 410 411 412 413 414 415 416 417 418 419 420 | option(USE_NGHTTP2 "Use Nghttp2 library" OFF) if(USE_NGHTTP2) find_package(NGHTTP2 REQUIRED) include_directories(${NGHTTP2_INCLUDE_DIRS}) list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES}) endif() if(NOT CURL_DISABLE_LDAP) if(WIN32) option(USE_WIN32_LDAP "Use Windows LDAP implementation" ON) if(USE_WIN32_LDAP) check_library_exists_concat("wldap32" cldap_open HAVE_WLDAP32) if(NOT HAVE_WLDAP32) | > > > > | 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 | option(USE_NGHTTP2 "Use Nghttp2 library" OFF) if(USE_NGHTTP2) find_package(NGHTTP2 REQUIRED) include_directories(${NGHTTP2_INCLUDE_DIRS}) list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES}) endif() if(WIN32) set(USE_WIN32_CRYPTO ON) endif() if(NOT CURL_DISABLE_LDAP) if(WIN32) option(USE_WIN32_LDAP "Use Windows LDAP implementation" ON) if(USE_WIN32_LDAP) check_library_exists_concat("wldap32" cldap_open HAVE_WLDAP32) if(NOT HAVE_WLDAP32) |
︙ | ︙ | |||
919 920 921 922 923 924 925 | check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE) check_symbol_exists(setmode "${CURL_INCLUDES}" HAVE_SETMODE) check_symbol_exists(setrlimit "${CURL_INCLUDES}" HAVE_SETRLIMIT) check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL) check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL) check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT) check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME) | | < < < < < < < < < < < < < | 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 | check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE) check_symbol_exists(setmode "${CURL_INCLUDES}" HAVE_SETMODE) check_symbol_exists(setrlimit "${CURL_INCLUDES}" HAVE_SETRLIMIT) check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL) check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL) check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT) check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME) check_symbol_exists(inet_pton "${CURL_INCLUDES}" HAVE_INET_PTON) check_symbol_exists(fsetxattr "${CURL_INCLUDES}" HAVE_FSETXATTR) if(HAVE_FSETXATTR) foreach(CURL_TEST HAVE_FSETXATTR_5 HAVE_FSETXATTR_6) curl_internal_test(${CURL_TEST}) endforeach() endif() |
︙ | ︙ | |||
1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 | if(MSVC_VERSION) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") else() # this assumes clang or gcc style options set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") endif() endif() # Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it). function(transform_makefile_inc INPUT_FILE OUTPUT_FILE) file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) string(REPLACE "$(top_srcdir)" "\${CURL_SOURCE_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) string(REPLACE "$(top_builddir)" "\${CURL_BINARY_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) | > > > > > > > > > > > > > > > > > | 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 | if(MSVC_VERSION) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") else() # this assumes clang or gcc style options set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") endif() endif() if(CURL_LTO) if(CMAKE_VERSION VERSION_LESS 3.9) message(FATAL_ERROR "Requested LTO but your cmake version ${CMAKE_VERSION} is to old. You need at least 3.9") endif() cmake_policy(SET CMP0069 NEW) include(CheckIPOSupported) check_ipo_supported(RESULT CURL_HAS_LTO OUTPUT CURL_LTO_ERROR LANGUAGES C) if(CURL_HAS_LTO) message(STATUS "LTO supported and enabled") else() message(FATAL_ERROR "LTO was requested - but compiler doesn't support it\n${CURL_LTO_ERROR}") endif() endif() # Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it). function(transform_makefile_inc INPUT_FILE OUTPUT_FILE) file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) string(REPLACE "$(top_srcdir)" "\${CURL_SOURCE_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) string(REPLACE "$(top_builddir)" "\${CURL_BINARY_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) |
︙ | ︙ | |||
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 | add_subdirectory(src) endif() include(CTest) if(BUILD_TESTING) add_subdirectory(tests) endif() # Helper to populate a list (_items) with a label when conditions (the remaining # args) are satisfied | > > > > > > > > | | | | | 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 | add_subdirectory(src) endif() include(CTest) if(BUILD_TESTING) add_subdirectory(tests) endif() # NTLM support requires crypto function adaptions from various SSL libs # TODO alternative SSL libs tests for SSP1, GNUTLS, NSS if(NOT CURL_DISABLE_CRYPTO_AUTH AND (USE_OPENSSL OR USE_WINDOWS_SSPI OR USE_DARWINSSL OR USE_MBEDTLS OR USE_WIN32_CRYPTO)) set(use_ntlm ON) else() set(use_ntlm OFF) endif() # Helper to populate a list (_items) with a label when conditions (the remaining # args) are satisfied macro(_add_if label) # needs to be a macro to allow this indirection if(${ARGN}) set(_items ${_items} "${label}") endif() endmacro() # Clear list and try to detect available features set(_items) _add_if("SSL" SSL_ENABLED) _add_if("IPv6" ENABLE_IPV6) _add_if("unix-sockets" USE_UNIX_SOCKETS) _add_if("libz" HAVE_LIBZ) |
︙ | ︙ | |||
1224 1225 1226 1227 1228 1229 1230 | # TODO SSP1 missing for SPNEGO _add_if("SPNEGO" NOT CURL_DISABLE_CRYPTO_AUTH AND (HAVE_GSSAPI OR USE_WINDOWS_SSPI)) _add_if("Kerberos" NOT CURL_DISABLE_CRYPTO_AUTH AND (HAVE_GSSAPI OR USE_WINDOWS_SSPI)) # NTLM support requires crypto function adaptions from various SSL libs # TODO alternative SSL libs tests for SSP1, GNUTLS, NSS | < | | | < > | 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 | # TODO SSP1 missing for SPNEGO _add_if("SPNEGO" NOT CURL_DISABLE_CRYPTO_AUTH AND (HAVE_GSSAPI OR USE_WINDOWS_SSPI)) _add_if("Kerberos" NOT CURL_DISABLE_CRYPTO_AUTH AND (HAVE_GSSAPI OR USE_WINDOWS_SSPI)) # NTLM support requires crypto function adaptions from various SSL libs # TODO alternative SSL libs tests for SSP1, GNUTLS, NSS _add_if("NTLM" use_ntlm) # TODO missing option (autoconf: --enable-ntlm-wb) _add_if("NTLM_WB" use_ntlm AND NOT CURL_DISABLE_HTTP AND NTLM_WB_ENABLED) # TODO missing option (--enable-tls-srp), depends on GNUTLS_SRP/OPENSSL_SRP _add_if("TLS-SRP" USE_TLS_SRP) # TODO option --with-nghttp2 tests for nghttp2 lib and nghttp2/nghttp2.h header _add_if("HTTP2" USE_NGHTTP2) _add_if("HTTPS-proxy" SSL_ENABLED AND (USE_OPENSSL OR USE_GNUTLS OR USE_NSS)) string(REPLACE ";" " " SUPPORT_FEATURES "${_items}") message(STATUS "Enabled features: ${SUPPORT_FEATURES}") # Clear list and try to detect available protocols set(_items) _add_if("HTTP" NOT CURL_DISABLE_HTTP) _add_if("HTTPS" NOT CURL_DISABLE_HTTP AND SSL_ENABLED) |
︙ | ︙ | |||
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 | _add_if("DICT" NOT CURL_DISABLE_DICT) _add_if("TFTP" NOT CURL_DISABLE_TFTP) _add_if("GOPHER" NOT CURL_DISABLE_GOPHER) _add_if("POP3" NOT CURL_DISABLE_POP3) _add_if("POP3S" NOT CURL_DISABLE_POP3 AND SSL_ENABLED) _add_if("IMAP" NOT CURL_DISABLE_IMAP) _add_if("IMAPS" NOT CURL_DISABLE_IMAP AND SSL_ENABLED) _add_if("SMTP" NOT CURL_DISABLE_SMTP) _add_if("SMTPS" NOT CURL_DISABLE_SMTP AND SSL_ENABLED) _add_if("SCP" USE_LIBSSH2) _add_if("SFTP" USE_LIBSSH2) _add_if("RTSP" NOT CURL_DISABLE_RTSP) _add_if("RTMP" USE_LIBRTMP) if(_items) | > > | 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 | _add_if("DICT" NOT CURL_DISABLE_DICT) _add_if("TFTP" NOT CURL_DISABLE_TFTP) _add_if("GOPHER" NOT CURL_DISABLE_GOPHER) _add_if("POP3" NOT CURL_DISABLE_POP3) _add_if("POP3S" NOT CURL_DISABLE_POP3 AND SSL_ENABLED) _add_if("IMAP" NOT CURL_DISABLE_IMAP) _add_if("IMAPS" NOT CURL_DISABLE_IMAP AND SSL_ENABLED) _add_if("SMB" NOT CURL_DISABLE_SMB AND use_ntlm) _add_if("SMBS" NOT CURL_DISABLE_SMB AND SSL_ENABLED AND use_ntlm) _add_if("SMTP" NOT CURL_DISABLE_SMTP) _add_if("SMTPS" NOT CURL_DISABLE_SMTP AND SSL_ENABLED) _add_if("SCP" USE_LIBSSH2) _add_if("SFTP" USE_LIBSSH2) _add_if("RTSP" NOT CURL_DISABLE_RTSP) _add_if("RTMP" USE_LIBRTMP) if(_items) |
︙ | ︙ |
Changes to jni/curl/Makefile.in.
︙ | ︙ | |||
39 40 41 42 43 44 45 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
443 444 445 446 447 448 449 450 451 452 453 454 455 456 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
659 660 661 662 663 664 665 | LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \ vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ | < | | | | | | | | | | | 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 | LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \ vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ vtls/mbedtls_threadlock.c vtls/wolfssl.c vtls/schannel.c \ vtls/schannel_verify.c vtls/sectransp.c vtls/gskit.c vtls/mbedtls.c \ vtls/mesalink.c vtls/bearssl.c LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h vtls/nssg.h \ vtls/mbedtls_threadlock.h vtls/wolfssl.h vtls/schannel.h \ vtls/sectransp.h vtls/gskit.h vtls/mbedtls.h vtls/mesalink.h \ vtls/bearssl.h LIB_VQUIC_CFILES = vquic/ngtcp2.c vquic/quiche.c LIB_VQUIC_HFILES = vquic/ngtcp2.h vquic/quiche.h LIB_VSSH_CFILES = vssh/libssh2.c vssh/libssh.c vssh/wolfssh.c LIB_VSSH_HFILES = vssh/ssh.h LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \ ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \ getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c \ fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \ strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c \ http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \ strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c \ inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c \ curl_addrinfo.c socks_gssapi.c socks_sspi.c \ curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c \ pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \ openldap.c curl_gethostname.c gopher.c idn_win32.c \ http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \ http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \ curl_multibyte.c hostcheck.c conncache.c dotdot.c \ x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c \ doh.c urlapi.c curl_get_line.c altsvc.c socketpair.c rename.c LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h \ strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h \ wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h \ hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \ http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h \ inet_ntop.h curlx.h curl_memory.h curl_setup.h transfer.h select.h \ easyif.h multiif.h parsedate.h tftp.h sockaddr.h splay.h strdup.h \ socks.h curl_base64.h curl_addrinfo.h curl_sspi.h \ slist.h nonblock.h curl_memrchr.h imap.h pop3.h smtp.h pingpong.h \ rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \ curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \ http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ curl_sasl.h curl_multibyte.h hostcheck.h conncache.h \ curl_setup_once.h multihandle.h setup-vms.h dotdot.h \ x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \ curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h \ curl_get_line.h altsvc.h quic.h socketpair.h rename.h LIB_RCFILES = libcurl.rc CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \ $(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES) HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \ $(LIB_VQUIC_HFILES) $(LIB_VSSH_HFILES) |
︙ | ︙ |
Changes to jni/curl/README.
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | learn how! You find answers to the most frequent questions we get in the FAQ document. Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document. CONTACT If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list. See https://curl.haxx.se/mail/ All contributors to the project are listed in the THANKS document. | > > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | learn how! You find answers to the most frequent questions we get in the FAQ document. Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document. All of those documents and more can be found in the docs/ directory. CONTACT If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list. See https://curl.haxx.se/mail/ All contributors to the project are listed in the THANKS document. |
︙ | ︙ |
Changes to jni/curl/RELEASE-NOTES.
|
| | | | | | | < < | < < > | | | > > | < > | | | < | < | < | > | | | | | | | | | | | | > > | | > > > | | | | | | | | | | | | | | | | | | | | | > > | > > | < | < < > | < < | < | < > | | | > > | > > > > > > | > > | | | < < < | > > | | > | < < | < < < | < | < < < < < < < | | | | | | > | < | | | | | | | | | | | | | | < | | > | | < | < < > | > | | | > | | < > | | < < > | | | < | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | 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 96 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 159 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 241 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 | curl and libcurl 7.69.0 Public curl releases: 189 Command line options: 230 curl_easy_setopt() options: 270 Public functions in libcurl: 82 Contributors: 2113 This release includes the following changes: o polarssl: removed [16] o smtp: add CURLOPT_MAIL_RCPT_ALLLOWFAILS and --mail-rcpt-allowfails [23] o wolfSSH: new SSH backend [5] This release includes the following bugfixes: o altsvc: improved header parser [63] o altsvc: keep a copy of the file name to survive handle reset [50] o altsvc: make saving the cache an atomic operation [84] o altsvc: use h3-27 o azure: disable brotli on the macos debug-builds [68] o build: remove all HAVE_OPENSSL_ENGINE_H defines [99] o checksrc.bat: Fix not being able to run script from the main curl dir [54] o cleanup: fix several comment typos [78] o cleanup: fix typos and wording in docs and comments [39] o cmake: add support for CMAKE_LTO option [22] o cmake: clean up and improve build procedures [100] o cmake: enable SMB for Windows builds [12] o cmake: improve libssh2 check on Windows [8] o cmake: Show HTTPS-proxy in the features output [110] o cmake: support specifying the target Windows version [27] o cmake: use check_symbol_exists also for inet_pton [19] o configure.ac: fix comments about --with-quiche [53] o configure: disable metalink if mbedTLS is specified [105] o configure: disable metalink support for incompatible SSL/TLS [40] o conn: do not reuse connection if SOCKS proxy credentials differ [32] o conncache: removed unused Curl_conncache_bundle_size() [33] o connect: remove some spurious infof() calls [80] o connection reuse: respect the max_concurrent_streams limits [3] o contributors: also include people who contributed to curl-www [58] o contrithanks: use the most recent tag by default [59] o cookie: check __Secure- and __Host- case sensitively [43] o cookies: make saving atomic with a rename [85] o create-dirs.d: mention the mode [73] o curl: avoid using strlen for testing if a string is empty [37] o curl: error on --alt-svc use w/o support [61] o curl: let -D merge headers in one file again [25] o curl: make #0 not output the full URL [4] o curl: make the -# spaceship bar not wrap the line [30] o curl: remove 'config' field from OutStruct [6] o curl:progressbarinit: ignore column width from terminals < 20 [18] o curl_escape.3: add a link to curl_free [107] o curl_getenv.3: fix the memory handling description [107] o curl_global_init: assume the EINTR bit by default [31] o curl_global_init: move the IPv6 works status bool to multi handle [48] o CURLINFO_COOKIELIST.3: Fix example [67] o CURLOPT_ALTSVC_CTRL.3: fix the DEFAULT wording [74] o CURLOPT_PROXY_SSL_OPTIONS.3: Sync with CURLOPT_SSL_OPTIONS.3 o CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section [83] o data.d: remove "Multiple files can also be specified" [26] o digest: do not quote algorithm in HTTP authorisation [55] o docs/HTTP3: add --enable-alt-svc to curl's configure o docs/HTTP3: update the OpenSSL branch to use for ngtcp2 o docs: fix typo on CURLINFO_RETRY_AFTER [101] o easy: remove dead code [72] o form.d: fix two minor typos [34] o ftp: convert 'sock_accepted' to a plain boolean [66] o ftp: remove superfluous checking for crlf in user or pwd [56] o ftp: shrink temp buffers used for PORT [60] o github action: add CIFuzz [77] o github: Instructions to post "uname -a" on Unix systems in issues [52] o GnuTLS: always send client cert [76] o gtls: fixed compilation when using GnuTLS < 3.5.0 [98] o hostip: move code to resolve IP address literals to `Curl_resolv` [13] o HTTP-COOKIES: describe the cookie file format [21] o HTTP-COOKIES: mention that a trailing newline is required [81] o http2: make pausing/unpausing set/clear local stream window [86] o http2: now requires nghttp2 >= 1.12.0 [75] o http: added 417 response treatment [89] o http: increase EXPECT_100_THRESHOLD to 1Mb [28] o http: mark POSTs with no body as "upload done" from the start [104] o http: move "oauth_bearer" from connectdata to Curl_easy [24] o include: remove non-curl prefixed defines [15] o KNOWN_BUGS: Multiple methods in a single WWW-Authenticate: header o libssh2: add support for forcing a hostkey type [7] o libssh2: fix variable type [17] o libssh: improve known hosts handling [87] o llist: removed unused Curl_llist_move() [33] o location.d: the method change is from POST to GET only [46] o md4: fixed compilation issues when using GNU TLS gcrypt [95] o md4: use init/update/final functions in Secure Transport [108] o md5: added implementation for mbedTLS [102] o mk-ca-bundle: add support for CKA_NSS_SERVER_DISTRUST_AFTER [36] o multi: change curl_multi_wait/poll to error on negative timeout [11] o multi: fix outdated comment [71] o multi: if Curl_readwrite sets 'comeback' use expire, not loop [65] o multi_done: if multiplexed, make conn->data point to another transfer [45] o multi_wait: stop loop when sread() returns zero [103] o ngtcp2: add error code for QUIC connection errors [10] o ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6 [63] o ngtcp2: update to git master and its draft-25 support [42] o ntlm: move the winbind data into the NTLM data structure o ntlm: pass the Curl_easy structure to the private winbind functions o ntlm: removed the dependency on the TLS libaries when using MD5 [93] o ntlm_wb: use Curl_socketpair() for greater portability [57] o oauth2-bearer.d: works for HTTP too [44] o openssl: make CURLINFO_CERTINFO not truncate x509v3 fields [35] o openssl: remove redundant assignment [38] o os400: fixed the build [29] o pause: force-drain the transfer on unpause [96] o quiche: update to draft-25 [41] o README: mention that the docs is in docs/ [49] o RELEASE-PROCEDURE: feature win is closed post-release a few days [62] o runtests: make random seed fixed for a month [1] o runtests: restore the command log [97] o schannel: make CURLOPT_CAINFO work better on Windows 7 [9] o schannel_verify: Fix alt names manual verify for UNICODE builds [20] o sha256: use crypto implementations when available [106] o singleuse.pl: support new API functions, fix curl_dbg_ handling [33] o smtp: support the SMTPUTF8 extension [90] o smtp: support UTF-8 based host names in MAIL FROM [109] o SOCKS: make the connect phase non-blocking [64] o strcase: turn Curl_raw_tolower into static [33] o strerror: increase STRERROR_LEN 128 -> 256 [70] o test1323: added missing 'unit test' feature requirement o tests: add a unit test for MD4 digest generation [92] o tests: add a unit test for SHA256 digest generation [94] o tests: add a unit test for the HMAC hash generation [91] o tests: deduce the tool name from the test case for unit tests [88] o tests: fix Python 3 compatibility of smbserver.py o tool_dirhie: allow directory traversal during creation [2] o tool_homedir: change GetEnv() to use libcurl's curl_getenv() [69] o tool_util: improve Windows version of tvnow() [82] o travis: update non-OpenSSL Linux jobs to Bionic [38] o url: include the failure reason when curl_win32_idn_to_ascii() fails [51] o urlapi: guess scheme properly with credentials given [47] o urldata: do string enums without #ifdefs for build scripts [29] o vtls: refactor Curl_multissl_version to make the code clearer [14] o win32: USE_WIN32_CRYPTO to enable Win32 based MD4, MD5 and SHA256 [79] This release includes the following known bugs: o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html) This release would not have looked like this without help, code, reports and advice from friends like these: 3dyd on github, Alessandro Ghedini, Anders Berg, Anderson Toshiyuki Sasaki, Andrew Potter, Andrius Merkys, Aron Rotteveel, Austin Green, bnfp on github, bramus on github, Brian Carpenter, bsammon on github, Christian Heimes, Christoph M. Becker, Craig Andrews, crazydef on github, Cristian Greco, Dan Fandrich, Daniel Gustafsson, Daniel Marjamäki, Daniel Stenberg, Dan Jacobson, dmitrmax on github, Edgaras Janušauskas, Emil Engler, Faizur Rahman, Frank Gevaerts, hamstergene on github, Harry Sintonen, IvanoG on github, James Fuller, Jeroen Ooms, jethrogb on github, Johannes Schindelin, Jonathan Cardoso Machado, Jon Rumsey, Joonas Kuorilehto, Kristian Mide, Kunal Ekawde, Leo Neat, Marc Aldorasi, Marcel Raad, Marc Hörsken, mbeifuss on github, Mike Frysinger, Mike Norton, Mischa Salle, MrdUkk on github, naost3rn on github, Nick Zitzmann, Nicolas Guillier, Orgad Shaneh, Patrick Monnerat, Pavel Volgarev, Pedro Monreal, Peter Piekarski, Peter Wu, Pierre-Yves Bigourdan, Ray Satiro, Robert Dunaj, Rolf Eike Beer, RuurdBeerstra on github, Santino Keupp, Steve Holme, Sunny Bean, Tobias Hieta, vshmuk on hackerone, ygthien on github, 加藤郁之, (69 contributors) Thanks! (and sorry if I forgot to mention someone) References to bug reports and discussions on issues: [1] = https://curl.haxx.se/bug/?i=4734 [2] = https://curl.haxx.se/bug/?i=4796 [3] = https://curl.haxx.se/bug/?i=4779 [4] = https://curl.haxx.se/bug/?i=4812 [5] = https://daniel.haxx.se/blog/2020/01/12/curl-even-more-wolfed/ [6] = https://curl.haxx.se/bug/?i=4807 [7] = https://curl.haxx.se/bug/?i=4747 [8] = https://curl.haxx.se/bug/?i=4804 [9] = https://curl.haxx.se/bug/?i=3711 [10] = https://curl.haxx.se/bug/?i=4754 [11] = https://curl.haxx.se/bug/?i=4763 [12] = https://curl.haxx.se/bug/?i=4717 [13] = https://curl.haxx.se/bug/?i=4798 [14] = https://curl.haxx.se/bug/?i=4803 [15] = https://curl.haxx.se/bug/?i=4793 [16] = https://curl.haxx.se/bug/?i=4825 [17] = https://curl.haxx.se/bug/?i=4823 [18] = https://curl.haxx.se/bug/?i=4818 [19] = https://curl.haxx.se/bug/?i=4808 [20] = https://curl.haxx.se/bug/?i=4761 [21] = https://curl.haxx.se/bug/?i=4805 [22] = https://curl.haxx.se/bug/?i=4799 [23] = https://curl.haxx.se/bug/?i=4816 [24] = https://curl.haxx.se/bug/?i=4824 [25] = https://curl.haxx.se/bug/?i=4762 [26] = https://curl.haxx.se/mail/archive-2020-01/0016.html [27] = https://curl.haxx.se/bug/?i=4815 [28] = https://curl.haxx.se/bug/?i=4814 [29] = https://curl.haxx.se/bug/?i=4822 [30] = https://curl.haxx.se/bug/?i=4849 [31] = https://curl.haxx.se/bug/?i=4840 [32] = https://curl.haxx.se/bug/?i=4835 [33] = https://curl.haxx.se/bug/?i=4842 [34] = https://curl.haxx.se/bug/?i=4843 [35] = https://curl.haxx.se/bug/?i=4837 [36] = https://curl.haxx.se/bug/?i=4834 [37] = https://curl.haxx.se/bug/?i=4873 [38] = https://curl.haxx.se/bug/?i=4872 [39] = https://curl.haxx.se/bug/?i=4869 [40] = https://curl.haxx.se/bug/?i=5006 [41] = https://curl.haxx.se/bug/?i=4867 [42] = https://curl.haxx.se/bug/?i=4865 [43] = https://curl.haxx.se/bug/?i=4864 [44] = https://curl.haxx.se/bug/?i=4862 [45] = https://curl.haxx.se/bug/?i=4845 [46] = https://curl.haxx.se/bug/?i=4859 [47] = https://curl.haxx.se/bug/?i=4856 [48] = https://curl.haxx.se/bug/?i=4851 [49] = https://curl.haxx.se/bug/?i=4830 [50] = https://curl.haxx.se/bug/?i=4898 [51] = https://curl.haxx.se/bug/?i=4899 [52] = https://curl.haxx.se/bug/?i=4896 [53] = https://curl.haxx.se/bug/?i=4897 [54] = https://curl.haxx.se/bug/?i=4894 [55] = https://curl.haxx.se/bug/?i=4890 [56] = https://curl.haxx.se/bug/?i=4887 [57] = https://curl.haxx.se/bug/?i=4886 [58] = https://curl.haxx.se/bug/?i=4884 [59] = https://curl.haxx.se/bug/?i=4883 [60] = https://curl.haxx.se/bug/?i=4880 [61] = https://curl.haxx.se/bug/?i=4878 [62] = https://curl.haxx.se/bug/?i=4877 [63] = https://curl.haxx.se/bug/?i=4875 [64] = https://curl.haxx.se/bug/?i=4907 [65] = https://curl.haxx.se/bug/?i=4927 [66] = https://curl.haxx.se/bug/?i=4929 [67] = https://curl.haxx.se/bug/?i=4930 [68] = https://curl.haxx.se/bug/?i=4925 [69] = https://curl.haxx.se/bug/?i=4774 [70] = https://curl.haxx.se/bug/?i=4920 [71] = https://curl.haxx.se/bug/?i=4901 [72] = https://curl.haxx.se/bug/?i=4900 [73] = https://curl.haxx.se/bug/?i=4766 [74] = https://curl.haxx.se/bug/?i=4909 [75] = https://curl.haxx.se/bug/?i=4961 [76] = https://curl.haxx.se/bug/?i=1411 [77] = https://curl.haxx.se/bug/?i=4960 [78] = https://curl.haxx.se/bug/?i=4957 [79] = https://curl.haxx.se/bug/?i=4955 [80] = https://curl.haxx.se/bug/?i=4951 [81] = https://curl.haxx.se/bug/?i=4946 [82] = https://curl.haxx.se/bug/?i=4947 [83] = https://curl.haxx.se/bug/?i=4943 [84] = https://curl.haxx.se/bug/?i=4936 [85] = https://curl.haxx.se/bug/?i=4914 [86] = https://curl.haxx.se/bug/?i=4939 [87] = https://curl.haxx.se/bug/?i=4953 [88] = https://curl.haxx.se/bug/?i=4976 [89] = https://curl.haxx.se/bug/?i=4949 [90] = https://curl.haxx.se/bug/?i=4892 [91] = https://curl.haxx.se/bug/?i=4973 [92] = https://curl.haxx.se/bug/?i=4970 [93] = https://curl.haxx.se/bug/?i=4967 [94] = https://curl.haxx.se/bug/?i=4968 [95] = https://curl.haxx.se/bug/?i=4959 [96] = https://curl.haxx.se/bug/?i=4966 [97] = https://curl.haxx.se/bug/?i=4911 [98] = https://curl.haxx.se/bug/?i=4984 [99] = https://curl.haxx.se/bug/?i=5007 [100] = https://curl.haxx.se/bug/?i=4975 [101] = https://curl.haxx.se/bug/?i=5005 [102] = https://curl.haxx.se/bug/?i=4980 [103] = https://curl.haxx.se/mail/archive-2020-02/0011.html [104] = https://curl.haxx.se/bug/?i=4996 [105] = https://curl.haxx.se/bug/?i=5013 [106] = https://curl.haxx.se/bug/?i=4956 [107] = https://curl.haxx.se/bug/?i=5016 [108] = https://curl.haxx.se/bug/?i=4979 [109] = https://curl.haxx.se/bug/?i=4928 [110] = https://curl.haxx.se/bug/?i=5025 |
Changes to jni/curl/configure.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for curl -. # # Report bugs to <a suitable curl mailing list: https://curl.haxx.se/mail/>. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for curl -. # # Report bugs to <a suitable curl mailing list: https://curl.haxx.se/mail/>. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # Copyright (c) 1998 - 2020 Daniel Stenberg, <daniel@haxx.se> # This configure script may be copied, distributed and modified under the # terms of the curl license; see COPYING for more details ## -------------------------------- ## ## XC_CONFIGURE_PREAMBLE ver: 1.0 ## ## -------------------------------- ## |
︙ | ︙ | |||
910 911 912 913 914 915 916 917 918 919 920 921 922 923 | USE_NGTCP2 USE_NGHTTP2 IDN_ENABLED CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_FALSE CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_TRUE CURL_LT_SHLIB_VERSIONED_FLAVOUR USE_LIBRTMP USE_LIBSSH USE_LIBSSH2 LIBMETALINK_CPPFLAGS LIBMETALINK_LDFLAGS LIBMETALINK_LIBS USE_LIBPSL_FALSE USE_LIBPSL_TRUE | > | 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 | USE_NGTCP2 USE_NGHTTP2 IDN_ENABLED CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_FALSE CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_TRUE CURL_LT_SHLIB_VERSIONED_FLAVOUR USE_LIBRTMP USE_WOLFSSH USE_LIBSSH USE_LIBSSH2 LIBMETALINK_CPPFLAGS LIBMETALINK_LDFLAGS LIBMETALINK_LIBS USE_LIBPSL_FALSE USE_LIBPSL_TRUE |
︙ | ︙ | |||
1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 | with_ca_bundle with_ca_path with_ca_fallback with_libpsl with_libmetalink with_libssh2 with_libssh with_librtmp enable_versioned_symbols with_winidn with_libidn2 with_nghttp2 with_ngtcp2 with_nghttp3 | > | 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 | with_ca_bundle with_ca_path with_ca_fallback with_libpsl with_libmetalink with_libssh2 with_libssh with_wolfssh with_librtmp enable_versioned_symbols with_winidn with_libidn2 with_nghttp2 with_ngtcp2 with_nghttp3 |
︙ | ︙ | |||
2055 2056 2057 2058 2059 2060 2061 | --with-ca-fallback Use the built in CA store of the SSL library --without-ca-fallback Don't use the built in CA store of the SSL library --without-libpsl disable support for libpsl cookie checking --with-libmetalink=PATH where to look for libmetalink, PATH points to the installation root --without-libmetalink disable libmetalink detection --with-libssh2=PATH Where to look for libssh2, PATH points to the | | | | | > > > > > | 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 | --with-ca-fallback Use the built in CA store of the SSL library --without-ca-fallback Don't use the built in CA store of the SSL library --without-libpsl disable support for libpsl cookie checking --with-libmetalink=PATH where to look for libmetalink, PATH points to the installation root --without-libmetalink disable libmetalink detection --with-libssh2=PATH Where to look for libssh2, PATH points to the libssh2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option --with-libssh2 enable libssh2 --with-libssh=PATH Where to look for libssh, PATH points to the libssh installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option --with-libssh enable libssh --with-wolfssh=PATH Where to look for wolfssh, PATH points to the wolfSSH installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option --with-wolfssh enable wolfssh --with-librtmp=PATH Where to look for librtmp, PATH points to the LIBRTMP installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option --without-librtmp disable LIBRTMP --with-winidn=PATH enable Windows native IDN --without-winidn disable Windows native IDN |
︙ | ︙ | |||
2174 2175 2176 2177 2178 2179 2180 | curl configure - generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. | | | 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 | curl configure - generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright (c) 1998 - 2020 Daniel Stenberg, <daniel@haxx.se> This configure script may be copied, distributed and modified under the terms of the curl license; see COPYING for more details _ACEOF exit fi ## ------------------------ ## |
︙ | ︙ | |||
8765 8766 8767 8768 8769 8770 8771 | ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} | | | 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 | ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cr} |
︙ | ︙ | |||
10483 10484 10485 10486 10487 10488 10489 | else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 | | | | 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 | else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cr libconftest.a conftest.o" >&5 $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err |
︙ | ︙ | |||
26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26072 26073 26074 26075 | { $as_echo "$as_me:${as_lineno-$LINENO}: libmetalink library defective or too old" >&5 $as_echo "$as_me: libmetalink library defective or too old" >&6;} want_metalink="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" LIBS="$clean_LIBS" if test "$want_metalink" = "yes"; then $as_echo "#define USE_METALINK 1" >>confdefs.h | > > > > > > > | 26069 26070 26071 26072 26073 26074 26075 26076 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 | { $as_echo "$as_me:${as_lineno-$LINENO}: libmetalink library defective or too old" >&5 $as_echo "$as_me: libmetalink library defective or too old" >&6;} want_metalink="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$OPENSSL_ENABLED" != "x1" -a "x$USE_WINDOWS_SSPI" != "x1" \ -a "x$GNUTLS_ENABLED" != "x1" -a "x$NSS_ENABLED" != "x1" \ -a "x$SECURETRANSPORT_ENABLED" != "x1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: metalink support requires a compatible SSL/TLS backend" >&5 $as_echo "$as_me: WARNING: metalink support requires a compatible SSL/TLS backend" >&2;} want_metalink="no" fi CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" LIBS="$clean_LIBS" if test "$want_metalink" = "yes"; then $as_echo "#define USE_METALINK 1" >>confdefs.h |
︙ | ︙ | |||
26102 26103 26104 26105 26106 26107 26108 26109 26110 26111 26112 26113 26114 26115 | # Check whether --with-libssh was given. if test "${with_libssh+set}" = set; then : withval=$with_libssh; OPT_LIBSSH=$withval else OPT_LIBSSH=no fi if test X"$OPT_LIBSSH2" != Xno; then CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" case "$OPT_LIBSSH2" in | > > > > > > > > > > | 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26132 26133 26134 26135 26136 26137 26138 26139 | # Check whether --with-libssh was given. if test "${with_libssh+set}" = set; then : withval=$with_libssh; OPT_LIBSSH=$withval else OPT_LIBSSH=no fi OPT_WOLFSSH=off # Check whether --with-wolfssh was given. if test "${with_wolfssh+set}" = set; then : withval=$with_wolfssh; OPT_WOLFSSH=$withval else OPT_WOLFSSH=no fi if test X"$OPT_LIBSSH2" != Xno; then CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" case "$OPT_LIBSSH2" in |
︙ | ︙ | |||
26591 26592 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 | fi fi else LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi fi OPT_LIBRTMP=off # Check whether --with-librtmp was given. if test "${with_librtmp+set}" = set; then : | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 26615 26616 26617 26618 26619 26620 26621 26622 26623 26624 26625 26626 26627 26628 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26654 26655 26656 26657 26658 26659 26660 26661 26662 26663 26664 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 | fi fi else LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi elif test X"$OPT_WOLFSSH" != Xno; then CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" if test "$OPT_WOLFSSH" != yes; then WOLFCONFIG="$OPT_WOLFSSH/bin/wolfssh-config" LDFLAGS="$LDFLAGS `$WOLFCONFIG --libs`" CPPFLAGS="$CPPFLAGS `$WOLFCONFIG --cflags`" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSH_Init in -lwolfssh" >&5 $as_echo_n "checking for wolfSSH_Init in -lwolfssh... " >&6; } if ${ac_cv_lib_wolfssh_wolfSSH_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwolfssh $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __cplusplus extern "C" #endif char wolfSSH_Init (); int main (void) { return wolfSSH_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_wolfssh_wolfSSH_Init=yes else ac_cv_lib_wolfssh_wolfSSH_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wolfssh_wolfSSH_Init" >&5 $as_echo "$ac_cv_lib_wolfssh_wolfSSH_Init" >&6; } if test "x$ac_cv_lib_wolfssh_wolfSSH_Init" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBWOLFSSH 1 _ACEOF LIBS="-lwolfssh $LIBS" fi for ac_header in wolfssh/ssh.h do : ac_fn_c_check_header_mongrel "$LINENO" "wolfssh/ssh.h" "ac_cv_header_wolfssh_ssh_h" "$ac_includes_default" if test "x$ac_cv_header_wolfssh_ssh_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WOLFSSH_SSH_H 1 _ACEOF curl_ssh_msg="enabled (wolfSSH)" WOLFSSH_ENABLED=1 $as_echo "#define USE_WOLFSSH 1" >>confdefs.h USE_WOLFSSH=1 fi done fi OPT_LIBRTMP=off # Check whether --with-librtmp was given. if test "${with_librtmp+set}" = set; then : |
︙ | ︙ | |||
27639 27640 27641 27642 27643 27644 27645 | { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_H2" >&5 $as_echo "$as_me: -L is $LD_H2" >&6;} LDFLAGS="$LDFLAGS $LD_H2" CPPFLAGS="$CPPFLAGS $CPP_H2" LIBS="$LIB_H2 $LIBS" | | | | | | | | | | | | | | 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 27758 27759 27760 27761 27762 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 | { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_H2" >&5 $as_echo "$as_me: -L is $LD_H2" >&6;} LDFLAGS="$LDFLAGS $LD_H2" CPPFLAGS="$CPPFLAGS $CPP_H2" LIBS="$LIB_H2 $LIBS" # use nghttp2_session_set_local_window_size to require nghttp2 # >= 1.12.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp2_session_set_local_window_size in -lnghttp2" >&5 $as_echo_n "checking for nghttp2_session_set_local_window_size in -lnghttp2... " >&6; } if ${ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnghttp2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __cplusplus extern "C" #endif char nghttp2_session_set_local_window_size (); int main (void) { return nghttp2_session_set_local_window_size (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size=yes else ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size" >&5 $as_echo "$ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size" >&6; } if test "x$ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size" = xyes; then : for ac_header in nghttp2/nghttp2.h do : ac_fn_c_check_header_mongrel "$LINENO" "nghttp2/nghttp2.h" "ac_cv_header_nghttp2_nghttp2_h" "$ac_includes_default" if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NGHTTP2_NGHTTP2_H 1 |
︙ | ︙ | |||
42934 42935 42936 42937 42938 42939 42940 42941 42942 42943 42944 42945 42946 42947 | fi fi if test "x$USE_LIBSSH2" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_LIBSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$CURL_DISABLE_RTSP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" fi if test "x$USE_LIBRTMP" = "x1"; then | > > > > | 43033 43034 43035 43036 43037 43038 43039 43040 43041 43042 43043 43044 43045 43046 43047 43048 43049 43050 | fi fi if test "x$USE_LIBSSH2" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_LIBSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_WOLFSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$CURL_DISABLE_RTSP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" fi if test "x$USE_LIBRTMP" = "x1"; then |
︙ | ︙ |
Changes to jni/curl/configure.ac.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
27 28 29 30 31 32 33 | AC_INIT([curl], [-], [a suitable curl mailing list: https://curl.haxx.se/mail/]) XC_OVR_ZZ50 XC_OVR_ZZ60 CURL_OVERRIDE_AUTOCONF dnl configure script copyright | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | AC_INIT([curl], [-], [a suitable curl mailing list: https://curl.haxx.se/mail/]) XC_OVR_ZZ50 XC_OVR_ZZ60 CURL_OVERRIDE_AUTOCONF dnl configure script copyright AC_COPYRIGHT([Copyright (c) 1998 - 2020 Daniel Stenberg, <daniel@haxx.se> This configure script may be copied, distributed and modified under the terms of the curl license; see COPYING for more details]) AC_CONFIG_SRCDIR([lib/urldata.h]) AC_CONFIG_HEADERS(lib/curl_config.h) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE |
︙ | ︙ | |||
2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 | AC_MSG_RESULT([yes ($version)]) want_metalink="yes" ],[ AC_MSG_RESULT([no ($version)]) AC_MSG_NOTICE([libmetalink library defective or too old]) want_metalink="no" ]) CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" LIBS="$clean_LIBS" if test "$want_metalink" = "yes"; then dnl finally libmetalink will be used AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support]) LIBMETALINK_LIBS=$addlib | > > > > > > | 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 | AC_MSG_RESULT([yes ($version)]) want_metalink="yes" ],[ AC_MSG_RESULT([no ($version)]) AC_MSG_NOTICE([libmetalink library defective or too old]) want_metalink="no" ]) if test "x$OPENSSL_ENABLED" != "x1" -a "x$USE_WINDOWS_SSPI" != "x1" \ -a "x$GNUTLS_ENABLED" != "x1" -a "x$NSS_ENABLED" != "x1" \ -a "x$SECURETRANSPORT_ENABLED" != "x1"; then AC_MSG_WARN([metalink support requires a compatible SSL/TLS backend]) want_metalink="no" fi CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" LIBS="$clean_LIBS" if test "$want_metalink" = "yes"; then dnl finally libmetalink will be used AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support]) LIBMETALINK_LIBS=$addlib |
︙ | ︙ | |||
2791 2792 2793 2794 2795 2796 2797 | dnl ********************************************************************** dnl Check for the presence of LIBSSH2 libraries and headers dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBSSH2 files & libraries. OPT_LIBSSH2=off AC_ARG_WITH(libssh2,dnl | | | | | > > > > > > | 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 | dnl ********************************************************************** dnl Check for the presence of LIBSSH2 libraries and headers dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBSSH2 files & libraries. OPT_LIBSSH2=off AC_ARG_WITH(libssh2,dnl AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the libssh2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) AC_HELP_STRING([--with-libssh2], [enable libssh2]), OPT_LIBSSH2=$withval, OPT_LIBSSH2=no) OPT_LIBSSH=off AC_ARG_WITH(libssh,dnl AC_HELP_STRING([--with-libssh=PATH],[Where to look for libssh, PATH points to the libssh installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) AC_HELP_STRING([--with-libssh], [enable libssh]), OPT_LIBSSH=$withval, OPT_LIBSSH=no) OPT_WOLFSSH=off AC_ARG_WITH(wolfssh,dnl AC_HELP_STRING([--with-wolfssh=PATH],[Where to look for wolfssh, PATH points to the wolfSSH installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) AC_HELP_STRING([--with-wolfssh], [enable wolfssh]), OPT_WOLFSSH=$withval, OPT_WOLFSSH=no) if test X"$OPT_LIBSSH2" != Xno; then dnl backup the pre-libssh2 variables CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" case "$OPT_LIBSSH2" in |
︙ | ︙ | |||
2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 | fi else dnl no libssh, revert back to clean variables LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi fi dnl ********************************************************************** dnl Check for the presence of LIBRTMP libraries and headers dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBRTMP files & libraries. | > > > > > > > > > > > > > > > > > > > > > > | 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 | fi else dnl no libssh, revert back to clean variables LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi elif test X"$OPT_WOLFSSH" != Xno; then dnl backup the pre-wolfssh variables CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" if test "$OPT_WOLFSSH" != yes; then WOLFCONFIG="$OPT_WOLFSSH/bin/wolfssh-config" LDFLAGS="$LDFLAGS `$WOLFCONFIG --libs`" CPPFLAGS="$CPPFLAGS `$WOLFCONFIG --cflags`" fi AC_CHECK_LIB(wolfssh, wolfSSH_Init) AC_CHECK_HEADERS(wolfssh/ssh.h, curl_ssh_msg="enabled (wolfSSH)" WOLFSSH_ENABLED=1 AC_DEFINE(USE_WOLFSSH, 1, [if wolfSSH is in use]) AC_SUBST(USE_WOLFSSH, [1]) ) fi dnl ********************************************************************** dnl Check for the presence of LIBRTMP libraries and headers dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBRTMP files & libraries. |
︙ | ︙ | |||
3347 3348 3349 3350 3351 3352 3353 | $PKGCONFIG --libs-only-L libnghttp2` AC_MSG_NOTICE([-L is $LD_H2]) LDFLAGS="$LDFLAGS $LD_H2" CPPFLAGS="$CPPFLAGS $CPP_H2" LIBS="$LIB_H2 $LIBS" | | | | | 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 | $PKGCONFIG --libs-only-L libnghttp2` AC_MSG_NOTICE([-L is $LD_H2]) LDFLAGS="$LDFLAGS $LD_H2" CPPFLAGS="$CPPFLAGS $CPP_H2" LIBS="$LIB_H2 $LIBS" # use nghttp2_session_set_local_window_size to require nghttp2 # >= 1.12.0 AC_CHECK_LIB(nghttp2, nghttp2_session_set_local_window_size, [ AC_CHECK_HEADERS(nghttp2/nghttp2.h, curl_h2_msg="enabled (nghttp2)" NGHTTP2_ENABLED=1 AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use]) AC_SUBST(USE_NGHTTP2, [1]) ) |
︙ | ︙ | |||
3691 3692 3693 3694 3695 3696 3697 | ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) else | | | | 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 | ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) else dnl no quiche pkg-config found, deal with it if test X"$want_quiche" != Xdefault; then dnl To avoid link errors, we do not allow --with-quiche without dnl a pkgconfig file AC_MSG_ERROR([--with-quiche was specified but could not find quiche pkg-config file.]) fi fi fi dnl ********************************************************************** |
︙ | ︙ | |||
4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 | fi fi if test "x$USE_LIBSSH2" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_LIBSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$CURL_DISABLE_RTSP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" fi if test "x$USE_LIBRTMP" = "x1"; then | > > > > | 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 | fi fi if test "x$USE_LIBSSH2" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_LIBSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$USE_WOLFSSH" = "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi if test "x$CURL_DISABLE_RTSP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" fi if test "x$USE_LIBRTMP" = "x1"; then |
︙ | ︙ |
Changes to jni/curl/docs/DEPRECATE.md.
1 2 3 4 5 6 7 | # Items to be removed from future curl releases If any of these deprecated features is a cause for concern for you, please email the curl-library mailing list as soon as possible and explain to us why this is a problem for you and how your use case can't be satisfied properly using a work around. | < | < < < < < < < < | < < < | < | < < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 | # Items to be removed from future curl releases If any of these deprecated features is a cause for concern for you, please email the curl-library mailing list as soon as possible and explain to us why this is a problem for you and how your use case can't be satisfied properly using a work around. ## Past removals - Pipelining - axTLS - PolarSSL |
Changes to jni/curl/docs/GOVERNANCE.md.
︙ | ︙ | |||
14 15 16 17 18 19 20 | to listen in to what the project and the general user population wants and expects from us. ## Legal entity There is no legal entity. The curl project is just a bunch of people scattered around the globe with the common goal to produce source code that creates | | > > > > > > > > > > > > > > > > > > > > > > > | 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 | to listen in to what the project and the general user population wants and expects from us. ## Legal entity There is no legal entity. The curl project is just a bunch of people scattered around the globe with the common goal to produce source code that creates great products. We are not part of any umbrella organization and we are not located in any specific country. We are totally independent. The copyrights in the project are owned by the individuals and organizations that wrote those parts of the code. ## Decisions The curl project is not a democracy, but everyone is entitled to state their opinion and may argue for their sake within the community. All and any changes that have been done or will be done are eligible to bring up for discussion, to object to or to praise. Ideally, we find consensus for the appropriate way forward in any given situation or challenge. If there is no obvious consensus, a maintainer who's knowledgeable in the specific area will take an "executive" decision that they think is the right for the project. ## Donations Donating plain money to curl is best done to curl's [Open Collective fund](https://opencollective.com/curl). Open Collective is a US based non-profit organization that holds on to funds for us. This fund is then used for paying the curl security bug bounties, to reimburse project related expenses etc. Donations to the project can also come in form of server hosting, providing services and paying for people to work on curl related code etc. Usually, such donations are services paid for directly by the sponsors. We grade sponsors in a few different levels and if they meet the criterias, they can be mentioned on the Sponsors page on the curl web site. ## Commercial Support The curl project does not do or offer commercial support. It only hosts mailing lists, runs bug trackers etc to facilitate communication and work. However, Daniel works for wolfSSL and we offer commercial curl support there. ## Key roles ### Maintainers A maintainer in the curl project is an individual who has been given permissions to push commits to one of the git repositories. |
︙ | ︙ | |||
104 105 106 107 108 109 110 | - only merge code that meets our quality and style guide requirements. - *never* merge code without doing a PR first, unless the change is "trivial" - if in doubt, ask for input/feedback from others ### Recommendations | | | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | - only merge code that meets our quality and style guide requirements. - *never* merge code without doing a PR first, unless the change is "trivial" - if in doubt, ask for input/feedback from others ### Recommendations - we require two-factor authentication enabled on your github account to reduce risk of malicious source code tampering - consider enabling signed git commits for additional verification of changes ### Merge advice When you're merging patches/PRs... - make sure the commit messages follow our template |
︙ | ︙ |
Changes to jni/curl/docs/HTTP-COOKIES.md.
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | The netscape cookie file format stores one cookie per physical line in the file with a bunch of associated meta data, each field separated with TAB. That file is called the cookiejar in curl terminology. When libcurl saves a cookiejar, it creates a file header of its own in which there is a URL mention that will link to the web version of this document. ## Cookies with curl the command line tool curl has a full cookie "engine" built in. If you just activate it, you can have curl receive and send cookies exactly as mandated in the specs. Command line options: | > > > > > > > > > > > > > > > > > > > > > | 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 | The netscape cookie file format stores one cookie per physical line in the file with a bunch of associated meta data, each field separated with TAB. That file is called the cookiejar in curl terminology. When libcurl saves a cookiejar, it creates a file header of its own in which there is a URL mention that will link to the web version of this document. ## Cookie file format The cookie file format is text based and stores one cookie per line. Lines that start with `#` are treated as comments. Each line that each specifies a single cookie consists of seven text fields separated with TAB characters. A valid line must end with a newline character. ### Fields in the file Field number, what type and example data and the meaning of it: 0. string `example.com` - the domain name 1. boolean `FALSE` - include subdomains 2. string `/foobar/` - path 3. boolean `TRUE` - send/receive over HTTPS only 4. number `1462299217` - expires at - seconds since Jan 1st 1970, or 0 5. string `person` - name of the cookie 6. string `daniel` - value of the cookie ## Cookies with curl the command line tool curl has a full cookie "engine" built in. If you just activate it, you can have curl receive and send cookies exactly as mandated in the specs. Command line options: |
︙ | ︙ |
Changes to jni/curl/docs/HTTP3.md.
︙ | ︙ | |||
29 30 31 32 33 34 35 | # ngtcp2 version ## Build Build (patched) OpenSSL | | | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # ngtcp2 version ## Build Build (patched) OpenSSL % git clone --depth 1 -b OpenSSL_1_1_1d-quic-draft-27 https://github.com/tatsuhiro-t/openssl % cd openssl % ./config enable-tls1_3 --prefix=<somewhere1> % make % make install_sw Build nghttp3 |
︙ | ︙ | |||
61 62 63 64 65 66 67 | Build curl % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf | | | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | Build curl % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf % LDFLAGS="-Wl,-rpath,<somewhere1>/lib" ./configure --with-ssl=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3> --enable-alt-svc % make # quiche version ## build Clone quiche and BoringSSL: |
︙ | ︙ | |||
89 90 91 92 93 94 95 | % ln -s $PWD/include .openssl Build quiche: % cd ../.. % QUICHE_BSSL_PATH=$PWD/deps/boringssl cargo build --release --features pkg-config-meta | | | | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | % ln -s $PWD/include .openssl Build quiche: % cd ../.. % QUICHE_BSSL_PATH=$PWD/deps/boringssl cargo build --release --features pkg-config-meta Build curl: % cd .. % git clone https://github.com/curl/curl % cd curl % ./buildconf % ./configure LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" --with-ssl=$PWD/../quiche/deps/boringssl/.openssl --with-quiche=$PWD/../quiche/target/release --enable-alt-svc % make ## Run Use HTTP/3 directly: curl --http3 https://nghttp2.org:8443/ Upgrade via Alt-Svc: curl --alt-svc altsvc.cache https://quic.aiortc.org/ See this [list of public HTTP/3 servers](https://bagder.github.io/HTTP3-test/) |
Changes to jni/curl/docs/INTERNALS.md.
︙ | ︙ | |||
93 94 95 96 97 98 99 | - wolfSSL 2.0.0 - openldap 2.0 - MIT Kerberos 1.2.4 - GSKit V5R3M0 - NSS 3.14.x - PolarSSL 1.3.0 - Heimdal ? | | | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | - wolfSSL 2.0.0 - openldap 2.0 - MIT Kerberos 1.2.4 - GSKit V5R3M0 - NSS 3.14.x - PolarSSL 1.3.0 - Heimdal ? - nghttp2 1.12.0 Operating Systems ----------------- On systems where configure runs, we aim at working on them all - if they have a suitable C compiler. On systems that don't run configure, we strive to keep curl running correctly on: |
︙ | ︙ |
Changes to jni/curl/docs/KNOWN_BUGS.
︙ | ︙ | |||
8 9 10 11 12 13 14 15 16 17 18 19 20 21 | These are problems and bugs known to exist at the time of this release. Feel free to join in and help us correct one or more of these! Also be sure to check the changelog of the current development status, as one or more of these problems may have been fixed or changed somewhat since this was written! 1. HTTP 1.3 STARTTRANSFER time is wrong for HTTP POSTs 1.4 multipart formposts file name encoding 1.5 Expect-100 meets 417 1.6 Unnecessary close when 401 received waiting for 100 1.7 Deflate error after all content was received 1.8 DoH isn't used for all name resolves when enabled 1.9 HTTP/2 frames while in the connection pool kill reuse | > | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | These are problems and bugs known to exist at the time of this release. Feel free to join in and help us correct one or more of these! Also be sure to check the changelog of the current development status, as one or more of these problems may have been fixed or changed somewhat since this was written! 1. HTTP 1.2 Multiple methods in a single WWW-Authenticate: header 1.3 STARTTRANSFER time is wrong for HTTP POSTs 1.4 multipart formposts file name encoding 1.5 Expect-100 meets 417 1.6 Unnecessary close when 401 received waiting for 100 1.7 Deflate error after all content was received 1.8 DoH isn't used for all name resolves when enabled 1.9 HTTP/2 frames while in the connection pool kill reuse |
︙ | ︙ | |||
31 32 33 34 35 36 37 | 2.7 Client cert (MTLS) issues with Schannel 2.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname 2.9 TLS session cache doesn't work with TFO 3. Email protocols 3.1 IMAP SEARCH ALL truncated response 3.2 No disconnect command | < | > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 2.7 Client cert (MTLS) issues with Schannel 2.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname 2.9 TLS session cache doesn't work with TFO 3. Email protocols 3.1 IMAP SEARCH ALL truncated response 3.2 No disconnect command 3.3 POP3 expects "CRLF.CRLF" eob for some single-line responses 3.4 AUTH PLAIN for SMTP is not working on all servers 4. Command line 4.1 -J and -O with %-encoded file names 4.2 -J with -C - fails 4.3 --retry and transfer timeouts 4.4 --upload-file . hang if delay in STDIN 4.5 Improve --data-urlencode space encoding |
︙ | ︙ | |||
82 83 84 85 86 87 88 | 8.1 TELNET and time limitations don't work 8.2 Microsoft telnet server 9. SFTP and SCP 9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct 10. SOCKS | < < | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | 8.1 TELNET and time limitations don't work 8.2 Microsoft telnet server 9. SFTP and SCP 9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct 10. SOCKS 10.3 FTPS over SOCKS 10.4 active FTP over a SOCKS 11. Internals 11.1 Curl leaks .onion hostnames in DNS 11.2 error buffer not set if connection to multiple addresses fails 11.3 c-ares deviates from stock resolver on http://1346569778 |
︙ | ︙ | |||
111 112 113 114 115 116 117 118 119 120 121 122 123 124 | 14 DICT 14.1 DICT responses show the underlying protocol ============================================================================== 1. HTTP 1.3 STARTTRANSFER time is wrong for HTTP POSTs Wrong STARTTRANSFER timer accounting for POST requests Timer works fine with GET requests, but while using POST the time for CURLINFO_STARTTRANSFER_TIME is wrong. While using POST CURLINFO_STARTTRANSFER_TIME minus CURLINFO_PRETRANSFER_TIME is near to zero every time. | > > > > > > > | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | 14 DICT 14.1 DICT responses show the underlying protocol ============================================================================== 1. HTTP 1.2 Multiple methods in a single WWW-Authenticate: header The HTTP responses headers WWW-Authenticate: can provide information about multiple authentication methods as multiple headers or as several methods within a single header. The latter way, several methods in the same physical line, is not supported by libcurl's parser. (For no good reason.) 1.3 STARTTRANSFER time is wrong for HTTP POSTs Wrong STARTTRANSFER timer accounting for POST requests Timer works fine with GET requests, but while using POST the time for CURLINFO_STARTTRANSFER_TIME is wrong. While using POST CURLINFO_STARTTRANSFER_TIME minus CURLINFO_PRETRANSFER_TIME is near to zero every time. |
︙ | ︙ | |||
139 140 141 142 143 144 145 | ought to be automatically resent without the Expect:. A workaround is for the client application to redo the transfer after disabling Expect:. https://curl.haxx.se/mail/archive-2008-02/0043.html 1.6 Unnecessary close when 401 received waiting for 100 libcurl closes the connection if an HTTP 401 reply is received while it is | | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | ought to be automatically resent without the Expect:. A workaround is for the client application to redo the transfer after disabling Expect:. https://curl.haxx.se/mail/archive-2008-02/0043.html 1.6 Unnecessary close when 401 received waiting for 100 libcurl closes the connection if an HTTP 401 reply is received while it is waiting for the 100-continue response. https://curl.haxx.se/mail/lib-2008-08/0462.html 1.7 Deflate error after all content was received There's a situation where we can get an error in a HTTP response that is compressed, when that error is detected after all the actual body contents have been received and delivered to the application. This is tricky, but is |
︙ | ︙ | |||
271 272 273 274 275 276 277 | https://curl.haxx.se/bug/view.cgi?id=1366 3.2 No disconnect command The disconnect commands (LOGOUT and QUIT) may not be sent by IMAP, POP3 and SMTP if a failure occurs during the authentication phase of a connection. | < < < < < < < < | > > > > > > | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | https://curl.haxx.se/bug/view.cgi?id=1366 3.2 No disconnect command The disconnect commands (LOGOUT and QUIT) may not be sent by IMAP, POP3 and SMTP if a failure occurs during the authentication phase of a connection. 3.3 POP3 expects "CRLF.CRLF" eob for some single-line responses You have to tell libcurl not to expect a body, when dealing with one line response commands. Please see the POP3 examples and test cases which show this for the NOOP and DELE commands. https://curl.haxx.se/bug/?i=740 3.4 AUTH PLAIN for SMTP is not working on all servers Specifying "--login-options AUTH=PLAIN" on the command line doesn't seem to work correctly. See https://github.com/curl/curl/issues/4080 4. Command line 4.1 -J and -O with %-encoded file names -J/--remote-header-name doesn't decode %-encoded file names. RFC6266 details how it should be done. The can of worm is basically that we have no charset |
︙ | ︙ | |||
611 612 613 614 615 616 617 | prematurely. There is a half-baked (busy-looping) patch provided in the bug report but it cannot be accepted as-is. See https://curl.haxx.se/bug/view.cgi?id=748 10. SOCKS | < < < < < < < < < < < < < < < | 615 616 617 618 619 620 621 622 623 624 625 626 627 628 | prematurely. There is a half-baked (busy-looping) patch provided in the bug report but it cannot be accepted as-is. See https://curl.haxx.se/bug/view.cgi?id=748 10. SOCKS 10.3 FTPS over SOCKS libcurl doesn't support FTPS over a SOCKS proxy. 10.4 active FTP over a SOCKS libcurl doesn't support active FTP over a SOCKS proxy |
︙ | ︙ |
Changes to jni/curl/docs/Makefile.in.
︙ | ︙ | |||
390 391 392 393 394 395 396 397 398 399 400 401 402 403 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/docs/RELEASE-PROCEDURE.md.
︙ | ︙ | |||
57 58 59 60 61 62 63 | --------- - suitable beverage intake is encouraged for the festivities curl release scheduling ======================= | | | | > > > > > > > > > | < | | | | | | | 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 96 97 98 99 100 101 102 103 104 105 106 | --------- - suitable beverage intake is encouraged for the festivities curl release scheduling ======================= Release Cycle ------------- We do releases every 8 weeks on Wednesdays. If critical problems arise, we can insert releases outside of the schedule or we can move the release date - but this is rare. Each 8 week release cycle is split in two 4-week periods. - During the first 4 weeks after a release, we allow new features and changes to curl and libcurl. If we accept any such changes, we bump the minor number used for the next release. - During the second 4-week period we do not merge any features or changes, we then only focus on fixing bugs and polishing things to make a solid coming release. - After a regular procedure-following release (made on Wednesdays), the feature window remains closed until the following Monday in case of special actions or patch releases etc. If a future release date happens to end up on a "bad date", like in the middle of common public holidays or when the lead release manager is away traveling, the release date can be moved forwards or backwards a full week. This is then advertised well in advance. Coming dates ------------ Based on the description above, here are some planned release dates (at the time of this writing): - March 4, 2020 (7.69.0) - April 29, 2020 - June 24, 2020 - August 19, 2020 - October 14, 2020 - December 9, 2020 - February 3, 2021 The above (and more) curl-related dates are published in [iCalendar format](https://calendar.google.com/calendar/ical/c9u5d64odop9js55oltfarjk6g%40group.calendar.google.com/public/basic.ics) as well. |
Changes to jni/curl/docs/ROADMAP.md.
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 | -------------------- See Daniel's post on [Support of Encrypted SNI](https://curl.haxx.se/mail/lib-2019-03/0000.html) on the mailing list. Initial work exists in https://github.com/curl/curl/pull/4011 tiny-curl --------- There's no immediate action for this but users seem keen on being able to building custom minimized versions of libcurl for their products. Make sure new features that are "niche" can still be disabled at build-time. | > > > > > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | -------------------- See Daniel's post on [Support of Encrypted SNI](https://curl.haxx.se/mail/lib-2019-03/0000.html) on the mailing list. Initial work exists in https://github.com/curl/curl/pull/4011 thread-safe `curl_global_init()` -------------------------------- Fix the libcurl specific parts of the function to be thread-safe. Make sure it can be thread-safe if built with thread-safe 3rd party libraries. (probably can't include `curl_global_init_mem()` for obvious reasons) tiny-curl --------- There's no immediate action for this but users seem keen on being able to building custom minimized versions of libcurl for their products. Make sure new features that are "niche" can still be disabled at build-time. |
︙ | ︙ |
Changes to jni/curl/docs/THANKS.
1 2 3 4 5 6 | This project has been alive for many years. Countless people have provided feedback that have improved curl. Here follows a list of people that have contributed (a-z order). If you have contributed but are missing here, please let us know! | < < > > > > > > < | 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 | This project has been alive for many years. Countless people have provided feedback that have improved curl. Here follows a list of people that have contributed (a-z order). If you have contributed but are missing here, please let us know! 1ocalhost on github 3dyd on github Aaro Koskinen Aaron Oneal Aaron Orenstein Aaron Scarisbrick aasivov on github Abram Pousada accountantM on github AceCrow on Github Adam Barclay Adam Brown Adam Coyne Adam D. Moss Adam Langley Adam Light Adam Marcionek Adam Piggott Adam Sampson Adam Tkac adnn on github Adrian Burcea Adrian Peniak Adrian Schuur Adriano Meirelles afrind on github ahodesuka on github Ajit Dhumale Akhil Kedia Aki Koskinen Akos Pasztory Akshay Vernekar Alain Danteny Alan Jenkins Alan Pinstein Albert Chin-A-Young Albert Choy Alejandro Alvarez Ayllon Alejandro R. Sedeño Aleksandar Milivojevic Aleksey Tulinov Ales Mlakar Ales Novak Alessandro Ghedini Alessandro Vesely Alex aka WindEagle Alex Baines Alex Bligh Alex Chan Alex Fishman Alex Grebenschikov Alex Gruz Alex Konev Alex Malinovich Alex Mayorga Alex McLellan Alex Neblett Alex Nichols Alex Potapenko Alex Rousskov Alex Samorukov Alex Suykov Alex Vinnik Alexander Beedie Alexander Dyagilev Alexander Elgert Alexander Klauer Alexander Kourakos Alexander Krasnostavsky Alexander Lazic |
︙ | ︙ | |||
90 91 92 93 94 95 96 97 98 99 100 101 102 103 | Alona Rossen Amit Katyal Amol Pattekar Amr Shahin Anatol Belski Anatoli Tubman Anders Bakken Anders Gustafsson Anders Havn Anders Roxell Anderson Sasaki Anderson Toshiyuki Sasaki Andi Jahja Andre Guibert de Bruet | > | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | Alona Rossen Amit Katyal Amol Pattekar Amr Shahin Anatol Belski Anatoli Tubman Anders Bakken Anders Berg Anders Gustafsson Anders Havn Anders Roxell Anderson Sasaki Anderson Toshiyuki Sasaki Andi Jahja Andre Guibert de Bruet |
︙ | ︙ | |||
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | Andrei Sedoi Andrei Valeriu BICA Andrei Virtosu Andrej E Baranov Andrew Benham Andrew Biggs Andrew Bushnell Andrew Francis Andrew Fuller Andrew Ishchuk Andrew Krieger Andrew Kurushin Andrew Lambert Andrew Moise Andrew Robbins Andrew Wansink | > > < > > > > > > > > | 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 159 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 | Andrei Sedoi Andrei Valeriu BICA Andrei Virtosu Andrej E Baranov Andrew Benham Andrew Biggs Andrew Bushnell Andrew de los Reyes Andrew Francis Andrew Fuller Andrew Ishchuk Andrew Krieger Andrew Kurushin Andrew Lambert Andrew Moise Andrew Potter Andrew Robbins Andrew Wansink Andrey Labunets Andrii Moiseiev Andrius Merkys Andrés García Andy Cedilnik Andy Serpa Andy Tsouladze Angus Mackay anshnd on github Anthon Pang Anthony Avina Anthony Bryan Anthony G. Basile Antoine Aubert Antoine Calando Anton Bychkov Anton Gerasimov Anton Kalmykov Anton Malov Anton Yabchinskiy Antoni Villalonga Antonio Larrosa Antony74 on github Antti Hätälä arainchik on github Archangel_SDY on github Arkadiusz Miskiewicz Armel Asselin Arnaud Compan Arnaud Ebalard Arnaud Rebillout Aron Bergman Aron Rotteveel Artak Galoyan Arthur Murray Arve Knudsen Arvid Norberg asavah on github Ashish Shukla Ask Bjørn Hansen Askar Safin Ates Goral Augustus Saunders Austin Green Avery Fay Axel Tillequin Ayoub Boudhar Balaji Parasuram Balaji S Rao Balaji Salunke Balazs Kovacsics Balint Szilakszi Barry Abrahamson Barry Pollard Bart Whiteley Bas Mevissen Bas van Schaik Bastien Bouclet Basuke Suzuki baumanj on github bdry on github Ben Boeckel Ben Darnell Ben Greear Ben Kohler Ben Madsen Ben Noordhuis Ben Van Hof |
︙ | ︙ | |||
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 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 | Bjarni Ingi Gislason Bjoern Franke Bjoern Sikora Bjorn Augustsson Bjorn Reese Björn Stenberg Blaise Potard Bob Relyea Bob Richmond Bob Schader Bogdan Nicula Brad Burdick Brad Fitzpatrick Brad Harder Brad Hards Brad King Brad Spencer Bradford Bruce Brandon Casey Brandon Dong Brandon Wang Brendan Jurd Brent Beardsley Brian Akins Brian Carpenter Brian Chaplin Brian Childs Brian Chrisman Brian Dessent Brian E. Gallew Brian J. Murrell Brian Prodoehl Brian R Duffy Brian Ulm Brock Noland Bru Rom Bruce Mitchener Bruce Stephens Bruno Grasselli Bruno Thomsen | > > > > < > > > > > > | 240 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | Bjarni Ingi Gislason Bjoern Franke Bjoern Sikora Bjorn Augustsson Bjorn Reese Björn Stenberg Blaise Potard bnfp on github Bob Relyea Bob Richmond Bob Schader bobmitchell1956 on github Bogdan Nicula Brad Burdick Brad Fitzpatrick Brad Harder Brad Hards Brad King Brad Spencer Bradford Bruce bramus on github Brandon Casey Brandon Dong Brandon Wang Brendan Jurd Brent Beardsley Brian Akins Brian Carpenter Brian Chaplin Brian Childs Brian Chrisman Brian Dessent Brian E. Gallew Brian J. Murrell Brian Prodoehl Brian R Duffy Brian Ulm Brock Noland Bru Rom Bruce Mitchener Bruce Stephens Bruno de Carvalho Bruno Grasselli Bruno Thomsen Bryan Henderson Bryan Kemp bsammon on github buzo-ffm on github bxac on github Bylon2 on github Byrial Jensen Caleb Raitto Cameron Kaiser Cameron MacMinn Camille Moncelier Caolan McNamara Captain Basil Carie Pointer Carlo Cannas Carlo Marcelo Arenas Belón Carlo Teubner Carlo Wood Carlos ORyan Carsten Lange Casey O'Donnell Catalin Patulea cbartl on github cclauss on github Chad Monroe Chandrakant Bagul Charles Kerr Charles Romestant Chen Prog Chester Liu Chih-Chung Chang |
︙ | ︙ | |||
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 | Christopher Reid Christopher Stone Chungtsun Li Ciprian Badescu Claes Jakobsson Clarence Gardner Claudio Neves Clemens Gruber Cliff Crosland Clifford Wolf Clint Clayton Clément Notin Cody Jones Cody Mack Colby Ranger Colin Blair Colin Hogben Colin Watson Colm Buckley Constantine Sapuntzakis Cory Benfield Cory Nelson Costya Shulyupin Craig A West Craig Davison Craig Markwardt | > > > > > | > > > > > < > | 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 | Christopher Reid Christopher Stone Chungtsun Li Ciprian Badescu Claes Jakobsson Clarence Gardner Claudio Neves clbr on github Clemens Gruber Cliff Crosland Clifford Wolf Clint Clayton Clément Notin cmfrolick on github codesniffer13 on github Cody Jones Cody Mack Colby Ranger Colin Blair Colin Hogben Colin Watson Colm Buckley Constantine Sapuntzakis Cory Benfield Cory Nelson Costya Shulyupin Craig A West Craig Andrews Craig Davison Craig de Stigter Craig Markwardt crazydef on github Cris Bailiff Cristian Greco Cristian Rodríguez Curt Bogmine Cynthia Coan Cyril B Cyrill Osterwalder Cédric Connes Cédric Deltheil D. Flinkmann d912e3 on github Da-Yoon Chung daboul on github Dag Ekengren Dagobert Michelsen Dair Grant Dambaev Alexander Damian Dixon Damien Adant Damien Vielpeau Dan Becker Dan Cristian Dan Donahue Dan Fandrich Dan Jacobson Dan Johnson Dan Locks Dan McNulty Dan Nelson Dan Petitt Dan Torop Dan Zitter Daniel at touchtunes Daniel Bankhead Daniel Black Daniel Cater Daniel Egger Daniel Gustafsson Daniel Hwang Daniel Jeliński Daniel Johnson Daniel Kahn Gillmor Daniel Krügler Daniel Lee Hwang Daniel Lublin Daniel Marjamäki Daniel Melani Daniel Mentz Daniel Romero Daniel Schauenberg Daniel Seither Daniel Shahaf Daniel Silverstone Daniel Steinberg Daniel Stenberg Daniel Theron Daphne Luong Dario Nieuwenhuis Dario Weißer Darryl House Darshan Mody Darío Hereñú dasimx on github Dave Dribin Dave Halbakken Dave Hamilton Dave May Dave Reisner Dave Thompson Dave Vasilevsky |
︙ | ︙ | |||
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 | David James David Kalnischkies David Kierznowski David Kimdon David L. David Lang David LeBlanc David Lord David McCreedy David Odin David Phillips David Rosenstrauch David Ryskalczyk David Sanderson David Schweikert David Shaw David Strauss David Tarendash David Thiel David Walser David Woodhouse David Wright David Yan Dengminwen Denis Chaplygin Denis Feklushkin Denis Ollier Dennis Clarke Derek Higgins Desmond O. Chang Detlef Schmier Dheeraj Sangamkar Didier Brisebourg Diego Bes Diego Casorran Dilyan Palauzov Dima Barsky Dima Pasechnik Dima Tisnek Dimitar Boevski Dimitre Dimitrov Dimitrios Apostolou Dimitrios Siganos Dimitris Sarris Dinar Dirk Eddelbuettel Dirk Feytons Dirk Manske Dmitri Shubin Dmitri Tikhonov Dmitriy Sergeyev Dmitry Bartsevich Dmitry Eremin-Solenikov Dmitry Falko Dmitry Kostjuchenko Dmitry Kurochkin Dmitry Mikhirev Dmitry Popov Dmitry Rechkin Dmitry S. Baikov Dolbneff A.V Domenico Andreoli Dominick Meglio Dominik Hölzl Dominique Leuenberger Don J Olmstead Dongliang Mu Doron Behar Doug Kaufman Doug Porter Douglas Creager Douglas E. Wegscheid Douglas Kilpatrick Douglas Mencken Douglas R. Horner Douglas Steinwand Dov Murik Drake Arconis Duane Cathey Duncan Mac-Vicar Prett Dustin Boswell Dusty Mabe Duy Phan Thanh Dwarakanath Yadavalli Dylan Ellicott Dylan Salisbury Dániel Bakai Early Ehlinger Earnestly on github Eason-Yu on github Ebenezer Ikonne Ed Morley Edin Kadribasic Edmond Yu Eduard Bloch Edward Kimmel Edward Rudd Edward Sheldrake Edward Thomson Eelco Dolstra Eetu Ojanen Egon Eckert Eldar Zaitov Eli Schwartz Elia Tufarolo Elliot Saba Ellis Pritchard Elmira A Semenova Emanuele Bovisio Emil Engler Emil Lerner Emil Romanus Emiliano Ida Emmanuel Tychon Enrico Scholz | > > > > > > > > > > > > > | 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 | David James David Kalnischkies David Kierznowski David Kimdon David L. David Lang David LeBlanc David Lopes David Lord David McCreedy David Odin David Phillips David Rosenstrauch David Ryskalczyk David Sanderson David Schweikert David Shaw David Strauss David Tarendash David Thiel David Walser David Woodhouse David Wright David Yan dbrowndan on github Dengminwen Denis Chaplygin Denis Feklushkin Denis Ollier Dennis Clarke Derek Higgins Desmond O. Chang destman on github Detlef Schmier Dheeraj Sangamkar Didier Brisebourg Diego Bes Diego Casorran Dilyan Palauzov Dima Barsky Dima Pasechnik Dima Tisnek Dimitar Boevski Dimitre Dimitrov Dimitrios Apostolou Dimitrios Siganos Dimitris Sarris Dinar Dirk Eddelbuettel Dirk Feytons Dirk Manske dkjjr89 on github dkwolfe4 on github Dmitri Shubin Dmitri Tikhonov Dmitriy Sergeyev dmitrmax on github Dmitry Bartsevich Dmitry Eremin-Solenikov Dmitry Falko Dmitry Kostjuchenko Dmitry Kurochkin Dmitry Mikhirev Dmitry Popov Dmitry Rechkin Dmitry S. Baikov dnivras on github Dolbneff A.V Domenico Andreoli Dominick Meglio Dominik Hölzl Dominique Leuenberger Don J Olmstead Dongliang Mu Doron Behar Doug Kaufman Doug Porter Douglas Creager Douglas E. Wegscheid Douglas Kilpatrick Douglas Mencken Douglas R. Horner Douglas Steinwand Dov Murik dpull on github Drake Arconis dtmsecurity on github Duane Cathey Duncan Mac-Vicar Prett Dustin Boswell Dusty Mabe Duy Phan Thanh Dwarakanath Yadavalli Dylan Ellicott Dylan Salisbury Dániel Bakai Early Ehlinger Earnestly on github Eason-Yu on github Ebenezer Ikonne Ed Morley Edgaras Janušauskas Edin Kadribasic Edmond Yu Eduard Bloch Edward Kimmel Edward Rudd Edward Sheldrake Edward Thomson Eelco Dolstra Eetu Ojanen Egon Eckert Eldar Zaitov elelel on github elephoenix on github Eli Schwartz Elia Tufarolo Elliot Saba Ellis Pritchard Elmira A Semenova elsamuko on github Emanuele Bovisio Emil Engler Emil Lerner Emil Romanus Emiliano Ida Emmanuel Tychon Enrico Scholz |
︙ | ︙ | |||
577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 | Etienne Simard Eugene Kotlyarov Evan Jordan Even Rouault Evert Pot Evgeny Grin Evgeny Turnaev Eygene Ryabinkin Fabian Frank Fabian Hiernaux Fabian Keil Fabian Ruff Fabrice Fontaine Fabrizio Ammollo Fahim Chandurwala Federico Bianchi Fedor Karpelevitch Feist Josselin Felix Hädicke Felix Kaiser | > > | | | 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 | Etienne Simard Eugene Kotlyarov Evan Jordan Even Rouault Evert Pot Evgeny Grin Evgeny Turnaev eXeC64 on github Eygene Ryabinkin Fabian Frank Fabian Hiernaux Fabian Keil Fabian Ruff Fabrice Fontaine Fabrizio Ammollo Fahim Chandurwala Faizur Rahman Federico Bianchi Fedor Karpelevitch Feist Josselin Felix Hädicke Felix Kaiser Felix von Leitner Felix Yan Feng Tu Fernando Muñoz Flavio Medeiros Florian Pritz Florian Schoppmann Florian Weimer Florin Petriuc |
︙ | ︙ | |||
679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 | Gregory Nicholls Gregory Szorc Griffin Downs Grigory Entin Guenole Bescon Guido Berhoerster Guillaume Arluison Gunter Knauf Gustaf Hui Gustavo Grieco Guy Poizat GwanYeong Kim Gwenole Beauchesne Gökhan Şengün Götz Babin-Ebell Hagai Auro Haibo Huang Hamish Mackenzie Han Han Han Qiao Hang Kin Lau Hang Su Hannes Magnusson Hanno Böck Hanno Kranzhoff | > > | 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 | Gregory Nicholls Gregory Szorc Griffin Downs Grigory Entin Guenole Bescon Guido Berhoerster Guillaume Arluison guitared on github Gunter Knauf Gustaf Hui Gustavo Grieco Guy Poizat GwanYeong Kim Gwenole Beauchesne Gökhan Şengün Götz Babin-Ebell Hagai Auro Haibo Huang Hamish Mackenzie hamstergene on github Han Han Han Qiao Hang Kin Lau Hang Su Hannes Magnusson Hanno Böck Hanno Kranzhoff |
︙ | ︙ | |||
725 726 727 728 729 730 731 732 733 734 735 736 737 738 | Herve Amblard Hidemoto Nakada Ho-chi Chen Hoi-Ho Chan Hongli Lai Howard Blaise Howard Chu Hubert Kario Huzaifa Sidhpurwala Hzhijun Ian D Allen Ian Fette Ian Ford Ian Gulliver | > | 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 | Herve Amblard Hidemoto Nakada Ho-chi Chen Hoi-Ho Chan Hongli Lai Howard Blaise Howard Chu hsiao yi Hubert Kario Huzaifa Sidhpurwala Hzhijun Ian D Allen Ian Fette Ian Ford Ian Gulliver |
︙ | ︙ | |||
746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 | Igor Novoseltsev Igor Polyakov Ihor Karpenko Iida Yosiaki Ilguiz Latypov Ilja van Sprundel Ilya Kosarev Immanuel Gregoire Inca R Ingmar Runge Ingo Ralf Blum Ingo Wilken Irfan Adilovic Ironbars13 on github Irving Wolfe Isaac Boukris Isaiah Norton Ishan SinghLevett Ithubg on github Ivan Avdeev Ivo Bellin Salarin Jack Zhang Jackarain on github Jacky Lam Jacob Barthelmeh Jacob Meuser Jacob Moshenko Jactry Zeng Jad Chamcham Jaime Fullaondo Jakub Wilk Jakub Zakrzewski James Atwill James Brown James Bursa James Cheng James Clancy James Cone James Dury James Gallagher James Griffiths James Housley James Knight James MacMillan James Slaughter Jamie Lokier | > > > > > > | 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 | Igor Novoseltsev Igor Polyakov Ihor Karpenko Iida Yosiaki Ilguiz Latypov Ilja van Sprundel Ilya Kosarev imilli on github Immanuel Gregoire Inca R infinnovation-dev on github Ingmar Runge Ingo Ralf Blum Ingo Wilken Irfan Adilovic Ironbars13 on github Irving Wolfe Isaac Boukris Isaiah Norton Ishan SinghLevett Ithubg on github Ivan Avdeev IvanoG on github Ivo Bellin Salarin iz8mbw on github Jack Zhang Jackarain on github Jacky Lam Jacob Barthelmeh Jacob Meuser Jacob Moshenko Jactry Zeng Jad Chamcham Jaime Fullaondo jakirkham on github Jakub Wilk Jakub Zakrzewski James Atwill James Brown James Bursa James Cheng James Clancy James Cone James Dury James Fuller James Gallagher James Griffiths James Housley James Knight James MacMillan James Slaughter Jamie Lokier |
︙ | ︙ | |||
801 802 803 804 805 806 807 808 809 810 811 812 813 814 | Jan Van Boghout JanB on github Janne Johansson Jared Jennings Jared Lundell Jari Aalto Jari Sundell Jason Baietto Jason Glasgow Jason Juang Jason Lee Jason Liu Jason McDonald Jason S. Priebe | > | 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 | Jan Van Boghout JanB on github Janne Johansson Jared Jennings Jared Lundell Jari Aalto Jari Sundell jasal82 on github Jason Baietto Jason Glasgow Jason Juang Jason Lee Jason Liu Jason McDonald Jason S. Priebe |
︙ | ︙ | |||
857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 | Jerry Krinock Jerry Wu Jes Badwal Jesper Jensen Jesse Chisholm Jesse Noller Jesse Tan Jie He Jim Drash Jim Freeman Jim Fuller Jim Hollinger Jim Meyering Jimmy Gaussen Jiri Dvorak Jiri Hruska Jiri Jaburek Jiří Malák Jocelyn Jaubert Joe Halpin Joe Malicki Joe Mason Joel Chen Joel Depooter Jofell Gallardo | > > | 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 | Jerry Krinock Jerry Wu Jes Badwal Jesper Jensen Jesse Chisholm Jesse Noller Jesse Tan jethrogb on github Jie He Jim Drash Jim Freeman Jim Fuller Jim Hollinger Jim Meyering Jimmy Gaussen Jiri Dvorak Jiri Hruska Jiri Jaburek Jiří Malák jnbr on github Jocelyn Jaubert Joe Halpin Joe Malicki Joe Mason Joel Chen Joel Depooter Jofell Gallardo |
︙ | ︙ | |||
919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 | John Wilkinson John-Mark Bell Johnny Luong Jojojov on github Jon DeVree Jon Grubbs Jon Nelson Jon Sargeant Jon Seymour Jon Spencer Jon Torrey Jon Travis Jon Turner Jonas Forsman Jonas Minnberg Jonas Schnelli Jonas Vautherin Jonatan Lander Jonatan Vela Jonathan Cardoso Machado Jonathan Hseu Jonathan Moerman Jonathan Nieder Jongki Suwandi Joombalaya on github Joonas Kuorilehto Jose Alf Jose Kahan Josef Wolf Josh Bialkowski Josh Kapell Joshua Kwan Joshua Swink Josie Huddleston Josue Andrade Gomes Jozef Kralik Juan Barreto Juan F. Codagnone | > > > | 978 979 980 981 982 983 984 985 986 987 988 989 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 | John Wilkinson John-Mark Bell Johnny Luong Jojojov on github Jon DeVree Jon Grubbs Jon Nelson Jon Rumsey Jon Sargeant Jon Seymour Jon Spencer Jon Torrey Jon Travis Jon Turner Jonas Forsman Jonas Minnberg Jonas Schnelli Jonas Vautherin Jonatan Lander Jonatan Vela Jonathan Cardoso Machado Jonathan Hseu Jonathan Moerman Jonathan Nieder Jongki Suwandi jonrumsey on github Joombalaya on github Joonas Kuorilehto Jose Alf Jose Kahan Josef Wolf Josh Bialkowski Josh Kapell joshhe on github Joshua Kwan Joshua Swink Josie Huddleston Josue Andrade Gomes Jozef Kralik Juan Barreto Juan F. Codagnone |
︙ | ︙ | |||
965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 | Julian Romero Nieto Julian Taylor Julian Z Julien Chaffraix Julien Nabet Julien Royer Jun-ichiro itojun Hagino Junho Choi Jurij Smakov Juro Bystricky Justin Clift Justin Ehlert Justin Fletcher Justin Karneges Justin Maggard János Fekete Jérémy Rocher Jörg Mueller-Tolk Jörn Hartroth K. R. Walker Kai Engert Kai Noda Kai Sommerfeld Kai-Uwe Rommel Kalle Vahlman Kamil Dudka Kang Lin | > > > > | 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 | Julian Romero Nieto Julian Taylor Julian Z Julien Chaffraix Julien Nabet Julien Royer Jun-ichiro itojun Hagino jungle-boogie on github Junho Choi Jurij Smakov Juro Bystricky Justin Clift Justin Ehlert Justin Fletcher Justin Karneges Justin Maggard jveazey on github jzinn on github János Fekete Jérémy Rocher Jörg Mueller-Tolk Jörn Hartroth K. R. Walker ka7 on github Kai Engert Kai Noda Kai Sommerfeld Kai-Uwe Rommel Kalle Vahlman Kamil Dudka Kang Lin |
︙ | ︙ | |||
1024 1025 1026 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 | Kjetil Jacobsen Klaus Stein Klevtsov Vadim Kobi Gurkan Koen Dergent Konstantin Isakov Konstantin Kushnir Kris Kennaway Krishnendu Majumdar Krister Johansen Kristian Gunstone Kristian Köhntopp Kristiyan Tsaklev Kristoffer Gleditsch Kunal Ekawde Kurt Fankhauser Kyle Abramowitz Kyle Edwards Kyle J. McKay Kyle L. Huff Kyle Sallee Kyohei Kadota Kyselgov E.N Lachlan O'Dea Ladar Levison Lance Ware Larry Campbell Larry Fahnoe Larry Lin Larry Stefani | > > > > | 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 | Kjetil Jacobsen Klaus Stein Klevtsov Vadim Kobi Gurkan Koen Dergent Konstantin Isakov Konstantin Kushnir kouzhudong on github kreshano on github Kris Kennaway Krishnendu Majumdar Krister Johansen Kristian Gunstone Kristian Köhntopp Kristian Mide Kristiyan Tsaklev Kristoffer Gleditsch Kunal Ekawde Kurt Fankhauser Kyle Abramowitz Kyle Edwards Kyle J. McKay Kyle L. Huff Kyle Sallee Kyohei Kadota Kyselgov E.N l00p3r on Hackerone Lachlan O'Dea Ladar Levison Lance Ware Larry Campbell Larry Fahnoe Larry Lin Larry Stefani |
︙ | ︙ | |||
1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 | Leif W Leigh Purdie Leith Bade Len Krause Len Marinaccio Lenaic Lefever Lenny Rachitsky Leon Breedt Leon Winter Leonardo Rosati Leonardo Taccari Liam Healy Lijo Antony Linas Vepstas Lindley French Ling Thio Linos Giannopoulos Linus Lewandowski Linus Nielsen Feltzing | > > | 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 | Leif W Leigh Purdie Leith Bade Len Krause Len Marinaccio Lenaic Lefever Lenny Rachitsky Leo Neat Leon Breedt Leon Winter Leonardo Rosati Leonardo Taccari Liam Healy lijian996 on github Lijo Antony Linas Vepstas Lindley French Ling Thio Linos Giannopoulos Linus Lewandowski Linus Nielsen Feltzing |
︙ | ︙ | |||
1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 | Lucas Pardue Lucas Severo Ludek Finstrle Ludovico Cavedon Ludwig Nussel Lukas Ruzicka Lukasz Czekierda Luke Amery Luke Call Luke Dashjr Luo Jinghua Luong Dinh Dung Luz Paz Luật Nguyễn Lyman Epp Lyndon Hill | > < > > > | 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 | Lucas Pardue Lucas Severo Ludek Finstrle Ludovico Cavedon Ludwig Nussel Lukas Ruzicka Lukasz Czekierda lukaszgn on github Luke Amery Luke Call Luke Dashjr Luo Jinghua Luong Dinh Dung Luz Paz Luật Nguyễn Lyman Epp Lyndon Hill Maciej Karpiuk Maciej Puzio Maciej W. Rozycki madblobfish on github Mahmoud Samir Fayed Maks Naumov Maksim Kuzevanov Maksim Stsepanenka Mamoru Tasaka Mamta Upadhyay Mandy Wu Manfred Schwarb MAntoniak on github Manuel Massing Marc Aldorasi Marc Boucher Marc Deslauriers Marc Doughty Marc Hesse Marc Hörsken Marc Kleine-Budde Marc Renault Marc Schlatter Marc-Antoine Perennou marc-groundctl on github Marcel Hernandez Marcel Raad Marcel Roelofs Marcelo Echeverria Marcelo Juchem Marcin Adamski Marcin Gryszkalis |
︙ | ︙ | |||
1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 | Martin Lemke Martin Skinner Martin Staael Martin Storsjö Martin Vejnár Marty Kuhrt Maruko Massimiliano Fantuzzi Massimiliano Ziccardi Massimo Callegari Mateusz Loskot Mathias Axelsson Mathieu Legare Mats Lidell | > | 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 | Martin Lemke Martin Skinner Martin Staael Martin Storsjö Martin Vejnár Marty Kuhrt Maruko masbug on github Massimiliano Fantuzzi Massimiliano Ziccardi Massimo Callegari Mateusz Loskot Mathias Axelsson Mathieu Legare Mats Lidell |
︙ | ︙ | |||
1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 | Max Khon Max Savenkov Maxim Ivanov Maxim Perenesenko Maxim Prohorov Maxime Larocque Maxime Legros Mehmet Bozkurt Mekonikum Melissa Mears Mert Yazıcıoğlu Mettgut Jamalla Michael Anti Michael Benedict | > > | 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 | Max Khon Max Savenkov Maxim Ivanov Maxim Perenesenko Maxim Prohorov Maxime Larocque Maxime Legros mbeifuss on github mccormickt12 on github Mehmet Bozkurt Mekonikum Melissa Mears Mert Yazıcıoğlu Mettgut Jamalla Michael Anti Michael Benedict |
︙ | ︙ | |||
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 | Michał Janiszewski Michał Kowalczyk Michał Piechowski Michel Promonet Michele Bini Miguel Angel Miguel Diaz Mihai Ionescu Mikael Johansson Mikael Sennerholm Mikalai Ananenka Mike Bytnar Mike Crowe Mike Dobbs Mike Dowell Mike Giancola Mike Hasselberg Mike Henshaw Mike Hommey Mike Mio Mike Power Mike Protts Mike Revi Miklos Nemeth Miloš Ljumović Mingliang Zhu Miroslav Franc Miroslav Spousta Mitz Wark Mohamed Lrhazi Mohammad AlSaleh Mohammad Hasbini Mohun Biswas Mostyn Bramley-Moore Moti Avrahami MrSorcus on github Muz Dima Myk Taylor | > > > > > > > > < > > > > > > > > > > > > > > > > > > > | 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 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 | Michał Janiszewski Michał Kowalczyk Michał Piechowski Michel Promonet Michele Bini Miguel Angel Miguel Diaz migueljcrum on github Mihai Ionescu Mikael Johansson Mikael Sennerholm Mikalai Ananenka Mike Bytnar Mike Crowe Mike Dobbs Mike Dowell Mike Frysinger Mike Giancola Mike Hasselberg Mike Henshaw Mike Hommey Mike Mio Mike Norton Mike Power Mike Protts Mike Revi Miklos Nemeth Miloš Ljumović Mingliang Zhu Miroslav Franc Miroslav Spousta Mischa Salle Mitz Wark mkzero on github Mohamed Lrhazi Mohammad AlSaleh Mohammad Hasbini Mohun Biswas momala454 on github moohoorama on github Mostyn Bramley-Moore Moti Avrahami MrdUkk on github MrSorcus on github Muz Dima Myk Taylor Nach M. S. Nagai H naost3rn on github Nate Prewitt Nathan Coulter Nathan O'Sullivan Nathanael Nerode Nathaniel J. Smith Nathaniel Waisbrot Naveen Chandran Naveen Noel Neal Poole nedres on github neex on github Nehal J Wani neheb on github Neil Bowers Neil Dunbar Neil Kolban Neil Spring nevv on HackerOne/curl Niall O'Reilly niallor on github nianxuejie on github Nic Roets Nicholas Maniscalco Nick Draffen Nick Gimbrone Nick Humfrey Nick Miyake Nick Zitzmann Nicklas Avén Nico Baggus nico-abram on github Nicolas Berloquin Nicolas Croiset Nicolas François Nicolas Grekas Nicolas Guillier Nicolas Morey-Chaisemartin Niels van Tongeren Nikita Schmidt Nikitinskit Dmitriy Niklas Angebrand Niklas Hambüchen Nikolai Kondrashov Nikos Mavrogiannopoulos Nikos Tsipinakis niner on github Ning Dong Nir Soffer Nis Jorgensen nk Nobuhiro Ban Nodak Sodak nopjmp on github Norbert Frese Norbert Kett Norbert Novotny NTMan on Github Octavio Schroeder Ofer Okhin Vasilij Ola Mork Olaf Flebbe Olaf Stüben Oleg Pudeyev Olen Andoni olesteban on github Oli Kingshott Oliver Gondža Oliver Graute Oliver Kuckertz Oliver Schindler Olivier Berger Olivier Brunel Omar Ramadan omau on github Orange Tsai Oren Souroujon Oren Tirosh Orgad Shaneh Ori Avtalion osabc on github Oscar Koeroo Oscar Norlander Oskar Liljeblad Oumph on github ovidiu-benea on github P R Schaffner Palo Markovic Paolo Mossino Paolo Piacentini Paras Sethia Pascal Gaudette Pascal Terjan Pasha Kuznetsov Pasi Karkkainen Pat Ray patelvivekv1993 on github patnyb on github Patrice Guerin Patricia Muscalu Patrick Bihan-Faou Patrick Dawson Patrick McManus Patrick Monnerat Patrick Rapin |
︙ | ︙ | |||
1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 | Pavel Cenek Pavel Gushchin Pavel Löbl Pavel Orehov Pavel Pavlov Pavel Raiskup Pavel Rochnyak Pavol Markovic Pawel A. Gajda Pawel Kierski Pedro Larroy Pedro Neves Peng Li Per Lundberg Per Malmberg Pete Lomax Peter Bray Peter Forret Peter Frühberger | > > > | 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 | Pavel Cenek Pavel Gushchin Pavel Löbl Pavel Orehov Pavel Pavlov Pavel Raiskup Pavel Rochnyak Pavel Volgarev Pavol Markovic Pawel A. Gajda Pawel Kierski Pedro Larroy Pedro Monreal Pedro Neves pendrek at hackerone Peng Li Per Lundberg Per Malmberg Pete Lomax Peter Bray Peter Forret Peter Frühberger |
︙ | ︙ | |||
1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 | Philippe Raoult Philippe Vaucher Pierre Pierre Brico Pierre Chapuis Pierre Joye Pierre Ynard Piotr Dobrogost Piotr Komborski Po-Chuan Hsieh Pooyan McSporran Poul T Lomholt Pramod Sharma Prash Dush Praveen Pvs Priyanka Shah Przemysław Tomaszewski Puneet Pawaia Quagmire Quanah Gibson-Mount Quinn Slack R. Dennis Steed Radu Simionescu Rafa Muyo | > > | 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 | Philippe Raoult Philippe Vaucher Pierre Pierre Brico Pierre Chapuis Pierre Joye Pierre Ynard Pierre-Yves Bigourdan Piotr Dobrogost Piotr Komborski Po-Chuan Hsieh Pooyan McSporran Poul T Lomholt Pramod Sharma Prash Dush Praveen Pvs Priyanka Shah Przemysław Tomaszewski pszemus on github Puneet Pawaia Quagmire Quanah Gibson-Mount Quinn Slack R. Dennis Steed Radu Simionescu Rafa Muyo |
︙ | ︙ | |||
1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 | Rob Jones Rob Sanders Rob Stanzel Rob Ward Robert A. Monat Robert B. Harris Robert D. Young Robert Foreman Robert Iakobashvili Robert Kolcun Robert Linden Robert Olson Robert Prag Robert Schumann | > | 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 | Rob Jones Rob Sanders Rob Stanzel Rob Ward Robert A. Monat Robert B. Harris Robert D. Young Robert Dunaj Robert Foreman Robert Iakobashvili Robert Kolcun Robert Linden Robert Olson Robert Prag Robert Schumann |
︙ | ︙ | |||
1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 | Roy Bellingan Roy Shan Rune Kleveland Ruslan Baratov Ruslan Gazizov Rutger Hofman Ruurd Beerstra Ryan Braud Ryan Chan Ryan Nelson Ryan Schmidt Ryan Scott Ryan Winograd Ryuichi KAWAMATA Rémy Léone S. Moonesamy | > < < | 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 | Roy Bellingan Roy Shan Rune Kleveland Ruslan Baratov Ruslan Gazizov Rutger Hofman Ruurd Beerstra RuurdBeerstra on github Ryan Braud Ryan Chan Ryan Nelson Ryan Schmidt Ryan Scott Ryan Winograd Ryuichi KAWAMATA Rémy Léone S. Moonesamy Salah-Eddin Shaban Salvador Dávila Salvatore Sorrentino Sam Deane Sam Hurst Sam Roth Sam Schanken |
︙ | ︙ | |||
1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 | Santino Keupp Saqib Ali Sara Golemon Saran Neti Sascha Swiercy Saul good Saurav Babu Scott Bailey Scott Barrett Scott Cantor Scott Davis Scott McCreary Sean Boudreau Sean Burford | > > | 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 | Santino Keupp Saqib Ali Sara Golemon Saran Neti Sascha Swiercy Saul good Saurav Babu sayrer on github SBKarr on github Scott Bailey Scott Barrett Scott Cantor Scott Davis Scott McCreary Sean Boudreau Sean Burford |
︙ | ︙ | |||
1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 | Shine Fan Shiraz Kanga Shlomi Fish Shmulik Regev Siddhartha Prakash Jain Sidney San Martín Siegfried Gyuricsko Simon Dick Simon H. Simon Josefsson Simon Legner Simon Liu Simon Warta Somnath Kundu Song Ma Sonia Subramanian Spacen Jasset Spezifant on github Spiridonoff A.V Spork Schivago Stadler Stephan Stan van de Burgt Stanislav Ivochkin Stanislav Zidek Stefan Agner Stefan Bühler Stefan Eissing Stefan Esser Stefan Grether Stefan Kanthak Stefan Krause Stefan Neis Stefan Teleman Stefan Tomanek Stefan Ulrich Stefano Simonelli Steinar H. Gunderson Stepan Broz Stephan Bergmann Stephan Lagerholm Stephan Mühlstrasser Stephan Szabo Stephen Brokenshire Stephen Collyer | > > > > > > > | 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 | Shine Fan Shiraz Kanga Shlomi Fish Shmulik Regev Siddhartha Prakash Jain Sidney San Martín Siegfried Gyuricsko silveja1 on github Simon Dick Simon H. Simon Josefsson Simon Legner Simon Liu Simon Warta SLDiggie on github smuellerDD on github Somnath Kundu Song Ma Sonia Subramanian Spacen Jasset Spezifant on github Spiridonoff A.V Spoon Man Spork Schivago sstruchtrup on github Stadler Stephan Stan van de Burgt Stanislav Ivochkin Stanislav Zidek steelman on github Stefan Agner Stefan Bühler Stefan Eissing Stefan Esser Stefan Grether Stefan Kanthak Stefan Krause Stefan Neis Stefan Teleman Stefan Tomanek Stefan Ulrich Stefano Simonelli Steinar H. Gunderson steini2000 on github Stepan Broz Stephan Bergmann Stephan Lagerholm Stephan Mühlstrasser Stephan Szabo Stephen Brokenshire Stephen Collyer |
︙ | ︙ | |||
1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 | Steven Bazyl Steven G. Johnson Steven Gu Steven M. Schweda Steven Parkes Stian Soiland-Reyes Stoned Elipot Stuart Henderson SumatraPeter on github Sune Ahlgren Sunny Purushe Sven Anders Sven Blumenstein Sven Neuhaus Sven Wegener Svyatoslav Mishyn Sylvestre Ledru Symeon Paraschoudis Sébastien Willemijns T. Bharath T. Yamada | > > > < > > | | | 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 | Steven Bazyl Steven G. Johnson Steven Gu Steven M. Schweda Steven Parkes Stian Soiland-Reyes Stoned Elipot stootill on github Stuart Henderson SumatraPeter on github Sune Ahlgren Sunny Bean Sunny Purushe Sven Anders Sven Blumenstein Sven Neuhaus Sven Wegener Svyatoslav Mishyn swalkaus at yahoo.com Sylvestre Ledru Symeon Paraschoudis Sébastien Willemijns T. Bharath T. Yamada Tae Hyoung Ahn Tae Wong Taiyu Len Taneli Vähäkangas Tanguy Fautre tarek112 on github Tatsuhiro Tsujikawa Teemu Yli-Elsila Temprimus Terri Oda Terry Wu The Infinnovation team TheAssassin on github Theodore Dubois tholin on github Thomas Braun Thomas Gamper Thomas Glanzmann Thomas J. Moore Thomas Klausner Thomas L. Shinnick Thomas Lopatic Thomas Petazzoni Thomas Ruecker Thomas Schwinge Thomas Tonino Thomas van Hesteren Thomas Vegas Thorsten Schöning Tiit Pikma Till Maas Tim Ansell Tim Baker Tim Bartley Tim Chen |
︙ | ︙ | |||
1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 | Tim Tassonis Tim Verhoeven Timo Sirainen Timotej Lazar Timothe Litt Timothy Polich Tinus van den Berg Tobias Blomberg Tobias Hintze Tobias Lindgren Tobias Markus Tobias Rundström Tobias Stoeckmann Toby Peterson Todd A Ouska | > > | 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 | Tim Tassonis Tim Verhoeven Timo Sirainen Timotej Lazar Timothe Litt Timothy Polich Tinus van den Berg TJ Saunders Tobias Blomberg Tobias Hieta Tobias Hintze Tobias Lindgren Tobias Markus Tobias Rundström Tobias Stoeckmann Toby Peterson Todd A Ouska |
︙ | ︙ | |||
1856 1857 1858 1859 1860 1861 1862 1863 1864 | Tom Lee Tom Mattison Tom Moers Tom Mueller Tom Regner Tom Seddon Tom Sparrow Tom Wright Tom Zerucha | > < > > > > | 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 | Tom Lee Tom Mattison Tom Moers Tom Mueller Tom Regner Tom Seddon Tom Sparrow Tom van der Woerdt Tom Wright Tom Zerucha Tomas Hoger Tomas Jakobsson Tomas Mlcoch Tomas Mraz Tomas Pospisek Tomas Szepe Tomas Tomecek Tomasz Kojm Tomasz Lacki Tommie Gannert tommink[at]post.pl Tommy Tam Ton Voon Toni Moreno Tony Kelman tonystz on Github Toon Verwaest Tor Arntsen Torben Dannhauer Torsten Foertsch Toshio Kuratomi Toshiyuki Maezawa tpaukrt on github Traian Nicolescu Travis Burtrum Travis Obenhaus Trivikram Kamat Troels Walsted Hansen Troy Engel Tseng Jun Tuomo Rinne Tupone Alfredo Tyler Hall Török Edwin Ulf Härnhammar Ulf Samuelsson Ulrich Doehner Ulrich Telle Ulrich Zadow Valentin David Valerii Zapodovnikov vanillajonathan on github Vasiliy Faronov Vasily Lobaskin Vasy Okhin Venkat Akella Venkataramana Mokkapati Vicente Garcia Victor Magierski |
︙ | ︙ | |||
1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 | Vladimir Lazarenko Vlastimil Ovčáčík Vojtech Janota Vojtech Minarik Vojtěch Král Volker Schmid Vsevolod Novikov W. Mark Kubacki Waldek Kozba Walter J. Mack Ward Willats Warren Menzer Wayne Haigh Wenchao Li Wenxiang Qian Werner Koch Wesley Laxton Wesley Miaw Wez Furlong Wham Bang Wilfredo Sanchez Will Dietz Willem Sparreboom William A. Rowe Jr William Ahern Wojciech Zwiefka Wouter Van Rooy Wu Yongzheng Wyatt O'Day Xavier Bouchoux XhstormR on github Xiang Xiao Xiangbin Li Xiaoyin Liu XmiliaH on github Yaakov Selkowitz Yang Tse Yarram Sunil Yasuharu Yamada Yasuhiro Matsumoto Yechiel Kalmenson Yehezkel Horowitz Yehoshua Hershberg Yi Huang Yiming Jing Yingwei Liu Yonggang Luo Yousuke Kimoto Yu Xin Yukihiro Kawada Yun SangHo Yuriy Sosov Yves Arrouye Yves Lejeune Zachary Seguin Zdenek Pavlas Zekun Ni Zenju on github Zero King Zhao Yisha Zhaoyang Wu Zhibiao Wu Zhouyihai Ding Zmey Petroff Zvi Har'El | > > > > > > > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > | 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 | Vladimir Lazarenko Vlastimil Ovčáčík Vojtech Janota Vojtech Minarik Vojtěch Král Volker Schmid Vsevolod Novikov vshmuk on hackerone W. Mark Kubacki Waldek Kozba Walter J. Mack Ward Willats Warren Menzer Wayne Haigh Wenchao Li Wenxiang Qian Werner Koch wesinator on github Wesley Laxton Wesley Miaw Wez Furlong Wham Bang Wilfredo Sanchez Will Dietz Willem Sparreboom William A. Rowe Jr William Ahern wmsch on github wncboy on github Wojciech Zwiefka Wouter Van Rooy Wu Yongzheng Wyatt O'Day Xavier Bouchoux XhstormR on github Xiang Xiao Xiangbin Li Xiaoyin Liu XmiliaH on github Yaakov Selkowitz Yang Tse Yarram Sunil Yasuharu Yamada Yasuhiro Matsumoto Yechiel Kalmenson Yehezkel Horowitz Yehoshua Hershberg ygthien on github Yi Huang Yiming Jing Yingwei Liu Yonggang Luo youngchopin on github Yousuke Kimoto Yu Xin Yukihiro Kawada Yun SangHo Yuriy Sosov Yves Arrouye Yves Lejeune Zachary Seguin Zdenek Pavlas Zekun Ni zelinchen on github Zenju on github Zero King Zhao Yisha Zhaoyang Wu Zhibiao Wu Zhouyihai Ding Zmey Petroff Zvi Har'El zzq1015 on github İsmail Dönmez Łukasz Domeradzki Štefan Kremeň Никита Дорохин 加藤郁之 |
Changes to jni/curl/docs/TODO.
︙ | ︙ | |||
83 84 85 86 87 88 89 90 91 92 93 94 95 96 | 8.2 Enhanced capability support 9. IMAP 9.1 Enhanced capability support 10. LDAP 10.1 SASL based authentication mechanisms 11. SMB 11.1 File listing support 11.2 Honor file timestamps 11.3 Use NTLMv2 11.4 Create remote directories | > > | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | 8.2 Enhanced capability support 9. IMAP 9.1 Enhanced capability support 10. LDAP 10.1 SASL based authentication mechanisms 10.2 CURLOPT_SSL_CTX_FUNCTION for LDAPS 10.3 Paged searches on LDAP server 11. SMB 11.1 File listing support 11.2 Honor file timestamps 11.3 Use NTLMv2 11.4 Create remote directories |
︙ | ︙ | |||
128 129 130 131 132 133 134 135 136 137 138 139 140 141 | 17.3 Support better than MD5 hostkey hash 17.4 Support CURLOPT_PREQUOTE 18. Command line tool 18.1 sync 18.2 glob posts 18.3 prevent file overwriting 18.5 UTF-8 filenames in Content-Disposition 18.7 at least N milliseconds between requests 18.9 Choose the name of file in braces for complex URLs 18.10 improve how curl works in a windows console window 18.11 Windows: set attribute 'archive' for completed downloads 18.12 keep running, read instructions from pipe/socket 18.15 --retry should resume | > | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | 17.3 Support better than MD5 hostkey hash 17.4 Support CURLOPT_PREQUOTE 18. Command line tool 18.1 sync 18.2 glob posts 18.3 prevent file overwriting 18.4 --proxycommand 18.5 UTF-8 filenames in Content-Disposition 18.7 at least N milliseconds between requests 18.9 Choose the name of file in braces for complex URLs 18.10 improve how curl works in a windows console window 18.11 Windows: set attribute 'archive' for completed downloads 18.12 keep running, read instructions from pipe/socket 18.15 --retry should resume |
︙ | ︙ | |||
399 400 401 402 403 404 405 | 2.1 More non-blocking Make sure we don't ever loop because of non-blocking sockets returning EWOULDBLOCK or similar. Blocking cases include: - Name resolves on non-windows unless c-ares or the threaded resolver is used | < | 402 403 404 405 406 407 408 409 410 411 412 413 414 415 | 2.1 More non-blocking Make sure we don't ever loop because of non-blocking sockets returning EWOULDBLOCK or similar. Blocking cases include: - Name resolves on non-windows unless c-ares or the threaded resolver is used - file:// transfers - TELNET transfers - The "DONE" operation (post transfer protocol-specific actions) for the protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task. 2.2 Better support for same name resolves |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 607 608 609 610 611 612 | Currently the LDAP module only supports ldap_simple_bind_s() in order to bind to an LDAP server. However, this function sends username and password details using the simple authentication mechanism (as clear text). However, it should be possible to use ldap_bind_s() instead specifying the security context information ourselves. 11. SMB 11.1 File listing support Add support for listing the contents of a SMB share. The output should probably be the same as/similar to FTP. | > > > > > > > > > > > | 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 | Currently the LDAP module only supports ldap_simple_bind_s() in order to bind to an LDAP server. However, this function sends username and password details using the simple authentication mechanism (as clear text). However, it should be possible to use ldap_bind_s() instead specifying the security context information ourselves. 10.2 CURLOPT_SSL_CTX_FUNCTION for LDAPS CURLOPT_SSL_CTX_FUNCTION works perfectly for HTTPS and email protocols, but it has no effect for LDAPS connections. https://github.com/curl/curl/issues/4108 10.3 Paged searches on LDAP server https://github.com/curl/curl/issues/4452 11. SMB 11.1 File listing support Add support for listing the contents of a SMB share. The output should probably be the same as/similar to FTP. |
︙ | ︙ | |||
853 854 855 856 857 858 859 860 861 862 863 864 865 866 | Add an option that prevents curl from overwriting existing local files. When used, and there already is an existing file with the target file name (either -O or -o), a number should be appended (and increased if already existing). So that index.html becomes first index.html.1 and then index.html.2 etc. 18.5 UTF-8 filenames in Content-Disposition RFC 6266 documents how UTF-8 names can be passed to a client in the Content-Disposition header, and curl does not support this. https://github.com/curl/curl/issues/1888 | > > > > > > > > > > | 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 | Add an option that prevents curl from overwriting existing local files. When used, and there already is an existing file with the target file name (either -O or -o), a number should be appended (and increased if already existing). So that index.html becomes first index.html.1 and then index.html.2 etc. 18.4 --proxycommand Allow the user to make curl run a command and use its stdio to make requests and not do any network connection by itself. Example: curl --proxycommand 'ssh pi@raspberrypi.local -W 10.1.1.75 80' \ http://some/otherwise/unavailable/service.php See https://github.com/curl/curl/issues/4941 18.5 UTF-8 filenames in Content-Disposition RFC 6266 documents how UTF-8 names can be passed to a client in the Content-Disposition header, and curl does not support this. https://github.com/curl/curl/issues/1888 |
︙ | ︙ |
Changes to jni/curl/docs/cmdline-opts/Makefile.in.
︙ | ︙ | |||
302 303 304 305 306 307 308 309 310 311 312 313 314 315 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/docs/cmdline-opts/alt-svc.d.
︙ | ︙ | |||
10 11 12 13 14 15 16 | existing alt-svc cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle the cache in memory. If this option is used several times, curl will load contents from all the | | | 10 11 12 13 14 15 16 17 | existing alt-svc cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle the cache in memory. If this option is used several times, curl will load contents from all the files but the last one will be used for saving. |
Changes to jni/curl/docs/cmdline-opts/create-dirs.d.
1 2 3 4 5 6 7 8 9 | Long: create-dirs Help: Create necessary local directory hierarchy --- When used in conjunction with the --output option, curl will create the necessary local directory hierarchy as needed. This option creates the dirs mentioned with the --output option, nothing else. If the --output file name uses no dir or if the dirs it mentions already exist, no dir will be created. To create remote directories when using FTP or SFTP, try --ftp-create-dirs. | > > | 1 2 3 4 5 6 7 8 9 10 11 | Long: create-dirs Help: Create necessary local directory hierarchy --- When used in conjunction with the --output option, curl will create the necessary local directory hierarchy as needed. This option creates the dirs mentioned with the --output option, nothing else. If the --output file name uses no dir or if the dirs it mentions already exist, no dir will be created. Created dirs are made with mode 0750 on unix style file systems. To create remote directories when using FTP or SFTP, try --ftp-create-dirs. |
Changes to jni/curl/docs/cmdline-opts/data.d.
︙ | ︙ | |||
18 19 20 21 22 23 24 | If any of these options is used more than once on the same command line, the data pieces specified will be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post chunk that looks like \&'name=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to | | < | | | < > | 18 19 20 21 22 23 24 25 26 27 28 29 | If any of these options is used more than once on the same command line, the data pieces specified will be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post chunk that looks like \&'name=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want curl to read the data from stdin. Posting data from a file named \&'foobar' would thus be done with --data @foobar. When --data is told to read from a file like that, carriage returns and newlines will be stripped out. If you don't want the @ character to have a special interpretation use --data-raw instead. |
Changes to jni/curl/docs/cmdline-opts/form.d.
︙ | ︙ | |||
29 30 31 32 33 34 35 | by IMAP. Example: send an image to an HTTP server, where \&'profile' is the name of the form-field to which the file portrait.jpg will be the input: curl -F profile=@portrait.jpg https://example.com/upload.cgi | | | | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | by IMAP. Example: send an image to an HTTP server, where \&'profile' is the name of the form-field to which the file portrait.jpg will be the input: curl -F profile=@portrait.jpg https://example.com/upload.cgi Example: send your name and shoe size in two text fields to the server: curl -F name=John -F shoesize=11 https://example.com/ Example: send your essay in a text field to the server. Send it as a plain text field, but get the contents for it from a local file: curl -F "story=<hugefile.txt" https://example.com/ You can also tell curl what Content-Type to use by using 'type=', in a manner similar to: |
︙ | ︙ |
Changes to jni/curl/docs/cmdline-opts/location.d.
︙ | ︙ | |||
9 10 11 12 13 14 15 | --include or --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. | | | | | | | | > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | --include or --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and if the request is a POST, it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. You can tell curl to not change POST requests to GET after a 30x response by using the dedicated options for that: --post301, --post302 and --post303. The method set with --request overrides the method curl would otherwise select to use. |
Changes to jni/curl/docs/cmdline-opts/oauth2-bearer.d.
1 2 3 | Long: oauth2-bearer Help: OAuth 2 Bearer Token Arg: <token> | | | 1 2 3 4 5 6 7 8 9 10 11 | Long: oauth2-bearer Help: OAuth 2 Bearer Token Arg: <token> Protocols: IMAP POP3 SMTP HTTP --- Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token is used in conjunction with the user name which can be specified as part of the --url or --user options. The Bearer Token and user name are formatted according to RFC 6750. |
︙ | ︙ |
Changes to jni/curl/docs/curl-config.1.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl-config 1 "November 30, 2017" "Curl 7.69.0" "curl-config manual" .SH NAME curl-config \- Get information about a libcurl installation .SH SYNOPSIS .B curl-config [options] .SH DESCRIPTION .B curl-config |
︙ | ︙ |
Changes to jni/curl/docs/curl.1.
︙ | ︙ | |||
18 19 20 21 22 23 24 | .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .\" DO NOT EDIT. Generated by the curl project gen.pl man page generator. .\" | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .\" DO NOT EDIT. Generated by the curl project gen.pl man page generator. .\" .TH curl 1 "November 16, 2016" "Curl 7.69.0" "Curl Manual" .SH NAME curl \- transfer a URL .SH SYNOPSIS .B curl [options / URLs] .SH DESCRIPTION .B curl |
︙ | ︙ | |||
153 154 155 156 157 158 159 | existing alt-svc cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle the cache in memory. If this option is used several times, curl will load contents from all the | | | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | existing alt-svc cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle the cache in memory. If this option is used several times, curl will load contents from all the files but the last one will be used for saving. Added in 7.64.1. .IP "--anyauth" (HTTP) Tells curl to figure out authentication method by itself, and use the most secure one the remote site claims to support. This is done by first doing a request and checking the response-headers, thus possibly inducing an extra network round-trip. This is used instead of setting a specific authentication |
︙ | ︙ | |||
456 457 458 459 460 461 462 463 464 465 466 467 468 469 | cookies back to a file, so using both \fI-b, --cookie\fP and \fI-c, --cookie-jar\fP in the same command line is common. .IP "--create-dirs" When used in conjunction with the \fI-o, --output\fP option, curl will create the necessary local directory hierarchy as needed. This option creates the dirs mentioned with the \fI-o, --output\fP option, nothing else. If the --output file name uses no dir or if the dirs it mentions already exist, no dir will be created. To create remote directories when using FTP or SFTP, try \fI--ftp-create-dirs\fP. .IP "--crlf" (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). (SMTP added in 7.40.0) .IP "--crlfile <file>" | > > | 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 | cookies back to a file, so using both \fI-b, --cookie\fP and \fI-c, --cookie-jar\fP in the same command line is common. .IP "--create-dirs" When used in conjunction with the \fI-o, --output\fP option, curl will create the necessary local directory hierarchy as needed. This option creates the dirs mentioned with the \fI-o, --output\fP option, nothing else. If the --output file name uses no dir or if the dirs it mentions already exist, no dir will be created. Created dirs are made with mode 0750 on unix style file systems. To create remote directories when using FTP or SFTP, try \fI--ftp-create-dirs\fP. .IP "--crlf" (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). (SMTP added in 7.40.0) .IP "--crlfile <file>" |
︙ | ︙ | |||
536 537 538 539 540 541 542 | If any of these options is used more than once on the same command line, the data pieces specified will be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post chunk that looks like \&'name=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to | | < | | | < > | 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 | If any of these options is used more than once on the same command line, the data pieces specified will be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would generate a post chunk that looks like \&'name=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want curl to read the data from stdin. Posting data from a file named \&'foobar' would thus be done with \fI-d, --data\fP @foobar. When \fI-d, --data\fP is told to read from a file like that, carriage returns and newlines will be stripped out. If you don't want the @ character to have a special interpretation use \fI--data-raw\fP instead. See also \fI--data-binary\fP and \fI--data-urlencode\fP and \fI--data-raw\fP. This option overrides \fI-F, --form\fP and \fI-I, --head\fP and \fI-T, --upload-file\fP. .IP "--delegation <LEVEL>" (GSS/kerberos) Set LEVEL to tell the server what it is allowed to delegate when it comes to user credentials. .RS .IP "none" |
︙ | ︙ | |||
770 771 772 773 774 775 776 | by IMAP. Example: send an image to an HTTP server, where \&'profile' is the name of the form-field to which the file portrait.jpg will be the input: curl -F profile=@portrait.jpg https://example.com/upload.cgi | | | | 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 | by IMAP. Example: send an image to an HTTP server, where \&'profile' is the name of the form-field to which the file portrait.jpg will be the input: curl -F profile=@portrait.jpg https://example.com/upload.cgi Example: send your name and shoe size in two text fields to the server: curl -F name=John -F shoesize=11 https://example.com/ Example: send your essay in a text field to the server. Send it as a plain text field, but get the contents for it from a local file: curl -F "story=<hugefile.txt" https://example.com/ You can also tell curl what Content-Type to use by using 'type=', in a manner similar to: |
︙ | ︙ | |||
1286 1287 1288 1289 1290 1291 1292 | \fI-i, --include\fP or \fI-I, --head\fP, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also \fI--location-trusted\fP on how to change this. You can limit the amount of redirects to follow by using the \fI--max-redirs\fP option. | | | | | | | | > > | 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 | \fI-i, --include\fP or \fI-I, --head\fP, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also \fI--location-trusted\fP on how to change this. You can limit the amount of redirects to follow by using the \fI--max-redirs\fP option. When curl follows a redirect and if the request is a POST, it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. You can tell curl to not change POST requests to GET after a 30x response by using the dedicated options for that: \fI--post301\fP, \fI--post302\fP and \fI--post303\fP. The method set with \fI-X, --request\fP overrides the method curl would otherwise select to use. .IP "--login-options <options>" (IMAP POP3 SMTP) Specify the login options to use during server authentication. You can use the login options to specify protocol specific options that may be used during authentication. At present only IMAP, POP3 and SMTP support login options. For more information about the login options please see RFC 2384, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt |
︙ | ︙ | |||
1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 | server. See also \fI--mail-rcpt\fP and \fI--mail-from\fP. Added in 7.25.0. .IP "--mail-from <address>" (SMTP) Specify a single address that the given mail should get sent from. See also \fI--mail-rcpt\fP and \fI--mail-auth\fP. Added in 7.20.0. .IP "--mail-rcpt <address>" (SMTP) Specify a single address, user name or mailing list name. Repeat this option several times to send to multiple recipients. When performing a mail transfer, the recipient should specify a valid email address to send the mail to. | > > > > > > > > > > > > | 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 | server. See also \fI--mail-rcpt\fP and \fI--mail-from\fP. Added in 7.25.0. .IP "--mail-from <address>" (SMTP) Specify a single address that the given mail should get sent from. See also \fI--mail-rcpt\fP and \fI--mail-auth\fP. Added in 7.20.0. .IP "--mail-rcpt-allowfails" (SMTP) When sending data to multiple recipients, by default curl will abort SMTP conversation if at least one of the recipients causes RCPT TO command to return an error. The default behavior can be changed by passing \fI--mail-rcpt-allowfails\fP command-line option which will make curl ignore errors and proceed with the remaining valid recipients. In case when all recipients cause RCPT TO command to fail, curl will abort SMTP conversation and return the error received from to the last RCPT TO command. Added in 7.69.0. .IP "--mail-rcpt <address>" (SMTP) Specify a single address, user name or mailing list name. Repeat this option several times to send to multiple recipients. When performing a mail transfer, the recipient should specify a valid email address to send the mail to. |
︙ | ︙ | |||
1521 1522 1523 1524 1525 1526 1527 | If you want to enable NTLM for your proxy authentication, then use \fI--proxy-ntlm\fP. If this option is used several times, only the first one is used. See also \fI--proxy-ntlm\fP. \fI--ntlm\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI--basic\fP and \fI--negotiate\fP and \fI--digest\fP and \fI--anyauth\fP. .IP "--oauth2-bearer <token>" | | | 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 | If you want to enable NTLM for your proxy authentication, then use \fI--proxy-ntlm\fP. If this option is used several times, only the first one is used. See also \fI--proxy-ntlm\fP. \fI--ntlm\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI--basic\fP and \fI--negotiate\fP and \fI--digest\fP and \fI--anyauth\fP. .IP "--oauth2-bearer <token>" (IMAP POP3 SMTP HTTP) Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token is used in conjunction with the user name which can be specified as part of the \fI--url\fP or \fI-u, --user\fP options. The Bearer Token and user name are formatted according to RFC 6750. If this option is used several times, the last one will be used. .IP "-o, --output <file>" |
︙ | ︙ |
Changes to jni/curl/docs/examples/Makefile.in.
︙ | ︙ | |||
1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/Makefile.in.
︙ | ︙ | |||
572 573 574 575 576 577 578 579 580 581 582 583 584 585 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_cleanup.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_cleanup 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_cleanup - End a libcurl easy handle .SH SYNOPSIS .B #include <curl/curl.h> .BI "void curl_easy_cleanup(CURL *" handle ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_duphandle.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_duphandle 3 "March 01, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_duphandle - Clone a libcurl session handle .SH SYNOPSIS .B #include <curl/curl.h> .BI "CURL *curl_easy_duphandle(CURL *"handle ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_escape.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_escape 3 "August 12, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_escape - URL encodes the given string .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_easy_escape( CURL *" curl ", const char *" string |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_getinfo.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_getinfo 3 "August 06, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_getinfo - extract information from a curl handle .SH SYNOPSIS .B #include <curl/curl.h> .B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_init.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_init 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_init - Start a libcurl easy session .SH SYNOPSIS .B #include <curl/curl.h> .BI "CURL *curl_easy_init( );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_pause.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_pause - pause and unpause a connection .SH SYNOPSIS .B #include <curl/curl.h> .BI "CURLcode curl_easy_pause(CURL *"handle ", int "bitmask " );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_perform.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_perform 3 "September 23, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_perform - perform a blocking file transfer .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_easy_perform(CURL *" easy_handle ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_recv.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_recv - receives raw data on an "easy" connection .SH SYNOPSIS .B #include <curl/easy.h> .sp .BI "CURLcode curl_easy_recv( CURL *" curl ", void *" buffer "," |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_reset.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | > | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_reset 3 "February 09, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_reset - reset all options of a libcurl session handle .SH SYNOPSIS .B #include <curl/curl.h> .BI "void curl_easy_reset(CURL *"handle ");" .SH DESCRIPTION Re-initializes all options previously set on a specified CURL handle to the default values. This puts back the handle to the same state as it was in when it was just created with \fIcurl_easy_init(3)\fP. It does not change the following information kept in the handle: live connections, the Session ID cache, the DNS cache, the cookies, the shares or the alt-svc cache. .SH AVAILABILITY This function was added in libcurl 7.12.1 .SH RETURN VALUE Nothing .SH "SEE ALSO" .BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_setopt "(3)," .BR curl_easy_duphandle "(3)" |
Changes to jni/curl/docs/libcurl/curl_easy_send.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_send 3 "December 18, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_send - sends raw data over an "easy" connection .SH SYNOPSIS .B #include <curl/easy.h> .sp .BI "CURLcode curl_easy_send( CURL *" curl ", const void *" buffer "," |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_setopt.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_setopt 3 "January 14, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_setopt \- set options for a curl easy handle .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter); |
︙ | ︙ | |||
354 355 356 357 358 359 360 361 362 363 364 365 366 367 | .SH SMTP OPTIONS .IP CURLOPT_MAIL_FROM Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP .IP CURLOPT_MAIL_RCPT Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP .IP CURLOPT_MAIL_AUTH Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP .SH TFTP OPTIONS .IP CURLOPT_TFTP_BLKSIZE TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP .IP CURLOPT_TFTP_NO_OPTIONS Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP .SH FTP OPTIONS .IP CURLOPT_FTPPORT | > > | 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 | .SH SMTP OPTIONS .IP CURLOPT_MAIL_FROM Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP .IP CURLOPT_MAIL_RCPT Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP .IP CURLOPT_MAIL_AUTH Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP .IP CURLOPT_MAIL_RCPT_ALLLOWFAILS Allow RCPT TO command to fail for some recipients. See \fICURLOPT_MAIL_RCPT_ALLLOWFAILS(3)\fP .SH TFTP OPTIONS .IP CURLOPT_TFTP_BLKSIZE TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP .IP CURLOPT_TFTP_NO_OPTIONS Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP .SH FTP OPTIONS .IP CURLOPT_FTPPORT |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_strerror.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_easy_strerror 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_strerror - return string describing error code .SH SYNOPSIS #include <curl/curl.h> const char *curl_easy_strerror(CURLcode errornum); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_easy_unescape.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_easy_unescape - URL decodes the given string .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_easy_unescape( CURL *" curl ", const char *" url |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_escape.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | | 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 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_escape 3 "March 02, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_escape - URL encodes the given string .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_escape( const char *" url ", int "length " );" .ad .SH DESCRIPTION Obsolete function. Use \fIcurl_easy_escape(3)\fP instead! This function will convert the given input string to an URL encoded string and return that as a new allocated string. All input characters that are not a-z, A-Z or 0-9 will be converted to their "URL escaped" version (%NN where NN is a two-digit hexadecimal number). If the 'length' argument is set to 0, curl_escape() will use strlen() on the input 'url' string to find out the size. You must \fIcurl_free(3)\fP the returned string when you're done with it. .SH AVAILABILITY Since 7.15.4, \fIcurl_easy_escape(3)\fP should be used. This function will be removed in a future release. .SH RETURN VALUE A pointer to a zero terminated string or NULL if it failed. .SH "SEE ALSO" .BR curl_unescape "(3), " curl_free "(3), " RFC 2396 |
Changes to jni/curl/docs/libcurl/curl_formadd.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_formadd 3 "December 11, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_formadd - add a section to a multipart/formdata HTTP POST .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLFORMcode curl_formadd(struct curl_httppost ** " firstitem, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_formfree.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_formfree 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_formfree - free a previously build multipart/formdata HTTP POST chain .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "void curl_formfree(struct curl_httppost *" form); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_formget.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_formget 3 "September 02, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_formget - serialize a previously built multipart/formdata HTTP POST chain .SH SYNOPSIS .nf .B #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_free.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_free 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_free - reclaim memory that has been obtained through a libcurl call .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "void curl_free( char *" ptr " );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_getdate.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_getdate 3 "January 18, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_getdate - Convert a date string to number of seconds .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "time_t curl_getdate(char *" datestring ", time_t *"now " );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_getenv.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | > > | < < | | 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 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_getenv 3 "March 02, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_getenv - return value for environment name .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_getenv(const char *" name ");" .ad .SH DESCRIPTION curl_getenv() is a portable wrapper for the getenv() function, meant to emulate its behaviour and provide an identical interface for all operating systems libcurl builds on (including win32). You must \fIcurl_free(3)\fP the returned string when you're done with it. .SH AVAILABILITY This function will be removed from the public libcurl API in a near future. It will instead be made "available" by source code access only, and then as curlx_getenv(). .SH RETURN VALUE A pointer to a zero terminated string or NULL if it failed to find the specified name. .SH NOTE Under unix operating systems, there isn't any point in returning an allocated memory, although other systems won't work properly if this isn't done. The unix implementation thus has to suffer slightly from the drawbacks of other systems. .SH "SEE ALSO" .BR getenv "(3C), " |
Changes to jni/curl/docs/libcurl/curl_global_cleanup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_global_cleanup 3 "September 20, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_global_cleanup - global libcurl cleanup .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "void curl_global_cleanup(void);" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_global_init.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_global_init 3 "January 23, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_global_init - Global libcurl initialisation .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_global_init(long " flags ");" |
︙ | ︙ | |||
84 85 86 87 88 89 90 | of libcurl so there's no need for libcurl to do it again. .IP CURL_GLOBAL_NOTHING Initialise nothing extra. This sets no bit. .IP CURL_GLOBAL_DEFAULT A sensible default. It will init both SSL and Win32. Right now, this equals the functionality of the \fBCURL_GLOBAL_ALL\fP mask. .IP CURL_GLOBAL_ACK_EINTR | > > | | | | 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | of libcurl so there's no need for libcurl to do it again. .IP CURL_GLOBAL_NOTHING Initialise nothing extra. This sets no bit. .IP CURL_GLOBAL_DEFAULT A sensible default. It will init both SSL and Win32. Right now, this equals the functionality of the \fBCURL_GLOBAL_ALL\fP mask. .IP CURL_GLOBAL_ACK_EINTR This bit has no point since 7.69.0 but its behavior is instead the default. Before 7.69.0: when this flag is set, curl will acknowledge EINTR condition when connecting or when waiting for data. Otherwise, curl waits until full timeout elapses. (Added in 7.30.0) .SH RETURN VALUE If this function returns non-zero, something went wrong and you cannot use the other curl functions. .SH "SEE ALSO" .BR curl_global_init_mem "(3), " .BR curl_global_cleanup "(3), " .BR curl_global_sslset "(3), " .BR curl_easy_init "(3) " .BR libcurl "(3) " |
Changes to jni/curl/docs/libcurl/curl_global_init_mem.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_global_init_mem 3 "August 11, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_global_init_mem - Global libcurl initialisation with memory callbacks .SH SYNOPSIS .B #include <curl/curl.h> .nf .B "CURLcode curl_global_init_mem(long " flags, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_global_sslset.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_global_sslset 3 "November 07, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_global_sslset - Select SSL backend to use with libcurl .SH SYNOPSIS .B #include <curl/curl.h> .nf |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_addpart.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_addpart 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_addpart - append a new empty part to a mime structure .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "curl_mimepart * curl_mime_addpart(curl_mime * " mime ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_data.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_data 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_data - set a mime part's body data from memory .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_data(curl_mimepart * " part ", const char * " data |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_data_cb.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_data_cb 3 "April 17, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_data_cb - set a callback-based data source for a mime part's body .SH SYNOPSIS .B #include <curl/curl.h> .sp size_t readfunc(char *buffer, size_t size, size_t nitems, void *arg); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_encoder.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_encoder 3 "September 05, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_encoder - set a mime part's encoder and content transfer encoding .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_encoder(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_filedata.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_filedata 3 "April 17, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_filedata - set a mime part's body data from a file contents .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_filedata(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_filename.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_filename 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_filename - set a mime part's remote file name .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_filename(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_free.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_free 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_free - free a previously built mime structure .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "void curl_mime_free(curl_mime *" mime); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_headers.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_headers 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_headers - set a mime part's custom headers .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_headers(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_init.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_init 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_init - create a mime handle .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "curl_mime * curl_mime_init(CURL * " easy_handle ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_name.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_name 3 "September 22, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_name - set a mime part's name .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_name(curl_mimepart * " part ", const char * " name ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_subparts.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_subparts 3 "September 05, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_subparts - set subparts of a multipart mime part .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_subparts(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mime_type.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_mime_type 3 "April 17, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_mime_type - set a mime part's content type .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLcode curl_mime_type(curl_mimepart * " part , |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_mprintf.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_printf 3 "April 01, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf, curl_mvsprintf - formatted output conversion .SH SYNOPSIS .B #include <curl/mprintf.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_add_handle.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_add_handle 3 "June 30, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_add_handle - add an easy handle to a multi session .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_assign.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_assign 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_assign \- set data to associate with an internal socket .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_cleanup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_cleanup 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_cleanup - close down a multi session .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLMcode curl_multi_cleanup( CURLM *multi_handle );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_fdset.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_fdset 3 "November 09, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_fdset - extracts file descriptor information from a multi handle .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_info_read.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_info_read 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_info_read - read multi stack informationals .SH SYNOPSIS #include <curl/curl.h> CURLMsg *curl_multi_info_read( CURLM *multi_handle, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_init.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_init 3 "September 23, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_init - create a multi handle .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLM *curl_multi_init( );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_perform.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_perform 3 "October 31, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_perform - reads/writes available data from each easy handle .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_poll.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_poll 3 "November 17, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_poll - polls on all easy handles in a multi handle .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_remove_handle.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_remove_handle 3 "February 19, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_remove_handle - remove an easy handle from a multi session .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_setopt.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_setopt 3 "September 24, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_setopt \- set options for a curl multi handle .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM * multi_handle, CURLMoption option, param); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_socket.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_socket 3 "June 30, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_socket \- reads/writes available data .SH SYNOPSIS .nf #include <curl/curl.h> CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_socket_action.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_socket_action 3 "June 10, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_socket_action \- reads/writes available data given an action .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_strerror.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_strerror 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_strerror - return string describing error code .SH SYNOPSIS .nf .B #include <curl/curl.h> .BI "const char *curl_multi_strerror(CURLMcode " errornum ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_timeout.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_timeout 3 "September 23, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_timeout \- how long to wait for action before proceeding .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_timeout(CURLM *multi_handle, long *timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_wait.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_wait 3 "November 28, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_wait - polls on all easy handles in a multi handle .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_multi_wakeup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_multi_wakeup 3 "November 25, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_multi_wakeup - wakes up a sleeping curl_multi_poll call .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_wakeup(CURLM *multi_handle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_share_cleanup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_share_cleanup 3 "August 09, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_share_cleanup - Clean up a shared object .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLSHcode curl_share_cleanup(CURLSH *" share_handle ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_share_init.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_share_init 3 "September 23, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_share_init - Create a shared object .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "CURLSH *curl_share_init( );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_share_setopt.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_share_setopt 3 "June 04, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_share_setopt - Set options for a shared object .SH SYNOPSIS .B #include <curl/curl.h> .sp CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_share_strerror.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_share_strerror 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_share_strerror - return string describing error code .SH SYNOPSIS .nf .B #include <curl/curl.h> .BI "const char *curl_share_strerror(CURLSHcode " errornum ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_slist_append.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_slist_append 3 "January 02, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_slist_append - add a string to an slist .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "struct curl_slist *curl_slist_append(struct curl_slist *" list, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_slist_free_all.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_slist_free_all 3 "September 23, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_slist_free_all - free an entire curl_slist list .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "void curl_slist_free_all(struct curl_slist *" list); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_strequal.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_strequal 3 "June 29, 2017" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_strequal, curl_strnequal - case insensitive string comparisons .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "int curl_strequal(char *" str1 ", char *" str2 ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_unescape.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_unescape 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_unescape - URL decodes the given string .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_unescape( const char *" url ", int "length " );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_url.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_url 3 "March 22, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_url - returns a new CURLU handle .SH SYNOPSIS .B #include <curl/curl.h> CURLU *curl_url(); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_url_cleanup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_url_cleanup 3 "September 08, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_url_cleanup - free a CURLU handle .SH SYNOPSIS .B #include <curl/curl.h> void curl_url_cleanup(CURLU *handle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_url_dup.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_url_dup 3 "September 08, 2018" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_url_dup - duplicate a CURLU handle .SH SYNOPSIS .B #include <curl/curl.h> CURLU *curl_url_dup(CURLU *inhandle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_url_get.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_url_get 3 "September 25, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_url_get - extract a part from a URL .SH SYNOPSIS .B #include <curl/curl.h> .nf |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_url_set.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_url_set 3 "January 05, 2020" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_url_set - set a URL part .SH SYNOPSIS .B #include <curl/curl.h> CURLUcode curl_url_set(CURLU *url, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_version.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH curl_version 3 "February 03, 2016" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_version - returns the libcurl version string .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "char *curl_version( );" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/curl_version_info.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH curl_version_info 3 "August 13, 2019" "libcurl 7.69.0" "libcurl Manual" .SH NAME curl_version_info - returns run-time libcurl version info .SH SYNOPSIS .B #include <curl/curl.h> .sp .BI "curl_version_info_data *curl_version_info( CURLversion "age ");" |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-easy.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl 3 "February 03, 2016" "libcurl 7.69.0" "libcurl easy interface" .SH NAME libcurl-easy \- easy interface overview .SH DESCRIPTION When using libcurl's "easy" interface you init your session and get a handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use \fIcurl_easy_init(3)\fP to get the handle. |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-env.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl-env 3 "April 17, 2018" "libcurl 7.69.0" "libcurl environment variables" .SH NAME libcurl-env \- environment variables libcurl understands .SH DESCRIPTION libcurl reads and understands a set of environment variables that if set will control and change behaviors. This is the full list of variables to set and description of what they do. Also note that curl, the command line tool, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-errors.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH libcurl-errors 3 "December 24, 2019" "libcurl 7.69.0" "libcurl errors" .SH NAME libcurl-errors \- error codes in libcurl .SH DESCRIPTION This man page includes most, if not all, available error codes in libcurl. Why they occur and possibly what you can do to fix the problem are also included. .SH "CURLcode" |
︙ | ︙ | |||
144 145 146 147 148 149 150 | .IP "CURLE_LDAP_SEARCH_FAILED (39)" LDAP search failed. .IP "CURLE_FUNCTION_NOT_FOUND (41)" Function not found. A required zlib function was not found. .IP "CURLE_ABORTED_BY_CALLBACK (42)" Aborted by callback. A callback returned "abort" to libcurl. .IP "CURLE_BAD_FUNCTION_ARGUMENT (43)" | | | 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | .IP "CURLE_LDAP_SEARCH_FAILED (39)" LDAP search failed. .IP "CURLE_FUNCTION_NOT_FOUND (41)" Function not found. A required zlib function was not found. .IP "CURLE_ABORTED_BY_CALLBACK (42)" Aborted by callback. A callback returned "abort" to libcurl. .IP "CURLE_BAD_FUNCTION_ARGUMENT (43)" A function was called with a bad parameter. .IP "CURLE_INTERFACE_FAILED (45)" Interface error. A specified outgoing interface could not be used. Set which interface to use for outgoing connections' source IP address with \fICURLOPT_INTERFACE(3)\fP. .IP "CURLE_TOO_MANY_REDIRECTS (47)" Too many redirects. When following redirects, libcurl hit the maximum amount. Set your limit with \fICURLOPT_MAXREDIRS(3)\fP. |
︙ | ︙ | |||
256 257 258 259 260 261 262 263 264 265 266 267 268 269 | .IP "CURLE_RECURSIVE_API_CALL (93)" An API function was called from inside a callback. .IP "CURLE_AUTH_ERROR (94)" An authentication function returned an error. .IP "CURLE_HTTP3 (95)" A problem was detected in the HTTP/3 layer. This is somewhat generic and can be one out of several problems, see the error buffer for details. .IP "CURLE_OBSOLETE*" These error codes will never be returned. They were used in an old libcurl version and are currently unused. .SH "CURLMcode" This is the generic return code used by functions in the libcurl multi interface. Also consider \fIcurl_multi_strerror(3)\fP. .IP "CURLM_CALL_MULTI_PERFORM (-1)" | > > > | 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | .IP "CURLE_RECURSIVE_API_CALL (93)" An API function was called from inside a callback. .IP "CURLE_AUTH_ERROR (94)" An authentication function returned an error. .IP "CURLE_HTTP3 (95)" A problem was detected in the HTTP/3 layer. This is somewhat generic and can be one out of several problems, see the error buffer for details. .IP "CURLE_QUIC_CONNECT_ERROR (96)" QUIC connection error. This error may be caused by an SSL library error. QUIC is the protocol used for HTTP/3 transfers. .IP "CURLE_OBSOLETE*" These error codes will never be returned. They were used in an old libcurl version and are currently unused. .SH "CURLMcode" This is the generic return code used by functions in the libcurl multi interface. Also consider \fIcurl_multi_strerror(3)\fP. .IP "CURLM_CALL_MULTI_PERFORM (-1)" |
︙ | ︙ | |||
296 297 298 299 300 301 302 303 304 305 306 307 308 309 | .IP "CURLM_ADDED_ALREADY (7)" An easy handle already added to a multi handle was attempted to get added a second time. (Added in 7.32.1) .IP "CURLM_RECURSIVE_API_CALL (8)" An API function was called from inside a callback. .IP "CURLM_WAKEUP_FAILURE (9)" Wakeup is unavailable or failed. .SH "CURLSHcode" The "share" interface will return a CURLSHcode to indicate when an error has occurred. Also consider \fIcurl_share_strerror(3)\fP. .IP "CURLSHE_OK (0)" All fine. Proceed as usual. .IP "CURLSHE_BAD_OPTION (1)" An invalid option was passed to the function. | > > | 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | .IP "CURLM_ADDED_ALREADY (7)" An easy handle already added to a multi handle was attempted to get added a second time. (Added in 7.32.1) .IP "CURLM_RECURSIVE_API_CALL (8)" An API function was called from inside a callback. .IP "CURLM_WAKEUP_FAILURE (9)" Wakeup is unavailable or failed. .IP "CURLM_BAD_FUNCTION_ARGUMENT (10)" A function was called with a bad parameter. .SH "CURLSHcode" The "share" interface will return a CURLSHcode to indicate when an error has occurred. Also consider \fIcurl_share_strerror(3)\fP. .IP "CURLSHE_OK (0)" All fine. Proceed as usual. .IP "CURLSHE_BAD_OPTION (1)" An invalid option was passed to the function. |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-multi.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH libcurl-multi 3 "November 28, 2019" "libcurl 7.69.0" "libcurl multi interface" .SH NAME libcurl-multi \- how to use the multi interface .SH DESCRIPTION This is an overview on how to use the libcurl multi interface in your C programs. There are specific man pages for each function mentioned in here. There's also the \fIlibcurl-tutorial(3)\fP man page for a complete |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-security.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH libcurl-security 3 "July 16, 2019" "libcurl 7.69.0" "libcurl security" .SH NAME libcurl-security \- security considerations when using libcurl .SH "Security" The libcurl project takes security seriously. The library is written with caution and precautions are taken to mitigate many kinds of risks encountered while operating with potentially malicious servers on the Internet. It is a |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-share.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl-share 3 "November 27, 2017" "libcurl 7.69.0" "libcurl share interface" .SH NAME libcurl-share \- how to use the share interface .SH DESCRIPTION This is an overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned in here. |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-symbols.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl-symbols 3 "Mar 4, 2020" "libcurl 7.41.0" "libcurl symbols" .SH NAME libcurl-symbols \- libcurl symbol version information .SH "libcurl symbols" This man page details version information for public symbols provided in the libcurl header files. This lists the first version in which the symbol was introduced and for some symbols two additional information pieces: |
︙ | ︙ | |||
241 242 243 244 245 246 247 248 249 250 251 252 253 254 | Deprecated since 7.17.0 .IP CURLE_OUT_OF_MEMORY Introduced in 7.1 .IP CURLE_PARTIAL_FILE Introduced in 7.1 .IP CURLE_PEER_FAILED_VERIFICATION Introduced in 7.17.1 .IP CURLE_QUOTE_ERROR Introduced in 7.17.0 .IP CURLE_RANGE_ERROR Introduced in 7.17.0 .IP CURLE_READ_ERROR Introduced in 7.1 .IP CURLE_RECURSIVE_API_CALL | > > | 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | Deprecated since 7.17.0 .IP CURLE_OUT_OF_MEMORY Introduced in 7.1 .IP CURLE_PARTIAL_FILE Introduced in 7.1 .IP CURLE_PEER_FAILED_VERIFICATION Introduced in 7.17.1 .IP CURLE_QUIC_CONNECT_ERROR Introduced in 7.69.0 .IP CURLE_QUOTE_ERROR Introduced in 7.17.0 .IP CURLE_RANGE_ERROR Introduced in 7.17.0 .IP CURLE_READ_ERROR Introduced in 7.1 .IP CURLE_RECURSIVE_API_CALL |
︙ | ︙ | |||
701 702 703 704 705 706 707 708 709 710 711 712 713 | Introduced in 7.19.6 .IP CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE Introduced in 7.30.0 .IP CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE Introduced in 7.30.0 .IP CURLMOPT_MAXCONNECTS Introduced in 7.16.3 .IP CURLMOPT_MAX_HOST_CONNECTIONS Introduced in 7.30.0 .IP CURLMOPT_MAX_PIPELINE_LENGTH Introduced in 7.30.0 .IP CURLMOPT_MAX_TOTAL_CONNECTIONS Introduced in 7.30.0 | > > < < | 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 | Introduced in 7.19.6 .IP CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE Introduced in 7.30.0 .IP CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE Introduced in 7.30.0 .IP CURLMOPT_MAXCONNECTS Introduced in 7.16.3 .IP CURLMOPT_MAX_CONCURRENT_STREAMS Introduced in 7.67.0 .IP CURLMOPT_MAX_HOST_CONNECTIONS Introduced in 7.30.0 .IP CURLMOPT_MAX_PIPELINE_LENGTH Introduced in 7.30.0 .IP CURLMOPT_MAX_TOTAL_CONNECTIONS Introduced in 7.30.0 .IP CURLMOPT_PIPELINING Introduced in 7.16.0 .IP CURLMOPT_PIPELINING_SERVER_BL Introduced in 7.30.0 .IP CURLMOPT_PIPELINING_SITE_BL Introduced in 7.30.0 .IP CURLMOPT_PUSHDATA |
︙ | ︙ | |||
735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 | Introduced in 7.9.6 .IP CURLMSG_NONE Introduced in 7.9.6 .IP CURLM_ADDED_ALREADY Introduced in 7.32.1 .IP CURLM_BAD_EASY_HANDLE Introduced in 7.9.6 .IP CURLM_BAD_HANDLE Introduced in 7.9.6 .IP CURLM_BAD_SOCKET Introduced in 7.15.4 .IP CURLM_CALL_MULTI_PERFORM Introduced in 7.9.6 .IP CURLM_CALL_MULTI_SOCKET Introduced in 7.15.5 .IP CURLM_INTERNAL_ERROR Introduced in 7.9.6 .IP CURLM_OK Introduced in 7.9.6 .IP CURLM_OUT_OF_MEMORY Introduced in 7.9.6 .IP CURLM_RECURSIVE_API_CALL Introduced in 7.59.0 .IP CURLM_WAKEUP_FAILURE Introduced in 7.68.0 | > > > > | | | | | | | 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 | Introduced in 7.9.6 .IP CURLMSG_NONE Introduced in 7.9.6 .IP CURLM_ADDED_ALREADY Introduced in 7.32.1 .IP CURLM_BAD_EASY_HANDLE Introduced in 7.9.6 .IP CURLM_BAD_FUNCTION_ARGUMENT Introduced in 7.69.0 .IP CURLM_BAD_HANDLE Introduced in 7.9.6 .IP CURLM_BAD_SOCKET Introduced in 7.15.4 .IP CURLM_CALL_MULTI_PERFORM Introduced in 7.9.6 .IP CURLM_CALL_MULTI_SOCKET Introduced in 7.15.5 .IP CURLM_INTERNAL_ERROR Introduced in 7.9.6 .IP CURLM_OK Introduced in 7.9.6 .IP CURLM_OUT_OF_MEMORY Introduced in 7.9.6 .IP CURLM_RECURSIVE_API_CALL Introduced in 7.59.0 .IP CURLM_UNKNOWN_OPTION Introduced in 7.15.4 .IP CURLM_WAKEUP_FAILURE Introduced in 7.68.0 .IP CURLOPT Introduced in 7.69.0 .IP CURLOPTTYPE_FUNCTIONPOINT Introduced in 7.1 .IP CURLOPTTYPE_LONG Introduced in 7.1 .IP CURLOPTTYPE_OBJECTPOINT Introduced in 7.1 .IP CURLOPTTYPE_OFF_T Introduced in 7.11.0 .IP CURLOPTTYPE_SLISTPOINT Introduced in 7.65.2 .IP CURLOPTTYPE_STRINGPOINT Introduced in 7.46.0 .IP CURLOPT_ABSTRACT_UNIX_SOCKET Introduced in 7.53.0 .IP CURLOPT_ACCEPTTIMEOUT_MS Introduced in 7.24.0 .IP CURLOPT_ACCEPT_ENCODING Introduced in 7.21.6 .IP CURLOPT_ADDRESS_SCOPE |
︙ | ︙ | |||
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 | Introduced in 7.1 .IP CURLOPT_MAIL_AUTH Introduced in 7.25.0 .IP CURLOPT_MAIL_FROM Introduced in 7.20.0 .IP CURLOPT_MAIL_RCPT Introduced in 7.20.0 .IP CURLOPT_MAXAGE_CONN Introduced in 7.65.0 .IP CURLOPT_MAXCONNECTS Introduced in 7.7 .IP CURLOPT_MAXFILESIZE Introduced in 7.10.8 .IP CURLOPT_MAXFILESIZE_LARGE | > > | 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 | Introduced in 7.1 .IP CURLOPT_MAIL_AUTH Introduced in 7.25.0 .IP CURLOPT_MAIL_FROM Introduced in 7.20.0 .IP CURLOPT_MAIL_RCPT Introduced in 7.20.0 .IP CURLOPT_MAIL_RCPT_ALLLOWFAILS Introduced in 7.69.0 .IP CURLOPT_MAXAGE_CONN Introduced in 7.65.0 .IP CURLOPT_MAXCONNECTS Introduced in 7.7 .IP CURLOPT_MAXFILESIZE Introduced in 7.10.8 .IP CURLOPT_MAXFILESIZE_LARGE |
︙ | ︙ | |||
1663 1664 1665 1666 1667 1668 1669 | Introduced in 7.62.0 .IP CURLU_DISALLOW_USER Introduced in 7.62.0 .IP CURLU_GUESS_SCHEME Introduced in 7.62.0 .IP CURLU_NON_SUPPORT_SCHEME Introduced in 7.62.0 | | | | | | | | | | 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 | Introduced in 7.62.0 .IP CURLU_DISALLOW_USER Introduced in 7.62.0 .IP CURLU_GUESS_SCHEME Introduced in 7.62.0 .IP CURLU_NON_SUPPORT_SCHEME Introduced in 7.62.0 .IP CURLU_NO_AUTHORITY Introduced in 7.67.0 .IP CURLU_NO_DEFAULT_PORT Introduced in 7.62.0 .IP CURLU_PATH_AS_IS Introduced in 7.62.0 .IP CURLU_URLDECODE Introduced in 7.62.0 .IP CURLU_URLENCODE Introduced in 7.62.0 .IP CURLVERSION_FIFTH Introduced in 7.57.0 .IP CURLVERSION_FIRST Introduced in 7.10 .IP CURLVERSION_FOURTH Introduced in 7.16.1 .IP CURLVERSION_NOW Introduced in 7.10 .IP CURLVERSION_SECOND Introduced in 7.11.1 .IP CURLVERSION_SIXTH Introduced in 7.66.0 .IP CURLVERSION_THIRD Introduced in 7.12.0 .IP CURL_CHUNK_BGN_FUNC_FAIL Introduced in 7.21.0 .IP CURL_CHUNK_BGN_FUNC_OK Introduced in 7.21.0 .IP CURL_CHUNK_BGN_FUNC_SKIP Introduced in 7.21.0 .IP CURL_CHUNK_END_FUNC_FAIL |
︙ | ︙ | |||
2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 | Introduced in 7.40.0 .IP CURL_WAIT_POLLIN Introduced in 7.28.0 .IP CURL_WAIT_POLLOUT Introduced in 7.28.0 .IP CURL_WAIT_POLLPRI Introduced in 7.28.0 .IP CURL_WRITEFUNC_PAUSE Introduced in 7.18.0 .IP CURL_ZERO_TERMINATED Introduced in 7.56.0 | > > | 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 | Introduced in 7.40.0 .IP CURL_WAIT_POLLIN Introduced in 7.28.0 .IP CURL_WAIT_POLLOUT Introduced in 7.28.0 .IP CURL_WAIT_POLLPRI Introduced in 7.28.0 .IP CURL_WIN32 Introduced in 7.69.0 .IP CURL_WRITEFUNC_PAUSE Introduced in 7.18.0 .IP CURL_ZERO_TERMINATED Introduced in 7.56.0 |
Changes to jni/curl/docs/libcurl/libcurl-thread.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH libcurl-thread 3 "June 30, 2019" "libcurl 7.69.0" "libcurl thread safety" .SH NAME libcurl-thread \- libcurl thread safety .SH "Multi-threading with libcurl" libcurl is thread safe but has no internal thread synchronization. You may have to provide your own locking should you meet any of the thread safety exceptions below. |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-tutorial.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH libcurl-tutorial 3 "October 31, 2019" "libcurl 7.69.0" "libcurl programming" .SH NAME libcurl-tutorial \- libcurl programming tutorial .SH "Objective" This document attempts to describe the general principles and some basic approaches to consider when programming with libcurl. The text will focus mainly on the C interface but might apply fairly well on other interfaces as |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl-url.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl 3 "September 10, 2018" "libcurl 7.69.0" "libcurl url interface" .SH NAME libcurl-url \- URL interface overview .SH DESCRIPTION The URL interface provides a set of functions for parsing and generating URLs. .SH INCLUDE You still only include <curl/curl.h> in your code. Note that the URL API was |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/libcurl.3.
︙ | ︙ | |||
15 16 17 18 19 20 21 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .TH libcurl 3 "July 15, 2017" "libcurl 7.69.0" "libcurl overview" .SH NAME libcurl \- client-side URL transfers .SH DESCRIPTION This is a short overview on how to use libcurl in your C programs. There are specific man pages for each function mentioned in here. There are also the \fIlibcurl-easy(3)\fP man page, the \fIlibcurl-multi(3)\fP man page, the |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_ACTIVESOCKET 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_ACTIVESOCKET \- get the active socket .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_ACTIVESOCKET, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_APPCONNECT_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is completed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_APPCONNECT_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_APPCONNECT_TIME_T \- get the time until the SSL/SSH handshake is completed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CERTINFO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CERTINFO 3 "November 07, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CERTINFO \- get the TLS certificate chain .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CERTINFO, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONDITION_UNMET 3 "February 23, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONDITION_UNMET \- get info on unmet time conditional .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONDITION_UNMET, long *unmet); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONNECT_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONNECT_TIME \- get the time until connect .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONNECT_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONNECT_TIME_T \- get the time until connect .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_CONTENT_TYPE 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_CONTENT_TYPE \- get Content-Type .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_TYPE, char **ct); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_COOKIELIST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_COOKIELIST 3 "February 15, 2020" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_COOKIELIST \- get all known cookies .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_COOKIELIST, |
︙ | ︙ | |||
42 43 44 45 46 47 48 | HTTP(S) .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); | | | | | 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 | HTTP(S) .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); /* enable the cookie engine */ curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); res = curl_easy_perform(curl); if(!res) { /* extract all known cookies */ struct curl_slist *cookies = NULL; res = curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies); if(!res && cookies) { /* a linked list of cookies in cookie file format */ struct curl_slist *each = cookies; while(each) { printf("%s\\n", each->data); each = each->next; } /* we must free these cookies when we're done */ curl_slist_free_all(cookies); } } curl_easy_cleanup(curl); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_EFFECTIVE_URL 3 "May 04, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_EFFECTIVE_URL \- get the last used URL .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_URL, char **urlp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_FILETIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_FILETIME \- get the remote time of the retrieved document .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME, long *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_FILETIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_FILETIME_T \- get the remote time of the retrieved document .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_FTP_ENTRY_PATH 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FTP_ENTRY_PATH, char **path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_HEADER_SIZE 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_HEADER_SIZE \- get size of retrieved headers .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HEADER_SIZE, long *sizep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_HTTPAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTPAUTH_AVAIL, long *authp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_HTTP_CONNECTCODE 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_CONNECTCODE, long *p); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_HTTP_VERSION 3 "August 07, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_HTTP_VERSION \- get the http version used in the connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_VERSION, long *p); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_LASTSOCKET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_LASTSOCKET 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_LASTSOCKET \- get the last socket used .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LASTSOCKET, long *socket); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_LOCAL_IP.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_LOCAL_IP \- get local IP address of last connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_IP, char **ip); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_LOCAL_PORT 3 "March 16, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_LOCAL_PORT \- get the latest local port number .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_PORT, long *portp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_NAMELOOKUP_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_NAMELOOKUP_TIME \- get the name lookup time .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_NAMELOOKUP_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_NUM_CONNECTS 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_NUM_CONNECTS \- get number of created connections .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NUM_CONNECTS, long *nump); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_OS_ERRNO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_OS_ERRNO 3 "November 07, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_OS_ERRNO \- get errno number from last connect failure .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_OS_ERRNO, long *errnop); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PRETRANSFER_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PRETRANSFER_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PRIMARY_IP 3 "March 22, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PRIMARY_IP \- get IP address of last connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_IP, char **ip); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PRIMARY_PORT 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PRIMARY_PORT \- get the latest destination port number .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_PORT, long *portp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIVATE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PRIVATE 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PRIVATE \- get the private pointer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIVATE, char **private); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROTOCOL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PROTOCOL 3 "April 27, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PROTOCOL \- get the protocol used in the connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROTOCOL, long *p); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PROXYAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXYAUTH_AVAIL, long *authp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate verification .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXY_SSL_VERIFYRESULT, long *result); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_REDIRECT_COUNT 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_REDIRECT_COUNT \- get the number of redirects .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_COUNT, long *countp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_REDIRECT_TIME 3 "May 17, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_REDIRECT_TIME \- get the time for all redirection steps .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_REDIRECT_TIME_T 3 "May 17, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_REDIRECT_URL 3 "June 24, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_REDIRECT_URL \- get the URL a redirect would go to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_URL, char **urlp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_REQUEST_SIZE 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_REQUEST_SIZE \- get size of sent request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REQUEST_SIZE, long *sizep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RESPONSE_CODE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RESPONSE_CODE \- get the last response code .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RESPONSE_CODE, long *codep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | | 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 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RETRY_AFTER 3 "February 29, 2020" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RETRY_AFTER \- returns the Retry-After retry delay .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RETRY_AFTER, curl_off_t *retry); .SH DESCRIPTION Pass a pointer to a curl_off_t variable to receive the number of seconds the HTTP server suggesets the client should wait until the next request is issued. The information from the "Retry-After:" header. While the HTTP header might contain a fixed date string, the \fICURLINFO_RETRY_AFTER(3)\fP will always return number of seconds to wait - or zero if there was no header or the header couldn't be parsed. .SH DEFAULT Returns zero delay if there was no header. .SH PROTOCOLS HTTP(S) .SH EXAMPLE .nf |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CLIENT_CSEQ, long *cseq); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RTSP_CSEQ_RECV 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CSEQ_RECV, long *cseq); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SERVER_CSEQ, long *cseq); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_RTSP_SESSION_ID \- get RTSP session ID .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SESSION_ID, char **id); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SCHEME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SCHEME 3 "April 08, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SCHEME, char **scheme); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SIZE_DOWNLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD, double *dlp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SIZE_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD_T, curl_off_t *dlp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SIZE_UPLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD, double *uploadp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SIZE_UPLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD_T, curl_off_t *uploadp); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SPEED_DOWNLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SPEED_DOWNLOAD \- get download speed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD, double *speed); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SPEED_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SPEED_DOWNLOAD_T \- get download speed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD_T, curl_off_t *speed); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SPEED_UPLOAD 3 "June 15, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SPEED_UPLOAD \- get upload speed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD, double *speed); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SPEED_UPLOAD_T 3 "March 31, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SPEED_UPLOAD_T \- get upload speed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD_T, curl_off_t *speed); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SSL_ENGINES 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_ENGINES, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_SSL_VERIFYRESULT 3 "March 21, 2018" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_VERIFYRESULT, long *result); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_STARTTRANSFER_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_STARTTRANSFER_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_TLS_SESSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_TLS_SESSION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_TLS_SESSION \- get TLS session info .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_TLS_SSL_PTR 3 "July 16, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_TOTAL_TIME 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_TOTAL_TIME \- get total time of previous transfer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME, double *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLINFO_TOTAL_TIME_T 3 "August 26, 2019" "libcurl 7.69.0" "curl_easy_getinfo options" .SH NAME CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME_T, curl_off_t *timep); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_MAXCONNECTS 3 "September 23, 2018" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_MAXCONNECTS \- set size of connection cache .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAXCONNECTS, long max); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "May 27, 2017" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_HOST_CONNECTIONS, long max); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_PIPELINE_LENGTH, long max); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "May 27, 2017" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_TOTAL_CONNECTIONS, long amount); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_PIPELINING 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_PIPELINING_SERVER_BL 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_PIPELINING_SERVER_BL \- pipelining server blacklist .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SERVER_BL, char **servers); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_PIPELINING_SITE_BL 3 "April 05, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_PIPELINING_SITE_BL \- pipelining host blacklist .SH SYNOPSIS #include <curl/curl.h> CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SITE_BL, char **hosts); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PUSHDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_PUSHDATA \- pointer to pass to push callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_SOCKETFUNCTION 3 "June 24, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_TIMERDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLMOPT_TIMERFUNCTION 3 "May 03, 2019" "libcurl 7.69.0" "curl_multi_setopt options" .SH NAME CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ABSTRACT_UNIX_SOCKET, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPTTIMEOUT_MS, long ms); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ACCEPT_ENCODING 3 "August 27, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ADDRESS_SCOPE 3 "March 07, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ADDRESS_SCOPE \- set scope id for IPv6 addresses .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ADDRESS_SCOPE, long scope); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ALTSVC.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ALTSVC 3 "August 14, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ALTSVC \- set alt-svc cache file name .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ALTSVC_CTRL 3 "February 11, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ALTSVC_CTRL \- control alt-svc behavior .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ | |||
66 67 68 69 70 71 72 | libcurl was also built to actually support HTTP/2, otherwise this bit will be ignored. .IP "CURLALTSVC_H3" Accept alternative services offered over HTTP/3. This will only be used if libcurl was also built to actually support HTTP/3, otherwise this bit will be ignored. .SH DEFAULT | | > > > | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | libcurl was also built to actually support HTTP/2, otherwise this bit will be ignored. .IP "CURLALTSVC_H3" Accept alternative services offered over HTTP/3. This will only be used if libcurl was also built to actually support HTTP/3, otherwise this bit will be ignored. .SH DEFAULT Alt-Svc handling is disabled by default. If \fICURLOPT_ALTSVC(3)\fP is set, \fICURLOPT_ALTSVC_CTRL(3)\fP has a default value corresponding to CURLALTSVC_H1 | CURLALTSVC_H2 | CURLALTSVC_H3 - the HTTP/2 and HTTP/3 bits are only set if libcurl was built with support for those versions. .SH PROTOCOLS HTTPS .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_APPEND.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_APPEND \- enable appending to the remote file .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_APPEND, long append); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_AUTOREFERER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_AUTOREFERER \- automatically update the referer header .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AUTOREFERER, long autorefer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_BUFFERSIZE \- set preferred receive buffer size .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_BUFFERSIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CAINFO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CAINFO 3 "June 10, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAINFO, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CAPATH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CAPATH \- specify directory holding CA certificates .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAPATH, char *capath); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CERTINFO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CERTINFO 3 "January 29, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CERTINFO \- request SSL certificate information .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long certinfo); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CHUNK_BGN_FUNCTION 3 "May 03, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CHUNK_DATA 3 "November 07, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CLOSESOCKETDATA 3 "November 07, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CLOSESOCKETFUNCTION 3 "November 07, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function .SH SYNOPSIS #include <curl/curl.h> int closesocket_callback(void *clientp, curl_socket_t item); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONNECTTIMEOUT_MS 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT_MS, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONNECT_ONLY 3 "February 18, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONNECT_ONLY \- stop when connected to target server .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_ONLY, long only); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECT_TO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONNECT_TO 3 "May 05, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the URL's host and port .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COOKIE \- set contents of HTTP Cookie header .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIE, char *cookie); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIEFILE.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COOKIEFILE 3 "January 10, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COOKIEFILE \- file name to read cookies from .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEFILE, char *filename); |
︙ | ︙ | |||
72 73 74 75 76 77 78 79 80 81 82 83 84 | curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookies.txt"); ret = curl_easy_perform(curl); curl_easy_cleanup(curl); } .fi .SH AVAILABILITY As long as HTTP is supported .SH RETURN VALUE Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not. .SH "SEE ALSO" .BR CURLOPT_COOKIE "(3), " CURLOPT_COOKIEJAR "(3), " | > > > > | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookies.txt"); ret = curl_easy_perform(curl); curl_easy_cleanup(curl); } .fi .SH "Cookie file format" The cookie file format and general cookie concepts in curl are described in the HTTP-COOKIES.md file, also hosted online here: https://curl.haxx.se/docs/http-cookies.html .SH AVAILABILITY As long as HTTP is supported .SH RETURN VALUE Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not. .SH "SEE ALSO" .BR CURLOPT_COOKIE "(3), " CURLOPT_COOKIEJAR "(3), " |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIEJAR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COOKIEJAR \- file name to store cookies to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEJAR, char *filename); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIELIST.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COOKIELIST 3 "January 10, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 | */ curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); /* export */ curl_easy_perform(curl); /* cookies imported from cookies.txt */ curl_easy_cleanup(curl); /* cookies exported to cookies.txt */ .fi .SH AVAILABILITY ALL was added in 7.14.1 SESS was added in 7.15.4 FLUSH was added in 7.17.1 | > > > > | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | */ curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); /* export */ curl_easy_perform(curl); /* cookies imported from cookies.txt */ curl_easy_cleanup(curl); /* cookies exported to cookies.txt */ .fi .SH "Cookie file format" The cookie file format and general cookie concepts in curl are described in the HTTP-COOKIES.md file, also hosted online here: https://curl.haxx.se/docs/http-cookies.html .SH AVAILABILITY ALL was added in 7.14.1 SESS was added in 7.15.4 FLUSH was added in 7.17.1 |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIESESSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COOKIESESSION \- start a new cookie session .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIESESSION, long init); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COPYPOSTFIELDS, char *data); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CRLF.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CRLF \- enable/disable CRLF conversion .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLF, long conv); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CRLFILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CRLFILE \- specify a Certificate Revocation List file .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLFILE, char *file); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CURLU.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CURLU 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CURLU \- set URL with CURLU * .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CURLU, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_CUSTOMREQUEST 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_CUSTOMREQUEST \- custom string for request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEBUGDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DEBUGDATA \- custom pointer for debug callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DEBUGFUNCTION \- debug callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a scheme name .SH SYNOPSIS #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DIRLISTONLY \- ask for names only in a directory listing .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DIRLISTONLY, long listonly); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DISALLOW_USERNAME_IN_URL 3 "February 25, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DISALLOW_USERNAME_IN_URL, long disallow); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_CACHE_TIMEOUT, long age); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_INTERFACE \- set interface to speak DNS over .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP4, char *address); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP6, char *address); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_SERVERS \- set preferred DNS servers .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SERVERS, char *servers); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "March 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns more than one .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "March 07, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_USE_GLOBAL_CACHE, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_DOH_URL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_DOH_URL 3 "September 06, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DOH_URL, char *URL); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_EGDSOCKET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_EGDSOCKET \- set EGD socket path .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EGDSOCKET, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ERRORBUFFER 3 "March 13, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ERRORBUFFER \- set error buffer for error messages .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ERRORBUFFER, char *buf); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FAILONERROR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FAILONERROR 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FAILONERROR \- request failure on HTTP response >= 400 .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FAILONERROR, long fail); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FILETIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FILETIME 3 "April 03, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FILETIME \- get the modification time of the remote resource .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FILETIME, long gettime); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FNMATCH_DATA 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FNMATCH_DATA \- custom pointer to fnmatch callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FNMATCH_FUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FNMATCH_FUNCTION \- wildcard matching function callback .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FOLLOWLOCATION 3 "January 28, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FOLLOWLOCATION \- follow HTTP 3xx redirects .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FOLLOWLOCATION, long enable); |
︙ | ︙ | |||
43 44 45 46 47 48 49 | will allow HTTP, HTTPS, FTP and FTPS on redirect (7.65.2). Older versions of libcurl allowed all protocols on redirect except those disabled for security reasons: Since 7.19.4 FILE and SCP are disabled, and since 7.40.0 SMB and SMBS are also disabled. When following a Location:, the 3xx response code that redirected it also dictates which request method it will use in the subsequent request: For 301, | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | will allow HTTP, HTTPS, FTP and FTPS on redirect (7.65.2). Older versions of libcurl allowed all protocols on redirect except those disabled for security reasons: Since 7.19.4 FILE and SCP are disabled, and since 7.40.0 SMB and SMBS are also disabled. When following a Location:, the 3xx response code that redirected it also dictates which request method it will use in the subsequent request: For 301, 302 and 303 responses libcurl will switch method from POST to GET unless \fICURLOPT_POSTREDIR(3)\fP instructs libcurl otherwise. All other 3xx codes will make libcurl send the same method again. For users who think the existing location following is too naive, too simple or just lacks features, it is very easy to instead implement your own redirect follow logic with the use of \fIcurl_easy_getinfo(3)\fP's \fICURLINFO_REDIRECT_URL(3)\fP option instead of using |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FORBID_REUSE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FORBID_REUSE \- make connection get closed at once after use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FORBID_REUSE, long close); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FRESH_CONNECT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FRESH_CONNECT \- force a new connection to be used .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FRESH_CONNECT, long fresh); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTPPORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTPPORT 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTPPORT \- make FTP transfer active .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTPPORT, char *spec); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTPSSLAUTH 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTPSSLAUTH \- set order in which to attempt TLS vs SSL when using FTP .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTPSSLAUTH, long order); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_ACCOUNT 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_ACCOUNT \- set account info for FTP .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_ACCOUNT, char *account); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_ALTERNATIVE_TO_USER \- command to use instead of USER with FTP .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_CREATE_MISSING_DIRS \- create missing dirs for FTP and SFTP .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_FILEMETHOD 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_FILEMETHOD \- select directory traversing method for FTP .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "October 03, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_RESPONSE_TIMEOUT \- time allowed to wait for FTP response .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_RESPONSE_TIMEOUT, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_SKIP_PASV_IP 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_SKIP_PASV_IP \- ignore the IP address in the PASV response .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_SKIP_PASV_IP, long skip); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_SSL_CCC 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_SSL_CCC \- switch off SSL again with FTP after auth .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_SSL_CCC, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_USE_EPRT 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_USE_EPRT \- enable/disable use of EPRT with FTP .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_USE_EPRT, long enabled); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_USE_EPSV 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_USE_EPSV \- enable/disable use of EPSV .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_USE_EPSV, long epsv); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_FTP_USE_PRET 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_FTP_USE_PRET \- enable the PRET command .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_USE_PRET, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_GSSAPI_DELEGATION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_GSSAPI_DELEGATION \- set allowed GSS-API delegation .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_GSSAPI_DELEGATION, long level); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "February 21, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS \- head start for ipv6 for happy eyeballs .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HAPROXYPROTOCOL 3 "May 18, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HAPROXYPROTOCOL \- send HAProxy PROXY protocol v1 header .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HAPROXYPROTOCOL, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HEADER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HEADER 3 "October 03, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HEADER \- pass headers to the data stream .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADER, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HEADERDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HEADERDATA 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HEADERDATA \- pointer to pass to header callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADERDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HEADERFUNCTION 3 "December 26, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HEADERFUNCTION \- callback that receives header data .SH SYNOPSIS #include <curl/curl.h> size_t header_callback(char *buffer, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HEADEROPT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HEADEROPT 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HEADEROPT \- set how to send HTTP headers .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADEROPT, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTP09_ALLOWED 3 "August 05, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTP09 \- allow HTTP/0.9 response .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP09_ALLOWED, long allowed); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTP200ALIASES 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTP200ALIASES \- specify alternative matches for HTTP 200 OK .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTPAUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTPAUTH 3 "June 15, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTPGET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTPGET 3 "May 21, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTPGET \- ask for an HTTP GET request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPGET, long useget); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTPHEADER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTPHEADER 3 "December 30, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTPHEADER \- set custom HTTP headers .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPHEADER, struct curl_slist *headers); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTPPOST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTPPOST 3 "September 02, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTPPOST \- specify the multipart formpost content .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTPPROXYTUNNEL 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTPPROXYTUNNEL \- tunnel through HTTP proxy .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPPROXYTUNNEL, long tunnel); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTP_CONTENT_DECODING 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTP_CONTENT_DECODING \- enable/disable HTTP content decoding .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTP_TRANSFER_DECODING 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTP_TRANSFER_DECODING \- enable/disable HTTP transfer decoding .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_HTTP_VERSION 3 "September 14, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_HTTP_VERSION \- specify HTTP protocol version to use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP_VERSION, long version); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_INFILESIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_INFILESIZE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_INFILESIZE \- set size of the input file to send off .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INFILESIZE, long filesize); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_INFILESIZE_LARGE 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_INFILESIZE_LARGE \- set size of the input file to send off .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_INTERFACE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_INTERFACE 3 "June 18, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_INTERFACE \- source interface for outgoing traffic .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERFACE, char *interface); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_INTERLEAVEDATA 3 "September 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_INTERLEAVEDATA \- custom pointer passed to RTSP interleave callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERLEAVEDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_INTERLEAVEFUNCTION 3 "August 11, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_INTERLEAVEFUNCTION \- callback function for RTSP interleaved data .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_IOCTLDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_IOCTLDATA 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_IOCTLDATA \- custom pointer passed to I/O callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IOCTLDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_IOCTLFUNCTION 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_IOCTLFUNCTION \- callback for I/O operations .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_IPRESOLVE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_IPRESOLVE 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_IPRESOLVE \- specify which IP protocol version to use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IPRESOLVE, long resolve); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_ISSUERCERT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_ISSUERCERT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_ISSUERCERT \- issuer SSL certificate filename .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ISSUERCERT, char *file); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_KEEP_SENDING_ON_ERROR \- keep sending on early HTTP response >= 300 .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_KEEP_SENDING_ON_ERROR, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_KEYPASSWD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_KEYPASSWD 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_KEYPASSWD \- set passphrase to private key .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_KEYPASSWD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_KRBLEVEL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_KRBLEVEL 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_KRBLEVEL \- set FTP kerberos security level .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_KRBLEVEL, char *level); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_LOCALPORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_LOCALPORT 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_LOCALPORT \- set local port number to use for socket .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_LOCALPORT, long port); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_LOCALPORTRANGE 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_LOCALPORTRANGE \- number of additional local ports to try .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_LOCALPORTRANGE, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_LOGIN_OPTIONS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_LOGIN_OPTIONS \- set login options .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_LOGIN_OPTIONS, char *options); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_LOW_SPEED_LIMIT 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_LOW_SPEED_LIMIT \- set low speed limit in bytes per second .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_LOW_SPEED_LIMIT, long speedlimit); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_LOW_SPEED_TIME 3 "May 06, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_LOW_SPEED_TIME \- set low speed limit time period .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_LOW_SPEED_TIME, long speedtime); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAIL_AUTH 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAIL_AUTH \- SMTP authentication address .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_AUTH, char *auth); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAIL_FROM.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAIL_FROM 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAIL_FROM \- SMTP sender address .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_FROM, char *from); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAIL_RCPT 3 "July 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAIL_RCPT \- list of SMTP mail recipients .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Added jni/curl/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.3.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAIL_RCPT_ALLLOWFAILS 3 "January 14, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAIL_RCPT_ALLLOWFAILS \- allow RCPT TO command to fail for some recipients .SH SYNOPSIS .nf #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_RCPT_ALLLOWFAILS, long allow); .SH DESCRIPTION If \fIallow\fP is set to 1L, allow RCPT TO command to fail for some recipients. When sending data to multiple recipients, by default curl will abort SMTP conversation if at least one of the recipients causes RCPT TO command to return an error. The default behavior can be changed by setting \fIignore\fP to 1L which will make curl ignore errors and proceed with the remaining valid recipients. In case when all recipients cause RCPT TO command to fail, curl will abort SMTP conversation and return the error received from to the last RCPT TO command. .SH DEFAULT 0 .SH PROTOCOLS SMTP .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { struct curl_slist *list; /* Adding one valid and one invalid email address */ list = curl_slist_append(NULL, "person@example.com"); list = curl_slist_append(list, "invalidemailaddress"); curl_easy_setopt(curl, CURLOPT_URL, "smtp://example.com/"); curl_easy_setopt(curl, CURLOPT_MAIL_RCPT_ALLLOWFAILS, 1L); ret = curl_easy_perform(curl); curl_slist_free_all(list); curl_easy_cleanup(curl); } .fi .SH AVAILABILITY Added in 7.69.0. .SH RETURN VALUE Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. .SH "SEE ALSO" .BR CURLOPT_MAIL_FROM "(3), " CURLOPT_MAIL_RCPT "(3), " |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAXAGE_CONN 3 "April 14, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAXAGE_CONN \- max idle time allowed for reusing a connection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXAGE_CONN, long maxage); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAXCONNECTS 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAXCONNECTS \- maximum connection cache size .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXCONNECTS, long amount); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAXFILESIZE 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAXFILESIZE \- maximum file size allowed to download .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXFILESIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAXFILESIZE_LARGE 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAXFILESIZE_LARGE \- maximum file size allowed to download .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAXREDIRS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAXREDIRS 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAXREDIRS \- maximum number of redirects allowed .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXREDIRS, long amount); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAX_RECV_SPEED_LARGE \- rate limit data download speed .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MAX_SEND_SPEED_LARGE \- rate limit data upload speed .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_MIMEPOST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_MIMEPOST 3 "September 04, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_MIMEPOST \- set post/send data from mime structure .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NETRC.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NETRC 3 "November 03, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NETRC \- request that .netrc is used .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NETRC, long level); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NETRC_FILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NETRC_FILE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NETRC_FILE \- file name to read .netrc info from .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NETRC_FILE, char *file); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NEW_DIRECTORY_PERMS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NEW_DIRECTORY_PERMS \- permissions for remotely created directories .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NEW_FILE_PERMS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NEW_FILE_PERMS \- permissions for remotely created files .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NOBODY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NOBODY 3 "June 21, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NOBODY \- do the download request without getting the body .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOBODY, long opt); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NOPROGRESS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NOPROGRESS 3 "October 09, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NOPROGRESS \- switch off the progress meter .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOPROGRESS, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NOPROXY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NOPROXY 3 "August 24, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NOPROXY \- disable proxy use for specific hosts .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOPROXY, char *noproxy); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_NOSIGNAL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_NOSIGNAL 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_NOSIGNAL \- skip all signal handling .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOSIGNAL, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_OPENSOCKETDATA 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_OPENSOCKETDATA \- custom pointer passed to open socket callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_OPENSOCKETDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_OPENSOCKETFUNCTION 3 "December 03, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_OPENSOCKETFUNCTION \- set callback for opening sockets .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PASSWORD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PASSWORD 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PASSWORD \- password to use in authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PASSWORD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PATH_AS_IS 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PATH_AS_IS \- do not handle dot dot sequences .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PATH_AS_IS, long leaveit); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PINNEDPUBLICKEY 3 "June 02, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PINNEDPUBLICKEY \- set pinned public key .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PINNEDPUBLICKEY, char *pinnedpubkey); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PIPEWAIT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PIPEWAIT 3 "May 01, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PIPEWAIT \- wait for pipelining/multiplexing .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PIPEWAIT, long wait); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PORT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PORT \- set remote port number to work with .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PORT, long number); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POST 3 "July 22, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POST \- request an HTTP POST .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POST, long post); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POSTFIELDS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POSTFIELDS 3 "January 14, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POSTFIELDS \- specify data to POST to server .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDS, char *postdata); |
︙ | ︙ | |||
51 52 53 54 55 56 57 | If \fICURLOPT_POSTFIELDS(3)\fP is explicitly set to NULL then libcurl will get the POST data from the read callback. If you want to send a zero-byte POST set \fICURLOPT_POSTFIELDS(3)\fP to an empty string, or set \fICURLOPT_POST(3)\fP to 1 and \fICURLOPT_POSTFIELDSIZE(3)\fP to 0. Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header, and libcurl will add that header automatically if the POST is either known to | | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | If \fICURLOPT_POSTFIELDS(3)\fP is explicitly set to NULL then libcurl will get the POST data from the read callback. If you want to send a zero-byte POST set \fICURLOPT_POSTFIELDS(3)\fP to an empty string, or set \fICURLOPT_POST(3)\fP to 1 and \fICURLOPT_POSTFIELDSIZE(3)\fP to 0. Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header, and libcurl will add that header automatically if the POST is either known to be larger than 1MB or if the expected size is unknown. You can disable this header with \fICURLOPT_HTTPHEADER(3)\fP as usual. To make multipart/formdata posts (aka RFC2388-posts), check out the \fICURLOPT_HTTPPOST(3)\fP option combined with \fIcurl_formadd(3)\fP. .SH DEFAULT NULL .SH PROTOCOLS HTTP |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POSTFIELDSIZE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POSTFIELDSIZE \- size of POST data pointed to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDSIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POSTFIELDSIZE_LARGE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POSTFIELDSIZE_LARGE \- size of POST data pointed to .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POSTQUOTE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POSTQUOTE 3 "December 18, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POSTQUOTE \- (S)FTP commands to run after the transfer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTQUOTE, struct curl_slist *cmds); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_POSTREDIR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_POSTREDIR 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_POSTREDIR \- how to act on an HTTP POST redirect .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PREQUOTE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PREQUOTE 3 "December 18, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PREQUOTE \- commands to run before an FTP transfer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PREQUOTE, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PRE_PROXY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PRE_PROXY 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PRE_PROXY \- set pre-proxy to use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PRE_PROXY, char *preproxy); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PRIVATE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PRIVATE 3 "December 08, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PRIVATE \- store a private pointer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PRIVATE, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROGRESSDATA 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROGRESSDATA \- custom pointer passed to the progress callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROGRESSDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROGRESSFUNCTION 3 "November 26, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROGRESSFUNCTION \- callback to progress meter function .SH SYNOPSIS #include <curl/curl.h> int progress_callback(void *clientp, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROTOCOLS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROTOCOLS 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROTOCOLS \- set allowed protocols .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROTOCOLS, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY 3 "August 24, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY \- set proxy to use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY, char *proxy); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYAUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYAUTH 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYAUTH \- set HTTP proxy authentication methods to try .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYAUTH, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYHEADER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYHEADER 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYHEADER \- custom HTTP headers to pass to proxy .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYPASSWORD 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYPASSWORD \- password to use with proxy authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYPASSWORD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYPORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYPORT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYPORT \- port number the proxy listens on .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYPORT, long port); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYTYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYTYPE 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYTYPE \- proxy protocol type .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYTYPE, long type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYUSERNAME 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYUSERNAME \- user name to use for proxy authentication .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXYUSERPWD 3 "May 30, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXYUSERPWD \- user name and password to use for proxy authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYUSERPWD, char *userpwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_CAINFO 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_CAINFO \- path to proxy Certificate Authority (CA) bundle .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CAINFO, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_CAPATH 3 "May 15, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_CAPATH \- specify directory holding proxy CA certificates .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CAPATH, char *capath); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_CRLFILE 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_CRLFILE \- specify a proxy Certificate Revocation List file .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CRLFILE, char *file); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_KEYPASSWD 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_KEYPASSWD \- set passphrase to proxy private key .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_KEYPASSWD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "May 15, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_PINNEDPUBLICKEY \- set pinned public key for https proxy .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_PINNEDPUBLICKEY, char *pinnedpubkey); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SERVICE_NAME \- proxy authentication service name .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SERVICE_NAME, char *name); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSLCERT 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSLCERT \- set SSL proxy client certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLCERT, char *cert); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSLCERTTYPE 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSLCERTTYPE \- specify type of the proxy client SSL certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLCERTTYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSLKEY 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSLKEY \- specify private keyfile for TLS and SSL proxy client cert .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLKEY, char *keyfile); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSLKEYTYPE 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSLKEYTYPE \- set type of the proxy private key file .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLKEYTYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSLVERSION 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSLVERSION \- set preferred proxy TLS/SSL version .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLVERSION, long version); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "October 10, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSL_CIPHER_LIST \- specify ciphers to use for proxy TLS .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_CIPHER_LIST, char *list); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | | | | | > | | | | | | | | | < > > > > > > | | 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 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSL_OPTIONS 3 "January 23, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSL_OPTIONS \- set proxy SSL behavior options .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_OPTIONS, long bitmask); .SH DESCRIPTION Pass a long with a bitmask to tell libcurl about specific SSL behaviors. Available bits: .IP CURLSSLOPT_ALLOW_BEAST Tells libcurl to not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. If this option isn't used or this bit is set to 0, the SSL layer libcurl uses may use a work-around for this flaw although it might cause interoperability problems with some (older) SSL implementations. WARNING: avoiding this work-around lessens the security, and by setting this option to 1 you ask for exactly that. This option is only supported for DarwinSSL, NSS and OpenSSL. .IP CURLSSLOPT_NO_REVOKE Tells libcurl to disable certificate revocation checks for those SSL backends where such behavior is present. This option is only supported for Schannel (the native Windows SSL library), with an exception in the case of Windows' Untrusted Publishers blacklist which it seems can't be bypassed. (Added in 7.44.0) .IP CURLSSLOPT_NO_PARTIALCHAIN Tells libcurl to not accept "partial" certificate chains, which it otherwise does by default. This option is only supported for OpenSSL and will fail the certificate verification if the chain ends with an intermediate certificate and not with a root cert. (Added in 7.68.0) .SH DEFAULT 0 .SH PROTOCOLS All TLS-based protocols .SH AVAILABLE Added in 7.52.0 .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/"); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "August 20, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSL_VERIFYHOST \- verify the proxy certificate's name against host .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_VERIFYHOST, long verify); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "December 16, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_SSL_VERIFYPEER \- verify the proxy's SSL certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_VERIFYPEER, long verify); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_TLS13_CIPHERS 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_TLS13_CIPHERS \- ciphers suites for proxy TLS 1.3 .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_TLS13_CIPHERS, char *list); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_TLSAUTH_PASSWORD \- password to use for proxy TLS authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_TLSAUTH_PASSWORD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_TLSAUTH_TYPE \- set proxy TLS authentication methods .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_TLSAUTH_TYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_TLSAUTH_USERNAME \- user name to use for proxy TLS authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_TLSAUTH_USERNAME, char *user); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PROXY_TRANSFER_MODE 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PROXY_TRANSFER_MODE \- append FTP transfer mode to URL for proxy .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_TRANSFER_MODE, long enabled); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_PUT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_PUT 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_PUT \- make an HTTP PUT request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PUT, long put); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_QUOTE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_QUOTE 3 "December 18, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_QUOTE \- (S)FTP commands to run before transfer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_QUOTE, struct curl_slist *cmds); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RANDOM_FILE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RANDOM_FILE \- specify a source for random data .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RANDOM_FILE, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RANGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RANGE 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RANGE \- set byte range to request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RANGE, char *range); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_READDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_READDATA 3 "August 11, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_READDATA \- custom pointer passed to the read callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_READDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_READFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_READFUNCTION 3 "January 06, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_READFUNCTION \- read callback for data uploads .SH SYNOPSIS #include <curl/curl.h> size_t read_callback(char *buffer, size_t size, size_t nitems, void *userdata); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3.
1 2 3 4 5 6 7 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * | | | | 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 | .\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.haxx.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_REDIR_PROTOCOLS 3 "February 18, 2020" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_REDIR_PROTOCOLS \- set protocols allowed to redirect to .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_REDIR_PROTOCOLS, long bitmask); |
︙ | ︙ | |||
72 73 74 75 76 77 78 | CURLPROTO_SMBS CURLPROTO_SMTP CURLPROTO_SMTPS CURLPROTO_TELNET CURLPROTO_TFTP .fi .SH DEFAULT | > > | > | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | CURLPROTO_SMBS CURLPROTO_SMTP CURLPROTO_SMTPS CURLPROTO_TELNET CURLPROTO_TFTP .fi .SH DEFAULT HTTP, HTTPS, FTP and FTPS (Since 7.65.2). Older versions defaulted to all protocols except FILE, SCP and since 7.40.0 SMB and SMBS. .SH PROTOCOLS All .SH EXAMPLE .nf curl = curl_easy_init(); if(curl) { /* pass in the URL from an external source */ |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_REFERER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_REFERER 3 "December 21, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_REFERER \- set the HTTP referer header .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_REFERER, char *where); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_REQUEST_TARGET 3 "June 21, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_REQUEST_TARGET \- specify an alternative target for this request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_REQUEST_TARGET, string); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RESOLVE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RESOLVE 3 "May 30, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RESOLVE \- provide custom host name to IP address resolves .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RESOLVER_START_DATA 3 "February 14, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RESOLVER_START_DATA \- custom pointer passed to the resolver start callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVER_START_DATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RESOLVER_START_FUNCTION 3 "February 14, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RESOLVER_START_FUNCTION \- set callback to be called before a new resolve request is started .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RESUME_FROM.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RESUME_FROM 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RESUME_FROM \- set a point to resume transfer from .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESUME_FROM, long from); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RESUME_FROM_LARGE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RESUME_FROM_LARGE \- set a point to resume transfer from .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_CLIENT_CSEQ 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_CLIENT_CSEQ \- set the RTSP client CSEQ number .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_CLIENT_CSEQ, long cseq); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_REQUEST 3 "July 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_REQUEST \- specify RTSP request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_REQUEST, long request); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_SERVER_CSEQ \- set the RTSP server CSEQ number .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_SERVER_CSEQ, long cseq); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_SESSION_ID \- set RTSP session ID .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_SESSION_ID, char *id); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_STREAM_URI 3 "July 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_STREAM_URI \- set RTSP stream URI .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_STREAM_URI, char *URI); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_RTSP_TRANSPORT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_RTSP_TRANSPORT \- set RTSP Transport: header .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SASL_IR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SASL_IR 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SASL_IR \- enable sending initial response in first packet .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SASL_IR, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SEEKDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SEEKDATA 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SEEKDATA \- custom pointer passed to the seek callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SEEKDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SEEKFUNCTION 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SEEKFUNCTION \- user callback for seeking in input stream .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SERVICE_NAME \- authentication service name .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SERVICE_NAME, char *name); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SHARE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SHARE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SHARE \- specify share handle to use .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SHARE, CURLSH *share); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SOCKOPTDATA \- custom pointer to pass to sockopt callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKOPTDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SOCKOPTFUNCTION 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SOCKOPTFUNCTION \- set callback for setting socket options .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SOCKS5_AUTH 3 "April 27, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SOCKS5_AUTH \- set allowed methods for SOCKS5 proxy authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_AUTH, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SOCKS5_GSSAPI_NEC \- set socks proxy gssapi negotiation protection .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_GSSAPI_NEC, long nec); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SOCKS5_GSSAPI_SERVICE \- SOCKS5 proxy authentication service name .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_GSSAPI_SERVICE, char *name); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_AUTH_TYPES 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_AUTH_TYPES \- set desired auth types for SFTP and SCP .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_AUTH_TYPES, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_COMPRESSION 3 "August 10, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_COMPRESSION \- enables compression / decompression of SSH traffic .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_COMPRESSION, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 \- checksum of SSH server public key .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_KEYDATA 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_KEYDATA \- pointer to pass to the SSH key callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_KEYDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_KEYFUNCTION 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_KEYFUNCTION \- callback for known host matching logic .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_KNOWNHOSTS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_KNOWNHOSTS \- file name holding the SSH known hosts .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_KNOWNHOSTS, char *fname); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_PRIVATE_KEYFILE \- set private key file for SSH auth .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSH_PUBLIC_KEYFILE \- set public key file for SSH auth .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLCERT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLCERT 3 "January 29, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLCERT \- set SSL client certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLCERT, char *cert); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLCERTTYPE \- specify type of the client SSL certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLCERTTYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLENGINE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLENGINE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLENGINE \- set SSL engine identifier .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLENGINE, char *id); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLENGINE_DEFAULT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLENGINE_DEFAULT \- make SSL engine default .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLENGINE_DEFAULT, long val); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLKEY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLKEY 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLKEY \- specify private keyfile for TLS and SSL client cert .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLKEY, char *keyfile); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLKEYTYPE \- set type of the private key file .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLKEYTYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSLVERSION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSLVERSION 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSLVERSION \- set preferred TLS/SSL version .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLVERSION, long version); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_CIPHER_LIST 3 "October 10, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_CIPHER_LIST \- specify ciphers to use for TLS .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_CIPHER_LIST, char *list); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_CTX_DATA 3 "June 02, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_CTX_DATA \- custom pointer passed to ssl_ctx callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_CTX_DATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_CTX_FUNCTION 3 "June 02, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_CTX_FUNCTION \- SSL context callback for OpenSSL, wolfSSL or mbedTLS .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_ENABLE_ALPN 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_ENABLE_ALPN \- enable ALPN .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_ENABLE_ALPN, long npn); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_ENABLE_NPN 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_ENABLE_NPN \- enable NPN .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_ENABLE_NPN, long npn); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_FALSESTART 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_FALSESTART \- enable TLS false start .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_FALSESTART, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_OPTIONS 3 "December 02, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_OPTIONS \- set SSL behavior options .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_OPTIONS, long bitmask); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_SESSIONID_CACHE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_SESSIONID_CACHE \- enable/disable use of the SSL session-ID cache .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_VERIFYHOST 3 "August 20, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_VERIFYHOST \- verify the certificate's name against host .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYHOST, long verify); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_VERIFYPEER 3 "June 24, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_VERIFYPEER \- verify the peer's SSL certificate .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYPEER, long verify); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SSL_VERIFYSTATUS 3 "October 09, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SSL_VERIFYSTATUS \- verify the certificate's status .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYSTATUS, long verify); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_STDERR.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_STDERR 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_STDERR \- redirect stderr to another stream .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STDERR, FILE *stream); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_STREAM_DEPENDS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_STREAM_DEPENDS \- set stream this transfer depends on .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_DEPENDS, CURL *dephandle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_STREAM_DEPENDS_E 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_STREAM_DEPENDS_E \- set stream this transfer depends on exclusively .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_DEPENDS_E, CURL *dephandle); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_STREAM_WEIGHT 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_STREAM_WEIGHT \- set numerical stream weight .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_WEIGHT, long weight); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "April 28, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_SUPPRESS_CONNECT_HEADERS \- Suppress proxy CONNECT response headers from user callbacks .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TCP_FASTOPEN 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TCP_FASTOPEN \- enable TCP Fast Open .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_FASTOPEN, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TCP_KEEPALIVE 3 "February 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TCP_KEEPALIVE \- enable TCP keep-alive probing .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_KEEPALIVE, long probe); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TCP_KEEPIDLE 3 "January 02, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TCP_KEEPIDLE \- set TCP keep-alive idle time wait .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_KEEPIDLE, long delay); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TCP_KEEPINTVL 3 "January 02, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TCP_KEEPINTVL \- set TCP keep-alive interval .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_KEEPINTVL, long interval); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TCP_NODELAY 3 "January 15, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TCP_NODELAY \- set the TCP_NODELAY option .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TCP_NODELAY, long nodelay); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TELNETOPTIONS 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TELNETOPTIONS \- custom telnet options .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TELNETOPTIONS, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TFTP_BLKSIZE 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TFTP_BLKSIZE \- TFTP block size .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TFTP_BLKSIZE, long blocksize); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TFTP_NO_OPTIONS 3 "April 06, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TFTP_NO_OPTIONS \- Do not send TFTP options requests. .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TFTP_NO_OPTIONS, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TIMECONDITION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TIMECONDITION 3 "April 03, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TIMECONDITION \- select condition for a time request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMECONDITION, long cond); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TIMEOUT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TIMEOUT 3 "October 15, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TIMEOUT \- set maximum time the request is allowed to take .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEOUT, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TIMEOUT_MS 3 "September 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TIMEOUT_MS \- set maximum time the request is allowed to take .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEOUT_MS, long timeout); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TIMEVALUE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TIMEVALUE 3 "January 25, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TIMEVALUE \- set time value for conditional .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEVALUE, long val); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TIMEVALUE_LARGE 3 "January 25, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TIMEVALUE_LARGE \- set time value for conditional .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEVALUE_LARGE, curl_off_t val); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TLS13_CIPHERS 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TLS13_CIPHERS \- specify ciphers suites to use for TLS 1.3 .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TLS13_CIPHERS, char *list); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TLSAUTH_PASSWORD 3 "December 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TLSAUTH_PASSWORD \- password to use for TLS authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TLSAUTH_PASSWORD, char *pwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TLSAUTH_TYPE 3 "December 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TLSAUTH_TYPE \- set TLS authentication methods .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TLSAUTH_TYPE, char *type); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TLSAUTH_USERNAME 3 "December 16, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TLSAUTH_USERNAME \- user name to use for TLS authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TLSAUTH_USERNAME, char *user); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TRAILERDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TRAILERDATA 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TRAILERDATA \- Custom pointer passed to the trailing headers callback .SH SYNOPSIS #include <curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TRAILERDATA, void *userdata); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TRAILERFUNCTION 3 "October 31, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TRAILERFUNCTION \- Set callback for sending trailing headers .SH SYNOPSIS #include <curl.h> int curl_trailer_callback(struct curl_slist ** list, void *userdata); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TRANSFERTEXT 3 "May 31, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TRANSFERTEXT \- request a text based transfer for FTP .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TRANSFERTEXT, long text); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_TRANSFER_ENCODING 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_TRANSFER_ENCODING \- ask for HTTP Transfer Encoding .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TRANSFER_ENCODING, long enable); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_UNIX_SOCKET_PATH 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_UNIX_SOCKET_PATH \- set Unix domain socket .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UNIX_SOCKET_PATH, char *path); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_UNRESTRICTED_AUTH 3 "May 15, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_UNRESTRICTED_AUTH \- send credentials to other hosts too .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_UPLOAD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_UPLOAD 3 "April 17, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_UPLOAD \- enable data upload .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD, long upload); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_UPLOAD_BUFFERSIZE 3 "August 18, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_UPLOAD_BUFFERSIZE \- set preferred upload buffer size .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD_BUFFERSIZE, long size); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_URL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_URL 3 "December 18, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_URL \- provide the URL to use in the request .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_URL, char *URL); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_USERAGENT.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_USERAGENT 3 "December 21, 2016" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_USERAGENT \- set HTTP user-agent header .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_USERAGENT, char *ua); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_USERNAME.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_USERNAME 3 "May 05, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_USERNAME \- user name to use in authentication .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_USERPWD.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_USERPWD 3 "August 24, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_USERPWD \- user name and password to use in authentication .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_USERPWD, char *userpwd); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_USE_SSL.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_USE_SSL 3 "October 10, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_USE_SSL \- request using SSL / TLS for the transfer .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_USE_SSL, long level); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_VERBOSE.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_VERBOSE 3 "December 04, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_VERBOSE \- set verbose mode on/off .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_VERBOSE, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_WILDCARDMATCH 3 "May 18, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_WILDCARDMATCH \- enable directory wildcard transfers .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WILDCARDMATCH, long onoff); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_WRITEDATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_WRITEDATA 3 "August 11, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_WRITEDATA \- custom pointer passed to the write callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WRITEDATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_WRITEFUNCTION 3 "November 23, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_WRITEFUNCTION \- set callback for writing received data .SH SYNOPSIS .nf #include <curl/curl.h> |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_XFERINFODATA.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_XFERINFODATA 3 "October 09, 2017" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_XFERINFODATA \- custom pointer passed to the progress callback .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_XFERINFODATA, void *pointer); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_XFERINFOFUNCTION 3 "November 26, 2019" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_XFERINFOFUNCTION \- callback to progress meter function .SH SYNOPSIS #include <curl/curl.h> int progress_callback(void *clientp, |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH CURLOPT_XOAUTH2_BEARER 3 "May 22, 2018" "libcurl 7.69.0" "curl_easy_setopt options" .SH NAME CURLOPT_XOAUTH2_BEARER \- specify OAuth 2.0 access token .SH SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_XOAUTH2_BEARER, char *token); |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/Makefile.in.
︙ | ︙ | |||
332 333 334 335 336 337 338 339 340 341 342 343 344 345 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
581 582 583 584 585 586 587 588 589 590 591 592 593 594 | CURLOPT_LOCALPORTRANGE.3 \ CURLOPT_LOGIN_OPTIONS.3 \ CURLOPT_LOW_SPEED_LIMIT.3 \ CURLOPT_LOW_SPEED_TIME.3 \ CURLOPT_MAIL_AUTH.3 \ CURLOPT_MAIL_FROM.3 \ CURLOPT_MAIL_RCPT.3 \ CURLOPT_MAXAGE_CONN.3 \ CURLOPT_MAXCONNECTS.3 \ CURLOPT_MAXFILESIZE.3 \ CURLOPT_MAXFILESIZE_LARGE.3 \ CURLOPT_MAXREDIRS.3 \ CURLOPT_MAX_RECV_SPEED_LARGE.3 \ CURLOPT_MAX_SEND_SPEED_LARGE.3 \ | > | 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 | CURLOPT_LOCALPORTRANGE.3 \ CURLOPT_LOGIN_OPTIONS.3 \ CURLOPT_LOW_SPEED_LIMIT.3 \ CURLOPT_LOW_SPEED_TIME.3 \ CURLOPT_MAIL_AUTH.3 \ CURLOPT_MAIL_FROM.3 \ CURLOPT_MAIL_RCPT.3 \ CURLOPT_MAIL_RCPT_ALLLOWFAILS.3 \ CURLOPT_MAXAGE_CONN.3 \ CURLOPT_MAXCONNECTS.3 \ CURLOPT_MAXFILESIZE.3 \ CURLOPT_MAXFILESIZE_LARGE.3 \ CURLOPT_MAXREDIRS.3 \ CURLOPT_MAX_RECV_SPEED_LARGE.3 \ CURLOPT_MAX_SEND_SPEED_LARGE.3 \ |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/opts/Makefile.inc.
︙ | ︙ | |||
184 185 186 187 188 189 190 191 192 193 194 195 196 197 | CURLOPT_LOCALPORTRANGE.3 \ CURLOPT_LOGIN_OPTIONS.3 \ CURLOPT_LOW_SPEED_LIMIT.3 \ CURLOPT_LOW_SPEED_TIME.3 \ CURLOPT_MAIL_AUTH.3 \ CURLOPT_MAIL_FROM.3 \ CURLOPT_MAIL_RCPT.3 \ CURLOPT_MAXAGE_CONN.3 \ CURLOPT_MAXCONNECTS.3 \ CURLOPT_MAXFILESIZE.3 \ CURLOPT_MAXFILESIZE_LARGE.3 \ CURLOPT_MAXREDIRS.3 \ CURLOPT_MAX_RECV_SPEED_LARGE.3 \ CURLOPT_MAX_SEND_SPEED_LARGE.3 \ | > | 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | CURLOPT_LOCALPORTRANGE.3 \ CURLOPT_LOGIN_OPTIONS.3 \ CURLOPT_LOW_SPEED_LIMIT.3 \ CURLOPT_LOW_SPEED_TIME.3 \ CURLOPT_MAIL_AUTH.3 \ CURLOPT_MAIL_FROM.3 \ CURLOPT_MAIL_RCPT.3 \ CURLOPT_MAIL_RCPT_ALLLOWFAILS.3 \ CURLOPT_MAXAGE_CONN.3 \ CURLOPT_MAXCONNECTS.3 \ CURLOPT_MAXFILESIZE.3 \ CURLOPT_MAXFILESIZE_LARGE.3 \ CURLOPT_MAXREDIRS.3 \ CURLOPT_MAX_RECV_SPEED_LARGE.3 \ CURLOPT_MAX_SEND_SPEED_LARGE.3 \ |
︙ | ︙ |
Changes to jni/curl/docs/libcurl/symbols-in-versions.
︙ | ︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 | CURLE_NO_CONNECTION_AVAILABLE 7.30.0 CURLE_OK 7.1 CURLE_OPERATION_TIMEDOUT 7.10.2 CURLE_OPERATION_TIMEOUTED 7.1 7.17.0 CURLE_OUT_OF_MEMORY 7.1 CURLE_PARTIAL_FILE 7.1 CURLE_PEER_FAILED_VERIFICATION 7.17.1 CURLE_QUOTE_ERROR 7.17.0 CURLE_RANGE_ERROR 7.17.0 CURLE_READ_ERROR 7.1 CURLE_RECURSIVE_API_CALL 7.59.0 CURLE_RECV_ERROR 7.10 CURLE_REMOTE_ACCESS_DENIED 7.17.0 CURLE_REMOTE_DISK_FULL 7.17.0 | > | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | CURLE_NO_CONNECTION_AVAILABLE 7.30.0 CURLE_OK 7.1 CURLE_OPERATION_TIMEDOUT 7.10.2 CURLE_OPERATION_TIMEOUTED 7.1 7.17.0 CURLE_OUT_OF_MEMORY 7.1 CURLE_PARTIAL_FILE 7.1 CURLE_PEER_FAILED_VERIFICATION 7.17.1 CURLE_QUIC_CONNECT_ERROR 7.69.0 CURLE_QUOTE_ERROR 7.17.0 CURLE_RANGE_ERROR 7.17.0 CURLE_READ_ERROR 7.1 CURLE_RECURSIVE_API_CALL 7.59.0 CURLE_RECV_ERROR 7.10 CURLE_REMOTE_ACCESS_DENIED 7.17.0 CURLE_REMOTE_DISK_FULL 7.17.0 |
︙ | ︙ | |||
313 314 315 316 317 318 319 320 321 322 | CURLKHTYPE_ED25519 7.58.0 CURLKHTYPE_RSA 7.19.6 CURLKHTYPE_RSA1 7.19.6 CURLKHTYPE_UNKNOWN 7.19.6 CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 7.30.0 CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 7.30.0 CURLMOPT_MAXCONNECTS 7.16.3 CURLMOPT_MAX_HOST_CONNECTIONS 7.30.0 CURLMOPT_MAX_PIPELINE_LENGTH 7.30.0 CURLMOPT_MAX_TOTAL_CONNECTIONS 7.30.0 | > < > > | < > | 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 | CURLKHTYPE_ED25519 7.58.0 CURLKHTYPE_RSA 7.19.6 CURLKHTYPE_RSA1 7.19.6 CURLKHTYPE_UNKNOWN 7.19.6 CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 7.30.0 CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 7.30.0 CURLMOPT_MAXCONNECTS 7.16.3 CURLMOPT_MAX_CONCURRENT_STREAMS 7.67.0 CURLMOPT_MAX_HOST_CONNECTIONS 7.30.0 CURLMOPT_MAX_PIPELINE_LENGTH 7.30.0 CURLMOPT_MAX_TOTAL_CONNECTIONS 7.30.0 CURLMOPT_PIPELINING 7.16.0 CURLMOPT_PIPELINING_SERVER_BL 7.30.0 CURLMOPT_PIPELINING_SITE_BL 7.30.0 CURLMOPT_PUSHDATA 7.44.0 CURLMOPT_PUSHFUNCTION 7.44.0 CURLMOPT_SOCKETDATA 7.15.4 CURLMOPT_SOCKETFUNCTION 7.15.4 CURLMOPT_TIMERDATA 7.16.0 CURLMOPT_TIMERFUNCTION 7.16.0 CURLMSG_DONE 7.9.6 CURLMSG_NONE 7.9.6 CURLM_ADDED_ALREADY 7.32.1 CURLM_BAD_EASY_HANDLE 7.9.6 CURLM_BAD_FUNCTION_ARGUMENT 7.69.0 CURLM_BAD_HANDLE 7.9.6 CURLM_BAD_SOCKET 7.15.4 CURLM_CALL_MULTI_PERFORM 7.9.6 CURLM_CALL_MULTI_SOCKET 7.15.5 CURLM_INTERNAL_ERROR 7.9.6 CURLM_OK 7.9.6 CURLM_OUT_OF_MEMORY 7.9.6 CURLM_RECURSIVE_API_CALL 7.59.0 CURLM_UNKNOWN_OPTION 7.15.4 CURLM_WAKEUP_FAILURE 7.68.0 CURLOPT 7.69.0 CURLOPTTYPE_FUNCTIONPOINT 7.1 CURLOPTTYPE_LONG 7.1 CURLOPTTYPE_OBJECTPOINT 7.1 CURLOPTTYPE_OFF_T 7.11.0 CURLOPTTYPE_SLISTPOINT 7.65.2 CURLOPTTYPE_STRINGPOINT 7.46.0 CURLOPT_ABSTRACT_UNIX_SOCKET 7.53.0 CURLOPT_ACCEPTTIMEOUT_MS 7.24.0 CURLOPT_ACCEPT_ENCODING 7.21.6 CURLOPT_ADDRESS_SCOPE 7.19.0 CURLOPT_ALTSVC 7.64.1 CURLOPT_ALTSVC_CTRL 7.64.1 CURLOPT_APPEND 7.17.0 |
︙ | ︙ | |||
464 465 466 467 468 469 470 471 472 473 474 475 476 477 | CURLOPT_LOCALPORTRANGE 7.15.2 CURLOPT_LOGIN_OPTIONS 7.34.0 CURLOPT_LOW_SPEED_LIMIT 7.1 CURLOPT_LOW_SPEED_TIME 7.1 CURLOPT_MAIL_AUTH 7.25.0 CURLOPT_MAIL_FROM 7.20.0 CURLOPT_MAIL_RCPT 7.20.0 CURLOPT_MAXAGE_CONN 7.65.0 CURLOPT_MAXCONNECTS 7.7 CURLOPT_MAXFILESIZE 7.10.8 CURLOPT_MAXFILESIZE_LARGE 7.11.0 CURLOPT_MAXREDIRS 7.5 CURLOPT_MAX_RECV_SPEED_LARGE 7.15.5 CURLOPT_MAX_SEND_SPEED_LARGE 7.15.5 | > | 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | CURLOPT_LOCALPORTRANGE 7.15.2 CURLOPT_LOGIN_OPTIONS 7.34.0 CURLOPT_LOW_SPEED_LIMIT 7.1 CURLOPT_LOW_SPEED_TIME 7.1 CURLOPT_MAIL_AUTH 7.25.0 CURLOPT_MAIL_FROM 7.20.0 CURLOPT_MAIL_RCPT 7.20.0 CURLOPT_MAIL_RCPT_ALLLOWFAILS 7.69.0 CURLOPT_MAXAGE_CONN 7.65.0 CURLOPT_MAXCONNECTS 7.7 CURLOPT_MAXFILESIZE 7.10.8 CURLOPT_MAXFILESIZE_LARGE 7.11.0 CURLOPT_MAXREDIRS 7.5 CURLOPT_MAX_RECV_SPEED_LARGE 7.15.5 CURLOPT_MAX_SEND_SPEED_LARGE 7.15.5 |
︙ | ︙ | |||
779 780 781 782 783 784 785 | CURLUSESSL_TRY 7.17.0 CURLU_APPENDQUERY 7.62.0 CURLU_DEFAULT_PORT 7.62.0 CURLU_DEFAULT_SCHEME 7.62.0 CURLU_DISALLOW_USER 7.62.0 CURLU_GUESS_SCHEME 7.62.0 CURLU_NON_SUPPORT_SCHEME 7.62.0 | < > < > | 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 | CURLUSESSL_TRY 7.17.0 CURLU_APPENDQUERY 7.62.0 CURLU_DEFAULT_PORT 7.62.0 CURLU_DEFAULT_SCHEME 7.62.0 CURLU_DISALLOW_USER 7.62.0 CURLU_GUESS_SCHEME 7.62.0 CURLU_NON_SUPPORT_SCHEME 7.62.0 CURLU_NO_AUTHORITY 7.67.0 CURLU_NO_DEFAULT_PORT 7.62.0 CURLU_PATH_AS_IS 7.62.0 CURLU_URLDECODE 7.62.0 CURLU_URLENCODE 7.62.0 CURLVERSION_FIFTH 7.57.0 CURLVERSION_FIRST 7.10 CURLVERSION_FOURTH 7.16.1 CURLVERSION_NOW 7.10 CURLVERSION_SECOND 7.11.1 CURLVERSION_SIXTH 7.66.0 CURLVERSION_THIRD 7.12.0 CURL_CHUNK_BGN_FUNC_FAIL 7.21.0 CURL_CHUNK_BGN_FUNC_OK 7.21.0 CURL_CHUNK_BGN_FUNC_SKIP 7.21.0 CURL_CHUNK_END_FUNC_FAIL 7.21.0 CURL_CHUNK_END_FUNC_OK 7.21.0 CURL_CSELECT_ERR 7.16.3 CURL_CSELECT_IN 7.16.3 |
︙ | ︙ | |||
952 953 954 955 956 957 958 959 960 | CURL_VERSION_SSL 7.10 CURL_VERSION_SSPI 7.13.2 CURL_VERSION_TLSAUTH_SRP 7.21.4 CURL_VERSION_UNIX_SOCKETS 7.40.0 CURL_WAIT_POLLIN 7.28.0 CURL_WAIT_POLLOUT 7.28.0 CURL_WAIT_POLLPRI 7.28.0 CURL_WRITEFUNC_PAUSE 7.18.0 CURL_ZERO_TERMINATED 7.56.0 | > | 956 957 958 959 960 961 962 963 964 965 | CURL_VERSION_SSL 7.10 CURL_VERSION_SSPI 7.13.2 CURL_VERSION_TLSAUTH_SRP 7.21.4 CURL_VERSION_UNIX_SOCKETS 7.40.0 CURL_WAIT_POLLIN 7.28.0 CURL_WAIT_POLLOUT 7.28.0 CURL_WAIT_POLLPRI 7.28.0 CURL_WIN32 7.69.0 CURL_WRITEFUNC_PAUSE 7.18.0 CURL_ZERO_TERMINATED 7.56.0 |
Changes to jni/curl/include/Makefile.in.
︙ | ︙ | |||
338 339 340 341 342 343 344 345 346 347 348 349 350 351 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/include/curl/Makefile.in.
︙ | ︙ | |||
325 326 327 328 329 330 331 332 333 334 335 336 337 338 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/include/curl/curl.h.
1 2 3 4 5 6 7 8 9 | #ifndef CURLINC_CURL_H #define CURLINC_CURL_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef CURLINC_CURL_H #define CURLINC_CURL_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
34 35 36 37 38 39 40 | #define CURL_STRICTER #endif #include "curlver.h" /* libcurl version defines */ #include "system.h" /* determine things run-time */ /* | | | | | | | | | 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 | #define CURL_STRICTER #endif #include "curlver.h" /* libcurl version defines */ #include "system.h" /* determine things run-time */ /* * Define CURL_WIN32 when build target is Win32 API */ #if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \ !defined(__SYMBIAN32__) #define CURL_WIN32 #endif #include <stdio.h> #include <limits.h> #if defined(__FreeBSD__) && (__FreeBSD__ >= 2) /* Needed for __FreeBSD_version symbol definition */ #include <osreldate.h> #endif /* The include stuff here below is mainly for time_t! */ #include <sys/types.h> #include <time.h> #if defined(CURL_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) #if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) /* The check above prevents the winsock2 inclusion if winsock.h already was included, since they can't co-exist without problems */ #include <winsock2.h> #include <ws2tcpip.h> #endif #endif /* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish libc5-based Linux systems. Only include it on systems that are known to require it! */ #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ defined(__CYGWIN__) || \ (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) #include <sys/select.h> #endif #if !defined(CURL_WIN32) && !defined(_WIN32_WCE) #include <sys/socket.h> #endif #if !defined(CURL_WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__) #include <sys/time.h> #endif #ifdef __BEOS__ #include <support/SupportDefs.h> #endif |
︙ | ︙ | |||
110 111 112 113 114 115 116 | /* * libcurl external API function linkage decorations. */ #ifdef CURL_STATICLIB # define CURL_EXTERN | | | | 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 | /* * libcurl external API function linkage decorations. */ #ifdef CURL_STATICLIB # define CURL_EXTERN #elif defined(CURL_WIN32) || defined(__SYMBIAN32__) || \ (__has_declspec_attribute(dllexport) && \ __has_declspec_attribute(dllimport)) # if defined(BUILDING_LIBCURL) # define CURL_EXTERN __declspec(dllexport) # else # define CURL_EXTERN __declspec(dllimport) # endif #elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) # define CURL_EXTERN CURL_EXTERN_SYMBOL #else # define CURL_EXTERN #endif #ifndef curl_socket_typedef /* socket typedef */ #if defined(CURL_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) typedef SOCKET curl_socket_t; #define CURL_SOCKET_BAD INVALID_SOCKET #else typedef int curl_socket_t; #define CURL_SOCKET_BAD -1 #endif #define curl_socket_typedef |
︙ | ︙ | |||
605 606 607 608 609 610 611 612 613 614 615 616 617 618 | CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer */ CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from inside a callback */ CURLE_AUTH_ERROR, /* 94 - an authentication function returned an error */ CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */ CURL_LAST /* never use! */ } CURLcode; #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ /* Previously obsolete error code re-used in 7.38.0 */ | > | 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 | CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer */ CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from inside a callback */ CURLE_AUTH_ERROR, /* 94 - an authentication function returned an error */ CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */ CURLE_QUIC_CONNECT_ERROR, /* 96 - QUIC connection error */ CURL_LAST /* never use! */ } CURLcode; #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ /* Previously obsolete error code re-used in 7.38.0 */ |
︙ | ︙ | |||
939 940 941 942 943 944 945 | #define CURLOPTTYPE_OBJECTPOINT 10000 #define CURLOPTTYPE_FUNCTIONPOINT 20000 #define CURLOPTTYPE_OFF_T 30000 /* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the string options from the header file */ | < < < < < < < | < < < < < < < < < < | < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | > > | > > | > > | > > | > > | > > | > > | > | > | | > | > > | > | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | > > | 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 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 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 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 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 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 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 | #define CURLOPTTYPE_OBJECTPOINT 10000 #define CURLOPTTYPE_FUNCTIONPOINT 20000 #define CURLOPTTYPE_OFF_T 30000 /* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the string options from the header file */ #define CURLOPT(na,t,nu) na = t + nu /* handy aliases that make no run-time difference */ #define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT #define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT /* * All CURLOPT_* values. */ typedef enum { /* This is the FILE * or void * the regular output should be written to. */ CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_OBJECTPOINT, 1), /* The full URL to get/put */ CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2), /* Port number to connect to, if other than default. */ CURLOPT(CURLOPT_PORT, CURLOPTTYPE_LONG, 3), /* Name of proxy to use. */ CURLOPT(CURLOPT_PROXY, CURLOPTTYPE_STRINGPOINT, 4), /* "user:password;options" to use when fetching. */ CURLOPT(CURLOPT_USERPWD, CURLOPTTYPE_STRINGPOINT, 5), /* "user:password" to use with proxy. */ CURLOPT(CURLOPT_PROXYUSERPWD, CURLOPTTYPE_STRINGPOINT, 6), /* Range to get, specified as an ASCII string. */ CURLOPT(CURLOPT_RANGE, CURLOPTTYPE_STRINGPOINT, 7), /* not used */ /* Specified file stream to upload from (use as input): */ CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_OBJECTPOINT, 9), /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE * bytes big. */ CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10), /* Function that will be called to store the output (instead of fwrite). The * parameters will use fwrite() syntax, make sure to follow them. */ CURLOPT(CURLOPT_WRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 11), /* Function that will be called to read the input (instead of fread). The * parameters will use fread() syntax, make sure to follow them. */ CURLOPT(CURLOPT_READFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 12), /* Time-out the read operation after this amount of seconds */ CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13), /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about * how large the file being sent really is. That allows better error * checking and better verifies that the upload was successful. -1 means * unknown size. * * For large file support, there is also a _LARGE version of the key * which takes an off_t type, allowing platforms with larger off_t * sizes to handle larger files. See below for INFILESIZE_LARGE. */ CURLOPT(CURLOPT_INFILESIZE, CURLOPTTYPE_LONG, 14), /* POST static input fields. */ CURLOPT(CURLOPT_POSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 15), /* Set the referrer page (needed by some CGIs) */ CURLOPT(CURLOPT_REFERER, CURLOPTTYPE_STRINGPOINT, 16), /* Set the FTP PORT string (interface name, named or numerical IP address) Use i.e '-' to use default address. */ CURLOPT(CURLOPT_FTPPORT, CURLOPTTYPE_STRINGPOINT, 17), /* Set the User-Agent string (examined by some CGIs) */ CURLOPT(CURLOPT_USERAGENT, CURLOPTTYPE_STRINGPOINT, 18), /* If the download receives less than "low speed limit" bytes/second * during "low speed time" seconds, the operations is aborted. * You could i.e if you have a pretty high speed connection, abort if * it is less than 2000 bytes/sec during 20 seconds. */ /* Set the "low speed limit" */ CURLOPT(CURLOPT_LOW_SPEED_LIMIT, CURLOPTTYPE_LONG, 19), /* Set the "low speed time" */ CURLOPT(CURLOPT_LOW_SPEED_TIME, CURLOPTTYPE_LONG, 20), /* Set the continuation offset. * * Note there is also a _LARGE version of this key which uses * off_t types, allowing for large file offsets on platforms which * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. */ CURLOPT(CURLOPT_RESUME_FROM, CURLOPTTYPE_LONG, 21), /* Set cookie in request: */ CURLOPT(CURLOPT_COOKIE, CURLOPTTYPE_STRINGPOINT, 22), /* This points to a linked list of headers, struct curl_slist kind. This list is also used for RTSP (in spite of its name) */ CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23), /* This points to a linked list of post entries, struct curl_httppost */ CURLOPT(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24), /* name of the file keeping your private SSL-certificate */ CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25), /* password for the SSL or SSH private key */ CURLOPT(CURLOPT_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 26), /* send TYPE parameter? */ CURLOPT(CURLOPT_CRLF, CURLOPTTYPE_LONG, 27), /* send linked-list of QUOTE commands */ CURLOPT(CURLOPT_QUOTE, CURLOPTTYPE_SLISTPOINT, 28), /* send FILE * or void * to store headers to, if you use a callback it is simply passed to the callback unmodified */ CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_OBJECTPOINT, 29), /* point to a file to read the initial cookies from, also enables "cookie awareness" */ CURLOPT(CURLOPT_COOKIEFILE, CURLOPTTYPE_STRINGPOINT, 31), /* What version to specifically try to use. See CURL_SSLVERSION defines below. */ CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_LONG, 32), /* What kind of HTTP time condition to use, see defines */ CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_LONG, 33), /* Time to use with the above condition. Specified in number of seconds since 1 Jan 1970 */ CURLOPT(CURLOPT_TIMEVALUE, CURLOPTTYPE_LONG, 34), /* 35 = OBSOLETE */ /* Custom request, for customizing the get command like HTTP: DELETE, TRACE and others FTP: to use a different list command */ CURLOPT(CURLOPT_CUSTOMREQUEST, CURLOPTTYPE_STRINGPOINT, 36), /* FILE handle to use instead of stderr */ CURLOPT(CURLOPT_STDERR, CURLOPTTYPE_OBJECTPOINT, 37), /* 38 is not used */ /* send linked-list of post-transfer QUOTE commands */ CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39), /* OBSOLETE, do not use! */ CURLOPT(CURLOPT_OBSOLETE40, CURLOPTTYPE_OBJECTPOINT, 40), /* talk a lot */ CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41), /* throw the header out too */ CURLOPT(CURLOPT_HEADER, CURLOPTTYPE_LONG, 42), /* shut off the progress meter */ CURLOPT(CURLOPT_NOPROGRESS, CURLOPTTYPE_LONG, 43), /* use HEAD to get http document */ CURLOPT(CURLOPT_NOBODY, CURLOPTTYPE_LONG, 44), /* no output on http error codes >= 400 */ CURLOPT(CURLOPT_FAILONERROR, CURLOPTTYPE_LONG, 45), /* this is an upload */ CURLOPT(CURLOPT_UPLOAD, CURLOPTTYPE_LONG, 46), /* HTTP POST method */ CURLOPT(CURLOPT_POST, CURLOPTTYPE_LONG, 47), /* bare names when listing directories */ CURLOPT(CURLOPT_DIRLISTONLY, CURLOPTTYPE_LONG, 48), /* Append instead of overwrite on upload! */ CURLOPT(CURLOPT_APPEND, CURLOPTTYPE_LONG, 50), /* Specify whether to read the user+password from the .netrc or the URL. * This must be one of the CURL_NETRC_* enums below. */ CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_LONG, 51), /* use Location: Luke! */ CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52), /* transfer data in text/ASCII format */ CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53), /* HTTP PUT */ CURLOPT(CURLOPT_PUT, CURLOPTTYPE_LONG, 54), /* 55 = OBSOLETE */ /* DEPRECATED * Function that will be called instead of the internal progress display * function. This function should be defined as the curl_progress_callback * prototype defines. */ CURLOPT(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56), /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION callbacks */ CURLOPT(CURLOPT_PROGRESSDATA, CURLOPTTYPE_OBJECTPOINT, 57), #define CURLOPT_XFERINFODATA CURLOPT_PROGRESSDATA /* We want the referrer field set automatically when following locations */ CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58), /* Port of the proxy, can be set in the proxy string as well with: "[host]:[port]" */ CURLOPT(CURLOPT_PROXYPORT, CURLOPTTYPE_LONG, 59), /* size of the POST input data, if strlen() is not good to use */ CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60), /* tunnel non-http operations through a HTTP proxy */ CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61), /* Set the interface string to use as outgoing network interface */ CURLOPT(CURLOPT_INTERFACE, CURLOPTTYPE_STRINGPOINT, 62), /* Set the krb4/5 security level, this also enables krb4/5 awareness. This * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string * is set but doesn't match one of these, 'private' will be used. */ CURLOPT(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63), /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64), /* The CApath or CAfile used to validate the peer certificate this option is used only if SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_CAINFO, CURLOPTTYPE_STRINGPOINT, 65), /* 66 = OBSOLETE */ /* 67 = OBSOLETE */ /* Maximum number of http redirects to follow */ CURLOPT(CURLOPT_MAXREDIRS, CURLOPTTYPE_LONG, 68), /* Pass a long set to 1 to get the date of the requested document (if possible)! Pass a zero to shut it off. */ CURLOPT(CURLOPT_FILETIME, CURLOPTTYPE_LONG, 69), /* This points to a linked list of telnet options */ CURLOPT(CURLOPT_TELNETOPTIONS, CURLOPTTYPE_SLISTPOINT, 70), /* Max amount of cached alive connections */ CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71), /* OBSOLETE, do not use! */ CURLOPT(CURLOPT_OBSOLETE72, CURLOPTTYPE_LONG, 72), /* 73 = OBSOLETE */ /* Set to explicitly use a new connection for the upcoming transfer. Do not use this unless you're absolutely sure of this, as it makes the operation slower and is less friendly for the network. */ CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74), /* Set to explicitly forbid the upcoming transfer's connection to be re-used when done. Do not use this unless you're absolutely sure of this, as it makes the operation slower and is less friendly for the network. */ CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75), /* Set to a file name that contains random data for libcurl to use to seed the random engine when doing SSL connects. */ CURLOPT(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76), /* Set to the Entropy Gathering Daemon socket pathname */ CURLOPT(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77), /* Time-out connect operations after this amount of seconds, if connects are OK within this time, then fine... This only aborts the connect phase. */ CURLOPT(CURLOPT_CONNECTTIMEOUT, CURLOPTTYPE_LONG, 78), /* Function that will be called to store headers (instead of fwrite). The * parameters will use fwrite() syntax, make sure to follow them. */ CURLOPT(CURLOPT_HEADERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 79), /* Set this to force the HTTP request to get back to GET. Only really usable if POST, PUT or a custom request have been used first. */ CURLOPT(CURLOPT_HTTPGET, CURLOPTTYPE_LONG, 80), /* Set if we should verify the Common name from the peer certificate in ssl * handshake, set 1 to check existence, 2 to ensure that it matches the * provided hostname. */ CURLOPT(CURLOPT_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 81), /* Specify which file name to write all known cookies in after completed operation. Set file name to "-" (dash) to make it go to stdout. */ CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82), /* Specify which SSL ciphers to use */ CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83), /* Specify which HTTP version to use! This must be set to one of the CURL_HTTP_VERSION* enums set below. */ CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_LONG, 84), /* Specifically switch on or off the FTP engine's use of the EPSV command. By default, that one will always be attempted before the more traditional PASV command. */ CURLOPT(CURLOPT_FTP_USE_EPSV, CURLOPTTYPE_LONG, 85), /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ CURLOPT(CURLOPT_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 86), /* name of the file keeping your private SSL-key */ CURLOPT(CURLOPT_SSLKEY, CURLOPTTYPE_STRINGPOINT, 87), /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ CURLOPT(CURLOPT_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 88), /* crypto engine for the SSL-sub system */ CURLOPT(CURLOPT_SSLENGINE, CURLOPTTYPE_STRINGPOINT, 89), /* set the crypto engine for the SSL-sub system as default the param has no meaning... */ CURLOPT(CURLOPT_SSLENGINE_DEFAULT, CURLOPTTYPE_LONG, 90), /* Non-zero value means to use the global dns cache */ /* DEPRECATED, do not use! */ CURLOPT(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91), /* DNS cache timeout */ CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92), /* send linked-list of pre-transfer QUOTE commands */ CURLOPT(CURLOPT_PREQUOTE, CURLOPTTYPE_SLISTPOINT, 93), /* set the debug function */ CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94), /* set the data for the debug function */ CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_OBJECTPOINT, 95), /* mark this as start of a cookie session */ CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96), /* The CApath directory used to validate the peer certificate this option is used only if SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_CAPATH, CURLOPTTYPE_STRINGPOINT, 97), /* Instruct libcurl to use a smaller receive buffer */ CURLOPT(CURLOPT_BUFFERSIZE, CURLOPTTYPE_LONG, 98), /* Instruct libcurl to not use any signal/alarm handlers, even when using timeouts. This option is useful for multi-threaded applications. See libcurl-the-guide for more background information. */ CURLOPT(CURLOPT_NOSIGNAL, CURLOPTTYPE_LONG, 99), /* Provide a CURLShare for mutexing non-ts data */ CURLOPT(CURLOPT_SHARE, CURLOPTTYPE_OBJECTPOINT, 100), /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_LONG, 101), /* Set the Accept-Encoding string. Use this to tell a server you would like the response to be compressed. Before 7.21.6, this was known as CURLOPT_ENCODING */ CURLOPT(CURLOPT_ACCEPT_ENCODING, CURLOPTTYPE_STRINGPOINT, 102), /* Set pointer to private data */ CURLOPT(CURLOPT_PRIVATE, CURLOPTTYPE_OBJECTPOINT, 103), /* Set aliases for HTTP 200 in the HTTP Response header */ CURLOPT(CURLOPT_HTTP200ALIASES, CURLOPTTYPE_SLISTPOINT, 104), /* Continue to send authentication (user+password) when following locations, even when hostname changed. This can potentially send off the name and password to whatever host the server decides. */ CURLOPT(CURLOPT_UNRESTRICTED_AUTH, CURLOPTTYPE_LONG, 105), /* Specifically switch on or off the FTP engine's use of the EPRT command ( it also disables the LPRT attempt). By default, those ones will always be attempted before the good old traditional PORT command. */ CURLOPT(CURLOPT_FTP_USE_EPRT, CURLOPTTYPE_LONG, 106), /* Set this to a bitmask value to enable the particular authentications methods you like. Use this in combination with CURLOPT_USERPWD. Note that setting multiple bits may cause extra network round-trips. */ CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_LONG, 107), /* Set the ssl context callback function, currently only for OpenSSL or WolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument. The function must match the curl_ssl_ctx_callback prototype. */ CURLOPT(CURLOPT_SSL_CTX_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 108), /* Set the userdata for the ssl context callback function's third argument */ CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_OBJECTPOINT, 109), /* FTP Option that causes missing dirs to be created on the remote server. In 7.19.4 we introduced the convenience enums for this option using the CURLFTP_CREATE_DIR prefix. */ CURLOPT(CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPTTYPE_LONG, 110), /* Set this to a bitmask value to enable the particular authentications methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. Note that setting multiple bits may cause extra network round-trips. */ CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_LONG, 111), /* FTP option that changes the timeout, in seconds, associated with getting a response. This is different from transfer timeout time and essentially places a demand on the FTP server to acknowledge commands in a timely manner. */ CURLOPT(CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112), #define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to tell libcurl to resolve names to those IP versions only. This only has affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_LONG, 113), /* Set this option to limit the size of a file that will be downloaded from an HTTP or FTP server. Note there is also _LARGE version which adds large file support for platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ CURLOPT(CURLOPT_MAXFILESIZE, CURLOPTTYPE_LONG, 114), /* See the comment for INFILESIZE above, but in short, specifies * the size of the file being uploaded. -1 means unknown. */ CURLOPT(CURLOPT_INFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 115), /* Sets the continuation offset. There is also a CURLOPTTYPE_LONG version * of this; look above for RESUME_FROM. */ CURLOPT(CURLOPT_RESUME_FROM_LARGE, CURLOPTTYPE_OFF_T, 116), /* Sets the maximum size of data that will be downloaded from * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. */ CURLOPT(CURLOPT_MAXFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 117), /* Set this option to the file name of your .netrc file you want libcurl to parse (using the CURLOPT_NETRC option). If not set, libcurl will do a poor attempt to find the user's home directory and check for a .netrc file in there. */ CURLOPT(CURLOPT_NETRC_FILE, CURLOPTTYPE_STRINGPOINT, 118), /* Enable SSL/TLS for FTP, pick one of: CURLUSESSL_TRY - try using SSL, proceed anyway otherwise CURLUSESSL_CONTROL - SSL for the control connection or fail CURLUSESSL_ALL - SSL for all communication or fail */ CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_LONG, 119), /* The _LARGE version of the standard POSTFIELDSIZE option */ CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120), /* Enable/disable the TCP Nagle algorithm */ CURLOPT(CURLOPT_TCP_NODELAY, CURLOPTTYPE_LONG, 121), /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ /* 123 OBSOLETE. Gone in 7.16.0 */ /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ /* 127 OBSOLETE. Gone in 7.16.0 */ /* 128 OBSOLETE. Gone in 7.16.0 */ /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option can be used to change libcurl's default action which is to first try "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK response has been received. Available parameters are: CURLFTPAUTH_DEFAULT - let libcurl decide CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL */ CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_LONG, 129), CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130), CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_OBJECTPOINT, 131), /* 132 OBSOLETE. Gone in 7.16.0 */ /* 133 OBSOLETE. Gone in 7.16.0 */ /* zero terminated string for pass on to the FTP server when asked for "account" info */ CURLOPT(CURLOPT_FTP_ACCOUNT, CURLOPTTYPE_STRINGPOINT, 134), /* feed cookie into cookie engine */ CURLOPT(CURLOPT_COOKIELIST, CURLOPTTYPE_STRINGPOINT, 135), /* ignore Content-Length */ CURLOPT(CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPTTYPE_LONG, 136), /* Set to non-zero to skip the IP address received in a 227 PASV FTP server response. Typically used for FTP-SSL purposes but is not restricted to that. libcurl will then instead use the same IP address it used for the control connection. */ CURLOPT(CURLOPT_FTP_SKIP_PASV_IP, CURLOPTTYPE_LONG, 137), /* Select "file method" to use when doing FTP, see the curl_ftpmethod above. */ CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_LONG, 138), /* Local port number to bind the socket to */ CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139), /* Number of ports to try, including the first one set with LOCALPORT. Thus, setting it to 1 will make no additional attempts but the first. */ CURLOPT(CURLOPT_LOCALPORTRANGE, CURLOPTTYPE_LONG, 140), /* no transfer, set up connection and let application use the socket by extracting it with CURLINFO_LASTSOCKET */ CURLOPT(CURLOPT_CONNECT_ONLY, CURLOPTTYPE_LONG, 141), /* Function that will be called to convert from the network encoding (instead of using the iconv calls in libcurl) */ CURLOPT(CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 142), /* Function that will be called to convert to the network encoding (instead of using the iconv calls in libcurl) */ CURLOPT(CURLOPT_CONV_TO_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 143), /* Function that will be called to convert from UTF8 (instead of using the iconv calls in libcurl) Note that this is used only for SSL certificate processing */ CURLOPT(CURLOPT_CONV_FROM_UTF8_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 144), /* if the connection proceeds too quickly then need to slow it down */ /* limit-rate: maximum number of bytes per second to send or receive */ CURLOPT(CURLOPT_MAX_SEND_SPEED_LARGE, CURLOPTTYPE_OFF_T, 145), CURLOPT(CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPTTYPE_OFF_T, 146), /* Pointer to command string to send if USER/PASS fails. */ CURLOPT(CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPTTYPE_STRINGPOINT, 147), /* callback function for setting socket options */ CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148), CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_OBJECTPOINT, 149), /* set to 0 to disable session ID re-use for this transfer, default is enabled (== 1) */ CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150), /* allowed SSH authentication methods */ CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_LONG, 151), /* Used by scp/sftp to do public/private key authentication */ CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152), CURLOPT(CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPTTYPE_STRINGPOINT, 153), /* Send CCC (Clear Command Channel) after authentication */ CURLOPT(CURLOPT_FTP_SSL_CCC, CURLOPTTYPE_LONG, 154), /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ CURLOPT(CURLOPT_TIMEOUT_MS, CURLOPTTYPE_LONG, 155), CURLOPT(CURLOPT_CONNECTTIMEOUT_MS, CURLOPTTYPE_LONG, 156), /* set to zero to disable the libcurl's decoding and thus pass the raw body data to the application even when it is encoded/compressed */ CURLOPT(CURLOPT_HTTP_TRANSFER_DECODING, CURLOPTTYPE_LONG, 157), CURLOPT(CURLOPT_HTTP_CONTENT_DECODING, CURLOPTTYPE_LONG, 158), /* Permission used when creating new files and directories on the remote server for protocols that support it, SFTP/SCP/FILE */ CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159), CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160), /* Set the behaviour of POST when redirecting. Values must be set to one of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_LONG, 161), /* used by scp/sftp to verify the host's public key */ CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162), /* Callback function for opening socket (instead of socket(2)). Optionally, callback is able change the address or refuse to connect returning CURL_SOCKET_BAD. The callback should have type curl_opensocket_callback */ CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163), CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 164), /* POST volatile input fields. */ CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165), /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */ CURLOPT(CURLOPT_PROXY_TRANSFER_MODE, CURLOPTTYPE_LONG, 166), /* Callback function for seeking in the input stream */ CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167), CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_OBJECTPOINT, 168), /* CRL file */ CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169), /* Issuer certificate */ CURLOPT(CURLOPT_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 170), /* (IPv6) Address scope */ CURLOPT(CURLOPT_ADDRESS_SCOPE, CURLOPTTYPE_LONG, 171), /* Collect certificate chain info and allow it to get retrievable with CURLINFO_CERTINFO after the transfer is complete. */ CURLOPT(CURLOPT_CERTINFO, CURLOPTTYPE_LONG, 172), /* "name" and "pwd" to use when fetching. */ CURLOPT(CURLOPT_USERNAME, CURLOPTTYPE_STRINGPOINT, 173), CURLOPT(CURLOPT_PASSWORD, CURLOPTTYPE_STRINGPOINT, 174), /* "name" and "pwd" to use with Proxy when fetching. */ CURLOPT(CURLOPT_PROXYUSERNAME, CURLOPTTYPE_STRINGPOINT, 175), CURLOPT(CURLOPT_PROXYPASSWORD, CURLOPTTYPE_STRINGPOINT, 176), /* Comma separated list of hostnames defining no-proxy zones. These should match both hostnames directly, and hostnames within a domain. For example, local.com will match local.com and www.local.com, but NOT notlocal.com or www.notlocal.com. For compatibility with other implementations of this, .local.com will be considered to be the same as local.com. A single * is the only valid wildcard, and effectively disables the use of proxy. */ CURLOPT(CURLOPT_NOPROXY, CURLOPTTYPE_STRINGPOINT, 177), /* block size for TFTP transfers */ CURLOPT(CURLOPT_TFTP_BLKSIZE, CURLOPTTYPE_LONG, 178), /* Socks Service */ /* DEPRECATED, do not use! */ CURLOPT(CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPTTYPE_STRINGPOINT, 179), /* Socks Service */ CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180), /* set the bitmask for the protocols that are allowed to be used for the transfer, which thus helps the app which takes URLs from users or other external inputs and want to restrict what protocol(s) to deal with. Defaults to CURLPROTO_ALL. */ CURLOPT(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181), /* set the bitmask for the protocols that libcurl is allowed to follow to, as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs to be set in both bitmasks to be allowed to get redirected to. */ CURLOPT(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182), /* set the SSH knownhost file name to use */ CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183), /* set the SSH host key callback, must point to a curl_sshkeycallback function */ CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184), /* set the SSH host key callback custom pointer */ CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_OBJECTPOINT, 185), /* set the SMTP mail originator */ CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186), /* set the list of SMTP mail receiver(s) */ CURLOPT(CURLOPT_MAIL_RCPT, CURLOPTTYPE_SLISTPOINT, 187), /* FTP: send PRET before PASV */ CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188), /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_LONG, 189), /* The RTSP session identifier */ CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190), /* The RTSP stream URI */ CURLOPT(CURLOPT_RTSP_STREAM_URI, CURLOPTTYPE_STRINGPOINT, 191), /* The Transport: header to use in RTSP requests */ CURLOPT(CURLOPT_RTSP_TRANSPORT, CURLOPTTYPE_STRINGPOINT, 192), /* Manually initialize the client RTSP CSeq for this handle */ CURLOPT(CURLOPT_RTSP_CLIENT_CSEQ, CURLOPTTYPE_LONG, 193), /* Manually initialize the server RTSP CSeq for this handle */ CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194), /* The stream to pass to INTERLEAVEFUNCTION. */ CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_OBJECTPOINT, 195), /* Let the application define a custom write method for RTP data */ CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196), /* Turn on wildcard matching */ CURLOPT(CURLOPT_WILDCARDMATCH, CURLOPTTYPE_LONG, 197), /* Directory matching callback called before downloading of an individual file (chunk) started */ CURLOPT(CURLOPT_CHUNK_BGN_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 198), /* Directory matching callback called after the file (chunk) was downloaded, or skipped */ CURLOPT(CURLOPT_CHUNK_END_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 199), /* Change match (fnmatch-like) callback for wildcard matching */ CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200), /* Let the application define custom chunk data pointer */ CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_OBJECTPOINT, 201), /* FNMATCH_FUNCTION user pointer */ CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_OBJECTPOINT, 202), /* send linked-list of name:port:address sets */ CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203), /* Set a username for authenticated TLS */ CURLOPT(CURLOPT_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 204), /* Set a password for authenticated TLS */ CURLOPT(CURLOPT_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 205), /* Set authentication type for authenticated TLS */ CURLOPT(CURLOPT_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 206), /* Set to 1 to enable the "TE:" header in HTTP requests to ask for compressed transfer-encoded responses. Set to 0 to disable the use of TE: in outgoing requests. The current default is 0, but it might change in a future libcurl release. libcurl will ask for the compressed methods it knows of, and if that isn't any, it will not ask for transfer-encoding at all even if this option is set to 1. */ CURLOPT(CURLOPT_TRANSFER_ENCODING, CURLOPTTYPE_LONG, 207), /* Callback function for closing socket (instead of close(2)). The callback should have type curl_closesocket_callback */ CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208), CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 209), /* allow GSSAPI credential delegation */ CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_LONG, 210), /* Set the name servers to use for DNS resolution */ CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211), /* Time-out accept operations (currently for FTP only) after this amount of milliseconds. */ CURLOPT(CURLOPT_ACCEPTTIMEOUT_MS, CURLOPTTYPE_LONG, 212), /* Set TCP keepalive */ CURLOPT(CURLOPT_TCP_KEEPALIVE, CURLOPTTYPE_LONG, 213), /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ CURLOPT(CURLOPT_TCP_KEEPIDLE, CURLOPTTYPE_LONG, 214), CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215), /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_LONG, 216), /* Set the SMTP auth originator */ CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217), /* Enable/disable SASL initial response */ CURLOPT(CURLOPT_SASL_IR, CURLOPTTYPE_LONG, 218), /* Function that will be called instead of the internal progress display * function. This function should be defined as the curl_xferinfo_callback * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ CURLOPT(CURLOPT_XFERINFOFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 219), /* The XOAUTH2 bearer token */ CURLOPT(CURLOPT_XOAUTH2_BEARER, CURLOPTTYPE_STRINGPOINT, 220), /* Set the interface string to use as outgoing network * interface for DNS requests. * Only supported by the c-ares DNS backend */ CURLOPT(CURLOPT_DNS_INTERFACE, CURLOPTTYPE_STRINGPOINT, 221), /* Set the local IPv4 address to use for outgoing DNS requests. * Only supported by the c-ares DNS backend */ CURLOPT(CURLOPT_DNS_LOCAL_IP4, CURLOPTTYPE_STRINGPOINT, 222), /* Set the local IPv6 address to use for outgoing DNS requests. * Only supported by the c-ares DNS backend */ CURLOPT(CURLOPT_DNS_LOCAL_IP6, CURLOPTTYPE_STRINGPOINT, 223), /* Set authentication options directly */ CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224), /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ CURLOPT(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225), /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226), /* Time to wait for a response to a HTTP request containing an * Expect: 100-continue header before sending the data anyway. */ CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227), /* This points to a linked list of headers used for proxy requests only, struct curl_slist kind */ CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228), /* Pass in a bitmask of "header options" */ CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_LONG, 229), /* The public key in DER form used to validate the peer public key this option is used only if SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230), /* Path to Unix domain socket */ CURLOPT(CURLOPT_UNIX_SOCKET_PATH, CURLOPTTYPE_STRINGPOINT, 231), /* Set if we should verify the certificate status. */ CURLOPT(CURLOPT_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 232), /* Set if we should enable TLS false start. */ CURLOPT(CURLOPT_SSL_FALSESTART, CURLOPTTYPE_LONG, 233), /* Do not squash dot-dot sequences */ CURLOPT(CURLOPT_PATH_AS_IS, CURLOPTTYPE_LONG, 234), /* Proxy Service Name */ CURLOPT(CURLOPT_PROXY_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 235), /* Service Name */ CURLOPT(CURLOPT_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 236), /* Wait/don't wait for pipe/mutex to clarify */ CURLOPT(CURLOPT_PIPEWAIT, CURLOPTTYPE_LONG, 237), /* Set the protocol used when curl is given a URL without a protocol */ CURLOPT(CURLOPT_DEFAULT_PROTOCOL, CURLOPTTYPE_STRINGPOINT, 238), /* Set stream weight, 1 - 256 (default is 16) */ CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239), /* Set stream dependency on another CURL handle */ CURLOPT(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240), /* Set E-xclusive stream dependency on another CURL handle */ CURLOPT(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241), /* Do not send any tftp option requests to the server */ CURLOPT(CURLOPT_TFTP_NO_OPTIONS, CURLOPTTYPE_LONG, 242), /* Linked-list of host:port:connect-to-host:connect-to-port, overrides the URL's host:port (only for the network layer) */ CURLOPT(CURLOPT_CONNECT_TO, CURLOPTTYPE_SLISTPOINT, 243), /* Set TCP Fast Open */ CURLOPT(CURLOPT_TCP_FASTOPEN, CURLOPTTYPE_LONG, 244), /* Continue to send data if the server responds early with an * HTTP status code >= 300 */ CURLOPT(CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPTTYPE_LONG, 245), /* The CApath or CAfile used to validate the proxy certificate this option is used only if PROXY_SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_PROXY_CAINFO, CURLOPTTYPE_STRINGPOINT, 246), /* The CApath directory used to validate the proxy certificate this option is used only if PROXY_SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_PROXY_CAPATH, CURLOPTTYPE_STRINGPOINT, 247), /* Set if we should verify the proxy in ssl handshake, set 1 to verify. */ CURLOPT(CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 248), /* Set if we should verify the Common name from the proxy certificate in ssl * handshake, set 1 to check existence, 2 to ensure that it matches * the provided hostname. */ CURLOPT(CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 249), /* What version to specifically try to use for proxy. See CURL_SSLVERSION defines below. */ CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_LONG, 250), /* Set a username for authenticated TLS for proxy */ CURLOPT(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 251), /* Set a password for authenticated TLS for proxy */ CURLOPT(CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 252), /* Set authentication type for authenticated TLS for proxy */ CURLOPT(CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 253), /* name of the file keeping your private SSL-certificate for proxy */ CURLOPT(CURLOPT_PROXY_SSLCERT, CURLOPTTYPE_STRINGPOINT, 254), /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for proxy */ CURLOPT(CURLOPT_PROXY_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 255), /* name of the file keeping your private SSL-key for proxy */ CURLOPT(CURLOPT_PROXY_SSLKEY, CURLOPTTYPE_STRINGPOINT, 256), /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for proxy */ CURLOPT(CURLOPT_PROXY_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 257), /* password for the SSL private key for proxy */ CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258), /* Specify which SSL ciphers to use for proxy */ CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259), /* CRL file for proxy */ CURLOPT(CURLOPT_PROXY_CRLFILE, CURLOPTTYPE_STRINGPOINT, 260), /* Enable/disable specific SSL features with a bitmask for proxy, see CURLSSLOPT_* */ CURLOPT(CURLOPT_PROXY_SSL_OPTIONS, CURLOPTTYPE_LONG, 261), /* Name of pre proxy to use. */ CURLOPT(CURLOPT_PRE_PROXY, CURLOPTTYPE_STRINGPOINT, 262), /* The public key in DER form used to validate the proxy public key this option is used only if PROXY_SSL_VERIFYPEER is true */ CURLOPT(CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 263), /* Path to an abstract Unix domain socket */ CURLOPT(CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPTTYPE_STRINGPOINT, 264), /* Suppress proxy CONNECT response headers from user callbacks */ CURLOPT(CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPTTYPE_LONG, 265), /* The request target, instead of extracted from the URL */ CURLOPT(CURLOPT_REQUEST_TARGET, CURLOPTTYPE_STRINGPOINT, 266), /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ CURLOPT(CURLOPT_SOCKS5_AUTH, CURLOPTTYPE_LONG, 267), /* Enable/disable SSH compression */ CURLOPT(CURLOPT_SSH_COMPRESSION, CURLOPTTYPE_LONG, 268), /* Post MIME data. */ CURLOPT(CURLOPT_MIMEPOST, CURLOPTTYPE_OBJECTPOINT, 269), /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of seconds since 1 Jan 1970. */ CURLOPT(CURLOPT_TIMEVALUE_LARGE, CURLOPTTYPE_OFF_T, 270), /* Head start in milliseconds to give happy eyeballs. */ CURLOPT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPTTYPE_LONG, 271), /* Function that will be called before a resolver request is made */ CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272), /* User data to pass to the resolver start callback. */ CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_OBJECTPOINT, 273), /* send HAProxy PROXY protocol header? */ CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274), /* shuffle addresses before use when DNS returns multiple */ CURLOPT(CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPTTYPE_LONG, 275), /* Specify which TLS 1.3 ciphers suites to use */ CURLOPT(CURLOPT_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 276), CURLOPT(CURLOPT_PROXY_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 277), /* Disallow specifying username/login in URL. */ CURLOPT(CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPTTYPE_LONG, 278), /* DNS-over-HTTPS URL */ CURLOPT(CURLOPT_DOH_URL, CURLOPTTYPE_STRINGPOINT, 279), /* Preferred buffer size to use for uploads */ CURLOPT(CURLOPT_UPLOAD_BUFFERSIZE, CURLOPTTYPE_LONG, 280), /* Time in ms between connection upkeep calls for long-lived connections. */ CURLOPT(CURLOPT_UPKEEP_INTERVAL_MS, CURLOPTTYPE_LONG, 281), /* Specify URL using CURL URL API. */ CURLOPT(CURLOPT_CURLU, CURLOPTTYPE_OBJECTPOINT, 282), /* add trailing data just after no more data is available */ CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283), /* pointer to be passed to HTTP_TRAILER_FUNCTION */ CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_OBJECTPOINT, 284), /* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */ CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285), /* alt-svc control bitmask */ CURLOPT(CURLOPT_ALTSVC_CTRL, CURLOPTTYPE_LONG, 286), /* alt-svc cache file name to possibly read from/write to */ CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287), /* maximum age of a connection to consider it for reuse (in seconds) */ CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288), /* SASL authorisation identity */ CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289), /* allow RCPT TO command to fail for some recipients */ CURLOPT(CURLOPT_MAIL_RCPT_ALLLOWFAILS, CURLOPTTYPE_LONG, 290), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ |
︙ | ︙ | |||
2216 2217 2218 2219 2220 2221 2222 | * * Set mime part headers. */ CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, struct curl_slist *headers, int take_ownership); | < < < < < < < < < < < < < | < < | | | | | | | | | | | | | | | | | | | | < < | 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 | * * Set mime part headers. */ CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, struct curl_slist *headers, int take_ownership); typedef enum { CURLFORM_NOTHING, /********* the first one is unused ************/ CURLFORM_COPYNAME, CURLFORM_PTRNAME, CURLFORM_NAMELENGTH, CURLFORM_COPYCONTENTS, CURLFORM_PTRCONTENTS, CURLFORM_CONTENTSLENGTH, CURLFORM_FILECONTENT, CURLFORM_ARRAY, CURLFORM_OBSOLETE, CURLFORM_FILE, CURLFORM_BUFFER, CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH, CURLFORM_CONTENTTYPE, CURLFORM_CONTENTHEADER, CURLFORM_FILENAME, CURLFORM_END, CURLFORM_OBSOLETE2, CURLFORM_STREAM, CURLFORM_CONTENTLEN, /* added in 7.46.0, provide a curl_off_t length */ CURLFORM_LASTENTRY /* the last unused */ } CURLformoption; /* structure to be used as parameter for CURLFORM_ARRAY */ struct curl_forms { CURLformoption option; const char *value; }; /* use this for multipart formpost building */ |
︙ | ︙ |
Changes to jni/curl/include/curl/curlver.h.
1 2 3 4 5 6 7 8 9 | #ifndef CURLINC_CURLVER_H #define CURLINC_CURLVER_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | | | | 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 | #ifndef CURLINC_CURLVER_H #define CURLINC_CURLVER_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ /* This header file contains nothing but libcurl version info, generated by a script at release-time. This was made its own header file in 7.11.2 */ /* This is the global package copyright */ #define LIBCURL_COPYRIGHT "1996 - 2020 Daniel Stenberg, <daniel@haxx.se>." /* This is the version number of the libcurl package from which this header file origins: */ #define LIBCURL_VERSION "7.69.0" /* The numeric version number is also available "in parts" by using these defines: */ #define LIBCURL_VERSION_MAJOR 7 #define LIBCURL_VERSION_MINOR 69 #define LIBCURL_VERSION_PATCH 0 /* This is the numeric version of the libcurl version number, meant for easier parsing and comparions by programs. The LIBCURL_VERSION_NUM define will always follow this syntax: 0xXXYYZZ |
︙ | ︙ | |||
53 54 55 56 57 58 59 | and it is always a greater number in a more recent release. It makes comparisons with greater than and less than work. Note: This define is the full hex number and _does not_ use the CURL_VERSION_BITS() macro since curl's own configure script greps for it and needs it to contain the full number. */ | | | | 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 | and it is always a greater number in a more recent release. It makes comparisons with greater than and less than work. Note: This define is the full hex number and _does not_ use the CURL_VERSION_BITS() macro since curl's own configure script greps for it and needs it to contain the full number. */ #define LIBCURL_VERSION_NUM 0x074500 /* * This is the date and time when the full source package was created. The * timestamp is not stored in git, as the timestamp is properly set in the * tarballs by the maketgz script. * * The format of the date follows this template: * * "2007-11-23" */ #define LIBCURL_TIMESTAMP "2020-03-04" #define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z)) #define CURL_AT_LEAST_VERSION(x,y,z) \ (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) #endif /* CURLINC_CURLVER_H */ |
Changes to jni/curl/include/curl/multi.h.
︙ | ︙ | |||
68 69 70 71 72 73 74 | CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was attempted to get added - again */ CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a callback */ | | > | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was attempted to get added - again */ CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a callback */ CURLM_WAKEUP_FAILURE, /* wakeup is unavailable or failed */ CURLM_BAD_FUNCTION_ARGUMENT, /* function called with a bad parameter */ CURLM_LAST } CURLMcode; /* just to make code nicer when using curl_multi_socket() you can now check for CURLM_CALL_MULTI_SOCKET too in the same style it works for curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ #define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM |
︙ | ︙ | |||
339 340 341 342 343 344 345 | * called (to allow libcurl's timed events to take place). * * Returns: CURLM error code. */ CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, long *milliseconds); | < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 | * called (to allow libcurl's timed events to take place). * * Returns: CURLM error code. */ CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, long *milliseconds); typedef enum { /* This is the socket callback function pointer */ CURLOPT(CURLMOPT_SOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 1), /* This is the argument passed to the socket callback */ CURLOPT(CURLMOPT_SOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 2), /* set to 1 to enable pipelining for this multi handle */ CURLOPT(CURLMOPT_PIPELINING, CURLOPTTYPE_LONG, 3), /* This is the timer callback function pointer */ CURLOPT(CURLMOPT_TIMERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 4), /* This is the argument passed to the timer callback */ CURLOPT(CURLMOPT_TIMERDATA, CURLOPTTYPE_OBJECTPOINT, 5), /* maximum number of entries in the connection cache */ CURLOPT(CURLMOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 6), /* maximum number of (pipelining) connections to one host */ CURLOPT(CURLMOPT_MAX_HOST_CONNECTIONS, CURLOPTTYPE_LONG, 7), /* maximum number of requests in a pipeline */ CURLOPT(CURLMOPT_MAX_PIPELINE_LENGTH, CURLOPTTYPE_LONG, 8), /* a connection with a content-length longer than this will not be considered for pipelining */ CURLOPT(CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 9), /* a connection with a chunk length longer than this will not be considered for pipelining */ CURLOPT(CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 10), /* a list of site names(+port) that are blacklisted from pipelining */ CURLOPT(CURLMOPT_PIPELINING_SITE_BL, CURLOPTTYPE_OBJECTPOINT, 11), /* a list of server types that are blacklisted from pipelining */ CURLOPT(CURLMOPT_PIPELINING_SERVER_BL, CURLOPTTYPE_OBJECTPOINT, 12), /* maximum number of open connections in total */ CURLOPT(CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPTTYPE_LONG, 13), /* This is the server push callback function pointer */ CURLOPT(CURLMOPT_PUSHFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 14), /* This is the argument passed to the server push callback */ CURLOPT(CURLMOPT_PUSHDATA, CURLOPTTYPE_OBJECTPOINT, 15), /* maximum number of concurrent streams to support on a connection */ CURLOPT(CURLMOPT_MAX_CONCURRENT_STREAMS, CURLOPTTYPE_LONG, 16), CURLMOPT_LASTENTRY /* the last unused */ } CURLMoption; /* * Name: curl_multi_setopt() |
︙ | ︙ |
Changes to jni/curl/lib/CMakeLists.txt.
︙ | ︙ | |||
91 92 93 94 95 96 97 98 99 100 101 102 103 104 | set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_FLAGS ${CURL_CFLAG_SYMBOLS_HIDE}) endif() # Remove the "lib" prefix since the library is already named "libcurl". set_target_properties(${LIB_NAME} PROPERTIES PREFIX "") set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "") if(WIN32) if(BUILD_SHARED_LIBS) # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib" set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib") endif() endif() | > > > > > > | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_FLAGS ${CURL_CFLAG_SYMBOLS_HIDE}) endif() # Remove the "lib" prefix since the library is already named "libcurl". set_target_properties(${LIB_NAME} PROPERTIES PREFIX "") set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "") if(CURL_HAS_LTO) set_target_properties(${LIB_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) endif() if(WIN32) if(BUILD_SHARED_LIBS) # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib" set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib") endif() endif() |
︙ | ︙ |
Changes to jni/curl/lib/Makefile.in.
︙ | ︙ | |||
17 18 19 20 21 22 23 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
225 226 227 228 229 230 231 | libcurl_la-x509asn1.lo libcurl_la-http2.lo libcurl_la-smb.lo \ libcurl_la-curl_endian.lo libcurl_la-curl_des.lo \ libcurl_la-system_win32.lo libcurl_la-mime.lo \ libcurl_la-sha256.lo libcurl_la-setopt.lo \ libcurl_la-curl_path.lo libcurl_la-curl_ctype.lo \ libcurl_la-curl_range.lo libcurl_la-psl.lo libcurl_la-doh.lo \ libcurl_la-urlapi.lo libcurl_la-curl_get_line.lo \ | | > | < | > | 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | libcurl_la-x509asn1.lo libcurl_la-http2.lo libcurl_la-smb.lo \ libcurl_la-curl_endian.lo libcurl_la-curl_des.lo \ libcurl_la-system_win32.lo libcurl_la-mime.lo \ libcurl_la-sha256.lo libcurl_la-setopt.lo \ libcurl_la-curl_path.lo libcurl_la-curl_ctype.lo \ libcurl_la-curl_range.lo libcurl_la-psl.lo libcurl_la-doh.lo \ libcurl_la-urlapi.lo libcurl_la-curl_get_line.lo \ libcurl_la-altsvc.lo libcurl_la-socketpair.lo \ libcurl_la-rename.lo am__dirstamp = $(am__leading_dot)dirstamp am__objects_2 = vauth/libcurl_la-vauth.lo \ vauth/libcurl_la-cleartext.lo vauth/libcurl_la-cram.lo \ vauth/libcurl_la-digest.lo vauth/libcurl_la-digest_sspi.lo \ vauth/libcurl_la-krb5_gssapi.lo vauth/libcurl_la-krb5_sspi.lo \ vauth/libcurl_la-ntlm.lo vauth/libcurl_la-ntlm_sspi.lo \ vauth/libcurl_la-oauth2.lo vauth/libcurl_la-spnego_gssapi.lo \ vauth/libcurl_la-spnego_sspi.lo am__objects_3 = vtls/libcurl_la-openssl.lo vtls/libcurl_la-gtls.lo \ vtls/libcurl_la-vtls.lo vtls/libcurl_la-nss.lo \ vtls/libcurl_la-mbedtls_threadlock.lo \ vtls/libcurl_la-wolfssl.lo vtls/libcurl_la-schannel.lo \ vtls/libcurl_la-schannel_verify.lo \ vtls/libcurl_la-sectransp.lo vtls/libcurl_la-gskit.lo \ vtls/libcurl_la-mbedtls.lo vtls/libcurl_la-mesalink.lo \ vtls/libcurl_la-bearssl.lo am__objects_4 = vquic/libcurl_la-ngtcp2.lo vquic/libcurl_la-quiche.lo am__objects_5 = vssh/libcurl_la-libssh2.lo vssh/libcurl_la-libssh.lo \ vssh/libcurl_la-wolfssh.lo am__objects_6 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \ $(am__objects_4) $(am__objects_5) am__objects_7 = am__objects_8 = $(am__objects_7) $(am__objects_7) $(am__objects_7) \ $(am__objects_7) $(am__objects_7) am_libcurl_la_OBJECTS = $(am__objects_6) $(am__objects_8) libcurl_la_OBJECTS = $(am_libcurl_la_OBJECTS) |
︙ | ︙ | |||
313 314 315 316 317 318 319 | libcurlu_la-smb.lo libcurlu_la-curl_endian.lo \ libcurlu_la-curl_des.lo libcurlu_la-system_win32.lo \ libcurlu_la-mime.lo libcurlu_la-sha256.lo \ libcurlu_la-setopt.lo libcurlu_la-curl_path.lo \ libcurlu_la-curl_ctype.lo libcurlu_la-curl_range.lo \ libcurlu_la-psl.lo libcurlu_la-doh.lo libcurlu_la-urlapi.lo \ libcurlu_la-curl_get_line.lo libcurlu_la-altsvc.lo \ | | | < | | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 | libcurlu_la-smb.lo libcurlu_la-curl_endian.lo \ libcurlu_la-curl_des.lo libcurlu_la-system_win32.lo \ libcurlu_la-mime.lo libcurlu_la-sha256.lo \ libcurlu_la-setopt.lo libcurlu_la-curl_path.lo \ libcurlu_la-curl_ctype.lo libcurlu_la-curl_range.lo \ libcurlu_la-psl.lo libcurlu_la-doh.lo libcurlu_la-urlapi.lo \ libcurlu_la-curl_get_line.lo libcurlu_la-altsvc.lo \ libcurlu_la-socketpair.lo libcurlu_la-rename.lo am__objects_10 = vauth/libcurlu_la-vauth.lo \ vauth/libcurlu_la-cleartext.lo vauth/libcurlu_la-cram.lo \ vauth/libcurlu_la-digest.lo vauth/libcurlu_la-digest_sspi.lo \ vauth/libcurlu_la-krb5_gssapi.lo \ vauth/libcurlu_la-krb5_sspi.lo vauth/libcurlu_la-ntlm.lo \ vauth/libcurlu_la-ntlm_sspi.lo vauth/libcurlu_la-oauth2.lo \ vauth/libcurlu_la-spnego_gssapi.lo \ vauth/libcurlu_la-spnego_sspi.lo am__objects_11 = vtls/libcurlu_la-openssl.lo vtls/libcurlu_la-gtls.lo \ vtls/libcurlu_la-vtls.lo vtls/libcurlu_la-nss.lo \ vtls/libcurlu_la-mbedtls_threadlock.lo \ vtls/libcurlu_la-wolfssl.lo vtls/libcurlu_la-schannel.lo \ vtls/libcurlu_la-schannel_verify.lo \ vtls/libcurlu_la-sectransp.lo vtls/libcurlu_la-gskit.lo \ vtls/libcurlu_la-mbedtls.lo vtls/libcurlu_la-mesalink.lo \ vtls/libcurlu_la-bearssl.lo am__objects_12 = vquic/libcurlu_la-ngtcp2.lo \ vquic/libcurlu_la-quiche.lo am__objects_13 = vssh/libcurlu_la-libssh2.lo \ vssh/libcurlu_la-libssh.lo vssh/libcurlu_la-wolfssh.lo am__objects_14 = $(am__objects_9) $(am__objects_10) $(am__objects_11) \ $(am__objects_12) $(am__objects_13) am_libcurlu_la_OBJECTS = $(am__objects_14) $(am__objects_8) libcurlu_la_OBJECTS = $(am_libcurlu_la_OBJECTS) libcurlu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurlu_la_CFLAGS) \ $(CFLAGS) $(libcurlu_la_LDFLAGS) $(LDFLAGS) -o $@ |
︙ | ︙ | |||
434 435 436 437 438 439 440 441 442 443 444 445 446 447 | ./$(DEPDIR)/libcurl_la-nonblock.Plo \ ./$(DEPDIR)/libcurl_la-openldap.Plo \ ./$(DEPDIR)/libcurl_la-parsedate.Plo \ ./$(DEPDIR)/libcurl_la-pingpong.Plo \ ./$(DEPDIR)/libcurl_la-pop3.Plo \ ./$(DEPDIR)/libcurl_la-progress.Plo \ ./$(DEPDIR)/libcurl_la-psl.Plo ./$(DEPDIR)/libcurl_la-rand.Plo \ ./$(DEPDIR)/libcurl_la-rtsp.Plo \ ./$(DEPDIR)/libcurl_la-security.Plo \ ./$(DEPDIR)/libcurl_la-select.Plo \ ./$(DEPDIR)/libcurl_la-sendf.Plo \ ./$(DEPDIR)/libcurl_la-setopt.Plo \ ./$(DEPDIR)/libcurl_la-sha256.Plo \ ./$(DEPDIR)/libcurl_la-share.Plo \ | > | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 | ./$(DEPDIR)/libcurl_la-nonblock.Plo \ ./$(DEPDIR)/libcurl_la-openldap.Plo \ ./$(DEPDIR)/libcurl_la-parsedate.Plo \ ./$(DEPDIR)/libcurl_la-pingpong.Plo \ ./$(DEPDIR)/libcurl_la-pop3.Plo \ ./$(DEPDIR)/libcurl_la-progress.Plo \ ./$(DEPDIR)/libcurl_la-psl.Plo ./$(DEPDIR)/libcurl_la-rand.Plo \ ./$(DEPDIR)/libcurl_la-rename.Plo \ ./$(DEPDIR)/libcurl_la-rtsp.Plo \ ./$(DEPDIR)/libcurl_la-security.Plo \ ./$(DEPDIR)/libcurl_la-select.Plo \ ./$(DEPDIR)/libcurl_la-sendf.Plo \ ./$(DEPDIR)/libcurl_la-setopt.Plo \ ./$(DEPDIR)/libcurl_la-sha256.Plo \ ./$(DEPDIR)/libcurl_la-share.Plo \ |
︙ | ︙ | |||
544 545 546 547 548 549 550 551 552 553 554 555 556 557 | ./$(DEPDIR)/libcurlu_la-openldap.Plo \ ./$(DEPDIR)/libcurlu_la-parsedate.Plo \ ./$(DEPDIR)/libcurlu_la-pingpong.Plo \ ./$(DEPDIR)/libcurlu_la-pop3.Plo \ ./$(DEPDIR)/libcurlu_la-progress.Plo \ ./$(DEPDIR)/libcurlu_la-psl.Plo \ ./$(DEPDIR)/libcurlu_la-rand.Plo \ ./$(DEPDIR)/libcurlu_la-rtsp.Plo \ ./$(DEPDIR)/libcurlu_la-security.Plo \ ./$(DEPDIR)/libcurlu_la-select.Plo \ ./$(DEPDIR)/libcurlu_la-sendf.Plo \ ./$(DEPDIR)/libcurlu_la-setopt.Plo \ ./$(DEPDIR)/libcurlu_la-sha256.Plo \ ./$(DEPDIR)/libcurlu_la-share.Plo \ | > | 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | ./$(DEPDIR)/libcurlu_la-openldap.Plo \ ./$(DEPDIR)/libcurlu_la-parsedate.Plo \ ./$(DEPDIR)/libcurlu_la-pingpong.Plo \ ./$(DEPDIR)/libcurlu_la-pop3.Plo \ ./$(DEPDIR)/libcurlu_la-progress.Plo \ ./$(DEPDIR)/libcurlu_la-psl.Plo \ ./$(DEPDIR)/libcurlu_la-rand.Plo \ ./$(DEPDIR)/libcurlu_la-rename.Plo \ ./$(DEPDIR)/libcurlu_la-rtsp.Plo \ ./$(DEPDIR)/libcurlu_la-security.Plo \ ./$(DEPDIR)/libcurlu_la-select.Plo \ ./$(DEPDIR)/libcurlu_la-sendf.Plo \ ./$(DEPDIR)/libcurlu_la-setopt.Plo \ ./$(DEPDIR)/libcurlu_la-sha256.Plo \ ./$(DEPDIR)/libcurlu_la-share.Plo \ |
︙ | ︙ | |||
606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 | vauth/$(DEPDIR)/libcurlu_la-vauth.Plo \ vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo \ vquic/$(DEPDIR)/libcurl_la-quiche.Plo \ vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo \ vquic/$(DEPDIR)/libcurlu_la-quiche.Plo \ vssh/$(DEPDIR)/libcurl_la-libssh.Plo \ vssh/$(DEPDIR)/libcurl_la-libssh2.Plo \ vssh/$(DEPDIR)/libcurlu_la-libssh.Plo \ vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo \ vtls/$(DEPDIR)/libcurl_la-bearssl.Plo \ vtls/$(DEPDIR)/libcurl_la-gskit.Plo \ vtls/$(DEPDIR)/libcurl_la-gtls.Plo \ vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo \ vtls/$(DEPDIR)/libcurl_la-mesalink.Plo \ vtls/$(DEPDIR)/libcurl_la-nss.Plo \ vtls/$(DEPDIR)/libcurl_la-openssl.Plo \ | > > > < < > < < | 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 | vauth/$(DEPDIR)/libcurlu_la-vauth.Plo \ vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo \ vquic/$(DEPDIR)/libcurl_la-quiche.Plo \ vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo \ vquic/$(DEPDIR)/libcurlu_la-quiche.Plo \ vssh/$(DEPDIR)/libcurl_la-libssh.Plo \ vssh/$(DEPDIR)/libcurl_la-libssh2.Plo \ vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo \ vssh/$(DEPDIR)/libcurlu_la-libssh.Plo \ vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo \ vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo \ vtls/$(DEPDIR)/libcurl_la-bearssl.Plo \ vtls/$(DEPDIR)/libcurl_la-gskit.Plo \ vtls/$(DEPDIR)/libcurl_la-gtls.Plo \ vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo \ vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo \ vtls/$(DEPDIR)/libcurl_la-mesalink.Plo \ vtls/$(DEPDIR)/libcurl_la-nss.Plo \ vtls/$(DEPDIR)/libcurl_la-openssl.Plo \ vtls/$(DEPDIR)/libcurl_la-schannel.Plo \ vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo \ vtls/$(DEPDIR)/libcurl_la-sectransp.Plo \ vtls/$(DEPDIR)/libcurl_la-vtls.Plo \ vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo \ vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo \ vtls/$(DEPDIR)/libcurlu_la-gskit.Plo \ vtls/$(DEPDIR)/libcurlu_la-gtls.Plo \ vtls/$(DEPDIR)/libcurlu_la-mbedtls.Plo \ vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo \ vtls/$(DEPDIR)/libcurlu_la-mesalink.Plo \ vtls/$(DEPDIR)/libcurlu_la-nss.Plo \ vtls/$(DEPDIR)/libcurlu_la-openssl.Plo \ vtls/$(DEPDIR)/libcurlu_la-schannel.Plo \ vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo \ vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo \ vtls/$(DEPDIR)/libcurlu_la-vtls.Plo \ vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
︙ | ︙ | |||
834 835 836 837 838 839 840 841 842 843 844 845 846 847 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
974 975 976 977 978 979 980 | LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \ vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ | < | | | | | | | | | | | 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 | LIB_VAUTH_CFILES = vauth/vauth.c vauth/cleartext.c vauth/cram.c \ vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ vtls/mbedtls_threadlock.c vtls/wolfssl.c vtls/schannel.c \ vtls/schannel_verify.c vtls/sectransp.c vtls/gskit.c vtls/mbedtls.c \ vtls/mesalink.c vtls/bearssl.c LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h vtls/nssg.h \ vtls/mbedtls_threadlock.h vtls/wolfssl.h vtls/schannel.h \ vtls/sectransp.h vtls/gskit.h vtls/mbedtls.h vtls/mesalink.h \ vtls/bearssl.h LIB_VQUIC_CFILES = vquic/ngtcp2.c vquic/quiche.c LIB_VQUIC_HFILES = vquic/ngtcp2.h vquic/quiche.h LIB_VSSH_CFILES = vssh/libssh2.c vssh/libssh.c vssh/wolfssh.c LIB_VSSH_HFILES = vssh/ssh.h LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \ ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \ getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c \ fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \ strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c \ http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \ strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c \ inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c \ curl_addrinfo.c socks_gssapi.c socks_sspi.c \ curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c \ pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \ openldap.c curl_gethostname.c gopher.c idn_win32.c \ http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \ http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \ curl_multibyte.c hostcheck.c conncache.c dotdot.c \ x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c \ doh.c urlapi.c curl_get_line.c altsvc.c socketpair.c rename.c LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h \ strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h \ wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h \ hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \ http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h \ inet_ntop.h curlx.h curl_memory.h curl_setup.h transfer.h select.h \ easyif.h multiif.h parsedate.h tftp.h sockaddr.h splay.h strdup.h \ socks.h curl_base64.h curl_addrinfo.h curl_sspi.h \ slist.h nonblock.h curl_memrchr.h imap.h pop3.h smtp.h pingpong.h \ rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \ curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \ http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ curl_sasl.h curl_multibyte.h hostcheck.h conncache.h \ curl_setup_once.h multihandle.h setup-vms.h dotdot.h \ x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \ curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h \ curl_get_line.h altsvc.h quic.h socketpair.h rename.h LIB_RCFILES = libcurl.rc CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \ $(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES) HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \ $(LIB_VQUIC_HFILES) $(LIB_VSSH_HFILES) |
︙ | ︙ | |||
1190 1191 1192 1193 1194 1195 1196 | vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-gtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-vtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-nss.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) | < < | | 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 | vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-gtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-vtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-nss.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-mbedtls_threadlock.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-wolfssl.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-schannel.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurl_la-schannel_verify.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) |
︙ | ︙ | |||
1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 | vssh/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) vssh/$(DEPDIR) @: > vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurl_la-libssh2.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurl_la-libssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) vauth/libcurlu_la-vauth.lo: vauth/$(am__dirstamp) \ vauth/$(DEPDIR)/$(am__dirstamp) vauth/libcurlu_la-cleartext.lo: vauth/$(am__dirstamp) \ vauth/$(DEPDIR)/$(am__dirstamp) | > > | 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 | vssh/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) vssh/$(DEPDIR) @: > vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurl_la-libssh2.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurl_la-libssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurl_la-wolfssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) vauth/libcurlu_la-vauth.lo: vauth/$(am__dirstamp) \ vauth/$(DEPDIR)/$(am__dirstamp) vauth/libcurlu_la-cleartext.lo: vauth/$(am__dirstamp) \ vauth/$(DEPDIR)/$(am__dirstamp) |
︙ | ︙ | |||
1265 1266 1267 1268 1269 1270 1271 | vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-gtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-vtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-nss.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) | < < | | 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 | vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-gtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-vtls.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-nss.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-mbedtls_threadlock.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-wolfssl.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-schannel.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) vtls/libcurlu_la-schannel_verify.lo: vtls/$(am__dirstamp) \ vtls/$(DEPDIR)/$(am__dirstamp) |
︙ | ︙ | |||
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 | vquic/libcurlu_la-ngtcp2.lo: vquic/$(am__dirstamp) \ vquic/$(DEPDIR)/$(am__dirstamp) vquic/libcurlu_la-quiche.lo: vquic/$(am__dirstamp) \ vquic/$(DEPDIR)/$(am__dirstamp) vssh/libcurlu_la-libssh2.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurlu_la-libssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) libcurlu.la: $(libcurlu_la_OBJECTS) $(libcurlu_la_DEPENDENCIES) $(EXTRA_libcurlu_la_DEPENDENCIES) $(AM_V_CCLD)$(libcurlu_la_LINK) $(am_libcurlu_la_rpath) $(libcurlu_la_OBJECTS) $(libcurlu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) | > > | 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 | vquic/libcurlu_la-ngtcp2.lo: vquic/$(am__dirstamp) \ vquic/$(DEPDIR)/$(am__dirstamp) vquic/libcurlu_la-quiche.lo: vquic/$(am__dirstamp) \ vquic/$(DEPDIR)/$(am__dirstamp) vssh/libcurlu_la-libssh2.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurlu_la-libssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) vssh/libcurlu_la-wolfssh.lo: vssh/$(am__dirstamp) \ vssh/$(DEPDIR)/$(am__dirstamp) libcurlu.la: $(libcurlu_la_OBJECTS) $(libcurlu_la_DEPENDENCIES) $(EXTRA_libcurlu_la_DEPENDENCIES) $(AM_V_CCLD)$(libcurlu_la_LINK) $(am_libcurlu_la_rpath) $(libcurlu_la_OBJECTS) $(libcurlu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) |
︙ | ︙ | |||
1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-openldap.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-parsedate.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-pingpong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-pop3.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-progress.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-psl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-rand.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-rtsp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-security.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-select.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-sendf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-setopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-sha256.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-share.Plo@am__quote@ # am--include-marker | > | 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-openldap.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-parsedate.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-pingpong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-pop3.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-progress.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-psl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-rand.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-rename.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-rtsp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-security.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-select.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-sendf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-setopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-sha256.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-share.Plo@am__quote@ # am--include-marker |
︙ | ︙ | |||
1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-openldap.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-parsedate.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-pingpong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-pop3.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-progress.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-psl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-rand.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-rtsp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-security.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-select.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-sendf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-setopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-sha256.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-share.Plo@am__quote@ # am--include-marker | > | 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-openldap.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-parsedate.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-pingpong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-pop3.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-progress.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-psl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-rand.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-rename.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-rtsp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-security.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-select.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-sendf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-setopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-sha256.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-share.Plo@am__quote@ # am--include-marker |
︙ | ︙ | |||
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 | @AMDEP_TRUE@@am__include@ @am__quote@vauth/$(DEPDIR)/libcurlu_la-vauth.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurl_la-quiche.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurlu_la-quiche.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurl_la-libssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurl_la-libssh2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurlu_la-libssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-bearssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gskit.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-mesalink.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-nss.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-openssl.Plo@am__quote@ # am--include-marker | > > > < < > < < | 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 | @AMDEP_TRUE@@am__include@ @am__quote@vauth/$(DEPDIR)/libcurlu_la-vauth.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurl_la-quiche.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vquic/$(DEPDIR)/libcurlu_la-quiche.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurl_la-libssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurl_la-libssh2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurlu_la-libssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-bearssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gskit.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-mesalink.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-nss.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-openssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-schannel.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-sectransp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-vtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-gskit.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-gtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-mbedtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-mesalink.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-nss.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-openssl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-schannel.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-vtls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): |
︙ | ︙ | |||
2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 | libcurl_la-socketpair.lo: socketpair.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-socketpair.lo -MD -MP -MF $(DEPDIR)/libcurl_la-socketpair.Tpo -c -o libcurl_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-socketpair.Tpo $(DEPDIR)/libcurl_la-socketpair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketpair.c' object='libcurl_la-socketpair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c vauth/libcurl_la-vauth.lo: vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vauth/libcurl_la-vauth.lo -MD -MP -MF vauth/$(DEPDIR)/libcurl_la-vauth.Tpo -c -o vauth/libcurl_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vauth/$(DEPDIR)/libcurl_la-vauth.Tpo vauth/$(DEPDIR)/libcurl_la-vauth.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vauth/vauth.c' object='vauth/libcurl_la-vauth.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vauth/libcurl_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c | > > > > > > > | 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 | libcurl_la-socketpair.lo: socketpair.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-socketpair.lo -MD -MP -MF $(DEPDIR)/libcurl_la-socketpair.Tpo -c -o libcurl_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-socketpair.Tpo $(DEPDIR)/libcurl_la-socketpair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketpair.c' object='libcurl_la-socketpair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c libcurl_la-rename.lo: rename.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-rename.lo -MD -MP -MF $(DEPDIR)/libcurl_la-rename.Tpo -c -o libcurl_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-rename.Tpo $(DEPDIR)/libcurl_la-rename.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rename.c' object='libcurl_la-rename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c vauth/libcurl_la-vauth.lo: vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vauth/libcurl_la-vauth.lo -MD -MP -MF vauth/$(DEPDIR)/libcurl_la-vauth.Tpo -c -o vauth/libcurl_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vauth/$(DEPDIR)/libcurl_la-vauth.Tpo vauth/$(DEPDIR)/libcurl_la-vauth.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vauth/vauth.c' object='vauth/libcurl_la-vauth.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vauth/libcurl_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c |
︙ | ︙ | |||
2513 2514 2515 2516 2517 2518 2519 | vtls/libcurl_la-nss.lo: vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-nss.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-nss.Tpo -c -o vtls/libcurl_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-nss.Tpo vtls/$(DEPDIR)/libcurl_la-nss.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/nss.c' object='vtls/libcurl_la-nss.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c | | | | | | < < < < < < < | 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 | vtls/libcurl_la-nss.lo: vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-nss.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-nss.Tpo -c -o vtls/libcurl_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-nss.Tpo vtls/$(DEPDIR)/libcurl_la-nss.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/nss.c' object='vtls/libcurl_la-nss.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c vtls/libcurl_la-mbedtls_threadlock.lo: vtls/mbedtls_threadlock.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-mbedtls_threadlock.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Tpo -c -o vtls/libcurl_la-mbedtls_threadlock.lo `test -f 'vtls/mbedtls_threadlock.c' || echo '$(srcdir)/'`vtls/mbedtls_threadlock.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Tpo vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/mbedtls_threadlock.c' object='vtls/libcurl_la-mbedtls_threadlock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-mbedtls_threadlock.lo `test -f 'vtls/mbedtls_threadlock.c' || echo '$(srcdir)/'`vtls/mbedtls_threadlock.c vtls/libcurl_la-wolfssl.lo: vtls/wolfssl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo -c -o vtls/libcurl_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/wolfssl.c' object='vtls/libcurl_la-wolfssl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c |
︙ | ︙ | |||
2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 | vssh/libcurl_la-libssh.lo: vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vssh/libcurl_la-libssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurl_la-libssh.Tpo -c -o vssh/libcurl_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurl_la-libssh.Tpo vssh/$(DEPDIR)/libcurl_la-libssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/libssh.c' object='vssh/libcurl_la-libssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurl_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c libcurlu_la-file.lo: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-file.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-file.Tpo -c -o libcurlu_la-file.lo `test -f 'file.c' || echo '$(srcdir)/'`file.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-file.Tpo $(DEPDIR)/libcurlu_la-file.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file.c' object='libcurlu_la-file.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-file.lo `test -f 'file.c' || echo '$(srcdir)/'`file.c | > > > > > > > | 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 | vssh/libcurl_la-libssh.lo: vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vssh/libcurl_la-libssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurl_la-libssh.Tpo -c -o vssh/libcurl_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurl_la-libssh.Tpo vssh/$(DEPDIR)/libcurl_la-libssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/libssh.c' object='vssh/libcurl_la-libssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurl_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c vssh/libcurl_la-wolfssh.lo: vssh/wolfssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vssh/libcurl_la-wolfssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurl_la-wolfssh.Tpo -c -o vssh/libcurl_la-wolfssh.lo `test -f 'vssh/wolfssh.c' || echo '$(srcdir)/'`vssh/wolfssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurl_la-wolfssh.Tpo vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/wolfssh.c' object='vssh/libcurl_la-wolfssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurl_la-wolfssh.lo `test -f 'vssh/wolfssh.c' || echo '$(srcdir)/'`vssh/wolfssh.c libcurlu_la-file.lo: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-file.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-file.Tpo -c -o libcurlu_la-file.lo `test -f 'file.c' || echo '$(srcdir)/'`file.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-file.Tpo $(DEPDIR)/libcurlu_la-file.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file.c' object='libcurlu_la-file.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-file.lo `test -f 'file.c' || echo '$(srcdir)/'`file.c |
︙ | ︙ | |||
3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 | libcurlu_la-socketpair.lo: socketpair.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-socketpair.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-socketpair.Tpo -c -o libcurlu_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-socketpair.Tpo $(DEPDIR)/libcurlu_la-socketpair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketpair.c' object='libcurlu_la-socketpair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c vauth/libcurlu_la-vauth.lo: vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vauth/libcurlu_la-vauth.lo -MD -MP -MF vauth/$(DEPDIR)/libcurlu_la-vauth.Tpo -c -o vauth/libcurlu_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vauth/$(DEPDIR)/libcurlu_la-vauth.Tpo vauth/$(DEPDIR)/libcurlu_la-vauth.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vauth/vauth.c' object='vauth/libcurlu_la-vauth.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vauth/libcurlu_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c | > > > > > > > | 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 | libcurlu_la-socketpair.lo: socketpair.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-socketpair.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-socketpair.Tpo -c -o libcurlu_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-socketpair.Tpo $(DEPDIR)/libcurlu_la-socketpair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketpair.c' object='libcurlu_la-socketpair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-socketpair.lo `test -f 'socketpair.c' || echo '$(srcdir)/'`socketpair.c libcurlu_la-rename.lo: rename.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-rename.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-rename.Tpo -c -o libcurlu_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-rename.Tpo $(DEPDIR)/libcurlu_la-rename.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rename.c' object='libcurlu_la-rename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c vauth/libcurlu_la-vauth.lo: vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vauth/libcurlu_la-vauth.lo -MD -MP -MF vauth/$(DEPDIR)/libcurlu_la-vauth.Tpo -c -o vauth/libcurlu_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vauth/$(DEPDIR)/libcurlu_la-vauth.Tpo vauth/$(DEPDIR)/libcurlu_la-vauth.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vauth/vauth.c' object='vauth/libcurlu_la-vauth.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vauth/libcurlu_la-vauth.lo `test -f 'vauth/vauth.c' || echo '$(srcdir)/'`vauth/vauth.c |
︙ | ︙ | |||
3500 3501 3502 3503 3504 3505 3506 | vtls/libcurlu_la-nss.lo: vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-nss.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-nss.Tpo -c -o vtls/libcurlu_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-nss.Tpo vtls/$(DEPDIR)/libcurlu_la-nss.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/nss.c' object='vtls/libcurlu_la-nss.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c | | | | | | < < < < < < < | 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 | vtls/libcurlu_la-nss.lo: vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-nss.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-nss.Tpo -c -o vtls/libcurlu_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-nss.Tpo vtls/$(DEPDIR)/libcurlu_la-nss.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/nss.c' object='vtls/libcurlu_la-nss.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-nss.lo `test -f 'vtls/nss.c' || echo '$(srcdir)/'`vtls/nss.c vtls/libcurlu_la-mbedtls_threadlock.lo: vtls/mbedtls_threadlock.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-mbedtls_threadlock.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Tpo -c -o vtls/libcurlu_la-mbedtls_threadlock.lo `test -f 'vtls/mbedtls_threadlock.c' || echo '$(srcdir)/'`vtls/mbedtls_threadlock.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Tpo vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/mbedtls_threadlock.c' object='vtls/libcurlu_la-mbedtls_threadlock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-mbedtls_threadlock.lo `test -f 'vtls/mbedtls_threadlock.c' || echo '$(srcdir)/'`vtls/mbedtls_threadlock.c vtls/libcurlu_la-wolfssl.lo: vtls/wolfssl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo -c -o vtls/libcurlu_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/wolfssl.c' object='vtls/libcurlu_la-wolfssl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c |
︙ | ︙ | |||
3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 | vssh/libcurlu_la-libssh.lo: vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vssh/libcurlu_la-libssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurlu_la-libssh.Tpo -c -o vssh/libcurlu_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurlu_la-libssh.Tpo vssh/$(DEPDIR)/libcurlu_la-libssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/libssh.c' object='vssh/libcurlu_la-libssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurlu_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf vauth/.libs vauth/_libs -rm -rf vquic/.libs vquic/_libs | > > > > > > > | 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 | vssh/libcurlu_la-libssh.lo: vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vssh/libcurlu_la-libssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurlu_la-libssh.Tpo -c -o vssh/libcurlu_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurlu_la-libssh.Tpo vssh/$(DEPDIR)/libcurlu_la-libssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/libssh.c' object='vssh/libcurlu_la-libssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurlu_la-libssh.lo `test -f 'vssh/libssh.c' || echo '$(srcdir)/'`vssh/libssh.c vssh/libcurlu_la-wolfssh.lo: vssh/wolfssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vssh/libcurlu_la-wolfssh.lo -MD -MP -MF vssh/$(DEPDIR)/libcurlu_la-wolfssh.Tpo -c -o vssh/libcurlu_la-wolfssh.lo `test -f 'vssh/wolfssh.c' || echo '$(srcdir)/'`vssh/wolfssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vssh/$(DEPDIR)/libcurlu_la-wolfssh.Tpo vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vssh/wolfssh.c' object='vssh/libcurlu_la-wolfssh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vssh/libcurlu_la-wolfssh.lo `test -f 'vssh/wolfssh.c' || echo '$(srcdir)/'`vssh/wolfssh.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf vauth/.libs vauth/_libs -rm -rf vquic/.libs vquic/_libs |
︙ | ︙ | |||
3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 | -rm -f ./$(DEPDIR)/libcurl_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurl_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurl_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurl_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurl_la-progress.Plo -rm -f ./$(DEPDIR)/libcurl_la-psl.Plo -rm -f ./$(DEPDIR)/libcurl_la-rand.Plo -rm -f ./$(DEPDIR)/libcurl_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurl_la-security.Plo -rm -f ./$(DEPDIR)/libcurl_la-select.Plo -rm -f ./$(DEPDIR)/libcurl_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurl_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurl_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurl_la-share.Plo | > | 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 | -rm -f ./$(DEPDIR)/libcurl_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurl_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurl_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurl_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurl_la-progress.Plo -rm -f ./$(DEPDIR)/libcurl_la-psl.Plo -rm -f ./$(DEPDIR)/libcurl_la-rand.Plo -rm -f ./$(DEPDIR)/libcurl_la-rename.Plo -rm -f ./$(DEPDIR)/libcurl_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurl_la-security.Plo -rm -f ./$(DEPDIR)/libcurl_la-select.Plo -rm -f ./$(DEPDIR)/libcurl_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurl_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurl_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurl_la-share.Plo |
︙ | ︙ | |||
3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 | -rm -f ./$(DEPDIR)/libcurlu_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurlu_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurlu_la-progress.Plo -rm -f ./$(DEPDIR)/libcurlu_la-psl.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rand.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurlu_la-security.Plo -rm -f ./$(DEPDIR)/libcurlu_la-select.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurlu_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurlu_la-share.Plo | > | 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 | -rm -f ./$(DEPDIR)/libcurlu_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurlu_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurlu_la-progress.Plo -rm -f ./$(DEPDIR)/libcurlu_la-psl.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rand.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rename.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurlu_la-security.Plo -rm -f ./$(DEPDIR)/libcurlu_la-select.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurlu_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurlu_la-share.Plo |
︙ | ︙ | |||
3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 | -rm -f vauth/$(DEPDIR)/libcurlu_la-vauth.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-quiche.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-quiche.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-openssl.Plo | > > > < < > < < | 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 | -rm -f vauth/$(DEPDIR)/libcurlu_la-vauth.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-quiche.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-quiche.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-openssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-schannel.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-sectransp.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-vtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-openssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-vtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ |
︙ | ︙ | |||
4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 | -rm -f ./$(DEPDIR)/libcurl_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurl_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurl_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurl_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurl_la-progress.Plo -rm -f ./$(DEPDIR)/libcurl_la-psl.Plo -rm -f ./$(DEPDIR)/libcurl_la-rand.Plo -rm -f ./$(DEPDIR)/libcurl_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurl_la-security.Plo -rm -f ./$(DEPDIR)/libcurl_la-select.Plo -rm -f ./$(DEPDIR)/libcurl_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurl_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurl_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurl_la-share.Plo | > | 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 | -rm -f ./$(DEPDIR)/libcurl_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurl_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurl_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurl_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurl_la-progress.Plo -rm -f ./$(DEPDIR)/libcurl_la-psl.Plo -rm -f ./$(DEPDIR)/libcurl_la-rand.Plo -rm -f ./$(DEPDIR)/libcurl_la-rename.Plo -rm -f ./$(DEPDIR)/libcurl_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurl_la-security.Plo -rm -f ./$(DEPDIR)/libcurl_la-select.Plo -rm -f ./$(DEPDIR)/libcurl_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurl_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurl_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurl_la-share.Plo |
︙ | ︙ | |||
4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 | -rm -f ./$(DEPDIR)/libcurlu_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurlu_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurlu_la-progress.Plo -rm -f ./$(DEPDIR)/libcurlu_la-psl.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rand.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurlu_la-security.Plo -rm -f ./$(DEPDIR)/libcurlu_la-select.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurlu_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurlu_la-share.Plo | > | 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 | -rm -f ./$(DEPDIR)/libcurlu_la-openldap.Plo -rm -f ./$(DEPDIR)/libcurlu_la-parsedate.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pingpong.Plo -rm -f ./$(DEPDIR)/libcurlu_la-pop3.Plo -rm -f ./$(DEPDIR)/libcurlu_la-progress.Plo -rm -f ./$(DEPDIR)/libcurlu_la-psl.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rand.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rename.Plo -rm -f ./$(DEPDIR)/libcurlu_la-rtsp.Plo -rm -f ./$(DEPDIR)/libcurlu_la-security.Plo -rm -f ./$(DEPDIR)/libcurlu_la-select.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sendf.Plo -rm -f ./$(DEPDIR)/libcurlu_la-setopt.Plo -rm -f ./$(DEPDIR)/libcurlu_la-sha256.Plo -rm -f ./$(DEPDIR)/libcurlu_la-share.Plo |
︙ | ︙ | |||
4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 | -rm -f vauth/$(DEPDIR)/libcurlu_la-vauth.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-quiche.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-quiche.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-openssl.Plo | > > > < < > < < | 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 | -rm -f vauth/$(DEPDIR)/libcurlu_la-vauth.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurl_la-quiche.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo -rm -f vquic/$(DEPDIR)/libcurlu_la-quiche.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo -rm -f vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-openssl.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-schannel.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-sectransp.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-vtls.Plo -rm -f vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-gskit.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-gtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-mesalink.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-nss.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-openssl.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-vtls.Plo -rm -f vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic |
︙ | ︙ |
Changes to jni/curl/lib/Makefile.inc.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
24 25 26 27 28 29 30 | vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ | < | | | | | | | | | 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 | vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \ vtls/mbedtls_threadlock.c vtls/wolfssl.c vtls/schannel.c \ vtls/schannel_verify.c vtls/sectransp.c vtls/gskit.c vtls/mbedtls.c \ vtls/mesalink.c vtls/bearssl.c LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h vtls/nssg.h \ vtls/mbedtls_threadlock.h vtls/wolfssl.h vtls/schannel.h \ vtls/sectransp.h vtls/gskit.h vtls/mbedtls.h vtls/mesalink.h \ vtls/bearssl.h LIB_VQUIC_CFILES = vquic/ngtcp2.c vquic/quiche.c LIB_VQUIC_HFILES = vquic/ngtcp2.h vquic/quiche.h LIB_VSSH_CFILES = vssh/libssh2.c vssh/libssh.c vssh/wolfssh.c LIB_VSSH_HFILES = vssh/ssh.h LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \ ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \ getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c \ |
︙ | ︙ | |||
60 61 62 63 64 65 66 | pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \ openldap.c curl_gethostname.c gopher.c idn_win32.c \ http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \ http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \ curl_multibyte.c hostcheck.c conncache.c dotdot.c \ x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c \ | | | | 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 | pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \ openldap.c curl_gethostname.c gopher.c idn_win32.c \ http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \ http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \ curl_multibyte.c hostcheck.c conncache.c dotdot.c \ x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c \ doh.c urlapi.c curl_get_line.c altsvc.c socketpair.c rename.c LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \ formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \ speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h \ strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h \ wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h \ hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \ http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h \ inet_ntop.h curlx.h curl_memory.h curl_setup.h transfer.h select.h \ easyif.h multiif.h parsedate.h tftp.h sockaddr.h splay.h strdup.h \ socks.h curl_base64.h curl_addrinfo.h curl_sspi.h \ slist.h nonblock.h curl_memrchr.h imap.h pop3.h smtp.h pingpong.h \ rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \ curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \ http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \ curl_sasl.h curl_multibyte.h hostcheck.h conncache.h \ curl_setup_once.h multihandle.h setup-vms.h dotdot.h \ x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \ curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \ curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h \ curl_get_line.h altsvc.h quic.h socketpair.h rename.h LIB_RCFILES = libcurl.rc CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \ $(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES) HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \ $(LIB_VQUIC_HFILES) $(LIB_VSSH_HFILES) |
Changes to jni/curl/lib/Makefile.m32.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1999 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
266 267 268 269 270 271 272 | OPENSSL_LIBS = -lcrypto -lssl endif endif ifndef DYN OPENSSL_LIBS += -lgdi32 -lcrypt32 endif INCLUDES += -I"$(OPENSSL_INCLUDE)" | | | 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | OPENSSL_LIBS = -lcrypto -lssl endif endif ifndef DYN OPENSSL_LIBS += -lgdi32 -lcrypt32 endif INCLUDES += -I"$(OPENSSL_INCLUDE)" CFLAGS += -DUSE_OPENSSL -DHAVE_OPENSSL_PKCS12_H \ -DOPENSSL_NO_KRB5 DLL_LIBS += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS) ifdef SRP ifeq "$(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h)" "$(OPENSSL_INCLUDE)/openssl/srp.h" CFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP endif endif |
︙ | ︙ |
Changes to jni/curl/lib/Makefile.netware.
1 2 3 4 5 6 7 8 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2004 - 2015, Guenter Knauf | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2004 - 2015, Guenter Knauf # Copyright (C) 2001 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
635 636 637 638 639 640 641 | @echo $(DL)#define USE_OPENSSL 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_X509_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_SSL_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_RSA_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_PEM_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_ERR_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_CRYPTO_H 1$(DL) >> $@ | < | 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | @echo $(DL)#define USE_OPENSSL 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_X509_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_SSL_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_RSA_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_PEM_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_ERR_H 1$(DL) >> $@ @echo $(DL)#define HAVE_OPENSSL_CRYPTO_H 1$(DL) >> $@ @echo $(DL)#define OPENSSL_NO_KRB5 1$(DL) >> $@ ifdef WITH_SRP @echo $(DL)#define USE_TLS_SRP 1$(DL) >> $@ endif ifdef WITH_SPNEGO @echo $(DL)#define HAVE_SPNEGO 1$(DL) >> $@ endif |
︙ | ︙ |
Changes to jni/curl/lib/altsvc.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2019 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
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 | #include "urldata.h" #include "altsvc.h" #include "curl_get_line.h" #include "strcase.h" #include "parsedate.h" #include "sendf.h" #include "warnless.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #define MAX_ALTSVC_LINE 4095 #define MAX_ALTSVC_DATELENSTR "64" #define MAX_ALTSVC_DATELEN 64 #define MAX_ALTSVC_HOSTLENSTR "512" #define MAX_ALTSVC_HOSTLEN 512 #define MAX_ALTSVC_ALPNLENSTR "10" #define MAX_ALTSVC_ALPNLEN 10 static enum alpnid alpn2alpnid(char *name) { if(strcasecompare(name, "h1")) return ALPN_h1; if(strcasecompare(name, "h2")) return ALPN_h2; | > > > > > > > > < | < < < < < < < | < | 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 | #include "urldata.h" #include "altsvc.h" #include "curl_get_line.h" #include "strcase.h" #include "parsedate.h" #include "sendf.h" #include "warnless.h" #include "rand.h" #include "rename.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #define MAX_ALTSVC_LINE 4095 #define MAX_ALTSVC_DATELENSTR "64" #define MAX_ALTSVC_DATELEN 64 #define MAX_ALTSVC_HOSTLENSTR "512" #define MAX_ALTSVC_HOSTLEN 512 #define MAX_ALTSVC_ALPNLENSTR "10" #define MAX_ALTSVC_ALPNLEN 10 #if (defined(USE_QUICHE) || defined(USE_NGTCP2)) && !defined(UNITTESTS) #define H3VERSION "h3-27" #else #define H3VERSION "h3" #endif static enum alpnid alpn2alpnid(char *name) { if(strcasecompare(name, "h1")) return ALPN_h1; if(strcasecompare(name, "h2")) return ALPN_h2; if(strcasecompare(name, H3VERSION)) return ALPN_h3; return ALPN_none; /* unknown, probably rubbish input */ } /* Given the ALPN ID, return the name */ const char *Curl_alpnid2str(enum alpnid id) { switch(id) { case ALPN_h1: return "h1"; case ALPN_h2: return "h2"; case ALPN_h3: return H3VERSION; default: return ""; /* bad */ } } static void altsvc_free(struct altsvc *as) |
︙ | ︙ | |||
184 185 186 187 188 189 190 | * handling to work completely. It will ignore individual syntactical errors * etc. */ static CURLcode altsvc_load(struct altsvcinfo *asi, const char *file) { CURLcode result = CURLE_OK; char *line = NULL; | > > > > > > > > > | > | 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 | * handling to work completely. It will ignore individual syntactical errors * etc. */ static CURLcode altsvc_load(struct altsvcinfo *asi, const char *file) { CURLcode result = CURLE_OK; char *line = NULL; FILE *fp; /* we need a private copy of the file name so that the altsvc cache file name survives an easy handle reset */ free(asi->filename); asi->filename = strdup(file); if(!asi->filename) return CURLE_OUT_OF_MEMORY; fp = fopen(file, FOPEN_READTEXT); if(fp) { line = malloc(MAX_ALTSVC_LINE); if(!line) goto fail; while(Curl_get_line(line, MAX_ALTSVC_LINE, fp)) { char *lineptr = line; while(*lineptr && ISBLANK(*lineptr)) lineptr++; if(*lineptr == '#') /* skip commented lines */ continue; altsvc_add(asi, lineptr); } free(line); /* free the line buffer */ fclose(fp); } return result; fail: Curl_safefree(asi->filename); free(line); fclose(fp); return CURLE_OUT_OF_MEMORY; } /* * Write this single altsvc entry to a single output line |
︙ | ︙ | |||
298 299 300 301 302 303 304 305 306 307 308 309 310 311 | struct curl_llist_element *n; if(altsvc) { for(e = altsvc->list.head; e; e = n) { struct altsvc *as = e->ptr; n = e->next; altsvc_free(as); } free(altsvc); } } /* * Curl_altsvc_save() writes the altsvc cache to a file. */ | > | > > > > > > > > > > > > > > > | | > | | | | | | | | | | | > > > > > > > > < | 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 | struct curl_llist_element *n; if(altsvc) { for(e = altsvc->list.head; e; e = n) { struct altsvc *as = e->ptr; n = e->next; altsvc_free(as); } free(altsvc->filename); free(altsvc); } } /* * Curl_altsvc_save() writes the altsvc cache to a file. */ CURLcode Curl_altsvc_save(struct Curl_easy *data, struct altsvcinfo *altsvc, const char *file) { struct curl_llist_element *e; struct curl_llist_element *n; CURLcode result = CURLE_OK; FILE *out; char *tempstore; unsigned char randsuffix[9]; if(!altsvc) /* no cache activated */ return CURLE_OK; /* if not new name is given, use the one we stored from the load */ if(!file && altsvc->filename) file = altsvc->filename; if((altsvc->flags & CURLALTSVC_READONLYFILE) || !file || !file[0]) /* marked as read-only, no file or zero length file name */ return CURLE_OK; if(Curl_rand_hex(data, randsuffix, sizeof(randsuffix))) return CURLE_FAILED_INIT; tempstore = aprintf("%s.%s.tmp", file, randsuffix); if(!tempstore) return CURLE_OUT_OF_MEMORY; out = fopen(tempstore, FOPEN_WRITETEXT); if(!out) result = CURLE_WRITE_ERROR; else { fputs("# Your alt-svc cache. https://curl.haxx.se/docs/alt-svc.html\n" "# This file was generated by libcurl! Edit at your own risk.\n", out); for(e = altsvc->list.head; e; e = n) { struct altsvc *as = e->ptr; n = e->next; result = altsvc_out(as, out); if(result) break; } fclose(out); if(!result && Curl_rename(tempstore, file)) result = CURLE_WRITE_ERROR; if(result) unlink(tempstore); } free(tempstore); return result; } static CURLcode getalnum(const char **ptr, char *alpnbuf, size_t buflen) { size_t len; const char *protop; const char *p = *ptr; while(*p && ISBLANK(*p)) p++; protop = p; while(*p && !ISBLANK(*p) && (*p != ';') && (*p != '=')) p++; len = p - protop; *ptr = p; if(!len || (len >= buflen)) return CURLE_BAD_FUNCTION_ARGUMENT; memcpy(alpnbuf, protop, len); alpnbuf[len] = 0; return CURLE_OK; } /* altsvc_flush() removes all alternatives for this source origin from the list */ static void altsvc_flush(struct altsvcinfo *asi, enum alpnid srcalpnid, const char *srchost, unsigned short srcport) |
︙ | ︙ | |||
398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 | /* * Curl_altsvc_parse() takes an incoming alt-svc response header and stores * the data correctly in the cache. * * 'value' points to the header *value*. That's contents to the right of the * header name. */ CURLcode Curl_altsvc_parse(struct Curl_easy *data, struct altsvcinfo *asi, const char *value, enum alpnid srcalpnid, const char *srchost, unsigned short srcport) { const char *p = value; size_t len; enum alpnid dstalpnid = srcalpnid; /* the same by default */ char namebuf[MAX_ALTSVC_HOSTLEN] = ""; char alpnbuf[MAX_ALTSVC_ALPNLEN] = ""; struct altsvc *as; unsigned short dstport = srcport; /* the same by default */ | > > > > < < < | > | > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > > > > > > > | | > > > | | | > < | > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | | | | | | | | | | > > > > > > > < | < > > | 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | /* * Curl_altsvc_parse() takes an incoming alt-svc response header and stores * the data correctly in the cache. * * 'value' points to the header *value*. That's contents to the right of the * header name. * * Currently this function rejects invalid data without returning an error. * Invalid host name, port number will result in the specific alternative * being rejected. Unknown protocols are skipped. */ CURLcode Curl_altsvc_parse(struct Curl_easy *data, struct altsvcinfo *asi, const char *value, enum alpnid srcalpnid, const char *srchost, unsigned short srcport) { const char *p = value; size_t len; enum alpnid dstalpnid = srcalpnid; /* the same by default */ char namebuf[MAX_ALTSVC_HOSTLEN] = ""; char alpnbuf[MAX_ALTSVC_ALPNLEN] = ""; struct altsvc *as; unsigned short dstport = srcport; /* the same by default */ CURLcode result = getalnum(&p, alpnbuf, sizeof(alpnbuf)); if(result) { infof(data, "Excessive alt-svc header, ignoring...\n"); return CURLE_OK; } DEBUGASSERT(asi); /* Flush all cached alternatives for this source origin, if any */ altsvc_flush(asi, srcalpnid, srchost, srcport); /* "clear" is a magic keyword */ if(strcasecompare(alpnbuf, "clear")) { return CURLE_OK; } do { if(*p == '=') { /* [protocol]="[host][:port]" */ dstalpnid = alpn2alpnid(alpnbuf); p++; if(*p == '\"') { const char *dsthost; const char *value_ptr; char option[32]; unsigned long num; char *end_ptr; bool quoted = FALSE; time_t maxage = 24 * 3600; /* default is 24 hours */ bool persist = FALSE; p++; if(*p != ':') { /* host name starts here */ const char *hostp = p; while(*p && (ISALNUM(*p) || (*p == '.') || (*p == '-'))) p++; len = p - hostp; if(!len || (len >= MAX_ALTSVC_HOSTLEN)) { infof(data, "Excessive alt-svc host name, ignoring...\n"); dstalpnid = ALPN_none; } else { memcpy(namebuf, hostp, len); namebuf[len] = 0; dsthost = namebuf; } } else { /* no destination name, use source host */ dsthost = srchost; } if(*p == ':') { /* a port number */ unsigned long port = strtoul(++p, &end_ptr, 10); if(port > USHRT_MAX || end_ptr == p || *end_ptr != '\"') { infof(data, "Unknown alt-svc port number, ignoring...\n"); dstalpnid = ALPN_none; } p = end_ptr; dstport = curlx_ultous(port); } if(*p++ != '\"') break; /* Handle the optional 'ma' and 'persist' flags. Unknown flags are skipped. */ for(;;) { while(*p && ISBLANK(*p) && *p != ';' && *p != ',') p++; if(!*p || *p == ',') break; p++; /* pass the semicolon */ if(!*p) break; result = getalnum(&p, option, sizeof(option)); if(result) { /* skip option if name is too long */ option[0] = '\0'; } while(*p && ISBLANK(*p)) p++; if(*p != '=') return CURLE_OK; p++; while(*p && ISBLANK(*p)) p++; if(!*p) return CURLE_OK; if(*p == '\"') { /* quoted value */ p++; quoted = TRUE; } value_ptr = p; if(quoted) { while(*p && *p != '\"') p++; if(!*p++) return CURLE_OK; } else { while(*p && !ISBLANK(*p) && *p!= ';' && *p != ',') p++; } num = strtoul(value_ptr, &end_ptr, 10); if((end_ptr != value_ptr) && (num < ULONG_MAX)) { if(strcasecompare("ma", option)) maxage = num; else if(strcasecompare("persist", option) && (num == 1)) persist = TRUE; } } if(dstalpnid) { as = altsvc_createid(srchost, dsthost, srcalpnid, dstalpnid, srcport, dstport); if(as) { /* The expires time also needs to take the Age: value (if any) into account. [See RFC 7838 section 3.1] */ as->expires = maxage + time(NULL); as->persist = persist; Curl_llist_insert_next(&asi->list, asi->list.tail, as, &as->node); asi->num++; /* one more entry */ infof(data, "Added alt-svc: %s:%d over %s\n", dsthost, dstport, Curl_alpnid2str(dstalpnid)); } } else { infof(data, "Unknown alt-svc protocol \"%s\", skipping...\n", alpnbuf); } } else break; /* after the double quote there can be a comma if there's another string or a semicolon if no more */ if(*p == ',') { /* comma means another alternative is presented */ p++; result = getalnum(&p, alpnbuf, sizeof(alpnbuf)); if(result) break; } } else break; } while(*p && (*p != ';') && (*p != '\n') && (*p != '\r')); return CURLE_OK; } /* * Return TRUE on a match |
︙ | ︙ |
Changes to jni/curl/lib/altsvc.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_ALTSVC_H #define HEADER_CURL_ALTSVC_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_ALTSVC_H #define HEADER_CURL_ALTSVC_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2019 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
55 56 57 58 59 60 61 | size_t num; /* number of alt-svc entries */ long flags; /* the publicly set bitmask */ }; const char *Curl_alpnid2str(enum alpnid id); struct altsvcinfo *Curl_altsvc_init(void); CURLcode Curl_altsvc_load(struct altsvcinfo *asi, const char *file); | | > | | | 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 | size_t num; /* number of alt-svc entries */ long flags; /* the publicly set bitmask */ }; const char *Curl_alpnid2str(enum alpnid id); struct altsvcinfo *Curl_altsvc_init(void); CURLcode Curl_altsvc_load(struct altsvcinfo *asi, const char *file); CURLcode Curl_altsvc_save(struct Curl_easy *data, struct altsvcinfo *asi, const char *file); CURLcode Curl_altsvc_ctrl(struct altsvcinfo *asi, const long ctrl); void Curl_altsvc_cleanup(struct altsvcinfo *altsvc); CURLcode Curl_altsvc_parse(struct Curl_easy *data, struct altsvcinfo *altsvc, const char *value, enum alpnid srcalpn, const char *srchost, unsigned short srcport); bool Curl_altsvc_lookup(struct altsvcinfo *asi, enum alpnid srcalpnid, const char *srchost, int srcport, struct altsvc **dstentry, const int versions); /* CURLALTSVC_H* bits */ #else /* disabled */ #define Curl_altsvc_save(a,b,c) #endif /* CURL_DISABLE_HTTP || USE_ALTSVC */ #endif /* HEADER_CURL_ALTSVC_H */ |
Changes to jni/curl/lib/asyn-ares.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
622 623 624 625 626 627 628 | Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { char *bufp; struct Curl_easy *data = conn->data; | < < < < < < < < < < < < < < < | 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 | Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { char *bufp; struct Curl_easy *data = conn->data; int family = PF_INET; *waitp = 0; /* default to synchronous response */ #ifdef ENABLE_IPV6 /* CURLRES_IPV6 */ switch(conn->ip_version) { default: #if ARES_VERSION >= 0x010601 family = PF_UNSPEC; /* supported by c-ares since 1.6.1, so for older c-ares versions this just falls through and defaults to PF_INET */ break; |
︙ | ︙ | |||
680 681 682 683 684 685 686 | } conn->async.os_specific = res; /* initial status - failed */ res->last_status = ARES_ENOTFOUND; #ifdef ENABLE_IPV6 /* CURLRES_IPV6 */ if(family == PF_UNSPEC) { | | | 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 | } conn->async.os_specific = res; /* initial status - failed */ res->last_status = ARES_ENOTFOUND; #ifdef ENABLE_IPV6 /* CURLRES_IPV6 */ if(family == PF_UNSPEC) { if(Curl_ipv6works(conn)) { res->num_pending = 2; /* areschannel is already setup in the Curl_open() function */ ares_gethostbyname((ares_channel)data->state.resolver, hostname, PF_INET, query_completed_cb, conn); ares_gethostbyname((ares_channel)data->state.resolver, hostname, PF_INET6, query_completed_cb, conn); |
︙ | ︙ |
Changes to jni/curl/lib/asyn-thread.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
67 68 69 70 71 72 73 | #include "sendf.h" #include "hostip.h" #include "hash.h" #include "share.h" #include "strerror.h" #include "url.h" #include "multiif.h" | < | 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #include "sendf.h" #include "hostip.h" #include "hash.h" #include "share.h" #include "strerror.h" #include "url.h" #include "multiif.h" #include "inet_ntop.h" #include "curl_threads.h" #include "connect.h" #include "socketpair.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" |
︙ | ︙ | |||
688 689 690 691 692 693 694 | * Curl_getaddrinfo() - for platforms without getaddrinfo */ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { | < < < < < < < < < < < < < < < | 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 | * Curl_getaddrinfo() - for platforms without getaddrinfo */ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { struct Curl_easy *data = conn->data; struct resdata *reslv = (struct resdata *)data->state.resolver; *waitp = 0; /* default to synchronous response */ reslv->start = Curl_now(); /* fire up a new resolver thread! */ if(init_resolve_thread(conn, hostname, port, NULL)) { *waitp = 1; /* expect asynchronous response */ return NULL; } |
︙ | ︙ | |||
732 733 734 735 736 737 738 | */ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { struct addrinfo hints; | < < < < < < < < < < < < < < < < < < < < | < < | 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 | */ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn, const char *hostname, int port, int *waitp) { struct addrinfo hints; int pf = PF_INET; struct Curl_easy *data = conn->data; struct resdata *reslv = (struct resdata *)data->state.resolver; *waitp = 0; /* default to synchronous response */ #ifdef CURLRES_IPV6 /* * Check if a limited name resolve has been requested. */ switch(conn->ip_version) { case CURL_IPRESOLVE_V4: pf = PF_INET; break; case CURL_IPRESOLVE_V6: pf = PF_INET6; break; default: pf = PF_UNSPEC; break; } if((pf != PF_INET) && !Curl_ipv6works(conn)) /* The stack seems to be a non-IPv6 one */ pf = PF_INET; #endif /* CURLRES_IPV6 */ memset(&hints, 0, sizeof(hints)); hints.ai_family = pf; hints.ai_socktype = (conn->transport == TRNSPRT_TCP)? SOCK_STREAM : SOCK_DGRAM; reslv->start = Curl_now(); /* fire up a new resolver thread! */ if(init_resolve_thread(conn, hostname, port, &hints)) { *waitp = 1; /* expect asynchronous response */ return NULL; } |
︙ | ︙ |
Changes to jni/curl/lib/config-dos.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_DOS_H #define HEADER_CURL_CONFIG_DOS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_DOS_H #define HEADER_CURL_CONFIG_DOS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
134 135 136 137 138 139 140 | #define HAVE_ZLIB_H 1 #define HAVE_LIBZ 1 #endif /* USE_OPENSSL on cmd-line */ #ifdef USE_OPENSSL #define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1 | < | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | #define HAVE_ZLIB_H 1 #define HAVE_LIBZ 1 #endif /* USE_OPENSSL on cmd-line */ #ifdef USE_OPENSSL #define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1 #define OPENSSL_NO_KRB5 1 #endif /* to disable LDAP */ #define CURL_DISABLE_LDAP 1 #define in_addr_t u_long |
︙ | ︙ |
Changes to jni/curl/lib/config-plan9.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_PLAN9_H #define HEADER_CURL_CONFIG_PLAN9_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_PLAN9_H #define HEADER_CURL_CONFIG_PLAN9_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
134 135 136 137 138 139 140 | #define HAVE_NETINET_IN_H 1 #define HAVE_NETINET_TCP_H 1 #define HAVE_PWD_H 1 #define HAVE_SYS_SELECT_H 1 #define USE_OPENSSL 1 #define HAVE_OPENSSL_CRYPTO_H 1 | < | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | #define HAVE_NETINET_IN_H 1 #define HAVE_NETINET_TCP_H 1 #define HAVE_PWD_H 1 #define HAVE_SYS_SELECT_H 1 #define USE_OPENSSL 1 #define HAVE_OPENSSL_CRYPTO_H 1 #define HAVE_OPENSSL_ERR_H 1 #define HAVE_OPENSSL_PEM_H 1 #define HAVE_OPENSSL_PKCS12_H 1 #define HAVE_OPENSSL_RSA_H 1 #define HAVE_OPENSSL_SSL_H 1 #define HAVE_OPENSSL_X509_H 1 |
︙ | ︙ |
Changes to jni/curl/lib/config-symbian.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_SYMBIAN_H #define HEADER_CURL_CONFIG_SYMBIAN_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_SYMBIAN_H #define HEADER_CURL_CONFIG_SYMBIAN_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
354 355 356 357 358 359 360 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ /* #undef HAVE_OLD_GSSMIT */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ /*#define HAVE_OPENSSL_CRYPTO_H 1*/ | < < < | 354 355 356 357 358 359 360 361 362 363 364 365 366 367 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ /* #undef HAVE_OLD_GSSMIT */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ /*#define HAVE_OPENSSL_CRYPTO_H 1*/ /* Define to 1 if you have the <openssl/err.h> header file. */ /*#define HAVE_OPENSSL_ERR_H 1*/ /* Define to 1 if you have the <openssl/pem.h> header file. */ /*#define HAVE_OPENSSL_PEM_H 1*/ /* Define to 1 if you have the <openssl/pkcs12.h> header file. */ |
︙ | ︙ |
Changes to jni/curl/lib/config-tpf.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_TPF_H #define HEADER_CURL_CONFIG_TPF_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_TPF_H #define HEADER_CURL_CONFIG_TPF_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
312 313 314 315 316 317 318 | /* we have no strerror_r() proto */ /* #undef HAVE_NO_STRERROR_R_DECL */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ /* #undef HAVE_OPENSSL_CRYPTO_H */ #define HAVE_OPENSSL_CRYPTO_H 1 | < < < < | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | /* we have no strerror_r() proto */ /* #undef HAVE_NO_STRERROR_R_DECL */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ /* #undef HAVE_OPENSSL_CRYPTO_H */ #define HAVE_OPENSSL_CRYPTO_H 1 /* Define to 1 if you have the <openssl/err.h> header file. */ /* #undef HAVE_OPENSSL_ERR_H */ #define HAVE_OPENSSL_ERR_H 1 /* Define to 1 if you have the <openssl/pem.h> header file. */ /* #undef HAVE_OPENSSL_PEM_H */ #define HAVE_OPENSSL_PEM_H 1 |
︙ | ︙ |
Changes to jni/curl/lib/config-vxworks.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_VXWORKS_H #define HEADER_CURL_CONFIG_VXWORKS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_VXWORKS_H #define HEADER_CURL_CONFIG_VXWORKS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
414 415 416 417 418 419 420 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ /* #undef HAVE_OLD_GSSMIT */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ #define HAVE_OPENSSL_CRYPTO_H 1 | < < < | 414 415 416 417 418 419 420 421 422 423 424 425 426 427 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ /* #undef HAVE_OLD_GSSMIT */ /* Define to 1 if you have the <openssl/crypto.h> header file. */ #define HAVE_OPENSSL_CRYPTO_H 1 /* Define to 1 if you have the <openssl/err.h> header file. */ #define HAVE_OPENSSL_ERR_H 1 /* Define to 1 if you have the <openssl/pem.h> header file. */ #define HAVE_OPENSSL_PEM_H 1 /* Define to 1 if you have the <openssl/pkcs12.h> header file. */ |
︙ | ︙ |
Changes to jni/curl/lib/config-win32.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONFIG_WIN32_H #define HEADER_CURL_CONFIG_WIN32_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONFIG_WIN32_H #define HEADER_CURL_CONFIG_WIN32_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 | #endif #if defined(__POCC__) && defined(USE_WIN32_LDAP) # define CURL_DISABLE_LDAP 1 #endif /* Define to use the Windows crypto library. */ #define USE_WIN32_CRYPTO /* Define to use Unix sockets. */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) /* sdkddkver.h first shipped with Platform SDK v6.0A included with VS2008 */ #include <sdkddkver.h> #if defined(NTDDI_WIN10_RS4) #define USE_UNIX_SOCKETS | > > | 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | #endif #if defined(__POCC__) && defined(USE_WIN32_LDAP) # define CURL_DISABLE_LDAP 1 #endif /* Define to use the Windows crypto library. */ #if !defined(CURL_WINDOWS_APP) #define USE_WIN32_CRYPTO #endif /* Define to use Unix sockets. */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) /* sdkddkver.h first shipped with Platform SDK v6.0A included with VS2008 */ #include <sdkddkver.h> #if defined(NTDDI_WIN10_RS4) #define USE_UNIX_SOCKETS |
︙ | ︙ |
Changes to jni/curl/lib/conncache.c.
1 2 3 4 5 6 7 8 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2016, Linus Nielsen Feltzing, <linus@haxx.se> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2016, Linus Nielsen Feltzing, <linus@haxx.se> * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
175 176 177 178 179 180 181 | size_t num; CONN_LOCK(data); num = data->state.conn_cache->num_conn; CONN_UNLOCK(data); return num; } | < < < < < < < < < < < < | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | size_t num; CONN_LOCK(data); num = data->state.conn_cache->num_conn; CONN_UNLOCK(data); return num; } /* Look up the bundle with all the connections to the same host this connectdata struct is setup to use. **NOTE**: When it returns, it holds the connection cache lock! */ struct connectbundle *Curl_conncache_find_bundle(struct connectdata *conn, struct conncache *connc, const char **hostp) |
︙ | ︙ |
Changes to jni/curl/lib/conncache.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_CONNCACHE_H #define HEADER_CURL_CONNCACHE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_CONNCACHE_H #define HEADER_CURL_CONNCACHE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2015 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2012 - 2014, Linus Nielsen Feltzing, <linus@haxx.se> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell |
︙ | ︙ | |||
76 77 78 79 80 81 82 | /* return the correct bundle, to a host or a proxy */ struct connectbundle *Curl_conncache_find_bundle(struct connectdata *conn, struct conncache *connc, const char **hostp); void Curl_conncache_unlock(struct Curl_easy *data); /* returns number of connections currently held in the connection cache */ size_t Curl_conncache_size(struct Curl_easy *data); | < | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /* return the correct bundle, to a host or a proxy */ struct connectbundle *Curl_conncache_find_bundle(struct connectdata *conn, struct conncache *connc, const char **hostp); void Curl_conncache_unlock(struct Curl_easy *data); /* returns number of connections currently held in the connection cache */ size_t Curl_conncache_size(struct Curl_easy *data); bool Curl_conncache_return_conn(struct Curl_easy *data, struct connectdata *conn); CURLcode Curl_conncache_add_conn(struct conncache *connc, struct connectdata *conn) WARN_UNUSED_RESULT; void Curl_conncache_remove_conn(struct Curl_easy *data, struct connectdata *conn, |
︙ | ︙ |
Changes to jni/curl/lib/connect.c.
︙ | ︙ | |||
741 742 743 744 745 746 747 | (void)sockfd; /* unused */ #endif /* persist connection info in session handle */ Curl_persistconninfo(conn); } | | | > | > | > | | | | | > | | | | < | | < > > > > > > > > > > > > > > > > > > > | 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 | (void)sockfd; /* unused */ #endif /* persist connection info in session handle */ Curl_persistconninfo(conn); } /* After a TCP connection to the proxy has been verified, this function does the next magic steps. If 'done' isn't set TRUE, it is not done yet and must be called again. Note: this function's sub-functions call failf() */ static CURLcode connect_SOCKS(struct connectdata *conn, int sockindex, bool *done) { CURLcode result = CURLE_OK; if(conn->bits.socksproxy) { #ifndef CURL_DISABLE_PROXY /* for the secondary socket (FTP), use the "connect to host" * but ignore the "connect to port" (use the secondary port) */ const char * const host = conn->bits.httpproxy ? conn->http_proxy.host.name : conn->bits.conn_to_host ? conn->conn_to_host.name : sockindex == SECONDARYSOCKET ? conn->secondaryhostname : conn->host.name; const int port = conn->bits.httpproxy ? (int)conn->http_proxy.port : sockindex == SECONDARYSOCKET ? conn->secondary_port : conn->bits.conn_to_port ? conn->conn_to_port : conn->remote_port; switch(conn->socks_proxy.proxytype) { case CURLPROXY_SOCKS5: case CURLPROXY_SOCKS5_HOSTNAME: result = Curl_SOCKS5(conn->socks_proxy.user, conn->socks_proxy.passwd, host, port, sockindex, conn, done); break; case CURLPROXY_SOCKS4: case CURLPROXY_SOCKS4A: result = Curl_SOCKS4(conn->socks_proxy.user, host, port, sockindex, conn, done); break; default: failf(conn->data, "unknown proxytype option given"); result = CURLE_COULDNT_CONNECT; } /* switch proxytype */ #else (void)sockindex; #endif /* CURL_DISABLE_PROXY */ } else *done = TRUE; /* no SOCKS proxy, so consider us connected */ return result; } /* * post_SOCKS() is called after a successful connect to the peer, which * *could* be a SOCKS proxy */ static void post_SOCKS(struct connectdata *conn, int sockindex, bool *connected) { conn->bits.tcpconnect[sockindex] = TRUE; *connected = TRUE; if(sockindex == FIRSTSOCKET) Curl_pgrsTime(conn->data, TIMER_CONNECT); /* connect done */ Curl_updateconninfo(conn, conn->sock[sockindex]); Curl_verboseconnect(conn); } /* * Curl_is_connected() checks if the socket has connected. */ CURLcode Curl_is_connected(struct connectdata *conn, int sockindex, |
︙ | ︙ | |||
829 830 831 832 833 834 835 836 837 838 839 840 841 842 | allow = Curl_timeleft(data, &now, TRUE); if(allow < 0) { /* time-out, bail out, go home */ failf(data, "Connection time-out"); return CURLE_OPERATION_TIMEDOUT; } for(i = 0; i<2; i++) { const int other = i ^ 1; if(conn->tempsock[i] == CURL_SOCKET_BAD) continue; #ifdef ENABLE_QUIC | > > > > > > > > | 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 | allow = Curl_timeleft(data, &now, TRUE); if(allow < 0) { /* time-out, bail out, go home */ failf(data, "Connection time-out"); return CURLE_OPERATION_TIMEDOUT; } if(SOCKS_STATE(conn->cnnct.state)) { /* still doing SOCKS */ result = connect_SOCKS(conn, sockindex, connected); if(!result && *connected) post_SOCKS(conn, sockindex, connected); return result; } for(i = 0; i<2; i++) { const int other = i ^ 1; if(conn->tempsock[i] == CURL_SOCKET_BAD) continue; #ifdef ENABLE_QUIC |
︙ | ︙ | |||
896 897 898 899 900 901 902 | /* close the other socket, if open */ if(conn->tempsock[other] != CURL_SOCKET_BAD) { Curl_closesocket(conn, conn->tempsock[other]); conn->tempsock[other] = CURL_SOCKET_BAD; } | | > | | < | < < < < < | 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 | /* close the other socket, if open */ if(conn->tempsock[other] != CURL_SOCKET_BAD) { Curl_closesocket(conn, conn->tempsock[other]); conn->tempsock[other] = CURL_SOCKET_BAD; } /* see if we need to kick off any SOCKS proxy magic once we connected */ result = connect_SOCKS(conn, sockindex, connected); if(result || !*connected) return result; post_SOCKS(conn, sockindex, connected); return CURLE_OK; } infof(data, "Connection failed\n"); } else if(rc & CURL_CSELECT_ERR) (void)verifyconnect(conn->tempsock[i], &error); |
︙ | ︙ | |||
1003 1004 1005 1006 1007 1008 1009 | (void) conn; #endif if(setsockopt(sockfd, level, TCP_NODELAY, (void *)&onoff, sizeof(onoff)) < 0) infof(data, "Could not set TCP_NODELAY: %s\n", Curl_strerror(SOCKERRNO, buffer, sizeof(buffer))); | < < | 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 | (void) conn; #endif if(setsockopt(sockfd, level, TCP_NODELAY, (void *)&onoff, sizeof(onoff)) < 0) infof(data, "Could not set TCP_NODELAY: %s\n", Curl_strerror(SOCKERRNO, buffer, sizeof(buffer))); #else (void)conn; (void)sockfd; #endif } #ifdef SO_NOSIGPIPE |
︙ | ︙ | |||
1212 1213 1214 1215 1216 1217 1218 | # else rc = connect(sockfd, &addr.sa_addr, addr.addrlen); # endif /* HAVE_BUILTIN_AVAILABLE */ #elif defined(TCP_FASTOPEN_CONNECT) /* Linux >= 4.11 */ if(setsockopt(sockfd, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, (void *)&optval, sizeof(optval)) < 0) infof(data, "Failed to enable TCP Fast Open on fd %d\n", sockfd); | < < | 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 | # else rc = connect(sockfd, &addr.sa_addr, addr.addrlen); # endif /* HAVE_BUILTIN_AVAILABLE */ #elif defined(TCP_FASTOPEN_CONNECT) /* Linux >= 4.11 */ if(setsockopt(sockfd, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, (void *)&optval, sizeof(optval)) < 0) infof(data, "Failed to enable TCP Fast Open on fd %d\n", sockfd); rc = connect(sockfd, &addr.sa_addr, addr.addrlen); #elif defined(MSG_FASTOPEN) /* old Linux */ if(conn->given->flags & PROTOPT_SSL) rc = connect(sockfd, &addr.sa_addr, addr.addrlen); else rc = 0; /* Do nothing */ |
︙ | ︙ | |||
1424 1425 1426 1427 1428 1429 1430 | * * 'conn' can be NULL, beware! */ int Curl_closesocket(struct connectdata *conn, curl_socket_t sock) { if(conn && conn->fclosesocket) { | | < | | 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 | * * 'conn' can be NULL, beware! */ int Curl_closesocket(struct connectdata *conn, curl_socket_t sock) { if(conn && conn->fclosesocket) { if((sock == conn->sock[SECONDARYSOCKET]) && conn->sock_accepted) /* if this socket matches the second socket, and that was created with accept, then we MUST NOT call the callback but clear the accepted status */ conn->sock_accepted = FALSE; else { int rc; Curl_multi_closed(conn->data, sock); Curl_set_in_callback(conn->data, true); rc = conn->fclosesocket(conn->closesocket_client, sock); Curl_set_in_callback(conn->data, false); return rc; |
︙ | ︙ |
Changes to jni/curl/lib/cookie.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #include "share.h" #include "strtoofft.h" #include "strcase.h" #include "curl_get_line.h" #include "curl_memrchr.h" #include "inet_pton.h" #include "parsedate.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" static void freecookie(struct Cookie *co) | > > | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #include "share.h" #include "strtoofft.h" #include "strcase.h" #include "curl_get_line.h" #include "curl_memrchr.h" #include "inet_pton.h" #include "parsedate.h" #include "rand.h" #include "rename.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" static void freecookie(struct Cookie *co) |
︙ | ︙ | |||
533 534 535 536 537 538 539 | /* * Check if we have a reserved prefix set before anything else, as we * otherwise have to test for the prefix in both the cookie name and * "the rest". Prefixes must start with '__' and end with a '-', so * only test for names where that can possibly be true. */ if(nlen > 3 && name[0] == '_' && name[1] == '_') { | | | | 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 | /* * Check if we have a reserved prefix set before anything else, as we * otherwise have to test for the prefix in both the cookie name and * "the rest". Prefixes must start with '__' and end with a '-', so * only test for names where that can possibly be true. */ if(nlen > 3 && name[0] == '_' && name[1] == '_') { if(!strncmp("__Secure-", name, 9)) co->prefix |= COOKIE_PREFIX__SECURE; else if(!strncmp("__Host-", name, 7)) co->prefix |= COOKIE_PREFIX__HOST; } if(!co->name) { /* The very first name/value pair is the actual cookie name */ if(!sep) { /* Bad name/value pair. */ |
︙ | ︙ | |||
1042 1043 1044 1045 1046 1047 1048 | free(clist->spath); free(clist->expirestr); free(clist->version); free(clist->maxage); *clist = *co; /* then store all the new data */ | | | 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 | free(clist->spath); free(clist->expirestr); free(clist->version); free(clist->maxage); *clist = *co; /* then store all the new data */ free(co); /* free the newly allocated memory */ co = clist; /* point to the previous struct instead */ /* We have replaced a cookie, now skip the rest of the list but make sure the 'lastc' pointer is properly set */ do { lastc = clist; clist = clist->next; |
︙ | ︙ | |||
1497 1498 1499 1500 1501 1502 1503 | * cookie_output() * * Writes all internally known cookies to the specified file. Specify * "-" as file name to write to stdout. * * The function returns non-zero on write failure. */ | | > | > > | > | > > | > > | | > > > < < | < < | > | > > > > | > > > > > > > > > | | 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 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 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 | * cookie_output() * * Writes all internally known cookies to the specified file. Specify * "-" as file name to write to stdout. * * The function returns non-zero on write failure. */ static int cookie_output(struct Curl_easy *data, struct CookieInfo *c, const char *filename) { struct Cookie *co; FILE *out = NULL; bool use_stdout = FALSE; char *tempstore = NULL; bool error = false; if(!c) /* no cookie engine alive */ return 0; /* at first, remove expired cookies */ remove_expired(c); if(!strcmp("-", filename)) { /* use stdout */ out = stdout; use_stdout = TRUE; } else { unsigned char randsuffix[9]; if(Curl_rand_hex(data, randsuffix, sizeof(randsuffix))) return 2; tempstore = aprintf("%s.%s.tmp", filename, randsuffix); if(!tempstore) return 1; out = fopen(tempstore, FOPEN_WRITETEXT); if(!out) goto error; } fputs("# Netscape HTTP Cookie File\n" "# https://curl.haxx.se/docs/http-cookies.html\n" "# This file was generated by libcurl! Edit at your own risk.\n\n", out); if(c->numcookies) { unsigned int i; size_t nvalid = 0; struct Cookie **array; array = calloc(1, sizeof(struct Cookie *) * c->numcookies); if(!array) { goto error; } /* only sort the cookies with a domain property */ for(i = 0; i < COOKIE_HASH_SIZE; i++) { for(co = c->cookies[i]; co; co = co->next) { if(!co->domain) continue; array[nvalid++] = co; } } qsort(array, nvalid, sizeof(struct Cookie *), cookie_sort_ct); for(i = 0; i < nvalid; i++) { char *format_ptr = get_netscape_format(array[i]); if(format_ptr == NULL) { fprintf(out, "#\n# Fatal libcurl error\n"); free(array); goto error; } fprintf(out, "%s\n", format_ptr); free(format_ptr); } free(array); } if(!use_stdout) { fclose(out); out = NULL; if(Curl_rename(tempstore, filename)) { unlink(tempstore); goto error; } } goto cleanup; error: error = true; cleanup: if(out && !use_stdout) fclose(out); free(tempstore); return error ? 1 : 0; } static struct curl_slist *cookie_list(struct Curl_easy *data) { struct curl_slist *list = NULL; struct curl_slist *beg; struct Cookie *c; |
︙ | ︙ | |||
1627 1628 1629 1630 1631 1632 1633 | Curl_cookie_loadfiles() LOCKS and UNLOCKS the share itself! */ Curl_cookie_loadfiles(data); } Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE); /* if we have a destination file for all the cookies to get dumped to */ | | | 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 | Curl_cookie_loadfiles() LOCKS and UNLOCKS the share itself! */ Curl_cookie_loadfiles(data); } Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE); /* if we have a destination file for all the cookies to get dumped to */ if(cookie_output(data, data->cookies, data->set.str[STRING_COOKIEJAR])) infof(data, "WARNING: failed to save cookies in %s\n", data->set.str[STRING_COOKIEJAR]); } else { if(cleanup && data->change.cookielist) { /* since nothing is written, we can just free the list of cookie file names */ |
︙ | ︙ |
Changes to jni/curl/lib/curl_config.h.cmake.
︙ | ︙ | |||
68 69 70 71 72 73 74 75 76 77 78 79 80 81 | /* to make a symbol visible */ #cmakedefine CURL_EXTERN_SYMBOL ${CURL_EXTERN_SYMBOL} /* Ensure using CURL_EXTERN_SYMBOL is possible */ #ifndef CURL_EXTERN_SYMBOL #define CURL_EXTERN_SYMBOL #endif /* Use Windows LDAP implementation */ #cmakedefine USE_WIN32_LDAP 1 /* when not building a shared library */ #cmakedefine CURL_STATICLIB 1 | > > > | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | /* to make a symbol visible */ #cmakedefine CURL_EXTERN_SYMBOL ${CURL_EXTERN_SYMBOL} /* Ensure using CURL_EXTERN_SYMBOL is possible */ #ifndef CURL_EXTERN_SYMBOL #define CURL_EXTERN_SYMBOL #endif /* Allow SMB to work on Windows */ #cmakedefine USE_WIN32_CRYPTO /* Use Windows LDAP implementation */ #cmakedefine USE_WIN32_LDAP 1 /* when not building a shared library */ #cmakedefine CURL_STATICLIB 1 |
︙ | ︙ | |||
448 449 450 451 452 453 454 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ #cmakedefine HAVE_OLD_GSSMIT 1 /* Define to 1 if you have the <openssl/crypto.h> header file. */ #cmakedefine HAVE_OPENSSL_CRYPTO_H 1 | < < < | 451 452 453 454 455 456 457 458 459 460 461 462 463 464 | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE */ #cmakedefine HAVE_OLD_GSSMIT 1 /* Define to 1 if you have the <openssl/crypto.h> header file. */ #cmakedefine HAVE_OPENSSL_CRYPTO_H 1 /* Define to 1 if you have the <openssl/err.h> header file. */ #cmakedefine HAVE_OPENSSL_ERR_H 1 /* Define to 1 if you have the <openssl/pem.h> header file. */ #cmakedefine HAVE_OPENSSL_PEM_H 1 /* Define to 1 if you have the <openssl/pkcs12.h> header file. */ |
︙ | ︙ | |||
932 933 934 935 936 937 938 | /* Define to disable non-blocking sockets. */ #cmakedefine USE_BLOCKING_SOCKETS 1 /* if GnuTLS is enabled */ #cmakedefine USE_GNUTLS 1 | < < < | 932 933 934 935 936 937 938 939 940 941 942 943 944 945 | /* Define to disable non-blocking sockets. */ #cmakedefine USE_BLOCKING_SOCKETS 1 /* if GnuTLS is enabled */ #cmakedefine USE_GNUTLS 1 /* if Secure Transport is enabled */ #cmakedefine USE_SECTRANSP 1 /* if mbedTLS is enabled */ #cmakedefine USE_MBEDTLS 1 /* if BearSSL is enabled */ |
︙ | ︙ |
Changes to jni/curl/lib/curl_config.h.in.
︙ | ︙ | |||
430 431 432 433 434 435 436 437 438 439 440 441 442 443 | #undef HAVE_LIBSSH2_H /* Define to 1 if you have the <libssh/libssh.h> header file. */ #undef HAVE_LIBSSH_LIBSSH_H /* Define to 1 if you have the `ssl' library (-lssl). */ #undef HAVE_LIBSSL /* if zlib is available */ #undef HAVE_LIBZ /* Define to 1 if you have the <linux/tcp.h> header file. */ #undef HAVE_LINUX_TCP_H | > > > | 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | #undef HAVE_LIBSSH2_H /* Define to 1 if you have the <libssh/libssh.h> header file. */ #undef HAVE_LIBSSH_LIBSSH_H /* Define to 1 if you have the `ssl' library (-lssl). */ #undef HAVE_LIBSSL /* Define to 1 if you have the `wolfssh' library (-lwolfssh). */ #undef HAVE_LIBWOLFSSH /* if zlib is available */ #undef HAVE_LIBZ /* Define to 1 if you have the <linux/tcp.h> header file. */ #undef HAVE_LINUX_TCP_H |
︙ | ︙ | |||
782 783 784 785 786 787 788 789 790 791 792 793 794 795 | #undef HAVE_WINLDAP_H /* Define to 1 if you have the winsock2.h header file. */ #undef HAVE_WINSOCK2_H /* Define to 1 if you have the winsock.h header file. */ #undef HAVE_WINSOCK_H /* Define to 1 if you have the `wolfSSLv3_client_method' function. */ #undef HAVE_WOLFSSLV3_CLIENT_METHOD /* Define to 1 if you have the `wolfSSL_get_peer_certificate' function. */ #undef HAVE_WOLFSSL_GET_PEER_CERTIFICATE | > > > | 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 | #undef HAVE_WINLDAP_H /* Define to 1 if you have the winsock2.h header file. */ #undef HAVE_WINSOCK2_H /* Define to 1 if you have the winsock.h header file. */ #undef HAVE_WINSOCK_H /* Define to 1 if you have the <wolfssh/ssh.h> header file. */ #undef HAVE_WOLFSSH_SSH_H /* Define to 1 if you have the `wolfSSLv3_client_method' function. */ #undef HAVE_WOLFSSLV3_CLIENT_METHOD /* Define to 1 if you have the `wolfSSL_get_peer_certificate' function. */ #undef HAVE_WOLFSSL_GET_PEER_CERTIFICATE |
︙ | ︙ | |||
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 | /* Define to 1 if you are building a Windows target without large file support. */ #undef USE_WIN32_SMALL_FILES /* to enable SSPI support */ #undef USE_WINDOWS_SSPI /* if wolfSSL is enabled */ #undef USE_WOLFSSL /* Version number of package */ #undef VERSION | > > > | 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 | /* Define to 1 if you are building a Windows target without large file support. */ #undef USE_WIN32_SMALL_FILES /* to enable SSPI support */ #undef USE_WINDOWS_SSPI /* if wolfSSH is in use */ #undef USE_WOLFSSH /* if wolfSSL is enabled */ #undef USE_WOLFSSL /* Version number of package */ #undef VERSION |
︙ | ︙ |
Changes to jni/curl/lib/curl_hmac.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_HMAC_H #define HEADER_CURL_HMAC_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > > | 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 | #ifndef HEADER_CURL_HMAC_H #define HEADER_CURL_HMAC_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #ifndef CURL_DISABLE_CRYPTO_AUTH #define HMAC_MD5_LENGTH 16 typedef void (* HMAC_hinit_func)(void *context); typedef void (* HMAC_hupdate_func)(void *context, const unsigned char *data, unsigned int len); typedef void (* HMAC_hfinal_func)(unsigned char *result, void *context); |
︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 | HMAC_context * Curl_HMAC_init(const HMAC_params *hashparams, const unsigned char *key, unsigned int keylen); int Curl_HMAC_update(HMAC_context *context, const unsigned char *data, unsigned int len); int Curl_HMAC_final(HMAC_context *context, unsigned char *result); #endif #endif /* HEADER_CURL_HMAC_H */ | > > > > > | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | HMAC_context * Curl_HMAC_init(const HMAC_params *hashparams, const unsigned char *key, unsigned int keylen); int Curl_HMAC_update(HMAC_context *context, const unsigned char *data, unsigned int len); int Curl_HMAC_final(HMAC_context *context, unsigned char *result); CURLcode Curl_hmacit(const HMAC_params *hashparams, const unsigned char *key, const size_t keylen, const unsigned char *data, const size_t datalen, unsigned char *output); #endif #endif /* HEADER_CURL_HMAC_H */ |
Changes to jni/curl/lib/curl_md4.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_MD4_H #define HEADER_CURL_MD4_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | > | 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 | #ifndef HEADER_CURL_MD4_H #define HEADER_CURL_MD4_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #if !defined(CURL_DISABLE_CRYPTO_AUTH) #define MD4_DIGEST_LENGTH 16 void Curl_md4it(unsigned char *output, const unsigned char *input, const size_t len); #endif /* !defined(CURL_DISABLE_CRYPTO_AUTH) */ #endif /* HEADER_CURL_MD4_H */ |
Changes to jni/curl/lib/curl_md5.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_MD5_H #define HEADER_CURL_MD5_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_MD5_H #define HEADER_CURL_MD5_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
45 46 47 48 49 50 51 | const MD5_params *md5_hash; /* Hash function definition */ void *md5_hashctx; /* Hash function context */ } MD5_context; extern const MD5_params Curl_DIGEST_MD5[1]; extern const HMAC_params Curl_HMAC_MD5[1]; | | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | const MD5_params *md5_hash; /* Hash function definition */ void *md5_hashctx; /* Hash function context */ } MD5_context; extern const MD5_params Curl_DIGEST_MD5[1]; extern const HMAC_params Curl_HMAC_MD5[1]; void Curl_md5it(unsigned char *output, const unsigned char *input, const size_t len); MD5_context * Curl_MD5_init(const MD5_params *md5params); CURLcode Curl_MD5_update(MD5_context *context, const unsigned char *data, unsigned int len); CURLcode Curl_MD5_final(MD5_context *context, unsigned char *result); #endif #endif /* HEADER_CURL_MD5_H */ |
Changes to jni/curl/lib/curl_ntlm_core.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
116 117 118 119 120 121 122 | #include "curl_des.h" #include "curl_md4.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" | < | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #include "curl_des.h" #include "curl_md4.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #define NTLMv2_BLOB_SIGNATURE "\x01\x01\x00\x00" #define NTLMv2_BLOB_LEN (44 -16 + ntlm->target_info_len + 4) /* * Turns a 56-bit key into being 64-bit wide. */ static void extend_key_56_to_64(const unsigned char *key_56, char *key) |
︙ | ︙ | |||
563 564 565 566 567 568 569 | free(pw); return CURLE_OK; } #if defined(USE_NTLM_V2) && !defined(USE_WINDOWS_SSPI) | < < < < < < < < < < < < < < < < < < < | 562 563 564 565 566 567 568 569 570 571 572 573 574 575 | free(pw); return CURLE_OK; } #if defined(USE_NTLM_V2) && !defined(USE_WINDOWS_SSPI) /* This creates the NTLMv2 hash by using NTLM hash as the key and Unicode * (uppercase UserName + Domain) as the data */ CURLcode Curl_ntlm_core_mk_ntlmv2_hash(const char *user, size_t userlen, const char *domain, size_t domlen, unsigned char *ntlmhash, unsigned char *ntlmv2hash) |
︙ | ︙ | |||
611 612 613 614 615 616 617 | if(!identity) return CURLE_OUT_OF_MEMORY; ascii_uppercase_to_unicode_le(identity, user, userlen); ascii_to_unicode_le(identity + (userlen << 1), domain, domlen); | | | | 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | if(!identity) return CURLE_OUT_OF_MEMORY; ascii_uppercase_to_unicode_le(identity, user, userlen); ascii_to_unicode_le(identity + (userlen << 1), domain, domlen); result = Curl_hmacit(Curl_HMAC_MD5, ntlmhash, 16, identity, identity_len, ntlmv2hash); free(identity); return result; } /* * Curl_ntlm_core_mk_ntlmv2_resp() |
︙ | ︙ | |||
658 659 660 661 662 663 664 | 44 Target Info N bytes (from the type-2 message) 44+N Unknown 4 bytes ------------------------------------------------------------------------------ */ unsigned int len = 0; unsigned char *ptr = NULL; | | | | | | | 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 | 44 Target Info N bytes (from the type-2 message) 44+N Unknown 4 bytes ------------------------------------------------------------------------------ */ unsigned int len = 0; unsigned char *ptr = NULL; unsigned char hmac_output[HMAC_MD5_LENGTH]; curl_off_t tw; CURLcode result = CURLE_OK; #if CURL_SIZEOF_CURL_OFF_T < 8 #error "this section needs 64bit support to work" #endif /* Calculate the timestamp */ #ifdef DEBUGBUILD char *force_timestamp = getenv("CURL_FORCETIME"); if(force_timestamp) tw = CURL_OFF_T_C(11644473600) * 10000000; else #endif tw = ((curl_off_t)time(NULL) + CURL_OFF_T_C(11644473600)) * 10000000; /* Calculate the response len */ len = HMAC_MD5_LENGTH + NTLMv2_BLOB_LEN; /* Allocate the response */ ptr = calloc(1, len); if(!ptr) return CURLE_OUT_OF_MEMORY; /* Create the BLOB structure */ msnprintf((char *)ptr + HMAC_MD5_LENGTH, NTLMv2_BLOB_LEN, "%c%c%c%c" /* NTLMv2_BLOB_SIGNATURE */ "%c%c%c%c", /* Reserved = 0 */ NTLMv2_BLOB_SIGNATURE[0], NTLMv2_BLOB_SIGNATURE[1], NTLMv2_BLOB_SIGNATURE[2], NTLMv2_BLOB_SIGNATURE[3], 0, 0, 0, 0); Curl_write64_le(tw, ptr + 24); memcpy(ptr + 32, challenge_client, 8); memcpy(ptr + 44, ntlm->target_info, ntlm->target_info_len); /* Concatenate the Type 2 challenge with the BLOB and do HMAC MD5 */ memcpy(ptr + 8, &ntlm->nonce[0], 8); result = Curl_hmacit(Curl_HMAC_MD5, ntlmv2hash, HMAC_MD5_LENGTH, ptr + 8, NTLMv2_BLOB_LEN + 8, hmac_output); if(result) { free(ptr); return result; } /* Concatenate the HMAC MD5 output with the BLOB */ memcpy(ptr, hmac_output, HMAC_MD5_LENGTH); /* Return the response */ *ntresp = ptr; *ntresp_len = len; return result; } |
︙ | ︙ | |||
741 742 743 744 745 746 747 | unsigned char data[16]; unsigned char hmac_output[16]; CURLcode result = CURLE_OK; memcpy(&data[0], challenge_server, 8); memcpy(&data[8], challenge_client, 8); | | > | 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 | unsigned char data[16]; unsigned char hmac_output[16]; CURLcode result = CURLE_OK; memcpy(&data[0], challenge_server, 8); memcpy(&data[8], challenge_client, 8); result = Curl_hmacit(Curl_HMAC_MD5, ntlmv2hash, 16, &data[0], 16, hmac_output); if(result) return result; /* Concatenate the HMAC MD5 output with the client nonce */ memcpy(lmresp, hmac_output, 16); memcpy(lmresp + 16, challenge_client, 8); |
︙ | ︙ |
Changes to jni/curl/lib/curl_ntlm_core.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_NTLM_CORE_H #define HEADER_CURL_NTLM_CORE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_NTLM_CORE_H #define HEADER_CURL_NTLM_CORE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
42 43 44 45 46 47 48 | #endif /* Define USE_NTRESPONSES in order to make the type-3 message include * the NT response message. */ #define USE_NTRESPONSES /* Define USE_NTLM2SESSION in order to make the type-3 message include the | | | | < < | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #endif /* Define USE_NTRESPONSES in order to make the type-3 message include * the NT response message. */ #define USE_NTRESPONSES /* Define USE_NTLM2SESSION in order to make the type-3 message include the NTLM2Session response message, requires USE_NTRESPONSES defined to 1 and MD5 support */ #if defined(USE_NTRESPONSES) && !defined(CURL_DISABLE_CRYPTO_AUTH) #define USE_NTLM2SESSION #endif /* Define USE_NTLM_V2 in order to allow the type-3 message to include the LMv2 and NTLMv2 response messages, requires USE_NTRESPONSES defined to 1 and support for 64-bit integers. */ #if defined(USE_NTRESPONSES) && (CURL_SIZEOF_CURL_OFF_T > 4) |
︙ | ︙ |
Changes to jni/curl/lib/curl_ntlm_wb.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
72 73 74 75 76 77 78 | # define sclose_nolog(x) closesocket((x)) #elif defined(HAVE_CLOSESOCKET_CAMEL) # define sclose_nolog(x) CloseSocket((x)) #else # define sclose_nolog(x) close((x)) #endif | | | | | | | | | | | | | | > > > > > | | | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 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 | # define sclose_nolog(x) closesocket((x)) #elif defined(HAVE_CLOSESOCKET_CAMEL) # define sclose_nolog(x) CloseSocket((x)) #else # define sclose_nolog(x) close((x)) #endif static void ntlm_wb_cleanup(struct ntlmdata *ntlm) { if(ntlm->ntlm_auth_hlpr_socket != CURL_SOCKET_BAD) { sclose(ntlm->ntlm_auth_hlpr_socket); ntlm->ntlm_auth_hlpr_socket = CURL_SOCKET_BAD; } if(ntlm->ntlm_auth_hlpr_pid) { int i; for(i = 0; i < 4; i++) { pid_t ret = waitpid(ntlm->ntlm_auth_hlpr_pid, NULL, WNOHANG); if(ret == ntlm->ntlm_auth_hlpr_pid || errno == ECHILD) break; switch(i) { case 0: kill(ntlm->ntlm_auth_hlpr_pid, SIGTERM); break; case 1: /* Give the process another moment to shut down cleanly before bringing down the axe */ Curl_wait_ms(1); break; case 2: kill(ntlm->ntlm_auth_hlpr_pid, SIGKILL); break; case 3: break; } } ntlm->ntlm_auth_hlpr_pid = 0; } Curl_safefree(ntlm->challenge); Curl_safefree(ntlm->response); } static CURLcode ntlm_wb_init(struct Curl_easy *data, struct ntlmdata *ntlm, const char *userp) { curl_socket_t sockfds[2]; pid_t child_pid; const char *username; char *slash, *domain = NULL; const char *ntlm_auth = NULL; char *ntlm_auth_alloc = NULL; #if defined(HAVE_GETPWUID_R) && defined(HAVE_GETEUID) struct passwd pw, *pw_res; char pwbuf[1024]; #endif char buffer[STRERROR_LEN]; #if defined(CURL_DISABLE_VERBOSE_STRINGS) (void) data; #endif /* Return if communication with ntlm_auth already set up */ if(ntlm->ntlm_auth_hlpr_socket != CURL_SOCKET_BAD || ntlm->ntlm_auth_hlpr_pid) return CURLE_OK; username = userp; /* The real ntlm_auth really doesn't like being invoked with an empty username. It won't make inferences for itself, and expects the client to do so (mostly because it's really designed for servers like squid to use for auth, and client support is an |
︙ | ︙ | |||
175 176 177 178 179 180 181 | if(ntlm_auth_alloc) ntlm_auth = ntlm_auth_alloc; else #endif ntlm_auth = NTLM_WB_FILE; if(access(ntlm_auth, X_OK) != 0) { | | | | | | | | | | | > > > > | | | | 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 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | if(ntlm_auth_alloc) ntlm_auth = ntlm_auth_alloc; else #endif ntlm_auth = NTLM_WB_FILE; if(access(ntlm_auth, X_OK) != 0) { failf(data, "Could not access ntlm_auth: %s errno %d: %s", ntlm_auth, errno, Curl_strerror(errno, buffer, sizeof(buffer))); goto done; } if(Curl_socketpair(AF_UNIX, SOCK_STREAM, 0, sockfds)) { failf(data, "Could not open socket pair. errno %d: %s", errno, Curl_strerror(errno, buffer, sizeof(buffer))); goto done; } child_pid = fork(); if(child_pid == -1) { sclose(sockfds[0]); sclose(sockfds[1]); failf(data, "Could not fork. errno %d: %s", errno, Curl_strerror(errno, buffer, sizeof(buffer))); goto done; } else if(!child_pid) { /* * child process */ /* Don't use sclose in the child since it fools the socket leak detector */ sclose_nolog(sockfds[0]); if(dup2(sockfds[1], STDIN_FILENO) == -1) { failf(data, "Could not redirect child stdin. errno %d: %s", errno, Curl_strerror(errno, buffer, sizeof(buffer))); exit(1); } if(dup2(sockfds[1], STDOUT_FILENO) == -1) { failf(data, "Could not redirect child stdout. errno %d: %s", errno, Curl_strerror(errno, buffer, sizeof(buffer))); exit(1); } if(domain) execl(ntlm_auth, ntlm_auth, "--helper-protocol", "ntlmssp-client-1", "--use-cached-creds", "--username", username, "--domain", domain, NULL); else execl(ntlm_auth, ntlm_auth, "--helper-protocol", "ntlmssp-client-1", "--use-cached-creds", "--username", username, NULL); sclose_nolog(sockfds[1]); failf(data, "Could not execl(). errno %d: %s", errno, Curl_strerror(errno, buffer, sizeof(buffer))); exit(1); } sclose(sockfds[1]); ntlm->ntlm_auth_hlpr_socket = sockfds[0]; ntlm->ntlm_auth_hlpr_pid = child_pid; free(domain); free(ntlm_auth_alloc); return CURLE_OK; done: free(domain); free(ntlm_auth_alloc); return CURLE_REMOTE_ACCESS_DENIED; } /* if larger than this, something is seriously wrong */ #define MAX_NTLM_WB_RESPONSE 100000 static CURLcode ntlm_wb_response(struct Curl_easy *data, struct ntlmdata *ntlm, const char *input, curlntlm state) { char *buf = malloc(NTLM_BUFSIZE); size_t len_in = strlen(input), len_out = 0; #if defined(CURL_DISABLE_VERBOSE_STRINGS) (void) data; #endif if(!buf) return CURLE_OUT_OF_MEMORY; while(len_in > 0) { ssize_t written = swrite(ntlm->ntlm_auth_hlpr_socket, input, len_in); if(written == -1) { /* Interrupted by a signal, retry it */ if(errno == EINTR) continue; /* write failed if other errors happen */ goto done; } input += written; len_in -= written; } /* Read one line */ while(1) { ssize_t size; char *newbuf; size = sread(ntlm->ntlm_auth_hlpr_socket, buf + len_out, NTLM_BUFSIZE); if(size == -1) { if(errno == EINTR) continue; goto done; } else if(size == 0) goto done; len_out += size; if(buf[len_out - 1] == '\n') { buf[len_out - 1] = '\0'; break; } if(len_out > MAX_NTLM_WB_RESPONSE) { failf(data, "too large ntlm_wb response!"); free(buf); return CURLE_OUT_OF_MEMORY; } newbuf = Curl_saferealloc(buf, len_out + NTLM_BUFSIZE); if(!newbuf) return CURLE_OUT_OF_MEMORY; |
︙ | ︙ | |||
319 320 321 322 323 324 325 | (buf[0]!='Y' || buf[1]!='R' || buf[2]!=' ')) goto done; if(state == NTLMSTATE_TYPE2 && (buf[0]!='K' || buf[1]!='K' || buf[2]!=' ') && (buf[0]!='A' || buf[1]!='F' || buf[2]!=' ')) goto done; | | | > | | | 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 356 357 358 359 360 361 362 363 364 365 366 367 368 | (buf[0]!='Y' || buf[1]!='R' || buf[2]!=' ')) goto done; if(state == NTLMSTATE_TYPE2 && (buf[0]!='K' || buf[1]!='K' || buf[2]!=' ') && (buf[0]!='A' || buf[1]!='F' || buf[2]!=' ')) goto done; ntlm->response = aprintf("%.*s", len_out - 4, buf + 3); free(buf); if(!ntlm->response) return CURLE_OUT_OF_MEMORY; return CURLE_OK; done: free(buf); return CURLE_REMOTE_ACCESS_DENIED; } CURLcode Curl_input_ntlm_wb(struct connectdata *conn, bool proxy, const char *header) { struct ntlmdata *ntlm = proxy ? &conn->proxyntlm : &conn->ntlm; curlntlm *state = proxy ? &conn->proxy_ntlm_state : &conn->http_ntlm_state; if(!checkprefix("NTLM", header)) return CURLE_BAD_CONTENT_ENCODING; header += strlen("NTLM"); while(*header && ISSPACE(*header)) header++; if(*header) { ntlm->challenge = strdup(header); if(!ntlm->challenge) return CURLE_OUT_OF_MEMORY; *state = NTLMSTATE_TYPE2; /* We got a type-2 message */ } else { if(*state == NTLMSTATE_LAST) { infof(conn->data, "NTLM auth restarted\n"); |
︙ | ︙ | |||
383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 | bool proxy) { /* point to the address of the pointer that holds the string to send to the server, which is for a plain host or for a HTTP proxy */ char **allocuserpwd; /* point to the name and password for this */ const char *userp; curlntlm *state; struct auth *authp; CURLcode res = CURLE_OK; DEBUGASSERT(conn); DEBUGASSERT(conn->data); if(proxy) { allocuserpwd = &conn->allocptr.proxyuserpwd; userp = conn->http_proxy.user; state = &conn->proxy_ntlm_state; authp = &conn->data->state.authproxy; } else { allocuserpwd = &conn->allocptr.userpwd; userp = conn->user; state = &conn->http_ntlm_state; authp = &conn->data->state.authhost; } authp->done = FALSE; /* not set means empty */ if(!userp) | > > > | 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 | bool proxy) { /* point to the address of the pointer that holds the string to send to the server, which is for a plain host or for a HTTP proxy */ char **allocuserpwd; /* point to the name and password for this */ const char *userp; struct ntlmdata *ntlm; curlntlm *state; struct auth *authp; CURLcode res = CURLE_OK; DEBUGASSERT(conn); DEBUGASSERT(conn->data); if(proxy) { allocuserpwd = &conn->allocptr.proxyuserpwd; userp = conn->http_proxy.user; ntlm = &conn->proxyntlm; state = &conn->proxy_ntlm_state; authp = &conn->data->state.authproxy; } else { allocuserpwd = &conn->allocptr.userpwd; userp = conn->user; ntlm = &conn->ntlm; state = &conn->http_ntlm_state; authp = &conn->data->state.authhost; } authp->done = FALSE; /* not set means empty */ if(!userp) |
︙ | ︙ | |||
425 426 427 428 429 430 431 | * Preprocessor symbol 'NTLM_WB_ENABLED' is defined when this * feature is enabled and 'NTLM_WB_FILE' symbol holds absolute * filename of ntlm_auth helper. * If NTLM authentication using winbind fails, go back to original * request handling process. */ /* Create communication with ntlm_auth */ | | | | | | | | | | | 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | * Preprocessor symbol 'NTLM_WB_ENABLED' is defined when this * feature is enabled and 'NTLM_WB_FILE' symbol holds absolute * filename of ntlm_auth helper. * If NTLM authentication using winbind fails, go back to original * request handling process. */ /* Create communication with ntlm_auth */ res = ntlm_wb_init(conn->data, ntlm, userp); if(res) return res; res = ntlm_wb_response(conn->data, ntlm, "YR\n", *state); if(res) return res; free(*allocuserpwd); *allocuserpwd = aprintf("%sAuthorization: NTLM %s\r\n", proxy ? "Proxy-" : "", ntlm->response); DEBUG_OUT(fprintf(stderr, "**** Header %s\n ", *allocuserpwd)); Curl_safefree(ntlm->response); if(!*allocuserpwd) return CURLE_OUT_OF_MEMORY; break; case NTLMSTATE_TYPE2: { char *input = aprintf("TT %s\n", ntlm->challenge); if(!input) return CURLE_OUT_OF_MEMORY; res = ntlm_wb_response(conn->data, ntlm, input, *state); free(input); if(res) return res; free(*allocuserpwd); *allocuserpwd = aprintf("%sAuthorization: NTLM %s\r\n", proxy ? "Proxy-" : "", ntlm->response); DEBUG_OUT(fprintf(stderr, "**** %s\n ", *allocuserpwd)); *state = NTLMSTATE_TYPE3; /* we sent a type-3 */ authp->done = TRUE; Curl_http_auth_cleanup_ntlm_wb(conn); if(!*allocuserpwd) return CURLE_OUT_OF_MEMORY; break; |
︙ | ︙ | |||
476 477 478 479 480 481 482 483 484 | Curl_safefree(*allocuserpwd); authp->done = TRUE; break; } return CURLE_OK; } #endif /* !CURL_DISABLE_HTTP && USE_NTLM && NTLM_WB_ENABLED */ | > > > > > > | 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 | Curl_safefree(*allocuserpwd); authp->done = TRUE; break; } return CURLE_OK; } void Curl_http_auth_cleanup_ntlm_wb(struct connectdata *conn) { ntlm_wb_cleanup(&conn->ntlm); ntlm_wb_cleanup(&conn->proxyntlm); } #endif /* !CURL_DISABLE_HTTP && USE_NTLM && NTLM_WB_ENABLED */ |
Changes to jni/curl/lib/curl_sasl.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
268 269 270 271 272 273 274 275 276 277 278 279 280 281 | conn->host.name; const long int port = SSL_IS_PROXY() ? conn->port : conn->remote_port; #if defined(USE_KERBEROS5) || defined(USE_NTLM) const char *service = data->set.str[STRING_SERVICE_NAME] ? data->set.str[STRING_SERVICE_NAME] : sasl->params->service; #endif sasl->force_ir = force_ir; /* Latch for future use */ sasl->authused = 0; /* No mechanism used yet */ enabledmechs = sasl->authmechs & sasl->prefmech; *progress = SASL_IDLE; /* Calculate the supported authentication mechanism, by decreasing order of | > | 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 | conn->host.name; const long int port = SSL_IS_PROXY() ? conn->port : conn->remote_port; #if defined(USE_KERBEROS5) || defined(USE_NTLM) const char *service = data->set.str[STRING_SERVICE_NAME] ? data->set.str[STRING_SERVICE_NAME] : sasl->params->service; #endif const char *oauth_bearer = data->set.str[STRING_BEARER]; sasl->force_ir = force_ir; /* Latch for future use */ sasl->authused = 0; /* No mechanism used yet */ enabledmechs = sasl->authmechs & sasl->prefmech; *progress = SASL_IDLE; /* Calculate the supported authentication mechanism, by decreasing order of |
︙ | ︙ | |||
337 338 339 340 341 342 343 | service, hostname, &conn->ntlm, &resp, &len); } else #endif | | | | | | 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | service, hostname, &conn->ntlm, &resp, &len); } else #endif if((enabledmechs & SASL_MECH_OAUTHBEARER) && oauth_bearer) { mech = SASL_MECH_STRING_OAUTHBEARER; state1 = SASL_OAUTH2; state2 = SASL_OAUTH2_RESP; sasl->authused = SASL_MECH_OAUTHBEARER; if(force_ir || data->set.sasl_ir) result = Curl_auth_create_oauth_bearer_message(data, conn->user, hostname, port, oauth_bearer, &resp, &len); } else if((enabledmechs & SASL_MECH_XOAUTH2) && oauth_bearer) { mech = SASL_MECH_STRING_XOAUTH2; state1 = SASL_OAUTH2; sasl->authused = SASL_MECH_XOAUTH2; if(force_ir || data->set.sasl_ir) result = Curl_auth_create_xoauth_bearer_message(data, conn->user, oauth_bearer, &resp, &len); } else if(enabledmechs & SASL_MECH_PLAIN) { mech = SASL_MECH_STRING_PLAIN; state1 = SASL_PLAIN; sasl->authused = SASL_MECH_PLAIN; |
︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 437 438 439 440 | defined(USE_NTLM) const char *service = data->set.str[STRING_SERVICE_NAME] ? data->set.str[STRING_SERVICE_NAME] : sasl->params->service; char *serverdata; #endif size_t len = 0; *progress = SASL_INPROGRESS; if(sasl->state == SASL_FINAL) { if(code != sasl->params->finalcode) result = CURLE_LOGIN_DENIED; *progress = SASL_DONE; | > | 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | defined(USE_NTLM) const char *service = data->set.str[STRING_SERVICE_NAME] ? data->set.str[STRING_SERVICE_NAME] : sasl->params->service; char *serverdata; #endif size_t len = 0; const char *oauth_bearer = data->set.str[STRING_BEARER]; *progress = SASL_INPROGRESS; if(sasl->state == SASL_FINAL) { if(code != sasl->params->finalcode) result = CURLE_LOGIN_DENIED; *progress = SASL_DONE; |
︙ | ︙ | |||
554 555 556 557 558 559 560 | case SASL_OAUTH2: /* Create the authorisation message */ if(sasl->authused == SASL_MECH_OAUTHBEARER) { result = Curl_auth_create_oauth_bearer_message(data, conn->user, hostname, port, | | | | 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 | case SASL_OAUTH2: /* Create the authorisation message */ if(sasl->authused == SASL_MECH_OAUTHBEARER) { result = Curl_auth_create_oauth_bearer_message(data, conn->user, hostname, port, oauth_bearer, &resp, &len); /* Failures maybe sent by the server as continuations for OAUTHBEARER */ newstate = SASL_OAUTH2_RESP; } else result = Curl_auth_create_xoauth_bearer_message(data, conn->user, oauth_bearer, &resp, &len); break; case SASL_OAUTH2_RESP: /* The continuation is optional so check the response code */ if(code == sasl->params->finalcode) { /* Final response was received so we are done */ |
︙ | ︙ |
Changes to jni/curl/lib/curl_sha256.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_SHA256_H #define HEADER_CURL_SHA256_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > > > | | | 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 | #ifndef HEADER_CURL_SHA256_H #define HEADER_CURL_SHA256_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2017, Florin Petriuc, <petriuc.florin@gmail.com> * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #ifndef CURL_DISABLE_CRYPTO_AUTH #define SHA256_DIGEST_LENGTH 32 void Curl_sha256it(unsigned char *outbuffer, const unsigned char *input, const size_t len); #endif #endif /* HEADER_CURL_SHA256_H */ |
Changes to jni/curl/lib/doh.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
544 545 546 547 548 549 550 | length = doh[index]; if((length & 0xc0) == 0xc0) { int newpos; /* name pointer, get the new offset (14 bits) */ if((index + 1) >= dohlen) return DOH_DNS_OUT_OF_RANGE; | | | 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 | length = doh[index]; if((length & 0xc0) == 0xc0) { int newpos; /* name pointer, get the new offset (14 bits) */ if((index + 1) >= dohlen) return DOH_DNS_OUT_OF_RANGE; /* move to the new index */ newpos = (length & 0x3f) << 8 | doh[index + 1]; index = newpos; continue; } else if(length & 0xc0) return DOH_DNS_BAD_LABEL; /* bad input */ else |
︙ | ︙ |
Changes to jni/curl/lib/easy.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #include "warnless.h" #include "multiif.h" #include "sigpipe.h" #include "vssh/ssh.h" #include "setopt.h" #include "http_digest.h" #include "system_win32.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" void Curl_version_init(void); | > | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include "warnless.h" #include "multiif.h" #include "sigpipe.h" #include "vssh/ssh.h" #include "setopt.h" #include "http_digest.h" #include "system_win32.h" #include "http2.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" void Curl_version_init(void); |
︙ | ︙ | |||
181 182 183 184 185 186 187 | #endif if(Curl_resolver_global_init()) { DEBUGF(fprintf(stderr, "Error: resolver_global_init failed\n")); goto fail; } | < < > > > | < > > | 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 | #endif if(Curl_resolver_global_init()) { DEBUGF(fprintf(stderr, "Error: resolver_global_init failed\n")); goto fail; } #if defined(USE_SSH) if(Curl_ssh_init()) { goto fail; } #endif #ifdef USE_WOLFSSH if(WS_SUCCESS != wolfSSH_Init()) { DEBUGF(fprintf(stderr, "Error: wolfSSH_Init failed\n")); return CURLE_FAILED_INIT; } #endif init_flags = flags; Curl_version_init(); return CURLE_OK; |
︙ | ︙ | |||
267 268 269 270 271 272 273 274 275 276 277 278 279 280 | #ifdef WIN32 Curl_win32_cleanup(init_flags); #endif Curl_amiga_cleanup(); Curl_ssh_cleanup(); init_flags = 0; } /* * curl_easy_init() is the external interface to alloc, setup and init an * easy handle that is returned. If anything goes wrong, NULL is returned. | > > > > | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | #ifdef WIN32 Curl_win32_cleanup(init_flags); #endif Curl_amiga_cleanup(); Curl_ssh_cleanup(); #ifdef USE_WOLFSSH (void)wolfSSH_Cleanup(); #endif init_flags = 0; } /* * curl_easy_init() is the external interface to alloc, setup and init an * easy handle that is returned. If anything goes wrong, NULL is returned. |
︙ | ︙ | |||
680 681 682 683 684 685 686 | if(mcode == CURLM_OUT_OF_MEMORY) return CURLE_OUT_OF_MEMORY; return CURLE_FAILED_INIT; } sigpipe_ignore(data, &pipe_st); | < < < < | 687 688 689 690 691 692 693 694 695 696 697 698 699 700 | if(mcode == CURLM_OUT_OF_MEMORY) return CURLE_OUT_OF_MEMORY; return CURLE_FAILED_INIT; } sigpipe_ignore(data, &pipe_st); /* run the transfer */ result = events ? easy_events(multi) : easy_transfer(multi); /* ignoring the return code isn't nice, but atm we can't really handle a failure here, room for future improvement! */ (void)curl_multi_remove_handle(multi, data); |
︙ | ︙ | |||
979 980 981 982 983 984 985 | /* set the new desired pause bits */ newstate |= ((action & CURLPAUSE_RECV)?KEEP_RECV_PAUSE:0) | ((action & CURLPAUSE_SEND)?KEEP_SEND_PAUSE:0); /* put it back in the keepon */ k->keepon = newstate; | | > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > | 982 983 984 985 986 987 988 989 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 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 | /* set the new desired pause bits */ newstate |= ((action & CURLPAUSE_RECV)?KEEP_RECV_PAUSE:0) | ((action & CURLPAUSE_SEND)?KEEP_SEND_PAUSE:0); /* put it back in the keepon */ k->keepon = newstate; if(!(newstate & KEEP_RECV_PAUSE)) { Curl_http2_stream_pause(data, FALSE); if(data->state.tempcount) { /* there are buffers for sending that can be delivered as the receive pausing is lifted! */ unsigned int i; unsigned int count = data->state.tempcount; struct tempbuf writebuf[3]; /* there can only be three */ struct connectdata *conn = data->conn; struct Curl_easy *saved_data = NULL; /* copy the structs to allow for immediate re-pausing */ for(i = 0; i < data->state.tempcount; i++) { writebuf[i] = data->state.tempwrite[i]; data->state.tempwrite[i].buf = NULL; } data->state.tempcount = 0; /* set the connection's current owner */ if(conn->data != data) { saved_data = conn->data; conn->data = data; } for(i = 0; i < count; i++) { /* even if one function returns error, this loops through and frees all buffers */ if(!result) result = Curl_client_write(conn, writebuf[i].type, writebuf[i].buf, writebuf[i].len); free(writebuf[i].buf); } /* recover previous owner of the connection */ if(saved_data) conn->data = saved_data; if(result) return result; } } /* if there's no error and we're not pausing both directions, we want to have this handle checked soon */ if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) { data->state.drain++; Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ if(data->multi) Curl_update_timer(data->multi); } if(!data->state.done) /* This transfer may have been moved in or out of the bundle, update the |
︙ | ︙ |
Changes to jni/curl/lib/formdata.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ |
Changes to jni/curl/lib/ftp.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
51 52 53 54 55 56 57 | #include "sendf.h" #include "if2ip.h" #include "hostip.h" #include "progress.h" #include "transfer.h" #include "escape.h" #include "http.h" /* for HTTP proxy tunnel stuff */ | < | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #include "sendf.h" #include "if2ip.h" #include "hostip.h" #include "progress.h" #include "transfer.h" #include "escape.h" #include "http.h" /* for HTTP proxy tunnel stuff */ #include "ftp.h" #include "fileinfo.h" #include "ftplistparser.h" #include "curl_range.h" #include "curl_sec.h" #include "strtoofft.h" #include "strcase.h" |
︙ | ︙ | |||
74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #include "multiif.h" #include "url.h" #include "strcase.h" #include "speedcheck.h" #include "warnless.h" #include "http_proxy.h" #include "non-ascii.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #ifndef NI_MAXHOST #define NI_MAXHOST 1025 | > | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #include "multiif.h" #include "url.h" #include "strcase.h" #include "speedcheck.h" #include "warnless.h" #include "http_proxy.h" #include "non-ascii.h" #include "socks.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #ifndef NI_MAXHOST #define NI_MAXHOST 1025 |
︙ | ︙ | |||
249 250 251 252 253 254 255 | } Curl_safefree(ftpc->file); /* no longer of any use */ Curl_safefree(ftpc->newhost); } | < < < < < < < < < < < < | 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | } Curl_safefree(ftpc->file); /* no longer of any use */ Curl_safefree(ftpc->newhost); } /*********************************************************************** * * AcceptServerConnect() * * After connection request is received from the server this function is * called to accept the connection and close the listening socket * |
︙ | ︙ | |||
299 300 301 302 303 304 305 | infof(data, "Connection accepted from server\n"); /* when this happens within the DO state it is important that we mark us as not needing DO_MORE anymore */ conn->bits.do_more = FALSE; conn->sock[SECONDARYSOCKET] = s; (void)curlx_nonblock(s, TRUE); /* enable non-blocking */ | | | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 | infof(data, "Connection accepted from server\n"); /* when this happens within the DO state it is important that we mark us as not needing DO_MORE anymore */ conn->bits.do_more = FALSE; conn->sock[SECONDARYSOCKET] = s; (void)curlx_nonblock(s, TRUE); /* enable non-blocking */ conn->sock_accepted = TRUE; if(data->set.fsockopt) { int error = 0; /* activate callback for setting socket options */ Curl_set_in_callback(data, true); error = data->set.fsockopt(data->set.sockopt_client, |
︙ | ︙ | |||
781 782 783 784 785 786 787 | ftpc->state = newstate; } static CURLcode ftp_state_user(struct connectdata *conn) { CURLcode result; | < | | 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 | ftpc->state = newstate; } static CURLcode ftp_state_user(struct connectdata *conn) { CURLcode result; /* send USER */ PPSENDF(&conn->proto.ftpc.pp, "USER %s", conn->user?conn->user:""); state(conn, FTP_USER); conn->data->state.ftp_trying_alternative = FALSE; return CURLE_OK; } |
︙ | ︙ | |||
819 820 821 822 823 824 825 826 827 828 829 830 831 832 | struct ftp_conn *ftpc = &conn->proto.ftpc; /* When in DO_MORE state, we could be either waiting for us to connect to a * remote site, or we could wait for that site to connect to us. Or just * handle ordinary commands. */ if(FTP_STOP == ftpc->state) { int bits = GETSOCK_READSOCK(0); /* if stopped and still in this state, then we're also waiting for a connect on the secondary connection */ socks[0] = conn->sock[FIRSTSOCKET]; | > > > | 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 | struct ftp_conn *ftpc = &conn->proto.ftpc; /* When in DO_MORE state, we could be either waiting for us to connect to a * remote site, or we could wait for that site to connect to us. Or just * handle ordinary commands. */ if(SOCKS_STATE(conn->cnnct.state)) return Curl_SOCKS_getsock(conn, socks, SECONDARYSOCKET); if(FTP_STOP == ftpc->state) { int bits = GETSOCK_READSOCK(0); /* if stopped and still in this state, then we're also waiting for a connect on the secondary connection */ socks[0] = conn->sock[FIRSTSOCKET]; |
︙ | ︙ | |||
916 917 918 919 920 921 922 | ftpport fcmd) /* start with this */ { CURLcode result = CURLE_OK; struct ftp_conn *ftpc = &conn->proto.ftpc; struct Curl_easy *data = conn->data; curl_socket_t portsock = CURL_SOCKET_BAD; | | < | | 906 907 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 | ftpport fcmd) /* start with this */ { CURLcode result = CURLE_OK; struct ftp_conn *ftpc = &conn->proto.ftpc; struct Curl_easy *data = conn->data; curl_socket_t portsock = CURL_SOCKET_BAD; char myhost[MAX_IPADR_LEN + 1] = ""; struct Curl_sockaddr_storage ss; Curl_addrinfo *res, *ai; curl_socklen_t sslen; char hbuf[NI_MAXHOST]; struct sockaddr *sa = (struct sockaddr *)&ss; struct sockaddr_in * const sa4 = (void *)sa; #ifdef ENABLE_IPV6 struct sockaddr_in6 * const sa6 = (void *)sa; #endif static const char mode[][5] = { "EPRT", "PORT" }; enum resolve_t rc; int error; char *host = NULL; char *string_ftpport = data->set.str[STRING_FTPPORT]; struct Curl_dns_entry *h = NULL; unsigned short port_min = 0; unsigned short port_max = 0; unsigned short port; |
︙ | ︙ | |||
1242 1243 1244 1245 1246 1247 1248 1249 | /* bail out */ state(conn, FTP_STOP); return result; } break; } if(PORT == fcmd) { char *source = myhost; | > > | | | 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 | /* bail out */ state(conn, FTP_STOP); return result; } break; } if(PORT == fcmd) { /* large enough for [IP address],[num],[num] */ char target[sizeof(myhost) + 20]; char *source = myhost; char *dest = target; /* translate x.x.x.x to x,x,x,x */ while(source && *source) { if(*source == '.') *dest = ','; else *dest = *source; dest++; source++; } *dest = 0; msnprintf(dest, 20, ",%d,%d", (int)(port>>8), (int)(port&0xff)); result = Curl_pp_sendf(&ftpc->pp, "%s %s", mode[fcmd], target); if(result) { failf(data, "Failure sending PORT command: %s", curl_easy_strerror(result)); Curl_closesocket(conn, portsock); /* bail out */ state(conn, FTP_STOP); return result; |
︙ | ︙ | |||
1802 1803 1804 1805 1806 1807 1808 | static CURLcode ftp_state_pasv_resp(struct connectdata *conn, int ftpcode) { struct ftp_conn *ftpc = &conn->proto.ftpc; CURLcode result; struct Curl_easy *data = conn->data; struct Curl_dns_entry *addr = NULL; | | | 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 | static CURLcode ftp_state_pasv_resp(struct connectdata *conn, int ftpcode) { struct ftp_conn *ftpc = &conn->proto.ftpc; CURLcode result; struct Curl_easy *data = conn->data; struct Curl_dns_entry *addr = NULL; enum resolve_t rc; unsigned short connectport; /* the local port connect() should use! */ char *str = &data->state.buffer[4]; /* start on the first letter */ /* if we come here again, make sure the former name is cleared */ Curl_safefree(ftpc->newhost); if((ftpc->count1 == 0) && |
︙ | ︙ | |||
2524 2525 2526 2527 2528 2529 2530 | /* for USER and PASS responses */ static CURLcode ftp_state_user_resp(struct connectdata *conn, int ftpcode, ftpstate instate) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; | < | | 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 | /* for USER and PASS responses */ static CURLcode ftp_state_user_resp(struct connectdata *conn, int ftpcode, ftpstate instate) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct ftp_conn *ftpc = &conn->proto.ftpc; (void)instate; /* no use for this yet */ /* some need password anyway, and others just return 2xx ignored */ if((ftpcode == 331) && (ftpc->state == FTP_USER)) { /* 331 Password required for ... (the server requires to send the user's password too) */ PPSENDF(&ftpc->pp, "PASS %s", conn->passwd?conn->passwd:""); state(conn, FTP_PASS); } else if(ftpcode/100 == 2) { /* 230 User ... logged in. (the user logged in with or without password) */ result = ftp_state_loggedin(conn); } |
︙ | ︙ | |||
4365 4366 4367 4368 4369 4370 4371 | break; } } /* get some initial data into the ftp struct */ ftp->transfer = FTPTRANSFER_BODY; ftp->downloadsize = 0; | < < < < < < < < < < < < | 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 | break; } } /* get some initial data into the ftp struct */ ftp->transfer = FTPTRANSFER_BODY; ftp->downloadsize = 0; conn->proto.ftpc.known_filesize = -1; /* unknown size for now */ return CURLE_OK; } #endif /* CURL_DISABLE_FTP */ |
Changes to jni/curl/lib/ftp.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_FTP_H #define HEADER_CURL_FTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_FTP_H #define HEADER_CURL_FTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
98 99 100 101 102 103 104 | } curl_ftpfile; /* This FTP struct is used in the Curl_easy. All FTP data that is connection-oriented must be in FTP_conn to properly deal with the fact that perhaps the Curl_easy is changed between the times the connection is used. */ struct FTP { | < < | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | } curl_ftpfile; /* This FTP struct is used in the Curl_easy. All FTP data that is connection-oriented must be in FTP_conn to properly deal with the fact that perhaps the Curl_easy is changed between the times the connection is used. */ struct FTP { char *path; /* points to the urlpieces struct field */ char *pathalloc; /* if non-NULL a pointer to an allocated path */ /* transfer a file/body or not, done as a typedefed enum just to make debuggers display the full symbol and not just the numerical value */ curl_pp_transfer transfer; curl_off_t downloadsize; |
︙ | ︙ |
Changes to jni/curl/lib/getenv.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
23 24 25 26 27 28 29 | #include "curl_setup.h" #include <curl/curl.h> #include "curl_memory.h" #include "memdebug.h" | < | | > > | | > > > | > > > > > > | > > > > > > > > | > | > > | > > > < | 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 | #include "curl_setup.h" #include <curl/curl.h> #include "curl_memory.h" #include "memdebug.h" static char *GetEnv(const char *variable) { #if defined(_WIN32_WCE) || defined(CURL_WINDOWS_APP) (void)variable; return NULL; #elif defined(WIN32) /* This uses Windows API instead of C runtime getenv() to get the environment variable since some changes aren't always visible to the latter. #4774 */ char *buf = NULL; char *tmp; DWORD bufsize; DWORD rc = 1; const DWORD max = 32768; /* max env var size from MSCRT source */ for(;;) { tmp = realloc(buf, rc); if(!tmp) { free(buf); return NULL; } buf = tmp; bufsize = rc; /* It's possible for rc to be 0 if the variable was found but empty. Since getenv doesn't make that distinction we ignore it as well. */ rc = GetEnvironmentVariableA(variable, buf, bufsize); if(!rc || rc == bufsize || rc > max) { free(buf); return NULL; } /* if rc < bufsize then rc is bytes written not including null */ if(rc < bufsize) return buf; /* else rc is bytes needed, try again */ } #else char *env = getenv(variable); return (env && env[0])?strdup(env):NULL; #endif } char *curl_getenv(const char *v) { return GetEnv(v); } |
Changes to jni/curl/lib/hmac.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #ifndef CURL_DISABLE_CRYPTO_AUTH #include <curl/curl.h> #include "curl_hmac.h" #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" /* * Generic HMAC algorithm. * | > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #ifndef CURL_DISABLE_CRYPTO_AUTH #include <curl/curl.h> #include "curl_hmac.h" #include "curl_memory.h" #include "warnless.h" /* The last #include file should be: */ #include "memdebug.h" /* * Generic HMAC algorithm. * |
︙ | ︙ | |||
124 125 126 127 128 129 130 131 132 | (*hashparams->hmac_hfinal)(result, ctxt->hmac_hashctxt1); (*hashparams->hmac_hupdate)(ctxt->hmac_hashctxt2, result, hashparams->hmac_resultlen); (*hashparams->hmac_hfinal)(result, ctxt->hmac_hashctxt2); free((char *) ctxt); return 0; } #endif /* CURL_DISABLE_CRYPTO_AUTH */ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 159 160 161 162 163 164 165 166 167 168 169 | (*hashparams->hmac_hfinal)(result, ctxt->hmac_hashctxt1); (*hashparams->hmac_hupdate)(ctxt->hmac_hashctxt2, result, hashparams->hmac_resultlen); (*hashparams->hmac_hfinal)(result, ctxt->hmac_hashctxt2); free((char *) ctxt); return 0; } /* * Curl_hmacit() * * This is used to generate a HMAC hash, for the specified input data, given * the specified hash function and key. * * Parameters: * * hashparams [in] - The hash function (Curl_HMAC_MD5). * key [in] - The key to use. * keylen [in] - The length of the key. * data [in] - The data to encrypt. * datalen [in] - The length of the data. * output [in/out] - The output buffer. * * Returns CURLE_OK on success. */ CURLcode Curl_hmacit(const HMAC_params *hashparams, const unsigned char *key, const size_t keylen, const unsigned char *data, const size_t datalen, unsigned char *output) { HMAC_context *ctxt = Curl_HMAC_init(hashparams, key, curlx_uztoui(keylen)); if(!ctxt) return CURLE_OUT_OF_MEMORY; /* Update the digest with the given challenge */ Curl_HMAC_update(ctxt, data, curlx_uztoui(datalen)); /* Finalise the digest */ Curl_HMAC_final(ctxt, output); return CURLE_OK; } #endif /* CURL_DISABLE_CRYPTO_AUTH */ |
Changes to jni/curl/lib/hostip.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #include "hostip.h" #include "hash.h" #include "rand.h" #include "share.h" #include "strerror.h" #include "url.h" #include "inet_ntop.h" #include "multiif.h" #include "doh.h" #include "warnless.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" | > | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #include "hostip.h" #include "hash.h" #include "rand.h" #include "share.h" #include "strerror.h" #include "url.h" #include "inet_ntop.h" #include "inet_pton.h" #include "multiif.h" #include "doh.h" #include "warnless.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" |
︙ | ︙ | |||
478 479 480 481 482 483 484 | * Return codes: * * CURLRESOLV_ERROR (-1) = error, no pointer * CURLRESOLV_RESOLVED (0) = OK, pointer provided * CURLRESOLV_PENDING (1) = waiting for response, no pointer */ | | | | | | | | | | < | < > > > > > > > > > > > > > > > > > > > > > > | | | | | | | | | | | | > | 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 | * Return codes: * * CURLRESOLV_ERROR (-1) = error, no pointer * CURLRESOLV_RESOLVED (0) = OK, pointer provided * CURLRESOLV_PENDING (1) = waiting for response, no pointer */ enum resolve_t Curl_resolv(struct connectdata *conn, const char *hostname, int port, bool allowDOH, struct Curl_dns_entry **entry) { struct Curl_dns_entry *dns = NULL; struct Curl_easy *data = conn->data; CURLcode result; enum resolve_t rc = CURLRESOLV_ERROR; /* default to failure */ *entry = NULL; if(data->share) Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE); dns = fetch_addr(conn, hostname, port); if(dns) { infof(data, "Hostname %s was found in DNS cache\n", hostname); dns->inuse++; /* we use it! */ rc = CURLRESOLV_RESOLVED; } if(data->share) Curl_share_unlock(data, CURL_LOCK_DATA_DNS); if(!dns) { /* The entry was not in the cache. Resolve it to IP address */ Curl_addrinfo *addr = NULL; int respwait = 0; #ifndef USE_RESOLVE_ON_IPS struct in_addr in; #endif /* notify the resolver start callback */ if(data->set.resolver_start) { int st; Curl_set_in_callback(data, true); st = data->set.resolver_start(data->state.resolver, NULL, data->set.resolver_start_client); Curl_set_in_callback(data, false); if(st) return CURLRESOLV_ERROR; } #ifndef USE_RESOLVE_ON_IPS /* First check if this is an IPv4 address string */ if(Curl_inet_pton(AF_INET, hostname, &in) > 0) /* This is a dotted IP address 123.123.123.123-style */ addr = Curl_ip2addr(AF_INET, &in, hostname, port); #ifdef ENABLE_IPV6 if(!addr) { struct in6_addr in6; /* check if this is an IPv6 address string */ if(Curl_inet_pton(AF_INET6, hostname, &in6) > 0) /* This is an IPv6 address literal */ addr = Curl_ip2addr(AF_INET6, &in6, hostname, port); } #endif /* ENABLE_IPV6 */ #endif /* !USE_RESOLVE_ON_IPS */ if(!addr) { /* Check what IP specifics the app has requested and if we can provide * it. If not, bail out. */ if(!Curl_ipvalid(conn)) return CURLRESOLV_ERROR; if(allowDOH && data->set.doh) { addr = Curl_doh(conn, hostname, port, &respwait); } else { /* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a non-zero value indicating that we need to wait for the response to the resolve call */ addr = Curl_getaddrinfo(conn, #ifdef DEBUGBUILD (data->set.str[STRING_DEVICE] && !strcmp(data->set.str[STRING_DEVICE], "LocalHost"))?"localhost": #endif hostname, port, &respwait); } } if(!addr) { if(respwait) { /* the response to our resolve call will come asynchronously at a later time, good or bad */ /* First, check that we haven't received the info by now */ result = Curl_resolv_check(conn, &dns); |
︙ | ︙ | |||
616 617 618 619 620 621 622 | * * CURLRESOLV_TIMEDOUT(-2) = warning, time too short or previous alarm expired * CURLRESOLV_ERROR (-1) = error, no pointer * CURLRESOLV_RESOLVED (0) = OK, pointer provided * CURLRESOLV_PENDING (1) = waiting for response, no pointer */ | | | | | | | | 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 | * * CURLRESOLV_TIMEDOUT(-2) = warning, time too short or previous alarm expired * CURLRESOLV_ERROR (-1) = error, no pointer * CURLRESOLV_RESOLVED (0) = OK, pointer provided * CURLRESOLV_PENDING (1) = waiting for response, no pointer */ enum resolve_t Curl_resolv_timeout(struct connectdata *conn, const char *hostname, int port, struct Curl_dns_entry **entry, timediff_t timeoutms) { #ifdef USE_ALARM_TIMEOUT #ifdef HAVE_SIGACTION struct sigaction keep_sigact; /* store the old struct here */ volatile bool keep_copysig = FALSE; /* whether old sigact has been saved */ struct sigaction sigact; #else #ifdef HAVE_SIGNAL void (*keep_sigact)(int); /* store the old handler here */ #endif /* HAVE_SIGNAL */ #endif /* HAVE_SIGACTION */ volatile long timeout; volatile unsigned int prev_alarm = 0; struct Curl_easy *data = conn->data; #endif /* USE_ALARM_TIMEOUT */ enum resolve_t rc; *entry = NULL; if(timeoutms < 0) /* got an already expired timeout */ return CURLRESOLV_TIMEDOUT; |
︙ | ︙ |
Changes to jni/curl/lib/hostip.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_HOSTIP_H #define HEADER_CURL_HOSTIP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_HOSTIP_H #define HEADER_CURL_HOSTIP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
75 76 77 78 79 80 81 | * Curl_resolv() returns an entry with the info for the specified host * and port. * * The returned data *MUST* be "unlocked" with Curl_resolv_unlock() after * use, or we'll leak memory! */ /* return codes */ | > | | | | > | | | | | | > | | | | | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | * Curl_resolv() returns an entry with the info for the specified host * and port. * * The returned data *MUST* be "unlocked" with Curl_resolv_unlock() after * use, or we'll leak memory! */ /* return codes */ enum resolve_t { CURLRESOLV_TIMEDOUT = -2, CURLRESOLV_ERROR = -1, CURLRESOLV_RESOLVED = 0, CURLRESOLV_PENDING = 1 }; enum resolve_t Curl_resolv(struct connectdata *conn, const char *hostname, int port, bool allowDOH, struct Curl_dns_entry **dnsentry); enum resolve_t Curl_resolv_timeout(struct connectdata *conn, const char *hostname, int port, struct Curl_dns_entry **dnsentry, timediff_t timeoutms); #ifdef CURLRES_IPV6 /* * Curl_ipv6works() returns TRUE if IPv6 seems to work. */ bool Curl_ipv6works(struct connectdata *conn); #else #define Curl_ipv6works(x) FALSE #endif /* * Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've * been set and returns TRUE if they are OK. */ bool Curl_ipvalid(struct connectdata *conn); |
︙ | ︙ |
Changes to jni/curl/lib/hostip4.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
48 49 50 51 52 53 54 | #include "urldata.h" #include "sendf.h" #include "hostip.h" #include "hash.h" #include "share.h" #include "strerror.h" #include "url.h" | < | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include "urldata.h" #include "sendf.h" #include "hostip.h" #include "hash.h" #include "share.h" #include "strerror.h" #include "url.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* * Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've |
︙ | ︙ | |||
124 125 126 127 128 129 130 | int port) { #if !defined(HAVE_GETADDRINFO_THREADSAFE) && defined(HAVE_GETHOSTBYNAME_R_3) int res; #endif Curl_addrinfo *ai = NULL; struct hostent *h = NULL; | < < < < < < < < < < < < < < < < | | | | | | | | | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | < | 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 159 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 241 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 | int port) { #if !defined(HAVE_GETADDRINFO_THREADSAFE) && defined(HAVE_GETHOSTBYNAME_R_3) int res; #endif Curl_addrinfo *ai = NULL; struct hostent *h = NULL; struct hostent *buf = NULL; #if defined(HAVE_GETADDRINFO_THREADSAFE) struct addrinfo hints; char sbuf[12]; char *sbufptr = NULL; memset(&hints, 0, sizeof(hints)); hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; if(port) { msnprintf(sbuf, sizeof(sbuf), "%d", port); sbufptr = sbuf; } (void)Curl_getaddrinfo_ex(hostname, sbufptr, &hints, &ai); #elif defined(HAVE_GETHOSTBYNAME_R) /* * gethostbyname_r() is the preferred resolve function for many platforms. * Since there are three different versions of it, the following code is * somewhat #ifdef-ridden. */ int h_errnop; buf = calloc(1, CURL_HOSTENT_SIZE); if(!buf) return NULL; /* major failure */ /* * The clearing of the buffer is a workaround for a gethostbyname_r bug in * qnx nto and it is also _required_ for some of these functions on some * platforms. */ #if defined(HAVE_GETHOSTBYNAME_R_5) /* Solaris, IRIX and more */ h = gethostbyname_r(hostname, (struct hostent *)buf, (char *)buf + sizeof(struct hostent), CURL_HOSTENT_SIZE - sizeof(struct hostent), &h_errnop); /* If the buffer is too small, it returns NULL and sets errno to * ERANGE. The errno is thread safe if this is compiled with * -D_REENTRANT as then the 'errno' variable is a macro defined to get * used properly for threads. */ if(h) { ; } else #elif defined(HAVE_GETHOSTBYNAME_R_6) /* Linux */ (void)gethostbyname_r(hostname, (struct hostent *)buf, (char *)buf + sizeof(struct hostent), CURL_HOSTENT_SIZE - sizeof(struct hostent), &h, /* DIFFERENCE */ &h_errnop); /* Redhat 8, using glibc 2.2.93 changed the behavior. Now all of a * sudden this function returns EAGAIN if the given buffer size is too * small. Previous versions are known to return ERANGE for the same * problem. * * This wouldn't be such a big problem if older versions wouldn't * sometimes return EAGAIN on a common failure case. Alas, we can't * assume that EAGAIN *or* ERANGE means ERANGE for any given version of * glibc. * * For now, we do that and thus we may call the function repeatedly and * fail for older glibc versions that return EAGAIN, until we run out of * buffer size (step_size grows beyond CURL_HOSTENT_SIZE). * * If anyone has a better fix, please tell us! * * ------------------------------------------------------------------- * * On October 23rd 2003, Dan C dug up more details on the mysteries of * gethostbyname_r() in glibc: * * In glibc 2.2.5 the interface is different (this has also been * discovered in glibc 2.1.1-6 as shipped by Redhat 6). What I can't * explain, is that tests performed on glibc 2.2.4-34 and 2.2.4-32 * (shipped/upgraded by Redhat 7.2) don't show this behavior! * * In this "buggy" version, the return code is -1 on error and 'errno' * is set to the ERANGE or EAGAIN code. Note that 'errno' is not a * thread-safe variable. */ if(!h) /* failure */ #elif defined(HAVE_GETHOSTBYNAME_R_3) /* AIX, Digital Unix/Tru64, HPUX 10, more? */ /* For AIX 4.3 or later, we don't use gethostbyname_r() at all, because of * the plain fact that it does not return unique full buffers on each * call, but instead several of the pointers in the hostent structs will * point to the same actual data! This have the unfortunate down-side that * our caching system breaks down horribly. Luckily for us though, AIX 4.3 * and more recent versions have a "completely thread-safe"[*] libc where * all the data is stored in thread-specific memory areas making calls to * the plain old gethostbyname() work fine even for multi-threaded * programs. * * This AIX 4.3 or later detection is all made in the configure script. * * Troels Walsted Hansen helped us work this out on March 3rd, 2003. * * [*] = much later we've found out that it isn't at all "completely * thread-safe", but at least the gethostbyname() function is. */ if(CURL_HOSTENT_SIZE >= (sizeof(struct hostent) + sizeof(struct hostent_data))) { /* August 22nd, 2000: Albert Chin-A-Young brought an updated version * that should work! September 20: Richard Prescott worked on the buffer * size dilemma. */ res = gethostbyname_r(hostname, (struct hostent *)buf, (struct hostent_data *)((char *)buf + sizeof(struct hostent))); h_errnop = SOCKERRNO; /* we don't deal with this, but set it anyway */ } else res = -1; /* failure, too smallish buffer size */ if(!res) { /* success */ h = buf; /* result expected in h */ /* This is the worst kind of the different gethostbyname_r() interfaces. * Since we don't know how big buffer this particular lookup required, * we can't realloc down the huge alloc without doing closer analysis of * the returned data. Thus, we always use CURL_HOSTENT_SIZE for every * name lookup. Fixing this would require an extra malloc() and then * calling Curl_addrinfo_copy() that subsequent realloc()s down the new * memory area to the actually used amount. */ } else #endif /* HAVE_...BYNAME_R_5 || HAVE_...BYNAME_R_6 || HAVE_...BYNAME_R_3 */ { h = NULL; /* set return code to NULL */ free(buf); } #else /* HAVE_GETADDRINFO_THREADSAFE || HAVE_GETHOSTBYNAME_R */ /* * Here is code for platforms that don't have a thread safe * getaddrinfo() nor gethostbyname_r() function or for which * gethostbyname() is the preferred one. */ h = gethostbyname((void *)hostname); #endif /* HAVE_GETADDRINFO_THREADSAFE || HAVE_GETHOSTBYNAME_R */ if(h) { ai = Curl_he2ai(h, port); if(buf) /* used a *_r() function */ free(buf); } return ai; } #endif /* defined(CURLRES_IPV4) && !defined(CURLRES_ARES) */ |
Changes to jni/curl/lib/hostip6.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
58 59 60 61 62 63 64 | #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* * Curl_ipv6works() returns TRUE if IPv6 seems to work. */ | | > | | | > > > > > > | < < | > | | 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 96 97 98 99 100 101 102 103 104 105 | #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* * Curl_ipv6works() returns TRUE if IPv6 seems to work. */ bool Curl_ipv6works(struct connectdata *conn) { if(conn) { /* the nature of most system is that IPv6 status doesn't come and go during a program's lifetime so we only probe the first time and then we have the info kept for fast re-use */ DEBUGASSERT(conn); DEBUGASSERT(conn->data); DEBUGASSERT(conn->data->multi); return conn->data->multi->ipv6_works; } else { int ipv6_works = -1; /* probe to see if we have a working IPv6 stack */ curl_socket_t s = socket(PF_INET6, SOCK_DGRAM, 0); if(s == CURL_SOCKET_BAD) /* an IPv6 address was requested but we can't get/use one */ ipv6_works = 0; else { ipv6_works = 1; Curl_closesocket(NULL, s); } return (ipv6_works>0)?TRUE:FALSE; } } /* * Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've * been set and returns TRUE if they are OK. */ bool Curl_ipvalid(struct connectdata *conn) { if(conn->ip_version == CURL_IPRESOLVE_V6) return Curl_ipv6works(conn); return TRUE; } #if defined(CURLRES_SYNCH) #ifdef DEBUG_ADDRINFO |
︙ | ︙ | |||
155 156 157 158 159 160 161 | pf = PF_INET6; break; default: pf = PF_UNSPEC; break; } | | | 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | pf = PF_INET6; break; default: pf = PF_UNSPEC; break; } if((pf != PF_INET) && !Curl_ipv6works(conn)) /* The stack seems to be a non-IPv6 one */ pf = PF_INET; memset(&hints, 0, sizeof(hints)); hints.ai_family = pf; hints.ai_socktype = (conn->transport == TRNSPRT_TCP) ? SOCK_STREAM : SOCK_DGRAM; |
︙ | ︙ |
Changes to jni/curl/lib/http.c.
︙ | ︙ | |||
340 341 342 343 344 345 346 | { char **userp; CURLcode result = CURLE_OK; userp = &conn->allocptr.userpwd; free(*userp); *userp = aprintf("Authorization: Bearer %s\r\n", | | | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 | { char **userp; CURLcode result = CURLE_OK; userp = &conn->allocptr.userpwd; free(*userp); *userp = aprintf("Authorization: Bearer %s\r\n", conn->data->set.str[STRING_BEARER]); if(!*userp) { result = CURLE_OUT_OF_MEMORY; goto fail; } fail: |
︙ | ︙ | |||
551 552 553 554 555 556 557 | { struct Curl_easy *data = conn->data; bool pickhost = FALSE; bool pickproxy = FALSE; CURLcode result = CURLE_OK; unsigned long authmask = ~0ul; | | | | 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 | { struct Curl_easy *data = conn->data; bool pickhost = FALSE; bool pickproxy = FALSE; CURLcode result = CURLE_OK; unsigned long authmask = ~0ul; if(!data->set.str[STRING_BEARER]) authmask &= (unsigned long)~CURLAUTH_BEARER; if(100 <= data->req.httpcode && 199 >= data->req.httpcode) /* this is a transient response code, ignore */ return CURLE_OK; if(data->state.authproblem) return data->set.http_fail_on_error?CURLE_HTTP_RETURNED_ERROR:CURLE_OK; if((conn->bits.user_passwd || data->set.str[STRING_BEARER]) && ((data->req.httpcode == 401) || (conn->bits.authneg && data->req.httpcode < 300))) { pickhost = pickoneauth(&data->state.authhost, authmask); if(!pickhost) data->state.authproblem = TRUE; if(data->state.authhost.picked == CURLAUTH_NTLM && conn->httpversion > 11) { |
︙ | ︙ | |||
637 638 639 640 641 642 643 | struct auth *authstatus, const char *request, const char *path, bool proxy) { const char *auth = NULL; CURLcode result = CURLE_OK; | < < | 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 | struct auth *authstatus, const char *request, const char *path, bool proxy) { const char *auth = NULL; CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; #ifdef CURL_DISABLE_CRYPTO_AUTH (void)request; (void)path; #endif #ifdef USE_SPNEGO |
︙ | ︙ | |||
703 704 705 706 707 708 709 | /* NOTE: this function should set 'done' TRUE, as the other auth functions work that way */ authstatus->done = TRUE; } if(authstatus->picked == CURLAUTH_BEARER) { /* Bearer */ | | | 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 | /* NOTE: this function should set 'done' TRUE, as the other auth functions work that way */ authstatus->done = TRUE; } if(authstatus->picked == CURLAUTH_BEARER) { /* Bearer */ if((!proxy && data->set.str[STRING_BEARER] && !Curl_checkheaders(conn, "Authorization:"))) { auth = "Bearer"; result = http_output_bearer(conn); if(result) return result; } |
︙ | ︙ | |||
761 762 763 764 765 766 767 | DEBUGASSERT(data); authhost = &data->state.authhost; authproxy = &data->state.authproxy; if((conn->bits.httpproxy && conn->bits.proxy_user_passwd) || | | | 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 | DEBUGASSERT(data); authhost = &data->state.authhost; authproxy = &data->state.authproxy; if((conn->bits.httpproxy && conn->bits.proxy_user_passwd) || conn->bits.user_passwd || data->set.str[STRING_BEARER]) /* continue please */; else { authhost->done = TRUE; authproxy->done = TRUE; return CURLE_OK; /* no authentication with no user or password */ } |
︙ | ︙ | |||
1687 1688 1689 1690 1691 1692 1693 | static CURLcode expect100(struct Curl_easy *data, struct connectdata *conn, Curl_send_buffer *req_buffer) { CURLcode result = CURLE_OK; data->state.expect100header = FALSE; /* default to false unless it is set to TRUE below */ | | | 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 | static CURLcode expect100(struct Curl_easy *data, struct connectdata *conn, Curl_send_buffer *req_buffer) { CURLcode result = CURLE_OK; data->state.expect100header = FALSE; /* default to false unless it is set to TRUE below */ if(!data->state.disableexpect && use_http_1_1plus(data, conn) && (conn->httpversion < 20)) { /* if not doing HTTP 1.0 or version 2, or disabled explicitly, we add an Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ const char *ptr = Curl_checkheaders(conn, "Expect"); if(ptr) { data->state.expect100header = |
︙ | ︙ | |||
2386 2387 2388 2389 2390 2391 2392 | } uc = curl_url_set(h, CURLUPART_PASSWORD, NULL, 0); if(uc) { curl_url_cleanup(h); return CURLE_OUT_OF_MEMORY; } } | | | 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 | } uc = curl_url_set(h, CURLUPART_PASSWORD, NULL, 0); if(uc) { curl_url_cleanup(h); return CURLE_OUT_OF_MEMORY; } } /* Extract the URL to use in the request. Store in STRING_TEMP_URL for clean-up reasons if the function returns before the free() further down. */ uc = curl_url_get(h, CURLUPART_URL, &data->set.str[STRING_TEMP_URL], 0); if(uc) { curl_url_cleanup(h); return CURLE_OUT_OF_MEMORY; } |
︙ | ︙ | |||
3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 | failf(data, "Failed sending HTTP request"); else /* HTTP GET/HEAD download: */ Curl_setup_transfer(data, FIRSTSOCKET, -1, TRUE, -1); } if(result) return result; if(data->req.writebytecount) { /* if a request-body has been sent off, we make sure this progress is noted properly */ Curl_pgrsSetUploadCounter(data, data->req.writebytecount); if(Curl_pgrsUpdate(conn)) result = CURLE_ABORTED_BY_CALLBACK; | > > | 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 | failf(data, "Failed sending HTTP request"); else /* HTTP GET/HEAD download: */ Curl_setup_transfer(data, FIRSTSOCKET, -1, TRUE, -1); } if(result) return result; if(!postsize) data->req.upload_done = TRUE; if(data->req.writebytecount) { /* if a request-body has been sent off, we make sure this progress is noted properly */ Curl_pgrsSetUploadCounter(data, data->req.writebytecount); if(Curl_pgrsUpdate(conn)) result = CURLE_ABORTED_BY_CALLBACK; |
︙ | ︙ | |||
3541 3542 3543 3544 3545 3546 3547 | case HTTPREQ_POST_MIME: /* We got an error response. If this happened before the whole * request body has been sent we stop sending and mark the * connection for closure after we've read the entire response. */ Curl_expire_done(data, EXPIRE_100_TIMEOUT); if(!k->upload_done) { | > > > > > > > > > | | 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 | case HTTPREQ_POST_MIME: /* We got an error response. If this happened before the whole * request body has been sent we stop sending and mark the * connection for closure after we've read the entire response. */ Curl_expire_done(data, EXPIRE_100_TIMEOUT); if(!k->upload_done) { if((k->httpcode == 417) && data->state.expect100header) { /* 417 Expectation Failed - try again without the Expect header */ infof(data, "Got 417 while waiting for a 100\n"); data->state.disableexpect = TRUE; DEBUGASSERT(!data->req.newurl); data->req.newurl = strdup(conn->data->change.url); Curl_done_sending(conn, k); } else if(data->set.http_keep_sending_on_error) { infof(data, "HTTP error before end of send, keep sending\n"); if(k->exp100 > EXP100_SEND_DATA) { k->exp100 = EXP100_SEND_DATA; k->keepon |= KEEP_SEND; } } else { |
︙ | ︙ |
Changes to jni/curl/lib/http.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_HTTP_H #define HEADER_CURL_HTTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_HTTP_H #define HEADER_CURL_HTTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
112 113 114 115 116 117 118 | /* EXPECT_100_THRESHOLD is the request body size limit for when libcurl will * automatically add an "Expect: 100-continue" header in HTTP requests. When * the size is unknown, it will always add it. * */ #ifndef EXPECT_100_THRESHOLD | | | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | /* EXPECT_100_THRESHOLD is the request body size limit for when libcurl will * automatically add an "Expect: 100-continue" header in HTTP requests. When * the size is unknown, it will always add it. * */ #ifndef EXPECT_100_THRESHOLD #define EXPECT_100_THRESHOLD (1024*1024) #endif #endif /* CURL_DISABLE_HTTP */ #ifdef USE_NGHTTP3 struct h3out; /* see ngtcp2 */ #endif |
︙ | ︙ |
Changes to jni/curl/lib/http2.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
39 40 41 42 43 44 45 | /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #define H2_BUFSIZE 32768 | | < < < | < < < < < | | 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 | /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #define H2_BUFSIZE 32768 #if (NGHTTP2_VERSION_NUM < 0x010c00) #error too old nghttp2 version, upgrade! #endif #ifdef CURL_DISABLE_VERBOSE_STRINGS #define nghttp2_session_callbacks_set_error_callback(x,y) #endif #if (NGHTTP2_VERSION_NUM >= 0x010c00) #define NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE 1 #endif #define HTTP2_HUGE_WINDOW_SIZE (32 * 1024 * 1024) /* 32 MB */ #ifdef DEBUG_HTTP2 #define H2BUGF(x) x #else #define H2BUGF(x) do { } while(0) #endif |
︙ | ︙ | |||
340 341 342 343 344 345 346 | */ int Curl_http2_ver(char *p, size_t len) { nghttp2_info *h2 = nghttp2_version(0); return msnprintf(p, len, " nghttp2/%s", h2->version_str); } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | */ int Curl_http2_ver(char *p, size_t len) { nghttp2_info *h2 = nghttp2_version(0); return msnprintf(p, len, " nghttp2/%s", h2->version_str); } /* * The implementation of nghttp2_send_callback type. Here we write |data| with * size |length| to the network and return the number of bytes actually * written. See the documentation of nghttp2_send_callback for the details. */ static ssize_t send_callback(nghttp2_session *h2, const uint8_t *data, size_t length, int flags, |
︙ | ︙ | |||
834 835 836 837 838 839 840 | data_s = nghttp2_session_get_stream_user_data(session, stream_id); if(!data_s) { /* We could get stream ID not in the hash. For example, if we decided to reject stream (e.g., PUSH_PROMISE). */ return 0; } H2BUGF(infof(data_s, "on_stream_close(), %s (err %d), stream %u\n", | | | 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 | data_s = nghttp2_session_get_stream_user_data(session, stream_id); if(!data_s) { /* We could get stream ID not in the hash. For example, if we decided to reject stream (e.g., PUSH_PROMISE). */ return 0; } H2BUGF(infof(data_s, "on_stream_close(), %s (err %d), stream %u\n", nghttp2_strerror(error_code), error_code, stream_id)); stream = data_s->req.protop; if(!stream) return NGHTTP2_ERR_CALLBACK_FAILURE; stream->closed = TRUE; httpc = &conn->proto.httpc; drain_this(data_s, httpc); |
︙ | ︙ | |||
1134 1135 1136 1137 1138 1139 1140 | H2BUGF(infof(data_s, "data_source_read_callback: " "returns %zu bytes stream %u\n", nread, stream_id)); return nread; } | < | > | | 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 | H2BUGF(infof(data_s, "data_source_read_callback: " "returns %zu bytes stream %u\n", nread, stream_id)); return nread; } #if !defined(CURL_DISABLE_VERBOSE_STRINGS) static int error_callback(nghttp2_session *session, const char *msg, size_t len, void *userp) { struct connectdata *conn = (struct connectdata *)userp; (void)session; infof(conn->data, "http2 error: %.*s\n", len, msg); return 0; } #endif static void populate_settings(struct connectdata *conn, struct http_conn *httpc) { nghttp2_settings_entry *iv = httpc->local_settings; DEBUGASSERT(conn->data); iv[0].settings_id = NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS; iv[0].value = Curl_multi_max_concurrent_streams(conn->data->multi); iv[1].settings_id = NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE; iv[1].value = HTTP2_HUGE_WINDOW_SIZE; iv[2].settings_id = NGHTTP2_SETTINGS_ENABLE_PUSH; iv[2].value = conn->data->multi->push_cb != NULL; |
︙ | ︙ | |||
1253 1254 1255 1256 1257 1258 1259 | (callbacks, on_stream_close); /* nghttp2_on_begin_headers_callback */ nghttp2_session_callbacks_set_on_begin_headers_callback (callbacks, on_begin_headers); /* nghttp2_on_header_callback */ nghttp2_session_callbacks_set_on_header_callback(callbacks, on_header); | < < | 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 | (callbacks, on_stream_close); /* nghttp2_on_begin_headers_callback */ nghttp2_session_callbacks_set_on_begin_headers_callback (callbacks, on_begin_headers); /* nghttp2_on_header_callback */ nghttp2_session_callbacks_set_on_header_callback(callbacks, on_header); nghttp2_session_callbacks_set_error_callback(callbacks, error_callback); /* The nghttp2 session is not yet setup, do it */ rc = nghttp2_session_client_new(&conn->proto.httpc.h2, callbacks, conn); nghttp2_session_callbacks_del(callbacks); if(rc) { |
︙ | ︙ | |||
1453 1454 1455 1456 1457 1458 1459 | connclose(conn, "REFUSED_STREAM"); /* don't use this anymore */ data->state.refused_stream = TRUE; *err = CURLE_RECV_ERROR; /* trigger Curl_retry_request() later */ return -1; } else if(httpc->error_code != NGHTTP2_NO_ERROR) { failf(data, "HTTP/2 stream %d was not closed cleanly: %s (err %u)", | | | 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 | connclose(conn, "REFUSED_STREAM"); /* don't use this anymore */ data->state.refused_stream = TRUE; *err = CURLE_RECV_ERROR; /* trigger Curl_retry_request() later */ return -1; } else if(httpc->error_code != NGHTTP2_NO_ERROR) { failf(data, "HTTP/2 stream %d was not closed cleanly: %s (err %u)", stream->stream_id, nghttp2_strerror(httpc->error_code), httpc->error_code); *err = CURLE_HTTP2_STREAM; return -1; } if(!stream->bodystarted) { failf(data, "HTTP/2 stream %d was closed cleanly, but before getting " |
︙ | ︙ | |||
1590 1591 1592 1593 1594 1595 1596 | stream->nread_header_recvbuf += ncopy; H2BUGF(infof(data, "http2_recv: Got %d bytes from header_recvbuf\n", (int)ncopy)); return ncopy; } | | | > > > > | 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 | stream->nread_header_recvbuf += ncopy; H2BUGF(infof(data, "http2_recv: Got %d bytes from header_recvbuf\n", (int)ncopy)); return ncopy; } H2BUGF(infof(data, "http2_recv: easy %p (stream %u) win %u/%u\n", data, stream->stream_id, nghttp2_session_get_local_window_size(httpc->h2), nghttp2_session_get_stream_local_window_size(httpc->h2, stream->stream_id) )); if((data->state.drain) && stream->memlen) { H2BUGF(infof(data, "http2_recv: DRAIN %zu bytes stream %u!! (%p => %p)\n", stream->memlen, stream->stream_id, stream->mem, mem)); if(mem != stream->mem) { /* if we didn't get the same buffer this time, we must move the data to |
︙ | ︙ | |||
1622 1623 1624 1625 1626 1627 1628 | DEBUGASSERT(httpc->pause_stream_id == stream->stream_id); nread = CURLMIN(len, stream->pauselen); memcpy(mem, stream->pausedata, nread); stream->pausedata += nread; stream->pauselen -= nread; | < | 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 | DEBUGASSERT(httpc->pause_stream_id == stream->stream_id); nread = CURLMIN(len, stream->pauselen); memcpy(mem, stream->pausedata, nread); stream->pausedata += nread; stream->pauselen -= nread; if(stream->pauselen == 0) { H2BUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id)); DEBUGASSERT(httpc->pause_stream_id == stream->stream_id); httpc->pause_stream_id = 0; stream->pausedata = NULL; stream->pauselen = 0; |
︙ | ︙ | |||
2260 2261 2262 2263 2264 2265 2266 | if(rv != 0) { failf(data, "nghttp2_submit_settings() failed: %s(%d)", nghttp2_strerror(rv), rv); return CURLE_HTTP2; } } | < < | 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 | if(rv != 0) { failf(data, "nghttp2_submit_settings() failed: %s(%d)", nghttp2_strerror(rv), rv); return CURLE_HTTP2; } } rv = nghttp2_session_set_local_window_size(httpc->h2, NGHTTP2_FLAG_NONE, 0, HTTP2_HUGE_WINDOW_SIZE); if(rv != 0) { failf(data, "nghttp2_session_set_local_window_size() failed: %s(%d)", nghttp2_strerror(rv), rv); return CURLE_HTTP2; } /* we are going to copy mem to httpc->inbuf. This is required since mem is part of buffer pointed by stream->mem, and callbacks called by nghttp2_session_mem_recv() will write stream specific data into stream->mem, overwriting data already there. */ if(H2_BUFSIZE < nread) { failf(data, "connection buffer size is too small to store data following " |
︙ | ︙ | |||
2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 | H2BUGF(infof(data, "nghttp2_session_send(): nothing to do in this session\n")); return CURLE_HTTP2; } return CURLE_OK; } CURLcode Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, bool exclusive) { if(parent) { struct Curl_http2_dep **tail; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 | H2BUGF(infof(data, "nghttp2_session_send(): nothing to do in this session\n")); return CURLE_HTTP2; } return CURLE_OK; } CURLcode Curl_http2_stream_pause(struct Curl_easy *data, bool pause) { DEBUGASSERT(data); DEBUGASSERT(data->conn); /* if it isn't HTTP/2, we're done */ if(!data->conn->proto.httpc.h2) return CURLE_OK; #ifdef NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE else { struct HTTP *stream = data->req.protop; struct http_conn *httpc = &data->conn->proto.httpc; uint32_t window = !pause * HTTP2_HUGE_WINDOW_SIZE; int rv = nghttp2_session_set_local_window_size(httpc->h2, NGHTTP2_FLAG_NONE, stream->stream_id, window); if(rv) { failf(data, "nghttp2_session_set_local_window_size() failed: %s(%d)", nghttp2_strerror(rv), rv); return CURLE_HTTP2; } /* make sure the window update gets sent */ rv = h2_session_send(data, httpc->h2); if(rv) return CURLE_SEND_ERROR; DEBUGF(infof(data, "Set HTTP/2 window size to %u for stream %u\n", window, stream->stream_id)); #ifdef DEBUGBUILD { /* read out the stream local window again */ uint32_t window2 = nghttp2_session_get_stream_local_window_size(httpc->h2, stream->stream_id); DEBUGF(infof(data, "HTTP/2 window size is now %u for stream %u\n", window2, stream->stream_id)); } #endif } #endif return CURLE_OK; } CURLcode Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, bool exclusive) { if(parent) { struct Curl_http2_dep **tail; |
︙ | ︙ |
Changes to jni/curl/lib/http2.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_HTTP2_H #define HEADER_CURL_HTTP2_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_HTTP2_H #define HEADER_CURL_HTTP2_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
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 | CURLcode Curl_http2_done_sending(struct connectdata *conn); CURLcode Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, bool exclusive); void Curl_http2_remove_child(struct Curl_easy *parent, struct Curl_easy *child); void Curl_http2_cleanup_dependencies(struct Curl_easy *data); /* returns true if the HTTP/2 stream error was HTTP_1_1_REQUIRED */ bool Curl_h2_http_1_1_error(struct connectdata *conn); #else /* USE_NGHTTP2 */ #define Curl_http2_request_upgrade(x,y) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_setup(x) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_switched(x,y,z) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_setup_conn(x) Curl_nop_stmt #define Curl_http2_setup_req(x) #define Curl_http2_init_state(x) #define Curl_http2_init_userset(x) #define Curl_http2_done(x,y) #define Curl_http2_done_sending(x) #define Curl_http2_add_child(x, y, z) #define Curl_http2_remove_child(x, y) #define Curl_http2_cleanup_dependencies(x) #define Curl_h2_http_1_1_error(x) 0 #endif #endif /* HEADER_CURL_HTTP2_H */ | > > | 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 | CURLcode Curl_http2_done_sending(struct connectdata *conn); CURLcode Curl_http2_add_child(struct Curl_easy *parent, struct Curl_easy *child, bool exclusive); void Curl_http2_remove_child(struct Curl_easy *parent, struct Curl_easy *child); void Curl_http2_cleanup_dependencies(struct Curl_easy *data); CURLcode Curl_http2_stream_pause(struct Curl_easy *data, bool pause); /* returns true if the HTTP/2 stream error was HTTP_1_1_REQUIRED */ bool Curl_h2_http_1_1_error(struct connectdata *conn); #else /* USE_NGHTTP2 */ #define Curl_http2_request_upgrade(x,y) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_setup(x) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_switched(x,y,z) CURLE_UNSUPPORTED_PROTOCOL #define Curl_http2_setup_conn(x) Curl_nop_stmt #define Curl_http2_setup_req(x) #define Curl_http2_init_state(x) #define Curl_http2_init_userset(x) #define Curl_http2_done(x,y) #define Curl_http2_done_sending(x) #define Curl_http2_add_child(x, y, z) #define Curl_http2_remove_child(x, y) #define Curl_http2_cleanup_dependencies(x) #define Curl_http2_stream_pause(x, y) #define Curl_h2_http_1_1_error(x) 0 #endif #endif /* HEADER_CURL_HTTP2_H */ |
Changes to jni/curl/lib/libcurl.plist.
︙ | ︙ | |||
11 12 13 14 15 16 17 | <key>CFBundleExecutable</key> <string>curl</string> <key>CFBundleIdentifier</key> <string>se.haxx.curl.libcurl</string> <key>CFBundleVersion</key> | | | | | 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 | <key>CFBundleExecutable</key> <string>curl</string> <key>CFBundleIdentifier</key> <string>se.haxx.curl.libcurl</string> <key>CFBundleVersion</key> <string>7.69.0</string> <key>CFBundleName</key> <string>libcurl</string> <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleShortVersionString</key> <string>libcurl 7.69.0</string> <key>CFBundleGetInfoString</key> <string>libcurl.plist 7.69.0</string> </dict> </plist> |
Changes to jni/curl/lib/llist.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
140 141 142 143 144 145 146 | } size_t Curl_llist_count(struct curl_llist *list) { return list->size; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 140 141 142 143 144 145 146 | } size_t Curl_llist_count(struct curl_llist *list) { return list->size; } |
Changes to jni/curl/lib/llist.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_LLIST_H #define HEADER_CURL_LLIST_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_LLIST_H #define HEADER_CURL_LLIST_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
43 44 45 46 47 48 49 | void Curl_llist_init(struct curl_llist *, curl_llist_dtor); void Curl_llist_insert_next(struct curl_llist *, struct curl_llist_element *, const void *, struct curl_llist_element *node); void Curl_llist_remove(struct curl_llist *, struct curl_llist_element *, void *); size_t Curl_llist_count(struct curl_llist *); void Curl_llist_destroy(struct curl_llist *, void *); | < < < | 43 44 45 46 47 48 49 50 | void Curl_llist_init(struct curl_llist *, curl_llist_dtor); void Curl_llist_insert_next(struct curl_llist *, struct curl_llist_element *, const void *, struct curl_llist_element *node); void Curl_llist_remove(struct curl_llist *, struct curl_llist_element *, void *); size_t Curl_llist_count(struct curl_llist *); void Curl_llist_destroy(struct curl_llist *, void *); #endif /* HEADER_CURL_LLIST_H */ |
Changes to jni/curl/lib/md4.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
25 26 27 28 29 30 31 | #if !defined(CURL_DISABLE_CRYPTO_AUTH) #include "curl_md4.h" #include "warnless.h" #ifdef USE_OPENSSL #include <openssl/opensslconf.h> | | > > > > > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #if !defined(CURL_DISABLE_CRYPTO_AUTH) #include "curl_md4.h" #include "warnless.h" #ifdef USE_OPENSSL #include <openssl/opensslconf.h> #endif /* USE_OPENSSL */ #ifdef USE_MBEDTLS #include <mbedtls/config.h> #include <mbedtls/version.h> #if(MBEDTLS_VERSION_NUMBER >= 0x02070000) #define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS #endif #endif /* USE_MBEDTLS */ #if defined(USE_GNUTLS_NETTLE) #include <nettle/md4.h> #include "curl_memory.h" |
︙ | ︙ | |||
61 62 63 64 65 66 67 68 69 70 | } #elif defined(USE_GNUTLS) #include <gcrypt.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" | > | | | > > | > > < < < | < | < < < | < < < < < | < < < > | | | 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 96 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 159 160 161 162 163 | } #elif defined(USE_GNUTLS) #include <gcrypt.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef gcry_md_hd_t MD4_CTX; static void MD4_Init(MD4_CTX *ctx) { gcry_md_open(ctx, GCRY_MD_MD4, 0); } static void MD4_Update(MD4_CTX *ctx, const void *data, unsigned long size) { gcry_md_write(*ctx, data, size); } static void MD4_Final(unsigned char *result, MD4_CTX *ctx) { memcpy(result, gcry_md_read(*ctx, 0), MD4_DIGEST_LENGTH); gcry_md_close(*ctx); } #elif defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4) /* When OpenSSL is available we use the MD4-functions from OpenSSL */ #include <openssl/md4.h> #elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \ (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \ (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000)) #include <CommonCrypto/CommonDigest.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef CC_MD4_CTX MD4_CTX; static void MD4_Init(MD4_CTX *ctx) { (void)CC_MD4_Init(ctx); } static void MD4_Update(MD4_CTX *ctx, const void *data, unsigned long size) { (void)CC_MD4_Update(ctx, data, (CC_LONG)size); } static void MD4_Final(unsigned char *result, MD4_CTX *ctx) { (void)CC_MD4_Final(result, ctx); } #elif defined(USE_WIN32_CRYPTO) #include <wincrypt.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef struct { HCRYPTPROV hCryptProv; HCRYPTHASH hHash; } MD4_CTX; static void MD4_Init(MD4_CTX *ctx) { ctx->hCryptProv = 0; ctx->hHash = 0; if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { CryptCreateHash(ctx->hCryptProv, CALG_MD4, 0, 0, &ctx->hHash); } } static void MD4_Update(MD4_CTX *ctx, const void *data, unsigned long size) { CryptHashData(ctx->hHash, (BYTE *)data, (unsigned int) size, 0); } static void MD4_Final(unsigned char *result, MD4_CTX *ctx) { unsigned long length = 0; CryptGetHashParam(ctx->hHash, HP_HASHVAL, NULL, &length, 0); |
︙ | ︙ | |||
175 176 177 178 179 180 181 182 183 184 185 186 187 188 | } #elif(defined(USE_MBEDTLS) && defined(MBEDTLS_MD4_C)) #include <mbedtls/md4.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef struct { void *data; unsigned long size; } MD4_CTX; | > | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | } #elif(defined(USE_MBEDTLS) && defined(MBEDTLS_MD4_C)) #include <mbedtls/md4.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef struct { void *data; unsigned long size; } MD4_CTX; |
︙ | ︙ | |||
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | } } } static void MD4_Final(unsigned char *result, MD4_CTX *ctx) { if(ctx->data != NULL) { mbedtls_md4(ctx->data, ctx->size, result); Curl_safefree(ctx->data); ctx->size = 0; } } #else | > > > > | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 | } } } static void MD4_Final(unsigned char *result, MD4_CTX *ctx) { if(ctx->data != NULL) { #if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_md4(ctx->data, ctx->size, result); #else (void) mbedtls_md4_ret(ctx->data, ctx->size, result); #endif Curl_safefree(ctx->data); ctx->size = 0; } } #else |
︙ | ︙ | |||
501 502 503 504 505 506 507 | result[15] = curlx_ultouc(ctx->d >> 24); memset(ctx, 0, sizeof(*ctx)); } #endif /* CRYPTO LIBS */ | | > > | 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 | result[15] = curlx_ultouc(ctx->d >> 24); memset(ctx, 0, sizeof(*ctx)); } #endif /* CRYPTO LIBS */ void Curl_md4it(unsigned char *output, const unsigned char *input, const size_t len) { MD4_CTX ctx; MD4_Init(&ctx); MD4_Update(&ctx, input, curlx_uztoui(len)); MD4_Final(output, &ctx); } #endif /* CURL_DISABLE_CRYPTO_AUTH */ |
Changes to jni/curl/lib/md5.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <curl/curl.h> #include "curl_md5.h" #include "curl_hmac.h" #include "warnless.h" #if defined(USE_GNUTLS_NETTLE) #include <nettle/md5.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" | > > > > > > > > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <curl/curl.h> #include "curl_md5.h" #include "curl_hmac.h" #include "warnless.h" #ifdef USE_MBEDTLS #include <mbedtls/version.h> #if(MBEDTLS_VERSION_NUMBER >= 0x02070000) #define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS #endif #endif /* USE_MBEDTLS */ #if defined(USE_GNUTLS_NETTLE) #include <nettle/md5.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" |
︙ | ︙ | |||
47 48 49 50 51 52 53 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { md5_update(ctx, inputLen, input); } | | | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { md5_update(ctx, inputLen, input); } static void MD5_Final(unsigned char *digest, MD5_CTX *ctx) { md5_digest(ctx, 16, digest); } #elif defined(USE_GNUTLS) #include <gcrypt.h> |
︙ | ︙ | |||
73 74 75 76 77 78 79 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { gcry_md_write(*ctx, input, inputLen); } | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 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 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { gcry_md_write(*ctx, input, inputLen); } static void MD5_Final(unsigned char *digest, MD5_CTX *ctx) { memcpy(digest, gcry_md_read(*ctx, 0), 16); gcry_md_close(*ctx); } #elif defined(USE_OPENSSL) && !defined(USE_AMISSL) /* When OpenSSL is available we use the MD5-function from OpenSSL */ #include <openssl/md5.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" #elif defined(USE_MBEDTLS) #include <mbedtls/md5.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef mbedtls_md5_context MD5_CTX; static void MD5_Init(MD5_CTX *ctx) { #if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_md5_starts(ctx); #else (void) mbedtls_md5_starts_ret(ctx); #endif } static void MD5_Update(MD5_CTX *ctx, const unsigned char *data, unsigned int length) { #if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_md5_update(ctx, data, length); #else (void) mbedtls_md5_update_ret(ctx, data, length); #endif } static void MD5_Final(unsigned char *digest, MD5_CTX *ctx) { #if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_md5_finish(ctx, digest); #else (void) mbedtls_md5_finish_ret(ctx, digest); #endif } #elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \ (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \ (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000)) /* For Apple operating systems: CommonCrypto has the functions we need. |
︙ | ︙ | |||
115 116 117 118 119 120 121 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { CC_MD5_Update(ctx, input, inputLen); } | | | | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { CC_MD5_Update(ctx, input, inputLen); } static void MD5_Final(unsigned char *digest, MD5_CTX *ctx) { CC_MD5_Final(digest, ctx); } #elif defined(USE_WIN32_CRYPTO) #include <wincrypt.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef struct { |
︙ | ︙ | |||
147 148 149 150 151 152 153 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0); } | | > > | 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 | static void MD5_Update(MD5_CTX *ctx, const unsigned char *input, unsigned int inputLen) { CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0); } static void MD5_Final(unsigned char *digest, MD5_CTX *ctx) { unsigned long length = 0; CryptGetHashParam(ctx->hHash, HP_HASHVAL, NULL, &length, 0); if(length == 16) CryptGetHashParam(ctx->hHash, HP_HASHVAL, digest, &length, 0); if(ctx->hHash) CryptDestroyHash(ctx->hHash); if(ctx->hCryptProv) CryptReleaseContext(ctx->hCryptProv, 0); } #else /* When no other crypto library is available we use this code segment */ /* * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. * MD5 Message-Digest Algorithm (RFC 1321). * * Homepage: https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 * |
︙ | ︙ | |||
509 510 511 512 513 514 515 | 16 } }; /* * @unittest: 1601 */ | | | > | | 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 | 16 } }; /* * @unittest: 1601 */ void Curl_md5it(unsigned char *outbuffer, const unsigned char *input, const size_t len) { MD5_CTX ctx; MD5_Init(&ctx); MD5_Update(&ctx, input, curlx_uztoui(len)); MD5_Final(outbuffer, &ctx); } MD5_context *Curl_MD5_init(const MD5_params *md5params) { MD5_context *ctxt; |
︙ | ︙ |
Changes to jni/curl/lib/mime.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ |
Changes to jni/curl/lib/mime.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_MIME_H #define HEADER_CURL_MIME_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_MIME_H #define HEADER_CURL_MIME_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ |
Changes to jni/curl/lib/mk-ca-bundle.pl.
1 2 3 4 5 6 7 8 | #!/usr/bin/env perl # *************************************************************************** # * _ _ ____ _ # * Project ___| | | | _ \| | # * / __| | | | |_) | | # * | (__| |_| | _ <| |___ # * \___|\___/|_| \_\_____| # * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env perl # *************************************************************************** # * _ _ ____ _ # * Project ___| | | | _ \| | # * / __| | | | |_) | | # * | (__| |_| | _ <| |___ # * \___|\___/|_| \_\_____| # * # * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # * # * This software is licensed as described in the file COPYING, which # * you should have received as part of this distribution. The terms # * are also available at https://curl.haxx.se/docs/copyright.html. # * # * You may opt to use, copy, modify, merge, publish, distribute and/or sell # * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
34 35 36 37 38 39 40 41 42 43 44 45 46 47 | use Getopt::Std; use MIME::Base64; use strict; use warnings; use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); use List::Util; use Text::Wrap; my $MOD_SHA = "Digest::SHA"; eval "require $MOD_SHA"; if ($@) { $MOD_SHA = "Digest::SHA::PurePerl"; eval "require $MOD_SHA"; } eval "require LWP::UserAgent"; | > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | use Getopt::Std; use MIME::Base64; use strict; use warnings; use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); use List::Util; use Text::Wrap; use Time::Local; my $MOD_SHA = "Digest::SHA"; eval "require $MOD_SHA"; if ($@) { $MOD_SHA = "Digest::SHA::PurePerl"; eval "require $MOD_SHA"; } eval "require LWP::UserAgent"; |
︙ | ︙ | |||
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | report "Processing '$txt' ..."; my $caname; my $certnum = 0; my $skipnum = 0; my $start_of_cert = 0; my @precert; open(TXT,"$txt") or die "Couldn't open $txt: $!\n"; while (<TXT>) { if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { print CRT; print if ($opt_l); while (<TXT>) { print CRT; print if ($opt_l); last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); } } elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { push @precert, $_; next; } elsif(/^#|^\s*$/) { undef @precert; next; } chomp; # this is a match for the start of a certificate if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { $start_of_cert = 1 } if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { $caname = $1; } my %trust_purposes_by_level; if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | < < < < | > > > | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 | report "Processing '$txt' ..."; my $caname; my $certnum = 0; my $skipnum = 0; my $start_of_cert = 0; my @precert; my $cka_value; my $valid = 1; open(TXT,"$txt") or die "Couldn't open $txt: $!\n"; while (<TXT>) { if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { print CRT; print if ($opt_l); while (<TXT>) { print CRT; print if ($opt_l); last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); } } elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { push @precert, $_; $valid = 1; next; } elsif(/^#|^\s*$/) { undef @precert; next; } chomp; # Example: # CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL # \062\060\060\066\061\067\060\060\060\060\060\060\132 # END if (/^CKA_NSS_SERVER_DISTRUST_AFTER (CK_BBOOL CK_FALSE|MULTILINE_OCTAL)/) { if($1 eq "MULTILINE_OCTAL") { my @timestamp; while (<TXT>) { last if (/^END/); chomp; my @octets = split(/\\/); shift @octets; for (@octets) { push @timestamp, chr(oct); } } # A trailing Z in the timestamp signifies UTC if($timestamp[12] ne "Z") { report "distrust date stamp is not using UTC"; } # Example date: 200617000000Z # Means 2020-06-17 00:00:00 UTC my $distrustat = timegm($timestamp[10] . $timestamp[11], # second $timestamp[8] . $timestamp[9], # minute $timestamp[6] . $timestamp[7], # hour $timestamp[4] . $timestamp[5], # day ($timestamp[2] . $timestamp[3]) - 1, # month "20" . $timestamp[0] . $timestamp[1]); # year if(time >= $distrustat) { # not trusted anymore $skipnum++; report "Skipping: $caname is not trusted anymore" if ($opt_v); $valid = 0; } else { # still trusted } } next; } # this is a match for the start of a certificate if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { $start_of_cert = 1 } if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { $caname = $1; } my %trust_purposes_by_level; if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { $cka_value=""; while (<TXT>) { last if (/^END/); chomp; my @octets = split(/\\/); shift @octets; for (@octets) { $cka_value .= chr(oct); } } } if(/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/ && $valid) { # now scan the trust part to determine how we should trust this cert while (<TXT>) { last if (/^#/); if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) { if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) { report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2"; } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) { report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2"; } else { push @{$trust_purposes_by_level{$2}}, $1; } } } if ( !should_output_cert(%trust_purposes_by_level) ) { $skipnum ++; report "Skipping: $caname" if ($opt_v); } else { my $data = $cka_value; $cka_value = ""; my $encoded = MIME::Base64::encode_base64($data, ''); $encoded =~ s/(.{1,${opt_w}})/$1\n/g; my $pem = "-----BEGIN CERTIFICATE-----\n" . $encoded . "-----END CERTIFICATE-----\n"; print CRT "\n$caname\n"; print CRT @precert if($opt_m); |
︙ | ︙ |
Changes to jni/curl/lib/multi.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include "multihandle.h" #include "sigpipe.h" #include "vtls/vtls.h" #include "connect.h" #include "http_proxy.h" #include "http2.h" #include "socketpair.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* CURL_SOCKET_HASH_TABLE_SIZE should be a prime number. Increasing it from 97 | > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include "multihandle.h" #include "sigpipe.h" #include "vtls/vtls.h" #include "connect.h" #include "http_proxy.h" #include "http2.h" #include "socketpair.h" #include "socks.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* CURL_SOCKET_HASH_TABLE_SIZE should be a prime number. Increasing it from 97 |
︙ | ︙ | |||
365 366 367 368 369 370 371 372 373 374 375 376 377 378 | Curl_llist_init(&multi->msglist, NULL); Curl_llist_init(&multi->pending, NULL); multi->multiplexing = TRUE; /* -1 means it not set by user, use the default value */ multi->maxconnects = -1; #ifdef ENABLE_WAKEUP if(Curl_socketpair(AF_UNIX, SOCK_STREAM, 0, multi->wakeup_pair) < 0) { multi->wakeup_pair[0] = CURL_SOCKET_BAD; multi->wakeup_pair[1] = CURL_SOCKET_BAD; } else if(curlx_nonblock(multi->wakeup_pair[0], TRUE) < 0 || | > > | 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 | Curl_llist_init(&multi->msglist, NULL); Curl_llist_init(&multi->pending, NULL); multi->multiplexing = TRUE; /* -1 means it not set by user, use the default value */ multi->maxconnects = -1; multi->max_concurrent_streams = 100; multi->ipv6_works = Curl_ipv6works(NULL); #ifdef ENABLE_WAKEUP if(Curl_socketpair(AF_UNIX, SOCK_STREAM, 0, multi->wakeup_pair) < 0) { multi->wakeup_pair[0] = CURL_SOCKET_BAD; multi->wakeup_pair[1] = CURL_SOCKET_BAD; } else if(curlx_nonblock(multi->wakeup_pair[0], TRUE) < 0 || |
︙ | ︙ | |||
586 587 588 589 590 591 592 593 594 595 596 597 598 599 | process_pending_handles(data->multi); /* connection / multiplex */ CONN_LOCK(data); detach_connnection(data); if(CONN_INUSE(conn)) { /* Stop if still used. */ CONN_UNLOCK(data); DEBUGF(infof(data, "Connection still in use %zu, " "no more multi_done now!\n", conn->easyq.size)); return CURLE_OK; } conn->data = NULL; /* the connection now has no owner */ | > > > | 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 | process_pending_handles(data->multi); /* connection / multiplex */ CONN_LOCK(data); detach_connnection(data); if(CONN_INUSE(conn)) { /* Stop if still used. */ /* conn->data must not remain pointing to this transfer since it is going away! Find another to own it! */ conn->data = conn->easyq.head->ptr; CONN_UNLOCK(data); DEBUGF(infof(data, "Connection still in use %zu, " "no more multi_done now!\n", conn->easyq.size)); return CURLE_OK; } conn->data = NULL; /* the connection now has no owner */ |
︙ | ︙ | |||
721 722 723 724 725 726 727 | if(data->conn) { /* we must call multi_done() here (if we still own the connection) so that we don't leave a half-baked one around */ if(easy_owns_conn) { | | | | 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 | if(data->conn) { /* we must call multi_done() here (if we still own the connection) so that we don't leave a half-baked one around */ if(easy_owns_conn) { /* multi_done() clears the association between the easy handle and the connection. Note that this ignores the return code simply because there's nothing really useful to do with it anyway! */ (void)multi_done(data, data->result, premature); } } |
︙ | ︙ | |||
847 848 849 850 851 852 853 854 855 856 857 858 859 860 | int rc = 0; #ifdef USE_SSL if(CONNECT_FIRSTSOCKET_PROXY_SSL()) return Curl_ssl_getsock(conn, sock); #endif for(i = 0; i<2; i++) { if(conn->tempsock[i] != CURL_SOCKET_BAD) { sock[s] = conn->tempsock[i]; rc |= GETSOCK_WRITESOCK(s); #ifdef ENABLE_QUIC if(conn->transport == TRNSPRT_QUIC) /* when connecting QUIC, we want to read the socket too */ | > > > | 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 | int rc = 0; #ifdef USE_SSL if(CONNECT_FIRSTSOCKET_PROXY_SSL()) return Curl_ssl_getsock(conn, sock); #endif if(SOCKS_STATE(conn->cnnct.state)) return Curl_SOCKS_getsock(conn, sock, FIRSTSOCKET); for(i = 0; i<2; i++) { if(conn->tempsock[i] != CURL_SOCKET_BAD) { sock[s] = conn->tempsock[i]; rc |= GETSOCK_WRITESOCK(s); #ifdef ENABLE_QUIC if(conn->transport == TRNSPRT_QUIC) /* when connecting QUIC, we want to read the socket too */ |
︙ | ︙ | |||
1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 | if(!GOOD_MULTI_HANDLE(multi)) return CURLM_BAD_HANDLE; if(multi->in_callback) return CURLM_RECURSIVE_API_CALL; /* Count up how many fds we have from the multi handle */ data = multi->easyp; while(data) { bitmap = multi_getsock(data, sockbunch); for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++) { curl_socket_t s = CURL_SOCKET_BAD; | > > > | 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 | if(!GOOD_MULTI_HANDLE(multi)) return CURLM_BAD_HANDLE; if(multi->in_callback) return CURLM_RECURSIVE_API_CALL; if(timeout_ms < 0) return CURLM_BAD_FUNCTION_ARGUMENT; /* Count up how many fds we have from the multi handle */ data = multi->easyp; while(data) { bitmap = multi_getsock(data, sockbunch); for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++) { curl_socket_t s = CURL_SOCKET_BAD; |
︙ | ︙ | |||
1183 1184 1185 1186 1187 1188 1189 | if(ufds[curlfds + extra_nfds].revents & POLLIN) { char buf[64]; while(1) { /* the reading socket is non-blocking, try to read data from it until it receives an error (except EINTR). In normal cases it will get EAGAIN or EWOULDBLOCK when there is no more data, breaking the loop. */ | | | 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 | if(ufds[curlfds + extra_nfds].revents & POLLIN) { char buf[64]; while(1) { /* the reading socket is non-blocking, try to read data from it until it receives an error (except EINTR). In normal cases it will get EAGAIN or EWOULDBLOCK when there is no more data, breaking the loop. */ if(sread(multi->wakeup_pair[0], buf, sizeof(buf)) <= 0) { #ifndef USE_WINSOCK if(EINTR == SOCKERRNO) continue; #endif break; } } |
︙ | ︙ | |||
2179 2180 2181 2182 2183 2184 2185 | if(!result) { multistate(data, CURLM_STATE_DONE); rc = CURLM_CALL_MULTI_PERFORM; } } } | | > > > > | > | 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 | if(!result) { multistate(data, CURLM_STATE_DONE); rc = CURLM_CALL_MULTI_PERFORM; } } } else if(comeback) { /* This avoids CURLM_CALL_MULTI_PERFORM so that a very fast transfer won't get stuck on this transfer at the expense of other concurrent transfers */ Curl_expire(data, 0, EXPIRE_RUN_NOW); rc = CURLM_OK; } break; } case CURLM_STATE_DONE: /* this state is highly transient, so run another loop after this */ rc = CURLM_CALL_MULTI_PERFORM; |
︙ | ︙ | |||
2893 2894 2895 2896 2897 2898 2899 | break; case CURLMOPT_MAX_CONCURRENT_STREAMS: { long streams = va_arg(param, long); if(streams < 1) streams = 100; multi->max_concurrent_streams = | | | | 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 | break; case CURLMOPT_MAX_CONCURRENT_STREAMS: { long streams = va_arg(param, long); if(streams < 1) streams = 100; multi->max_concurrent_streams = (streams > (long)INITIAL_MAX_CONCURRENT_STREAMS)? INITIAL_MAX_CONCURRENT_STREAMS : (unsigned int)streams; } break; default: res = CURLM_UNKNOWN_OPTION; break; } va_end(param); |
︙ | ︙ | |||
3336 3337 3338 3339 3340 3341 3342 | if(data->numsocks) fprintf(stderr, "\n"); } } } #endif | | | | | 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 | if(data->numsocks) fprintf(stderr, "\n"); } } } #endif unsigned int Curl_multi_max_concurrent_streams(struct Curl_multi *multi) { DEBUGASSERT(multi); return multi->max_concurrent_streams; } |
Changes to jni/curl/lib/multihandle.h.
︙ | ︙ | |||
115 116 117 118 119 120 121 | struct Curl_tree *timetree; /* 'sockhash' is the lookup hash for socket descriptor => easy handles (note the pluralis form, there can be more than one easy handle waiting on the same actual socket) */ struct curl_hash sockhash; | < < < < < < | > > > > > | 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 | struct Curl_tree *timetree; /* 'sockhash' is the lookup hash for socket descriptor => easy handles (note the pluralis form, there can be more than one easy handle waiting on the same actual socket) */ struct curl_hash sockhash; /* Shared connection cache (bundles)*/ struct conncache conn_cache; long maxconnects; /* if >0, a fixed limit of the maximum number of entries we're allowed to grow the connection cache to */ long max_host_connections; /* if >0, a fixed limit of the maximum number of connections per host */ long max_total_connections; /* if >0, a fixed limit of the maximum number of connections in total */ /* timer callback and user data pointer for the *socket() API */ curl_multi_timer_callback timer_cb; void *timer_userp; struct curltime timer_lastcall; /* the fixed time for the timeout for the previous callback */ unsigned int max_concurrent_streams; #ifdef ENABLE_WAKEUP curl_socket_t wakeup_pair[2]; /* socketpair() used for wakeup 0 is used for read, 1 is used for write */ #endif /* multiplexing wanted */ bool multiplexing; bool recheckstate; /* see Curl_multi_connchanged */ bool in_callback; /* true while executing a callback */ bool ipv6_works; }; #endif /* HEADER_CURL_MULTIHANDLE_H */ |
Changes to jni/curl/lib/multiif.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_MULTIIF_H #define HEADER_CURL_MULTIIF_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_MULTIIF_H #define HEADER_CURL_MULTIIF_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
86 87 88 89 90 91 92 | * Add a handle and move it into PERFORM state at once. For pushed streams. */ CURLMcode Curl_multi_add_perform(struct Curl_multi *multi, struct Curl_easy *data, struct connectdata *conn); | | < < | | 86 87 88 89 90 91 92 93 94 95 96 | * Add a handle and move it into PERFORM state at once. For pushed streams. */ CURLMcode Curl_multi_add_perform(struct Curl_multi *multi, struct Curl_easy *data, struct connectdata *conn); /* Return the value of the CURLMOPT_MAX_CONCURRENT_STREAMS option */ unsigned int Curl_multi_max_concurrent_streams(struct Curl_multi *multi); #endif /* HEADER_CURL_MULTIIF_H */ |
Added jni/curl/lib/rename.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "rename.h" #include "curl_setup.h" #if (!defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)) || \ defined(USE_ALTSVC) #include "timeval.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* return 0 on success, 1 on error */ int Curl_rename(const char *oldpath, const char *newpath) { #ifdef WIN32 /* rename() on Windows doesn't overwrite, so we can't use it here. MoveFileExA() will overwrite and is usually atomic, however it fails when there are open handles to the file. */ const int max_wait_ms = 1000; struct curltime start = Curl_now(); for(;;) { timediff_t diff; if(MoveFileExA(oldpath, newpath, MOVEFILE_REPLACE_EXISTING)) break; diff = Curl_timediff(Curl_now(), start); if(diff < 0 || diff > max_wait_ms) return 1; Sleep(1); } #else if(rename(oldpath, newpath)) return 1; #endif return 0; } #endif |
Added jni/curl/lib/rename.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | #ifndef HEADER_CURL_RENAME_H #define HEADER_CURL_RENAME_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ int Curl_rename(const char *oldpath, const char *newpath); #endif /* HEADER_CURL_RENAME_H */ |
Changes to jni/curl/lib/select.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
49 50 51 52 53 54 55 | #include "connect.h" #include "select.h" #include "warnless.h" /* Convenience local macros */ #define ELAPSED_MS() (int)Curl_timediff(Curl_now(), initial_tv) | < < < < < < < < < < < < < < | > > | | < < < < < < < < < < | < > | 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 96 97 98 99 100 101 102 103 | #include "connect.h" #include "select.h" #include "warnless.h" /* Convenience local macros */ #define ELAPSED_MS() (int)Curl_timediff(Curl_now(), initial_tv) /* * Internal function used for waiting a specific amount of ms * in Curl_socket_check() and Curl_poll() when no file descriptor * is provided to wait on, just being used to delay execution. * WinSock select() and poll() timeout mechanisms need a valid * socket descriptor in a not null file descriptor set to work. * Waiting indefinitely with this function is not allowed, a * zero or negative timeout value will return immediately. * Timeout resolution, accuracy, as well as maximum supported * value is system dependent, neither factor is a citical issue * for the intended use of this function in the library. * * Return values: * -1 = system call error, invalid timeout value, or interrupted * 0 = specified timeout has elapsed */ int Curl_wait_ms(int timeout_ms) { int r = 0; if(!timeout_ms) return 0; if(timeout_ms < 0) { SET_SOCKERRNO(EINVAL); return -1; } #if defined(MSDOS) delay(timeout_ms); #elif defined(USE_WINSOCK) Sleep(timeout_ms); #else #if defined(HAVE_POLL_FINE) r = poll(NULL, 0, timeout_ms); #else { struct timeval pending_tv; pending_tv.tv_sec = timeout_ms / 1000; pending_tv.tv_usec = (timeout_ms % 1000) * 1000; r = select(0, NULL, NULL, NULL, &pending_tv); } #endif /* HAVE_POLL_FINE */ #endif /* USE_WINSOCK */ if(r) r = -1; return r; } /* |
︙ | ︙ | |||
154 155 156 157 158 159 160 | struct timeval pending_tv; struct timeval *ptimeout; fd_set fds_read; fd_set fds_write; fd_set fds_err; curl_socket_t maxfd; #endif | < | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | struct timeval pending_tv; struct timeval *ptimeout; fd_set fds_read; fd_set fds_write; fd_set fds_err; curl_socket_t maxfd; #endif int pending_ms = 0; int r; int ret; #if SIZEOF_TIME_T != SIZEOF_INT /* wrap-around precaution */ if(timeout_ms >= INT_MAX) |
︙ | ︙ | |||
179 180 181 182 183 184 185 | /* Avoid initial timestamp, avoid Curl_now() call, when elapsed time in this function does not need to be measured. This happens when function is called with a zero timeout or a negative timeout value indicating a blocking call should be performed. */ if(timeout_ms > 0) { pending_ms = (int)timeout_ms; | < | 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | /* Avoid initial timestamp, avoid Curl_now() call, when elapsed time in this function does not need to be measured. This happens when function is called with a zero timeout or a negative timeout value indicating a blocking call should be performed. */ if(timeout_ms > 0) { pending_ms = (int)timeout_ms; } #ifdef HAVE_POLL_FINE num = 0; if(readfd0 != CURL_SOCKET_BAD) { pfd[num].fd = readfd0; |
︙ | ︙ | |||
204 205 206 207 208 209 210 | if(writefd != CURL_SOCKET_BAD) { pfd[num].fd = writefd; pfd[num].events = POLLWRNORM|POLLOUT; pfd[num].revents = 0; num++; } | < < | | | | | < < < < < < < < < < < < < | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | if(writefd != CURL_SOCKET_BAD) { pfd[num].fd = writefd; pfd[num].events = POLLWRNORM|POLLOUT; pfd[num].revents = 0; num++; } if(timeout_ms < 0) pending_ms = -1; else if(!timeout_ms) pending_ms = 0; r = poll(pfd, num, pending_ms); if(r < 0) return -1; if(r == 0) return 0; ret = 0; |
︙ | ︙ | |||
286 287 288 289 290 291 292 | FD_SET(writefd, &fds_err); if(writefd > maxfd) maxfd = writefd; } ptimeout = (timeout_ms < 0) ? NULL : &pending_tv; | < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < | 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 | FD_SET(writefd, &fds_err); if(writefd > maxfd) maxfd = writefd; } ptimeout = (timeout_ms < 0) ? NULL : &pending_tv; if(timeout_ms > 0) { pending_tv.tv_sec = pending_ms / 1000; pending_tv.tv_usec = (pending_ms % 1000) * 1000; } else if(!timeout_ms) { pending_tv.tv_sec = 0; pending_tv.tv_usec = 0; } /* WinSock select() must not be called with an fd_set that contains zero fd flags, or it will return WSAEINVAL. But, it also can't be called with no fd_sets at all! From the documentation: Any two of the parameters, readfds, writefds, or exceptfds, can be given as null. At least one must be non-null, and any non-null descriptor set must contain at least one handle to a socket. We know that we have at least one bit set in at least two fd_sets in this case, but we may have no bits set in either fds_read or fd_write, so check for that and handle it. Luckily, with WinSock, we can _also_ ask how many bits are set on an fd_set. It is unclear why WinSock doesn't just handle this for us instead of calling this an error. Note also that WinSock ignores the first argument, so we don't worry about the fact that maxfd is computed incorrectly with WinSock (since curl_socket_t is unsigned in such cases and thus -1 is the largest value). */ #ifdef USE_WINSOCK r = select((int)maxfd + 1, fds_read.fd_count ? &fds_read : NULL, fds_write.fd_count ? &fds_write : NULL, &fds_err, ptimeout); #else r = select((int)maxfd + 1, &fds_read, &fds_write, &fds_err, ptimeout); #endif if(r < 0) return -1; if(r == 0) return 0; ret = 0; if(readfd0 != CURL_SOCKET_BAD) { |
︙ | ︙ | |||
395 396 397 398 399 400 401 | struct timeval pending_tv; struct timeval *ptimeout; fd_set fds_read; fd_set fds_write; fd_set fds_err; curl_socket_t maxfd; #endif | < | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | struct timeval pending_tv; struct timeval *ptimeout; fd_set fds_read; fd_set fds_write; fd_set fds_err; curl_socket_t maxfd; #endif bool fds_none = TRUE; unsigned int i; int pending_ms = 0; int r; if(ufds) { for(i = 0; i < nfds; i++) { |
︙ | ︙ | |||
421 422 423 424 425 426 427 | /* Avoid initial timestamp, avoid Curl_now() call, when elapsed time in this function does not need to be measured. This happens when function is called with a zero timeout or a negative timeout value indicating a blocking call should be performed. */ if(timeout_ms > 0) { pending_ms = timeout_ms; | < < < | | | | | < < < < < < < < < < < < < | 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 | /* Avoid initial timestamp, avoid Curl_now() call, when elapsed time in this function does not need to be measured. This happens when function is called with a zero timeout or a negative timeout value indicating a blocking call should be performed. */ if(timeout_ms > 0) { pending_ms = timeout_ms; } #ifdef HAVE_POLL_FINE if(timeout_ms < 0) pending_ms = -1; else if(!timeout_ms) pending_ms = 0; r = poll(ufds, nfds, pending_ms); if(r < 0) return -1; if(r == 0) return 0; for(i = 0; i < nfds; i++) { |
︙ | ︙ | |||
498 499 500 501 502 503 504 | r = Curl_wait_ms(timeout_ms); return r; } #endif ptimeout = (timeout_ms < 0) ? NULL : &pending_tv; | < < | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < | 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 | r = Curl_wait_ms(timeout_ms); return r; } #endif ptimeout = (timeout_ms < 0) ? NULL : &pending_tv; if(timeout_ms > 0) { pending_tv.tv_sec = pending_ms / 1000; pending_tv.tv_usec = (pending_ms % 1000) * 1000; } else if(!timeout_ms) { pending_tv.tv_sec = 0; pending_tv.tv_usec = 0; } #ifdef USE_WINSOCK r = select((int)maxfd + 1, /* WinSock select() can't handle fd_sets with zero bits set, so don't give it such arguments. See the comment about this in Curl_check_socket(). */ fds_read.fd_count ? &fds_read : NULL, fds_write.fd_count ? &fds_write : NULL, fds_err.fd_count ? &fds_err : NULL, ptimeout); #else r = select((int)maxfd + 1, &fds_read, &fds_write, &fds_err, ptimeout); #endif if(r < 0) return -1; if(r == 0) return 0; r = 0; |
︙ | ︙ |
Changes to jni/curl/lib/select.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_SELECT_H #define HEADER_CURL_SELECT_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_SELECT_H #define HEADER_CURL_SELECT_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
71 72 73 74 75 76 77 | are exposed to users, but this *IN2 bit is only ever used internally and therefore defined here */ #define CURL_CSELECT_IN2 (CURL_CSELECT_ERR << 1) int Curl_socket_check(curl_socket_t readfd, curl_socket_t readfd2, curl_socket_t writefd, time_t timeout_ms); | < < < < < < < < | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | are exposed to users, but this *IN2 bit is only ever used internally and therefore defined here */ #define CURL_CSELECT_IN2 (CURL_CSELECT_ERR << 1) int Curl_socket_check(curl_socket_t readfd, curl_socket_t readfd2, curl_socket_t writefd, time_t timeout_ms); #define SOCKET_READABLE(x,z) \ Curl_socket_check(x, CURL_SOCKET_BAD, CURL_SOCKET_BAD, (time_t)z) #define SOCKET_WRITABLE(x,z) \ Curl_socket_check(CURL_SOCKET_BAD, CURL_SOCKET_BAD, x, (time_t)z) int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms); int Curl_wait_ms(int timeout_ms); #ifdef TPF int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes, fd_set* excepts, struct timeval* tv); #endif |
︙ | ︙ |
Changes to jni/curl/lib/sendf.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include "vssh/ssh.h" #include "easyif.h" #include "multiif.h" #include "non-ascii.h" #include "strerror.h" #include "select.h" #include "strdup.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #ifdef CURL_DO_LINEEND_CONV | > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include "vssh/ssh.h" #include "easyif.h" #include "multiif.h" #include "non-ascii.h" #include "strerror.h" #include "select.h" #include "strdup.h" #include "http2.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #ifdef CURL_DO_LINEEND_CONV |
︙ | ︙ | |||
497 498 499 500 501 502 503 504 505 506 507 508 509 510 | is again enabled */ struct SingleRequest *k = &data->req; struct UrlState *s = &data->state; char *dupl; unsigned int i; bool newtype = TRUE; if(s->tempcount) { for(i = 0; i< s->tempcount; i++) { if(s->tempwrite[i].type == type) { /* data for this type exists */ newtype = FALSE; break; } | > > > | 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 | is again enabled */ struct SingleRequest *k = &data->req; struct UrlState *s = &data->state; char *dupl; unsigned int i; bool newtype = TRUE; /* If this transfers over HTTP/2, pause the stream! */ Curl_http2_stream_pause(data, TRUE); if(s->tempcount) { for(i = 0; i< s->tempcount; i++) { if(s->tempwrite[i].type == type) { /* data for this type exists */ newtype = FALSE; break; } |
︙ | ︙ | |||
525 526 527 528 529 530 531 532 533 534 535 536 537 538 | return CURLE_OUT_OF_MEMORY; /* copy the new data to the end of the new area */ memcpy(newptr + s->tempwrite[i].len, ptr, len); /* update the pointer and the size */ s->tempwrite[i].buf = newptr; s->tempwrite[i].len = newlen; } else { dupl = Curl_memdup(ptr, len); if(!dupl) return CURLE_OUT_OF_MEMORY; /* store this information in the state struct for later use */ | > > | 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 | return CURLE_OUT_OF_MEMORY; /* copy the new data to the end of the new area */ memcpy(newptr + s->tempwrite[i].len, ptr, len); /* update the pointer and the size */ s->tempwrite[i].buf = newptr; s->tempwrite[i].len = newlen; len = newlen; /* for the debug output below */ } else { dupl = Curl_memdup(ptr, len); if(!dupl) return CURLE_OUT_OF_MEMORY; /* store this information in the state struct for later use */ |
︙ | ︙ | |||
688 689 690 691 692 693 694 | char *buf, size_t bytesfromsocket, ssize_t *n) { ssize_t nread = sread(sockfd, buf, bytesfromsocket); if(-1 == nread) { | | | | | > > < | 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 | char *buf, size_t bytesfromsocket, ssize_t *n) { ssize_t nread = sread(sockfd, buf, bytesfromsocket); if(-1 == nread) { const int err = SOCKERRNO; const bool return_error = #ifdef USE_WINSOCK WSAEWOULDBLOCK == err #else EWOULDBLOCK == err || EAGAIN == err || EINTR == err #endif ; *n = 0; /* no data returned */ if(return_error) return CURLE_AGAIN; return CURLE_RECV_ERROR; } *n = nread; return CURLE_OK; } /* * Internal read-from-socket function. This is meant to deal with plain * sockets, SSL sockets and kerberos sockets. |
︙ | ︙ |
Changes to jni/curl/lib/setopt.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
2284 2285 2286 2287 2288 2289 2290 | */ result = Curl_setstropt(&data->set.str[STRING_SSH_KNOWNHOSTS], va_arg(param, char *)); break; case CURLOPT_SSH_KEYFUNCTION: /* setting to NULL is fine since the ssh.c functions themselves will | | | 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 | */ result = Curl_setstropt(&data->set.str[STRING_SSH_KNOWNHOSTS], va_arg(param, char *)); break; case CURLOPT_SSH_KEYFUNCTION: /* setting to NULL is fine since the ssh.c functions themselves will then revert to use the internal default */ data->set.ssh_keyfunc = va_arg(param, curl_sshkeycallback); break; case CURLOPT_SSH_KEYDATA: /* * Custom client data to pass to the SSH keyfunc callback */ |
︙ | ︙ | |||
2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 | va_arg(param, char *)); break; case CURLOPT_MAIL_RCPT: /* Set the list of mail recipients */ data->set.mail_rcpt = va_arg(param, struct curl_slist *); break; #endif case CURLOPT_SASL_AUTHZID: /* Authorisation identity (identity to act as) */ result = Curl_setstropt(&data->set.str[STRING_SASL_AUTHZID], va_arg(param, char *)); break; | > > > > | 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 | va_arg(param, char *)); break; case CURLOPT_MAIL_RCPT: /* Set the list of mail recipients */ data->set.mail_rcpt = va_arg(param, struct curl_slist *); break; case CURLOPT_MAIL_RCPT_ALLLOWFAILS: /* allow RCPT TO command to fail for some recipients */ data->set.mail_rcpt_allowfails = (0 != va_arg(param, long)) ? TRUE : FALSE; break; #endif case CURLOPT_SASL_AUTHZID: /* Authorisation identity (identity to act as) */ result = Curl_setstropt(&data->set.str[STRING_SASL_AUTHZID], va_arg(param, char *)); break; |
︙ | ︙ |
Changes to jni/curl/lib/sha256.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2017, Florin Petriuc, <petriuc.florin@gmail.com> * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
31 32 33 34 35 36 37 38 39 | #include <openssl/opensslv.h> #if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) #define USE_OPENSSL_SHA256 #endif #endif | > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < | 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 96 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 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | #include <openssl/opensslv.h> #if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) #define USE_OPENSSL_SHA256 #endif #endif /* USE_OPENSSL */ #ifdef USE_MBEDTLS #include <mbedtls/version.h> #if(MBEDTLS_VERSION_NUMBER >= 0x02070000) #define HAS_RESULT_CODE_BASED_FUNCTIONS #endif #endif /* USE_MBEDTLS */ /* Please keep the SSL backend-specific #if branches in this order: * * 1. USE_OPENSSL * 2. USE_GNUTLS_NETTLE * 3. USE_GNUTLS * 4. USE_MBEDTLS * 5. USE_COMMON_CRYPTO * 6. USE_WIN32_CRYPTO * * This ensures that the same SSL branch gets activated throughout this source * file even if multiple backends are enabled at the same time. */ #if defined(USE_OPENSSL_SHA256) /* When OpenSSL is available we use the SHA256-function from OpenSSL */ #include <openssl/sha.h> #elif defined(USE_GNUTLS_NETTLE) #include <nettle/sha.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef struct sha256_ctx SHA256_CTX; static void SHA256_Init(SHA256_CTX *ctx) { sha256_init(ctx); } static void SHA256_Update(SHA256_CTX *ctx, const unsigned char *data, unsigned int length) { sha256_update(ctx, length, data); } static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx) { sha256_digest(ctx, SHA256_DIGEST_SIZE, digest); } #elif defined(USE_GNUTLS) #include <gcrypt.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef gcry_md_hd_t SHA256_CTX; static void SHA256_Init(SHA256_CTX *ctx) { gcry_md_open(ctx, GCRY_MD_SHA256, 0); } static void SHA256_Update(SHA256_CTX *ctx, const unsigned char *data, unsigned int length) { gcry_md_write(*ctx, data, length); } static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx) { memcpy(digest, gcry_md_read(*ctx, 0), SHA256_DIGEST_LENGTH); gcry_md_close(*ctx); } #elif defined(USE_MBEDTLS) #include <mbedtls/sha256.h> #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" typedef mbedtls_sha256_context SHA256_CTX; static void SHA256_Init(SHA256_CTX *ctx) { #if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_sha256_starts(ctx, 0); #else (void) mbedtls_sha256_starts_ret(ctx, 0); #endif } static void SHA256_Update(SHA256_CTX *ctx, const unsigned char *data, unsigned int length) { #if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_sha256_update(ctx, data, length); #else (void) mbedtls_sha256_update_ret(ctx, data, length); #endif } static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx) { #if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS) mbedtls_sha256_finish(ctx, digest); #else (void) mbedtls_sha256_finish_ret(ctx, digest); #endif } #else /* When no other crypto library is available we use this code segment */ /* This is based on SHA256 implementation in LibTomCrypt that was released into * public domain by Tom St Denis. */ #define WPA_GET_BE32(a) ((((unsigned long)(a)[0]) << 24) | \ (((unsigned long)(a)[1]) << 16) | \ (((unsigned long)(a)[2]) << 8) | \ ((unsigned long)(a)[3])) |
︙ | ︙ | |||
91 92 93 94 95 96 97 | unsigned long long length; #else unsigned __int64 length; #endif unsigned long state[8], curlen; unsigned char buf[64]; } SHA256_CTX; | > | > > | > | > > | > > > | > | 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 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 | unsigned long long length; #else unsigned __int64 length; #endif unsigned long state[8], curlen; unsigned char buf[64]; } SHA256_CTX; /* The K array */ static const unsigned long K[64] = { 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL }; /* Various logical functions */ #define RORc(x, y) \ (((((unsigned long)(x) & 0xFFFFFFFFUL) >> (unsigned long)((y) & 31)) | \ ((unsigned long)(x) << (unsigned long)(32 - ((y) & 31)))) & 0xFFFFFFFFUL) #define Ch(x,y,z) (z ^ (x & (y ^ z))) #define Maj(x,y,z) (((x | y) & z) | (x & y)) #define S(x, n) RORc((x), (n)) #define R(x, n) (((x)&0xFFFFFFFFUL)>>(n)) #define Sigma0(x) (S(x, 2) ^ S(x, 13) ^ S(x, 22)) #define Sigma1(x) (S(x, 6) ^ S(x, 11) ^ S(x, 25)) #define Gamma0(x) (S(x, 7) ^ S(x, 18) ^ R(x, 3)) #define Gamma1(x) (S(x, 17) ^ S(x, 19) ^ R(x, 10)) /* Compress 512-bits */ static int sha256_compress(struct sha256_state *md, unsigned char *buf) { unsigned long S[8], W[64]; int i; /* Copy state into S */ for(i = 0; i < 8; i++) { S[i] = md->state[i]; } /* copy the state into 512-bits into W[0..15] */ for(i = 0; i < 16; i++) W[i] = WPA_GET_BE32(buf + (4 * i)); /* fill W[16..63] */ for(i = 16; i < 64; i++) { W[i] = Gamma1(W[i - 2]) + W[i - 7] + Gamma0(W[i - 15]) + W[i - 16]; } /* Compress */ #define RND(a,b,c,d,e,f,g,h,i) \ unsigned long t0 = h + Sigma1(e) + Ch(e, f, g) + K[i] + W[i]; \ unsigned long t1 = Sigma0(a) + Maj(a, b, c); \ d += t0; \ h = t0 + t1; for(i = 0; i < 64; ++i) { unsigned long t; RND(S[0], S[1], S[2], S[3], S[4], S[5], S[6], S[7], i); t = S[7]; S[7] = S[6]; S[6] = S[5]; S[5] = S[4]; S[4] = S[3]; S[3] = S[2]; S[2] = S[1]; S[1] = S[0]; S[0] = t; } /* Feedback */ for(i = 0; i < 8; i++) { md->state[i] = md->state[i] + S[i]; } return 0; } /* Initialize the hash state */ static void SHA256_Init(struct sha256_state *md) { md->curlen = 0; md->length = 0; md->state[0] = 0x6A09E667UL; md->state[1] = 0xBB67AE85UL; md->state[2] = 0x3C6EF372UL; md->state[3] = 0xA54FF53AUL; md->state[4] = 0x510E527FUL; md->state[5] = 0x9B05688CUL; md->state[6] = 0x1F83D9ABUL; md->state[7] = 0x5BE0CD19UL; } /* Process a block of memory though the hash @param md The hash state @param in The data to hash @param inlen The length of the data (octets) @return CRYPT_OK if successful */ static int SHA256_Update(struct sha256_state *md, const unsigned char *in, unsigned long inlen) { unsigned long n; #define block_size 64 if(md->curlen > sizeof(md->buf)) return -1; while(inlen > 0) { if(md->curlen == 0 && inlen >= block_size) { if(sha256_compress(md, (unsigned char *)in) < 0) return -1; |
︙ | ︙ | |||
206 207 208 209 210 211 212 213 214 | if(sha256_compress(md, md->buf) < 0) return -1; md->length += 8 * block_size; md->curlen = 0; } } } return 0; } | > > | > > | > | > | > | > | > | > < | > > > > > > > > > > > | | > | | | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | if(sha256_compress(md, md->buf) < 0) return -1; md->length += 8 * block_size; md->curlen = 0; } } } return 0; } /* Terminate the hash to get the digest @param md The hash state @param out [out] The destination of the hash (32 bytes) @return CRYPT_OK if successful */ static int SHA256_Final(unsigned char *out, struct sha256_state *md) { int i; if(md->curlen >= sizeof(md->buf)) return -1; /* Increase the length of the message */ md->length += md->curlen * 8; /* Append the '1' bit */ md->buf[md->curlen++] = (unsigned char)0x80; /* If the length is currently above 56 bytes we append zeros * then compress. Then we can fall back to padding zeros and length * encoding like normal. */ if(md->curlen > 56) { while(md->curlen < 64) { md->buf[md->curlen++] = (unsigned char)0; } sha256_compress(md, md->buf); md->curlen = 0; } /* Pad up to 56 bytes of zeroes */ while(md->curlen < 56) { md->buf[md->curlen++] = (unsigned char)0; } /* Store length */ WPA_PUT_BE64(md->buf + 56, md->length); sha256_compress(md, md->buf); /* Copy output */ for(i = 0; i < 8; i++) WPA_PUT_BE32(out + (4 * i), md->state[i]); return 0; } #endif /* CRYPTO LIBS */ /* * Curl_sha256it() * * Generates a SHA256 hash for the given input data. * * Parameters: * * output [in/out] - The output buffer. * input [in] - The input data. * length [in] - The input length. */ void Curl_sha256it(unsigned char *output, const unsigned char *input, const size_t length) { SHA256_CTX ctx; SHA256_Init(&ctx); SHA256_Update(&ctx, input, curlx_uztoui(length)); SHA256_Final(output, &ctx); } #endif /* CURL_DISABLE_CRYPTO_AUTH */ |
Changes to jni/curl/lib/smtp.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 | * RFC2831 DIGEST-MD5 authentication * RFC3207 SMTP over TLS * RFC4422 Simple Authentication and Security Layer (SASL) * RFC4616 PLAIN authentication * RFC4752 The Kerberos V5 ("GSSAPI") SASL Mechanism * RFC4954 SMTP Authentication * RFC5321 SMTP protocol * RFC6749 OAuth 2.0 Authorization Framework * RFC8314 Use of TLS for Email Submission and Access * Draft SMTP URL Interface <draft-earhart-url-smtp-00.txt> * Draft LOGIN SASL Mechanism <draft-murchison-sasl-login-00.txt> * ***************************************************************************/ | > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | * RFC2831 DIGEST-MD5 authentication * RFC3207 SMTP over TLS * RFC4422 Simple Authentication and Security Layer (SASL) * RFC4616 PLAIN authentication * RFC4752 The Kerberos V5 ("GSSAPI") SASL Mechanism * RFC4954 SMTP Authentication * RFC5321 SMTP protocol * RFC5890 Internationalized Domain Names for Applications (IDNA) * RFC6531 SMTP Extension for Internationalized Email * RFC6532 Internationalized Email Headers * RFC6749 OAuth 2.0 Authorization Framework * RFC8314 Use of TLS for Email Submission and Access * Draft SMTP URL Interface <draft-earhart-url-smtp-00.txt> * Draft LOGIN SASL Mechanism <draft-murchison-sasl-login-00.txt> * ***************************************************************************/ |
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 | static CURLcode smtp_multi_statemach(struct connectdata *conn, bool *done); static int smtp_getsock(struct connectdata *conn, curl_socket_t *socks); static CURLcode smtp_doing(struct connectdata *conn, bool *dophase_done); static CURLcode smtp_setup_connection(struct connectdata *conn); static CURLcode smtp_parse_url_options(struct connectdata *conn); static CURLcode smtp_parse_url_path(struct connectdata *conn); static CURLcode smtp_parse_custom_request(struct connectdata *conn); static CURLcode smtp_perform_auth(struct connectdata *conn, const char *mech, const char *initresp); static CURLcode smtp_continue_auth(struct connectdata *conn, const char *resp); static void smtp_get_message(char *buffer, char **outptr); /* * SMTP protocol handler. | > > | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | static CURLcode smtp_multi_statemach(struct connectdata *conn, bool *done); static int smtp_getsock(struct connectdata *conn, curl_socket_t *socks); static CURLcode smtp_doing(struct connectdata *conn, bool *dophase_done); static CURLcode smtp_setup_connection(struct connectdata *conn); static CURLcode smtp_parse_url_options(struct connectdata *conn); static CURLcode smtp_parse_url_path(struct connectdata *conn); static CURLcode smtp_parse_custom_request(struct connectdata *conn); static CURLcode smtp_parse_address(struct connectdata *conn, const char *fqma, char **address, struct hostname *host); static CURLcode smtp_perform_auth(struct connectdata *conn, const char *mech, const char *initresp); static CURLcode smtp_continue_auth(struct connectdata *conn, const char *resp); static void smtp_get_message(char *buffer, char **outptr); /* * SMTP protocol handler. |
︙ | ︙ | |||
477 478 479 480 481 482 483 | */ static CURLcode smtp_perform_command(struct connectdata *conn) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; | < | > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > | > > > > > > > | > > > | > > > > | 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 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 | */ static CURLcode smtp_perform_command(struct connectdata *conn) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; if(smtp->rcpt) { /* We notify the server we are sending UTF-8 data if a) it supports the SMTPUTF8 extension and b) The mailbox contains UTF-8 charaacters, in either the local address or host name parts. This is regardless of whether the host name is encoded using IDN ACE */ bool utf8 = FALSE; if((!smtp->custom) || (!smtp->custom[0])) { char *address = NULL; struct hostname host = { NULL, NULL, NULL, NULL }; /* Parse the mailbox to verify into the local address and host name parts, converting the host name to an IDN A-label if necessary */ result = smtp_parse_address(conn, smtp->rcpt->data, &address, &host); if(result) return result; /* Establish whether we should report SMTPUTF8 to the server for this mailbox as per RFC-6531 sect. 3.1 point 6 */ utf8 = (conn->proto.smtpc.utf8_supported) && ((host.encalloc) || (!Curl_is_ASCII_name(address)) || (!Curl_is_ASCII_name(host.name))); /* Send the VRFY command (Note: The host name part may be absent when the host is a local system) */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "VRFY %s%s%s%s", address, host.name ? "@" : "", host.name ? host.name : "", utf8 ? " SMTPUTF8" : ""); Curl_free_idnconverted_hostname(&host); free(address); } else { /* Establish whether we should report that we support SMTPUTF8 for EXPN commands to the server as per RFC-6531 sect. 3.1 point 6 */ utf8 = (conn->proto.smtpc.utf8_supported) && (!strcmp(smtp->custom, "EXPN")); /* Send the custom recipient based command such as the EXPN command */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s %s%s", smtp->custom, smtp->rcpt->data, utf8 ? " SMTPUTF8" : ""); } } else /* Send the non-recipient based command such as HELP */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", smtp->custom && smtp->custom[0] != '\0' ? smtp->custom : "HELP"); if(!result) state(conn, SMTP_COMMAND); |
︙ | ︙ | |||
507 508 509 510 511 512 513 514 515 | static CURLcode smtp_perform_mail(struct connectdata *conn) { char *from = NULL; char *auth = NULL; char *size = NULL; CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; /* Calculate the FROM parameter */ | > > > > > > | > > | > > > > > > | > > > > > | > > | > > | > > | > > > > > > | > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | static CURLcode smtp_perform_mail(struct connectdata *conn) { char *from = NULL; char *auth = NULL; char *size = NULL; CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; /* We notify the server we are sending UTF-8 data if a) it supports the SMTPUTF8 extension and b) The mailbox contains UTF-8 charaacters, in either the local address or host name parts. This is regardless of whether the host name is encoded using IDN ACE */ bool utf8 = FALSE; /* Calculate the FROM parameter */ if(data->set.str[STRING_MAIL_FROM]) { char *address = NULL; struct hostname host = { NULL, NULL, NULL, NULL }; /* Parse the FROM mailbox into the local address and host name parts, converting the host name to an IDN A-label if necessary */ result = smtp_parse_address(conn, data->set.str[STRING_MAIL_FROM], &address, &host); if(result) return result; /* Establish whether we should report SMTPUTF8 to the server for this mailbox as per RFC-6531 sect. 3.1 point 4 and sect. 3.4 */ utf8 = (conn->proto.smtpc.utf8_supported) && ((host.encalloc) || (!Curl_is_ASCII_name(address)) || (!Curl_is_ASCII_name(host.name))); if(host.name) { from = aprintf("<%s@%s>", address, host.name); Curl_free_idnconverted_hostname(&host); } else /* An invalid mailbox was provided but we'll simply let the server worry about that and reply with a 501 error */ from = aprintf("<%s>", address); free(address); } else /* Null reverse-path, RFC-5321, sect. 3.6.3 */ from = strdup("<>"); if(!from) return CURLE_OUT_OF_MEMORY; /* Calculate the optional AUTH parameter */ if(data->set.str[STRING_MAIL_AUTH] && conn->proto.smtpc.sasl.authused) { if(data->set.str[STRING_MAIL_AUTH][0] != '\0') { char *address = NULL; struct hostname host = { NULL, NULL, NULL, NULL }; /* Parse the AUTH mailbox into the local address and host name parts, converting the host name to an IDN A-label if necessary */ result = smtp_parse_address(conn, data->set.str[STRING_MAIL_AUTH], &address, &host); if(result) { free(from); return result; } /* Establish whether we should report SMTPUTF8 to the server for this mailbox as per RFC-6531 sect. 3.1 point 4 and sect. 3.4 */ if((!utf8) && (conn->proto.smtpc.utf8_supported) && ((host.encalloc) || (!Curl_is_ASCII_name(address)) || (!Curl_is_ASCII_name(host.name)))) utf8 = TRUE; if(host.name) { free(from); from = aprintf("<%s@%s>", address, host.name); Curl_free_idnconverted_hostname(&host); } else /* An invalid mailbox was provided but we'll simply let the server worry about it */ auth = aprintf("<%s>", address); free(address); if(!from) return CURLE_OUT_OF_MEMORY; } else /* Empty AUTH, RFC-2554, sect. 5 */ auth = strdup("<>"); if(!auth) { free(from); |
︙ | ︙ | |||
557 558 559 560 561 562 563 564 565 566 567 568 569 570 | /* Make sure we will read the entire mime structure. */ if(!result) result = Curl_mime_rewind(&data->set.mimepost); if(result) { free(from); free(auth); return result; } data->state.infilesize = Curl_mime_size(&data->set.mimepost); /* Read from mime structure. */ data->state.fread_func = (curl_read_callback) Curl_mime_read; | > | 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 | /* Make sure we will read the entire mime structure. */ if(!result) result = Curl_mime_rewind(&data->set.mimepost); if(result) { free(from); free(auth); return result; } data->state.infilesize = Curl_mime_size(&data->set.mimepost); /* Read from mime structure. */ data->state.fread_func = (curl_read_callback) Curl_mime_read; |
︙ | ︙ | |||
578 579 580 581 582 583 584 585 | if(!size) { free(from); free(auth); return CURLE_OUT_OF_MEMORY; } } | > > > | < | > > | | > | > | < | > > | < > | | > > > > > > > | 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 | if(!size) { free(from); free(auth); return CURLE_OUT_OF_MEMORY; } } /* If the mailboxes in the FROM and AUTH parameters don't include a UTF-8 based address then quickly scan through the recipient list and check if any there do, as we need to correctly identify our support for SMTPUTF8 in the envelope, as per RFC-6531 sect. 3.4 */ if(conn->proto.smtpc.utf8_supported && !utf8) { struct SMTP *smtp = data->req.protop; struct curl_slist *rcpt = smtp->rcpt; while(rcpt && !utf8) { /* Does the host name contain non-ASCII characters? */ if(!Curl_is_ASCII_name(rcpt->data)) utf8 = TRUE; rcpt = rcpt->next; } } /* Send the MAIL command */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s%s%s%s%s%s", from, /* Mandatory */ auth ? " AUTH=" : "", /* Optional on AUTH support */ auth ? auth : "", /* */ size ? " SIZE=" : "", /* Optional on SIZE support */ size ? size : "", /* */ utf8 ? " SMTPUTF8" /* Internationalised mailbox */ : ""); /* included in our envelope */ free(from); free(auth); free(size); if(!result) state(conn, SMTP_MAIL); |
︙ | ︙ | |||
615 616 617 618 619 620 621 622 623 | * process. */ static CURLcode smtp_perform_rcpt_to(struct connectdata *conn) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; /* Send the RCPT TO command */ | > > > > > > > > > | | < > > > | | > > > | 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 | * process. */ static CURLcode smtp_perform_rcpt_to(struct connectdata *conn) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; char *address = NULL; struct hostname host = { NULL, NULL, NULL, NULL }; /* Parse the recipient mailbox into the local address and host name parts, converting the host name to an IDN A-label if necessary */ result = smtp_parse_address(conn, smtp->rcpt->data, &address, &host); if(result) return result; /* Send the RCPT TO command */ if(host.name) result = Curl_pp_sendf(&conn->proto.smtpc.pp, "RCPT TO:<%s@%s>", address, host.name); else /* An invalid mailbox was provided but we'll simply let the server worry about that and reply with a 501 error */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "RCPT TO:<%s>", address); Curl_free_idnconverted_hostname(&host); free(address); if(!result) state(conn, SMTP_RCPT); return result; } /*********************************************************************** |
︙ | ︙ | |||
721 722 723 724 725 726 727 728 729 730 731 732 733 734 | /* Does the server support the STARTTLS capability? */ if(len >= 8 && !memcmp(line, "STARTTLS", 8)) smtpc->tls_supported = TRUE; /* Does the server support the SIZE capability? */ else if(len >= 4 && !memcmp(line, "SIZE", 4)) smtpc->size_supported = TRUE; /* Does the server support authentication? */ else if(len >= 5 && !memcmp(line, "AUTH ", 5)) { smtpc->auth_supported = TRUE; /* Advance past the AUTH keyword */ line += 5; | > > > > | 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 | /* Does the server support the STARTTLS capability? */ if(len >= 8 && !memcmp(line, "STARTTLS", 8)) smtpc->tls_supported = TRUE; /* Does the server support the SIZE capability? */ else if(len >= 4 && !memcmp(line, "SIZE", 4)) smtpc->size_supported = TRUE; /* Does the server support the UTF-8 capability? */ else if(len >= 8 && !memcmp(line, "SMTPUTF8", 8)) smtpc->utf8_supported = TRUE; /* Does the server support authentication? */ else if(len >= 5 && !memcmp(line, "AUTH ", 5)) { smtpc->auth_supported = TRUE; /* Advance past the AUTH keyword */ line += 5; |
︙ | ︙ | |||
911 912 913 914 915 916 917 918 919 920 | /* For RCPT responses */ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode, smtpstate instate) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; (void)instate; /* no use for this yet */ | > > | > > > > > > > > > > > > | | | > > > > > > > > > > > > > | | | | > | 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 | /* For RCPT responses */ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode, smtpstate instate) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; struct SMTP *smtp = data->req.protop; bool is_smtp_err = FALSE; bool is_smtp_blocking_err = FALSE; (void)instate; /* no use for this yet */ is_smtp_err = (smtpcode/100 != 2) ? TRUE : FALSE; /* If there's multiple RCPT TO to be issued, it's possible to ignore errors and proceed with only the valid addresses. */ is_smtp_blocking_err = (is_smtp_err && !data->set.mail_rcpt_allowfails) ? TRUE : FALSE; if(is_smtp_err) { /* Remembering the last failure which we can report if all "RCPT TO" have failed and we cannot proceed. */ smtp->rcpt_last_error = smtpcode; if(is_smtp_blocking_err) { failf(data, "RCPT failed: %d", smtpcode); result = CURLE_SEND_ERROR; } } else { /* Some RCPT TO commands have succeeded. */ smtp->rcpt_had_ok = TRUE; } if(!is_smtp_blocking_err) { smtp->rcpt = smtp->rcpt->next; if(smtp->rcpt) /* Send the next RCPT TO command */ result = smtp_perform_rcpt_to(conn); else { /* We weren't able to issue a successful RCPT TO command while going over recipients (potentially multiple). Sending back last error. */ if(!smtp->rcpt_had_ok) { failf(data, "RCPT failed: %d (last error)", smtp->rcpt_last_error); result = CURLE_SEND_ERROR; } else { /* Send the DATA command */ result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", "DATA"); if(!result) state(conn, SMTP_DATA); } } } return result; } /* For DATA response */ |
︙ | ︙ | |||
1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 | smtp->transfer = FTPTRANSFER_INFO; } *dophase_done = FALSE; /* not done yet */ /* Store the first recipient (or NULL if not specified) */ smtp->rcpt = data->set.mail_rcpt; /* Initial data character is the first character in line: it is implicitly preceded by a virtual CRLF. */ smtp->trailing_crlf = TRUE; smtp->eob = 2; /* Start the first command in the DO phase */ | > > > > > > | 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 | smtp->transfer = FTPTRANSFER_INFO; } *dophase_done = FALSE; /* not done yet */ /* Store the first recipient (or NULL if not specified) */ smtp->rcpt = data->set.mail_rcpt; /* Track of whether we've successfully sent at least one RCPT TO command */ smtp->rcpt_had_ok = FALSE; /* Track of the last error we've received by sending RCPT TO command */ smtp->rcpt_last_error = 0; /* Initial data character is the first character in line: it is implicitly preceded by a virtual CRLF. */ smtp->trailing_crlf = TRUE; smtp->eob = 2; /* Start the first command in the DO phase */ |
︙ | ︙ | |||
1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 | struct SMTP *smtp = data->req.protop; const char *custom = data->set.str[STRING_CUSTOMREQUEST]; /* URL decode the custom request */ if(custom) result = Curl_urldecode(data, custom, 0, &smtp->custom, NULL, TRUE); return result; } CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread) { /* When sending a SMTP payload we must detect CRLF. sequences making sure they are sent as CRLF.. instead, as a . on the beginning of a line will | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 | struct SMTP *smtp = data->req.protop; const char *custom = data->set.str[STRING_CUSTOMREQUEST]; /* URL decode the custom request */ if(custom) result = Curl_urldecode(data, custom, 0, &smtp->custom, NULL, TRUE); return result; } /*********************************************************************** * * smtp_parse_address() * * Parse the fully qualified mailbox address into a local address part and the * host name, converting the host name to an IDN A-label, as per RFC-5890, if * necessary. * * Parameters: * * conn [in] - The connection handle. * fqma [in] - The fully qualified mailbox address (which may or * may not contain UTF-8 characters). * address [in/out] - A new allocated buffer which holds the local * address part of the mailbox. This buffer must be * free'ed by the caller. * host [in/out] - The host name structure that holds the original, * and optionally encoded, host name. * Curl_free_idnconverted_hostname() must be called * once the caller has finished with the structure. * * Returns CURLE_OK on success. * * Notes: * * Should a UTF-8 host name require conversion to IDN ACE and we cannot honor * that convertion then we shall return success. This allow the caller to send * the data to the server as a U-label (as per RFC-6531 sect. 3.2). * * If an mailbox '@' seperator cannot be located then the mailbox is considered * to be either a local mailbox or an invalid mailbox (depending on what the * calling function deems it to be) then the input will simply be returned in * the address part with the host name being NULL. */ static CURLcode smtp_parse_address(struct connectdata *conn, const char *fqma, char **address, struct hostname *host) { CURLcode result = CURLE_OK; size_t length; /* Duplicate the fully qualified email address so we can manipulate it, ensuring it doesn't contain the delimiters if specified */ char *dup = strdup(fqma[0] == '<' ? fqma + 1 : fqma); if(!dup) return CURLE_OUT_OF_MEMORY; length = strlen(dup); if(dup[length - 1] == '>') dup[length - 1] = '\0'; /* Extract the host name from the addresss (if we can) */ host->name = strpbrk(dup, "@"); if(host->name) { *host->name = '\0'; host->name = host->name + 1; /* Attempt to convert the host name to IDN ACE */ (void) Curl_idnconvert_hostname(conn, host); /* If Curl_idnconvert_hostname() fails then we shall attempt to continue and send the host name using UTF-8 rather than as 7-bit ACE (which is our preference) */ } /* Extract the local address from the mailbox */ *address = dup; return result; } CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread) { /* When sending a SMTP payload we must detect CRLF. sequences making sure they are sent as CRLF.. instead, as a . on the beginning of a line will |
︙ | ︙ |
Changes to jni/curl/lib/smtp.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_SMTP_H #define HEADER_CURL_SMTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_SMTP_H #define HEADER_CURL_SMTP_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2009 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
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 | connection-oriented must be in smtp_conn to properly deal with the fact that perhaps the Curl_easy is changed between the times the connection is used. */ struct SMTP { curl_pp_transfer transfer; char *custom; /* Custom Request */ struct curl_slist *rcpt; /* Recipient list */ size_t eob; /* Number of bytes of the EOB (End Of Body) that have been received so far */ bool trailing_crlf; /* Specifies if the tailing CRLF is present */ }; /* smtp_conn is used for struct connection-oriented data in the connectdata struct */ struct smtp_conn { struct pingpong pp; smtpstate state; /* Always use smtp.c:state() to change state! */ bool ssldone; /* Is connect() over SSL done? */ char *domain; /* Client address/name to send in the EHLO */ struct SASL sasl; /* SASL-related storage */ bool tls_supported; /* StartTLS capability supported by server */ bool size_supported; /* If server supports SIZE extension according to RFC 1870 */ bool auth_supported; /* AUTH capability supported by server */ }; extern const struct Curl_handler Curl_handler_smtp; extern const struct Curl_handler Curl_handler_smtps; /* this is the 5-bytes End-Of-Body marker for SMTP */ | > > > > > | 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 | connection-oriented must be in smtp_conn to properly deal with the fact that perhaps the Curl_easy is changed between the times the connection is used. */ struct SMTP { curl_pp_transfer transfer; char *custom; /* Custom Request */ struct curl_slist *rcpt; /* Recipient list */ bool rcpt_had_ok; /* Whether any of RCPT TO commands (depends on total number of recipients) succeeded so far */ int rcpt_last_error; /* The last error received for RCPT TO command */ size_t eob; /* Number of bytes of the EOB (End Of Body) that have been received so far */ bool trailing_crlf; /* Specifies if the tailing CRLF is present */ }; /* smtp_conn is used for struct connection-oriented data in the connectdata struct */ struct smtp_conn { struct pingpong pp; smtpstate state; /* Always use smtp.c:state() to change state! */ bool ssldone; /* Is connect() over SSL done? */ char *domain; /* Client address/name to send in the EHLO */ struct SASL sasl; /* SASL-related storage */ bool tls_supported; /* StartTLS capability supported by server */ bool size_supported; /* If server supports SIZE extension according to RFC 1870 */ bool utf8_supported; /* If server supports SMTPUTF8 extension according to RFC 6531 */ bool auth_supported; /* AUTH capability supported by server */ }; extern const struct Curl_handler Curl_handler_smtp; extern const struct Curl_handler Curl_handler_smtps; /* this is the 5-bytes End-Of-Body marker for SMTP */ |
︙ | ︙ |
Changes to jni/curl/lib/socks.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include "urldata.h" #include "sendf.h" #include "select.h" #include "connect.h" #include "timeval.h" #include "socks.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" /* * Helper read-from-socket functions. Does the same as Curl_read() but it * blocks until all bytes amount of buffersize will be read. No more, no less. * | > > | < | 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 | #include "urldata.h" #include "sendf.h" #include "select.h" #include "connect.h" #include "timeval.h" #include "socks.h" #include "multiif.h" /* for getsock macros */ /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) /* * Helper read-from-socket functions. Does the same as Curl_read() but it * blocks until all bytes amount of buffersize will be read. No more, no less. * * This is STUPID BLOCKING behavior. Only used by the SOCKS GSSAPI functions. */ int Curl_blockread_all(struct connectdata *conn, /* connection data */ curl_socket_t sockfd, /* read from this socket */ char *buf, /* store read data here */ ssize_t buffersize, /* max amount to read */ ssize_t *n) /* amount bytes read */ { |
︙ | ︙ | |||
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | buffersize -= nread; buf += nread; allread += nread; } return result; } /* * This function logs in to a SOCKS4 proxy and sends the specifics to the final * destination server. * * Reference : * https://www.openssh.com/txt/socks4.protocol * * Note : * Set protocol4a=true for "SOCKS 4A (Simple Extension to SOCKS 4 Protocol)" * Nonsupport "Identification Protocol (RFC1413)" */ CURLcode Curl_SOCKS4(const char *proxy_user, const char *hostname, int remote_port, int sockindex, | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > < | < | | | | | | < | > > > > | | | < < | | | | | | | | | | | | | | | | | > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < | < < < < < < < < < < < | > > | | | | | | | | | | | | | | | | | < < < < | | | | > | | | | | | | | | > > > | | > > > | > > | < > > > > > > > | < < < < < < < < | < < | | | | | > > > > | | | | > > > > > > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < | > < | | < | | < > > > > > > > | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | < | < | < < < | | | | > > | > | > > > | | | | | | | > > | | | > > > > > > | > > | | | | | < | | | < | | < | | | | | | < > > | > > > > > | > | | | | | | > > > > > > > | > > > > > > > > > > > > > > > > > > > | 91 92 93 94 95 96 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 159 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 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 | buffersize -= nread; buf += nread; allread += nread; } return result; } #endif #ifndef DEBUGBUILD #define sxstate(x,y) socksstate(x,y) #else #define sxstate(x,y) socksstate(x,y, __LINE__) #endif /* always use this function to change state, to make debugging easier */ static void socksstate(struct connectdata *conn, enum connect_t state #ifdef DEBUGBUILD , int lineno #endif ) { enum connect_t oldstate = conn->cnnct.state; #if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS) /* synced with the state list in urldata.h */ static const char * const statename[] = { "INIT", "SOCKS_INIT", "SOCKS_SEND", "SOCKS_READ_INIT", "SOCKS_READ", "GSSAPI_INIT", "AUTH_INIT", "AUTH_SEND", "AUTH_READ", "REQ_INIT", "RESOLVING", "RESOLVED", "RESOLVE_REMOTE", "REQ_SEND", "REQ_SENDING", "REQ_READ", "REQ_READ_MORE", "DONE" }; #endif if(oldstate == state) /* don't bother when the new state is the same as the old state */ return; conn->cnnct.state = state; #if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS) infof(conn->data, "SXSTATE: %s => %s conn %p; line %d\n", statename[oldstate], statename[conn->cnnct.state], conn, lineno); #endif } int Curl_SOCKS_getsock(struct connectdata *conn, curl_socket_t *sock, int sockindex) { int rc = 0; sock[0] = conn->sock[sockindex]; switch(conn->cnnct.state) { case CONNECT_RESOLVING: case CONNECT_SOCKS_READ: case CONNECT_AUTH_READ: case CONNECT_REQ_READ: case CONNECT_REQ_READ_MORE: rc = GETSOCK_READSOCK(0); break; default: rc = GETSOCK_WRITESOCK(0); break; } return rc; } /* * This function logs in to a SOCKS4 proxy and sends the specifics to the final * destination server. * * Reference : * https://www.openssh.com/txt/socks4.protocol * * Note : * Set protocol4a=true for "SOCKS 4A (Simple Extension to SOCKS 4 Protocol)" * Nonsupport "Identification Protocol (RFC1413)" */ CURLcode Curl_SOCKS4(const char *proxy_user, const char *hostname, int remote_port, int sockindex, struct connectdata *conn, bool *done) { const bool protocol4a = (conn->socks_proxy.proxytype == CURLPROXY_SOCKS4A) ? TRUE : FALSE; unsigned char *socksreq = &conn->cnnct.socksreq[0]; CURLcode result; curl_socket_t sockfd = conn->sock[sockindex]; struct Curl_easy *data = conn->data; struct connstate *sx = &conn->cnnct; struct Curl_dns_entry *dns = NULL; ssize_t actualread; ssize_t written; if(!SOCKS_STATE(sx->state) && !*done) sxstate(conn, CONNECT_SOCKS_INIT); switch(sx->state) { case CONNECT_SOCKS_INIT: if(conn->bits.httpproxy) infof(conn->data, "SOCKS4%s: connecting to HTTP proxy %s port %d\n", protocol4a ? "a" : "", hostname, remote_port); infof(data, "SOCKS4 communication to %s:%d\n", hostname, remote_port); /* * Compose socks4 request * * Request format * * +----+----+----+----+----+----+----+----+----+----+....+----+ * | VN | CD | DSTPORT | DSTIP | USERID |NULL| * +----+----+----+----+----+----+----+----+----+----+....+----+ * # of bytes: 1 1 2 4 variable 1 */ socksreq[0] = 4; /* version (SOCKS4) */ socksreq[1] = 1; /* connect */ socksreq[2] = (unsigned char)((remote_port >> 8) & 0xff); /* PORT MSB */ socksreq[3] = (unsigned char)(remote_port & 0xff); /* PORT LSB */ /* DNS resolve only for SOCKS4, not SOCKS4a */ if(!protocol4a) { enum resolve_t rc = Curl_resolv(conn, hostname, remote_port, FALSE, &dns); if(rc == CURLRESOLV_ERROR) return CURLE_COULDNT_RESOLVE_PROXY; else if(rc == CURLRESOLV_PENDING) { sxstate(conn, CONNECT_RESOLVING); infof(data, "SOCKS4 non-blocking resolve of %s\n", hostname); return CURLE_OK; } sxstate(conn, CONNECT_RESOLVED); goto CONNECT_RESOLVED; } /* socks4a doesn't resolve anything locally */ sxstate(conn, CONNECT_REQ_INIT); goto CONNECT_REQ_INIT; case CONNECT_RESOLVING: /* check if we have the name resolved by now */ dns = Curl_fetch_addr(conn, hostname, (int)conn->port); if(dns) { #ifdef CURLRES_ASYNCH conn->async.dns = dns; conn->async.done = TRUE; #endif infof(data, "Hostname '%s' was found\n", hostname); sxstate(conn, CONNECT_RESOLVED); } else { result = Curl_resolv_check(data->conn, &dns); /* stay in the state or error out */ return result; } /* FALLTHROUGH */ CONNECT_RESOLVED: case CONNECT_RESOLVED: { Curl_addrinfo *hp = NULL; char buf[64]; /* * We cannot use 'hostent' as a struct that Curl_resolv() returns. It * returns a Curl_addrinfo pointer that may not always look the same. */ if(dns) hp = dns->addr; if(hp) { Curl_printable_address(hp, buf, sizeof(buf)); if(hp->ai_family == AF_INET) { struct sockaddr_in *saddr_in; saddr_in = (struct sockaddr_in *)(void *)hp->ai_addr; socksreq[4] = ((unsigned char *)&saddr_in->sin_addr.s_addr)[0]; socksreq[5] = ((unsigned char *)&saddr_in->sin_addr.s_addr)[1]; socksreq[6] = ((unsigned char *)&saddr_in->sin_addr.s_addr)[2]; socksreq[7] = ((unsigned char *)&saddr_in->sin_addr.s_addr)[3]; infof(data, "SOCKS4 connect to IPv4 %s (locally resolved)\n", buf); } else { hp = NULL; /* fail! */ failf(data, "SOCKS4 connection to %s not supported\n", buf); } Curl_resolv_unlock(data, dns); /* not used anymore from now on */ } if(!hp) { failf(data, "Failed to resolve \"%s\" for SOCKS4 connect.", hostname); return CURLE_COULDNT_RESOLVE_HOST; } } /* FALLTHROUGH */ CONNECT_REQ_INIT: case CONNECT_REQ_INIT: /* * This is currently not supporting "Identification Protocol (RFC1413)". */ socksreq[8] = 0; /* ensure empty userid is NUL-terminated */ if(proxy_user) { size_t plen = strlen(proxy_user); if(plen >= sizeof(sx->socksreq) - 8) { failf(data, "Too long SOCKS proxy name, can't use!\n"); return CURLE_COULDNT_CONNECT; } /* copy the proxy name WITH trailing zero */ memcpy(socksreq + 8, proxy_user, plen + 1); } /* * Make connection */ { ssize_t packetsize = 9 + strlen((char *)socksreq + 8); /* size including NUL */ /* If SOCKS4a, set special invalid IP address 0.0.0.x */ if(protocol4a) { ssize_t hostnamelen = 0; socksreq[4] = 0; socksreq[5] = 0; socksreq[6] = 0; socksreq[7] = 1; /* append hostname */ hostnamelen = (ssize_t)strlen(hostname) + 1; /* length including NUL */ if(hostnamelen <= 255) strcpy((char *)socksreq + packetsize, hostname); else { failf(data, "SOCKS4: too long host name"); return CURLE_COULDNT_CONNECT; } packetsize += hostnamelen; } sx->outp = socksreq; sx->outstanding = packetsize; sxstate(conn, CONNECT_REQ_SENDING); } /* FALLTHROUGH */ case CONNECT_REQ_SENDING: /* Send request */ result = Curl_write_plain(conn, sockfd, (char *)sx->outp, sx->outstanding, &written); if(result && (CURLE_AGAIN != result)) { failf(data, "Failed to send SOCKS4 connect request."); return CURLE_COULDNT_CONNECT; } if(written != sx->outstanding) { /* not done, remain in state */ sx->outstanding -= written; sx->outp += written; return CURLE_OK; } /* done sending! */ sx->outstanding = 8; /* receive data size */ sx->outp = socksreq; sxstate(conn, CONNECT_SOCKS_READ); /* FALLTHROUGH */ case CONNECT_SOCKS_READ: /* Receive response */ result = Curl_read_plain(sockfd, (char *)sx->outp, sx->outstanding, &actualread); if(result && (CURLE_AGAIN != result)) { failf(data, "SOCKS4: Failed receiving connect request ack: %s", curl_easy_strerror(result)); return CURLE_COULDNT_CONNECT; } else if(actualread != sx->outstanding) { /* remain in reading state */ sx->outstanding -= actualread; sx->outp += actualread; return CURLE_OK; } sxstate(conn, CONNECT_DONE); break; default: /* lots of unused states in SOCKS4 */ break; } /* * Response format * * +----+----+----+----+----+----+----+----+ * | VN | CD | DSTPORT | DSTIP | * +----+----+----+----+----+----+----+----+ * # of bytes: 1 1 2 4 * * VN is the version of the reply code and should be 0. CD is the result * code with one of the following values: * * 90: request granted * 91: request rejected or failed * 92: request rejected because SOCKS server cannot connect to * identd on the client * 93: request rejected because the client program and identd * report different user-ids */ /* wrong version ? */ if(socksreq[0] != 0) { failf(data, "SOCKS4 reply has wrong version, version should be 0."); return CURLE_COULDNT_CONNECT; } /* Result */ switch(socksreq[1]) { case 90: infof(data, "SOCKS4%s request granted.\n", protocol4a?"a":""); break; case 91: failf(data, "Can't complete SOCKS4 connection to %d.%d.%d.%d:%d. (%d)" ", request rejected or failed.", (unsigned char)socksreq[4], (unsigned char)socksreq[5], (unsigned char)socksreq[6], (unsigned char)socksreq[7], (((unsigned char)socksreq[2] << 8) | (unsigned char)socksreq[3]), (unsigned char)socksreq[1]); return CURLE_COULDNT_CONNECT; case 92: failf(data, "Can't complete SOCKS4 connection to %d.%d.%d.%d:%d. (%d)" ", request rejected because SOCKS server cannot connect to " "identd on the client.", (unsigned char)socksreq[4], (unsigned char)socksreq[5], (unsigned char)socksreq[6], (unsigned char)socksreq[7], (((unsigned char)socksreq[2] << 8) | (unsigned char)socksreq[3]), (unsigned char)socksreq[1]); return CURLE_COULDNT_CONNECT; case 93: failf(data, "Can't complete SOCKS4 connection to %d.%d.%d.%d:%d. (%d)" ", request rejected because the client program and identd " "report different user-ids.", (unsigned char)socksreq[4], (unsigned char)socksreq[5], (unsigned char)socksreq[6], (unsigned char)socksreq[7], (((unsigned char)socksreq[2] << 8) | (unsigned char)socksreq[3]), (unsigned char)socksreq[1]); return CURLE_COULDNT_CONNECT; default: failf(data, "Can't complete SOCKS4 connection to %d.%d.%d.%d:%d. (%d)" ", Unknown.", (unsigned char)socksreq[4], (unsigned char)socksreq[5], (unsigned char)socksreq[6], (unsigned char)socksreq[7], (((unsigned char)socksreq[2] << 8) | (unsigned char)socksreq[3]), (unsigned char)socksreq[1]); return CURLE_COULDNT_CONNECT; } *done = TRUE; return CURLE_OK; /* Proxy was successful! */ } /* * This function logs in to a SOCKS5 proxy and sends the specifics to the final * destination server. */ CURLcode Curl_SOCKS5(const char *proxy_user, const char *proxy_password, const char *hostname, int remote_port, int sockindex, struct connectdata *conn, bool *done) { /* According to the RFC1928, section "6. Replies". This is what a SOCK5 replies: +----+-----+-------+------+----------+----------+ |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | +----+-----+-------+------+----------+----------+ | 1 | 1 | X'00' | 1 | Variable | 2 | +----+-----+-------+------+----------+----------+ Where: o VER protocol version: X'05' o REP Reply field: o X'00' succeeded */ unsigned char *socksreq = &conn->cnnct.socksreq[0]; char dest[256] = "unknown"; /* printable hostname:port */ int idx; ssize_t actualread; ssize_t written; CURLcode result; curl_socket_t sockfd = conn->sock[sockindex]; struct Curl_easy *data = conn->data; bool socks5_resolve_local = (conn->socks_proxy.proxytype == CURLPROXY_SOCKS5) ? TRUE : FALSE; const size_t hostname_len = strlen(hostname); ssize_t len = 0; const unsigned long auth = data->set.socks5auth; bool allow_gssapi = FALSE; struct connstate *sx = &conn->cnnct; struct Curl_dns_entry *dns = NULL; if(!SOCKS_STATE(sx->state) && !*done) sxstate(conn, CONNECT_SOCKS_INIT); switch(sx->state) { case CONNECT_SOCKS_INIT: if(conn->bits.httpproxy) infof(conn->data, "SOCKS5: connecting to HTTP proxy %s port %d\n", hostname, remote_port); /* RFC1928 chapter 5 specifies max 255 chars for domain name in packet */ if(!socks5_resolve_local && hostname_len > 255) { infof(conn->data, "SOCKS5: server resolving disabled for hostnames of " "length > 255 [actual len=%zu]\n", hostname_len); socks5_resolve_local = TRUE; } if(auth & ~(CURLAUTH_BASIC | CURLAUTH_GSSAPI)) infof(conn->data, "warning: unsupported value passed to CURLOPT_SOCKS5_AUTH: %lu\n", auth); if(!(auth & CURLAUTH_BASIC)) /* disable username/password auth */ proxy_user = NULL; #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) if(auth & CURLAUTH_GSSAPI) allow_gssapi = TRUE; #endif idx = 0; socksreq[idx++] = 5; /* version */ idx++; /* number of authentication methods */ socksreq[idx++] = 0; /* no authentication */ if(allow_gssapi) socksreq[idx++] = 1; /* GSS-API */ if(proxy_user) socksreq[idx++] = 2; /* username/password */ /* write the number of authentication methods */ socksreq[1] = (unsigned char) (idx - 2); result = Curl_write_plain(conn, sockfd, (char *)socksreq, idx, &written); if(result && (CURLE_AGAIN != result)) { failf(data, "Unable to send initial SOCKS5 request."); return CURLE_COULDNT_CONNECT; } if(written != idx) { sxstate(conn, CONNECT_SOCKS_SEND); sx->outstanding = idx - written; sx->outp = &socksreq[written]; return CURLE_OK; } sxstate(conn, CONNECT_SOCKS_READ); goto CONNECT_SOCKS_READ_INIT; case CONNECT_SOCKS_SEND: result = Curl_write_plain(conn, sockfd, (char *)sx->outp, sx->outstanding, &written); if(result && (CURLE_AGAIN != result)) { failf(data, "Unable to send initial SOCKS5 request."); return CURLE_COULDNT_CONNECT; } if(written != sx->outstanding) { /* not done, remain in state */ sx->outstanding -= written; sx->outp += written; return CURLE_OK; } /* FALLTHROUGH */ CONNECT_SOCKS_READ_INIT: case CONNECT_SOCKS_READ_INIT: sx->outstanding = 2; /* expect two bytes */ sx->outp = socksreq; /* store it here */ /* FALLTHROUGH */ case CONNECT_SOCKS_READ: result = Curl_read_plain(sockfd, (char *)sx->outp, sx->outstanding, &actualread); if(result && (CURLE_AGAIN != result)) { failf(data, "Unable to receive initial SOCKS5 response."); return CURLE_COULDNT_CONNECT; } else if(actualread != sx->outstanding) { /* remain in reading state */ sx->outstanding -= actualread; sx->outp += actualread; return CURLE_OK; } else if(socksreq[0] != 5) { failf(data, "Received invalid version in initial SOCKS5 response."); return CURLE_COULDNT_CONNECT; } else if(socksreq[1] == 0) { /* DONE! No authentication needed. Send request. */ sxstate(conn, CONNECT_REQ_INIT); goto CONNECT_REQ_INIT; } else if(socksreq[1] == 2) { /* regular name + password authentication */ sxstate(conn, CONNECT_AUTH_INIT); goto CONNECT_AUTH_INIT; } #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) else if(allow_gssapi && (socksreq[1] == 1)) { sxstate(conn, CONNECT_GSSAPI_INIT); result = Curl_SOCKS5_gssapi_negotiate(sockindex, conn); if(result) { failf(data, "Unable to negotiate SOCKS5 GSS-API context."); return CURLE_COULDNT_CONNECT; } } #endif else { /* error */ if(!allow_gssapi && (socksreq[1] == 1)) { failf(data, "SOCKS5 GSSAPI per-message authentication is not supported."); return CURLE_COULDNT_CONNECT; } else if(socksreq[1] == 255) { failf(data, "No authentication method was acceptable."); return CURLE_COULDNT_CONNECT; } failf(data, "Undocumented SOCKS5 mode attempted to be used by server."); return CURLE_COULDNT_CONNECT; } break; #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) case CONNECT_GSSAPI_INIT: /* GSSAPI stuff done non-blocking */ break; #endif default: /* do nothing! */ break; CONNECT_AUTH_INIT: case CONNECT_AUTH_INIT: { /* Needs user name and password */ size_t proxy_user_len, proxy_password_len; if(proxy_user && proxy_password) { proxy_user_len = strlen(proxy_user); proxy_password_len = strlen(proxy_password); } else { |
︙ | ︙ | |||
545 546 547 548 549 550 551 | if(proxy_password_len > 255) { failf(data, "Excessive password length for proxy auth"); return CURLE_BAD_FUNCTION_ARGUMENT; } memcpy(socksreq + len, proxy_password, proxy_password_len); } len += proxy_password_len; | > > > | > > | | > > > > > > | > > > > > > | | > > > > > > < < < < < < | < < < < < < < < < < < < < < < < < < < | < < < < < | > | < < < < < < < < < < | > | | | < | < | | > > | > | > > > | > > > > > > > | > > > > > | > > > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | > > > | > > > | > > | > > > > > > > > > | > > > > > > | | > > > > | | > > < > > > | | | | > > > > > > > > > > > > > > > | > | > > > > > > | | > | < > > > > > | | > > > | > > > > > > > > > > > > > > > > > > | > | | > > > > > > | | | | | | > > > > | > | | | | | | | | | | | | | | | | | | | | | | | | | | | > | < < < | > > > | | > > > > > > > | < < < > > > > | > > | | 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 | if(proxy_password_len > 255) { failf(data, "Excessive password length for proxy auth"); return CURLE_BAD_FUNCTION_ARGUMENT; } memcpy(socksreq + len, proxy_password, proxy_password_len); } len += proxy_password_len; sxstate(conn, CONNECT_AUTH_SEND); sx->outstanding = len; sx->outp = socksreq; } /* FALLTHROUGH */ case CONNECT_AUTH_SEND: result = Curl_write_plain(conn, sockfd, (char *)sx->outp, sx->outstanding, &written); if(result && (CURLE_AGAIN != result)) { failf(data, "Failed to send SOCKS5 sub-negotiation request."); return CURLE_COULDNT_CONNECT; } if(sx->outstanding != written) { /* remain in state */ sx->outstanding -= written; sx->outp += written; return CURLE_OK; } sx->outp = socksreq; sx->outstanding = 2; sxstate(conn, CONNECT_AUTH_READ); /* FALLTHROUGH */ case CONNECT_AUTH_READ: result = Curl_read_plain(sockfd, (char *)sx->outp, sx->outstanding, &actualread); if(result && (CURLE_AGAIN != result)) { failf(data, "Unable to receive SOCKS5 sub-negotiation response."); return CURLE_COULDNT_CONNECT; } if(actualread != sx->outstanding) { /* remain in state */ sx->outstanding -= actualread; sx->outp += actualread; return CURLE_OK; } /* ignore the first (VER) byte */ if(socksreq[1] != 0) { /* status */ failf(data, "User was rejected by the SOCKS5 server (%d %d).", socksreq[0], socksreq[1]); return CURLE_COULDNT_CONNECT; } /* Everything is good so far, user was authenticated! */ sxstate(conn, CONNECT_REQ_INIT); /* FALLTHROUGH */ CONNECT_REQ_INIT: case CONNECT_REQ_INIT: if(socks5_resolve_local) { enum resolve_t rc = Curl_resolv(conn, hostname, remote_port, FALSE, &dns); if(rc == CURLRESOLV_ERROR) return CURLE_COULDNT_RESOLVE_HOST; if(rc == CURLRESOLV_PENDING) { sxstate(conn, CONNECT_RESOLVING); return CURLE_OK; } sxstate(conn, CONNECT_RESOLVED); goto CONNECT_RESOLVED; } goto CONNECT_RESOLVE_REMOTE; case CONNECT_RESOLVING: /* check if we have the name resolved by now */ dns = Curl_fetch_addr(conn, hostname, (int)conn->port); if(dns) { #ifdef CURLRES_ASYNCH conn->async.dns = dns; conn->async.done = TRUE; #endif infof(data, "SOCKS5: hostname '%s' found\n", hostname); } if(!dns) { result = Curl_resolv_check(data->conn, &dns); /* stay in the state or error out */ return result; } /* FALLTHROUGH */ CONNECT_RESOLVED: case CONNECT_RESOLVED: { Curl_addrinfo *hp = NULL; if(dns) hp = dns->addr; if(!hp) { failf(data, "Failed to resolve \"%s\" for SOCKS5 connect.", hostname); return CURLE_COULDNT_RESOLVE_HOST; } if(Curl_printable_address(hp, dest, sizeof(dest))) { size_t destlen = strlen(dest); msnprintf(dest + destlen, sizeof(dest) - destlen, ":%d", remote_port); } else { strcpy(dest, "unknown"); } len = 0; socksreq[len++] = 5; /* version (SOCKS5) */ socksreq[len++] = 1; /* connect */ socksreq[len++] = 0; /* must be zero */ if(hp->ai_family == AF_INET) { int i; struct sockaddr_in *saddr_in; socksreq[len++] = 1; /* ATYP: IPv4 = 1 */ saddr_in = (struct sockaddr_in *)(void *)hp->ai_addr; for(i = 0; i < 4; i++) { socksreq[len++] = ((unsigned char *)&saddr_in->sin_addr.s_addr)[i]; } infof(data, "SOCKS5 connect to IPv4 %s (locally resolved)\n", dest); } #ifdef ENABLE_IPV6 else if(hp->ai_family == AF_INET6) { int i; struct sockaddr_in6 *saddr_in6; socksreq[len++] = 4; /* ATYP: IPv6 = 4 */ saddr_in6 = (struct sockaddr_in6 *)(void *)hp->ai_addr; for(i = 0; i < 16; i++) { socksreq[len++] = ((unsigned char *)&saddr_in6->sin6_addr.s6_addr)[i]; } infof(data, "SOCKS5 connect to IPv6 %s (locally resolved)\n", dest); } #endif else { hp = NULL; /* fail! */ failf(data, "SOCKS5 connection to %s not supported\n", dest); } Curl_resolv_unlock(data, dns); /* not used anymore from now on */ goto CONNECT_REQ_SEND; } CONNECT_RESOLVE_REMOTE: case CONNECT_RESOLVE_REMOTE: /* Authentication is complete, now specify destination to the proxy */ len = 0; socksreq[len++] = 5; /* version (SOCKS5) */ socksreq[len++] = 1; /* connect */ socksreq[len++] = 0; /* must be zero */ if(!socks5_resolve_local) { socksreq[len++] = 3; /* ATYP: domain name = 3 */ socksreq[len++] = (char) hostname_len; /* one byte address length */ memcpy(&socksreq[len], hostname, hostname_len); /* address w/o NULL */ len += hostname_len; infof(data, "SOCKS5 connect to %s:%d (remotely resolved)\n", hostname, remote_port); } /* FALLTHROUGH */ CONNECT_REQ_SEND: case CONNECT_REQ_SEND: /* PORT MSB */ socksreq[len++] = (unsigned char)((remote_port >> 8) & 0xff); /* PORT LSB */ socksreq[len++] = (unsigned char)(remote_port & 0xff); #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) if(conn->socks5_gssapi_enctype) { failf(data, "SOCKS5 GSS-API protection not yet implemented."); return CURLE_COULDNT_CONNECT; } #endif sx->outp = socksreq; sx->outstanding = len; sxstate(conn, CONNECT_REQ_SENDING); /* FALLTHROUGH */ case CONNECT_REQ_SENDING: result = Curl_write_plain(conn, sockfd, (char *)sx->outp, sx->outstanding, &written); if(result && (CURLE_AGAIN != result)) { failf(data, "Failed to send SOCKS5 connect request."); return CURLE_COULDNT_CONNECT; } if(sx->outstanding != written) { /* remain in state */ sx->outstanding -= written; sx->outp += written; return CURLE_OK; } #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) if(conn->socks5_gssapi_enctype) { failf(data, "SOCKS5 GSS-API protection not yet implemented."); return CURLE_COULDNT_CONNECT; } #endif sx->outstanding = 10; /* minimum packet size is 10 */ sx->outp = socksreq; sxstate(conn, CONNECT_REQ_READ); /* FALLTHROUGH */ case CONNECT_REQ_READ: result = Curl_read_plain(sockfd, (char *)sx->outp, sx->outstanding, &actualread); if(result && (CURLE_AGAIN != result)) { failf(data, "Failed to receive SOCKS5 connect request ack."); return CURLE_COULDNT_CONNECT; } else if(actualread != sx->outstanding) { /* remain in state */ sx->outstanding -= actualread; sx->outp += actualread; return CURLE_OK; } if(socksreq[0] != 5) { /* version */ failf(data, "SOCKS5 reply has wrong version, version should be 5."); return CURLE_COULDNT_CONNECT; } else if(socksreq[1] != 0) { /* Anything besides 0 is an error */ failf(data, "Can't complete SOCKS5 connection to %s. (%d)", hostname, (unsigned char)socksreq[1]); return CURLE_COULDNT_CONNECT; } /* Fix: in general, returned BND.ADDR is variable length parameter by RFC 1928, so the reply packet should be read until the end to avoid errors at subsequent protocol level. +----+-----+-------+------+----------+----------+ |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | +----+-----+-------+------+----------+----------+ | 1 | 1 | X'00' | 1 | Variable | 2 | +----+-----+-------+------+----------+----------+ ATYP: o IP v4 address: X'01', BND.ADDR = 4 byte o domain name: X'03', BND.ADDR = [ 1 byte length, string ] o IP v6 address: X'04', BND.ADDR = 16 byte */ /* Calculate real packet size */ if(socksreq[3] == 3) { /* domain name */ int addrlen = (int) socksreq[4]; len = 5 + addrlen + 2; } else if(socksreq[3] == 4) { /* IPv6 */ len = 4 + 16 + 2; } /* At this point we already read first 10 bytes */ #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) if(!conn->socks5_gssapi_enctype) { /* decrypt_gssapi_blockread already read the whole packet */ #endif if(len > 10) { sx->outstanding = len - 10; /* get the rest */ sx->outp = &socksreq[10]; sxstate(conn, CONNECT_REQ_READ_MORE); } else { sxstate(conn, CONNECT_DONE); break; } #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) } #endif /* FALLTHROUGH */ case CONNECT_REQ_READ_MORE: result = Curl_read_plain(sockfd, (char *)sx->outp, sx->outstanding, &actualread); if(result && (CURLE_AGAIN != result)) { failf(data, "Failed to receive SOCKS5 connect request ack."); return CURLE_COULDNT_CONNECT; } if(actualread != sx->outstanding) { /* remain in state */ sx->outstanding -= actualread; sx->outp += actualread; return CURLE_OK; } sxstate(conn, CONNECT_DONE); } infof(data, "SOCKS5 request granted.\n"); *done = TRUE; return CURLE_OK; /* Proxy was successful! */ } #endif /* CURL_DISABLE_PROXY */ |
Changes to jni/curl/lib/socks.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_SOCKS_H #define HEADER_CURL_SOCKS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > | < > > > | > | > | 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 | #ifndef HEADER_CURL_SOCKS_H #define HEADER_CURL_SOCKS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #ifdef CURL_DISABLE_PROXY #define Curl_SOCKS4(a,b,c,d,e) CURLE_NOT_BUILT_IN #define Curl_SOCKS5(a,b,c,d,e,f) CURLE_NOT_BUILT_IN #define Curl_SOCKS_getsock(x,y,z) 0 #else /* * Helper read-from-socket functions. Does the same as Curl_read() but it * blocks until all bytes amount of buffersize will be read. No more, no less. * * This is STUPID BLOCKING behavior */ int Curl_blockread_all(struct connectdata *conn, curl_socket_t sockfd, char *buf, ssize_t buffersize, ssize_t *n); int Curl_SOCKS_getsock(struct connectdata *conn, curl_socket_t *sock, int sockindex); /* * This function logs in to a SOCKS4(a) proxy and sends the specifics to the * final destination server. */ CURLcode Curl_SOCKS4(const char *proxy_name, const char *hostname, int remote_port, int sockindex, struct connectdata *conn, bool *done); /* * This function logs in to a SOCKS5 proxy and sends the specifics to the * final destination server. */ CURLcode Curl_SOCKS5(const char *proxy_name, const char *proxy_password, const char *hostname, int remote_port, int sockindex, struct connectdata *conn, bool *done); #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) /* * This function handles the SOCKS5 GSS-API negotiation and initialisation */ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex, struct connectdata *conn); #endif #endif /* CURL_DISABLE_PROXY */ #endif /* HEADER_CURL_SOCKS_H */ |
Changes to jni/curl/lib/socks_gssapi.c.
1 2 3 4 5 6 7 8 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2009, Markus Moeller, <markus_moeller@compuserve.com> | > < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2009, Markus Moeller, <markus_moeller@compuserve.com> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
162 163 164 165 166 167 168 169 170 171 172 173 174 175 | if(check_gss_err(data, gss_major_status, gss_minor_status, "gss_import_name()")) { failf(data, "Failed to create service name."); gss_release_name(&gss_status, &server); return CURLE_COULDNT_CONNECT; } /* As long as we need to keep sending some context info, and there's no */ /* errors, keep sending it... */ for(;;) { gss_major_status = Curl_gss_init_sec_context(data, &gss_minor_status, &gss_context, | > > | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | if(check_gss_err(data, gss_major_status, gss_minor_status, "gss_import_name()")) { failf(data, "Failed to create service name."); gss_release_name(&gss_status, &server); return CURLE_COULDNT_CONNECT; } (void)curlx_nonblock(sock, FALSE); /* As long as we need to keep sending some context info, and there's no */ /* errors, keep sending it... */ for(;;) { gss_major_status = Curl_gss_init_sec_context(data, &gss_minor_status, &gss_context, |
︙ | ︙ | |||
508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 | gss_delete_sec_context(&gss_status, &gss_context, NULL); return CURLE_COULDNT_CONNECT; } memcpy(socksreq, gss_recv_token.value, gss_recv_token.length); gss_release_buffer(&gss_status, &gss_recv_token); } infof(data, "SOCKS5 access with%s protection granted.\n", (socksreq[0] == 0)?"out GSS-API data": ((socksreq[0] == 1)?" GSS-API integrity":" GSS-API confidentiality")); conn->socks5_gssapi_enctype = socksreq[0]; if(socksreq[0] == 0) gss_delete_sec_context(&gss_status, &gss_context, NULL); return CURLE_OK; } #endif /* HAVE_GSSAPI && !CURL_DISABLE_PROXY */ | > > | 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 | gss_delete_sec_context(&gss_status, &gss_context, NULL); return CURLE_COULDNT_CONNECT; } memcpy(socksreq, gss_recv_token.value, gss_recv_token.length); gss_release_buffer(&gss_status, &gss_recv_token); } (void)curlx_nonblock(sock, TRUE); infof(data, "SOCKS5 access with%s protection granted.\n", (socksreq[0] == 0)?"out GSS-API data": ((socksreq[0] == 1)?" GSS-API integrity":" GSS-API confidentiality")); conn->socks5_gssapi_enctype = socksreq[0]; if(socksreq[0] == 0) gss_delete_sec_context(&gss_status, &gss_context, NULL); return CURLE_OK; } #endif /* HAVE_GSSAPI && !CURL_DISABLE_PROXY */ |
Changes to jni/curl/lib/socks_sspi.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2009, 2011, Markus Moeller, <markus_moeller@compuserve.com> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell |
︙ | ︙ | |||
148 149 150 151 152 153 154 155 156 157 158 159 160 161 | if(check_sspi_err(conn, status, "AcquireCredentialsHandle")) { failf(data, "Failed to acquire credentials."); free(service_name); s_pSecFn->FreeCredentialsHandle(&cred_handle); return CURLE_COULDNT_CONNECT; } /* As long as we need to keep sending some context info, and there's no */ /* errors, keep sending it... */ for(;;) { TCHAR *sname; sname = Curl_convert_UTF8_to_tchar(service_name); | > > | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | if(check_sspi_err(conn, status, "AcquireCredentialsHandle")) { failf(data, "Failed to acquire credentials."); free(service_name); s_pSecFn->FreeCredentialsHandle(&cred_handle); return CURLE_COULDNT_CONNECT; } (void)curlx_nonblock(sock, FALSE); /* As long as we need to keep sending some context info, and there's no */ /* errors, keep sending it... */ for(;;) { TCHAR *sname; sname = Curl_convert_UTF8_to_tchar(service_name); |
︙ | ︙ | |||
583 584 585 586 587 588 589 590 591 592 593 594 595 596 | s_pSecFn->FreeContextBuffer(sspi_w_token[0].pvBuffer); s_pSecFn->DeleteSecurityContext(&sspi_context); return CURLE_COULDNT_CONNECT; } memcpy(socksreq, sspi_w_token[0].pvBuffer, sspi_w_token[0].cbBuffer); s_pSecFn->FreeContextBuffer(sspi_w_token[0].pvBuffer); } infof(data, "SOCKS5 access with%s protection granted.\n", (socksreq[0] == 0)?"out GSS-API data": ((socksreq[0] == 1)?" GSS-API integrity":" GSS-API confidentiality")); /* For later use if encryption is required conn->socks5_gssapi_enctype = socksreq[0]; | > | 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 | s_pSecFn->FreeContextBuffer(sspi_w_token[0].pvBuffer); s_pSecFn->DeleteSecurityContext(&sspi_context); return CURLE_COULDNT_CONNECT; } memcpy(socksreq, sspi_w_token[0].pvBuffer, sspi_w_token[0].cbBuffer); s_pSecFn->FreeContextBuffer(sspi_w_token[0].pvBuffer); } (void)curlx_nonblock(sock, TRUE); infof(data, "SOCKS5 access with%s protection granted.\n", (socksreq[0] == 0)?"out GSS-API data": ((socksreq[0] == 1)?" GSS-API integrity":" GSS-API confidentiality")); /* For later use if encryption is required conn->socks5_gssapi_enctype = socksreq[0]; |
︙ | ︙ |
Changes to jni/curl/lib/strcase.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #include <curl/curl.h> #include "strcase.h" static char raw_tolower(char in); /* Portable, consistent toupper (remember EBCDIC). Do not use toupper() because its behavior is altered by the current locale. */ char Curl_raw_toupper(char in) { #if !defined(CURL_DOES_CONVERSIONS) if(in >= 'a' && in <= 'z') |
︙ | ︙ | |||
92 93 94 95 96 97 98 | return in; } /* Portable, consistent tolower (remember EBCDIC). Do not use tolower() because its behavior is altered by the current locale. */ | | | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | return in; } /* Portable, consistent tolower (remember EBCDIC). Do not use tolower() because its behavior is altered by the current locale. */ static char raw_tolower(char in) { #if !defined(CURL_DOES_CONVERSIONS) if(in >= 'A' && in <= 'Z') return (char)('a' + in - 'A'); #else switch(in) { case 'A': |
︙ | ︙ | |||
241 242 243 244 245 246 247 | */ void Curl_strntolower(char *dest, const char *src, size_t n) { if(n < 1) return; do { | | | 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 | */ void Curl_strntolower(char *dest, const char *src, size_t n) { if(n < 1) return; do { *dest++ = raw_tolower(*src); } while(*src++ && --n); } /* --- public functions --- */ int curl_strequal(const char *first, const char *second) { return Curl_strcasecompare(first, second); } int curl_strnequal(const char *first, const char *second, size_t max) { return Curl_strncasecompare(first, second, max); } |
Changes to jni/curl/lib/strcase.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_STRCASE_H #define HEADER_CURL_STRCASE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_STRCASE_H #define HEADER_CURL_STRCASE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
36 37 38 39 40 41 42 | #define strncasecompare(a,b,c) Curl_strncasecompare(a,b,c) int Curl_strcasecompare(const char *first, const char *second); int Curl_safe_strcasecompare(const char *first, const char *second); int Curl_strncasecompare(const char *first, const char *second, size_t max); char Curl_raw_toupper(char in); | < | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #define strncasecompare(a,b,c) Curl_strncasecompare(a,b,c) int Curl_strcasecompare(const char *first, const char *second); int Curl_safe_strcasecompare(const char *first, const char *second); int Curl_strncasecompare(const char *first, const char *second, size_t max); char Curl_raw_toupper(char in); /* checkprefix() is a shorter version of the above, used when the first argument is zero-byte terminated */ #define checkprefix(a,b) curl_strnequal(a,b,strlen(a)) void Curl_strntoupper(char *dest, const char *src, size_t n); void Curl_strntolower(char *dest, const char *src, size_t n); #endif /* HEADER_CURL_STRCASE_H */ |
Changes to jni/curl/lib/strerror.c.
︙ | ︙ | |||
313 314 315 316 317 318 319 320 321 322 323 324 325 326 | case CURLE_AUTH_ERROR: return "An authentication function returned an error"; case CURLE_HTTP3: return "HTTP/3 error"; /* error codes not used by current libcurl */ case CURLE_OBSOLETE20: case CURLE_OBSOLETE24: case CURLE_OBSOLETE29: case CURLE_OBSOLETE32: case CURLE_OBSOLETE40: case CURLE_OBSOLETE44: | > > > | 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 | case CURLE_AUTH_ERROR: return "An authentication function returned an error"; case CURLE_HTTP3: return "HTTP/3 error"; case CURLE_QUIC_CONNECT_ERROR: return "QUIC connection error"; /* error codes not used by current libcurl */ case CURLE_OBSOLETE20: case CURLE_OBSOLETE24: case CURLE_OBSOLETE29: case CURLE_OBSOLETE32: case CURLE_OBSOLETE40: case CURLE_OBSOLETE44: |
︙ | ︙ | |||
388 389 390 391 392 393 394 395 396 397 398 399 400 401 | case CURLM_RECURSIVE_API_CALL: return "API function called from within callback"; case CURLM_WAKEUP_FAILURE: return "Wakeup is unavailable or failed"; case CURLM_LAST: break; } return "Unknown error"; #else if(error == CURLM_OK) | > > > | 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 | case CURLM_RECURSIVE_API_CALL: return "API function called from within callback"; case CURLM_WAKEUP_FAILURE: return "Wakeup is unavailable or failed"; case CURLM_BAD_FUNCTION_ARGUMENT: return "A libcurl function was given a bad argument"; case CURLM_LAST: break; } return "Unknown error"; #else if(error == CURLM_OK) |
︙ | ︙ |
Changes to jni/curl/lib/strerror.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_STRERROR_H #define HEADER_CURL_STRERROR_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | | 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 | #ifndef HEADER_CURL_STRERROR_H #define HEADER_CURL_STRERROR_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "urldata.h" #define STRERROR_LEN 256 /* a suitable length */ const char *Curl_strerror(int err, char *buf, size_t buflen); #if defined(WIN32) || defined(_WIN32_WCE) const char *Curl_winapi_strerror(DWORD err, char *buf, size_t buflen); #endif #ifdef USE_WINDOWS_SSPI const char *Curl_sspi_strerror(int err, char *buf, size_t buflen); #endif #endif /* HEADER_CURL_STRERROR_H */ |
Changes to jni/curl/lib/system_win32.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2016 - 2020, Steve Holme, <steve_holme@hotmail.com>. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
105 106 107 108 109 110 111 | if(pIfNameToIndex) Curl_if_nametoindex = pIfNameToIndex; } if(Curl_verify_windows_version(6, 0, PLATFORM_WINNT, VERSION_GREATER_THAN_EQUAL)) { Curl_isVistaOrGreater = TRUE; | < > | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | if(pIfNameToIndex) Curl_if_nametoindex = pIfNameToIndex; } if(Curl_verify_windows_version(6, 0, PLATFORM_WINNT, VERSION_GREATER_THAN_EQUAL)) { Curl_isVistaOrGreater = TRUE; } else Curl_isVistaOrGreater = FALSE; QueryPerformanceFrequency(&Curl_freq); return CURLE_OK; } /* Curl_win32_cleanup() is the opposite of Curl_win32_init() */ void Curl_win32_cleanup(long init_flags) { if(s_hIpHlpApiDll) { |
︙ | ︙ |
Changes to jni/curl/lib/timeval.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #if defined(WIN32) && !defined(MSDOS) /* set in win32_init() */ extern LARGE_INTEGER Curl_freq; extern bool Curl_isVistaOrGreater; struct curltime Curl_now(void) { struct curltime now; if(Curl_isVistaOrGreater) { /* QPC timer might have issues pre-Vista */ LARGE_INTEGER count; QueryPerformanceCounter(&count); now.tv_sec = (time_t)(count.QuadPart / Curl_freq.QuadPart); | > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #if defined(WIN32) && !defined(MSDOS) /* set in win32_init() */ extern LARGE_INTEGER Curl_freq; extern bool Curl_isVistaOrGreater; /* In case of bug fix this function has a counterpart in tool_util.c */ struct curltime Curl_now(void) { struct curltime now; if(Curl_isVistaOrGreater) { /* QPC timer might have issues pre-Vista */ LARGE_INTEGER count; QueryPerformanceCounter(&count); now.tv_sec = (time_t)(count.QuadPart / Curl_freq.QuadPart); |
︙ | ︙ |
Changes to jni/curl/lib/transfer.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
1213 1214 1215 1216 1217 1218 1219 | fd_read = CURL_SOCKET_BAD; if((k->keepon & KEEP_SENDBITS) == KEEP_SEND) fd_write = conn->writesockfd; else fd_write = CURL_SOCKET_BAD; | | > | 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 | fd_read = CURL_SOCKET_BAD; if((k->keepon & KEEP_SENDBITS) == KEEP_SEND) fd_write = conn->writesockfd; else fd_write = CURL_SOCKET_BAD; if(data->state.drain) { data->state.drain--; select_res |= CURL_CSELECT_IN; DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n")); } if(!select_res) /* Call for select()/poll() only, if read/write/error status is not known. */ select_res = Curl_socket_check(fd_read, CURL_SOCKET_BAD, fd_write, 0); |
︙ | ︙ |
Changes to jni/curl/lib/url.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
124 125 126 127 128 129 130 | /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" static void conn_free(struct connectdata *conn); | < | 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" static void conn_free(struct connectdata *conn); static unsigned int get_protocol_family(unsigned int protocol); /* Some parts of the code (e.g. chunked encoding) assume this buffer has at * more than just a few bytes to play with. Don't let it become too small or * bad things will happen. */ #if READBUFFER_SIZE < READBUFFER_MIN |
︙ | ︙ | |||
183 184 185 186 187 188 189 | &Curl_handler_file, #endif #ifndef CURL_DISABLE_TFTP &Curl_handler_tftp, #endif | | | 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | &Curl_handler_file, #endif #ifndef CURL_DISABLE_TFTP &Curl_handler_tftp, #endif #if defined(USE_SSH) && !defined(USE_WOLFSSH) &Curl_handler_scp, #endif #if defined(USE_SSH) &Curl_handler_sftp, #endif |
︙ | ︙ | |||
376 377 378 379 380 381 382 | up_free(data); Curl_safefree(data->state.buffer); Curl_safefree(data->state.headerbuff); Curl_safefree(data->state.ulbuf); Curl_flush_cookies(data, TRUE); #ifdef USE_ALTSVC | | | 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 | up_free(data); Curl_safefree(data->state.buffer); Curl_safefree(data->state.headerbuff); Curl_safefree(data->state.ulbuf); Curl_flush_cookies(data, TRUE); #ifdef USE_ALTSVC Curl_altsvc_save(data, data->asi, data->set.str[STRING_ALTSVC]); Curl_altsvc_cleanup(data->asi); data->asi = NULL; #endif #if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_CRYPTO_AUTH) Curl_http_auth_cleanup_digest(data); #endif Curl_safefree(data->info.contenttype); |
︙ | ︙ | |||
710 711 712 713 714 715 716 | } static void conn_free(struct connectdata *conn) { if(!conn) return; | | | | | < | 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 | } static void conn_free(struct connectdata *conn) { if(!conn) return; Curl_free_idnconverted_hostname(&conn->host); Curl_free_idnconverted_hostname(&conn->conn_to_host); Curl_free_idnconverted_hostname(&conn->http_proxy.host); Curl_free_idnconverted_hostname(&conn->socks_proxy.host); Curl_safefree(conn->user); Curl_safefree(conn->passwd); Curl_safefree(conn->sasl_authzid); Curl_safefree(conn->options); Curl_safefree(conn->http_proxy.user); Curl_safefree(conn->socks_proxy.user); Curl_safefree(conn->http_proxy.passwd); Curl_safefree(conn->socks_proxy.passwd); Curl_safefree(conn->allocptr.proxyuserpwd); |
︙ | ︙ | |||
879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 | if((data->proxytype == needle->proxytype) && (data->port == needle->port) && Curl_safe_strcasecompare(data->host.name, needle->host.name)) return TRUE; return FALSE; } #else /* disabled, won't get called */ #define proxy_info_matches(x,y) FALSE #endif /* A connection has to have been idle for a shorter time than 'maxage_conn' to be subject for reuse. The success rate is just too low after this. */ static bool conn_maxage(struct Curl_easy *data, struct connectdata *conn, | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 | if((data->proxytype == needle->proxytype) && (data->port == needle->port) && Curl_safe_strcasecompare(data->host.name, needle->host.name)) return TRUE; return FALSE; } static bool socks_proxy_info_matches(const struct proxy_info* data, const struct proxy_info* needle) { if(!proxy_info_matches(data, needle)) return FALSE; /* the user information is case-sensitive or at least it is not defined as case-insensitive see https://tools.ietf.org/html/rfc3986#section-3.2.1 */ if((data->user == NULL) != (needle->user == NULL)) return FALSE; /* curl_strequal does a case insentive comparison, so do not use it here! */ if(data->user && needle->user && strcmp(data->user, needle->user) != 0) return FALSE; if((data->passwd == NULL) != (needle->passwd == NULL)) return FALSE; /* curl_strequal does a case insentive comparison, so do not use it here! */ if(data->passwd && needle->passwd && strcmp(data->passwd, needle->passwd) != 0) return FALSE; return TRUE; } #else /* disabled, won't get called */ #define proxy_info_matches(x,y) FALSE #define socks_proxy_info_matches(x,y) FALSE #endif /* A connection has to have been idle for a shorter time than 'maxage_conn' to be subject for reuse. The success rate is just too low after this. */ static bool conn_maxage(struct Curl_easy *data, struct connectdata *conn, |
︙ | ︙ | |||
1069 1070 1071 1072 1073 1074 1075 | canmultiplex = FALSE; } } curr = bundle->conn_list.head; while(curr) { bool match = FALSE; | | < | > | 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 | canmultiplex = FALSE; } } curr = bundle->conn_list.head; while(curr) { bool match = FALSE; size_t multiplexed = 0; /* * Note that if we use a HTTP proxy in normal mode (no tunneling), we * check connections to that proxy and not to the actual remote server. */ check = curr->ptr; curr = curr->next; if(check->bits.connect_only || check->bits.close) /* connect-only or to-be-closed connections will not be reused */ continue; if(bundle->multiuse == BUNDLE_MULTIPLEX) multiplexed = CONN_INUSE(check); if(canmultiplex) { ; } else { if(multiplexed) { /* can only happen within multi handles, and means that another easy |
︙ | ︙ | |||
1140 1141 1142 1143 1144 1145 1146 | /* except protocols that have been upgraded via TLS */ continue; if(needle->bits.httpproxy != check->bits.httpproxy || needle->bits.socksproxy != check->bits.socksproxy) continue; | | > | | 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 | /* except protocols that have been upgraded via TLS */ continue; if(needle->bits.httpproxy != check->bits.httpproxy || needle->bits.socksproxy != check->bits.socksproxy) continue; if(needle->bits.socksproxy && !socks_proxy_info_matches(&needle->socks_proxy, &check->socks_proxy)) continue; if(needle->bits.conn_to_host != check->bits.conn_to_host) /* don't mix connections that use the "connect to host" feature and * connections that don't use this feature */ continue; |
︙ | ︙ | |||
1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 | &check->ssl_config)) continue; if(check->ssl[FIRSTSOCKET].state != ssl_connection_complete) continue; } } } if(!canmultiplex && check->data) /* this request can't be multiplexed but the checked connection is already in use so we skip it */ continue; if(check->data && (check->data->multi != needle->data->multi)) | > > | 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 | &check->ssl_config)) continue; if(check->ssl[FIRSTSOCKET].state != ssl_connection_complete) continue; } } } DEBUGASSERT(!check->data || GOOD_EASY_HANDLE(check->data)); if(!canmultiplex && check->data) /* this request can't be multiplexed but the checked connection is already in use so we skip it */ continue; if(check->data && (check->data->multi != needle->data->multi)) |
︙ | ︙ | |||
1235 1236 1237 1238 1239 1240 1241 | needle->handler->protocol && check->tls_upgraded)) && (!needle->bits.conn_to_host || strcasecompare( needle->conn_to_host.name, check->conn_to_host.name)) && (!needle->bits.conn_to_port || needle->conn_to_port == check->conn_to_port) && strcasecompare(needle->host.name, check->host.name) && needle->remote_port == check->remote_port) { | | | 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 | needle->handler->protocol && check->tls_upgraded)) && (!needle->bits.conn_to_host || strcasecompare( needle->conn_to_host.name, check->conn_to_host.name)) && (!needle->bits.conn_to_port || needle->conn_to_port == check->conn_to_port) && strcasecompare(needle->host.name, check->host.name) && needle->remote_port == check->remote_port) { /* The schemes match or the protocol family is the same and the previous connection was TLS upgraded, and the hostname and host port match */ if(needle->handler->flags & PROTOPT_SSL) { /* This is a SSL connection so verify that we're using the same SSL options as well */ if(!Curl_ssl_config_matches(&needle->ssl_config, &check->ssl_config)) { |
︙ | ︙ | |||
1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 | /* Multiplexed connections can only be HTTP/2 for now */ struct http_conn *httpc = &check->proto.httpc; if(multiplexed >= httpc->settings.max_concurrent_streams) { infof(data, "MAX_CONCURRENT_STREAMS reached, skip (%zu)\n", multiplexed); continue; } } #endif /* When not multiplexed, we have a match here! */ chosen = check; infof(data, "Multiplexed connection found!\n"); break; } | > > > > > > > | 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 | /* Multiplexed connections can only be HTTP/2 for now */ struct http_conn *httpc = &check->proto.httpc; if(multiplexed >= httpc->settings.max_concurrent_streams) { infof(data, "MAX_CONCURRENT_STREAMS reached, skip (%zu)\n", multiplexed); continue; } else if(multiplexed >= Curl_multi_max_concurrent_streams(needle->data->multi)) { infof(data, "client side MAX_CONCURRENT_STREAMS reached" ", skip (%zu)\n", multiplexed); continue; } } #endif /* When not multiplexed, we have a match here! */ chosen = check; infof(data, "Multiplexed connection found!\n"); break; } |
︙ | ︙ | |||
1396 1397 1398 1399 1400 1401 1402 | conn->ip_addr_str, conn->port, conn->connection_id); } #endif /* * Helpers for IDNA conversions. */ | | > > > > | 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 | conn->ip_addr_str, conn->port, conn->connection_id); } #endif /* * Helpers for IDNA conversions. */ bool Curl_is_ASCII_name(const char *hostname) { /* get an UNSIGNED local version of the pointer */ const unsigned char *ch = (const unsigned char *)hostname; if(!hostname) /* bad input, consider it ASCII! */ return TRUE; while(*ch) { if(*ch++ & 0x80) return FALSE; } return TRUE; } |
︙ | ︙ | |||
1424 1425 1426 1427 1428 1429 1430 | if(len && (host->name[len-1] == '.')) host->name[len-1] = 0; } /* * Perform any necessary IDN conversion of hostname */ | | | | | 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 | if(len && (host->name[len-1] == '.')) host->name[len-1] = 0; } /* * Perform any necessary IDN conversion of hostname */ CURLcode Curl_idnconvert_hostname(struct connectdata *conn, struct hostname *host) { struct Curl_easy *data = conn->data; #ifndef USE_LIBIDN2 (void)data; (void)conn; #elif defined(CURL_DISABLE_VERBOSE_STRINGS) (void)conn; #endif /* set the name we use to display the host name */ host->dispname = host->name; /* Check name for non-ASCII and convert hostname to ACE form if we can */ if(!Curl_is_ASCII_name(host->name)) { #ifdef USE_LIBIDN2 if(idn2_check_version(IDN2_VERSION)) { char *ace_hostname = NULL; #if IDN2_VERSION_NUMBER >= 0x00140000 /* IDN2_NFC_INPUT: Normalize input string using normalization form C. IDN2_NONTRANSITIONAL: Perform Unicode TR46 non-transitional processing. */ |
︙ | ︙ | |||
1473 1474 1475 1476 1477 1478 1479 | if(curl_win32_idn_to_ascii(host->name, &ace_hostname)) { host->encalloc = ace_hostname; /* change the name pointer to point to the encoded hostname */ host->name = host->encalloc; } else { | > | > | | 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 | if(curl_win32_idn_to_ascii(host->name, &ace_hostname)) { host->encalloc = ace_hostname; /* change the name pointer to point to the encoded hostname */ host->name = host->encalloc; } else { char buffer[STRERROR_LEN]; failf(data, "Failed to convert %s to ACE; %s\n", host->name, Curl_winapi_strerror(GetLastError(), buffer, sizeof(buffer))); return CURLE_URL_MALFORMAT; } #else infof(data, "IDN support not present, can't parse Unicode domains\n"); #endif } return CURLE_OK; } /* * Frees data allocated by idnconvert_hostname() */ void Curl_free_idnconverted_hostname(struct hostname *host) { #if defined(USE_LIBIDN2) if(host->encalloc) { idn2_free(host->encalloc); /* must be freed with idn2_free() since this was allocated by libidn */ host->encalloc = NULL; } |
︙ | ︙ | |||
1611 1612 1613 1614 1615 1616 1617 | conn->proxy_ssl_config.verifyhost = data->set.proxy_ssl.primary.verifyhost; conn->ip_version = data->set.ipver; conn->bits.connect_only = data->set.connect_only; conn->transport = TRNSPRT_TCP; /* most of them are TCP streams */ #if !defined(CURL_DISABLE_HTTP) && defined(USE_NTLM) && \ defined(NTLM_WB_ENABLED) | | > | 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 | conn->proxy_ssl_config.verifyhost = data->set.proxy_ssl.primary.verifyhost; conn->ip_version = data->set.ipver; conn->bits.connect_only = data->set.connect_only; conn->transport = TRNSPRT_TCP; /* most of them are TCP streams */ #if !defined(CURL_DISABLE_HTTP) && defined(USE_NTLM) && \ defined(NTLM_WB_ENABLED) conn->ntlm.ntlm_auth_hlpr_socket = CURL_SOCKET_BAD; conn->proxyntlm.ntlm_auth_hlpr_socket = CURL_SOCKET_BAD; #endif /* Initialize the easy handle list */ Curl_llist_init(&conn->easyq, NULL); #ifdef HAVE_GSSAPI conn->data_prot = PROT_CLEAR; |
︙ | ︙ | |||
3190 3191 3192 3193 3194 3195 3196 | * Cleanup the connection just allocated before we can move along and use the * previously existing one. All relevant data is copied over and old_conn is * ready for freeing once this function returns. */ static void reuse_conn(struct connectdata *old_conn, struct connectdata *conn) { | | | | 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 | * Cleanup the connection just allocated before we can move along and use the * previously existing one. All relevant data is copied over and old_conn is * ready for freeing once this function returns. */ static void reuse_conn(struct connectdata *old_conn, struct connectdata *conn) { Curl_free_idnconverted_hostname(&old_conn->http_proxy.host); Curl_free_idnconverted_hostname(&old_conn->socks_proxy.host); free(old_conn->http_proxy.host.rawalloc); free(old_conn->socks_proxy.host.rawalloc); /* free the SSL config struct from this connection struct as this was allocated in vain and is targeted for destruction */ Curl_free_primary_ssl_config(&old_conn->ssl_config); |
︙ | ︙ | |||
3235 3236 3237 3238 3239 3240 3241 | old_conn->socks_proxy.user = NULL; old_conn->http_proxy.passwd = NULL; old_conn->socks_proxy.passwd = NULL; } /* host can change, when doing keepalive with a proxy or if the case is different this time etc */ | | | | 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 | old_conn->socks_proxy.user = NULL; old_conn->http_proxy.passwd = NULL; old_conn->socks_proxy.passwd = NULL; } /* host can change, when doing keepalive with a proxy or if the case is different this time etc */ Curl_free_idnconverted_hostname(&conn->host); Curl_free_idnconverted_hostname(&conn->conn_to_host); Curl_safefree(conn->host.rawalloc); Curl_safefree(conn->conn_to_host.rawalloc); conn->host = old_conn->host; conn->conn_to_host = old_conn->conn_to_host; conn->conn_to_port = old_conn->conn_to_port; conn->remote_port = old_conn->remote_port; Curl_safefree(conn->hostname_resolve); |
︙ | ︙ | |||
3332 3333 3334 3335 3336 3337 3338 | any failure */ *in_connect = conn; result = parseurlandfillconn(data, conn); if(result) goto out; | < < < < < < < < | 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 | any failure */ *in_connect = conn; result = parseurlandfillconn(data, conn); if(result) goto out; if(data->set.str[STRING_SASL_AUTHZID]) { conn->sasl_authzid = strdup(data->set.str[STRING_SASL_AUTHZID]); if(!conn->sasl_authzid) { result = CURLE_OUT_OF_MEMORY; goto out; } } |
︙ | ︙ | |||
3403 3404 3405 3406 3407 3408 3409 | result = parse_connect_to_slist(data, conn, data->set.connect_to); if(result) goto out; /************************************************************* * IDN-convert the hostnames *************************************************************/ | | | | | | 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 | result = parse_connect_to_slist(data, conn, data->set.connect_to); if(result) goto out; /************************************************************* * IDN-convert the hostnames *************************************************************/ result = Curl_idnconvert_hostname(conn, &conn->host); if(result) goto out; if(conn->bits.conn_to_host) { result = Curl_idnconvert_hostname(conn, &conn->conn_to_host); if(result) goto out; } if(conn->bits.httpproxy) { result = Curl_idnconvert_hostname(conn, &conn->http_proxy.host); if(result) goto out; } if(conn->bits.socksproxy) { result = Curl_idnconvert_hostname(conn, &conn->socks_proxy.host); if(result) goto out; } /************************************************************* * Check whether the host and the "connect to host" are equal. * Do this after the hostnames have been IDN-converted. |
︙ | ︙ |
Changes to jni/curl/lib/url.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_URL_H #define HEADER_CURL_URL_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_URL_H #define HEADER_CURL_URL_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
58 59 60 61 62 63 64 65 66 67 68 69 70 71 | void Curl_free_request_state(struct Curl_easy *data); CURLcode Curl_parse_login_details(const char *login, const size_t len, char **userptr, char **passwdptr, char **optionsptr); const struct Curl_handler *Curl_builtin_scheme(const char *scheme); #define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */ #define CURL_DEFAULT_HTTPS_PROXY_PORT 443 /* default https proxy port unless specified */ #ifdef CURL_DISABLE_VERBOSE_STRINGS #define Curl_verboseconnect(x) Curl_nop_stmt #else | > > > > > | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | void Curl_free_request_state(struct Curl_easy *data); CURLcode Curl_parse_login_details(const char *login, const size_t len, char **userptr, char **passwdptr, char **optionsptr); const struct Curl_handler *Curl_builtin_scheme(const char *scheme); bool Curl_is_ASCII_name(const char *hostname); CURLcode Curl_idnconvert_hostname(struct connectdata *conn, struct hostname *host); void Curl_free_idnconverted_hostname(struct hostname *host); #define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */ #define CURL_DEFAULT_HTTPS_PROXY_PORT 443 /* default https proxy port unless specified */ #ifdef CURL_DISABLE_VERBOSE_STRINGS #define Curl_verboseconnect(x) Curl_nop_stmt #else |
︙ | ︙ |
Changes to jni/curl/lib/urlapi.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
424 425 426 427 428 429 430 | * parse_hostname_login() * * Parse the login details (user name, password and options) from the URL and * strip them out of the host name * */ static CURLUcode parse_hostname_login(struct Curl_URL *u, | < > > > > > | 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 | * parse_hostname_login() * * Parse the login details (user name, password and options) from the URL and * strip them out of the host name * */ static CURLUcode parse_hostname_login(struct Curl_URL *u, char **hostname, unsigned int flags) { CURLUcode result = CURLUE_OK; CURLcode ccode; char *userp = NULL; char *passwdp = NULL; char *optionsp = NULL; const struct Curl_handler *h = NULL; /* At this point, we're hoping all the other special cases have * been taken care of, so conn->host.name is at most * [user[:password][;options]]@]hostname * * We need somewhere to put the embedded details, so do that first. */ char *ptr = strchr(*hostname, '@'); char *login = *hostname; if(!ptr) goto out; /* We will now try to extract the * possible login information in a string like: * ftp://user:password@ftp.my.site:8021/README */ *hostname = ++ptr; /* if this is a known scheme, get some details */ if(u->scheme) h = Curl_builtin_scheme(u->scheme); /* We could use the login information in the URL so extract it. Only parse options if the handler says we should. Note that 'h' might be NULL! */ ccode = Curl_parse_login_details(login, ptr - login - 1, &userp, &passwdp, (h && (h->flags & PROTOPT_URLOPTIONS)) ? &optionsp:NULL); |
︙ | ︙ | |||
567 568 569 570 571 572 573 | return CURLUE_OUT_OF_MEMORY; } return CURLUE_OK; } /* scan for byte values < 31 or 127 */ | | | 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 | return CURLUE_OUT_OF_MEMORY; } return CURLUE_OK; } /* scan for byte values < 31 or 127 */ static CURLUcode junkscan(const char *part) { if(part) { static const char badbytes[]={ /* */ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, |
︙ | ︙ | |||
664 665 666 667 668 669 670 | bool path_alloced = FALSE; char *hostname; char *query = NULL; char *fragment = NULL; CURLUcode result; bool url_has_scheme = FALSE; char schemebuf[MAX_SCHEME_LEN + 1]; | | < | 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 | bool path_alloced = FALSE; char *hostname; char *query = NULL; char *fragment = NULL; CURLUcode result; bool url_has_scheme = FALSE; char schemebuf[MAX_SCHEME_LEN + 1]; const char *schemep = NULL; size_t schemelen = 0; size_t urllen; if(!url) return CURLUE_MALFORMED_INPUT; /************************************************************* * Parse the URL. ************************************************************/ |
︙ | ︙ | |||
794 795 796 797 798 799 800 | } else { /* no scheme! */ if(!(flags & (CURLU_DEFAULT_SCHEME|CURLU_GUESS_SCHEME))) return CURLUE_MALFORMED_INPUT; if(flags & CURLU_DEFAULT_SCHEME) | | | 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 | } else { /* no scheme! */ if(!(flags & (CURLU_DEFAULT_SCHEME|CURLU_GUESS_SCHEME))) return CURLUE_MALFORMED_INPUT; if(flags & CURLU_DEFAULT_SCHEME) schemep = DEFAULT_SCHEME; /* * The URL was badly formatted, let's try without scheme specified. */ p = url; } hostp = p; /* host name starts here */ |
︙ | ︙ | |||
816 817 818 819 820 821 822 | hostname[len] = 0; } else { if(!(flags & CURLU_NO_AUTHORITY)) return CURLUE_MALFORMED_INPUT; } | < < < < < < < < < < < < < < < < < < > | | | | | < < | 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 | hostname[len] = 0; } else { if(!(flags & CURLU_NO_AUTHORITY)) return CURLUE_MALFORMED_INPUT; } len = strlen(p); memcpy(path, p, len); path[len] = 0; if(schemep) { u->scheme = strdup(schemep); if(!u->scheme) return CURLUE_OUT_OF_MEMORY; } } if(junkscan(path)) return CURLUE_MALFORMED_INPUT; if((flags & CURLU_URLENCODE) && path[0]) { /* worst case output length is 3x the original! */ char *newp = malloc(strlen(path) * 3); if(!newp) |
︙ | ︙ | |||
912 913 914 915 916 917 918 | if(hostname) { /* * Parse the login details and strip them out of the host name. */ if(junkscan(hostname)) return CURLUE_MALFORMED_INPUT; | | > > > > > > > > > > > > > > > > > > > > > > | 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 | if(hostname) { /* * Parse the login details and strip them out of the host name. */ if(junkscan(hostname)) return CURLUE_MALFORMED_INPUT; result = parse_hostname_login(u, &hostname, flags); if(result) return result; result = Curl_parse_port(u, hostname); if(result) return result; if(0 == strlen(hostname) && (flags & CURLU_NO_AUTHORITY)) { /* Skip hostname check, it's allowed to be empty. */ } else { result = hostname_check(u, hostname); if(result) return result; } u->host = strdup(hostname); if(!u->host) return CURLUE_OUT_OF_MEMORY; if((flags & CURLU_GUESS_SCHEME) && !schemep) { /* legacy curl-style guess based on host name */ if(checkprefix("ftp.", hostname)) schemep = "ftp"; else if(checkprefix("dict.", hostname)) schemep = "dict"; else if(checkprefix("ldap.", hostname)) schemep = "ldap"; else if(checkprefix("imap.", hostname)) schemep = "imap"; else if(checkprefix("smtp.", hostname)) schemep = "smtp"; else if(checkprefix("pop3.", hostname)) schemep = "pop3"; else schemep = "http"; u->scheme = strdup(schemep); if(!u->scheme) return CURLUE_OUT_OF_MEMORY; } } Curl_safefree(u->scratch); Curl_safefree(u->temppath); return CURLUE_OK; } |
︙ | ︙ |
Changes to jni/curl/lib/urldata.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_URLDATA_H #define HEADER_CURL_URLDATA_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_URLDATA_H #define HEADER_CURL_URLDATA_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
363 364 365 366 367 368 369 370 371 372 373 374 375 376 | size_t input_token_len; TCHAR *spn; #else unsigned int flags; unsigned char nonce[8]; void *target_info; /* TargetInfo received in the ntlm type-2 message */ unsigned int target_info_len; #endif }; #endif /* Struct used for Negotiate (SPNEGO) authentication */ #ifdef USE_SPNEGO struct negotiatedata { | > > > > > > > > | 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | size_t input_token_len; TCHAR *spn; #else unsigned int flags; unsigned char nonce[8]; void *target_info; /* TargetInfo received in the ntlm type-2 message */ unsigned int target_info_len; #if defined(NTLM_WB_ENABLED) /* used for communication with Samba's winbind daemon helper ntlm_auth */ curl_socket_t ntlm_auth_hlpr_socket; pid_t ntlm_auth_hlpr_pid; char *challenge; /* The received base64 encoded ntlm type-2 message */ char *response; /* The generated base64 ntlm type-1/type-3 message */ #endif #endif }; #endif /* Struct used for Negotiate (SPNEGO) authentication */ #ifdef USE_SPNEGO struct negotiatedata { |
︙ | ︙ | |||
464 465 466 467 468 469 470 | BIT(bound); /* set true if bind() has already been done on this socket/ connection */ BIT(type_set); /* type= was used in the URL */ BIT(multiplex); /* connection is multiplexed */ BIT(tcp_fastopen); /* use TCP Fast Open */ BIT(tls_enable_npn); /* TLS NPN extension? */ BIT(tls_enable_alpn); /* TLS ALPN extension? */ | < | 472 473 474 475 476 477 478 479 480 481 482 483 484 485 | BIT(bound); /* set true if bind() has already been done on this socket/ connection */ BIT(type_set); /* type= was used in the URL */ BIT(multiplex); /* connection is multiplexed */ BIT(tcp_fastopen); /* use TCP Fast Open */ BIT(tls_enable_npn); /* TLS NPN extension? */ BIT(tls_enable_alpn); /* TLS ALPN extension? */ BIT(connect_only); }; struct hostname { char *rawalloc; /* allocated "raw" version of the name */ char *encalloc; /* allocated IDN-encoded version of the name */ char *name; /* name to use internally, might be encoded, might be raw */ |
︙ | ︙ | |||
805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 | } tunnel_state; BIT(chunked_encoding); BIT(close_connection); }; struct ldapconninfo; /* * The connectdata struct contains all fields and variables that should be * unique for an entire connection. */ struct connectdata { /* 'data' is the CURRENT Curl_easy using this connection -- take great caution that this might very well vary between different times this connection is used! */ struct Curl_easy *data; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 | } tunnel_state; BIT(chunked_encoding); BIT(close_connection); }; struct ldapconninfo; /* for the (SOCKS) connect state machine */ enum connect_t { CONNECT_INIT, CONNECT_SOCKS_INIT, /* 1 */ CONNECT_SOCKS_SEND, /* 2 waiting to send more first data */ CONNECT_SOCKS_READ_INIT, /* 3 set up read */ CONNECT_SOCKS_READ, /* 4 read server response */ CONNECT_GSSAPI_INIT, /* 5 */ CONNECT_AUTH_INIT, /* 6 setup outgoing auth buffer */ CONNECT_AUTH_SEND, /* 7 send auth */ CONNECT_AUTH_READ, /* 8 read auth response */ CONNECT_REQ_INIT, /* 9 init SOCKS "request" */ CONNECT_RESOLVING, /* 10 */ CONNECT_RESOLVED, /* 11 */ CONNECT_RESOLVE_REMOTE, /* 12 */ CONNECT_REQ_SEND, /* 13 */ CONNECT_REQ_SENDING, /* 14 */ CONNECT_REQ_READ, /* 15 */ CONNECT_REQ_READ_MORE, /* 16 */ CONNECT_DONE /* 17 connected fine to the remote or the SOCKS proxy */ }; #define SOCKS_STATE(x) (((x) >= CONNECT_SOCKS_INIT) && \ ((x) < CONNECT_DONE)) #define SOCKS_REQUEST_BUFSIZE 600 /* room for large user/pw (255 max each) */ struct connstate { enum connect_t state; unsigned char socksreq[SOCKS_REQUEST_BUFSIZE]; /* CONNECT_SOCKS_SEND */ ssize_t outstanding; /* send this many bytes more */ unsigned char *outp; /* send from this pointer */ }; /* * The connectdata struct contains all fields and variables that should be * unique for an entire connection. */ struct connectdata { /* 'data' is the CURRENT Curl_easy using this connection -- take great caution that this might very well vary between different times this connection is used! */ struct Curl_easy *data; struct connstate cnnct; struct curl_llist_element bundle_node; /* conncache */ /* chunk is for HTTP chunked encoding, but is in the general connectdata struct only because we can do just about any protocol through a HTTP proxy and a HTTP proxy may in fact respond using chunked encoding */ struct Curl_chunker chunk; |
︙ | ︙ | |||
902 903 904 905 906 907 908 | char local_ip[MAX_IPADR_LEN]; long local_port; char *user; /* user name string, allocated */ char *passwd; /* password string, allocated */ char *options; /* options string, allocated */ | < < < | 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 | char local_ip[MAX_IPADR_LEN]; long local_port; char *user; /* user name string, allocated */ char *passwd; /* password string, allocated */ char *options; /* options string, allocated */ char *sasl_authzid; /* authorisation identity string, allocated */ int httpversion; /* the HTTP version*10 reported by the server */ int rtspversion; /* the RTSP version*10 reported by the server */ struct curltime now; /* "current" time */ struct curltime created; /* creation time */ struct curltime lastused; /* when returned to the connection cache */ curl_socket_t sock[2]; /* two sockets, the second is used for the data transfer when doing FTP */ curl_socket_t tempsock[2]; /* temporary sockets for happy eyeballs */ Curl_recv *recv[2]; Curl_send *send[2]; #ifdef USE_RECV_BEFORE_SEND_WORKAROUND struct postponed_data postponed[2]; /* two buffers for two sockets */ #endif /* USE_RECV_BEFORE_SEND_WORKAROUND */ struct ssl_connect_data ssl[2]; /* this is for ssl-stuff */ |
︙ | ︙ | |||
1007 1008 1009 1010 1011 1012 1013 | curlntlm http_ntlm_state; curlntlm proxy_ntlm_state; struct ntlmdata ntlm; /* NTLM differs from other authentication schemes because it authenticates connections, not single requests! */ struct ntlmdata proxyntlm; /* NTLM data for proxy */ | < < < < < < < < | 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 | curlntlm http_ntlm_state; curlntlm proxy_ntlm_state; struct ntlmdata ntlm; /* NTLM differs from other authentication schemes because it authenticates connections, not single requests! */ struct ntlmdata proxyntlm; /* NTLM data for proxy */ #endif #ifdef USE_SPNEGO curlnegotiate http_negotiate_state; curlnegotiate proxy_negotiate_state; struct negotiatedata negotiate; /* state data for host Negotiate auth */ |
︙ | ︙ | |||
1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 | /* the two following *_inuse fields are only flags, not counters in any way. If TRUE it means the channel is in use, and if FALSE it means the channel is up for grabs by one. */ BIT(readchannel_inuse); /* whether the read channel is in use by an easy handle */ BIT(writechannel_inuse); /* whether the write channel is in use by an easy handle */ }; /* The end of connectdata. */ /* * Struct to keep statistical and informational data. * All variables in this struct must be initialized/reset in Curl_initinfo(). | > > | 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 | /* the two following *_inuse fields are only flags, not counters in any way. If TRUE it means the channel is in use, and if FALSE it means the channel is up for grabs by one. */ BIT(readchannel_inuse); /* whether the read channel is in use by an easy handle */ BIT(writechannel_inuse); /* whether the write channel is in use by an easy handle */ BIT(sock_accepted); /* TRUE if the SECONDARYSOCKET was created with accept() */ }; /* The end of connectdata. */ /* * Struct to keep statistical and informational data. * All variables in this struct must be initialized/reset in Curl_initinfo(). |
︙ | ︙ | |||
1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 | BIT(allow_port); /* Is set.use_port allowed to take effect or not. This is always set TRUE when curl_easy_perform() is called. */ BIT(authproblem); /* TRUE if there's some problem authenticating */ /* set after initial USER failure, to prevent an authentication loop */ BIT(ftp_trying_alternative); BIT(wildcardmatch); /* enable wildcard matching */ BIT(expect100header); /* TRUE if we added Expect: 100-continue */ BIT(use_range); BIT(rangestringalloc); /* the range string is malloc()'ed */ BIT(done); /* set to FALSE when Curl_init_do() is called and set to TRUE when multi_done() is called, to prevent multi_done() to get invoked twice when the multi interface is used. */ BIT(stream_depends_e); /* set or don't set the Exclusive bit */ BIT(previouslypending); /* this transfer WAS in the multi->pending queue */ | > > | 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 | BIT(allow_port); /* Is set.use_port allowed to take effect or not. This is always set TRUE when curl_easy_perform() is called. */ BIT(authproblem); /* TRUE if there's some problem authenticating */ /* set after initial USER failure, to prevent an authentication loop */ BIT(ftp_trying_alternative); BIT(wildcardmatch); /* enable wildcard matching */ BIT(expect100header); /* TRUE if we added Expect: 100-continue */ BIT(disableexpect); /* TRUE if Expect: is disabled due to a previous 417 response */ BIT(use_range); BIT(rangestringalloc); /* the range string is malloc()'ed */ BIT(done); /* set to FALSE when Curl_init_do() is called and set to TRUE when multi_done() is called, to prevent multi_done() to get invoked twice when the multi interface is used. */ BIT(stream_depends_e); /* set or don't set the Exclusive bit */ BIT(previouslypending); /* this transfer WAS in the multi->pending queue */ |
︙ | ︙ | |||
1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 | * 'struct UrlState' instead. The only exceptions MUST note the changes in * the 'DynamicStatic' struct. * Character pointer fields point to dynamic storage, unless otherwise stated. */ struct Curl_multi; /* declared and used only in multi.c */ enum dupstring { STRING_CERT_ORIG, /* client certificate file name */ STRING_CERT_PROXY, /* client certificate file name */ STRING_CERT_TYPE_ORIG, /* format for certificate (default: PEM)*/ STRING_CERT_TYPE_PROXY, /* format for certificate (default: PEM)*/ STRING_COOKIE, /* HTTP cookie string to send */ STRING_COOKIEJAR, /* dump all cookies to this file */ | > > > > > > > > | 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 | * 'struct UrlState' instead. The only exceptions MUST note the changes in * the 'DynamicStatic' struct. * Character pointer fields point to dynamic storage, unless otherwise stated. */ struct Curl_multi; /* declared and used only in multi.c */ /* * This enumeration MUST not use conditional directives (#ifdefs), new * null terminated strings MUST be added to the enumeration immediately * before STRING_LASTZEROTERMINATED, binary fields immediately before * STRING_LAST. When doing so, ensure that the packages/OS400/chkstring.c * test is updated and applicable changes for EBCDIC to ASCII conversion * are catered for in curl_easy_setopt_ccsid() */ enum dupstring { STRING_CERT_ORIG, /* client certificate file name */ STRING_CERT_PROXY, /* client certificate file name */ STRING_CERT_TYPE_ORIG, /* format for certificate (default: PEM)*/ STRING_CERT_TYPE_PROXY, /* format for certificate (default: PEM)*/ STRING_COOKIE, /* HTTP cookie string to send */ STRING_COOKIEJAR, /* dump all cookies to this file */ |
︙ | ︙ | |||
1503 1504 1505 1506 1507 1508 1509 | STRING_PROXYUSERNAME, /* Proxy <username>, if used */ STRING_PROXYPASSWORD, /* Proxy <password>, if used */ STRING_NOPROXY, /* List of hosts which should not use the proxy, if used */ STRING_RTSP_SESSION_ID, /* Session ID to use */ STRING_RTSP_STREAM_URI, /* Stream URI for this request */ STRING_RTSP_TRANSPORT, /* Transport for this session */ | | | < | | | | | | | | 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 | STRING_PROXYUSERNAME, /* Proxy <username>, if used */ STRING_PROXYPASSWORD, /* Proxy <password>, if used */ STRING_NOPROXY, /* List of hosts which should not use the proxy, if used */ STRING_RTSP_SESSION_ID, /* Session ID to use */ STRING_RTSP_STREAM_URI, /* Stream URI for this request */ STRING_RTSP_TRANSPORT, /* Transport for this session */ STRING_SSH_PRIVATE_KEY, /* path to the private key file for auth */ STRING_SSH_PUBLIC_KEY, /* path to the public key file for auth */ STRING_SSH_HOST_PUBLIC_KEY_MD5, /* md5 of host public key in ascii hex */ STRING_SSH_KNOWNHOSTS, /* file name of knownhosts file */ STRING_PROXY_SERVICE_NAME, /* Proxy service name */ STRING_SERVICE_NAME, /* Service name */ STRING_MAIL_FROM, STRING_MAIL_AUTH, STRING_TLSAUTH_USERNAME_ORIG, /* TLS auth <username> */ STRING_TLSAUTH_USERNAME_PROXY, /* TLS auth <username> */ STRING_TLSAUTH_PASSWORD_ORIG, /* TLS auth <password> */ STRING_TLSAUTH_PASSWORD_PROXY, /* TLS auth <password> */ STRING_BEARER, /* <bearer>, if used */ STRING_UNIX_SOCKET_PATH, /* path to Unix socket, if used */ STRING_TARGET, /* CURLOPT_REQUEST_TARGET */ STRING_DOH, /* CURLOPT_DOH_URL */ STRING_ALTSVC, /* CURLOPT_ALTSVC */ STRING_SASL_AUTHZID, /* CURLOPT_SASL_AUTHZID */ STRING_TEMP_URL, /* temp URL storage for proxy use */ /* -- end of zero-terminated strings -- */ STRING_LASTZEROTERMINATED, /* -- below this are pointers to binary data that cannot be strdup'ed. --- */ STRING_COPYPOSTFIELDS, /* if POST, set the fields' values here */ |
︙ | ︙ | |||
1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 | BIT(haproxyprotocol); /* whether to send HAProxy PROXY protocol v1 header */ BIT(abstract_unix_socket); BIT(disallow_username_in_url); /* disallow username in url */ BIT(doh); /* DNS-over-HTTPS enabled */ BIT(doh_get); /* use GET for DoH requests, instead of POST */ BIT(http09_allowed); /* allow HTTP/0.9 responses */ }; struct Names { struct curl_hash *hostcache; enum { HCACHE_NONE, /* not pointing to anything */ HCACHE_MULTI, /* points to a shared one in the multi handle */ | > > | 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 | BIT(haproxyprotocol); /* whether to send HAProxy PROXY protocol v1 header */ BIT(abstract_unix_socket); BIT(disallow_username_in_url); /* disallow username in url */ BIT(doh); /* DNS-over-HTTPS enabled */ BIT(doh_get); /* use GET for DoH requests, instead of POST */ BIT(http09_allowed); /* allow HTTP/0.9 responses */ BIT(mail_rcpt_allowfails); /* allow RCPT TO command to fail for some recipients */ }; struct Names { struct curl_hash *hostcache; enum { HCACHE_NONE, /* not pointing to anything */ HCACHE_MULTI, /* points to a shared one in the multi handle */ |
︙ | ︙ |
Changes to jni/curl/lib/vauth/digest.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
58 59 60 61 62 63 64 | #define DIGEST_QOP_VALUE_STRING_AUTH_CONF "auth-conf" /* The CURL_OUTPUT_DIGEST_CONV macro below is for non-ASCII machines. It converts digest text to ASCII so the MD5 will be correct for what ultimately goes over the network. */ #define CURL_OUTPUT_DIGEST_CONV(a, b) \ | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #define DIGEST_QOP_VALUE_STRING_AUTH_CONF "auth-conf" /* The CURL_OUTPUT_DIGEST_CONV macro below is for non-ASCII machines. It converts digest text to ASCII so the MD5 will be correct for what ultimately goes over the network. */ #define CURL_OUTPUT_DIGEST_CONV(a, b) \ result = Curl_convert_to_network(a, b, strlen(b)); \ if(result) { \ free(b); \ return result; \ } #endif /* !USE_WINDOWS_SSPI */ bool Curl_auth_digest_get_pair(const char *str, char *value, char *content, |
︙ | ︙ | |||
656 657 658 659 660 661 662 | if(!digest->nonce) return CURLE_BAD_CONTENT_ENCODING; return CURLE_OK; } /* | | | | > < > | 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 | if(!digest->nonce) return CURLE_BAD_CONTENT_ENCODING; return CURLE_OK; } /* * auth_create_digest_http_message() * * This is used to generate a HTTP DIGEST response message ready for sending * to the recipient. * * Parameters: * * data [in] - The session handle. * userp [in] - The user name. * passwdp [in] - The user's password. * request [in] - The HTTP request. * uripath [in] - The path of the HTTP uri. * digest [in/out] - The digest data struct being used and modified. * outptr [in/out] - The address where a pointer to newly allocated memory * holding the result will be stored upon completion. * outlen [out] - The length of the output message. * * Returns CURLE_OK on success. */ static CURLcode auth_create_digest_http_message( struct Curl_easy *data, const char *userp, const char *passwdp, const unsigned char *request, const unsigned char *uripath, struct digestdata *digest, char **outptr, size_t *outlen, void (*convert_to_ascii)(unsigned char *, unsigned char *), void (*hash)(unsigned char *, const unsigned char *, const size_t)) { CURLcode result; unsigned char hashbuf[32]; /* 32 bytes/256 bits */ unsigned char request_digest[65]; unsigned char ha1[65]; /* 64 digits and 1 zero byte */ unsigned char ha2[65]; /* 64 digits and 1 zero byte */ char userh[65]; char *cnonce = NULL; size_t cnonce_sz = 0; char *userp_quoted; char *response = NULL; char *hashthis = NULL; char *tmp = NULL; if(!digest->nc) digest->nc = 1; if(!digest->cnonce) { char cnoncebuf[33]; |
︙ | ︙ | |||
718 719 720 721 722 723 724 | if(result) return result; digest->cnonce = cnonce; } if(digest->userhash) { | | | < | | | | | | | | | | < < < | < < < < | < | | 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 | if(result) return result; digest->cnonce = cnonce; } if(digest->userhash) { hashthis = aprintf("%s:%s", userp, digest->realm); if(!hashthis) return CURLE_OUT_OF_MEMORY; CURL_OUTPUT_DIGEST_CONV(data, hashthis); hash(hashbuf, (unsigned char *) hashthis, strlen(hashthis)); free(hashthis); convert_to_ascii(hashbuf, (unsigned char *)userh); } /* If the algorithm is "MD5" or unspecified (which then defaults to MD5): A1 = unq(username-value) ":" unq(realm-value) ":" passwd If the algorithm is "MD5-sess" then: A1 = H(unq(username-value) ":" unq(realm-value) ":" passwd) ":" unq(nonce-value) ":" unq(cnonce-value) */ hashthis = aprintf("%s:%s:%s", digest->userhash ? userh : userp, digest->realm, passwdp); if(!hashthis) return CURLE_OUT_OF_MEMORY; CURL_OUTPUT_DIGEST_CONV(data, hashthis); /* convert on non-ASCII machines */ hash(hashbuf, (unsigned char *) hashthis, strlen(hashthis)); free(hashthis); convert_to_ascii(hashbuf, ha1); if(digest->algo == CURLDIGESTALGO_MD5SESS || digest->algo == CURLDIGESTALGO_SHA256SESS || digest->algo == CURLDIGESTALGO_SHA512_256SESS) { /* nonce and cnonce are OUTSIDE the hash */ tmp = aprintf("%s:%s:%s", ha1, digest->nonce, digest->cnonce); if(!tmp) return CURLE_OUT_OF_MEMORY; CURL_OUTPUT_DIGEST_CONV(data, tmp); /* Convert on non-ASCII machines */ hash(hashbuf, (unsigned char *) tmp, strlen(tmp)); free(tmp); convert_to_ascii(hashbuf, ha1); } /* If the "qop" directive's value is "auth" or is unspecified, then A2 is: A2 = Method ":" digest-uri-value If the "qop" value is "auth-int", then A2 is: A2 = Method ":" digest-uri-value ":" H(entity-body) (The "Method" value is the HTTP request method as specified in section 5.1.1 of RFC 2616) */ hashthis = aprintf("%s:%s", request, uripath); if(!hashthis) return CURLE_OUT_OF_MEMORY; if(digest->qop && strcasecompare(digest->qop, "auth-int")) { /* We don't support auth-int for PUT or POST */ char hashed[65]; char *hashthis2; hash(hashbuf, (const unsigned char *)"", 0); convert_to_ascii(hashbuf, (unsigned char *)hashed); hashthis2 = aprintf("%s:%s", hashthis, hashed); free(hashthis); hashthis = hashthis2; } if(!hashthis) return CURLE_OUT_OF_MEMORY; CURL_OUTPUT_DIGEST_CONV(data, hashthis); /* convert on non-ASCII machines */ hash(hashbuf, (unsigned char *) hashthis, strlen(hashthis)); free(hashthis); convert_to_ascii(hashbuf, ha2); if(digest->qop) { hashthis = aprintf("%s:%s:%08x:%s:%s:%s", ha1, digest->nonce, digest->nc, digest->cnonce, digest->qop, ha2); } else { hashthis = aprintf("%s:%s:%s", ha1, digest->nonce, ha2); } if(!hashthis) return CURLE_OUT_OF_MEMORY; CURL_OUTPUT_DIGEST_CONV(data, hashthis); /* convert on non-ASCII machines */ hash(hashbuf, (unsigned char *) hashthis, strlen(hashthis)); free(hashthis); convert_to_ascii(hashbuf, request_digest); /* For test case 64 (snooped from a Mozilla 1.3a request) Authorization: Digest username="testuser", realm="testrealm", \ nonce="1053604145", uri="/64", response="c55f7f30d83d774a3d2dcacf725abaca" |
︙ | ︙ | |||
895 896 897 898 899 900 901 | return CURLE_OUT_OF_MEMORY; response = tmp; } if(digest->algorithm) { /* Append the algorithm */ | | | 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 | return CURLE_OUT_OF_MEMORY; response = tmp; } if(digest->algorithm) { /* Append the algorithm */ tmp = aprintf("%s, algorithm=%s", response, digest->algorithm); free(response); if(!tmp) return CURLE_OUT_OF_MEMORY; response = tmp; } |
︙ | ︙ | |||
951 952 953 954 955 956 957 | const unsigned char *uripath, struct digestdata *digest, char **outptr, size_t *outlen) { switch(digest->algo) { case CURLDIGESTALGO_MD5: case CURLDIGESTALGO_MD5SESS: | | | | | | | | | | | | 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 | const unsigned char *uripath, struct digestdata *digest, char **outptr, size_t *outlen) { switch(digest->algo) { case CURLDIGESTALGO_MD5: case CURLDIGESTALGO_MD5SESS: return auth_create_digest_http_message(data, userp, passwdp, request, uripath, digest, outptr, outlen, auth_digest_md5_to_ascii, Curl_md5it); case CURLDIGESTALGO_SHA256: case CURLDIGESTALGO_SHA256SESS: case CURLDIGESTALGO_SHA512_256: case CURLDIGESTALGO_SHA512_256SESS: return auth_create_digest_http_message(data, userp, passwdp, request, uripath, digest, outptr, outlen, auth_digest_sha256_to_ascii, Curl_sha256it); default: return CURLE_UNSUPPORTED_PROTOCOL; } } /* |
︙ | ︙ |
Changes to jni/curl/lib/vauth/ntlm.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include "urldata.h" #include "non-ascii.h" #include "sendf.h" #include "curl_base64.h" #include "curl_ntlm_core.h" #include "curl_gethostname.h" #include "curl_multibyte.h" #include "warnless.h" #include "rand.h" #include "vtls/vtls.h" /* SSL backend-specific #if branches in this file must be kept in the order documented in curl_ntlm_core. */ #if defined(NTLM_NEEDS_NSS_INIT) | > | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include "urldata.h" #include "non-ascii.h" #include "sendf.h" #include "curl_base64.h" #include "curl_ntlm_core.h" #include "curl_gethostname.h" #include "curl_multibyte.h" #include "curl_md5.h" #include "warnless.h" #include "rand.h" #include "vtls/vtls.h" /* SSL backend-specific #if branches in this file must be kept in the order documented in curl_ntlm_core. */ #if defined(NTLM_NEEDS_NSS_INIT) |
︙ | ︙ | |||
617 618 619 620 621 622 623 | /* Pad with zeros */ memset(lmresp + 8, 0, 0x10); /* Fill tmp with challenge(nonce?) + entropy */ memcpy(tmp, &ntlm->nonce[0], 8); memcpy(tmp + 8, entropy, 8); | | | | | | | 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 | /* Pad with zeros */ memset(lmresp + 8, 0, 0x10); /* Fill tmp with challenge(nonce?) + entropy */ memcpy(tmp, &ntlm->nonce[0], 8); memcpy(tmp + 8, entropy, 8); Curl_md5it(md5sum, tmp, 16); /* We shall only use the first 8 bytes of md5sum, but the des code in Curl_ntlm_core_lm_resp only encrypt the first 8 bytes */ result = Curl_ntlm_core_mk_nt_hash(data, passwdp, ntbuffer); if(result) return result; Curl_ntlm_core_lm_resp(ntbuffer, md5sum, ntresp); /* End of NTLM2 Session code */ /* NTLM v2 session security is a misnomer because it is not NTLM v2. |
︙ | ︙ |
Changes to jni/curl/lib/version.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
261 262 263 264 265 266 267 | #endif #ifdef USE_LIBRTMP "rtmp", #endif #ifndef CURL_DISABLE_RTSP "rtsp", #endif | | > > | 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | #endif #ifdef USE_LIBRTMP "rtmp", #endif #ifndef CURL_DISABLE_RTSP "rtsp", #endif #if defined(USE_SSH) && !defined(USE_WOLFSSH) "scp", #endif #ifdef USE_SSH "sftp", #endif #if !defined(CURL_DISABLE_SMB) && defined(USE_NTLM) && \ (CURL_SIZEOF_CURL_OFF_T > 4) && \ (!defined(USE_WINDOWS_SSPI) || defined(USE_WIN32_CRYPTO)) "smb", # ifdef USE_SSL |
︙ | ︙ |
Changes to jni/curl/lib/vquic/ngtcp2.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
142 143 144 145 146 147 148 | s->initial_ts = timestamp(); s->transport_params.initial_max_stream_data_bidi_local = stream_buffer_size; s->transport_params.initial_max_stream_data_bidi_remote = QUIC_MAX_STREAMS; s->transport_params.initial_max_stream_data_uni = QUIC_MAX_STREAMS; s->transport_params.initial_max_data = QUIC_MAX_DATA; s->transport_params.initial_max_streams_bidi = 1; s->transport_params.initial_max_streams_uni = 3; | | | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | s->initial_ts = timestamp(); s->transport_params.initial_max_stream_data_bidi_local = stream_buffer_size; s->transport_params.initial_max_stream_data_bidi_remote = QUIC_MAX_STREAMS; s->transport_params.initial_max_stream_data_uni = QUIC_MAX_STREAMS; s->transport_params.initial_max_data = QUIC_MAX_DATA; s->transport_params.initial_max_streams_bidi = 1; s->transport_params.initial_max_streams_uni = 3; s->transport_params.max_idle_timeout = QUIC_IDLE_TIMEOUT; } static FILE *keylog_file; /* not thread-safe */ static void keylog_callback(const SSL *ssl, const char *line) { (void)ssl; fputs(line, keylog_file); |
︙ | ︙ | |||
531 532 533 534 535 536 537 538 539 540 541 542 543 544 | ngtcp2_crypto_update_key_cb, /* update_key */ NULL, /* path_validation */ NULL, /* select_preferred_addr */ cb_stream_reset, NULL, /* extend_max_remote_streams_bidi */ NULL, /* extend_max_remote_streams_uni */ cb_extend_max_stream_data, }; /* * Might be called twice for happy eyeballs. */ CURLcode Curl_quic_connect(struct connectdata *conn, curl_socket_t sockfd, | > > | 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 | ngtcp2_crypto_update_key_cb, /* update_key */ NULL, /* path_validation */ NULL, /* select_preferred_addr */ cb_stream_reset, NULL, /* extend_max_remote_streams_bidi */ NULL, /* extend_max_remote_streams_uni */ cb_extend_max_stream_data, NULL, /* dcid_status */ NULL /* handshake_confirmed */ }; /* * Might be called twice for happy eyeballs. */ CURLcode Curl_quic_connect(struct connectdata *conn, curl_socket_t sockfd, |
︙ | ︙ | |||
570 571 572 573 574 575 576 | infof(data, "Connect socket %d over QUIC to %s:%ld\n", sockfd, ipbuf, port); qs->version = NGTCP2_PROTO_VER; qs->sslctx = quic_ssl_ctx(data); if(!qs->sslctx) | | | | | | | | | 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 | infof(data, "Connect socket %d over QUIC to %s:%ld\n", sockfd, ipbuf, port); qs->version = NGTCP2_PROTO_VER; qs->sslctx = quic_ssl_ctx(data); if(!qs->sslctx) return CURLE_QUIC_CONNECT_ERROR; if(quic_init_ssl(qs)) return CURLE_QUIC_CONNECT_ERROR; qs->dcid.datalen = NGTCP2_MAX_CIDLEN; result = Curl_rand(data, qs->dcid.data, NGTCP2_MAX_CIDLEN); if(result) return result; qs->scid.datalen = NGTCP2_MAX_CIDLEN; result = Curl_rand(data, qs->scid.data, NGTCP2_MAX_CIDLEN); if(result) return result; quic_settings(&qs->settings, data->set.buffer_size); qs->local_addrlen = sizeof(qs->local_addr); rv = getsockname(sockfd, (struct sockaddr *)&qs->local_addr, &qs->local_addrlen); if(rv == -1) return CURLE_QUIC_CONNECT_ERROR; ngtcp2_addr_init(&path.local, (uint8_t *)&qs->local_addr, qs->local_addrlen, NULL); ngtcp2_addr_init(&path.remote, (uint8_t*)addr, addrlen, NULL); #ifdef NGTCP2_PROTO_VER #define QUICVER NGTCP2_PROTO_VER #else #error "unsupported ngtcp2 version" #endif rc = ngtcp2_conn_client_new(&qs->qconn, &qs->dcid, &qs->scid, &path, QUICVER, &ng_callbacks, &qs->settings, NULL, qs); if(rc) return CURLE_QUIC_CONNECT_ERROR; ngtcp2_conn_get_local_transport_params(qs->qconn, ¶ms); nwrite = ngtcp2_encode_transport_params( paramsbuf, sizeof(paramsbuf), NGTCP2_TRANSPORT_PARAMS_TYPE_CLIENT_HELLO, ¶ms); if(nwrite < 0) { failf(data, "ngtcp2_encode_transport_params: %s\n", ngtcp2_strerror((int)nwrite)); return CURLE_QUIC_CONNECT_ERROR; } if(!SSL_set_quic_transport_params(qs->ssl, paramsbuf, nwrite)) return CURLE_QUIC_CONNECT_ERROR; rc = setup_initial_crypto_context(qs); if(rc) return CURLE_QUIC_CONNECT_ERROR; return CURLE_OK; } /* * Store ngtp2 version info in this buffer, Prefix with a space. Return total * length written. |
︙ | ︙ | |||
994 995 996 997 998 999 1000 | { CURLcode result; int rc; int64_t ctrl_stream_id, qpack_enc_stream_id, qpack_dec_stream_id; if(ngtcp2_conn_get_max_local_streams_uni(qs->qconn) < 3) { failf(qs->conn->data, "too few available QUIC streams"); | | | | | | | | 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 1026 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 | { CURLcode result; int rc; int64_t ctrl_stream_id, qpack_enc_stream_id, qpack_dec_stream_id; if(ngtcp2_conn_get_max_local_streams_uni(qs->qconn) < 3) { failf(qs->conn->data, "too few available QUIC streams"); return CURLE_QUIC_CONNECT_ERROR; } nghttp3_conn_settings_default(&qs->h3settings); rc = nghttp3_conn_client_new(&qs->h3conn, &ngh3_callbacks, &qs->h3settings, nghttp3_mem_default(), qs); if(rc) { result = CURLE_OUT_OF_MEMORY; goto fail; } rc = ngtcp2_conn_open_uni_stream(qs->qconn, &ctrl_stream_id, NULL); if(rc) { result = CURLE_QUIC_CONNECT_ERROR; goto fail; } rc = nghttp3_conn_bind_control_stream(qs->h3conn, ctrl_stream_id); if(rc) { result = CURLE_QUIC_CONNECT_ERROR; goto fail; } rc = ngtcp2_conn_open_uni_stream(qs->qconn, &qpack_enc_stream_id, NULL); if(rc) { result = CURLE_QUIC_CONNECT_ERROR; goto fail; } rc = ngtcp2_conn_open_uni_stream(qs->qconn, &qpack_dec_stream_id, NULL); if(rc) { result = CURLE_QUIC_CONNECT_ERROR; goto fail; } rc = nghttp3_conn_bind_qpack_streams(qs->h3conn, qpack_enc_stream_id, qpack_dec_stream_id); if(rc) { result = CURLE_QUIC_CONNECT_ERROR; goto fail; } return CURLE_OK; fail: return result; |
︙ | ︙ | |||
1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 | nghttp3_vec vec[16]; ssize_t ndatalen; switch(qs->local_addr.ss_family) { case AF_INET: pktlen = NGTCP2_MAX_PKTLEN_IPV4; break; case AF_INET6: pktlen = NGTCP2_MAX_PKTLEN_IPV6; break; default: assert(0); } rv = ngtcp2_conn_handle_expiry(qs->qconn, ts); if(rv != 0) { failf(conn->data, "ngtcp2_conn_handle_expiry returned error: %s\n", | > > | 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 | nghttp3_vec vec[16]; ssize_t ndatalen; switch(qs->local_addr.ss_family) { case AF_INET: pktlen = NGTCP2_MAX_PKTLEN_IPV4; break; #ifdef ENABLE_IPV6 case AF_INET6: pktlen = NGTCP2_MAX_PKTLEN_IPV6; break; #endif default: assert(0); } rv = ngtcp2_conn_handle_expiry(qs->qconn, ts); if(rv != 0) { failf(conn->data, "ngtcp2_conn_handle_expiry returned error: %s\n", |
︙ | ︙ |
Changes to jni/curl/lib/vquic/quiche.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
167 168 169 170 171 172 173 | qs->cfg = quiche_config_new(QUICHE_PROTOCOL_VERSION); if(!qs->cfg) { failf(data, "can't create quiche config"); return CURLE_FAILED_INIT; } | | | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | qs->cfg = quiche_config_new(QUICHE_PROTOCOL_VERSION); if(!qs->cfg) { failf(data, "can't create quiche config"); return CURLE_FAILED_INIT; } quiche_config_set_max_idle_timeout(qs->cfg, QUIC_IDLE_TIMEOUT); quiche_config_set_initial_max_data(qs->cfg, QUIC_MAX_DATA); quiche_config_set_initial_max_stream_data_bidi_local(qs->cfg, QUIC_MAX_DATA); quiche_config_set_initial_max_stream_data_bidi_remote(qs->cfg, QUIC_MAX_DATA); quiche_config_set_initial_max_stream_data_uni(qs->cfg, QUIC_MAX_DATA); quiche_config_set_initial_max_streams_bidi(qs->cfg, QUIC_MAX_STREAMS); quiche_config_set_initial_max_streams_uni(qs->cfg, QUIC_MAX_STREAMS); |
︙ | ︙ |
Changes to jni/curl/lib/vssh/libssh.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2017 - 2020 Red Hat, Inc. * * Authors: Nikos Mavrogiannopoulos, Tomas Mraz, Stanislav Zidek, * Robert Kolcun, Andreas Schneider * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. |
︙ | ︙ | |||
318 319 320 321 322 323 324 | { int rc; struct Curl_easy *data = conn->data; struct ssh_conn *sshc = &conn->proto.sshc; ssh_key pubkey; size_t hlen; unsigned char *hash = NULL; | | > > > > > > > > > > > | 318 319 320 321 322 323 324 325 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 | { int rc; struct Curl_easy *data = conn->data; struct ssh_conn *sshc = &conn->proto.sshc; ssh_key pubkey; size_t hlen; unsigned char *hash = NULL; char *found_base64 = NULL; char *known_base64 = NULL; int vstate; enum curl_khmatch keymatch; struct curl_khkey foundkey; struct curl_khkey *knownkeyp = NULL; curl_sshkeycallback func = data->set.ssh_keyfunc; #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,9,0) struct ssh_knownhosts_entry *knownhostsentry = NULL; struct curl_khkey knownkey; #endif #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,8,0) rc = ssh_get_server_publickey(sshc->ssh_session, &pubkey); #else rc = ssh_get_publickey(sshc->ssh_session, &pubkey); #endif if(rc != SSH_OK) return rc; if(data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]) { rc = ssh_get_publickey_hash(pubkey, SSH_PUBLICKEY_HASH_MD5, &hash, &hlen); if(rc != SSH_OK) |
︙ | ︙ | |||
350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | } if(data->set.ssl.primary.verifyhost != TRUE) { rc = SSH_OK; goto cleanup; } vstate = ssh_is_server_known(sshc->ssh_session); switch(vstate) { case SSH_SERVER_KNOWN_OK: keymatch = CURLKHMATCH_OK; break; case SSH_SERVER_FILE_NOT_FOUND: /* fallthrough */ case SSH_SERVER_NOT_KNOWN: keymatch = CURLKHMATCH_MISSING; break; default: keymatch = CURLKHMATCH_MISMATCH; break; } if(func) { /* use callback to determine action */ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | } if(data->set.ssl.primary.verifyhost != TRUE) { rc = SSH_OK; goto cleanup; } #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,9,0) /* Get the known_key from the known hosts file */ vstate = ssh_session_get_known_hosts_entry(sshc->ssh_session, &knownhostsentry); /* Case an entry was found in a known hosts file */ if(knownhostsentry) { if(knownhostsentry->publickey) { rc = ssh_pki_export_pubkey_base64(knownhostsentry->publickey, &known_base64); if(rc != SSH_OK) { goto cleanup; } knownkey.key = known_base64; knownkey.len = strlen(known_base64); switch(ssh_key_type(knownhostsentry->publickey)) { case SSH_KEYTYPE_RSA: knownkey.keytype = CURLKHTYPE_RSA; break; case SSH_KEYTYPE_RSA1: knownkey.keytype = CURLKHTYPE_RSA1; break; case SSH_KEYTYPE_ECDSA: knownkey.keytype = CURLKHTYPE_ECDSA; break; case SSH_KEYTYPE_ED25519: knownkey.keytype = CURLKHTYPE_ED25519; break; case SSH_KEYTYPE_DSS: knownkey.keytype = CURLKHTYPE_DSS; break; default: rc = SSH_ERROR; goto cleanup; } knownkeyp = &knownkey; } } switch(vstate) { case SSH_KNOWN_HOSTS_OK: keymatch = CURLKHMATCH_OK; break; case SSH_KNOWN_HOSTS_OTHER: /* fallthrough */ case SSH_KNOWN_HOSTS_NOT_FOUND: /* fallthrough */ case SSH_KNOWN_HOSTS_UNKNOWN: /* fallthrough */ case SSH_KNOWN_HOSTS_ERROR: keymatch = CURLKHMATCH_MISSING; break; default: keymatch = CURLKHMATCH_MISMATCH; break; } #else vstate = ssh_is_server_known(sshc->ssh_session); switch(vstate) { case SSH_SERVER_KNOWN_OK: keymatch = CURLKHMATCH_OK; break; case SSH_SERVER_FILE_NOT_FOUND: /* fallthrough */ case SSH_SERVER_NOT_KNOWN: keymatch = CURLKHMATCH_MISSING; break; default: keymatch = CURLKHMATCH_MISMATCH; break; } #endif if(func) { /* use callback to determine action */ rc = ssh_pki_export_pubkey_base64(pubkey, &found_base64); if(rc != SSH_OK) goto cleanup; foundkey.key = found_base64; foundkey.len = strlen(found_base64); switch(ssh_key_type(pubkey)) { case SSH_KEYTYPE_RSA: foundkey.keytype = CURLKHTYPE_RSA; break; case SSH_KEYTYPE_RSA1: foundkey.keytype = CURLKHTYPE_RSA1; |
︙ | ︙ | |||
396 397 398 399 400 401 402 | foundkey.keytype = CURLKHTYPE_DSS; break; default: rc = SSH_ERROR; goto cleanup; } | < > | > > > > > > > > > > > > > > > | 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 | foundkey.keytype = CURLKHTYPE_DSS; break; default: rc = SSH_ERROR; goto cleanup; } Curl_set_in_callback(data, true); rc = func(data, knownkeyp, /* from the knownhosts file */ &foundkey, /* from the remote host */ keymatch, data->set.ssh_keyfunc_userp); Curl_set_in_callback(data, false); switch(rc) { case CURLKHSTAT_FINE_ADD_TO_FILE: #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,8,0) rc = ssh_session_update_known_hosts(sshc->ssh_session); #else rc = ssh_write_knownhost(sshc->ssh_session); #endif if(rc != SSH_OK) { goto cleanup; } break; case CURLKHSTAT_FINE: break; default: /* REJECT/DEFER */ rc = SSH_ERROR; goto cleanup; } } else { if(keymatch != CURLKHMATCH_OK) { rc = SSH_ERROR; goto cleanup; } } rc = SSH_OK; cleanup: if(found_base64) { free(found_base64); } if(known_base64) { free(known_base64); } if(hash) ssh_clean_pubkey_hash(&hash); ssh_key_free(pubkey); #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,9,0) if(knownhostsentry) { ssh_knownhosts_entry_free(knownhostsentry); } #endif return rc; } #define MOVE_TO_ERROR_STATE(_r) { \ state(conn, SSH_SESSION_DISCONNECT); \ sshc->actualcode = _r; \ rc = SSH_ERROR; \ |
︙ | ︙ | |||
1582 1583 1584 1585 1586 1587 1588 | if((curl_off_t)size < data->state.resume_from) { failf(data, "Offset (%" CURL_FORMAT_CURL_OFF_T ") was beyond file size (%" CURL_FORMAT_CURL_OFF_T ")", data->state.resume_from, size); return CURLE_BAD_DOWNLOAD_RESUME; } } | < | 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 | if((curl_off_t)size < data->state.resume_from) { failf(data, "Offset (%" CURL_FORMAT_CURL_OFF_T ") was beyond file size (%" CURL_FORMAT_CURL_OFF_T ")", data->state.resume_from, size); return CURLE_BAD_DOWNLOAD_RESUME; } } /* Now store the number of bytes we are expected to download */ data->req.size = size - data->state.resume_from; data->req.maxdownload = size - data->state.resume_from; Curl_pgrsSetDownloadSize(data, size - data->state.resume_from); rc = sftp_seek64(sshc->sftp_file, data->state.resume_from); |
︙ | ︙ |
Changes to jni/curl/lib/vssh/libssh2.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
102 103 104 105 106 107 108 109 110 111 112 113 114 115 | /* Local functions: */ static const char *sftp_libssh2_strerror(int err); static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc); static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc); static LIBSSH2_FREE_FUNC(my_libssh2_free); static CURLcode ssh_connect(struct connectdata *conn, bool *done); static CURLcode ssh_multi_statemach(struct connectdata *conn, bool *done); static CURLcode ssh_do(struct connectdata *conn, bool *done); static CURLcode scp_done(struct connectdata *conn, CURLcode, bool premature); static CURLcode scp_doing(struct connectdata *conn, | > | 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | /* Local functions: */ static const char *sftp_libssh2_strerror(int err); static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc); static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc); static LIBSSH2_FREE_FUNC(my_libssh2_free); static CURLcode ssh_force_knownhost_key_type(struct connectdata *conn); static CURLcode ssh_connect(struct connectdata *conn, bool *done); static CURLcode ssh_multi_statemach(struct connectdata *conn, bool *done); static CURLcode ssh_do(struct connectdata *conn, bool *done); static CURLcode scp_done(struct connectdata *conn, CURLcode, bool premature); static CURLcode scp_doing(struct connectdata *conn, |
︙ | ︙ | |||
643 644 645 646 647 648 649 650 651 652 653 654 655 656 | } infof(data, "MD5 checksum match!\n"); /* as we already matched, we skip the check for known hosts */ return CURLE_OK; } return ssh_knownhost(conn); } /* * ssh_statemach_act() runs the SSH state machine as far as it can without * blocking and without reaching the end. The data the pointer 'block' points * to will be set to TRUE if the libssh2 function returns LIBSSH2_ERROR_EAGAIN * meaning it wants to be called again when the socket is ready */ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 | } infof(data, "MD5 checksum match!\n"); /* as we already matched, we skip the check for known hosts */ return CURLE_OK; } return ssh_knownhost(conn); } /* * ssh_force_knownhost_key_type() will check the known hosts file and try to * force a specific public key type from the server if an entry is found. */ static CURLcode ssh_force_knownhost_key_type(struct connectdata *conn) { CURLcode result = CURLE_OK; #ifdef HAVE_LIBSSH2_KNOWNHOST_API #ifdef LIBSSH2_KNOWNHOST_KEY_ED25519 static const char * const hostkey_method_ssh_ed25519 = "ssh-ed25519"; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_521 static const char * const hostkey_method_ssh_ecdsa_521 = "ecdsa-sha2-nistp521"; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_384 static const char * const hostkey_method_ssh_ecdsa_384 = "ecdsa-sha2-nistp384"; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_256 static const char * const hostkey_method_ssh_ecdsa_256 = "ecdsa-sha2-nistp256"; #endif static const char * const hostkey_method_ssh_rsa = "ssh-rsa"; static const char * const hostkey_method_ssh_dss = "ssh-dss"; const char *hostkey_method = NULL; struct ssh_conn *sshc = &conn->proto.sshc; struct Curl_easy *data = conn->data; struct libssh2_knownhost* store = NULL; const char *kh_name_end = NULL; size_t kh_name_size = 0; int port = 0; bool found = false; if(sshc->kh && !data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]) { /* lets try to find our host in the known hosts file */ while(!libssh2_knownhost_get(sshc->kh, &store, store)) { /* For non-standard ports, the name will be enclosed in */ /* square brackets, followed by a colon and the port */ if(store->name[0] == '[') { kh_name_end = strstr(store->name, "]:"); if(!kh_name_end) { infof(data, "Invalid host pattern %s in %s\n", store->name, data->set.str[STRING_SSH_KNOWNHOSTS]); continue; } port = atoi(kh_name_end + 2); if(kh_name_end && (port == conn->remote_port)) { kh_name_size = strlen(store->name) - 1 - strlen(kh_name_end); if(strncmp(store->name + 1, conn->host.name, kh_name_size) == 0) { found = true; break; } } } else if(strcmp(store->name, conn->host.name) == 0) { found = true; break; } } if(found) { infof(data, "Found host %s in %s\n", store->name, data->set.str[STRING_SSH_KNOWNHOSTS]); switch(store->typemask & LIBSSH2_KNOWNHOST_KEY_MASK) { #ifdef LIBSSH2_KNOWNHOST_KEY_ED25519 case LIBSSH2_KNOWNHOST_KEY_ED25519: hostkey_method = hostkey_method_ssh_ed25519; break; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_521 case LIBSSH2_KNOWNHOST_KEY_ECDSA_521: hostkey_method = hostkey_method_ssh_ecdsa_521; break; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_384 case LIBSSH2_KNOWNHOST_KEY_ECDSA_384: hostkey_method = hostkey_method_ssh_ecdsa_384; break; #endif #ifdef LIBSSH2_KNOWNHOST_KEY_ECDSA_256 case LIBSSH2_KNOWNHOST_KEY_ECDSA_256: hostkey_method = hostkey_method_ssh_ecdsa_256; break; #endif case LIBSSH2_KNOWNHOST_KEY_SSHRSA: hostkey_method = hostkey_method_ssh_rsa; break; case LIBSSH2_KNOWNHOST_KEY_SSHDSS: hostkey_method = hostkey_method_ssh_dss; break; case LIBSSH2_KNOWNHOST_KEY_RSA1: failf(data, "Found host key type RSA1 which is not supported\n"); return CURLE_SSH; default: failf(data, "Unknown host key type: %i\n", (store->typemask & LIBSSH2_KNOWNHOST_KEY_MASK)); return CURLE_SSH; } infof(data, "Set \"%s\" as SSH hostkey type\n", hostkey_method); result = libssh2_session_error_to_CURLE( libssh2_session_method_pref( sshc->ssh_session, LIBSSH2_METHOD_HOSTKEY, hostkey_method)); } else { infof(data, "Did not find host %s in %s\n", conn->host.name, data->set.str[STRING_SSH_KNOWNHOSTS]); } } #endif /* HAVE_LIBSSH2_KNOWNHOST_API */ return result; } /* * ssh_statemach_act() runs the SSH state machine as far as it can without * blocking and without reaching the end. The data the pointer 'block' points * to will be set to TRUE if the libssh2 function returns LIBSSH2_ERROR_EAGAIN * meaning it wants to be called again when the socket is ready */ |
︙ | ︙ | |||
675 676 677 678 679 680 681 682 683 684 685 686 687 688 | sshc->secondCreateDirs = 0; sshc->nextstate = SSH_NO_STATE; sshc->actualcode = CURLE_OK; /* Set libssh2 to non-blocking, since everything internally is non-blocking */ libssh2_session_set_blocking(sshc->ssh_session, 0); state(conn, SSH_S_STARTUP); /* FALLTHROUGH */ case SSH_S_STARTUP: rc = libssh2_session_startup(sshc->ssh_session, (int)sock); if(rc == LIBSSH2_ERROR_EAGAIN) { | > > > > > > | 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 | sshc->secondCreateDirs = 0; sshc->nextstate = SSH_NO_STATE; sshc->actualcode = CURLE_OK; /* Set libssh2 to non-blocking, since everything internally is non-blocking */ libssh2_session_set_blocking(sshc->ssh_session, 0); result = ssh_force_knownhost_key_type(conn); if(result) { state(conn, SSH_SESSION_FREE); break; } state(conn, SSH_S_STARTUP); /* FALLTHROUGH */ case SSH_S_STARTUP: rc = libssh2_session_startup(sshc->ssh_session, (int)sock); if(rc == LIBSSH2_ERROR_EAGAIN) { |
︙ | ︙ | |||
2247 2248 2249 2250 2251 2252 2253 | if((curl_off_t)attrs.filesize < data->state.resume_from) { failf(data, "Offset (%" CURL_FORMAT_CURL_OFF_T ") was beyond file size (%" CURL_FORMAT_CURL_OFF_T ")", data->state.resume_from, attrs.filesize); return CURLE_BAD_DOWNLOAD_RESUME; } } | < | 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 | if((curl_off_t)attrs.filesize < data->state.resume_from) { failf(data, "Offset (%" CURL_FORMAT_CURL_OFF_T ") was beyond file size (%" CURL_FORMAT_CURL_OFF_T ")", data->state.resume_from, attrs.filesize); return CURLE_BAD_DOWNLOAD_RESUME; } } /* Now store the number of bytes we are expected to download */ data->req.size = attrs.filesize - data->state.resume_from; data->req.maxdownload = attrs.filesize - data->state.resume_from; Curl_pgrsSetDownloadSize(data, attrs.filesize - data->state.resume_from); SFTP_SEEK(sshc->sftp_handle, data->state.resume_from); } |
︙ | ︙ |
Changes to jni/curl/lib/vssh/ssh.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_SSH_H #define HEADER_CURL_SSH_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_SSH_H #define HEADER_CURL_SSH_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
26 27 28 29 30 31 32 | #if defined(HAVE_LIBSSH2_H) #include <libssh2.h> #include <libssh2_sftp.h> #elif defined(HAVE_LIBSSH_LIBSSH_H) #include <libssh/libssh.h> #include <libssh/sftp.h> | > > > | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #if defined(HAVE_LIBSSH2_H) #include <libssh2.h> #include <libssh2_sftp.h> #elif defined(HAVE_LIBSSH_LIBSSH_H) #include <libssh/libssh.h> #include <libssh/sftp.h> #elif defined(USE_WOLFSSH) #include <wolfssh/ssh.h> #include <wolfssh/wolfsftp.h> #endif /**************************************************************************** * SSH unique setup ***************************************************************************/ typedef enum { SSH_NO_STATE = -1, /* Used for "nextState" so say there is none */ SSH_STOP = 0, /* do nothing state, stops the state machine */ |
︙ | ︙ | |||
184 185 186 187 188 189 190 191 192 193 194 195 196 197 | #endif /* note that HAVE_LIBSSH2_KNOWNHOST_API is a define set in the libssh2.h header */ #ifdef HAVE_LIBSSH2_KNOWNHOST_API LIBSSH2_KNOWNHOSTS *kh; #endif #endif /* USE_LIBSSH */ }; #if defined(USE_LIBSSH) #define CURL_LIBSSH_VERSION ssh_version(0) | > > > > > > < < < | 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 | #endif /* note that HAVE_LIBSSH2_KNOWNHOST_API is a define set in the libssh2.h header */ #ifdef HAVE_LIBSSH2_KNOWNHOST_API LIBSSH2_KNOWNHOSTS *kh; #endif #elif defined(USE_WOLFSSH) WOLFSSH *ssh_session; WOLFSSH_CTX *ctx; word32 handleSz; byte handle[WOLFSSH_MAX_HANDLE]; curl_off_t offset; #endif /* USE_LIBSSH */ }; #if defined(USE_LIBSSH) #define CURL_LIBSSH_VERSION ssh_version(0) #elif defined(USE_LIBSSH2) /* Feature detection based on version numbers to better work with non-configure platforms */ #if !defined(LIBSSH2_VERSION_NUM) || (LIBSSH2_VERSION_NUM < 0x001000) # error "SCP/SFTP protocols require libssh2 0.16 or later" |
︙ | ︙ | |||
233 234 235 236 237 238 239 | /* get it run-time if possible */ #define CURL_LIBSSH2_VERSION libssh2_version(0) #else /* use build-time if run-time not possible */ #define CURL_LIBSSH2_VERSION LIBSSH2_VERSION #endif | < < > > > > | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | /* get it run-time if possible */ #define CURL_LIBSSH2_VERSION libssh2_version(0) #else /* use build-time if run-time not possible */ #define CURL_LIBSSH2_VERSION LIBSSH2_VERSION #endif #endif /* USE_LIBSSH2 */ #ifdef USE_SSH extern const struct Curl_handler Curl_handler_scp; extern const struct Curl_handler Curl_handler_sftp; /* generic SSH backend functions */ CURLcode Curl_ssh_init(void); void Curl_ssh_cleanup(void); size_t Curl_ssh_version(char *buffer, size_t buflen); #else /* for non-SSH builds */ #define Curl_ssh_cleanup() #endif #endif /* HEADER_CURL_SSH_H */ |
Added jni/curl/lib/vssh/wolfssh.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 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 159 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 241 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 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 506 507 508 509 510 511 512 513 514 515 516 517 518 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 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2019 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #ifdef USE_WOLFSSH #include <limits.h> #include <wolfssh/ssh.h> #include <wolfssh/wolfsftp.h> #include "urldata.h" #include "connect.h" #include "sendf.h" #include "progress.h" #include "curl_path.h" #include "strtoofft.h" #include "transfer.h" #include "speedcheck.h" #include "select.h" #include "multiif.h" #include "warnless.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" static CURLcode wssh_connect(struct connectdata *conn, bool *done); static CURLcode wssh_multi_statemach(struct connectdata *conn, bool *done); static CURLcode wssh_do(struct connectdata *conn, bool *done); #if 0 static CURLcode wscp_done(struct connectdata *conn, CURLcode, bool premature); static CURLcode wscp_doing(struct connectdata *conn, bool *dophase_done); static CURLcode wscp_disconnect(struct connectdata *conn, bool dead_connection); #endif static CURLcode wsftp_done(struct connectdata *conn, CURLcode, bool premature); static CURLcode wsftp_doing(struct connectdata *conn, bool *dophase_done); static CURLcode wsftp_disconnect(struct connectdata *conn, bool dead); static int wssh_getsock(struct connectdata *conn, curl_socket_t *sock); static int wssh_perform_getsock(const struct connectdata *conn, curl_socket_t *sock); static CURLcode wssh_setup_connection(struct connectdata *conn); #if 0 /* * SCP protocol handler. */ const struct Curl_handler Curl_handler_scp = { "SCP", /* scheme */ wssh_setup_connection, /* setup_connection */ wssh_do, /* do_it */ wscp_done, /* done */ ZERO_NULL, /* do_more */ wssh_connect, /* connect_it */ wssh_multi_statemach, /* connecting */ wscp_doing, /* doing */ wssh_getsock, /* proto_getsock */ wssh_getsock, /* doing_getsock */ ZERO_NULL, /* domore_getsock */ wssh_perform_getsock, /* perform_getsock */ wscp_disconnect, /* disconnect */ ZERO_NULL, /* readwrite */ ZERO_NULL, /* connection_check */ PORT_SSH, /* defport */ CURLPROTO_SCP, /* protocol */ PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION | PROTOPT_NOURLQUERY /* flags */ }; #endif /* * SFTP protocol handler. */ const struct Curl_handler Curl_handler_sftp = { "SFTP", /* scheme */ wssh_setup_connection, /* setup_connection */ wssh_do, /* do_it */ wsftp_done, /* done */ ZERO_NULL, /* do_more */ wssh_connect, /* connect_it */ wssh_multi_statemach, /* connecting */ wsftp_doing, /* doing */ wssh_getsock, /* proto_getsock */ wssh_getsock, /* doing_getsock */ ZERO_NULL, /* domore_getsock */ wssh_perform_getsock, /* perform_getsock */ wsftp_disconnect, /* disconnect */ ZERO_NULL, /* readwrite */ ZERO_NULL, /* connection_check */ PORT_SSH, /* defport */ CURLPROTO_SFTP, /* protocol */ PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION | PROTOPT_NOURLQUERY /* flags */ }; /* * SSH State machine related code */ /* This is the ONLY way to change SSH state! */ static void state(struct connectdata *conn, sshstate nowstate) { struct ssh_conn *sshc = &conn->proto.sshc; #if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS) /* for debug purposes */ static const char * const names[] = { "SSH_STOP", "SSH_INIT", "SSH_S_STARTUP", "SSH_HOSTKEY", "SSH_AUTHLIST", "SSH_AUTH_PKEY_INIT", "SSH_AUTH_PKEY", "SSH_AUTH_PASS_INIT", "SSH_AUTH_PASS", "SSH_AUTH_AGENT_INIT", "SSH_AUTH_AGENT_LIST", "SSH_AUTH_AGENT", "SSH_AUTH_HOST_INIT", "SSH_AUTH_HOST", "SSH_AUTH_KEY_INIT", "SSH_AUTH_KEY", "SSH_AUTH_GSSAPI", "SSH_AUTH_DONE", "SSH_SFTP_INIT", "SSH_SFTP_REALPATH", "SSH_SFTP_QUOTE_INIT", "SSH_SFTP_POSTQUOTE_INIT", "SSH_SFTP_QUOTE", "SSH_SFTP_NEXT_QUOTE", "SSH_SFTP_QUOTE_STAT", "SSH_SFTP_QUOTE_SETSTAT", "SSH_SFTP_QUOTE_SYMLINK", "SSH_SFTP_QUOTE_MKDIR", "SSH_SFTP_QUOTE_RENAME", "SSH_SFTP_QUOTE_RMDIR", "SSH_SFTP_QUOTE_UNLINK", "SSH_SFTP_QUOTE_STATVFS", "SSH_SFTP_GETINFO", "SSH_SFTP_FILETIME", "SSH_SFTP_TRANS_INIT", "SSH_SFTP_UPLOAD_INIT", "SSH_SFTP_CREATE_DIRS_INIT", "SSH_SFTP_CREATE_DIRS", "SSH_SFTP_CREATE_DIRS_MKDIR", "SSH_SFTP_READDIR_INIT", "SSH_SFTP_READDIR", "SSH_SFTP_READDIR_LINK", "SSH_SFTP_READDIR_BOTTOM", "SSH_SFTP_READDIR_DONE", "SSH_SFTP_DOWNLOAD_INIT", "SSH_SFTP_DOWNLOAD_STAT", "SSH_SFTP_CLOSE", "SSH_SFTP_SHUTDOWN", "SSH_SCP_TRANS_INIT", "SSH_SCP_UPLOAD_INIT", "SSH_SCP_DOWNLOAD_INIT", "SSH_SCP_DOWNLOAD", "SSH_SCP_DONE", "SSH_SCP_SEND_EOF", "SSH_SCP_WAIT_EOF", "SSH_SCP_WAIT_CLOSE", "SSH_SCP_CHANNEL_FREE", "SSH_SESSION_DISCONNECT", "SSH_SESSION_FREE", "QUIT" }; /* a precaution to make sure the lists are in sync */ DEBUGASSERT(sizeof(names)/sizeof(names[0]) == SSH_LAST); if(sshc->state != nowstate) { infof(conn->data, "wolfssh %p state change from %s to %s\n", (void *)sshc, names[sshc->state], names[nowstate]); } #endif sshc->state = nowstate; } static ssize_t wscp_send(struct connectdata *conn, int sockindex, const void *mem, size_t len, CURLcode *err) { ssize_t nwrite = 0; (void)conn; (void)sockindex; /* we only support SCP on the fixed known primary socket */ (void)mem; (void)len; (void)err; return nwrite; } static ssize_t wscp_recv(struct connectdata *conn, int sockindex, char *mem, size_t len, CURLcode *err) { ssize_t nread = 0; (void)conn; (void)sockindex; /* we only support SCP on the fixed known primary socket */ (void)mem; (void)len; (void)err; return nread; } /* return number of sent bytes */ static ssize_t wsftp_send(struct connectdata *conn, int sockindex, const void *mem, size_t len, CURLcode *err) { struct ssh_conn *sshc = &conn->proto.sshc; word32 offset[2]; int rc; (void)sockindex; offset[0] = (word32)sshc->offset&0xFFFFFFFF; offset[1] = (word32)(sshc->offset>>32)&0xFFFFFFFF; rc = wolfSSH_SFTP_SendWritePacket(sshc->ssh_session, sshc->handle, sshc->handleSz, &offset[0], (byte *)mem, (word32)len); if(rc == WS_FATAL_ERROR) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { conn->waitfor = KEEP_RECV; *err = CURLE_AGAIN; return -1; } else if(rc == WS_WANT_WRITE) { conn->waitfor = KEEP_SEND; *err = CURLE_AGAIN; return -1; } if(rc < 0) { failf(conn->data, "wolfSSH_SFTP_SendWritePacket returned %d\n", rc); return -1; } DEBUGASSERT(rc == (int)len); infof(conn->data, "sent %zd bytes SFTP from offset %zd\n", len, sshc->offset); sshc->offset += len; return (ssize_t)rc; } /* * Return number of received (decrypted) bytes * or <0 on error */ static ssize_t wsftp_recv(struct connectdata *conn, int sockindex, char *mem, size_t len, CURLcode *err) { int rc; struct ssh_conn *sshc = &conn->proto.sshc; word32 offset[2]; (void)sockindex; offset[0] = (word32)sshc->offset&0xFFFFFFFF; offset[1] = (word32)(sshc->offset>>32)&0xFFFFFFFF; rc = wolfSSH_SFTP_SendReadPacket(sshc->ssh_session, sshc->handle, sshc->handleSz, &offset[0], (byte *)mem, (word32)len); if(rc == WS_FATAL_ERROR) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { conn->waitfor = KEEP_RECV; *err = CURLE_AGAIN; return -1; } else if(rc == WS_WANT_WRITE) { conn->waitfor = KEEP_SEND; *err = CURLE_AGAIN; return -1; } DEBUGASSERT(rc <= (int)len); if(rc < 0) { failf(conn->data, "wolfSSH_SFTP_SendReadPacket returned %d\n", rc); return -1; } sshc->offset += len; return (ssize_t)rc; } /* * SSH setup and connection */ static CURLcode wssh_setup_connection(struct connectdata *conn) { struct SSHPROTO *ssh; conn->data->req.protop = ssh = calloc(1, sizeof(struct SSHPROTO)); if(!ssh) return CURLE_OUT_OF_MEMORY; return CURLE_OK; } static Curl_recv wscp_recv, wsftp_recv; static Curl_send wscp_send, wsftp_send; static int userauth(byte authtype, WS_UserAuthData* authdata, void *ctx) { struct connectdata *conn = ctx; DEBUGF(infof(conn->data, "wolfssh callback: type %s\n", authtype == WOLFSSH_USERAUTH_PASSWORD ? "PASSWORD" : "PUBLICCKEY")); if(authtype == WOLFSSH_USERAUTH_PASSWORD) { authdata->sf.password.password = (byte *)conn->passwd; authdata->sf.password.passwordSz = (word32) strlen(conn->passwd); } return 0; } static CURLcode wssh_connect(struct connectdata *conn, bool *done) { struct Curl_easy *data = conn->data; struct ssh_conn *sshc; curl_socket_t sock = conn->sock[FIRSTSOCKET]; int rc; /* initialize per-handle data if not already */ if(!data->req.protop) wssh_setup_connection(conn); /* We default to persistent connections. We set this already in this connect function to make the re-use checks properly be able to check this bit. */ connkeep(conn, "SSH default"); if(conn->handler->protocol & CURLPROTO_SCP) { conn->recv[FIRSTSOCKET] = wscp_recv; conn->send[FIRSTSOCKET] = wscp_send; } else { conn->recv[FIRSTSOCKET] = wsftp_recv; conn->send[FIRSTSOCKET] = wsftp_send; } sshc = &conn->proto.sshc; sshc->ctx = wolfSSH_CTX_new(WOLFSSH_ENDPOINT_CLIENT, NULL); if(!sshc->ctx) { failf(data, "No wolfSSH context"); goto error; } sshc->ssh_session = wolfSSH_new(sshc->ctx); if(sshc->ssh_session == NULL) { failf(data, "No wolfSSH session"); goto error; } rc = wolfSSH_SetUsername(sshc->ssh_session, conn->user); if(rc != WS_SUCCESS) { failf(data, "wolfSSH failed to set user name"); goto error; } /* set callback for authentication */ wolfSSH_SetUserAuth(sshc->ctx, userauth); wolfSSH_SetUserAuthCtx(sshc->ssh_session, conn); rc = wolfSSH_set_fd(sshc->ssh_session, (int)sock); if(rc) { failf(data, "wolfSSH failed to set socket"); goto error; } #if 0 wolfSSH_Debugging_ON(); #endif *done = TRUE; if(conn->handler->protocol & CURLPROTO_SCP) state(conn, SSH_INIT); else state(conn, SSH_SFTP_INIT); return wssh_multi_statemach(conn, done); error: wolfSSH_free(sshc->ssh_session); wolfSSH_CTX_free(sshc->ctx); return CURLE_FAILED_INIT; } /* * wssh_statemach_act() runs the SSH state machine as far as it can without * blocking and without reaching the end. The data the pointer 'block' points * to will be set to TRUE if the wolfssh function returns EAGAIN meaning it * wants to be called again when the socket is ready */ static CURLcode wssh_statemach_act(struct connectdata *conn, bool *block) { CURLcode result = CURLE_OK; struct ssh_conn *sshc = &conn->proto.sshc; struct Curl_easy *data = conn->data; struct SSHPROTO *sftp_scp = data->req.protop; WS_SFTPNAME *name; int rc = 0; *block = FALSE; /* we're not blocking by default */ do { switch(sshc->state) { case SSH_INIT: state(conn, SSH_S_STARTUP); /* FALLTHROUGH */ case SSH_S_STARTUP: rc = wolfSSH_connect(sshc->ssh_session); if(rc != WS_SUCCESS) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc != WS_SUCCESS) { state(conn, SSH_STOP); return CURLE_SSH; } infof(data, "wolfssh connected!\n"); state(conn, SSH_STOP); break; case SSH_STOP: break; case SSH_SFTP_INIT: rc = wolfSSH_SFTP_connect(sshc->ssh_session); if(rc != WS_SUCCESS) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc == WS_SUCCESS) { infof(data, "wolfssh SFTP connected!\n"); state(conn, SSH_SFTP_REALPATH); } else { failf(data, "wolfssh SFTP connect error %d", rc); return CURLE_SSH; } break; case SSH_SFTP_REALPATH: name = wolfSSH_SFTP_RealPath(sshc->ssh_session, (char *)"."); rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(name && (rc == WS_SUCCESS)) { sshc->homedir = malloc(name->fSz + 1); if(!sshc->homedir) { sshc->actualcode = CURLE_OUT_OF_MEMORY; } else { memcpy(sshc->homedir, name->fName, name->fSz); sshc->homedir[name->fSz] = 0; infof(data, "wolfssh SFTP realpath succeeded!\n"); } wolfSSH_SFTPNAME_list_free(name); state(conn, SSH_STOP); return CURLE_OK; } failf(data, "wolfssh SFTP realpath %d", rc); return CURLE_SSH; case SSH_SFTP_QUOTE_INIT: result = Curl_getworkingpath(conn, sshc->homedir, &sftp_scp->path); if(result) { sshc->actualcode = result; state(conn, SSH_STOP); break; } if(data->set.quote) { infof(data, "Sending quote commands\n"); sshc->quote_item = data->set.quote; state(conn, SSH_SFTP_QUOTE); } else { state(conn, SSH_SFTP_GETINFO); } break; case SSH_SFTP_GETINFO: if(data->set.get_filetime) { state(conn, SSH_SFTP_FILETIME); } else { state(conn, SSH_SFTP_TRANS_INIT); } break; case SSH_SFTP_TRANS_INIT: if(data->set.upload) state(conn, SSH_SFTP_UPLOAD_INIT); else { if(sftp_scp->path[strlen(sftp_scp->path)-1] == '/') state(conn, SSH_SFTP_READDIR_INIT); else state(conn, SSH_SFTP_DOWNLOAD_INIT); } break; case SSH_SFTP_UPLOAD_INIT: { word32 flags; WS_SFTP_FILEATRB createattrs; if(data->state.resume_from) { WS_SFTP_FILEATRB attrs; if(data->state.resume_from < 0) { rc = wolfSSH_SFTP_STAT(sshc->ssh_session, sftp_scp->path, &attrs); if(rc != WS_SUCCESS) break; if(rc) { data->state.resume_from = 0; } else { curl_off_t size = ((curl_off_t)attrs.sz[1] << 32) | attrs.sz[0]; if(size < 0) { failf(data, "Bad file size (%" CURL_FORMAT_CURL_OFF_T ")", size); return CURLE_BAD_DOWNLOAD_RESUME; } data->state.resume_from = size; } } } if(data->set.ftp_append) /* Try to open for append, but create if nonexisting */ flags = WOLFSSH_FXF_WRITE|WOLFSSH_FXF_CREAT|WOLFSSH_FXF_APPEND; else if(data->state.resume_from > 0) /* If we have restart position then open for append */ flags = WOLFSSH_FXF_WRITE|WOLFSSH_FXF_APPEND; else /* Clear file before writing (normal behaviour) */ flags = WOLFSSH_FXF_WRITE|WOLFSSH_FXF_CREAT|WOLFSSH_FXF_TRUNC; memset(&createattrs, 0, sizeof(createattrs)); createattrs.per = (word32)data->set.new_file_perms; sshc->handleSz = sizeof(sshc->handle); rc = wolfSSH_SFTP_Open(sshc->ssh_session, sftp_scp->path, flags, &createattrs, sshc->handle, &sshc->handleSz); if(rc == WS_FATAL_ERROR) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc == WS_SUCCESS) { infof(data, "wolfssh SFTP open succeeded!\n"); } else { failf(data, "wolfssh SFTP upload open failed: %d", rc); return CURLE_SSH; } state(conn, SSH_SFTP_DOWNLOAD_STAT); /* If we have a restart point then we need to seek to the correct position. */ if(data->state.resume_from > 0) { /* Let's read off the proper amount of bytes from the input. */ int seekerr = CURL_SEEKFUNC_OK; if(conn->seek_func) { Curl_set_in_callback(data, true); seekerr = conn->seek_func(conn->seek_client, data->state.resume_from, SEEK_SET); Curl_set_in_callback(data, false); } if(seekerr != CURL_SEEKFUNC_OK) { curl_off_t passed = 0; if(seekerr != CURL_SEEKFUNC_CANTSEEK) { failf(data, "Could not seek stream"); return CURLE_FTP_COULDNT_USE_REST; } /* seekerr == CURL_SEEKFUNC_CANTSEEK (can't seek to offset) */ do { size_t readthisamountnow = (data->state.resume_from - passed > data->set.buffer_size) ? (size_t)data->set.buffer_size : curlx_sotouz(data->state.resume_from - passed); size_t actuallyread; Curl_set_in_callback(data, true); actuallyread = data->state.fread_func(data->state.buffer, 1, readthisamountnow, data->state.in); Curl_set_in_callback(data, false); passed += actuallyread; if((actuallyread == 0) || (actuallyread > readthisamountnow)) { /* this checks for greater-than only to make sure that the CURL_READFUNC_ABORT return code still aborts */ failf(data, "Failed to read data"); return CURLE_FTP_COULDNT_USE_REST; } } while(passed < data->state.resume_from); } /* now, decrease the size of the read */ if(data->state.infilesize > 0) { data->state.infilesize -= data->state.resume_from; data->req.size = data->state.infilesize; Curl_pgrsSetUploadSize(data, data->state.infilesize); } sshc->offset += data->state.resume_from; } if(data->state.infilesize > 0) { data->req.size = data->state.infilesize; Curl_pgrsSetUploadSize(data, data->state.infilesize); } /* upload data */ Curl_setup_transfer(data, -1, -1, FALSE, FIRSTSOCKET); /* not set by Curl_setup_transfer to preserve keepon bits */ conn->sockfd = conn->writesockfd; if(result) { state(conn, SSH_SFTP_CLOSE); sshc->actualcode = result; } else { /* store this original bitmask setup to use later on if we can't figure out a "real" bitmask */ sshc->orig_waitfor = data->req.keepon; /* we want to use the _sending_ function even when the socket turns out readable as the underlying libssh2 sftp send function will deal with both accordingly */ conn->cselect_bits = CURL_CSELECT_OUT; /* since we don't really wait for anything at this point, we want the state machine to move on as soon as possible so we set a very short timeout here */ Curl_expire(data, 0, EXPIRE_RUN_NOW); state(conn, SSH_STOP); } break; } case SSH_SFTP_DOWNLOAD_INIT: sshc->handleSz = sizeof(sshc->handle); rc = wolfSSH_SFTP_Open(sshc->ssh_session, sftp_scp->path, WOLFSSH_FXF_READ, NULL, sshc->handle, &sshc->handleSz); if(rc == WS_FATAL_ERROR) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc == WS_SUCCESS) { infof(data, "wolfssh SFTP open succeeded!\n"); state(conn, SSH_SFTP_DOWNLOAD_STAT); return CURLE_OK; } failf(data, "wolfssh SFTP open failed: %d", rc); return CURLE_SSH; case SSH_SFTP_DOWNLOAD_STAT: { WS_SFTP_FILEATRB attrs; curl_off_t size; rc = wolfSSH_SFTP_STAT(sshc->ssh_session, sftp_scp->path, &attrs); if(rc == WS_FATAL_ERROR) rc = wolfSSH_get_error(sshc->ssh_session); if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc == WS_SUCCESS) { infof(data, "wolfssh STAT succeeded!\n"); } else { failf(data, "wolfssh SFTP open failed: %d", rc); data->req.size = -1; data->req.maxdownload = -1; Curl_pgrsSetDownloadSize(data, -1); return CURLE_SSH; } size = ((curl_off_t)attrs.sz[1] <<32) | attrs.sz[0]; data->req.size = size; data->req.maxdownload = size; Curl_pgrsSetDownloadSize(data, size); infof(data, "SFTP download %" CURL_FORMAT_CURL_OFF_T " bytes\n", size); /* We cannot seek with wolfSSH so resuming and range requests are not possible */ if(conn->data->state.use_range || data->state.resume_from) { infof(data, "wolfSSH cannot do range/seek on SFTP\n"); return CURLE_BAD_DOWNLOAD_RESUME; } /* Setup the actual download */ if(data->req.size == 0) { /* no data to transfer */ Curl_setup_transfer(data, -1, -1, FALSE, -1); infof(data, "File already completely downloaded\n"); state(conn, SSH_STOP); break; } Curl_setup_transfer(data, FIRSTSOCKET, data->req.size, FALSE, -1); /* not set by Curl_setup_transfer to preserve keepon bits */ conn->writesockfd = conn->sockfd; /* we want to use the _receiving_ function even when the socket turns out writableable as the underlying libssh2 recv function will deal with both accordingly */ conn->cselect_bits = CURL_CSELECT_IN; if(result) { /* this should never occur; the close state should be entered at the time the error occurs */ state(conn, SSH_SFTP_CLOSE); sshc->actualcode = result; } else { state(conn, SSH_STOP); } break; } case SSH_SFTP_CLOSE: if(sshc->handleSz) rc = wolfSSH_SFTP_Close(sshc->ssh_session, sshc->handle, sshc->handleSz); else rc = WS_SUCCESS; /* directory listing */ if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(rc == WS_SUCCESS) { state(conn, SSH_STOP); return CURLE_OK; } failf(data, "wolfssh SFTP CLOSE failed: %d", rc); return CURLE_SSH; case SSH_SFTP_READDIR_INIT: Curl_pgrsSetDownloadSize(data, -1); if(data->set.opt_no_body) { state(conn, SSH_STOP); break; } state(conn, SSH_SFTP_READDIR); /* FALLTHROUGH */ case SSH_SFTP_READDIR: name = wolfSSH_SFTP_LS(sshc->ssh_session, sftp_scp->path); if(!name) rc = wolfSSH_get_error(sshc->ssh_session); else rc = WS_SUCCESS; if(rc == WS_WANT_READ) { *block = TRUE; conn->waitfor = KEEP_RECV; return CURLE_OK; } else if(rc == WS_WANT_WRITE) { *block = TRUE; conn->waitfor = KEEP_SEND; return CURLE_OK; } else if(name && (rc == WS_SUCCESS)) { WS_SFTPNAME *origname = name; result = CURLE_OK; while(name) { char *line = aprintf("%s\n", data->set.ftp_list_only ? name->fName : name->lName); if(line == NULL) { state(conn, SSH_SFTP_CLOSE); sshc->actualcode = CURLE_OUT_OF_MEMORY; break; } result = Curl_client_write(conn, CLIENTWRITE_BODY, line, strlen(line)); free(line); if(result) { sshc->actualcode = result; break; } name = name->next; } wolfSSH_SFTPNAME_list_free(origname); state(conn, SSH_STOP); return result; } failf(data, "wolfssh SFTP ls failed: %d", rc); return CURLE_SSH; case SSH_SFTP_SHUTDOWN: Curl_safefree(sshc->homedir); wolfSSH_free(sshc->ssh_session); wolfSSH_CTX_free(sshc->ctx); state(conn, SSH_STOP); return CURLE_OK; default: break; } } while(!rc && (sshc->state != SSH_STOP)); return result; } /* called repeatedly until done from multi.c */ static CURLcode wssh_multi_statemach(struct connectdata *conn, bool *done) { struct ssh_conn *sshc = &conn->proto.sshc; CURLcode result = CURLE_OK; bool block; /* we store the status and use that to provide a ssh_getsock() implementation */ do { result = wssh_statemach_act(conn, &block); *done = (sshc->state == SSH_STOP) ? TRUE : FALSE; /* if there's no error, it isn't done and it didn't EWOULDBLOCK, then try again */ if(*done) { DEBUGF(infof(conn->data, "wssh_statemach_act says DONE\n")); } } while(!result && !*done && !block); return result; } static CURLcode wscp_perform(struct connectdata *conn, bool *connected, bool *dophase_done) { (void)conn; (void)connected; (void)dophase_done; return CURLE_OK; } static CURLcode wsftp_perform(struct connectdata *conn, bool *connected, bool *dophase_done) { CURLcode result = CURLE_OK; DEBUGF(infof(conn->data, "DO phase starts\n")); *dophase_done = FALSE; /* not done yet */ /* start the first command in the DO phase */ state(conn, SSH_SFTP_QUOTE_INIT); /* run the state-machine */ result = wssh_multi_statemach(conn, dophase_done); *connected = conn->bits.tcpconnect[FIRSTSOCKET]; if(*dophase_done) { DEBUGF(infof(conn->data, "DO phase is complete\n")); } return result; } /* * The DO function is generic for both protocols. */ static CURLcode wssh_do(struct connectdata *conn, bool *done) { CURLcode result; bool connected = 0; struct Curl_easy *data = conn->data; struct ssh_conn *sshc = &conn->proto.sshc; *done = FALSE; /* default to false */ data->req.size = -1; /* make sure this is unknown at this point */ sshc->actualcode = CURLE_OK; /* reset error code */ sshc->secondCreateDirs = 0; /* reset the create dir attempt state variable */ Curl_pgrsSetUploadCounter(data, 0); Curl_pgrsSetDownloadCounter(data, 0); Curl_pgrsSetUploadSize(data, -1); Curl_pgrsSetDownloadSize(data, -1); if(conn->handler->protocol & CURLPROTO_SCP) result = wscp_perform(conn, &connected, done); else result = wsftp_perform(conn, &connected, done); return result; } static CURLcode wssh_block_statemach(struct connectdata *conn, bool disconnect) { struct ssh_conn *sshc = &conn->proto.sshc; CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; while((sshc->state != SSH_STOP) && !result) { bool block; timediff_t left = 1000; struct curltime now = Curl_now(); result = wssh_statemach_act(conn, &block); if(result) break; if(!disconnect) { if(Curl_pgrsUpdate(conn)) return CURLE_ABORTED_BY_CALLBACK; result = Curl_speedcheck(data, now); if(result) break; left = Curl_timeleft(data, NULL, FALSE); if(left < 0) { failf(data, "Operation timed out"); return CURLE_OPERATION_TIMEDOUT; } } if(!result) { int dir = conn->waitfor; curl_socket_t sock = conn->sock[FIRSTSOCKET]; curl_socket_t fd_read = CURL_SOCKET_BAD; curl_socket_t fd_write = CURL_SOCKET_BAD; if(dir == KEEP_RECV) fd_read = sock; else if(dir == KEEP_SEND) fd_write = sock; /* wait for the socket to become ready */ (void)Curl_socket_check(fd_read, CURL_SOCKET_BAD, fd_write, left>1000?1000:left); /* ignore result */ } } return result; } /* generic done function for both SCP and SFTP called from their specific done functions */ static CURLcode wssh_done(struct connectdata *conn, CURLcode status) { CURLcode result = CURLE_OK; struct SSHPROTO *sftp_scp = conn->data->req.protop; if(!status) { /* run the state-machine */ result = wssh_block_statemach(conn, FALSE); } else result = status; if(sftp_scp) Curl_safefree(sftp_scp->path); if(Curl_pgrsDone(conn)) return CURLE_ABORTED_BY_CALLBACK; conn->data->req.keepon = 0; /* clear all bits */ return result; } #if 0 static CURLcode wscp_done(struct connectdata *conn, CURLcode code, bool premature) { CURLcode result = CURLE_OK; (void)conn; (void)code; (void)premature; return result; } static CURLcode wscp_doing(struct connectdata *conn, bool *dophase_done) { CURLcode result = CURLE_OK; (void)conn; (void)dophase_done; return result; } static CURLcode wscp_disconnect(struct connectdata *conn, bool dead_connection) { CURLcode result = CURLE_OK; (void)conn; (void)dead_connection; return result; } #endif static CURLcode wsftp_done(struct connectdata *conn, CURLcode code, bool premature) { (void)premature; state(conn, SSH_SFTP_CLOSE); return wssh_done(conn, code); } static CURLcode wsftp_doing(struct connectdata *conn, bool *dophase_done) { CURLcode result = wssh_multi_statemach(conn, dophase_done); if(*dophase_done) { DEBUGF(infof(conn->data, "DO phase is complete\n")); } return result; } static CURLcode wsftp_disconnect(struct connectdata *conn, bool dead) { CURLcode result = CURLE_OK; (void)dead; DEBUGF(infof(conn->data, "SSH DISCONNECT starts now\n")); if(conn->proto.sshc.ssh_session) { /* only if there's a session still around to use! */ state(conn, SSH_SFTP_SHUTDOWN); result = wssh_block_statemach(conn, TRUE); } DEBUGF(infof(conn->data, "SSH DISCONNECT is done\n")); return result; } static int wssh_getsock(struct connectdata *conn, curl_socket_t *sock) { return wssh_perform_getsock(conn, sock); } static int wssh_perform_getsock(const struct connectdata *conn, curl_socket_t *sock) { int bitmap = GETSOCK_BLANK; int dir = conn->waitfor; sock[0] = conn->sock[FIRSTSOCKET]; if(dir == KEEP_RECV) bitmap |= GETSOCK_READSOCK(FIRSTSOCKET); else if(dir == KEEP_SEND) bitmap |= GETSOCK_WRITESOCK(FIRSTSOCKET); return bitmap; } size_t Curl_ssh_version(char *buffer, size_t buflen) { return msnprintf(buffer, buflen, "wolfssh/%s", LIBWOLFSSH_VERSION_STRING); } CURLcode Curl_ssh_init(void) { if(WS_SUCCESS != wolfSSH_Init()) { DEBUGF(fprintf(stderr, "Error: wolfSSH_Init failed\n")); return CURLE_FAILED_INIT; } return CURLE_OK; } void Curl_ssh_cleanup(void) { } #endif /* USE_WOLFSSH */ |
Changes to jni/curl/lib/vtls/gtls.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
661 662 663 664 665 666 667 668 669 670 671 672 673 674 | else infof(data, "found %d CRL in %s\n", rc, SSL_SET_OPTION(CRLfile)); } /* Initialize TLS session as a client */ init_flags = GNUTLS_CLIENT; #if defined(GNUTLS_NO_TICKETS) /* Disable TLS session tickets */ init_flags |= GNUTLS_NO_TICKETS; #endif rc = gnutls_init(&BACKEND->session, init_flags); | > > > > | 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 | else infof(data, "found %d CRL in %s\n", rc, SSL_SET_OPTION(CRLfile)); } /* Initialize TLS session as a client */ init_flags = GNUTLS_CLIENT; #if defined(GNUTLS_FORCE_CLIENT_CERT) init_flags |= GNUTLS_FORCE_CLIENT_CERT; #endif #if defined(GNUTLS_NO_TICKETS) /* Disable TLS session tickets */ init_flags |= GNUTLS_NO_TICKETS; #endif rc = gnutls_init(&BACKEND->session, init_flags); |
︙ | ︙ |
Changes to jni/curl/lib/vtls/mbedtls.c.
1 2 3 4 5 6 7 8 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2010 - 2011, Hoi-Ho Chan, <hoiho.chan@gmail.com> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2010 - 2011, Hoi-Ho Chan, <hoiho.chan@gmail.com> * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
51 52 53 54 55 56 57 | #include "inet_pton.h" #include "mbedtls.h" #include "vtls.h" #include "parsedate.h" #include "connect.h" /* for the connect timeout */ #include "select.h" #include "multiif.h" | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include "inet_pton.h" #include "mbedtls.h" #include "vtls.h" #include "parsedate.h" #include "connect.h" /* for the connect timeout */ #include "select.h" #include "multiif.h" #include "mbedtls_threadlock.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" #include "memdebug.h" struct ssl_backend_data { |
︙ | ︙ | |||
87 88 89 90 91 92 93 | static int entropy_init_initialized = 0; /* start of entropy_init_mutex() */ static void entropy_init_mutex(mbedtls_entropy_context *ctx) { /* lock 0 = entropy_init_mutex() */ | | | | | | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | static int entropy_init_initialized = 0; /* start of entropy_init_mutex() */ static void entropy_init_mutex(mbedtls_entropy_context *ctx) { /* lock 0 = entropy_init_mutex() */ Curl_mbedtlsthreadlock_lock_function(0); if(entropy_init_initialized == 0) { mbedtls_entropy_init(ctx); entropy_init_initialized = 1; } Curl_mbedtlsthreadlock_unlock_function(0); } /* end of entropy_init_mutex() */ /* start of entropy_func_mutex() */ static int entropy_func_mutex(void *data, unsigned char *output, size_t len) { int ret; /* lock 1 = entropy_func_mutex() */ Curl_mbedtlsthreadlock_lock_function(1); ret = mbedtls_entropy_func(data, output, len); Curl_mbedtlsthreadlock_unlock_function(1); return ret; } /* end of entropy_func_mutex() */ #endif /* THREADING_SUPPORT */ |
︙ | ︙ | |||
1013 1014 1015 1016 1017 1018 1019 | /* * return 0 error initializing SSL * return 1 SSL initialized successfully */ static int Curl_mbedtls_init(void) { | | | | 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 | /* * return 0 error initializing SSL * return 1 SSL initialized successfully */ static int Curl_mbedtls_init(void) { return Curl_mbedtlsthreadlock_thread_setup(); } static void Curl_mbedtls_cleanup(void) { (void)Curl_mbedtlsthreadlock_thread_cleanup(); } static bool Curl_mbedtls_data_pending(const struct connectdata *conn, int sockindex) { const struct ssl_connect_data *connssl = &conn->ssl[sockindex]; return mbedtls_ssl_get_bytes_avail(&BACKEND->ssl) != 0; |
︙ | ︙ |
Added jni/curl/lib/vtls/mbedtls_threadlock.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2013 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2010, 2011, Hoi-Ho Chan, <hoiho.chan@gmail.com> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #if defined(USE_MBEDTLS) && \ ((defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H)) || \ (defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H))) #if defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H) # include <pthread.h> # define MBEDTLS_MUTEX_T pthread_mutex_t #elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H) # include <process.h> # define MBEDTLS_MUTEX_T HANDLE #endif #include "mbedtls_threadlock.h" #include "curl_printf.h" #include "curl_memory.h" /* The last #include file should be: */ #include "memdebug.h" /* number of thread locks */ #define NUMT 2 /* This array will store all of the mutexes available to Mbedtls. */ static MBEDTLS_MUTEX_T *mutex_buf = NULL; int Curl_mbedtlsthreadlock_thread_setup(void) { int i; mutex_buf = calloc(NUMT * sizeof(MBEDTLS_MUTEX_T), 1); if(!mutex_buf) return 0; /* error, no number of threads defined */ for(i = 0; i < NUMT; i++) { int ret; #if defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H) ret = pthread_mutex_init(&mutex_buf[i], NULL); if(ret) return 0; /* pthread_mutex_init failed */ #elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H) mutex_buf[i] = CreateMutex(0, FALSE, 0); if(mutex_buf[i] == 0) return 0; /* CreateMutex failed */ #endif /* USE_THREADS_POSIX && HAVE_PTHREAD_H */ } return 1; /* OK */ } int Curl_mbedtlsthreadlock_thread_cleanup(void) { int i; if(!mutex_buf) return 0; /* error, no threads locks defined */ for(i = 0; i < NUMT; i++) { int ret; #if defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H) ret = pthread_mutex_destroy(&mutex_buf[i]); if(ret) return 0; /* pthread_mutex_destroy failed */ #elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H) ret = CloseHandle(mutex_buf[i]); if(!ret) return 0; /* CloseHandle failed */ #endif /* USE_THREADS_POSIX && HAVE_PTHREAD_H */ } free(mutex_buf); mutex_buf = NULL; return 1; /* OK */ } int Curl_mbedtlsthreadlock_lock_function(int n) { if(n < NUMT) { int ret; #if defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H) ret = pthread_mutex_lock(&mutex_buf[n]); if(ret) { DEBUGF(fprintf(stderr, "Error: mbedtlsthreadlock_lock_function failed\n")); return 0; /* pthread_mutex_lock failed */ } #elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H) ret = (WaitForSingleObject(mutex_buf[n], INFINITE) == WAIT_FAILED?1:0); if(ret) { DEBUGF(fprintf(stderr, "Error: mbedtlsthreadlock_lock_function failed\n")); return 0; /* pthread_mutex_lock failed */ } #endif /* USE_THREADS_POSIX && HAVE_PTHREAD_H */ } return 1; /* OK */ } int Curl_mbedtlsthreadlock_unlock_function(int n) { if(n < NUMT) { int ret; #if defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H) ret = pthread_mutex_unlock(&mutex_buf[n]); if(ret) { DEBUGF(fprintf(stderr, "Error: mbedtlsthreadlock_unlock_function failed\n")); return 0; /* pthread_mutex_unlock failed */ } #elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H) ret = ReleaseMutex(mutex_buf[n]); if(!ret) { DEBUGF(fprintf(stderr, "Error: mbedtlsthreadlock_unlock_function failed\n")); return 0; /* pthread_mutex_lock failed */ } #endif /* USE_THREADS_POSIX && HAVE_PTHREAD_H */ } return 1; /* OK */ } #endif /* USE_MBEDTLS */ |
Added jni/curl/lib/vtls/mbedtls_threadlock.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | #ifndef HEADER_CURL_MBEDTLS_THREADLOCK_H #define HEADER_CURL_MBEDTLS_THREADLOCK_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2013 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2010, Hoi-Ho Chan, <hoiho.chan@gmail.com> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curl_setup.h" #ifdef USE_MBEDTLS #if (defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H)) || \ (defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H)) int Curl_mbedtlsthreadlock_thread_setup(void); int Curl_mbedtlsthreadlock_thread_cleanup(void); int Curl_mbedtlsthreadlock_lock_function(int n); int Curl_mbedtlsthreadlock_unlock_function(int n); #else #define Curl_mbedtlsthreadlock_thread_setup() 1 #define Curl_mbedtlsthreadlock_thread_cleanup() 1 #define Curl_mbedtlsthreadlock_lock_function(x) 1 #define Curl_mbedtlsthreadlock_unlock_function(x) 1 #endif /* USE_THREADS_POSIX || USE_THREADS_WIN32 */ #endif /* USE_MBEDTLS */ #endif /* HEADER_CURL_MBEDTLS_THREADLOCK_H */ |
Changes to jni/curl/lib/vtls/openssl.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
2208 2209 2210 2211 2212 2213 2214 | } } /* ... then, TLS max version */ curl_ssl_version_max = SSL_CONN_CONFIG(version_max); /* convert cURL max SSL version option to OpenSSL constant */ | < | 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 | } } /* ... then, TLS max version */ curl_ssl_version_max = SSL_CONN_CONFIG(version_max); /* convert cURL max SSL version option to OpenSSL constant */ switch(curl_ssl_version_max) { case CURL_SSLVERSION_MAX_TLSv1_0: ossl_ssl_version_max = TLS1_VERSION; break; case CURL_SSLVERSION_MAX_TLSv1_1: ossl_ssl_version_max = TLS1_1_VERSION; break; |
︙ | ︙ | |||
3118 3119 3120 3121 3122 3123 3124 | do { \ if(_type->_name) { \ pubkey_show(data, mem, _num, #_type, #_name, _type->_name); \ } \ } while(0) #endif | | < | < < | | < < < < < < < < | < < < < < < | < < | 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 | do { \ if(_type->_name) { \ pubkey_show(data, mem, _num, #_type, #_name, _type->_name); \ } \ } while(0) #endif static void X509V3_ext(struct Curl_easy *data, int certnum, CONST_EXTS STACK_OF(X509_EXTENSION) *exts) { int i; if((int)sk_X509_EXTENSION_num(exts) <= 0) /* no extensions, bail out */ return; for(i = 0; i < (int)sk_X509_EXTENSION_num(exts); i++) { ASN1_OBJECT *obj; X509_EXTENSION *ext = sk_X509_EXTENSION_value(exts, i); BUF_MEM *biomem; char namebuf[128]; BIO *bio_out = BIO_new(BIO_s_mem()); if(!bio_out) return; obj = X509_EXTENSION_get_object(ext); asn1_object_dump(obj, namebuf, sizeof(namebuf)); if(!X509V3_EXT_print(bio_out, ext, 0, 0)) ASN1_STRING_print(bio_out, (ASN1_STRING *)X509_EXTENSION_get_data(ext)); BIO_get_mem_ptr(bio_out, &biomem); Curl_ssl_push_certinfo_len(data, certnum, namebuf, biomem->data, biomem->length); BIO_free(bio_out); } } #ifdef OPENSSL_IS_BORINGSSL typedef size_t numcert_t; #else typedef int numcert_t; #endif |
︙ | ︙ |
Deleted jni/curl/lib/vtls/polarssl.c.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/curl/lib/vtls/polarssl.h.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/curl/lib/vtls/polarssl_threadlock.c.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/curl/lib/vtls/polarssl_threadlock.h.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to jni/curl/lib/vtls/schannel.c.
︙ | ︙ | |||
714 715 716 717 718 719 720 | if(BACKEND->use_alpn) { int cur = 0; int list_start_index = 0; unsigned int *extension_len = NULL; unsigned short* list_len = NULL; /* The first four bytes will be an unsigned int indicating number | | | 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 | if(BACKEND->use_alpn) { int cur = 0; int list_start_index = 0; unsigned int *extension_len = NULL; unsigned short* list_len = NULL; /* The first four bytes will be an unsigned int indicating number of bytes of data in the rest of the buffer. */ extension_len = (unsigned int *)(&alpn_buffer[cur]); cur += sizeof(unsigned int); /* The next four bytes are an indicator that this buffer will contain ALPN data, as opposed to NPN, for example. */ *(unsigned int *)&alpn_buffer[cur] = SecApplicationProtocolNegotiationExt_ALPN; |
︙ | ︙ |
Changes to jni/curl/lib/vtls/schannel_verify.c.
1 2 3 4 5 6 7 8 9 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2016, Marc Hoersken, <info@marc-hoersken.de> * Copyright (C) 2012, Mark Salisbury, <mark.salisbury@hp.com> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2016, Marc Hoersken, <info@marc-hoersken.de> * Copyright (C) 2012, Mark Salisbury, <mark.salisbury@hp.com> * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 | CloseHandle(ca_file_handle); } Curl_safefree(ca_file_buffer); Curl_unicodefree(ca_file_tstr); return result; } static CURLcode verify_host(struct Curl_easy *data, CERT_CONTEXT *pCertContextServer, const char * const conn_hostname) { CURLcode result = CURLE_PEER_FAILED_VERIFICATION; TCHAR *cert_hostname_buff = NULL; size_t cert_hostname_buff_index = 0; DWORD len = 0; DWORD actual_len = 0; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < < < < < < < < | < < < < < | < < < | < | 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | CloseHandle(ca_file_handle); } Curl_safefree(ca_file_buffer); Curl_unicodefree(ca_file_tstr); return result; } /* * Returns the number of characters necessary to populate all the host_names. * If host_names is not NULL, populate it with all the host names. Each string * in the host_names is null-terminated and the last string is double * null-terminated. If no DNS names are found, a single null-terminated empty * string is returned. */ static DWORD cert_get_name_string(struct Curl_easy *data, CERT_CONTEXT *cert_context, LPTSTR host_names, DWORD length) { DWORD actual_length = 0; BOOL compute_content = FALSE; CERT_INFO *cert_info = NULL; CERT_EXTENSION *extension = NULL; CRYPT_DECODE_PARA decode_para = {0, 0, 0}; CERT_ALT_NAME_INFO *alt_name_info = NULL; DWORD alt_name_info_size = 0; BOOL ret_val = FALSE; LPTSTR current_pos = NULL; DWORD i; /* CERT_NAME_SEARCH_ALL_NAMES_FLAG is available from Windows 8 onwards. */ if(Curl_verify_windows_version(6, 2, PLATFORM_WINNT, VERSION_GREATER_THAN_EQUAL)) { #ifdef CERT_NAME_SEARCH_ALL_NAMES_FLAG /* CertGetNameString will provide the 8-bit character string without * any decoding */ DWORD name_flags = CERT_NAME_DISABLE_IE4_UTF8_FLAG | CERT_NAME_SEARCH_ALL_NAMES_FLAG; actual_length = CertGetNameString(cert_context, CERT_NAME_DNS_TYPE, name_flags, NULL, host_names, length); return actual_length; #endif } compute_content = host_names != NULL && length != 0; /* Initialize default return values. */ actual_length = 1; if(compute_content) { *host_names = '\0'; } if(!cert_context) { failf(data, "schannel: Null certificate context."); return actual_length; } cert_info = cert_context->pCertInfo; if(!cert_info) { failf(data, "schannel: Null certificate info."); return actual_length; } extension = CertFindExtension(szOID_SUBJECT_ALT_NAME2, cert_info->cExtension, cert_info->rgExtension); if(!extension) { failf(data, "schannel: CertFindExtension() returned no extension."); return actual_length; } decode_para.cbSize = sizeof(CRYPT_DECODE_PARA); ret_val = CryptDecodeObjectEx(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, szOID_SUBJECT_ALT_NAME2, extension->Value.pbData, extension->Value.cbData, CRYPT_DECODE_ALLOC_FLAG | CRYPT_DECODE_NOCOPY_FLAG, &decode_para, &alt_name_info, &alt_name_info_size); if(!ret_val) { failf(data, "schannel: CryptDecodeObjectEx() returned no alternate name " "information."); return actual_length; } current_pos = host_names; /* Iterate over the alternate names and populate host_names. */ for(i = 0; i < alt_name_info->cAltEntry; i++) { const CERT_ALT_NAME_ENTRY *entry = &alt_name_info->rgAltEntry[i]; wchar_t *dns_w = NULL; size_t current_length = 0; if(entry->dwAltNameChoice != CERT_ALT_NAME_DNS_NAME) { continue; } if(entry->pwszDNSName == NULL) { infof(data, "schannel: Empty DNS name."); continue; } current_length = wcslen(entry->pwszDNSName) + 1; if(!compute_content) { actual_length += (DWORD)current_length; continue; } /* Sanity check to prevent buffer overrun. */ if((actual_length + current_length) > length) { failf(data, "schannel: Not enough memory to list all host names."); break; } dns_w = entry->pwszDNSName; /* pwszDNSName is in ia5 string format and hence doesn't contain any * non-ascii characters. */ while(*dns_w != '\0') { *current_pos++ = (char)(*dns_w++); } *current_pos++ = '\0'; actual_length += (DWORD)current_length; } if(compute_content) { /* Last string has double null-terminator. */ *current_pos = '\0'; } return actual_length; } static CURLcode verify_host(struct Curl_easy *data, CERT_CONTEXT *pCertContextServer, const char * const conn_hostname) { CURLcode result = CURLE_PEER_FAILED_VERIFICATION; TCHAR *cert_hostname_buff = NULL; size_t cert_hostname_buff_index = 0; DWORD len = 0; DWORD actual_len = 0; /* Determine the size of the string needed for the cert hostname */ len = cert_get_name_string(data, pCertContextServer, NULL, 0); if(len == 0) { failf(data, "schannel: CertGetNameString() returned no " "certificate name information"); result = CURLE_PEER_FAILED_VERIFICATION; goto cleanup; } /* CertGetNameString guarantees that the returned name will not contain * embedded null bytes. This appears to be undocumented behavior. */ cert_hostname_buff = (LPTSTR)malloc(len * sizeof(TCHAR)); if(!cert_hostname_buff) { result = CURLE_OUT_OF_MEMORY; goto cleanup; } actual_len = cert_get_name_string( data, pCertContextServer, (LPTSTR)cert_hostname_buff, len); /* Sanity check */ if(actual_len != len) { failf(data, "schannel: CertGetNameString() returned certificate " "name information of unexpected size"); result = CURLE_PEER_FAILED_VERIFICATION; |
︙ | ︙ |
Changes to jni/curl/lib/vtls/sectransp.c.
1 2 3 4 5 6 7 8 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2017, Nick Zitzmann, <nickzman@gmail.com>. | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2012 - 2017, Nick Zitzmann, <nickzman@gmail.com>. * Copyright (C) 2012 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
1160 1161 1162 1163 1164 1165 1166 | } /* On macOS SecPKCS12Import will always add the client certificate to * the Keychain. * * As this doesn't match iOS, and apps may not want to see their client | | | 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 | } /* On macOS SecPKCS12Import will always add the client certificate to * the Keychain. * * As this doesn't match iOS, and apps may not want to see their client * certificate saved in the user's keychain, we use SecItemImport * with a NULL keychain to avoid importing it. * * This returns a SecCertificateRef from which we can construct a * SecIdentityRef. */ #elif CURL_BUILD_MAC_10_7 SecItemImportExportKeyParameters keyParams; |
︙ | ︙ |
Changes to jni/curl/lib/vtls/vtls.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
512 513 514 515 516 517 518 | Curl_safefree(data->state.session); } Curl_ssl->close_all(data); } #if defined(USE_OPENSSL) || defined(USE_GNUTLS) || defined(USE_SCHANNEL) || \ | | | 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 | Curl_safefree(data->state.session); } Curl_ssl->close_all(data); } #if defined(USE_OPENSSL) || defined(USE_GNUTLS) || defined(USE_SCHANNEL) || \ defined(USE_SECTRANSP) || defined(USE_NSS) || \ defined(USE_MBEDTLS) || defined(USE_WOLFSSL) || defined(USE_BEARSSL) int Curl_ssl_getsock(struct connectdata *conn, curl_socket_t *socks) { struct ssl_connect_data *connssl = &conn->ssl[FIRSTSOCKET]; if(connssl->connecting_state == ssl_connect_2_writing) { /* write mode */ |
︙ | ︙ | |||
1179 1180 1181 1182 1183 1184 1185 | &Curl_ssl_gskit; #elif defined(USE_MBEDTLS) &Curl_ssl_mbedtls; #elif defined(USE_NSS) &Curl_ssl_nss; #elif defined(USE_OPENSSL) &Curl_ssl_openssl; | < < | 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 | &Curl_ssl_gskit; #elif defined(USE_MBEDTLS) &Curl_ssl_mbedtls; #elif defined(USE_NSS) &Curl_ssl_nss; #elif defined(USE_OPENSSL) &Curl_ssl_openssl; #elif defined(USE_SCHANNEL) &Curl_ssl_schannel; #elif defined(USE_MESALINK) &Curl_ssl_mesalink; #elif defined(USE_BEARSSL) &Curl_ssl_bearssl; #else |
︙ | ︙ | |||
1213 1214 1215 1216 1217 1218 1219 | #endif #if defined(USE_NSS) &Curl_ssl_nss, #endif #if defined(USE_OPENSSL) &Curl_ssl_openssl, #endif | < < < | > > | < < > | | | | < > | > | | | > | | | > > | | 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 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 1272 1273 1274 1275 1276 1277 1278 | #endif #if defined(USE_NSS) &Curl_ssl_nss, #endif #if defined(USE_OPENSSL) &Curl_ssl_openssl, #endif #if defined(USE_SCHANNEL) &Curl_ssl_schannel, #endif #if defined(USE_MESALINK) &Curl_ssl_mesalink, #endif #if defined(USE_BEARSSL) &Curl_ssl_bearssl, #endif NULL }; static size_t Curl_multissl_version(char *buffer, size_t size) { static const struct Curl_ssl *selected; static char backends[200]; static size_t backends_len; const struct Curl_ssl *current; current = Curl_ssl == &Curl_ssl_multi ? available_backends[0] : Curl_ssl; if(current != selected) { char *p = backends; char *end = backends + sizeof(backends); int i; selected = current; backends[0] = '\0'; for(i = 0; available_backends[i]; ++i) { char vb[200]; bool paren = (selected != available_backends[i]); if(available_backends[i]->version(vb, sizeof(vb))) { p += msnprintf(p, end - p, "%s%s%s%s", (p != backends ? " " : ""), (paren ? "(" : ""), vb, (paren ? ")" : "")); } } backends_len = p - backends; } if(!size) return 0; if(size <= backends_len) { strncpy(buffer, backends, size - 1); buffer[size - 1] = '\0'; return size - 1; } strcpy(buffer, backends); return backends_len; } static int multissl_init(const struct Curl_ssl *backend) { const char *env; char *env_tmp; |
︙ | ︙ |
Changes to jni/curl/lib/vtls/vtls.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_VTLS_H #define HEADER_CURL_VTLS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_VTLS_H #define HEADER_CURL_VTLS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
98 99 100 101 102 103 104 | CURLcode Curl_none_md5sum(unsigned char *input, size_t inputlen, unsigned char *md5sum, size_t md5len); #include "openssl.h" /* OpenSSL versions */ #include "gtls.h" /* GnuTLS versions */ #include "nssg.h" /* NSS versions */ #include "gskit.h" /* Global Secure ToolKit versions */ | < | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | CURLcode Curl_none_md5sum(unsigned char *input, size_t inputlen, unsigned char *md5sum, size_t md5len); #include "openssl.h" /* OpenSSL versions */ #include "gtls.h" /* GnuTLS versions */ #include "nssg.h" /* NSS versions */ #include "gskit.h" /* Global Secure ToolKit versions */ #include "wolfssl.h" /* wolfSSL versions */ #include "schannel.h" /* Schannel SSPI version */ #include "sectransp.h" /* SecureTransport (Darwin) version */ #include "mbedtls.h" /* mbedTLS versions */ #include "mesalink.h" /* MesaLink versions */ #include "bearssl.h" /* BearSSL versions */ |
︙ | ︙ |
Changes to jni/curl/lib/vtls/wolfssl.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
919 920 921 922 923 924 925 | return CURLE_OK; } static CURLcode Curl_wolfssl_random(struct Curl_easy *data, unsigned char *entropy, size_t length) { | | | | | | | 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 | return CURLE_OK; } static CURLcode Curl_wolfssl_random(struct Curl_easy *data, unsigned char *entropy, size_t length) { WC_RNG rng; (void)data; if(wc_InitRng(&rng)) return CURLE_FAILED_INIT; if(length > UINT_MAX) return CURLE_FAILED_INIT; if(wc_RNG_GenerateBlock(&rng, entropy, (unsigned)length)) return CURLE_FAILED_INIT; if(wc_FreeRng(&rng)) return CURLE_FAILED_INIT; return CURLE_OK; } static CURLcode Curl_wolfssl_sha256sum(const unsigned char *tmp, /* input */ size_t tmplen, unsigned char *sha256sum /* output */, size_t unused) { wc_Sha256 SHA256pw; (void)unused; wc_InitSha256(&SHA256pw); wc_Sha256Update(&SHA256pw, tmp, (word32)tmplen); wc_Sha256Final(&SHA256pw, sha256sum); return CURLE_OK; } |
︙ | ︙ |
Changes to jni/curl/ltmain.sh.
︙ | ︙ | |||
27 28 29 30 31 32 33 | # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. PROGRAM=libtool PACKAGE=libtool | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. PROGRAM=libtool PACKAGE=libtool VERSION="2.4.6 Debian-2.4.6-13" package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## |
︙ | ︙ | |||
383 384 385 386 387 388 389 | EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # | | | 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # |
︙ | ︙ | |||
2137 2138 2139 2140 2141 2142 2143 | include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) | | | 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 | include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.6-13 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to <bug-libtool@gnu.org>. GNU libtool home page: <http://www.gnu.org/s/libtool/>. General help using GNU software: <http://www.gnu.org/gethelp/>." exit 0 |
︙ | ︙ | |||
7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 | # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ | > > | | 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 | # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; |
︙ | ︙ |
Changes to jni/curl/m4/curl-confopts.m4.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
103 104 105 106 107 108 109 | no) dnl --disable-curldebug option used want_curldebug="no" AC_MSG_RESULT([no]) ;; default) dnl configure's curldebug option not specified. Initially we will | | | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | no) dnl --disable-curldebug option used want_curldebug="no" AC_MSG_RESULT([no]) ;; default) dnl configure's curldebug option not specified. Initially we will dnl handle this as a request to use the same setting as option dnl --enable-debug. IOW, initially, for debug-enabled builds dnl this will be handled as a request to enable curldebug if dnl possible, and for debug-disabled builds this will be handled dnl as a request to disable curldebug. if test "$want_debug" = "yes"; then AC_MSG_RESULT([(assumed) yes]) AC_DEFINE(CURLDEBUG, 1, [to enable curl debug memory tracking]) |
︙ | ︙ | |||
194 195 196 197 198 199 200 | dnl If the compiler is known CFLAGS and CPPFLAGS will be dnl overridden, otherwise this can not be honored. want_optimize="no" AC_MSG_RESULT([no]) ;; default) dnl configure's optimize option not specified. Initially we will | | | 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | dnl If the compiler is known CFLAGS and CPPFLAGS will be dnl overridden, otherwise this can not be honored. want_optimize="no" AC_MSG_RESULT([no]) ;; default) dnl configure's optimize option not specified. Initially we will dnl handle this as a request contrary to configure's setting dnl for --enable-debug. IOW, initially, for debug-enabled builds dnl this will be handled as a request to disable optimizations if dnl possible, and for debug-disabled builds this will be handled dnl initially as a request to enable optimizations if possible. dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do dnl not have any optimizer flag the request will be honored, in dnl any other case the request can not be honored. |
︙ | ︙ |
Changes to jni/curl/m4/curl-functions.m4.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
6346 6347 6348 6349 6350 6351 6352 | dnl then HAVE_STRERROR_R and STRERROR_R_TYPE_ARG3 will be defined, as dnl well as one of HAVE_GLIBC_STRERROR_R or HAVE_POSIX_STRERROR_R. dnl dnl glibc-style strerror_r: dnl dnl char *strerror_r(int errnum, char *workbuf, size_t bufsize); dnl | | | 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 | dnl then HAVE_STRERROR_R and STRERROR_R_TYPE_ARG3 will be defined, as dnl well as one of HAVE_GLIBC_STRERROR_R or HAVE_POSIX_STRERROR_R. dnl dnl glibc-style strerror_r: dnl dnl char *strerror_r(int errnum, char *workbuf, size_t bufsize); dnl dnl glibc-style strerror_r returns a pointer to the error string, dnl and might use the provided workbuf as a scratch area if needed. A dnl quick test on a few systems shows that it's usually not used at all. dnl dnl POSIX-style strerror_r: dnl dnl int strerror_r(int errnum, char *resultbuf, size_t bufsize); dnl |
︙ | ︙ |
Changes to jni/curl/m4/libtool.m4.
︙ | ︙ | |||
1037 1038 1039 1040 1041 1042 1043 | AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD | | | | 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 | AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err |
︙ | ︙ | |||
1488 1489 1490 1491 1492 1493 1494 | # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} | | | 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 | # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst |
︙ | ︙ |
Changes to jni/curl/packages/Makefile.in.
︙ | ︙ | |||
336 337 338 339 340 341 342 343 344 345 346 347 348 349 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/packages/OS400/ccsidcurl.c.
︙ | ︙ | |||
1126 1127 1128 1129 1130 1131 1132 | CURLcode result; va_list arg; struct Curl_easy *data; char *s; char *cp; unsigned int ccsid; curl_off_t pfsize; | < < < < < < < < < < < < < < < < | 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 | CURLcode result; va_list arg; struct Curl_easy *data; char *s; char *cp; unsigned int ccsid; curl_off_t pfsize; data = (struct Curl_easy *) curl; va_start(arg, tag); switch(tag) { case CURLOPT_ABSTRACT_UNIX_SOCKET: |
︙ | ︙ |
Changes to jni/curl/packages/OS400/curl.inc.in.
︙ | ︙ | |||
598 599 600 601 602 603 604 605 606 607 608 609 610 611 | d c 92 d CURLE_RECURSIVE_API_CALL... d c 93 d CURLE_AUTH_ERROR... d c 94 d CURLE_HTTP3... d c 95 * /if not defined(CURL_NO_OLDIES) d CURLE_URL_MALFORMAT_USER... d c 4 d CURLE_FTP_ACCESS_DENIED... d c 9 d CURLE_FTP_USER_PASSWORD_INCORRECT... | > > | 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 | d c 92 d CURLE_RECURSIVE_API_CALL... d c 93 d CURLE_AUTH_ERROR... d c 94 d CURLE_HTTP3... d c 95 d CURLE_QUIC_CONNECT_ERROR... d c 96 * /if not defined(CURL_NO_OLDIES) d CURLE_URL_MALFORMAT_USER... d c 4 d CURLE_FTP_ACCESS_DENIED... d c 9 d CURLE_FTP_USER_PASSWORD_INCORRECT... |
︙ | ︙ | |||
1812 1813 1814 1815 1816 1817 1818 | d c 6 d CURLM_ADDED_ALREADY... d c 7 d CURLM_RECURSIVE_API_CALL... d c 8 d CURLM_WAKEUP_FAILURE... d c 9 | > > | | 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 | d c 6 d CURLM_ADDED_ALREADY... d c 7 d CURLM_RECURSIVE_API_CALL... d c 8 d CURLM_WAKEUP_FAILURE... d c 9 d CURLM_BAD_FUNCTION_ARGUMENT... d c 10 d CURLM_LAST c 11 * d CURLMSG s 10i 0 based(######ptr######) Enum d CURLMSG_NONE c 0 d CURLMSG_DONE c 1 * d CURLMoption s 10i 0 based(######ptr######) Enum d CURLMOPT_SOCKETFUNCTION... |
︙ | ︙ |
Changes to jni/curl/packages/OS400/make-lib.sh.
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | < Makefile.inc > tmpscript.sh . ./tmpscript.sh # Compile the sources into modules. INCLUDES="'`pwd`'" make_module OS400SYS "${SCRIPTDIR}/os400sys.c" make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c" for SRC in ${CSOURCES} do MODULE=`db2_name "${SRC}"` make_module "${MODULE}" "${SRC}" | > > > > > > > > > > > > > > > > > > > > | 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 | < Makefile.inc > tmpscript.sh . ./tmpscript.sh # Compile the sources into modules. INCLUDES="'`pwd`'" # Create a small C program to check ccsidcurl.c is up to date if action_needed "${LIBIFSNAME}/CHKSTRINGS.PGM" then CMD="CRTBNDC PGM(${TARGETLIB}/CHKSTRINGS) SRCSTMF('${SCRIPTDIR}/chkstrings.c')" CMD="${CMD} INCDIR('${TOPDIR}/include/curl' '${TOPDIR}/include' '${SRCDIR}' ${INCLUDES})" system -i "${CMD}" if [ $? -ne 0 ] then echo "ERROR: Failed to build CHKSTRINGS *PGM object!" exit 2 else ${LIBIFSNAME}/CHKSTRINGS.PGM if [ $? -ne 0 ] then echo "ERROR: CHKSTRINGS failed!" exit 2 fi fi fi make_module OS400SYS "${SCRIPTDIR}/os400sys.c" make_module CCSIDCURL "${SCRIPTDIR}/ccsidcurl.c" for SRC in ${CSOURCES} do MODULE=`db2_name "${SRC}"` make_module "${MODULE}" "${SRC}" |
︙ | ︙ |
Changes to jni/curl/packages/vms/Makefile.in.
︙ | ︙ | |||
276 277 278 279 280 281 282 283 284 285 286 287 288 289 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/packages/vms/compare_curl_source.com.
︙ | ︙ | |||
13 14 15 16 17 18 19 | $! 2. Compare the checked out repository of a project with the $! the local working copy to make sure they are in sync. $! 3. Keep a copy directory up to date. The third is needed by $! me because VMS Backup can create a saveset of files from a $! NFS mounted volume. $! $! First the files in the original source directory which is assumed to be | | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $! 2. Compare the checked out repository of a project with the $! the local working copy to make sure they are in sync. $! 3. Keep a copy directory up to date. The third is needed by $! me because VMS Backup can create a saveset of files from a $! NFS mounted volume. $! $! First the files in the original source directory which is assumed to be $! under source code control are compared with the copy directory. $! $! Then the files are are only in the copy directory are listed. $! $! The result will five diagnostics about of files: $! 1. Files that are not generation 1. $! 2. Files missing in the copy directory. $! 3. Files in the copy directory not in the source directory. |
︙ | ︙ |
Changes to jni/curl/packages/vms/curl_crtl_init.c.
1 2 3 | /* File: curl_crtl_init.c * * This file makes sure that the DECC Unix settings are correct for | | | 1 2 3 4 5 6 7 8 9 10 11 | /* File: curl_crtl_init.c * * This file makes sure that the DECC Unix settings are correct for * the mode the program is run in. * * The CRTL has not been initialized at the time that these routines * are called, so many routines can not be called. * * This is a module that provides a LIB$INITIALIZE routine that * will turn on some CRTL features that are not enabled by default. * |
︙ | ︙ |
Changes to jni/curl/packages/vms/readme.
︙ | ︙ | |||
190 191 192 193 194 195 196 | The build_vms.com procedure does not build the shared image file or the PCSI kit. If you have built a curl with ZLIB and HPSSL support as well as if LDAP and Kerberos installed, you can use the GNV_LINK_CURL.COM file. The GNV_LINK_CURL.COM contains information on how to link and run with a newer version of HP SSL than what may be install on an Alpha or IA64 based system. | | | | 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 | The build_vms.com procedure does not build the shared image file or the PCSI kit. If you have built a curl with ZLIB and HPSSL support as well as if LDAP and Kerberos installed, you can use the GNV_LINK_CURL.COM file. The GNV_LINK_CURL.COM contains information on how to link and run with a newer version of HP SSL than what may be install on an Alpha or IA64 based system. To build the PCSI kit, follow the instructions in the file curl_gnv_build_steps.txt. Other Notes: This release fixes known bugs #22, and #57 in the [curl.docs]known_bugs. file. The libcurl formdata.c module and Curl tools post form now have some understanding of VMS file types. Files will be posted in STREAM_LF format. The Curl tool now has some understanding of VMS file types and will upload the files in STREAM_LF format. When CURL is uploading a VARIABLE format VMS file, it is less efficient as in order to get the file size, it will first read the entire file once, and then read the file again for the actual upload. The Curl tool will now always download files into STREAM_LF format. Even if a file by that name with a different format already exists. This is needed to |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC10/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC10/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC10/lib/libcurl.vcxproj.
︙ | ︙ | |||
2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> | > | 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rename.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> |
︙ | ︙ | |||
2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> | > > < < | 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vssh\wolfssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls_threadlock.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel_verify.c" /> <ClCompile Include="..\..\..\..\lib\vtls\sectransp.c" /> <ClCompile Include="..\..\..\..\lib\vtls\vtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\wolfssl.c" /> </ItemGroup> <ItemGroup> |
︙ | ︙ | |||
2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> | > | 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rename.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> |
︙ | ︙ | |||
2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> | > < < | 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls_threadlock.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\schannel.h" /> <ClInclude Include="..\..\..\..\lib\vtls\sectransp.h" /> <ClInclude Include="..\..\..\..\lib\vtls\vtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\wolfssl.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\..\lib\libcurl.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> |
Changes to jni/curl/projects/Windows/VC10/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC11/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC11/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC11/lib/libcurl.vcxproj.
︙ | ︙ | |||
2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> | > | 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rename.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> |
︙ | ︙ | |||
2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> | > > < < | 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vssh\wolfssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls_threadlock.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel_verify.c" /> <ClCompile Include="..\..\..\..\lib\vtls\sectransp.c" /> <ClCompile Include="..\..\..\..\lib\vtls\vtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\wolfssl.c" /> </ItemGroup> <ItemGroup> |
︙ | ︙ | |||
2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> | > | 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rename.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> |
︙ | ︙ | |||
2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> | > < < | 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls_threadlock.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\schannel.h" /> <ClInclude Include="..\..\..\..\lib\vtls\sectransp.h" /> <ClInclude Include="..\..\..\..\lib\vtls\vtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\wolfssl.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\..\lib\libcurl.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> |
Changes to jni/curl/projects/Windows/VC11/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC12/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC12/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC12/lib/libcurl.vcxproj.
︙ | ︙ | |||
2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> | > | 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rename.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> |
︙ | ︙ | |||
2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> | > > < < | 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vssh\wolfssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls_threadlock.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel_verify.c" /> <ClCompile Include="..\..\..\..\lib\vtls\sectransp.c" /> <ClCompile Include="..\..\..\..\lib\vtls\vtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\wolfssl.c" /> </ItemGroup> <ItemGroup> |
︙ | ︙ | |||
2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> | > | 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rename.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> |
︙ | ︙ | |||
2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> | > < < | 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls_threadlock.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\schannel.h" /> <ClInclude Include="..\..\..\..\lib\vtls\sectransp.h" /> <ClInclude Include="..\..\..\..\lib\vtls\vtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\wolfssl.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\..\lib\libcurl.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> |
Changes to jni/curl/projects/Windows/VC12/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC14/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC14/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC14/lib/libcurl.vcxproj.
︙ | ︙ | |||
2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> | > | 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rename.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> |
︙ | ︙ | |||
2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> | > > < < | 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vssh\wolfssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls_threadlock.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel_verify.c" /> <ClCompile Include="..\..\..\..\lib\vtls\sectransp.c" /> <ClCompile Include="..\..\..\..\lib\vtls\vtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\wolfssl.c" /> </ItemGroup> <ItemGroup> |
︙ | ︙ | |||
2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> | > | 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rename.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> |
︙ | ︙ | |||
2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> | > < < | 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls_threadlock.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\schannel.h" /> <ClInclude Include="..\..\..\..\lib\vtls\sectransp.h" /> <ClInclude Include="..\..\..\..\lib\vtls\vtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\wolfssl.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\..\lib\libcurl.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> |
Changes to jni/curl/projects/Windows/VC14/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC15/lib/libcurl.vcxproj.
︙ | ︙ | |||
2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> | > | 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 | <ClCompile Include="..\..\..\..\lib\openldap.c" /> <ClCompile Include="..\..\..\..\lib\parsedate.c" /> <ClCompile Include="..\..\..\..\lib\pingpong.c" /> <ClCompile Include="..\..\..\..\lib\pop3.c" /> <ClCompile Include="..\..\..\..\lib\progress.c" /> <ClCompile Include="..\..\..\..\lib\psl.c" /> <ClCompile Include="..\..\..\..\lib\rand.c" /> <ClCompile Include="..\..\..\..\lib\rename.c" /> <ClCompile Include="..\..\..\..\lib\rtsp.c" /> <ClCompile Include="..\..\..\..\lib\security.c" /> <ClCompile Include="..\..\..\..\lib\select.c" /> <ClCompile Include="..\..\..\..\lib\sendf.c" /> <ClCompile Include="..\..\..\..\lib\setopt.c" /> <ClCompile Include="..\..\..\..\lib\sha256.c" /> <ClCompile Include="..\..\..\..\lib\share.c" /> |
︙ | ︙ | |||
2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> | > > < < | 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 | <ClCompile Include="..\..\..\..\lib\vauth\spnego_gssapi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\spnego_sspi.c" /> <ClCompile Include="..\..\..\..\lib\vauth\vauth.c" /> <ClCompile Include="..\..\..\..\lib\vquic\ngtcp2.c" /> <ClCompile Include="..\..\..\..\lib\vquic\quiche.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh2.c" /> <ClCompile Include="..\..\..\..\lib\vssh\libssh.c" /> <ClCompile Include="..\..\..\..\lib\vssh\wolfssh.c" /> <ClCompile Include="..\..\..\..\lib\vtls\bearssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gskit.c" /> <ClCompile Include="..\..\..\..\lib\vtls\gtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mbedtls_threadlock.c" /> <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" /> <ClCompile Include="..\..\..\..\lib\vtls\nss.c" /> <ClCompile Include="..\..\..\..\lib\vtls\openssl.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel.c" /> <ClCompile Include="..\..\..\..\lib\vtls\schannel_verify.c" /> <ClCompile Include="..\..\..\..\lib\vtls\sectransp.c" /> <ClCompile Include="..\..\..\..\lib\vtls\vtls.c" /> <ClCompile Include="..\..\..\..\lib\vtls\wolfssl.c" /> </ItemGroup> <ItemGroup> |
︙ | ︙ | |||
2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> | > | 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 | <ClInclude Include="..\..\..\..\lib\parsedate.h" /> <ClInclude Include="..\..\..\..\lib\pingpong.h" /> <ClInclude Include="..\..\..\..\lib\pop3.h" /> <ClInclude Include="..\..\..\..\lib\progress.h" /> <ClInclude Include="..\..\..\..\lib\psl.h" /> <ClInclude Include="..\..\..\..\lib\quic.h" /> <ClInclude Include="..\..\..\..\lib\rand.h" /> <ClInclude Include="..\..\..\..\lib\rename.h" /> <ClInclude Include="..\..\..\..\lib\rtsp.h" /> <ClInclude Include="..\..\..\..\lib\select.h" /> <ClInclude Include="..\..\..\..\lib\sendf.h" /> <ClInclude Include="..\..\..\..\lib\setopt.h" /> <ClInclude Include="..\..\..\..\lib\setup-vms.h" /> <ClInclude Include="..\..\..\..\lib\share.h" /> <ClInclude Include="..\..\..\..\lib\sigpipe.h" /> |
︙ | ︙ | |||
2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> | > < < | 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 | <ClInclude Include="..\..\..\..\lib\vquic\ngtcp2.h" /> <ClInclude Include="..\..\..\..\lib\vquic\quiche.h" /> <ClInclude Include="..\..\..\..\lib\vssh\ssh.h" /> <ClInclude Include="..\..\..\..\lib\vtls\bearssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gskit.h" /> <ClInclude Include="..\..\..\..\lib\vtls\gtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mbedtls_threadlock.h" /> <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" /> <ClInclude Include="..\..\..\..\lib\vtls\nssg.h" /> <ClInclude Include="..\..\..\..\lib\vtls\openssl.h" /> <ClInclude Include="..\..\..\..\lib\vtls\schannel.h" /> <ClInclude Include="..\..\..\..\lib\vtls\sectransp.h" /> <ClInclude Include="..\..\..\..\lib\vtls\vtls.h" /> <ClInclude Include="..\..\..\..\lib\vtls\wolfssl.h" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\..\lib\libcurl.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> |
Changes to jni/curl/projects/Windows/VC6/lib/libcurl.dsp.
︙ | ︙ | |||
1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 | SOURCE=..\..\..\..\lib\psl.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rand.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rtsp.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\security.c # End Source File | > > > > | 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 | SOURCE=..\..\..\..\lib\psl.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rand.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rename.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rtsp.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\security.c # End Source File |
︙ | ︙ | |||
1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 | SOURCE=..\..\..\..\lib\vssh\libssh2.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vssh\libssh.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\bearssl.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\gskit.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\gtls.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mesalink.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\nss.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\openssl.c # End Source File | > > > > > > > > < < < < < < < < | 1237 1238 1239 1240 1241 1242 1243 1244 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 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 | SOURCE=..\..\..\..\lib\vssh\libssh2.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vssh\libssh.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vssh\wolfssh.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\bearssl.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\gskit.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\gtls.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls_threadlock.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mesalink.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\nss.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\openssl.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\schannel.c # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\schannel_verify.c |
︙ | ︙ | |||
1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 | SOURCE=..\..\..\..\lib\quic.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rand.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rtsp.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\select.h # End Source File | > > > > | 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 | SOURCE=..\..\..\..\lib\quic.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rand.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rename.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\rtsp.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\select.h # End Source File |
︙ | ︙ | |||
1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 | SOURCE=..\..\..\..\lib\vtls\gtls.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mesalink.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\nssg.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\openssl.h # End Source File | > > > > < < < < < < < < | 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 | SOURCE=..\..\..\..\lib\vtls\gtls.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mbedtls_threadlock.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\mesalink.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\nssg.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\openssl.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\schannel.h # End Source File # Begin Source File SOURCE=..\..\..\..\lib\vtls\sectransp.h |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7.1/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7.1/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7.1/lib/libcurl.vcproj.
︙ | ︙ | |||
1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 | </File> <File RelativePath="..\..\..\..\lib\psl.c"> </File> <File RelativePath="..\..\..\..\lib\rand.c"> </File> <File RelativePath="..\..\..\..\lib\rtsp.c"> </File> <File RelativePath="..\..\..\..\lib\security.c"> </File> <File | > > > | 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 | </File> <File RelativePath="..\..\..\..\lib\psl.c"> </File> <File RelativePath="..\..\..\..\lib\rand.c"> </File> <File RelativePath="..\..\..\..\lib\rename.c"> </File> <File RelativePath="..\..\..\..\lib\rtsp.c"> </File> <File RelativePath="..\..\..\..\lib\security.c"> </File> <File |
︙ | ︙ | |||
1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 | </File> <File RelativePath="..\..\..\..\lib\quic.h"> </File> <File RelativePath="..\..\..\..\lib\rand.h"> </File> <File RelativePath="..\..\..\..\lib\rtsp.h"> </File> <File RelativePath="..\..\..\..\lib\select.h"> </File> <File | > > > | 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 | </File> <File RelativePath="..\..\..\..\lib\quic.h"> </File> <File RelativePath="..\..\..\..\lib\rand.h"> </File> <File RelativePath="..\..\..\..\lib\rename.h"> </File> <File RelativePath="..\..\..\..\lib\rtsp.h"> </File> <File RelativePath="..\..\..\..\lib\select.h"> </File> <File |
︙ | ︙ | |||
2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 | Filter=""> <File RelativePath="..\..\..\..\lib\vssh\libssh2.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\..\..\..\lib\vssh\ssh.h"> </File> | > > > | 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 | Filter=""> <File RelativePath="..\..\..\..\lib\vssh\libssh2.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\wolfssh.c"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\..\..\..\lib\vssh\ssh.h"> </File> |
︙ | ︙ | |||
2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c"> </File> <File | > > > < < < < < < | 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel_verify.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.c"> |
︙ | ︙ | |||
2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h"> </File> <File | > > > < < < < < < | 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\vtls.h"> |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7.1/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7/lib/libcurl.vcproj.
︙ | ︙ | |||
1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 | </File> <File RelativePath="..\..\..\..\lib\psl.c"> </File> <File RelativePath="..\..\..\..\lib\rand.c"> </File> <File RelativePath="..\..\..\..\lib\rtsp.c"> </File> <File RelativePath="..\..\..\..\lib\security.c"> </File> <File | > > > | 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 | </File> <File RelativePath="..\..\..\..\lib\psl.c"> </File> <File RelativePath="..\..\..\..\lib\rand.c"> </File> <File RelativePath="..\..\..\..\lib\rename.c"> </File> <File RelativePath="..\..\..\..\lib\rtsp.c"> </File> <File RelativePath="..\..\..\..\lib\security.c"> </File> <File |
︙ | ︙ | |||
1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 | </File> <File RelativePath="..\..\..\..\lib\quic.h"> </File> <File RelativePath="..\..\..\..\lib\rand.h"> </File> <File RelativePath="..\..\..\..\lib\rtsp.h"> </File> <File RelativePath="..\..\..\..\lib\select.h"> </File> <File | > > > | 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 | </File> <File RelativePath="..\..\..\..\lib\quic.h"> </File> <File RelativePath="..\..\..\..\lib\rand.h"> </File> <File RelativePath="..\..\..\..\lib\rename.h"> </File> <File RelativePath="..\..\..\..\lib\rtsp.h"> </File> <File RelativePath="..\..\..\..\lib\select.h"> </File> <File |
︙ | ︙ | |||
1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 | Filter=""> <File RelativePath="..\..\..\..\lib\vssh\libssh2.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\..\..\..\lib\vssh\ssh.h"> </File> | > > > | 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 | Filter=""> <File RelativePath="..\..\..\..\lib\vssh\libssh2.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c"> </File> <File RelativePath="..\..\..\..\lib\vssh\wolfssh.c"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\..\..\..\lib\vssh\ssh.h"> </File> |
︙ | ︙ | |||
1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c"> </File> <File | > > > < < < < < < | 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel_verify.c"> </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.c"> |
︙ | ︙ | |||
1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h"> </File> <File | > > > < < < < < < | 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 | </File> <File RelativePath="..\..\..\..\lib\vtls\gtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.h"> </File> <File RelativePath="..\..\..\..\lib\vtls\vtls.h"> |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC7/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC8/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC8/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC8/lib/libcurl.vcproj.
︙ | ︙ | |||
3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 | <File RelativePath="..\..\..\..\lib\psl.c" > </File> <File RelativePath="..\..\..\..\lib\rand.c" > </File> <File RelativePath="..\..\..\..\lib\rtsp.c" > </File> <File RelativePath="..\..\..\..\lib\security.c" | > > > > | 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 | <File RelativePath="..\..\..\..\lib\psl.c" > </File> <File RelativePath="..\..\..\..\lib\rand.c" > </File> <File RelativePath="..\..\..\..\lib\rename.c" > </File> <File RelativePath="..\..\..\..\lib\rtsp.c" > </File> <File RelativePath="..\..\..\..\lib\security.c" |
︙ | ︙ | |||
4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 | <File RelativePath="..\..\..\..\lib\quic.h" > </File> <File RelativePath="..\..\..\..\lib\rand.h" > </File> <File RelativePath="..\..\..\..\lib\rtsp.h" > </File> <File RelativePath="..\..\..\..\lib\select.h" | > > > > | 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 | <File RelativePath="..\..\..\..\lib\quic.h" > </File> <File RelativePath="..\..\..\..\lib\rand.h" > </File> <File RelativePath="..\..\..\..\lib\rename.h" > </File> <File RelativePath="..\..\..\..\lib\rtsp.h" > </File> <File RelativePath="..\..\..\..\lib\select.h" |
︙ | ︙ | |||
4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 | <File RelativePath="..\..\..\..\lib\vssh\libssh2.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c" > </File> </Filter> <Filter Name="Header Files" > <File RelativePath="..\..\..\..\lib\vssh\ssh.h" | > > > > | 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 | <File RelativePath="..\..\..\..\lib\vssh\libssh2.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\wolfssh.c" > </File> </Filter> <Filter Name="Header Files" > <File RelativePath="..\..\..\..\lib\vssh\ssh.h" |
︙ | ︙ | |||
4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 | <File RelativePath="..\..\..\..\lib\vtls\gtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c" > | > > > > < < < < < < < < | 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 | <File RelativePath="..\..\..\..\lib\vtls\gtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel_verify.c" |
︙ | ︙ | |||
4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 | <File RelativePath="..\..\..\..\lib\vtls\gtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h" > | > > > > < < < < < < < < | 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 | <File RelativePath="..\..\..\..\lib\vtls\gtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.h" |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC8/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC9/curl-all.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC9/lib/libcurl.sln.
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC9/lib/libcurl.vcproj.
︙ | ︙ | |||
3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 | <File RelativePath="..\..\..\..\lib\psl.c" > </File> <File RelativePath="..\..\..\..\lib\rand.c" > </File> <File RelativePath="..\..\..\..\lib\rtsp.c" > </File> <File RelativePath="..\..\..\..\lib\security.c" | > > > > | 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 | <File RelativePath="..\..\..\..\lib\psl.c" > </File> <File RelativePath="..\..\..\..\lib\rand.c" > </File> <File RelativePath="..\..\..\..\lib\rename.c" > </File> <File RelativePath="..\..\..\..\lib\rtsp.c" > </File> <File RelativePath="..\..\..\..\lib\security.c" |
︙ | ︙ | |||
4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 | <File RelativePath="..\..\..\..\lib\quic.h" > </File> <File RelativePath="..\..\..\..\lib\rand.h" > </File> <File RelativePath="..\..\..\..\lib\rtsp.h" > </File> <File RelativePath="..\..\..\..\lib\select.h" | > > > > | 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 | <File RelativePath="..\..\..\..\lib\quic.h" > </File> <File RelativePath="..\..\..\..\lib\rand.h" > </File> <File RelativePath="..\..\..\..\lib\rename.h" > </File> <File RelativePath="..\..\..\..\lib\rtsp.h" > </File> <File RelativePath="..\..\..\..\lib\select.h" |
︙ | ︙ | |||
4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 | <File RelativePath="..\..\..\..\lib\vssh\libssh2.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c" > </File> </Filter> <Filter Name="Header Files" > <File RelativePath="..\..\..\..\lib\vssh\ssh.h" | > > > > | 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 | <File RelativePath="..\..\..\..\lib\vssh\libssh2.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\libssh.c" > </File> <File RelativePath="..\..\..\..\lib\vssh\wolfssh.c" > </File> </Filter> <Filter Name="Header Files" > <File RelativePath="..\..\..\..\lib\vssh\ssh.h" |
︙ | ︙ | |||
4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 | <File RelativePath="..\..\..\..\lib\vtls\gtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c" > | > > > > < < < < < < < < | 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 | <File RelativePath="..\..\..\..\lib\vtls\gtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\nss.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.c" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel_verify.c" |
︙ | ︙ | |||
4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 | <File RelativePath="..\..\..\..\lib\vtls\gtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h" > | > > > > < < < < < < < < | 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 | <File RelativePath="..\..\..\..\lib\vtls\gtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mbedtls_threadlock.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\mesalink.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\nssg.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\openssl.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\schannel.h" > </File> <File RelativePath="..\..\..\..\lib\vtls\sectransp.h" |
︙ | ︙ |
Changes to jni/curl/projects/Windows/VC9/src/curl.sln.
︙ | ︙ |
Changes to jni/curl/projects/checksrc.bat.
1 2 3 4 5 6 7 8 | @echo off rem *************************************************************************** rem * _ _ ____ _ rem * Project ___| | | | _ \| | rem * / __| | | | |_) | | rem * | (__| |_| | _ <| |___ rem * \___|\___/|_| \_\_____| rem * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @echo off rem *************************************************************************** rem * _ _ ____ _ rem * Project ___| | | | _ \| | rem * / __| | | | |_) | | rem * | (__| |_| | _ <| |___ rem * \___|\___/|_| \_\_____| rem * rem * Copyright (C) 2014 - 2020, Steve Holme, <steve_holme@hotmail.com>. rem * rem * This software is licensed as described in the file COPYING, which rem * you should have received as part of this distribution. The terms rem * are also available at https://curl.haxx.se/docs/copyright.html. rem * rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell rem * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
27 28 29 30 31 32 33 34 35 36 37 38 39 40 | rem Set our variables setlocal set CHECK_LIB=TRUE set CHECK_SRC=TRUE set CHECK_TESTS=TRUE set CHECK_EXAMPLES=TRUE :parseArgs if "%~1" == "" goto prerequisites if /i "%~1" == "-?" ( goto syntax ) else if /i "%~1" == "-h" ( | > > > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | rem Set our variables setlocal set CHECK_LIB=TRUE set CHECK_SRC=TRUE set CHECK_TESTS=TRUE set CHECK_EXAMPLES=TRUE set SRC_DIR= set CUR_DIR=%cd% set ARG0_DIR=%~dp0 :parseArgs if "%~1" == "" goto prerequisites if /i "%~1" == "-?" ( goto syntax ) else if /i "%~1" == "-h" ( |
︙ | ︙ | |||
84 85 86 87 88 89 90 | ) else ( goto noperl ) ) ) :configure | | > > > > > > > > > > > > > > > | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | ) else ( goto noperl ) ) ) :configure if "%SRC_DIR%" == "" ( rem Are we being executed from the "projects" or main directory? if "%CUR_DIR%\" == "%ARG0_DIR%" ( set SRC_DIR=.. ) else if exist projects ( if exist docs ( if exist lib ( if exist src ( if exist tests ( set SRC_DIR=. ) ) ) ) ) ) if not exist "%SRC_DIR%" goto nosrc :start if "%CHECK_SRC%" == "TRUE" ( rem Check the src directory if exist %SRC_DIR%\src ( for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" -Wtool_hugehelp.c "%%i" |
︙ | ︙ |
Changes to jni/curl/scripts/Makefile.in.
︙ | ︙ | |||
276 277 278 279 280 281 282 283 284 285 286 287 288 289 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ #*************************************************************************** # _ _ ____ _ | > | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ #*************************************************************************** # _ _ ____ _ |
︙ | ︙ |
Changes to jni/curl/src/CMakeLists.txt.
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | endif() # CURL_FILES comes from Makefile.inc add_executable( ${EXE_NAME} ${CURL_FILES} ) source_group("curlX source files" FILES ${CURLX_CFILES}) source_group("curl source files" FILES ${CURL_CFILES}) source_group("curl header files" FILES ${CURL_HFILES}) include_directories( ${CURL_SOURCE_DIR}/lib # To be able to reach "curl_setup_once.h" | > > > > > > | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | endif() # CURL_FILES comes from Makefile.inc add_executable( ${EXE_NAME} ${CURL_FILES} ) if(CURL_HAS_LTO) set_target_properties(${EXE_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) endif() source_group("curlX source files" FILES ${CURLX_CFILES}) source_group("curl source files" FILES ${CURL_CFILES}) source_group("curl header files" FILES ${CURL_HFILES}) include_directories( ${CURL_SOURCE_DIR}/lib # To be able to reach "curl_setup_once.h" |
︙ | ︙ |
Changes to jni/curl/src/Makefile.in.
︙ | ︙ | |||
559 560 561 562 563 564 565 566 567 568 569 570 571 572 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/src/tool_cb_hdr.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
69 70 71 72 73 74 75 | * Once that libcurl has called back tool_header_cb() the returned value * is checked against the amount that was intended to be written, if * it does not match then it fails with CURLE_WRITE_ERROR. So at this * point returning a value different from sz*nmemb indicates failure. */ size_t failure = (size && nmemb) ? 0 : 1; | | | | | | < | | | < | | | 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 96 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 | * Once that libcurl has called back tool_header_cb() the returned value * is checked against the amount that was intended to be written, if * it does not match then it fails with CURLE_WRITE_ERROR. So at this * point returning a value different from sz*nmemb indicates failure. */ size_t failure = (size && nmemb) ? 0 : 1; if(!per->config) return failure; #ifdef DEBUGBUILD if(size * nmemb > (size_t)CURL_MAX_HTTP_HEADER) { warnf(per->config->global, "Header data exceeds single call write " "limit!\n"); return failure; } #endif /* * Write header data when curl option --dump-header (-D) is given. */ if(per->config->headerfile && heads->stream) { size_t rc = fwrite(ptr, size, nmemb, heads->stream); if(rc != cb) return rc; /* flush the stream to send off what we got earlier */ (void)fflush(heads->stream); } /* * Write etag to file when --etag-save option is given. * etag string that we want is enveloped in double quotes */ if(per->config->etag_save_file && etag_save->stream) { /* match only header that start with etag (case insensitive) */ if(curl_strnequal(str, "etag:", 5)) { char *etag_h = NULL; char *first = NULL; char *last = NULL; size_t etag_length = 0; etag_h = ptr; /* point to first occurrence of double quote */ first = memchr(etag_h, '\"', cb); /* * if server side messed with the etag header and doesn't include * double quotes around the etag, kindly exit with a warning */ if(!first) { warnf(per->config->global, "\nReceived header etag is missing double quote/s\n"); return 1; } else { /* discard first double quote */ first++; } /* point to last occurrence of double quote */ last = memchr(first, '\"', cb); if(!last) { warnf(per->config->global, "\nReceived header etag is missing double quote/s\n"); return 1; } /* get length of desired etag */ etag_length = (size_t)last - (size_t)first; fwrite(first, size, etag_length, etag_save->stream); |
︙ | ︙ | |||
193 194 195 196 197 198 199 | if(outs->fopened) fclose(outs->stream); outs->stream = NULL; /* rename the initial file name to the new file name */ rc = rename(outs->filename, filename); if(rc != 0) { | | | | | | 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 | if(outs->fopened) fclose(outs->stream); outs->stream = NULL; /* rename the initial file name to the new file name */ rc = rename(outs->filename, filename); if(rc != 0) { warnf(per->config->global, "Failed to rename %s -> %s: %s\n", outs->filename, filename, strerror(errno)); } if(outs->alloc_filename) Curl_safefree(outs->filename); if(rc != 0) { free(filename); return failure; } } outs->is_cd_filename = TRUE; outs->s_isreg = TRUE; outs->fopened = FALSE; outs->filename = filename; outs->alloc_filename = TRUE; hdrcbdata->honor_cd_filename = FALSE; /* done now! */ if(!tool_create_output_file(outs, per->config)) return failure; } break; } if(!outs->stream && !tool_create_output_file(outs, per->config)) return failure; } if(hdrcbdata->config->show_headers && (protocol & (CURLPROTO_HTTP|CURLPROTO_HTTPS|CURLPROTO_RTSP|CURLPROTO_FILE))) { /* bold headers only for selected protocols */ char *value = NULL; if(!outs->stream && !tool_create_output_file(outs, per->config)) return failure; if(hdrcbdata->global->isatty && hdrcbdata->global->styled_output) value = memchr(ptr, ':', cb); if(value) { size_t namelen = value - ptr; fprintf(outs->stream, BOLD "%.*s" BOLDOFF ":", namelen, ptr); |
︙ | ︙ |
Changes to jni/curl/src/tool_cb_prg.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
42 43 44 45 46 47 48 | # include <termio.h> #endif /* 200 values generated by this perl code: my $pi = 3.1415; foreach my $i (1 .. 200) { | | | | | | | | | | | | | | | | > > > > > > > | | | | | | 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 96 97 98 99 | # include <termio.h> #endif /* 200 values generated by this perl code: my $pi = 3.1415; foreach my $i (1 .. 200) { printf "%d, ", sin($i/200 * 2 * $pi) * 500000 + 500000; } */ static const unsigned int sinus[] = { 515704, 531394, 547052, 562664, 578214, 593687, 609068, 624341, 639491, 654504, 669364, 684057, 698568, 712883, 726989, 740870, 754513, 767906, 781034, 793885, 806445, 818704, 830647, 842265, 853545, 864476, 875047, 885248, 895069, 904500, 913532, 922156, 930363, 938145, 945495, 952406, 958870, 964881, 970434, 975522, 980141, 984286, 987954, 991139, 993840, 996054, 997778, 999011, 999752, 999999, 999754, 999014, 997783, 996060, 993848, 991148, 987964, 984298, 980154, 975536, 970449, 964898, 958888, 952426, 945516, 938168, 930386, 922180, 913558, 904527, 895097, 885277, 875077, 864507, 853577, 842299, 830682, 818739, 806482, 793922, 781072, 767945, 754553, 740910, 727030, 712925, 698610, 684100, 669407, 654548, 639536, 624386, 609113, 593733, 578260, 562710, 547098, 531440, 515751, 500046, 484341, 468651, 452993, 437381, 421830, 406357, 390976, 375703, 360552, 345539, 330679, 315985, 301474, 287158, 273052, 259170, 245525, 232132, 219003, 206152, 193590, 181331, 169386, 157768, 146487, 135555, 124983, 114781, 104959, 95526, 86493, 77868, 69660, 61876, 54525, 47613, 41147, 35135, 29581, 24491, 19871, 15724, 12056, 8868, 6166, 3951, 2225, 990, 248, 0, 244, 982, 2212, 3933, 6144, 8842, 12025, 15690, 19832, 24448, 29534, 35084, 41092, 47554, 54462, 61809, 69589, 77794, 86415, 95445, 104873, 114692, 124891, 135460, 146389, 157667, 169282, 181224, 193480, 206039, 218888, 232015, 245406, 259048, 272928, 287032, 301346, 315856, 330548, 345407, 360419, 375568, 390841, 406221, 421693, 437243, 452854, 468513, 484202, 499907 }; static void fly(struct ProgressData *bar, bool moved) { char buf[256]; int pos; int check = bar->width - 2; msnprintf(buf, sizeof(buf), "%*s\r", bar->width-1, " "); memcpy(&buf[bar->bar], "-=O=-", 5); pos = sinus[bar->tick%200] / (1000000 / check); buf[pos] = '#'; pos = sinus[(bar->tick + 5)%200] / (1000000 / check); buf[pos] = '#'; pos = sinus[(bar->tick + 10)%200] / (1000000 / check); buf[pos] = '#'; pos = sinus[(bar->tick + 15)%200] / (1000000 / check); buf[pos] = '#'; fputs(buf, bar->out); bar->tick += 2; if(bar->tick >= 200) bar->tick -= 200; |
︙ | ︙ | |||
119 120 121 122 123 124 125 | curl_off_t ultotal, curl_off_t ulnow) { /* The original progress-bar source code was written for curl by Lars Aas, and this new edition inherits some of his concepts. */ struct timeval now = tvnow(); struct per_transfer *per = clientp; | < | | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | curl_off_t ultotal, curl_off_t ulnow) { /* The original progress-bar source code was written for curl by Lars Aas, and this new edition inherits some of his concepts. */ struct timeval now = tvnow(); struct per_transfer *per = clientp; struct OperationConfig *config = per->config; struct ProgressData *bar = &per->progressbar; curl_off_t total; curl_off_t point; /* Calculate expected transfer size. initial_size can be less than zero when indicating that we are expecting to get the filesize from the remote */ |
︙ | ︙ | |||
248 249 250 251 252 253 254 | * character at the right edge will cause a line wrap. */ cols = (int) (console_info.srWindow.Right - console_info.srWindow.Left); } } #endif /* TIOCGSIZE */ | > | | 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | * character at the right edge will cause a line wrap. */ cols = (int) (console_info.srWindow.Right - console_info.srWindow.Left); } } #endif /* TIOCGSIZE */ if(cols > 20) bar->width = cols; } if(!bar->width) bar->width = 79; else if(bar->width > MAX_BARLENGTH) bar->width = MAX_BARLENGTH; bar->out = config->global->errors; bar->tick = 150; bar->barmove = 1; } |
Changes to jni/curl/src/tool_cb_rea.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
59 60 61 62 63 64 65 | */ int tool_readbusy_cb(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) { struct per_transfer *per = clientp; | < | | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | */ int tool_readbusy_cb(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) { struct per_transfer *per = clientp; struct OperationConfig *config = per->config; (void)dltotal; /* unused */ (void)dlnow; /* unused */ (void)ultotal; /* unused */ (void)ulnow; /* unused */ if(config->readbusy) { config->readbusy = FALSE; curl_easy_pause(per->curl, CURLPAUSE_CONT); } return per->noprogress? 0 : CURL_PROGRESSFUNC_CONTINUE; } |
Changes to jni/curl/src/tool_cb_wrt.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
29 30 31 32 33 34 35 | #include "tool_msgs.h" #include "tool_cb_wrt.h" #include "tool_operate.h" #include "memdebug.h" /* keep this as LAST include */ /* create a local file for writing, return TRUE on success */ | | > | | > > | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include "tool_msgs.h" #include "tool_cb_wrt.h" #include "tool_operate.h" #include "memdebug.h" /* keep this as LAST include */ /* create a local file for writing, return TRUE on success */ bool tool_create_output_file(struct OutStruct *outs, struct OperationConfig *config) { struct GlobalConfig *global; FILE *file; DEBUGASSERT(outs); DEBUGASSERT(config); global = config->global; if(!outs->filename || !*outs->filename) { warnf(global, "Remote filename has no length!\n"); return FALSE; } if(outs->is_cd_filename) { /* don't overwrite existing files */ |
︙ | ︙ | |||
74 75 76 77 78 79 80 | */ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata) { size_t rc; struct per_transfer *per = userdata; struct OutStruct *outs = &per->outs; | | | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | */ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata) { size_t rc; struct per_transfer *per = userdata; struct OutStruct *outs = &per->outs; struct OperationConfig *config = per->config; size_t bytes = sz * nmemb; bool is_tty = config->global->isatty; #ifdef WIN32 CONSOLE_SCREEN_BUFFER_INFO console_info; intptr_t fhnd; #endif |
︙ | ︙ | |||
143 144 145 146 147 148 149 | if(check_fails) { warnf(config->global, "Invalid output struct data for write callback\n"); return failure; } } #endif | | | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | if(check_fails) { warnf(config->global, "Invalid output struct data for write callback\n"); return failure; } } #endif if(!outs->stream && !tool_create_output_file(outs, per->config)) return failure; if(is_tty && (outs->bytes < 2000) && !config->terminal_binary_ok) { /* binary output to terminal? */ if(memchr(buffer, 0, bytes)) { warnf(config->global, "Binary output can mess up your terminal. " "Use \"--output -\" to tell curl to output it to your terminal " |
︙ | ︙ |
Changes to jni/curl/src/tool_cb_wrt.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_TOOL_CB_WRT_H #define HEADER_CURL_TOOL_CB_WRT_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_TOOL_CB_WRT_H #define HEADER_CURL_TOOL_CB_WRT_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
26 27 28 29 30 31 32 | /* ** callback for CURLOPT_WRITEFUNCTION */ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata); /* create a local file for writing, return TRUE on success */ | | > | 26 27 28 29 30 31 32 33 34 35 36 | /* ** callback for CURLOPT_WRITEFUNCTION */ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata); /* create a local file for writing, return TRUE on success */ bool tool_create_output_file(struct OutStruct *outs, struct OperationConfig *config); #endif /* HEADER_CURL_TOOL_CB_WRT_H */ |
Changes to jni/curl/src/tool_cfgable.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_TOOL_CFGABLE_H #define HEADER_CURL_TOOL_CFGABLE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_TOOL_CFGABLE_H #define HEADER_CURL_TOOL_CFGABLE_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
104 105 106 107 108 109 110 111 112 113 114 115 116 117 | char *proxyuserpwd; char *proxy; int proxyver; /* set to CURLPROXY_HTTP* define */ char *noproxy; char *mail_from; struct curl_slist *mail_rcpt; char *mail_auth; char *sasl_authzid; /* Authorisation identity (identity to use) */ bool sasl_ir; /* Enable/disable SASL initial response */ bool proxytunnel; bool ftp_append; /* APPE on ftp */ bool use_ascii; /* select ascii or text transfer */ bool autoreferer; /* automatically set referer */ bool failonerror; /* fail on (HTTP) errors */ | > | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | char *proxyuserpwd; char *proxy; int proxyver; /* set to CURLPROXY_HTTP* define */ char *noproxy; char *mail_from; struct curl_slist *mail_rcpt; char *mail_auth; bool mail_rcpt_allowfails; /* --mail-rcpt-allowfails */ char *sasl_authzid; /* Authorisation identity (identity to use) */ bool sasl_ir; /* Enable/disable SASL initial response */ bool proxytunnel; bool ftp_append; /* APPE on ftp */ bool use_ascii; /* select ascii or text transfer */ bool autoreferer; /* automatically set referer */ bool failonerror; /* fail on (HTTP) errors */ |
︙ | ︙ |
Changes to jni/curl/src/tool_dirhie.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | dirbuildup[0] = '\0'; /* Allow strtok() here since this isn't used threaded */ /* !checksrc! disable BANNEDFUNC 2 */ tempdir = strtok(outdup, PATH_DELIMITERS); while(tempdir != NULL) { tempdir2 = strtok(NULL, PATH_DELIMITERS); /* since strtok returns a token for the last word even if not ending with DIR_CHAR, we need to prune it */ if(tempdir2 != NULL) { size_t dlen = strlen(dirbuildup); if(dlen) msnprintf(&dirbuildup[dlen], outlen - dlen, "%s%s", DIR_CHAR, tempdir); else { | > | > > > > > > > > > > > > > | > | 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 159 160 161 162 163 164 165 166 167 168 169 170 | dirbuildup[0] = '\0'; /* Allow strtok() here since this isn't used threaded */ /* !checksrc! disable BANNEDFUNC 2 */ tempdir = strtok(outdup, PATH_DELIMITERS); while(tempdir != NULL) { bool skip = false; tempdir2 = strtok(NULL, PATH_DELIMITERS); /* since strtok returns a token for the last word even if not ending with DIR_CHAR, we need to prune it */ if(tempdir2 != NULL) { size_t dlen = strlen(dirbuildup); if(dlen) msnprintf(&dirbuildup[dlen], outlen - dlen, "%s%s", DIR_CHAR, tempdir); else { if(outdup == tempdir) { #if defined(MSDOS) || defined(WIN32) /* Skip creating a drive's current directory. It may seem as though that would harmlessly fail but it could be a corner case if X: did not exist, since we would be creating it erroneously. eg if outfile is X:\foo\bar\filename then don't mkdir X: This logic takes into account unsupported drives !:, 1:, etc. */ char *p = strchr(tempdir, ':'); if(p && !p[1]) skip = true; #endif /* the output string doesn't start with a separator */ strcpy(dirbuildup, tempdir); } else msnprintf(dirbuildup, outlen, "%s%s", DIR_CHAR, tempdir); } /* Create directory. Ignore access denied error to allow traversal. */ if(!skip && (-1 == mkdir(dirbuildup, (mode_t)0000750)) && (errno != EACCES) && (errno != EEXIST)) { show_dir_errno(errors, dirbuildup); result = CURLE_WRITE_ERROR; break; /* get out of loop */ } } tempdir = tempdir2; } Curl_safefree(dirbuildup); Curl_safefree(outdup); return result; } |
Changes to jni/curl/src/tool_doswin.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
692 693 694 695 696 697 698 699 700 701 702 | curl_slist_free_all(slist); slist = NULL; cleanup: if(hnd != INVALID_HANDLE_VALUE) CloseHandle(hnd); return slist; } #endif /* WIN32 */ #endif /* MSDOS || WIN32 */ | > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | curl_slist_free_all(slist); slist = NULL; cleanup: if(hnd != INVALID_HANDLE_VALUE) CloseHandle(hnd); return slist; } LARGE_INTEGER Curl_freq; bool Curl_isVistaOrGreater; CURLcode win32_init(void) { OSVERSIONINFOEXA osvi; unsigned __int64 mask = 0; unsigned char op = VER_GREATER_EQUAL; memset(&osvi, 0, sizeof(osvi)); osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwMajorVersion = 6; VER_SET_CONDITION(mask, VER_MAJORVERSION, op); VER_SET_CONDITION(mask, VER_MINORVERSION, op); if(VerifyVersionInfoA(&osvi, (VER_MAJORVERSION | VER_MINORVERSION), mask)) Curl_isVistaOrGreater = true; else if(GetLastError() == ERROR_OLD_WIN_VERSION) Curl_isVistaOrGreater = false; else return CURLE_FAILED_INIT; QueryPerformanceFrequency(&Curl_freq); return CURLE_OK; } #endif /* WIN32 */ #endif /* MSDOS || WIN32 */ |
Changes to jni/curl/src/tool_doswin.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_TOOL_DOSWIN_H #define HEADER_CURL_TOOL_DOSWIN_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_TOOL_DOSWIN_H #define HEADER_CURL_TOOL_DOSWIN_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 | #ifdef WIN32 CURLcode FindWin32CACert(struct OperationConfig *config, curl_sslbackend backend, const char *bundle_file); struct curl_slist *GetLoadedModulePaths(void); #endif /* WIN32 */ #endif /* MSDOS || WIN32 */ #endif /* HEADER_CURL_TOOL_DOSWIN_H */ | > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #ifdef WIN32 CURLcode FindWin32CACert(struct OperationConfig *config, curl_sslbackend backend, const char *bundle_file); struct curl_slist *GetLoadedModulePaths(void); CURLcode win32_init(void); #endif /* WIN32 */ #endif /* MSDOS || WIN32 */ #endif /* HEADER_CURL_TOOL_DOSWIN_H */ |
Changes to jni/curl/src/tool_getparam.c.
︙ | ︙ | |||
269 270 271 272 273 274 275 276 277 278 279 280 281 282 | {"EA", "socks5-basic", ARG_BOOL}, {"EB", "socks5-gssapi", ARG_BOOL}, {"EC", "etag-save", ARG_FILENAME}, {"ED", "etag-compare", ARG_FILENAME}, {"f", "fail", ARG_BOOL}, {"fa", "fail-early", ARG_BOOL}, {"fb", "styled-output", ARG_BOOL}, {"F", "form", ARG_STRING}, {"Fs", "form-string", ARG_STRING}, {"g", "globoff", ARG_BOOL}, {"G", "get", ARG_NONE}, {"Ga", "request-target", ARG_STRING}, {"h", "help", ARG_BOOL}, {"H", "header", ARG_STRING}, | > | 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | {"EA", "socks5-basic", ARG_BOOL}, {"EB", "socks5-gssapi", ARG_BOOL}, {"EC", "etag-save", ARG_FILENAME}, {"ED", "etag-compare", ARG_FILENAME}, {"f", "fail", ARG_BOOL}, {"fa", "fail-early", ARG_BOOL}, {"fb", "styled-output", ARG_BOOL}, {"fc", "mail-rcpt-allowfails", ARG_BOOL}, {"F", "form", ARG_STRING}, {"Fs", "form-string", ARG_STRING}, {"g", "globoff", ARG_BOOL}, {"G", "get", ARG_NONE}, {"Ga", "request-target", ARG_STRING}, {"h", "help", ARG_BOOL}, {"H", "header", ARG_STRING}, |
︙ | ︙ | |||
417 418 419 420 421 422 423 | param_place++; break; } #endif /* escaped colons and Windows drive letter colons were handled * above; if we're still here, this is a separating colon */ param_place++; | | | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 | param_place++; break; } #endif /* escaped colons and Windows drive letter colons were handled * above; if we're still here, this is a separating colon */ param_place++; if(*param_place) { *passphrase = strdup(param_place); } goto done; } } done: *certname_place = '\0'; |
︙ | ︙ | |||
1273 1274 1275 1276 1277 1278 1279 | case 'A': /* This specifies the User-Agent name */ GetStr(&config->useragent, nextarg); break; case 'b': switch(subletter) { case 'a': /* --alt-svc */ | > | > > | 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 | case 'A': /* This specifies the User-Agent name */ GetStr(&config->useragent, nextarg); break; case 'b': switch(subletter) { case 'a': /* --alt-svc */ if(curlinfo->features & CURL_VERSION_ALTSVC) GetStr(&config->altsvc, nextarg); else return PARAM_LIBCURL_DOESNT_SUPPORT; break; default: /* --cookie string coming up: */ if(nextarg[0] == '@') { nextarg++; } else if(strchr(nextarg, '=')) { /* A cookie string must have a =-letter */ |
︙ | ︙ | |||
1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 | switch(subletter) { case 'a': /* --fail-early */ global->fail_early = toggle; break; case 'b': /* --styled-output */ global->styled_output = toggle; break; default: /* --fail (hard on errors) */ config->failonerror = toggle; } break; case 'F': /* "form data" simulation, this is a little advanced so lets do our best to sort this out slowly and carefully */ | > > > | 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 | switch(subletter) { case 'a': /* --fail-early */ global->fail_early = toggle; break; case 'b': /* --styled-output */ global->styled_output = toggle; break; case 'c': /* --mail-rcpt-allowfails */ config->mail_rcpt_allowfails = toggle; break; default: /* --fail (hard on errors) */ config->failonerror = toggle; } break; case 'F': /* "form data" simulation, this is a little advanced so lets do our best to sort this out slowly and carefully */ |
︙ | ︙ |
Changes to jni/curl/src/tool_help.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
235 236 237 238 239 240 241 242 243 244 245 246 247 248 | "Server login options"}, {" --mail-auth <address>", "Originator address of the original email"}, {" --mail-from <address>", "Mail from this address"}, {" --mail-rcpt <address>", "Mail to this address"}, {"-M, --manual", "Display the full manual"}, {" --max-filesize <bytes>", "Maximum file size to download"}, {" --max-redirs <num>", "Maximum number of redirects allowed"}, {"-m, --max-time <seconds>", | > > | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | "Server login options"}, {" --mail-auth <address>", "Originator address of the original email"}, {" --mail-from <address>", "Mail from this address"}, {" --mail-rcpt <address>", "Mail to this address"}, {" --mail-rcpt-allowfails", "Allow RCPT TO command to fail for some recipients"}, {"-M, --manual", "Display the full manual"}, {" --max-filesize <bytes>", "Maximum file size to download"}, {" --max-redirs <num>", "Maximum number of redirects allowed"}, {"-m, --max-time <seconds>", |
︙ | ︙ |
Changes to jni/curl/src/tool_homedir.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | > > | | < < < < < < < < | < < < < < < < | > | < < < | | | | | | | > > | < > > > > > > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "tool_setup.h" #ifdef HAVE_PWD_H # include <pwd.h> #endif #include <curl/mprintf.h> #include "tool_homedir.h" #include "memdebug.h" /* keep this as LAST include */ static char *GetEnv(const char *variable) { char *dupe, *env; env = curl_getenv(variable); if(!env) return NULL; dupe = strdup(env); curl_free(env); return dupe; } /* return the home directory of the current user as an allocated string */ char *homedir(void) { char *home; home = GetEnv("CURL_HOME"); if(home) return home; home = GetEnv("HOME"); if(home) return home; #if defined(HAVE_GETPWUID) && defined(HAVE_GETEUID) { struct passwd *pw = getpwuid(geteuid()); if(pw) { home = pw->pw_dir; if(home && home[0]) home = strdup(home); else home = NULL; } } #endif /* PWD-stuff */ #ifdef WIN32 home = GetEnv("APPDATA"); if(!home) { char *env = GetEnv("USERPROFILE"); if(env) { char *path = curl_maprintf("%s\\Application Data", env); if(path) { home = strdup(path); curl_free(path); } free(env); } } #endif /* WIN32 */ return home; } |
Changes to jni/curl/src/tool_hugehelp.c.
︙ | ︙ | |||
183 184 185 186 187 188 189 | " ter a completed transfer, the cache will be saved to the file\n" " name again if it has been modified.\n" "\n" " Specify a \"\" file name (zero length) to avoid loading/saving and\n" " make curl just handle the cache in memory.\n" "\n" " If this option is used several times, curl will load contents\n" | | | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | " ter a completed transfer, the cache will be saved to the file\n" " name again if it has been modified.\n" "\n" " Specify a \"\" file name (zero length) to avoid loading/saving and\n" " make curl just handle the cache in memory.\n" "\n" " If this option is used several times, curl will load contents\n" " from all the files but the last one will be used for saving.\n" "\n" " Added in 7.64.1.\n" "\n" " --anyauth\n" , stdout); fputs( " (HTTP) Tells curl to figure out authentication method by itself,\n" |
︙ | ︙ | |||
626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 | " create the necessary local directory hierarchy as needed. This\n" " option creates the dirs mentioned with the -o, --output option,\n" , stdout); fputs( " nothing else. If the --output file name uses no dir or if the\n" " dirs it mentions already exist, no dir will be created.\n" "\n" " To create remote directories when using FTP or SFTP, try --ftp-\n" " create-dirs.\n" "\n" " --crlf (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS\n" " (OS/390).\n" "\n" " (SMTP added in 7.40.0)\n" "\n" | > < > < > < > > > < < > > < < > > < < > > < < > > < < > > < < < < > > < < | > | | | > > | < < | | | > > < < | | | | > > | < < | < < > > | > > | < < | | | > > | < < | > > | | < < | < < < > > > | | | > > | < < | | < < > > | | < < > > | > > | | < < | < < < > > > | | > > | < < | | > > | | < < > > > > < < | | > > < < | | | < < > > | | < < | > > | < < | | < < > > | < < > > | | | < < > > | < < > > | | < < > > | | > > < < | | | | | | | | | | | | | | | | < < > > | | < < > > | | | < < > > | | | < < > > | | > < | | > < | | | > < | > < | | | < < > > | > > < < | > > > < < < | | < < > > | | | > > < < | > > < < | | < < | | > > | < < | > > | | < < | | > > < < | | | > > | | < < | | < < < > > > | | > > | < < | | < > | | < < > > | | | < > | | | < > | | | < > | | < > | | | > > | < < | | < > | | < > | | | < > | | | < < > > | | < > < > | | | | < > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > | | < | < > < > > > > > > > > > > > > > > > > > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > | | | | < < > > < < > > < < > > < < < < > > > > < < < < > > > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > < < > > > < > < < < > > < < > > < < > > > < < < > > < < > > < < > > > < > < < < > > | 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 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 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 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 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 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 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 | " create the necessary local directory hierarchy as needed. This\n" " option creates the dirs mentioned with the -o, --output option,\n" , stdout); fputs( " nothing else. If the --output file name uses no dir or if the\n" " dirs it mentions already exist, no dir will be created.\n" "\n" " Created dirs are made with mode 0750 on unix style file systems.\n" " To create remote directories when using FTP or SFTP, try --ftp-\n" " create-dirs.\n" "\n" " --crlf (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS\n" " (OS/390).\n" "\n" " (SMTP added in 7.40.0)\n" "\n" , stdout); fputs( " --crlfile <file>\n" " (TLS) Provide a file using PEM format with a Certificate Revoca-\n" " tion List that may specify peer certificates that are to be con-\n" " sidered revoked.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.19.7.\n" "\n" " --data-ascii <data>\n" " (HTTP) This is just an alias for -d, --data.\n" "\n" " --data-binary <data>\n" , stdout); fputs( " (HTTP) This posts data exactly as specified with no extra pro-\n" " cessing whatsoever.\n" "\n" " If you start the data with the letter @, the rest should be a\n" " filename. Data is posted in a similar manner as -d, --data\n" " does, except that newlines and carriage returns are preserved\n" " and conversions are never done.\n" "\n" " Like -d, --data the default content-type sent to the server is\n" , stdout); fputs( " application/x-www-form-urlencoded. If you want the data to be\n" " treated as arbitrary binary data by the server then set the con-\n" " tent-type to octet-stream: -H \"Content-Type: application/octet-\n" " stream\".\n" "\n" " If this option is used several times, the ones following the\n" " first will append data as described in -d, --data.\n" "\n" " --data-raw <data>\n" , stdout); fputs( " (HTTP) This posts data similarly to -d, --data but without the\n" " special interpretation of the @ character.\n" "\n" " See also -d, --data. Added in 7.43.0.\n" "\n" " --data-urlencode <data>\n" " (HTTP) This posts data, similar to the other -d, --data options\n" " with the exception that this performs URL-encoding.\n" "\n" " To be CGI-compliant, the <data> part should begin with a name\n" , stdout); fputs( " followed by a separator and a content specification. The <data>\n" " part can be passed to curl using one of the following syntaxes:\n" "\n" " content\n" " This will make curl URL-encode the content and pass that\n" " on. Just be careful so that the content doesn't contain\n" " any = or @ symbols, as that will then make the syntax\n" " match one of the other cases below!\n" "\n" " =content\n" , stdout); fputs( " This will make curl URL-encode the content and pass that\n" " on. The preceding = symbol is not included in the data.\n" "\n" " name=content\n" " This will make curl URL-encode the content part and pass\n" " that on. Note that the name part is expected to be URL-\n" " encoded already.\n" "\n" " @filename\n" " This will make curl load data from the given file (in-\n" , stdout); fputs( " cluding any newlines), URL-encode that data and pass it\n" " on in the POST.\n" "\n" " name@filename\n" " This will make curl load data from the given file (in-\n" " cluding any newlines), URL-encode that data and pass it\n" " on in the POST. The name part gets an equal sign ap-\n" " pended, resulting in name=urlencoded-file-content. Note\n" , stdout); fputs( " that the name is expected to be URL-encoded already.\n" " See also -d, --data and --data-raw. Added in 7.18.0.\n" "\n" " -d, --data <data>\n" " (HTTP) Sends the specified data in a POST request to the HTTP\n" " server, in the same way that a browser does when a user has\n" " filled in an HTML form and presses the submit button. This will\n" " cause curl to pass the data to the server using the content-type\n" , stdout); fputs( " application/x-www-form-urlencoded. Compare to -F, --form.\n" "\n" " --data-raw is almost the same but does not have a special inter-\n" " pretation of the @ character. To post data purely binary, you\n" " should instead use the --data-binary option. To URL-encode the\n" " value of a form field you may use --data-urlencode.\n" "\n" " If any of these options is used more than once on the same com-\n" , stdout); fputs( " mand line, the data pieces specified will be merged together\n" " with a separating &-symbol. Thus, using '-d name=daniel -d\n" " skill=lousy' would generate a post chunk that looks like\n" " 'name=daniel&skill=lousy'.\n" "\n" " If you start the data with the letter @, the rest should be a\n" " file name to read the data from, or - if you want curl to read\n" , stdout); fputs( " the data from stdin. Posting data from a file named 'foobar'\n" " would thus be done with -d, --data @foobar. When -d, --data is\n" " told to read from a file like that, carriage returns and new-\n" " lines will be stripped out. If you don't want the @ character to\n" " have a special interpretation use --data-raw instead.\n" "\n" " See also --data-binary and --data-urlencode and --data-raw. This\n" , stdout); fputs( " option overrides -F, --form and -I, --head and -T, --upload-\n" " file.\n" "\n" " --delegation <LEVEL>\n" " (GSS/kerberos) Set LEVEL to tell the server what it is allowed\n" " to delegate when it comes to user credentials.\n" "\n" " none Don't allow any delegation.\n" "\n" " policy Delegates if and only if the OK-AS-DELEGATE flag is set\n" " in the Kerberos service ticket, which is a matter of\n" , stdout); fputs( " realm policy.\n" "\n" " always Unconditionally allow the server to delegate.\n" "\n" " --digest\n" " (HTTP) Enables HTTP Digest authentication. This is an authenti-\n" " cation scheme that prevents the password from being sent over\n" " the wire in clear text. Use this in combination with the normal\n" " -u, --user option to set user name and password.\n" "\n" " If this option is used several times, only the first one is\n" , stdout); fputs( " used.\n" "\n" " See also -u, --user and --proxy-digest and --anyauth. This op-\n" " tion overrides --basic and --ntlm and --negotiate.\n" "\n" " --disable-eprt\n" " (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n" " when doing active FTP transfers. Curl will normally always first\n" " attempt to use EPRT, then LPRT before using PORT, but with this\n" , stdout); fputs( " option, it will use PORT right away. EPRT and LPRT are exten-\n" " sions to the original FTP protocol, and may not work on all\n" " servers, but they enable more functionality in a better way than\n" " the traditional PORT command.\n" "\n" " --eprt can be used to explicitly enable EPRT again and --no-eprt\n" " is an alias for --disable-eprt.\n" "\n" " If the server is accessed using IPv6, this option will have no\n" , stdout); fputs( " effect as EPRT is necessary then.\n" "\n" " Disabling EPRT only changes the active behavior. If you want to\n" " switch to passive mode you need to not use -P, --ftp-port or\n" " force it with --ftp-pasv.\n" "\n" " --disable-epsv\n" " (FTP) (FTP) Tell curl to disable the use of the EPSV command\n" " when doing passive FTP transfers. Curl will normally always\n" , stdout); fputs( " first attempt to use EPSV before PASV, but with this option, it\n" " will not try using EPSV.\n" "\n" " --epsv can be used to explicitly enable EPSV again and --no-epsv\n" " is an alias for --disable-epsv.\n" "\n" " If the server is an IPv6 host, this option will have no effect\n" " as EPSV is necessary then.\n" "\n" " Disabling EPSV only changes the passive behavior. If you want to\n" , stdout); fputs( " switch to active mode you need to use -P, --ftp-port.\n" "\n" " -q, --disable\n" " If used as the first parameter on the command line, the curlrc\n" " config file will not be read and used. See the -K, --config for\n" " details on the default config file search path.\n" "\n" " --disallow-username-in-url\n" " (HTTP) This tells curl to exit if passed a url containing a\n" " username.\n" "\n" " See also --proto. Added in 7.61.0.\n" "\n" , stdout); fputs( " --dns-interface <interface>\n" " (DNS) Tell curl to send outgoing DNS requests through <inter-\n" " face>. This option is a counterpart to --interface (which does\n" " not affect DNS). The supplied string must be an interface name\n" " (not an address).\n" "\n" " See also --dns-ipv4-addr and --dns-ipv6-addr. --dns-interface\n" " requires that the underlying libcurl was built to support c-\n" " ares. Added in 7.33.0.\n" , stdout); fputs( "\n" " --dns-ipv4-addr <address>\n" " (DNS) Tell curl to bind to <ip-address> when making IPv4 DNS re-\n" " quests, so that the DNS requests originate from this address.\n" " The argument should be a single IPv4 address.\n" "\n" " See also --dns-interface and --dns-ipv6-addr. --dns-ipv4-addr\n" " requires that the underlying libcurl was built to support c-\n" " ares. Added in 7.33.0.\n" "\n" " --dns-ipv6-addr <address>\n" , stdout); fputs( " (DNS) Tell curl to bind to <ip-address> when making IPv6 DNS re-\n" " quests, so that the DNS requests originate from this address.\n" " The argument should be a single IPv6 address.\n" "\n" " See also --dns-interface and --dns-ipv4-addr. --dns-ipv6-addr\n" " requires that the underlying libcurl was built to support c-\n" " ares. Added in 7.33.0.\n" "\n" " --dns-servers <addresses>\n" , stdout); fputs( " Set the list of DNS servers to be used instead of the system de-\n" " fault. The list of IP addresses should be separated with com-\n" " mas. Port numbers may also optionally be given as :<port-number>\n" " after each IP address.\n" "\n" " --dns-servers requires that the underlying libcurl was built to\n" " support c-ares. Added in 7.33.0.\n" "\n" " --doh-url <URL>\n" , stdout); fputs( " (all) Specifies which DNS-over-HTTPS (DOH) server to use to re-\n" " solve hostnames, instead of using the default name resolver\n" " mechanism. The URL must be HTTPS.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.62.0.\n" "\n" " -D, --dump-header <filename>\n" " (HTTP FTP) Write the received protocol headers to the specified\n" " file.\n" "\n" , stdout); fputs( " This option is handy to use when you want to store the headers\n" " that an HTTP site sends to you. Cookies from the headers could\n" " then be read in a second curl invocation by using the -b,\n" " --cookie option! The -c, --cookie-jar option is a better way to\n" " store cookies.\n" "\n" " If no headers are received, the use of this option will create\n" " an empty file.\n" "\n" , stdout); fputs( " When used in FTP, the FTP server response lines are considered\n" " being \"headers\" and thus are saved there.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " See also -o, --output.\n" "\n" " --egd-file <file>\n" " (TLS) Specify the path name to the Entropy Gathering Daemon\n" " socket. The socket is used to seed the random engine for SSL\n" " connections.\n" "\n" , stdout); fputs( " See also --random-file.\n" "\n" " --engine <name>\n" " (TLS) Select the OpenSSL crypto engine to use for cipher opera-\n" " tions. Use --engine list to print a list of build-time supported\n" " engines. Note that not all (or none) of the engines may be\n" " available at run-time.\n" "\n" " --etag-compare <file>\n" " (HTTP) This option makes a conditional HTTP request for the spe-\n" , stdout); fputs( " cific ETag read from the given file by sending a custom If-None-\n" " Match header using the extracted ETag.\n" "\n" " For correct results, make sure that specified file contains only\n" " a single line with a desired ETag. An empty file is parsed as an\n" " empty ETag.\n" "\n" " Use the option --etag-save to first save the ETag from a re-\n" " sponse, and then use this option to compare using the saved ETag\n" , stdout); fputs( " in a subsequent request.\n" "\n" " OMPARISON: There are 2 types of comparison or ETags, Weak and\n" " Strong. This option expects, and uses a strong comparison.\n" "\n" " Added in 7.68.0.\n" "\n" " --etag-save <file>\n" " (HTTP) This option saves an HTTP ETag to the specified file.\n" " Etag is usually part of headers returned by a request. When\n" " server sends an ETag, it must be enveloped by a double quote.\n" , stdout); fputs( " This option extracts the ETag without the double quotes and\n" " saves it into the <file>.\n" "\n" " A server can send a week ETag which is prefixed by \"W/\". This\n" " identifier is not considered, and only relevant ETag between\n" " quotation marks is parsed.\n" "\n" " It an ETag wasn't send by the server or it cannot be parsed, and\n" " empty file is created.\n" "\n" " Added in 7.68.0.\n" "\n" , stdout); fputs( " --expect100-timeout <seconds>\n" " (HTTP) Maximum time in seconds that you allow curl to wait for a\n" " 100-continue response when curl emits an Expects: 100-continue\n" " header in its request. By default curl will wait one second.\n" " This option accepts decimal values! When curl stops waiting, it\n" " will continue as if the response has been received.\n" "\n" " See also --connect-timeout. Added in 7.47.0.\n" "\n" " --fail-early\n" , stdout); fputs( " Fail and exit on the first detected transfer error.\n" "\n" " When curl is used to do multiple transfers on the command line,\n" " it will attempt to operate on each given URL, one by one. By de-\n" " fault, it will ignore errors if there are more URLs given and\n" " the last URL's success will determine the error code curl re-\n" " turns. So early failures will be \"hidden\" by subsequent success-\n" " ful transfers.\n" "\n" , stdout); fputs( " Using this option, curl will instead return an error on the\n" " first transfer that fails, independent of the amount of URLs\n" " that are given on the command line. This way, no transfer fail-\n" " ures go undetected by scripts and similar.\n" "\n" " This option is global and does not need to be specified for each\n" " use of -:, --next.\n" "\n" " This option does not imply -f, --fail, which causes transfers to\n" , stdout); fputs( " fail due to the server's HTTP status code. You can combine the\n" " two options, however note -f, --fail is not global and is there-\n" " fore contained by -:, --next.\n" "\n" " Added in 7.52.0.\n" "\n" " -f, --fail\n" " (HTTP) Fail silently (no output at all) on server errors. This\n" " is mostly done to better enable scripts etc to better deal with\n" " failed attempts. In normal cases when an HTTP server fails to\n" , stdout); fputs( " deliver a document, it returns an HTML document stating so\n" " (which often also describes why and more). This flag will pre-\n" " vent curl from outputting that and return error 22.\n" "\n" " This method is not fail-safe and there are occasions where non-\n" " successful response codes will slip through, especially when au-\n" " thentication is involved (response codes 401 and 407).\n" "\n" " --false-start\n" , stdout); fputs( " (TLS) Tells curl to use false start during the TLS handshake.\n" " False start is a mode where a TLS client will start sending ap-\n" " plication data before verifying the server's Finished message,\n" " thus saving a round trip when performing a full handshake.\n" "\n" " This is currently only implemented in the NSS and Secure Trans-\n" " port (on iOS 7.0 or later, or OS X 10.9 or later) backends.\n" "\n" " Added in 7.42.0.\n" "\n" , stdout); fputs( " --form-string <name=string>\n" " (HTTP SMTP IMAP) Similar to -F, --form except that the value\n" " string for the named parameter is used literally. Leading '@'\n" " and '<' characters, and the ';type=' string in the value have no\n" " special meaning. Use this in preference to -F, --form if there's\n" " any possibility that the string value may accidentally trigger\n" " the '@' or '<' features of -F, --form.\n" "\n" , stdout); fputs( " See also -F, --form.\n" "\n" " -F, --form <name=content>\n" " (HTTP SMTP IMAP) For HTTP protocol family, this lets curl emu-\n" " late a filled-in form in which a user has pressed the submit\n" " button. This causes curl to POST data using the Content-Type\n" " multipart/form-data according to RFC 2388.\n" "\n" " For SMTP and IMAP protocols, this is the mean to compose a mul-\n" " tipart mail message to transmit.\n" "\n" , stdout); fputs( " This enables uploading of binary files etc. To force the 'con-\n" " tent' part to be a file, prefix the file name with an @ sign. To\n" " just get the content part from a file, prefix the file name with\n" " the symbol <. The difference between @ and < is then that @\n" " makes a file get attached in the post as a file upload, while\n" " the < makes a text field and just get the contents for that text\n" , stdout); fputs( " field from a file.\n" "\n" " Tell curl to read content from stdin instead of a file by using\n" " - as filename. This goes for both @ and < constructs. When stdin\n" " is used, the contents is buffered in memory first by curl to de-\n" " termine its size and allow a possible resend. Defining a part's\n" " data from a named non-regular file (such as a named pipe or sim-\n" , stdout); fputs( " ilar) is unfortunately not subject to buffering and will be ef-\n" " fectively read at transmission time; since the full size is un-\n" " known before the transfer starts, such data is sent as chunks by\n" " HTTP and rejected by IMAP.\n" "\n" " Example: send an image to an HTTP server, where 'profile' is the\n" " name of the form-field to which the file portrait.jpg will be\n" " the input:\n" "\n" , stdout); fputs( " curl -F profile=@portrait.jpg https://example.com/upload.cgi\n" "\n" " Example: send your name and shoe size in two text fields to the\n" " server:\n" "\n" " curl -F name=John -F shoesize=11 https://example.com/\n" "\n" " Example: send your essay in a text field to the server. Send it\n" " as a plain text field, but get the contents for it from a local\n" " file:\n" "\n" " curl -F \"story=<hugefile.txt\" https://example.com/\n" "\n" , stdout); fputs( " You can also tell curl what Content-Type to use by using\n" " 'type=', in a manner similar to:\n" "\n" " curl -F \"web=@index.html;type=text/html\" example.com\n" "\n" " or\n" "\n" " curl -F \"name=daniel;type=text/foo\" example.com\n" "\n" " You can also explicitly change the name field of a file upload\n" " part by setting filename=, like this:\n" "\n" " curl -F \"file=@localfile;filename=nameinpost\" example.com\n" "\n" , stdout); fputs( " If filename/path contains ',' or ';', it must be quoted by dou-\n" " ble-quotes like:\n" "\n" " curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" exam-\n" " ple.com\n" "\n" " or\n" "\n" " curl -F 'file=@\"localfile\";filename=\"nameinpost\"' example.com\n" "\n" " Note that if a filename/path is quoted by double-quotes, any\n" " double-quote or backslash within the filename must be escaped by\n" " backslash.\n" "\n" , stdout); fputs( " Quoting must also be applied to non-file data if it contains\n" " semicolons, leading/trailing spaces or leading double quotes:\n" "\n" " curl -F 'colors=\"red; green; blue\";type=text/x-myapp' exam-\n" " ple.com\n" "\n" " You can add custom headers to the field by setting headers=,\n" " like\n" "\n" " curl -F \"submit=OK;headers=\\\"X-submit-type: OK\\\"\" example.com\n" "\n" " or\n" "\n" , stdout); fputs( " curl -F \"submit=OK;headers=@headerfile\" example.com\n" "\n" " The headers= keyword may appear more that once and above notes\n" " about quoting apply. When headers are read from a file, Empty\n" " lines and lines starting with '#' are comments and ignored; each\n" " header can be folded by splitting between two words and starting\n" " the continuation line with a space; embedded carriage-returns\n" , stdout); fputs( " and trailing spaces are stripped. Here is an example of a\n" " header file contents:\n" "\n" " # This file contain two headers.\n" " X-header-1: this is a header\n" "\n" " # The following header is folded.\n" " X-header-2: this is\n" " another header\n" "\n" " To support sending multipart mail messages, the syntax is ex-\n" " tended as follows:\n" , stdout); fputs( " - name can be omitted: the equal sign is the first character of\n" " the argument,\n" " - if data starts with '(', this signals to start a new multi-\n" " part: it can be followed by a content type specification.\n" " - a multipart can be terminated with a '=)' argument.\n" "\n" " Example: the following command sends an SMTP mime e-mail con-\n" " sisting in an inline part in two alternative formats: plain text\n" , stdout); fputs( " and HTML. It attaches a text file:\n" "\n" " curl -F '=(;type=multipart/alternative' \\\n" " -F '=plain text message' \\\n" " -F '= <body>HTML message</body>;type=text/html' \\\n" " -F '=)' -F '=@textfile.txt' ... smtp://example.com\n" "\n" " Data can be encoded for transfer using encoder=. Available en-\n" " codings are binary and 8bit that do nothing else than adding the\n" , stdout); fputs( " corresponding Content-Transfer-Encoding header, 7bit that only\n" " rejects 8-bit characters with a transfer error, quoted-printable\n" " and base64 that encodes data according to the corresponding\n" " schemes, limiting lines length to 76 characters.\n" "\n" " Example: send multipart mail with a quoted-printable text mes-\n" " sage and a base64 attached file:\n" "\n" " curl -F '=text message;encoder=quoted-printable' \\\n" , stdout); fputs( " -F '=@localfile;encoder=base64' ... smtp://example.com\n" "\n" " See further examples and details in the MANUAL.\n" "\n" " This option can be used multiple times.\n" "\n" " This option overrides -d, --data and -I, --head and -T, --up-\n" " load-file.\n" "\n" " --ftp-account <data>\n" " (FTP) When an FTP server asks for \"account data\" after user name\n" " and password has been provided, this data is sent off using the\n" , stdout); fputs( " ACCT command.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.13.0.\n" "\n" " --ftp-alternative-to-user <command>\n" " (FTP) If authenticating with the USER and PASS commands fails,\n" " send this command. When connecting to Tumbleweed's Secure\n" " Transport server over FTPS using a client certificate, using\n" " \"SITE AUTH\" will tell the server to retrieve the username from\n" , stdout); fputs( " the certificate.\n" " Added in 7.15.5.\n" "\n" " --ftp-create-dirs\n" " (FTP SFTP) When an FTP or SFTP URL/operation uses a path that\n" " doesn't currently exist on the server, the standard behavior of\n" " curl is to fail. Using this option, curl will instead attempt to\n" " create missing directories.\n" "\n" " See also --create-dirs.\n" "\n" " --ftp-method <method>\n" , stdout); fputs( " (FTP) Control what method curl should use to reach a file on an\n" " FTP(S) server. The method argument should be one of the follow-\n" " ing alternatives:\n" "\n" " multicwd\n" " curl does a single CWD operation for each path part in\n" " the given URL. For deep hierarchies this means very many\n" " commands. This is how RFC 1738 says it should be done.\n" , stdout); fputs( " This is the default but the slowest behavior.\n" "\n" " nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n" " etc and give a full path to the server for all these com-\n" " mands. This is the fastest behavior.\n" "\n" " singlecwd\n" " curl does one CWD with the full target directory and then\n" " operates on the file \"normally\" (like in the multicwd\n" , stdout); fputs( " case). This is somewhat more standards compliant than\n" " 'nocwd' but without the full penalty of 'multicwd'.\n" "\n" " Added in 7.15.1.\n" "\n" " --ftp-pasv\n" " (FTP) Use passive mode for the data connection. Passive is the\n" " internal default behavior, but using this option can be used to\n" " override a previous -P, --ftp-port option.\n" "\n" " If this option is used several times, only the first one is\n" , stdout); fputs( " used. Undoing an enforced passive really isn't doable but you\n" " must then instead enforce the correct -P, --ftp-port again.\n" "\n" " Passive mode means that curl will try the EPSV command first and\n" " then PASV, unless --disable-epsv is used.\n" " See also --disable-epsv. Added in 7.11.0.\n" "\n" " -P, --ftp-port <address>\n" " (FTP) Reverses the default initiator/listener roles when con-\n" , stdout); fputs( " necting with FTP. This option makes curl use active mode. curl\n" " then tells the server to connect back to the client's specified\n" " address and port, while passive mode asks the server to setup an\n" " IP address and port for it to connect to. <address> should be\n" " one of:\n" "\n" " interface\n" " e.g. \"eth0\" to specify which interface's IP address you\n" " want to use (Unix only)\n" "\n" , stdout); fputs( " IP address\n" " e.g. \"192.168.10.1\" to specify the exact IP address\n" "\n" " host name\n" " e.g. \"my.host.domain\" to specify the machine\n" "\n" " - make curl pick the same IP address that is already used\n" " for the control connection\n" "\n" " If this option is used several times, the last one will be used. Dis-\n" " able the use of PORT with --ftp-pasv. Disable the attempt to use the\n" , stdout); fputs( " EPRT command instead of PORT by using --disable-eprt. EPRT is really\n" " PORT++.\n" "\n" " Since 7.19.5, you can append \":[start]-[end]\" to the right of the ad-\n" " dress, to tell curl what TCP port range to use. That means you specify\n" " a port range, from a lower to a higher number. A single number works as\n" " well, but do note that it increases the risk of failure since the port\n" " may not be available.\n" "\n" " See also --ftp-pasv and --disable-eprt.\n" "\n" , stdout); fputs( " --ftp-pret\n" " (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n" " Certain FTP servers, mainly drftpd, require this non-standard\n" " command for directory listings as well as up and downloads in\n" " PASV mode.\n" "\n" " Added in 7.20.0.\n" "\n" " --ftp-skip-pasv-ip\n" " (FTP) Tell curl to not use the IP address the server suggests in\n" " its response to curl's PASV command when curl connects the data\n" , stdout); fputs( " connection. Instead curl will re-use the same IP address it al-\n" " ready uses for the control connection.\n" "\n" " This option has no effect if PORT, EPRT or EPSV is used instead\n" " of PASV.\n" "\n" " See also --ftp-pasv. Added in 7.14.2.\n" "\n" " --ftp-ssl-ccc-mode <active/passive>\n" " (FTP) Sets the CCC mode. The passive mode will not initiate the\n" " shutdown, but instead wait for the server to do it, and will not\n" , stdout); fputs( " reply to the shutdown from the server. The active mode initiates\n" " the shutdown and waits for a reply from the server.\n" "\n" " See also --ftp-ssl-ccc. Added in 7.16.2.\n" "\n" " --ftp-ssl-ccc\n" " (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n" " layer after authenticating. The rest of the control channel com-\n" " munication will be unencrypted. This allows NAT routers to fol-\n" , stdout); fputs( " low the FTP transaction. The default mode is passive.\n" "\n" " See also --ssl and --ftp-ssl-ccc-mode. Added in 7.16.1.\n" "\n" " --ftp-ssl-control\n" " (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n" " Allows secure authentication, but non-encrypted data transfers\n" " for efficiency. Fails the transfer if the server doesn't sup-\n" " port SSL/TLS.\n" "\n" " Added in 7.16.0.\n" "\n" " -G, --get\n" , stdout); fputs( " When used, this option will make all data specified with -d,\n" " --data, --data-binary or --data-urlencode to be used in an HTTP\n" " GET request instead of the POST request that otherwise would be\n" " used. The data will be appended to the URL with a '?' separator.\n" " If used in combination with -I, --head, the POST data will in-\n" " stead be appended to the URL with a HEAD request.\n" "\n" , stdout); fputs( " If this option is used several times, only the first one is\n" " used. This is because undoing a GET doesn't make sense, but you\n" " should then instead enforce the alternative method you prefer.\n" "\n" " -g, --globoff\n" " This option switches off the \"URL globbing parser\". When you set\n" " this option, you can specify URLs that contain the letters {}[]\n" " without having them being interpreted by curl itself. Note that\n" , stdout); fputs( " these letters are not normal legal URL contents but they should\n" " be encoded according to the URI standard.\n" "\n" " --happy-eyeballs-timeout-ms <milliseconds>\n" " Happy eyeballs is an algorithm that attempts to connect to both\n" " IPv4 and IPv6 addresses for dual-stack hosts, preferring IPv6\n" " first for the number of milliseconds. If the IPv6 address cannot\n" , stdout); fputs( " be connected to within that time then a connection attempt is\n" " made to the IPv4 address in parallel. The first connection to be\n" " established is the one that is used.\n" "\n" " The range of suggested useful values is limited. Happy Eyeballs\n" " RFC 6555 says \"It is RECOMMENDED that connection attempts be\n" " paced 150-250 ms apart to balance human factors against network\n" , stdout); fputs( " load.\" libcurl currently defaults to 200 ms. Firefox and Chrome\n" " currently default to 300 ms.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.59.0.\n" "\n" " --haproxy-protocol\n" " (HTTP) Send a HAProxy PROXY protocol v1 header at the beginning\n" " of the connection. This is used by some load balancers and re-\n" " verse proxies to indicate the client's true IP address and port.\n" , stdout); fputs( " This option is primarily useful when sending test requests to a\n" " service that expects this header.\n" "\n" " Added in 7.60.0.\n" "\n" " -I, --head\n" " (HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the\n" " command HEAD which this uses to get nothing but the header of a\n" " document. When used on an FTP or FILE file, curl displays the\n" " file size and last modification time only.\n" "\n" , stdout); fputs( " -H, --header <header/@file>\n" " (HTTP) Extra header to include in the request when sending HTTP\n" " to a server. You may specify any number of extra headers. Note\n" " that if you should add a custom header that has the same name as\n" " one of the internal ones curl would use, your externally set\n" " header will be used instead of the internal one. This allows you\n" , stdout); fputs( " to make even trickier stuff than curl would normally do. You\n" " should not replace internally set headers without knowing per-\n" " fectly well what you're doing. Remove an internal header by giv-\n" " ing a replacement without content on the right side of the\n" " colon, as in: -H \"Host:\". If you send the custom header with no-\n" " value then its header must be terminated with a semicolon, such\n" , stdout); fputs( " as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n" "\n" " curl will make sure that each header you add/replace is sent\n" " with the proper end-of-line marker, you should thus not add that\n" " as a part of the header content: do not add newlines or carriage\n" " returns, they will only mess things up for you.\n" "\n" " Starting in 7.55.0, this option can take an argument in @file-\n" , stdout); fputs( " name style, which then adds a header for each line in the input\n" " file. Using @- will make curl read the header file from stdin.\n" "\n" " See also the -A, --user-agent and -e, --referer options.\n" "\n" " Starting in 7.37.0, you need --proxy-header to send custom head-\n" " ers intended for a proxy.\n" "\n" " Example:\n" "\n" " curl -H \"X-First-Name: Joe\" http://example.com/\n" "\n" , stdout); fputs( " WARNING: headers set with this option will be set in all re-\n" " quests - even after redirects are followed, like when told with\n" " -L, --location. This can lead to the header being sent to other\n" " hosts than the original host, so sensitive headers should be\n" " used with caution combined with following redirects.\n" "\n" " This option can be used multiple times to add/replace/remove\n" " multiple headers.\n" "\n" , stdout); fputs( " -h, --help\n" " Usage help. This lists all current command line options with a\n" " short description.\n" " --hostpubmd5 <md5>\n" " (SFTP SCP) Pass a string containing 32 hexadecimal digits. The\n" " string should be the 128 bit MD5 checksum of the remote host's\n" " public key, curl will refuse the connection with the host unless\n" " the md5sums match.\n" "\n" " Added in 7.17.1.\n" "\n" " --http0.9\n" , stdout); fputs( " (HTTP) Tells curl to be fine with HTTP version 0.9 response.\n" "\n" " HTTP/0.9 is a completely headerless response and therefore you\n" " can also connect with this to non-HTTP servers and still get a\n" " response since curl will simply transparently downgrade - if al-\n" " lowed.\n" "\n" " Since curl 7.66.0, HTTP/0.9 is disabled by default.\n" "\n" " -0, --http1.0\n" , stdout); fputs( " (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n" " internally preferred HTTP version.\n" "\n" " This option overrides --http1.1 and --http2.\n" "\n" " --http1.1\n" " (HTTP) Tells curl to use HTTP version 1.1.\n" "\n" " This option overrides -0, --http1.0 and --http2. Added in\n" " 7.33.0.\n" "\n" " --http2-prior-knowledge\n" " (HTTP) Tells curl to issue its non-TLS HTTP requests using\n" , stdout); fputs( " HTTP/2 without HTTP/1.1 Upgrade. It requires prior knowledge\n" " that the server supports HTTP/2 straight away. HTTPS requests\n" " will still do HTTP/2 the standard way with negotiated protocol\n" " version in the TLS handshake.\n" "\n" " --http2-prior-knowledge requires that the underlying libcurl was\n" " built to support HTTP/2. This option overrides --http1.1 and -0,\n" " --http1.0 and --http2. Added in 7.49.0.\n" "\n" , stdout); fputs( " --http2\n" " (HTTP) Tells curl to use HTTP version 2.\n" "\n" " See also --http1.1 and --http3. --http2 requires that the under-\n" " lying libcurl was built to support HTTP/2. This option overrides\n" " --http1.1 and -0, --http1.0 and --http2-prior-knowledge. Added\n" " in 7.33.0.\n" "\n" " --http3\n" " (HTTP) WARNING: this option is experimental. Do not use in pro-\n" " duction.\n" "\n" , stdout); fputs( " Tells curl to use HTTP version 3 directly to the host and port\n" " number used in the URL. A normal HTTP/3 transaction will be done\n" " to a host and then get redirected via Alt-SVc, but this option\n" " allows a user to circumvent that when you know that the target\n" " speaks HTTP/3 on the given host and port.\n" "\n" " This option will make curl fail if a QUIC connection cannot be\n" , stdout); fputs( " established, it cannot fall back to a lower HTTP version on its\n" " own.\n" "\n" " See also --http1.1 and --http2. --http3 requires that the under-\n" " lying libcurl was built to support HTTP/3. This option overrides\n" " --http1.1 and -0, --http1.0 and --http2 and --http2-prior-knowl-\n" " edge. Added in 7.66.0.\n" "\n" " --ignore-content-length\n" " (FTP HTTP) For HTTP, Ignore the Content-Length header. This is\n" , stdout); fputs( " particularly useful for servers running Apache 1.x, which will\n" " report incorrect Content-Length for files larger than 2 giga-\n" " bytes.\n" "\n" " For FTP (since 7.46.0), skip the RETR command to figure out the\n" " size before downloading a file.\n" "\n" " -i, --include\n" " Include the HTTP response headers in the output. The HTTP re-\n" " sponse headers can include things like server name, cookies,\n" , stdout); fputs( " date of the document, HTTP version and more...\n" "\n" " To view the request headers, consider the -v, --verbose option.\n" "\n" " See also -v, --verbose.\n" "\n" " -k, --insecure\n" " (TLS) By default, every SSL connection curl makes is verified to\n" " be secure. This option allows curl to proceed and operate even\n" " for server connections otherwise considered insecure.\n" "\n" , stdout); fputs( " The server connection is verified by making sure the server's\n" " certificate contains the right name and verifies successfully\n" " using the cert store.\n" "\n" " See this online resource for further details:\n" " https://curl.haxx.se/docs/sslcerts.html\n" " See also --proxy-insecure and --cacert.\n" "\n" " --interface <name>\n" "\n" " Perform an operation using a specified interface. You can enter\n" , stdout); fputs( " interface name, IP address or host name. An example could look\n" " like:\n" "\n" " curl --interface eth0:1 https://www.example.com/\n" "\n" " If this option is used several times, the last one will be used.\n" " On Linux it can be used to specify a VRF, but the binary needs\n" " to either have CAP_NET_RAW or to be run as root. More informa-\n" " tion about Linux VRF: https://www.kernel.org/doc/Documenta-\n" , stdout); fputs( " tion/networking/vrf.txt\n" "\n" " See also --dns-interface.\n" "\n" " -4, --ipv4\n" " This option tells curl to resolve names to IPv4 addresses only,\n" " and not for example try IPv6.\n" "\n" " See also --http1.1 and --http2. This option overrides -6,\n" " --ipv6.\n" "\n" " -6, --ipv6\n" " This option tells curl to resolve names to IPv6 addresses only,\n" " and not for example try IPv4.\n" "\n" , stdout); fputs( " See also --http1.1 and --http2. This option overrides -4,\n" " --ipv4.\n" "\n" " -j, --junk-session-cookies\n" " (HTTP) When curl is told to read cookies from a given file, this\n" " option will make it discard all \"session cookies\". This will ba-\n" " sically have the same effect as if a new session is started.\n" " Typical browsers always discard session cookies when they're\n" " closed down.\n" "\n" , stdout); fputs( " See also -b, --cookie and -c, --cookie-jar.\n" "\n" " --keepalive-time <seconds>\n" " This option sets the time a connection needs to remain idle be-\n" " fore sending keepalive probes and the time between individual\n" " keepalive probes. It is currently effective on operating systems\n" " offering the TCP_KEEPIDLE and TCP_KEEPINTVL socket options\n" " (meaning Linux, recent AIX, HP-UX and more). This option has no\n" , stdout); fputs( " effect if --no-keepalive is used.\n" "\n" " If this option is used several times, the last one will be used.\n" " If unspecified, the option defaults to 60 seconds.\n" "\n" " Added in 7.18.0.\n" "\n" " --key-type <type>\n" " (TLS) Private key file type. Specify which type your --key pro-\n" " vided private key is. DER, PEM, and ENG are supported. If not\n" " specified, PEM is assumed.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " --key <key>\n" " (TLS SSH) Private key file name. Allows you to provide your pri-\n" " vate key in this separate file. For SSH, if not specified, curl\n" " tries the following candidates in order: '~/.ssh/id_rsa',\n" " '~/.ssh/id_dsa', './id_rsa', './id_dsa'.\n" "\n" " If curl is built against OpenSSL library, and the engine pkcs11\n" , stdout); fputs( " is available, then a PKCS#11 URI (RFC 7512) can be used to spec-\n" " ify a private key located in a PKCS#11 device. A string begin-\n" " ning with \"pkcs11:\" will be interpreted as a PKCS#11 URI. If a\n" " PKCS#11 URI is provided, then the --engine option will be set as\n" " \"pkcs11\" if none was provided and the --key-type option will be\n" " set as \"ENG\" if none was provided.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " --krb <level>\n" " (FTP) Enable Kerberos authentication and use. The level must be\n" " entered and should be one of 'clear', 'safe', 'confidential', or\n" " 'private'. Should you use a level that is not one of these,\n" " 'private' will instead be used.\n" "\n" " If this option is used several times, the last one will be used.\n" , stdout); fputs( " --krb requires that the underlying libcurl was built to support\n" " Kerberos.\n" "\n" " --libcurl <file>\n" " Append this option to any ordinary curl command line, and you\n" " will get a libcurl-using C source code written to the file that\n" " does the equivalent of what your command-line operation does!\n" "\n" " If this option is used several times, the last given file name\n" " will be used.\n" "\n" , stdout); fputs( " Added in 7.16.1.\n" "\n" " --limit-rate <speed>\n" " Specify the maximum transfer rate you want curl to use - for\n" " both downloads and uploads. This feature is useful if you have a\n" " limited pipe and you'd like your transfer not to use your entire\n" " bandwidth. To make it slower than it otherwise would be.\n" "\n" " The given speed is measured in bytes/second, unless a suffix is\n" , stdout); fputs( " appended. Appending 'k' or 'K' will count the number as kilo-\n" " bytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it\n" " gigabytes. Examples: 200K, 3m and 1G.\n" "\n" " If you also use the -Y, --speed-limit option, that option will\n" " take precedence and might cripple the rate-limiting slightly, to\n" " help keeping the speed-limit logic working.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " -l, --list-only\n" " (FTP POP3) (FTP) When listing an FTP directory, this switch\n" " forces a name-only view. This is especially useful if the user\n" " wants to machine-parse the contents of an FTP directory since\n" " the normal directory view doesn't use a standard look or format.\n" " When used like this, the option causes a NLST command to be sent\n" , stdout); fputs( " to the server instead of LIST.\n" "\n" " Note: Some FTP servers list only files in their response to\n" " NLST; they do not include sub-directories and symbolic links.\n" "\n" " (POP3) When retrieving a specific email from POP3, this switch\n" " forces a LIST command to be performed instead of RETR. This is\n" " particularly useful if the user wants to see if a specific mes-\n" , stdout); fputs( " sage id exists on the server and what size it is.\n" "\n" " Note: When combined with -X, --request, this option can be used\n" " to send an UIDL command instead, so the user may use the email's\n" " unique identifier rather than it's message id to make the re-\n" " quest.\n" "\n" " Added in 7.21.5.\n" "\n" " --local-port <num/range>\n" " Set a preferred single number or range (FROM-TO) of local port\n" , stdout); fputs( " numbers to use for the connection(s). Note that port numbers by\n" " nature are a scarce resource that will be busy at times so set-\n" " ting this range to something too narrow might cause unnecessary\n" " connection setup failures.\n" "\n" " Added in 7.15.2.\n" "\n" " --location-trusted\n" " (HTTP) Like -L, --location, but will allow sending the name +\n" " password to all hosts that the site may redirect to. This may or\n" , stdout); fputs( " may not introduce a security breach if the site redirects you to\n" " a site to which you'll send your authentication info (which is\n" " plaintext in the case of HTTP Basic authentication).\n" "\n" " See also -u, --user.\n" "\n" " -L, --location\n" " (HTTP) If the server reports that the requested page has moved\n" " to a different location (indicated with a Location: header and a\n" , stdout); fputs( " 3XX response code), this option will make curl redo the request\n" " on the new place. If used together with -i, --include or -I,\n" " --head, headers from all requested pages will be shown. When au-\n" " thentication is used, curl only sends its credentials to the\n" " initial host. If a redirect takes curl to a different host, it\n" " won't be able to intercept the user+password. See also --loca-\n" , stdout); fputs( " tion-trusted on how to change this. You can limit the amount of\n" " redirects to follow by using the --max-redirs option.\n" "\n" " When curl follows a redirect and if the request is a POST, it\n" " will do the following request with a GET if the HTTP response\n" " was 301, 302, or 303. If the response code was any other 3xx\n" " code, curl will re-send the following request using the same un-\n" " modified method.\n" "\n" , stdout); fputs( " You can tell curl to not change POST requests to GET after a 30x\n" " response by using the dedicated options for that: --post301,\n" " --post302 and --post303.\n" "\n" " The method set with -X, --request overrides the method curl\n" " would otherwise select to use.\n" "\n" " --login-options <options>\n" " (IMAP POP3 SMTP) Specify the login options to use during server\n" " authentication.\n" "\n" , stdout); fputs( " You can use the login options to specify protocol specific op-\n" " tions that may be used during authentication. At present only\n" " IMAP, POP3 and SMTP support login options. For more information\n" " about the login options please see RFC 2384, RFC 5092 and IETF\n" " draft draft-earhart-url-smtp-00.txt\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.34.0.\n" "\n" , stdout); fputs( " --mail-auth <address>\n" " (SMTP) Specify a single address. This will be used to specify\n" " the authentication address (identity) of a submitted message\n" " that is being relayed to another server.\n" "\n" " See also --mail-rcpt and --mail-from. Added in 7.25.0.\n" "\n" " --mail-from <address>\n" " (SMTP) Specify a single address that the given mail should get\n" " sent from.\n" "\n" , stdout); fputs( " See also --mail-rcpt and --mail-auth. Added in 7.20.0.\n" "\n" " --mail-rcpt-allowfails\n" " (SMTP) When sending data to multiple recipients, by default curl\n" " will abort SMTP conversation if at least one of the recipients\n" " causes RCPT TO command to return an error.\n" "\n" " The default behavior can be changed by passing --mail-rcpt-al-\n" " lowfails command-line option which will make curl ignore errors\n" , stdout); fputs( " and proceed with the remaining valid recipients.\n" "\n" " In case when all recipients cause RCPT TO command to fail, curl\n" " will abort SMTP conversation and return the error received from\n" " to the last RCPT TO command. Added in 7.69.0.\n" "\n" " --mail-rcpt <address>\n" " (SMTP) Specify a single address, user name or mailing list name.\n" " Repeat this option several times to send to multiple recipients.\n" , stdout); fputs( " When performing a mail transfer, the recipient should specify a\n" " valid email address to send the mail to.\n" "\n" " When performing an address verification (VRFY command), the re-\n" " cipient should be specified as the user name or user name and\n" " domain (as per Section 3.5 of RFC5321). (Added in 7.34.0)\n" "\n" " When performing a mailing list expand (EXPN command), the recip-\n" , stdout); fputs( " ient should be specified using the mailing list name, such as\n" " \"Friends\" or \"London-Office\". (Added in 7.34.0)\n" "\n" " Added in 7.20.0.\n" "\n" " -M, --manual\n" " Manual. Display the huge help text.\n" "\n" " --max-filesize <bytes>\n" " Specify the maximum size (in bytes) of a file to download. If\n" " the file requested is larger than this value, the transfer will\n" " not start and curl will return with exit code 63.\n" "\n" , stdout); fputs( " A size modifier may be used. For example, Appending 'k' or 'K'\n" " will count the number as kilobytes, 'm' or 'M' makes it\n" " megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K,\n" " 3m and 1G. (Added in 7.58.0)\n" "\n" " NOTE: The file size is not always known prior to download, and\n" " for such files this option has no effect even if the file trans-\n" , stdout); fputs( " fer ends up being larger than this given limit. This concerns\n" " both FTP and HTTP transfers.\n" "\n" " See also --limit-rate.\n" "\n" " --max-redirs <num>\n" " (HTTP) Set maximum number of redirection-followings allowed.\n" " When -L, --location is used, is used to prevent curl from fol-\n" " lowing redirections too much. By default, the limit is set to 50\n" " redirections. Set this option to -1 to make it unlimited.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " -m, --max-time <seconds>\n" " Maximum time in seconds that you allow the whole operation to\n" " take. This is useful for preventing your batch jobs from hang-\n" " ing for hours due to slow networks or links going down. Since\n" " 7.32.0, this option accepts decimal values, but the actual time-\n" , stdout); fputs( " out will decrease in accuracy as the specified timeout increases\n" " in decimal precision.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " See also --connect-timeout.\n" "\n" " --metalink\n" " This option can tell curl to parse and process a given URI as\n" " Metalink file (both version 3 and 4 (RFC 5854) are supported)\n" " and make use of the mirrors listed within for failover if there\n" , stdout); fputs( " are errors (such as the file or server not being available). It\n" " will also verify the hash of the file after the download com-\n" " pletes. The Metalink file itself is downloaded and processed in\n" " memory and not stored in the local file system.\n" "\n" " Example to use a remote Metalink file:\n" "\n" " curl --metalink http://www.example.com/example.metalink\n" "\n" , stdout); fputs( " To use a Metalink file in the local file system, use FILE proto-\n" " col (file://):\n" "\n" " curl --metalink file://example.metalink\n" "\n" " Please note that if FILE protocol is disabled, there is no way\n" " to use a local Metalink file at the time of this writing. Also\n" " note that if --metalink and -i, --include are used together,\n" " --include will be ignored. This is because including headers in\n" , stdout); fputs( " the response will break Metalink parser and if the headers are\n" " included in the file described in Metalink file, hash check will\n" " fail.\n" "\n" " --metalink requires that the underlying libcurl was built to\n" " support metalink. Added in 7.27.0.\n" "\n" " --negotiate\n" " (HTTP) Enables Negotiate (SPNEGO) authentication.\n" "\n" " This option requires a library built with GSS-API or SSPI sup-\n" , stdout); fputs( " port. Use -V, --version to see if your curl supports GSS-\n" " API/SSPI or SPNEGO.\n" "\n" " When using this option, you must also provide a fake -u, --user\n" " option to activate the authentication code properly. Sending a\n" " '-u :' is enough as the user name and password from the -u,\n" " --user option aren't actually used.\n" "\n" " If this option is used several times, only the first one is\n" , stdout); fputs( " used.\n" "\n" " See also --basic and --ntlm and --anyauth and --proxy-negotiate.\n" "\n" " --netrc-file <filename>\n" " This option is similar to -n, --netrc, except that you provide\n" " the path (absolute or relative) to the netrc file that curl\n" " should use. You can only specify one netrc file per invocation.\n" " If several --netrc-file options are provided, the last one will\n" " be used.\n" "\n" , stdout); fputs( " It will abide by --netrc-optional if specified.\n" "\n" " This option overrides -n, --netrc. Added in 7.21.5.\n" "\n" " --netrc-optional\n" " Very similar to -n, --netrc, but this option makes the .netrc\n" " usage optional and not mandatory as the -n, --netrc option does.\n" "\n" " See also --netrc-file. This option overrides -n, --netrc.\n" "\n" " -n, --netrc\n" " Makes curl scan the .netrc (_netrc on Windows) file in the\n" , stdout); fputs( " user's home directory for login name and password. This is typi-\n" " cally used for FTP on Unix. If used with HTTP, curl will enable\n" " user authentication. See netrc(5) ftp(1) for details on the file\n" " format. Curl will not complain if that file doesn't have the\n" " right permissions (it should not be either world- or group-read-\n" " able). The environment variable \"HOME\" is used to find the home\n" " directory.\n" "\n" , stdout); fputs( " A quick and very simple example of how to setup a .netrc to al-\n" " low curl to FTP to the machine host.domain.com with user name\n" " 'myself' and password 'secret' should look similar to:\n" "\n" " machine host.domain.com login myself password secret\n" "\n" " -:, --next\n" " Tells curl to use a separate operation for the following URL and\n" " associated options. This allows you to send several URL re-\n" , stdout); fputs( " quests, each with their own specific options, for example, such\n" " as different user names or custom requests for each.\n" "\n" " -:, --next will reset all local options and only global ones\n" " will have their values survive over to the operation following\n" " the -:, --next instruction. Global options include -v, --ver-\n" " bose, --trace, --trace-ascii and --fail-early.\n" "\n" , stdout); fputs( " For example, you can do both a GET and a POST in a single com-\n" " mand line:\n" "\n" " curl www1.example.com --next -d postthis www2.example.com\n" "\n" " Added in 7.36.0.\n" "\n" " --no-alpn\n" " (HTTPS) Disable the ALPN TLS extension. ALPN is enabled by de-\n" " fault if libcurl was built with an SSL library that supports\n" " ALPN. ALPN is used by a libcurl that supports HTTP/2 to negoti-\n" , stdout); fputs( " ate HTTP/2 support with the server during https sessions.\n" "\n" " See also --no-npn and --http2. --no-alpn requires that the un-\n" " derlying libcurl was built to support TLS. Added in 7.36.0.\n" "\n" " -N, --no-buffer\n" " Disables the buffering of the output stream. In normal work sit-\n" " uations, curl will use a standard buffered output stream that\n" " will have the effect that it will output the data in chunks, not\n" , stdout); fputs( " necessarily exactly when the data arrives. Using this option\n" " will disable that buffering.\n" "\n" " Note that this is the negated option name documented. You can\n" " thus use --buffer to enforce the buffering.\n" "\n" " --no-keepalive\n" " Disables the use of keepalive messages on the TCP connection.\n" " curl otherwise enables them by default.\n" "\n" " Note that this is the negated option name documented. You can\n" , stdout); fputs( " thus use --keepalive to enforce keepalive.\n" "\n" " --no-npn\n" " (HTTPS) Disable the NPN TLS extension. NPN is enabled by default\n" " if libcurl was built with an SSL library that supports NPN. NPN\n" " is used by a libcurl that supports HTTP/2 to negotiate HTTP/2\n" " support with the server during https sessions.\n" "\n" " See also --no-alpn and --http2. --no-npn requires that the un-\n" , stdout); fputs( " derlying libcurl was built to support TLS. Added in 7.36.0.\n" "\n" " --no-progress-meter\n" " Option to switch off the progress meter output without muting or\n" " otherwise affecting warning and informational messages like -s,\n" " --silent does.\n" "\n" " Note that this is the negated option name documented. You can\n" " thus use --progress-meter to enable the progress meter again.\n" "\n" , stdout); fputs( " See also -v, --verbose and -s, --silent. Added in 7.67.0.\n" "\n" " --no-sessionid\n" " (TLS) Disable curl's use of SSL session-ID caching. By default\n" " all transfers are done using the cache. Note that while nothing\n" " should ever get hurt by attempting to reuse SSL session-IDs,\n" " there seem to be broken SSL implementations in the wild that may\n" " require you to disable this in order for you to succeed.\n" "\n" , stdout); fputs( " Note that this is the negated option name documented. You can\n" " thus use --sessionid to enforce session-ID caching.\n" "\n" " Added in 7.16.0.\n" "\n" " --noproxy <no-proxy-list>\n" " Comma-separated list of hosts which do not use a proxy, if one\n" " is specified. The only wildcard is a single * character, which\n" " matches all hosts, and effectively disables the proxy. Each name\n" , stdout); fputs( " in this list is matched as either a domain which contains the\n" " hostname, or the hostname itself. For example, local.com would\n" " match local.com, local.com:80, and www.local.com, but not\n" " www.notlocal.com.\n" "\n" " Since 7.53.0, This option overrides the environment variables\n" " that disable the proxy. If there's an environment variable dis-\n" , stdout); fputs( " abling a proxy, you can set noproxy list to \"\" to override it.\n" "\n" " Added in 7.19.4.\n" "\n" " --ntlm-wb\n" " (HTTP) Enables NTLM much in the style --ntlm does, but hand over\n" " the authentication to the separate binary ntlmauth application\n" " that is executed when needed.\n" "\n" " See also --ntlm and --proxy-ntlm.\n" "\n" " --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n" , stdout); fputs( " method was designed by Microsoft and is used by IIS web servers.\n" " It is a proprietary protocol, reverse-engineered by clever peo-\n" " ple and implemented in curl based on their efforts. This kind of\n" " behavior should not be endorsed, you should encourage everyone\n" " who uses NTLM to switch to a public and documented authentica-\n" " tion method instead, such as Digest.\n" "\n" , stdout); fputs( " If you want to enable NTLM for your proxy authentication, then\n" " use --proxy-ntlm.\n" "\n" " If this option is used several times, only the first one is\n" " used.\n" "\n" " See also --proxy-ntlm. --ntlm requires that the underlying\n" " libcurl was built to support TLS. This option overrides --basic\n" " and --negotiate and --digest and --anyauth.\n" "\n" " --oauth2-bearer <token>\n" , stdout); fputs( " (IMAP POP3 SMTP HTTP) Specify the Bearer Token for OAUTH 2.0\n" " server authentication. The Bearer Token is used in conjunction\n" " with the user name which can be specified as part of the --url\n" " or -u, --user options.\n" "\n" " The Bearer Token and user name are formatted according to RFC\n" " 6750.\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " -o, --output <file>\n" , stdout); fputs( " Write output to <file> instead of stdout. If you are using {} or\n" " [] to fetch multiple documents, you can use '#' followed by a\n" " number in the <file> specifier. That variable will be replaced\n" " with the current string for the URL being fetched. Like in:\n" "\n" " curl http://{one,two}.example.com -o \"file_#1.txt\"\n" "\n" " or use several variables like:\n" "\n" " curl http://{site,host}.host[1-5].com -o \"#1_#2\"\n" "\n" , stdout); fputs( " You may use this option as many times as the number of URLs you\n" " have. For example, if you specify two URLs on the same command\n" " line, you can use it like this:\n" "\n" " curl -o aa example.com -o bb example.net\n" "\n" " and the order of the -o options and the URLs doesn't matter,\n" " just that the first -o is for the first URL and so on, so the\n" " above command line can also be written as\n" "\n" , stdout); fputs( " curl example.com example.net -o aa -o bb\n" "\n" " See also the --create-dirs option to create the local directo-\n" " ries dynamically. Specifying the output as '-' (a single dash)\n" " will force the output to be done to stdout.\n" "\n" " See also -O, --remote-name and --remote-name-all and -J, --re-\n" " mote-header-name.\n" "\n" " --parallel-immediate\n" " When doing parallel transfers, this option will instruct curl\n" , stdout); fputs( " that it should rather prefer opening up more connections in par-\n" " allel at once rather than waiting to see if new transfers can be\n" " added as multiplexed streams on another connection.\n" "\n" " See also -Z, --parallel and --parallel-max. Added in 7.68.0.\n" "\n" " --parallel-max\n" " When asked to do parallel transfers, using -Z, --parallel, this\n" " option controls the maximum amount of transfers to do simultane-\n" , stdout); fputs( " ously.\n" "\n" " The default is 50.\n" "\n" " See also -Z, --parallel. Added in 7.66.0.\n" "\n" " -Z, --parallel\n" " Makes curl perform its transfers in parallel as compared to the\n" " regular serial manner.\n" "\n" " Added in 7.66.0.\n" "\n" " --pass <phrase>\n" " (SSH TLS) Passphrase for the private key\n" "\n" " If this option is used several times, the last one will be used.\n" "\n" " --path-as-is\n" , stdout); fputs( " Tell curl to not handle sequences of /../ or /./ in the given\n" " URL path. Normally curl will squash or merge them according to\n" " standards but with this option set you tell it not to do that.\n" "\n" " Added in 7.42.0.\n" "\n" " --pinnedpubkey <hashes>\n" " (TLS) Tells curl to use the specified public key file (or\n" " hashes) to verify the peer. This can be a path to a file which\n" , stdout); fputs( " contains a single public key in PEM or DER format, or any number\n" " of base64 encoded sha256 hashes preceded by 'sha256//' and sepa-\n" " rated by ';'\n" "\n" " When negotiating a TLS or SSL connection, the server sends a\n" " certificate indicating its identity. A public key is extracted\n" " from this certificate and if it does not exactly match the pub-\n" , stdout); fputs( " lic key provided to this option, curl will abort the connection\n" " before sending or receiving any data.\n" "\n" " PEM/DER support:\n" " 7.39.0: OpenSSL, GnuTLS and GSKit\n" " 7.43.0: NSS and wolfSSL\n" " 7.47.0: mbedtls sha256 support:\n" " 7.44.0: OpenSSL, GnuTLS, NSS and wolfSSL\n" " 7.47.0: mbedtls Other SSL backends not supported.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " --post301\n" " (HTTP) Tells curl to respect RFC 7231/6.4.2 and not convert POST\n" " requests into GET requests when following a 301 redirection. The\n" " non-RFC behaviour is ubiquitous in web browsers, so curl does\n" " the conversion by default to maintain consistency. However, a\n" " server may require a POST to remain a POST after such a redi-\n" , stdout); fputs( " rection. This option is meaningful only when using -L, --loca-\n" " tion.\n" "\n" " See also --post302 and --post303 and -L, --location. Added in\n" " 7.17.1.\n" "\n" " --post302\n" " (HTTP) Tells curl to respect RFC 7231/6.4.3 and not convert POST\n" " requests into GET requests when following a 302 redirection. The\n" " non-RFC behaviour is ubiquitous in web browsers, so curl does\n" , stdout); fputs( " the conversion by default to maintain consistency. However, a\n" " server may require a POST to remain a POST after such a redi-\n" " rection. This option is meaningful only when using -L, --loca-\n" " tion.\n" "\n" " See also --post301 and --post303 and -L, --location. Added in\n" " 7.19.1.\n" "\n" " --post303\n" " (HTTP) Tells curl to violate RFC 7231/6.4.4 and not convert POST\n" , stdout); fputs( " requests into GET requests when following 303 redirections. A\n" " server may require a POST to remain a POST after a 303 redirect-\n" " ion. This option is meaningful only when using -L, --location.\n" "\n" " See also --post302 and --post301 and -L, --location. Added in\n" " 7.26.0.\n" "\n" " --preproxy [protocol://]host[:port]\n" " Use the specified SOCKS proxy before connecting to an HTTP or\n" , stdout); fputs( " HTTPS -x, --proxy. In such a case curl first connects to the\n" " SOCKS proxy and then connects (through SOCKS) to the HTTP or\n" " HTTPS proxy. Hence pre proxy.\n" "\n" " The pre proxy string should be specified with a protocol:// pre-\n" " fix to specify alternative proxy protocols. Use socks4://,\n" " socks4a://, socks5:// or socks5h:// to request the specific\n" , stdout); fputs( " SOCKS version to be used. No protocol specified will make curl\n" " default to SOCKS4.\n" "\n" " If the port number is not specified in the proxy string, it is\n" " assumed to be 1080.\n" "\n" " User and password that might be provided in the proxy string are\n" " URL decoded by curl. This allows you to pass in special charac-\n" " ters such as @ by using %40 or pass in a colon with %3a.\n" "\n" , stdout); fputs( " If this option is used several times, the last one will be used.\n" "\n" " Added in 7.52.0.\n" "\n" " -#, --progress-bar\n" " Make curl display transfer progress as a simple progress bar in-\n" " stead of the standard, more informational, meter.\n" "\n" " This progress bar draws a single line of '#' characters across\n" " the screen and shows a percentage if the transfer size is known.\n" , stdout); fputs( " For transfers without a known size, there will be space ship\n" " (-=o=-) that moves back and forth but only while data is being\n" " transferred, with a set of flying hash sign symbols on top.\n" "\n" " --proto-default <protocol>\n" " Tells curl to use protocol for any URL missing a scheme name.\n" "\n" " Example:\n" "\n" " curl --proto-default https ftp.mozilla.org\n" "\n" , stdout); fputs( " An unknown or unsupported protocol causes error CURLE_UNSUP-\n" " PORTED_PROTOCOL (1).\n" "\n" " This option does not change the default proxy protocol (http).\n" "\n" " Without this option curl would make a guess based on the host,\n" " see --url for details.\n" "\n" " Added in 7.45.0.\n" "\n" " --proto-redir <protocols>\n" " Tells curl to limit what protocols it may use on redirect. Pro-\n" , stdout); fputs( " tocols denied by --proto are not overridden by this option. See\n" " --proto for how protocols are represented.\n" "\n" " Example, allow only HTTP and HTTPS on redirect:\n" "\n" " curl --proto-redir -all,http,https http://example.com\n" "\n" " By default curl will allow HTTP, HTTPS, FTP and FTPS on redirect\n" " (7.65.2). Older versions of curl allowed all protocols on redi-\n" , stdout); fputs( " rect except several disabled for security reasons: Since 7.19.4\n" " FILE and SCP are disabled, and since 7.40.0 SMB and SMBS are\n" " also disabled. Specifying all or +all enables all protocols on\n" " redirect, including those disabled for security.\n" "\n" " Added in 7.20.2.\n" "\n" " --proto <protocols>\n" " Tells curl to limit what protocols it may use in the transfer.\n" , stdout); fputs( " Protocols are evaluated left to right, are comma separated, and\n" " are each a protocol name or 'all', optionally prefixed by zero\n" " or more modifiers. Available modifiers are:\n" "\n" " + Permit this protocol in addition to protocols already permit-\n" " ted (this is the default if no modifier is used).\n" "\n" " - Deny this protocol, removing it from the list of protocols\n" " already permitted.\n" "\n" , stdout); fputs( " = Permit only this protocol (ignoring the list already permit-\n" " ted), though subject to later modification by subsequent en-\n" " tries in the comma separated list.\n" "\n" " For example:\n" "\n" " --proto -ftps uses the default protocols, but disables ftps\n" "\n" " --proto -all,https,+http\n" " only enables http and https\n" "\n" " --proto =http,https\n" , stdout); fputs( " also only enables http and https\n" "\n" " Unknown protocols produce a warning. This allows scripts to safely rely\n" " on being able to disable potentially dangerous protocols, without rely-\n" " ing upon support for that protocol being built into curl to avoid an\n" " error.\n" "\n" " This option can be used multiple times, in which case the effect is the\n" " same as concatenating the protocols into one instance of the option.\n" "\n" , stdout); fputs( " See also --proto-redir and --proto-default. Added in 7.20.2.\n" "\n" " --proxy-anyauth\n" " Tells curl to pick a suitable authentication method when commu-\n" " nicating with the given HTTP proxy. This might cause an extra\n" " request/response round-trip.\n" "\n" " See also -x, --proxy and --proxy-basic and --proxy-digest. Added\n" " in 7.13.2.\n" "\n" " --proxy-basic\n" " Tells curl to use HTTP Basic authentication when communicating\n" , stdout); fputs( " with the given proxy. Use --basic for enabling HTTP Basic with a\n" " remote host. Basic is the default authentication method curl\n" " uses with proxies.\n" "\n" " See also -x, --proxy and --proxy-anyauth and --proxy-digest.\n" "\n" " --proxy-cacert <file>\n" " Same as --cacert but used in HTTPS proxy context.\n" "\n" " See also --proxy-capath and --cacert and --capath and -x,\n" " --proxy. Added in 7.52.0.\n" "\n" , stdout); fputs( " --proxy-capath <dir>\n" " Same as --capath but used in HTTPS proxy context.\n" "\n" " See also --proxy-cacert and -x, --proxy and --capath. Added in\n" " 7.52.0.\n" "\n" " --proxy-cert-type <type>\n" " Same as --cert-type but used in HTTPS proxy context.\n" "\n" " Added in 7.52.0.\n" "\n" " --proxy-cert <cert[:passwd]>\n" " Same as -E, --cert but used in HTTPS proxy context.\n" "\n" " Added in 7.52.0.\n" "\n" " --proxy-ciphers <list>\n" , stdout); fputs( " Same as --ciphers but used in HTTPS proxy context.\n" "\n" " Added in 7.52.0.\n" "\n" " --proxy-crlfile <file>\n" " Same as --crlfile but used in HTTPS proxy context.\n" "\n" " Added in 7.52.0.\n" "\n" " --proxy-digest\n" " Tells curl to use HTTP Digest authentication when communicating\n" " with the given proxy. Use --digest for enabling HTTP Digest with\n" " a remote host.\n" "\n" , stdout); fputs( " See also -x, --proxy and --proxy-anyauth and --proxy-basic.\n" "\n" " --proxy-header <header/@file>\n" " (HTTP) Extra header to include in the request when sending HTTP\n" " to a proxy. You may specify any number of extra headers. This is\n" " the equivalent option to -H, --header but is for proxy communi-\n" " cation only like in CONNECT requests when you want a separate\n" , stdout); fputs( " header sent to the proxy to what is sent to the actual remote\n" " host.\n" "\n" " curl will make sure that each header you add/replace is sent\n" " with the proper end-of-line marker, you should thus not add that\n" " as a part of the header content: do not add newlines or carriage\n" " returns, they will only mess things up for you.\n" "\n" " Headers specified with this option will not be included in re-\n" , stdout); fputs( " quests that curl knows will not be sent to a proxy.\n" "\n" " Starting in 7.55.0, this option can take an argument in @file-\n" " name style, which then adds a header for each line in the input\n" " file. Using @- will make curl read the header file from stdin.\n" "\n" " This option can be used multiple times to add/replace/remove\n" " multiple headers.\n" "\n" " Added in 7.37.0.\n" " --proxy-insecure\n" , stdout); fputs( " Same as -k, --insecure but used in HTTPS proxy context.\n" "\n" " Added in 7.52.0.\n" "\n" " --proxy-key-type <type>\n" " Same as --key-type but used in HTTPS proxy context.\n" "\n" |
︙ | ︙ | |||
4467 4468 4469 4470 4471 4472 4473 | */ #ifdef USE_MANUAL #include "tool_hugehelp.h" #include <zlib.h> #include "memdebug.h" /* keep this as LAST include */ static const unsigned char hugehelpgz[] = { /* This mumbo-jumbo is the huge help text compressed with gzip. | | | | | < | > | | | | | | | | | | | | | | | | | | | | | | | | | > | | < > | | | | | | > | < | | | | | | | | | | | | | | | | | | | < < < | | > | < | > | | > > | < < | | | > > | | < < | | | | | | | | | | | < | | > | > | | > | | > | < < | | | < | > | | | | | | | | | | | | | | | | | | > | | | < | | > | | | > | | < | | | | | | | | | | | | | < | | > > | | | < < < | | | | | > > | > | | < < < | | < | > | | | | | | | < | | > | > > > | | < > | | | < | > | | | | | < | | > | | | | | | | | > | < | | | | | | | < < | > > | > | < | | < < | | | | | | < | > | | | | | | | | > > | < | < | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > | | | | > | < | | < | > | < | | > | | | | < | > | | | | | | | | | | | | < | | > | | < > | < | | > | < | | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | | | < | | | | | > | < | | | | > | | | | | | | | | | | | > > | > | | < | | | | | | | | > | > | < | | < | | | | | | | | | | | | | | < < | | | | | | | | | | | > | < | | < | | > | | | | | | < | | | > | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | < | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | < | | < | | | > | < | | | | | | | | | | | | | | | | | | | | | > > > > | | < | < | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | < < | | | | | | | | | | | | < | > | | | | | | | | | | | > | > > | | < < > | | | | | | | | | | | | | | < | < | | > > | | | < | | | < < > | | | > > < | > | | | | < | | | > | | | | | | > | < | | | | < | > | | | | | | | > | | | | | | | | | | | | | | | | | | | | < < < | < | > | < > | > | < < | > | | > | < < | > | > | | | < | | | | | | | | > | < | | | | | | | | > > > | | < | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | > | | | | | | | | | | | > | < | | | | | | < | > | | | | | | | < | | > > | | < | < | | | | > | | > > | | < < | < | | | | | | | | > | < > | | | | | | | | | | | | | | | | | | | < | > | < | > | | | | | | | > | < | < | | | | | | | | | > | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | < | | | | | | | | | | | | | | | | > | < < | | | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | > | | | | | | | | > | > | | | < > | < < | | | | | | | < | | | | | | | | | | | | | > | > | < < | | | | | | | | | | | | | | | | | | | > | | > | < < | | | | | | | | | | | | | | | > > | | | < | < | | | | | | | | | | | | | | | | | | | | | < | | | > | | | | | | | | < < | | | | | | | | | | | | | | | | | | > | > | < < | | | | | | | > > | | | | < < | > | > > | < | | | | | | | | | < < | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | > | < | < | | > | | | | | | | | < | | | | | | | | | | > | | < | | | | | | | > | | | | < | | | | | | < | | | | | | | | | | | | | > | < | | | | | | | | | | > | | < | | | | | | | | | | > | | < | | > | | | < | | | | | > | | | < | | | | | > > | | | | | | | | | | | | | | | | | | | | | | | | < | | > | | | | > | | | | | | < | < < | | | > > > | | | | | | | | | < | > | | | | | | | < | | | | | | | | | > | | < | | | | | | | | | | | | | > | | < | | | < | | > | < | | | | | < | | > | | | | | | | | | > | < | < | | | > | | | | | | | | | | | | < | | > | | | | | | | | | | | | | | < | | | > | | > | | | | < | | > | | | | | | | | | | | | | | | | | | | | | | > > | | | | | | | | | | | | | | | | | | | | | | | | | | < | > | | > | < | | | | | | | | < | | < < | < | > | | | | > | < < | > > | < | > > > | | | | > | < | | > | | | > | < | | | | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | > | < | | | | | | | > | | | | | | | < | > | | | | | | | | | | | | | | | > | < | > | | < | | | | | | | | | | | | > > | | | < < | | | | | | | | | | | > > | | < | < < | | | | | | | > | < < | < < < < | | | < | | > > | > > | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < | > | | > > | | | | | | | < < < | | < < < | | > | | < > | | | < > | < < < > > > | | > > > > > | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | | | | | | > | < | | | | | < | | < < | < < | | | < < > > | < < | | | > | < | | | | | | | | | | | | | | | | | | | | | | | | | > | > > | > > > > > | | > | < < > | | | < < | | | | | | | | | | < | > | | | | | | | | | | | | | | | | | < | > | | | | | > > | > > | | | | < | | < < < | | | | | > | | | | | | | | | < | > | | | | | | | | | | | | > | < | | | | | | > | | > | | | < | | | | | > | < | | | | | | | | | > | < | | | < | < < | > | < > | | | < | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | > | | > | | > | < | | < | | < | > | | | | | | | | > | | | | | | | | < | > | | | | > | | < | | | | | < | > | | | | > | < > | | | | | | | | | | | | | > | < | | | < | > | | | | | | | | | | | | | | | | | | > | < | | | | | | | | | | | | | | > | > | | < | > | < | | | | | | | | | | | | | | | | | | | | | | | | | | < | > | < | > | | | | | > | > | < | > | < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | > | > | > > > | > | | | < < < | < < < | | | | | | | | | | | | | | | | | | | | | | | | | | < < < | | > | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > | < | | | | | | | | | | | | | | | | | | | | | < < | | | > > | | | > | > | | | | | | | | > | | < | | | | | < | > | | | | | | | | | | | | | < | | | | > | | < > > > | | | < < < | | | | | | | | > | < | | | | | | | | > | | | | | > > | | | < < > | | > | | < < | | | | | | | < | > | | | | | > > | > | > | | < < | | | < | | > | | | | | | > | < | | | | | | | | | | | | | | | | | < | > | | | | | | | | | | | | | | | | | | | | | | | < < < | | | | | > > | | | < | < | | | | | | | | | > | | < | | | | | | > > > | | | | | | | | | | | | | | | | | < < | | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | < | | | | | | | | | | | | | | | > | < | | | | | | | | | | < | | | > | | | < | | > | | < | < | > | > | | < | | | | | | > | | < | | < | | | | | | | | | | | | | < | > | | | | | | | | | | | | | | | | | | < | | | | | | | | | | | | | | | | | | | | | | > | | < | | | | | | > > | | | | | | | | | | | | > | < | | | | | | | | < | > | | | | | | | < | | | < | > | | | | | | | | | > | < | | | > | < > | < | | | | | | | | < | | | | | | | | | < < < | | > | > | > | | | | | | | | > | | | > | < < | | | | | | | | | | | | | | > > | < | < | | | < | | > | | | | | | < | < | | < | > | | | | | | | | | | | | | | | | | | < | < | | > > | | | | | < | | | > > > > | | | > | | | < < < < | < | | | | | | | | | | < | < | | > > | < | > > > > > > | | | > > > | | > | < > | < > | < < < < < > | < < | > | < < | < < | < < | | > | | | > | > > > | < > > > | | | < < > > | > | | < | | | > | < < < | > > > | < < < < | | < | < | | | | | | | | | | | | | | | | | | | | | | > | < | | | | | | | | | | | < | | > | > > > > > | | < < < < < | | | | | | | < | > | | | | | | > > | | | | < | > | | | | | | < | | > | | | | | | | > | < | | | | | | > > | > | | | > | < > | | < | | | | | | | | | | | | | | | | | | < < | < < < | > | | > > > | > | | | | < > | | < < < | < | | | | > | < | | | | | | | | | | | < | | < | > | | | | > > > > | > | | < > | < > > | | | | < < < | < > | < | | < > > > | | | > | | < | | | | | | | | | > | < | | | | | | > | < | | | | | | < < | | | | | | | | | | | | | | | | | < | > | | | | | | | | | | > | < | | < | | | | | | | | | | | | > | > > > > | | < > | | | < < < < < | | | | | | > | | | | | | | | | | | | | | | | > > | | | < < | | | | | | | | | | < | > | < | | | | < | > | > | | < | | | | | | | | | > > > | > | | > | < < < | | | | > > > | | | < < | < | | | | | | | | | | < | | > | | | | | | | | | | < | | | | | | | | | | | | | | | | > | < | | | | | | | | | | | | < | > > > > | > | | | | < < < < < | | | | | | | | | > > > > > | | > > | < < | | < < < < < | | | | | | | > | | < | | | | < | > | | | | | | | | | | < < < < | | | | | | | | > > | > > | | > > | > > > | < < > > | < > | | < < < < | | < > > > | < < | < | < < | | | | > | > > > > > > | | > > > > > | | > | < > | | < < < | < < < | < < < | > > | | > | > | | < < | | > | | | < | | | | | | | | | | | | | | > | < | | | < < < < < | | | | > > > > > > | < < | | | < | > | > | > | | | > > | < | | < | > | < < < | | | | | | | | | | | | | | | | | | | | | | > > | > | < | | | | < < < | < < < > > > > > > | | | < | < > | < | > | < < < | | | < < < | | > > | | < | > > | > > > | | | | | | | | | | | | | | | < | > | | | | | | | | | | | | | | | < < < < | | | | < | > | | | | | | | | | | | | | | | | | | | < < | | | > > | | | | < | | > | | | | | | | | | | | > | < | | | | | | | | | | | | | | | | | > | < | | | | < | | < > | > > | | | < | | | | | | | > > > > | < > | | | | | | | | | | | | | | | | | | | | | | | | | < | < < | < | | < | > > | | | | | > | | | | | < | | | | | | | | | > | | < | | | | | > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < | | | | | > > > | | | | | < < < | > > | | | > | | | | | < | | < < | | | | | | | | | | | | | | | | | > > > | | < > | | < < < | | > > | > | > | | < | < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > | | | | | | | | | | | | | | | | | | < | | > | | | | | | | | | | < | | 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 | */ #ifdef USE_MANUAL #include "tool_hugehelp.h" #include <zlib.h> #include "memdebug.h" /* keep this as LAST include */ static const unsigned char hugehelpgz[] = { /* This mumbo-jumbo is the huge help text compressed with gzip. Thanks to this operation, the size of this data shrank from 173066 to 48513 bytes. You can disable the use of compressed help texts by NOT passing -c to the mkhelp.pl tool. */ 0x1f, 0x8b, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd, 0x6b, 0x77, 0xdc, 0xc6, 0xb1, 0x2e, 0xfc, 0xdd, 0xbf, 0x02, 0x9b, 0x59, 0x39, 0x24, 0x77, 0x66, 0x86, 0x17, 0xdd, 0x2c, 0x46, 0xce, 0x36, 0x2d, 0x51, 0x36, 0xb7, 0x29, 0x91, 0x47, 0x43, 0xd9, 0xce, 0x89, 0xbd, 0xb4, 0x30, 0x33, 0x20, 0x89, 0x68, 0x06, 0x98, 0x00, 0x18, 0x5e, 0x92, 0x9d, 0xf3, 0xdb, 0xdf, 0xae, 0xa7, 0xaa, 0xba, 0x1b, 0xe8, 0xc6, 0x90, 0x76, 0x2c, 0x9f, 0xdb, 0x9b, 0xbd, 0xb6, 0x25, 0x91, 0x40, 0xa3, 0x2f, 0xd5, 0x75, 0xaf, 0xa7, 0x92, 0xe4, 0xbe, 0xff, 0x7d, 0xc0, 0xff, 0x7f, 0x30, 0xff, 0x33, 0x7f, 0x7e, 0x96, 0x24, 0x67, 0x55, 0xf9, 0xd7, 0x6c, 0xda, 0xc4, 0x9f, 0xfd, 0xf0, 0xe1, 0xbf, 0x12, 0xfe, 0x3f, 0xf3, 0xce, 0x8f, 0xe6, 0xcf, 0xcf, 0xd6, 0x8e, 0xbd, 0x93, 0xb8, 0x17, 0xfe, 0xeb, 0xc3, 0x76, 0x72, 0xdf, 0x0b, 0xff, 0x95, 0x6c, 0xe1, 0x85, 0x0f, 0xf2, 0x85, 0x17, 0xf4, 0xf7, 0x0f, 0x1f, 0xd6, 0x7f, 0xe4, 0x47, 0x9a, 0x15, 0xfd, 0x67, 0x87, 0xde, 0xfb, 0xf1, 0x03, 0xfd, 0xd5, 0xfc, 0xe4, 0xb3, 0xcf, 0xde, 0x1e, 0xbe, 0x39, 0xd2, 0x57, 0xa7, 0xab, 0x6a, 0x9e, 0x0c, 0x93, 0xa6, 0x4a, 0x8b, 0xfa, 0x22, 0xab, 0x92, 0x34, 0x79, 0xff, 0xee, 0xe4, 0xb3, 0xcf, 0xc6, 0x7f, 0x7e, 0x7b, 0x7a, 0x36, 0x3e, 0x1e, 0xb7, 0x1e, 0xfb, 0x4b, 0xb9, 0x6c, 0xf2, 0xb2, 0xa8, 0xcd, 0xf4, 0xcd, 0x43, 0xf5, 0x4f, 0x9f, 0x7d, 0xf6, 0xea, 0x68, 0xfc, 0xf2, 0xdd, 0xf1, 0xd9, 0xf9, 0xf1, 0xe9, 0xdb, 0xd6, 0x93, 0x49, 0x5e, 0x27, 0x66, 0xa8, 0xa6, 0x2c, 0xe7, 0xe6, 0x3f, 0x6e, 0xf4, 0x59, 0xda, 0xa4, 0xc9, 0x45, 0x55, 0x2e, 0x92, 0xb2, 0xa2, 0x5f, 0xa4, 0x49, 0x9d, 0x55, 0xd7, 0x59, 0x35, 0x48, 0x56, 0x75, 0x5e, 0x5c, 0x26, 0x65, 0x91, 0x25, 0xe5, 0x45, 0xd2, 0x5c, 0x65, 0x3a, 0x5c, 0xbd, 0x5a, 0x2e, 0xcb, 0xaa, 0xc9, 0x66, 0xc9, 0xb2, 0x2a, 0x9b, 0x72, 0x5a, 0xce, 0xeb, 0x64, 0xeb, 0xd5, 0xf1, 0xcb, 0xf3, 0x41, 0xf2, 0xfa, 0xf8, 0xe4, 0xc8, 0xfc, 0xf7, 0xfc, 0x0c, 0xff, 0x19, 0x0f, 0x92, 0xaf, 0x4f, 0xcf, 0xbe, 0x39, 0x7a, 0x37, 0x48, 0xbe, 0x39, 0xa7, 0x9f, 0xd1, 0x7f, 0xcd, 0x0f, 0x93, 0xe3, 0x37, 0x87, 0x67, 0x03, 0x1d, 0x8e, 0xfe, 0x41, 0x3f, 0x3c, 0x79, 0x65, 0x7e, 0xc8, 0x7f, 0xd0, 0x3f, 0xcf, 0x4e, 0xcf, 0x1e, 0xc9, 0x1f, 0xf4, 0xcf, 0x77, 0xe7, 0x6f, 0xcc, 0x6f, 0xdf, 0x9d, 0x8f, 0xcd, 0x7f, 0xc7, 0x2f, 0xe9, 0x3f, 0xf8, 0xca, 0xf8, 0xcd, 0x57, 0xf8, 0xcf, 0xd8, 0x0e, 0x37, 0x7e, 0xc3, 0x3f, 0xc7, 0x97, 0xce, 0x8f, 0x4e, 0xde, 0x1e, 0x9d, 0x27, 0x69, 0x31, 0x4b, 0xce, 0xcd, 0xf3, 0xdb, 0xa3, 0xe4, 0xfc, 0x2a, 0x4b, 0xa6, 0xe5, 0x62, 0x41, 0x3f, 0x32, 0x3b, 0x32, 0xcb, 0xea, 0xfc, 0xb2, 0x30, 0x4b, 0x31, 0x2b, 0xbf, 0x29, 0xab, 0x8f, 0x49, 0x72, 0x93, 0x37, 0x57, 0xe5, 0xaa, 0xd1, 0xe1, 0x56, 0x66, 0x37, 0x92, 0xbc, 0x68, 0xb2, 0x2a, 0x9d, 0xd2, 0x4e, 0x8f, 0x3e, 0x6b, 0xed, 0x6a, 0x79, 0x61, 0xf6, 0xb0, 0x36, 0x9b, 0x36, 0x59, 0xd5, 0xf3, 0x32, 0x9d, 0xd1, 0x56, 0x99, 0x57, 0x2e, 0x56, 0x66, 0x93, 0xab, 0x7c, 0xfa, 0xb1, 0x4e, 0xe6, 0xf9, 0xc7, 0x8c, 0x36, 0xea, 0xf6, 0x4e, 0x37, 0x6e, 0xc0, 0x83, 0xa6, 0x2b, 0xb3, 0xa7, 0xc5, 0x50, 0x87, 0x6b, 0xf2, 0x69, 0x4a, 0x1f, 0xc0, 0xce, 0x25, 0xab, 0x25, 0x8d, 0xc6, 0x3b, 0x96, 0x2c, 0xcb, 0xda, 0xbc, 0x34, 0x1e, 0x9f, 0x98, 0x99, 0x17, 0x45, 0x86, 0x79, 0xd4, 0x03, 0xf3, 0x8f, 0xf2, 0x63, 0x9e, 0x99, 0xbf, 0x5c, 0xe4, 0xf3, 0x2c, 0xe1, 0x13, 0xb5, 0xc3, 0xd1, 0xd1, 0x26, 0x55, 0x56, 0xaf, 0x16, 0x99, 0xd9, 0xbd, 0x37, 0x59, 0x93, 0xce, 0xf3, 0xe2, 0xa3, 0xf9, 0x2b, 0x2d, 0x7c, 0x51, 0x56, 0xd9, 0x28, 0x39, 0xac, 0x93, 0xbb, 0x72, 0x65, 0x16, 0x3c, 0x9f, 0x9b, 0x33, 0xcf, 0x92, 0x49, 0x36, 0x2f, 0x6f, 0x06, 0x74, 0xd2, 0x49, 0xb1, 0x5a, 0x4c, 0xcc, 0x00, 0xe5, 0x85, 0x1b, 0x2e, 0x6d, 0x56, 0x66, 0x38, 0x7e, 0x7a, 0x91, 0x9a, 0x35, 0x99, 0x77, 0xab, 0xe4, 0x2a, 0x33, 0x6b, 0xae, 0x97, 0x79, 0xf1, 0x6f, 0xed, 0x7d, 0x31, 0x5b, 0xbb, 0x2c, 0x6f, 0xb2, 0xca, 0xec, 0xec, 0xe4, 0x2e, 0x31, 0x9b, 0x30, 0x61, 0x22, 0xbc, 0x30, 0x44, 0x96, 0xa4, 0x66, 0x08, 0x4b, 0x80, 0xc3, 0x2a, 0x9b, 0xa7, 0x44, 0x4c, 0xf6, 0x1b, 0x23, 0x73, 0x88, 0x99, 0xa5, 0x36, 0x79, 0x75, 0xeb, 0xd1, 0x36, 0x5e, 0x9e, 0x99, 0x95, 0xe4, 0xf3, 0xda, 0x1c, 0x03, 0x5d, 0x0a, 0x79, 0x86, 0x0e, 0x95, 0xe8, 0xdf, 0xd0, 0xe6, 0x5d, 0xd1, 0xa4, 0xb7, 0xf8, 0xbc, 0xd0, 0xe6, 0x70, 0x96, 0x2d, 0xb3, 0x62, 0x96, 0x15, 0xcd, 0x28, 0xf9, 0x73, 0xb9, 0xda, 0x34, 0xdf, 0xbe, 0xc8, 0xcd, 0x1e, 0xa4, 0x32, 0x94, 0xf9, 0xb2, 0x21, 0x82, 0x69, 0x95, 0x2f, 0xbd, 0xa3, 0x28, 0x0b, 0x73, 0xe6, 0xc9, 0xbb, 0xd7, 0x2f, 0x93, 0x47, 0xcf, 0x3f, 0x7f, 0xea, 0xce, 0xdc, 0x0c, 0x90, 0x4c, 0xd3, 0xc2, 0xac, 0x38, 0x9b, 0xe6, 0x17, 0x77, 0xc9, 0x62, 0x35, 0x6f, 0xf2, 0xa5, 0xd9, 0x7d, 0xba, 0x7c, 0x74, 0x81, 0x96, 0x69, 0xd5, 0xd4, 0x44, 0x04, 0xf8, 0x01, 0xd6, 0x7e, 0x53, 0xe5, 0x0d, 0x5d, 0x24, 0xfc, 0xce, 0xcc, 0x30, 0x6b, 0x6a, 0x1d, 0x8e, 0x68, 0xcd, 0x7c, 0x67, 0x62, 0x68, 0xcb, 0x6c, 0x6d, 0x5a, 0x9b, 0x8f, 0x1e, 0x7c, 0xe6, 0x38, 0xc8, 0x55, 0xd3, 0x2c, 0x0f, 0x76, 0x76, 0xea, 0xbc, 0xc9, 0x46, 0xff, 0x30, 0xf7, 0x70, 0xd0, 0xdc, 0x94, 0x83, 0xe6, 0xaa, 0xca, 0xb2, 0x7f, 0x8e, 0x0c, 0x0d, 0xdb, 0x27, 0xcd, 0x77, 0xef, 0x64, 0x62, 0x97, 0x59, 0x63, 0xbe, 0xf0, 0xb7, 0x55, 0x56, 0xd0, 0x88, 0x66, 0x1e, 0xe9, 0x7c, 0x79, 0x95, 0x9a, 0xe3, 0xcc, 0x0c, 0x35, 0xd2, 0xcd, 0x36, 0x04, 0x43, 0xb3, 0xe2, 0xbb, 0xfd, 0x97, 0x9f, 0xc2, 0x8f, 0x5e, 0xe0, 0x9b, 0xe6, 0xbf, 0xa3, 0xec, 0x36, 0x5d, 0x98, 0xb5, 0xd1, 0xa7, 0x76, 0x88, 0xc4, 0xfe, 0xb2, 0x37, 0xdc, 0xdb, 0xdd, 0xfd, 0x69, 0xd4, 0xdc, 0x36, 0x0f, 0x7b, 0x7e, 0x77, 0xd7, 0xbd, 0x41, 0x8f, 0x6e, 0xd1, 0x7a, 0x93, 0xb9, 0x21, 0x19, 0xfa, 0xf8, 0xdf, 0xb3, 0xaa, 0xac, 0xb7, 0x1f, 0x36, 0x52, 0x3a, 0xfc, 0x7b, 0xfb, 0xbb, 0x6f, 0xb3, 0x1a, 0x34, 0xe3, 0xd6, 0x9a, 0xa4, 0x95, 0xa1, 0xdb, 0xb2, 0x71, 0xec, 0x69, 0x60, 0x2e, 0x65, 0x63, 0x77, 0xc6, 0xdc, 0x39, 0xf3, 0xb4, 0x61, 0x6c, 0xe9, 0x9c, 0x78, 0x5a, 0x9d, 0x14, 0xd9, 0xad, 0xbd, 0xe5, 0xe6, 0xf6, 0x67, 0xe9, 0xf4, 0x2a, 0x29, 0x0d, 0xf1, 0x57, 0x91, 0x23, 0xf0, 0x27, 0x94, 0x56, 0xd3, 0xab, 0xfc, 0xda, 0xec, 0xc6, 0xf3, 0xe7, 0x4f, 0x87, 0xe6, 0x3f, 0xcf, 0x7f, 0xda, 0xb9, 0x2e, 0xe7, 0x66, 0x73, 0x1e, 0xff, 0xb4, 0x43, 0x47, 0xfc, 0x8f, 0x74, 0x30, 0x19, 0x4c, 0xff, 0x39, 0xba, 0x6a, 0x16, 0xf3, 0x5e, 0xc2, 0x49, 0x0b, 0xf3, 0xff, 0x8b, 0x72, 0x55, 0x34, 0x96, 0x58, 0x0c, 0xcd, 0x35, 0x1e, 0x73, 0x32, 0xd7, 0xd5, 0xdc, 0x51, 0x22, 0x6d, 0xa2, 0x21, 0xba, 0x75, 0xe6, 0x82, 0xba, 0xeb, 0xd8, 0x4c, 0xaf, 0x68, 0xfd, 0x86, 0x7a, 0x52, 0xd9, 0x84, 0x26, 0x4f, 0xe9, 0x66, 0x1a, 0x06, 0x41, 0x0c, 0x0b, 0x63, 0xf1, 0xd7, 0x72, 0xf3, 0x60, 0x59, 0xcd, 0xb2, 0x6a, 0xd4, 0x9d, 0x86, 0xbd, 0xb2, 0xde, 0x37, 0x13, 0x95, 0x28, 0xf4, 0x03, 0x4c, 0x6c, 0x91, 0xdf, 0x9a, 0x11, 0xc0, 0x30, 0x0b, 0x4c, 0x9c, 0x47, 0x4b, 0x68, 0xc6, 0xf8, 0x8c, 0xbe, 0xef, 0xae, 0xac, 0x99, 0x7a, 0x6b, 0xe9, 0xf8, 0xa8, 0x5b, 0x7c, 0x62, 0x0e, 0x6f, 0x69, 0xde, 0x5a, 0x11, 0x5f, 0xc5, 0xb5, 0xa6, 0x61, 0x0c, 0x43, 0xb8, 0x34, 0xe7, 0x62, 0xce, 0x82, 0xa8, 0x98, 0x8e, 0xea, 0x2e, 0x79, 0x6b, 0x08, 0x86, 0x99, 0x91, 0x47, 0xec, 0xf3, 0xac, 0x69, 0xee, 0x3d, 0x26, 0x47, 0xb1, 0x07, 0x7b, 0x01, 0xd1, 0xf6, 0x3d, 0x6f, 0xe8, 0xec, 0x60, 0xbf, 0xfd, 0xf0, 0xf7, 0x86, 0x49, 0xbb, 0xeb, 0x62, 0xbe, 0xfe, 0x8f, 0x7f, 0x7a, 0x54, 0x77, 0x43, 0xbf, 0xcd, 0x8b, 0xeb, 0xf2, 0xa3, 0xd9, 0x22, 0x48, 0xd1, 0xb4, 0xbd, 0x9b, 0xc4, 0x87, 0x16, 0xcb, 0xc6, 0x8a, 0x27, 0x22, 0x47, 0xf3, 0xa3, 0x49, 0x3a, 0x99, 0xdf, 0x25, 0x57, 0xe9, 0x75, 0x46, 0xeb, 0x5d, 0x1a, 0x3a, 0xa5, 0x1d, 0x30, 0x62, 0x63, 0x0e, 0x3e, 0x26, 0x8c, 0x61, 0x56, 0xae, 0x26, 0x86, 0xb9, 0xfc, 0x6d, 0x55, 0x36, 0xbc, 0x31, 0xe9, 0x75, 0x99, 0xcf, 0x5a, 0xb2, 0xf8, 0x2a, 0x23, 0x86, 0x46, 0x1f, 0x86, 0x90, 0x32, 0x0c, 0x95, 0x66, 0x8a, 0x8b, 0x96, 0x37, 0x24, 0xee, 0x0c, 0x2b, 0x4c, 0xe7, 0x75, 0x99, 0x24, 0x97, 0x25, 0xdd, 0x12, 0x30, 0x60, 0x90, 0xb9, 0x39, 0x94, 0xab, 0x94, 0xa4, 0x9a, 0x11, 0x60, 0xf6, 0x1e, 0x54, 0x19, 0x78, 0x31, 0x4e, 0x2a, 0x9d, 0x0f, 0x58, 0x7a, 0xd1, 0x3b, 0xb2, 0x55, 0xc9, 0xe6, 0x7f, 0xdb, 0x1c, 0x24, 0x9b, 0xff, 0xb1, 0x09, 0x7a, 0xd8, 0xfc, 0xf7, 0x4d, 0x77, 0xce, 0x46, 0x19, 0xbb, 0xce, 0x67, 0x19, 0x93, 0xc4, 0xf1, 0xd9, 0xf5, 0xd3, 0xe4, 0xef, 0xa4, 0x3b, 0x18, 0x5e, 0x9b, 0xdd, 0x2a, 0x41, 0xea, 0xda, 0xcc, 0xdb, 0x89, 0x61, 0xba, 0xe9, 0x92, 0x94, 0x88, 0xac, 0x9a, 0x1a, 0xea, 0x4d, 0x2f, 0x0d, 0xbd, 0x1a, 0x59, 0xac, 0xc3, 0xd1, 0xf8, 0xf4, 0x0a, 0x2f, 0xcb, 0x30, 0xc8, 0xa4, 0x48, 0x17, 0xe6, 0x46, 0x9c, 0xd0, 0x8c, 0xf2, 0x22, 0x3c, 0xcc, 0xbf, 0x5c, 0x64, 0x9f, 0xef, 0x1e, 0x1c, 0x3c, 0xfa, 0xfd, 0xfe, 0x93, 0xac, 0xb9, 0xda, 0xfd, 0x69, 0xc7, 0x3e, 0x72, 0x7c, 0x81, 0x6d, 0x57, 0xf2, 0xd3, 0x49, 0x18, 0x29, 0x6f, 0xa5, 0x84, 0x79, 0xdf, 0xfc, 0x3d, 0xbb, 0xc8, 0x6f, 0x07, 0xaa, 0x2f, 0xf1, 0x9d, 0x4b, 0x0d, 0xa9, 0x99, 0xf3, 0x23, 0x16, 0xa1, 0xc3, 0x5d, 0xae, 0xb2, 0xda, 0xec, 0xe4, 0xcd, 0x55, 0xda, 0x24, 0x76, 0x00, 0x3e, 0xd9, 0x45, 0x7e, 0x79, 0xd5, 0x24, 0x37, 0x29, 0x09, 0x9b, 0xe3, 0x86, 0x87, 0x20, 0x29, 0x6f, 0x44, 0xcc, 0x45, 0x6a, 0x64, 0x05, 0x9d, 0x21, 0x44, 0xfa, 0xc4, 0x69, 0x18, 0x8d, 0x21, 0x73, 0x3e, 0x10, 0xa7, 0x4e, 0x4d, 0xd2, 0x9a, 0x2e, 0x6d, 0x61, 0x98, 0x43, 0x63, 0x74, 0x84, 0x15, 0xfd, 0xeb, 0xca, 0x68, 0x01, 0xd8, 0x03, 0x99, 0x28, 0x04, 0xe5, 0x6b, 0x3a, 0x4e, 0x3a, 0x1b, 0x2b, 0xbc, 0xcc, 0x21, 0x0d, 0xe4, 0x98, 0xed, 0x1b, 0xb5, 0xb9, 0x70, 0x86, 0x33, 0x59, 0xca, 0xd8, 0x20, 0x26, 0xbb, 0xc1, 0xeb, 0xc4, 0x1c, 0xd3, 0x9a, 0x14, 0x05, 0x56, 0x07, 0xcc, 0xe4, 0xbd, 0xc5, 0x9a, 0x4d, 0x4b, 0x3f, 0x92, 0x4a, 0xd2, 0x51, 0x7c, 0xf0, 0xda, 0xac, 0x34, 0x44, 0x66, 0x66, 0x6b, 0x98, 0x31, 0xad, 0x8c, 0x58, 0x2c, 0x76, 0x05, 0x44, 0x6e, 0xc6, 0xa4, 0x1f, 0xe6, 0x0d, 0xc9, 0x18, 0xe8, 0xb0, 0x66, 0xbe, 0x66, 0x53, 0xa0, 0x88, 0x1a, 0x46, 0xed, 0xad, 0x1f, 0xe2, 0xd1, 0x3c, 0x9b, 0x5c, 0x1b, 0x2d, 0xc5, 0x28, 0xa4, 0x99, 0x7d, 0x0b, 0xf2, 0x7c, 0x4a, 0xba, 0xd1, 0xdc, 0xdc, 0x97, 0x69, 0x59, 0x55, 0xa4, 0xef, 0xd3, 0x09, 0x4e, 0x98, 0x89, 0x2e, 0x32, 0xa3, 0x46, 0xf8, 0xdb, 0x99, 0x93, 0x40, 0x33, 0xfc, 0xc5, 0xe8, 0x25, 0xe0, 0x20, 0x46, 0x7f, 0x00, 0xcf, 0xc7, 0xc2, 0x31, 0x3b, 0x1a, 0x7b, 0x3a, 0xcd, 0x96, 0x4d, 0x1d, 0x5b, 0x93, 0x1e, 0xb8, 0x99, 0x4e, 0x95, 0xd1, 0xce, 0xfb, 0x4a, 0x17, 0xf6, 0xd5, 0x0a, 0x7d, 0xe8, 0x5d, 0xaa, 0xc7, 0x18, 0x3d, 0xac, 0xb6, 0xbb, 0xd6, 0x80, 0x36, 0x0c, 0x1b, 0xc3, 0x9e, 0x2f, 0x68, 0xa2, 0xf4, 0x70, 0xcd, 0x37, 0x15, 0xac, 0x99, 0x0e, 0x92, 0x35, 0x6d, 0xfe, 0x2e, 0x89, 0x2e, 0xb3, 0x9f, 0x76, 0x70, 0xf3, 0x55, 0x7b, 0xa6, 0xf4, 0x79, 0x52, 0xf1, 0x8d, 0x24, 0x9f, 0xd5, 0x57, 0x46, 0xf9, 0xaa, 0xe5, 0x66, 0xe7, 0x0b, 0x43, 0x33, 0xd7, 0x74, 0xbe, 0xcb, 0x2c, 0x9b, 0x8d, 0x92, 0xd3, 0x0b, 0xe2, 0xaa, 0x95, 0x99, 0x74, 0x83, 0x5f, 0x93, 0x54, 0x31, 0xfb, 0x36, 0x83, 0x12, 0x6f, 0xaf, 0x16, 0x4f, 0xc5, 0x93, 0x0e, 0xe0, 0xe4, 0xa9, 0xf9, 0x89, 0x99, 0xed, 0xbc, 0x2d, 0x82, 0x70, 0x0f, 0x0d, 0xf7, 0xa6, 0xe9, 0x4d, 0xb2, 0x04, 0x94, 0x38, 0xc9, 0x9a, 0x9b, 0x2c, 0xb3, 0xc3, 0xd5, 0x99, 0x11, 0x7b, 0x74, 0x68, 0xac, 0xf9, 0x81, 0x19, 0xd2, 0xd6, 0x9e, 0xbd, 0x3b, 0xfd, 0xfa, 0xdd, 0xd1, 0x78, 0x9c, 0xbc, 0x39, 0x3a, 0x3f, 0x7a, 0xd7, 0xda, 0xe9, 0xa2, 0xac, 0x16, 0x38, 0xd1, 0x59, 0x5e, 0x2f, 0xe7, 0xe9, 0x1d, 0x1d, 0xb5, 0x59, 0xc9, 0x65, 0x45, 0x37, 0x6b, 0x91, 0x91, 0x54, 0x98, 0xad, 0xc0, 0xc9, 0x8c, 0x38, 0x32, 0xc7, 0x27, 0x1a, 0x2f, 0x31, 0x13, 0xa8, 0xc9, 0xc5, 0xa5, 0xdb, 0x69, 0xc3, 0x71, 0x44, 0x92, 0x92, 0x28, 0xb5, 0xe7, 0x41, 0xaa, 0x27, 0x8c, 0x9b, 0x81, 0xfb, 0x19, 0x6f, 0x13, 0x8b, 0x36, 0x43, 0xb3, 0xf9, 0x02, 0xcc, 0xce, 0xfc, 0xe9, 0xb4, 0xcd, 0xec, 0xc2, 0xa8, 0xda, 0x46, 0xba, 0xb2, 0xa5, 0xd0, 0x9d, 0x93, 0xce, 0xd6, 0xea, 0xc7, 0x86, 0x0c, 0x89, 0x35, 0xd3, 0x80, 0x3c, 0x15, 0xfe, 0x82, 0x65, 0x62, 0x46, 0x27, 0x21, 0xde, 0x27, 0x8f, 0x2d, 0x69, 0x0a, 0x99, 0x39, 0xd9, 0x19, 0x0f, 0x5f, 0xaf, 0x2e, 0x70, 0x91, 0x93, 0x2d, 0xa3, 0x99, 0xbf, 0x31, 0xd6, 0x92, 0xb1, 0x58, 0x06, 0xc9, 0xd9, 0x36, 0xde, 0xdb, 0xdb, 0xdd, 0x7f, 0xcc, 0x8c, 0x60, 0xa4, 0xc3, 0xbd, 0xf6, 0x18, 0xf1, 0xde, 0x47, 0x3a, 0x5e, 0x7e, 0x88, 0x06, 0x1f, 0x25, 0x7b, 0x6f, 0xf8, 0x27, 0x8f, 0x3f, 0x7f, 0xf2, 0xec, 0xa9, 0xfc, 0xb0, 0x4d, 0xe0, 0x76, 0xfe, 0xa0, 0x0e, 0x58, 0x7e, 0x64, 0x0a, 0x9a, 0x99, 0x98, 0xd5, 0x2d, 0xf2, 0xc2, 0x5c, 0x13, 0x73, 0xad, 0x84, 0x57, 0x11, 0x3d, 0x9b, 0xc9, 0x5f, 0x30, 0x67, 0x93, 0x73, 0x6d, 0x9b, 0x94, 0xe6, 0x65, 0x43, 0xb2, 0x86, 0x97, 0xdb, 0x43, 0x62, 0x35, 0xa1, 0xa1, 0x89, 0xa4, 0x13, 0x62, 0xb0, 0x64, 0x57, 0x19, 0x05, 0x38, 0x8b, 0x7e, 0xcd, 0x4a, 0x45, 0xf3, 0x86, 0x99, 0x9b, 0x91, 0x89, 0x24, 0xe6, 0xc2, 0x7d, 0x37, 0xac, 0x00, 0x1c, 0xf2, 0x26, 0xaf, 0xc1, 0x1a, 0x6e, 0xca, 0xd5, 0xdc, 0x58, 0x31, 0xf4, 0xc0, 0x6a, 0x89, 0x17, 0xcc, 0xa7, 0x96, 0x8e, 0x07, 0x18, 0x8d, 0x85, 0x68, 0xa7, 0x3b, 0x8a, 0x99, 0x9a, 0xf9, 0xe7, 0xd2, 0x90, 0x12, 0x4f, 0x67, 0xd4, 0x95, 0x10, 0xe0, 0x7d, 0x01, 0x25, 0xd2, 0x9d, 0x07, 0xd3, 0x3e, 0x3b, 0x1d, 0x9f, 0x93, 0x06, 0x70, 0xf6, 0xfe, 0xdc, 0x0c, 0x64, 0x54, 0x80, 0xba, 0x31, 0x44, 0x49, 0x2f, 0x16, 0x19, 0x4c, 0x48, 0x1d, 0xce, 0xd0, 0x5e, 0x0e, 0x46, 0x05, 0xb5, 0x46, 0x3f, 0xc9, 0x73, 0x64, 0x1b, 0x9b, 0xae, 0xa0, 0x5a, 0xd8, 0x2c, 0xc3, 0xed, 0x3b, 0xc9, 0xd6, 0x9f, 0xb6, 0x0d, 0xcd, 0x0e, 0x4b, 0xbb, 0x3b, 0xc3, 0xa1, 0xbc, 0x6a, 0xbe, 0x5d, 0xe7, 0x8b, 0x7c, 0x9e, 0x56, 0xde, 0xd4, 0x99, 0xa3, 0xd2, 0xfd, 0xb4, 0x7c, 0x65, 0x6a, 0xa8, 0x06, 0xd3, 0x76, 0xa6, 0x24, 0xed, 0x21, 0xb8, 0x92, 0x3b, 0xaa, 0x19, 0x29, 0x04, 0xd0, 0x98, 0x97, 0xb9, 0xdd, 0x3a, 0x3a, 0x33, 0x62, 0x57, 0xad, 0x8d, 0xea, 0x9e, 0x5b, 0xb0, 0x71, 0x24, 0x91, 0xe0, 0xa9, 0xb0, 0x5b, 0x97, 0x6c, 0x4c, 0xd2, 0x6a, 0x23, 0xb1, 0xbc, 0x98, 0xef, 0x26, 0xdd, 0x90, 0x2a, 0xbb, 0x5c, 0x99, 0x15, 0x24, 0xbc, 0xbb, 0xb4, 0xd2, 0xdf, 0x79, 0x2b, 0xd5, 0x01, 0x86, 0x13, 0x7a, 0x24, 0xaf, 0xd9, 0xcc, 0xbc, 0x30, 0x76, 0x0b, 0x5d, 0x1a, 0xd5, 0x5f, 0xa1, 0xd1, 0x08, 0xc5, 0x44, 0x08, 0xc6, 0xd3, 0x6b, 0xcd, 0x55, 0x69, 0x32, 0xc3, 0x68, 0xc0, 0xfe, 0xe9, 0xc9, 0xa1, 0x39, 0xb2, 0xe1, 0xb0, 0x36, 0xfb, 0x4f, 0xba, 0xf7, 0x52, 0x6c, 0xfa, 0x53, 0x38, 0x4c, 0xac, 0x6f, 0xe5, 0x54, 0x74, 0x60, 0x88, 0x4d, 0x7e, 0x17, 0x2c, 0xd4, 0x28, 0xaa, 0x37, 0xe6, 0xc3, 0xa9, 0x39, 0x32, 0x73, 0xe1, 0xde, 0xd0, 0x46, 0xb1, 0x6f, 0x24, 0xb1, 0x6a, 0x33, 0x28, 0x23, 0xa7, 0x7b, 0x9f, 0x3a, 0x5d, 0x66, 0x36, 0xcb, 0xe9, 0xb7, 0xe6, 0x7e, 0x19, 0x09, 0xb7, 0xca, 0x60, 0x7b, 0xc8, 0xa6, 0x2e, 0xdc, 0x66, 0xc2, 0x8c, 0xad, 0xaf, 0x4a, 0x32, 0x13, 0x37, 0x98, 0x17, 0x0f, 0xe9, 0x5b, 0x1b, 0x90, 0xe7, 0x8b, 0x44, 0xbf, 0x25, 0x9f, 0x32, 0xeb, 0x98, 0xf9, 0xba, 0xd9, 0xc0, 0x08, 0x9a, 0x3b, 0xcf, 0x48, 0x00, 0xaf, 0xe6, 0xb9, 0x57, 0x56, 0xe1, 0x31, 0x22, 0x75, 0x49, 0xca, 0x94, 0xf0, 0x70, 0x08, 0x43, 0x5c, 0xd9, 0x9a, 0xa7, 0x36, 0x30, 0x7b, 0x4b, 0x4f, 0x5e, 0x5e, 0xe9, 0xa3, 0x9e, 0x60, 0x4d, 0xcd, 0xe2, 0x48, 0x38, 0x90, 0x3d, 0x3d, 0x53, 0xbe, 0x5f, 0x56, 0xcc, 0xcc, 0xe6, 0xa5, 0xa1, 0xe5, 0x0d, 0x56, 0x59, 0x65, 0xda, 0x34, 0x6b, 0x9a, 0x25, 0xed, 0x38, 0xfb, 0x99, 0x4a, 0x7b, 0x36, 0x76, 0xd2, 0xb2, 0x5f, 0xf5, 0xbd, 0x53, 0x73, 0x1b, 0x35, 0xc6, 0x1e, 0x19, 0xd1, 0x59, 0x13, 0x1d, 0xeb, 0xce, 0x83, 0xbc, 0x8d, 0xa8, 0xdb, 0x6c, 0xf8, 0x3e, 0xc2, 0xc6, 0xea, 0xec, 0x7c, 0x0d, 0xf2, 0x11, 0x41, 0x66, 0x57, 0x66, 0x56, 0x34, 0xcb, 0x53, 0xd0, 0x09, 0x1f, 0x0d, 0x94, 0x11, 0x67, 0x11, 0x46, 0xf4, 0xe0, 0xbb, 0xae, 0x41, 0x37, 0x9f, 0xfb, 0x22, 0x49, 0xe7, 0x34, 0x3c, 0x35, 0x6b, 0x3f, 0xc1, 0x3a, 0x86, 0xd7, 0x09, 0x5d, 0x3f, 0x63, 0x36, 0xd0, 0x5d, 0x1c, 0x9e, 0x9e, 0x5c, 0x7b, 0xd7, 0x88, 0x2c, 0xf7, 0x82, 0xf4, 0x94, 0x01, 0xbc, 0x23, 0x93, 0xb2, 0x34, 0x66, 0xb2, 0x5b, 0x1a, 0xc9, 0x83, 0xac, 0x20, 0x6a, 0x97, 0x13, 0x35, 0x2c, 0x61, 0x69, 0xf9, 0xed, 0x9d, 0x31, 0x97, 0xd2, 0xcb, 0x34, 0xb7, 0xf4, 0x26, 0x37, 0x63, 0x96, 0xe8, 0xc3, 0x45, 0x29, 0xcf, 0xd3, 0x51, 0x91, 0x0a, 0x24, 0x7c, 0x6b, 0x55, 0xf3, 0xf5, 0x31, 0xab, 0x32, 0x9c, 0x07, 0xbc, 0x43, 0xc6, 0x25, 0xb5, 0x51, 0x87, 0x9b, 0x40, 0x51, 0x26, 0x9d, 0x13, 0xcc, 0x17, 0x1a, 0xa4, 0x19, 0x71, 0x63, 0x94, 0x7c, 0x53, 0xde, 0x64, 0xf0, 0x15, 0x42, 0xbf, 0xcf, 0xc9, 0xdb, 0x65, 0x54, 0xc1, 0x9b, 0x2c, 0x59, 0x18, 0xd5, 0xd3, 0xec, 0x26, 0xb4, 0x0f, 0xfc, 0xcc, 0x33, 0x0f, 0x0d, 0x85, 0xdf, 0xf0, 0x2e, 0xd9, 0x55, 0xd8, 0xa3, 0xbc, 0xe0, 0x2b, 0x91, 0x6c, 0x41, 0xbd, 0x99, 0xd2, 0x6e, 0x2d, 0x1b, 0xb7, 0x0a, 0xbb, 0x21, 0x37, 0x69, 0xed, 0x5d, 0xae, 0x0c, 0xa6, 0xe9, 0xb3, 0xd1, 0xde, 0xf3, 0xd1, 0xee, 0xc8, 0x18, 0x22, 0xd9, 0x75, 0x5e, 0xae, 0x6a, 0xf3, 0x69, 0x9a, 0x86, 0x7b, 0x27, 0xa3, 0x5b, 0xd9, 0x94, 0x97, 0x97, 0x73, 0xd6, 0x79, 0x76, 0xca, 0x8b, 0x0b, 0xd6, 0x7d, 0x8c, 0xa6, 0x67, 0xf5, 0x67, 0xb6, 0x80, 0x68, 0x67, 0xe4, 0xba, 0x31, 0x4b, 0x0d, 0x4d, 0xe4, 0x91, 0x73, 0x5e, 0x0c, 0x87, 0xe9, 0xa4, 0x6e, 0xc8, 0x98, 0x1a, 0xae, 0x8a, 0xfc, 0x76, 0x58, 0x97, 0xd3, 0x8f, 0xe6, 0x50, 0x5e, 0x2c, 0xd3, 0xe6, 0xea, 0x4f, 0x1d, 0x97, 0xf0, 0x16, 0xc9, 0x92, 0xed, 0x24, 0x79, 0xc9, 0x6a, 0x25, 0xed, 0x44, 0xc5, 0xf7, 0xcd, 0x9c, 0xa6, 0x8c, 0x92, 0xbc, 0x37, 0xa3, 0x18, 0x5a, 0x5e, 0x98, 0x43, 0x4d, 0x78, 0xb0, 0x81, 0xb2, 0xd2, 0xce, 0x70, 0x70, 0x38, 0x92, 0x18, 0x81, 0xdf, 0xce, 0x5c, 0x9d, 0xb2, 0xfa, 0x68, 0x14, 0xed, 0xb7, 0xc6, 0x64, 0x3c, 0xa0, 0x7f, 0x1b, 0x16, 0xd6, 0x60, 0xcb, 0x45, 0xb2, 0x9a, 0x19, 0x31, 0x33, 0x26, 0x8b, 0x3c, 0x9d, 0x0c, 0x3b, 0xc3, 0xc9, 0xf7, 0xe5, 0xa3, 0x89, 0xda, 0x1a, 0x4a, 0x4a, 0xc9, 0xe6, 0x97, 0xc6, 0xfe, 0xbb, 0xe2, 0x63, 0xc7, 0x80, 0xbc, 0x46, 0x43, 0xa1, 0x97, 0xc6, 0x82, 0x28, 0x9a, 0xee, 0x70, 0x57, 0x10, 0xd5, 0x24, 0x65, 0xd8, 0xd8, 0x05, 0x91, 0x88, 0x07, 0xc8, 0xda, 0x9f, 0xa3, 0xcf, 0x3a, 0xaf, 0x1d, 0xba, 0x33, 0x7d, 0xf2, 0xc8, 0x9c, 0xa9, 0xbf, 0xd1, 0xf3, 0x66, 0x58, 0x5f, 0x4f, 0x93, 0x17, 0xd0, 0xbe, 0x89, 0x4c, 0xa3, 0x1b, 0x3c, 0xde, 0x4e, 0xbe, 0x3f, 0x7c, 0xf7, 0xf6, 0xf8, 0xed, 0xd7, 0x07, 0xfc, 0x51, 0xa1, 0x34, 0xf3, 0xb7, 0xec, 0xd6, 0x88, 0xc0, 0x9c, 0x26, 0x6b, 0x24, 0x59, 0xf2, 0xaa, 0xc4, 0xec, 0xe8, 0xbc, 0xcd, 0xf7, 0x8c, 0x1c, 0xe9, 0xee, 0xc8, 0x6c, 0xd5, 0x71, 0xfc, 0x5a, 0x6e, 0xed, 0x46, 0xe5, 0xbb, 0xc9, 0x3b, 0xac, 0x13, 0x34, 0xcc, 0x91, 0x7d, 0xc7, 0x50, 0x96, 0x46, 0x24, 0x2a, 0x61, 0xe3, 0xeb, 0xb4, 0x3b, 0xc3, 0x2d, 0x4b, 0x63, 0xe9, 0xb2, 0x91, 0x6f, 0xc6, 0xbb, 0x35, 0x77, 0x86, 0xb6, 0x48, 0x07, 0x9b, 0x1a, 0x5e, 0x94, 0x89, 0xd6, 0x00, 0x3e, 0x07, 0x9b, 0x41, 0xf8, 0xd8, 0x28, 0x39, 0xbc, 0xe8, 0xce, 0x9a, 0x14, 0x17, 0x52, 0xe9, 0x55, 0x04, 0xce, 0x9c, 0x16, 0xcc, 0x2e, 0x5e, 0x1e, 0x51, 0x87, 0xa9, 0xcd, 0xe1, 0xcc, 0x54, 0xcc, 0xd3, 0x67, 0x3a, 0xc3, 0xc1, 0xee, 0x04, 0x8f, 0x21, 0x8d, 0x30, 0xa7, 0xd3, 0x24, 0xbb, 0xcf, 0x70, 0xe9, 0x45, 0x39, 0x83, 0x11, 0x11, 0xec, 0xcf, 0xd8, 0x7a, 0x7b, 0x36, 0x36, 0xdc, 0xaa, 0x93, 0x2d, 0xf2, 0xfb, 0x19, 0x12, 0x28, 0x2e, 0x9b, 0xab, 0x6d, 0xe7, 0xd3, 0x20, 0x1d, 0xc5, 0x2c, 0x78, 0xc7, 0x4c, 0x04, 0xeb, 0x2e, 0xba, 0x74, 0x0e, 0x9f, 0x33, 0xd4, 0xce, 0xbf, 0xae, 0xea, 0x06, 0xa6, 0x90, 0xc8, 0x7e, 0x5e, 0x89, 0x99, 0xd9, 0x22, 0x5b, 0x94, 0xd5, 0x5d, 0x30, 0x91, 0x63, 0x68, 0x1e, 0x64, 0x75, 0xca, 0x69, 0x11, 0x11, 0x40, 0x38, 0xaa, 0x3f, 0x90, 0x2c, 0x00, 0x72, 0xa8, 0x5b, 0x23, 0x10, 0x1a, 0x93, 0xe1, 0x3e, 0xc6, 0xf8, 0x76, 0xde, 0x5a, 0xb5, 0x9e, 0xe0, 0xe5, 0x61, 0xc3, 0x5e, 0x4c, 0xa9, 0x89, 0xf8, 0x6f, 0xe6, 0x29, 0xb1, 0x9b, 0x22, 0x6b, 0x9d, 0x0e, 0xc4, 0x06, 0x2f, 0x6b, 0x1d, 0x9d, 0x3f, 0x7d, 0x3c, 0xda, 0x6b, 0xd1, 0x79, 0x71, 0x47, 0x11, 0x82, 0x38, 0xf3, 0x38, 0x37, 0x1a, 0x63, 0xcd, 0xf3, 0x35, 0x3b, 0x78, 0x91, 0x5f, 0xae, 0xaa, 0x8c, 0x55, 0x37, 0x04, 0x15, 0x34, 0x96, 0x40, 0xda, 0xd0, 0x55, 0x09, 0x17, 0xbc, 0x91, 0xa2, 0xd9, 0xfc, 0x62, 0xd0, 0x19, 0x0e, 0x76, 0x0b, 0x91, 0x3e, 0xa6, 0x0f, 0x6e, 0x69, 0xec, 0x13, 0x0c, 0x56, 0x64, 0xa2, 0xbd, 0x2e, 0x0c, 0x27, 0x49, 0xc8, 0x07, 0x9d, 0x4c, 0xe7, 0x69, 0xbe, 0x00, 0x89, 0x8a, 0x8f, 0x75, 0x14, 0xbb, 0x12, 0x64, 0x59, 0xd0, 0xdb, 0x13, 0xb2, 0x79, 0xab, 0x9a, 0x44, 0x32, 0x4e, 0x54, 0x55, 0x66, 0xb6, 0x28, 0xaf, 0xb2, 0xe9, 0x47, 0xe5, 0x5a, 0xaa, 0x6b, 0x76, 0x69, 0x98, 0x82, 0x0b, 0x30, 0xac, 0xcd, 0x53, 0xab, 0x9a, 0xae, 0x48, 0x5d, 0xe7, 0xe4, 0x37, 0x23, 0x3b, 0x70, 0x35, 0x85, 0x79, 0x88, 0xcb, 0x62, 0x28, 0x5b, 0x59, 0x5f, 0x62, 0x78, 0x69, 0x31, 0x1b, 0x36, 0x55, 0xbe, 0xec, 0x9b, 0x1d, 0x9f, 0x4a, 0x5b, 0x33, 0xad, 0xc5, 0x54, 0x87, 0x15, 0xcc, 0x76, 0xf1, 0x34, 0xe9, 0xec, 0x66, 0x97, 0x20, 0xb1, 0xb7, 0x03, 0x72, 0x04, 0xe5, 0x46, 0x51, 0x60, 0x2b, 0x09, 0x7e, 0x4e, 0x63, 0x13, 0x89, 0xc4, 0x32, 0xe6, 0x5b, 0x3e, 0x85, 0xf6, 0x93, 0x5f, 0x66, 0x14, 0xc4, 0x31, 0x42, 0xac, 0x99, 0x1b, 0x9d, 0x28, 0xa4, 0x6f, 0xf3, 0x9b, 0xec, 0xb2, 0x6c, 0x48, 0x0d, 0x09, 0xc8, 0xe4, 0x3d, 0x18, 0xbc, 0xa5, 0x09, 0xd5, 0xf7, 0x7d, 0x65, 0x2c, 0x67, 0x45, 0xdc, 0x7c, 0x9a, 0xf5, 0x7d, 0x71, 0x35, 0xd4, 0x8d, 0xb9, 0x55, 0xdd, 0x53, 0x37, 0xa3, 0x4d, 0x33, 0x18, 0x5d, 0xd0, 0x18, 0x55, 0x61, 0x55, 0x4d, 0x9f, 0xd8, 0x01, 0x29, 0xc7, 0xcd, 0x4d, 0x3e, 0xcd, 0xd4, 0x0f, 0x27, 0xce, 0xe9, 0x79, 0x1e, 0xf2, 0xf8, 0x05, 0xdd, 0x47, 0xf3, 0x12, 0x2b, 0xe3, 0xe4, 0x36, 0xb9, 0xc9, 0x49, 0x59, 0x17, 0x86, 0x07, 0x5d, 0x4c, 0xe4, 0x40, 0x5a, 0xe5, 0xf0, 0x11, 0x99, 0xe1, 0x64, 0x9e, 0x9e, 0x29, 0xef, 0xdf, 0x2f, 0x9e, 0x37, 0xde, 0x17, 0xfb, 0xc5, 0xd9, 0x2d, 0xb8, 0x5c, 0x17, 0x69, 0x3e, 0x8f, 0xec, 0x13, 0x98, 0xd8, 0x65, 0x06, 0x77, 0x1a, 0x9f, 0xc1, 0x8a, 0x36, 0x9d, 0x02, 0x6e, 0x21, 0x83, 0xca, 0x32, 0x36, 0x24, 0x60, 0x75, 0xdc, 0xde, 0xd9, 0xed, 0x85, 0xb6, 0xc6, 0x67, 0x27, 0x7f, 0xe7, 0xe3, 0xf3, 0xae, 0x67, 0x4a, 0xa3, 0xa6, 0x4b, 0x8a, 0x2c, 0x75, 0x6f, 0x28, 0xd9, 0x5c, 0x14, 0x9c, 0xdc, 0x56, 0xd7, 0x71, 0x26, 0x8e, 0x73, 0x1b, 0xd4, 0x03, 0x33, 0x22, 0x7e, 0x26, 0x57, 0x98, 0xc7, 0x11, 0xee, 0xdb, 0xe5, 0xe3, 0x46, 0xb0, 0x1a, 0x39, 0x0c, 0xfe, 0xd9, 0xa2, 0xd8, 0xd2, 0xb0, 0x2e, 0x1b, 0x5a, 0x22, 0x57, 0xaf, 0xf0, 0x39, 0x58, 0x58, 0xb8, 0xb3, 0x31, 0x3e, 0x4e, 0x36, 0x1f, 0x29, 0xc8, 0x2c, 0x61, 0x06, 0x09, 0x2b, 0x74, 0xcc, 0xac, 0xa6, 0xec, 0xfc, 0x15, 0xe5, 0x81, 0xc5, 0x0c, 0xa6, 0x7a, 0x31, 0x4f, 0x2f, 0xe1, 0x57, 0xbb, 0xec, 0xde, 0xd0, 0xa2, 0x94, 0x08, 0x5f, 0x5d, 0x1a, 0xd6, 0x4e, 0xab, 0x16, 0x9f, 0x56, 0x9d, 0x6c, 0x19, 0x22, 0x9b, 0xaf, 0x20, 0xe7, 0x4f, 0xcd, 0xf2, 0xc6, 0xe3, 0x6f, 0xb6, 0x7d, 0xf6, 0x86, 0xdd, 0x7d, 0x08, 0x73, 0x23, 0xee, 0x04, 0xeb, 0xfb, 0x2b, 0x3e, 0x8f, 0x36, 0x83, 0xb3, 0x66, 0x9d, 0xaf, 0xc2, 0x29, 0x5d, 0xd2, 0x2a, 0xc8, 0x07, 0x3a, 0xb2, 0x57, 0x9f, 0x9e, 0x54, 0x57, 0x2c, 0x13, 0x76, 0x4b, 0x33, 0x58, 0xd5, 0x2b, 0x78, 0xa5, 0x20, 0x8b, 0xbb, 0xc3, 0x19, 0x46, 0x6f, 0x58, 0xd1, 0xaa, 0xa0, 0x3f, 0xad, 0xf2, 0x9c, 0xc3, 0x8c, 0xa3, 0xb3, 0xa8, 0xc8, 0xf7, 0x4d, 0x06, 0xb0, 0x55, 0x3e, 0x0d, 0x4f, 0xd1, 0xb1, 0x69, 0x2f, 0xbb, 0x97, 0xd0, 0xa8, 0x66, 0x60, 0x37, 0x46, 0x7c, 0x1a, 0xa1, 0x4c, 0x17, 0xae, 0x87, 0x7b, 0x6f, 0xd5, 0x2b, 0xc3, 0x5f, 0xc8, 0x66, 0x10, 0xe6, 0x41, 0xf4, 0xd8, 0x9d, 0x1d, 0xb3, 0x17, 0x23, 0x69, 0x3c, 0x3e, 0xb2, 0xfd, 0x6b, 0x5f, 0x10, 0x1c, 0x9a, 0x7f, 0x8a, 0x46, 0xf4, 0x66, 0xc6, 0x12, 0x83, 0x2e, 0x16, 0xa8, 0x61, 0xe7, 0x27, 0xe3, 0xd8, 0x61, 0xb6, 0x03, 0x53, 0xf4, 0x3e, 0x31, 0x5b, 0xf2, 0x1f, 0xb2, 0x3f, 0xb5, 0x24, 0x6b, 0xc0, 0x0b, 0x4e, 0xf9, 0x8e, 0xbe, 0x65, 0x46, 0x51, 0x2c, 0x36, 0x94, 0x39, 0xea, 0x4d, 0x0c, 0x8c, 0x04, 0x35, 0x69, 0x26, 0xd6, 0x77, 0xfa, 0xf2, 0xd0, 0x1f, 0x17, 0xce, 0xd2, 0xee, 0x45, 0xf0, 0x7e, 0xbf, 0x55, 0x6f, 0x5b, 0x1e, 0x66, 0x46, 0x39, 0x3b, 0x7a, 0x03, 0xc3, 0x35, 0x35, 0x74, 0xf3, 0x56, 0xfd, 0x94, 0x1a, 0xd4, 0x9e, 0xac, 0xf2, 0x79, 0x2b, 0x18, 0xe0, 0x6c, 0x6d, 0x44, 0x94, 0x99, 0xb4, 0x30, 0x35, 0x0e, 0x6b, 0xe5, 0xf0, 0x0b, 0x77, 0x09, 0xad, 0xb9, 0x5b, 0x8a, 0x4b, 0x7b, 0x55, 0xb7, 0x3c, 0x47, 0x2a, 0x97, 0xe7, 0x0d, 0xd4, 0x6b, 0x32, 0x68, 0xbd, 0x31, 0x83, 0x13, 0xc2, 0xb4, 0x48, 0x0c, 0x5c, 0x16, 0xf9, 0xdf, 0x45, 0xff, 0xcc, 0x8a, 0xeb, 0xbc, 0x2a, 0x0b, 0xd2, 0x6f, 0x8d, 0xcd, 0x5b, 0xe5, 0x60, 0xcb, 0xa4, 0x7a, 0x19, 0xc6, 0xb1, 0xf9, 0xf2, 0xfd, 0xbb, 0x93, 0x0f, 0x2f, 0x0f, 0x3f, 0x7c, 0xf5, 0xfe, 0xed, 0xab, 0x93, 0xa3, 0xcd, 0xce, 0x70, 0xe4, 0xec, 0xcb, 0xc5, 0x43, 0x5f, 0x93, 0xc9, 0x81, 0x4b, 0x62, 0xa6, 0xc8, 0x23, 0x5f, 0xe6, 0xd7, 0x86, 0xa1, 0xc1, 0x82, 0x80, 0x73, 0x1e, 0x7f, 0x83, 0x3b, 0x4b, 0x36, 0xbc, 0x33, 0xdc, 0x64, 0x45, 0x3a, 0xda, 0xa8, 0xa5, 0x29, 0xeb, 0x55, 0x11, 0x73, 0x5d, 0x27, 0x18, 0xd1, 0xae, 0x49, 0x8b, 0x2a, 0x66, 0x64, 0xb7, 0x78, 0xd6, 0xa1, 0xe7, 0xa7, 0x5f, 0x35, 0xc6, 0x3c, 0xd2, 0xc8, 0x80, 0xd1, 0xd8, 0xca, 0x8f, 0x9a, 0x5e, 0x60, 0x6c, 0xab, 0xc3, 0xc8, 0x71, 0xd7, 0x4e, 0x0b, 0x9d, 0x25, 0x9b, 0x34, 0x92, 0xa1, 0xdf, 0xa1, 0x4c, 0x72, 0x5a, 0x35, 0xc6, 0xb0, 0xc9, 0x72, 0x5c, 0x0c, 0x0d, 0x9f, 0x92, 0xbe, 0x0a, 0xaf, 0x5c, 0xa0, 0x5d, 0x1b, 0x3d, 0x93, 0xf6, 0x00, 0x9a, 0x7d, 0x76, 0x9b, 0xe1, 0xe6, 0xc9, 0x5b, 0x2f, 0x57, 0x15, 0x6e, 0xf3, 0xf7, 0x46, 0x1b, 0x21, 0xee, 0xf7, 0x0a, 0x6e, 0x3d, 0xf3, 0x82, 0x3e, 0x64, 0xc4, 0x4c, 0x57, 0xe4, 0x95, 0x73, 0x0a, 0xa8, 0xa6, 0x70, 0xa1, 0xc0, 0xe1, 0x75, 0x76, 0x78, 0xfe, 0x4d, 0x54, 0x91, 0x75, 0xb9, 0x3c, 0x42, 0x8a, 0x50, 0xca, 0xeb, 0x46, 0x2e, 0xc8, 0xdb, 0xf1, 0x38, 0x41, 0xa6, 0xc8, 0x3c, 0x9f, 0x54, 0x29, 0x7d, 0x93, 0x7e, 0x4c, 0x3f, 0x35, 0x64, 0xdd, 0x19, 0xee, 0xec, 0xdb, 0x97, 0xe3, 0xdf, 0xed, 0xed, 0x91, 0x06, 0xbf, 0x32, 0xfb, 0xb2, 0x65, 0x5e, 0x29, 0x6a, 0x73, 0x33, 0x17, 0xa3, 0xba, 0xdc, 0x86, 0xd8, 0xae, 0x45, 0x1d, 0x48, 0xaf, 0x8d, 0xb4, 0x05, 0x1d, 0x29, 0x51, 0x9b, 0xe3, 0x0c, 0xf6, 0x04, 0x8c, 0x4e, 0xd2, 0x68, 0x0c, 0xbf, 0x30, 0xf2, 0x7a, 0x1e, 0x2a, 0xe3, 0x5b, 0xf9, 0xe9, 0x58, 0x92, 0x50, 0xd2, 0xa9, 0xf9, 0x2b, 0x79, 0x08, 0xb6, 0x69, 0x65, 0xed, 0x1b, 0xa6, 0xab, 0x1a, 0xb3, 0x36, 0x7a, 0x4e, 0xa6, 0x0b, 0x72, 0x67, 0x42, 0xae, 0x50, 0x74, 0x2f, 0x97, 0xcb, 0x4f, 0x02, 0x39, 0x4c, 0xd2, 0xe9, 0xc7, 0x9b, 0xb4, 0x9a, 0xb1, 0x2d, 0x64, 0x28, 0x66, 0x92, 0xcf, 0xf3, 0xe6, 0x8e, 0x0d, 0xda, 0xae, 0x31, 0xcd, 0x81, 0x51, 0xda, 0x40, 0x73, 0x8f, 0x2e, 0x8d, 0xad, 0x4f, 0xda, 0x27, 0xa9, 0xf7, 0x79, 0xe3, 0xdb, 0xb2, 0x50, 0x91, 0x1a, 0xab, 0xe2, 0xd8, 0x6f, 0x07, 0xe2, 0xb1, 0xe1, 0x7b, 0x84, 0x69, 0x3a, 0xda, 0x55, 0x36, 0xe8, 0x33, 0x29, 0x25, 0x9f, 0xa4, 0xbe, 0x33, 0x52, 0x7e, 0x91, 0x44, 0x54, 0x44, 0xa4, 0x0d, 0x25, 0xdf, 0x66, 0x77, 0xc6, 0x70, 0xce, 0x0b, 0xc7, 0x29, 0xd9, 0xb0, 0xcf, 0xc8, 0xb2, 0x63, 0x5d, 0x34, 0x57, 0x2f, 0x7a, 0x26, 0x81, 0x10, 0x96, 0x24, 0xa1, 0xe7, 0x80, 0xdf, 0x57, 0x3d, 0x9c, 0x86, 0xd8, 0xac, 0x5b, 0x2c, 0x19, 0x5f, 0x0a, 0x0f, 0x71, 0x6c, 0x7e, 0x5e, 0x14, 0xd9, 0x5c, 0x8e, 0xef, 0x7c, 0xdd, 0x01, 0xd8, 0x67, 0xcd, 0x94, 0xbf, 0xe7, 0x1b, 0xdd, 0x19, 0xee, 0x19, 0x47, 0xf5, 0xd3, 0x46, 0x65, 0x92, 0xa6, 0x0b, 0x19, 0xab, 0x68, 0xd7, 0xfe, 0x6a, 0xd4, 0xfb, 0x99, 0xe0, 0x36, 0x55, 0xee, 0xd0, 0xdb, 0x67, 0xce, 0xde, 0x50, 0x1c, 0x32, 0x9d, 0xb1, 0x1c, 0xf1, 0x1f, 0xad, 0x66, 0x85, 0xc8, 0x45, 0x67, 0x38, 0x5f, 0xcb, 0x56, 0x19, 0x26, 0xeb, 0xd8, 0x34, 0x7a, 0x6a, 0x59, 0xc1, 0x51, 0x54, 0x95, 0xe6, 0xac, 0x5b, 0xe7, 0xb9, 0xc5, 0xca, 0x46, 0xf7, 0x9a, 0x08, 0x37, 0xf7, 0x36, 0x66, 0x3b, 0x76, 0xd1, 0x03, 0xcd, 0x24, 0x34, 0x57, 0x7b, 0x2d, 0xce, 0xb6, 0x84, 0x06, 0x97, 0x7e, 0x61, 0xd8, 0xd8, 0xbf, 0x2e, 0xa0, 0x99, 0x19, 0x82, 0xf9, 0x85, 0x32, 0x4b, 0x68, 0xb1, 0x25, 0xa8, 0xdf, 0xa8, 0x44, 0xa6, 0x49, 0x58, 0xdf, 0xeb, 0x92, 0x33, 0x05, 0x58, 0x71, 0x64, 0x27, 0x72, 0x68, 0x06, 0x90, 0x1f, 0x50, 0x7c, 0x8d, 0x07, 0x1b, 0xc9, 0x56, 0x36, 0xba, 0x34, 0xe3, 0x6d, 0xd0, 0x38, 0x7b, 0x07, 0xf4, 0xdf, 0x7d, 0xfc, 0xf7, 0xd1, 0x86, 0xe6, 0xf4, 0xf9, 0x5b, 0x4f, 0xd2, 0xbc, 0x2b, 0x8b, 0x38, 0x10, 0xe7, 0x84, 0xfb, 0x80, 0x9d, 0xcb, 0x7d, 0x8c, 0x87, 0x75, 0xd6, 0x13, 0xde, 0xe5, 0x50, 0xdd, 0xd2, 0x6d, 0x58, 0xb0, 0x2f, 0xe2, 0x3a, 0x63, 0x67, 0x88, 0x59, 0xd9, 0xd4, 0xa8, 0x87, 0xf0, 0x1f, 0xea, 0xad, 0x9a, 0x7e, 0xa8, 0xb2, 0xab, 0xb4, 0xbe, 0x4a, 0x56, 0x0d, 0x13, 0xa1, 0xa1, 0xdb, 0xee, 0x70, 0xcb, 0x79, 0xee, 0x5c, 0x6c, 0xf2, 0xe9, 0x91, 0xda, 0x7d, 0xee, 0x14, 0x39, 0xf4, 0x31, 0x2f, 0x6f, 0xf4, 0x99, 0xa1, 0x24, 0xd9, 0xc5, 0xd4, 0x02, 0x73, 0x9a, 0xf0, 0x99, 0xd0, 0x63, 0x7e, 0x08, 0x7b, 0x41, 0xda, 0x24, 0x65, 0x00, 0x1a, 0x16, 0x77, 0x61, 0x76, 0x8c, 0x2c, 0xba, 0x39, 0xce, 0x8d, 0x6c, 0x57, 0xcc, 0x3b, 0x30, 0x4d, 0x45, 0xcf, 0xcb, 0x2f, 0xc4, 0x6d, 0x2b, 0xff, 0x86, 0x3c, 0x15, 0xed, 0xab, 0xe6, 0x30, 0x77, 0x57, 0xf5, 0xba, 0x9f, 0xb4, 0x95, 0x41, 0x5a, 0x4d, 0x47, 0x16, 0xcb, 0x91, 0x12, 0xa5, 0xeb, 0xfc, 0x12, 0xb6, 0x46, 0xcc, 0x81, 0xc1, 0x0e, 0xa9, 0x7f, 0xe9, 0x92, 0x98, 0x19, 0x0f, 0xc9, 0x51, 0xba, 0xaa, 0x1f, 0x70, 0x47, 0x3c, 0xa6, 0xcb, 0xef, 0x58, 0x47, 0x31, 0x87, 0xf3, 0xfd, 0x0d, 0xe8, 0x52, 0xe1, 0x9d, 0x47, 0x18, 0x2f, 0xbd, 0x9b, 0x35, 0xe6, 0x81, 0xde, 0x89, 0x8b, 0x64, 0x2b, 0xfd, 0x98, 0x8e, 0x92, 0xd3, 0x97, 0xe3, 0x33, 0xfa, 0x84, 0xa1, 0x8e, 0xe2, 0xd2, 0xcc, 0xe2, 0x64, 0xdc, 0x19, 0x2e, 0xbb, 0x6d, 0xb2, 0xa2, 0x8e, 0x39, 0x27, 0xc3, 0x6d, 0xd6, 0xf0, 0x81, 0xe6, 0xd5, 0xc8, 0x64, 0x8d, 0xa5, 0x8f, 0x80, 0x38, 0xc5, 0x77, 0x29, 0xf9, 0x22, 0xe1, 0xab, 0x16, 0x7c, 0x68, 0x69, 0x6e, 0xfe, 0x6c, 0xdb, 0xba, 0x6a, 0x06, 0x4a, 0x0b, 0x36, 0x4e, 0x58, 0xaf, 0x2e, 0xc9, 0x06, 0xa9, 0xd5, 0x6e, 0xb4, 0x5f, 0x30, 0xbb, 0x11, 0xaa, 0x0a, 0xb2, 0x6c, 0xeb, 0x45, 0x34, 0x56, 0x13, 0xa5, 0x50, 0x41, 0x45, 0x2a, 0x4a, 0x37, 0x2a, 0xa5, 0x51, 0x20, 0x5d, 0x34, 0x47, 0x64, 0x6d, 0x9a, 0x19, 0x15, 0x74, 0x16, 0x51, 0x02, 0xf8, 0x50, 0xd4, 0x70, 0xba, 0x90, 0x14, 0xd1, 0x88, 0xff, 0x07, 0x03, 0x4d, 0x59, 0x45, 0x23, 0xaa, 0x47, 0x84, 0x22, 0x27, 0x1f, 0x29, 0x29, 0xcc, 0x6c, 0xaa, 0xd3, 0x78, 0xf6, 0xfe, 0x7f, 0x5d, 0xac, 0xcc, 0xc6, 0x47, 0xa4, 0x31, 0x29, 0x55, 0x24, 0x66, 0x68, 0x03, 0xd7, 0x39, 0xf6, 0x1e, 0xef, 0xb5, 0x1d, 0xd8, 0x20, 0x36, 0x63, 0x00, 0x64, 0xc9, 0x0b, 0xfa, 0xef, 0xbd, 0x5c, 0x19, 0x39, 0x2b, 0x78, 0x5e, 0x02, 0x9d, 0xcc, 0x3b, 0xc5, 0x17, 0x93, 0xb4, 0x19, 0x74, 0x20, 0xbd, 0x40, 0x6e, 0x23, 0xe2, 0x7b, 0x83, 0xe4, 0x15, 0x65, 0x62, 0x1f, 0xbd, 0xfd, 0x1a, 0x34, 0x70, 0xb6, 0xb7, 0x8f, 0xb0, 0x92, 0xb5, 0x1e, 0x66, 0xf8, 0x48, 0xcd, 0x8e, 0x04, 0x0e, 0x0b, 0x87, 0x8a, 0x2f, 0x64, 0xc2, 0x00, 0x6c, 0x94, 0xe2, 0x81, 0x48, 0x1b, 0x9a, 0x7d, 0x3a, 0xf9, 0x15, 0x18, 0xa2, 0x47, 0x03, 0xd9, 0x41, 0x71, 0xcc, 0x7c, 0xcc, 0xee, 0xdc, 0xdf, 0xb0, 0xab, 0xde, 0x56, 0xbb, 0x87, 0x5f, 0x78, 0x9b, 0xf4, 0x97, 0x03, 0x4a, 0x4d, 0x32, 0x5a, 0xea, 0xec, 0xa7, 0x5f, 0x26, 0x11, 0xe3, 0x3b, 0x1f, 0x71, 0xb6, 0xc0, 0xcf, 0xa5, 0x49, 0x40, 0x1c, 0xf3, 0x67, 0x16, 0x2f, 0x79, 0xf0, 0x94, 0x22, 0x4f, 0x04, 0x9f, 0x16, 0x56, 0x25, 0x19, 0x72, 0xe6, 0x17, 0x32, 0xc1, 0xba, 0x7b, 0x3f, 0x2d, 0xe7, 0x81, 0xac, 0x6b, 0x19, 0xae, 0xd0, 0xe7, 0xf7, 0x45, 0xbe, 0xc1, 0x98, 0x63, 0x66, 0x23, 0x5a, 0x74, 0xf7, 0x3a, 0x58, 0x9d, 0x1a, 0xea, 0x97, 0x93, 0x8c, 0xf4, 0x26, 0xbf, 0x88, 0xf8, 0x36, 0xa6, 0xc6, 0x9a, 0xd2, 0x28, 0x71, 0x1a, 0x6f, 0x4c, 0xfd, 0x37, 0x67, 0xab, 0x7b, 0x6b, 0x0e, 0x9d, 0xfc, 0x4c, 0x76, 0xd7, 0x06, 0xbe, 0xa7, 0xc9, 0x30, 0xb9, 0x2a, 0x57, 0xfd, 0x5c, 0xb2, 0x48, 0xc3, 0xf8, 0x05, 0xa7, 0x1a, 0x88, 0x37, 0x4a, 0x52, 0xaa, 0x5a, 0x7e, 0x7c, 0x26, 0x3f, 0xb2, 0x44, 0x37, 0xbc, 0x2d, 0xd9, 0x88, 0x1d, 0x45, 0xc3, 0x51, 0x4f, 0xb9, 0x42, 0xf9, 0x35, 0x6d, 0x9d, 0xd2, 0x8e, 0x73, 0x6c, 0xb6, 0x55, 0xdf, 0xb2, 0xa0, 0x3f, 0x0b, 0xf2, 0x89, 0xfd, 0x5b, 0x84, 0x20, 0xa3, 0xb4, 0x48, 0xbe, 0x71, 0x89, 0x7b, 0x40, 0x81, 0xa1, 0xec, 0x47, 0x49, 0x3f, 0x9f, 0xdf, 0x3d, 0xc8, 0xa0, 0x53, 0x05, 0x44, 0xed, 0x36, 0xcf, 0x98, 0x0b, 0xac, 0x9d, 0x2e, 0x81, 0x18, 0x36, 0xde, 0x50, 0x2e, 0x09, 0xd3, 0x2e, 0xf9, 0x5e, 0xf3, 0xe9, 0x47, 0x44, 0x5d, 0x44, 0x42, 0xf9, 0xeb, 0xd3, 0x84, 0x3d, 0x4e, 0x35, 0x8d, 0x1c, 0x01, 0x6c, 0x49, 0x72, 0x0a, 0x13, 0x4d, 0x92, 0x74, 0xce, 0x0b, 0xd6, 0xd9, 0x7a, 0xbd, 0x0c, 0x66, 0xae, 0x1f, 0x5e, 0x1d, 0xbf, 0x4b, 0xb6, 0x48, 0x03, 0xef, 0x1a, 0xb9, 0x2a, 0xde, 0x77, 0xb2, 0x66, 0xba, 0xb3, 0xfc, 0x98, 0xef, 0x18, 0x63, 0x73, 0x36, 0xd9, 0xb6, 0x46, 0x14, 0x3e, 0x47, 0x54, 0x68, 0x0d, 0x53, 0xb5, 0x4c, 0x61, 0x9a, 0x06, 0xae, 0x47, 0x67, 0xaa, 0x72, 0x69, 0x8b, 0xb5, 0x51, 0x79, 0x9b, 0x98, 0xa0, 0x11, 0x9e, 0xe1, 0xb4, 0x08, 0x04, 0x75, 0x32, 0xf6, 0x4b, 0x1b, 0x1b, 0xbb, 0x7b, 0x57, 0x39, 0xed, 0x51, 0x1c, 0x39, 0xec, 0xc0, 0xd1, 0x5c, 0x3d, 0x11, 0x17, 0x4e, 0xfb, 0x1d, 0x50, 0x96, 0x25, 0x6d, 0xca, 0x92, 0x44, 0xd2, 0x8c, 0xdc, 0x80, 0xdd, 0xe1, 0xa0, 0xc9, 0x6d, 0x8c, 0x76, 0x36, 0x12, 0x9b, 0x57, 0x6a, 0x76, 0x99, 0x13, 0xa7, 0x6d, 0xd0, 0xcb, 0x90, 0xd8, 0xc5, 0xaa, 0xb6, 0x7e, 0xcc, 0xd4, 0x9e, 0xd7, 0x28, 0xc6, 0x50, 0xbd, 0xe3, 0xb4, 0x3a, 0x97, 0xd1, 0x8d, 0x71, 0xb3, 0x7c, 0x6b, 0x5d, 0x26, 0x85, 0xa3, 0xda, 0xf8, 0x71, 0x23, 0xf1, 0xf2, 0x12, 0x5b, 0xe9, 0x89, 0xb9, 0xcb, 0x1c, 0xf2, 0x84, 0x80, 0x91, 0xc8, 0xf6, 0x0e, 0xcf, 0xb2, 0x79, 0xbe, 0xc8, 0x61, 0x7b, 0xf9, 0x53, 0x18, 0xc6, 0x82, 0x83, 0x6e, 0x4a, 0x3f, 0x86, 0x53, 0xd2, 0x5c, 0xdf, 0x94, 0x7e, 0x6d, 0xa6, 0x04, 0x8f, 0x18, 0xa7, 0x62, 0xc6, 0xad, 0xe6, 0xf6, 0x84, 0x6c, 0xb6, 0xf0, 0x9a, 0x90, 0xb1, 0xbd, 0x4b, 0x7d, 0xaa, 0xbc, 0x73, 0x89, 0xe8, 0xa5, 0x67, 0xa6, 0x96, 0x2c, 0x3f, 0x4e, 0xeb, 0xbd, 0xbd, 0xae, 0xa0, 0xab, 0x1d, 0x45, 0x89, 0xfd, 0x9e, 0x5a, 0xc2, 0x7c, 0xff, 0xee, 0x38, 0xd9, 0xa2, 0xea, 0x90, 0x67, 0x4f, 0xf6, 0xf6, 0xb7, 0xfd, 0x94, 0x12, 0x65, 0x00, 0xa1, 0xdc, 0xbc, 0xe3, 0x70, 0xac, 0x77, 0x01, 0xe7, 0xe5, 0x34, 0x15, 0x8d, 0xc3, 0x0d, 0x3d, 0xcb, 0xae, 0xf3, 0x29, 0x15, 0xe7, 0x50, 0x24, 0x9e, 0x78, 0xf0, 0x24, 0x33, 0x93, 0x0c, 0x76, 0xdc, 0xa5, 0xf2, 0xf2, 0xec, 0x8d, 0x89, 0x64, 0x35, 0x65, 0x4a, 0x98, 0x36, 0x34, 0xd0, 0xc8, 0xde, 0xf9, 0xb3, 0x96, 0x28, 0x41, 0xda, 0xe3, 0x09, 0xa2, 0x75, 0x71, 0xe9, 0x0c, 0x74, 0x8c, 0x81, 0x0b, 0xfc, 0x0c, 0x87, 0xb2, 0x59, 0xc2, 0x7a, 0x6d, 0xdc, 0x98, 0x52, 0x4f, 0xba, 0x07, 0x28, 0x73, 0xda, 0x20, 0x41, 0x52, 0x40, 0xb8, 0xa7, 0x6e, 0x50, 0xbb, 0xfb, 0xbe, 0x26, 0xd4, 0x1e, 0x35, 0xf4, 0x94, 0x83, 0x70, 0x8c, 0xe6, 0x12, 0x1f, 0xf2, 0x37, 0x72, 0x32, 0xb5, 0xd9, 0xa7, 0x1c, 0x0f, 0x9d, 0xbd, 0x78, 0x0d, 0x27, 0xac, 0x28, 0x28, 0xbf, 0x4d, 0xf5, 0xf1, 0x40, 0x8e, 0x9b, 0xd7, 0x77, 0x54, 0x08, 0x41, 0x0a, 0xa9, 0xbf, 0x91, 0x3d, 0x3f, 0x86, 0x79, 0xc2, 0xd3, 0xf3, 0x51, 0x1c, 0x3d, 0x50, 0x8a, 0x6d, 0xee, 0x46, 0xe8, 0x2b, 0x56, 0xc1, 0x6f, 0x8e, 0x68, 0x5a, 0xce, 0x3a, 0x26, 0x3b, 0x6d, 0x82, 0x27, 0xf0, 0xc0, 0xfd, 0x38, 0x54, 0x09, 0x8e, 0x17, 0xf7, 0x64, 0x13, 0xa5, 0xb2, 0x7b, 0xfd, 0x67, 0xf1, 0xc0, 0x98, 0x47, 0x0d, 0x2c, 0xf0, 0x17, 0x71, 0xc0, 0x7b, 0x7c, 0x4e, 0x2f, 0x03, 0x89, 0x5d, 0x5b, 0x65, 0xc8, 0xe9, 0x6a, 0x94, 0x25, 0x9e, 0x60, 0xe3, 0x42, 0x8b, 0x86, 0xf2, 0x05, 0x91, 0x0e, 0x40, 0xc9, 0x5e, 0x9d, 0xbb, 0xc9, 0x8e, 0x1d, 0x73, 0x5d, 0xb6, 0x4e, 0x38, 0x48, 0x99, 0x9c, 0xbd, 0xfe, 0x41, 0xb9, 0x65, 0xcc, 0x80, 0x87, 0x23, 0xea, 0x8f, 0x36, 0x2d, 0xcc, 0x58, 0x14, 0x94, 0xa2, 0x96, 0x4b, 0xba, 0x27, 0xbb, 0x89, 0x10, 0x0e, 0xdf, 0x76, 0x59, 0x8c, 0xb4, 0xd5, 0x1b, 0x2f, 0xf0, 0xbb, 0x6e, 0xac, 0xa9, 0x64, 0x4b, 0xe6, 0x4f, 0x3f, 0xf2, 0xaf, 0x99, 0xc7, 0x9a, 0x7f, 0x35, 0x57, 0xab, 0xc5, 0xc4, 0x9c, 0x67, 0xd1, 0xfc, 0x69, 0x23, 0xe1, 0x60, 0xeb, 0x85, 0xec, 0xe7, 0x1a, 0xb3, 0x33, 0xd7, 0x42, 0x1d, 0xf5, 0x2d, 0xb6, 0x76, 0x8d, 0x67, 0xa7, 0x45, 0x03, 0x2e, 0x31, 0xcf, 0x1c, 0x1e, 0xfb, 0xb2, 0x03, 0x55, 0xef, 0xbd, 0x21, 0xcf, 0x1f, 0xdf, 0xfc, 0xf9, 0xc7, 0xe7, 0x8f, 0x1e, 0xa7, 0xcf, 0xd2, 0xe9, 0xd3, 0x8b, 0xcf, 0xd3, 0x27, 0xb3, 0x27, 0xcf, 0x9e, 0xef, 0x7f, 0xfe, 0x24, 0x7d, 0xf6, 0xf8, 0x22, 0x7d, 0xba, 0x97, 0xed, 0x3d, 0xbf, 0xd8, 0x7f, 0x34, 0x9b, 0x5d, 0x64, 0x9f, 0xcf, 0x9e, 0xa5, 0x1b, 0x23, 0x98, 0x5f, 0x3a, 0xf5, 0x90, 0xd5, 0x6a, 0xe0, 0x2d, 0x4d, 0xc6, 0xdf, 0x1c, 0x0e, 0xf7, 0x92, 0xab, 0xec, 0x56, 0x2f, 0x18, 0x7b, 0x34, 0x6d, 0xba, 0x5d, 0x26, 0x09, 0xd5, 0xfd, 0x8b, 0xd5, 0x0a, 0x41, 0x4a, 0x97, 0x26, 0x5f, 0x09, 0x34, 0x60, 0xde, 0x45, 0xdd, 0x56, 0x4e, 0xa8, 0xb3, 0xfe, 0xc3, 0x03, 0xf5, 0xd9, 0xd3, 0xba, 0xba, 0x97, 0xff, 0xc4, 0xbc, 0x33, 0x7f, 0x93, 0x4e, 0x8d, 0x92, 0x64, 0xf6, 0x44, 0x1e, 0x1c, 0x1b, 0xd3, 0xd6, 0xb0, 0xe9, 0x41, 0x22, 0x7f, 0x21, 0x2f, 0xb1, 0x37, 0xc6, 0xd7, 0x55, 0xb9, 0x5a, 0x9e, 0x95, 0xf3, 0x7c, 0x7a, 0xb7, 0x6e, 0x38, 0xff, 0xb1, 0xd6, 0x2f, 0x8e, 0x98, 0x85, 0xe7, 0x75, 0xf6, 0x1b, 0x9a, 0x56, 0x1e, 0x3b, 0x7e, 0x80, 0x6d, 0x35, 0x9c, 0xe6, 0xcb, 0x2b, 0x8a, 0xf3, 0xbe, 0x40, 0x7a, 0x1f, 0x85, 0x66, 0xf8, 0x07, 0x71, 0x9b, 0x6a, 0x2c, 0x37, 0xb2, 0x96, 0xf3, 0xd4, 0xb7, 0x45, 0xe3, 0xca, 0xb5, 0xf6, 0x4d, 0xdd, 0x54, 0x92, 0x52, 0x9a, 0x07, 0x7e, 0x3c, 0xf7, 0x21, 0xbe, 0xed, 0xaa, 0x6d, 0xb3, 0xf3, 0x42, 0x7e, 0x35, 0x4a, 0xde, 0x21, 0x4e, 0xbe, 0x5a, 0xb2, 0x79, 0x01, 0x7f, 0x3e, 0xff, 0xae, 0x7b, 0xd1, 0x68, 0xf2, 0x42, 0x31, 0x5c, 0x81, 0x67, 0x76, 0xf4, 0xfd, 0xbb, 0x93, 0x83, 0xee, 0x3e, 0xa1, 0xca, 0xa8, 0x3e, 0xd8, 0xd9, 0x41, 0xc8, 0xe7, 0x2a, 0xbd, 0xbd, 0x1d, 0xd5, 0xd9, 0xce, 0xac, 0x9c, 0xd6, 0x3b, 0x75, 0x3d, 0xd7, 0xdd, 0x68, 0x17, 0xfd, 0x7d, 0x02, 0x6f, 0x6e, 0xb9, 0x00, 0xdb, 0xca, 0x66, 0xc3, 0xba, 0x0e, 0x72, 0x83, 0xc6, 0x2f, 0x35, 0xf3, 0xe0, 0x48, 0xf2, 0xd1, 0x20, 0xe7, 0x86, 0x66, 0x77, 0xc7, 0xe3, 0x6f, 0x12, 0x7d, 0x19, 0xdb, 0x6b, 0x43, 0xe2, 0x36, 0x2f, 0x67, 0x10, 0x51, 0xc3, 0x52, 0x61, 0xd8, 0x7f, 0xf4, 0x1d, 0x3a, 0xa4, 0x4e, 0x97, 0xfc, 0x87, 0x14, 0xad, 0xe4, 0xcd, 0xda, 0x0c, 0xbe, 0xa7, 0x1d, 0x07, 0x88, 0x5d, 0x44, 0x3c, 0xfe, 0xaf, 0x4e, 0xb0, 0x34, 0x71, 0x4f, 0x3a, 0x8f, 0x50, 0xb7, 0x2a, 0xdd, 0x50, 0xef, 0x65, 0x59, 0x19, 0xe1, 0xb1, 0xa8, 0x63, 0x5e, 0x50, 0xbd, 0xe5, 0x35, 0xab, 0x7d, 0x35, 0x27, 0x21, 0x9a, 0x61, 0x0a, 0x6f, 0x70, 0x73, 0x8c, 0x48, 0x5e, 0x1c, 0xf9, 0x87, 0x15, 0x8d, 0x6f, 0xe9, 0xe1, 0xf5, 0x79, 0xd1, 0x56, 0x85, 0x0b, 0x7e, 0x40, 0x1c, 0x9b, 0xc9, 0x4a, 0x45, 0x59, 0x60, 0x21, 0x20, 0xe9, 0x1f, 0x62, 0x82, 0x74, 0x88, 0xaa, 0x2a, 0x3d, 0xa5, 0x76, 0xf8, 0x2d, 0x8c, 0x4b, 0x23, 0x1d, 0xf3, 0x4b, 0x0d, 0xaf, 0xf7, 0xe4, 0xd7, 0x91, 0xe8, 0x6a, 0x90, 0xb4, 0x2c, 0x75, 0xe0, 0x24, 0x14, 0x28, 0x7d, 0x0d, 0xa9, 0x25, 0x92, 0x96, 0xc9, 0xe9, 0x40, 0xad, 0xf2, 0xf7, 0xe0, 0x26, 0x50, 0xb1, 0x8f, 0x7b, 0x9c, 0xd2, 0xa8, 0xf4, 0x5e, 0x62, 0x78, 0x71, 0x5f, 0x78, 0x89, 0x6d, 0xa4, 0x95, 0xc1, 0xcd, 0x60, 0x9e, 0xe9, 0x5a, 0x7b, 0x48, 0xb6, 0xb5, 0x3a, 0x5f, 0xac, 0xb6, 0xb5, 0xbb, 0x1e, 0xcd, 0xb9, 0xd7, 0xbd, 0xcd, 0x51, 0x4d, 0x9d, 0x22, 0xa1, 0x3f, 0x26, 0xda, 0x4b, 0x2f, 0x48, 0x4b, 0x03, 0x86, 0x32, 0xaf, 0xb1, 0x29, 0x93, 0x5a, 0xa2, 0x04, 0x85, 0xc0, 0x70, 0x20, 0x23, 0xf6, 0x28, 0xd5, 0x9c, 0x6a, 0xe8, 0xe7, 0xa5, 0x53, 0xb0, 0x0c, 0xe1, 0x19, 0x5e, 0x88, 0x32, 0xc4, 0x51, 0xc0, 0xb7, 0xb9, 0x18, 0x89, 0x13, 0x08, 0xb9, 0xa8, 0x8e, 0xb3, 0xbd, 0xf8, 0x67, 0x10, 0x5f, 0x13, 0x8d, 0x91, 0x3b, 0x7e, 0x46, 0xe7, 0x17, 0x73, 0x0d, 0x49, 0x3a, 0x3e, 0x57, 0x38, 0xe6, 0xa8, 0xdd, 0x95, 0x6a, 0x4f, 0xae, 0x2e, 0x50, 0xcf, 0x76, 0x5d, 0x4a, 0xba, 0x26, 0x4d, 0x94, 0xe6, 0xc9, 0x73, 0xec, 0x92, 0xba, 0xad, 0xe4, 0x6c, 0x19, 0x23, 0x69, 0xed, 0x92, 0xf4, 0xeb, 0x30, 0x5a, 0xe9, 0x36, 0x33, 0x66, 0xbd, 0x06, 0x05, 0x0f, 0x98, 0x48, 0x95, 0xe9, 0x17, 0x8a, 0xb2, 0x3b, 0x29, 0x9d, 0x47, 0x2c, 0x17, 0x55, 0x93, 0xfa, 0xbd, 0x09, 0x68, 0x72, 0xbf, 0x3d, 0xe5, 0x9e, 0xcc, 0xcd, 0x2c, 0x71, 0x8f, 0x24, 0xce, 0xce, 0x74, 0xc7, 0x08, 0x7f, 0x03, 0x4a, 0x35, 0x6a, 0x9e, 0xfa, 0x01, 0xcd, 0xe9, 0x8b, 0xed, 0x98, 0x9f, 0xd8, 0x8d, 0xa4, 0x14, 0x45, 0xf7, 0x74, 0x5e, 0xd6, 0x1a, 0x7f, 0x21, 0xe5, 0x82, 0x0b, 0x6e, 0x0d, 0x37, 0xf8, 0x5e, 0x7e, 0xc0, 0x47, 0xd3, 0x19, 0x8e, 0x9f, 0x1a, 0xc8, 0x14, 0x2f, 0x9c, 0xb2, 0x21, 0xb6, 0xaa, 0xab, 0x12, 0x26, 0x6d, 0xc3, 0x5a, 0x93, 0x07, 0xc9, 0x8f, 0x3f, 0x0e, 0x12, 0x63, 0x24, 0x77, 0x86, 0xfb, 0xb1, 0x31, 0x3f, 0x35, 0xb4, 0xf8, 0x23, 0x57, 0x2a, 0xfd, 0x78, 0x4d, 0x46, 0x20, 0x39, 0x98, 0xeb, 0x39, 0x45, 0x8f, 0x58, 0xcd, 0x6e, 0x7b, 0xe5, 0xb8, 0x10, 0x7a, 0x4d, 0x6a, 0x96, 0xb3, 0xdb, 0x39, 0x15, 0xd3, 0x1c, 0xd8, 0x6a, 0x51, 0x88, 0x75, 0xc2, 0xc4, 0x89, 0x7b, 0x0f, 0x39, 0xb0, 0xf9, 0xbb, 0x4d, 0x47, 0x48, 0xb1, 0xbd, 0xab, 0x32, 0x96, 0xf4, 0x10, 0x55, 0xb9, 0x27, 0xa6, 0xb4, 0x6c, 0x18, 0xe6, 0x66, 0xc2, 0xe1, 0x52, 0x62, 0xa6, 0xa7, 0xe4, 0x5c, 0xe7, 0xfa, 0xaf, 0xae, 0x18, 0x77, 0xa6, 0x24, 0x15, 0xc5, 0x2d, 0xaf, 0xee, 0x6a, 0xca, 0xe4, 0x90, 0xd9, 0x04, 0xb7, 0xa7, 0x37, 0xb9, 0x58, 0xf6, 0x9e, 0xaa, 0x79, 0x88, 0x0f, 0x10, 0xf3, 0x6b, 0xb1, 0x4e, 0x33, 0xa3, 0xcd, 0xe1, 0xa6, 0x8d, 0x85, 0x49, 0xbe, 0x4c, 0x90, 0x44, 0x6f, 0x13, 0xb3, 0x5d, 0xf2, 0x61, 0xf0, 0x49, 0x2f, 0x29, 0xae, 0xf4, 0xd3, 0x1d, 0x5d, 0x55, 0x3b, 0x95, 0xa5, 0x6a, 0x14, 0x5f, 0xbe, 0x2f, 0xfc, 0x27, 0xe2, 0x70, 0x42, 0x5a, 0x24, 0x4c, 0x0f, 0x1d, 0x00, 0xde, 0x10, 0x17, 0x1e, 0x1a, 0x0e, 0x01, 0x30, 0xb2, 0x64, 0x50, 0x10, 0x22, 0x09, 0x64, 0x1e, 0xdc, 0x51, 0x09, 0xd8, 0x72, 0x1e, 0xf0, 0x5b, 0x49, 0x05, 0xd4, 0x2a, 0x6b, 0xba, 0xe0, 0x84, 0x44, 0x71, 0x53, 0x08, 0x92, 0xc0, 0xb8, 0x84, 0x57, 0x66, 0x8a, 0x1c, 0x06, 0x49, 0x97, 0x91, 0x62, 0xb2, 0x88, 0x15, 0x48, 0x32, 0x30, 0xd0, 0x81, 0x68, 0x3e, 0x5f, 0x24, 0x1b, 0xfd, 0x9a, 0xd0, 0x46, 0xf7, 0x0d, 0x64, 0x40, 0x3a, 0x17, 0xa7, 0x14, 0xca, 0x63, 0x22, 0x5b, 0x92, 0x49, 0x37, 0xfc, 0x1b, 0x27, 0xb4, 0x71, 0x2d, 0x97, 0xc8, 0xd7, 0x6d, 0x4e, 0x10, 0xae, 0x23, 0x91, 0x7d, 0x97, 0x65, 0xe5, 0xd1, 0x87, 0xcb, 0x53, 0xca, 0xe1, 0xbe, 0x86, 0xf4, 0x62, 0x69, 0xe7, 0x3d, 0x1d, 0x84, 0xe2, 0xf5, 0x6d, 0x2a, 0x35, 0xa1, 0xef, 0x89, 0x4b, 0x5a, 0x45, 0x87, 0xbd, 0xd1, 0xcb, 0x39, 0x00, 0x3a, 0xb4, 0xc8, 0x05, 0x2a, 0x51, 0xb0, 0x3b, 0x7b, 0xdb, 0xb6, 0x2c, 0x12, 0x28, 0x1b, 0x9c, 0x99, 0x2d, 0x7a, 0xc2, 0xc6, 0x55, 0xc9, 0xb9, 0x44, 0x1b, 0x07, 0x54, 0xb1, 0x27, 0xb7, 0x11, 0x6b, 0x54, 0xfc, 0x83, 0xce, 0x70, 0xc8, 0xd4, 0xfa, 0xe6, 0xf4, 0xcd, 0x51, 0x3b, 0x03, 0x17, 0x3f, 0x89, 0x39, 0x5f, 0x0d, 0xbb, 0x7a, 0x6d, 0x38, 0x0c, 0xd3, 0x40, 0x1a, 0x68, 0x73, 0x4c, 0x5b, 0x66, 0x5a, 0x97, 0x59, 0xb3, 0xbc, 0x59, 0xe5, 0xb3, 0xad, 0x6d, 0xa2, 0x11, 0xaa, 0x33, 0x19, 0xa2, 0xb8, 0x89, 0x4d, 0xc3, 0x3a, 0xd9, 0x62, 0x05, 0xbd, 0xca, 0x9a, 0x55, 0x55, 0xb0, 0xc3, 0x9c, 0xe6, 0xde, 0x35, 0xb2, 0x8c, 0x74, 0x66, 0x51, 0xe7, 0x3b, 0x07, 0x04, 0x2c, 0x87, 0x53, 0x98, 0x78, 0x40, 0x63, 0xee, 0x9e, 0xda, 0xbc, 0x0f, 0x1c, 0x3c, 0xd6, 0x12, 0xc8, 0x2f, 0x7f, 0x27, 0x92, 0xc3, 0xb3, 0xb3, 0x57, 0x87, 0xe7, 0x87, 0x76, 0x6d, 0x10, 0xd0, 0x60, 0x2e, 0xd0, 0x90, 0x0d, 0x1f, 0x22, 0xad, 0x89, 0x9e, 0xdc, 0xfc, 0xfd, 0xfb, 0xf1, 0xd1, 0xbb, 0xee, 0xc1, 0x9e, 0xbd, 0x3b, 0x25, 0x24, 0xa2, 0xdf, 0xff, 0x78, 0xb8, 0x5c, 0xce, 0x35, 0x28, 0xf8, 0x2a, 0x6d, 0xd2, 0xcd, 0xe0, 0x56, 0xef, 0x6f, 0xd3, 0xfc, 0x6e, 0xec, 0xfc, 0x2e, 0x44, 0xc8, 0xc1, 0xd4, 0x4f, 0x46, 0x74, 0xa0, 0xd5, 0x54, 0xd3, 0x6f, 0xed, 0x6e, 0x60, 0x03, 0x90, 0x3d, 0xdb, 0xbf, 0x90, 0xd2, 0x71, 0x32, 0x4d, 0x24, 0xd3, 0xcd, 0x9a, 0x1b, 0x23, 0x3b, 0x9b, 0xae, 0x1a, 0x25, 0x79, 0xd0, 0x17, 0x95, 0x6f, 0x77, 0xf7, 0x25, 0x38, 0x1e, 0x17, 0x46, 0x61, 0x2e, 0x00, 0xf4, 0x00, 0x43, 0x68, 0x48, 0x91, 0xd6, 0xd9, 0x32, 0x17, 0x8b, 0xd0, 0xd4, 0x2c, 0xe3, 0xb0, 0x0a, 0xd0, 0x04, 0x78, 0x4a, 0xc1, 0x86, 0xfc, 0xce, 0xdc, 0xc6, 0x61, 0x72, 0x24, 0x65, 0x6e, 0x58, 0xb8, 0xf9, 0x41, 0xf0, 0x50, 0x63, 0xcd, 0x07, 0x61, 0xf7, 0x71, 0x5e, 0xe1, 0x21, 0x6c, 0x6c, 0x74, 0x45, 0x00, 0xd7, 0xb4, 0x9a, 0x87, 0x68, 0xda, 0xb4, 0xe9, 0xb0, 0x9e, 0x36, 0x22, 0x49, 0x4f, 0xc3, 0xf4, 0x92, 0xc8, 0xcb, 0x3c, 0x6a, 0xb4, 0x6b, 0x63, 0x34, 0xd1, 0xbf, 0x76, 0xf6, 0x46, 0xbb, 0x1b, 0xe1, 0xe4, 0xe9, 0xb2, 0x00, 0x1d, 0xc5, 0x46, 0xd5, 0x88, 0x1b, 0x36, 0x65, 0x79, 0xef, 0xfc, 0x98, 0x85, 0x19, 0xfd, 0x74, 0x69, 0xc6, 0x8f, 0x4e, 0x65, 0x78, 0x1a, 0x64, 0x81, 0x50, 0xe6, 0x6e, 0xa5, 0x4c, 0xd1, 0xf0, 0xc4, 0xa2, 0xbc, 0xa1, 0x95, 0x18, 0x52, 0x9b, 0xcf, 0x5b, 0x30, 0x36, 0x1b, 0xf1, 0x6d, 0x2e, 0x80, 0x18, 0x95, 0x75, 0x77, 0x3b, 0x1a, 0xb9, 0x56, 0xe5, 0xd3, 0xd7, 0xf0, 0x6c, 0xca, 0x2b, 0xac, 0x48, 0x4b, 0x09, 0x3e, 0x8a, 0x80, 0xe1, 0x72, 0x01, 0xdf, 0x9b, 0xfb, 0x99, 0x19, 0x43, 0x4d, 0x0f, 0x19, 0xd2, 0x20, 0xa4, 0x95, 0xbe, 0xe0, 0x22, 0xf5, 0xc0, 0x96, 0x7f, 0x93, 0xde, 0xe6, 0x8b, 0xd5, 0x02, 0x1f, 0x23, 0xda, 0x96, 0xc7, 0x24, 0x9e, 0x00, 0xaf, 0x22, 0xa7, 0xa7, 0x80, 0xc8, 0x37, 0xeb, 0xc4, 0xb3, 0xe8, 0x63, 0x42, 0xc6, 0x88, 0xe4, 0x91, 0x5b, 0x1e, 0x94, 0x05, 0x04, 0x1c, 0xea, 0x8e, 0x37, 0xc0, 0xe8, 0x07, 0x29, 0xe5, 0x1c, 0xd4, 0xa5, 0x4d, 0xd8, 0x89, 0xb0, 0x73, 0x46, 0x49, 0x10, 0x1d, 0xce, 0xcb, 0x57, 0xcd, 0xaa, 0xbc, 0x9c, 0xd9, 0x7b, 0x43, 0xfa, 0x63, 0x5e, 0xac, 0xcc, 0x3e, 0xb3, 0x2f, 0x99, 0x83, 0x10, 0xf4, 0xab, 0xc0, 0x43, 0x88, 0xac, 0xfa, 0x31, 0x8a, 0x25, 0x34, 0x05, 0xf5, 0xd9, 0xe8, 0xd1, 0xfe, 0x68, 0x77, 0xd0, 0x32, 0xe8, 0x05, 0x4c, 0xc2, 0xdc, 0xae, 0x69, 0xbe, 0xb0, 0x85, 0xa6, 0xa3, 0xdf, 0xcc, 0x71, 0x83, 0x8c, 0xf0, 0x45, 0x7a, 0x8b, 0xe3, 0x8b, 0x1e, 0x6b, 0x99, 0xbc, 0xf8, 0xe6, 0x74, 0x7c, 0xbe, 0x77, 0x70, 0x76, 0xfa, 0xce, 0xfc, 0x97, 0xfe, 0xbe, 0x8f, 0xbf, 0xef, 0x07, 0x56, 0xe5, 0x6b, 0xc9, 0xa0, 0xd5, 0x62, 0x1d, 0x68, 0x28, 0xd0, 0x68, 0x78, 0x37, 0x13, 0x6f, 0x20, 0xd2, 0xcb, 0xc1, 0x06, 0xa7, 0xb6, 0x94, 0xb1, 0x7b, 0xc4, 0xde, 0xa7, 0x34, 0xc9, 0x6e, 0x94, 0x84, 0x89, 0x7c, 0x79, 0xa3, 0xda, 0x94, 0x14, 0xc1, 0x6b, 0x79, 0x7d, 0xd7, 0xd7, 0xcd, 0x05, 0xcc, 0x52, 0x9f, 0xa3, 0x40, 0x75, 0xc8, 0x0d, 0x6b, 0xff, 0x6a, 0x3a, 0x37, 0xda, 0x7d, 0x46, 0xb9, 0x24, 0xb3, 0x8c, 0x03, 0x2c, 0xf4, 0x93, 0x98, 0x61, 0x62, 0xae, 0x9f, 0x94, 0x2c, 0x04, 0x09, 0x86, 0xa0, 0x48, 0x8d, 0xea, 0x98, 0xd9, 0x98, 0x39, 0xe6, 0x46, 0x13, 0xe7, 0xed, 0x28, 0xb2, 0xa0, 0x42, 0x80, 0x01, 0xe4, 0x7c, 0x27, 0x16, 0xaa, 0xf3, 0x51, 0x67, 0xff, 0xf6, 0xf4, 0x3c, 0x49, 0x2f, 0x2e, 0x14, 0x14, 0x80, 0xca, 0x12, 0x48, 0x63, 0xdd, 0x59, 0xb2, 0x24, 0x4b, 0x9b, 0x58, 0xea, 0x86, 0xe8, 0x23, 0xe7, 0x27, 0xe3, 0x1d, 0x72, 0x61, 0x71, 0x12, 0xdc, 0xf8, 0xed, 0xf1, 0xa0, 0xe5, 0xab, 0xf6, 0x53, 0x5f, 0xb6, 0x49, 0x52, 0xc6, 0x15, 0x8a, 0xd4, 0x93, 0x85, 0x0e, 0x6a, 0x86, 0x92, 0xea, 0x70, 0xa4, 0x1b, 0x52, 0x0d, 0xb6, 0x81, 0xa3, 0xdd, 0x48, 0x34, 0x6a, 0x0a, 0xbb, 0x78, 0xb1, 0x6c, 0xee, 0xc2, 0x42, 0x51, 0xf8, 0x36, 0x08, 0x80, 0x85, 0x94, 0x8e, 0x0d, 0x32, 0x4b, 0x68, 0x59, 0x58, 0xd2, 0xc6, 0x88, 0x87, 0xdd, 0xdf, 0xc0, 0xa8, 0x18, 0xd4, 0xfc, 0x9d, 0xc6, 0x04, 0xd1, 0x4e, 0xb2, 0x58, 0x7a, 0x3f, 0x7f, 0xc8, 0x1b, 0x3c, 0xb1, 0xc3, 0x9b, 0x89, 0xd9, 0x3a, 0x35, 0xa5, 0x0e, 0x62, 0x30, 0x65, 0x95, 0x5f, 0x52, 0x9e, 0x40, 0xb7, 0x74, 0xcc, 0x4d, 0x24, 0xf0, 0x4c, 0x91, 0x32, 0x56, 0x37, 0x1b, 0x9e, 0x2b, 0xa1, 0x09, 0x12, 0xf4, 0x91, 0x36, 0x5a, 0xa9, 0x49, 0xa3, 0xd3, 0x21, 0xfe, 0xd3, 0x44, 0xf4, 0x78, 0x56, 0xf6, 0xcc, 0xea, 0x48, 0xee, 0xb8, 0x20, 0x90, 0x96, 0xfe, 0xe8, 0x5d, 0x02, 0x04, 0xce, 0x71, 0xa3, 0x0c, 0x9c, 0xc3, 0x46, 0xdd, 0xe1, 0x18, 0xaa, 0xcd, 0x70, 0x04, 0xad, 0xfa, 0xd8, 0xd8, 0xdb, 0x7f, 0x36, 0xda, 0x35, 0xff, 0x67, 0x0e, 0x45, 0xf4, 0x23, 0xe0, 0x44, 0x39, 0x3c, 0x20, 0xfb, 0x64, 0x76, 0xdb, 0x25, 0x49, 0x16, 0x40, 0x65, 0x75, 0xb9, 0xb1, 0xb6, 0x7e, 0xb5, 0x25, 0x52, 0xe8, 0x20, 0xad, 0x38, 0x49, 0x67, 0xf2, 0x13, 0xbd, 0xe3, 0xd5, 0x6a, 0x1e, 0x49, 0xeb, 0xf3, 0xdc, 0xc8, 0xa4, 0x9d, 0xcd, 0xaf, 0xc5, 0x89, 0xfc, 0x0d, 0xf1, 0x26, 0xae, 0xe3, 0x1b, 0xb5, 0x92, 0xa2, 0x9e, 0xb7, 0x7c, 0x82, 0x2f, 0xc5, 0x64, 0x03, 0x67, 0x1e, 0x9a, 0xcb, 0xf0, 0xa2, 0xbc, 0xb8, 0xa8, 0xb3, 0xa6, 0x2b, 0x80, 0x5e, 0xca, 0x23, 0x3b, 0xef, 0x80, 0x6c, 0x08, 0x4e, 0xa5, 0x15, 0x37, 0x49, 0x1b, 0x8f, 0x27, 0x91, 0x2c, 0x34, 0x66, 0x5b, 0x3c, 0xdc, 0x28, 0x52, 0x64, 0xe0, 0xff, 0x5e, 0x33, 0x44, 0xb8, 0x1c, 0x5e, 0x51, 0x5e, 0x50, 0x6e, 0xc5, 0x00, 0x2e, 0x22, 0xe9, 0xba, 0x70, 0x6c, 0x7a, 0x25, 0x3e, 0xe6, 0xcb, 0x25, 0x99, 0x37, 0x0c, 0x6d, 0x06, 0xb2, 0xb5, 0x01, 0x34, 0xc4, 0x71, 0x41, 0xca, 0x9a, 0x2d, 0x68, 0x94, 0xe4, 0xa9, 0xc8, 0xfc, 0x49, 0x76, 0x11, 0x06, 0x81, 0x38, 0xa9, 0xd1, 0xc7, 0xb3, 0x91, 0xfa, 0xdc, 0x19, 0x61, 0xd7, 0x14, 0xa9, 0xb2, 0x98, 0x0b, 0x0f, 0xe9, 0x41, 0x8a, 0xff, 0x06, 0x91, 0xfb, 0xef, 0x8a, 0xb3, 0xac, 0x1f, 0x6e, 0x7c, 0xfc, 0x3f, 0x8e, 0x1c, 0xfa, 0x90, 0x85, 0xf7, 0xe1, 0x72, 0x97, 0x58, 0xf1, 0x90, 0xb9, 0x85, 0xc3, 0x97, 0xe6, 0xbc, 0x36, 0x30, 0x15, 0x97, 0x6a, 0x52, 0x76, 0xca, 0x31, 0x60, 0xf7, 0x90, 0x26, 0x01, 0x6d, 0x68, 0x87, 0x0a, 0xfe, 0x03, 0xd1, 0xc0, 0xe0, 0x94, 0xec, 0x5f, 0x94, 0x35, 0xe2, 0x76, 0x34, 0x52, 0x35, 0xe7, 0xd7, 0x9c, 0x88, 0xb2, 0xb8, 0x93, 0x17, 0xa4, 0x32, 0xb2, 0x02, 0x13, 0x94, 0x64, 0x68, 0x1d, 0x2c, 0xc3, 0x9c, 0xac, 0x9a, 0xdf, 0x30, 0x76, 0x52, 0x11, 0xfd, 0x02, 0xbf, 0xce, 0x23, 0xea, 0x29, 0x13, 0x35, 0x81, 0x74, 0x0e, 0xff, 0x6a, 0xac, 0xec, 0x17, 0xea, 0xa6, 0xe8, 0x43, 0x04, 0x50, 0xa7, 0x06, 0x15, 0x51, 0xc0, 0x08, 0x03, 0x6d, 0x58, 0x60, 0x1a, 0xdd, 0x6a, 0xc6, 0xd3, 0x49, 0xa1, 0xcb, 0x00, 0x01, 0xb4, 0x7b, 0xe7, 0x2f, 0x80, 0x76, 0xe3, 0x95, 0x7e, 0xdb, 0xda, 0xc9, 0x11, 0x45, 0xa9, 0xe6, 0x3c, 0x42, 0xcd, 0x89, 0x95, 0x32, 0x86, 0x1a, 0x0d, 0x79, 0x20, 0x73, 0xf3, 0x62, 0xc8, 0x85, 0xd5, 0xfa, 0x2c, 0x82, 0x69, 0x04, 0xd7, 0x26, 0xe4, 0xc8, 0x47, 0xc4, 0x66, 0x78, 0x23, 0x89, 0x15, 0x50, 0x6b, 0xf1, 0xd9, 0x98, 0x1b, 0x9d, 0x7d, 0x91, 0x70, 0x20, 0xf2, 0xc7, 0xc9, 0x41, 0xf6, 0xd1, 0xe8, 0xce, 0xc5, 0x80, 0x7e, 0x8a, 0x42, 0x54, 0x7b, 0xc9, 0xd8, 0xb7, 0xd1, 0x64, 0x1c, 0xb4, 0xc8, 0x22, 0xba, 0xac, 0xf7, 0xac, 0x3c, 0xea, 0xb9, 0x51, 0xde, 0x66, 0x8d, 0xa4, 0x8e, 0xf0, 0xe4, 0xb5, 0x36, 0x0b, 0xf5, 0x5d, 0xc7, 0x17, 0x9d, 0xe1, 0x80, 0x13, 0x97, 0x35, 0xed, 0x4a, 0x7d, 0x89, 0xe1, 0x32, 0x38, 0x16, 0xf9, 0x42, 0x07, 0xe6, 0x1a, 0x6c, 0xa8, 0x5f, 0x96, 0x57, 0x10, 0x4f, 0x5d, 0xd0, 0xe9, 0x90, 0x9b, 0xa8, 0x99, 0xc5, 0x68, 0x92, 0x75, 0x5f, 0xbd, 0x90, 0x82, 0x19, 0xe8, 0xa7, 0x43, 0x10, 0xfa, 0x19, 0xa2, 0xf7, 0xee, 0x6b, 0x9a, 0xb8, 0x12, 0xa9, 0x2a, 0xf4, 0xaa, 0x4a, 0x29, 0x85, 0xa6, 0x9a, 0xa9, 0x67, 0x44, 0x27, 0x6a, 0xb8, 0xb0, 0xd8, 0x45, 0x37, 0x29, 0x28, 0xcd, 0x8e, 0x1f, 0xab, 0x7d, 0xf0, 0xf2, 0x1f, 0x87, 0x13, 0x47, 0xce, 0x0e, 0x37, 0x27, 0x9a, 0xa6, 0x24, 0x0f, 0x11, 0xcd, 0x1b, 0xc1, 0xb2, 0xd9, 0x78, 0xc5, 0xa5, 0x80, 0xa2, 0xb1, 0x9b, 0xc2, 0x5b, 0x78, 0x73, 0x55, 0xce, 0xb3, 0x58, 0x88, 0xc4, 0x2b, 0xf9, 0x05, 0xaa, 0x0b, 0xa5, 0xf5, 0xc2, 0xdb, 0x7c, 0x8d, 0x8c, 0xe1, 0x56, 0xe8, 0xc4, 0xe8, 0x77, 0x59, 0x4a, 0x05, 0x47, 0x36, 0x69, 0xfe, 0x7a, 0x10, 0xa4, 0xb1, 0x9b, 0x7b, 0x3e, 0x29, 0x6b, 0x4b, 0x2f, 0x54, 0x58, 0x4b, 0x12, 0xe4, 0x26, 0xad, 0xc0, 0x98, 0x05, 0x1e, 0x4b, 0x91, 0x43, 0xfd, 0x9c, 0x41, 0x52, 0x05, 0xbb, 0xf5, 0x0e, 0x39, 0x15, 0xa3, 0x1b, 0x32, 0x31, 0x0a, 0x00, 0xb9, 0x69, 0x41, 0x3b, 0x34, 0xa4, 0x00, 0x5f, 0x5d, 0x01, 0x03, 0x57, 0x2a, 0xd6, 0xcd, 0x3d, 0xbc, 0x22, 0x99, 0x9e, 0x37, 0xab, 0xb4, 0x79, 0x58, 0xc2, 0x76, 0x1f, 0x6f, 0x62, 0xe6, 0xe4, 0xe7, 0xa3, 0xf6, 0xe1, 0x35, 0xf4, 0x44, 0x11, 0xfd, 0x83, 0x7c, 0x41, 0x77, 0xed, 0xbf, 0xee, 0x61, 0x4c, 0x67, 0x80, 0xf2, 0xbb, 0x6a, 0x63, 0x41, 0xa1, 0x26, 0x57, 0xe4, 0x89, 0x56, 0xbe, 0xf1, 0x98, 0x2a, 0xee, 0x8f, 0x23, 0x81, 0x7e, 0x44, 0xc7, 0xcc, 0x74, 0xe6, 0x77, 0x6e, 0x40, 0xaf, 0x64, 0x56, 0x33, 0xbc, 0x3d, 0x9c, 0x3c, 0xfb, 0x85, 0x20, 0x6b, 0x69, 0x63, 0x6c, 0x54, 0x70, 0xfe, 0xe6, 0xc1, 0x86, 0xc2, 0x8e, 0x5a, 0x1c, 0x25, 0xe1, 0x22, 0x52, 0xb4, 0xa5, 0xf5, 0x1f, 0xea, 0xab, 0xa7, 0xeb, 0xdf, 0x1d, 0x8e, 0x30, 0xb8, 0xf7, 0xbe, 0xf8, 0xee, 0xf0, 0xe4, 0xfd, 0xd1, 0xde, 0x1f, 0x13, 0xfa, 0xd7, 0x3e, 0xff, 0x6b, 0x7f, 0x23, 0x76, 0x5c, 0x86, 0x51, 0x6d, 0x7e, 0xb1, 0x99, 0xd4, 0x77, 0x8b, 0x49, 0x39, 0xb7, 0x07, 0x26, 0x5b, 0xa1, 0x81, 0xb4, 0x81, 0x48, 0x71, 0x5b, 0xba, 0x2d, 0xae, 0xf2, 0x2e, 0xcb, 0xae, 0x25, 0xe9, 0x50, 0xd9, 0x0d, 0x22, 0x78, 0x7e, 0x2d, 0x71, 0x83, 0x4a, 0x6b, 0xe5, 0x61, 0x12, 0xcb, 0xeb, 0x4b, 0x04, 0x85, 0x50, 0xd2, 0x8b, 0x5d, 0x47, 0x38, 0x07, 0x8b, 0x17, 0x87, 0xe5, 0xec, 0x33, 0x8c, 0x30, 0xdb, 0xcc, 0x70, 0x27, 0x5c, 0x29, 0x0b, 0x38, 0xcd, 0xaf, 0x8b, 0x81, 0x40, 0x48, 0x1c, 0x77, 0x82, 0x3f, 0xb0, 0x59, 0x65, 0x96, 0xf5, 0x62, 0xd5, 0xf4, 0x6e, 0x77, 0xb8, 0x89, 0xe8, 0x2e, 0x1e, 0x26, 0xd7, 0x09, 0xc1, 0x80, 0x0d, 0x35, 0x3d, 0xc3, 0xb9, 0x3a, 0xc8, 0x18, 0x9d, 0x91, 0x66, 0xad, 0xfe, 0x8c, 0xc4, 0x43, 0x7d, 0xb6, 0xf8, 0x91, 0x02, 0xc0, 0x98, 0xb4, 0x42, 0x82, 0xec, 0x6b, 0x0e, 0x61, 0x57, 0x18, 0x01, 0xc6, 0x6c, 0x0e, 0xd2, 0x4d, 0x16, 0x41, 0x76, 0x56, 0x61, 0x34, 0xc9, 0x2d, 0xc3, 0xde, 0xb7, 0x7d, 0x3c, 0x10, 0x3d, 0x3e, 0x71, 0x4b, 0x34, 0x36, 0xa2, 0xda, 0x13, 0x2b, 0x38, 0xbf, 0x6a, 0x09, 0x1a, 0x55, 0xf9, 0xb4, 0xc0, 0x99, 0xe3, 0xb3, 0x22, 0x39, 0x78, 0x18, 0x26, 0x53, 0xca, 0xde, 0x9c, 0x7b, 0x40, 0x4e, 0x6a, 0x45, 0xd3, 0x5d, 0x53, 0x38, 0x0c, 0x0a, 0xf4, 0x5b, 0xc2, 0x37, 0xdf, 0xbf, 0x9b, 0x67, 0xdb, 0x6a, 0x18, 0xa8, 0xb0, 0xdb, 0x79, 0x53, 0xfe, 0xdd, 0xcc, 0x3b, 0x95, 0x8f, 0xc4, 0x64, 0xa6, 0x88, 0xc0, 0xde, 0x99, 0x3b, 0xfe, 0xc2, 0x65, 0xe2, 0x3e, 0xd7, 0x68, 0xd9, 0xc6, 0x08, 0x02, 0x93, 0x5e, 0x86, 0x54, 0xed, 0x80, 0x74, 0x44, 0xbb, 0x08, 0x24, 0xb4, 0x87, 0x35, 0x63, 0x48, 0xb9, 0x94, 0x0c, 0x1d, 0x4b, 0x62, 0x22, 0x76, 0xba, 0x2c, 0xbc, 0xab, 0x53, 0xf5, 0x08, 0xa2, 0xa3, 0xdb, 0xac, 0x9a, 0x12, 0xd4, 0xc4, 0xd4, 0xe8, 0xa5, 0xe0, 0xa7, 0x17, 0xe2, 0x9e, 0xa2, 0x5c, 0x2a, 0xc9, 0x8a, 0x6f, 0x63, 0xc2, 0x40, 0xfc, 0x2a, 0x9d, 0xf5, 0x92, 0x18, 0x72, 0x1f, 0xa6, 0x86, 0x30, 0x46, 0x16, 0xfb, 0x4e, 0x05, 0x64, 0x9b, 0x7d, 0x68, 0x91, 0x19, 0xc2, 0x09, 0x41, 0xc6, 0x1e, 0x76, 0x58, 0x5f, 0xf4, 0x4e, 0x53, 0xc8, 0x05, 0x73, 0x61, 0x24, 0x33, 0x17, 0x1d, 0x22, 0xa8, 0x00, 0x00, 0x42, 0xf5, 0xa7, 0x27, 0xda, 0xd3, 0x01, 0x7e, 0x07, 0xa2, 0x25, 0xc5, 0x9d, 0xc2, 0x48, 0x6d, 0x41, 0x6c, 0xb2, 0x72, 0xa8, 0x60, 0x83, 0xd0, 0xbc, 0xc2, 0x62, 0xe4, 0x79, 0x79, 0x43, 0x31, 0x98, 0x36, 0xf4, 0xa7, 0x02, 0xfd, 0x70, 0x4e, 0x1d, 0xf3, 0xe5, 0x21, 0xe9, 0x4a, 0xfc, 0xd9, 0x91, 0x46, 0x6b, 0xa3, 0x14, 0xa0, 0xe5, 0xb4, 0xdd, 0x4a, 0xa4, 0xd4, 0x65, 0x50, 0x34, 0xec, 0x4c, 0x66, 0xfd, 0xc2, 0x21, 0x6f, 0xc5, 0x04, 0x1b, 0x56, 0x3c, 0x29, 0x9b, 0x2b, 0x2f, 0x0f, 0x95, 0xd0, 0xfc, 0xc8, 0xcf, 0x73, 0xb1, 0x6a, 0x60, 0x04, 0xa8, 0x19, 0xd8, 0x48, 0xaa, 0xb1, 0x38, 0x8b, 0x82, 0xac, 0x87, 0x8f, 0x84, 0xfa, 0x46, 0x4b, 0xb4, 0xc8, 0xb5, 0x94, 0x40, 0x5b, 0x20, 0x53, 0x9c, 0xe8, 0xd2, 0x18, 0xc0, 0x00, 0x16, 0x34, 0xdf, 0xa4, 0x44, 0xa5, 0xba, 0x26, 0x10, 0x39, 0xa4, 0xa4, 0x9a, 0x8d, 0x0d, 0x20, 0x27, 0x00, 0x90, 0x54, 0xf8, 0x47, 0xba, 0xc5, 0xf0, 0x37, 0x0e, 0xb4, 0x89, 0x71, 0x31, 0xc8, 0x6a, 0x9f, 0xc8, 0xd1, 0xd4, 0xb8, 0xbf, 0x44, 0x0f, 0x11, 0xa7, 0x88, 0xd5, 0x5f, 0x7b, 0x2e, 0xec, 0xbf, 0x6c, 0xd4, 0x04, 0x46, 0x5e, 0x55, 0x33, 0x72, 0x2e, 0xb0, 0x87, 0x6d, 0x62, 0x3c, 0xb6, 0x3b, 0x64, 0x5c, 0xa9, 0x8b, 0xbf, 0xc5, 0xe2, 0xbc, 0xab, 0xe5, 0x0c, 0x6a, 0x9f, 0xbe, 0x03, 0x45, 0xc9, 0x43, 0xc0, 0xac, 0x4b, 0xb9, 0x8d, 0x18, 0x9e, 0x98, 0x8c, 0xe3, 0x32, 0x31, 0x90, 0x9c, 0xee, 0xfd, 0xf7, 0x03, 0x2c, 0x2d, 0x88, 0x36, 0xf6, 0xe1, 0x2c, 0x7c, 0xde, 0x60, 0x5e, 0x84, 0xf0, 0x1d, 0x1a, 0xda, 0xaf, 0x63, 0x81, 0x4a, 0x15, 0xe0, 0x86, 0xc3, 0xff, 0x75, 0x55, 0x4c, 0x3b, 0x32, 0xaa, 0x1c, 0x78, 0x40, 0x9c, 0x12, 0x95, 0xb5, 0x12, 0xa2, 0x4b, 0xf4, 0xf8, 0x90, 0xc0, 0xdf, 0x50, 0x45, 0x28, 0x55, 0x6f, 0x90, 0x78, 0x9b, 0x7b, 0x25, 0xb4, 0x57, 0xb9, 0x39, 0xa1, 0x6a, 0x7a, 0x05, 0x24, 0x01, 0xf8, 0x91, 0x32, 0x75, 0x8e, 0x06, 0x8a, 0xb0, 0x78, 0xfe, 0x31, 0xac, 0xe8, 0x62, 0x39, 0xb1, 0x23, 0x42, 0x0b, 0x29, 0x0b, 0x65, 0xd2, 0x7d, 0xf3, 0x0c, 0x33, 0xbb, 0xae, 0x68, 0xcf, 0xb3, 0x79, 0xed, 0x04, 0xa4, 0x7d, 0xc7, 0x49, 0x4a, 0x18, 0xe1, 0x05, 0x7c, 0xb2, 0x2c, 0x8a, 0xf3, 0xe8, 0x0d, 0xc7, 0x4c, 0x8c, 0x9a, 0x23, 0x93, 0x21, 0xbb, 0x92, 0xe8, 0xe4, 0x4e, 0x31, 0x66, 0x64, 0x84, 0x2e, 0xcc, 0x4c, 0x97, 0x90, 0x5f, 0x8a, 0x85, 0x80, 0xe1, 0x88, 0x4f, 0x2f, 0x8c, 0xb8, 0xe3, 0x75, 0x2d, 0xc8, 0x8b, 0xbb, 0xfb, 0xec, 0xc9, 0x2e, 0x5d, 0x71, 0x02, 0xd8, 0x63, 0xb1, 0x27, 0x82, 0x8a, 0x23, 0x63, 0x81, 0x6f, 0xa7, 0xb4, 0xc7, 0x20, 0x78, 0x38, 0xba, 0xf3, 0xb9, 0xe2, 0xb6, 0x33, 0xe5, 0x91, 0x5f, 0x84, 0xaa, 0xb1, 0xd1, 0x4f, 0x84, 0xc2, 0x69, 0xc3, 0xe1, 0x45, 0x13, 0x64, 0x7f, 0x79, 0xa4, 0xd3, 0xa6, 0xa8, 0xf9, 0x85, 0x40, 0xfe, 0xbc, 0x51, 0x54, 0xbf, 0x6b, 0x2a, 0x09, 0x4a, 0x4e, 0x5e, 0xb3, 0x53, 0xf0, 0xe5, 0x3b, 0xfa, 0x5b, 0x6e, 0x01, 0x8f, 0x50, 0xd6, 0x8b, 0x06, 0x21, 0x9c, 0x6f, 0xfb, 0xe6, 0xbb, 0x6e, 0x55, 0xe7, 0xd6, 0xe9, 0x78, 0xe7, 0xd1, 0xf3, 0xdd, 0xed, 0x48, 0x0a, 0xb4, 0xf9, 0x86, 0x8f, 0x77, 0xf8, 0x78, 0x77, 0xb4, 0xbb, 0xdd, 0x99, 0x0d, 0x6d, 0xc9, 0x1a, 0x3c, 0x16, 0x45, 0x69, 0xb7, 0x32, 0x08, 0xb9, 0xcd, 0xae, 0xf6, 0x4b, 0xd2, 0xb0, 0xfd, 0xda, 0xd4, 0x77, 0xd9, 0xb5, 0xa1, 0xdc, 0x68, 0x3a, 0xdc, 0x49, 0x5e, 0x8b, 0x9d, 0x44, 0x82, 0x51, 0x45, 0x15, 0x15, 0x7f, 0xb7, 0x53, 0x8c, 0xf1, 0x08, 0x9d, 0x29, 0xa7, 0x4e, 0x44, 0x82, 0x37, 0xb5, 0x99, 0x54, 0x85, 0x3c, 0x3f, 0xa4, 0x08, 0x7c, 0x72, 0xdf, 0xcd, 0x61, 0x0b, 0x35, 0xf2, 0x99, 0x7f, 0xa6, 0x64, 0x38, 0x0c, 0xd3, 0x7a, 0x9a, 0xe7, 0x6c, 0x1e, 0xf5, 0x58, 0x45, 0x9a, 0x40, 0x09, 0x38, 0x3a, 0x14, 0x66, 0xe7, 0x29, 0x47, 0x7e, 0x1d, 0xe0, 0x69, 0x30, 0x2c, 0xe9, 0xbe, 0x86, 0xc4, 0xd6, 0x8d, 0x2b, 0x2e, 0x01, 0x6a, 0xfa, 0x22, 0x18, 0xcd, 0x56, 0x5d, 0xad, 0xbb, 0x5a, 0x99, 0xb9, 0x5a, 0x8c, 0x7e, 0x16, 0xc1, 0x2d, 0x24, 0xb6, 0xc3, 0x09, 0xd4, 0x69, 0x53, 0x97, 0xb4, 0x4f, 0xb1, 0x4d, 0x85, 0xc3, 0x03, 0x28, 0xb7, 0xd6, 0x1e, 0xb3, 0xac, 0x44, 0xd2, 0x8b, 0xbe, 0x1c, 0xb8, 0xec, 0x9f, 0x96, 0x3d, 0x95, 0x46, 0xf4, 0x4a, 0x06, 0xe9, 0x4f, 0x10, 0x6d, 0xe7, 0xc2, 0x2c, 0x5a, 0x88, 0xb4, 0xaa, 0x80, 0x17, 0x85, 0x53, 0x4e, 0xa4, 0x51, 0x05, 0xa1, 0x1a, 0xd9, 0xdd, 0x8a, 0x60, 0x55, 0x0d, 0xcc, 0xfa, 0x00, 0x01, 0x0a, 0x0a, 0x2a, 0xb2, 0x1b, 0x62, 0xee, 0xb5, 0x68, 0x26, 0x55, 0x95, 0x93, 0x1b, 0xca, 0xe6, 0x2a, 0xb0, 0x76, 0x47, 0x49, 0x9d, 0x24, 0xeb, 0x67, 0x91, 0x52, 0xf1, 0x29, 0x6e, 0x67, 0x6d, 0x53, 0xc0, 0x0b, 0xc0, 0x58, 0x12, 0x5c, 0x5d, 0xb0, 0x37, 0xe8, 0x33, 0x80, 0xc9, 0x29, 0x78, 0x6d, 0xd3, 0xce, 0x26, 0x21, 0x23, 0x80, 0xd3, 0xa5, 0x19, 0x2d, 0xad, 0x6c, 0xd9, 0xab, 0x75, 0x7f, 0xf4, 0x65, 0xe7, 0x76, 0x78, 0x73, 0x73, 0x33, 0xa4, 0x0b, 0x47, 0x29, 0x3e, 0x52, 0xb5, 0x31, 0x6a, 0x81, 0x50, 0xc3, 0x4c, 0x65, 0x0b, 0x96, 0x98, 0x48, 0x18, 0x2e, 0xf1, 0x32, 0xae, 0xaa, 0x49, 0xde, 0xa0, 0x3c, 0x50, 0x88, 0x0b, 0xaf, 0x49, 0x99, 0x9e, 0x4c, 0x07, 0x0a, 0x93, 0xfa, 0xb5, 0x22, 0xb7, 0xcf, 0xad, 0x85, 0xd0, 0xac, 0xa6, 0x4d, 0x46, 0xe5, 0xf0, 0xe6, 0x13, 0x8b, 0x83, 0x64, 0xf8, 0x4d, 0xb2, 0xf1, 0x52, 0x56, 0x7b, 0x6e, 0x9e, 0x38, 0x68, 0xaf, 0x85, 0x1f, 0x0e, 0x63, 0x43, 0xe6, 0xdd, 0x8d, 0x87, 0x21, 0x31, 0xf6, 0x5e, 0x64, 0x74, 0x69, 0x71, 0x49, 0x38, 0x4d, 0xc4, 0xf7, 0x47, 0x59, 0x34, 0xec, 0x25, 0x63, 0x08, 0x35, 0x2c, 0x3d, 0xad, 0xa5, 0xa3, 0xcf, 0x84, 0x6f, 0xf8, 0x9a, 0xeb, 0x58, 0xa5, 0x37, 0xf7, 0xdf, 0x71, 0xef, 0x26, 0x0a, 0xf5, 0xce, 0xe1, 0x39, 0xf3, 0x70, 0x8d, 0xc9, 0x5d, 0x64, 0x73, 0x3a, 0x23, 0x33, 0x95, 0x7e, 0x1a, 0xae, 0x36, 0x8b, 0xed, 0x5c, 0x51, 0x73, 0xbf, 0x5c, 0x53, 0xd6, 0xe6, 0x7c, 0xcc, 0x6e, 0x15, 0xad, 0x40, 0x4a, 0x07, 0x1e, 0x15, 0xcb, 0xb2, 0x54, 0xf5, 0x00, 0x46, 0xe3, 0x56, 0x37, 0xb0, 0x97, 0x53, 0x68, 0x99, 0xfd, 0x84, 0xde, 0x32, 0x05, 0x49, 0x37, 0x96, 0x2d, 0xca, 0x61, 0x13, 0xba, 0xaa, 0x8a, 0x77, 0x26, 0x1e, 0xb0, 0xac, 0x22, 0x42, 0x47, 0x52, 0xfd, 0x50, 0x33, 0xa2, 0x43, 0xab, 0x13, 0x62, 0xe1, 0xe5, 0xd7, 0xc7, 0x48, 0x0e, 0x37, 0x8c, 0xb4, 0x10, 0x4c, 0x08, 0x9e, 0x3f, 0xb7, 0x4e, 0xb2, 0x36, 0xf2, 0x25, 0xb1, 0x12, 0xae, 0xb0, 0x4c, 0x93, 0x18, 0x96, 0xaa, 0x9a, 0x30, 0x89, 0xda, 0x2a, 0x92, 0x03, 0x2b, 0x26, 0x87, 0x5c, 0x5e, 0x1b, 0x2d, 0x4e, 0x5d, 0xc5, 0x41, 0x74, 0xbf, 0xf0, 0x75, 0xc5, 0x2e, 0x49, 0x6b, 0x09, 0x08, 0x43, 0xf7, 0x0b, 0xb2, 0xd1, 0x1d, 0xbd, 0x72, 0x2b, 0xaa, 0x2c, 0x4c, 0xa3, 0x93, 0xcf, 0xc7, 0x3b, 0xc5, 0xe1, 0x4c, 0x3a, 0x8e, 0x19, 0xbb, 0x75, 0x99, 0xef, 0x80, 0xe0, 0xd2, 0x2e, 0x72, 0xcd, 0xc5, 0x1c, 0xc1, 0x36, 0xcf, 0xd2, 0x30, 0xe3, 0xff, 0x24, 0x09, 0x05, 0xb9, 0x6b, 0x78, 0x1e, 0x69, 0x1e, 0x5a, 0x7e, 0xe9, 0x8f, 0xa6, 0xc8, 0x80, 0x92, 0x5f, 0x1b, 0x1f, 0x8e, 0xcc, 0xc9, 0x2f, 0x48, 0x5b, 0xfa, 0x52, 0xfc, 0x5e, 0x94, 0x56, 0x5f, 0x7b, 0xc6, 0x8d, 0xd4, 0xde, 0x62, 0xee, 0x5a, 0x72, 0x44, 0xdb, 0x10, 0x1f, 0x8e, 0x03, 0xa6, 0xde, 0xee, 0x31, 0xc5, 0x11, 0x7c, 0x7d, 0xcd, 0xed, 0xc8, 0xfe, 0xad, 0xbb, 0x79, 0x5f, 0xdc, 0xbf, 0x7b, 0x3f, 0x77, 0xfb, 0xd6, 0xef, 0x1e, 0xb7, 0x81, 0xd0, 0xdc, 0xdb, 0x2f, 0x3c, 0x7f, 0x1f, 0x72, 0x47, 0xd8, 0x98, 0xb3, 0x7e, 0xbf, 0x36, 0x97, 0xf1, 0x6c, 0xd6, 0x2f, 0x7e, 0xad, 0x53, 0x07, 0x31, 0xc2, 0x41, 0x40, 0x93, 0x8f, 0x0f, 0xc7, 0x51, 0x4a, 0x9c, 0xbd, 0x0f, 0xe5, 0x28, 0x6a, 0x3d, 0x46, 0x10, 0x1c, 0xe4, 0x69, 0xc3, 0xc4, 0x3c, 0x41, 0xd6, 0xe8, 0x30, 0x3e, 0x9c, 0xd6, 0x15, 0x8a, 0x5e, 0x1f, 0xac, 0xef, 0x4b, 0x15, 0xfc, 0x0f, 0x5f, 0x1c, 0xb2, 0x94, 0x5c, 0xeb, 0x41, 0x3f, 0xc1, 0x84, 0x23, 0x3a, 0x5b, 0xa1, 0x1b, 0x52, 0xaf, 0x8f, 0xa0, 0x4a, 0x72, 0x2b, 0x2a, 0x55, 0x09, 0xb6, 0x07, 0xed, 0x0d, 0x23, 0xe4, 0x3c, 0x08, 0x03, 0x3d, 0xe5, 0xbc, 0xf7, 0x8c, 0xf5, 0xec, 0xa8, 0xbd, 0x43, 0xf4, 0xec, 0xfe, 0x6f, 0x5a, 0x1f, 0xe8, 0xd9, 0x91, 0x01, 0x05, 0x2c, 0x6a, 0xc6, 0x02, 0x47, 0x0e, 0x7f, 0x82, 0xe2, 0x07, 0x12, 0xf1, 0x3d, 0xb3, 0x03, 0x98, 0x01, 0x29, 0x45, 0x14, 0xbe, 0x9d, 0x0b, 0xfa, 0x28, 0xc3, 0xc5, 0x7f, 0xe1, 0x94, 0x99, 0x21, 0x2d, 0x72, 0x28, 0x24, 0x3b, 0x02, 0x11, 0xae, 0xa1, 0x54, 0x4b, 0x99, 0x71, 0xa2, 0x0c, 0xc8, 0xaf, 0x5f, 0x34, 0x2a, 0x5c, 0xab, 0xc8, 0xf6, 0x96, 0xa4, 0xdc, 0xfb, 0xbc, 0x25, 0x29, 0xdd, 0x3b, 0xeb, 0x64, 0xe4, 0x38, 0xe3, 0xfc, 0x36, 0xdf, 0x1f, 0x8a, 0x97, 0xb8, 0x68, 0x9b, 0x1a, 0x82, 0x84, 0x99, 0x52, 0xf4, 0x6a, 0x50, 0xc3, 0xcc, 0xa9, 0x4a, 0x5e, 0x29, 0x26, 0xf2, 0xd5, 0x29, 0x08, 0x27, 0xd6, 0x51, 0x32, 0xa9, 0xca, 0x9b, 0x1a, 0xea, 0xa8, 0x1a, 0xa8, 0x29, 0x67, 0xd4, 0x5e, 0x05, 0x15, 0xd6, 0x66, 0x7b, 0xe7, 0x16, 0x56, 0xf6, 0x9b, 0xf3, 0x37, 0x27, 0xdc, 0x20, 0x82, 0x8b, 0x7d, 0xa9, 0xa6, 0x49, 0xe6, 0xbc, 0x9a, 0x2c, 0x8c, 0x61, 0x6e, 0xb4, 0x93, 0x86, 0x59, 0x99, 0x72, 0xc7, 0xa0, 0x22, 0x19, 0x11, 0x42, 0x89, 0x2f, 0x2f, 0x63, 0xe1, 0x1e, 0x51, 0x24, 0x3d, 0x58, 0x2b, 0x4f, 0x03, 0xfe, 0xf9, 0xba, 0xae, 0xb1, 0x93, 0x91, 0x60, 0x03, 0x3d, 0xea, 0x35, 0x1d, 0x05, 0x3d, 0x12, 0xdc, 0x3e, 0x4f, 0x4d, 0x43, 0x1f, 0x33, 0x20, 0x54, 0x5b, 0x87, 0x0f, 0x69, 0x5d, 0xb6, 0x89, 0x09, 0x40, 0xb8, 0xd2, 0xb6, 0xa6, 0x15, 0x54, 0xe9, 0x5a, 0xcd, 0xcb, 0xb5, 0x23, 0xf1, 0x95, 0x2f, 0xd2, 0x43, 0x48, 0x1f, 0x92, 0xb8, 0xd4, 0xaa, 0x22, 0xdf, 0x20, 0x6b, 0xd5, 0x83, 0x48, 0x0a, 0xbf, 0x28, 0x24, 0x1a, 0x1c, 0xb0, 0x91, 0xd2, 0x96, 0xa9, 0xa7, 0x7d, 0x17, 0x68, 0x6c, 0xef, 0x06, 0x47, 0x94, 0x44, 0x06, 0xbc, 0x42, 0x6d, 0x06, 0x4e, 0xd3, 0x10, 0x9b, 0x19, 0x1d, 0x6d, 0xc5, 0x52, 0xf8, 0xda, 0x03, 0xf5, 0x2e, 0xaa, 0x60, 0xbb, 0xa6, 0x24, 0xb5, 0xeb, 0x43, 0xa1, 0xf6, 0x32, 0x70, 0xbf, 0x80, 0xf4, 0x85, 0x46, 0x14, 0x65, 0xdb, 0x7d, 0x16, 0xba, 0x33, 0xc5, 0x9d, 0x36, 0xf0, 0xa2, 0x75, 0x39, 0x39, 0xb4, 0xfc, 0xf0, 0xa3, 0x0b, 0xd4, 0x2f, 0xb2, 0xea, 0x92, 0xab, 0x1a, 0x18, 0x61, 0x36, 0x0a, 0x8a, 0x91, 0x26, 0x1e, 0xe8, 0x5b, 0x92, 0xfc, 0xb7, 0x21, 0x4b, 0x54, 0x78, 0xbe, 0x56, 0x54, 0x4e, 0x23, 0xee, 0xf9, 0xcd, 0xe1, 0x8c, 0xd9, 0xca, 0x2c, 0x2d, 0xcc, 0x4e, 0x98, 0x1b, 0x1b, 0xa6, 0xdb, 0xcc, 0xe7, 0x5f, 0xcc, 0xcb, 0x55, 0x7d, 0xb7, 0x99, 0x48, 0x4f, 0x20, 0x69, 0xa3, 0xd1, 0x48, 0x6a, 0x10, 0x9d, 0xa5, 0x39, 0xdf, 0x55, 0xf1, 0x51, 0x85, 0x22, 0x15, 0x3e, 0xd4, 0xec, 0xf7, 0xed, 0x0c, 0xb7, 0xe9, 0x7d, 0xec, 0xbf, 0xf9, 0x63, 0x47, 0x77, 0x19, 0xd1, 0x04, 0x36, 0x9c, 0x1f, 0x66, 0x39, 0xbb, 0x08, 0x4f, 0xcc, 0x6c, 0x4e, 0x5a, 0x81, 0x3f, 0x3b, 0x20, 0x09, 0x0f, 0x46, 0xf5, 0xd5, 0x08, 0x86, 0xcb, 0x04, 0x01, 0xbf, 0xe9, 0xa9, 0x65, 0x11, 0xd3, 0x91, 0x53, 0x3a, 0x38, 0x44, 0x95, 0x24, 0x67, 0x25, 0xf7, 0x14, 0x70, 0x62, 0x29, 0x6d, 0x21, 0xa2, 0x5e, 0x94, 0xe5, 0x24, 0xad, 0x36, 0x83, 0xa4, 0x46, 0x9a, 0x36, 0x00, 0xd8, 0xcd, 0xdc, 0x67, 0xec, 0x58, 0x21, 0x5f, 0xad, 0x63, 0xa0, 0x5f, 0xf2, 0x9b, 0x23, 0xf6, 0xa2, 0xfa, 0x26, 0x73, 0x2c, 0xa3, 0x60, 0x3e, 0x73, 0x53, 0x4f, 0x5a, 0xf3, 0x40, 0xa2, 0x3b, 0x8a, 0x17, 0x9c, 0x71, 0xaf, 0xb6, 0x3d, 0xea, 0x5f, 0xb2, 0x9b, 0x61, 0xa4, 0x6a, 0xb1, 0x76, 0x51, 0x00, 0x82, 0x7d, 0x27, 0x9c, 0x11, 0xca, 0xb4, 0x50, 0x7b, 0x9a, 0xe3, 0x28, 0xd6, 0xaa, 0xf6, 0xee, 0x7b, 0x98, 0x93, 0x14, 0x63, 0x22, 0x8e, 0x69, 0x78, 0x57, 0x10, 0x1c, 0x49, 0xf2, 0x59, 0xd7, 0xe4, 0xc2, 0xf9, 0x8c, 0xc0, 0x13, 0x4d, 0xce, 0x3e, 0xeb, 0xca, 0xab, 0x7e, 0xe7, 0xaf, 0x03, 0xce, 0x75, 0xfc, 0x92, 0x5f, 0x3f, 0xc6, 0x7e, 0xa3, 0x13, 0x2f, 0x2b, 0x86, 0xc3, 0x73, 0xfc, 0x84, 0xfd, 0x8d, 0xc3, 0x08, 0xb5, 0xb5, 0x0c, 0xc6, 0x6c, 0x9e, 0x5d, 0xf2, 0xfa, 0x5e, 0x9c, 0x1c, 0x7d, 0x77, 0x74, 0x12, 0x48, 0xc2, 0xaf, 0xc7, 0xe3, 0x9d, 0x8f, 0x59, 0x35, 0x41, 0xbf, 0x56, 0x5a, 0x1e, 0x79, 0x37, 0xe9, 0x49, 0x9b, 0x04, 0xe6, 0x09, 0x08, 0xed, 0xb0, 0x07, 0x76, 0x0d, 0x23, 0x2c, 0x4c, 0x29, 0x91, 0x4f, 0x0a, 0x10, 0x3c, 0x8a, 0x92, 0x24, 0xdb, 0x10, 0xe2, 0x6e, 0x5a, 0x65, 0x33, 0x6e, 0x67, 0x1a, 0xe6, 0x19, 0x02, 0xfb, 0x23, 0x49, 0x5e, 0xe1, 0x4c, 0x39, 0xd7, 0x1c, 0x21, 0x2e, 0xbb, 0x88, 0xe0, 0x8d, 0x25, 0xea, 0xeb, 0x93, 0x57, 0xf2, 0xcd, 0x9a, 0x2e, 0x12, 0xed, 0x12, 0x03, 0xbf, 0xb1, 0xd9, 0x71, 0xfa, 0xed, 0xf0, 0x70, 0x3c, 0x7c, 0x75, 0x74, 0x72, 0xf4, 0xf5, 0xe1, 0xf9, 0x11, 0xe3, 0x9d, 0x2b, 0x08, 0x72, 0x5c, 0x6f, 0xb1, 0x62, 0xfc, 0x5b, 0xd9, 0x18, 0x16, 0xf1, 0x04, 0x98, 0x4f, 0x9d, 0x9c, 0xd1, 0xaf, 0xc5, 0x81, 0xb1, 0xa6, 0x64, 0xe9, 0x34, 0xad, 0x86, 0xca, 0xdd, 0x5c, 0x38, 0x23, 0xdb, 0x64, 0xaa, 0xc1, 0x0a, 0xd2, 0xf9, 0x0d, 0xf5, 0x6c, 0x7b, 0x5f, 0x50, 0xb2, 0x7d, 0x6e, 0x8b, 0x4d, 0x79, 0xf5, 0xbe, 0x93, 0xc7, 0xed, 0x6c, 0xeb, 0x80, 0x81, 0x5d, 0x1f, 0x57, 0x6f, 0xb4, 0x4e, 0x1c, 0x01, 0xe6, 0x57, 0x78, 0xb0, 0x03, 0x42, 0xee, 0xb0, 0xd3, 0xd1, 0x2f, 0x46, 0x7e, 0x17, 0x81, 0x34, 0x81, 0x54, 0xad, 0xa7, 0x57, 0xd9, 0xc2, 0x82, 0x75, 0x51, 0xfe, 0x02, 0x22, 0xe5, 0x5c, 0x78, 0x29, 0xa0, 0x42, 0xb8, 0xf1, 0x93, 0x0c, 0x26, 0x32, 0xa2, 0x76, 0xd7, 0x81, 0xa0, 0x40, 0x56, 0x10, 0xb5, 0x24, 0xa0, 0x60, 0x0c, 0xe5, 0xf5, 0xa0, 0x02, 0x79, 0x84, 0x0c, 0x44, 0x2f, 0xb1, 0x20, 0x4c, 0x24, 0x90, 0xc6, 0x82, 0x5d, 0x2d, 0xc2, 0x42, 0x9c, 0x5b, 0x3c, 0xf6, 0x12, 0xde, 0x30, 0xfc, 0x88, 0x5b, 0x9b, 0x88, 0x1a, 0x4d, 0x33, 0xfc, 0x39, 0x6e, 0xab, 0xae, 0xdf, 0x0a, 0x54, 0xe5, 0xea, 0x2d, 0x51, 0x03, 0x14, 0xcb, 0xeb, 0x5e, 0xc3, 0x34, 0xdc, 0x64, 0x99, 0x39, 0x30, 0xf4, 0xfa, 0x4c, 0x0e, 0x07, 0x3f, 0x92, 0x46, 0x05, 0x23, 0x57, 0x19, 0x12, 0xf5, 0xce, 0x7b, 0x2c, 0xa3, 0xd5, 0xcd, 0x80, 0x50, 0xe4, 0xf5, 0xaf, 0x61, 0xcf, 0x09, 0x5b, 0x8c, 0x37, 0xcc, 0x96, 0x01, 0xa4, 0xf7, 0xd6, 0x6b, 0x45, 0xe8, 0xb7, 0xea, 0xa2, 0xdf, 0x86, 0xcd, 0xeb, 0x9a, 0x74, 0x74, 0xf6, 0x8e, 0x1b, 0xaf, 0x9f, 0xd0, 0x5f, 0x24, 0x36, 0x57, 0xc7, 0x10, 0xf2, 0xa4, 0x3f, 0x08, 0xa5, 0xab, 0x64, 0x88, 0xc6, 0xd8, 0x70, 0xbb, 0xa6, 0x2b, 0x72, 0x86, 0xaa, 0x40, 0xb1, 0xcb, 0x75, 0xc0, 0x06, 0x07, 0xe5, 0x01, 0xb6, 0x59, 0x2b, 0xa6, 0x42, 0x73, 0x10, 0x10, 0x23, 0xcc, 0x82, 0xd3, 0x6c, 0x35, 0xe8, 0x71, 0x4a, 0xbf, 0x24, 0x1d, 0x52, 0xc8, 0xa7, 0x87, 0xf3, 0xba, 0x92, 0x2b, 0x1a, 0x92, 0xde, 0x4a, 0x2a, 0xb4, 0x79, 0x4d, 0xcd, 0x3c, 0x46, 0x6e, 0x9d, 0xfc, 0x09, 0xf6, 0x41, 0x03, 0x98, 0x33, 0x0c, 0x71, 0xa0, 0xbc, 0xdd, 0x9a, 0x09, 0x9a, 0xba, 0xce, 0xa9, 0xb9, 0x36, 0x25, 0x7f, 0x20, 0xc0, 0x45, 0x12, 0x95, 0xa6, 0x9a, 0x82, 0xb2, 0xf0, 0xfb, 0x8b, 0xb5, 0x4c, 0x8a, 0x5a, 0x73, 0xd5, 0xb2, 0x3b, 0x09, 0xac, 0xb3, 0x8e, 0x77, 0x21, 0x01, 0xcc, 0x14, 0x90, 0xb3, 0xb0, 0x56, 0x26, 0xac, 0x94, 0x20, 0xef, 0xef, 0x2a, 0x2d, 0x22, 0x77, 0xce, 0x6c, 0xbc, 0x6d, 0x97, 0x86, 0x85, 0xca, 0xb1, 0x45, 0xf4, 0x72, 0xa2, 0x8d, 0x2e, 0xf0, 0x95, 0xb1, 0xdd, 0x0c, 0x03, 0xcb, 0x29, 0x54, 0x21, 0x53, 0xe1, 0xcd, 0x41, 0xdb, 0x20, 0xa1, 0xb7, 0x32, 0x46, 0x55, 0xcc, 0x5d, 0xbc, 0x00, 0x4a, 0x8b, 0x04, 0xfb, 0xd2, 0x0c, 0xad, 0xab, 0x1d, 0x15, 0x38, 0x1e, 0xea, 0x2e, 0x35, 0x1f, 0x6e, 0x97, 0xe8, 0xb0, 0x8a, 0x0a, 0xe9, 0x6e, 0x76, 0xb5, 0x5b, 0xe8, 0xc3, 0x65, 0x19, 0xe6, 0xdb, 0x98, 0x2e, 0x79, 0x76, 0x6c, 0xcc, 0x96, 0x68, 0x27, 0xf8, 0xfe, 0x2b, 0x4c, 0x0e, 0x4a, 0x2a, 0xde, 0xc0, 0xa5, 0x27, 0x74, 0xa2, 0x4b, 0x6d, 0x01, 0xc5, 0xb4, 0x3c, 0xc9, 0xcc, 0x17, 0x73, 0xea, 0x8f, 0xd7, 0x72, 0xed, 0x77, 0xbf, 0x5f, 0x1b, 0xfa, 0x9b, 0x5e, 0xa9, 0xe5, 0x45, 0x2f, 0x22, 0xde, 0xe9, 0xf5, 0x95, 0x04, 0x25, 0x30, 0x32, 0xd3, 0xf0, 0x0c, 0xb2, 0x9d, 0x22, 0x94, 0xc8, 0x7f, 0x4c, 0xca, 0x2a, 0x2c, 0x92, 0x9d, 0x5a, 0x34, 0x26, 0x7d, 0x34, 0xad, 0xaf, 0xe3, 0x37, 0xbc, 0xbe, 0x8e, 0xde, 0x70, 0xfd, 0x03, 0x37, 0xdd, 0xeb, 0xf6, 0xd9, 0x77, 0xd7, 0xc7, 0xdf, 0xf5, 0xc0, 0x4a, 0x78, 0x37, 0x5c, 0x57, 0x07, 0x6a, 0xf7, 0xee, 0x38, 0x5f, 0x72, 0x39, 0x23, 0x7b, 0xcd, 0xe5, 0x9e, 0x47, 0x5d, 0xfe, 0x7e, 0x93, 0x5e, 0xbe, 0xe7, 0xe6, 0xfb, 0x72, 0xb9, 0xcf, 0x0e, 0xc7, 0xdf, 0x75, 0xae, 0xb5, 0x77, 0x91, 0x63, 0x20, 0x1c, 0x68, 0x9d, 0x59, 0x29, 0x32, 0x2f, 0x8d, 0x15, 0xa5, 0xf7, 0xfa, 0xfa, 0x21, 0xf4, 0x6e, 0x26, 0x12, 0xd0, 0x7b, 0xb0, 0xc7, 0xeb, 0xe8, 0xdd, 0x3f, 0xa8, 0x2e, 0x0c, 0x82, 0x47, 0xf1, 0x05, 0xb7, 0xd8, 0xa6, 0x22, 0x90, 0x08, 0xa9, 0x83, 0xd2, 0x29, 0x38, 0x08, 0xd2, 0x0e, 0x93, 0x0d, 0x31, 0xcf, 0x9f, 0x43, 0xe8, 0x78, 0x21, 0xa0, 0x73, 0x3d, 0xd1, 0x9f, 0x4d, 0xe8, 0x72, 0x41, 0x02, 0x3a, 0x87, 0x86, 0x7d, 0x36, 0xf0, 0x08, 0xdc, 0xa3, 0x5a, 0xbf, 0x50, 0x3c, 0xb2, 0x43, 0x16, 0x92, 0xc4, 0x89, 0x5f, 0x07, 0xf6, 0x10, 0x01, 0x20, 0x19, 0xd8, 0x6a, 0xdc, 0x6a, 0x1a, 0x7a, 0xe8, 0x6d, 0x6d, 0xb8, 0x5f, 0x1e, 0x01, 0x93, 0x45, 0x12, 0xaa, 0x67, 0x23, 0xc8, 0x6c, 0x18, 0xfc, 0x3e, 0xe2, 0x80, 0xdf, 0xe3, 0xb2, 0x8d, 0x48, 0xa5, 0x93, 0x88, 0xd5, 0xaf, 0xd7, 0x19, 0x65, 0x82, 0x00, 0xa8, 0xac, 0x7b, 0x4f, 0x49, 0xcd, 0x83, 0x3e, 0x40, 0x8a, 0xca, 0x30, 0x2f, 0x86, 0x61, 0xa2, 0x74, 0x3b, 0x72, 0xdc, 0x00, 0xbf, 0xd6, 0x33, 0x12, 0xa9, 0x92, 0x91, 0x54, 0x5d, 0x89, 0x5d, 0xa4, 0x89, 0x14, 0x50, 0x92, 0x9f, 0x1f, 0xa2, 0x37, 0x52, 0x72, 0x1b, 0xc5, 0x60, 0x6b, 0x37, 0x84, 0x69, 0xca, 0x96, 0x7f, 0xed, 0x69, 0x07, 0xe7, 0x78, 0x56, 0xd4, 0x43, 0xd7, 0xbc, 0xfd, 0x85, 0xfd, 0x6b, 0x60, 0x5f, 0xbc, 0x7a, 0x3b, 0xee, 0xa8, 0x14, 0x75, 0xc6, 0xe5, 0x23, 0x97, 0xe0, 0x1b, 0xe6, 0xf7, 0xb6, 0xe4, 0xab, 0x76, 0xed, 0x12, 0x65, 0xc8, 0x10, 0x5f, 0xdf, 0x7c, 0x62, 0xd4, 0xa9, 0x99, 0x95, 0x42, 0xe5, 0x15, 0xec, 0x39, 0x04, 0xbb, 0x69, 0x0d, 0x6e, 0x76, 0x52, 0xf4, 0x4e, 0xce, 0xa4, 0x18, 0x0a, 0x12, 0x0b, 0x08, 0x9a, 0xa7, 0xf6, 0x6d, 0x5e, 0x32, 0x62, 0xbb, 0x60, 0x94, 0xd9, 0x0e, 0x58, 0xa4, 0x1a, 0xda, 0x41, 0x63, 0x91, 0xa9, 0x2d, 0x41, 0x55, 0x92, 0xac, 0xb2, 0xed, 0xe8, 0x16, 0xf3, 0x1e, 0xeb, 0x16, 0x2e, 0xaf, 0x1f, 0x0f, 0xe9, 0xf1, 0x44, 0x8d, 0x45, 0xfe, 0xe1, 0x53, 0xfc, 0x70, 0xd4, 0xdd, 0xe8, 0xa0, 0xc8, 0x46, 0x9a, 0xab, 0x5a, 0x47, 0xeb, 0xaa, 0x98, 0x51, 0x63, 0x0e, 0x9a, 0xb6, 0xb6, 0x59, 0x20, 0x2c, 0x45, 0xd7, 0xd9, 0xc6, 0x42, 0x26, 0x19, 0x12, 0x0a, 0xca, 0xc9, 0x2a, 0x54, 0x10, 0xb8, 0x43, 0x7f, 0xf4, 0x28, 0x72, 0xe8, 0x76, 0xc6, 0x2f, 0x64, 0x99, 0x0f, 0x38, 0xf2, 0x49, 0xce, 0x1d, 0xb0, 0x5e, 0xe4, 0xcb, 0xa1, 0xbe, 0xc5, 0xc2, 0x63, 0x91, 0x7e, 0x14, 0xa1, 0xfe, 0x18, 0xa4, 0x10, 0x36, 0x7a, 0xd2, 0x4e, 0xcc, 0x7e, 0x58, 0x8b, 0x9f, 0x14, 0x9a, 0x11, 0x4d, 0xab, 0xc9, 0x5c, 0x69, 0x3c, 0x20, 0x63, 0xf9, 0x3b, 0xb1, 0xaa, 0x30, 0xcd, 0xdf, 0xf6, 0xdd, 0x36, 0x5a, 0x01, 0x82, 0x99, 0xd8, 0x77, 0xef, 0x3d, 0x3f, 0x47, 0x0f, 0xeb, 0xce, 0x4f, 0xf7, 0xec, 0x7f, 0x8f, 0xf3, 0x7b, 0xfa, 0x49, 0xce, 0xef, 0xe9, 0xff, 0x36, 0xe7, 0xf7, 0xf4, 0x5f, 0x3f, 0xbf, 0xc7, 0xdd, 0xf3, 0x7b, 0xfa, 0xbf, 0xcb, 0xf9, 0x69, 0x07, 0x36, 0x3d, 0xbd, 0x2c, 0x38, 0xbf, 0xb1, 0x64, 0x82, 0x28, 0x74, 0x1f, 0x6d, 0xb6, 0xbe, 0xc5, 0x71, 0x17, 0x49, 0x85, 0x64, 0xc7, 0xb6, 0x66, 0xe3, 0x32, 0x78, 0x64, 0x4f, 0x4b, 0x13, 0x69, 0xcb, 0xa5, 0x43, 0x1e, 0x9f, 0x25, 0xf6, 0xf3, 0xde, 0x21, 0x38, 0x20, 0x2e, 0xf1, 0x06, 0x47, 0xbd, 0xce, 0x66, 0x8d, 0x67, 0xb4, 0x01, 0x5c, 0x80, 0x59, 0xbb, 0xb2, 0xe1, 0x18, 0xd6, 0x96, 0xd9, 0xbc, 0x83, 0x17, 0xb4, 0x5f, 0x43, 0x7e, 0xfc, 0x4f, 0xd1, 0x72, 0x38, 0x34, 0x73, 0x76, 0x93, 0x8a, 0x45, 0x1a, 0xbc, 0xad, 0x7b, 0xf0, 0xb1, 0xf5, 0xf5, 0x03, 0xd3, 0x23, 0x9c, 0x0e, 0xef, 0x3f, 0xb2, 0xf2, 0x0a, 0x48, 0x3f, 0x2f, 0xde, 0xbf, 0x0b, 0x7d, 0x6f, 0x66, 0xa9, 0xb6, 0x30, 0xd0, 0xa1, 0x27, 0x9a, 0xf3, 0x1a, 0x92, 0x71, 0x3f, 0x04, 0x90, 0xbc, 0xb9, 0x8e, 0xa7, 0xdf, 0x6c, 0x7b, 0x5e, 0x20, 0x04, 0x22, 0xca, 0xc8, 0x45, 0xe3, 0xc2, 0x5c, 0xad, 0x3d, 0xaf, 0x07, 0xfe, 0x09, 0xbb, 0xac, 0xf8, 0xcc, 0x61, 0x75, 0xb3, 0x73, 0x24, 0x91, 0x92, 0xde, 0x2a, 0xe8, 0x80, 0x49, 0xca, 0x60, 0x5e, 0x0b, 0xae, 0x1c, 0x01, 0x6d, 0xa8, 0x24, 0xc4, 0xc4, 0x7e, 0xcb, 0x24, 0xbe, 0xa7, 0xfb, 0xad, 0x5d, 0x7d, 0x05, 0x5d, 0x71, 0xb5, 0x58, 0x4a, 0xf1, 0xf1, 0x3d, 0xc5, 0x97, 0x30, 0xc1, 0xb7, 0x93, 0xef, 0x51, 0x59, 0xc9, 0x2e, 0x7b, 0x29, 0x44, 0x52, 0xab, 0xdc, 0x56, 0x5f, 0x68, 0x3c, 0xac, 0x07, 0x3a, 0x2d, 0x8a, 0x56, 0xd5, 0xc1, 0x15, 0xe0, 0x8a, 0x19, 0xc5, 0x5f, 0x27, 0x1e, 0xe9, 0xe9, 0xcc, 0x52, 0x08, 0xc1, 0xe7, 0x20, 0x1f, 0x8d, 0xc2, 0x77, 0x93, 0xb2, 0xc1, 0x45, 0x58, 0x34, 0x69, 0x46, 0x20, 0x34, 0xaf, 0x9b, 0xa1, 0x46, 0x52, 0x89, 0x55, 0xbb, 0xe0, 0xb3, 0xce, 0x1e, 0xf0, 0x4f, 0xb1, 0xfa, 0x01, 0xd5, 0x6e, 0xe1, 0x29, 0x10, 0x60, 0x0f, 0x8b, 0xdc, 0x54, 0x5c, 0xdb, 0xca, 0x9c, 0xc9, 0x5d, 0x9b, 0x52, 0x86, 0x93, 0xb0, 0xcc, 0x4e, 0xf3, 0xb7, 0x79, 0xc5, 0xff, 0x06, 0xe2, 0xe8, 0xa9, 0xdc, 0x60, 0xcd, 0xcc, 0xf7, 0x4c, 0x04, 0x37, 0xc9, 0xaf, 0x0b, 0xe9, 0xa9, 0xc3, 0xd2, 0xd5, 0x49, 0x3f, 0x0b, 0x6e, 0x12, 0xd2, 0x36, 0x52, 0xdd, 0x01, 0x88, 0xa1, 0xc9, 0x09, 0xbd, 0x41, 0x8e, 0xa0, 0x40, 0x10, 0x44, 0x8f, 0x91, 0xd1, 0xac, 0xb4, 0x7b, 0x6c, 0xc2, 0x09, 0xc3, 0x57, 0x99, 0x5f, 0x59, 0x6d, 0x61, 0x2a, 0x25, 0x4f, 0x11, 0x53, 0x2f, 0x24, 0xb9, 0x35, 0x68, 0x49, 0x04, 0xdc, 0x04, 0x99, 0xfc, 0x86, 0xe0, 0x3c, 0xad, 0x04, 0x9c, 0x96, 0x1b, 0x32, 0x03, 0x16, 0xe7, 0xb7, 0xab, 0x63, 0xf6, 0x72, 0xc7, 0x7d, 0x16, 0x95, 0x5d, 0x72, 0x44, 0x7f, 0x5d, 0x62, 0xf1, 0xd8, 0xb5, 0x3d, 0x60, 0xa0, 0x6a, 0x0b, 0xc8, 0xc6, 0x84, 0x72, 0x54, 0x34, 0x55, 0xb9, 0x34, 0xd4, 0xf3, 0x75, 0x4a, 0xab, 0x02, 0x05, 0xbd, 0x4a, 0xb3, 0x45, 0x50, 0xbc, 0xc6, 0x9d, 0xc7, 0xb5, 0xcb, 0xa3, 0xf6, 0x21, 0xb7, 0x1e, 0x57, 0x98, 0x07, 0xbc, 0x35, 0x49, 0x65, 0xb6, 0xcc, 0x10, 0xb8, 0x94, 0x96, 0xa0, 0xa7, 0xd6, 0xf8, 0x24, 0xb4, 0xe5, 0xb4, 0xf5, 0xd1, 0x5a, 0xd4, 0x02, 0x0c, 0x35, 0xec, 0x46, 0x47, 0x64, 0xe8, 0x17, 0x51, 0xce, 0xc1, 0xeb, 0xce, 0xe6, 0x0a, 0xea, 0xa1, 0x40, 0xf3, 0xd3, 0xea, 0x6e, 0x49, 0xee, 0x01, 0xa9, 0xd2, 0xe5, 0x7b, 0x4e, 0xb3, 0x63, 0x94, 0xd8, 0x64, 0x6d, 0x61, 0xf4, 0xfb, 0xda, 0x43, 0x5b, 0x87, 0x34, 0x25, 0xc7, 0x10, 0xc1, 0x26, 0x13, 0xfc, 0x95, 0x48, 0x57, 0x12, 0x3b, 0x33, 0xe0, 0xbd, 0xf4, 0x76, 0x41, 0x93, 0xde, 0x66, 0x23, 0x2f, 0x03, 0x08, 0xb6, 0x87, 0xa1, 0x03, 0x82, 0x4b, 0x44, 0x24, 0x65, 0xdb, 0x8b, 0x83, 0xcb, 0xf3, 0x8c, 0xfb, 0x11, 0x26, 0x9c, 0xba, 0xf6, 0x0a, 0x29, 0x61, 0x40, 0x14, 0x01, 0xd8, 0x8c, 0xb1, 0x71, 0x2f, 0x87, 0x02, 0x9b, 0xd1, 0x43, 0x27, 0x5e, 0x4e, 0xa5, 0x90, 0x2e, 0x97, 0x2b, 0x23, 0x23, 0xcf, 0x3a, 0x1e, 0xc1, 0xd3, 0x34, 0xa9, 0x42, 0x11, 0xc1, 0x0c, 0xbb, 0x0d, 0x62, 0x0e, 0x00, 0x7a, 0x39, 0x3a, 0x4f, 0x2f, 0x99, 0x73, 0x59, 0x5e, 0xe7, 0xd5, 0xa3, 0xa3, 0xc1, 0x58, 0xc1, 0xa8, 0x89, 0x86, 0x99, 0x19, 0x5e, 0xb2, 0x30, 0xb7, 0x67, 0xf8, 0xd6, 0xac, 0x7d, 0x18, 0x60, 0x1b, 0x91, 0x6f, 0x42, 0xa4, 0x85, 0x4b, 0x73, 0x40, 0x7a, 0x35, 0x12, 0x52, 0xe8, 0x4b, 0xa3, 0x18, 0x5c, 0xce, 0xb4, 0xac, 0x04, 0xb3, 0x86, 0x32, 0x62, 0xcc, 0xcd, 0x43, 0x1a, 0x50, 0x6d, 0xa1, 0x08, 0x5c, 0xa8, 0xbc, 0xdd, 0x2f, 0x2b, 0x52, 0x53, 0x6c, 0x75, 0x54, 0x81, 0x57, 0x44, 0x2e, 0xfe, 0x2c, 0xab, 0xa9, 0xf9, 0x12, 0x4f, 0x20, 0x39, 0xf4, 0x59, 0x14, 0xc0, 0xc3, 0xa8, 0xcf, 0xbc, 0xb4, 0x49, 0xe8, 0xd2, 0x00, 0x1e, 0x8c, 0x4e, 0xfc, 0xbd, 0x05, 0x53, 0x51, 0xb6, 0x28, 0x47, 0x08, 0x84, 0x5c, 0x46, 0x53, 0x20, 0x17, 0x8a, 0x05, 0xcc, 0xc5, 0x46, 0x4b, 0xb4, 0x36, 0xa2, 0x59, 0x48, 0x57, 0x28, 0x8b, 0x55, 0xb7, 0xd2, 0x50, 0x8d, 0x8b, 0xb8, 0x28, 0x71, 0xb8, 0xcd, 0x65, 0x26, 0x47, 0x23, 0x87, 0xe0, 0xad, 0x29, 0x65, 0xaf, 0x30, 0x84, 0xa6, 0x85, 0x03, 0x0a, 0x31, 0x63, 0xdf, 0x9c, 0x1d, 0xbe, 0x3b, 0x1e, 0x9f, 0xbe, 0x3d, 0x00, 0xbb, 0x20, 0xb9, 0x09, 0xff, 0xfb, 0x3e, 0xf7, 0x32, 0x02, 0x5a, 0x34, 0xbe, 0x9a, 0xd7, 0x0c, 0x54, 0x4a, 0xdf, 0x32, 0x27, 0xf4, 0x7d, 0x96, 0x7e, 0x8c, 0x94, 0x17, 0x8d, 0x0d, 0x8b, 0xa2, 0x6e, 0x49, 0x2d, 0x1a, 0xe5, 0x8c, 0x24, 0xc1, 0x0f, 0x46, 0x49, 0x0c, 0x00, 0x61, 0x08, 0x0f, 0xd6, 0x8d, 0xbd, 0x56, 0x35, 0x69, 0x27, 0x1e, 0x79, 0xdb, 0xfc, 0xd0, 0x6b, 0x42, 0x0f, 0xd7, 0x9c, 0xea, 0x63, 0xee, 0x06, 0x4e, 0xc2, 0x31, 0xd6, 0x4e, 0x21, 0x78, 0xd7, 0x1a, 0x3a, 0x6a, 0x34, 0x98, 0xa9, 0x20, 0xeb, 0x92, 0xf9, 0x45, 0x37, 0x5f, 0x05, 0x27, 0x47, 0xd9, 0xb5, 0xb6, 0x4f, 0x77, 0x1b, 0x02, 0x2f, 0x1a, 0x75, 0x70, 0x80, 0xc7, 0x34, 0x19, 0x44, 0x48, 0x54, 0xf3, 0xcb, 0x8a, 0xeb, 0x6c, 0x5e, 0x2e, 0x79, 0x2c, 0x2e, 0x5a, 0x04, 0xac, 0x2d, 0xc3, 0xa5, 0x8e, 0xd6, 0x22, 0x9b, 0xc9, 0x65, 0xab, 0x55, 0x64, 0x60, 0xa1, 0x3e, 0x54, 0xae, 0x8c, 0xc5, 0xc8, 0xab, 0x91, 0x03, 0xe4, 0x8d, 0x22, 0x6f, 0x57, 0x21, 0x7a, 0x1a, 0x6f, 0x71, 0x04, 0x04, 0x48, 0xa1, 0x50, 0x00, 0x2a, 0x8f, 0xb4, 0xe0, 0x9b, 0x2c, 0xfb, 0xc8, 0xdf, 0xb4, 0x81, 0x5b, 0x6e, 0x5c, 0x20, 0x89, 0xc4, 0xc9, 0xc6, 0xf7, 0x3b, 0x1b, 0xf1, 0x02, 0xad, 0x1c, 0x01, 0x6b, 0x73, 0x08, 0x15, 0x6f, 0x35, 0xfc, 0xf5, 0x4e, 0xf0, 0x4b, 0x23, 0x5d, 0xf8, 0x4f, 0x2b, 0x23, 0x2f, 0xae, 0x49, 0xd5, 0xc3, 0x97, 0x04, 0x16, 0x37, 0x82, 0x2c, 0x2b, 0x2d, 0xa0, 0xd3, 0xea, 0x63, 0xed, 0x6e, 0x79, 0xa8, 0x0a, 0x34, 0x7a, 0x08, 0x64, 0x8e, 0xa0, 0xe3, 0x12, 0x2d, 0xa6, 0x9d, 0xfd, 0x4f, 0x35, 0xa8, 0x8d, 0x57, 0xc9, 0xc9, 0x63, 0xc5, 0x9a, 0xd0, 0xb7, 0x39, 0x4b, 0x5f, 0xa5, 0xd6, 0x3a, 0xda, 0xc6, 0x65, 0xd9, 0xdb, 0xdd, 0xbd, 0x17, 0x4b, 0x4e, 0xc8, 0x7c, 0x2d, 0xa4, 0x1c, 0xa9, 0xc5, 0x1c, 0xe6, 0xb6, 0xd8, 0x27, 0x69, 0x2e, 0x85, 0xad, 0x5d, 0xf4, 0x4d, 0xf3, 0x49, 0x0b, 0xed, 0x66, 0xb5, 0xb0, 0x1b, 0xdb, 0x77, 0x35, 0x03, 0xac, 0x1c, 0xe9, 0xcc, 0x47, 0x7c, 0x9f, 0x0f, 0xda, 0xef, 0x74, 0x13, 0x41, 0x58, 0x0e, 0x20, 0xce, 0x4f, 0x2f, 0xba, 0x3b, 0x91, 0x7c, 0x75, 0xe7, 0x3c, 0xb8, 0x36, 0x3a, 0x89, 0x79, 0x91, 0xa2, 0xc5, 0xf3, 0x1f, 0xad, 0x31, 0x00, 0xe2, 0x70, 0x71, 0xff, 0xc6, 0xda, 0x25, 0x46, 0x34, 0x62, 0x6a, 0x59, 0x63, 0x48, 0x06, 0xc1, 0x8a, 0x87, 0x2d, 0xec, 0x6a, 0xd3, 0x3a, 0x68, 0xc6, 0xe7, 0xf5, 0xd5, 0x63, 0x6d, 0x78, 0x2d, 0xee, 0x7f, 0x1b, 0xfd, 0xaf, 0x5d, 0x5e, 0xf0, 0xac, 0x7d, 0xbe, 0x04, 0xc1, 0x31, 0x04, 0xd0, 0x46, 0x57, 0x10, 0x12, 0x36, 0x07, 0x11, 0x39, 0x9c, 0xcd, 0x65, 0xe1, 0x79, 0xe1, 0x09, 0x75, 0x92, 0x53, 0x3a, 0xb5, 0x26, 0xb7, 0x03, 0x76, 0x1e, 0x82, 0xc5, 0xaa, 0x4a, 0x4b, 0x21, 0xa7, 0xd2, 0x03, 0x39, 0xb4, 0x75, 0xd8, 0x31, 0x7f, 0x7e, 0x08, 0x9f, 0xc4, 0xa5, 0x21, 0x2e, 0x56, 0xc4, 0x80, 0x22, 0x48, 0x7b, 0x83, 0x3f, 0x80, 0x35, 0x05, 0x63, 0xb7, 0x0e, 0x70, 0x76, 0xe6, 0xd6, 0x50, 0x25, 0x10, 0x9f, 0x70, 0xd4, 0xc9, 0x31, 0x48, 0x2c, 0x5a, 0x60, 0x22, 0x2d, 0x29, 0x79, 0x31, 0xb5, 0x43, 0x0e, 0x45, 0xe9, 0x22, 0xfd, 0xc2, 0x8c, 0x5b, 0xab, 0x8f, 0xa2, 0x88, 0x65, 0x69, 0x41, 0x3b, 0x37, 0x4f, 0x6d, 0x12, 0x2e, 0x06, 0x42, 0x98, 0x3c, 0xb2, 0x85, 0xe9, 0x64, 0x0d, 0x04, 0xf0, 0x26, 0x09, 0x67, 0x0d, 0xb2, 0x41, 0x16, 0xca, 0x5f, 0x24, 0x49, 0x11, 0xc8, 0x6f, 0x82, 0xc3, 0x01, 0x54, 0xca, 0xaa, 0xf2, 0x52, 0xa3, 0x36, 0xae, 0x72, 0x73, 0xaa, 0xc5, 0x06, 0x54, 0x22, 0x27, 0x58, 0xe5, 0xbb, 0xc1, 0x62, 0x57, 0x73, 0x2f, 0x42, 0x17, 0xea, 0x0e, 0x16, 0xe1, 0x21, 0x28, 0x84, 0x75, 0x48, 0x17, 0x2c, 0x53, 0x24, 0xb7, 0x98, 0xd7, 0x10, 0x6f, 0xf5, 0x26, 0x31, 0x3d, 0x4b, 0x1d, 0x62, 0xdf, 0xa2, 0x89, 0x23, 0x32, 0x66, 0x6d, 0x0b, 0x35, 0x0b, 0xf9, 0xbf, 0x20, 0x57, 0x3e, 0xfd, 0x8b, 0xf6, 0x38, 0x66, 0x1d, 0xd3, 0x21, 0x08, 0xb2, 0x57, 0x04, 0x7a, 0x5e, 0x52, 0xb6, 0xd3, 0x3b, 0x14, 0xa7, 0xba, 0x0f, 0x83, 0xba, 0x03, 0xa0, 0x50, 0x02, 0xcd, 0x2d, 0xe1, 0x00, 0x12, 0x3a, 0xa6, 0x2d, 0x9c, 0x56, 0xf9, 0xb2, 0xe1, 0xb4, 0x34, 0xa9, 0x9a, 0xb9, 0xcf, 0xea, 0xbf, 0x9c, 0x97, 0x93, 0x94, 0xef, 0x88, 0x4d, 0x5a, 0xd5, 0xb8, 0x57, 0x0b, 0xd8, 0x9e, 0xd8, 0x1b, 0x91, 0x67, 0xa4, 0x31, 0x8f, 0x59, 0xf1, 0xf0, 0x60, 0x80, 0xbc, 0x8d, 0xdb, 0x66, 0xed, 0x07, 0xed, 0x27, 0x18, 0x26, 0x76, 0x78, 0x31, 0x90, 0xdb, 0xab, 0xe8, 0x1d, 0xc8, 0xf9, 0xad, 0xbd, 0x2b, 0x15, 0x58, 0xde, 0x80, 0xdb, 0x49, 0x66, 0x2b, 0x56, 0x07, 0x9d, 0x3c, 0xd9, 0x94, 0x7c, 0x21, 0x69, 0x7e, 0x8a, 0x44, 0x54, 0xdb, 0xd3, 0x86, 0xd3, 0x72, 0x62, 0xd8, 0x0d, 0x04, 0x24, 0x2f, 0xe9, 0xa8, 0x83, 0xe4, 0xaa, 0xbc, 0x41, 0xe9, 0x5d, 0x41, 0xc6, 0x89, 0x9b, 0x9c, 0x96, 0x55, 0x78, 0x7b, 0xc5, 0x00, 0x3c, 0x21, 0xc5, 0x5f, 0xb0, 0x5b, 0x00, 0xba, 0x34, 0x9f, 0xc9, 0x9a, 0x9d, 0xf1, 0xbb, 0x51, 0xb4, 0x1d, 0x45, 0xf6, 0xd3, 0x3d, 0x21, 0x35, 0xf0, 0x35, 0x73, 0xc4, 0x73, 0xee, 0x17, 0xba, 0x65, 0xe8, 0x45, 0xea, 0xa4, 0x53, 0x18, 0x53, 0x40, 0x51, 0x16, 0x39, 0xcb, 0x9c, 0x20, 0x9a, 0xc4, 0x67, 0x56, 0x41, 0xb9, 0xcb, 0xf3, 0x3b, 0xce, 0xa0, 0xc4, 0x91, 0xc3, 0xe7, 0x21, 0x81, 0x63, 0xa5, 0xa7, 0xac, 0x99, 0x7a, 0xbf, 0x9c, 0x65, 0xe9, 0x3c, 0xda, 0xa7, 0x9c, 0x26, 0x8c, 0x68, 0x27, 0xf3, 0x36, 0x34, 0xed, 0x2c, 0x34, 0x78, 0x2e, 0xf5, 0x33, 0x9c, 0x41, 0x5e, 0xb4, 0x80, 0x7a, 0x70, 0xa7, 0xc2, 0x93, 0xa6, 0x3e, 0x6f, 0xd7, 0xc0, 0x0c, 0xd3, 0x4e, 0x18, 0x8c, 0xd4, 0xec, 0x0a, 0x2b, 0xe1, 0x6b, 0x7a, 0x73, 0x92, 0xd8, 0x07, 0x90, 0xfc, 0xca, 0x19, 0xbc, 0x41, 0x7b, 0x39, 0x89, 0xa6, 0x09, 0x80, 0x00, 0x8b, 0x19, 0xad, 0xc8, 0xa3, 0x79, 0x71, 0x2e, 0x24, 0xf1, 0xc8, 0x6d, 0xb9, 0x8a, 0xc8, 0xb8, 0x03, 0xfb, 0x58, 0x86, 0x27, 0x7d, 0x9d, 0x69, 0xca, 0x2b, 0xcc, 0x0f, 0xde, 0xfe, 0xc6, 0x82, 0x2a, 0xd0, 0x58, 0xc2, 0x6b, 0x98, 0xcd, 0xec, 0xef, 0xc7, 0x6f, 0x06, 0x37, 0x41, 0x57, 0x12, 0xc3, 0x5d, 0xaf, 0xd3, 0x8b, 0x4c, 0x6d, 0x16, 0x61, 0xdd, 0xe5, 0xd4, 0x6c, 0x1f, 0x32, 0x75, 0x6e, 0xd8, 0xa0, 0x28, 0x22, 0xc5, 0xca, 0xcc, 0x35, 0x89, 0x4b, 0x5a, 0x91, 0x4b, 0xd7, 0x40, 0xd8, 0x6d, 0x3d, 0xcf, 0x97, 0x1a, 0xa6, 0x1c, 0x24, 0x99, 0x64, 0x93, 0xce, 0xef, 0xe4, 0x48, 0x56, 0xc3, 0x88, 0x03, 0x4e, 0xf3, 0xed, 0x14, 0x26, 0x7d, 0x4e, 0x96, 0xd1, 0x56, 0x67, 0xf4, 0xc7, 0xbb, 0x7b, 0x98, 0xed, 0xe3, 0xdd, 0x67, 0xdb, 0x6d, 0xa9, 0x3c, 0xaf, 0xb3, 0x21, 0xb2, 0x91, 0x1f, 0xd8, 0xd1, 0x14, 0x6f, 0x48, 0xfe, 0xf2, 0x6c, 0x55, 0x39, 0x7f, 0x1e, 0xf5, 0xba, 0x85, 0x83, 0xb2, 0xbe, 0x22, 0x74, 0xde, 0x40, 0xca, 0xd3, 0x6b, 0xf2, 0x1e, 0x27, 0x36, 0x92, 0x58, 0xe2, 0x9d, 0x4a, 0xf1, 0xb2, 0x74, 0xd2, 0xe4, 0x8d, 0xc0, 0x73, 0xd6, 0x02, 0x8f, 0xb5, 0xbd, 0x96, 0x55, 0x73, 0x15, 0x25, 0x67, 0x70, 0xb4, 0x9b, 0xd2, 0x5b, 0x9e, 0x93, 0xbc, 0xce, 0x8b, 0xbc, 0xbe, 0x22, 0xb2, 0x5f, 0x50, 0xd2, 0xc2, 0x65, 0x16, 0x02, 0xa1, 0x18, 0x76, 0x64, 0x4c, 0x00, 0x36, 0xf7, 0x2b, 0x74, 0x30, 0xa1, 0x8c, 0x60, 0xde, 0x77, 0xa9, 0x44, 0x94, 0x5e, 0xac, 0x40, 0xd0, 0x74, 0xcb, 0xec, 0x6b, 0x15, 0xec, 0x3a, 0x05, 0xf7, 0x35, 0x0a, 0xa6, 0xb6, 0x95, 0xc0, 0x52, 0xf4, 0x9a, 0xc8, 0xc5, 0xba, 0x83, 0x25, 0x5b, 0x74, 0xb8, 0xa7, 0x63, 0xc3, 0x82, 0x5c, 0x4f, 0x7b, 0xe4, 0x76, 0x9b, 0x9f, 0xfd, 0x60, 0x74, 0xd1, 0xd1, 0x73, 0xfb, 0xe3, 0xed, 0x87, 0x35, 0x16, 0xde, 0xef, 0xe8, 0x66, 0x54, 0x64, 0x21, 0x11, 0x69, 0x38, 0xac, 0xbe, 0xe0, 0x7f, 0xc4, 0x3d, 0xde, 0xc0, 0x12, 0x38, 0x7e, 0x73, 0x48, 0x45, 0x2e, 0xae, 0xec, 0xd3, 0xcb, 0x2d, 0xd6, 0xca, 0x6b, 0xdb, 0x79, 0x35, 0x93, 0x12, 0x85, 0x28, 0x10, 0xac, 0xa0, 0x19, 0x70, 0x12, 0x26, 0xf2, 0xc9, 0x5d, 0xf2, 0x85, 0x6a, 0x73, 0x73, 0x6a, 0x25, 0x49, 0x17, 0x61, 0x94, 0x9c, 0x64, 0xdc, 0x55, 0x6d, 0xf3, 0xcb, 0xcd, 0x48, 0x99, 0xf6, 0xe6, 0x0b, 0xaf, 0x13, 0x45, 0xed, 0x1a, 0x36, 0x6e, 0xfe, 0x91, 0xcc, 0x7a, 0x02, 0xdd, 0xe2, 0x6f, 0xca, 0x11, 0x70, 0xe1, 0x84, 0xe4, 0xbc, 0xf4, 0x54, 0xde, 0x0a, 0x8e, 0x6c, 0x3b, 0x87, 0x74, 0xc9, 0x00, 0xde, 0x54, 0x09, 0xd1, 0x5e, 0xbb, 0x2a, 0x73, 0x9b, 0x41, 0x19, 0x77, 0x71, 0x27, 0xa0, 0x6e, 0xdc, 0xcb, 0xdd, 0x35, 0xbb, 0xe6, 0x19, 0xf1, 0x54, 0xe0, 0x42, 0x33, 0x7a, 0x3e, 0xcc, 0x42, 0xb6, 0xb9, 0xcd, 0xaf, 0x2f, 0x2f, 0xa3, 0x89, 0xae, 0x66, 0x0b, 0xe8, 0xe0, 0x69, 0xcd, 0x17, 0xc6, 0xde, 0x82, 0xbe, 0x41, 0x72, 0xbe, 0xbf, 0x2a, 0xc6, 0xe9, 0xee, 0x91, 0x67, 0xbc, 0x55, 0xbc, 0xf0, 0x0b, 0x0f, 0x7b, 0xe2, 0x1e, 0x20, 0x03, 0xa1, 0x03, 0x72, 0x66, 0xe1, 0xa7, 0x36, 0xe8, 0x71, 0x91, 0x1a, 0xca, 0xb8, 0x93, 0x04, 0xa3, 0x39, 0x95, 0x8a, 0x89, 0x31, 0x15, 0xf0, 0xb0, 0x39, 0x9a, 0x0d, 0x4a, 0x61, 0x12, 0x75, 0x9c, 0xe2, 0x7d, 0x2c, 0x44, 0xdb, 0x90, 0x4a, 0x26, 0x18, 0x26, 0x89, 0xb6, 0x5d, 0x12, 0xff, 0x05, 0x8a, 0x94, 0xba, 0xbe, 0x71, 0x29, 0x59, 0x52, 0x7c, 0x44, 0x56, 0x56, 0x5c, 0x4e, 0x0b, 0x2a, 0xaf, 0xc0, 0x34, 0xbc, 0x7e, 0xea, 0x5e, 0x95, 0x7a, 0x37, 0x52, 0x05, 0x0b, 0xc2, 0x30, 0xa3, 0x1d, 0x5c, 0x12, 0x2e, 0x15, 0x9b, 0x12, 0xdc, 0x19, 0x5e, 0x2e, 0x13, 0x6a, 0xe6, 0xb9, 0xff, 0xe8, 0xf3, 0xcf, 0xa3, 0x0e, 0x3e, 0x86, 0xdd, 0x30, 0x34, 0x48, 0xdb, 0xe4, 0xa0, 0x93, 0x07, 0x16, 0x04, 0x9f, 0xbe, 0x4e, 0x04, 0xa6, 0x5e, 0xae, 0x12, 0x4d, 0x64, 0xe9, 0xab, 0xa1, 0x93, 0x17, 0xce, 0x97, 0x05, 0x69, 0x15, 0xc2, 0xc5, 0xa0, 0x5c, 0x11, 0xd7, 0x58, 0xe4, 0x7d, 0xf0, 0x90, 0x99, 0xa4, 0x69, 0x0b, 0x84, 0x88, 0x80, 0xc8, 0x4a, 0x5d, 0x01, 0xf7, 0xb8, 0x35, 0x8a, 0x03, 0xca, 0x97, 0x38, 0xfb, 0x0f, 0x74, 0xd5, 0x53, 0xe7, 0xbf, 0x99, 0x68, 0x06, 0xcc, 0x24, 0xb3, 0x38, 0x3c, 0xec, 0xe8, 0xe8, 0x20, 0xa5, 0xb1, 0xff, 0xb1, 0xa0, 0x62, 0x5f, 0xea, 0x88, 0x64, 0x86, 0xef, 0x0c, 0x07, 0xe8, 0x8b, 0xcb, 0xac, 0x09, 0x0b, 0x54, 0xbd, 0xb2, 0x8e, 0x35, 0x83, 0x47, 0x6e, 0x83, 0x94, 0xd7, 0xbe, 0x90, 0xe6, 0x1d, 0xf9, 0x85, 0x5e, 0x50, 0x6d, 0x20, 0xf4, 0x25, 0x27, 0xdb, 0xbe, 0x60, 0x47, 0x0b, 0x97, 0x1b, 0x33, 0x87, 0xfa, 0x32, 0x8a, 0x85, 0xe9, 0x7a, 0x59, 0x02, 0x9b, 0xb1, 0x69, 0x8c, 0x66, 0xed, 0xb8, 0x37, 0x2a, 0x84, 0x2c, 0xfa, 0x9e, 0xec, 0x2f, 0x54, 0xe4, 0x79, 0x0c, 0x8c, 0xe9, 0x85, 0xf5, 0x58, 0x4b, 0x4b, 0x2c, 0xaa, 0xd0, 0xa2, 0xf9, 0xc4, 0x76, 0x42, 0xfb, 0x59, 0x10, 0x87, 0x30, 0x4f, 0x07, 0x56, 0x0f, 0xbd, 0xeb, 0xed, 0x53, 0x78, 0xf6, 0x2e, 0xf7, 0xd2, 0x61, 0xc6, 0xf1, 0x1e, 0x3b, 0xe8, 0x39, 0x3f, 0x84, 0x9b, 0x5a, 0xa7, 0x37, 0x2e, 0x45, 0x37, 0x2e, 0x47, 0xeb, 0x74, 0x10, 0x1d, 0xa0, 0xac, 0xcb, 0x32, 0xe3, 0x59, 0x02, 0x7e, 0x89, 0xb7, 0xf6, 0x05, 0x1c, 0x57, 0x4d, 0xb5, 0x9a, 0x92, 0x5e, 0x09, 0xa3, 0x1c, 0x5f, 0x8a, 0x75, 0x6d, 0xd4, 0x30, 0x9b, 0x5d, 0x31, 0x7a, 0xab, 0xe2, 0xcc, 0xb0, 0xc5, 0x02, 0x1c, 0xcb, 0x16, 0x9e, 0xe0, 0x0a, 0x73, 0x9d, 0xc2, 0x30, 0xda, 0xef, 0x3b, 0x83, 0xb3, 0xa5, 0xce, 0xff, 0xce, 0x5a, 0x99, 0x14, 0x78, 0x28, 0x8c, 0x26, 0x1c, 0x1c, 0x19, 0x35, 0x76, 0x49, 0x5e, 0x51, 0x37, 0x6a, 0x16, 0xe5, 0x44, 0x6f, 0x01, 0x9f, 0xf6, 0x6b, 0x9c, 0x58, 0x1c, 0x91, 0x1a, 0x57, 0x65, 0x97, 0x2b, 0x12, 0x74, 0xd8, 0xa6, 0x2d, 0x85, 0xcd, 0xd6, 0x27, 0x96, 0xf9, 0x12, 0x1d, 0xaf, 0x8c, 0x3d, 0x17, 0xb4, 0xef, 0x35, 0x6f, 0x6d, 0x63, 0xc9, 0x85, 0xd9, 0xad, 0x66, 0x45, 0xb9, 0x28, 0x02, 0x1b, 0x66, 0xd8, 0xd7, 0x5f, 0x11, 0x00, 0x2a, 0x65, 0xe5, 0xdc, 0xa2, 0x69, 0x66, 0x2d, 0xef, 0x24, 0xbb, 0x08, 0x6c, 0x97, 0x0c, 0xf9, 0x8f, 0x24, 0x17, 0x38, 0xa5, 0xb0, 0x51, 0x0e, 0xc0, 0x1d, 0x49, 0xc9, 0x13, 0xf3, 0x47, 0x0a, 0x05, 0xc8, 0x55, 0x86, 0xb6, 0x82, 0x5d, 0xc1, 0x14, 0xba, 0xc3, 0x01, 0x39, 0x57, 0xb5, 0x27, 0x1f, 0x4f, 0x59, 0x9a, 0x62, 0x0d, 0x18, 0x21, 0x9c, 0xeb, 0x56, 0x05, 0x1c, 0x2e, 0xad, 0xb9, 0x2e, 0xae, 0x0e, 0x1b, 0x75, 0x43, 0x04, 0xb0, 0x56, 0xfd, 0x57, 0x6b, 0xf0, 0x12, 0xeb, 0x8b, 0xc0, 0xec, 0x01, 0x5f, 0xfc, 0x40, 0x3c, 0xa8, 0xd4, 0xf6, 0x54, 0x18, 0x5a, 0xdb, 0xee, 0x18, 0x88, 0x86, 0xb8, 0x69, 0x78, 0x27, 0xed, 0xfd, 0xa6, 0x30, 0xcd, 0x18, 0xb6, 0x9b, 0xc5, 0x51, 0xa8, 0x28, 0x1a, 0x47, 0x77, 0xc4, 0xc2, 0x21, 0x5b, 0x06, 0x02, 0x85, 0xaa, 0x4a, 0x0d, 0xbf, 0xfc, 0xeb, 0xf2, 0xb2, 0x17, 0x8e, 0x9b, 0x7b, 0xab, 0x19, 0x5b, 0x21, 0x6c, 0xe6, 0x08, 0x3a, 0x1c, 0xbe, 0x4e, 0x64, 0x3e, 0x5f, 0x7c, 0xd9, 0x1a, 0x50, 0x1b, 0x1c, 0xf9, 0xfd, 0x3b, 0x04, 0xbc, 0x69, 0x7a, 0x99, 0xf7, 0x6e, 0x02, 0xef, 0x02, 0x7a, 0xdf, 0xd8, 0x9a, 0x92, 0xfa, 0xaa, 0xcc, 0xe4, 0xe4, 0x0a, 0x58, 0xc0, 0x8e, 0x6f, 0x68, 0x2a, 0x41, 0xd4, 0xc1, 0xde, 0x3f, 0x65, 0xc8, 0xf4, 0xff, 0x2c, 0xaf, 0x0a, 0xfa, 0x07, 0x0d, 0x4f, 0xa3, 0x7f, 0xb1, 0xb7, 0x17, 0x9d, 0xf5, 0xfa, 0x03, 0xc3, 0x54, 0x49, 0x08, 0x49, 0x81, 0x80, 0xc7, 0xd3, 0x5a, 0x06, 0xff, 0x08, 0x65, 0xd0, 0x11, 0x3f, 0x64, 0x0a, 0xf6, 0x0a, 0xc4, 0x4a, 0xef, 0x65, 0xce, 0xbe, 0x8e, 0x32, 0xc3, 0xdc, 0x4a, 0x06, 0x80, 0xa1, 0x45, 0x72, 0x27, 0xfa, 0x17, 0xbe, 0x41, 0x99, 0x00, 0x77, 0x5f, 0xbc, 0xb8, 0x5a, 0x5d, 0x66, 0xe0, 0x97, 0xcd, 0x6d, 0xb3, 0xf1, 0xa0, 0x55, 0xab, 0x6f, 0x82, 0xd3, 0xba, 0x1a, 0x2f, 0xa5, 0x1d, 0xd5, 0x6a, 0x2d, 0xc5, 0x81, 0x03, 0x2b, 0x48, 0xb5, 0xb7, 0xa9, 0x0e, 0xdd, 0x42, 0x51, 0x56, 0x42, 0x07, 0xbc, 0x69, 0x02, 0x64, 0xe4, 0xa0, 0x53, 0xd6, 0xac, 0xe0, 0x26, 0x9b, 0x7c, 0xf1, 0x25, 0xf9, 0xb3, 0x6e, 0xd1, 0x5f, 0x86, 0xb5, 0x59, 0xda, 0xb8, 0x1d, 0xb4, 0x9b, 0x49, 0xbc, 0x45, 0x74, 0x07, 0x29, 0xab, 0xfe, 0x61, 0xbd, 0xc2, 0x55, 0x6f, 0xc8, 0x8b, 0xb2, 0x5c, 0x3b, 0x22, 0xed, 0x0a, 0x77, 0x30, 0xc4, 0xbe, 0x78, 0xc9, 0xec, 0x9c, 0xe2, 0xed, 0xca, 0xf2, 0x99, 0x24, 0x9c, 0x80, 0xe1, 0xbb, 0x10, 0x03, 0x49, 0x41, 0xbc, 0x95, 0x6d, 0x73, 0x95, 0x34, 0x5f, 0x0c, 0xb4, 0xae, 0x33, 0xd2, 0x51, 0xcc, 0xad, 0x81, 0xaf, 0x21, 0xa8, 0x82, 0xfe, 0xfa, 0x47, 0xfb, 0x3a, 0xfd, 0xc7, 0xdc, 0x62, 0x74, 0x6c, 0x58, 0xb3, 0x9a, 0xe3, 0x0b, 0xfb, 0xc5, 0x1d, 0xa4, 0x1f, 0xd8, 0x30, 0xeb, 0xe6, 0x80, 0xf5, 0xeb, 0x3f, 0x6e, 0xb6, 0xe2, 0x54, 0x88, 0x21, 0x71, 0x90, 0x6a, 0x56, 0x06, 0xea, 0x2c, 0xe5, 0xe2, 0x4b, 0x94, 0x89, 0x66, 0xdf, 0x33, 0x71, 0xd2, 0xb6, 0x13, 0x9d, 0xfb, 0x8f, 0x1b, 0x76, 0xf6, 0x3f, 0x6e, 0xb8, 0xf9, 0xff, 0xb8, 0xe1, 0x56, 0xf0, 0xe3, 0xc6, 0x06, 0xf7, 0x57, 0x0e, 0x0d, 0xe1, 0x9f, 0x7b, 0xe8, 0x9b, 0xfc, 0x51, 0xf7, 0x4d, 0xef, 0x93, 0xde, 0x17, 0x37, 0x36, 0xd7, 0x6d, 0x9a, 0x4b, 0x0d, 0xc8, 0x2f, 0x3c, 0x00, 0x62, 0xde, 0x40, 0x52, 0xaf, 0x64, 0x93, 0x74, 0x97, 0xdc, 0xae, 0x20, 0xa2, 0x75, 0x17, 0x00, 0x76, 0xb9, 0x27, 0x68, 0xcb, 0x5d, 0xf3, 0x42, 0xaf, 0x29, 0x8f, 0x45, 0x39, 0xb6, 0x01, 0x43, 0xc0, 0x5b, 0xce, 0x42, 0x39, 0x64, 0x5f, 0x0f, 0xe4, 0xce, 0x7f, 0x37, 0x5f, 0xb0, 0x79, 0xd7, 0xd2, 0x4f, 0x84, 0x51, 0x07, 0xb4, 0x5c, 0xa6, 0xe0, 0x7c, 0x15, 0xa9, 0x83, 0x26, 0xdc, 0xc2, 0xbc, 0x71, 0xbd, 0x23, 0x03, 0x96, 0xbb, 0xc8, 0xd1, 0xca, 0xd2, 0x2c, 0x6b, 0xce, 0x86, 0xe9, 0x0e, 0x49, 0x03, 0x54, 0x3e, 0xa0, 0xc3, 0x64, 0x0d, 0xd3, 0x5c, 0x6c, 0xd6, 0x56, 0x10, 0xb2, 0x8f, 0x32, 0x88, 0x30, 0x36, 0x69, 0xd0, 0xaa, 0xfe, 0x62, 0xa3, 0xa2, 0xd6, 0xe0, 0xc9, 0x65, 0x65, 0xf4, 0xd7, 0x3f, 0x12, 0x6d, 0xad, 0xcc, 0x69, 0xb9, 0x8b, 0x7a, 0x3b, 0x5c, 0xdc, 0x99, 0xc9, 0x6f, 0xfe, 0x1c, 0xca, 0xb0, 0x2c, 0x6d, 0x36, 0xd3, 0xbc, 0x86, 0x4e, 0x82, 0x9a, 0xdc, 0x5a, 0x1c, 0x9d, 0xde, 0x49, 0x7d, 0xe6, 0x8b, 0x18, 0x0c, 0x6a, 0xb0, 0x10, 0x8f, 0xf3, 0xc2, 0x44, 0xfb, 0xe2, 0xf4, 0xdb, 0x3f, 0xea, 0x00, 0x3f, 0x6e, 0xfc, 0x30, 0xe4, 0x9f, 0x02, 0x00, 0xe2, 0x20, 0x39, 0xfd, 0x96, 0x88, 0xfb, 0xe7, 0x31, 0xb0, 0x75, 0x1f, 0xf8, 0x92, 0xff, 0x02, 0xca, 0x5e, 0x37, 0xec, 0xb9, 0x97, 0x26, 0xf7, 0x45, 0x42, 0x2d, 0xee, 0x51, 0x64, 0x8a, 0x8c, 0xd1, 0xe5, 0x92, 0x4a, 0x47, 0x15, 0xf2, 0xa0, 0x61, 0xc8, 0x03, 0xe8, 0x95, 0x93, 0x12, 0xbe, 0x82, 0x26, 0xec, 0x9d, 0x00, 0xec, 0xf6, 0xbf, 0x09, 0x7d, 0x11, 0x49, 0xdd, 0x89, 0x0e, 0xdc, 0xce, 0x31, 0xd3, 0x7c, 0x13, 0xb5, 0x2e, 0xcc, 0x7d, 0x38, 0x8a, 0x34, 0xc9, 0x71, 0x68, 0x75, 0xfc, 0x37, 0xe8, 0x63, 0x00, 0xe5, 0x23, 0xd3, 0x8a, 0x1a, 0x6e, 0x72, 0x86, 0xd8, 0x82, 0x9b, 0xee, 0xc2, 0xdf, 0x8d, 0xa8, 0x92, 0xa1, 0x97, 0x48, 0x08, 0x40, 0xa2, 0x92, 0x52, 0x86, 0x74, 0x51, 0xce, 0x67, 0x12, 0x8d, 0x30, 0x94, 0xcf, 0x27, 0x6c, 0xdb, 0xac, 0x1a, 0x55, 0x83, 0x36, 0x42, 0x22, 0x14, 0xf2, 0xd9, 0x18, 0x52, 0x80, 0x84, 0x11, 0x25, 0xbd, 0x8f, 0xfb, 0x0f, 0x48, 0xe2, 0x09, 0x48, 0xdf, 0x4c, 0x64, 0x31, 0xc9, 0xe0, 0x75, 0xd2, 0xa2, 0xfc, 0xa1, 0xf8, 0x85, 0x23, 0x9e, 0x9b, 0xee, 0xb5, 0x41, 0x2a, 0x9b, 0x54, 0xe5, 0x13, 0x2c, 0xe0, 0x37, 0x70, 0xa9, 0xe6, 0x0a, 0x39, 0x23, 0x7d, 0xcf, 0x90, 0x8b, 0x90, 0xc6, 0x17, 0x6b, 0x73, 0x66, 0x68, 0x87, 0xc2, 0xdb, 0x96, 0xfc, 0x4e, 0x3c, 0xc8, 0x5e, 0x6a, 0x0d, 0x56, 0x2f, 0xe7, 0x35, 0x0a, 0x5e, 0xf8, 0x41, 0x52, 0x42, 0x87, 0x7b, 0x07, 0x5e, 0x17, 0x3b, 0xfe, 0x59, 0x7c, 0x78, 0x1f, 0xd5, 0x4b, 0x66, 0x95, 0xd7, 0xb2, 0xfd, 0x6b, 0xc6, 0xdf, 0xb7, 0xe3, 0x7f, 0x16, 0x01, 0xd2, 0x62, 0xa8, 0xab, 0xf8, 0x67, 0xcf, 0xfd, 0x24, 0x70, 0x75, 0x9f, 0x3a, 0x27, 0x46, 0xcb, 0x7d, 0x20, 0x99, 0x7e, 0x0c, 0xb3, 0xc5, 0x08, 0x3a, 0x11, 0xab, 0x7f, 0xc6, 0x19, 0x42, 0xbc, 0x0e, 0xb3, 0x8d, 0x5d, 0xd3, 0x10, 0x1c, 0x59, 0xe8, 0xaa, 0x5c, 0x10, 0x42, 0xf7, 0xec, 0xc0, 0xb5, 0x44, 0x66, 0x50, 0xa0, 0xdc, 0x2f, 0xad, 0x72, 0x20, 0x0a, 0x61, 0x51, 0x7b, 0x0b, 0x00, 0x3f, 0xf8, 0x14, 0xb8, 0xb1, 0x80, 0xf3, 0x7b, 0x3d, 0x7b, 0x37, 0xb7, 0x36, 0xc5, 0xa1, 0x42, 0x1f, 0x4b, 0x11, 0xa6, 0x10, 0x07, 0x72, 0x4a, 0xc8, 0x0f, 0xbc, 0xfc, 0x61, 0x44, 0xeb, 0x38, 0x90, 0xec, 0x06, 0xb9, 0x13, 0x8c, 0xfc, 0x86, 0x44, 0x16, 0x35, 0x97, 0x19, 0xa5, 0xb1, 0x85, 0xf6, 0x16, 0x1a, 0xc7, 0xde, 0xfe, 0xca, 0x60, 0x6c, 0x93, 0x22, 0x5b, 0x5d, 0x6e, 0xc4, 0xe6, 0x17, 0xdb, 0x9b, 0x76, 0x69, 0xfd, 0xe6, 0x50, 0x1b, 0x08, 0x4e, 0x43, 0x8f, 0x36, 0x67, 0x86, 0x7d, 0x6e, 0x0b, 0xca, 0x78, 0x48, 0xb2, 0x21, 0x0e, 0x33, 0x0e, 0x89, 0xca, 0x78, 0x1d, 0x8c, 0xf2, 0x93, 0x17, 0xb8, 0x9b, 0x0c, 0xde, 0xc5, 0x24, 0x9e, 0xce, 0x1b, 0x2a, 0xd4, 0x42, 0x29, 0x1d, 0xc3, 0xb7, 0xd6, 0x07, 0x9e, 0x36, 0x1e, 0xb9, 0x9e, 0x14, 0xc3, 0x41, 0x93, 0x1d, 0xf1, 0x83, 0x78, 0x9e, 0x8c, 0x75, 0xaa, 0xf7, 0xe6, 0x17, 0x5b, 0x2c, 0xaf, 0x9c, 0x1f, 0xcd, 0xfb, 0xf6, 0x66, 0xf2, 0x63, 0x1c, 0xd5, 0x20, 0xe1, 0x77, 0x3d, 0xfb, 0x40, 0x68, 0xf6, 0xbe, 0x37, 0x92, 0x17, 0x93, 0x72, 0x76, 0xf7, 0x27, 0x44, 0x9c, 0xe4, 0x95, 0x17, 0x3b, 0xf8, 0x51, 0x47, 0x65, 0xee, 0x1b, 0x08, 0xa3, 0x98, 0xa3, 0xc2, 0x9f, 0x5f, 0xd2, 0xe3, 0x6a, 0x31, 0x6c, 0x26, 0xa3, 0x91, 0x61, 0x44, 0xf5, 0x02, 0xed, 0x1a, 0xd7, 0x08, 0x16, 0x00, 0x98, 0x6a, 0xa7, 0x2e, 0x41, 0xa0, 0x82, 0x3f, 0x47, 0x6d, 0x6b, 0x76, 0x3c, 0xf2, 0xaf, 0xaa, 0x2f, 0xcc, 0x98, 0x87, 0x36, 0x45, 0x32, 0xc9, 0x22, 0x3d, 0x14, 0xe8, 0x12, 0x33, 0x43, 0xf4, 0x00, 0x41, 0x3e, 0x9f, 0xe4, 0x82, 0x6d, 0x3a, 0x2b, 0x5b, 0xb8, 0xcc, 0x0c, 0xd2, 0x63, 0xc4, 0x7b, 0x1c, 0xfa, 0x12, 0x39, 0x87, 0x14, 0x1b, 0xc2, 0xef, 0xad, 0x01, 0x23, 0x73, 0x1b, 0x1e, 0x09, 0xd0, 0xa2, 0xf0, 0x97, 0x41, 0xf2, 0x6c, 0x92, 0x37, 0x0e, 0x17, 0x2e, 0xc8, 0xde, 0x60, 0x4b, 0xbf, 0x4e, 0x3e, 0x1f, 0xd2, 0x73, 0x5e, 0x37, 0x71, 0xa1, 0xfb, 0x76, 0xe6, 0xc6, 0x40, 0xf4, 0xc2, 0x21, 0xd2, 0x52, 0x23, 0xe5, 0x98, 0xb4, 0xb2, 0x49, 0x5a, 0x67, 0x4f, 0x1f, 0xf3, 0x27, 0x79, 0x93, 0x6a, 0xbd, 0xf6, 0xce, 0xf3, 0xea, 0xb2, 0xd8, 0x5a, 0x0b, 0xea, 0x5e, 0x04, 0xa0, 0x4a, 0x90, 0x72, 0x46, 0xcd, 0x21, 0xb9, 0x04, 0x83, 0xa4, 0xa9, 0x51, 0x24, 0x2f, 0x1b, 0xd4, 0x93, 0x3e, 0x7b, 0xea, 0x4d, 0x7a, 0x74, 0x8f, 0x85, 0xde, 0x65, 0xa4, 0xb2, 0xc6, 0xee, 0x9a, 0x2c, 0xc5, 0x06, 0xf7, 0x92, 0x7c, 0x1c, 0x8c, 0x24, 0x29, 0x8b, 0xb4, 0x5e, 0xc5, 0xfb, 0xae, 0x91, 0x7f, 0x09, 0xfe, 0xa8, 0xa4, 0xd3, 0xfd, 0xf0, 0x5a, 0xa2, 0xf6, 0x4c, 0x24, 0x7d, 0x9f, 0x27, 0xc1, 0x84, 0x7d, 0x3f, 0x5d, 0x53, 0xf0, 0xe0, 0x62, 0x55, 0x41, 0xfa, 0xc8, 0x63, 0xac, 0x24, 0x68, 0x95, 0xaa, 0xe8, 0xe9, 0x6f, 0x0e, 0xdf, 0xbe, 0x3f, 0x3c, 0x79, 0x78, 0xd7, 0xb8, 0x56, 0x23, 0xd2, 0xb5, 0xaf, 0x79, 0xb0, 0x14, 0x1d, 0xe0, 0xb6, 0xe3, 0x41, 0x0f, 0x90, 0x4d, 0x10, 0x6d, 0x20, 0x60, 0x9b, 0x6e, 0xae, 0x36, 0x95, 0x0c, 0x13, 0x69, 0x51, 0x6a, 0x48, 0x1c, 0xd3, 0x8d, 0x8b, 0x3c, 0x24, 0x2e, 0xee, 0x65, 0xed, 0xa7, 0xb5, 0xf4, 0xec, 0xdd, 0xd0, 0xf7, 0xe9, 0xf5, 0x0d, 0x29, 0x1d, 0xb2, 0x28, 0x21, 0x11, 0x2a, 0xb7, 0xa8, 0x26, 0x36, 0xe3, 0x6a, 0xc9, 0x00, 0xdb, 0x33, 0x11, 0x66, 0x2d, 0xa7, 0x5b, 0x79, 0x71, 0xe1, 0x15, 0x4f, 0x74, 0x23, 0x7b, 0x2f, 0x5f, 0xf6, 0x03, 0x2e, 0x7c, 0x4a, 0xf8, 0xeb, 0x4e, 0x3d, 0x12, 0xb6, 0xd1, 0x71, 0xf7, 0x61, 0x53, 0x32, 0x1a, 0xc9, 0x0b, 0x99, 0x5b, 0x7c, 0x57, 0x19, 0x7a, 0xcc, 0x83, 0x8e, 0x51, 0x25, 0x17, 0x0d, 0xc9, 0xc7, 0x47, 0xef, 0xb0, 0x5d, 0x67, 0x87, 0xe3, 0xb1, 0xc5, 0x02, 0x91, 0x0c, 0x9f, 0xc0, 0x18, 0x43, 0xb0, 0xcf, 0xeb, 0x8a, 0x35, 0x72, 0xb9, 0x61, 0x92, 0xcb, 0xaf, 0x9c, 0xe3, 0x7c, 0xb5, 0x30, 0xf7, 0xc5, 0x28, 0xbc, 0x33, 0x8a, 0x0f, 0x73, 0x04, 0xb6, 0x4b, 0x78, 0xc4, 0xb9, 0x54, 0x91, 0xc2, 0x61, 0x83, 0xfe, 0x50, 0xf0, 0x33, 0xd6, 0x52, 0x96, 0x54, 0xa3, 0xd6, 0x1e, 0x68, 0xf9, 0x20, 0xea, 0xfb, 0xd9, 0x18, 0x1f, 0x9f, 0x1f, 0x25, 0x87, 0xef, 0xcf, 0xbf, 0xd9, 0xe0, 0x0d, 0xee, 0xe2, 0x1f, 0xc1, 0x53, 0x4f, 0x0d, 0xc0, 0x25, 0x6d, 0xda, 0x16, 0x53, 0x73, 0xe9, 0x62, 0x44, 0x53, 0xf2, 0xbe, 0x39, 0x5a, 0x73, 0x4a, 0x4f, 0x46, 0x4f, 0xba, 0xa7, 0xd4, 0xdf, 0xce, 0x00, 0x88, 0xf4, 0x80, 0xb4, 0xdf, 0xd6, 0xbd, 0x13, 0x8a, 0x17, 0xa4, 0x7b, 0x4a, 0x9c, 0xda, 0x71, 0xfd, 0xb5, 0x24, 0xad, 0x19, 0x76, 0x7f, 0x04, 0x0e, 0xd5, 0x62, 0xc3, 0xda, 0x68, 0x38, 0xa0, 0xfd, 0x2d, 0x7c, 0x9c, 0x38, 0x79, 0x39, 0x0e, 0x6a, 0x4e, 0x2c, 0xad, 0x66, 0x16, 0x13, 0x20, 0xa2, 0x1f, 0x6a, 0x8a, 0x1f, 0x25, 0x99, 0x1b, 0x12, 0x18, 0x3d, 0x2c, 0xa1, 0xcc, 0xe5, 0xf1, 0xc5, 0x9b, 0x2d, 0xc0, 0x79, 0x8e, 0x2e, 0x5e, 0x16, 0xe6, 0x7f, 0x6d, 0xd6, 0x63, 0x1c, 0xd0, 0x9f, 0xf6, 0x55, 0x12, 0x45, 0x5e, 0xf0, 0x9f, 0x71, 0x7a, 0x27, 0x91, 0x5b, 0x95, 0x73, 0xf6, 0x20, 0xca, 0x0b, 0x9c, 0xbc, 0xc9, 0xb5, 0x8e, 0xb6, 0x06, 0x2f, 0x45, 0xf4, 0x13, 0xe6, 0x09, 0xb7, 0x99, 0x09, 0xdb, 0x32, 0x6e, 0x8d, 0xb7, 0x13, 0xeb, 0x6a, 0x3d, 0x47, 0x2c, 0x11, 0xe3, 0x45, 0x8a, 0x58, 0x03, 0xa4, 0xe1, 0x20, 0x52, 0x41, 0xe4, 0xec, 0x6e, 0x6f, 0x68, 0x31, 0x81, 0x51, 0x4f, 0x6f, 0x66, 0x3d, 0xe0, 0xa3, 0xb4, 0x04, 0xe4, 0x8e, 0xd9, 0x52, 0x84, 0x97, 0xdf, 0xbf, 0xf2, 0x3a, 0xb1, 0x69, 0x72, 0x5a, 0xc2, 0xc4, 0x22, 0xb9, 0xe4, 0x7d, 0x78, 0xc1, 0x1e, 0xee, 0x29, 0x9a, 0x9f, 0x52, 0x34, 0x75, 0x96, 0x65, 0x4b, 0xdb, 0xfb, 0x22, 0x47, 0x8d, 0x25, 0x92, 0x73, 0xcc, 0x3d, 0xe5, 0xbe, 0x23, 0x8b, 0xd0, 0xb3, 0x64, 0xb5, 0x1e, 0xe6, 0x1c, 0x0e, 0x94, 0x8a, 0x3a, 0x4b, 0x52, 0xec, 0x76, 0xef, 0xd9, 0xa3, 0xcf, 0x8d, 0x60, 0xbe, 0x43, 0xf2, 0x77, 0x0b, 0xa4, 0x9e, 0xc1, 0xdd, 0xfb, 0x81, 0x5b, 0xc5, 0xaa, 0xd1, 0x94, 0x5e, 0x01, 0xd3, 0x49, 0x6a, 0x32, 0x23, 0xe0, 0xa0, 0x12, 0x68, 0x8b, 0x10, 0x89, 0xcc, 0x6c, 0xa2, 0x7a, 0x7b, 0xb0, 0x63, 0x94, 0x4b, 0x88, 0xdd, 0xe2, 0xcc, 0xb0, 0x91, 0x47, 0xc3, 0x46, 0xb9, 0xa3, 0x5e, 0x9b, 0x83, 0xe4, 0xdd, 0xd1, 0xf9, 0xbb, 0x41, 0x32, 0x3e, 0x3f, 0x7d, 0xd7, 0x03, 0xb5, 0xdb, 0x30, 0x48, 0x13, 0xed, 0x99, 0xa6, 0xa9, 0xf0, 0xad, 0x6c, 0xc1, 0x70, 0x22, 0x03, 0x9a, 0x19, 0x4f, 0x1d, 0x45, 0x6e, 0xf4, 0x00, 0x1c, 0xbd, 0xdd, 0x02, 0xd9, 0x18, 0xf9, 0xb0, 0x76, 0x61, 0x7c, 0xec, 0x0f, 0xa0, 0x10, 0xa2, 0x45, 0x5a, 0xae, 0x65, 0xf3, 0x98, 0xad, 0xb1, 0xd8, 0xc8, 0xf5, 0xef, 0xda, 0x9c, 0x68, 0x49, 0x48, 0x0f, 0x3c, 0x2d, 0xa7, 0xe4, 0xd6, 0x2e, 0x65, 0xd8, 0x90, 0xdc, 0x86, 0xa2, 0xc0, 0x6c, 0x98, 0xeb, 0x06, 0xef, 0xb1, 0x03, 0x5c, 0xbb, 0x87, 0x7e, 0x8d, 0x2e, 0xb4, 0x3d, 0xf2, 0x12, 0x78, 0x92, 0xba, 0x5c, 0x64, 0xec, 0xe6, 0x87, 0x23, 0x48, 0xf9, 0x13, 0xb7, 0xf8, 0x05, 0xd2, 0x78, 0x0c, 0x0d, 0xc9, 0x62, 0x42, 0xd2, 0x29, 0x6f, 0x5a, 0x38, 0x19, 0xad, 0x43, 0xe0, 0x73, 0xc9, 0x8c, 0x99, 0xda, 0x00, 0x6c, 0x73, 0x53, 0x67, 0xe5, 0x81, 0x45, 0xb6, 0x99, 0xf7, 0x5e, 0x97, 0xc9, 0x10, 0x24, 0x4f, 0x94, 0xb3, 0x50, 0x82, 0x4a, 0x0b, 0x08, 0x48, 0x6b, 0xa0, 0xa0, 0x4a, 0xf8, 0xdd, 0xa5, 0xcf, 0xe4, 0x29, 0x8d, 0x84, 0x07, 0xac, 0x00, 0x6c, 0x60, 0xee, 0xca, 0x79, 0xf5, 0xcc, 0x39, 0x42, 0xb3, 0xea, 0x72, 0xdd, 0x0e, 0xbe, 0x4d, 0xd7, 0x81, 0x27, 0x6a, 0x5b, 0xe2, 0x3a, 0xf6, 0x75, 0xb0, 0x5a, 0xd6, 0xb6, 0x85, 0xbc, 0x57, 0x79, 0x91, 0x06, 0xf0, 0xe2, 0xbb, 0x44, 0x4a, 0x30, 0xc0, 0xfe, 0xe2, 0xf8, 0x69, 0x49, 0xf2, 0xbe, 0x60, 0x58, 0x21, 0xf6, 0x24, 0x15, 0x48, 0x7c, 0x98, 0xd9, 0x9d, 0x23, 0x44, 0x3d, 0x4a, 0xd8, 0x82, 0xdc, 0x9a, 0x95, 0x50, 0xe8, 0x69, 0xd1, 0x21, 0x8a, 0x2b, 0x9c, 0xc8, 0xc8, 0x23, 0x50, 0x49, 0x23, 0x83, 0x49, 0xf8, 0x8a, 0x8b, 0xbb, 0x3a, 0x2b, 0x05, 0xc6, 0x4f, 0xb0, 0xd0, 0x33, 0xff, 0xd8, 0x98, 0xa3, 0xc1, 0xfe, 0x71, 0x8c, 0xa0, 0x61, 0xa8, 0x9d, 0x16, 0x62, 0x92, 0xac, 0x36, 0x9a, 0x23, 0x5e, 0x08, 0x9e, 0xd1, 0xaa, 0x98, 0x53, 0x7a, 0x78, 0x1b, 0x28, 0x48, 0x77, 0x72, 0xb4, 0x06, 0x80, 0xd2, 0xc7, 0x15, 0x6a, 0x91, 0x64, 0x1b, 0xad, 0xa5, 0xbd, 0xba, 0x5e, 0xdc, 0x07, 0x56, 0x28, 0xde, 0xd1, 0xc1, 0xd5, 0x59, 0xdd, 0x29, 0x16, 0xcf, 0x8b, 0x9c, 0xa0, 0xe4, 0xca, 0x6a, 0x87, 0xca, 0x14, 0x09, 0x87, 0x35, 0x31, 0x12, 0x52, 0x33, 0x51, 0x23, 0x0e, 0x0e, 0xd5, 0xe5, 0xc0, 0x40, 0xcc, 0xd0, 0xa3, 0x48, 0x6d, 0xa0, 0xa0, 0xec, 0x5b, 0x4c, 0x2d, 0xec, 0xed, 0x28, 0x89, 0xb5, 0x0b, 0x95, 0x5c, 0x10, 0xe4, 0x3a, 0xb6, 0x35, 0x32, 0xed, 0x5d, 0xad, 0xdd, 0xa7, 0x70, 0xb0, 0xd0, 0xf8, 0x36, 0xeb, 0xde, 0x4a, 0x6e, 0x6d, 0xfc, 0x05, 0x35, 0xdf, 0xec, 0x8a, 0x64, 0x85, 0xb4, 0xef, 0x26, 0x2c, 0x87, 0xf6, 0xc7, 0xea, 0xac, 0x59, 0x2d, 0x43, 0x39, 0x7f, 0x7c, 0xe6, 0x86, 0x14, 0xfc, 0x76, 0xda, 0x6a, 0x89, 0x8a, 0x7a, 0x93, 0x24, 0x58, 0x1d, 0x7b, 0x00, 0x4e, 0xf4, 0x77, 0x6f, 0x23, 0x14, 0x81, 0x40, 0xba, 0xf7, 0xe1, 0xc0, 0xa8, 0x78, 0xa1, 0x06, 0xf2, 0x1b, 0x46, 0xbb, 0xd8, 0x45, 0x07, 0x67, 0x6d, 0xd8, 0x23, 0xf5, 0x4e, 0xfa, 0xae, 0xd9, 0x94, 0xd6, 0x6c, 0xc3, 0x3b, 0xa3, 0x75, 0x28, 0x52, 0xb2, 0x4e, 0xe7, 0xb3, 0xf5, 0x9e, 0xfa, 0x32, 0xd1, 0x1d, 0xde, 0xfe, 0x2c, 0x5c, 0xba, 0x8c, 0xb5, 0x6e, 0x56, 0x7b, 0xcf, 0xf7, 0x47, 0x7b, 0x4f, 0x3f, 0x1f, 0xed, 0xa1, 0xd3, 0xb9, 0x37, 0x3b, 0xd7, 0x91, 0xdb, 0x1b, 0x28, 0xd2, 0xef, 0x3d, 0xe9, 0x87, 0x68, 0xe7, 0x2f, 0x2c, 0xee, 0x46, 0xf4, 0xdc, 0x88, 0xbb, 0xae, 0x05, 0xdf, 0x58, 0x18, 0xb5, 0x26, 0x2f, 0x82, 0x38, 0xc8, 0xd0, 0x65, 0x13, 0xa9, 0xb8, 0x5f, 0xe6, 0x44, 0x47, 0x0a, 0x9c, 0xec, 0x66, 0x65, 0x5b, 0xc6, 0x6a, 0x07, 0x2c, 0xba, 0x9d, 0xf1, 0x19, 0x29, 0x53, 0x9f, 0x8a, 0x1e, 0xe9, 0xf8, 0xba, 0xfd, 0xfe, 0xbf, 0x60, 0xf3, 0x29, 0x8f, 0x7c, 0x95, 0x3b, 0xef, 0x05, 0x7b, 0xa6, 0xd4, 0x26, 0x81, 0xcf, 0x1d, 0x18, 0x7f, 0x5d, 0x98, 0x38, 0x41, 0xfd, 0x62, 0xf6, 0xd7, 0x01, 0x5a, 0xf3, 0x84, 0xcc, 0x91, 0x07, 0xeb, 0xe8, 0x27, 0x21, 0x61, 0x4c, 0x4d, 0x41, 0xea, 0x22, 0xf9, 0xc9, 0x6b, 0x10, 0x58, 0xcc, 0xa1, 0x75, 0x38, 0x7a, 0xed, 0x0f, 0x7f, 0x70, 0x1c, 0x69, 0x8c, 0xe4, 0x17, 0xee, 0xce, 0xf4, 0x64, 0xc0, 0x78, 0xcb, 0x08, 0x78, 0x71, 0xa3, 0x97, 0x8d, 0x83, 0xbf, 0xc0, 0x37, 0xfc, 0xd3, 0xf0, 0x2f, 0xe6, 0x9f, 0x3f, 0x6d, 0xe8, 0xad, 0x66, 0x64, 0x46, 0x2d, 0x13, 0x71, 0xe0, 0xb7, 0x38, 0x9e, 0x41, 0xbb, 0x6b, 0x39, 0xb4, 0x82, 0xf3, 0x97, 0x67, 0x7c, 0x11, 0x2b, 0x8e, 0x79, 0x63, 0x9d, 0xc4, 0x88, 0xa0, 0xd6, 0x13, 0x07, 0x67, 0xa4, 0x67, 0xa6, 0x13, 0xbb, 0x97, 0xde, 0x3b, 0x03, 0x97, 0xd2, 0x70, 0xc3, 0x1c, 0x20, 0x35, 0xea, 0xed, 0x25, 0xf9, 0x57, 0x18, 0x90, 0x64, 0x44, 0xd5, 0x86, 0xac, 0x4b, 0x4b, 0x47, 0x79, 0x02, 0x75, 0x34, 0x44, 0x62, 0xaf, 0xc3, 0x8d, 0x99, 0xd3, 0x40, 0xe0, 0xcc, 0xb9, 0x24, 0xa2, 0x51, 0x18, 0xdd, 0x82, 0xec, 0x14, 0xc5, 0x73, 0xaf, 0xf2, 0xfa, 0x23, 0x2d, 0x4e, 0xaa, 0x7b, 0xbc, 0x0c, 0x21, 0xcc, 0xe7, 0x33, 0xab, 0xf5, 0xdd, 0x29, 0x62, 0x99, 0x2d, 0xdb, 0xf6, 0x76, 0xd6, 0x49, 0x07, 0x3d, 0x73, 0x45, 0xb6, 0x89, 0x82, 0x2e, 0xca, 0x63, 0x55, 0x16, 0xc7, 0x02, 0xed, 0xa4, 0xa9, 0x49, 0x2d, 0xe5, 0x99, 0x51, 0x74, 0x2d, 0x75, 0x78, 0xc8, 0x7c, 0xc9, 0x16, 0xfd, 0x80, 0xa4, 0xdf, 0x76, 0x57, 0x6a, 0x51, 0xcb, 0xb1, 0x34, 0xf7, 0xfd, 0x32, 0x28, 0xa5, 0xce, 0x49, 0x2b, 0x98, 0x55, 0x66, 0x0e, 0xdc, 0x75, 0x00, 0xc0, 0x2c, 0x8a, 0x00, 0x44, 0x81, 0x5e, 0xd5, 0xe8, 0x3e, 0x8b, 0xda, 0x0a, 0x92, 0x97, 0xec, 0xd4, 0x51, 0xd4, 0xd0, 0xb3, 0x2b, 0xb6, 0xc6, 0xc6, 0xd3, 0x9f, 0x60, 0xd8, 0x54, 0x97, 0x73, 0x53, 0x90, 0x6b, 0xa9, 0x0e, 0x0d, 0x1a, 0x4c, 0x7e, 0x11, 0xc3, 0x5c, 0xf7, 0x84, 0xea, 0xfe, 0x6e, 0xe8, 0x4a, 0xa9, 0x3f, 0xe6, 0xbc, 0xc9, 0xc3, 0x7c, 0x79, 0x3f, 0x98, 0x2a, 0x1d, 0x9b, 0xe2, 0xc8, 0xb7, 0xf8, 0x8a, 0x95, 0x30, 0xf5, 0xea, 0xf2, 0x12, 0xa0, 0x48, 0x61, 0x46, 0x1e, 0xd7, 0x29, 0x4a, 0xc5, 0x80, 0x74, 0xa8, 0x31, 0xbc, 0x1c, 0x53, 0xd7, 0xed, 0x70, 0x15, 0x91, 0xc2, 0x71, 0x1c, 0xd4, 0x7f, 0x2f, 0x70, 0xc2, 0x28, 0x39, 0x96, 0xfb, 0xed, 0x14, 0x99, 0x2a, 0x1b, 0xea, 0x3c, 0xbb, 0x4c, 0x90, 0x2c, 0xb0, 0x34, 0xc8, 0x7c, 0xb5, 0x0c, 0xb1, 0x5e, 0xc3, 0xfb, 0x7a, 0xf2, 0x5f, 0x85, 0x03, 0x92, 0x8f, 0xcd, 0x82, 0x1a, 0x52, 0x18, 0x89, 0x21, 0x5c, 0x19, 0x83, 0xb3, 0xb2, 0xa0, 0x86, 0x3e, 0x76, 0x51, 0x57, 0x6a, 0x5e, 0x60, 0x37, 0xd6, 0xf9, 0x05, 0x1c, 0x1f, 0xf4, 0xb5, 0xa5, 0xc7, 0xa3, 0xfd, 0xe0, 0x60, 0xeb, 0xf9, 0x70, 0x3a, 0x9d, 0x0e, 0xa1, 0x07, 0xbc, 0x60, 0xf5, 0x64, 0x47, 0x94, 0x83, 0xb8, 0xe2, 0x34, 0xce, 0x64, 0xb7, 0x5f, 0xbe, 0x7c, 0x29, 0x7a, 0xcc, 0xf9, 0x55, 0x47, 0xa1, 0xb0, 0x70, 0x83, 0xa2, 0x4d, 0x45, 0x3b, 0x05, 0xd4, 0x57, 0xab, 0x86, 0x68, 0x95, 0x79, 0x86, 0x32, 0x5f, 0x5b, 0x1b, 0xdb, 0xc1, 0x84, 0x2e, 0xcd, 0x89, 0x0c, 0x5c, 0x4a, 0xa2, 0x19, 0x3c, 0x38, 0x9a, 0x25, 0x77, 0xb4, 0xc2, 0x8b, 0x32, 0x76, 0xb7, 0x05, 0x37, 0xcf, 0xd5, 0x07, 0x6e, 0xd4, 0x19, 0xd6, 0xb1, 0x34, 0x5e, 0x1d, 0x05, 0x9f, 0x4d, 0x73, 0xc9, 0xff, 0x4a, 0xe5, 0x5b, 0xdd, 0xb1, 0xef, 0x39, 0x0f, 0xd9, 0xea, 0xf6, 0x91, 0x3c, 0xed, 0x3d, 0x92, 0x38, 0x9f, 0x02, 0xe2, 0x01, 0xed, 0x7c, 0xb2, 0xf5, 0x12, 0x98, 0xd2, 0xd4, 0x83, 0x02, 0x77, 0xe2, 0xe5, 0x15, 0xe5, 0x70, 0xcd, 0xcd, 0x01, 0x99, 0x59, 0xd7, 0xe0, 0x02, 0xdc, 0x98, 0x77, 0x7c, 0xb2, 0x73, 0x7e, 0x32, 0x0e, 0x32, 0xdd, 0xef, 0xc8, 0x65, 0x0c, 0xd7, 0x70, 0xdb, 0xe1, 0xc9, 0x5b, 0x04, 0xb4, 0x7f, 0x91, 0x40, 0x96, 0xc2, 0xf9, 0x0b, 0x51, 0xb4, 0xab, 0x55, 0xa1, 0x45, 0x30, 0xce, 0x65, 0x5b, 0x64, 0x05, 0x40, 0x44, 0x48, 0x88, 0xe3, 0x0a, 0x20, 0x13, 0xb6, 0x4e, 0xde, 0x1e, 0x9e, 0x53, 0x5d, 0x4b, 0x23, 0x79, 0x1e, 0x17, 0xe5, 0x3c, 0xf4, 0x8c, 0xdf, 0x58, 0x4c, 0x1a, 0x44, 0x6d, 0xd2, 0xa9, 0xeb, 0x6e, 0xa5, 0x9a, 0x3a, 0x1f, 0x5f, 0xad, 0x94, 0xb7, 0x6e, 0xfb, 0xcd, 0x96, 0x8a, 0x74, 0xe8, 0xd2, 0x7c, 0xf7, 0x34, 0xf6, 0xa2, 0xa7, 0xc1, 0x1b, 0x10, 0x3d, 0x91, 0x77, 0xc2, 0xcb, 0x65, 0x9b, 0x2d, 0xe9, 0xc2, 0x77, 0x39, 0x2f, 0x2f, 0x73, 0x43, 0xdf, 0x02, 0xff, 0x2d, 0xc5, 0x25, 0x12, 0x85, 0x0a, 0xdc, 0xa4, 0xbc, 0x39, 0x54, 0x7b, 0xbd, 0x02, 0x04, 0x44, 0x0b, 0xc1, 0x9c, 0x2f, 0x09, 0x49, 0x0a, 0xbb, 0xa9, 0xd2, 0xd9, 0x44, 0x4b, 0x1f, 0xc3, 0xca, 0x42, 0xe2, 0x31, 0xf9, 0xd4, 0x18, 0x08, 0xd3, 0xbb, 0x11, 0xd7, 0x00, 0xd6, 0xed, 0xc4, 0xda, 0xbc, 0x05, 0x41, 0x6c, 0x1d, 0xa4, 0x14, 0xb5, 0x8f, 0x16, 0xff, 0xc8, 0x1a, 0xd7, 0xfa, 0xe1, 0x9f, 0xb6, 0x84, 0xc7, 0xd7, 0x64, 0x91, 0x5d, 0x06, 0x42, 0xd7, 0x61, 0x10, 0x0d, 0xba, 0xa0, 0xe4, 0xae, 0x05, 0x11, 0xb9, 0x86, 0xb8, 0x5f, 0x5d, 0xa7, 0x89, 0xf7, 0x6c, 0x10, 0x6d, 0xb0, 0x32, 0xe8, 0xf6, 0x2c, 0xa9, 0xc2, 0x4e, 0x05, 0x2d, 0x5c, 0x38, 0x0b, 0x3e, 0xd5, 0x19, 0xee, 0x6b, 0x23, 0xf5, 0x2d, 0x76, 0x4b, 0x07, 0x3e, 0xae, 0xd5, 0x2c, 0x87, 0xf3, 0x71, 0x28, 0x08, 0x75, 0x43, 0x6d, 0xba, 0x6f, 0xe2, 0x46, 0x0e, 0x6b, 0xb1, 0xe7, 0xae, 0xbd, 0x06, 0x5f, 0x0f, 0xd6, 0x01, 0x33, 0x9b, 0xa5, 0x4a, 0xc0, 0x63, 0x1a, 0xa0, 0xff, 0x8f, 0x4d, 0xd7, 0xee, 0x6d, 0x14, 0xfa, 0x21, 0x5c, 0x8b, 0xdf, 0x0e, 0x7a, 0xbc, 0x8b, 0x3d, 0x0d, 0xdc, 0x6c, 0x39, 0x5c, 0x29, 0xd5, 0xde, 0x61, 0x7c, 0x1e, 0xab, 0x5b, 0x3f, 0x9f, 0x6f, 0x8e, 0x0e, 0x5f, 0xf5, 0xa2, 0x97, 0x7c, 0x0a, 0x5c, 0x79, 0xeb, 0xeb, 0x9b, 0x64, 0xdc, 0xd5, 0x67, 0x25, 0x6e, 0x92, 0x14, 0x87, 0xa3, 0x84, 0xca, 0x10, 0x35, 0x19, 0x30, 0x5b, 0xd0, 0xbc, 0xb0, 0xb7, 0xbb, 0x4d, 0xaf, 0x67, 0xc4, 0xcf, 0x3e, 0x10, 0x87, 0x35, 0xa9, 0xca, 0x5c, 0x53, 0xe5, 0x11, 0xf2, 0x25, 0x08, 0x79, 0x5e, 0x4e, 0xca, 0x8b, 0x8b, 0x35, 0x51, 0x41, 0x06, 0x07, 0x46, 0xed, 0x13, 0xd3, 0xcb, 0x06, 0x6d, 0x23, 0xbd, 0x37, 0x61, 0xf0, 0xe8, 0xca, 0x5c, 0xb6, 0x0d, 0x49, 0xc6, 0x42, 0xd7, 0xd2, 0xe0, 0x6e, 0xb4, 0x02, 0x08, 0x6a, 0x30, 0xa8, 0x85, 0x87, 0x6a, 0x7c, 0xf6, 0xc6, 0x68, 0x96, 0x90, 0x6d, 0xd4, 0x62, 0x76, 0xfd, 0x1f, 0xff, 0xfc, 0xcb, 0x4f, 0x91, 0x76, 0x35, 0xe8, 0xe7, 0x78, 0xc5, 0x25, 0x85, 0xe6, 0x79, 0x6d, 0x5c, 0x60, 0x1b, 0x83, 0x70, 0xa6, 0x09, 0x07, 0x34, 0x9a, 0x3a, 0x9b, 0x5f, 0x78, 0x78, 0x4b, 0xa1, 0x58, 0xac, 0xdd, 0x07, 0xd1, 0x7d, 0x94, 0x2a, 0xc0, 0xb9, 0x64, 0x97, 0xda, 0x36, 0xa0, 0xe5, 0x9b, 0xcb, 0x97, 0xb6, 0xb0, 0xee, 0x72, 0x12, 0x01, 0x7a, 0x98, 0xeb, 0xcb, 0xe6, 0x57, 0x32, 0x31, 0x01, 0x1e, 0x5b, 0x47, 0xa7, 0xcf, 0x95, 0xaf, 0x0c, 0xa5, 0xde, 0x0d, 0xb3, 0xbb, 0x6c, 0x62, 0x38, 0x44, 0xad, 0x80, 0x0f, 0xc3, 0x45, 0x9d, 0xbc, 0x58, 0x18, 0x22, 0xcf, 0x7b, 0xa0, 0x3a, 0xbe, 0xa1, 0xd7, 0x8c, 0x11, 0x2d, 0xef, 0x59, 0xf8, 0xea, 0xcb, 0xb2, 0x32, 0x5b, 0xb4, 0x90, 0x32, 0x5c, 0x29, 0x45, 0x6e, 0xbb, 0x32, 0x50, 0x58, 0x12, 0xb8, 0x03, 0x08, 0x3f, 0x95, 0xca, 0xa9, 0x3c, 0x20, 0x4e, 0x51, 0x0b, 0x67, 0x2b, 0xa3, 0x39, 0x9a, 0xa9, 0x1b, 0xfb, 0x1a, 0x36, 0x3d, 0xf9, 0x05, 0x99, 0xa2, 0xb8, 0xc8, 0x90, 0x5e, 0x89, 0xc2, 0x07, 0xa8, 0xf0, 0x10, 0x0b, 0xcb, 0xf0, 0x1c, 0x7f, 0x45, 0xb6, 0xcb, 0xb5, 0xff, 0x49, 0x41, 0x44, 0x09, 0xf7, 0x55, 0xa6, 0xcf, 0x17, 0xda, 0xa6, 0xae, 0x52, 0x91, 0x46, 0xae, 0xcd, 0xe7, 0x53, 0x5f, 0x3f, 0xf6, 0x1a, 0x0f, 0x04, 0x97, 0x12, 0x4d, 0xac, 0xe5, 0x58, 0x7c, 0xe0, 0x58, 0x94, 0x1f, 0xa6, 0x54, 0x0d, 0x99, 0xcd, 0x99, 0xc5, 0x49, 0x5e, 0x95, 0x1b, 0x15, 0x1c, 0xb7, 0x0b, 0xd0, 0x52, 0x53, 0x8a, 0x00, 0x97, 0xc1, 0x8a, 0x43, 0x1f, 0xf5, 0xe4, 0xe2, 0x77, 0x88, 0xc6, 0x7a, 0xcf, 0x19, 0x29, 0xed, 0x12, 0x91, 0x23, 0x31, 0x1f, 0x80, 0x95, 0x8f, 0x5e, 0x90, 0x0c, 0x3f, 0x42, 0x2f, 0x23, 0xbb, 0x82, 0x58, 0x88, 0x9c, 0xf7, 0x91, 0x9c, 0x77, 0x67, 0x38, 0x0a, 0xb7, 0x24, 0x4f, 0x9f, 0x3c, 0x79, 0x92, 0x70, 0xc0, 0x25, 0xd9, 0x38, 0x66, 0x7c, 0xb6, 0x77, 0x47, 0x2f, 0x4f, 0xdf, 0xbc, 0x39, 0x7a, 0xfb, 0xea, 0xe8, 0x95, 0xbd, 0x68, 0xba, 0x16, 0x4b, 0x1d, 0xc1, 0x8a, 0x28, 0x4f, 0x70, 0x96, 0xec, 0x3d, 0xd9, 0x1d, 0xee, 0x3f, 0xd9, 0x4d, 0x0c, 0x29, 0xa6, 0xb6, 0x3c, 0x2d, 0x9d, 0xa7, 0x64, 0xdf, 0x5e, 0xad, 0x8c, 0x96, 0x46, 0xb8, 0xce, 0x0d, 0xe1, 0x6c, 0xc0, 0xf3, 0x4a, 0xce, 0xe1, 0x22, 0x6b, 0xc8, 0x8e, 0x8e, 0x64, 0x06, 0x8c, 0x36, 0x12, 0x0b, 0xd2, 0xe9, 0x42, 0x96, 0xa2, 0xfc, 0x80, 0x40, 0xf7, 0x77, 0xe9, 0x53, 0xa3, 0xe4, 0xb5, 0xd1, 0x3f, 0x2e, 0xca, 0xdb, 0x84, 0xb5, 0x40, 0xa3, 0x94, 0x66, 0x61, 0xa8, 0xb2, 0xfd, 0x3a, 0xbd, 0xfd, 0x88, 0xdf, 0xfe, 0x0d, 0x63, 0xf4, 0x4f, 0x9e, 0xb7, 0x0d, 0x4b, 0x73, 0x91, 0xd1, 0x15, 0x44, 0x6b, 0x11, 0xfb, 0x9b, 0xd7, 0x91, 0x0c, 0x3a, 0x3c, 0xa3, 0x87, 0x8d, 0x4d, 0x7e, 0xfa, 0xc3, 0x9f, 0x5d, 0x6d, 0xe7, 0xf5, 0x9e, 0x26, 0x33, 0x4a, 0x09, 0x2b, 0x77, 0x56, 0x2d, 0xc2, 0xa0, 0xb7, 0xc5, 0x88, 0xf3, 0x4d, 0x42, 0x95, 0x33, 0x58, 0x23, 0xe5, 0xa0, 0x9a, 0xcd, 0xe3, 0xb6, 0x87, 0x72, 0x6e, 0x55, 0x2d, 0x45, 0x44, 0x61, 0x3d, 0x7f, 0x45, 0x21, 0x0e, 0x33, 0xa7, 0x9c, 0xbb, 0xfe, 0xe4, 0xc5, 0x8c, 0x3b, 0x8d, 0xb7, 0xfc, 0xb2, 0x4d, 0xb5, 0x6a, 0x99, 0x95, 0xea, 0x87, 0x1d, 0xad, 0x87, 0xd9, 0x58, 0x56, 0xf9, 0x22, 0xad, 0xf2, 0xf9, 0x9d, 0x12, 0xf8, 0x0d, 0xf7, 0x3e, 0xe6, 0x4c, 0x29, 0x84, 0xbe, 0x2c, 0xae, 0x30, 0xe5, 0x10, 0xa4, 0x91, 0xfa, 0x9b, 0x7c, 0x2a, 0x57, 0x4a, 0xb0, 0xbf, 0xf8, 0x5c, 0x79, 0xb7, 0xd6, 0xa2, 0x21, 0xb5, 0xed, 0x7f, 0xab, 0x52, 0x44, 0x4b, 0x6f, 0x49, 0xcd, 0x7d, 0x7d, 0x7c, 0x72, 0xb4, 0x9d, 0xbc, 0xce, 0x1a, 0xa9, 0x6e, 0xd2, 0x24, 0x63, 0x12, 0xf7, 0xff, 0x06, 0x05, 0xcb, 0x42, 0xd2, 0x4a, 0x6d, 0x70, 0x34, 0x17, 0x8c, 0xcd, 0x18, 0xe8, 0x1a, 0x5a, 0x29, 0xc5, 0x27, 0x83, 0x25, 0x52, 0x38, 0x4e, 0x53, 0xcb, 0x34, 0xbc, 0x29, 0x27, 0x1f, 0xcb, 0xbb, 0x55, 0x84, 0x87, 0x51, 0x1b, 0xf0, 0xb2, 0x2c, 0xbc, 0x14, 0x02, 0x9a, 0xb7, 0xe4, 0x3d, 0x73, 0x3c, 0x30, 0xaf, 0x97, 0x73, 0x62, 0x06, 0x31, 0x74, 0x97, 0x79, 0xe6, 0x2a, 0xfa, 0x40, 0xf9, 0xc6, 0x7a, 0xb0, 0x89, 0x98, 0xcc, 0x53, 0x69, 0xbd, 0xde, 0xc6, 0x7d, 0xa3, 0x1b, 0x47, 0x69, 0x27, 0xfc, 0xe7, 0xce, 0x97, 0x6b, 0xb0, 0xd2, 0x8e, 0xd0, 0x03, 0x5d, 0x5e, 0x00, 0x41, 0xa1, 0x2b, 0xab, 0xa6, 0x32, 0xa9, 0xd2, 0xd9, 0xa2, 0x84, 0x98, 0xfa, 0x0a, 0x7a, 0x70, 0xa1, 0xf8, 0x3f, 0x4b, 0xeb, 0x3d, 0x55, 0x21, 0xa8, 0xf8, 0xdb, 0xc9, 0x97, 0xcc, 0xfb, 0x68, 0x1d, 0xed, 0x71, 0xa9, 0x95, 0x15, 0xd0, 0x56, 0x58, 0x9b, 0xa2, 0x7c, 0xfd, 0xb4, 0x9d, 0xb1, 0xcf, 0x8f, 0x5d, 0x49, 0xe3, 0x02, 0x38, 0x53, 0xb8, 0x7c, 0xac, 0x8e, 0xb8, 0xfc, 0xdd, 0x5d, 0x74, 0xd1, 0x3d, 0xf4, 0xc9, 0x66, 0xcf, 0x8c, 0xa6, 0x1e, 0x0c, 0xa4, 0xb6, 0xeb, 0x96, 0x9f, 0x99, 0xdf, 0x45, 0xb4, 0x25, 0xf9, 0xba, 0xcf, 0x82, 0xba, 0x2a, 0xbb, 0xfd, 0x46, 0x69, 0x41, 0x73, 0xc4, 0x10, 0x0d, 0xd5, 0x45, 0xda, 0x3b, 0xf6, 0x91, 0x67, 0x68, 0x73, 0xda, 0x54, 0xf9, 0xf4, 0x23, 0x00, 0xd1, 0xea, 0x66, 0x05, 0x95, 0x2e, 0x2d, 0xfc, 0x59, 0xda, 0x46, 0x1f, 0xb3, 0x12, 0x3b, 0x1d, 0xd7, 0x3e, 0x49, 0x45, 0x22, 0x97, 0x01, 0xe1, 0x6f, 0xeb, 0x6c, 0x78, 0x35, 0xf6, 0xae, 0x58, 0x35, 0x8d, 0xca, 0x20, 0x71, 0xb2, 0xcb, 0x48, 0x57, 0x00, 0x73, 0x8d, 0x09, 0x80, 0x83, 0x7c, 0x6d, 0x37, 0x02, 0x2d, 0xb6, 0x59, 0x65, 0xdc, 0x99, 0x64, 0x64, 0x4c, 0xd1, 0x05, 0x55, 0x04, 0x20, 0xcd, 0x56, 0x96, 0x2c, 0xdb, 0x63, 0x38, 0xdb, 0x65, 0x7e, 0x1d, 0xcd, 0xb2, 0xd0, 0x89, 0x2d, 0x18, 0xef, 0x82, 0x67, 0xa1, 0x29, 0xc7, 0x8a, 0x75, 0x94, 0x88, 0x4b, 0x3a, 0x21, 0x28, 0x38, 0x7b, 0x7c, 0xc1, 0x0d, 0x9e, 0x93, 0xca, 0x4a, 0x40, 0x5e, 0x05, 0x77, 0x5c, 0xff, 0xc6, 0xe8, 0x3e, 0x07, 0x1b, 0xb6, 0x9f, 0x86, 0x24, 0x45, 0x65, 0x1d, 0xca, 0x81, 0x91, 0x51, 0x94, 0xc3, 0x68, 0x23, 0x49, 0x56, 0xdc, 0x1b, 0xe5, 0x5b, 0xb6, 0xde, 0x26, 0xcc, 0x6a, 0xb6, 0xf5, 0x2f, 0x03, 0x40, 0x9b, 0x5c, 0x85, 0x55, 0x7e, 0x34, 0xa5, 0x1f, 0x86, 0x2f, 0xf1, 0xf1, 0xe1, 0x37, 0x18, 0xef, 0x8f, 0x1b, 0xd6, 0xdd, 0xdb, 0xfd, 0xd5, 0x41, 0xd8, 0xf9, 0x7d, 0xea, 0xb5, 0x78, 0x61, 0x2a, 0x01, 0x3e, 0xa6, 0x70, 0xd9, 0xd4, 0x21, 0x6f, 0x02, 0xf2, 0x6d, 0x36, 0xdb, 0xb1, 0x87, 0xce, 0xa9, 0x73, 0x7d, 0x2d, 0xc7, 0x8d, 0x14, 0x59, 0x02, 0x45, 0x67, 0x36, 0x2c, 0x2f, 0x86, 0xc8, 0x90, 0x26, 0xc8, 0x3c, 0xca, 0x46, 0xf2, 0x6e, 0x1d, 0x80, 0x41, 0x80, 0x7e, 0x3a, 0x9b, 0xc5, 0x54, 0xf3, 0xb4, 0x96, 0x3a, 0x62, 0x25, 0x7c, 0x2d, 0xb4, 0xe0, 0xc3, 0x3c, 0x10, 0xb7, 0x3c, 0x5e, 0xd7, 0x86, 0xbc, 0xc4, 0x06, 0xb5, 0x20, 0x22, 0xf0, 0xa7, 0xa1, 0x3c, 0x62, 0xc0, 0xea, 0x3b, 0x16, 0x0d, 0xfb, 0x6d, 0xc1, 0xae, 0x5c, 0x38, 0x9f, 0x57, 0x4b, 0xa8, 0xac, 0x84, 0xd6, 0x1c, 0x78, 0x5f, 0xb4, 0x48, 0x84, 0x45, 0xff, 0x93, 0xd1, 0xee, 0x20, 0x88, 0xd2, 0x37, 0x30, 0xf3, 0x0b, 0x97, 0x22, 0x84, 0x04, 0x09, 0xf0, 0xc8, 0x61, 0xac, 0xaa, 0xd6, 0x5c, 0xc2, 0x3b, 0xe2, 0xd6, 0xb6, 0x90, 0x16, 0xb9, 0xc5, 0xae, 0xf0, 0xc1, 0xe5, 0xf5, 0x60, 0x0f, 0x85, 0x71, 0xa2, 0x7a, 0x36, 0x06, 0x70, 0x2d, 0x19, 0x5b, 0x5f, 0x0e, 0xbb, 0x7d, 0x8f, 0x6d, 0xfb, 0x4a, 0xbf, 0x7a, 0xc3, 0x55, 0xab, 0xf7, 0x7b, 0x9a, 0xd0, 0x47, 0xe5, 0x50, 0x5b, 0x9f, 0x0d, 0xcd, 0xa6, 0x4a, 0x8b, 0xee, 0x61, 0x46, 0x3f, 0x64, 0xa0, 0x0e, 0x45, 0x8d, 0xae, 0xef, 0xd9, 0xb3, 0x47, 0xcf, 0x68, 0xcf, 0x6c, 0x63, 0x19, 0xed, 0xa1, 0xe6, 0x04, 0x04, 0xc8, 0xd6, 0xbb, 0x4b, 0xdd, 0x3d, 0x23, 0xbe, 0x42, 0x9c, 0xa0, 0xd0, 0xac, 0xef, 0x14, 0xfa, 0xca, 0x5d, 0x6f, 0x6a, 0x71, 0x4f, 0xce, 0x2f, 0xae, 0xcd, 0x6b, 0x52, 0xec, 0x87, 0x6f, 0xcd, 0x31, 0x1c, 0x24, 0xff, 0x59, 0x66, 0x5c, 0xb3, 0x7a, 0x4f, 0xc9, 0xea, 0xf7, 0x87, 0xef, 0xde, 0x1e, 0xbf, 0xfd, 0xfa, 0xc0, 0x41, 0x74, 0x82, 0xe7, 0x09, 0x68, 0x7e, 0xd0, 0xef, 0x07, 0xc8, 0xfa, 0xa8, 0x0b, 0x48, 0xd9, 0x37, 0x1f, 0xed, 0xb0, 0x90, 0x0c, 0x99, 0x37, 0xb3, 0xef, 0xb2, 0xca, 0x38, 0x28, 0xc2, 0xb6, 0xa8, 0x16, 0x4e, 0x48, 0xb5, 0x26, 0x44, 0x25, 0xf7, 0xea, 0x8c, 0x00, 0x35, 0x0c, 0x4f, 0x90, 0x97, 0x3b, 0x2f, 0x5b, 0x3d, 0x02, 0x89, 0x2e, 0xe7, 0x38, 0xff, 0xd2, 0x27, 0x01, 0xaf, 0xd5, 0x1f, 0x41, 0xf0, 0x45, 0xfa, 0xc2, 0xc2, 0xd0, 0x63, 0x01, 0x01, 0x83, 0x46, 0xfb, 0xa2, 0x71, 0x73, 0x23, 0xaa, 0xd9, 0x25, 0x4f, 0x45, 0xce, 0xf1, 0x7f, 0xb7, 0x1f, 0x36, 0xc9, 0x2b, 0xe2, 0x07, 0xe1, 0x8d, 0x9a, 0xa6, 0x2b, 0xbe, 0x31, 0x0c, 0x4a, 0x26, 0x3f, 0x75, 0x95, 0x19, 0x76, 0x0b, 0xd6, 0xc7, 0x1d, 0xb8, 0x4a, 0x56, 0xc3, 0xaa, 0x9d, 0x54, 0x67, 0x04, 0xfc, 0x1c, 0xc3, 0x32, 0x7f, 0x92, 0x28, 0x89, 0xe2, 0x8f, 0xcc, 0x33, 0x57, 0x95, 0x64, 0x75, 0x9d, 0x2b, 0xd6, 0x75, 0xe6, 0xcb, 0x00, 0x64, 0x8f, 0xd2, 0xcc, 0xe9, 0x17, 0xb2, 0xbd, 0x14, 0xb7, 0x82, 0xfc, 0x55, 0xa3, 0xa4, 0x85, 0x69, 0x67, 0x3b, 0xfd, 0x6a, 0x97, 0xdd, 0x50, 0x9e, 0x12, 0xd4, 0x53, 0xc6, 0x40, 0x63, 0x7e, 0x05, 0x8c, 0xf9, 0xba, 0xd9, 0xe7, 0xe5, 0x6a, 0xb2, 0x98, 0x3d, 0x49, 0x5e, 0x98, 0xff, 0x04, 0x4a, 0xd6, 0x98, 0xb3, 0x49, 0x5f, 0x92, 0x17, 0x9d, 0x52, 0x5c, 0x18, 0x00, 0x97, 0x4b, 0x5b, 0x6c, 0x13, 0xa1, 0x47, 0xfb, 0x66, 0xb2, 0xb7, 0xa9, 0xa2, 0x5a, 0xce, 0xcc, 0x19, 0x36, 0x48, 0x3d, 0xeb, 0xc1, 0x0b, 0x72, 0x39, 0x8d, 0x74, 0xe6, 0x7b, 0xfb, 0x9f, 0x27, 0x54, 0x7a, 0xf0, 0xe6, 0xd5, 0x93, 0x64, 0x7a, 0x95, 0x4d, 0x3f, 0xd6, 0xab, 0x85, 0x32, 0xe3, 0x84, 0xb6, 0x94, 0x02, 0x21, 0x34, 0xcf, 0x00, 0xe9, 0xc1, 0x4c, 0x7c, 0x9e, 0x4f, 0xa9, 0xf0, 0x6f, 0xd0, 0x0a, 0x4f, 0x5d, 0x68, 0x78, 0xca, 0xb3, 0x42, 0xad, 0xd8, 0x40, 0xba, 0x00, 0xe7, 0xd4, 0x44, 0x82, 0x17, 0x66, 0x0f, 0xcc, 0xe7, 0xa9, 0xed, 0x84, 0xd1, 0xcb, 0xd7, 0xba, 0x6c, 0x9f, 0xb5, 0xbd, 0xde, 0x74, 0xb1, 0x77, 0x47, 0xcf, 0x7b, 0x00, 0x7d, 0x5b, 0x20, 0x5c, 0x54, 0xab, 0x64, 0x31, 0x9e, 0x61, 0x0f, 0x90, 0x96, 0x4f, 0x93, 0x24, 0x20, 0x28, 0x8d, 0xe2, 0x05, 0x1f, 0xa7, 0x27, 0x77, 0xe8, 0x09, 0xe9, 0x68, 0x44, 0x0c, 0x04, 0x50, 0x14, 0x4c, 0x58, 0x48, 0x12, 0xb2, 0x21, 0x40, 0x84, 0x3f, 0x81, 0x63, 0x84, 0xf8, 0x6b, 0x44, 0x69, 0x73, 0xe5, 0xdf, 0xd6, 0x67, 0xe3, 0xba, 0xa6, 0x49, 0x21, 0xad, 0x87, 0xe3, 0xa0, 0xd5, 0x84, 0xb4, 0xc3, 0x40, 0x53, 0x09, 0x04, 0x9f, 0x7c, 0x99, 0x03, 0xd3, 0xee, 0x38, 0x6a, 0x46, 0x21, 0x84, 0xfb, 0x9c, 0x30, 0xa0, 0xd9, 0xa2, 0x2e, 0x6f, 0x8a, 0xcb, 0x8a, 0xfc, 0x23, 0xe8, 0x6e, 0x9c, 0xc6, 0x62, 0x19, 0x31, 0xe4, 0x52, 0x37, 0xb6, 0xb1, 0xb8, 0x9e, 0x12, 0xa7, 0xf7, 0x77, 0x45, 0x82, 0xd8, 0xb0, 0x49, 0xc5, 0x66, 0xf7, 0x8e, 0x68, 0x77, 0x20, 0xc7, 0xb4, 0x37, 0xda, 0xed, 0x6b, 0xa2, 0xe5, 0xb5, 0xcf, 0x92, 0xb4, 0x87, 0xd6, 0xf9, 0x98, 0x37, 0x7d, 0x3d, 0x99, 0xf3, 0x1c, 0x0c, 0xad, 0xf7, 0x64, 0xdf, 0x99, 0x85, 0x8a, 0x03, 0x2b, 0x9b, 0xb5, 0x06, 0x7a, 0x68, 0x8d, 0x84, 0x4c, 0x77, 0x4f, 0xc2, 0x30, 0xf4, 0xaf, 0xfd, 0x2e, 0xd1, 0x99, 0x5f, 0x3f, 0x84, 0xe8, 0x22, 0x6b, 0xd9, 0x5b, 0x3b, 0x0d, 0x6f, 0x1e, 0xd8, 0x3b, 0xb7, 0x79, 0x5a, 0xa1, 0x21, 0xf3, 0xd1, 0x6b, 0x11, 0x46, 0xa5, 0xc3, 0x86, 0x27, 0x78, 0x83, 0xca, 0x5d, 0xca, 0x6a, 0x48, 0x3a, 0xbb, 0x39, 0xac, 0x40, 0x85, 0x8a, 0x1d, 0x06, 0x4c, 0x8c, 0xbc, 0xae, 0x09, 0x90, 0x12, 0xb1, 0x6e, 0xa2, 0x4e, 0x0a, 0x1c, 0xf9, 0x88, 0xf1, 0x75, 0x34, 0x6d, 0x1f, 0x04, 0xb2, 0x6f, 0x95, 0x74, 0xfc, 0x93, 0xb6, 0xf4, 0xfd, 0x12, 0x04, 0x38, 0x02, 0x90, 0xb2, 0xeb, 0xfa, 0x92, 0x60, 0x72, 0x6c, 0x51, 0xc4, 0x66, 0xe7, 0x21, 0xa2, 0x69, 0x04, 0x48, 0xca, 0x35, 0x6b, 0xfd, 0x54, 0x4d, 0x95, 0xb0, 0xae, 0x4b, 0x28, 0x37, 0x6a, 0xd1, 0x39, 0xc6, 0xe0, 0x7c, 0xf9, 0x56, 0x19, 0x45, 0x53, 0x06, 0x68, 0x25, 0xd3, 0x53, 0x67, 0x0c, 0xe6, 0xeb, 0xb6, 0x61, 0xeb, 0xcc, 0x75, 0x0c, 0x8d, 0xf8, 0x57, 0xe0, 0x0c, 0x61, 0x71, 0x4a, 0x3b, 0xd4, 0x8f, 0x74, 0xd7, 0x73, 0x1c, 0x0f, 0xee, 0x80, 0x13, 0xe0, 0x76, 0xe5, 0xec, 0x23, 0xd3, 0xf2, 0x55, 0x5e, 0xcd, 0xe8, 0x61, 0xc4, 0xbd, 0x3b, 0x88, 0xce, 0x8e, 0xc8, 0xcd, 0x27, 0xfe, 0x16, 0x08, 0xde, 0xf3, 0x08, 0x71, 0xfd, 0xa2, 0xbb, 0xb0, 0xbf, 0x2e, 0x0c, 0x1a, 0xde, 0xc1, 0x47, 0x23, 0xfd, 0x5a, 0xdf, 0x5e, 0x05, 0xec, 0xac, 0xa7, 0x7b, 0xd0, 0x43, 0x77, 0xab, 0x67, 0x6f, 0xf6, 0xf4, 0x2a, 0xfa, 0xbc, 0xcd, 0xdf, 0xaf, 0xee, 0xd9, 0xca, 0xfe, 0x85, 0x90, 0xfb, 0xf1, 0xab, 0xfa, 0x28, 0xbe, 0x9b, 0x56, 0x43, 0xed, 0xf8, 0x3c, 0xc9, 0x65, 0x56, 0xe5, 0x0b, 0x00, 0xdf, 0x8d, 0x92, 0x57, 0x2e, 0xa5, 0x85, 0x0c, 0x14, 0x43, 0xb1, 0xdd, 0x5d, 0x99, 0xad, 0x7a, 0x32, 0x3f, 0x3a, 0x37, 0x3f, 0x38, 0xaf, 0x47, 0x92, 0xd4, 0xe3, 0x52, 0x17, 0x20, 0xd5, 0xd5, 0x4d, 0xd8, 0xb5, 0x82, 0xd8, 0x6f, 0xa3, 0xf1, 0x3f, 0x09, 0xd3, 0x51, 0x6a, 0x96, 0x44, 0x60, 0xb0, 0xf5, 0x8f, 0xfc, 0x98, 0xb9, 0x55, 0xad, 0xa9, 0x84, 0x20, 0xee, 0x29, 0xb2, 0x5f, 0x84, 0x45, 0x45, 0x22, 0x51, 0x55, 0x4a, 0xf3, 0x99, 0xeb, 0x3c, 0x4d, 0x0e, 0xe7, 0xcd, 0x70, 0xfc, 0xdd, 0x54, 0x9b, 0xf4, 0xda, 0x9d, 0x0a, 0x5a, 0x7c, 0xc3, 0xab, 0x22, 0x28, 0x79, 0x14, 0x41, 0xc9, 0xab, 0xe9, 0x6a, 0x01, 0xe4, 0x53, 0x10, 0x95, 0xed, 0x12, 0x44, 0xa7, 0xe8, 0xf3, 0x1f, 0x4e, 0xb7, 0x0f, 0x41, 0x0f, 0xd3, 0x8f, 0xb5, 0x2e, 0x49, 0x32, 0xeb, 0xb9, 0x0c, 0xa3, 0xb5, 0x47, 0xf7, 0xa8, 0xbd, 0x1d, 0xdb, 0x8e, 0x01, 0x7a, 0x09, 0x28, 0xe4, 0xbf, 0xbf, 0x3f, 0x7e, 0xe9, 0xeb, 0x55, 0x16, 0x5a, 0xbe, 0x3f, 0x5a, 0x31, 0xf0, 0x20, 0xe8, 0x2f, 0x48, 0x89, 0xd5, 0x5c, 0x5c, 0xcd, 0x9b, 0x6b, 0x9d, 0x6d, 0xc9, 0xb0, 0xeb, 0x5d, 0x07, 0xd8, 0x4d, 0xf1, 0xf3, 0xee, 0xe8, 0xbe, 0xde, 0xd1, 0x47, 0xbf, 0xf6, 0x1d, 0x7d, 0xf4, 0x73, 0xef, 0xa8, 0xf0, 0xb7, 0xf8, 0x0d, 0xed, 0xbb, 0xad, 0x81, 0x59, 0xea, 0x6e, 0xaf, 0x38, 0x9c, 0xdb, 0x39, 0x03, 0x43, 0x06, 0x8f, 0x18, 0x8a, 0xdf, 0x62, 0xc8, 0x05, 0xb2, 0xb1, 0xda, 0x30, 0xbe, 0xc3, 0x0a, 0xf8, 0x38, 0x48, 0x8e, 0x19, 0xcb, 0xdc, 0x87, 0x51, 0x3c, 0xe1, 0xea, 0x5a, 0xf1, 0x7a, 0xbb, 0x92, 0x8a, 0x48, 0x05, 0x7e, 0x3e, 0x25, 0x58, 0xb5, 0x39, 0xf0, 0x92, 0xe0, 0x73, 0x87, 0xcd, 0x6c, 0x9b, 0xa9, 0xad, 0x10, 0x54, 0x48, 0x0e, 0x97, 0x54, 0x24, 0x6b, 0x74, 0x8e, 0x5b, 0xf5, 0x43, 0x10, 0x81, 0x85, 0xb9, 0x48, 0x25, 0x2a, 0xdc, 0x35, 0xf1, 0xbe, 0x33, 0x1d, 0x1a, 0x98, 0x11, 0x0f, 0xe7, 0x44, 0xf9, 0x8c, 0x16, 0x5e, 0x50, 0xc7, 0x0f, 0x43, 0xe0, 0x97, 0x41, 0x53, 0x9d, 0xc9, 0x5d, 0x13, 0x29, 0x03, 0xa3, 0x75, 0xc3, 0x95, 0xbd, 0xc5, 0x8a, 0xaa, 0x11, 0x23, 0x66, 0x23, 0xb7, 0x8d, 0xad, 0xf9, 0x11, 0xc8, 0xbd, 0x19, 0xea, 0x74, 0xac, 0x7d, 0x85, 0x66, 0x28, 0x97, 0xe4, 0xaf, 0x92, 0xfa, 0x8f, 0xa0, 0x62, 0xe6, 0xef, 0x99, 0x26, 0x39, 0x6a, 0x0a, 0xa1, 0xc0, 0xcc, 0xb6, 0x4b, 0x54, 0xf3, 0x01, 0xba, 0x8e, 0xc2, 0x39, 0xdd, 0x0d, 0x1e, 0x89, 0xcb, 0x9a, 0x3e, 0x2e, 0xfa, 0x8c, 0x62, 0xf9, 0x8b, 0xc1, 0x2b, 0x5c, 0x4b, 0xba, 0x33, 0x09, 0xf2, 0x09, 0x83, 0x78, 0xf6, 0xf5, 0x63, 0xf1, 0xac, 0xe5, 0x29, 0xf7, 0x26, 0xe5, 0x8f, 0xa8, 0x13, 0x0a, 0xa6, 0xbe, 0x68, 0x30, 0xe4, 0x26, 0x1a, 0x68, 0x9f, 0xad, 0x41, 0x08, 0xa7, 0x67, 0xeb, 0xce, 0x1c, 0x44, 0x74, 0xeb, 0xca, 0x2a, 0xa4, 0xf3, 0x68, 0x34, 0x8a, 0xc0, 0x59, 0x5c, 0xe7, 0xd9, 0x4d, 0xcb, 0x17, 0x2f, 0x13, 0x1b, 0xd8, 0x2e, 0x19, 0xec, 0x01, 0xba, 0xa6, 0x1d, 0x32, 0x43, 0x4e, 0x08, 0x42, 0xb3, 0xa7, 0x9c, 0xc4, 0x5d, 0x79, 0xff, 0x69, 0x6f, 0x9b, 0x3f, 0xf2, 0x36, 0xd7, 0xb1, 0x7a, 0x50, 0x06, 0x44, 0x76, 0x3d, 0x1c, 0x06, 0xe4, 0x12, 0xa9, 0xee, 0x12, 0xf4, 0x6d, 0xf2, 0x38, 0x1a, 0x5d, 0x7f, 0xae, 0x40, 0xc8, 0x6b, 0x46, 0x24, 0xce, 0x63, 0x45, 0x31, 0x93, 0x4c, 0xd3, 0x8e, 0x3a, 0x5d, 0x63, 0x84, 0xa3, 0xab, 0xb6, 0x61, 0x04, 0xdf, 0x94, 0x5c, 0x51, 0x68, 0x03, 0x22, 0x5d, 0x08, 0xc8, 0x17, 0x13, 0x49, 0x3d, 0xd2, 0xc6, 0x24, 0xae, 0x6f, 0x95, 0x97, 0x28, 0xe3, 0x7a, 0x8a, 0x24, 0xba, 0xc0, 0x68, 0xbc, 0x37, 0x18, 0xa4, 0xb5, 0x8c, 0xc9, 0x9d, 0x76, 0xe5, 0xb4, 0x6e, 0x58, 0xab, 0xca, 0x06, 0x06, 0xb6, 0x57, 0x9f, 0xea, 0x10, 0x94, 0x5a, 0xbe, 0x6d, 0x8b, 0x76, 0x27, 0x1f, 0xa8, 0x3d, 0x80, 0xec, 0x00, 0x6a, 0xc0, 0xe1, 0xb5, 0xd2, 0xc0, 0xdc, 0xde, 0x2d, 0x7a, 0xc4, 0x2c, 0x2d, 0x19, 0xf5, 0x82, 0x1a, 0x10, 0xae, 0x28, 0xf1, 0x04, 0xd7, 0x5f, 0xaa, 0xd7, 0xa5, 0x60, 0xbd, 0x0b, 0x66, 0x62, 0x21, 0xe1, 0x68, 0xef, 0x47, 0x57, 0xe9, 0xed, 0xed, 0xa8, 0xce, 0x76, 0x0c, 0xd5, 0xd6, 0x3b, 0x75, 0x3d, 0xa7, 0x8f, 0xd6, 0x40, 0x5f, 0x5b, 0xdb, 0xdb, 0xf8, 0xf6, 0xce, 0x12, 0x90, 0x30, 0xe7, 0x69, 0x4a, 0xaf, 0xb6, 0x98, 0xad, 0x6b, 0x6e, 0xcc, 0xed, 0xc1, 0xba, 0x29, 0xc3, 0x0c, 0x38, 0x4d, 0x6e, 0x5a, 0xbf, 0xd2, 0x96, 0x39, 0x83, 0xcb, 0xcc, 0xb2, 0xc3, 0x38, 0x10, 0xfd, 0x84, 0x10, 0xa6, 0xab, 0xbe, 0xd2, 0x8e, 0x44, 0xee, 0xaa, 0x1f, 0x1c, 0x35, 0xdb, 0x62, 0x4b, 0x20, 0xb8, 0x47, 0x94, 0x40, 0xeb, 0xa0, 0xe1, 0x9f, 0x11, 0xb1, 0xe5, 0xc7, 0x08, 0xe4, 0x53, 0x9f, 0xdb, 0xd2, 0x5b, 0x1a, 0xd5, 0x8a, 0x1c, 0x38, 0x70, 0xc1, 0x9b, 0x9b, 0x9b, 0xd1, 0x3a, 0xbf, 0xe5, 0xbf, 0x1c, 0x03, 0x6f, 0x0f, 0x77, 0x5a, 0x24, 0x27, 0x79, 0xb1, 0xba, 0xf5, 0x10, 0x5e, 0x6c, 0x13, 0x38, 0x0d, 0xca, 0x25, 0xdf, 0xbd, 0x7b, 0x3d, 0xb0, 0x81, 0x4d, 0x05, 0xd7, 0x80, 0xe7, 0xb7, 0x8e, 0x68, 0x6d, 0x59, 0x0e, 0xe2, 0x61, 0xb8, 0xe8, 0x97, 0x87, 0x67, 0x1f, 0xde, 0x1e, 0x9d, 0x7f, 0x78, 0x77, 0xf8, 0x3d, 0x6d, 0x21, 0xfb, 0x65, 0x8c, 0xbc, 0xa2, 0x88, 0x40, 0x55, 0x96, 0x86, 0xcd, 0xbe, 0x21, 0xa6, 0x9e, 0x17, 0x80, 0x57, 0x89, 0x75, 0x6c, 0x53, 0xc8, 0x28, 0x99, 0x27, 0x4d, 0xe6, 0xc0, 0xa3, 0x41, 0xda, 0xaf, 0x8f, 0x59, 0x55, 0x64, 0xf3, 0x51, 0x59, 0x5d, 0x12, 0x15, 0xee, 0xbc, 0x12, 0xfe, 0x19, 0x1d, 0x6e, 0x47, 0xb2, 0x1a, 0x08, 0x82, 0xec, 0xba, 0xba, 0x20, 0xc4, 0x92, 0x35, 0x1a, 0x4f, 0xab, 0x3f, 0xad, 0x47, 0x9a, 0x8f, 0xc1, 0x00, 0x97, 0xd7, 0x8f, 0xd7, 0xa9, 0x77, 0x4d, 0xcb, 0x1c, 0x92, 0x16, 0x9f, 0x20, 0x20, 0xb8, 0x7e, 0xfc, 0x64, 0x95, 0x8c, 0x23, 0xd2, 0x83, 0x08, 0x00, 0x02, 0xf4, 0xb9, 0xd2, 0x42, 0x49, 0xa0, 0xc0, 0x8d, 0x92, 0x6c, 0xfa, 0xb9, 0x76, 0x68, 0xb8, 0x58, 0x1f, 0x42, 0x5b, 0xfd, 0xf4, 0x7d, 0x0f, 0x4f, 0x43, 0xcb, 0x90, 0x5a, 0xee, 0x7a, 0x6b, 0x7e, 0x2a, 0x6b, 0x7e, 0xfa, 0xaf, 0xad, 0xf9, 0xe9, 0x2f, 0x5f, 0xf3, 0xe3, 0x5f, 0x79, 0xcd, 0x8f, 0xa3, 0x6b, 0xf6, 0xbe, 0x32, 0xfc, 0x2b, 0xad, 0xf9, 0xaf, 0xab, 0xe2, 0xe3, 0xd0, 0x4c, 0x97, 0xa4, 0xb0, 0x34, 0xd8, 0xac, 0x7b, 0x4c, 0x36, 0x9b, 0xfb, 0x0f, 0xef, 0x1e, 0xc3, 0x7c, 0x0a, 0xae, 0xb0, 0xd7, 0x2f, 0x34, 0xf5, 0x3a, 0xe8, 0x71, 0xe4, 0xa9, 0xab, 0x87, 0x7b, 0x91, 0x07, 0x98, 0x07, 0x39, 0xd5, 0xfb, 0xd6, 0x53, 0xf2, 0x54, 0x90, 0x6a, 0xbf, 0x21, 0xb3, 0xd1, 0x61, 0x37, 0xb4, 0xe1, 0x0a, 0x6e, 0x7a, 0x1a, 0xe2, 0x1c, 0x4d, 0x19, 0x23, 0xfd, 0x8a, 0x5b, 0xcf, 0x41, 0x16, 0x21, 0x68, 0x25, 0x99, 0xfe, 0xdc, 0xe0, 0x88, 0x51, 0xa0, 0x74, 0xe8, 0x5c, 0xc0, 0xd4, 0x42, 0x9e, 0x71, 0x7e, 0xb7, 0xa4, 0x01, 0x93, 0x49, 0x65, 0x04, 0x30, 0x7c, 0x96, 0xf3, 0x1b, 0x4a, 0x4d, 0xd0, 0x19, 0xda, 0x21, 0xec, 0xaa, 0xd9, 0xba, 0x42, 0xb4, 0x6e, 0x33, 0x50, 0x18, 0xa6, 0xf3, 0x92, 0x38, 0xce, 0x6c, 0xbd, 0xf1, 0x31, 0x71, 0xdd, 0x4d, 0x59, 0x5e, 0x74, 0xda, 0x9d, 0xfa, 0x72, 0xe3, 0x63, 0x96, 0x2d, 0xd3, 0x39, 0xa0, 0x35, 0x28, 0xf7, 0xa1, 0xaf, 0x41, 0x56, 0x8b, 0x30, 0x6a, 0x2d, 0x1d, 0xc0, 0x2b, 0x7e, 0x19, 0x30, 0x33, 0x3a, 0x3e, 0x49, 0xaa, 0x96, 0x49, 0xf2, 0x19, 0x95, 0xba, 0xc6, 0xfb, 0xa5, 0x68, 0xf2, 0x83, 0x9d, 0x02, 0x29, 0x26, 0x13, 0x01, 0x80, 0x61, 0x7b, 0x12, 0xa8, 0x54, 0x0a, 0x23, 0x87, 0xd4, 0x9c, 0xeb, 0x9c, 0xb2, 0xf2, 0xba, 0x98, 0xc3, 0x9d, 0x11, 0x80, 0x2a, 0xd5, 0x6a, 0x98, 0xc0, 0x87, 0x47, 0x4f, 0x94, 0x56, 0x00, 0x92, 0xdf, 0x1f, 0x5d, 0xa4, 0x03, 0x92, 0x52, 0xe4, 0x64, 0xe9, 0x42, 0xf1, 0xf2, 0xec, 0xc3, 0xb7, 0x47, 0x47, 0x67, 0xc7, 0xaf, 0x4e, 0x8e, 0xe4, 0xc6, 0xd8, 0x1f, 0xbd, 0x3d, 0xff, 0xee, 0xc4, 0xf5, 0x05, 0x95, 0xb0, 0x47, 0x97, 0xe0, 0x05, 0xee, 0x5f, 0xd8, 0xf2, 0x00, 0x7d, 0xb0, 0x8c, 0x2d, 0x7d, 0x78, 0xfc, 0x83, 0x51, 0x5b, 0xcf, 0x86, 0xef, 0x7f, 0x08, 0x5a, 0x90, 0xb4, 0x6a, 0x4c, 0xba, 0x76, 0x97, 0xad, 0x38, 0x19, 0x0e, 0x8b, 0xd2, 0x1d, 0x60, 0x6f, 0xca, 0xdd, 0xaf, 0x2c, 0x06, 0x29, 0x71, 0xb9, 0xb0, 0x1a, 0x03, 0xbf, 0xa8, 0x7d, 0x7e, 0xbc, 0xac, 0xb6, 0xa7, 0xbb, 0xda, 0x3e, 0x6d, 0x6d, 0xd0, 0xa2, 0xd3, 0xb2, 0xed, 0x63, 0x76, 0x07, 0x0c, 0xc7, 0xe4, 0x05, 0xfd, 0x37, 0xde, 0xe4, 0x34, 0x39, 0xab, 0xf2, 0x6b, 0x52, 0x00, 0xcd, 0xc3, 0x1c, 0xd3, 0xa5, 0x67, 0x47, 0xb6, 0xe9, 0xab, 0x84, 0x95, 0x69, 0x14, 0x24, 0x9e, 0x60, 0xd4, 0x98, 0xb7, 0x07, 0xd0, 0x38, 0xe4, 0x5e, 0xb5, 0xa3, 0xe5, 0x86, 0x74, 0x5e, 0x1d, 0xbd, 0x1b, 0x24, 0x67, 0x47, 0x6f, 0xb8, 0x4a, 0xe5, 0xe8, 0xed, 0xd7, 0xdc, 0xc5, 0xd1, 0xb6, 0x36, 0x1d, 0x71, 0xae, 0x74, 0x98, 0xac, 0xe9, 0xed, 0x89, 0x79, 0x1d, 0x41, 0x91, 0xba, 0x36, 0xd2, 0xf5, 0x13, 0x02, 0xe8, 0xf0, 0xd2, 0x5e, 0x98, 0xff, 0xc4, 0xb6, 0xca, 0xd8, 0x11, 0xdf, 0x6c, 0x87, 0xbb, 0x25, 0x6a, 0x99, 0xcd, 0x9d, 0x11, 0x93, 0x80, 0x76, 0x83, 0x37, 0xcc, 0xec, 0x48, 0x98, 0xc5, 0xa1, 0x3b, 0x54, 0x08, 0x2e, 0x9e, 0xf4, 0x4e, 0x97, 0x10, 0x3c, 0x3a, 0x13, 0x8c, 0xbf, 0x19, 0x10, 0x59, 0x02, 0x88, 0xdc, 0xed, 0x45, 0xb4, 0x3a, 0xba, 0x02, 0xab, 0x93, 0xfa, 0x7a, 0x1b, 0x02, 0x25, 0xb5, 0x6a, 0x96, 0xcf, 0x00, 0xc1, 0x00, 0x17, 0x5d, 0x59, 0x51, 0x06, 0x47, 0x92, 0x6c, 0xfe, 0xcf, 0x9d, 0x51, 0x5d, 0x5f, 0xed, 0xe4, 0xb3, 0x0f, 0x55, 0x9d, 0x6e, 0x76, 0x65, 0x91, 0xf7, 0xeb, 0x19, 0xfd, 0x3a, 0xd9, 0x1c, 0xd9, 0x47, 0xe5, 0xef, 0xf4, 0xf3, 0xd8, 0x39, 0xa8, 0x04, 0x62, 0xcf, 0x8a, 0xe6, 0x73, 0x6a, 0xf3, 0xdc, 0x79, 0x3e, 0xa9, 0x8c, 0x02, 0xe7, 0x9a, 0x7e, 0x48, 0x2b, 0xdc, 0x64, 0xf9, 0x71, 0x5a, 0xef, 0xed, 0x85, 0x28, 0xf4, 0xb6, 0xc4, 0x71, 0xa0, 0xa9, 0xb9, 0x67, 0xdf, 0xbe, 0x1c, 0xff, 0x6e, 0x6f, 0x0f, 0x69, 0xd0, 0x5b, 0x94, 0xae, 0xfa, 0xec, 0xc9, 0xde, 0xfe, 0x76, 0x4c, 0x81, 0x0c, 0xf2, 0x7a, 0xa0, 0x50, 0xfa, 0xe4, 0x89, 0x18, 0xb7, 0xd4, 0x3c, 0xd8, 0x81, 0x67, 0x19, 0xa5, 0x08, 0x92, 0xf3, 0xd0, 0x76, 0x3f, 0x41, 0xee, 0x64, 0x90, 0x7a, 0x81, 0x5f, 0xb1, 0xe3, 0x7e, 0x83, 0xe7, 0x7f, 0xb0, 0x61, 0xe9, 0xca, 0x4f, 0x22, 0x47, 0x06, 0x8a, 0x37, 0x6f, 0x64, 0xfe, 0x74, 0xc3, 0x6b, 0xfe, 0xba, 0x90, 0xe9, 0xe8, 0x90, 0xa6, 0x32, 0x76, 0x0e, 0xd8, 0xc6, 0xc1, 0x91, 0xe4, 0x80, 0xc0, 0x57, 0x2f, 0x33, 0xda, 0x48, 0x98, 0x82, 0x88, 0xe2, 0x53, 0x37, 0xaa, 0xdd, 0x7f, 0x8f, 0x43, 0xb4, 0x47, 0x0d, 0x12, 0x27, 0x21, 0xa9, 0x37, 0xcc, 0xf5, 0xdd, 0x88, 0x8e, 0xf8, 0x49, 0xef, 0x64, 0x35, 0x49, 0x5e, 0xcc, 0xcd, 0x8b, 0xf3, 0x78, 0xe9, 0xdd, 0x11, 0xb7, 0xd9, 0xfa, 0x36, 0xab, 0x26, 0x59, 0x55, 0xd6, 0x9d, 0x12, 0x21, 0x6d, 0xed, 0xca, 0x89, 0xd8, 0x18, 0x86, 0xd3, 0xa5, 0x22, 0x2e, 0x4d, 0x3a, 0x34, 0xd9, 0x9d, 0x00, 0x96, 0x67, 0x13, 0xd5, 0x4a, 0x74, 0x01, 0xa8, 0xb1, 0x14, 0xfd, 0x69, 0xb8, 0xf1, 0x05, 0x37, 0x07, 0x4d, 0xe7, 0x9b, 0xd4, 0xed, 0xa7, 0x7b, 0x8d, 0x84, 0xd6, 0x36, 0x0d, 0x2f, 0xe5, 0xd1, 0x88, 0x3b, 0x00, 0xef, 0x40, 0xe6, 0xc1, 0xbe, 0x5e, 0xdb, 0x54, 0xd4, 0x4f, 0x02, 0xac, 0x83, 0x0e, 0x48, 0x76, 0xb8, 0x36, 0x74, 0x52, 0x5f, 0x86, 0xf1, 0xaf, 0x2c, 0xa6, 0xf8, 0x18, 0x1e, 0x1c, 0x3a, 0x0a, 0x5c, 0xab, 0x9d, 0xe1, 0xf4, 0xb0, 0xfc, 0x73, 0xd6, 0xd7, 0xa3, 0x9d, 0x73, 0x0f, 0xb9, 0x36, 0xbc, 0xd3, 0x76, 0x98, 0xb2, 0x36, 0x51, 0x1e, 0x41, 0x66, 0xa1, 0x54, 0xbe, 0x4a, 0x69, 0x30, 0xda, 0x46, 0x8a, 0x7e, 0x11, 0x06, 0xc7, 0x39, 0x5b, 0x0d, 0x71, 0x6e, 0x9d, 0xf6, 0x90, 0xcd, 0xf7, 0x97, 0x89, 0xb8, 0x23, 0x50, 0x19, 0x75, 0x53, 0x11, 0x5e, 0x6a, 0xa1, 0x51, 0x08, 0x16, 0x8f, 0x71, 0x10, 0x2d, 0x85, 0x54, 0x35, 0x87, 0x34, 0x97, 0x7e, 0x86, 0x9a, 0x8d, 0x58, 0xe9, 0xb4, 0x86, 0x92, 0xce, 0xa1, 0x1e, 0x03, 0x7a, 0xef, 0xdf, 0xfe, 0xc5, 0x93, 0x63, 0x85, 0x5e, 0x9a, 0x27, 0x44, 0x60, 0x12, 0x1e, 0x8c, 0x15, 0xd7, 0x29, 0xf3, 0x43, 0xc9, 0xc0, 0x10, 0x42, 0xe9, 0x85, 0xe1, 0xa7, 0x59, 0x00, 0x96, 0xa5, 0x0a, 0x82, 0x60, 0xf7, 0x48, 0xb3, 0x57, 0xaf, 0xe5, 0x22, 0xde, 0x25, 0x9a, 0x07, 0x96, 0x84, 0x1f, 0x9c, 0x1b, 0x92, 0xca, 0xda, 0x75, 0xb7, 0x51, 0x9b, 0x12, 0x57, 0xa5, 0x8d, 0x6b, 0x0b, 0x30, 0x7a, 0x05, 0x39, 0xd2, 0x2c, 0x69, 0xde, 0x10, 0x72, 0x45, 0x4b, 0xfe, 0x2d, 0x6c, 0x8b, 0x34, 0xf0, 0x81, 0xa0, 0xe2, 0x81, 0x3b, 0x7f, 0xa4, 0xdc, 0x11, 0x61, 0x73, 0xc6, 0x6e, 0x51, 0x1c, 0x89, 0x9d, 0x27, 0xdd, 0x3d, 0x99, 0x17, 0x67, 0xd6, 0x9a, 0x1b, 0x1d, 0x98, 0x0a, 0x13, 0x33, 0xc4, 0x4d, 0x3e, 0x6b, 0xae, 0xd0, 0x89, 0x47, 0x2d, 0xa3, 0x5a, 0x70, 0x01, 0xc8, 0x4d, 0x9d, 0xc7, 0x8a, 0xde, 0xa2, 0x0e, 0x3c, 0x3e, 0x31, 0xec, 0x69, 0xc2, 0xf0, 0x58, 0xe4, 0xa9, 0xc3, 0x31, 0xc0, 0xa7, 0xbd, 0xc3, 0x9a, 0x9e, 0x45, 0x86, 0xa1, 0x76, 0xd9, 0x17, 0xd4, 0x65, 0x27, 0xf4, 0xd0, 0x6b, 0x79, 0xda, 0xc8, 0x5e, 0x11, 0x88, 0xa5, 0xcd, 0x8f, 0x8c, 0x8b, 0xff, 0xed, 0xa6, 0xf6, 0x93, 0x5d, 0x15, 0x8d, 0x5f, 0x43, 0x63, 0x6e, 0xe8, 0xc7, 0x7c, 0x5e, 0x46, 0x5d, 0xea, 0x86, 0xb5, 0x2d, 0xf8, 0xf5, 0x37, 0x9b, 0xea, 0x27, 0x25, 0xc0, 0x84, 0xcb, 0x54, 0x7e, 0xcd, 0x58, 0x29, 0x9b, 0x97, 0xfc, 0xd0, 0xd7, 0xfa, 0x50, 0xd8, 0x43, 0x82, 0xbc, 0xf6, 0xec, 0xa5, 0xd7, 0x64, 0xba, 0xfa, 0x80, 0xea, 0x33, 0xbe, 0x1d, 0x24, 0x8f, 0x16, 0x38, 0x94, 0xbd, 0xaf, 0xa3, 0x95, 0x73, 0xc0, 0x65, 0x80, 0xf5, 0xa5, 0x99, 0x3e, 0xc3, 0x3f, 0x93, 0xd1, 0x85, 0x3d, 0x63, 0xca, 0xb4, 0xc5, 0x60, 0x5c, 0x6e, 0xe8, 0xa4, 0x57, 0x57, 0x37, 0xa2, 0xa3, 0x5a, 0x92, 0x8d, 0x30, 0xcb, 0x14, 0x23, 0x7c, 0x01, 0xd7, 0x26, 0x65, 0x4b, 0x2d, 0x05, 0x0b, 0x83, 0x48, 0x75, 0x68, 0x21, 0x48, 0xeb, 0x39, 0x3d, 0x80, 0xe6, 0x58, 0x65, 0x90, 0x59, 0x3d, 0x5f, 0xc2, 0x40, 0xb2, 0x3d, 0xec, 0xbc, 0x29, 0x51, 0x61, 0xeb, 0x34, 0x11, 0x1f, 0xcf, 0x27, 0x14, 0x89, 0xf3, 0x01, 0xee, 0x67, 0xdd, 0x0c, 0x23, 0x78, 0xaf, 0x8c, 0x0f, 0x78, 0x76, 0x7a, 0xf6, 0x68, 0xdb, 0xd6, 0x47, 0x73, 0xb2, 0xbf, 0xa0, 0x23, 0x58, 0xbc, 0x40, 0x0b, 0x9c, 0xa0, 0xe0, 0xcc, 0x28, 0xd3, 0x0b, 0x6d, 0x4b, 0x80, 0x7d, 0x83, 0xb5, 0xe0, 0x7b, 0x70, 0xf8, 0xbb, 0x22, 0x11, 0xaf, 0x07, 0xa2, 0xbb, 0x96, 0x0e, 0x1f, 0xf1, 0xb3, 0x10, 0x56, 0xa6, 0xd6, 0x8c, 0x72, 0x60, 0xb2, 0x0c, 0x51, 0xfe, 0x97, 0xb4, 0x1b, 0x8a, 0x50, 0x43, 0x8a, 0xce, 0x24, 0x39, 0xf1, 0x28, 0x92, 0xd2, 0x25, 0x41, 0x5e, 0xf7, 0x20, 0x02, 0x12, 0x5a, 0x0d, 0xc9, 0xf2, 0xd6, 0x66, 0x5b, 0x90, 0xb7, 0x94, 0xc8, 0x96, 0x31, 0x95, 0x47, 0xb1, 0x0a, 0x5c, 0xe9, 0x67, 0x27, 0x7d, 0x2d, 0x5a, 0x16, 0x99, 0xf4, 0x2a, 0x4b, 0x93, 0xb7, 0x27, 0xe3, 0x73, 0x3f, 0x86, 0x04, 0x3d, 0x2c, 0x48, 0x65, 0x6e, 0x03, 0xbb, 0x79, 0x89, 0x45, 0x27, 0xc7, 0xe3, 0xf3, 0x51, 0xac, 0x63, 0xc3, 0x41, 0x32, 0xa6, 0x5a, 0x1b, 0x0f, 0x27, 0x03, 0xa7, 0x26, 0xf8, 0x59, 0x1c, 0x1c, 0x53, 0xbc, 0xb4, 0xbc, 0xf2, 0xb2, 0xb2, 0x42, 0x4a, 0xa5, 0x29, 0xfe, 0x91, 0xd3, 0x94, 0x25, 0xc5, 0x59, 0x43, 0x44, 0xf5, 0x6a, 0x32, 0xf4, 0x90, 0x14, 0x59, 0xdf, 0x41, 0x6f, 0x2e, 0x43, 0xbd, 0x46, 0x42, 0x7d, 0x0c, 0x6d, 0xcc, 0x2d, 0xa1, 0x27, 0x26, 0x24, 0x41, 0xc1, 0x6c, 0x79, 0xbb, 0xa7, 0x49, 0x06, 0xc4, 0x5d, 0xb8, 0x99, 0xe8, 0xe9, 0x07, 0x11, 0x15, 0x6d, 0x44, 0x67, 0x1f, 0xa5, 0x97, 0x63, 0xbb, 0x62, 0x81, 0x62, 0x76, 0x3f, 0x33, 0x4e, 0x29, 0x65, 0xdc, 0x88, 0xba, 0x33, 0xd5, 0x21, 0x39, 0x38, 0x63, 0x7f, 0x93, 0x9d, 0x75, 0x1f, 0x08, 0x70, 0x3e, 0x63, 0x20, 0xcc, 0xba, 0x8d, 0x84, 0xc9, 0xa0, 0x07, 0xc4, 0x72, 0xb8, 0xf3, 0x0f, 0x39, 0x46, 0x7a, 0x4e, 0x92, 0x5d, 0x72, 0xad, 0xf4, 0xd4, 0xe1, 0x0f, 0x9c, 0xf0, 0x8c, 0x38, 0xd9, 0x20, 0x86, 0xcf, 0x16, 0x83, 0x15, 0xb2, 0xd0, 0x2b, 0x45, 0xf2, 0xfe, 0xf8, 0xd5, 0x49, 0x17, 0x99, 0x07, 0x69, 0xb4, 0x76, 0xa9, 0x54, 0xd4, 0xa2, 0x4c, 0x13, 0x27, 0x12, 0x04, 0x7d, 0x56, 0x45, 0x6e, 0xbe, 0xef, 0xf7, 0xb5, 0x37, 0xdc, 0xef, 0xca, 0x89, 0xb1, 0xcd, 0xda, 0xb6, 0xaf, 0xcb, 0x67, 0x5e, 0xed, 0x87, 0xe4, 0x6b, 0x46, 0xf3, 0x8f, 0xd7, 0x22, 0xa7, 0xec, 0xb5, 0xe1, 0x4d, 0x81, 0x72, 0x2c, 0x60, 0x64, 0x46, 0x1c, 0xed, 0xa0, 0x7e, 0x31, 0x50, 0x2e, 0xc8, 0x01, 0x94, 0x26, 0x5e, 0x7e, 0x5d, 0x1b, 0x66, 0xa7, 0xac, 0xa4, 0xee, 0x71, 0xeb, 0xf5, 0xbb, 0xd3, 0x37, 0xc3, 0xf3, 0xd3, 0x6d, 0x22, 0x13, 0x0c, 0xdd, 0x9f, 0x22, 0x52, 0xdb, 0x16, 0xa9, 0x0e, 0xa5, 0x44, 0x5c, 0x6d, 0x5b, 0x35, 0x41, 0x0b, 0xba, 0xa6, 0x29, 0x98, 0x9e, 0xbe, 0x15, 0xb4, 0x2f, 0x29, 0x58, 0x13, 0x81, 0x2b, 0xc3, 0xd0, 0xd2, 0x34, 0x25, 0x85, 0xd1, 0x06, 0xb2, 0x38, 0xab, 0x43, 0x58, 0xf7, 0x64, 0x55, 0xdf, 0x25, 0x52, 0x5f, 0x5a, 0xd3, 0x49, 0x19, 0x5b, 0x2a, 0x8c, 0x0e, 0x28, 0x58, 0x9f, 0x45, 0x2a, 0xa2, 0x92, 0x3b, 0x2e, 0xeb, 0x6a, 0x4a, 0x73, 0x7b, 0xd3, 0xaa, 0x2a, 0x6f, 0x54, 0x6e, 0xa1, 0xf6, 0xdb, 0x1c, 0xa3, 0x99, 0x3a, 0x9d, 0x53, 0x75, 0xd7, 0x8b, 0xee, 0x22, 0x80, 0x65, 0xda, 0x31, 0x7c, 0xad, 0xfa, 0xf7, 0xa4, 0x8d, 0xb9, 0xa1, 0x09, 0xe0, 0xc3, 0xa6, 0x5a, 0x51, 0x4d, 0x69, 0x4f, 0x12, 0xdf, 0x09, 0x10, 0x1c, 0x3b, 0x49, 0xe3, 0x03, 0x01, 0x55, 0x24, 0x00, 0x1e, 0xb4, 0x79, 0xb3, 0x25, 0x7a, 0xda, 0x76, 0xe8, 0x0f, 0xc1, 0x0d, 0x16, 0xac, 0x65, 0x52, 0xea, 0xe7, 0x73, 0x97, 0x36, 0x2e, 0x88, 0x9d, 0x79, 0xc3, 0x9d, 0x37, 0x35, 0x05, 0x07, 0x48, 0x6a, 0xdc, 0xf9, 0x37, 0xbd, 0x0b, 0x4d, 0x2f, 0x45, 0x49, 0xca, 0x09, 0xa1, 0x62, 0xb6, 0x9a, 0xe2, 0x94, 0x28, 0xe2, 0x47, 0x7d, 0x3d, 0x27, 0x0c, 0xdc, 0xaa, 0x30, 0x0f, 0x34, 0xb4, 0xcb, 0x97, 0x67, 0x07, 0x4e, 0x57, 0xcb, 0xe2, 0xa7, 0x6c, 0xb3, 0x32, 0x52, 0x25, 0x29, 0xad, 0xcf, 0x36, 0xda, 0xea, 0x98, 0x9c, 0x14, 0x53, 0x72, 0xad, 0x92, 0x43, 0x76, 0x45, 0xa0, 0xf9, 0x80, 0x0b, 0x97, 0xb8, 0x3f, 0x21, 0x5b, 0x12, 0xf9, 0x22, 0xe8, 0xfe, 0x55, 0x5a, 0x1b, 0xb6, 0xd4, 0x1e, 0x71, 0x7b, 0x8d, 0x7b, 0x7a, 0xa5, 0x85, 0x15, 0xde, 0xe9, 0x9d, 0x0c, 0xbc, 0xd3, 0xe8, 0x39, 0xb9, 0x63, 0x91, 0xd2, 0xc2, 0xd7, 0x38, 0x39, 0xc3, 0xdb, 0x73, 0xe1, 0x52, 0xc0, 0x5d, 0xa4, 0x6c, 0xf5, 0x94, 0xda, 0x5c, 0x5f, 0xc7, 0x98, 0x53, 0x6a, 0x7b, 0x39, 0x36, 0x89, 0x7e, 0x34, 0xd9, 0xd2, 0xca, 0x4f, 0x5b, 0x8a, 0x74, 0x22, 0xbf, 0x3a, 0xb0, 0xb5, 0xa9, 0xc4, 0xd3, 0x3a, 0xc3, 0x3d, 0xfa, 0xe1, 0x87, 0xa4, 0xdd, 0x78, 0x79, 0x7b, 0x10, 0xd6, 0x44, 0xf8, 0x45, 0x29, 0xb3, 0xd2, 0x9f, 0x6e, 0x50, 0x57, 0xc7, 0x34, 0x67, 0x14, 0x02, 0xa4, 0xf0, 0x8f, 0x2c, 0x50, 0x44, 0x53, 0x1a, 0xeb, 0xef, 0x4a, 0x0b, 0xad, 0x90, 0xbf, 0xe1, 0x12, 0x38, 0xc8, 0x55, 0x86, 0x22, 0xcf, 0x30, 0xe7, 0x07, 0x0c, 0x57, 0x53, 0x2f, 0x38, 0xa6, 0x82, 0x9c, 0x74, 0x7f, 0xb3, 0x6a, 0xe7, 0x9c, 0xb9, 0xa2, 0xd8, 0x82, 0xe0, 0x92, 0xdf, 0xdb, 0x1c, 0x9a, 0xa1, 0x3f, 0xb0, 0x2e, 0x08, 0x7c, 0xee, 0x2a, 0xc1, 0x09, 0xb1, 0xd3, 0x2a, 0x13, 0x5f, 0x43, 0x6d, 0xa1, 0xf5, 0x83, 0x28, 0x32, 0x81, 0xf6, 0xcc, 0x39, 0x75, 0x8d, 0xfd, 0xaa, 0xa9, 0x77, 0x63, 0x1c, 0xe6, 0x62, 0xe7, 0xcc, 0xb8, 0x16, 0x23, 0xd0, 0xde, 0x6f, 0x4a, 0xd2, 0x9f, 0x08, 0x03, 0x03, 0x88, 0x71, 0x25, 0x3b, 0xb5, 0xd0, 0x37, 0x58, 0xa5, 0xcd, 0x1f, 0xf4, 0xde, 0x8e, 0x40, 0x90, 0x36, 0x20, 0x46, 0x54, 0x10, 0x0b, 0x81, 0x2a, 0x33, 0xc1, 0xc1, 0x10, 0xbe, 0x2f, 0xa5, 0xc3, 0x69, 0x47, 0x32, 0xf2, 0x16, 0x6b, 0x94, 0x9c, 0xf5, 0x69, 0x40, 0x51, 0x2c, 0x60, 0xbb, 0x04, 0x40, 0xd3, 0xee, 0xca, 0x32, 0x58, 0x0e, 0xb1, 0x19, 0x0b, 0x4d, 0xc7, 0xbe, 0x2d, 0x63, 0x92, 0x0e, 0xf1, 0x58, 0xdd, 0x97, 0x6e, 0xe2, 0xa2, 0x66, 0xd2, 0x3d, 0xc5, 0xdf, 0x30, 0x88, 0xd8, 0x8b, 0x56, 0x66, 0x4b, 0xce, 0x3d, 0x47, 0x09, 0x40, 0x64, 0x10, 0xb1, 0x77, 0xd8, 0xab, 0x30, 0x2b, 0x03, 0x4f, 0xac, 0xad, 0x52, 0xe5, 0x9b, 0x40, 0x68, 0x1d, 0x32, 0x72, 0x2b, 0x1f, 0x28, 0xd0, 0x95, 0xeb, 0xe4, 0xd1, 0xee, 0x9e, 0x31, 0x96, 0x76, 0xf7, 0xd1, 0x4d, 0xfa, 0xd1, 0xee, 0x23, 0x8b, 0x76, 0xd0, 0xba, 0x23, 0xfc, 0x2c, 0xdc, 0x21, 0x6c, 0x84, 0x9a, 0x8b, 0x74, 0x7b, 0x1b, 0xb6, 0xa9, 0xc8, 0xda, 0x75, 0x14, 0x43, 0x5b, 0x7b, 0x18, 0x4e, 0xd5, 0x6d, 0x24, 0xe2, 0x75, 0x61, 0x67, 0x4a, 0xae, 0xf4, 0xa5, 0x9a, 0x19, 0x00, 0x84, 0x8c, 0xfa, 0xda, 0x58, 0x35, 0x5d, 0x0c, 0x34, 0x39, 0x70, 0x1f, 0x33, 0x06, 0x87, 0x48, 0xbb, 0x22, 0xd0, 0x4b, 0x66, 0xa5, 0xb7, 0x7d, 0xf5, 0x07, 0xae, 0x77, 0x9f, 0xc5, 0x28, 0x55, 0x46, 0xa3, 0x75, 0x32, 0xda, 0x9b, 0xf5, 0x80, 0x12, 0x3e, 0x0c, 0x71, 0xd3, 0x26, 0x06, 0x37, 0x99, 0x7f, 0xa1, 0xf9, 0x79, 0xfc, 0xaf, 0x47, 0x51, 0x7b, 0x5d, 0x10, 0x50, 0xc8, 0x09, 0x6a, 0xb5, 0x38, 0xa7, 0xc6, 0xb5, 0x02, 0xbb, 0xec, 0x0a, 0xe1, 0xe7, 0x63, 0x9e, 0x7a, 0xf6, 0x0b, 0x38, 0x3f, 0x41, 0x9d, 0xcd, 0x05, 0x4c, 0x63, 0xd5, 0x4a, 0x73, 0x1a, 0x02, 0x23, 0x69, 0xa8, 0x0b, 0x7a, 0x21, 0x7f, 0x09, 0x1c, 0xa0, 0xe8, 0x5a, 0x0c, 0x75, 0x1b, 0x9d, 0x67, 0xb6, 0xad, 0x53, 0x06, 0x66, 0x24, 0x8d, 0x61, 0x37, 0x45, 0x54, 0x1f, 0xe9, 0x08, 0xcf, 0x5c, 0xbf, 0x2b, 0xe7, 0x5a, 0x42, 0xa7, 0xf7, 0x44, 0x55, 0xbd, 0x0c, 0xc6, 0xd7, 0xbc, 0x0d, 0x8b, 0x43, 0xe0, 0xd4, 0x6c, 0xf3, 0x58, 0x8c, 0x21, 0xd4, 0x9a, 0x70, 0x8f, 0xb6, 0xda, 0xea, 0xc1, 0x97, 0x39, 0x76, 0xa6, 0x93, 0x1c, 0x36, 0x68, 0x2f, 0x0d, 0xe7, 0x5a, 0x68, 0xf7, 0xd2, 0x56, 0x0c, 0x78, 0x2b, 0xd0, 0xb3, 0x9d, 0x1a, 0xf1, 0x68, 0x5e, 0x67, 0x6b, 0xa6, 0x1c, 0x5e, 0x01, 0x62, 0xb4, 0x66, 0x7f, 0xc4, 0xd2, 0x76, 0x39, 0xf5, 0x03, 0x07, 0xda, 0x5e, 0xe8, 0x72, 0x4e, 0xa8, 0x8d, 0x30, 0x25, 0xa4, 0xb5, 0xf4, 0xe3, 0x01, 0xfe, 0xf6, 0x64, 0xf7, 0x39, 0x93, 0xd3, 0xf1, 0xd1, 0xf9, 0xeb, 0xae, 0x87, 0xb0, 0x32, 0xa4, 0xcd, 0xff, 0x1d, 0x66, 0x69, 0x75, 0x65, 0x2c, 0x16, 0x02, 0x60, 0x1a, 0x52, 0x53, 0x8f, 0xe1, 0xee, 0x6e, 0x2c, 0x19, 0xe4, 0x13, 0x62, 0x4e, 0x3c, 0x7a, 0xdc, 0x8e, 0x13, 0x92, 0x9d, 0x30, 0xa4, 0xed, 0xee, 0x87, 0x07, 0x6e, 0x93, 0x97, 0x45, 0x90, 0x97, 0xc7, 0x5b, 0x59, 0x00, 0x5a, 0x4c, 0x07, 0x31, 0xd5, 0x41, 0xd7, 0xf4, 0xec, 0xf6, 0xae, 0xd6, 0xe4, 0x40, 0x69, 0xb7, 0xd8, 0x36, 0x69, 0xee, 0xb6, 0x13, 0x6e, 0x4d, 0xc9, 0x3d, 0xe4, 0x1a, 0x30, 0x1b, 0x58, 0x26, 0xd1, 0x6a, 0xfc, 0x5a, 0xea, 0x11, 0xab, 0x8c, 0x70, 0xdc, 0x58, 0x97, 0x94, 0x5e, 0x5c, 0xf7, 0x63, 0xd1, 0x61, 0x0b, 0xaa, 0xe9, 0x52, 0x2a, 0x53, 0xf9, 0xdf, 0x24, 0xdf, 0x5b, 0x49, 0xb9, 0xfb, 0x4f, 0x22, 0x1b, 0x07, 0x2d, 0xe0, 0x17, 0x6e, 0x9c, 0xd3, 0xb7, 0xd8, 0x2b, 0xc8, 0x1d, 0xa3, 0xb4, 0xfe, 0x31, 0x92, 0xfe, 0xad, 0x2d, 0xa2, 0x7f, 0xf6, 0x5a, 0x68, 0xb7, 0x47, 0xeb, 0x10, 0x2d, 0xed, 0x5b, 0x43, 0x28, 0xed, 0xe8, 0xe0, 0x11, 0x5f, 0xcc, 0xf7, 0x3e, 0xd8, 0x02, 0xe3, 0xad, 0x95, 0xae, 0x0e, 0xd2, 0x08, 0xcf, 0x7c, 0x49, 0x40, 0x1f, 0x86, 0x3a, 0x5d, 0xa1, 0x56, 0x94, 0x1b, 0xc2, 0x42, 0x98, 0x00, 0x44, 0x8d, 0xae, 0xab, 0x31, 0x5c, 0xc8, 0xe5, 0x21, 0xfa, 0xd0, 0x05, 0x99, 0x4d, 0x74, 0xd7, 0x1a, 0x8d, 0xc1, 0xa8, 0x09, 0xaa, 0xe3, 0x07, 0x15, 0x6f, 0xf0, 0xce, 0xbc, 0x7b, 0x79, 0x76, 0x9e, 0x9c, 0x9f, 0xfa, 0x6e, 0x05, 0xae, 0xda, 0x26, 0x03, 0x1a, 0x4d, 0x8e, 0xa2, 0x5c, 0xde, 0x4e, 0xd4, 0xb5, 0xb7, 0x10, 0x9b, 0x9c, 0x05, 0x16, 0x52, 0x2b, 0x81, 0xaa, 0x07, 0xec, 0x5b, 0x7f, 0xb7, 0x22, 0xc5, 0x6d, 0xd8, 0xbd, 0xae, 0xdb, 0x9f, 0x15, 0x58, 0x9b, 0x1e, 0xed, 0xa9, 0xb1, 0x9c, 0xdc, 0x9d, 0xf0, 0xf4, 0x62, 0xcd, 0xf7, 0x34, 0xc9, 0xd4, 0x96, 0x39, 0x72, 0x46, 0x08, 0xcd, 0xe5, 0x3a, 0x9d, 0xe7, 0x33, 0x6f, 0x57, 0x42, 0xc7, 0x63, 0xc1, 0xe0, 0xf9, 0x9c, 0x0b, 0xc3, 0xea, 0xaa, 0x3e, 0x2c, 0xd6, 0x64, 0x64, 0xcf, 0x68, 0x05, 0x83, 0x9f, 0x7d, 0x6a, 0x0c, 0x0b, 0x83, 0xdd, 0x86, 0x07, 0x82, 0xd6, 0x83, 0x0c, 0x0d, 0x43, 0xdd, 0xb3, 0x78, 0x9f, 0x94, 0xd2, 0xf1, 0xb0, 0xce, 0x34, 0x46, 0x6d, 0x04, 0x96, 0xe7, 0x3d, 0xf4, 0xfa, 0x4b, 0xef, 0xde, 0xc0, 0xb5, 0xff, 0x21, 0xed, 0x6a, 0x21, 0xed, 0x0d, 0xe1, 0x70, 0x43, 0x54, 0xbf, 0x8b, 0x8e, 0x94, 0x2d, 0xb3, 0xb4, 0x55, 0xea, 0xd1, 0x66, 0xc6, 0xd6, 0x51, 0x13, 0xbf, 0x0d, 0x51, 0x67, 0xa3, 0x78, 0xbb, 0xd8, 0x95, 0x86, 0xcb, 0xaf, 0x71, 0x89, 0x81, 0x1c, 0xb3, 0xbc, 0xae, 0x3c, 0x41, 0x65, 0x6c, 0x60, 0x39, 0x31, 0x19, 0xb0, 0x13, 0xce, 0x32, 0x97, 0xd2, 0xc1, 0x4b, 0xf0, 0xe0, 0x65, 0x5c, 0x07, 0x6e, 0xcd, 0xa3, 0xb0, 0xef, 0x73, 0xd2, 0xaf, 0x5a, 0x74, 0xdf, 0xbd, 0x7b, 0xfd, 0x67, 0x3d, 0x9a, 0x6d, 0x9d, 0x5e, 0xd0, 0x0c, 0xad, 0x3d, 0xdd, 0x49, 0xe6, 0xa5, 0xc3, 0x0a, 0x0e, 0x4a, 0x6b, 0xd7, 0xf9, 0x5f, 0x82, 0x64, 0x10, 0xe2, 0xe4, 0x33, 0x9e, 0x77, 0xb2, 0x45, 0xb1, 0x66, 0xf3, 0xdc, 0x58, 0xfc, 0x1a, 0x8f, 0x46, 0x4f, 0xe0, 0x16, 0x7c, 0xfd, 0xf2, 0xc9, 0xa3, 0xfd, 0xbd, 0xed, 0x51, 0xb2, 0xd5, 0x91, 0x6e, 0xdb, 0x9f, 0x3d, 0x68, 0xb7, 0xed, 0x79, 0x67, 0xb7, 0x4b, 0x22, 0xdd, 0xad, 0xa3, 0x1f, 0xce, 0xde, 0x06, 0x6b, 0x34, 0x6b, 0x0a, 0xb2, 0x09, 0xfa, 0xd6, 0xe8, 0xf4, 0xe6, 0xd6, 0xf8, 0x9a, 0xd7, 0x8b, 0x6e, 0xed, 0x91, 0x78, 0xfd, 0xeb, 0x2a, 0x27, 0x63, 0x6f, 0x83, 0xb6, 0x64, 0xe3, 0xa4, 0x2c, 0x66, 0xc6, 0x58, 0x3a, 0x25, 0xa0, 0xca, 0x6c, 0xc3, 0xdc, 0x82, 0x7b, 0x57, 0xd7, 0xcf, 0xd6, 0xdf, 0x0c, 0x70, 0x55, 0x8a, 0x30, 0xcd, 0xeb, 0x0d, 0x7e, 0x08, 0x4c, 0x70, 0x02, 0xf8, 0xe1, 0x32, 0xab, 0x95, 0x14, 0xa6, 0xa3, 0x43, 0x5a, 0xfb, 0xb6, 0xdd, 0xa2, 0x2b, 0x17, 0xdc, 0x9e, 0x2f, 0x10, 0xd5, 0x79, 0x60, 0x40, 0x10, 0x6f, 0x6c, 0x69, 0x70, 0x6b, 0xdb, 0x6b, 0x36, 0x0d, 0x04, 0x5b, 0x0e, 0xf8, 0x91, 0x5d, 0x13, 0xd1, 0x11, 0xf0, 0x98, 0x33, 0xae, 0x73, 0x5b, 0x1a, 0x22, 0x88, 0x02, 0x94, 0xf9, 0x4e, 0x88, 0x28, 0x83, 0x36, 0x84, 0x67, 0x2c, 0x10, 0x84, 0x3c, 0x1a, 0xee, 0x39, 0x59, 0xb4, 0xd1, 0x8e, 0xc1, 0xad, 0xc0, 0x58, 0xb3, 0x5b, 0x4a, 0x46, 0x26, 0x83, 0xea, 0x69, 0x68, 0x0a, 0x1c, 0xca, 0x52, 0xd4, 0xf2, 0x61, 0x5f, 0xab, 0x6a, 0x5b, 0x50, 0x2a, 0x25, 0x6b, 0x74, 0xe0, 0xc5, 0xe2, 0x5c, 0x28, 0x2e, 0xc6, 0x46, 0x39, 0x30, 0xc7, 0x1b, 0x26, 0x9e, 0x4d, 0x74, 0x5e, 0xa7, 0xe0, 0x9c, 0x44, 0xdb, 0x10, 0x8d, 0xc3, 0x4d, 0xa1, 0x78, 0x5c, 0x6f, 0xac, 0xcd, 0x8b, 0xcf, 0xf5, 0x05, 0xe8, 0xf2, 0x66, 0x4d, 0x44, 0xae, 0xeb, 0x87, 0xb1, 0xf1, 0xb9, 0x16, 0xf1, 0x3d, 0xf9, 0x3c, 0x42, 0x7c, 0x6f, 0x4f, 0xcf, 0x8f, 0x0e, 0x04, 0xe7, 0x4e, 0x01, 0xa1, 0x72, 0x01, 0x65, 0xe1, 0xfc, 0x4c, 0xaa, 0x78, 0x2a, 0xa4, 0xf2, 0x96, 0x94, 0x42, 0x3d, 0xf5, 0x41, 0xec, 0xca, 0xa3, 0x50, 0x82, 0xae, 0x09, 0x87, 0x3b, 0x9a, 0x20, 0x83, 0x4f, 0x73, 0xf6, 0x00, 0x78, 0x21, 0x76, 0x34, 0xd3, 0x13, 0x9d, 0x7f, 0x08, 0x0f, 0x04, 0x0c, 0x19, 0xc0, 0xb2, 0xb0, 0x7e, 0x18, 0x90, 0x90, 0x84, 0xd0, 0xe1, 0x74, 0xb0, 0x51, 0x86, 0x29, 0xb5, 0x14, 0x0e, 0x3b, 0xe1, 0x22, 0x4c, 0x4d, 0xf1, 0x19, 0xee, 0xb9, 0xa9, 0x50, 0xbc, 0x17, 0xb1, 0xe6, 0x84, 0x9e, 0x4a, 0xe6, 0xa2, 0xe9, 0xdd, 0x4b, 0x25, 0x1e, 0x0a, 0x72, 0x85, 0xf7, 0x40, 0x60, 0xb1, 0x33, 0xdc, 0xde, 0x27, 0xa5, 0x13, 0x73, 0x8f, 0xd4, 0x57, 0x41, 0xae, 0x15, 0x6b, 0xc2, 0x0b, 0x90, 0x53, 0x98, 0xc3, 0x01, 0x16, 0xd8, 0xf6, 0x0d, 0x3a, 0xaf, 0x93, 0x9a, 0x17, 0xc8, 0x5e, 0xcb, 0x50, 0x9d, 0xc8, 0xf5, 0x99, 0xdc, 0x0b, 0x39, 0x0e, 0x47, 0xec, 0x03, 0x6d, 0x88, 0x11, 0x48, 0xa2, 0x6f, 0x6a, 0x14, 0x4d, 0xbf, 0x0c, 0x07, 0xf2, 0x1d, 0x1e, 0x1d, 0xa4, 0xba, 0xc1, 0xde, 0x7d, 0xb2, 0xdb, 0xe3, 0xd0, 0x61, 0x13, 0x8d, 0x96, 0xdc, 0x49, 0xf6, 0x18, 0xee, 0x41, 0xb0, 0x4a, 0xe8, 0x7d, 0x55, 0x28, 0xa6, 0xe1, 0xa7, 0x8b, 0xb3, 0x2e, 0x06, 0x72, 0x46, 0x6b, 0x93, 0x79, 0xdf, 0xc8, 0xc1, 0xe0, 0xa1, 0xbc, 0xd0, 0x3c, 0x4d, 0xd6, 0xec, 0x81, 0x79, 0x34, 0x57, 0xe4, 0x66, 0x73, 0x33, 0x4b, 0xf4, 0x44, 0xb6, 0x19, 0x20, 0xa1, 0xb3, 0x99, 0xfc, 0x74, 0xa3, 0x24, 0xf1, 0x41, 0xf8, 0x28, 0x9c, 0x45, 0xb7, 0x42, 0x0e, 0x86, 0x76, 0x1d, 0x6e, 0xe7, 0x09, 0x81, 0x58, 0x24, 0x7f, 0x2d, 0x27, 0xe2, 0x89, 0x24, 0x3d, 0x35, 0x06, 0x67, 0x75, 0x81, 0x12, 0x92, 0x95, 0xa1, 0xb2, 0xd9, 0x8a, 0xa3, 0x0b, 0x34, 0x21, 0x29, 0x47, 0xe0, 0xfe, 0xe7, 0x14, 0xf5, 0x4b, 0x2e, 0xb9, 0xe9, 0x0e, 0xf2, 0xa1, 0x15, 0x8d, 0x21, 0x2c, 0xf9, 0xdf, 0xef, 0x82, 0x16, 0xa5, 0x53, 0x72, 0x0a, 0x9a, 0xc1, 0x05, 0x1f, 0x84, 0x61, 0x27, 0x5d, 0xdd, 0x46, 0x3a, 0x6d, 0x56, 0xb2, 0xf1, 0xdd, 0xd9, 0x95, 0x1a, 0x27, 0x30, 0xef, 0xa2, 0x19, 0x02, 0x92, 0xf1, 0xa6, 0x86, 0xf2, 0xd2, 0xe9, 0x9d, 0xea, 0x0b, 0x4e, 0xb8, 0x0a, 0xaa, 0xa9, 0x6b, 0x9d, 0x10, 0x16, 0x3a, 0xeb, 0x24, 0x28, 0xe4, 0x9f, 0xd7, 0xbf, 0xbc, 0x65, 0xd1, 0xc3, 0xed, 0x6a, 0xbf, 0xf1, 0x1c, 0x47, 0x5e, 0x14, 0x7d, 0xb5, 0x75, 0xd5, 0xb3, 0x26, 0xa5, 0x5d, 0xbe, 0x1f, 0x8c, 0xa6, 0xe5, 0x30, 0xe3, 0xe0, 0xb8, 0xb5, 0x00, 0x90, 0x0d, 0xa2, 0x4d, 0xd7, 0x8e, 0x43, 0x3d, 0xe2, 0x8d, 0x7c, 0x85, 0xf9, 0xe1, 0x16, 0x98, 0x95, 0x2b, 0xaa, 0xa6, 0x61, 0x1e, 0x73, 0xda, 0x64, 0xf2, 0xe4, 0xf3, 0x27, 0x8f, 0xb7, 0x93, 0x4e, 0x32, 0xee, 0x76, 0xc4, 0xf2, 0xe0, 0x1b, 0xb7, 0xaa, 0x6d, 0x91, 0xe0, 0x22, 0x87, 0x91, 0x02, 0xbd, 0x46, 0x2c, 0x92, 0x9c, 0x9b, 0xc7, 0x91, 0xc9, 0x80, 0x0e, 0x8c, 0xcc, 0x94, 0x83, 0x24, 0x1a, 0xfa, 0x18, 0x5b, 0x38, 0xc9, 0x16, 0x38, 0x7c, 0x5a, 0x3b, 0xe6, 0xed, 0xca, 0xe3, 0xb8, 0xde, 0x18, 0x4a, 0x9a, 0xe6, 0x7f, 0x6e, 0x03, 0xc6, 0x21, 0xea, 0x6e, 0x65, 0x9f, 0x33, 0x34, 0x55, 0x51, 0x3d, 0x8c, 0x94, 0xb8, 0xb2, 0x9d, 0xf4, 0x68, 0x68, 0xf6, 0x2a, 0x72, 0x81, 0x23, 0x0b, 0x9e, 0x18, 0x5a, 0x3b, 0xe0, 0x56, 0x18, 0xd6, 0xa6, 0xb3, 0x8f, 0x0c, 0xff, 0x0b, 0x04, 0x12, 0x79, 0x5f, 0xb2, 0x04, 0xe5, 0x4c, 0xa2, 0xe0, 0x18, 0x8b, 0x6c, 0xa1, 0x2d, 0xd2, 0x58, 0xf5, 0x28, 0x2b, 0x57, 0x9f, 0xce, 0x81, 0x4a, 0x16, 0x97, 0x48, 0x9a, 0xef, 0x43, 0x9f, 0x52, 0xb7, 0x5d, 0xaa, 0x48, 0x39, 0xad, 0x99, 0xf5, 0x16, 0x79, 0x29, 0xb5, 0x29, 0x1e, 0x55, 0xb7, 0xb6, 0x4b, 0xff, 0x6e, 0xa9, 0x32, 0x2c, 0xeb, 0xe4, 0xaf, 0x76, 0x36, 0xa2, 0x67, 0xf6, 0xb0, 0xa4, 0x18, 0x39, 0x12, 0xbe, 0xbf, 0xb0, 0x43, 0xf2, 0x3c, 0xd9, 0xc2, 0x84, 0x77, 0x76, 0xb6, 0xef, 0x9f, 0xb4, 0x3c, 0x79, 0xdf, 0x24, 0xcf, 0xd8, 0x11, 0xe7, 0x35, 0x55, 0xb9, 0xf0, 0xe6, 0x40, 0xdf, 0xf4, 0x30, 0x63, 0x06, 0x4c, 0x91, 0x92, 0x6d, 0x49, 0x0e, 0xf3, 0xbb, 0x48, 0x05, 0x19, 0x22, 0xab, 0xa9, 0x2c, 0xb0, 0xbd, 0x76, 0x71, 0xd3, 0x30, 0xa6, 0xa5, 0xb0, 0x10, 0x4a, 0x0f, 0x04, 0xc8, 0xe0, 0xa1, 0x21, 0xc2, 0x50, 0xdf, 0x74, 0xd3, 0xf2, 0x16, 0x07, 0x97, 0x4c, 0x27, 0xda, 0x84, 0x5b, 0xa8, 0x3e, 0x33, 0x8e, 0x4b, 0x45, 0x0a, 0x84, 0xf4, 0x69, 0x9b, 0x64, 0x0c, 0xa7, 0x41, 0x04, 0x17, 0x9c, 0x9f, 0x74, 0x3d, 0xa2, 0x23, 0x0d, 0x45, 0x5a, 0x21, 0x04, 0x1e, 0xd0, 0x70, 0xd4, 0x8f, 0x6e, 0xcd, 0x0c, 0xca, 0xed, 0x07, 0x41, 0x5c, 0xc1, 0x71, 0x5a, 0x85, 0xa1, 0x27, 0xcc, 0xcd, 0xd2, 0x37, 0x76, 0x8c, 0x11, 0xa9, 0x26, 0xfc, 0xd3, 0xd6, 0x66, 0x0e, 0xf8, 0x8e, 0x02, 0x0d, 0x2a, 0xa6, 0xab, 0xa3, 0x75, 0x68, 0x08, 0x67, 0x62, 0xf7, 0x70, 0x6d, 0x1a, 0xaa, 0xcd, 0x43, 0xe5, 0xa0, 0x08, 0x67, 0xa2, 0x86, 0x72, 0x56, 0x7d, 0xc3, 0x3a, 0x68, 0xdb, 0x37, 0xf6, 0xac, 0xed, 0x6b, 0xb0, 0xd0, 0x2c, 0x3d, 0x20, 0xa5, 0x48, 0x41, 0xae, 0x93, 0xb7, 0xfa, 0x58, 0xb2, 0x35, 0x3e, 0x7b, 0x7b, 0xf4, 0xf5, 0xe9, 0xf6, 0x7d, 0x3e, 0xf5, 0x36, 0xff, 0xb7, 0xeb, 0x4a, 0x35, 0x57, 0x5e, 0xa6, 0x0f, 0xeb, 0xe4, 0xeb, 0xf1, 0x78, 0x78, 0x78, 0x76, 0x8c, 0x3e, 0xaf, 0x63, 0xf3, 0x67, 0x4f, 0x43, 0x82, 0x11, 0xda, 0x61, 0x0c, 0xbf, 0x93, 0x02, 0xea, 0x5a, 0xd4, 0x8c, 0x04, 0x1e, 0x6b, 0x24, 0x67, 0x41, 0x79, 0x10, 0xf5, 0xce, 0x82, 0xdb, 0x60, 0xf8, 0xae, 0xc9, 0x73, 0x76, 0xbc, 0x83, 0x4f, 0xd1, 0x27, 0xb1, 0xa0, 0x1e, 0xf7, 0xc1, 0x2a, 0xec, 0xf2, 0x4a, 0x9a, 0x0f, 0x12, 0xad, 0xc1, 0xa0, 0xb5, 0x22, 0xc2, 0x58, 0x7e, 0x24, 0x4e, 0x5c, 0xd4, 0x3a, 0x5e, 0x7f, 0x46, 0xae, 0x5b, 0x2a, 0x30, 0x52, 0xe4, 0xe0, 0x8e, 0xab, 0x18, 0x26, 0x1a, 0xe3, 0x43, 0xce, 0xa9, 0x8b, 0xc3, 0x58, 0x13, 0x1f, 0xbb, 0x4e, 0x91, 0xcd, 0xe1, 0x2a, 0x49, 0x0e, 0x36, 0x39, 0xc9, 0x3a, 0x2b, 0xca, 0xd5, 0xe5, 0x15, 0x1b, 0x58, 0x6d, 0x3f, 0x44, 0xab, 0xdd, 0xb3, 0x6d, 0x60, 0x62, 0x26, 0x19, 0x90, 0x20, 0xde, 0x51, 0xbd, 0xa7, 0xca, 0x28, 0x42, 0xca, 0xea, 0x0d, 0xa7, 0xbf, 0xcd, 0x7e, 0x93, 0x06, 0x89, 0x6b, 0x34, 0x90, 0x09, 0x67, 0x0f, 0xc0, 0xed, 0x5b, 0x34, 0xf3, 0x85, 0xfc, 0x35, 0x2d, 0xee, 0xe0, 0xde, 0x97, 0x60, 0x17, 0x8a, 0xa0, 0x2d, 0x4d, 0xb7, 0x09, 0xbd, 0xa9, 0xa6, 0x30, 0xf4, 0x39, 0x0f, 0x9b, 0xab, 0x9f, 0xd7, 0xd1, 0x2c, 0xa9, 0xf4, 0x46, 0x13, 0x37, 0x46, 0x15, 0x94, 0xf4, 0x62, 0xa0, 0xa3, 0x0c, 0x8c, 0x39, 0x2c, 0xd1, 0x62, 0x51, 0x84, 0x85, 0x08, 0x22, 0xac, 0x08, 0x7d, 0x50, 0xb7, 0xd2, 0x49, 0x5d, 0xce, 0x57, 0x0d, 0x74, 0x01, 0x72, 0xe2, 0x53, 0x85, 0xd9, 0xb6, 0xeb, 0x23, 0x8f, 0x51, 0x35, 0xd3, 0x99, 0xc3, 0x46, 0x11, 0xf7, 0xa4, 0x6b, 0xd2, 0x3b, 0x72, 0x21, 0x2b, 0x0e, 0xa7, 0x8b, 0x7f, 0x82, 0x76, 0x96, 0xc7, 0xc2, 0x50, 0x4b, 0xe4, 0xe6, 0x5d, 0x2b, 0xe0, 0x61, 0x78, 0x7e, 0x7a, 0x56, 0xad, 0xdd, 0xd1, 0x68, 0x10, 0xb1, 0xee, 0x56, 0xb5, 0x86, 0xd3, 0x1a, 0x63, 0x9c, 0xad, 0x37, 0x5d, 0x5f, 0xf3, 0x65, 0x26, 0x74, 0x4b, 0x26, 0x77, 0xf6, 0x63, 0xfc, 0x9d, 0x14, 0xf9, 0x6c, 0x56, 0x11, 0x7e, 0x28, 0xbe, 0x98, 0x3b, 0x8c, 0xd1, 0xba, 0x8c, 0xac, 0xf6, 0x97, 0x3a, 0x43, 0x7f, 0x47, 0x10, 0x0a, 0xf6, 0x88, 0x71, 0x1a, 0xad, 0x43, 0xee, 0xa0, 0xdf, 0x88, 0xaf, 0x81, 0x36, 0x62, 0x84, 0x27, 0x02, 0x02, 0xa6, 0x6c, 0x12, 0xbb, 0x2a, 0x55, 0x8f, 0xc8, 0xdf, 0x96, 0x72, 0x4f, 0x59, 0x7e, 0xd9, 0xfb, 0x86, 0xad, 0x87, 0x2b, 0xd7, 0xb7, 0x7d, 0x76, 0xa7, 0x33, 0x7a, 0xc0, 0x86, 0xb8, 0xf5, 0xbb, 0x1f, 0x06, 0x96, 0x9d, 0x4d, 0x99, 0xa8, 0xa7, 0x82, 0x60, 0x39, 0x12, 0x2a, 0xdc, 0xfa, 0x20, 0x7f, 0xa1, 0x3b, 0xf0, 0x7d, 0x5e, 0x18, 0xcd, 0xb0, 0xde, 0x56, 0xe2, 0x94, 0x0c, 0xcd, 0xf0, 0xee, 0x56, 0x9b, 0xd4, 0xd7, 0xd8, 0x70, 0x1c, 0x97, 0xad, 0x4a, 0x8a, 0x33, 0x07, 0x18, 0x03, 0x56, 0xe4, 0x75, 0xf7, 0xbd, 0x5b, 0x06, 0x45, 0x64, 0x53, 0xcb, 0x74, 0x30, 0x06, 0xe0, 0xbb, 0x8d, 0x59, 0x50, 0xe4, 0xb7, 0x2e, 0xcb, 0xc5, 0x42, 0x10, 0xfa, 0x81, 0x7f, 0xc3, 0x08, 0x49, 0x5c, 0x45, 0x66, 0x17, 0x84, 0x5c, 0x69, 0x77, 0xb1, 0xce, 0xad, 0x27, 0xdb, 0xc9, 0x45, 0xb3, 0xdc, 0xda, 0xdb, 0xe6, 0x5e, 0x0e, 0x8c, 0xcf, 0xe0, 0x77, 0xf6, 0x0d, 0xbd, 0x38, 0x94, 0x60, 0x9b, 0xbc, 0xb4, 0x9f, 0x45, 0xec, 0x9f, 0x50, 0x0d, 0x51, 0xc9, 0x7a, 0x21, 0x37, 0x98, 0x37, 0xcc, 0x36, 0xd9, 0xb1, 0x75, 0xc2, 0x5d, 0xef, 0x00, 0x52, 0xdf, 0x96, 0x84, 0x6f, 0x8c, 0x0a, 0x5f, 0x63, 0x41, 0xe4, 0x8d, 0x8f, 0x24, 0x4d, 0x3d, 0x33, 0xb8, 0xfc, 0xdf, 0xec, 0xdc, 0x7c, 0x36, 0x24, 0x1e, 0x72, 0x59, 0x95, 0x46, 0x44, 0x56, 0x11, 0x10, 0x58, 0xb1, 0x29, 0xce, 0x51, 0x83, 0x76, 0x9d, 0x57, 0x65, 0x01, 0xa4, 0xdd, 0xeb, 0xb4, 0xca, 0x91, 0xed, 0xb2, 0xf1, 0xcd, 0xe9, 0x9b, 0xa3, 0x0d, 0xdf, 0x29, 0x72, 0x91, 0x6b, 0x19, 0xed, 0x55, 0xd8, 0x4a, 0xc0, 0x9e, 0x66, 0xcc, 0x69, 0x68, 0x44, 0xfa, 0xf4, 0xa3, 0x62, 0x68, 0xdc, 0x31, 0x5e, 0x62, 0x66, 0x0b, 0xcc, 0x8d, 0x2a, 0x29, 0x89, 0x30, 0xd2, 0x5c, 0x54, 0x29, 0x0c, 0x99, 0x70, 0xb1, 0x16, 0x50, 0x6a, 0x1a, 0xa2, 0x0d, 0x54, 0xe9, 0xb7, 0xb7, 0x4c, 0xbc, 0x16, 0x98, 0xa4, 0xe6, 0x6b, 0x7d, 0x9a, 0x73, 0xb1, 0x77, 0xc5, 0xe3, 0xe2, 0x8e, 0x2c, 0x9b, 0xcd, 0xb6, 0x00, 0xdc, 0xac, 0xc9, 0x18, 0x6f, 0x36, 0x75, 0x7b, 0x91, 0x33, 0xed, 0x78, 0x7c, 0xd8, 0x76, 0xbc, 0xe7, 0xeb, 0x4c, 0xd5, 0xfc, 0x09, 0x37, 0x3a, 0x0f, 0xee, 0x6e, 0xdf, 0x01, 0xdf, 0xbe, 0xdb, 0x26, 0x0a, 0x12, 0xe6, 0x57, 0x8d, 0xa4, 0xae, 0x4c, 0xb2, 0xdd, 0xb4, 0xbc, 0x9d, 0xc1, 0x42, 0x9d, 0x56, 0x42, 0xaf, 0xa2, 0xf9, 0x7c, 0x39, 0xcd, 0xfd, 0x34, 0x91, 0x00, 0xf5, 0x5c, 0xb5, 0xa4, 0xc2, 0xeb, 0xd1, 0x83, 0xd1, 0x7a, 0x51, 0x77, 0x8d, 0xe0, 0x46, 0x2e, 0xa1, 0x46, 0xe5, 0xf2, 0x8a, 0x80, 0xac, 0x5c, 0xd6, 0x83, 0x7c, 0x69, 0xe0, 0x43, 0x0a, 0x0c, 0x7a, 0x70, 0xb8, 0x5d, 0x3e, 0x96, 0xd5, 0x4b, 0x18, 0x88, 0x9a, 0xa1, 0x8c, 0x6d, 0xa6, 0x8c, 0xa2, 0x39, 0x87, 0xfa, 0xb1, 0xdd, 0x49, 0x75, 0x6c, 0xa3, 0x6c, 0xcf, 0xfc, 0x8d, 0xcd, 0x19, 0x8b, 0x22, 0x0b, 0xab, 0x9e, 0x15, 0x0e, 0xea, 0xc1, 0xa3, 0x38, 0xf3, 0x51, 0xeb, 0xda, 0xde, 0x47, 0xb3, 0x34, 0x69, 0x27, 0x52, 0xaf, 0xaa, 0x6b, 0x94, 0x7e, 0x4b, 0x13, 0x3a, 0xce, 0x8f, 0x77, 0xe7, 0x21, 0xe7, 0x10, 0x91, 0xf2, 0xde, 0x0c, 0x29, 0x77, 0xb9, 0x12, 0x78, 0xb8, 0xe4, 0x6b, 0x9e, 0x85, 0x9d, 0xa0, 0xb5, 0x74, 0x08, 0x05, 0x88, 0xb5, 0xd8, 0xa0, 0x52, 0xa5, 0xac, 0x01, 0x1e, 0xdd, 0x54, 0xe9, 0xd4, 0xfd, 0x65, 0x98, 0xd6, 0xd3, 0x3c, 0xd7, 0xa6, 0x66, 0x14, 0x1f, 0xcc, 0x28, 0x27, 0x3c, 0x0e, 0x12, 0x65, 0xcf, 0xc3, 0xf6, 0x13, 0x9a, 0x71, 0x4f, 0x1b, 0xc9, 0xd0, 0x4a, 0xb9, 0xdb, 0x25, 0xa5, 0x29, 0xa1, 0x42, 0x54, 0x82, 0x87, 0xb1, 0x3e, 0x6f, 0x8a, 0xd4, 0xdb, 0x63, 0xda, 0x1a, 0xeb, 0x7b, 0xcf, 0x37, 0xbf, 0x75, 0x13, 0x86, 0x04, 0xd5, 0x56, 0x37, 0x6c, 0x4a, 0xde, 0xdc, 0xec, 0xfb, 0xcf, 0xac, 0xcb, 0xde, 0xe8, 0x20, 0x83, 0x15, 0xe5, 0x30, 0x9d, 0x2f, 0xa3, 0x79, 0x9e, 0xe3, 0xed, 0x56, 0xcb, 0xd7, 0xc3, 0x93, 0xb3, 0xb7, 0x00, 0x8d, 0xa4, 0xee, 0x01, 0x45, 0xcd, 0x59, 0x35, 0xf4, 0x33, 0xaa, 0xe3, 0x28, 0x18, 0x5b, 0x15, 0xf9, 0x55, 0xb3, 0x10, 0x63, 0x80, 0x63, 0xe3, 0x64, 0x3e, 0xc4, 0xec, 0x2b, 0xce, 0x6c, 0x2b, 0x12, 0xaf, 0xcc, 0x97, 0x19, 0xbc, 0xda, 0x17, 0xdd, 0xe5, 0x98, 0xaf, 0xba, 0x6f, 0x6b, 0xa3, 0x11, 0x5b, 0x8c, 0xd7, 0x7e, 0xd7, 0xe2, 0x66, 0x96, 0x0a, 0x92, 0x19, 0xf0, 0xf3, 0x26, 0xb3, 0xe8, 0x9c, 0x62, 0xd7, 0xd9, 0x48, 0xb9, 0x78, 0x95, 0x24, 0xa9, 0x08, 0xe8, 0x2d, 0x8a, 0x13, 0x11, 0x57, 0x27, 0x6c, 0x1a, 0xa3, 0xd9, 0xd8, 0x62, 0x59, 0x74, 0x41, 0xe7, 0x64, 0xbb, 0xa3, 0x46, 0x68, 0x80, 0x80, 0xf8, 0x90, 0xda, 0x48, 0x3a, 0x91, 0xd1, 0x9a, 0x03, 0x7e, 0x3b, 0xe0, 0xaf, 0x4e, 0x56, 0xc4, 0x21, 0x3a, 0x5f, 0x90, 0xe3, 0x65, 0xa5, 0x89, 0x9f, 0xa0, 0xef, 0x89, 0xfb, 0x8b, 0x11, 0xc5, 0xa8, 0x92, 0x39, 0x4b, 0x17, 0xd4, 0xeb, 0x53, 0xab, 0x65, 0xc8, 0xf3, 0x4b, 0x59, 0xcd, 0xdd, 0x09, 0xaf, 0x52, 0xe1, 0x58, 0x2d, 0x58, 0xff, 0x4e, 0x11, 0x0d, 0x7f, 0x86, 0x38, 0xa9, 0x3f, 0x7c, 0xac, 0x30, 0x12, 0xaf, 0x83, 0x87, 0x20, 0x1b, 0x80, 0xe3, 0x36, 0xda, 0x00, 0x97, 0xd1, 0xf3, 0x79, 0x08, 0x6d, 0x54, 0x8a, 0x06, 0x6e, 0x57, 0xab, 0xe2, 0xa3, 0x99, 0x42, 0x88, 0x09, 0xa0, 0x19, 0xef, 0xd4, 0x02, 0x86, 0xfb, 0x46, 0xd3, 0x5f, 0x2c, 0xc4, 0x07, 0x8f, 0x40, 0xc0, 0xfd, 0xd7, 0xe4, 0xc8, 0x13, 0x24, 0xfb, 0x7e, 0x68, 0x46, 0xf6, 0x3c, 0xdb, 0xfb, 0x61, 0x66, 0x65, 0x37, 0x30, 0x5a, 0xd3, 0xa1, 0x27, 0x2d, 0x3a, 0x19, 0x12, 0x8b, 0x2f, 0x3d, 0x91, 0x22, 0x51, 0x6c, 0x45, 0x51, 0x43, 0x59, 0x1e, 0x59, 0x20, 0xc4, 0x5c, 0x02, 0x76, 0xb8, 0xaa, 0xb9, 0x14, 0x52, 0x8e, 0x95, 0xe8, 0xc1, 0x6f, 0xc1, 0x16, 0x99, 0x49, 0x1b, 0xa0, 0xa2, 0x8f, 0x0e, 0xda, 0x6d, 0xa0, 0x1d, 0x9e, 0x85, 0x64, 0x4e, 0x59, 0x9d, 0x8d, 0xba, 0x23, 0xfb, 0xdd, 0x59, 0x23, 0x7c, 0xcb, 0xe5, 0x29, 0x66, 0x85, 0x25, 0xb2, 0x45, 0x14, 0x7d, 0xf9, 0x93, 0xef, 0x92, 0x5b, 0x88, 0xb7, 0x51, 0xf6, 0x87, 0x9d, 0x4d, 0x2a, 0x1e, 0xc4, 0x0d, 0xdf, 0x86, 0xcc, 0xf0, 0x6d, 0x9b, 0x17, 0xba, 0x95, 0x06, 0x60, 0x02, 0x91, 0x1b, 0x7d, 0x2f, 0x0f, 0xa4, 0xe1, 0xa9, 0xca, 0xe4, 0xec, 0x6d, 0x08, 0x75, 0x20, 0xee, 0x3f, 0x62, 0xbe, 0xf7, 0x73, 0x41, 0x6b, 0xba, 0xcb, 0xcf, 0x7a, 0x5c, 0x5b, 0xbf, 0x9c, 0x05, 0xaa, 0x45, 0x25, 0xac, 0x2e, 0xe4, 0x80, 0x45, 0xc0, 0x00, 0x85, 0xee, 0x3e, 0x0d, 0x0b, 0xa4, 0x4f, 0x1a, 0x2b, 0xfb, 0x92, 0xb2, 0x52, 0xc8, 0x0d, 0x18, 0xb0, 0xc1, 0x53, 0xeb, 0x37, 0xe2, 0x82, 0x33, 0xdb, 0x6a, 0x50, 0xdf, 0x4a, 0xf0, 0x96, 0xb2, 0x1b, 0x45, 0x8b, 0x5e, 0xac, 0x10, 0x4d, 0x0b, 0x0a, 0x48, 0x1c, 0xe5, 0xa7, 0x0c, 0x75, 0x63, 0x1e, 0xba, 0x49, 0xab, 0x82, 0xf3, 0x63, 0x66, 0x7e, 0xde, 0xa8, 0x61, 0xa6, 0xf6, 0x6a, 0xcd, 0xb9, 0x1a, 0xa6, 0x0e, 0xfd, 0x46, 0x75, 0x8e, 0xa2, 0xf0, 0xa8, 0x09, 0x8b, 0x4b, 0x63, 0x37, 0x91, 0x2b, 0xdc, 0x7a, 0xef, 0x8d, 0x7f, 0x6d, 0xc4, 0xbb, 0xd1, 0x7f, 0x69, 0xda, 0x5b, 0xc6, 0x37, 0xc7, 0x92, 0x7f, 0x67, 0x67, 0x00, 0xd6, 0xf1, 0x40, 0x40, 0x46, 0x26, 0x88, 0x7a, 0x60, 0x17, 0xd6, 0x46, 0x2e, 0x7d, 0x16, 0x9c, 0x9d, 0x10, 0x5b, 0x3e, 0x8b, 0x42, 0xd0, 0xe8, 0xa5, 0x94, 0xa6, 0xd6, 0x12, 0x6b, 0xa2, 0x6b, 0xa4, 0xd8, 0x57, 0xc7, 0xaf, 0xcc, 0x42, 0xc9, 0xca, 0xb8, 0x34, 0xf7, 0xe7, 0xab, 0xbb, 0xa4, 0xe7, 0x5a, 0x92, 0xb2, 0xeb, 0xe2, 0xf1, 0xf0, 0xcd, 0x10, 0xc0, 0xaf, 0x0f, 0x4c, 0x48, 0x38, 0xa5, 0x5e, 0x23, 0x47, 0xc9, 0x95, 0x90, 0x1e, 0x5a, 0x71, 0x57, 0x12, 0x99, 0x02, 0xc0, 0x0a, 0xb8, 0x5a, 0x19, 0x4a, 0x25, 0x35, 0x85, 0x3b, 0xde, 0x71, 0x0a, 0x7a, 0x49, 0xe6, 0x01, 0xd8, 0x2d, 0x4d, 0xd8, 0x9b, 0x71, 0x40, 0x05, 0x1c, 0x80, 0xa8, 0x33, 0xc3, 0x42, 0xb9, 0xd4, 0x71, 0x52, 0x95, 0x1f, 0x33, 0xe6, 0x17, 0x30, 0x0a, 0x01, 0x1d, 0xc7, 0x3a, 0xb0, 0xf8, 0xd1, 0x8d, 0x84, 0xe2, 0xae, 0x36, 0x94, 0x6b, 0x12, 0x04, 0xcc, 0xb9, 0xc7, 0xae, 0x60, 0xce, 0x38, 0x39, 0x96, 0xe3, 0x75, 0x80, 0xbd, 0x68, 0x23, 0x1a, 0xbe, 0x6a, 0x53, 0x4a, 0x21, 0xfc, 0x0d, 0x79, 0xb6, 0x3d, 0x75, 0x9f, 0x67, 0x47, 0x8e, 0xf4, 0xe1, 0x9d, 0x73, 0x0d, 0x2d, 0xc1, 0x79, 0x99, 0xbc, 0x60, 0x86, 0x70, 0x7b, 0x87, 0x3a, 0xe8, 0xae, 0x87, 0x12, 0xdd, 0x9f, 0x87, 0x6a, 0x2d, 0xce, 0x12, 0xc9, 0xc1, 0x82, 0xad, 0x4d, 0x36, 0x14, 0xe7, 0x60, 0xce, 0x1c, 0x80, 0xb5, 0xf4, 0x80, 0x01, 0xe0, 0x4e, 0x88, 0x08, 0x4d, 0x2e, 0x4e, 0xeb, 0x7a, 0xe3, 0x6c, 0x51, 0x98, 0x4f, 0x74, 0x3a, 0xc0, 0x1d, 0x43, 0xc7, 0x06, 0xb1, 0x0f, 0xfe, 0x9d, 0xf2, 0x45, 0x8d, 0x31, 0xd2, 0x50, 0x0a, 0x1f, 0x7f, 0x29, 0x30, 0x17, 0xb8, 0x1b, 0xaa, 0x2d, 0x74, 0x63, 0x40, 0x1c, 0x0b, 0xaa, 0x45, 0xfd, 0x13, 0x7c, 0xad, 0x8e, 0xdb, 0xd3, 0x24, 0x47, 0x64, 0x69, 0x46, 0x8c, 0x78, 0xc5, 0x10, 0xc2, 0x1a, 0x73, 0x69, 0x6d, 0xc1, 0xd9, 0x76, 0xe2, 0x11, 0x49, 0x35, 0x8d, 0x4e, 0x16, 0xde, 0x86, 0xfa, 0x8c, 0x74, 0x6c, 0x91, 0x64, 0x35, 0x34, 0x66, 0x16, 0xf0, 0x6d, 0x10, 0x80, 0xf6, 0x41, 0x6d, 0xe5, 0x3a, 0xc1, 0xba, 0x84, 0x59, 0x73, 0x13, 0xe9, 0x65, 0x8a, 0xd9, 0x24, 0xee, 0xa1, 0x81, 0xf7, 0xf7, 0x83, 0xcf, 0x77, 0x15, 0xa2, 0x83, 0x02, 0x94, 0xfe, 0x33, 0x68, 0x5c, 0x1b, 0xd1, 0x00, 0xe9, 0x39, 0xf3, 0x53, 0xfb, 0x68, 0x4f, 0x0b, 0x09, 0x4a, 0x55, 0x7a, 0x44, 0x79, 0x0a, 0x6d, 0x67, 0xb5, 0xf3, 0x04, 0x36, 0x3d, 0x9e, 0x9f, 0x3a, 0x96, 0x59, 0x3e, 0xf3, 0x94, 0x06, 0x39, 0x8c, 0x63, 0x89, 0x70, 0x6f, 0xa2, 0x5f, 0x6a, 0xd4, 0x87, 0x44, 0xaf, 0x45, 0xfc, 0x4e, 0x9c, 0x7c, 0x28, 0xe4, 0x66, 0x3b, 0xd9, 0xa2, 0x8f, 0x1f, 0x93, 0x36, 0xce, 0xd1, 0x5c, 0x98, 0x0d, 0x74, 0xe1, 0xd2, 0x29, 0x9b, 0xbd, 0x5f, 0x7b, 0x4f, 0x9e, 0x8f, 0x1e, 0xb7, 0xee, 0x49, 0x33, 0x5f, 0x0c, 0x6f, 0x26, 0xf7, 0x84, 0xab, 0xce, 0x4f, 0xde, 0x20, 0x5d, 0x47, 0xd9, 0x0d, 0x3a, 0x49, 0x69, 0xe4, 0x80, 0x64, 0x15, 0xbb, 0x77, 0xaf, 0x00, 0x6d, 0x1b, 0xd6, 0x8b, 0x44, 0x22, 0x33, 0xb6, 0xe4, 0x5d, 0x1c, 0x35, 0x16, 0xb2, 0xd3, 0x8c, 0x88, 0x08, 0x04, 0x41, 0x56, 0xcc, 0xf3, 0x68, 0x65, 0xa2, 0x66, 0xf1, 0x67, 0xb7, 0xd9, 0x74, 0x85, 0xd4, 0x02, 0x52, 0xec, 0x09, 0x03, 0x6f, 0x7d, 0xcc, 0xc3, 0x8b, 0x73, 0x48, 0x64, 0xc3, 0xfc, 0xa0, 0xbb, 0x19, 0x36, 0x99, 0x4a, 0x17, 0xcf, 0xab, 0x0f, 0x3c, 0x9e, 0x9c, 0x0b, 0x8e, 0xdf, 0xb5, 0x7f, 0x15, 0x84, 0xf7, 0x51, 0xe4, 0x43, 0xca, 0x8c, 0xa1, 0xa7, 0xfc, 0xb2, 0x60, 0x75, 0xf1, 0x4d, 0x3e, 0xad, 0xca, 0xba, 0xbc, 0x90, 0xf2, 0x31, 0x67, 0xda, 0x1e, 0x1f, 0x8f, 0x93, 0x9b, 0x6c, 0xa2, 0x65, 0xfd, 0xa3, 0xd0, 0xff, 0xcf, 0x5c, 0x84, 0xa2, 0x5a, 0x55, 0x9e, 0x35, 0xb4, 0x6b, 0x1a, 0xc7, 0x26, 0x8c, 0x3b, 0x74, 0xd6, 0x14, 0x08, 0x28, 0xd8, 0x5e, 0xd4, 0x9b, 0x78, 0x0e, 0xd1, 0xb4, 0xcc, 0xca, 0x48, 0x2e, 0x03, 0x4f, 0x40, 0xc5, 0x8a, 0xb4, 0xc6, 0x26, 0xfd, 0x6b, 0x92, 0xd2, 0x94, 0xd8, 0x0a, 0xc8, 0xd1, 0x0e, 0x9d, 0xb4, 0x4b, 0xf1, 0x86, 0x7d, 0x24, 0x37, 0x67, 0x50, 0x6c, 0x67, 0x33, 0xe2, 0x6d, 0x65, 0x82, 0xba, 0x5c, 0x8b, 0x59, 0x59, 0x21, 0x7f, 0xcc, 0x6b, 0xc9, 0x46, 0xbd, 0x8b, 0x57, 0x15, 0xb9, 0xf9, 0x81, 0xbf, 0x1c, 0xf2, 0xd3, 0x9b, 0xab, 0x92, 0x3b, 0x58, 0x62, 0x9b, 0x9d, 0xce, 0x86, 0xba, 0x44, 0x69, 0xfa, 0x03, 0xae, 0xe0, 0xe4, 0x8d, 0x7f, 0x50, 0x51, 0xac, 0x56, 0x39, 0x0f, 0x57, 0x13, 0x2f, 0xf9, 0x25, 0xaf, 0xf2, 0xcb, 0xbe, 0xfe, 0xdc, 0x70, 0xf9, 0x01, 0x9b, 0xc6, 0x29, 0x46, 0x98, 0x91, 0x08, 0xcd, 0x8a, 0x6f, 0x69, 0xd0, 0x73, 0x9e, 0xfe, 0x15, 0x3a, 0xcf, 0x7b, 0xa8, 0xef, 0x37, 0x0e, 0x03, 0x5a, 0xdf, 0x85, 0x37, 0x17, 0x7b, 0x05, 0xbc, 0x2e, 0x28, 0x4e, 0x65, 0x77, 0x91, 0xf3, 0x00, 0x41, 0xe7, 0x3e, 0x7d, 0x3d, 0x1e, 0x64, 0xd1, 0x28, 0x64, 0x24, 0x97, 0xc8, 0x0b, 0xa4, 0xcb, 0xbf, 0x67, 0x38, 0x9e, 0x76, 0x94, 0xd2, 0xbf, 0xba, 0x25, 0xfd, 0x60, 0x7f, 0x38, 0xc9, 0x52, 0x6a, 0x11, 0xf7, 0xa2, 0x21, 0x85, 0x69, 0x5d, 0x15, 0x1c, 0x97, 0x24, 0x24, 0x9a, 0x38, 0xe9, 0x55, 0xc3, 0x7d, 0xc5, 0x43, 0x9c, 0x43, 0xe5, 0xa2, 0x13, 0x3e, 0x3d, 0x7c, 0x7f, 0xfe, 0x4d, 0xb2, 0x1f, 0x34, 0x0b, 0x52, 0xa0, 0x87, 0x0e, 0x63, 0x38, 0xef, 0x8e, 0xa1, 0x67, 0x88, 0x68, 0x8f, 0x91, 0xa8, 0x7f, 0x5d, 0x15, 0xd3, 0xa8, 0x93, 0x81, 0xdb, 0xba, 0x09, 0x1e, 0x0a, 0x6b, 0x52, 0x2c, 0x87, 0xa5, 0xbe, 0xa4, 0x95, 0x20, 0xef, 0xb7, 0x2a, 0x1c, 0x0e, 0xc3, 0xf0, 0xa6, 0x99, 0xb8, 0x0b, 0x9e, 0xf7, 0xf6, 0xcc, 0x0b, 0x26, 0x2b, 0x28, 0x68, 0x1a, 0xef, 0x46, 0x57, 0x38, 0x32, 0x60, 0xf8, 0x6a, 0xd9, 0x26, 0xe3, 0x50, 0x67, 0xdf, 0xbd, 0x7e, 0xd9, 0x19, 0xee, 0xe9, 0xb3, 0x27, 0xbb, 0x9f, 0x30, 0xcf, 0xb2, 0xa4, 0xf5, 0x88, 0x65, 0x16, 0x45, 0xff, 0xfa, 0xbe, 0xa2, 0xfa, 0x7b, 0x75, 0x15, 0x95, 0xf2, 0x90, 0x0f, 0x10, 0x52, 0x37, 0x33, 0x4a, 0xb8, 0xd3, 0xa6, 0x9a, 0xb4, 0x40, 0x56, 0xfa, 0xff, 0xf1, 0xcf, 0xd0, 0xba, 0xfb, 0xcb, 0x4f, 0x88, 0xe8, 0xa0, 0x35, 0xaf, 0x2d, 0xd4, 0x50, 0x5e, 0x53, 0x3b, 0xa9, 0x4c, 0xb7, 0x7a, 0xf3, 0x77, 0x9b, 0x89, 0xed, 0xa0, 0x27, 0xf6, 0x79, 0xbc, 0xff, 0x88, 0x46, 0xfd, 0x74, 0x76, 0x7a, 0xac, 0x15, 0xd1, 0x4e, 0xea, 0x29, 0x06, 0xba, 0x0b, 0xd2, 0x56, 0x6e, 0xd6, 0xd7, 0x00, 0x53, 0x7b, 0xc1, 0x09, 0x0e, 0xa1, 0x46, 0x3a, 0x28, 0x22, 0xc1, 0xe9, 0x71, 0x58, 0x01, 0xa9, 0xa4, 0x40, 0x61, 0xc8, 0x8b, 0x1e, 0xf7, 0xb3, 0xe4, 0x80, 0xfd, 0xc3, 0x9c, 0xc0, 0xa0, 0xb9, 0x29, 0xff, 0xd9, 0x76, 0x45, 0x1b, 0x45, 0x83, 0xe6, 0xfb, 0xe1, 0x77, 0x7b, 0x54, 0x84, 0xb8, 0xf1, 0x59, 0x48, 0x6f, 0x2b, 0x54, 0x3b, 0xf2, 0xa9, 0x5a, 0x3d, 0x69, 0x1d, 0xc8, 0xb8, 0x7e, 0x90, 0x50, 0x13, 0x06, 0xa4, 0x3c, 0xfe, 0x73, 0x44, 0xff, 0xfd, 0xcb, 0xde, 0xf0, 0xc9, 0x4f, 0xf6, 0xa3, 0xbf, 0xdb, 0xfb, 0xf0, 0xbb, 0xfd, 0x8d, 0x58, 0x8d, 0xa9, 0x83, 0x30, 0xf1, 0x72, 0x4c, 0x49, 0xaf, 0x2d, 0xee, 0xa4, 0xd0, 0x46, 0x62, 0xc4, 0xae, 0x61, 0xaf, 0xd9, 0x93, 0x3a, 0x86, 0xf3, 0x46, 0xae, 0xc7, 0x51, 0xd7, 0xdf, 0xaf, 0x6d, 0x7b, 0x95, 0x39, 0xdc, 0x94, 0xfc, 0xbe, 0x02, 0xbd, 0xd0, 0x0d, 0x91, 0x12, 0x90, 0x80, 0x25, 0x16, 0x59, 0x9b, 0x3c, 0x08, 0xf5, 0x49, 0xa1, 0x82, 0xc2, 0xdd, 0x90, 0xcc, 0x36, 0x23, 0xd6, 0xd2, 0xa4, 0xb3, 0xe9, 0x93, 0x89, 0xfd, 0x49, 0x91, 0x05, 0xb5, 0x9f, 0x0a, 0xd0, 0xc8, 0x46, 0x9c, 0xb2, 0x83, 0xd2, 0x65, 0x1d, 0x48, 0xfb, 0xb7, 0x44, 0x56, 0x6e, 0xe3, 0xa7, 0xb8, 0xd2, 0x41, 0xf2, 0xd8, 0x5f, 0x01, 0x78, 0xe8, 0xb9, 0x69, 0x58, 0xb8, 0x98, 0x01, 0xf3, 0xda, 0x45, 0xd0, 0xf0, 0x33, 0x89, 0x9e, 0x11, 0x52, 0x09, 0xc9, 0x3a, 0x86, 0x96, 0x09, 0x6b, 0x63, 0xaf, 0xb3, 0x76, 0x8b, 0x42, 0xda, 0x0f, 0x88, 0x9e, 0x89, 0x03, 0xcd, 0x4b, 0xeb, 0x9e, 0x0d, 0xf1, 0xb7, 0xc2, 0xdb, 0x04, 0xd9, 0x28, 0x6c, 0xce, 0xfa, 0x66, 0xa2, 0x43, 0x4a, 0xff, 0x6d, 0xb2, 0xa1, 0x57, 0xdb, 0x0f, 0x28, 0x01, 0xfc, 0x54, 0x6b, 0x76, 0x29, 0xe6, 0xa5, 0x91, 0xd9, 0x61, 0x10, 0x4e, 0x26, 0x41, 0x35, 0xbb, 0x33, 0xdc, 0x90, 0x11, 0xaa, 0x47, 0x56, 0x58, 0xa8, 0xa7, 0x40, 0xb8, 0x8d, 0x21, 0xb5, 0xcd, 0xe1, 0x66, 0xb2, 0x65, 0xed, 0xbb, 0x59, 0x5a, 0x5f, 0x6d, 0xc7, 0x1c, 0xc9, 0xce, 0x77, 0xeb, 0x18, 0x95, 0x74, 0x18, 0x82, 0xe4, 0x64, 0x0e, 0xd5, 0xaf, 0xc7, 0x9e, 0x32, 0x36, 0x10, 0x65, 0x79, 0x0e, 0x6d, 0x2a, 0x40, 0xeb, 0x27, 0x54, 0x98, 0x29, 0x18, 0xe3, 0xff, 0x29, 0x25, 0xe8, 0x61, 0x55, 0xbe, 0x79, 0x96, 0x13, 0xf5, 0x86, 0x5c, 0xc3, 0xe6, 0x64, 0x29, 0xa9, 0xe4, 0xf3, 0x79, 0x36, 0x1f, 0xe6, 0x8b, 0x45, 0x36, 0x8b, 0x64, 0xb3, 0x71, 0x2e, 0xd7, 0x8c, 0xb3, 0xc0, 0xf5, 0x69, 0xcf, 0xa1, 0x12, 0x41, 0xe2, 0xd0, 0x38, 0x5e, 0x14, 0x96, 0x56, 0xfc, 0xfc, 0xa2, 0x16, 0x0a, 0xca, 0x10, 0x23, 0xfa, 0x50, 0xc4, 0x10, 0xde, 0xb4, 0xd5, 0x92, 0x4b, 0xb1, 0xfd, 0x9e, 0x18, 0x86, 0x91, 0x9a, 0xaf, 0x0f, 0x43, 0xe7, 0x8e, 0x99, 0x0d, 0x81, 0xbd, 0x91, 0x85, 0xe7, 0x63, 0x16, 0xdd, 0xa4, 0x8c, 0xdb, 0xe6, 0x00, 0x9e, 0x08, 0xf0, 0xc3, 0xf9, 0x81, 0x58, 0xce, 0x76, 0x87, 0x83, 0xf1, 0x44, 0x7c, 0x45, 0x24, 0xc0, 0x2d, 0x09, 0x2f, 0x44, 0x32, 0x6a, 0xee, 0x88, 0xce, 0xa5, 0xc3, 0xbe, 0x8f, 0xbc, 0xf7, 0xec, 0xfe, 0xc7, 0xc0, 0xdb, 0x5f, 0xb5, 0x45, 0x74, 0xbb, 0x17, 0xe9, 0x6d, 0xdb, 0x3f, 0xd6, 0x41, 0x69, 0xf6, 0x1f, 0x8c, 0x9d, 0x48, 0x5a, 0x7f, 0xe4, 0x1c, 0x84, 0x59, 0xe9, 0x4e, 0xc5, 0x3b, 0x14, 0x16, 0x74, 0xed, 0x39, 0x0c, 0x92, 0x35, 0xe8, 0xee, 0x64, 0xfe, 0x57, 0xe5, 0xbc, 0x96, 0xdc, 0x01, 0x2e, 0x5f, 0xb0, 0x40, 0x1b, 0xde, 0xc6, 0xf1, 0x37, 0xeb, 0x9c, 0xb6, 0x28, 0x2d, 0x22, 0xd9, 0xfb, 0x75, 0x24, 0xb8, 0x4a, 0xba, 0x87, 0xd6, 0xd2, 0x1a, 0x6a, 0x89, 0x68, 0x0e, 0x3d, 0xfb, 0xb6, 0xae, 0xfd, 0x51, 0xeb, 0xc1, 0xfe, 0x34, 0x1d, 0x29, 0xf0, 0x03, 0x64, 0x8a, 0x5b, 0x06, 0xd3, 0x93, 0x9c, 0x0d, 0xaa, 0x72, 0xa9, 0x51, 0xe5, 0xac, 0x07, 0x46, 0xa5, 0xca, 0x2e, 0x09, 0x4a, 0x8c, 0xf4, 0x40, 0x42, 0x53, 0x31, 0x3c, 0xae, 0x88, 0x94, 0x8e, 0xaf, 0xe9, 0xd4, 0x44, 0xa9, 0x0e, 0xc9, 0x8b, 0xe5, 0x55, 0x65, 0x0c, 0xad, 0xb0, 0x24, 0x75, 0xfc, 0x4d, 0x02, 0xa7, 0x27, 0x75, 0x5b, 0xe5, 0x67, 0x2c, 0x07, 0xf6, 0xc0, 0x89, 0x3f, 0x21, 0x9e, 0x2e, 0xe5, 0xda, 0x0d, 0xd3, 0x7a, 0x18, 0x50, 0x07, 0x65, 0x5c, 0xf8, 0xfd, 0x18, 0xc9, 0xc6, 0x23, 0xd3, 0x9f, 0xd2, 0xbc, 0x29, 0xfb, 0xa0, 0x20, 0xcc, 0x36, 0x43, 0x1f, 0x3b, 0xa3, 0xd1, 0x0e, 0xe9, 0x05, 0x3b, 0xe6, 0x8f, 0xdc, 0x6b, 0x40, 0xd6, 0xed, 0x72, 0x6b, 0x24, 0x09, 0x7d, 0x8b, 0xbc, 0xad, 0xd2, 0x0f, 0xde, 0xeb, 0x1a, 0xfa, 0xb7, 0x15, 0xb2, 0xf4, 0x2b, 0x63, 0xb8, 0x55, 0x80, 0x7f, 0xc9, 0x16, 0x1d, 0x45, 0x34, 0xe8, 0x2d, 0xcb, 0xd1, 0xc7, 0x5a, 0xc0, 0xa5, 0xb4, 0x95, 0xa9, 0x43, 0xd1, 0x67, 0x47, 0x27, 0x2d, 0x22, 0x6f, 0x14, 0xd5, 0x13, 0xe8, 0x40, 0xe9, 0x5a, 0xd7, 0xc9, 0xe3, 0xfd, 0xce, 0xf1, 0xe5, 0xe6, 0xc0, 0x67, 0xc6, 0x0c, 0x05, 0x18, 0x38, 0x25, 0x2a, 0x87, 0xa5, 0x8e, 0x02, 0x9d, 0x1e, 0xb4, 0xb0, 0x5c, 0xd5, 0xb6, 0xcb, 0x81, 0x55, 0xea, 0xbd, 0x36, 0xb6, 0x52, 0x96, 0x11, 0x28, 0xa4, 0xfc, 0x11, 0xa4, 0x3a, 0x4a, 0x21, 0x03, 0xc8, 0x21, 0x63, 0xdd, 0x31, 0x57, 0x0e, 0x86, 0x4e, 0xe6, 0x8d, 0xd8, 0xc9, 0x92, 0x39, 0x15, 0x73, 0x30, 0x5a, 0xf7, 0x9e, 0x15, 0x5a, 0xde, 0x14, 0xcc, 0x9a, 0x09, 0x4f, 0xdd, 0xec, 0xfc, 0xab, 0xa3, 0x77, 0x62, 0x05, 0x00, 0x5d, 0x86, 0xd4, 0x2b, 0xd6, 0xa8, 0x02, 0x00, 0x7f, 0xf8, 0x0c, 0x9e, 0x3e, 0x86, 0x65, 0x4f, 0xfb, 0x56, 0x5f, 0xa5, 0xfb, 0x4f, 0x9e, 0xca, 0xb4, 0x15, 0x5d, 0x13, 0x2e, 0x89, 0x4d, 0xfe, 0xd5, 0xce, 0x0e, 0xe7, 0x14, 0x91, 0x1f, 0x28, 0x90, 0xbd, 0x70, 0xc9, 0xd2, 0xb3, 0x7f, 0xdc, 0x8c, 0x67, 0x13, 0xab, 0x91, 0xc8, 0x29, 0xbd, 0x09, 0x82, 0x74, 0x9c, 0xf5, 0xec, 0x37, 0x72, 0x1a, 0xf8, 0xa1, 0x2d, 0x86, 0x4a, 0x4a, 0xd7, 0xf4, 0x37, 0x12, 0x3c, 0x2a, 0xe9, 0xe8, 0x9a, 0x28, 0xc4, 0x04, 0x21, 0x7d, 0x7b, 0xbb, 0xc3, 0x89, 0xc2, 0xb7, 0x0d, 0x1c, 0xb8, 0x41, 0x65, 0x22, 0x4a, 0xe1, 0x40, 0x75, 0xfe, 0xc8, 0x92, 0x23, 0x9f, 0x73, 0x78, 0x07, 0x94, 0xa7, 0xb1, 0x69, 0xf6, 0x7e, 0xe2, 0x30, 0x57, 0x93, 0x20, 0x99, 0x4b, 0xbe, 0x69, 0x61, 0xb9, 0xe1, 0x3c, 0xf3, 0x52, 0xa8, 0xdd, 0x75, 0xe1, 0x72, 0x7b, 0x10, 0x96, 0xdb, 0x80, 0xc0, 0x49, 0xd3, 0xea, 0x03, 0x61, 0xeb, 0xee, 0x39, 0x66, 0x75, 0x87, 0xe0, 0x78, 0x70, 0x0f, 0x0c, 0x29, 0xec, 0x10, 0x1d, 0x88, 0x5d, 0x1f, 0x34, 0x5c, 0xa2, 0x50, 0xdc, 0xf3, 0xd1, 0xee, 0x81, 0x62, 0xb8, 0x0f, 0x92, 0xaf, 0x8b, 0x15, 0x9d, 0x07, 0x2d, 0xfa, 0xeb, 0xf1, 0xb7, 0x41, 0x1d, 0x2a, 0xbd, 0xf1, 0xf8, 0x11, 0xbd, 0xf1, 0x76, 0xcc, 0x4f, 0xdd, 0x94, 0xf3, 0x0b, 0xf3, 0x66, 0xec, 0xb9, 0x67, 0xf4, 0x9c, 0xa1, 0xb8, 0x59, 0x63, 0xae, 0x91, 0x10, 0xd5, 0x9a, 0x99, 0x3c, 0x7e, 0x1c, 0x99, 0xc9, 0xe0, 0x67, 0x7f, 0xe8, 0x14, 0x72, 0x9d, 0x88, 0x89, 0x1a, 0x15, 0x82, 0x70, 0x50, 0xa1, 0x63, 0x5b, 0x12, 0x7c, 0x4a, 0xe6, 0xcb, 0x70, 0x44, 0x0f, 0xe9, 0x62, 0x5a, 0x01, 0x59, 0xb5, 0x01, 0xb4, 0xcc, 0xb3, 0xfd, 0x47, 0x7b, 0x3b, 0x4f, 0x47, 0x8f, 0x47, 0xfb, 0x36, 0x63, 0x96, 0x61, 0x17, 0x1a, 0x24, 0x28, 0x45, 0x22, 0x43, 0xc8, 0x15, 0xcb, 0x0b, 0xc1, 0x55, 0xb2, 0x3f, 0x81, 0x4b, 0xd5, 0xe5, 0xca, 0x11, 0xd2, 0xd2, 0x9e, 0x5f, 0x7a, 0x19, 0xeb, 0xea, 0x4d, 0xbd, 0x78, 0x51, 0x33, 0x26, 0x6e, 0x40, 0x2a, 0x1e, 0x40, 0xc4, 0x7a, 0x92, 0xff, 0x6d, 0x95, 0x37, 0x46, 0x0b, 0x20, 0xa6, 0x42, 0xce, 0x4d, 0xed, 0xcb, 0x02, 0xbb, 0x01, 0xeb, 0xa0, 0x1b, 0x11, 0xf1, 0x1a, 0x0b, 0x66, 0x04, 0xed, 0xa6, 0x07, 0x11, 0x82, 0xf2, 0xce, 0x1c, 0xbc, 0x2b, 0xe1, 0x76, 0x68, 0xc6, 0xbe, 0x2f, 0xa6, 0xa4, 0x9c, 0x7f, 0x63, 0xcc, 0xef, 0x6b, 0x44, 0x54, 0xd2, 0xb8, 0xbb, 0x86, 0x11, 0x84, 0x34, 0x26, 0xa6, 0x89, 0x5b, 0xae, 0x75, 0x8a, 0xfc, 0x80, 0x4b, 0xc1, 0xd8, 0x39, 0x88, 0x75, 0x07, 0xdc, 0xc9, 0xed, 0x43, 0xeb, 0xc4, 0xa5, 0xeb, 0x08, 0x95, 0x62, 0x72, 0xec, 0x87, 0xa1, 0x62, 0xc1, 0xa2, 0x3c, 0xf8, 0xc3, 0x98, 0x6f, 0xf2, 0x1e, 0x47, 0x9d, 0xe0, 0x50, 0xb5, 0x81, 0xa8, 0xf8, 0x5f, 0xad, 0x5a, 0x5d, 0xa7, 0x1e, 0x05, 0x35, 0x99, 0xdd, 0x66, 0xe5, 0x32, 0xe6, 0x2f, 0xa6, 0xb2, 0x47, 0xbf, 0x3e, 0x95, 0xed, 0x3f, 0x94, 0xca, 0x1c, 0x91, 0xd1, 0x3d, 0x5b, 0x43, 0x62, 0x09, 0x5a, 0x9b, 0x43, 0xf4, 0xf6, 0x50, 0x99, 0x4f, 0x66, 0x92, 0xd6, 0x16, 0x12, 0x5a, 0x8b, 0xce, 0x2c, 0x99, 0xf5, 0x50, 0x19, 0x63, 0x50, 0x32, 0x8d, 0xad, 0x27, 0x31, 0x45, 0x7a, 0x48, 0xd6, 0x53, 0x59, 0x3b, 0x3e, 0xb5, 0x9e, 0xce, 0x1c, 0x39, 0x3c, 0x98, 0xca, 0xb4, 0xeb, 0x1d, 0x73, 0x9d, 0x1e, 0x12, 0x6b, 0xd1, 0xd8, 0x9a, 0x66, 0xdf, 0x7b, 0xcf, 0x63, 0x54, 0xf6, 0xe8, 0x21, 0x54, 0x66, 0x0e, 0x74, 0x4e, 0xa2, 0xb2, 0x45, 0x65, 0x8f, 0x7f, 0x5d, 0x2a, 0x23, 0x78, 0xbc, 0x6e, 0x19, 0x79, 0x72, 0xf8, 0xaf, 0x9e, 0x63, 0x8a, 0x61, 0x75, 0xd4, 0xa0, 0xba, 0xfa, 0xe7, 0x71, 0x8a, 0xce, 0x85, 0xbe, 0xf7, 0xc4, 0xda, 0xe8, 0x74, 0x7b, 0x3f, 0xfb, 0xc4, 0xf6, 0xbb, 0x96, 0x49, 0x95, 0x71, 0x48, 0xe3, 0x2f, 0x1a, 0x5a, 0x3a, 0xd8, 0xd9, 0xf9, 0x09, 0xbe, 0xb9, 0x03, 0x92, 0x7d, 0x3f, 0x75, 0x55, 0xf8, 0x98, 0x3a, 0x3b, 0x3e, 0x7d, 0xf9, 0xed, 0x58, 0x42, 0x23, 0xa2, 0x73, 0xa8, 0x4e, 0xc2, 0x36, 0xb8, 0xd1, 0x55, 0x01, 0x8c, 0x10, 0xa8, 0xb9, 0xdc, 0x29, 0x7d, 0x78, 0x3b, 0xd0, 0xf8, 0x04, 0x32, 0x12, 0x85, 0x19, 0x03, 0xa1, 0x48, 0x20, 0x07, 0x38, 0xf4, 0x21, 0xa3, 0xf6, 0xe2, 0x5d, 0xf2, 0x44, 0x64, 0x26, 0xd6, 0x25, 0x56, 0x78, 0x2f, 0x6e, 0x35, 0x57, 0x15, 0x6a, 0xbe, 0xf0, 0xe8, 0xb6, 0x46, 0x27, 0xd7, 0xcd, 0x4e, 0xe6, 0xf5, 0x0d, 0xc0, 0xe2, 0x97, 0x95, 0x06, 0x7c, 0x63, 0x46, 0xae, 0xfd, 0xad, 0x7a, 0x68, 0x63, 0x78, 0x30, 0x02, 0xf9, 0xe8, 0xed, 0x37, 0xbd, 0x17, 0x64, 0xd7, 0x12, 0xba, 0xbf, 0x07, 0x97, 0x46, 0xe2, 0xc1, 0x50, 0x5f, 0x81, 0x12, 0x28, 0xbb, 0x44, 0x1d, 0x84, 0x73, 0x1b, 0x33, 0x34, 0xca, 0xaa, 0x1f, 0x9b, 0x21, 0xbb, 0xfe, 0x3e, 0xfe, 0x45, 0x4a, 0xbf, 0xe1, 0xbf, 0x3f, 0xa1, 0xef, 0x22, 0x7e, 0x87, 0x7f, 0x5d, 0xd1, 0x3f, 0x25, 0x75, 0x45, 0x40, 0x0c, 0xfd, 0x53, 0x9e, 0xc6, 0x37, 0xda, 0x2f, 0x26, 0xb4, 0xb0, 0x27, 0x6f, 0x4b, 0x57, 0x6e, 0xeb, 0xaf, 0xda, 0x87, 0xb7, 0x0a, 0x32, 0xc2, 0x2c, 0x17, 0xc6, 0xc8, 0x8f, 0xe3, 0x0a, 0x57, 0xe6, 0x83, 0x30, 0x2b, 0xa0, 0x88, 0xdf, 0x5b, 0xd3, 0xc5, 0xe3, 0xe5, 0x00, 0x80, 0xc9, 0x19, 0xeb, 0x92, 0xc0, 0x8d, 0xa3, 0x64, 0xde, 0x7b, 0xbb, 0x9f, 0x87, 0x2e, 0x89, 0xf7, 0x5a, 0xec, 0xea, 0x90, 0x88, 0x91, 0x75, 0x83, 0xb2, 0x93, 0x89, 0x2b, 0xf1, 0x8a, 0x7d, 0x36, 0x52, 0x0f, 0x4b, 0xb6, 0xef, 0x2c, 0x63, 0x63, 0x69, 0xc2, 0x76, 0x6f, 0x58, 0x6e, 0x80, 0xf2, 0xfe, 0x1a, 0x92, 0x4d, 0x30, 0xf4, 0x13, 0xc9, 0x1d, 0x09, 0xf8, 0x3b, 0x79, 0x31, 0x34, 0xa2, 0xf9, 0xa5, 0xc3, 0x39, 0xfd, 0xfd, 0xe3, 0x5d, 0x3a, 0x55, 0x1d, 0x85, 0x7a, 0xc7, 0xcd, 0x4b, 0xc1, 0xb2, 0xf9, 0xfd, 0xa3, 0x74, 0xf4, 0x1b, 0x42, 0x0a, 0x3e, 0x69, 0x5b, 0xd1, 0xbf, 0x1b, 0xf8, 0xe9, 0x67, 0x93, 0xb4, 0x8a, 0xf8, 0x6c, 0x44, 0x43, 0x54, 0xf8, 0x21, 0x05, 0xef, 0xb1, 0x79, 0x69, 0x29, 0x1b, 0xb0, 0x28, 0x93, 0xb1, 0x3f, 0x34, 0x43, 0x25, 0x61, 0x37, 0x26, 0x1b, 0x07, 0xe2, 0x2c, 0x06, 0xf6, 0x14, 0x0c, 0xd8, 0xb3, 0xd8, 0xca, 0xd5, 0x1b, 0x70, 0xb6, 0x5b, 0xbc, 0x80, 0xae, 0xf5, 0x91, 0x59, 0x95, 0xde, 0x78, 0x16, 0x34, 0x43, 0xb8, 0x5d, 0x70, 0x3c, 0xc8, 0x66, 0xf8, 0x50, 0x35, 0x05, 0x05, 0xfc, 0x63, 0xda, 0x47, 0x3d, 0xad, 0x32, 0x89, 0xbc, 0x11, 0x0c, 0x30, 0x82, 0xfb, 0x84, 0x9f, 0x6b, 0xd4, 0x8e, 0xcb, 0x4c, 0x8b, 0xaa, 0xed, 0xaa, 0x15, 0x35, 0x07, 0x50, 0x39, 0xa3, 0x48, 0xbd, 0x82, 0x73, 0x67, 0x69, 0xf2, 0x62, 0x2a, 0xb8, 0x3a, 0xf4, 0xaa, 0x96, 0xb7, 0x4b, 0xc2, 0x36, 0x7a, 0x17, 0x2f, 0xd1, 0x50, 0xb6, 0xbe, 0xca, 0x97, 0x5d, 0x11, 0x3d, 0xfc, 0xa2, 0xfc, 0x62, 0xb8, 0x6d, 0xb1, 0x37, 0xcb, 0xeb, 0xac, 0xe6, 0xa6, 0xed, 0x34, 0x59, 0x4a, 0x07, 0xb8, 0x82, 0x93, 0x45, 0xc4, 0x17, 0x6a, 0xb9, 0x91, 0x9b, 0x2d, 0x08, 0x8b, 0x41, 0xfb, 0x31, 0x9e, 0x59, 0x45, 0x79, 0x00, 0xc2, 0xef, 0xc8, 0x1d, 0x63, 0x76, 0xeb, 0x82, 0x53, 0x3f, 0x51, 0xed, 0x4d, 0x49, 0x12, 0xd2, 0x67, 0x80, 0x63, 0x2d, 0xe5, 0xb2, 0x2d, 0x9b, 0x08, 0x38, 0x40, 0x79, 0xc3, 0x0b, 0x65, 0x2a, 0x7f, 0xba, 0xb7, 0x2c, 0xc8, 0xb2, 0x9f, 0x0b, 0x71, 0x62, 0xd0, 0xe5, 0x43, 0x99, 0x18, 0xf7, 0x27, 0x98, 0x5e, 0x65, 0x0b, 0x69, 0xd3, 0xd6, 0x03, 0xb2, 0xd0, 0x8b, 0x48, 0xd0, 0x9e, 0x13, 0xe7, 0xcd, 0x5e, 0x34, 0xcb, 0xd1, 0xa2, 0xfc, 0xbb, 0xd9, 0xe6, 0x94, 0xfa, 0xbe, 0x06, 0x57, 0xc2, 0xc8, 0xfa, 0x82, 0xcf, 0x85, 0x42, 0x67, 0x85, 0xb5, 0x2a, 0x13, 0x0f, 0x16, 0x55, 0x90, 0x0a, 0x05, 0x1e, 0x2f, 0x79, 0x69, 0x66, 0x7c, 0xf4, 0xe1, 0xfd, 0xdb, 0xf1, 0xfb, 0xb3, 0x2e, 0x61, 0x9f, 0x9d, 0xbe, 0x3b, 0x3f, 0x7a, 0xf5, 0xe1, 0xec, 0xdd, 0xe9, 0xf9, 0xe9, 0xcb, 0xd3, 0x93, 0x64, 0x6b, 0x6f, 0x7b, 0x6d, 0xf1, 0xa7, 0xf5, 0x40, 0x58, 0x58, 0x65, 0xe7, 0x8c, 0x65, 0x9e, 0x65, 0x67, 0xb1, 0x45, 0xeb, 0x09, 0x47, 0xfb, 0x5e, 0xa8, 0x4b, 0x52, 0x51, 0xd5, 0x65, 0x0c, 0x57, 0x04, 0xc4, 0x1b, 0xd8, 0x7a, 0x9a, 0x5c, 0xae, 0xf8, 0xa6, 0xb8, 0x64, 0x12, 0x06, 0x92, 0x0e, 0x14, 0x2e, 0x89, 0x63, 0xfb, 0x75, 0x83, 0x6b, 0xdd, 0x71, 0x4f, 0xba, 0x3a, 0x0b, 0x9d, 0x01, 0x14, 0x30, 0x47, 0x15, 0xf5, 0x7a, 0xb2, 0x60, 0xb0, 0x21, 0xb4, 0x69, 0xb0, 0x6f, 0xa0, 0x89, 0x8d, 0x44, 0x16, 0xcb, 0xc2, 0x6a, 0x74, 0x23, 0x6a, 0x80, 0x18, 0xc4, 0x87, 0xe4, 0x15, 0x33, 0xdf, 0x42, 0x9a, 0x6a, 0xcb, 0x44, 0x10, 0x59, 0xa6, 0xfd, 0x95, 0x7c, 0x07, 0xf3, 0x00, 0xfd, 0xd6, 0xe3, 0xaa, 0x28, 0x9a, 0x0c, 0xd1, 0x86, 0xf1, 0x32, 0x03, 0xf1, 0xdc, 0x78, 0x93, 0xa2, 0xe1, 0x48, 0x29, 0x03, 0xac, 0x6d, 0x84, 0xc3, 0x1e, 0x69, 0xd0, 0x92, 0x41, 0x84, 0x70, 0x23, 0xa1, 0xbe, 0x28, 0xfc, 0xd4, 0xd8, 0x5f, 0xcc, 0x3d, 0x84, 0xcc, 0x9b, 0x48, 0x51, 0xa4, 0x01, 0x9d, 0xfd, 0x80, 0x09, 0x5a, 0xa2, 0xb5, 0x6b, 0x6a, 0x8f, 0xbe, 0x6a, 0xa3, 0x78, 0xfa, 0xc8, 0xfe, 0x5c, 0x5b, 0x8a, 0x89, 0x0c, 0x2c, 0x2c, 0xd6, 0xeb, 0xce, 0xb4, 0xba, 0xec, 0xe7, 0xd9, 0xe8, 0xe9, 0x93, 0xd1, 0x3e, 0x61, 0xba, 0x9c, 0xce, 0x29, 0xbe, 0x29, 0x8a, 0x05, 0x9c, 0xcb, 0xf8, 0x80, 0x00, 0x58, 0x21, 0x43, 0xd2, 0xed, 0x95, 0x8c, 0x18, 0xb3, 0xa5, 0xb4, 0xd4, 0x5c, 0x25, 0x99, 0xa2, 0x7e, 0x48, 0xd7, 0x75, 0x41, 0xfe, 0x27, 0xcc, 0x20, 0xf3, 0x99, 0x03, 0x97, 0x24, 0x48, 0x69, 0x73, 0x5d, 0x5e, 0x7b, 0x6c, 0xfb, 0x92, 0x8e, 0x5f, 0x9e, 0x09, 0x36, 0x87, 0x43, 0x11, 0x01, 0x3b, 0xc7, 0xeb, 0x86, 0x54, 0x77, 0x47, 0xbb, 0xc9, 0xf8, 0xcd, 0x57, 0x02, 0x38, 0xfc, 0xd5, 0x38, 0xa2, 0x09, 0x40, 0x9f, 0xd7, 0xd7, 0x47, 0x7e, 0x90, 0x91, 0x16, 0x67, 0x66, 0xf7, 0x07, 0xfa, 0x53, 0xeb, 0x2b, 0x90, 0xc0, 0xec, 0x56, 0x9c, 0x04, 0x4e, 0x3e, 0xdd, 0xd2, 0x81, 0x07, 0xf2, 0x61, 0xee, 0x2b, 0x01, 0x3b, 0xc7, 0x96, 0x3c, 0x5a, 0x0f, 0x14, 0xb8, 0x1f, 0x5c, 0xb4, 0x7b, 0xaf, 0x98, 0x73, 0x76, 0xdf, 0x77, 0xc9, 0x44, 0x53, 0x52, 0xe9, 0xd0, 0x95, 0x69, 0x67, 0xad, 0x3b, 0x90, 0x51, 0x71, 0x21, 0x1c, 0xc3, 0xf3, 0xec, 0x02, 0xaa, 0x21, 0x2a, 0x7e, 0x07, 0xf8, 0x25, 0x22, 0xcd, 0x36, 0xa7, 0x30, 0x8e, 0x1a, 0x87, 0x63, 0x42, 0x31, 0xa6, 0xa7, 0x6d, 0x5b, 0x94, 0xc9, 0x4d, 0xb3, 0xb1, 0xd4, 0xa3, 0x4f, 0xca, 0xce, 0xe7, 0x77, 0x08, 0x43, 0xe6, 0xb7, 0x7c, 0xb7, 0xff, 0x9e, 0x55, 0x65, 0x98, 0xf6, 0x00, 0xe5, 0x41, 0xb1, 0xfe, 0x8c, 0xca, 0x7d, 0xa8, 0x60, 0x44, 0xee, 0x87, 0xf4, 0xd5, 0xe0, 0xce, 0xfd, 0x01, 0xed, 0xe1, 0x19, 0xbf, 0x9e, 0x95, 0x0a, 0x01, 0xa3, 0x01, 0xae, 0x66, 0xae, 0xc1, 0x6a, 0x8f, 0x07, 0xcc, 0xa9, 0x44, 0xf9, 0x8e, 0xab, 0x9b, 0x03, 0x13, 0x13, 0xea, 0xdf, 0x8c, 0x4c, 0x19, 0x97, 0x9c, 0x6d, 0xc3, 0x6b, 0xd4, 0x8a, 0xd1, 0xe1, 0x11, 0x8a, 0x3e, 0x17, 0xf2, 0xf4, 0x61, 0x92, 0xbc, 0xca, 0x8a, 0x3b, 0xe5, 0xe9, 0x2e, 0xaf, 0x10, 0xa8, 0x42, 0xd7, 0xec, 0x13, 0x77, 0xc0, 0x17, 0xdc, 0x72, 0xe8, 0xc2, 0x4d, 0x31, 0x9c, 0x52, 0x7b, 0xce, 0x31, 0xce, 0xf5, 0x85, 0xdd, 0x06, 0x30, 0xad, 0xf6, 0x5e, 0x6c, 0x01, 0xbb, 0x46, 0x43, 0xed, 0xf8, 0x9e, 0x8e, 0xb8, 0x76, 0x1b, 0xb6, 0x11, 0xd7, 0x84, 0x49, 0x57, 0xaf, 0x26, 0x7f, 0x15, 0xec, 0x74, 0x72, 0x2d, 0x54, 0xb2, 0x0d, 0x92, 0x87, 0x6a, 0x4e, 0xd5, 0x3c, 0xc0, 0x61, 0x2b, 0xc3, 0x1d, 0x8a, 0xd8, 0x70, 0x48, 0x02, 0xd0, 0x16, 0x1c, 0x6d, 0x12, 0xc3, 0x94, 0xa2, 0x65, 0xa3, 0x59, 0x8f, 0xca, 0xa0, 0xf7, 0x67, 0x78, 0x41, 0x3c, 0x95, 0xd3, 0x1b, 0x3b, 0xc2, 0x97, 0xf7, 0x92, 0x53, 0x6a, 0x6d, 0x82, 0x37, 0x3d, 0xde, 0x3b, 0x96, 0x72, 0xea, 0x7a, 0xf0, 0x07, 0xfa, 0x23, 0x5c, 0x43, 0x8b, 0x64, 0x69, 0x9b, 0x95, 0x91, 0xd0, 0xe3, 0x60, 0x4b, 0x78, 0xbd, 0xef, 0x03, 0x5f, 0x38, 0x31, 0xb0, 0x7e, 0x6c, 0x70, 0xb1, 0x87, 0x7c, 0xe0, 0x7d, 0xa1, 0x58, 0x8f, 0x4a, 0xdd, 0x4b, 0xdb, 0x81, 0x45, 0x0a, 0x68, 0xda, 0x86, 0x10, 0x41, 0x04, 0x2d, 0xa5, 0x39, 0x53, 0x7a, 0x41, 0xb9, 0xef, 0x55, 0xe6, 0xb0, 0xdd, 0xe9, 0x24, 0x19, 0x09, 0x4c, 0x7a, 0x50, 0x68, 0x2a, 0xf6, 0xb2, 0x6c, 0xb8, 0x1b, 0x06, 0x25, 0xcb, 0x93, 0xa6, 0x53, 0x91, 0x8f, 0xd0, 0xdb, 0x64, 0x55, 0x92, 0x69, 0x34, 0x7b, 0xf8, 0x9c, 0x70, 0x40, 0xd1, 0x42, 0x49, 0x63, 0xd4, 0x4e, 0x01, 0x8e, 0x32, 0xf9, 0x73, 0x9c, 0xef, 0x08, 0x97, 0x93, 0x0b, 0xee, 0xa5, 0xd7, 0x65, 0x4e, 0xd9, 0x72, 0x96, 0x27, 0x77, 0xc0, 0xa4, 0xcf, 0xc3, 0x76, 0x4e, 0x30, 0xaf, 0x6c, 0x8a, 0x99, 0xd8, 0x57, 0x79, 0x61, 0xf3, 0xff, 0xea, 0x56, 0x61, 0x24, 0xdf, 0x6e, 0x1d, 0x0e, 0x79, 0x48, 0x08, 0x57, 0x17, 0x14, 0x66, 0x2a, 0xd2, 0x46, 0xef, 0x8b, 0xc7, 0x6e, 0x69, 0x86, 0x64, 0xa6, 0x51, 0x1e, 0x46, 0x4a, 0x52, 0x49, 0x0b, 0x3f, 0x3b, 0x0d, 0x2f, 0x7c, 0xd7, 0x92, 0xa7, 0x0b, 0xd8, 0xac, 0x69, 0xa7, 0xe6, 0x8e, 0xee, 0x91, 0x11, 0xb7, 0x77, 0x9a, 0xa7, 0xb9, 0x56, 0x05, 0x5b, 0x02, 0xf4, 0xc0, 0x6c, 0x74, 0xde, 0xe0, 0xc0, 0x3a, 0x79, 0xe2, 0x9a, 0x3e, 0x2d, 0xfe, 0x9a, 0xc5, 0x62, 0x15, 0x36, 0xd8, 0x95, 0x68, 0x9d, 0x9f, 0x41, 0xc9, 0xd0, 0x77, 0x50, 0x80, 0xc4, 0x51, 0xc3, 0x4d, 0x80, 0xbc, 0xc6, 0x48, 0x94, 0x8e, 0x4f, 0xf1, 0xbb, 0xb8, 0x1f, 0x71, 0xc7, 0x82, 0x5e, 0x19, 0x82, 0x29, 0x66, 0x43, 0xc3, 0x04, 0x96, 0x6b, 0xfc, 0x70, 0xce, 0x55, 0xd5, 0x4a, 0x30, 0xf7, 0x51, 0x76, 0xf8, 0x27, 0x9c, 0xc7, 0x2a, 0x7b, 0x17, 0x16, 0x68, 0x18, 0x4d, 0xe3, 0x51, 0x6c, 0x27, 0x63, 0x89, 0xb2, 0x5d, 0x39, 0x4b, 0x8b, 0xea, 0xed, 0x0c, 0xc4, 0x3b, 0x88, 0x0d, 0xd4, 0x0d, 0xeb, 0x4b, 0x27, 0xe4, 0xbd, 0x93, 0x6d, 0x7b, 0xcf, 0xa5, 0xa7, 0x18, 0x11, 0x88, 0x02, 0x85, 0x94, 0x26, 0x78, 0x5f, 0x62, 0x53, 0x2e, 0xd8, 0x47, 0xc0, 0xd0, 0x69, 0x8f, 0x19, 0x7e, 0x12, 0xe1, 0x20, 0x9f, 0xdb, 0xc5, 0x4f, 0x3b, 0xe2, 0x0b, 0x02, 0x9f, 0xc4, 0x87, 0x68, 0x62, 0xf9, 0x5a, 0x80, 0x97, 0x9e, 0xc3, 0x88, 0x61, 0x1b, 0xcd, 0x3a, 0x59, 0xdf, 0xfa, 0xf3, 0x69, 0x4a, 0x81, 0xdb, 0x78, 0x92, 0xe9, 0x58, 0xee, 0xdb, 0x50, 0x9f, 0x22, 0x3e, 0x8d, 0x0b, 0x9c, 0x17, 0xbe, 0x73, 0x90, 0xbb, 0x14, 0xde, 0xae, 0x49, 0xe5, 0xf2, 0x3e, 0x87, 0x78, 0xbd, 0xe4, 0x6c, 0xe9, 0xb8, 0xee, 0x9f, 0xfe, 0x6f, 0x6f, 0x07, 0x31, 0x26, 0x4d, 0x67, 0xd5, 0xef, 0x65, 0x69, 0x7f, 0xe6, 0x85, 0xb9, 0xd1, 0xeb, 0x16, 0x85, 0x87, 0x7e, 0xc9, 0xa2, 0x82, 0x55, 0x61, 0x19, 0xd8, 0xef, 0xe0, 0x4c, 0xf8, 0x33, 0x6b, 0x62, 0x55, 0x3d, 0x4b, 0x30, 0x23, 0xae, 0x69, 0x55, 0xef, 0x2d, 0xc3, 0x3e, 0xf8, 0x73, 0x57, 0x72, 0xff, 0x36, 0x82, 0x34, 0xe8, 0xbf, 0x7f, 0x39, 0x80, 0x1b, 0x70, 0xf6, 0x53, 0xef, 0x3c, 0x8e, 0x06, 0x32, 0x97, 0x4f, 0x30, 0x8d, 0x7c, 0x79, 0x45, 0xba, 0xe5, 0x8b, 0x58, 0x65, 0x9b, 0xb7, 0x11, 0xf2, 0xd8, 0xaf, 0xff, 0xfd, 0x6a, 0xee, 0xf0, 0xbf, 0xd6, 0x7c, 0x5f, 0x1e, 0xfb, 0xd5, 0xbf, 0xcf, 0x77, 0xf7, 0x5e, 0xb7, 0x0f, 0x18, 0xd5, 0x2b, 0x29, 0x1f, 0x88, 0xf0, 0xc4, 0x5f, 0xcc, 0x14, 0xa5, 0x24, 0x21, 0xe4, 0x8a, 0xf2, 0x31, 0x7a, 0x37, 0x68, 0x10, 0x27, 0x6c, 0x11, 0x5c, 0xf1, 0x57, 0xe1, 0x60, 0x60, 0xcd, 0xe1, 0xe6, 0x48, 0xeb, 0xb4, 0x17, 0xfc, 0xe7, 0xce, 0x97, 0xb1, 0x33, 0xd2, 0x2a, 0x2f, 0x92, 0x82, 0xda, 0x6b, 0x0d, 0xed, 0xbb, 0x18, 0x55, 0x45, 0x34, 0x5e, 0xdb, 0x93, 0xca, 0x6f, 0xe6, 0x81, 0x85, 0xc6, 0x3a, 0xbc, 0xc9, 0x0e, 0x69, 0x7a, 0xb6, 0x86, 0x29, 0x5c, 0xce, 0x10, 0x29, 0x1e, 0x99, 0xf7, 0xc5, 0xda, 0x82, 0x57, 0x45, 0x5c, 0xa3, 0x7e, 0x9b, 0x6c, 0x87, 0xef, 0xfc, 0xcd, 0x40, 0x1a, 0xac, 0x99, 0xd1, 0x88, 0xaa, 0x24, 0x37, 0x59, 0x82, 0x1f, 0x72, 0x9c, 0x21, 0x0a, 0x16, 0xc3, 0xd0, 0x71, 0xe5, 0x0c, 0x17, 0x60, 0x9b, 0x15, 0xbe, 0x3c, 0x7d, 0xfb, 0xf6, 0xe8, 0x65, 0x37, 0x58, 0x68, 0x9b, 0x51, 0x3b, 0x55, 0x3f, 0xe8, 0xef, 0x8b, 0xcf, 0xa3, 0xcd, 0x8a, 0x44, 0x8b, 0xf8, 0xfb, 0x68, 0xfe, 0x97, 0x0a, 0x82, 0x35, 0xff, 0x52, 0xba, 0xd8, 0x30, 0xba, 0xb1, 0x50, 0x40, 0xa4, 0x98, 0x32, 0xa0, 0x07, 0x1f, 0x59, 0x83, 0x5b, 0x6b, 0xd6, 0xe8, 0x26, 0x09, 0x45, 0x14, 0x26, 0xac, 0xcc, 0x02, 0x95, 0x0c, 0xb3, 0xd9, 0x8e, 0x14, 0x0a, 0xe8, 0xb7, 0xfb, 0x68, 0x99, 0x01, 0x11, 0xa9, 0x26, 0x6b, 0x58, 0x5e, 0x70, 0xcf, 0x91, 0x45, 0x5a, 0x7d, 0xa4, 0x70, 0xb6, 0x57, 0x9d, 0x85, 0xfa, 0x5c, 0x60, 0xb3, 0xcf, 0x66, 0x31, 0xc8, 0x0e, 0x78, 0xdd, 0xfd, 0x2a, 0x14, 0x99, 0x8c, 0xf4, 0xe6, 0x3d, 0xd0, 0xb2, 0x59, 0x7a, 0xbd, 0xc8, 0x6e, 0xe8, 0x33, 0x8c, 0x53, 0x44, 0xb8, 0x1b, 0x61, 0x6b, 0x1e, 0x86, 0xd7, 0xe7, 0xa8, 0xc2, 0x9d, 0x40, 0x7e, 0xd0, 0x51, 0x2d, 0xb8, 0xf9, 0x0d, 0xf0, 0xca, 0xa9, 0x45, 0x25, 0x97, 0x5c, 0x05, 0x7b, 0xf5, 0x8d, 0x60, 0x8e, 0x76, 0x02, 0x6a, 0x41, 0x1e, 0xb2, 0xd4, 0xa3, 0x59, 0x1c, 0x52, 0x14, 0x63, 0xf4, 0xc1, 0x36, 0xf1, 0x4e, 0xe3, 0x18, 0xc8, 0x5a, 0xa9, 0x5b, 0x43, 0xe8, 0xe9, 0xa6, 0x3d, 0x91, 0xbf, 0x31, 0xf5, 0x10, 0xc0, 0x5d, 0xa1, 0x4f, 0x18, 0x26, 0xf6, 0xa4, 0x8b, 0x87, 0x0d, 0xa8, 0x38, 0x38, 0x49, 0x09, 0x23, 0xf2, 0x12, 0x55, 0x25, 0xf4, 0x30, 0x2e, 0x6b, 0xa0, 0xe6, 0x12, 0x43, 0x45, 0xdd, 0xe5, 0x40, 0xac, 0x02, 0xc4, 0x30, 0xcd, 0xee, 0xd2, 0x39, 0xc8, 0xde, 0x2b, 0xe6, 0x13, 0x47, 0x21, 0xe4, 0x02, 0x9b, 0x3f, 0x97, 0xab, 0x26, 0x08, 0x24, 0x12, 0xfa, 0x1d, 0x03, 0x9f, 0x7c, 0x39, 0x0c, 0xbb, 0x25, 0xa6, 0x33, 0xff, 0x4c, 0xc1, 0xc0, 0x61, 0xf6, 0xd7, 0xcd, 0x2c, 0xbf, 0x0f, 0x9d, 0x14, 0xe8, 0xd4, 0xb6, 0xbb, 0x53, 0xdb, 0xaa, 0xc1, 0x8e, 0x39, 0x52, 0xdd, 0x81, 0x5f, 0xa1, 0x4b, 0x0b, 0xf6, 0x15, 0x65, 0x11, 0xeb, 0x40, 0x8e, 0x00, 0x22, 0xd0, 0xe1, 0x7e, 0xc6, 0xca, 0x21, 0xc7, 0x56, 0xd6, 0x27, 0x94, 0x3e, 0x0e, 0x80, 0x93, 0xcb, 0x0f, 0xfd, 0xfa, 0x92, 0xe9, 0x63, 0x76, 0xf7, 0x20, 0x1d, 0xc5, 0x3e, 0xf7, 0x29, 0x66, 0x90, 0xbc, 0x30, 0xff, 0x59, 0xfb, 0xed, 0x87, 0x7f, 0x36, 0x80, 0x02, 0x7d, 0x98, 0xd4, 0x75, 0x30, 0xb7, 0x0e, 0xe7, 0x36, 0xe8, 0xe6, 0x75, 0x13, 0x56, 0x49, 0xb6, 0x24, 0xf2, 0x5a, 0x19, 0xec, 0xca, 0x04, 0x7d, 0x31, 0x1c, 0x09, 0xd8, 0xc7, 0x20, 0x77, 0x25, 0x04, 0xf5, 0x30, 0x91, 0x7c, 0xaf, 0x08, 0x6e, 0x55, 0x59, 0x77, 0xf3, 0xac, 0x6c, 0x91, 0xe5, 0x03, 0x37, 0x2e, 0x52, 0x72, 0x9c, 0xfc, 0x8b, 0xea, 0x0a, 0x2a, 0x3b, 0x5b, 0xca, 0x0a, 0xbe, 0xd2, 0xda, 0x84, 0x87, 0x48, 0xa5, 0x60, 0x4b, 0xba, 0xa5, 0x9a, 0xad, 0x8d, 0x0a, 0x77, 0x61, 0x5d, 0xd6, 0xbb, 0x23, 0x4f, 0x3c, 0xf5, 0xab, 0x5f, 0x8b, 0x87, 0xa7, 0x6c, 0xb7, 0x0f, 0x66, 0x6d, 0xbe, 0x36, 0xe7, 0x03, 0x73, 0x96, 0x75, 0x7f, 0xca, 0x76, 0x37, 0x67, 0xdb, 0xf3, 0x4a, 0x44, 0x92, 0xb6, 0x31, 0xda, 0xff, 0x85, 0x29, 0xdb, 0x7e, 0xc6, 0x76, 0x8a, 0x7c, 0xed, 0x48, 0xba, 0xb6, 0x6c, 0xb4, 0xe4, 0x6b, 0x4a, 0x73, 0xdb, 0x75, 0x29, 0xdb, 0x7e, 0xce, 0xf6, 0xba, 0xa4, 0x6d, 0x60, 0x06, 0xac, 0x49, 0xd9, 0xfe, 0x65, 0x19, 0xdb, 0x7d, 0x29, 0xdb, 0x3f, 0x3f, 0x67, 0xfb, 0xd7, 0x4d, 0xd9, 0xfe, 0x35, 0xb3, 0x91, 0x71, 0x7b, 0xe8, 0x44, 0xf2, 0xa9, 0x14, 0x9d, 0xbd, 0xe8, 0x45, 0x7c, 0xd6, 0x4a, 0xcc, 0x56, 0x02, 0x8b, 0x17, 0x66, 0x96, 0x61, 0x58, 0xa3, 0xf1, 0x14, 0xf7, 0xb0, 0x6e, 0x48, 0x68, 0x25, 0x92, 0x01, 0xe7, 0xc7, 0x81, 0x1f, 0xc5, 0x6e, 0x7a, 0x5d, 0xcf, 0xb9, 0x3d, 0x21, 0x95, 0x84, 0x07, 0x56, 0xa2, 0xe3, 0x33, 0x9d, 0xe7, 0x7e, 0x7d, 0x96, 0xd3, 0xcc, 0xeb, 0xbd, 0x47, 0xce, 0x56, 0x97, 0xbf, 0xac, 0xa8, 0x4e, 0x39, 0x66, 0xb7, 0x4b, 0xc1, 0xc8, 0x58, 0xb8, 0x8c, 0x42, 0xd0, 0xf0, 0x6b, 0xf0, 0x92, 0x66, 0xb6, 0x45, 0xab, 0x0d, 0x49, 0xd8, 0x36, 0xee, 0x41, 0x31, 0x0c, 0xd0, 0x09, 0xfc, 0x75, 0x40, 0x86, 0x50, 0xd9, 0x8b, 0x32, 0xed, 0x1a, 0xb7, 0x70, 0x6f, 0xf4, 0x88, 0x2b, 0xd7, 0x35, 0xa4, 0x23, 0xf3, 0x0c, 0x00, 0xc3, 0xf0, 0x7d, 0xc6, 0x6b, 0x77, 0x39, 0x68, 0xdc, 0x52, 0x4e, 0xdf, 0x19, 0x25, 0xef, 0x48, 0x7d, 0x34, 0xca, 0xba, 0x99, 0x91, 0x0c, 0x2e, 0xbf, 0x8b, 0x0d, 0xd7, 0xc6, 0x08, 0x36, 0xf4, 0xf3, 0xfe, 0xdd, 0x49, 0x18, 0x9f, 0x46, 0xf4, 0xe0, 0x60, 0x67, 0x07, 0x19, 0x52, 0x57, 0xe9, 0xed, 0xed, 0xa8, 0xce, 0x76, 0x66, 0xe5, 0xb4, 0xde, 0xa1, 0x13, 0xd4, 0x2f, 0x5f, 0x35, 0x8b, 0xf9, 0xba, 0xac, 0x87, 0xbc, 0xd6, 0x62, 0x69, 0x45, 0x44, 0x76, 0x99, 0x97, 0x6c, 0x6d, 0xe5, 0x7e, 0x27, 0x00, 0xf0, 0xfd, 0x00, 0x40, 0x0c, 0x55, 0x05, 0x66, 0x51, 0xe6, 0xff, 0xd0, 0x12, 0x87, 0x82, 0x4a, 0x91, 0x82, 0x72, 0xbf, 0x73, 0xb6, 0x57, 0x43, 0x10, 0x1e, 0x10, 0xdb, 0x01, 0x84, 0xf8, 0x9b, 0x35, 0x60, 0x61, 0xed, 0x3d, 0xd3, 0x4d, 0x6f, 0x35, 0xad, 0xb6, 0xe4, 0x15, 0x76, 0xd5, 0x03, 0x9d, 0xf5, 0xf4, 0xb1, 0xfe, 0xd5, 0x59, 0x82, 0xa1, 0x6e, 0x92, 0xf2, 0x0f, 0x51, 0x76, 0xfd, 0x47, 0x3f, 0xc5, 0x2d, 0xb3, 0x09, 0x79, 0x2f, 0x38, 0xdb, 0x6e, 0xed, 0x4c, 0xec, 0xc3, 0x9f, 0x62, 0x26, 0xc0, 0x4f, 0x88, 0xf2, 0xc7, 0xd6, 0x1c, 0xf0, 0xd8, 0xa7, 0xf8, 0xfe, 0xf5, 0x5e, 0xdf, 0x67, 0xf7, 0x06, 0xfc, 0xe9, 0xeb, 0xbd, 0x5f, 0xf1, 0xc3, 0xef, 0xad, 0xb3, 0x8a, 0xb1, 0x26, 0x5e, 0xd0, 0x7f, 0x0f, 0x74, 0x87, 0xd7, 0x36, 0xff, 0xeb, 0xe9, 0xac, 0x20, 0xfc, 0xcd, 0xc9, 0x86, 0xf5, 0x98, 0x2e, 0x31, 0x32, 0xa7, 0x7b, 0xc5, 0x80, 0x5d, 0x82, 0xb9, 0x8e, 0x56, 0x18, 0x43, 0x05, 0x6c, 0x64, 0x80, 0x1b, 0xc6, 0x1c, 0xa2, 0x4f, 0xcf, 0x4a, 0xc5, 0xc0, 0x32, 0x86, 0x42, 0x5c, 0x0c, 0x65, 0x08, 0xf6, 0x47, 0x00, 0x7f, 0xd8, 0x10, 0xbf, 0x8b, 0xb5, 0x31, 0xe7, 0xb6, 0xdd, 0x11, 0xc7, 0xd6, 0xba, 0x96, 0x12, 0xe0, 0xd9, 0x3e, 0x52, 0xd4, 0xc4, 0xfa, 0xd1, 0xc0, 0x57, 0xba, 0x4c, 0x54, 0xe1, 0x86, 0x6d, 0x46, 0xa7, 0x77, 0xc5, 0x0f, 0x92, 0x8d, 0xe1, 0xfb, 0xe4, 0x60, 0x23, 0xd8, 0xa2, 0xd3, 0x42, 0x5a, 0xf2, 0xc0, 0xe3, 0x55, 0x01, 0xa0, 0x00, 0x5d, 0xbe, 0x7c, 0xcd, 0xe4, 0x8a, 0xf0, 0xa4, 0x9c, 0x39, 0x61, 0xdb, 0x59, 0x5c, 0x06, 0x41, 0xb8, 0x85, 0xb6, 0x1b, 0xb6, 0xed, 0xa7, 0x48, 0x90, 0x90, 0xd3, 0xc6, 0x61, 0xd3, 0x43, 0x7b, 0xe2, 0xd6, 0x1a, 0xc4, 0x5a, 0x29, 0x98, 0x48, 0xc1, 0x4c, 0xaa, 0xc6, 0x0f, 0xb1, 0x20, 0x11, 0xb3, 0xad, 0xb5, 0x94, 0x6e, 0x59, 0xd6, 0x75, 0x3e, 0x31, 0x9c, 0xfa, 0x52, 0x58, 0x64, 0x9d, 0x71, 0x3e, 0x15, 0x97, 0x5e, 0xd3, 0x6e, 0xb6, 0x60, 0x19, 0xba, 0x5b, 0x84, 0x95, 0x0a, 0x1a, 0x84, 0x38, 0x97, 0xcc, 0xec, 0x98, 0xb1, 0x5d, 0xe7, 0x34, 0x34, 0x53, 0x5b, 0x9a, 0x4c, 0xaa, 0x3c, 0xbb, 0xa0, 0x54, 0x47, 0xac, 0x48, 0x14, 0xaf, 0x2e, 0x93, 0x9d, 0x13, 0x62, 0x0a, 0x25, 0xe9, 0x50, 0xa6, 0x6d, 0x4d, 0x98, 0xa0, 0x48, 0xbf, 0x46, 0xee, 0xa3, 0xcb, 0xed, 0xae, 0x32, 0xca, 0x1c, 0xa0, 0x76, 0xb6, 0x58, 0x44, 0xaa, 0xad, 0x91, 0x7a, 0x72, 0x52, 0x2b, 0x0b, 0x9d, 0x8e, 0x6a, 0x07, 0x20, 0x36, 0xe9, 0x05, 0xc5, 0x17, 0xd1, 0x6a, 0x53, 0xd3, 0x77, 0x1d, 0xa4, 0xc2, 0xe8, 0x93, 0xf1, 0x78, 0xcf, 0x0b, 0xfd, 0x33, 0xea, 0x00, 0xda, 0x9d, 0xd8, 0xd6, 0x65, 0xc5, 0x7b, 0x99, 0xd1, 0x01, 0xc2, 0x4d, 0x3c, 0x1d, 0xfe, 0x82, 0x7a, 0x16, 0x24, 0x6f, 0xbb, 0x5a, 0x4e, 0x24, 0xb1, 0x9c, 0x12, 0xe8, 0x38, 0x5f, 0xcd, 0xae, 0xae, 0x01, 0xea, 0x03, 0x4a, 0xf9, 0xfd, 0xc0, 0xf0, 0xfb, 0x40, 0xc4, 0xbb, 0x74, 0xf9, 0xfe, 0x04, 0x79, 0x2f, 0x3f, 0x1e, 0x05, 0x21, 0xec, 0x23, 0x4f, 0x69, 0x06, 0xa1, 0x4c, 0x26, 0x88, 0x77, 0xce, 0x8d, 0xd7, 0xd4, 0x78, 0x3f, 0x33, 0xde, 0xe8, 0x7c, 0x5e, 0xac, 0xde, 0x81, 0xb2, 0x92, 0x83, 0x35, 0x1e, 0x25, 0xc6, 0x0d, 0x45, 0x7b, 0x8e, 0x67, 0x41, 0x93, 0x4d, 0x9f, 0x97, 0xeb, 0x50, 0xd7, 0x79, 0x6a, 0x15, 0x28, 0xf7, 0x21, 0xde, 0x4f, 0x41, 0xe7, 0x4e, 0x7b, 0x6b, 0x43, 0x88, 0xdb, 0x33, 0x0e, 0x52, 0xa4, 0xb2, 0xf3, 0xed, 0x78, 0x1c, 0xa6, 0xc8, 0x17, 0xc6, 0x38, 0x29, 0x2f, 0x8b, 0xfc, 0xef, 0xc0, 0x0c, 0xa2, 0xa0, 0x65, 0x37, 0xbd, 0xb5, 0x55, 0xa4, 0x90, 0x78, 0x01, 0x79, 0x4a, 0x94, 0x08, 0xf9, 0x1b, 0x92, 0xe8, 0x20, 0x75, 0x28, 0x1d, 0x8c, 0xf0, 0xc5, 0x6c, 0x26, 0x20, 0x05, 0x19, 0xa4, 0x29, 0x36, 0xdb, 0x62, 0x36, 0x77, 0x96, 0x3f, 0x1c, 0x1c, 0xae, 0x52, 0x85, 0x60, 0x02, 0x45, 0x01, 0xbf, 0x78, 0xa4, 0x9f, 0x5d, 0x54, 0x80, 0xbe, 0x95, 0x3f, 0xbf, 0xa4, 0x20, 0x8e, 0x8e, 0x95, 0xdd, 0x32, 0x03, 0x6d, 0x49, 0x02, 0x0f, 0x56, 0x47, 0x72, 0xb2, 0xeb, 0x2c, 0x26, 0x5e, 0x74, 0x8f, 0x59, 0x90, 0x3e, 0x08, 0x85, 0x50, 0x95, 0xcf, 0x34, 0xbc, 0x5b, 0x5d, 0x00, 0x42, 0x1b, 0xe8, 0x78, 0x00, 0xf2, 0x20, 0xb9, 0xf1, 0x15, 0xf3, 0x5f, 0xfc, 0xe9, 0xe8, 0x84, 0xc3, 0xf8, 0x0b, 0x19, 0xc3, 0x05, 0xda, 0x4a, 0x20, 0xb1, 0x51, 0xe8, 0xc2, 0x46, 0x7b, 0xb4, 0x12, 0x1c, 0x03, 0x74, 0x77, 0xb8, 0x97, 0xa5, 0x1a, 0x8c, 0xbb, 0xa1, 0x61, 0x80, 0x11, 0xe1, 0xe3, 0x51, 0x5d, 0x95, 0xba, 0xee, 0xcd, 0xaf, 0xa9, 0x52, 0x4b, 0xa9, 0xa2, 0x4b, 0x5a, 0xae, 0xff, 0x82, 0x9d, 0x22, 0xa7, 0x88, 0x88, 0x8f, 0xdf, 0xf6, 0x15, 0x6c, 0x4b, 0x31, 0x06, 0x88, 0x0d, 0x48, 0x4b, 0xf0, 0x82, 0xa0, 0x05, 0xac, 0x8c, 0x4d, 0x46, 0xb8, 0xcc, 0x5c, 0x56, 0x64, 0x69, 0x65, 0x40, 0xdc, 0x87, 0x59, 0xae, 0x78, 0xea, 0x86, 0x4b, 0xe5, 0xb2, 0xdd, 0xc5, 0xde, 0xc9, 0x20, 0x3d, 0xba, 0xfc, 0x27, 0xa8, 0x44, 0xf9, 0x45, 0xa5, 0x28, 0x9f, 0xb6, 0x12, 0xc5, 0x49, 0x0a, 0x92, 0x3a, 0xa1, 0x9c, 0x40, 0x94, 0x90, 0x5c, 0x32, 0x9c, 0x06, 0x75, 0x93, 0xda, 0xc6, 0x40, 0xfc, 0x5a, 0x67, 0xb8, 0xf8, 0x65, 0x1a, 0x24, 0xad, 0x2c, 0xd9, 0x2c, 0xe0, 0x91, 0x5b, 0xc2, 0x35, 0xb6, 0x7b, 0xe0, 0x97, 0x32, 0x2a, 0x19, 0x9f, 0x65, 0x02, 0x9d, 0xf6, 0x07, 0xd7, 0x98, 0xe7, 0x53, 0x1b, 0x60, 0x7b, 0x86, 0x37, 0xbf, 0xf0, 0xe4, 0xf1, 0x9f, 0xee, 0x15, 0xc8, 0xb8, 0x67, 0xf4, 0x9a, 0x03, 0x28, 0xf5, 0xf8, 0x9d, 0xc3, 0x28, 0xab, 0x63, 0xa8, 0xaa, 0x76, 0x18, 0x61, 0x76, 0x96, 0xbd, 0x51, 0x66, 0x1c, 0xbd, 0xdf, 0xc3, 0xe0, 0x32, 0x8d, 0xbb, 0xaa, 0x49, 0x6c, 0x38, 0xfa, 0x24, 0x6b, 0x6e, 0x48, 0x8b, 0xc3, 0x7e, 0xe8, 0x46, 0x7a, 0x5c, 0x40, 0xb6, 0xa8, 0x37, 0xdf, 0x65, 0xc0, 0x69, 0x70, 0xc4, 0x50, 0x18, 0x66, 0xd9, 0xfa, 0x45, 0x34, 0xa6, 0x1b, 0xdc, 0xbe, 0x68, 0xa7, 0x2d, 0x17, 0xa2, 0x6e, 0xed, 0x8d, 0xe6, 0xe2, 0xb6, 0x2a, 0x86, 0x34, 0x6d, 0x49, 0x1e, 0xf4, 0x7d, 0xfc, 0xf6, 0x1a, 0xcb, 0xb5, 0x8d, 0x02, 0x56, 0x50, 0x60, 0x0c, 0xef, 0xca, 0x7c, 0xf4, 0xfc, 0x3d, 0x55, 0x2b, 0x82, 0x9d, 0x44, 0x71, 0xb9, 0x58, 0x68, 0xb8, 0x8f, 0xc9, 0xb0, 0x27, 0x47, 0x7e, 0x9b, 0x2e, 0xcd, 0xcf, 0x28, 0x24, 0x08, 0xc4, 0x5f, 0x6e, 0x0b, 0x19, 0xe4, 0x25, 0x80, 0x00, 0xfc, 0x89, 0x75, 0xc2, 0xe2, 0x38, 0x9f, 0xb0, 0x8f, 0x85, 0x18, 0x67, 0xb1, 0xee, 0x43, 0xb5, 0x20, 0x6a, 0xa9, 0x77, 0x4a, 0x83, 0xe4, 0x12, 0x6c, 0xf1, 0x85, 0xab, 0x80, 0x47, 0x16, 0x7c, 0x80, 0x4d, 0x88, 0x0c, 0xdf, 0x5a, 0x64, 0x39, 0x8a, 0xf4, 0x20, 0x85, 0xa6, 0x83, 0x8a, 0xac, 0x60, 0xfe, 0x92, 0xc5, 0xa7, 0x3d, 0x29, 0x9d, 0xab, 0xc7, 0xb6, 0x98, 0x0e, 0x5b, 0x0d, 0x13, 0x28, 0x97, 0xbe, 0x20, 0x08, 0xd5, 0x32, 0xbe, 0xed, 0xdc, 0xdb, 0x17, 0x99, 0x8c, 0xe5, 0x70, 0xb4, 0x6e, 0xad, 0xc4, 0x1e, 0x22, 0xb1, 0xb9, 0xad, 0x31, 0xd5, 0x45, 0x8c, 0x5f, 0x9e, 0x6d, 0x27, 0x67, 0x1d, 0x24, 0x18, 0x14, 0x25, 0x91, 0x30, 0xf5, 0xf9, 0xb0, 0x74, 0x4a, 0x64, 0x00, 0xd2, 0x7e, 0xd4, 0x10, 0x85, 0x7d, 0xb6, 0x50, 0xbb, 0x08, 0xfd, 0xfe, 0xea, 0x8c, 0xa9, 0xb3, 0x96, 0x43, 0x14, 0x69, 0x30, 0x28, 0x88, 0x98, 0x94, 0xfe, 0x35, 0x35, 0x16, 0x74, 0x49, 0xa5, 0x76, 0xdc, 0x9b, 0x4c, 0x9c, 0xf2, 0x8a, 0x7f, 0x32, 0x0f, 0x52, 0x1d, 0xb1, 0x11, 0x9a, 0x75, 0xee, 0xa1, 0x1f, 0x49, 0x93, 0xd0, 0x9a, 0xa5, 0x52, 0xa7, 0x89, 0x07, 0x78, 0xd8, 0x65, 0x56, 0x64, 0x31, 0x84, 0xb0, 0x3b, 0x08, 0x72, 0x21, 0xe9, 0xd9, 0xa8, 0x0b, 0x6e, 0xee, 0x05, 0x0d, 0x64, 0x72, 0x79, 0xe9, 0x1a, 0x19, 0xf4, 0x00, 0xa0, 0xb2, 0x8e, 0x47, 0x3d, 0x42, 0x89, 0x23, 0x12, 0x4c, 0x3e, 0x4c, 0x82, 0x69, 0xb9, 0xbc, 0xa3, 0xcd, 0x30, 0x8f, 0xd5, 0xf5, 0xd5, 0xbe, 0xe1, 0x1b, 0xfb, 0xa3, 0xcf, 0x19, 0x34, 0xfb, 0xca, 0x08, 0xeb, 0x08, 0x5a, 0x32, 0xa7, 0x8f, 0x48, 0x37, 0xe1, 0xce, 0x78, 0xa2, 0x85, 0x8f, 0x9c, 0xe2, 0x3f, 0xfc, 0xef, 0x44, 0x69, 0x7f, 0x5b, 0x85, 0xf1, 0xbb, 0x2d, 0x22, 0xa8, 0x84, 0xc8, 0x6a, 0x9b, 0x7b, 0x5f, 0x72, 0xa6, 0xc1, 0x24, 0x6f, 0xd0, 0x73, 0x42, 0xad, 0xc8, 0xf6, 0xd5, 0x44, 0x7f, 0xb8, 0x0a, 0x6f, 0x45, 0x6b, 0xe2, 0x47, 0xc9, 0x7f, 0xa7, 0x4f, 0xe9, 0xdb, 0x5c, 0x96, 0x81, 0x64, 0x88, 0xaf, 0x8e, 0x5e, 0x9f, 0xbe, 0x3b, 0x6a, 0x97, 0x2b, 0x36, 0xc0, 0xdc, 0x4a, 0x10, 0xec, 0xef, 0xce, 0x8e, 0xd1, 0x06, 0x05, 0x06, 0x41, 0x32, 0x15, 0x72, 0xb2, 0xfb, 0x93, 0xb3, 0xef, 0x5f, 0xd9, 0xd9, 0x91, 0x96, 0x50, 0x70, 0x13, 0x33, 0x19, 0x74, 0xc0, 0x3b, 0xdd, 0x15, 0xed, 0xa4, 0x05, 0x50, 0xaf, 0x36, 0xe9, 0xfd, 0x6e, 0xe7, 0x87, 0x14, 0x0b, 0x4e, 0x8c, 0xd1, 0x52, 0x7d, 0x40, 0xdc, 0xd7, 0x35, 0x95, 0xde, 0xdb, 0x41, 0x03, 0xbd, 0x97, 0xad, 0x23, 0x06, 0x9c, 0xe2, 0xd4, 0xe2, 0x34, 0x01, 0xaa, 0x1f, 0x01, 0xfd, 0x8d, 0x92, 0xf0, 0x43, 0x9a, 0x14, 0x82, 0xaf, 0xc4, 0x18, 0xf6, 0x15, 0x65, 0x69, 0x23, 0x10, 0xc2, 0xd2, 0x8e, 0x1c, 0x2e, 0x44, 0xb4, 0xb6, 0x2d, 0xdc, 0x80, 0x11, 0x18, 0x25, 0xdc, 0xe3, 0x6f, 0x64, 0x24, 0x42, 0x6e, 0xbe, 0xb9, 0x55, 0x53, 0xa1, 0x83, 0x37, 0x55, 0xfb, 0x9b, 0x44, 0x2d, 0xe8, 0xcd, 0x3f, 0x6c, 0xba, 0x9a, 0x10, 0x6e, 0x6f, 0x19, 0x6f, 0x07, 0xeb, 0xda, 0x03, 0x6e, 0xdf, 0x97, 0xbf, 0xa5, 0x2b, 0xee, 0xab, 0xc7, 0x96, 0xd0, 0x9d, 0xa4, 0xf4, 0xa0, 0x4b, 0xef, 0x8a, 0x91, 0x64, 0xc1, 0x38, 0x44, 0x98, 0xea, 0x28, 0x1a, 0xf0, 0x0b, 0x8b, 0x2f, 0x1a, 0x82, 0x5d, 0x70, 0x2d, 0xc3, 0x94, 0xe1, 0x20, 0x60, 0xa6, 0x7d, 0x2d, 0x10, 0x8a, 0x40, 0x2f, 0xb6, 0xfa, 0xae, 0x68, 0xe8, 0xa2, 0x32, 0x4f, 0x99, 0x96, 0x55, 0xb4, 0x00, 0x8c, 0x08, 0xc9, 0x91, 0x6e, 0x0d, 0xa4, 0x89, 0xe7, 0x4f, 0x9e, 0x93, 0x68, 0x47, 0x86, 0x92, 0x34, 0xcc, 0x13, 0xf8, 0x6d, 0x44, 0x4f, 0x19, 0x5b, 0x39, 0x00, 0xbb, 0xf6, 0xd7, 0xa0, 0x4d, 0xce, 0x27, 0xd9, 0x9c, 0x9b, 0xf4, 0x8d, 0xbd, 0x41, 0x42, 0x30, 0xa5, 0x35, 0x07, 0x46, 0x30, 0x7e, 0x86, 0x7c, 0xf2, 0xfa, 0x63, 0xb2, 0xf5, 0xef, 0xdb, 0x8c, 0x40, 0xa2, 0x69, 0x39, 0xe4, 0x9b, 0xcd, 0x8b, 0x55, 0x40, 0xf9, 0xe4, 0x9c, 0xcb, 0x5b, 0x9b, 0x8a, 0x3d, 0xc7, 0xfa, 0x26, 0xb1, 0x9a, 0xbc, 0xba, 0x29, 0x97, 0x09, 0x77, 0x55, 0xac, 0x82, 0xe0, 0x98, 0x1c, 0xd7, 0x5a, 0x3b, 0xb5, 0xbf, 0x6c, 0x21, 0x94, 0x88, 0x60, 0x42, 0xc0, 0x2c, 0x17, 0x87, 0xab, 0x6a, 0x57, 0xa3, 0xe4, 0x7d, 0x81, 0x44, 0x3c, 0xa1, 0x3b, 0x91, 0x13, 0x79, 0x61, 0xd6, 0x6f, 0x68, 0xda, 0x48, 0x8a, 0x08, 0x13, 0xfa, 0x5b, 0x9b, 0xf9, 0x08, 0x93, 0xec, 0x04, 0x48, 0x71, 0x69, 0x85, 0xad, 0x59, 0xb6, 0x95, 0x24, 0xaf, 0xc3, 0xf6, 0x93, 0xdc, 0x3e, 0x8f, 0x48, 0xdd, 0x2c, 0x07, 0x63, 0x53, 0x08, 0x3c, 0x9b, 0xcf, 0x87, 0x8c, 0x71, 0x4f, 0x88, 0xdf, 0xa4, 0xdc, 0x73, 0x95, 0x34, 0x12, 0xd8, 0x7c, 0xc3, 0x27, 0x90, 0x2c, 0x28, 0xf6, 0x06, 0x92, 0xac, 0xc2, 0x8d, 0x48, 0x29, 0x96, 0x06, 0xd6, 0xa8, 0x72, 0xcf, 0x39, 0x43, 0xb0, 0x39, 0xbc, 0xa4, 0xbe, 0x86, 0x71, 0x21, 0x5c, 0xec, 0xf4, 0xea, 0xb2, 0x5a, 0x72, 0xd3, 0xca, 0x58, 0x47, 0x4d, 0x5f, 0xeb, 0xe6, 0x47, 0x95, 0x28, 0xea, 0xac, 0xe1, 0xc9, 0xf0, 0xbb, 0xc7, 0xaf, 0xf4, 0x2a, 0x5a, 0x25, 0x83, 0x4c, 0xbf, 0xf8, 0x70, 0xf6, 0x31, 0xdc, 0x47, 0x27, 0x35, 0xec, 0x50, 0xce, 0xc4, 0x98, 0x28, 0x34, 0x39, 0x7e, 0x17, 0x1f, 0x4e, 0x46, 0x61, 0x55, 0x95, 0xc7, 0xd0, 0x81, 0x41, 0x2a, 0xc6, 0x12, 0xcd, 0xa9, 0xff, 0x18, 0x11, 0xc3, 0x65, 0x56, 0xd9, 0xcf, 0x84, 0x49, 0x92, 0x57, 0x8b, 0x72, 0x46, 0x35, 0x5d, 0xd9, 0xfd, 0x7b, 0x41, 0x4f, 0xba, 0xfb, 0x26, 0xe5, 0x70, 0xb5, 0x85, 0xba, 0xe5, 0x8a, 0x3d, 0xea, 0x45, 0xd0, 0xd4, 0xb2, 0x33, 0xf1, 0xe1, 0xdc, 0x52, 0xb5, 0x89, 0xac, 0xbc, 0xe9, 0x2f, 0xa1, 0x48, 0xca, 0x69, 0xe3, 0xad, 0x80, 0x1e, 0x88, 0x0f, 0xc7, 0x8c, 0x35, 0xb2, 0x32, 0x2a, 0x90, 0x82, 0x45, 0xb9, 0x7e, 0x65, 0xfc, 0x60, 0x70, 0xc8, 0xe6, 0x87, 0x0e, 0x13, 0xb8, 0x75, 0xc2, 0xfd, 0x2b, 0x8b, 0x9d, 0x30, 0x66, 0xd0, 0x3d, 0x60, 0x87, 0x53, 0x8e, 0xc7, 0x87, 0xf1, 0xe1, 0xec, 0x09, 0x0b, 0x08, 0xf9, 0x9a, 0x03, 0x96, 0xaf, 0x04, 0xbb, 0x30, 0x2f, 0x8c, 0x7a, 0xb7, 0xaa, 0xa6, 0xd9, 0x07, 0xcc, 0xad, 0x49, 0xab, 0xcb, 0xac, 0xf9, 0xb0, 0x7e, 0x43, 0xe6, 0x82, 0xa6, 0x70, 0xb7, 0x40, 0x17, 0x78, 0xcb, 0x2c, 0x04, 0xf7, 0x37, 0x15, 0x74, 0x01, 0xa3, 0xe0, 0xe1, 0xf7, 0x6c, 0xcd, 0xf4, 0x90, 0xbd, 0xfb, 0x5e, 0xa2, 0x50, 0x3a, 0x46, 0x5c, 0xe6, 0x85, 0x82, 0xd8, 0x08, 0x8f, 0xf1, 0xa6, 0x98, 0xc4, 0x90, 0x97, 0xd6, 0x85, 0xab, 0x16, 0x1f, 0xa9, 0xc4, 0xca, 0x2a, 0x01, 0x1f, 0x22, 0xbd, 0x5b, 0x7c, 0x3a, 0xe6, 0xc7, 0xf5, 0xb8, 0x79, 0x4d, 0x52, 0x43, 0x68, 0x9b, 0x05, 0xfb, 0x27, 0x9d, 0x84, 0xa5, 0xd0, 0x9e, 0x40, 0xd4, 0x0f, 0xda, 0x1b, 0xd9, 0x9d, 0xdd, 0xf2, 0x66, 0x66, 0x1d, 0x31, 0xe6, 0xaf, 0xfa, 0x5d, 0x15, 0xee, 0xe8, 0xed, 0xa1, 0xfd, 0xb8, 0x29, 0x81, 0x89, 0x07, 0xbb, 0x50, 0x64, 0xf2, 0xde, 0x4f, 0x17, 0x4d, 0xa8, 0xff, 0x04, 0x1f, 0xaf, 0x32, 0xce, 0x7b, 0xc5, 0xf6, 0xca, 0x61, 0xf4, 0x6f, 0x8d, 0x3c, 0xed, 0xa6, 0xc8, 0xdc, 0xdd, 0xb1, 0xae, 0x2a, 0xb2, 0x45, 0xfd, 0xec, 0x4e, 0xbe, 0xda, 0xb9, 0x0e, 0xb3, 0x8c, 0xfc, 0xb2, 0x42, 0x08, 0x94, 0xb0, 0xc5, 0x03, 0x29, 0xd7, 0x5b, 0x47, 0x46, 0xbd, 0x7b, 0x5c, 0x2d, 0xee, 0xb9, 0xe2, 0xe6, 0x01, 0xb7, 0x2a, 0xc6, 0xe1, 0xb0, 0xab, 0x0a, 0xee, 0xa5, 0x5c, 0xe2, 0x9e, 0x9d, 0xef, 0x9b, 0x41, 0x8b, 0x06, 0xd7, 0xcd, 0xc4, 0xa7, 0x3e, 0x7f, 0x32, 0x6e, 0x6b, 0x8d, 0x2a, 0xd7, 0xa0, 0x19, 0xb8, 0xce, 0x2c, 0x3e, 0x9c, 0x25, 0x4f, 0x7d, 0x4f, 0xb6, 0x67, 0xe0, 0xf9, 0x2e, 0xb9, 0xd1, 0x8b, 0x31, 0x1b, 0x43, 0xda, 0xd0, 0xeb, 0xfd, 0xb3, 0xd8, 0x03, 0xd9, 0xe7, 0xf3, 0xc2, 0xb7, 0xc8, 0xe9, 0x8b, 0x46, 0xf2, 0xae, 0x29, 0x65, 0xf1, 0x9a, 0x43, 0xd8, 0x03, 0xe7, 0x56, 0xcf, 0x88, 0xbb, 0x22, 0x21, 0x0f, 0x89, 0xaa, 0xe8, 0x13, 0x26, 0x4a, 0x2a, 0xe0, 0xe2, 0x66, 0xd4, 0x81, 0x25, 0xcc, 0x9b, 0xe7, 0x4f, 0x72, 0xd6, 0x16, 0xc3, 0x20, 0x53, 0xe4, 0x50, 0x94, 0x10, 0x6d, 0x24, 0x5d, 0x67, 0x62, 0x25, 0xe8, 0xe3, 0x09, 0x37, 0x75, 0x09, 0xfb, 0x67, 0x77, 0x12, 0xe8, 0x48, 0xfd, 0xe8, 0xc0, 0xa0, 0x67, 0x97, 0x33, 0xbf, 0x1b, 0xbd, 0xb7, 0xfc, 0x6a, 0xc0, 0x5b, 0x70, 0x69, 0x16, 0x8f, 0x3f, 0xa2, 0x45, 0x22, 0x50, 0x89, 0xa1, 0xab, 0x10, 0xea, 0xc1, 0x76, 0xf2, 0x4e, 0x42, 0x9b, 0xa4, 0xd3, 0xdd, 0x35, 0x04, 0xb2, 0x4d, 0x03, 0x6c, 0xe5, 0x23, 0x23, 0x0c, 0xb9, 0x28, 0x80, 0x14, 0x24, 0xea, 0x94, 0x10, 0x0b, 0x14, 0x6f, 0x4b, 0x40, 0x94, 0x1d, 0x6e, 0x3b, 0x7b, 0xa3, 0xbd, 0x81, 0x6f, 0x75, 0xba, 0xd4, 0x3f, 0xd2, 0xbd, 0x53, 0x0b, 0xd1, 0x4e, 0x9f, 0xee, 0xfa, 0x19, 0xde, 0xd1, 0x87, 0xeb, 0xd0, 0x2d, 0x0c, 0xd7, 0xb2, 0x33, 0x58, 0x6e, 0xd2, 0xbb, 0x50, 0x31, 0xdd, 0x1d, 0x3e, 0x7e, 0xfe, 0xbc, 0x25, 0xcf, 0x6b, 0x0f, 0xdf, 0xfe, 0xc9, 0xee, 0x2e, 0xd6, 0x16, 0xd4, 0x44, 0x9b, 0x5f, 0x0c, 0x9f, 0xe3, 0xc5, 0xf6, 0x6b, 0x75, 0x66, 0x8e, 0x60, 0xd6, 0xff, 0xde, 0x90, 0x7e, 0x13, 0xf9, 0x1c, 0xfc, 0x29, 0xbd, 0x6f, 0x3d, 0xa7, 0xcf, 0x45, 0xde, 0xc2, 0xc3, 0xbc, 0x8f, 0xe5, 0xc5, 0x05, 0x39, 0xb2, 0xe8, 0x49, 0xc5, 0xe5, 0xb9, 0x49, 0xab, 0x59, 0xb8, 0xdc, 0xdd, 0xc1, 0x70, 0xaf, 0x6f, 0xb9, 0x88, 0x26, 0x23, 0x01, 0x8e, 0xce, 0x93, 0xec, 0x44, 0x63, 0x7d, 0x70, 0x81, 0x50, 0x77, 0xa0, 0x3d, 0x33, 0xa3, 0xbd, 0xe7, 0xcf, 0x07, 0x34, 0xb3, 0x27, 0xcf, 0x9f, 0xf7, 0x16, 0x84, 0x7b, 0x9f, 0xb9, 0x29, 0x9d, 0xfb, 0x89, 0x5e, 0x77, 0x44, 0x53, 0x93, 0x91, 0x13, 0xff, 0x0e, 0xfd, 0x26, 0xf9, 0x22, 0x79, 0x7b, 0x7a, 0x7e, 0xe4, 0x79, 0x66, 0x70, 0xbf, 0x38, 0x60, 0xe8, 0x99, 0x9a, 0x88, 0xc1, 0x2e, 0xd1, 0x6a, 0x0d, 0x56, 0xaf, 0xb1, 0x49, 0x42, 0x63, 0x12, 0xc5, 0x2a, 0xea, 0x11, 0xfc, 0xb7, 0x30, 0x23, 0x02, 0xfd, 0xd4, 0x2e, 0xf3, 0xc6, 0x87, 0x6d, 0xda, 0x32, 0x87, 0xbd, 0x0d, 0x17, 0x07, 0x27, 0xb9, 0x49, 0x30, 0x65, 0xb3, 0xa6, 0xea, 0x0e, 0x4e, 0x84, 0xa5, 0x7f, 0x94, 0xcb, 0xcd, 0xa0, 0xc0, 0x22, 0x9b, 0x53, 0xde, 0xaa, 0x48, 0x42, 0x7e, 0x61, 0x88, 0x27, 0xe5, 0xba, 0xc0, 0x5e, 0xbd, 0x85, 0x07, 0x3e, 0x05, 0xaa, 0xa5, 0xff, 0xf1, 0x48, 0x3c, 0x85, 0x38, 0x21, 0x27, 0x62, 0x68, 0x65, 0x16, 0x0d, 0xe3, 0xa3, 0x1b, 0x6f, 0xd6, 0xce, 0xe1, 0x69, 0xbd, 0x73, 0x05, 0x9d, 0x43, 0x80, 0x47, 0xc8, 0x4e, 0xfc, 0x59, 0xb6, 0xd4, 0x94, 0xd2, 0xa2, 0x3d, 0x8e, 0xa1, 0xe5, 0x8b, 0xfc, 0x72, 0x55, 0xc5, 0xd3, 0x2f, 0xd1, 0xd2, 0x4f, 0x32, 0x1d, 0xb4, 0x9b, 0x43, 0x7a, 0x93, 0x56, 0x99, 0xf6, 0x20, 0x2c, 0xee, 0xec, 0xdd, 0x56, 0x2b, 0x58, 0xeb, 0x81, 0xa8, 0xd5, 0x46, 0x60, 0x49, 0x53, 0x09, 0x97, 0xd1, 0x63, 0xc8, 0x4b, 0x20, 0x29, 0x3a, 0xd2, 0x52, 0x22, 0x6d, 0x5c, 0x45, 0x96, 0x38, 0x10, 0xe9, 0xb0, 0x49, 0x98, 0x02, 0x33, 0x13, 0x5b, 0x10, 0xe6, 0xd4, 0x6d, 0xce, 0x9d, 0xef, 0x9e, 0x9e, 0x85, 0xb7, 0xe5, 0xaa, 0xf4, 0xda, 0xb7, 0x84, 0xa0, 0x0d, 0xc4, 0x79, 0x18, 0xce, 0x05, 0x7f, 0xe5, 0x43, 0x32, 0xcf, 0xdf, 0x14, 0xf3, 0x32, 0x9d, 0x39, 0xe7, 0xc9, 0x52, 0xd3, 0x75, 0x05, 0x72, 0x4c, 0x8e, 0x36, 0xc8, 0xea, 0xa0, 0x93, 0xe6, 0x33, 0x4e, 0xb6, 0x3c, 0x40, 0x11, 0x50, 0xa8, 0xe7, 0x06, 0x61, 0x2e, 0x45, 0x94, 0xc2, 0x00, 0x19, 0x04, 0x77, 0x13, 0x9a, 0xbd, 0x44, 0xef, 0x7c, 0x5a, 0x36, 0xd1, 0x05, 0xed, 0x68, 0x49, 0x48, 0x7a, 0x2e, 0x8d, 0x64, 0x7c, 0xfc, 0x3f, 0x8e, 0x3e, 0x65, 0xd4, 0xa9, 0x4a, 0x6f, 0x6c, 0xe1, 0xe0, 0xf7, 0x0c, 0x58, 0x29, 0xd1, 0x20, 0x8b, 0x54, 0x91, 0xce, 0xc5, 0x86, 0xa7, 0x96, 0xa7, 0x90, 0x1e, 0x08, 0x2b, 0x4a, 0xb7, 0x69, 0x43, 0x58, 0x21, 0x6d, 0x53, 0x7d, 0x9f, 0x43, 0x2e, 0xe3, 0x5c, 0x74, 0x54, 0x7c, 0xb1, 0x03, 0x90, 0xcf, 0x71, 0x01, 0x57, 0x22, 0x4c, 0x7b, 0xf2, 0xf6, 0x32, 0x9c, 0x54, 0xa4, 0x91, 0x2c, 0x10, 0x11, 0x69, 0x52, 0x66, 0xae, 0xf7, 0xb4, 0x8c, 0xf4, 0x2b, 0xed, 0x33, 0x6e, 0xab, 0x41, 0xe1, 0xa9, 0x2a, 0x79, 0xf1, 0xfe, 0xdd, 0x49, 0x4f, 0xb9, 0xe4, 0x18, 0x67, 0x40, 0x9b, 0xb5, 0xf1, 0x2e, 0x03, 0x9a, 0x59, 0x95, 0x9c, 0xa5, 0x97, 0xd9, 0x86, 0x0f, 0x20, 0xd7, 0x42, 0x90, 0x14, 0x07, 0x44, 0xcc, 0x9d, 0xe2, 0xb7, 0x43, 0x21, 0x26, 0xee, 0xc2, 0xc2, 0x7e, 0x91, 0xe3, 0xc5, 0x3c, 0x95, 0xbd, 0x5b, 0x55, 0x14, 0xce, 0xc7, 0xce, 0x47, 0x3a, 0x7d, 0xa9, 0x9f, 0xb2, 0x03, 0xfd, 0x29, 0x1d, 0xcc, 0x50, 0x96, 0x95, 0x2e, 0x89, 0x86, 0x92, 0x8d, 0x3f, 0x92, 0x07, 0x7e, 0x43, 0xa7, 0x39, 0xcc, 0xc2, 0x20, 0x9b, 0x6e, 0x05, 0x05, 0x86, 0x5b, 0x5e, 0xa8, 0xb6, 0xef, 0x9e, 0x66, 0xad, 0xf1, 0xd6, 0x8c, 0xf0, 0x78, 0x6b, 0xc4, 0x92, 0x83, 0x4e, 0x6e, 0x14, 0xfe, 0x22, 0xd0, 0x45, 0xc6, 0x61, 0xa5, 0x8c, 0x93, 0xe4, 0x44, 0xe6, 0x77, 0x20, 0xc1, 0x16, 0xd6, 0x85, 0x74, 0x6a, 0xad, 0xcc, 0xa0, 0xd8, 0x62, 0xd3, 0x39, 0x35, 0x2a, 0xb2, 0xde, 0x2f, 0x5a, 0xe3, 0xac, 0xa4, 0xe6, 0x36, 0x34, 0xa5, 0xb4, 0xb0, 0xce, 0xe4, 0xd6, 0xc9, 0x7e, 0x72, 0xa8, 0x43, 0x17, 0x00, 0x3a, 0xd4, 0xee, 0x5b, 0x43, 0x43, 0x1d, 0x85, 0xd4, 0xc1, 0x7b, 0xc7, 0xea, 0xd1, 0xde, 0x7f, 0x7a, 0x2d, 0x5d, 0xbc, 0xa6, 0x2c, 0x3d, 0x88, 0xb9, 0xde, 0x74, 0x1b, 0x94, 0xa9, 0xe0, 0x08, 0x83, 0xb6, 0x30, 0xae, 0x62, 0x56, 0x84, 0x65, 0xd4, 0x9d, 0x3f, 0xf4, 0x0a, 0x5a, 0x5e, 0x72, 0xe9, 0xe6, 0xf0, 0x55, 0x6e, 0x84, 0x48, 0xcd, 0x08, 0x44, 0xd0, 0x72, 0xb9, 0xab, 0xab, 0x5e, 0x44, 0x2e, 0xe1, 0x1d, 0x86, 0xe8, 0x7e, 0x53, 0xa9, 0xeb, 0xb0, 0xaf, 0xd8, 0x98, 0x8d, 0xa1, 0x88, 0x7b, 0x9c, 0xc5, 0x4e, 0x5b, 0x48, 0x9d, 0xb3, 0x02, 0x7b, 0x96, 0x6a, 0x07, 0x03, 0x81, 0xf7, 0x20, 0xbf, 0x65, 0x64, 0x77, 0x2c, 0x2e, 0x10, 0x32, 0x67, 0xea, 0xc4, 0xa6, 0xc7, 0x4b, 0x77, 0xac, 0xc0, 0xd8, 0xb4, 0xad, 0xe5, 0x39, 0xd9, 0xa3, 0x1b, 0x06, 0x34, 0x93, 0xb2, 0x0d, 0x8a, 0x38, 0x72, 0xc2, 0x28, 0x7c, 0x5c, 0x9a, 0x3a, 0x35, 0xc3, 0x8e, 0x3a, 0x4b, 0xd0, 0xe6, 0x4a, 0x71, 0x81, 0x7b, 0xd7, 0x5a, 0x18, 0x72, 0x46, 0x7d, 0xc2, 0xa3, 0xd8, 0x40, 0x51, 0x0a, 0xc2, 0x4b, 0x2c, 0x84, 0x8e, 0xec, 0x1d, 0x7a, 0xc4, 0x97, 0x83, 0x9c, 0xb0, 0x91, 0xfc, 0x7e, 0xe8, 0x1a, 0x6f, 0x6c, 0xdd, 0x65, 0x46, 0xc3, 0x76, 0x49, 0x1f, 0x30, 0xa4, 0x22, 0xd5, 0x9f, 0x09, 0x37, 0x6f, 0xad, 0x5b, 0x75, 0x29, 0x30, 0x42, 0xbc, 0xc8, 0x22, 0x6f, 0xba, 0xf4, 0xd0, 0x59, 0x15, 0xd9, 0x2d, 0x61, 0x80, 0xf7, 0x0f, 0x17, 0x2a, 0xd9, 0xdf, 0x1f, 0xbe, 0x7b, 0x7b, 0xfc, 0xf6, 0xeb, 0x03, 0x42, 0xa8, 0xcb, 0xaa, 0x29, 0x75, 0xca, 0x4e, 0xfe, 0xba, 0x9a, 0xe5, 0x53, 0xe6, 0x14, 0xd2, 0xc2, 0xb9, 0x55, 0x19, 0x93, 0x89, 0x83, 0xd5, 0x30, 0x97, 0xa0, 0x10, 0x46, 0x92, 0x79, 0xa9, 0xae, 0xa7, 0x2a, 0x2f, 0x57, 0x76, 0xeb, 0xa7, 0x50, 0x45, 0x10, 0x06, 0x40, 0x78, 0x94, 0xf8, 0x11, 0x13, 0xad, 0x19, 0x9d, 0x14, 0x85, 0x57, 0x27, 0x27, 0x49, 0x4f, 0xfb, 0x6e, 0xad, 0xdd, 0xe2, 0x8c, 0x21, 0x0c, 0x64, 0xf3, 0x4d, 0x29, 0x9e, 0x67, 0x84, 0x3f, 0x71, 0x9b, 0x16, 0xd7, 0x33, 0xa6, 0xeb, 0xf7, 0x61, 0x26, 0x27, 0xf2, 0x8c, 0x91, 0x1c, 0x88, 0x13, 0xce, 0xab, 0x19, 0x6c, 0x21, 0xc3, 0x24, 0xcb, 0x8b, 0x86, 0xd4, 0xa3, 0x96, 0x24, 0x6d, 0xf7, 0x6b, 0x5a, 0xe7, 0x6c, 0xbf, 0x62, 0x2b, 0xa7, 0x05, 0x9c, 0xc2, 0x11, 0x49, 0x24, 0xad, 0x1a, 0x7a, 0x64, 0xbd, 0x10, 0x3d, 0xbe, 0xc8, 0x27, 0x15, 0x50, 0xf3, 0x2c, 0x4b, 0x6d, 0xe3, 0xf9, 0x9a, 0xb8, 0x65, 0xc8, 0x2e, 0x6e, 0xb2, 0x4a, 0x8c, 0x4f, 0x5b, 0x45, 0x6c, 0x98, 0xdd, 0x28, 0x19, 0x97, 0xe6, 0xf9, 0x48, 0xd5, 0x82, 0x36, 0xc4, 0x74, 0x4d, 0x6f, 0xd3, 0x46, 0x92, 0x68, 0x6d, 0x5e, 0x15, 0x9a, 0x84, 0x21, 0xe6, 0xd6, 0x5e, 0x6f, 0xa4, 0x1d, 0x37, 0xd1, 0xff, 0x24, 0xb3, 0x0a, 0xc5, 0x9d, 0x86, 0x76, 0x88, 0x42, 0x36, 0x86, 0x86, 0x9d, 0x6e, 0xa0, 0xa5, 0x21, 0x35, 0x09, 0xf7, 0x46, 0xba, 0xa7, 0xd5, 0xad, 0x9f, 0xa6, 0xde, 0x5d, 0x70, 0xb4, 0x75, 0xa0, 0xd7, 0x92, 0x2b, 0x15, 0xbb, 0xd3, 0xf3, 0x9c, 0x4a, 0x07, 0x37, 0x1b, 0x2a, 0xe5, 0x2a, 0xbd, 0x8c, 0x34, 0xcc, 0x20, 0x00, 0x7e, 0xca, 0x60, 0x66, 0xf2, 0x90, 0x5f, 0x27, 0xef, 0xbf, 0x2c, 0xe2, 0x66, 0xe0, 0x9c, 0x0b, 0x39, 0x20, 0x7d, 0x9a, 0xa0, 0x4e, 0xef, 0x62, 0xb4, 0x1d, 0xcd, 0xab, 0xe1, 0x39, 0x88, 0x44, 0xaa, 0xd3, 0x6b, 0x97, 0xf0, 0xd5, 0xcb, 0xf8, 0xb4, 0x58, 0xa5, 0x2b, 0xa3, 0x71, 0xa0, 0xd6, 0xab, 0xa4, 0x43, 0xa5, 0x89, 0x57, 0xc8, 0xe2, 0x87, 0x2a, 0x5b, 0x98, 0x04, 0xe1, 0x70, 0x52, 0xf1, 0x25, 0x41, 0xae, 0x5e, 0x26, 0x2c, 0x91, 0x9b, 0xbc, 0xb8, 0x2e, 0xf1, 0x1b, 0x09, 0x52, 0x45, 0x52, 0x54, 0xf2, 0xde, 0xb2, 0x96, 0xf3, 0xce, 0xae, 0xaa, 0x83, 0x46, 0x8b, 0x08, 0xcc, 0x5a, 0xb8, 0x34, 0xd0, 0xef, 0xd9, 0xe2, 0xda, 0xb4, 0x74, 0x49, 0x81, 0x2f, 0x13, 0x11, 0xef, 0x20, 0xd1, 0x8e, 0xef, 0xe6, 0xc5, 0x79, 0x9d, 0x49, 0x17, 0x6a, 0x2e, 0x09, 0x54, 0x81, 0x23, 0xf2, 0x26, 0xb7, 0xbe, 0x9f, 0x7e, 0x49, 0x62, 0xcb, 0x84, 0xec, 0x5e, 0x3b, 0xfb, 0x95, 0x32, 0x1a, 0xb9, 0x1f, 0x34, 0xdd, 0xe0, 0xe9, 0x55, 0x59, 0x4a, 0xcd, 0x69, 0x1f, 0xb3, 0x4d, 0xb8, 0x41, 0x1a, 0x21, 0x62, 0xf4, 0xe8, 0x0f, 0xed, 0xf6, 0xa1, 0x92, 0x4c, 0x1e, 0xb6, 0x37, 0xcb, 0x9d, 0xc6, 0xea, 0xa1, 0x93, 0xb6, 0x65, 0x1b, 0xcf, 0xc7, 0x0a, 0x67, 0x61, 0xae, 0x21, 0xbc, 0x22, 0xb8, 0x00, 0x8b, 0xee, 0xf8, 0xf6, 0x48, 0x66, 0xa5, 0xbf, 0x29, 0x51, 0x61, 0xc7, 0xb9, 0x96, 0x0e, 0x20, 0x1b, 0x54, 0x03, 0xb3, 0xa9, 0x68, 0x07, 0x34, 0x30, 0xd3, 0xbc, 0x01, 0x03, 0xf9, 0xfd, 0xfe, 0x6e, 0x1f, 0x93, 0xa7, 0x81, 0xb4, 0xc6, 0x95, 0x6e, 0x63, 0x6d, 0xed, 0x2f, 0x88, 0x41, 0x57, 0x18, 0x40, 0x32, 0x64, 0xb5, 0x24, 0x3f, 0xdd, 0x90, 0xe8, 0x25, 0xad, 0xfb, 0xf6, 0x3f, 0x6e, 0x15, 0xff, 0xd2, 0xa6, 0x94, 0x3d, 0x3d, 0x29, 0x1d, 0xff, 0x7a, 0xe7, 0x9d, 0x31, 0x0d, 0x14, 0x4b, 0x30, 0x53, 0x5e, 0xa2, 0x7e, 0x12, 0x4f, 0x69, 0x77, 0x3a, 0x03, 0xec, 0x7a, 0x34, 0x1f, 0x94, 0xcb, 0x49, 0xa3, 0x85, 0xe6, 0x6b, 0xba, 0x58, 0x26, 0x11, 0x96, 0x35, 0xd0, 0x1b, 0xa0, 0x69, 0x2a, 0xa9, 0x83, 0xbb, 0x4c, 0x85, 0x3d, 0xce, 0xcb, 0x10, 0x7d, 0x45, 0x18, 0x29, 0x1b, 0xe3, 0xa9, 0xa4, 0x6b, 0x62, 0x43, 0xe8, 0x4b, 0x6d, 0xc1, 0x88, 0x9c, 0xb3, 0x61, 0xd4, 0xdb, 0x1f, 0xed, 0x1a, 0x21, 0xd9, 0xe3, 0x3e, 0x14, 0xfe, 0x06, 0xbf, 0xbd, 0x91, 0x6c, 0x11, 0x57, 0xdd, 0xb6, 0xca, 0x6b, 0x58, 0xff, 0xac, 0xcd, 0x59, 0xd8, 0x86, 0x49, 0x59, 0x42, 0x76, 0x93, 0x67, 0x49, 0x7f, 0x35, 0x56, 0x5e, 0x65, 0xe4, 0x3f, 0xf5, 0x7c, 0xe3, 0xea, 0xc1, 0x8b, 0xd5, 0x3c, 0x66, 0xe6, 0xd0, 0xdd, 0x96, 0xe0, 0x50, 0x5e, 0xd7, 0x2b, 0x31, 0x02, 0x2d, 0xc0, 0x8c, 0x45, 0x1c, 0x4c, 0xe6, 0x66, 0x3e, 0xf8, 0x74, 0x3d, 0xa7, 0xac, 0x92, 0x5e, 0xf5, 0x04, 0xde, 0x61, 0x51, 0x7c, 0x6d, 0x03, 0x4f, 0xb6, 0xa3, 0xe4, 0x74, 0xb8, 0x11, 0x9d, 0x34, 0x52, 0xa3, 0x4d, 0x18, 0x40, 0x56, 0x75, 0x86, 0xdb, 0x38, 0x3d, 0x3b, 0x3f, 0x3e, 0x7d, 0x3b, 0x4e, 0xfe, 0x7d, 0x63, 0x6d, 0x79, 0x57, 0x1b, 0x58, 0xf9, 0x87, 0x81, 0x3b, 0x93, 0xe4, 0x85, 0xf8, 0x19, 0xfa, 0x6c, 0x63, 0x4f, 0x89, 0x9f, 0x1a, 0xe9, 0x6d, 0xf8, 0xab, 0xbe, 0x29, 0xd0, 0x6e, 0x72, 0x5a, 0x1d, 0x34, 0xba, 0x40, 0x5b, 0xb6, 0x70, 0x7e, 0x5d, 0x23, 0x9a, 0x99, 0xbd, 0xb3, 0x59, 0x3a, 0xc3, 0xc7, 0x39, 0xb0, 0x70, 0xbe, 0x56, 0x2a, 0xa7, 0xbc, 0x80, 0x2d, 0xbe, 0x81, 0x5a, 0xca, 0x16, 0xf4, 0x16, 0xf3, 0x4c, 0x55, 0xb4, 0xea, 0x48, 0x87, 0xb9, 0xaf, 0x8f, 0xce, 0xc9, 0x49, 0x83, 0x2a, 0x57, 0x37, 0x41, 0xb8, 0xba, 0x44, 0xf1, 0x49, 0xad, 0x72, 0xa6, 0xc5, 0xad, 0x74, 0x69, 0x8c, 0xf6, 0x3c, 0x4f, 0x8b, 0x68, 0x09, 0x9b, 0xd1, 0x68, 0x5f, 0x9a, 0xdd, 0x28, 0x1d, 0xf4, 0xab, 0xfa, 0x4e, 0xbc, 0xbe, 0x26, 0x0c, 0xcb, 0x74, 0xf6, 0xfe, 0x5c, 0xfc, 0x54, 0xaf, 0x8e, 0x4e, 0x8e, 0xce, 0x8f, 0xba, 0x96, 0xfb, 0x84, 0xc1, 0x2c, 0x51, 0xea, 0xd2, 0x64, 0xd3, 0xab, 0xa2, 0x9c, 0x97, 0x97, 0xb9, 0x34, 0xe2, 0x4d, 0xbe, 0xcf, 0x26, 0xaf, 0x0e, 0xbf, 0x23, 0x7d, 0x82, 0x7c, 0x4e, 0x67, 0xef, 0x4e, 0xcf, 0x5e, 0x1f, 0xbf, 0x7d, 0x35, 0x48, 0x5e, 0x9e, 0x9e, 0xfd, 0x79, 0x90, 0xbc, 0x39, 0xfd, 0xee, 0x28, 0x92, 0xe2, 0x4c, 0x08, 0xb7, 0x01, 0xc5, 0xd8, 0x66, 0x7d, 0xce, 0xf0, 0x2e, 0x38, 0x64, 0xe1, 0x09, 0x11, 0xca, 0xff, 0x37, 0xda, 0x2f, 0xb1, 0x5b, 0xdc, 0x35, 0xb3, 0x75, 0x46, 0x86, 0x7e, 0x73, 0x74, 0xf8, 0x6a, 0x10, 0x00, 0x98, 0x53, 0x2b, 0x15, 0xf3, 0x31, 0x5a, 0x9f, 0x5d, 0x34, 0x60, 0xaf, 0xd9, 0xfa, 0x80, 0x86, 0xc0, 0x41, 0x2e, 0xbe, 0xb1, 0x86, 0x60, 0x51, 0xa5, 0x3f, 0xeb, 0xcb, 0x9c, 0x10, 0x2c, 0xfe, 0xde, 0xd6, 0xd7, 0x5e, 0xd9, 0x05, 0x29, 0x6b, 0xbe, 0x9a, 0x2d, 0x60, 0x4d, 0x48, 0xab, 0xd7, 0x22, 0x2c, 0x3f, 0x4b, 0xb6, 0x07, 0x31, 0x68, 0xd0, 0x82, 0x0a, 0x00, 0x3f, 0x62, 0xd7, 0x63, 0x2a, 0x3d, 0x0d, 0xd1, 0xb4, 0xc8, 0x98, 0x49, 0xa4, 0x55, 0x5f, 0x38, 0x94, 0xd8, 0xf5, 0x1a, 0xb6, 0x00, 0xa9, 0x0b, 0x6c, 0x13, 0x6d, 0x9e, 0x6e, 0x90, 0xed, 0xe9, 0xf9, 0x03, 0xff, 0x58, 0xc0, 0xa2, 0x22, 0x89, 0xdb, 0xab, 0x0b, 0x43, 0x96, 0x19, 0xa7, 0x4c, 0xf1, 0x31, 0x59, 0xb7, 0x40, 0x32, 0x3c, 0x56, 0xa7, 0xc4, 0x3a, 0x05, 0x4b, 0x6f, 0x8c, 0x3a, 0x66, 0x18, 0x2b, 0x4a, 0x7d, 0x56, 0x6d, 0x36, 0xe1, 0x7b, 0x48, 0x68, 0x9d, 0x11, 0x7d, 0x5f, 0x8f, 0x58, 0xd1, 0x8c, 0xc4, 0x83, 0xe3, 0x6f, 0x0a, 0x40, 0x37, 0x02, 0x5f, 0x96, 0x11, 0xb0, 0x81, 0x70, 0xc1, 0x93, 0x86, 0x95, 0x14, 0xe2, 0x11, 0x4d, 0x28, 0xf4, 0x36, 0x64, 0x5b, 0xda, 0xcf, 0xf9, 0x55, 0xee, 0x29, 0xba, 0xa9, 0xcc, 0x21, 0x08, 0x51, 0x61, 0x9d, 0xae, 0xc7, 0xa4, 0xef, 0xcb, 0x7b, 0xb4, 0x7b, 0xeb, 0x7c, 0xec, 0xa4, 0x4d, 0xd4, 0xc9, 0x50, 0xb0, 0xbe, 0x51, 0xbc, 0x17, 0x6c, 0xdd, 0xd6, 0xeb, 0x1e, 0xc6, 0xe8, 0x7b, 0x6d, 0x6d, 0x41, 0xbf, 0x65, 0x51, 0x27, 0xc7, 0xe6, 0x3a, 0x44, 0xa0, 0x71, 0xb8, 0xe9, 0x2e, 0xa7, 0x23, 0x40, 0xaf, 0xc2, 0xee, 0x9b, 0xb1, 0xc2, 0x0f, 0x53, 0x9f, 0xfb, 0xe8, 0x97, 0xe9, 0x17, 0xf7, 0x7d, 0x3a, 0x38, 0xb3, 0x77, 0x47, 0xe7, 0xef, 0x46, 0xc9, 0x96, 0x8f, 0xf9, 0xfa, 0x74, 0xb4, 0x1b, 0x06, 0x6d, 0x8e, 0xdf, 0x1c, 0xc6, 0xd7, 0x4b, 0xbf, 0xe8, 0xfb, 0x2a, 0x78, 0x03, 0x7d, 0x37, 0xcc, 0x23, 0xf6, 0x90, 0x9e, 0x76, 0x63, 0xdf, 0x1b, 0xbf, 0xe9, 0xd9, 0x5f, 0xfa, 0xc5, 0x9a, 0x55, 0x7e, 0x73, 0x74, 0x12, 0xe9, 0xed, 0xf3, 0xdd, 0xbb, 0xd7, 0x7f, 0x6e, 0xaf, 0xf2, 0xd1, 0xe3, 0xc8, 0x57, 0x7f, 0x4d, 0x87, 0x7a, 0x56, 0x97, 0x73, 0xa3, 0xb0, 0xa0, 0x8a, 0x03, 0x45, 0x1c, 0x07, 0x46, 0x04, 0x50, 0xae, 0xf9, 0x5f, 0x06, 0xf2, 0x97, 0x9f, 0x46, 0xa3, 0xd1, 0x9f, 0x42, 0x54, 0x74, 0xf8, 0x68, 0xec, 0x72, 0xe5, 0xd9, 0xae, 0x05, 0x8e, 0xaa, 0x19, 0x54, 0x09, 0x51, 0xd4, 0x62, 0x99, 0xe6, 0x15, 0x7a, 0x02, 0x45, 0x05, 0x2e, 0x2d, 0xc9, 0x55, 0x7a, 0x59, 0x6d, 0x4e, 0x10, 0xc1, 0xf8, 0xba, 0x6e, 0xd5, 0xdb, 0x52, 0x57, 0xed, 0x64, 0x70, 0x3a, 0x0b, 0x1c, 0x21, 0xdc, 0x97, 0x85, 0x3e, 0x5b, 0x91, 0x7f, 0x96, 0x6d, 0x1d, 0x27, 0x6b, 0x0b, 0x95, 0x1d, 0xb2, 0xfa, 0x99, 0x9d, 0x7e, 0xd4, 0x7b, 0x21, 0x75, 0x92, 0x2f, 0x25, 0xa4, 0x0e, 0x47, 0x72, 0x0a, 0xb1, 0x82, 0x36, 0xb3, 0x59, 0x33, 0xdd, 0xa1, 0x75, 0xd6, 0x2d, 0x0d, 0xd0, 0xaa, 0x70, 0x81, 0x13, 0xc9, 0xcf, 0x93, 0x44, 0x05, 0x2d, 0x27, 0xb7, 0x78, 0x25, 0x09, 0xae, 0x88, 0xd7, 0xd3, 0xd4, 0x59, 0x3f, 0x08, 0xb9, 0x59, 0xab, 0x23, 0x92, 0x5f, 0x81, 0xa8, 0xad, 0x2e, 0x02, 0x76, 0xe8, 0x95, 0xa9, 0x85, 0x6a, 0x3f, 0xb8, 0xb3, 0x52, 0x12, 0x25, 0x52, 0x00, 0x7d, 0xfc, 0xa2, 0x25, 0x11, 0xd4, 0x43, 0xe7, 0x1f, 0x7a, 0x4f, 0xed, 0x33, 0x26, 0xc0, 0x48, 0xe2, 0x6a, 0xc4, 0xd3, 0x4a, 0x43, 0x79, 0xf8, 0x95, 0x4d, 0xd8, 0x40, 0x99, 0xf9, 0xe6, 0xbf, 0x6f, 0x92, 0x22, 0x8c, 0xd7, 0xa3, 0xb5, 0xed, 0x4a, 0xb8, 0x64, 0xd8, 0xd0, 0x53, 0x11, 0xbd, 0xc1, 0x6e, 0x8a, 0x25, 0x3e, 0xe5, 0xa5, 0x3e, 0xf1, 0x60, 0x09, 0xa3, 0xe4, 0xfb, 0x7c, 0x3e, 0x9b, 0xa6, 0x15, 0xd2, 0xc3, 0x42, 0xf1, 0x2a, 0x64, 0xc2, 0xf7, 0xa9, 0x2e, 0xf1, 0x55, 0x77, 0x79, 0xb4, 0x99, 0x4c, 0x9c, 0xea, 0x23, 0x45, 0x3f, 0xf6, 0x30, 0x28, 0xf8, 0xdd, 0x57, 0x74, 0xc6, 0xe4, 0xa3, 0x7b, 0x4c, 0xa2, 0xae, 0xdd, 0xc1, 0xa3, 0x7d, 0xae, 0x1a, 0x87, 0x18, 0x3e, 0x0e, 0x63, 0x29, 0xf9, 0xf2, 0xfa, 0x31, 0xdc, 0x57, 0x4f, 0x07, 0xfc, 0xaf, 0xa7, 0xae, 0xfc, 0xc4, 0x33, 0xd2, 0xd8, 0x8e, 0x61, 0xad, 0xff, 0xf8, 0x4c, 0x8b, 0x5c, 0xbb, 0x3c, 0x71, 0xec, 0x61, 0x92, 0xf3, 0x2c, 0xb5, 0x6c, 0xcd, 0xbc, 0xa3, 0xb3, 0xa5, 0x1d, 0x31, 0xfc, 0xeb, 0x2f, 0x93, 0x8a, 0x60, 0x47, 0x9a, 0xfa, 0xa7, 0x75, 0xf5, 0xc4, 0x46, 0xe7, 0x7f, 0x36, 0x8a, 0xb4, 0xdf, 0x8e, 0x7e, 0xc8, 0xa6, 0xfb, 0xba, 0xaf, 0x11, 0x50, 0x14, 0xc2, 0x76, 0x94, 0xf5, 0xe3, 0xca, 0x89, 0xa3, 0x1f, 0x7a, 0x7e, 0xcf, 0x87, 0xf8, 0x48, 0x2d, 0xee, 0xdb, 0x8d, 0x52, 0x85, 0x9d, 0xbe, 0xf4, 0xd2, 0x7e, 0x3c, 0xda, 0x7d, 0x78, 0x86, 0xb2, 0x33, 0xbe, 0x19, 0x7e, 0x90, 0x7f, 0x02, 0x2a, 0x91, 0x14, 0xb1, 0xb2, 0x8f, 0xe6, 0xd6, 0x76, 0xc6, 0x20, 0xd8, 0x9c, 0x16, 0x2f, 0x37, 0x1b, 0x80, 0x12, 0xa1, 0xca, 0x18, 0x87, 0x75, 0xb0, 0x03, 0xc7, 0x45, 0xc7, 0xdd, 0x22, 0x3c, 0x91, 0x82, 0xa2, 0xfc, 0x63, 0x82, 0x5f, 0x50, 0x2e, 0x77, 0x44, 0x45, 0x4c, 0xef, 0x8e, 0x5e, 0xbf, 0x1f, 0x1f, 0xbd, 0x4a, 0xd2, 0x08, 0x04, 0x16, 0xe2, 0xa5, 0x39, 0xdc, 0x72, 0xd2, 0x20, 0xa8, 0x29, 0x4b, 0xce, 0x08, 0x92, 0xb9, 0x04, 0x3d, 0x07, 0x25, 0xb9, 0xc8, 0x58, 0xc6, 0x61, 0xdd, 0x09, 0xeb, 0x71, 0xf2, 0xe2, 0xcf, 0xc0, 0x1d, 0xe1, 0x55, 0xcf, 0x32, 0x6a, 0xce, 0xf5, 0x82, 0xb3, 0x60, 0x02, 0x50, 0x35, 0xd7, 0xc6, 0xab, 0x9e, 0x67, 0xd9, 0x52, 0x8a, 0xfe, 0x5c, 0x27, 0x79, 0x73, 0x36, 0xea, 0x09, 0x94, 0xe6, 0x1c, 0x18, 0x55, 0x03, 0x87, 0x69, 0x4f, 0x27, 0x29, 0xc0, 0xab, 0x71, 0xc6, 0xba, 0xc3, 0x0c, 0x70, 0xdb, 0xc2, 0xbb, 0xb2, 0x95, 0x37, 0x1d, 0x17, 0x7a, 0xd0, 0x55, 0x0f, 0x2e, 0x75, 0x02, 0xe8, 0x31, 0x76, 0x11, 0x4f, 0x26, 0x9d, 0x5f, 0x96, 0x95, 0x19, 0x6f, 0x61, 0xeb, 0x14, 0x19, 0xce, 0xa1, 0xde, 0xee, 0xf6, 0xe2, 0x0c, 0x6b, 0xbe, 0xb9, 0xd4, 0x11, 0x21, 0xf0, 0x8c, 0x6b, 0xb8, 0x89, 0x2d, 0xf0, 0x3e, 0xc1, 0x63, 0x42, 0xe1, 0x41, 0x96, 0x69, 0x63, 0xa9, 0xba, 0xc6, 0x7e, 0xf0, 0x16, 0x06, 0xe6, 0x26, 0x75, 0x1d, 0xe9, 0xba, 0x73, 0x54, 0x75, 0xd7, 0x70, 0x80, 0x3f, 0xf7, 0xdf, 0xb2, 0x9b, 0xdb, 0xde, 0x7e, 0xec, 0x06, 0x2c, 0xd2, 0x5b, 0xb8, 0xa8, 0x7a, 0xc9, 0x81, 0x1d, 0xb6, 0xb4, 0x1d, 0xf4, 0x58, 0xc5, 0x2c, 0x1f, 0x0c, 0xd6, 0x55, 0xbe, 0x70, 0x5e, 0x92, 0x3d, 0x69, 0x71, 0x60, 0xc1, 0xee, 0x0e, 0x43, 0x8f, 0x48, 0xe3, 0xb6, 0x2d, 0xcd, 0xe0, 0x27, 0x4c, 0x69, 0x99, 0x64, 0xc4, 0x6d, 0x71, 0x6b, 0x29, 0x7c, 0x6f, 0x9b, 0x7e, 0x3c, 0x2f, 0x29, 0x4a, 0xc9, 0xc4, 0x80, 0xef, 0x87, 0x90, 0x7d, 0x64, 0x24, 0x54, 0x44, 0x88, 0x6a, 0xd0, 0xb2, 0x4f, 0x18, 0xad, 0x6c, 0x50, 0x2c, 0x46, 0x00, 0x66, 0xec, 0x01, 0xbb, 0x70, 0xe3, 0xc8, 0x9b, 0x41, 0x0e, 0x2b, 0x8f, 0xc3, 0x8a, 0x02, 0x86, 0x18, 0xb4, 0x91, 0x95, 0x65, 0xb3, 0x51, 0x9e, 0x89, 0x06, 0xd5, 0x68, 0xa5, 0x26, 0x35, 0xf2, 0x11, 0x55, 0x6d, 0xa0, 0xed, 0x73, 0x50, 0xda, 0x44, 0xcb, 0x81, 0x9d, 0x99, 0x16, 0xfe, 0x5c, 0x71, 0x00, 0x66, 0x8c, 0xbc, 0x9c, 0xa1, 0x28, 0x8a, 0xdb, 0xf0, 0xf4, 0xc1, 0xc7, 0xc8, 0x5c, 0x36, 0xc9, 0x53, 0x79, 0x9b, 0x2f, 0x56, 0x0b, 0xbc, 0x3f, 0xe0, 0xf2, 0xc7, 0x05, 0x49, 0x2d, 0x3d, 0x54, 0x64, 0x17, 0x36, 0x4a, 0x51, 0x31, 0x67, 0x06, 0xf1, 0x36, 0x10, 0x6d, 0xc3, 0x19, 0x3f, 0xf4, 0x16, 0xb7, 0xd8, 0xc0, 0x41, 0xfd, 0x2f, 0xa7, 0xcf, 0xe4, 0x85, 0xd1, 0xe8, 0xfe, 0x14, 0x4e, 0x22, 0x64, 0x1d, 0xa0, 0x4b, 0xca, 0x73, 0xce, 0x66, 0x9e, 0x15, 0x29, 0xe4, 0x06, 0x10, 0x1b, 0x3e, 0xa3, 0x7e, 0x0e, 0x25, 0xad, 0x26, 0x31, 0x5f, 0xa1, 0x78, 0x5a, 0xaa, 0x73, 0xfe, 0xb2, 0x58, 0x12, 0xba, 0xbf, 0x64, 0x48, 0xbf, 0xd5, 0x32, 0x90, 0xf9, 0x96, 0x4f, 0x58, 0x75, 0xd4, 0x7c, 0x7e, 0x57, 0x72, 0x62, 0xc4, 0xb6, 0x25, 0x7f, 0xb9, 0xec, 0xb1, 0x75, 0x63, 0x49, 0xc3, 0x85, 0x78, 0x67, 0x4d, 0xf0, 0xb2, 0x40, 0x88, 0xb0, 0x62, 0xca, 0x70, 0x48, 0x07, 0xb4, 0x29, 0x7c, 0x7c, 0x03, 0x2d, 0xc3, 0x7b, 0x7c, 0x7b, 0x1b, 0x50, 0xb8, 0x67, 0x10, 0x33, 0xde, 0x24, 0x5b, 0xcb, 0x8f, 0x77, 0x3f, 0xa7, 0x7f, 0x3e, 0xb9, 0xed, 0x18, 0xcd, 0xa3, 0x28, 0x38, 0xa4, 0x96, 0xe5, 0xa6, 0x93, 0x92, 0x43, 0x70, 0xbc, 0x61, 0xa9, 0xb7, 0x99, 0x1a, 0x45, 0x90, 0xce, 0xaf, 0x37, 0x29, 0x6d, 0x6e, 0x59, 0x84, 0xa9, 0x0d, 0xc8, 0xc5, 0xf4, 0x7a, 0xbd, 0x6a, 0xa0, 0x14, 0x4d, 0x0b, 0x8d, 0xf2, 0x4f, 0x9b, 0xa9, 0x7b, 0xa5, 0x83, 0xce, 0xca, 0x15, 0x07, 0x32, 0xb3, 0x20, 0x32, 0x96, 0xf3, 0xee, 0xd3, 0x95, 0x32, 0x22, 0x2b, 0x9f, 0xd3, 0x3b, 0x7c, 0xaf, 0xeb, 0x64, 0xcf, 0x1c, 0x43, 0x5e, 0xac, 0x1a, 0x0b, 0xd6, 0x87, 0x0f, 0x2a, 0x85, 0x46, 0x77, 0x9f, 0xf8, 0xbc, 0x15, 0x2c, 0xc2, 0x0b, 0x6a, 0x2f, 0x40, 0xc8, 0xf7, 0x04, 0x3a, 0xb9, 0x38, 0x78, 0x7c, 0x29, 0x1b, 0x71, 0x15, 0xd9, 0x28, 0xac, 0x74, 0x6e, 0xca, 0x6e, 0xcd, 0x66, 0x33, 0x88, 0x52, 0x62, 0x85, 0x83, 0x13, 0x6a, 0x92, 0x21, 0xcc, 0x0d, 0x1b, 0x22, 0x99, 0x3f, 0x2d, 0x26, 0x6e, 0x5b, 0x78, 0x81, 0xcf, 0x95, 0x8d, 0x5c, 0x49, 0xdb, 0x7c, 0x8d, 0xb5, 0xb6, 0xf8, 0xd5, 0x96, 0x06, 0x6a, 0x8c, 0xad, 0x67, 0xb4, 0xb6, 0xa7, 0x54, 0x0d, 0xec, 0x15, 0xa2, 0x99, 0x93, 0xb0, 0x59, 0x9b, 0x34, 0xfc, 0x3b, 0x7c, 0xfa, 0x90, 0x42, 0xc6, 0x07, 0x31, 0x8d, 0xcc, 0x2f, 0xe6, 0x26, 0xd6, 0x0b, 0x5e, 0x00, 0x7f, 0x7d, 0xa6, 0x78, 0xdc, 0x84, 0xd4, 0xcd, 0x97, 0xd5, 0x3a, 0xe0, 0x39, 0x1d, 0x20, 0xbb, 0x0d, 0x39, 0x73, 0x4c, 0xd5, 0xf9, 0x0d, 0xd9, 0x51, 0x9d, 0x12, 0xfc, 0xe4, 0xaa, 0xb9, 0xfa, 0x7b, 0x3e, 0x8b, 0x22, 0x37, 0xd0, 0x6d, 0x30, 0xbf, 0x36, 0xa7, 0x56, 0xb3, 0xfb, 0x4b, 0x91, 0x4d, 0x93, 0x2d, 0x79, 0x6d, 0x7b, 0x90, 0xcc, 0x56, 0x70, 0xc8, 0x8d, 0x0f, 0xc7, 0x27, 0xc9, 0xd9, 0xc9, 0xe1, 0xf1, 0x5b, 0xf3, 0xce, 0x30, 0x34, 0x52, 0x2d, 0x60, 0xd9, 0xa0, 0xdb, 0x62, 0x0c, 0x1e, 0xcf, 0x36, 0xa6, 0x99, 0xfd, 0x0e, 0x7f, 0x28, 0xc4, 0x34, 0x9a, 0x41, 0x94, 0xb6, 0x6a, 0x0f, 0x86, 0x2b, 0xcd, 0x78, 0xea, 0x47, 0xd5, 0x71, 0x4a, 0x93, 0x66, 0xca, 0x48, 0x2a, 0xaa, 0x17, 0x6b, 0xe4, 0xcb, 0x68, 0x24, 0xd7, 0x75, 0x26, 0x53, 0x0b, 0x57, 0x63, 0x56, 0xee, 0xb2, 0x8b, 0x68, 0x86, 0x66, 0x46, 0xdc, 0x31, 0xcb, 0x50, 0x85, 0x37, 0x2c, 0xc0, 0xdd, 0x6c, 0x96, 0x2b, 0x32, 0x06, 0xfb, 0x32, 0xa1, 0xcc, 0xa4, 0xc8, 0xed, 0x48, 0xc9, 0xa1, 0xb2, 0x4d, 0x2a, 0x66, 0xbd, 0xac, 0xfc, 0x14, 0x85, 0xc3, 0xd6, 0x4a, 0xa3, 0xc5, 0x6e, 0xd6, 0x81, 0x84, 0x9e, 0x94, 0xb7, 0x03, 0x07, 0x93, 0x80, 0xd2, 0x26, 0x9b, 0xdf, 0x70, 0x69, 0x98, 0x19, 0x60, 0xa8, 0x78, 0x24, 0x33, 0xe8, 0xc0, 0x66, 0xba, 0xd7, 0x57, 0x69, 0x58, 0x30, 0xb0, 0x30, 0xda, 0xad, 0x19, 0xd0, 0x77, 0x8d, 0xae, 0xa3, 0xb1, 0xa7, 0x9d, 0x5e, 0xde, 0xa0, 0xb1, 0xbc, 0xab, 0xe3, 0x1c, 0x21, 0xcb, 0xd6, 0xe6, 0xc8, 0x59, 0xee, 0x6c, 0x86, 0x00, 0x1d, 0xb5, 0xc9, 0x61, 0x2d, 0x00, 0xfb, 0x5e, 0xe7, 0x7b, 0x9f, 0x08, 0x25, 0x96, 0x51, 0xbb, 0xfb, 0x1a, 0x5f, 0xd6, 0x07, 0xfc, 0x75, 0x07, 0x46, 0x1d, 0x4e, 0x86, 0x91, 0xbd, 0xa8, 0x9a, 0x89, 0x1b, 0x94, 0xc6, 0xe0, 0xa1, 0xf0, 0xc4, 0x8e, 0xa4, 0xc6, 0xdd, 0x97, 0x61, 0xc2, 0xd0, 0xb3, 0xba, 0xf2, 0x31, 0x51, 0x3f, 0x75, 0xf0, 0x1d, 0xc6, 0x60, 0xac, 0x6c, 0x7c, 0x56, 0xec, 0xac, 0x1a, 0x4f, 0x53, 0xa2, 0x5c, 0x23, 0xea, 0x9c, 0x95, 0xe4, 0x34, 0x86, 0xcb, 0x37, 0xa3, 0x06, 0x08, 0x61, 0xbb, 0x04, 0x4e, 0x41, 0xb8, 0xe0, 0x26, 0xa9, 0x3a, 0x03, 0x6f, 0xcc, 0x80, 0x0f, 0xa3, 0x89, 0x06, 0xe8, 0xec, 0x6f, 0xab, 0x3c, 0x43, 0x37, 0x5f, 0x23, 0x87, 0x93, 0x57, 0x9c, 0x31, 0x29, 0xcd, 0x46, 0xb9, 0xab, 0x31, 0x3a, 0x1f, 0xd3, 0xa3, 0x76, 0x02, 0x01, 0x1f, 0x36, 0x13, 0x22, 0xf9, 0xf4, 0x06, 0x93, 0x7e, 0x49, 0x93, 0x5e, 0x18, 0x01, 0x08, 0xbf, 0x96, 0x87, 0xae, 0xa7, 0xc9, 0x34, 0x5a, 0xe1, 0xc2, 0xa2, 0x2a, 0xad, 0x3f, 0x86, 0x35, 0x2c, 0x83, 0x56, 0xa7, 0x36, 0xf8, 0x52, 0x84, 0x31, 0x35, 0xd4, 0xe6, 0xaf, 0x48, 0xe7, 0x3b, 0x75, 0x33, 0x23, 0xbd, 0x60, 0x55, 0xcc, 0x69, 0x92, 0x34, 0x54, 0x4f, 0xdf, 0xd0, 0x08, 0x0e, 0x15, 0x20, 0xd0, 0x3b, 0x07, 0x84, 0x98, 0x8e, 0x65, 0x83, 0x52, 0xcb, 0xe7, 0x1b, 0x76, 0xf4, 0x13, 0x91, 0xab, 0x21, 0x28, 0x96, 0xbf, 0x55, 0xc4, 0x76, 0x78, 0xc5, 0xd8, 0xc8, 0xd6, 0xb9, 0xad, 0x83, 0x08, 0xb9, 0xa6, 0x09, 0x19, 0x42, 0x9b, 0x94, 0xb5, 0x82, 0xa7, 0x9b, 0x45, 0x9a, 0xd7, 0x5b, 0xf7, 0x09, 0x10, 0x74, 0x3f, 0x13, 0xe5, 0x87, 0xfb, 0xa5, 0x7b, 0x18, 0x3f, 0xeb, 0xda, 0xa4, 0x87, 0x4d, 0xe6, 0x7f, 0x36, 0xc0, 0x4f, 0x0c, 0xc1, 0x8c, 0x5c, 0x2c, 0x36, 0x27, 0x58, 0x12, 0xfd, 0x5a, 0x40, 0x37, 0x70, 0x6a, 0x50, 0xe2, 0x45, 0xa4, 0x45, 0xa7, 0x21, 0xa7, 0x95, 0x60, 0x83, 0x4c, 0xe7, 0x46, 0x07, 0x8a, 0x38, 0x62, 0xc6, 0x02, 0x0c, 0x47, 0x30, 0x78, 0x83, 0xae, 0xc8, 0xae, 0x57, 0xa4, 0x9a, 0xcf, 0x57, 0xf4, 0x6d, 0x46, 0x90, 0xb3, 0x08, 0x66, 0x0a, 0x69, 0x10, 0x45, 0xfd, 0xb3, 0x10, 0x64, 0x74, 0x47, 0x3d, 0x00, 0x44, 0xc5, 0xf4, 0xb5, 0xd8, 0x80, 0x5d, 0x8c, 0xa8, 0x51, 0xcf, 0xec, 0xc8, 0x5b, 0xc2, 0xc3, 0x64, 0x02, 0xb0, 0xea, 0x39, 0xa6, 0xa8, 0xcc, 0x4b, 0xa7, 0x23, 0x08, 0x81, 0x82, 0xa9, 0x13, 0x45, 0x75, 0x43, 0xce, 0x04, 0x2b, 0x5f, 0xfe, 0xdc, 0x54, 0x43, 0x51, 0x00, 0x01, 0x54, 0x5e, 0x78, 0x38, 0x80, 0x86, 0x00, 0x8a, 0x20, 0x1e, 0x48, 0xc8, 0x5c, 0xdc, 0x58, 0x10, 0x3c, 0x87, 0x15, 0x6a, 0x29, 0x22, 0xab, 0xf5, 0xee, 0xb5, 0xa6, 0xc4, 0x10, 0x4d, 0x45, 0x2c, 0x83, 0x9f, 0x5f, 0xda, 0x52, 0x90, 0x1e, 0xbc, 0xb6, 0xdd, 0x8a, 0x9b, 0x95, 0x2d, 0x18, 0xea, 0xdf, 0x54, 0xe7, 0x7a, 0xd2, 0x6e, 0xa8, 0x27, 0x90, 0x8e, 0xbf, 0xe8, 0x42, 0xa5, 0x0f, 0xbb, 0x51, 0x3d, 0xd5, 0x36, 0xff, 0x6f, 0xde, 0xa8, 0xf4, 0x61, 0x57, 0x2a, 0x6d, 0xdd, 0x29, 0x5a, 0x66, 0xc8, 0x96, 0x6e, 0x7b, 0x67, 0xfc, 0x2b, 0xde, 0x32, 0x9b, 0x98, 0xf4, 0xd0, 0x3b, 0xa6, 0x34, 0xf1, 0xff, 0xf6, 0x2d, 0xfb, 0xbc, 0xa3, 0x05, 0x02, 0x1f, 0x75, 0x4d, 0xdf, 0x4a, 0x3f, 0x77, 0x8b, 0x14, 0x64, 0xd2, 0xb5, 0x76, 0x2c, 0x94, 0x61, 0xbc, 0x79, 0x25, 0x43, 0x6f, 0x45, 0x43, 0x97, 0xa5, 0x1e, 0xed, 0x13, 0x7b, 0x1c, 0x8a, 0x3b, 0xb0, 0x76, 0xe4, 0xc0, 0x79, 0xab, 0x08, 0xd1, 0x0e, 0x37, 0x65, 0x24, 0xea, 0x83, 0xae, 0xe9, 0xd2, 0xc8, 0xf5, 0x65, 0x0e, 0xed, 0xc0, 0x28, 0x2e, 0x64, 0xde, 0x7e, 0x3d, 0x1e, 0x0f, 0x0f, 0xcf, 0x8e, 0x93, 0x7b, 0xec, 0x2e, 0xe0, 0xc2, 0xb8, 0x39, 0xc6, 0xec, 0xe5, 0xfe, 0x34, 0xac, 0xf6, 0xd7, 0x8d, 0x9e, 0xdb, 0xdd, 0xd6, 0xc3, 0x3a, 0x69, 0xa5, 0x19, 0xeb, 0xa4, 0x6c, 0xcb, 0x0d, 0xd2, 0xb6, 0x15, 0x75, 0x19, 0xa9, 0xfe, 0xe4, 0xac, 0x21, 0xae, 0x85, 0x07, 0x82, 0x9c, 0x6c, 0x20, 0xec, 0x10, 0x3a, 0xce, 0xde, 0xf3, 0xa7, 0x7b, 0xe6, 0x56, 0xdc, 0x31, 0xea, 0xa3, 0xbc, 0xfc, 0x78, 0xf4, 0x68, 0xe7, 0xf1, 0xe8, 0x31, 0xf1, 0x34, 0x09, 0x96, 0xc2, 0xd9, 0x21, 0xc3, 0x1b, 0x6e, 0x17, 0xc9, 0x4a, 0x62, 0x21, 0xf6, 0xf6, 0xe8, 0x65, 0xc2, 0xa9, 0xab, 0x80, 0x01, 0xec, 0x18, 0x5d, 0x9c, 0xe1, 0x86, 0x14, 0x16, 0x39, 0x42, 0x26, 0xd6, 0xc0, 0x49, 0x11, 0x6c, 0x87, 0x9a, 0x12, 0xb0, 0xb8, 0x0a, 0x3b, 0x11, 0x62, 0x77, 0x6c, 0x55, 0xc8, 0xbe, 0xd0, 0x1c, 0xc3, 0x0a, 0x34, 0x6f, 0x4b, 0xbc, 0x0d, 0xbb, 0x27, 0xbd, 0xfc, 0x71, 0xff, 0xf9, 0xa8, 0xf9, 0xd2, 0x63, 0x00, 0x39, 0xcf, 0x7d, 0x60, 0xe7, 0x08, 0x43, 0x54, 0xa3, 0x94, 0x5c, 0x90, 0xd3, 0x85, 0x35, 0x49, 0x2e, 0xfe, 0x36, 0x2b, 0x46, 0x3f, 0xd7, 0x9e, 0x8a, 0x28, 0xc4, 0x9e, 0xd9, 0xa4, 0x53, 0x17, 0x46, 0x26, 0xb6, 0x52, 0xdf, 0x82, 0xc4, 0x44, 0xea, 0x7a, 0xc8, 0x98, 0x04, 0xe8, 0x32, 0xb3, 0x05, 0xe5, 0x0d, 0x65, 0xc7, 0x8f, 0xfc, 0x4c, 0x47, 0x8f, 0x18, 0xe4, 0xf4, 0x31, 0x1e, 0xab, 0xca, 0xd2, 0xb9, 0xcc, 0xca, 0xfb, 0x4e, 0xf8, 0x4b, 0xda, 0x3d, 0x30, 0xdb, 0x3a, 0x4c, 0xcb, 0x94, 0xa0, 0x82, 0x37, 0x05, 0x9b, 0xa6, 0xe5, 0x3a, 0xb9, 0x2c, 0x2b, 0x23, 0x4e, 0xf2, 0x65, 0x3a, 0x4f, 0x1e, 0x50, 0x5b, 0xd0, 0x7f, 0xf8, 0xf7, 0xf4, 0xe9, 0xc5, 0xec, 0xf5, 0x76, 0xae, 0x61, 0x74, 0x92, 0x7a, 0xd4, 0x95, 0xaa, 0x11, 0x2e, 0xd7, 0x33, 0x18, 0x21, 0x27, 0x38, 0x6e, 0xa6, 0x14, 0xd7, 0x4d, 0xa0, 0x31, 0x96, 0xa4, 0xf5, 0xbc, 0x92, 0x3b, 0xce, 0x85, 0xd2, 0x74, 0x58, 0xa9, 0x79, 0xdd, 0xee, 0x32, 0xc2, 0x18, 0x73, 0x6f, 0x4a, 0x61, 0x8a, 0xf7, 0x72, 0xde, 0x5f, 0x83, 0x19, 0x92, 0x0a, 0xc7, 0x7e, 0x86, 0x9f, 0xaf, 0xcc, 0xc9, 0x16, 0x26, 0x5b, 0x48, 0x03, 0x91, 0x1a, 0x61, 0xc5, 0x09, 0xd5, 0xc4, 0x82, 0x88, 0xb3, 0x08, 0x51, 0x63, 0x10, 0x08, 0x6d, 0xc8, 0x3d, 0xa6, 0x55, 0x44, 0xf1, 0x0b, 0xf8, 0xec, 0xff, 0x13, 0x6a, 0xe0, 0x93, 0xc4, 0x9e, 0xd5, 0x43, 0xd4, 0x41, 0x46, 0x56, 0xe7, 0x7e, 0xe3, 0x01, 0xf4, 0x9d, 0x33, 0xb9, 0xfe, 0x7f, 0x6d, 0xf0, 0xff, 0x24, 0x6d, 0xf0, 0x5f, 0xb9, 0xa5, 0x43, 0xc9, 0x6b, 0xe6, 0x6b, 0x69, 0x33, 0xab, 0xa4, 0x0e, 0x25, 0x5a, 0x70, 0x30, 0xbf, 0x1b, 0x25, 0x3d, 0xf0, 0xc6, 0xf7, 0x5c, 0xd1, 0x90, 0x14, 0xfe, 0xdf, 0xb8, 0xa2, 0x0f, 0xba, 0x99, 0xff, 0xbf, 0xef, 0xe3, 0x7f, 0xb7, 0x7b, 0x18, 0x21, 0x48, 0x1d, 0x6c, 0xcb, 0x90, 0xd9, 0x0d, 0x65, 0xed, 0x71, 0xb3, 0x33, 0x58, 0xda, 0xdb, 0x4e, 0xf5, 0xa1, 0x72, 0x3c, 0xde, 0xba, 0xe3, 0xb3, 0xef, 0x9e, 0x02, 0x85, 0x67, 0xdc, 0x4d, 0x66, 0xa9, 0x92, 0x93, 0x57, 0x87, 0x67, 0x3f, 0xe3, 0xb6, 0xff, 0x19, 0x6e, 0xd6, 0x65, 0x96, 0xcd, 0x86, 0x1c, 0x37, 0x7c, 0x81, 0x7f, 0x44, 0x03, 0xee, 0x8a, 0xae, 0x01, 0xb2, 0xa5, 0x70, 0x62, 0x98, 0xc7, 0x80, 0x97, 0x8d, 0x9a, 0x52, 0x08, 0xe6, 0xcd, 0x12, 0x6d, 0x97, 0x03, 0x1f, 0x4b, 0x59, 0xcc, 0xb6, 0x45, 0x05, 0xe4, 0x6f, 0x83, 0x54, 0x24, 0xff, 0x84, 0xae, 0xf7, 0x25, 0xe1, 0xe2, 0x59, 0xe8, 0x50, 0xef, 0x19, 0xce, 0xc4, 0x8b, 0x26, 0x43, 0xdd, 0xb9, 0xa5, 0x70, 0xc8, 0x93, 0xd1, 0xeb, 0x1e, 0xed, 0x92, 0xff, 0x1d, 0x1c, 0x24, 0x6b, 0x3e, 0x21, 0xda, 0x46, 0xf7, 0xf3, 0x7d, 0xe9, 0x34, 0x6b, 0xb7, 0xd2, 0x3f, 0x89, 0xd6, 0x0e, 0x52, 0x84, 0x9c, 0x43, 0x87, 0x41, 0x97, 0x72, 0xef, 0x9b, 0x9c, 0x41, 0xc2, 0xf3, 0xb5, 0x9f, 0x68, 0xef, 0xe5, 0xf1, 0x45, 0x7b, 0x3b, 0x23, 0xd9, 0xbb, 0x83, 0x56, 0xb6, 0x92, 0x3f, 0x25, 0x1b, 0x27, 0xdf, 0x4b, 0xd4, 0xb5, 0xcf, 0x98, 0x12, 0x02, 0x65, 0xf1, 0xe7, 0x30, 0x9b, 0xd2, 0x7b, 0xfd, 0xbe, 0x4e, 0xc4, 0x65, 0xd1, 0x54, 0x68, 0x31, 0xa2, 0x29, 0x04, 0xb5, 0x82, 0xf6, 0xaf, 0xbc, 0x6e, 0xce, 0x29, 0x0a, 0x05, 0xb0, 0x6b, 0x61, 0xbb, 0x4d, 0xbe, 0xdf, 0x59, 0x33, 0x1d, 0xd9, 0x93, 0x05, 0x80, 0xa1, 0xf9, 0xd5, 0xd4, 0xa8, 0xb8, 0xda, 0x91, 0x7a, 0x80, 0x16, 0x6e, 0xda, 0x9c, 0xad, 0xc7, 0x57, 0xa1, 0x99, 0x30, 0x9f, 0xbe, 0x3d, 0xdb, 0xfa, 0xfe, 0x87, 0x21, 0x84, 0x84, 0xba, 0x63, 0x2c, 0x57, 0x48, 0x0d, 0x3b, 0x03, 0xf8, 0x02, 0x9a, 0x24, 0x53, 0x24, 0xf8, 0x62, 0x9e, 0xde, 0x48, 0x3d, 0x5c, 0x97, 0xdf, 0x8f, 0x4f, 0x1e, 0x61, 0x5b, 0xcf, 0x4f, 0xc6, 0x3e, 0x7c, 0x7e, 0x8d, 0x60, 0x3c, 0xea, 0x1f, 0xbf, 0x3a, 0x3a, 0x1c, 0x9f, 0x8f, 0x82, 0x25, 0x72, 0x1c, 0x38, 0x4a, 0x30, 0xcc, 0x84, 0xc7, 0x27, 0x66, 0xad, 0x77, 0x04, 0x9f, 0x29, 0x75, 0x95, 0x34, 0x39, 0x9e, 0x9b, 0x8e, 0x4e, 0x76, 0x6e, 0xca, 0xd9, 0xfd, 0x4d, 0x56, 0x85, 0x29, 0x49, 0x66, 0xef, 0x26, 0xf9, 0x9c, 0x56, 0x60, 0xe6, 0x65, 0xac, 0xa1, 0x85, 0x14, 0x4d, 0xa0, 0x4a, 0xbf, 0x9c, 0x53, 0x26, 0x01, 0x7d, 0xa6, 0xed, 0x87, 0xa0, 0x84, 0x64, 0x81, 0x2e, 0xe8, 0x2f, 0x44, 0x36, 0x7a, 0x47, 0x49, 0xed, 0x9f, 0xec, 0x54, 0x75, 0xaf, 0x38, 0xee, 0xec, 0x75, 0xec, 0x23, 0x7c, 0x23, 0x02, 0x71, 0x09, 0xd3, 0xbd, 0xd3, 0xfa, 0xa3, 0x46, 0x76, 0xd1, 0x57, 0x94, 0xa2, 0xc6, 0x6b, 0x73, 0x4e, 0xbb, 0x96, 0x90, 0x39, 0x68, 0xd4, 0xc4, 0x53, 0x75, 0x54, 0x50, 0x1c, 0x41, 0x0e, 0x80, 0x22, 0x9b, 0x6f, 0xaf, 0x39, 0x71, 0xcd, 0x1c, 0xf1, 0xfb, 0x9e, 0xd2, 0x68, 0xf1, 0x5e, 0x6b, 0xc9, 0xf4, 0x2a, 0x33, 0x42, 0x64, 0xe4, 0x21, 0x3b, 0x3c, 0x78, 0x43, 0x3e, 0x0b, 0xe0, 0xff, 0x22, 0xdb, 0xf3, 0xb3, 0x37, 0xe4, 0xf1, 0xe3, 0x70, 0x43, 0xaa, 0xec, 0x6f, 0xb3, 0x18, 0x16, 0x3a, 0x6a, 0x50, 0x50, 0xfe, 0xc2, 0x65, 0x23, 0xef, 0x18, 0xd0, 0x9d, 0xa6, 0xba, 0x43, 0x2d, 0x8d, 0x34, 0x8f, 0xde, 0x81, 0xe9, 0x91, 0x85, 0x4d, 0x01, 0xc8, 0xb0, 0x1d, 0xbb, 0x82, 0x6e, 0x7a, 0xed, 0x37, 0xf3, 0x38, 0x1c, 0x88, 0x64, 0x37, 0xcb, 0x47, 0xd6, 0x6a, 0x90, 0x94, 0xcb, 0x82, 0xc6, 0x38, 0x54, 0x62, 0x6a, 0x2f, 0xcf, 0x70, 0x78, 0xd1, 0x2c, 0xed, 0xc2, 0xd6, 0x52, 0xc7, 0x6e, 0xb0, 0x19, 0x3d, 0x4b, 0x3f, 0xaf, 0xee, 0xd4, 0xfd, 0xba, 0x76, 0xf5, 0x61, 0xb6, 0x25, 0xf5, 0xdc, 0xe1, 0x44, 0x6a, 0xa0, 0x96, 0x49, 0x13, 0xf5, 0xde, 0x6d, 0x70, 0x25, 0xab, 0xb2, 0x11, 0x21, 0xf3, 0xc0, 0xb6, 0xb4, 0x22, 0xa3, 0x76, 0xc1, 0xc2, 0xc1, 0x35, 0x3a, 0x2a, 0x5b, 0xc0, 0xa5, 0x95, 0x28, 0x68, 0x08, 0x6e, 0x7b, 0xd1, 0x18, 0x6b, 0xfe, 0x3a, 0x9b, 0xa3, 0xc0, 0x3b, 0x2b, 0xa6, 0xd5, 0xdd, 0xd2, 0x07, 0xef, 0x9f, 0xfd, 0x2b, 0xfb, 0xaf, 0x95, 0x41, 0x08, 0x1d, 0x1b, 0xc5, 0xc7, 0x30, 0xbb, 0xed, 0x50, 0xff, 0xa2, 0x3a, 0x5d, 0x19, 0x8f, 0xf1, 0x48, 0x49, 0x0a, 0x37, 0x7e, 0xad, 0x00, 0xd9, 0x32, 0xca, 0xb9, 0x19, 0x42, 0x53, 0xa0, 0x16, 0x2e, 0x42, 0x07, 0x32, 0x6d, 0xae, 0xad, 0x04, 0x78, 0xf0, 0xc9, 0xef, 0x0f, 0x78, 0xbb, 0xae, 0xf7, 0x03, 0x9e, 0x30, 0x3e, 0xd9, 0x4e, 0x5e, 0x93, 0x8f, 0xa6, 0xed, 0x84, 0xa7, 0xeb, 0xaa, 0xed, 0xc9, 0xf6, 0xd9, 0x11, 0xe5, 0x77, 0x6b, 0x56, 0x08, 0xfc, 0x20, 0x85, 0x0a, 0x95, 0xe1, 0x78, 0xdb, 0xd5, 0xe8, 0x8e, 0x0d, 0x6b, 0xe5, 0xc4, 0x46, 0xf5, 0x2c, 0x71, 0x4f, 0x55, 0x2d, 0x7d, 0x36, 0x4f, 0x5f, 0xef, 0xf7, 0x01, 0xd1, 0x8f, 0xe4, 0xd7, 0x28, 0x62, 0x9f, 0x65, 0xc0, 0x72, 0x57, 0x2c, 0x4d, 0xaa, 0xe0, 0x62, 0x7a, 0x43, 0x56, 0x2f, 0xb9, 0xa7, 0x9f, 0xee, 0x3d, 0x7b, 0xba, 0xbd, 0xae, 0x4b, 0x39, 0xf5, 0xee, 0xa1, 0xe2, 0x5c, 0x26, 0x21, 0xfa, 0xd7, 0xfe, 0xc8, 0xdf, 0xa0, 0xc4, 0x75, 0x36, 0x91, 0x22, 0xeb, 0x50, 0xc2, 0x19, 0x71, 0x43, 0x24, 0x81, 0x8d, 0xd0, 0x76, 0x0f, 0x20, 0x16, 0x5e, 0x17, 0xd9, 0x32, 0x72, 0xcb, 0x41, 0xca, 0x5d, 0xa3, 0x30, 0x40, 0xa2, 0x87, 0x91, 0x38, 0x7c, 0xa4, 0x73, 0x60, 0xe9, 0xe9, 0xb7, 0xe7, 0xe4, 0xc9, 0xe2, 0xef, 0xa3, 0xf6, 0xbf, 0xfc, 0x60, 0xa6, 0x1b, 0xe0, 0x97, 0x9c, 0xf2, 0xa3, 0xdf, 0xe0, 0x94, 0x1f, 0xad, 0x3f, 0xe5, 0x47, 0x0f, 0x3d, 0xe5, 0x67, 0x4f, 0x9e, 0x7e, 0xfe, 0x0b, 0x4e, 0xd9, 0xdb, 0xe1, 0xff, 0x65, 0xa7, 0xec, 0x51, 0xda, 0x2f, 0x3b, 0x65, 0x49, 0x0a, 0xe9, 0x16, 0x64, 0x4a, 0xf2, 0x0b, 0xd2, 0x5a, 0x09, 0x4a, 0x83, 0xcb, 0x58, 0xf8, 0xd9, 0xb0, 0xce, 0x4a, 0x9a, 0x4f, 0x72, 0xd3, 0x3b, 0xd2, 0xc3, 0x22, 0x46, 0xb6, 0x83, 0x16, 0x81, 0x86, 0xbb, 0x9c, 0x53, 0xef, 0xb4, 0xcd, 0xe1, 0xa6, 0xba, 0x47, 0xb4, 0x7c, 0x52, 0x71, 0xb1, 0xf8, 0x73, 0xe6, 0xa8, 0x7f, 0x43, 0x54, 0xb5, 0x30, 0x67, 0xc6, 0xcb, 0x7a, 0x6a, 0x6f, 0xda, 0xdd, 0xdc, 0x98, 0x09, 0x9c, 0x83, 0x14, 0xcd, 0x7e, 0x13, 0xe4, 0x77, 0x8b, 0xec, 0xa4, 0x8e, 0x9a, 0x89, 0x51, 0x0a, 0x8d, 0x14, 0x28, 0x28, 0xa9, 0xe7, 0x6e, 0x9e, 0x49, 0x01, 0x31, 0x2d, 0x9a, 0x28, 0x83, 0x4c, 0xf9, 0xae, 0x4b, 0x58, 0x7a, 0x05, 0x75, 0x32, 0x96, 0x46, 0xe2, 0x2e, 0x37, 0xea, 0x59, 0x6b, 0x32, 0x08, 0x02, 0xd4, 0xe6, 0x96, 0x4c, 0xaf, 0xb8, 0xbf, 0x48, 0x04, 0xec, 0x67, 0x5d, 0x82, 0x5f, 0x37, 0xe1, 0xae, 0xa7, 0x37, 0x51, 0xb4, 0x03, 0x15, 0xf5, 0xa9, 0x6a, 0x37, 0xaa, 0xe2, 0x1c, 0x71, 0x46, 0xd4, 0x83, 0xc2, 0xdf, 0xed, 0xfd, 0x24, 0x8d, 0xa3, 0x82, 0x42, 0x64, 0x92, 0xe9, 0xb2, 0xa0, 0x76, 0xd3, 0x25, 0x97, 0x4d, 0xa8, 0x3b, 0x73, 0x7f, 0xcd, 0x0c, 0x25, 0x9d, 0x4b, 0xcf, 0x6d, 0x15, 0x92, 0x6c, 0x82, 0xbf, 0xa2, 0xd3, 0x9d, 0xad, 0x16, 0x4b, 0x05, 0x43, 0xa4, 0xea, 0xa6, 0x1c, 0x65, 0x74, 0x02, 0x88, 0x80, 0xa4, 0xeb, 0x88, 0x1b, 0xcd, 0x7a, 0x99, 0x24, 0xb9, 0x8d, 0x3d, 0x56, 0x7a, 0x56, 0x02, 0xec, 0xc1, 0x0b, 0x40, 0xe2, 0x1a, 0x4a, 0x89, 0x08, 0x5f, 0x2d, 0xbb, 0x08, 0x52, 0x0f, 0xd0, 0xa8, 0x16, 0xd1, 0xc9, 0x6c, 0xb2, 0xba, 0x54, 0x4c, 0x01, 0xdb, 0xe0, 0xae, 0x4d, 0x95, 0xa8, 0xbf, 0x22, 0x94, 0xa1, 0x6c, 0xc0, 0xc9, 0xf0, 0x77, 0x21, 0xb8, 0x4a, 0x43, 0xdd, 0x1d, 0xa7, 0xeb, 0x92, 0xc3, 0x82, 0x85, 0x83, 0xd8, 0x5b, 0x2b, 0xc7, 0x4f, 0x5a, 0x8d, 0xc7, 0x22, 0xad, 0xb3, 0x7c, 0x52, 0x69, 0xa6, 0xcb, 0xe1, 0x45, 0x4a, 0xd0, 0xa4, 0x41, 0x61, 0xb9, 0x24, 0x84, 0xca, 0x15, 0x38, 0x7f, 0x79, 0x96, 0xbc, 0x4e, 0xa5, 0xdd, 0x50, 0xb2, 0x65, 0x38, 0xf0, 0xb3, 0xc7, 0x7b, 0x8f, 0xb6, 0xd7, 0xea, 0xe1, 0x6d, 0xb8, 0x2d, 0x7c, 0xab, 0x28, 0x63, 0x09, 0xeb, 0xe7, 0x2b, 0x63, 0x36, 0x2b, 0x8e, 0x8f, 0xf9, 0xd2, 0x87, 0xb7, 0xa7, 0xaf, 0x8e, 0x4e, 0x0e, 0xff, 0x6c, 0x51, 0x23, 0x68, 0x13, 0xb4, 0xf2, 0xf8, 0x83, 0x31, 0x5f, 0xef, 0x3e, 0xd4, 0x99, 0x99, 0x73, 0xb3, 0xf5, 0x68, 0x9b, 0x2a, 0xf7, 0x82, 0xa6, 0x90, 0x97, 0x59, 0x1b, 0x6b, 0x83, 0xeb, 0x07, 0xd6, 0x00, 0x46, 0x59, 0x07, 0xe5, 0xee, 0x68, 0x5f, 0xba, 0x8e, 0x48, 0xdb, 0x04, 0xc7, 0xb3, 0xbc, 0xc6, 0x29, 0xa9, 0xc0, 0xca, 0x71, 0x6d, 0x6e, 0x58, 0xa1, 0x45, 0xc0, 0x1e, 0xf9, 0x34, 0x27, 0x6b, 0x45, 0xae, 0x75, 0x4e, 0x61, 0xf8, 0x8b, 0x36, 0x2c, 0x25, 0x8a, 0x77, 0xe9, 0x17, 0xeb, 0xc3, 0xca, 0x6d, 0xde, 0xdf, 0x40, 0x58, 0x64, 0xf3, 0x22, 0x6b, 0x86, 0x32, 0xb1, 0x17, 0xe6, 0xcf, 0x2f, 0xae, 0xd3, 0x79, 0x50, 0x12, 0x4e, 0x3d, 0x15, 0x95, 0x32, 0x2d, 0x2b, 0xa2, 0x37, 0xbd, 0x8e, 0x2b, 0x63, 0xdb, 0x7a, 0x44, 0x9f, 0x34, 0x57, 0x25, 0xe8, 0x30, 0x72, 0x7e, 0xfe, 0xe7, 0xb3, 0xa3, 0x2f, 0x5e, 0x10, 0x23, 0xfb, 0x13, 0xd5, 0x9e, 0xd4, 0x2d, 0xbe, 0x96, 0x50, 0x0f, 0xf7, 0x60, 0x0d, 0x3f, 0xbc, 0x3a, 0x1e, 0x9f, 0x9d, 0x9c, 0xbe, 0xfc, 0xe2, 0xc5, 0x0f, 0x64, 0x53, 0x1a, 0xe1, 0x71, 0xe7, 0xbd, 0x6b, 0x7f, 0x66, 0xbb, 0x28, 0x84, 0x80, 0x22, 0x47, 0xdf, 0x7f, 0x38, 0x7a, 0xfb, 0xdd, 0x17, 0x2f, 0xae, 0xd3, 0x6a, 0x40, 0xeb, 0xe3, 0xb7, 0x7b, 0x1a, 0x96, 0xb6, 0x48, 0x8d, 0xd4, 0xf3, 0xc9, 0xfc, 0x63, 0x9d, 0xff, 0x3d, 0x4b, 0xcc, 0xeb, 0xf3, 0x55, 0x08, 0x63, 0x7e, 0xce, 0x38, 0x0c, 0x66, 0x33, 0xe8, 0x6f, 0xc9, 0x57, 0x27, 0xdf, 0x12, 0x54, 0xae, 0xf5, 0x93, 0x2e, 0xb8, 0xef, 0x52, 0xf2, 0xa7, 0x27, 0x7b, 0xfb, 0xdb, 0xae, 0xdb, 0x27, 0xa0, 0xb6, 0xcd, 0x8c, 0x3f, 0x06, 0x55, 0x53, 0x7f, 0x97, 0xfa, 0x2f, 0x57, 0xcb, 0xd0, 0x38, 0x8b, 0x8a, 0xcb, 0x0f, 0xc4, 0xe5, 0x84, 0xe4, 0x7c, 0xe4, 0xbf, 0x52, 0xb3, 0xd4, 0x0a, 0x69, 0xeb, 0x81, 0xc7, 0xed, 0xfc, 0xb5, 0x87, 0x71, 0xf3, 0x95, 0x23, 0x3d, 0x33, 0x1d, 0xf1, 0xda, 0xad, 0x95, 0x8f, 0x9f, 0x30, 0x96, 0xd3, 0x35, 0x29, 0xb1, 0xd9, 0x46, 0xa4, 0x09, 0xfd, 0xc4, 0xf7, 0xd9, 0xcb, 0xf1, 0x41, 0x05, 0x58, 0xc9, 0xd8, 0x8c, 0x58, 0xa5, 0x12, 0x9e, 0x42, 0x0a, 0xdc, 0xe3, 0xc3, 0xcb, 0x17, 0x54, 0x7b, 0x9c, 0xd5, 0x89, 0xfa, 0x77, 0x3c, 0xef, 0xcd, 0x3c, 0xbb, 0x4c, 0xa7, 0x77, 0x16, 0x61, 0x1a, 0x07, 0x32, 0xeb, 0xde, 0x4e, 0x78, 0xf8, 0xa6, 0x64, 0xcc, 0x19, 0x11, 0x7c, 0x09, 0xf6, 0xcc, 0x50, 0x2a, 0xe6, 0xba, 0x5a, 0xa7, 0x0f, 0x4f, 0xcd, 0x82, 0xc5, 0xa8, 0xb8, 0xa4, 0x4d, 0xed, 0x4a, 0xe7, 0xf6, 0x16, 0x77, 0xa8, 0x8f, 0xc8, 0x06, 0xed, 0x88, 0xd7, 0xee, 0xe9, 0xe3, 0xb6, 0xc7, 0xfc, 0xef, 0xb8, 0xe4, 0x84, 0xc2, 0x05, 0xa7, 0xec, 0x0b, 0xfa, 0x6b, 0x1c, 0x87, 0x1f, 0xed, 0xb9, 0xe0, 0xb6, 0xe0, 0x76, 0xd3, 0xdc, 0xf4, 0x80, 0x96, 0x6d, 0xeb, 0x0b, 0xa4, 0xad, 0x0d, 0xc1, 0xb9, 0x37, 0xce, 0x9d, 0x1e, 0xc7, 0xb8, 0xb3, 0x4e, 0x6d, 0x43, 0x9e, 0x2c, 0xac, 0x88, 0x32, 0x7a, 0xc6, 0xb3, 0x05, 0xba, 0xf4, 0xfb, 0x88, 0x63, 0x53, 0x92, 0x11, 0x5e, 0xd0, 0x58, 0xc4, 0x12, 0x49, 0x27, 0x31, 0x3b, 0xf5, 0x27, 0x8d, 0xfa, 0xa0, 0xf3, 0x51, 0x29, 0xc8, 0x6b, 0x78, 0x88, 0x91, 0x64, 0xea, 0x10, 0x86, 0x83, 0xb3, 0xdb, 0xd5, 0x71, 0xc0, 0x09, 0x1a, 0x14, 0x52, 0xb3, 0xb0, 0xd2, 0x66, 0x9a, 0xb5, 0x6a, 0xa5, 0x54, 0x04, 0x09, 0x33, 0xdd, 0x01, 0xcf, 0x46, 0xb0, 0x08, 0xbc, 0xaa, 0x3d, 0x05, 0x04, 0xe7, 0x95, 0x49, 0x3a, 0x02, 0x26, 0xb4, 0xb5, 0xa0, 0x85, 0x48, 0x7f, 0x02, 0x6e, 0x06, 0xd1, 0xd7, 0xb0, 0xbd, 0x23, 0xa5, 0xcc, 0x98, 0x34, 0x82, 0x48, 0x28, 0xc8, 0x24, 0x86, 0x65, 0xe8, 0xec, 0x46, 0xa4, 0xfa, 0xb8, 0xe1, 0x24, 0xfe, 0xae, 0x88, 0x22, 0x50, 0x71, 0x4d, 0x9d, 0x6f, 0x8d, 0x20, 0x65, 0xce, 0xe8, 0x44, 0xb7, 0x35, 0x74, 0x2d, 0xc2, 0xf2, 0xc6, 0xaa, 0x6c, 0x11, 0xc8, 0x1d, 0x0b, 0x7c, 0x6e, 0x81, 0xdb, 0xd8, 0xf5, 0xa9, 0xf4, 0x21, 0x14, 0x41, 0x1f, 0xdb, 0xe1, 0xd2, 0x4f, 0x65, 0x41, 0x79, 0xa4, 0xf4, 0x3c, 0x18, 0xac, 0xc8, 0x6e, 0xfc, 0xc1, 0x9c, 0xdd, 0x61, 0x07, 0xfc, 0x94, 0xde, 0x6e, 0x63, 0x33, 0x51, 0xbd, 0x5a, 0xf2, 0xe2, 0xbb, 0xa3, 0x77, 0xe3, 0xe3, 0xd3, 0xb7, 0x7f, 0x8a, 0x9a, 0xc3, 0xf2, 0x4b, 0xdb, 0xea, 0x4d, 0x2b, 0x5d, 0x5d, 0x3b, 0x2e, 0xf2, 0x82, 0xa9, 0xaf, 0x85, 0xbb, 0x3a, 0xe5, 0x05, 0x3d, 0x12, 0x74, 0xf9, 0x9a, 0x66, 0xcb, 0x06, 0xfa, 0x92, 0xda, 0xd2, 0xd8, 0x25, 0xc4, 0x2d, 0xd0, 0x07, 0x06, 0x36, 0x1c, 0x95, 0xba, 0x89, 0x6d, 0x67, 0xff, 0xb6, 0x1f, 0x81, 0x79, 0xe3, 0xdf, 0x3c, 0x0a, 0x36, 0x28, 0x9e, 0xb0, 0xe3, 0xc5, 0xcb, 0x57, 0x4b, 0xae, 0x92, 0x24, 0x30, 0x13, 0x06, 0x3e, 0xf2, 0x17, 0x10, 0xf4, 0x6d, 0x18, 0xed, 0xb6, 0x5f, 0x34, 0x0f, 0x5f, 0xef, 0x79, 0x15, 0x2c, 0xf6, 0xb9, 0xbd, 0xd8, 0x73, 0x7b, 0xe1, 0x73, 0xfb, 0xb1, 0xe7, 0xf6, 0xc3, 0xe7, 0x1e, 0xc5, 0x9e, 0xf3, 0xd6, 0xeb, 0x99, 0xf1, 0xb2, 0x73, 0xeb, 0x2c, 0xe3, 0xd6, 0xbf, 0x1e, 0x8d, 0xdc, 0xf1, 0x7f, 0x66, 0xbd, 0x15, 0xdd, 0x46, 0xb5, 0x9e, 0x61, 0xaf, 0x76, 0x7d, 0xbf, 0x59, 0xaf, 0x7c, 0x5a, 0x87, 0x33, 0x6a, 0x62, 0xc7, 0xc5, 0x6c, 0xbe, 0xb7, 0xf7, 0x68, 0x38, 0xcd, 0x97, 0x57, 0x24, 0x75, 0x5e, 0x68, 0x6b, 0x37, 0xda, 0x7c, 0x5a, 0xac, 0xfc, 0x62, 0x45, 0x26, 0x79, 0xa8, 0x87, 0x9c, 0x8c, 0xb7, 0x13, 0x0f, 0xaf, 0x48, 0x20, 0x3a, 0xf1, 0x4a, 0xc2, 0xef, 0x38, 0xb4, 0xa2, 0xd0, 0xc1, 0x1c, 0x94, 0xba, 0x58, 0xf7, 0x8d, 0x79, 0x4f, 0x26, 0xc0, 0xa4, 0xab, 0xb3, 0xd2, 0x69, 0xca, 0xd8, 0x8c, 0xaa, 0xab, 0xa1, 0xf7, 0xae, 0x6b, 0x17, 0x3d, 0x2e, 0xf4, 0x15, 0xc5, 0xb8, 0xa3, 0xde, 0x6c, 0x45, 0x67, 0x75, 0x3c, 0x9c, 0x55, 0xb9, 0xcb, 0x22, 0x26, 0x2a, 0xdf, 0xbf, 0x3b, 0x09, 0x54, 0xcb, 0x84, 0x5c, 0x33, 0xf5, 0xc1, 0xce, 0x0e, 0x1a, 0x8c, 0x5f, 0xa5, 0xb7, 0xb7, 0xa3, 0x3a, 0xdb, 0x31, 0xfc, 0xa4, 0xde, 0x81, 0xbf, 0x57, 0x3e, 0x7d, 0xd5, 0x2c, 0xe6, 0xeb, 0x1c, 0xb5, 0x79, 0xad, 0x98, 0xb2, 0x8c, 0xc5, 0x38, 0x63, 0xd4, 0x05, 0x57, 0xa4, 0x8d, 0x0b, 0xc9, 0x07, 0xac, 0x49, 0x77, 0xdd, 0x86, 0x1f, 0xdc, 0x49, 0x15, 0x7d, 0x9c, 0xf7, 0x48, 0xf6, 0x41, 0x60, 0x5a, 0x88, 0x56, 0x36, 0x21, 0x39, 0xf3, 0xc1, 0x61, 0xe7, 0xd0, 0x0b, 0x54, 0x4f, 0x9b, 0x05, 0xe1, 0x0c, 0x0b, 0x92, 0x53, 0x01, 0x14, 0x1f, 0xbe, 0x82, 0xd8, 0x9e, 0xd5, 0x7e, 0xe0, 0x83, 0xdc, 0x03, 0xb2, 0xe4, 0xa8, 0x9a, 0xf1, 0x89, 0x99, 0x26, 0xa5, 0xe4, 0x91, 0x32, 0x6f, 0x54, 0x0e, 0xf3, 0xdf, 0x3f, 0x85, 0x45, 0xe7, 0x09, 0x96, 0x10, 0xa4, 0xee, 0x91, 0xfe, 0x4f, 0x65, 0x5f, 0xbc, 0xff, 0xfc, 0x3d, 0xbf, 0x3d, 0x06, 0xcc, 0x8b, 0x68, 0xf8, 0x08, 0xc7, 0xb2, 0x31, 0x7e, 0x77, 0xb6, 0x31, 0x90, 0x68, 0xbd, 0xf9, 0xc0, 0xd0, 0xfc, 0x3b, 0x81, 0x95, 0x49, 0xed, 0x75, 0x9e, 0x3c, 0x96, 0xc4, 0x3a, 0x9e, 0x23, 0x37, 0x99, 0x0b, 0xc3, 0x47, 0xf8, 0xa5, 0x4d, 0x2e, 0xe4, 0x2e, 0xb4, 0xae, 0x1a, 0xd5, 0x18, 0x80, 0xed, 0x15, 0x72, 0xca, 0xcf, 0xc0, 0x01, 0xaf, 0xc7, 0xd5, 0x3a, 0x0b, 0xfb, 0x68, 0x68, 0x06, 0xd3, 0x1c, 0x75, 0x02, 0x04, 0x65, 0xf5, 0x51, 0x5a, 0x81, 0x48, 0x98, 0x83, 0x99, 0x4b, 0xd0, 0x7d, 0xb9, 0xe3, 0x45, 0xf4, 0xa8, 0x91, 0x5d, 0xac, 0xba, 0x6c, 0xd9, 0x31, 0x85, 0xc1, 0xeb, 0x69, 0x31, 0xac, 0xb4, 0x6a, 0x36, 0xec, 0xeb, 0x62, 0x45, 0x67, 0x82, 0x51, 0x3a, 0x83, 0xdc, 0x83, 0x55, 0xf3, 0xb8, 0x73, 0xfa, 0xba, 0x79, 0x91, 0x63, 0xb7, 0xfb, 0x4a, 0x47, 0x04, 0x8b, 0x46, 0x2b, 0xb4, 0xe9, 0xdb, 0x1d, 0x72, 0x70, 0xc8, 0x80, 0x7d, 0xd5, 0x64, 0x8a, 0x2d, 0xe3, 0x1d, 0xc8, 0x48, 0x83, 0x6f, 0xc2, 0xa6, 0xdd, 0x59, 0x7b, 0xfd, 0x30, 0xe2, 0xa6, 0x81, 0xea, 0x85, 0x2e, 0x7b, 0x45, 0x19, 0xdf, 0xbd, 0xeb, 0xf7, 0x97, 0x8f, 0x8f, 0x45, 0xf3, 0xb3, 0x41, 0xf8, 0x9a, 0xc0, 0x9a, 0x3c, 0x68, 0x0f, 0x64, 0x0b, 0x7e, 0xe1, 0x0e, 0x88, 0x47, 0xba, 0x4b, 0xd2, 0xb4, 0x11, 0xa1, 0xab, 0xec, 0x53, 0xec, 0x4b, 0x6b, 0x63, 0x48, 0x00, 0xc7, 0xc5, 0x56, 0x24, 0xa0, 0xe0, 0x69, 0x1c, 0xd0, 0x30, 0x94, 0x8f, 0xde, 0x5b, 0xb3, 0x81, 0x00, 0xa2, 0x04, 0x16, 0x68, 0x10, 0xed, 0x92, 0x12, 0x62, 0x26, 0x91, 0x3b, 0x56, 0x3e, 0x01, 0xdb, 0x81, 0x3f, 0xdf, 0x32, 0x12, 0x01, 0x3a, 0xa5, 0x4a, 0x29, 0xfb, 0x68, 0x12, 0xce, 0x85, 0xef, 0x0c, 0xf7, 0x81, 0xae, 0xee, 0x07, 0x61, 0x6b, 0x50, 0xd1, 0x88, 0x55, 0x00, 0x96, 0x33, 0xa7, 0xe6, 0x0e, 0x29, 0x80, 0x56, 0x29, 0x12, 0x51, 0xa3, 0x2d, 0x4d, 0xb7, 0x43, 0x52, 0x77, 0xdf, 0xcd, 0x30, 0xe6, 0x8e, 0x53, 0x3b, 0x6d, 0xf5, 0xf6, 0xaa, 0x2e, 0xda, 0x81, 0x6c, 0x43, 0x53, 0x12, 0xab, 0x72, 0xca, 0xae, 0x05, 0x96, 0xc5, 0x7d, 0xb5, 0xd6, 0xa1, 0x22, 0x42, 0xfa, 0xd1, 0x2f, 0x3c, 0xac, 0xbd, 0xff, 0xc3, 0x0e, 0x6b, 0xef, 0xff, 0x86, 0xc3, 0xda, 0xff, 0x85, 0x87, 0xb5, 0xff, 0x7f, 0xd8, 0x61, 0xed, 0xff, 0xdf, 0x70, 0x58, 0x8f, 0x7e, 0xe1, 0x61, 0x3d, 0xfa, 0xd5, 0x0f, 0xeb, 0x2d, 0xfd, 0x1e, 0x52, 0x42, 0x75, 0xca, 0xbc, 0xee, 0xaa, 0x5c, 0x93, 0x3b, 0xb4, 0xb6, 0x9f, 0xd0, 0x86, 0x88, 0x39, 0x22, 0xaa, 0x6a, 0xdd, 0xb5, 0xc9, 0x0e, 0x1b, 0x8b, 0x5a, 0x65, 0xfb, 0xaf, 0x48, 0x80, 0x4b, 0xb0, 0xf0, 0x49, 0x9f, 0xfa, 0xaa, 0x24, 0xff, 0x8c, 0xd1, 0x3b, 0x06, 0xc9, 0xdb, 0xf1, 0x98, 0x93, 0x9a, 0xc6, 0x08, 0xcc, 0x76, 0x0f, 0x8b, 0x5c, 0x9d, 0xb0, 0xa0, 0xb6, 0x48, 0x29, 0x3d, 0x35, 0x33, 0x74, 0xcc, 0x85, 0xdf, 0x5b, 0xa4, 0x53, 0xfa, 0xf1, 0xee, 0x68, 0xcf, 0x6d, 0xce, 0xf6, 0xcf, 0x80, 0x99, 0x73, 0x51, 0xd3, 0xa8, 0x6d, 0x1f, 0x01, 0x84, 0xa7, 0x3c, 0x10, 0xd2, 0x81, 0xdb, 0x47, 0x73, 0x2b, 0x90, 0x72, 0x6a, 0x36, 0xf5, 0x43, 0x8f, 0xa3, 0xbf, 0x9c, 0x04, 0xbe, 0x41, 0xd4, 0xea, 0x9e, 0x45, 0x86, 0x07, 0xa3, 0x24, 0x85, 0xd2, 0xaf, 0x1b, 0x1a, 0xcc, 0x2f, 0x09, 0x69, 0xef, 0xe7, 0xc6, 0xad, 0xbd, 0x18, 0xf1, 0xff, 0xb2, 0xb8, 0xf5, 0x83, 0xac, 0x6f, 0xff, 0xca, 0x54, 0x43, 0x6d, 0xdc, 0x16, 0x47, 0x87, 0x77, 0x6e, 0x4b, 0xaa, 0x33, 0x02, 0x70, 0xe4, 0x8c, 0x49, 0x87, 0xf2, 0x78, 0x8e, 0xe4, 0x5d, 0x17, 0x3d, 0x64, 0x23, 0x29, 0x44, 0x77, 0x2a, 0x35, 0xa7, 0xdf, 0xe2, 0x19, 0x29, 0x70, 0x06, 0xaf, 0xb2, 0x66, 0x8a, 0x5b, 0x15, 0xfa, 0x19, 0x87, 0x40, 0x01, 0x64, 0xb5, 0x20, 0xb9, 0x61, 0x9a, 0x31, 0xee, 0x56, 0x7e, 0x9f, 0x06, 0xfd, 0xb4, 0xbd, 0xde, 0x74, 0x9a, 0x0d, 0xd3, 0x7a, 0x9a, 0xe7, 0xf1, 0xc6, 0xb1, 0x1a, 0x65, 0xa6, 0xb4, 0x1e, 0xc4, 0x07, 0xcc, 0xf3, 0x09, 0x45, 0xf4, 0xb4, 0x0f, 0x3c, 0xf1, 0x43, 0x20, 0x51, 0xd1, 0x74, 0xcb, 0x55, 0x73, 0x59, 0x6a, 0xa8, 0x60, 0x10, 0x71, 0x3b, 0x52, 0xcc, 0x0f, 0x47, 0x6c, 0x4e, 0x67, 0x5a, 0xe5, 0x4b, 0xa0, 0xdc, 0xfa, 0x4d, 0xe7, 0x06, 0xb6, 0x27, 0x3b, 0x5c, 0x79, 0x12, 0x9b, 0xe5, 0x16, 0xe5, 0xef, 0x03, 0xf3, 0x77, 0x63, 0xb8, 0x41, 0x4e, 0x53, 0xdb, 0xab, 0xcb, 0xbc, 0x4b, 0xd8, 0xe4, 0x5e, 0x54, 0x34, 0x51, 0x48, 0xa5, 0x9e, 0x20, 0xbf, 0x06, 0x49, 0x0c, 0x09, 0xdd, 0x29, 0xfe, 0x35, 0xda, 0x91, 0x68, 0xf0, 0x93, 0x04, 0x80, 0xb9, 0x83, 0xe4, 0xbc, 0x2f, 0x05, 0x07, 0xe4, 0x2a, 0xbb, 0xe5, 0x2a, 0xd5, 0xd0, 0xa0, 0x63, 0xd8, 0x44, 0x8a, 0xd6, 0x4a, 0x60, 0xfe, 0x70, 0xfc, 0xf2, 0xf8, 0xb8, 0x55, 0xd3, 0x4a, 0x9b, 0xc7, 0xe0, 0xb9, 0x00, 0x1e, 0xa9, 0x09, 0x44, 0x98, 0x42, 0xc2, 0xb1, 0x18, 0x3f, 0x77, 0xa2, 0x34, 0xd7, 0x0f, 0x71, 0x1d, 0xc3, 0x09, 0x72, 0xed, 0x13, 0x9a, 0x8a, 0x59, 0x53, 0x98, 0x69, 0xe6, 0x04, 0xed, 0x76, 0xb5, 0x5a, 0xa4, 0xc5, 0xa7, 0xc7, 0xa5, 0x8b, 0x97, 0x8a, 0xc8, 0x6e, 0xf1, 0xbd, 0xf2, 0xe3, 0xc8, 0x21, 0xad, 0x45, 0xda, 0x7e, 0x9c, 0x55, 0xd2, 0x14, 0x92, 0x71, 0xda, 0xa4, 0x6f, 0x87, 0x59, 0x26, 0x50, 0x34, 0x79, 0x64, 0xb3, 0x56, 0x0d, 0x4d, 0x33, 0x24, 0xbe, 0x30, 0x12, 0xba, 0x33, 0x5d, 0x97, 0x23, 0x07, 0xe9, 0xd6, 0xd6, 0xe2, 0xed, 0x75, 0x45, 0x25, 0x3e, 0xf2, 0x5b, 0xde, 0x00, 0xff, 0x02, 0xdc, 0x4b, 0xff, 0x72, 0x01, 0x7a, 0x6e, 0x00, 0xea, 0x70, 0x5c, 0x8b, 0xbb, 0xfb, 0x2f, 0x01, 0x74, 0x91, 0x8d, 0xdf, 0x6f, 0xc4, 0x1b, 0xc3, 0x3c, 0xe0, 0x26, 0xb5, 0xe0, 0x5d, 0x7e, 0x5b, 0x4a, 0x8b, 0xe0, 0xcd, 0x78, 0x4c, 0xcc, 0x3f, 0xd3, 0x55, 0x91, 0xdf, 0xa2, 0x5c, 0xc4, 0xa8, 0x12, 0x2f, 0xa8, 0x29, 0x4a, 0x4f, 0xc3, 0x8f, 0x97, 0xac, 0xd8, 0x24, 0x5a, 0xfd, 0x82, 0x55, 0xbc, 0x37, 0x2f, 0x1b, 0x95, 0x71, 0x41, 0xd9, 0x43, 0x3c, 0xc6, 0xc0, 0x47, 0x5e, 0x07, 0x5b, 0x8f, 0x64, 0x1f, 0x15, 0x59, 0x43, 0x96, 0xeb, 0xda, 0xb8, 0x59, 0x3b, 0x16, 0x79, 0x0e, 0xbc, 0xb1, 0x25, 0x95, 0x24, 0xac, 0xe9, 0xdf, 0xcd, 0xe1, 0x44, 0xaf, 0x00, 0xc0, 0x07, 0xec, 0xa6, 0x38, 0x99, 0x6b, 0xf3, 0x25, 0xf4, 0x23, 0x52, 0x1f, 0x4d, 0x5f, 0x62, 0x89, 0x52, 0xb6, 0x3b, 0x91, 0xeb, 0xed, 0x95, 0x77, 0xe3, 0x1e, 0xe8, 0x1e, 0xe5, 0x82, 0xc3, 0xd2, 0x77, 0x33, 0x94, 0xdd, 0x9d, 0x26, 0x63, 0x23, 0xaf, 0xdf, 0x71, 0xab, 0x07, 0x1a, 0x50, 0x10, 0xf3, 0x39, 0x91, 0xff, 0x8e, 0xe6, 0x4e, 0xcc, 0xc3, 0xcc, 0x7e, 0xd7, 0x58, 0x8b, 0x59, 0x1d, 0x95, 0x91, 0x21, 0x7e, 0x4a, 0xff, 0x7e, 0xc9, 0xea, 0x3d, 0x3b, 0xc5, 0xdb, 0x8b, 0x90, 0x66, 0x79, 0x5d, 0xf5, 0xc5, 0x8b, 0x6e, 0x5f, 0x51, 0xaf, 0x75, 0x9d, 0x57, 0xc5, 0x84, 0xe8, 0xbe, 0xa6, 0x59, 0x63, 0x9d, 0x6e, 0x41, 0x41, 0xd6, 0xb4, 0x6d, 0xcc, 0x25, 0x6a, 0x14, 0xe3, 0xda, 0x52, 0x29, 0x1f, 0xb5, 0x27, 0xa1, 0x2c, 0x40, 0xdb, 0xda, 0x99, 0x0f, 0x96, 0x9b, 0xc2, 0x4b, 0xc5, 0x70, 0x80, 0xdb, 0x9b, 0xcf, 0x5b, 0x55, 0x19, 0xe2, 0x08, 0xd6, 0x42, 0xb0, 0x2d, 0xa3, 0xac, 0xb3, 0xd2, 0xc6, 0x97, 0x87, 0x5a, 0x8b, 0x28, 0xf0, 0x7b, 0x3f, 0x28, 0x78, 0x14, 0x3c, 0xaa, 0x9d, 0x1e, 0x47, 0x9c, 0x63, 0x2b, 0x55, 0xec, 0x54, 0x8a, 0xc4, 0x6d, 0xab, 0xda, 0x69, 0x6e, 0x78, 0x5e, 0xf8, 0xe4, 0x1e, 0xc4, 0xce, 0xa4, 0xbd, 0x98, 0xb0, 0xa5, 0xe4, 0x50, 0x30, 0xeb, 0x33, 0x72, 0xa4, 0x76, 0xbf, 0x33, 0xf2, 0xbf, 0xc3, 0xa5, 0x38, 0xdb, 0x01, 0x3c, 0xdc, 0x5d, 0xb7, 0xf7, 0xb9, 0xfd, 0x36, 0xcd, 0x53, 0x2b, 0xce, 0x65, 0x66, 0x48, 0x5d, 0xa6, 0xbc, 0x6d, 0xa4, 0x35, 0x84, 0x37, 0x11, 0x10, 0x08, 0xce, 0xc8, 0x03, 0x7c, 0xad, 0x74, 0x29, 0xe2, 0x7c, 0x6e, 0xe1, 0x68, 0x8c, 0x51, 0x2b, 0xab, 0xa5, 0x50, 0x31, 0x03, 0x97, 0x06, 0x7e, 0x50, 0x74, 0x4f, 0x8c, 0xb6, 0xca, 0xf2, 0x0b, 0x12, 0x89, 0xa3, 0x85, 0xd7, 0xd9, 0x36, 0x22, 0xa4, 0xce, 0x46, 0xa5, 0x76, 0x60, 0xe9, 0xeb, 0xf6, 0x22, 0x58, 0xfe, 0xc9, 0x11, 0xbd, 0x11, 0x0e, 0xf6, 0x07, 0xe9, 0x8f, 0x94, 0xfb, 0xbd, 0x46, 0x6f, 0x70, 0x19, 0xba, 0x74, 0x25, 0x94, 0x27, 0x8d, 0x23, 0x80, 0x1e, 0x30, 0x92, 0x36, 0x5a, 0xa4, 0xb4, 0xab, 0x9a, 0x99, 0x6c, 0x5c, 0xce, 0xcb, 0xc9, 0xc4, 0x2c, 0x7c, 0xc3, 0x53, 0x4a, 0xcd, 0x97, 0x03, 0x4f, 0xb5, 0x3f, 0x0f, 0x63, 0x59, 0x5d, 0xc2, 0x98, 0x1e, 0x70, 0xd6, 0x9b, 0xb4, 0x5e, 0x20, 0x81, 0xac, 0x21, 0x04, 0xf9, 0xbe, 0x22, 0xad, 0x47, 0xe4, 0x8c, 0xe4, 0xdf, 0x0b, 0x61, 0xd0, 0xc2, 0x5a, 0x41, 0x05, 0x14, 0x4b, 0xd2, 0x4f, 0x75, 0x82, 0x9c, 0xc9, 0x98, 0xf4, 0x25, 0xe3, 0xb6, 0x1a, 0x5d, 0x0d, 0xb4, 0xcf, 0x61, 0x5e, 0x87, 0xd1, 0x1b, 0xec, 0x42, 0x7b, 0x41, 0x1b, 0xff, 0xa0, 0x3f, 0xf6, 0x06, 0xf4, 0xdf, 0xfd, 0x7f, 0x6e, 0x20, 0xc0, 0x73, 0xb0, 0xb3, 0x73, 0x73, 0x73, 0x33, 0x52, 0xb8, 0x42, 0x73, 0x64, 0x9f, 0x85, 0x75, 0x85, 0x84, 0xf2, 0xd6, 0xf3, 0x81, 0xf3, 0x64, 0x23, 0x5f, 0x5c, 0xfe, 0x65, 0x6f, 0xb8, 0xb7, 0xbb, 0xbb, 0xfb, 0xd3, 0x68, 0x49, 0x5b, 0x7c, 0x81, 0x61, 0xcd, 0x7f, 0xfd, 0x61, 0x77, 0x78, 0x26, 0x3b, 0x51, 0x40, 0x59, 0xd9, 0x48, 0x8b, 0x10, 0x53, 0x70, 0x53, 0x10, 0x26, 0xe4, 0x03, 0x8f, 0xc9, 0x70, 0x9c, 0x3a, 0xed, 0xaf, 0xd2, 0xe7, 0xfe, 0x7c, 0x14, 0xa0, 0x78, 0xf2, 0x68, 0x7f, 0x3f, 0x61, 0x95, 0x83, 0x8b, 0xdf, 0x38, 0x55, 0x82, 0x70, 0x0f, 0xa4, 0x81, 0x39, 0xcb, 0x32, 0x02, 0x77, 0x4c, 0x39, 0x14, 0x64, 0x68, 0xa3, 0x27, 0x61, 0x94, 0x33, 0x13, 0x08, 0xe0, 0xd1, 0x70, 0x9f, 0x72, 0x76, 0xe7, 0x06, 0x36, 0x54, 0x5e, 0x11, 0x6f, 0xe5, 0x5e, 0xa3, 0x16, 0x45, 0x32, 0xad, 0x63, 0x5a, 0x9b, 0x2d, 0x64, 0x83, 0x90, 0x03, 0x08, 0x6f, 0x51, 0x4a, 0x1b, 0x6d, 0xe4, 0x05, 0x5c, 0xac, 0x2a, 0xe9, 0xa1, 0x84, 0x34, 0x8a, 0x9b, 0xf4, 0xae, 0x25, 0xec, 0xcd, 0x8e, 0xbf, 0x30, 0xff, 0x09, 0xdc, 0xe0, 0xb6, 0x3c, 0x57, 0x7a, 0x40, 0x5f, 0x64, 0xcd, 0xf4, 0x2a, 0xc0, 0x94, 0x07, 0xfb, 0x26, 0xd5, 0xfd, 0xca, 0xac, 0xc6, 0x42, 0xb6, 0xf7, 0xf5, 0x97, 0x74, 0x55, 0xbf, 0x66, 0x50, 0xea, 0x26, 0x82, 0xba, 0x07, 0x6e, 0x37, 0xcf, 0x3c, 0xb1, 0x0f, 0x3b, 0xd4, 0xf6, 0x38, 0x45, 0x46, 0x6a, 0x5e, 0x6b, 0x55, 0xf2, 0xf4, 0x2a, 0x5b, 0x08, 0xbf, 0xdc, 0xd2, 0x84, 0xcc, 0x0d, 0x21, 0xc2, 0x8d, 0x50, 0xa4, 0x6d, 0x5c, 0xc8, 0x6f, 0xcc, 0x62, 0xb6, 0xa5, 0xaa, 0xd7, 0x4a, 0x39, 0x69, 0xb5, 0x74, 0xb9, 0x22, 0xab, 0x71, 0x92, 0x8a, 0x38, 0xd1, 0x72, 0xf3, 0xbe, 0xbc, 0x69, 0xe2, 0x89, 0x59, 0x05, 0x29, 0x46, 0xfe, 0x97, 0xa1, 0xe8, 0x3e, 0x22, 0x54, 0x91, 0xbe, 0x62, 0x6e, 0xec, 0xab, 0xe3, 0x97, 0xe7, 0x28, 0xb1, 0x1d, 0xa0, 0x18, 0x67, 0x80, 0xba, 0xda, 0xb0, 0x0d, 0xd6, 0x19, 0xfc, 0x23, 0x20, 0x54, 0x89, 0x55, 0xa5, 0x2e, 0x81, 0xcf, 0x61, 0x9c, 0x6b, 0x95, 0x9c, 0xd7, 0xc0, 0x2c, 0x92, 0x99, 0xdc, 0xd2, 0x12, 0x6d, 0xda, 0xe3, 0xe3, 0x27, 0xa3, 0x5d, 0x5e, 0xa3, 0xeb, 0xb0, 0xad, 0x75, 0x60, 0x70, 0x23, 0x69, 0xfc, 0x32, 0x8d, 0x67, 0x24, 0xd8, 0xe9, 0x0c, 0x12, 0xc6, 0x56, 0x67, 0xa0, 0x06, 0xfd, 0xad, 0x97, 0x8b, 0xb9, 0x56, 0x33, 0xf5, 0xa1, 0x55, 0x89, 0x2c, 0x3b, 0xa0, 0xd8, 0x14, 0x79, 0x2b, 0x6d, 0x0d, 0xa7, 0xa0, 0xb8, 0xc4, 0x8a, 0xf1, 0x40, 0x13, 0x89, 0x78, 0xb0, 0x9a, 0xac, 0x18, 0xb8, 0xce, 0x56, 0x25, 0x49, 0x01, 0x91, 0x58, 0x52, 0xdd, 0xd4, 0x6a, 0x04, 0x1b, 0xd3, 0x4f, 0x82, 0x86, 0x61, 0xc3, 0xaf, 0x04, 0xd7, 0x96, 0xf5, 0xe4, 0x58, 0x61, 0x19, 0x1d, 0xe5, 0xb6, 0xe6, 0xd0, 0xb2, 0xdd, 0xaa, 0x0a, 0xe7, 0x88, 0xdc, 0x85, 0x7c, 0xec, 0x4d, 0xb7, 0xe5, 0xbb, 0xb9, 0xa2, 0xc3, 0x10, 0x0b, 0x73, 0x8a, 0x64, 0xab, 0x3b, 0xdb, 0x99, 0x30, 0x95, 0x15, 0x82, 0x12, 0x60, 0xec, 0xc1, 0x3f, 0xb5, 0xf1, 0x47, 0x8a, 0x22, 0x7d, 0x71, 0xb8, 0xd1, 0xba, 0x91, 0xb1, 0xde, 0x58, 0x35, 0x73, 0xb7, 0xb6, 0x25, 0x23, 0x3c, 0x8d, 0xf8, 0x7e, 0x76, 0xdb, 0xb0, 0xdc, 0xbf, 0x40, 0x7f, 0xeb, 0xe2, 0xd1, 0x7e, 0x52, 0xdf, 0x19, 0x25, 0x62, 0xe1, 0x6f, 0x42, 0xb7, 0x9d, 0x79, 0x34, 0x72, 0xd6, 0xea, 0x03, 0xc8, 0x7c, 0xeb, 0x3d, 0xbd, 0x72, 0x88, 0x57, 0xa4, 0x73, 0x98, 0x66, 0x03, 0xfa, 0x35, 0xf2, 0xea, 0xf6, 0xec, 0x50, 0x0b, 0x65, 0x63, 0x33, 0x17, 0x9b, 0xcc, 0xd3, 0xe2, 0xa3, 0x4d, 0xdb, 0xe6, 0x91, 0x06, 0xd4, 0x7c, 0x96, 0xeb, 0x54, 0xdd, 0x0f, 0x25, 0x3d, 0x10, 0x92, 0x31, 0xe8, 0xd1, 0x46, 0x7a, 0xe9, 0x22, 0xad, 0xa8, 0x80, 0x11, 0x7b, 0x26, 0xa9, 0xd5, 0xfe, 0x99, 0xd8, 0x96, 0x66, 0x2c, 0xcd, 0xbf, 0x41, 0xbe, 0x3c, 0x3f, 0x17, 0x8a, 0x30, 0x8e, 0xe0, 0x33, 0xaa, 0x90, 0xe6, 0xa7, 0xf7, 0xf4, 0x9b, 0xfb, 0xf5, 0x22, 0xf7, 0x16, 0x66, 0xd9, 0x70, 0x6d, 0xf3, 0xdf, 0x03, 0x8d, 0x18, 0xf6, 0xf1, 0x6f, 0x2b, 0x3d, 0x6c, 0x4b, 0x75, 0x1b, 0x63, 0xf4, 0x9b, 0xe4, 0xb2, 0x7a, 0xe7, 0xe2, 0x9a, 0xb1, 0xf8, 0xfd, 0x28, 0x39, 0x75, 0xe6, 0x64, 0x31, 0x00, 0xe0, 0x6e, 0x53, 0x4d, 0xc5, 0x98, 0xc4, 0xdf, 0x25, 0x31, 0x34, 0x9d, 0xc7, 0x76, 0x00, 0x3d, 0xe3, 0x72, 0x60, 0x7e, 0xd7, 0xb1, 0xd9, 0x29, 0x38, 0xb8, 0xf0, 0x39, 0xb3, 0xb1, 0xd4, 0xb4, 0x94, 0x13, 0x05, 0xd2, 0x20, 0xef, 0x9b, 0x17, 0x11, 0xef, 0x56, 0xc7, 0x69, 0x03, 0xb6, 0x4d, 0xad, 0x7b, 0xbc, 0x96, 0x54, 0x81, 0xb9, 0x91, 0x8b, 0x9c, 0xd9, 0xe2, 0xba, 0x4d, 0x18, 0x96, 0x56, 0x16, 0x83, 0x00, 0x3d, 0x8a, 0x02, 0xf3, 0xec, 0x71, 0xa2, 0x8c, 0xc3, 0x85, 0x74, 0x07, 0xb7, 0x2d, 0x86, 0x53, 0x7e, 0x4f, 0x69, 0xd3, 0xff, 0xf2, 0x3d, 0x8d, 0x8c, 0xb9, 0xd3, 0x90, 0x1e, 0x86, 0xa1, 0xc2, 0x01, 0x17, 0x0a, 0x06, 0x4b, 0x3a, 0x2d, 0xf4, 0x46, 0x0a, 0x98, 0x55, 0xce, 0x61, 0xde, 0xda, 0xb7, 0x31, 0xaf, 0xa8, 0x25, 0x94, 0xe7, 0xff, 0x10, 0x44, 0x30, 0xa3, 0x6e, 0x06, 0xfa, 0x32, 0xdd, 0x46, 0x24, 0x39, 0x9a, 0x1d, 0x06, 0x0c, 0x35, 0x65, 0x0b, 0x51, 0x2e, 0xa6, 0x4b, 0x7d, 0x26, 0x7d, 0x22, 0x2b, 0xd8, 0xaa, 0x2f, 0x2d, 0xb2, 0x9b, 0x39, 0x9f, 0x10, 0x99, 0x71, 0xc6, 0xc0, 0xbd, 0xb5, 0xb6, 0x54, 0xb6, 0xed, 0xd3, 0x2f, 0x45, 0x8e, 0xd4, 0x94, 0x48, 0x6a, 0x38, 0x9a, 0x03, 0xcd, 0xae, 0x75, 0xe3, 0x23, 0x2d, 0xab, 0x78, 0xa5, 0xd2, 0xa1, 0xe3, 0xce, 0x07, 0x14, 0x36, 0x77, 0xe1, 0x3a, 0xe7, 0xbd, 0x67, 0xa8, 0xb4, 0x49, 0x95, 0x67, 0x17, 0xa4, 0x81, 0x60, 0x45, 0x92, 0xa1, 0x1a, 0x78, 0x8d, 0x32, 0x42, 0xd5, 0xa6, 0xdc, 0x77, 0x73, 0x8e, 0x54, 0x9e, 0x9c, 0xc3, 0x73, 0xc4, 0x3c, 0xd1, 0x76, 0xfa, 0x62, 0x08, 0x7b, 0xaa, 0xc4, 0xc4, 0x22, 0x52, 0xad, 0x98, 0x8a, 0x66, 0x7f, 0xa2, 0xcb, 0xbb, 0x78, 0x3c, 0x89, 0xba, 0x0a, 0xba, 0xc5, 0xb6, 0x53, 0x24, 0xbe, 0xc8, 0x6c, 0x55, 0xb4, 0x1b, 0xaf, 0xd9, 0x58, 0x1c, 0x17, 0x9a, 0x76, 0xe9, 0xdb, 0xac, 0x32, 0xf2, 0xaf, 0xac, 0x93, 0xef, 0x9e, 0x68, 0x92, 0xa7, 0xf4, 0xbb, 0x17, 0x55, 0xc4, 0x96, 0xd4, 0xa2, 0x18, 0x81, 0xa7, 0x1e, 0x84, 0x2f, 0xb8, 0x34, 0x84, 0xb9, 0x97, 0xbe, 0x2e, 0x0a, 0x09, 0x1b, 0xe9, 0x45, 0xf7, 0xca, 0x99, 0x9f, 0x18, 0xf2, 0x33, 0xff, 0x8c, 0xf7, 0x36, 0x73, 0x2d, 0xaa, 0x8d, 0x76, 0x45, 0xc4, 0x42, 0xbe, 0x3c, 0x73, 0x96, 0x93, 0x06, 0x4a, 0x8e, 0x91, 0x4e, 0x76, 0xe2, 0xc9, 0x79, 0x4e, 0xee, 0x1e, 0x49, 0xdf, 0x09, 0x55, 0x40, 0x2e, 0x84, 0x10, 0xb5, 0xc6, 0xa1, 0x8f, 0x77, 0x72, 0x29, 0x48, 0x8f, 0xac, 0xaf, 0x48, 0x13, 0x23, 0x0d, 0x01, 0x46, 0x7e, 0x8f, 0x7a, 0xcf, 0xf2, 0xf1, 0xed, 0xf9, 0xc9, 0x1b, 0x31, 0x9d, 0x1d, 0x9b, 0x13, 0xad, 0xc6, 0x99, 0xc5, 0xc2, 0x76, 0x98, 0xaa, 0x42, 0xc4, 0x01, 0xdd, 0x0c, 0x2d, 0x5e, 0x64, 0xbc, 0x0b, 0xda, 0xb6, 0x81, 0x64, 0xfa, 0x54, 0x52, 0x16, 0x27, 0x46, 0x97, 0x6e, 0x6a, 0xc4, 0x93, 0x4d, 0x44, 0x58, 0xe3, 0xec, 0xe1, 0x2a, 0x31, 0x12, 0xc5, 0x30, 0x9a, 0x75, 0xf0, 0xed, 0x24, 0xe7, 0x94, 0x1f, 0x7a, 0x5f, 0xe6, 0x95, 0x10, 0x8b, 0xe1, 0x6e, 0x1c, 0xc9, 0xab, 0xf2, 0xa6, 0x18, 0x9e, 0x50, 0x75, 0x73, 0x72, 0x52, 0x5e, 0x9a, 0xad, 0x7a, 0x0b, 0x85, 0xa5, 0x7b, 0x6a, 0xef, 0xcf, 0xde, 0x26, 0x5b, 0x24, 0x77, 0x93, 0x33, 0x8b, 0x68, 0x47, 0x4f, 0x6e, 0x8b, 0x7d, 0x51, 0xb3, 0x4e, 0x22, 0xb3, 0x19, 0x24, 0x47, 0x3f, 0x1c, 0xbe, 0x39, 0x3b, 0x39, 0xfa, 0x91, 0x4d, 0x8c, 0x60, 0x39, 0xf4, 0xe3, 0x2f, 0x3d, 0x9b, 0x0b, 0x11, 0x1a, 0xca, 0x48, 0x34, 0xf3, 0x88, 0xc2, 0xd9, 0x30, 0x7d, 0x32, 0x6b, 0x54, 0x12, 0x1c, 0x8f, 0xcf, 0x8e, 0x87, 0x0a, 0x47, 0xc7, 0xbd, 0x50, 0xf3, 0x82, 0x0c, 0x24, 0xc8, 0x23, 0x69, 0xa3, 0xf2, 0x6d, 0x18, 0x8c, 0xd2, 0x1b, 0x31, 0x48, 0xde, 0x6a, 0xa2, 0xe3, 0x00, 0x27, 0x4e, 0x57, 0xf0, 0x55, 0x7e, 0x89, 0x80, 0x52, 0x27, 0x3d, 0x8d, 0x88, 0x03, 0x53, 0x98, 0x06, 0xc5, 0x42, 0x68, 0x61, 0xe7, 0xb0, 0xf8, 0xea, 0x6c, 0xce, 0xee, 0xcb, 0x5e, 0x09, 0x09, 0x66, 0x80, 0x63, 0xa4, 0x2a, 0x94, 0x20, 0x54, 0x26, 0x55, 0x29, 0x93, 0x3b, 0xbf, 0x77, 0x9e, 0xa5, 0x11, 0x96, 0x0b, 0xa2, 0x4d, 0x58, 0xb6, 0x7f, 0x90, 0x6c, 0x0c, 0x57, 0xc9, 0xc1, 0xc6, 0x27, 0x54, 0x11, 0x7c, 0x4f, 0x6f, 0xa4, 0x15, 0x97, 0xc4, 0xcb, 0xd4, 0x15, 0x2c, 0x0d, 0x24, 0xe0, 0xaf, 0x56, 0x6f, 0x1b, 0x7b, 0xcc, 0xcd, 0x55, 0x17, 0xe9, 0x8b, 0xc2, 0xb7, 0xcb, 0x08, 0x58, 0x4c, 0x01, 0xbe, 0x94, 0x71, 0xdc, 0xd4, 0x68, 0xa8, 0x9b, 0x86, 0x0d, 0xb0, 0x1b, 0x9f, 0x58, 0xfc, 0x06, 0x62, 0x93, 0x62, 0x41, 0x95, 0x33, 0xa3, 0xab, 0x1e, 0x72, 0x0c, 0xa2, 0xa6, 0xfc, 0xf6, 0x70, 0x38, 0xec, 0xd5, 0xe6, 0x9f, 0x36, 0x25, 0xbe, 0xba, 0x21, 0x4a, 0x15, 0xf1, 0xea, 0x0d, 0x56, 0x60, 0x49, 0x31, 0xa6, 0xd9, 0x9b, 0x1b, 0xbf, 0xf9, 0x62, 0x53, 0xdb, 0xd5, 0xe8, 0x93, 0x5d, 0x86, 0x83, 0xf7, 0x24, 0xc4, 0xa7, 0x6a, 0xb5, 0x9c, 0xbe, 0x64, 0xae, 0x1b, 0xa9, 0x39, 0xcb, 0x20, 0xbc, 0xb9, 0x2b, 0x25, 0x23, 0x48, 0x72, 0x08, 0xb1, 0xab, 0x72, 0xb4, 0x66, 0x2e, 0x73, 0xfd, 0x77, 0x9d, 0xab, 0xd7, 0xb9, 0x99, 0x82, 0x12, 0xae, 0x83, 0xe0, 0x84, 0x9b, 0xff, 0xf6, 0xe9, 0x43, 0x9c, 0xb8, 0x4a, 0xc6, 0x31, 0x34, 0xe1, 0x68, 0x81, 0xe2, 0xa0, 0x53, 0xf9, 0x87, 0xb8, 0x56, 0xe8, 0xbe, 0x6c, 0x2c, 0x5e, 0x2a, 0x8d, 0xbc, 0x59, 0x51, 0x73, 0xa8, 0xf2, 0x23, 0x3a, 0xc6, 0x96, 0x55, 0xef, 0x4d, 0x55, 0xd7, 0xae, 0xa3, 0x3c, 0x96, 0xb6, 0x9a, 0x4f, 0x46, 0xea, 0x04, 0x1e, 0x14, 0x75, 0x40, 0x6c, 0xbb, 0x41, 0x88, 0x95, 0xc3, 0x8d, 0xeb, 0xb4, 0x65, 0x8d, 0x8d, 0x3e, 0xb5, 0x63, 0xa5, 0x5a, 0x84, 0x1c, 0xc5, 0xe8, 0xf7, 0x8a, 0x79, 0xdb, 0xbd, 0x11, 0xc5, 0x97, 0x8d, 0xe6, 0x05, 0xfd, 0x55, 0x93, 0xd8, 0x26, 0xb7, 0x4f, 0x41, 0xdd, 0xa9, 0x0b, 0x86, 0xd8, 0xf9, 0xc5, 0x53, 0x4b, 0xa3, 0x61, 0x91, 0xef, 0xe4, 0x56, 0xd5, 0xa1, 0x9d, 0xf5, 0x4a, 0x02, 0x67, 0x7e, 0x3c, 0x4a, 0x0a, 0x11, 0xd9, 0x71, 0x28, 0x36, 0x8a, 0x86, 0xe7, 0x35, 0x69, 0x20, 0x87, 0x77, 0xbf, 0x1e, 0xc5, 0x54, 0x58, 0x69, 0x72, 0xc4, 0x21, 0x3b, 0x59, 0x11, 0x7b, 0xd8, 0x11, 0x4d, 0xd3, 0x21, 0x24, 0x6f, 0x67, 0x60, 0xc7, 0x8e, 0x84, 0x56, 0x21, 0x3d, 0x1e, 0x55, 0x33, 0x04, 0x2b, 0xee, 0x24, 0xb1, 0x86, 0x9b, 0x82, 0x17, 0x1f, 0x35, 0x3b, 0x91, 0x46, 0xce, 0x6e, 0xb3, 0xe9, 0xaa, 0x69, 0x17, 0xd8, 0x79, 0x73, 0x12, 0xd8, 0x28, 0x4c, 0x69, 0x0b, 0x17, 0x41, 0x8d, 0xd1, 0x33, 0xc5, 0xfc, 0x39, 0xd8, 0xd8, 0xd6, 0x20, 0x6e, 0x2a, 0x3a, 0x3c, 0xff, 0x22, 0x16, 0x9f, 0xd5, 0x29, 0x57, 0x19, 0x7b, 0x54, 0x5d, 0xaa, 0x42, 0xf4, 0xf3, 0x86, 0x46, 0xab, 0xe8, 0xd7, 0x5f, 0xb3, 0xef, 0xcd, 0xfb, 0xb8, 0xed, 0x05, 0x2a, 0x6e, 0xb9, 0x3a, 0xb8, 0xca, 0xc1, 0x97, 0xd1, 0x14, 0xdd, 0x30, 0xa8, 0x6b, 0x43, 0xdd, 0x30, 0xe4, 0xf5, 0x55, 0xdd, 0xfc, 0xc0, 0x1d, 0x7a, 0x7c, 0x76, 0xfd, 0xd4, 0xf3, 0x66, 0x93, 0xc4, 0xc3, 0x8f, 0x2c, 0xc7, 0x0f, 0x56, 0xf1, 0xb1, 0x9a, 0x3c, 0x36, 0x7f, 0x7c, 0x4b, 0x7f, 0x5c, 0xb0, 0x5f, 0x40, 0x20, 0xfb, 0xd8, 0x0f, 0x1b, 0x92, 0x36, 0x41, 0x2e, 0x24, 0x3e, 0x6e, 0x03, 0x32, 0xb5, 0xa8, 0x0c, 0x92, 0xf0, 0xfd, 0x1c, 0xd4, 0x12, 0xac, 0x1a, 0x1d, 0x66, 0xc0, 0xa5, 0xc9, 0x61, 0x90, 0x52, 0xfe, 0x07, 0x3c, 0x3a, 0xc6, 0x7b, 0x1b, 0xc0, 0xe7, 0x34, 0xe6, 0x86, 0xad, 0x65, 0xac, 0x3a, 0xd5, 0x6c, 0xd5, 0xdf, 0x29, 0x50, 0x61, 0xeb, 0xe4, 0x0d, 0x07, 0xd0, 0xd4, 0x0a, 0x25, 0x40, 0x97, 0xd0, 0xc1, 0xee, 0x69, 0xba, 0x68, 0xcc, 0xcf, 0xf2, 0x9e, 0x29, 0xf4, 0x2f, 0x19, 0xd2, 0x5d, 0xfe, 0x08, 0x21, 0x6d, 0xfb, 0xdf, 0x7b, 0x85, 0xda, 0x6c, 0xbe, 0xf1, 0xda, 0x25, 0x91, 0x14, 0x36, 0x3d, 0x6a, 0x87, 0x4e, 0xc1, 0x8f, 0x5a, 0xee, 0xc0, 0x6a, 0x49, 0xcf, 0x3c, 0x17, 0xdc, 0x94, 0x92, 0x7a, 0x7a, 0x80, 0x2d, 0x7c, 0x64, 0x9f, 0x0c, 0xa5, 0x34, 0x65, 0x0b, 0x0a, 0x7d, 0x59, 0xc9, 0xc8, 0x20, 0x61, 0xa4, 0x59, 0xd1, 0xe7, 0x86, 0xf1, 0xe1, 0x66, 0xa4, 0xbd, 0x91, 0x94, 0xe5, 0xf4, 0xad, 0x7f, 0x0b, 0xa2, 0x9d, 0xf5, 0x5d, 0x31, 0xbd, 0x7a, 0xf5, 0x76, 0x1c, 0x7f, 0xbd, 0xbb, 0x38, 0x3c, 0x6d, 0xb4, 0x10, 0xa2, 0x05, 0x36, 0x39, 0x05, 0x23, 0x93, 0xdc, 0x67, 0x87, 0xde, 0x6f, 0xe3, 0xc3, 0xb5, 0x5f, 0xb1, 0xae, 0x40, 0xd2, 0x2c, 0x98, 0x8b, 0x8b, 0xe2, 0x89, 0x3a, 0x94, 0x61, 0x4a, 0x77, 0x81, 0xbd, 0x1e, 0xf1, 0xe1, 0x9a, 0x2b, 0x8a, 0x16, 0x19, 0x22, 0x90, 0x11, 0x2b, 0x2f, 0x01, 0xad, 0x4b, 0xd7, 0x68, 0xe7, 0xa3, 0x7f, 0xfc, 0x9c, 0x63, 0x3e, 0x31, 0x16, 0x6d, 0x16, 0x09, 0x2e, 0x06, 0x3b, 0x64, 0xe3, 0x34, 0x2e, 0xf6, 0x6b, 0x48, 0x75, 0x4e, 0xaf, 0x33, 0x95, 0x0e, 0x84, 0x58, 0xf1, 0xa3, 0xaa, 0x6f, 0x49, 0x66, 0x4f, 0xf6, 0xbf, 0xfe, 0x2a, 0x94, 0x9e, 0xaf, 0xde, 0xf6, 0x7c, 0x8e, 0x7e, 0x33, 0xd4, 0x5a, 0x45, 0xd1, 0x08, 0x3c, 0x85, 0x3e, 0xdc, 0x0b, 0x01, 0x5a, 0x8e, 0x4f, 0x40, 0x51, 0x98, 0xef, 0xe1, 0x12, 0x04, 0x3f, 0xcf, 0x7f, 0xac, 0x7d, 0x50, 0x2a, 0x06, 0xe2, 0x9f, 0xe2, 0x32, 0x0c, 0xce, 0xf0, 0x4b, 0xde, 0x71, 0x14, 0xf7, 0x4c, 0x14, 0xe1, 0xed, 0x75, 0x67, 0x14, 0x1f, 0x8e, 0xf8, 0x5b, 0x0c, 0xf0, 0x8a, 0xd8, 0xc2, 0x3e, 0xff, 0xb1, 0xb3, 0x6f, 0x53, 0xd3, 0x6c, 0xc1, 0x29, 0xae, 0xa9, 0x91, 0xe0, 0xa1, 0x82, 0x50, 0xe4, 0xb7, 0x63, 0xe4, 0x13, 0xf4, 0x50, 0x33, 0x12, 0x0f, 0x38, 0xe3, 0xc0, 0x4e, 0x8e, 0xe6, 0xa9, 0x9a, 0x58, 0x74, 0x26, 0x63, 0x76, 0xdf, 0xdd, 0x47, 0x4c, 0x79, 0x24, 0x9b, 0x6e, 0x1d, 0xaa, 0xe7, 0x1b, 0xa3, 0x24, 0x91, 0x70, 0x7d, 0x30, 0x91, 0xea, 0x0b, 0xc9, 0xd6, 0xc4, 0x88, 0x6b, 0x0f, 0xa4, 0x87, 0x55, 0xec, 0xc7, 0x5c, 0x20, 0x13, 0x1f, 0xee, 0xc9, 0xe7, 0x4f, 0x1e, 0x6f, 0x6f, 0x0f, 0xd4, 0x57, 0x25, 0x09, 0x32, 0x13, 0x94, 0x7b, 0xe5, 0xc4, 0xb9, 0xb8, 0x19, 0xbb, 0xd9, 0xe2, 0x2b, 0x30, 0x06, 0xeb, 0x33, 0x8a, 0x0f, 0x47, 0x72, 0x4c, 0xdf, 0xa3, 0x43, 0x24, 0x13, 0x1c, 0x0c, 0xdd, 0x1a, 0xc2, 0x24, 0x6c, 0x32, 0x7e, 0xc0, 0xc6, 0x5c, 0x7a, 0xb9, 0x02, 0x1c, 0x29, 0xce, 0xc3, 0x48, 0x8e, 0x25, 0x0e, 0x17, 0xa7, 0x2a, 0x69, 0xc3, 0x44, 0xd0, 0x33, 0x16, 0x7b, 0xf8, 0x03, 0xa5, 0x95, 0x57, 0xda, 0x20, 0xfa, 0x6c, 0x35, 0x99, 0x1b, 0x19, 0x34, 0x5e, 0x5d, 0x5c, 0x98, 0xd3, 0x3e, 0xc9, 0xa5, 0xd3, 0x37, 0xeb, 0xe0, 0x92, 0xdc, 0xd0, 0x27, 0x73, 0xb0, 0xee, 0x36, 0xa1, 0x49, 0xae, 0xa7, 0x2b, 0x0f, 0x17, 0xad, 0x2d, 0xd9, 0x58, 0xf2, 0x87, 0xcc, 0x09, 0x5d, 0x0c, 0xfb, 0x16, 0x76, 0x9b, 0xd5, 0xa1, 0x19, 0xf7, 0x86, 0xe2, 0xb6, 0x46, 0x60, 0x3f, 0xf8, 0xe8, 0x6d, 0x4b, 0xed, 0x76, 0xca, 0xae, 0xd5, 0x3b, 0x6f, 0x48, 0xef, 0x04, 0xc4, 0x0f, 0xc5, 0x32, 0x92, 0x17, 0xac, 0x61, 0xf6, 0xf7, 0x58, 0x56, 0xa8, 0x05, 0x5f, 0x17, 0x85, 0x56, 0x0f, 0xbf, 0x7f, 0x4a, 0xdd, 0x15, 0x25, 0x09, 0x73, 0x9e, 0x51, 0xac, 0x11, 0xfc, 0x31, 0xc4, 0x3c, 0xa9, 0xd8, 0x3f, 0xc9, 0x63, 0x88, 0xef, 0x43, 0x3c, 0xf8, 0xc8, 0xad, 0x4b, 0x81, 0xd9, 0xc4, 0x5e, 0x20, 0xc6, 0x0a, 0x62, 0x9f, 0x97, 0xa1, 0x9d, 0xdb, 0x80, 0x27, 0x48, 0x4a, 0x6d, 0x71, 0x97, 0x78, 0x71, 0x1e, 0x05, 0x73, 0xa8, 0x5b, 0x5f, 0x0a, 0x5c, 0x37, 0x54, 0xdb, 0x1d, 0xe8, 0x24, 0x0d, 0x6c, 0xe2, 0x0d, 0x9e, 0xd1, 0x06, 0x8a, 0xd7, 0x35, 0x7e, 0x8e, 0xec, 0x2b, 0xb5, 0x1a, 0x58, 0xef, 0xd6, 0xb1, 0xc5, 0x43, 0x99, 0x46, 0x62, 0xea, 0x3a, 0xc7, 0x8d, 0x2f, 0x35, 0x93, 0x6b, 0x43, 0x53, 0x00, 0x3a, 0x8d, 0xef, 0x65, 0x4c, 0x19, 0x32, 0x82, 0xe7, 0xc0, 0x69, 0x11, 0x48, 0x52, 0xa7, 0x53, 0x33, 0x43, 0x0e, 0x37, 0xa2, 0x0a, 0xad, 0xdd, 0x00, 0xdb, 0xc1, 0xb2, 0x65, 0xf6, 0xe9, 0x27, 0x5c, 0xd4, 0x8f, 0xd2, 0xbb, 0x9b, 0xbc, 0x59, 0x85, 0x4c, 0x77, 0xa2, 0xe8, 0xa3, 0xc0, 0xbf, 0x80, 0x98, 0xa6, 0xc3, 0x70, 0x20, 0x15, 0x30, 0xf3, 0x28, 0xe1, 0x93, 0x5a, 0xb9, 0xd6, 0x96, 0x47, 0x90, 0xf3, 0x73, 0x5e, 0xde, 0x04, 0x19, 0xe2, 0x64, 0x61, 0xd8, 0xd9, 0xb5, 0xab, 0xeb, 0xcc, 0xdb, 0xbf, 0xff, 0x87, 0xfe, 0xf2, 0x03, 0xed, 0xd4, 0x3f, 0x75, 0xa7, 0x34, 0xe9, 0x2e, 0x0d, 0x40, 0x18, 0x60, 0x5b, 0x27, 0xbf, 0xc7, 0xae, 0xfc, 0x95, 0xb2, 0x9a, 0x78, 0x6b, 0x08, 0xff, 0x08, 0x03, 0xfe, 0x7e, 0x64, 0xf5, 0x68, 0x19, 0x24, 0xa5, 0xaa, 0x72, 0x28, 0xfb, 0x93, 0xbb, 0xc0, 0x25, 0x45, 0x64, 0xf8, 0x63, 0x31, 0x00, 0x90, 0xb3, 0x31, 0xe9, 0x08, 0x03, 0x86, 0x5b, 0xf5, 0xf2, 0x29, 0xfe, 0x58, 0x09, 0x9a, 0x91, 0xb1, 0x65, 0xcc, 0xcc, 0xc9, 0xd0, 0xe3, 0x9f, 0xc7, 0x0d, 0x0b, 0x4d, 0x6a, 0x11, 0x6f, 0x4a, 0x0b, 0xe0, 0xca, 0x8c, 0x43, 0x0d, 0xe8, 0xd5, 0x10, 0x9f, 0x28, 0xb6, 0x0c, 0xa6, 0x6a, 0x9e, 0xee, 0x9e, 0x3d, 0x10, 0x60, 0x04, 0x7a, 0x48, 0x5f, 0xe6, 0x96, 0x70, 0x36, 0x47, 0xe3, 0xf7, 0xff, 0xe0, 0x44, 0xc0, 0x7f, 0x86, 0xba, 0xef, 0xe9, 0xf9, 0xd1, 0x01, 0xa6, 0xf4, 0xfb, 0x61, 0x7d, 0xb7, 0x98, 0x94, 0x73, 0xb9, 0x78, 0xb4, 0xf9, 0x66, 0x03, 0xf5, 0x67, 0x4c, 0x25, 0x88, 0xd5, 0x0d, 0x3d, 0x78, 0x94, 0x41, 0xb4, 0xf3, 0x05, 0xd9, 0x61, 0xe5, 0x94, 0xeb, 0x65, 0xa9, 0x70, 0xc1, 0xdc, 0xbc, 0xdf, 0x27, 0x8a, 0x78, 0xc2, 0x5d, 0x6f, 0xa5, 0xbf, 0xb1, 0x78, 0x54, 0xb5, 0x04, 0x24, 0x1a, 0x02, 0x5a, 0x4f, 0xc7, 0x96, 0xa7, 0x47, 0x81, 0x65, 0x88, 0x5f, 0x98, 0x69, 0x7e, 0x40, 0x49, 0xa6, 0x98, 0xb9, 0x2f, 0xf9, 0x67, 0xc3, 0x73, 0xfc, 0x4c, 0xf3, 0x68, 0x04, 0xca, 0x80, 0x32, 0x33, 0xa4, 0xf8, 0x64, 0x10, 0x96, 0x3f, 0x27, 0xb1, 0xd4, 0x3c, 0x4a, 0x7c, 0x37, 0x7c, 0x26, 0x98, 0xa7, 0xde, 0xea, 0x0f, 0x19, 0xe0, 0x7e, 0xf3, 0xeb, 0x6c, 0xfd, 0x68, 0xe8, 0x1f, 0x64, 0x18, 0xf3, 0x22, 0x95, 0x64, 0x36, 0xce, 0x5e, 0xb3, 0xf7, 0x49, 0x41, 0xd7, 0x90, 0xdb, 0x6c, 0x4e, 0x7b, 0x74, 0xdf, 0x70, 0xb4, 0xa7, 0x5a, 0xb5, 0x21, 0x99, 0x3f, 0xe4, 0x5f, 0xcb, 0x2f, 0xac, 0x86, 0xd1, 0x50, 0x41, 0x0e, 0xa5, 0x1c, 0xd1, 0xc8, 0xf7, 0xac, 0xb5, 0xd4, 0x10, 0x85, 0xb0, 0x2d, 0x0e, 0x57, 0x9e, 0x0e, 0x12, 0x17, 0xdd, 0xd6, 0xa4, 0xbe, 0x84, 0x02, 0xe1, 0xeb, 0x87, 0xb3, 0x51, 0x72, 0x1b, 0x9a, 0x3a, 0x46, 0x33, 0xf0, 0x92, 0xd3, 0x0f, 0x31, 0x4f, 0xaa, 0x63, 0x59, 0x90, 0xd7, 0x36, 0x12, 0x67, 0x4e, 0x22, 0xdc, 0x1e, 0xc1, 0xd1, 0xff, 0xf4, 0xa2, 0xed, 0xec, 0xda, 0x1a, 0x7a, 0x51, 0x76, 0xa3, 0x8b, 0x30, 0xa4, 0xe6, 0xfa, 0xe1, 0x38, 0xff, 0xfe, 0xe9, 0x68, 0x77, 0x3b, 0x38, 0xd4, 0x66, 0xf9, 0xc1, 0xd0, 0x46, 0x75, 0xf7, 0x81, 0xb2, 0x54, 0x71, 0x66, 0x1a, 0x55, 0xc0, 0x0f, 0xb0, 0xb3, 0x8c, 0x8d, 0xb0, 0x5a, 0xd2, 0x38, 0x20, 0xf3, 0x79, 0xc9, 0x06, 0xdb, 0x7d, 0xcb, 0x68, 0xe7, 0x83, 0xfa, 0x10, 0x3d, 0x5b, 0xed, 0x0e, 0x73, 0x8f, 0x83, 0x89, 0x51, 0x02, 0xca, 0x07, 0x44, 0xae, 0x2d, 0x31, 0x19, 0xb9, 0x97, 0x55, 0xf9, 0xd4, 0x6f, 0xb7, 0x8a, 0x07, 0x40, 0x52, 0x8c, 0x3c, 0x4a, 0xa1, 0xec, 0x28, 0xc4, 0x72, 0xe7, 0x7f, 0xf0, 0xff, 0x7a, 0x21, 0x2b, 0x9b, 0xee, 0x88, 0xd3, 0x36, 0x13, 0xa5, 0xcc, 0x1a, 0x97, 0x81, 0x70, 0x7c, 0xcf, 0x3a, 0x81, 0xe1, 0xbe, 0xcf, 0x68, 0x78, 0xf3, 0x3c, 0xad, 0xed, 0x04, 0x79, 0x05, 0xb8, 0x51, 0x58, 0x2f, 0x90, 0xeb, 0xae, 0x82, 0xda, 0xaf, 0x24, 0x12, 0x35, 0xe2, 0x58, 0xd3, 0x45, 0x39, 0xea, 0xd9, 0x19, 0x4e, 0x1c, 0xee, 0xee, 0x4c, 0xff, 0x86, 0xf0, 0x9a, 0xc3, 0xe0, 0x63, 0xd7, 0xad, 0xc0, 0x1b, 0xbb, 0x25, 0x41, 0x3c, 0x28, 0xe7, 0xdb, 0x7c, 0x5b, 0x40, 0x0b, 0x1e, 0x48, 0x1d, 0x18, 0xcc, 0x3d, 0xb7, 0x76, 0xab, 0xdd, 0xbd, 0xb9, 0xe7, 0x9c, 0x2d, 0x0a, 0x08, 0x73, 0x34, 0xfa, 0x59, 0xe2, 0xa0, 0x41, 0x38, 0xb9, 0x0f, 0x85, 0x74, 0x96, 0xf5, 0xcc, 0xef, 0x92, 0x28, 0x7a, 0xff, 0x9a, 0xcf, 0x3f, 0xd9, 0x8d, 0xd0, 0x3f, 0xd2, 0x87, 0x3f, 0xe4, 0x4b, 0x8f, 0x67, 0x1d, 0x9f, 0xd1, 0x61, 0xa1, 0xee, 0x45, 0xca, 0x26, 0x38, 0xc7, 0x98, 0x52, 0x2e, 0xb4, 0x07, 0x16, 0xe7, 0x2a, 0xdd, 0xbb, 0x99, 0x53, 0xc6, 0x57, 0x60, 0x87, 0x80, 0x0f, 0x44, 0x61, 0xec, 0x5b, 0xd1, 0xd2, 0xc4, 0x41, 0x70, 0x7c, 0x76, 0xfd, 0x38, 0x0c, 0x44, 0x25, 0x11, 0x77, 0x99, 0xbf, 0xa4, 0xfd, 0xe7, 0xbd, 0x4b, 0xe2, 0x7e, 0x1d, 0xb2, 0x24, 0x5e, 0x80, 0xdf, 0x64, 0x47, 0x16, 0xa2, 0xeb, 0xf0, 0x27, 0x7a, 0xcf, 0x92, 0xdc, 0x22, 0xee, 0x9d, 0x89, 0xf9, 0xd6, 0x07, 0x8b, 0x00, 0x6f, 0x64, 0x33, 0x7f, 0x9a, 0xbe, 0x6d, 0x14, 0x13, 0x87, 0x0d, 0x4f, 0xe8, 0x88, 0x4a, 0xa4, 0x3c, 0x95, 0xb8, 0x46, 0x9d, 0x44, 0x14, 0xec, 0x0e, 0x7d, 0x3d, 0x8a, 0xce, 0x41, 0xfb, 0xdc, 0xd6, 0x76, 0x0e, 0x66, 0x0a, 0xee, 0x87, 0x7c, 0x5d, 0x48, 0xf4, 0x5d, 0x94, 0xd2, 0x93, 0xdd, 0xce, 0xe6, 0x9e, 0x39, 0xf0, 0x15, 0xb8, 0x7f, 0x16, 0xb8, 0x46, 0x1f, 0xea, 0x7a, 0x4e, 0xa4, 0x9e, 0x5f, 0xdc, 0x99, 0x29, 0xd5, 0xbd, 0xd0, 0x34, 0xbe, 0x00, 0xe5, 0xe7, 0xf4, 0xb8, 0x3c, 0x83, 0x79, 0xb3, 0x86, 0x4f, 0x73, 0x99, 0x51, 0xfa, 0x0d, 0x43, 0x8f, 0xdf, 0x47, 0x8c, 0x24, 0x87, 0xf1, 0x79, 0x17, 0xe8, 0x13, 0x3e, 0x61, 0x95, 0x85, 0x51, 0xb2, 0x6b, 0x2d, 0xc1, 0x7b, 0x08, 0xa1, 0x35, 0x12, 0x0d, 0xe2, 0xa2, 0xdb, 0xed, 0x0d, 0xa1, 0x42, 0xc4, 0x60, 0x43, 0x74, 0xf7, 0x3f, 0x40, 0x13, 0xe0, 0x78, 0xb4, 0x64, 0x9d, 0x5b, 0x14, 0x26, 0x1a, 0x14, 0xb4, 0xa1, 0x31, 0xe5, 0xe1, 0x09, 0x09, 0xc3, 0x79, 0x04, 0x5a, 0x3d, 0x89, 0x40, 0x65, 0xa0, 0x95, 0x16, 0x72, 0xb0, 0xdd, 0x51, 0x6f, 0x95, 0x52, 0x51, 0x3a, 0xa4, 0x4a, 0xd8, 0x21, 0x7e, 0x91, 0xf4, 0xba, 0x58, 0x5d, 0xba, 0x47, 0xb3, 0x3d, 0x50, 0xad, 0x4e, 0x55, 0x35, 0xc9, 0xb1, 0x01, 0x3a, 0x26, 0x18, 0xff, 0x94, 0xba, 0xce, 0x20, 0xd3, 0x2c, 0x5d, 0x3f, 0x9c, 0x4e, 0x47, 0xba, 0xb1, 0xc1, 0xda, 0xba, 0x04, 0x70, 0x58, 0xd9, 0x21, 0x25, 0x23, 0x54, 0x22, 0x3b, 0x47, 0xc2, 0xd4, 0xb2, 0xac, 0x73, 0x27, 0x5f, 0x43, 0xc6, 0xf5, 0x2f, 0x5d, 0xef, 0x1e, 0x16, 0xd5, 0xe1, 0x42, 0xf7, 0x09, 0xc6, 0x28, 0x63, 0x90, 0x35, 0x28, 0x8f, 0xf2, 0xd6, 0xd0, 0xc7, 0xa3, 0x3e, 0x15, 0x8b, 0x92, 0xec, 0xd7, 0x56, 0xdc, 0x08, 0xc9, 0x82, 0xf2, 0x8b, 0xad, 0xda, 0x81, 0x34, 0x53, 0xb1, 0xdc, 0xcc, 0x46, 0x0c, 0xb6, 0x63, 0x38, 0x6e, 0x5d, 0x35, 0xce, 0x50, 0xb0, 0x2f, 0xb2, 0x10, 0x8e, 0xbe, 0xf7, 0x6e, 0x10, 0x10, 0xde, 0x07, 0xdb, 0x2b, 0x84, 0x03, 0x37, 0x65, 0x43, 0x79, 0x1e, 0x0b, 0x23, 0xcf, 0xc1, 0x0c, 0x18, 0xd2, 0xd0, 0x31, 0x2e, 0x7d, 0x3a, 0xe2, 0xa3, 0xc3, 0x68, 0x12, 0x06, 0x4e, 0xd6, 0x8d, 0xa6, 0x35, 0x82, 0x76, 0x28, 0x84, 0x52, 0xef, 0xb9, 0x69, 0x84, 0x35, 0x14, 0xfd, 0xa2, 0x5e, 0x62, 0xd9, 0x53, 0xfe, 0xe4, 0x9a, 0x15, 0x78, 0xc6, 0xfb, 0xfa, 0x2f, 0xfa, 0x2c, 0x22, 0xfe, 0x69, 0x49, 0xff, 0x4f, 0x1e, 0xb6, 0x75, 0x9a, 0xc1, 0x1e, 0x8e, 0x45, 0x6d, 0x52, 0xdc, 0x39, 0xd0, 0x58, 0x29, 0x25, 0x12, 0x5c, 0x7a, 0x8d, 0x5c, 0xb8, 0xb9, 0x8e, 0xb3, 0x69, 0x0c, 0xef, 0xac, 0x57, 0x84, 0xc0, 0x7d, 0x71, 0x9f, 0x2c, 0x67, 0x64, 0x2a, 0xf6, 0x20, 0xd9, 0xf1, 0x08, 0xba, 0xb2, 0xdd, 0x61, 0xa6, 0x67, 0x56, 0x76, 0x89, 0xd8, 0x5c, 0x9d, 0x96, 0x16, 0x3e, 0xfc, 0x4a, 0xb3, 0xe2, 0xd1, 0x1e, 0x32, 0xa7, 0x7f, 0x55, 0xae, 0x75, 0x25, 0x19, 0x44, 0x95, 0x95, 0x30, 0x0f, 0x62, 0xf6, 0xeb, 0x45, 0x59, 0x4b, 0x5a, 0xdd, 0x7f, 0x67, 0xfb, 0x44, 0xd9, 0x5e, 0x94, 0x85, 0x30, 0x62, 0xb8, 0xfe, 0xef, 0x35, 0x29, 0xce, 0x10, 0x15, 0xcb, 0x32, 0x27, 0x92, 0x2b, 0x06, 0x62, 0x5b, 0xde, 0xc0, 0xb6, 0x74, 0x7e, 0xc8, 0x78, 0xdd, 0x6d, 0x12, 0xc9, 0x40, 0x87, 0xeb, 0x4a, 0x9d, 0x2a, 0x6c, 0x44, 0xa8, 0x67, 0x84, 0x5d, 0x23, 0xa3, 0x87, 0x33, 0xe4, 0xa7, 0x8f, 0xe2, 0x6b, 0xc0, 0x8c, 0x3e, 0xf1, 0x1a, 0xfa, 0xfd, 0x42, 0xa3, 0xc4, 0xc7, 0x8c, 0x5d, 0x3f, 0x9c, 0xe4, 0xc9, 0xb3, 0x2b, 0xc9, 0x6f, 0x89, 0xd6, 0x02, 0x06, 0x27, 0x3f, 0x70, 0xc2, 0xce, 0xda, 0x7b, 0x2c, 0x1e, 0xbc, 0xa0, 0x89, 0xd5, 0x5c, 0x60, 0xda, 0xb6, 0x1c, 0xa2, 0x5b, 0x46, 0x42, 0xe1, 0x43, 0xba, 0x5c, 0x8a, 0xb4, 0xb9, 0x9f, 0xe4, 0x13, 0x86, 0x85, 0xe4, 0x26, 0xc0, 0xd4, 0x86, 0x0a, 0x00, 0x9c, 0x4d, 0x59, 0x7e, 0x64, 0xa7, 0x2a, 0xa7, 0x60, 0x53, 0x31, 0x64, 0x88, 0x43, 0x1d, 0x90, 0xfc, 0x5c, 0xef, 0xcd, 0xce, 0x78, 0xfc, 0xcd, 0x4e, 0xd6, 0x4c, 0x55, 0xea, 0xed, 0xb8, 0xec, 0x3f, 0xb1, 0xbe, 0xef, 0xd7, 0x62, 0x21, 0x79, 0xd1, 0x0f, 0x90, 0x88, 0xdf, 0xfa, 0xb5, 0x1f, 0x40, 0xfb, 0xd8, 0x84, 0xb6, 0x2d, 0xfa, 0x09, 0x96, 0x49, 0x68, 0xda, 0xfa, 0x91, 0xb6, 0x4b, 0x01, 0x93, 0xde, 0x62, 0x44, 0x5a, 0x63, 0xa7, 0xde, 0x7f, 0xb3, 0xdd, 0xe2, 0xa2, 0x4b, 0x21, 0xd7, 0x0a, 0xa5, 0xfc, 0xac, 0x96, 0xff, 0x4b, 0xce, 0x13, 0x9e, 0x1d, 0x8e, 0xfd, 0x22, 0x41, 0xea, 0xfe, 0x09, 0x2f, 0xc9, 0x87, 0xc1, 0x6e, 0x8a, 0xfb, 0x67, 0xfc, 0xe0, 0x09, 0x3f, 0x6c, 0xc6, 0x12, 0x18, 0x80, 0x0f, 0x4d, 0x27, 0x81, 0x39, 0xc3, 0x3d, 0x2d, 0x28, 0xe2, 0x54, 0x13, 0x70, 0x99, 0x17, 0x0f, 0x71, 0xee, 0xd9, 0x14, 0x1d, 0xf2, 0xb7, 0x52, 0x03, 0x7b, 0x3b, 0xa8, 0x24, 0x00, 0xd7, 0x92, 0x2b, 0x7c, 0x59, 0xde, 0x3b, 0xbb, 0x54, 0x60, 0xbc, 0x49, 0x2c, 0x78, 0xce, 0xf7, 0xa9, 0xd2, 0x0f, 0xe5, 0xf1, 0xe4, 0xd3, 0x15, 0xe5, 0x1f, 0x47, 0xfa, 0x59, 0x07, 0x6e, 0x2c, 0xa3, 0xef, 0x71, 0xad, 0xd5, 0x35, 0x85, 0xe5, 0x7b, 0xce, 0xc2, 0xea, 0xf5, 0xf7, 0x6d, 0x36, 0xa5, 0x5e, 0xcf, 0xe7, 0xd6, 0x0e, 0xb8, 0x57, 0x24, 0x19, 0x71, 0xb6, 0xd4, 0xed, 0x21, 0xba, 0x00, 0x99, 0x30, 0x99, 0x0e, 0xf4, 0x62, 0x0c, 0x92, 0x07, 0x93, 0x02, 0x42, 0x0d, 0xba, 0xb5, 0x0e, 0x94, 0x18, 0x67, 0x49, 0xb1, 0x76, 0xfe, 0x65, 0x3a, 0xb5, 0x00, 0x46, 0xf7, 0xcd, 0x2e, 0xe5, 0x3e, 0x76, 0x9d, 0x5d, 0xe0, 0x3c, 0xa2, 0x96, 0x46, 0x81, 0xec, 0xa8, 0x07, 0x89, 0xf3, 0x5c, 0xba, 0x79, 0xdb, 0xd0, 0x9e, 0xbf, 0x5b, 0xb5, 0xe3, 0xcf, 0x0f, 0x10, 0x78, 0x51, 0x83, 0x1c, 0x53, 0xc5, 0xcc, 0x1f, 0x7e, 0x7d, 0x3e, 0xc1, 0x85, 0xe7, 0x14, 0x35, 0x52, 0x49, 0xbb, 0x17, 0x47, 0x5b, 0x39, 0x3c, 0xd4, 0x15, 0x82, 0x0c, 0x7d, 0x75, 0x92, 0xdb, 0x5c, 0xb7, 0x0e, 0x8b, 0xe0, 0x98, 0xce, 0xbc, 0x2e, 0xef, 0xd7, 0x02, 0x71, 0x02, 0x5e, 0xfa, 0x3a, 0x41, 0xf7, 0xb3, 0x03, 0xd3, 0xd8, 0x41, 0x74, 0x71, 0x1a, 0x25, 0x9a, 0xfb, 0x5d, 0x8a, 0xe6, 0x0c, 0xe3, 0x37, 0x46, 0xac, 0x82, 0xb6, 0x91, 0x10, 0xee, 0xb2, 0xc5, 0xa1, 0x45, 0xde, 0x1e, 0x52, 0x6c, 0x1f, 0x42, 0x44, 0xe4, 0xf0, 0x8c, 0xdc, 0x55, 0x34, 0x45, 0x50, 0xa3, 0x8c, 0xbf, 0x8c, 0xfa, 0x4c, 0xeb, 0x34, 0xcd, 0x38, 0xfe, 0x44, 0xaf, 0xbb, 0x72, 0x0e, 0x58, 0xa1, 0xa4, 0x4f, 0x0e, 0xef, 0x73, 0xb5, 0x23, 0x28, 0x41, 0x51, 0x09, 0xe4, 0x90, 0xa2, 0x09, 0x36, 0x85, 0x25, 0x34, 0xfc, 0x29, 0x3e, 0x09, 0x85, 0xf1, 0x3f, 0x58, 0x3f, 0x9c, 0x36, 0x00, 0xf9, 0x84, 0x38, 0xa6, 0xb7, 0xa9, 0xb9, 0x03, 0xb1, 0xfa, 0x80, 0x3a, 0x85, 0x14, 0x72, 0x4d, 0x57, 0x38, 0x60, 0xd2, 0xee, 0x97, 0xdb, 0x74, 0xbb, 0xb3, 0xd7, 0x4d, 0xa4, 0x84, 0xc4, 0xa8, 0xf5, 0x88, 0x6f, 0xb3, 0xb0, 0x30, 0x16, 0x75, 0x8a, 0xea, 0x11, 0x3a, 0xe5, 0xec, 0xb6, 0xe1, 0xf8, 0x02, 0x7e, 0x47, 0x73, 0xc9, 0x8d, 0x5e, 0x47, 0x21, 0x6d, 0x07, 0x90, 0x1a, 0xa9, 0xaa, 0x90, 0x3a, 0x56, 0x7c, 0xcd, 0xfa, 0xeb, 0x6e, 0x67, 0x97, 0xa3, 0xb2, 0xca, 0x49, 0xde, 0x20, 0x91, 0x53, 0x07, 0x23, 0xba, 0x1f, 0x80, 0x9f, 0x90, 0xf5, 0x18, 0x1b, 0x4e, 0x23, 0x6b, 0x49, 0xc2, 0xa1, 0xb5, 0x60, 0xe8, 0x05, 0xe8, 0x95, 0x7e, 0x67, 0x47, 0x15, 0xe8, 0x84, 0x58, 0x7d, 0xb9, 0xd6, 0xe0, 0xd8, 0x4e, 0xb1, 0x9a, 0xf2, 0x62, 0x57, 0xeb, 0x16, 0x4a, 0x31, 0x58, 0x43, 0x78, 0x15, 0x57, 0xb2, 0x07, 0xbe, 0xa8, 0xbc, 0xae, 0x57, 0x38, 0xb0, 0xd7, 0xc7, 0x27, 0x47, 0x36, 0xab, 0xed, 0x7f, 0xee, 0x8c, 0x68, 0xcb, 0xab, 0x69, 0x90, 0xc3, 0xc7, 0x35, 0xa4, 0x5e, 0x41, 0xb0, 0x14, 0x99, 0x7e, 0x3b, 0xe0, 0xbe, 0x9a, 0xf8, 0x71, 0xab, 0xc2, 0xf4, 0xe8, 0xed, 0x77, 0xc7, 0xef, 0x4e, 0xdf, 0xbe, 0x39, 0x7a, 0x7b, 0xfe, 0x99, 0xc7, 0xee, 0x62, 0x5d, 0x23, 0xea, 0x30, 0xb9, 0x20, 0xa7, 0x70, 0xd0, 0x0d, 0x8a, 0x00, 0xb9, 0x77, 0x8b, 0x59, 0xa9, 0xfc, 0x6b, 0xe4, 0x0f, 0xe7, 0x3d, 0xa4, 0x9e, 0x7d, 0xca, 0x24, 0x59, 0x92, 0x67, 0x67, 0x46, 0x71, 0xd5, 0x11, 0xc7, 0x02, 0x6c, 0x5f, 0x62, 0x6a, 0x5c, 0x71, 0x4b, 0x40, 0xe1, 0x48, 0x05, 0xa6, 0xda, 0xb1, 0xcf, 0xec, 0x96, 0x70, 0x10, 0xd0, 0xc5, 0x4a, 0x5b, 0x93, 0x70, 0xc4, 0xfd, 0x5e, 0x0a, 0x40, 0x8b, 0x24, 0xba, 0x1a, 0x45, 0xbf, 0x83, 0x42, 0x80, 0xcf, 0x5e, 0x71, 0x1e, 0x0e, 0x47, 0x5f, 0x98, 0x49, 0x78, 0x39, 0xa0, 0x1e, 0xea, 0xb0, 0xd7, 0x42, 0xb9, 0x8b, 0x34, 0xec, 0xad, 0xe2, 0x2f, 0xea, 0x2c, 0x3a, 0xd8, 0xd9, 0xf9, 0x09, 0xdd, 0xbb, 0xff, 0x24, 0xed, 0xbb, 0x43, 0xc4, 0xd4, 0xda, 0x9b, 0x86, 0x2b, 0x19, 0xd2, 0xea, 0x42, 0xa2, 0x5b, 0xbb, 0x9d, 0x70, 0x03, 0x7f, 0x38, 0x7b, 0x77, 0xfa, 0xc3, 0x9f, 0x7f, 0xe5, 0x4f, 0x78, 0xc9, 0x66, 0x7f, 0xa1, 0x1c, 0x4c, 0x1d, 0xfc, 0xa7, 0x5f, 0xfd, 0x6b, 0xed, 0xe1, 0x07, 0x12, 0x69, 0xe7, 0x56, 0xe3, 0xa1, 0x42, 0xc6, 0xc5, 0xdb, 0x0c, 0xa5, 0xef, 0x52, 0xa2, 0x13, 0xcf, 0xc7, 0x61, 0x93, 0x81, 0x20, 0xe2, 0xea, 0x36, 0x81, 0xa6, 0x21, 0xb0, 0xf6, 0x88, 0x4b, 0x8a, 0x5d, 0x06, 0xaf, 0x56, 0x95, 0x53, 0xe5, 0x38, 0xd7, 0x96, 0x23, 0x1f, 0xd5, 0xee, 0xc7, 0xe1, 0xc9, 0xc9, 0xaf, 0xba, 0x09, 0xe8, 0x80, 0xec, 0xd6, 0x32, 0xb4, 0x1a, 0xaa, 0x3c, 0x7d, 0x0f, 0x70, 0xed, 0xdb, 0x53, 0x99, 0xcd, 0x0b, 0x28, 0xc7, 0xc3, 0x3a, 0x33, 0x2a, 0x6d, 0x4a, 0xf1, 0x7e, 0x05, 0x2e, 0xa7, 0x89, 0xd5, 0x3b, 0x9c, 0x38, 0x19, 0xe0, 0xa8, 0xe3, 0x21, 0x24, 0x0b, 0xc0, 0x84, 0x42, 0x5e, 0x25, 0xef, 0x26, 0x97, 0xc5, 0xa1, 0x6e, 0xa1, 0xb4, 0xb8, 0x44, 0xdc, 0x8f, 0x9d, 0xfb, 0x81, 0x5f, 0x44, 0xda, 0x3d, 0x33, 0x3a, 0x04, 0xc9, 0xdb, 0x2a, 0xaf, 0x3f, 0xa2, 0xa8, 0x83, 0x6e, 0x28, 0x14, 0x24, 0xad, 0xdf, 0x27, 0x95, 0x17, 0x73, 0x1a, 0x31, 0xc4, 0x88, 0xab, 0xa6, 0xcb, 0xeb, 0xd8, 0xec, 0xd0, 0x37, 0x8b, 0x45, 0x31, 0xb9, 0x51, 0xd9, 0x09, 0x9d, 0xb6, 0x4a, 0xbb, 0x04, 0xfc, 0x9d, 0x93, 0xa8, 0x6a, 0x8b, 0x33, 0x10, 0x2b, 0x4b, 0x1f, 0x68, 0xb9, 0x31, 0x3d, 0xc0, 0x9f, 0x6e, 0xea, 0x6c, 0x7e, 0x11, 0xaf, 0xb0, 0x8f, 0x72, 0x0b, 0xa9, 0xf0, 0xb7, 0x0d, 0xe9, 0x95, 0x58, 0xe9, 0xb0, 0x32, 0x60, 0xd2, 0x50, 0x68, 0x21, 0xf4, 0xd7, 0x09, 0x1d, 0xb6, 0xf2, 0x0c, 0x6e, 0x5d, 0x1b, 0xb1, 0xc4, 0xab, 0x66, 0xe5, 0x3c, 0x31, 0x3d, 0xdb, 0x2f, 0x66, 0x61, 0xc1, 0x94, 0xe1, 0x48, 0x3e, 0x7e, 0x87, 0x4a, 0xde, 0xe1, 0x6d, 0xa2, 0xc0, 0x21, 0x7c, 0x4e, 0xad, 0x67, 0xe4, 0x37, 0x0f, 0x19, 0x0e, 0xcd, 0x19, 0x6a, 0xca, 0x8d, 0x96, 0xa9, 0x26, 0x0d, 0x65, 0xf7, 0x36, 0x89, 0xf8, 0xc5, 0x59, 0x09, 0x07, 0xd6, 0x4e, 0x58, 0x27, 0xe1, 0x4d, 0x7c, 0xdd, 0x44, 0x7b, 0x67, 0x1a, 0x89, 0x0d, 0x9b, 0xc7, 0xc8, 0x05, 0xcf, 0x20, 0x32, 0xfe, 0x78, 0x76, 0x9e, 0xd0, 0x56, 0x79, 0x8e, 0xac, 0xc7, 0x29, 0x94, 0x56, 0x16, 0x0b, 0xc2, 0x45, 0xd3, 0x6f, 0xfc, 0x2b, 0x23, 0x77, 0xc1, 0x96, 0xb4, 0x43, 0x09, 0xb7, 0x65, 0xa1, 0x2e, 0xd2, 0x4e, 0xe1, 0x96, 0x24, 0xf4, 0x8f, 0x23, 0xfe, 0x42, 0x42, 0x1d, 0x8c, 0x08, 0xb1, 0x12, 0x5b, 0x77, 0x20, 0xc5, 0xb2, 0xa8, 0xaf, 0x9b, 0x68, 0x99, 0xb1, 0x06, 0xb7, 0x8c, 0x08, 0x9c, 0x97, 0x75, 0x0c, 0x4e, 0x73, 0x42, 0x59, 0xf3, 0x19, 0x1a, 0xfd, 0xf0, 0x95, 0x37, 0xff, 0x3d, 0x3f, 0x7d, 0x79, 0x7a, 0x62, 0xfe, 0x72, 0xf4, 0xfa, 0xf8, 0x07, 0xa7, 0x15, 0x30, 0x40, 0x45, 0xab, 0x40, 0x06, 0xb8, 0x8b, 0xcf, 0x06, 0x3e, 0x1b, 0xe2, 0x1c, 0x44, 0x4a, 0x3f, 0xe4, 0x94, 0xb8, 0x2e, 0x85, 0x5a, 0x6e, 0xe9, 0xf1, 0x39, 0x92, 0xd3, 0x94, 0x2f, 0xea, 0xe1, 0x8f, 0xa4, 0x02, 0xbc, 0x44, 0x5a, 0x34, 0x8f, 0x6c, 0x8b, 0x29, 0xdc, 0x26, 0x53, 0x8d, 0x94, 0xcf, 0xe6, 0x24, 0x1b, 0xd5, 0x7d, 0x32, 0x57, 0x58, 0xa2, 0xd6, 0xe4, 0xca, 0xca, 0x76, 0xc1, 0x6d, 0xfc, 0x0e, 0xeb, 0x9d, 0x96, 0x36, 0x3e, 0x5e, 0x7e, 0x91, 0xf9, 0x8b, 0xb4, 0x6d, 0xd1, 0x9b, 0x2a, 0x03, 0x57, 0x04, 0x50, 0x1d, 0x29, 0x02, 0x3e, 0xca, 0x47, 0x87, 0x22, 0x50, 0xa1, 0x63, 0x47, 0x6c, 0xaf, 0x49, 0x36, 0x40, 0x72, 0xf9, 0x90, 0x5b, 0x41, 0x7a, 0xbc, 0x07, 0xf1, 0x23, 0xd4, 0x1a, 0x2d, 0x17, 0x94, 0x3a, 0x25, 0xfa, 0x03, 0xd9, 0x55, 0x1c, 0xc5, 0x10, 0x8e, 0x7a, 0xee, 0xb5, 0x76, 0x67, 0xa9, 0x20, 0xc1, 0xa7, 0x65, 0x68, 0x5a, 0xd1, 0x19, 0x88, 0xb2, 0xdf, 0xd6, 0x38, 0xea, 0xbe, 0x4f, 0x93, 0x89, 0x2a, 0x7b, 0xe0, 0x3e, 0x1d, 0x64, 0x5d, 0x53, 0xd6, 0x77, 0xfd, 0x78, 0xdd, 0x18, 0xa4, 0x11, 0xfe, 0x6d, 0x95, 0x5f, 0xa7, 0xa8, 0x2d, 0x33, 0x97, 0x65, 0x38, 0xe4, 0x97, 0x3a, 0x63, 0xa4, 0xbf, 0x68, 0x90, 0xb4, 0x3d, 0xca, 0x93, 0x5f, 0x32, 0xc8, 0x93, 0xce, 0x18, 0x57, 0xbf, 0x68, 0x90, 0xa1, 0x0a, 0x08, 0xa3, 0x18, 0xff, 0x70, 0x7c, 0x9e, 0xbc, 0x3c, 0x7d, 0xe5, 0x2e, 0xd8, 0xb9, 0xcd, 0xde, 0x4e, 0x93, 0xc9, 0xaa, 0x30, 0x34, 0x48, 0xbd, 0x98, 0x6c, 0x77, 0x0b, 0x4e, 0x53, 0xa4, 0x1c, 0x9c, 0x5a, 0x2b, 0xd6, 0xf2, 0x8a, 0xa1, 0x88, 0x28, 0xaf, 0x86, 0x91, 0x94, 0xbc, 0x1a, 0x5d, 0x7a, 0x7a, 0x41, 0x40, 0x47, 0x97, 0x2a, 0x7d, 0xe9, 0x56, 0x12, 0xd6, 0x5d, 0x5a, 0x69, 0x55, 0xe9, 0x24, 0x25, 0x30, 0xa3, 0x82, 0x6b, 0x23, 0x8d, 0xec, 0x8c, 0x40, 0x0f, 0xeb, 0x70, 0x3e, 0x02, 0xb1, 0xd1, 0x9d, 0xf3, 0x46, 0xa7, 0xe2, 0x67, 0x12, 0xee, 0x69, 0xae, 0x7f, 0x8b, 0xd2, 0xa5, 0xbd, 0x1d, 0x84, 0x1f, 0xe5, 0x75, 0xcf, 0x2c, 0x9c, 0x35, 0xa9, 0xc4, 0x85, 0xcb, 0xd9, 0xe7, 0x26, 0xd7, 0x81, 0xc4, 0xb6, 0x43, 0xd8, 0xef, 0xec, 0x4b, 0x28, 0xc1, 0xa8, 0xe8, 0xec, 0x37, 0x90, 0xbc, 0xb2, 0xfc, 0xef, 0x9e, 0x82, 0xfe, 0xc8, 0xea, 0x63, 0x66, 0xe5, 0x73, 0x74, 0x8e, 0x9e, 0xf1, 0x85, 0xa8, 0xef, 0x8c, 0x50, 0xbf, 0x85, 0x41, 0x4e, 0xf6, 0x93, 0xc0, 0x39, 0xb9, 0x37, 0x1f, 0x8b, 0x56, 0x96, 0x58, 0xdc, 0x28, 0xb4, 0xdf, 0x5a, 0xb6, 0xa3, 0x41, 0xce, 0x6b, 0xa1, 0x25, 0xd2, 0x08, 0x71, 0x66, 0x35, 0x75, 0xb2, 0x8e, 0x78, 0x2e, 0x5c, 0xe2, 0x01, 0xc3, 0x37, 0x70, 0xb9, 0xb5, 0xc0, 0x6f, 0x7b, 0x6d, 0x0a, 0x2d, 0xd8, 0x0f, 0x65, 0x26, 0x61, 0xbf, 0x86, 0xdc, 0xa3, 0x29, 0xa8, 0x4b, 0x77, 0x15, 0x98, 0x6a, 0x71, 0xcc, 0x4a, 0x6c, 0xe0, 0x00, 0x99, 0xbc, 0x66, 0xdf, 0x26, 0x29, 0x41, 0x3d, 0xa0, 0x35, 0x62, 0x5a, 0x70, 0xa5, 0xa1, 0x9e, 0x40, 0xbc, 0xe6, 0xce, 0xd5, 0x3c, 0x3d, 0xe1, 0x3f, 0x5e, 0xaa, 0xc6, 0x26, 0x65, 0x43, 0x3e, 0x63, 0x61, 0x21, 0x23, 0xd6, 0x4d, 0x09, 0x8c, 0x0e, 0x92, 0x41, 0x58, 0x1f, 0x18, 0x64, 0xb8, 0x09, 0x75, 0xc7, 0xc7, 0xf9, 0xb4, 0xe7, 0x2b, 0x0c, 0xe9, 0xe4, 0x3e, 0xe2, 0xfb, 0xe4, 0x75, 0x0b, 0xe5, 0x59, 0x6f, 0xb4, 0x67, 0x5d, 0xba, 0xf0, 0x3c, 0xfb, 0x18, 0xd1, 0x3e, 0xf9, 0xb9, 0xf8, 0x22, 0x32, 0x2a, 0x5a, 0x14, 0xe5, 0xb9, 0xca, 0x96, 0x73, 0x59, 0x99, 0xfc, 0x04, 0x81, 0x63, 0x78, 0x13, 0xb0, 0xcb, 0x53, 0x9d, 0xa5, 0x51, 0x87, 0x7d, 0x53, 0xf0, 0xb9, 0x7c, 0x96, 0x9a, 0xc0, 0xb1, 0xea, 0x00, 0xdc, 0x8d, 0xdc, 0xd2, 0x9b, 0x34, 0x9d, 0xc7, 0x8f, 0x28, 0xc1, 0x11, 0xa8, 0x0e, 0xfa, 0x6f, 0x79, 0x23, 0x40, 0xba, 0xeb, 0xb8, 0x92, 0x69, 0xb5, 0xab, 0x8a, 0x8b, 0x76, 0x1d, 0xb6, 0xa3, 0x82, 0xad, 0x4b, 0xfe, 0x5f, 0x45, 0x90, 0x7c, 0x23, 0xc3, 0x8b, 0xca, 0x00, 0x7d, 0xb2, 0xbc, 0x68, 0x04, 0xfb, 0x8b, 0xfb, 0xad, 0xf1, 0xfe, 0x5c, 0xa5, 0xc5, 0x65, 0xc6, 0xfe, 0x17, 0x0f, 0x9e, 0x92, 0x7b, 0xf5, 0xb1, 0x38, 0x34, 0x77, 0x1d, 0x4e, 0x9e, 0x5e, 0xf4, 0x09, 0xb7, 0x0f, 0x7b, 0xbb, 0x76, 0x1f, 0xb8, 0x0d, 0x17, 0xaa, 0x53, 0x68, 0x17, 0xbe, 0x07, 0x22, 0xe1, 0x4d, 0xca, 0x6d, 0x7a, 0xb5, 0x99, 0xbd, 0x33, 0x5a, 0x6c, 0x98, 0x87, 0x22, 0x6b, 0x61, 0x9e, 0x34, 0x90, 0x1c, 0x28, 0x0b, 0x86, 0xf4, 0x01, 0x4e, 0xf5, 0xe4, 0xf2, 0x46, 0x11, 0x57, 0x03, 0x18, 0xf4, 0x96, 0x41, 0x72, 0x9c, 0x15, 0xbc, 0xf7, 0x3a, 0x8b, 0xc1, 0x66, 0x28, 0x6e, 0x95, 0x97, 0xcd, 0xe1, 0x40, 0x43, 0xbc, 0xf5, 0xec, 0xd9, 0xf5, 0xdc, 0x80, 0x50, 0xce, 0x0e, 0xc7, 0x63, 0x25, 0x93, 0x97, 0x21, 0x45, 0x48, 0xf4, 0x08, 0x08, 0x3a, 0x52, 0x24, 0x1d, 0x51, 0x15, 0x65, 0x90, 0x4e, 0x92, 0xc1, 0x1e, 0xf3, 0xb4, 0x57, 0xcc, 0x98, 0xa1, 0x4d, 0xc8, 0x7a, 0x99, 0xae, 0x74, 0xc5, 0x37, 0xeb, 0x77, 0xf2, 0xb3, 0x68, 0xba, 0x0a, 0x07, 0x2c, 0x69, 0x9f, 0x51, 0x8c, 0xac, 0x3c, 0x1e, 0xaa, 0xe1, 0xed, 0x32, 0x6f, 0x75, 0x44, 0xdc, 0x7b, 0x14, 0x2e, 0xfa, 0x3b, 0x5e, 0xd5, 0xe0, 0x5f, 0x5a, 0xf4, 0x77, 0x91, 0x45, 0x3f, 0x76, 0x17, 0x87, 0x3f, 0x96, 0xec, 0xef, 0x3f, 0xd3, 0x82, 0x10, 0x43, 0xc7, 0xf8, 0x9e, 0xfb, 0xa0, 0xf7, 0x45, 0xf3, 0xdc, 0x10, 0xf5, 0x07, 0xe1, 0xb7, 0xbc, 0xcb, 0xeb, 0x7d, 0xea, 0x89, 0xfd, 0x94, 0x51, 0xbf, 0xc9, 0x02, 0x35, 0x3a, 0x3d, 0x73, 0x99, 0x80, 0xf9, 0xa8, 0x29, 0x47, 0x6a, 0xf8, 0x0d, 0xe5, 0x4f, 0x35, 0x56, 0x97, 0xec, 0x7c, 0x4a, 0x67, 0xe1, 0x7d, 0xe7, 0xa9, 0x75, 0xa3, 0xec, 0xec, 0x6b, 0x00, 0xfd, 0x10, 0xbc, 0x78, 0x9e, 0x2d, 0x40, 0x99, 0xb3, 0x8c, 0xd0, 0x7a, 0x9c, 0xfb, 0x8f, 0x6b, 0xee, 0x2e, 0xaa, 0x14, 0x68, 0xcb, 0xf3, 0xf4, 0x2e, 0x02, 0xb6, 0x25, 0x9e, 0x62, 0x36, 0x57, 0x52, 0x9a, 0x7d, 0x41, 0xb6, 0x02, 0x34, 0x01, 0x71, 0x9b, 0x91, 0x1f, 0x96, 0x4e, 0xb4, 0xbc, 0xb0, 0xae, 0x5a, 0xf9, 0x6a, 0x00, 0x07, 0x50, 0x4b, 0x7b, 0x44, 0xbe, 0x32, 0xa2, 0x25, 0xc4, 0xb1, 0xe1, 0xf6, 0x9e, 0xb9, 0x23, 0xb2, 0xe7, 0x40, 0x8e, 0x2d, 0x86, 0x08, 0xf1, 0x76, 0x4f, 0x79, 0x89, 0xc6, 0x03, 0xa4, 0xed, 0x0e, 0x45, 0xe9, 0xf2, 0xd0, 0x6a, 0xae, 0x3c, 0x05, 0x71, 0x8f, 0xb9, 0xf1, 0x19, 0x31, 0x3b, 0x01, 0xdc, 0x1d, 0x25, 0xa7, 0xf0, 0xc2, 0xb5, 0x20, 0xc6, 0x2f, 0x98, 0xf4, 0x5d, 0xd1, 0x68, 0x9b, 0x70, 0x9f, 0xbb, 0x13, 0xd6, 0x39, 0x69, 0xf2, 0xcb, 0x8e, 0x32, 0x59, 0x2b, 0x50, 0xd4, 0xdb, 0x9c, 0x25, 0xef, 0x8e, 0xce, 0xdf, 0x21, 0xce, 0x0b, 0x06, 0x10, 0x80, 0xa4, 0xa6, 0xd5, 0xb6, 0x05, 0x09, 0x12, 0x76, 0xe6, 0xf4, 0x10, 0xc7, 0x20, 0x18, 0xbf, 0xcc, 0x9e, 0x37, 0xff, 0x53, 0xdf, 0xe3, 0xea, 0x97, 0x4c, 0x6b, 0x4d, 0x5c, 0x44, 0xa7, 0x8d, 0xac, 0xb6, 0xbf, 0xef, 0xb2, 0x90, 0xb8, 0x75, 0x32, 0x8b, 0x39, 0xc9, 0x24, 0x1f, 0x49, 0x76, 0x8b, 0x16, 0x5f, 0x68, 0xab, 0x3c, 0x7a, 0x88, 0xb3, 0xb1, 0xcb, 0x2a, 0x22, 0x72, 0xe5, 0xd3, 0x2a, 0xff, 0x79, 0x0a, 0x0e, 0x45, 0x8d, 0xbf, 0xc6, 0x3f, 0x65, 0xee, 0x29, 0x15, 0x80, 0xc9, 0xe3, 0xdd, 0xdd, 0x08, 0xec, 0x70, 0x3a, 0x31, 0x4c, 0x55, 0xb4, 0x39, 0xa9, 0xea, 0xc1, 0x5b, 0xec, 0x35, 0x85, 0x7a, 0x59, 0x93, 0xa9, 0x31, 0xbc, 0x20, 0x37, 0x26, 0xed, 0x58, 0x68, 0x54, 0xec, 0x33, 0x8f, 0xf9, 0x1e, 0x55, 0x46, 0xba, 0x69, 0x1d, 0xe6, 0xc2, 0x25, 0x48, 0xda, 0x9b, 0x37, 0xf5, 0xc0, 0x98, 0xc5, 0xff, 0x1d, 0xcc, 0x2c, 0xe0, 0xdf, 0xfb, 0x4f, 0x42, 0x8a, 0x18, 0x9f, 0x9f, 0xbe, 0x13, 0x0a, 0x0b, 0x45, 0x33, 0xef, 0x08, 0x1e, 0x71, 0x68, 0x2b, 0x83, 0x10, 0x72, 0x67, 0x66, 0xf1, 0x01, 0x2c, 0x8a, 0xa9, 0xf7, 0x55, 0xe6, 0x00, 0x68, 0xcf, 0x27, 0x4b, 0xfb, 0x4e, 0x10, 0x01, 0x14, 0xaf, 0x57, 0xef, 0xa5, 0xf7, 0x12, 0x5f, 0xb3, 0x53, 0xbe, 0xbf, 0x5c, 0xbd, 0x4e, 0x74, 0x24, 0x75, 0xec, 0x84, 0xf7, 0x2b, 0xe9, 0xb0, 0xb6, 0x8f, 0x68, 0x97, 0x16, 0xf9, 0x12, 0x9d, 0x3a, 0x48, 0x66, 0xe6, 0xf0, 0xb2, 0x4e, 0x6b, 0x15, 0xa3, 0x97, 0x2d, 0xf1, 0x09, 0x86, 0x2c, 0x96, 0xc4, 0xa6, 0x94, 0x7d, 0x61, 0xd3, 0x00, 0xd6, 0xbd, 0xac, 0x66, 0x92, 0xbe, 0x22, 0x82, 0x53, 0x8d, 0x05, 0xa7, 0x67, 0x3b, 0xa9, 0x7f, 0x76, 0xfa, 0xee, 0xdc, 0xca, 0x7c, 0xfa, 0x2c, 0x7e, 0xd0, 0xb9, 0x3d, 0xd4, 0x2f, 0x45, 0xf0, 0x27, 0x44, 0xb2, 0xa1, 0x43, 0xf0, 0x67, 0x51, 0x08, 0x02, 0x39, 0x12, 0x8c, 0xa3, 0x03, 0x0d, 0xd0, 0xc7, 0x6f, 0x56, 0x32, 0x9c, 0x8f, 0xe5, 0x37, 0xec, 0x41, 0x87, 0xa0, 0xe9, 0x41, 0x06, 0x73, 0xca, 0xed, 0xa3, 0xbd, 0x90, 0x32, 0xc8, 0x86, 0x7e, 0x77, 0x34, 0x3e, 0xe7, 0x99, 0xd3, 0xdf, 0x82, 0x99, 0x73, 0x7d, 0xa8, 0xfc, 0x30, 0x74, 0xa2, 0x5a, 0xca, 0xa0, 0x0c, 0x34, 0x63, 0x6d, 0x60, 0x7c, 0x5b, 0xe0, 0xee, 0xed, 0xd8, 0x23, 0x2f, 0xdb, 0x10, 0x4c, 0x53, 0xe8, 0x04, 0xf7, 0x1b, 0x3f, 0xd8, 0x90, 0xaf, 0x6c, 0x18, 0xb5, 0x6c, 0xa6, 0x8d, 0xc3, 0xbc, 0x11, 0x1e, 0xbb, 0x11, 0x96, 0x24, 0xa9, 0x64, 0x80, 0x63, 0x6d, 0xc2, 0x4b, 0x3f, 0x1c, 0x2a, 0xa9, 0x40, 0x58, 0x30, 0x51, 0xf0, 0x73, 0x6e, 0x9c, 0x27, 0x52, 0xa2, 0x7e, 0x62, 0x55, 0x05, 0x6f, 0x2a, 0xf4, 0x63, 0x4d, 0xf9, 0x81, 0xb6, 0xd1, 0x21, 0xb9, 0x47, 0x4c, 0xe9, 0x5f, 0x51, 0xb6, 0xa0, 0x4d, 0x5b, 0xe4, 0xb5, 0xfb, 0x72, 0xc1, 0x28, 0x5b, 0x79, 0xb1, 0xca, 0xa0, 0xa3, 0xa5, 0xd5, 0x9c, 0x7a, 0x3d, 0x18, 0x26, 0x52, 0x71, 0xfd, 0xd8, 0x4d, 0x11, 0x83, 0xa5, 0xf6, 0xbe, 0x21, 0xf2, 0xe7, 0xf8, 0xe4, 0xc8, 0x1d, 0x15, 0xf7, 0x89, 0xc0, 0x25, 0x76, 0xba, 0xbe, 0xb9, 0xb0, 0x85, 0x15, 0x13, 0xa3, 0xe4, 0x8c, 0x3a, 0xa2, 0x43, 0x67, 0xaa, 0xff, 0xc3, 0x8d, 0xc6, 0x97, 0x04, 0x1e, 0x78, 0x23, 0x36, 0x51, 0xee, 0x9c, 0x17, 0xe6, 0x64, 0xf1, 0x13, 0xfa, 0xab, 0x87, 0x69, 0x1e, 0x2c, 0xf7, 0xb9, 0x7b, 0xb9, 0x36, 0x2b, 0x31, 0x16, 0x7a, 0xf7, 0x91, 0xc7, 0x42, 0x57, 0xc6, 0x7c, 0xc7, 0x10, 0x96, 0x35, 0xd3, 0x5d, 0x96, 0x66, 0x31, 0x33, 0x1e, 0xe1, 0x42, 0x9f, 0x69, 0xb1, 0x70, 0x6f, 0x28, 0x16, 0x06, 0x87, 0x13, 0xdb, 0x40, 0x88, 0x92, 0x84, 0x49, 0x91, 0x33, 0x63, 0x15, 0xc4, 0x69, 0xe7, 0x36, 0xd7, 0xde, 0x8f, 0x01, 0x63, 0x6b, 0x2d, 0x5e, 0x54, 0x77, 0x73, 0x3b, 0xed, 0xdd, 0x1f, 0x33, 0x25, 0x5a, 0xb2, 0xb1, 0xf2, 0xab, 0x35, 0x3b, 0xc9, 0x4e, 0x16, 0xdc, 0x3b, 0x72, 0x1a, 0x50, 0x3c, 0xc0, 0xc8, 0x77, 0x5f, 0xf9, 0x7f, 0xfc, 0xc4, 0x0d, 0x75, 0x01, 0xf0, 0x1e, 0xe5, 0xeb, 0x87, 0x2d, 0xa7, 0x9c, 0xed, 0x24, 0x91, 0xdb, 0x27, 0xd9, 0x6c, 0xe4, 0xda, 0xf3, 0xc8, 0x95, 0xf2, 0xbe, 0xf1, 0x4c, 0x4c, 0x5f, 0xb2, 0x7d, 0x8b, 0x3b, 0x97, 0x7c, 0x3f, 0xe2, 0xa8, 0x32, 0xfb, 0xcd, 0xb8, 0x51, 0x8d, 0xfc, 0x46, 0x40, 0x18, 0xaf, 0xc4, 0x2f, 0x43, 0xad, 0xa8, 0x02, 0xc4, 0xc5, 0xd5, 0x42, 0x72, 0x78, 0xbd, 0x2f, 0x7d, 0x2e, 0x9e, 0x0c, 0x2a, 0x3e, 0x2f, 0x1c, 0x48, 0x91, 0xb7, 0x10, 0x52, 0x74, 0xc5, 0x6a, 0xd6, 0x50, 0xbe, 0x61, 0x8e, 0xd3, 0xd4, 0xa6, 0x00, 0x87, 0x18, 0x7b, 0x84, 0x5c, 0x46, 0x6c, 0x56, 0x94, 0x5d, 0xf5, 0x28, 0x94, 0x5a, 0x04, 0x2c, 0x9e, 0x05, 0x79, 0x8c, 0x7f, 0x65, 0x9b, 0x06, 0x85, 0x2e, 0xf1, 0x2a, 0xfb, 0x2b, 0x14, 0xc9, 0x91, 0xed, 0x05, 0xab, 0x01, 0xe5, 0xb4, 0x58, 0xa5, 0x9e, 0x2d, 0xff, 0xf8, 0xb9, 0x78, 0xa8, 0xc4, 0x0d, 0x42, 0x91, 0xf5, 0x82, 0xc0, 0xaf, 0x3b, 0xe1, 0xc5, 0x27, 0x7b, 0xd6, 0x57, 0x49, 0x29, 0xb3, 0x52, 0x07, 0xe2, 0x27, 0xce, 0x12, 0xfc, 0xf1, 0xf8, 0x9b, 0xe4, 0xcd, 0xab, 0x27, 0x94, 0xd0, 0x73, 0x99, 0x55, 0xcb, 0x8a, 0x92, 0x38, 0x95, 0x86, 0x4f, 0xbf, 0xf5, 0x06, 0xdb, 0x77, 0xd9, 0x17, 0x0a, 0x8e, 0x28, 0xcc, 0x4c, 0xec, 0x05, 0x73, 0x84, 0x54, 0xf8, 0x7c, 0xa9, 0x0d, 0x36, 0x15, 0xc7, 0x4f, 0xd1, 0xaa, 0xa0, 0xb5, 0x7c, 0xd6, 0x4d, 0x0a, 0x6f, 0x31, 0xb0, 0x27, 0x8f, 0x1c, 0x03, 0xab, 0xee, 0x96, 0xd4, 0x5c, 0xa5, 0xb8, 0x24, 0xb3, 0x20, 0x72, 0xa3, 0x9e, 0x30, 0xd3, 0x7c, 0xc9, 0xf7, 0x9e, 0x74, 0xd8, 0xf0, 0x35, 0xa8, 0xe7, 0x70, 0x97, 0x7a, 0xef, 0x3d, 0xf1, 0xbd, 0x0a, 0xb5, 0x74, 0x46, 0x93, 0x96, 0x18, 0xd0, 0x50, 0xbc, 0x67, 0x9f, 0xda, 0x67, 0xc9, 0x6f, 0x94, 0x17, 0x5e, 0x0b, 0xa3, 0x9e, 0x37, 0x44, 0xf9, 0x55, 0x03, 0x41, 0x15, 0x33, 0xd6, 0x77, 0xbc, 0xbd, 0xf7, 0x5e, 0x79, 0xde, 0x76, 0x9a, 0xa0, 0xb7, 0x81, 0x25, 0x4c, 0x2c, 0x0a, 0x7d, 0x6b, 0x3d, 0x37, 0x0b, 0xcb, 0xe8, 0xb3, 0x6e, 0x1e, 0xb4, 0xf2, 0xc0, 0xcc, 0x47, 0x10, 0xd1, 0xab, 0xce, 0xa4, 0xff, 0xf2, 0x30, 0xe9, 0x2b, 0x02, 0x02, 0xad, 0x7b, 0x1f, 0xd9, 0x93, 0x3b, 0x43, 0x5d, 0xaf, 0x2f, 0x8b, 0xfc, 0xef, 0x99, 0x97, 0x0b, 0xa6, 0xed, 0xa7, 0xbc, 0xc7, 0xf7, 0x85, 0x61, 0x70, 0x67, 0x63, 0x30, 0x45, 0x0a, 0x9e, 0xba, 0x07, 0x1e, 0x09, 0xd5, 0x72, 0xf7, 0x38, 0xce, 0x7d, 0x30, 0xa3, 0x22, 0x74, 0x9f, 0xb5, 0xd2, 0xea, 0x9f, 0x3e, 0x16, 0x9d, 0x4b, 0x75, 0x63, 0x92, 0xbc, 0xb4, 0x11, 0x73, 0x00, 0x32, 0x76, 0xd9, 0xf4, 0x53, 0x11, 0x7b, 0x72, 0x94, 0xb6, 0x05, 0x95, 0x6d, 0xe7, 0x45, 0x7f, 0xbd, 0xc9, 0x0b, 0x49, 0x74, 0x0f, 0x5e, 0x7f, 0xda, 0xe3, 0x7e, 0xac, 0x59, 0x66, 0x1e, 0x81, 0x96, 0xbc, 0xe7, 0x9f, 0xb9, 0x9b, 0xe0, 0x10, 0x68, 0x07, 0x0e, 0xf7, 0x76, 0xe0, 0x63, 0x96, 0xea, 0x5d, 0x62, 0x17, 0x4a, 0xc6, 0xbd, 0x0e, 0x22, 0xc8, 0xf2, 0x17, 0xf6, 0xf3, 0xf3, 0x92, 0xb8, 0xa9, 0xf7, 0x3d, 0x26, 0xa9, 0xd7, 0xe8, 0x55, 0xe1, 0x8c, 0x83, 0x22, 0x39, 0xf7, 0xca, 0x64, 0xdd, 0xd3, 0xcf, 0x85, 0x36, 0x54, 0x5e, 0x5a, 0x63, 0xb5, 0xef, 0x8d, 0x67, 0xbb, 0xbe, 0xb2, 0x3a, 0xa3, 0xa8, 0x2c, 0x97, 0xf1, 0xf7, 0xbe, 0xc0, 0x94, 0x71, 0x6c, 0xc4, 0xc8, 0xa5, 0x21, 0x6a, 0x3c, 0xe3, 0xd0, 0x0c, 0xdd, 0x63, 0xfb, 0x2d, 0xa6, 0x7b, 0xee, 0xab, 0x4f, 0xc9, 0xf1, 0x2b, 0xef, 0xc1, 0x47, 0x6e, 0x81, 0xe9, 0x9c, 0xb4, 0x81, 0x3b, 0xf6, 0x53, 0xd5, 0xc9, 0x16, 0xbd, 0xe5, 0x61, 0x96, 0x3c, 0x63, 0xca, 0x78, 0x5b, 0x32, 0xea, 0x16, 0xb6, 0x3f, 0x78, 0x86, 0xc9, 0xe1, 0xe5, 0x95, 0x91, 0x6a, 0xd3, 0x06, 0x39, 0xa1, 0x85, 0xc6, 0xb8, 0xba, 0x67, 0xff, 0xec, 0xe9, 0x9a, 0x67, 0x45, 0x68, 0xd6, 0x56, 0xd4, 0x7b, 0xef, 0x3d, 0x0b, 0xaf, 0xb9, 0x9a, 0x03, 0x5a, 0xa6, 0x60, 0xae, 0x1a, 0xdd, 0xb4, 0x64, 0x8b, 0xca, 0xa3, 0xff, 0x43, 0x1d, 0x83, 0x15, 0xe1, 0x09, 0xd6, 0xff, 0xe1, 0xcf, 0xf7, 0x73, 0xbf, 0xd6, 0x81, 0xbd, 0x82, 0x55, 0x86, 0x38, 0xc1, 0xb4, 0xd5, 0x2e, 0xc2, 0xe5, 0x08, 0x61, 0x77, 0xbc, 0x11, 0xf8, 0xcc, 0x8d, 0x1e, 0xb1, 0x2a, 0x1c, 0xe7, 0x60, 0x23, 0x50, 0xd0, 0x08, 0x66, 0x3e, 0xf4, 0x24, 0xf1, 0x7c, 0xf1, 0x40, 0x79, 0x3e, 0xd4, 0xdd, 0xce, 0x35, 0xa8, 0xaf, 0x56, 0x6c, 0x72, 0xdb, 0x15, 0x39, 0x07, 0x9b, 0xf7, 0xda, 0xbe, 0xe3, 0x5e, 0x98, 0x1b, 0xd4, 0xc6, 0x97, 0x66, 0xb6, 0x6c, 0x93, 0xdb, 0xfe, 0x01, 0xa8, 0x97, 0xbe, 0xa9, 0x4a, 0xfa, 0xab, 0x42, 0x84, 0x6c, 0xa5, 0x3d, 0xa9, 0x99, 0x92, 0x44, 0xee, 0x7d, 0x46, 0x54, 0x1b, 0x4a, 0x71, 0x32, 0xa7, 0x74, 0x95, 0x4d, 0x3f, 0xea, 0x95, 0x91, 0x41, 0x5c, 0xea, 0xb9, 0xf7, 0xd6, 0x63, 0xbb, 0xb5, 0x30, 0x68, 0xde, 0x1d, 0x75, 0xad, 0x00, 0xf7, 0x28, 0x53, 0xcd, 0xbb, 0xf3, 0xf1, 0xd9, 0x01, 0xcd, 0x99, 0xe3, 0x86, 0xe6, 0x42, 0xbc, 0x1c, 0x67, 0x7f, 0x93, 0x3a, 0xb3, 0xda, 0x3d, 0xfd, 0xb4, 0xe7, 0xe9, 0xb1, 0x38, 0xf6, 0x8e, 0x81, 0xd4, 0x6c, 0xce, 0xc1, 0x7f, 0x89, 0x89, 0x66, 0x55, 0xa8, 0x7f, 0x9f, 0xfd, 0x5f, 0x34, 0x33, 0x70, 0x43, 0x8a, 0x2d, 0xbb, 0x87, 0x3f, 0x77, 0x36, 0xcd, 0xd5, 0xaa, 0xf8, 0x68, 0xf5, 0x45, 0xc1, 0xd1, 0xd3, 0x03, 0x76, 0x2f, 0x3c, 0xd7, 0xab, 0xe1, 0xf9, 0x41, 0x6d, 0xde, 0xd3, 0x40, 0x3c, 0x14, 0xe2, 0x76, 0x94, 0x98, 0xa7, 0xe1, 0xaf, 0x2b, 0x6f, 0x0f, 0x9e, 0xef, 0x5a, 0xf1, 0x2b, 0x90, 0x3c, 0x1f, 0xb3, 0x3b, 0x47, 0x75, 0x9a, 0x63, 0xb1, 0xcc, 0x0b, 0x72, 0x41, 0xb8, 0x47, 0xdc, 0x00, 0x7b, 0x2d, 0x21, 0xd0, 0x55, 0x37, 0xea, 0x26, 0x6d, 0x56, 0x9e, 0x88, 0x79, 0xce, 0xb4, 0x33, 0xa6, 0xa8, 0xe3, 0x42, 0xe8, 0x35, 0x2f, 0xd4, 0xdb, 0xd6, 0x71, 0xa1, 0xe9, 0x4b, 0x3f, 0xfc, 0xc0, 0x72, 0xa4, 0x54, 0x60, 0x24, 0x09, 0x5d, 0xd9, 0xe6, 0x4f, 0x86, 0xe9, 0xb2, 0xea, 0x41, 0x57, 0x18, 0xf1, 0x9e, 0x2a, 0xa3, 0xfe, 0x94, 0x8a, 0x7d, 0x83, 0xcb, 0x13, 0x8b, 0x9e, 0x97, 0x85, 0xc4, 0x6c, 0x29, 0x79, 0x13, 0xae, 0x4f, 0x06, 0x9b, 0x66, 0x57, 0x98, 0x99, 0xc1, 0xe1, 0xfb, 0xf3, 0x6f, 0x4e, 0xdf, 0x8d, 0x93, 0x1d, 0xaa, 0x6d, 0x3f, 0x7f, 0x77, 0xfc, 0xd5, 0xfb, 0x73, 0xf3, 0x4f, 0x1d, 0xe9, 0x55, 0x5a, 0xe4, 0x46, 0x3a, 0x8d, 0x9b, 0xac, 0x30, 0xb4, 0x72, 0xa9, 0x3d, 0x9a, 0x90, 0x83, 0x42, 0xf2, 0xb8, 0xac, 0x14, 0xd2, 0x84, 0xd2, 0x51, 0xca, 0xb9, 0x4b, 0x26, 0x60, 0x0f, 0x36, 0xe5, 0xf8, 0x95, 0xce, 0x72, 0xce, 0x3b, 0x45, 0xf9, 0x9a, 0xb6, 0x93, 0x9c, 0x7f, 0x73, 0xf8, 0xf6, 0xdb, 0xb1, 0x76, 0xf0, 0xf8, 0xfe, 0xfb, 0xef, 0xbb, 0xc1, 0x5d, 0xe8, 0xb0, 0x57, 0xe9, 0xed, 0xed, 0xa8, 0xce, 0x3e, 0xfb, 0x6c, 0x7c, 0x74, 0x94, 0x1c, 0x9e, 0x8c, 0x4f, 0x3f, 0x73, 0x38, 0x0e, 0x5b, 0x7b, 0xdb, 0x46, 0x49, 0xbb, 0xcc, 0x1a, 0xf3, 0x97, 0xcf, 0x3e, 0xfb, 0xff, 0x00, 0x57, 0x6e, 0x39, 0x73, 0x0a, 0xa4, 0x02, 0x00, }; #define BUF_SIZE 0x10000 static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size) { (void) opaque; /* not a typo, keep it calloc() */ return (voidpf) calloc(items, size); |
︙ | ︙ |
Changes to jni/curl/src/tool_main.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 | ** curl tool main function. */ int main(int argc, char *argv[]) { CURLcode result = CURLE_OK; struct GlobalConfig global; memset(&global, 0, sizeof(global)); /* Perform any platform-specific terminal configuration */ configure_terminal(); main_checkfds(); #if defined(HAVE_SIGNAL) && defined(SIGPIPE) (void)signal(SIGPIPE, SIG_IGN); #endif /* Initialize memory tracking */ memory_tracking_init(); /* Initialize the curl library - do not call any libcurl functions before this point */ result = main_init(&global); | > > > > > > > > > > > > > > > > > > < < < < < < < < < < < < < < < | 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 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 | ** curl tool main function. */ int main(int argc, char *argv[]) { CURLcode result = CURLE_OK; struct GlobalConfig global; memset(&global, 0, sizeof(global)); #ifdef WIN32 /* Undocumented diagnostic option to list the full paths of all loaded modules. This is purposely pre-init. */ if(argc == 2 && !strcmp(argv[1], "--dump-module-paths")) { struct curl_slist *item, *head = GetLoadedModulePaths(); for(item = head; item; item = item->next) printf("%s\n", item->data); curl_slist_free_all(head); return head ? 0 : 1; } /* win32_init must be called before other init routines. */ result = win32_init(); if(result) { fprintf(stderr, "curl: (%d) Windows-specific init failed.\n", result); return result; } #endif /* Perform any platform-specific terminal configuration */ configure_terminal(); main_checkfds(); #if defined(HAVE_SIGNAL) && defined(SIGPIPE) (void)signal(SIGPIPE, SIG_IGN); #endif /* Initialize memory tracking */ memory_tracking_init(); /* Initialize the curl library - do not call any libcurl functions before this point */ result = main_init(&global); if(!result) { /* Start our curl operation */ result = operate(&global, argc, argv); #ifdef __SYMBIAN32__ if(global.showerror) tool_pressanykey(); |
︙ | ︙ |
Changes to jni/curl/src/tool_metalink.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
50 51 52 53 54 55 56 | # include <nss.h> # include <pk11pub.h> # define MD5_CTX void * # define SHA_CTX void * # define SHA256_CTX void * # define HAVE_NSS_CONTEXT static NSSInitContext *nss_context; | < < < < < < < | | 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 | # include <nss.h> # include <pk11pub.h> # define MD5_CTX void * # define SHA_CTX void * # define SHA256_CTX void * # define HAVE_NSS_CONTEXT static NSSInitContext *nss_context; #elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \ (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \ (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000)) /* For Apple operating systems: CommonCrypto has the functions we need. The library's headers are even backward-compatible with OpenSSL's headers as long as we define COMMON_DIGEST_FOR_OPENSSL first. These functions are available on Tiger and later, as well as iOS 2.0 and later. If you're building for an older cat, well, sorry. */ # define COMMON_DIGEST_FOR_OPENSSL # include <CommonCrypto/CommonDigest.h> #elif defined(USE_WIN32_CRYPTO) /* For Windows: If no other crypto library is provided, we fallback to the hash functions provided within the Microsoft Windows CryptoAPI */ # include <wincrypt.h> /* Custom structure in order to store the required provider and hash handle */ struct win32_crypto_hash { HCRYPTPROV hCryptProv; HCRYPTHASH hHash; |
︙ | ︙ | |||
321 322 323 324 325 326 327 | } static void SHA256_Final(unsigned char digest[32], SHA256_CTX *pctx) { nss_hash_final(pctx, digest, 32); } | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 | } static void SHA256_Final(unsigned char digest[32], SHA256_CTX *pctx) { nss_hash_final(pctx, digest, 32); } #elif defined(USE_WIN32_CRYPTO) static void win32_crypto_final(struct win32_crypto_hash *ctx, unsigned char *digest, unsigned int digestLen) { unsigned long length; CryptGetHashParam(ctx->hHash, HP_HASHVAL, NULL, &length, 0); |
︙ | ︙ | |||
891 892 893 894 895 896 897 | } size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb, void *userdata) { struct per_transfer *per = userdata; struct OutStruct *outs = &per->outs; | | | 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 | } size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb, void *userdata) { struct per_transfer *per = userdata; struct OutStruct *outs = &per->outs; struct OperationConfig *config = per->config; int rv; /* * Once that libcurl has called back tool_write_cb() the returned value * is checked against the amount that was intended to be written, if * it does not match then it fails with CURLE_WRITE_ERROR. So at this * point returning a value different from sz*nmemb indicates failure. |
︙ | ︙ |
Changes to jni/curl/src/tool_operate.c.
︙ | ︙ | |||
376 377 378 379 380 381 382 | /* we have received no data despite the transfer was successful ==> force cration of an empty output file (if an output file was specified) */ long cond_unmet = 0L; /* do not create (or even overwrite) the file in case we get no data because of unmet condition */ curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet); | | | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | /* we have received no data despite the transfer was successful ==> force cration of an empty output file (if an output file was specified) */ long cond_unmet = 0L; /* do not create (or even overwrite) the file in case we get no data because of unmet condition */ curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet); if(!cond_unmet && !tool_create_output_file(outs, config)) result = CURLE_WRITE_ERROR; } if(!outs->s_isreg && outs->stream) { /* Dump standard stream buffered data */ int rc = fflush(outs->stream); if(!result && rc) { |
︙ | ︙ | |||
862 863 864 865 866 867 868 | *added = TRUE; per->config = config; per->curl = curl; /* default headers output stream is stdout */ heads = &per->heads; heads->stream = stdout; | < > | > > > > > > > > > > > > | | 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 | *added = TRUE; per->config = config; per->curl = curl; /* default headers output stream is stdout */ heads = &per->heads; heads->stream = stdout; /* Single header file for all URLs */ if(config->headerfile) { /* open file for output: */ if(strcmp(config->headerfile, "-")) { FILE *newfile; newfile = fopen(config->headerfile, per->prev == NULL?"wb":"ab"); if(!newfile) { warnf(config->global, "Failed to open %s\n", config->headerfile); result = CURLE_WRITE_ERROR; break; } else { heads->filename = config->headerfile; heads->s_isreg = TRUE; heads->fopened = TRUE; heads->stream = newfile; } } else { /* always use binary mode for protocol header output */ set_binmode(heads->stream); } } hdrcbdata = &per->hdrcbdata; outs = &per->outs; input = &per->input; per->outfile = NULL; per->infdopen = FALSE; per->infd = STDIN_FILENO; /* default output stream is stdout */ outs->stream = stdout; /* --etag-save */ etag_save = &per->etag_save; etag_save->stream = stdout; if(config->etag_save_file) { /* open file for output: */ if(strcmp(config->etag_save_file, "-")) { FILE *newfile = fopen(config->etag_save_file, "wb"); if(!newfile) { warnf( config->global, |
︙ | ︙ | |||
957 958 959 960 961 962 963 | Curl_safefree(header); if(file) { fclose(file); } } | < < < < < < < < < < < < < | 969 970 971 972 973 974 975 976 977 978 979 980 981 982 | Curl_safefree(header); if(file) { fclose(file); } } if(metalink) { /* For Metalink download, use name in Metalink file as filename. */ per->outfile = strdup(mlfile->filename); if(!per->outfile) { result = CURLE_OUT_OF_MEMORY; break; |
︙ | ︙ | |||
1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 | if(config->mail_from) my_setopt_str(curl, CURLOPT_MAIL_FROM, config->mail_from); if(config->mail_rcpt) my_setopt_slist(curl, CURLOPT_MAIL_RCPT, config->mail_rcpt); /* curl 7.20.x */ if(config->ftp_pret) my_setopt(curl, CURLOPT_FTP_USE_PRET, 1L); if(config->proto_present) my_setopt_flags(curl, CURLOPT_PROTOCOLS, config->proto); if(config->proto_redir_present) | > > > > | 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 | if(config->mail_from) my_setopt_str(curl, CURLOPT_MAIL_FROM, config->mail_from); if(config->mail_rcpt) my_setopt_slist(curl, CURLOPT_MAIL_RCPT, config->mail_rcpt); /* curl 7.69.x */ my_setopt(curl, CURLOPT_MAIL_RCPT_ALLLOWFAILS, config->mail_rcpt_allowfails ? 1L : 0L); /* curl 7.20.x */ if(config->ftp_pret) my_setopt(curl, CURLOPT_FTP_USE_PRET, 1L); if(config->proto_present) my_setopt_flags(curl, CURLOPT_PROTOCOLS, config->proto); if(config->proto_redir_present) |
︙ | ︙ | |||
1959 1960 1961 1962 1963 1964 1965 | /* new in 7.60.0 */ if(config->haproxy_protocol) my_setopt(curl, CURLOPT_HAPROXYPROTOCOL, 1L); if(config->disallow_username_in_url) my_setopt(curl, CURLOPT_DISALLOW_USERNAME_IN_URL, 1L); | < < < | 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 | /* new in 7.60.0 */ if(config->haproxy_protocol) my_setopt(curl, CURLOPT_HAPROXYPROTOCOL, 1L); if(config->disallow_username_in_url) my_setopt(curl, CURLOPT_DISALLOW_USERNAME_IN_URL, 1L); if(config->altsvc) my_setopt_str(curl, CURLOPT_ALTSVC, config->altsvc); #ifdef USE_METALINK if(!metalink && config->use_metalink) { outs->metalink_parser = metalink_parser_context_new(); if(outs->metalink_parser == NULL) { result = CURLE_OUT_OF_MEMORY; break; |
︙ | ︙ |
Changes to jni/curl/src/tool_operhlp.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
81 82 83 84 85 86 87 | if(!curl) return NULL; /* error! */ if(ptr) ptr += 3; else ptr = url; ptr = strrchr(ptr, '/'); | | | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | if(!curl) return NULL; /* error! */ if(ptr) ptr += 3; else ptr = url; ptr = strrchr(ptr, '/'); if(!ptr || !*++ptr) { /* The URL has no file name part, add the local file name. In order to be able to do so, we have to create a new URL in another buffer.*/ /* We only want the part of the local path that is on the right side of the rightmost slash and backslash. */ const char *filep = strrchr(filename, '/'); |
︙ | ︙ |
Changes to jni/curl/src/tool_progress.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
91 92 93 94 95 96 97 | int xferinfo_cb(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) { struct per_transfer *per = clientp; | < | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | int xferinfo_cb(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) { struct per_transfer *per = clientp; struct OperationConfig *config = per->config; per->dltotal = dltotal; per->dlnow = dlnow; per->ultotal = ultotal; per->ulnow = ulnow; if(config->readbusy) { config->readbusy = FALSE; |
︙ | ︙ |
Changes to jni/curl/src/tool_sdecls.h.
1 2 3 4 5 6 7 8 9 | #ifndef HEADER_CURL_TOOL_SDECLS_H #define HEADER_CURL_TOOL_SDECLS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef HEADER_CURL_TOOL_SDECLS_H #define HEADER_CURL_TOOL_SDECLS_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
65 66 67 68 69 70 71 | struct OutStruct { char *filename; bool alloc_filename; bool is_cd_filename; bool s_isreg; bool fopened; FILE *stream; | < | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | struct OutStruct { char *filename; bool alloc_filename; bool is_cd_filename; bool s_isreg; bool fopened; FILE *stream; curl_off_t bytes; curl_off_t init; #ifdef USE_METALINK metalink_parser_context_t *metalink_parser; #endif /* USE_METALINK */ }; |
︙ | ︙ |
Changes to jni/curl/src/tool_urlglob.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
623 624 625 626 627 628 629 | while(*filename) { if(*filename == '#' && ISDIGIT(filename[1])) { char *ptr = filename; unsigned long num = strtoul(&filename[1], &filename, 10); URLPattern *pat = NULL; | | | 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 | while(*filename) { if(*filename == '#' && ISDIGIT(filename[1])) { char *ptr = filename; unsigned long num = strtoul(&filename[1], &filename, 10); URLPattern *pat = NULL; if(num && (num < glob->size)) { unsigned long i; num--; /* make it zero based */ /* find the correct glob entry */ for(i = 0; i<glob->size; i++) { if(glob->pattern[i].globindex == (int)num) { pat = &glob->pattern[i]; break; |
︙ | ︙ |
Changes to jni/curl/src/tool_version.h.
︙ | ︙ | |||
21 22 23 24 25 26 27 | * KIND, either express or implied. * ***************************************************************************/ #include <curl/curlver.h> #define CURL_NAME "curl" #define CURL_COPYRIGHT LIBCURL_COPYRIGHT | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * KIND, either express or implied. * ***************************************************************************/ #include <curl/curlver.h> #define CURL_NAME "curl" #define CURL_COPYRIGHT LIBCURL_COPYRIGHT #define CURL_VERSION "7.69.0" #define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR #define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR #define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH #define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") " #endif /* HEADER_CURL_TOOL_VERSION_H */ |
Changes to jni/curl/tests/FILEFORMAT.
︙ | ︙ | |||
152 153 154 155 156 157 158 | For HTTP/HTTPS: auth_required if this is set and a POST/PUT is made without auth, the server will NOT wait for the full request body to get sent idle do nothing after receiving the request, just "sit idle" stream continuously send data to the client, never-ending writedelay: [secs] delay this amount between reply packets | | | < < > | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | For HTTP/HTTPS: auth_required if this is set and a POST/PUT is made without auth, the server will NOT wait for the full request body to get sent idle do nothing after receiving the request, just "sit idle" stream continuously send data to the client, never-ending writedelay: [secs] delay this amount between reply packets skip: [num] instructs the server to ignore reading this many bytes from a PUT or POST request rtp: part [num] channel [num] size [num] stream a fake RTP packet for the given part on a chosen channel with the given payload size connection-monitor When used, this will log [DISCONNECT] to the server.input log when the connection is disconnected. upgrade when an HTTP upgrade header is found, the server will upgrade to http2 swsclose instruct server to close connection after response no-expect don't read the request body if Expect: is present For TFTP: writedelay: [secs] delay this amount between reply packets (each packet being 512 bytes payload) </servercmd> </reply> |
︙ | ︙ | |||
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 241 242 243 | Alternatively a feature can be prefixed with an exclamation mark to indicate a feature is NOT required. If the feature is present then the test will be SKIPPED. Features testable here are: crypto debug getrlimit GnuTLS GSS-API http/2 idn ipv6 Kerberos large_file libz manual Metalink NSS NTLM OpenSSL PSL socks SPNEGO SSL SSLpinning SSPI TLS-SRP TrackMemory | > > > < > < < | 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 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | Alternatively a feature can be prefixed with an exclamation mark to indicate a feature is NOT required. If the feature is present then the test will be SKIPPED. Features testable here are: alt-svc crypto debug getrlimit GnuTLS GSS-API http/2 idn ipv6 Kerberos large_file ld_preload libz manual Metalink NSS NTLM OpenSSL PSL socks SPNEGO SSL SSLpinning SSPI threaded-resolver TLS-SRP TrackMemory unittest unix-sockets win32 WinSSL as well as each protocol that curl supports. A protocol only needs to be specified if it is different from the server (useful when the server is 'none'). </features> <killserver> |
︙ | ︙ |
Changes to jni/curl/tests/Makefile.am.
1 2 3 4 5 6 7 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
34 35 36 37 38 39 40 | EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl \ getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl \ valgrind.pm ftp.pm sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl \ CMakeLists.txt mem-include-scan.pl valgrind.supp extern-scan.pl \ manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py \ negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh \ | | > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl \ getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl \ valgrind.pm ftp.pm sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl \ CMakeLists.txt mem-include-scan.pl valgrind.supp extern-scan.pl \ manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py \ negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh \ objnames.inc disable-scan.pl manpage-syntax.pl error-codes.pl badsymbols.pl \ azure.pm appveyor.pm DISTCLEANFILES = configurehelp.pm # we have two variables here to make sure DIST_SUBDIRS won't get 'unit' # added twice as then targets such as 'distclean' misbehave and try to # do things twice in that subdir at times (and thus fails). if BUILD_UNITTESTS |
︙ | ︙ |
Changes to jni/curl/tests/Makefile.in.
︙ | ︙ | |||
17 18 19 20 21 22 23 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
357 358 359 360 361 362 363 364 365 366 367 368 369 370 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
435 436 437 438 439 440 441 | EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl \ getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl \ valgrind.pm ftp.pm sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl \ CMakeLists.txt mem-include-scan.pl valgrind.supp extern-scan.pl \ manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py \ negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh \ | | > | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 | EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl \ getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl \ valgrind.pm ftp.pm sshserver.pl sshhelp.pm pathhelp.pm testcurl.1 runtests.1 \ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl \ CMakeLists.txt mem-include-scan.pl valgrind.supp extern-scan.pl \ manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py \ negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh \ objnames.inc disable-scan.pl manpage-syntax.pl error-codes.pl badsymbols.pl \ azure.pm appveyor.pm DISTCLEANFILES = configurehelp.pm @BUILD_UNITTESTS_FALSE@BUILD_UNIT = # we have two variables here to make sure DIST_SUBDIRS won't get 'unit' # added twice as then targets such as 'distclean' misbehave and try to # do things twice in that subdir at times (and thus fails). |
︙ | ︙ |
Added jni/curl/tests/appveyor.pm.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # Copyright (C) 2020, Marc Hoersken, <info@marc-hoersken.de> # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ########################################################################### use strict; use warnings; my %APPVEYOR_TEST_NAMES; sub appveyor_check_environment { if(defined $ENV{'APPVEYOR_API_URL'} && $ENV{'APPVEYOR_API_URL'}) { return 1; } return 0; } sub appveyor_create_test_result { my ($testnum, $testname)=@_; $testname =~ s/\\/\\\\/g; $testname =~ s/\'/\\\'/g; $testname =~ s/\"/\\\"/g; my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}"; my $appveyor_result=`curl --silent --noproxy "*" \\ --header "Content-Type: application/json" \\ --data " { 'testName': '$testname', 'testFramework': 'runtests.pl', 'fileName': 'tests/data/test$testnum', 'outcome': 'Running' } " \\ "$appveyor_baseurl/api/tests"`; print $appveyor_result; $APPVEYOR_TEST_NAMES{$testnum}=$testname; } sub appveyor_update_test_result { my ($testnum, $error, $start, $stop)=@_; my $testname=$APPVEYOR_TEST_NAMES{$testnum}; if(!defined $testname) { return; } if(!defined $stop) { $stop = $start; } my $appveyor_duration = sprintf("%.0f", ($stop-$start)*1000); my $appveyor_outcome; my $appveyor_category; if($error == 2) { $appveyor_outcome = 'Ignored'; $appveyor_category = 'Warning'; } elsif($error < 0) { $appveyor_outcome = 'NotRunnable'; $appveyor_category = 'Warning'; } elsif(!$error) { $appveyor_outcome = 'Passed'; $appveyor_category = 'Information'; } else { $appveyor_outcome = 'Failed'; $appveyor_category = 'Error'; } my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}"; my $appveyor_result=`curl --silent --noproxy "*" --request PUT \\ --header "Content-Type: application/json" \\ --data " { 'testName': '$testname', 'testFramework': 'runtests.pl', 'fileName': 'tests/data/test$testnum', 'outcome': '$appveyor_outcome', 'durationMilliseconds': $appveyor_duration } " \\ "$appveyor_baseurl/api/tests"`; print $appveyor_result; if($appveyor_category eq 'Error') { $appveyor_result=`curl --silent --noproxy "*" \\ --header "Content-Type: application/json" \\ --data " { 'message': '$testname $appveyor_outcome', 'category': '$appveyor_category', 'details': 'Test $testnum $appveyor_outcome' } " \\ "$appveyor_baseurl/api/build/messages"`; print $appveyor_result; } } 1; |
Added jni/curl/tests/azure.pm.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 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 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # Copyright (C) 2020, Marc Hoersken, <info@marc-hoersken.de> # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ########################################################################### use strict; use warnings; use POSIX qw(strftime); sub azure_check_environment { if(defined $ENV{'AZURE_ACCESS_TOKEN'} && $ENV{'AZURE_ACCESS_TOKEN'} && defined $ENV{'AGENT_JOBNAME'} && $ENV{'BUILD_BUILDID'} && defined $ENV{'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'} && defined $ENV{'SYSTEM_TEAMPROJECTID'}) { return 1; } return 0; } sub azure_create_test_run { my $azure_baseurl="$ENV{'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'}$ENV{'SYSTEM_TEAMPROJECTID'}"; my $azure_run=`curl --silent --noproxy "*" \\ --header "Authorization: Bearer $ENV{'AZURE_ACCESS_TOKEN'}" \\ --header "Content-Type: application/json" \\ --data " { 'name': '$ENV{'AGENT_JOBNAME'}', 'automated': true, 'build': {'id': '$ENV{'BUILD_BUILDID'}'} } " \\ "$azure_baseurl/_apis/test/runs?api-version=5.0"`; if($azure_run =~ /"id":(\d+)/) { return $1; } return ""; } sub azure_create_test_result { my ($azure_run_id, $testnum, $testname)=@_; $testname =~ s/\\/\\\\/g; $testname =~ s/\'/\\\'/g; $testname =~ s/\"/\\\"/g; my $azure_baseurl="$ENV{'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'}$ENV{'SYSTEM_TEAMPROJECTID'}"; my $azure_result=`curl --silent --noproxy "*" \\ --header "Authorization: Bearer $ENV{'AZURE_ACCESS_TOKEN'}" \\ --header "Content-Type: application/json" \\ --data " [ { 'build': {'id': '$ENV{'BUILD_BUILDID'}'}, 'testCase': {'id': $testnum}, 'testCaseTitle': '$testname', 'automatedTestName': 'curl.tests.$testnum', 'outcome': 'InProgress' } ] " \\ "$azure_baseurl/_apis/test/runs/$azure_run_id/results?api-version=5.0"`; if($azure_result =~ /\[\{"id":(\d+)/) { return $1; } return ""; } sub azure_update_test_result { my ($azure_run_id, $azure_result_id, $testnum, $error, $start, $stop)=@_; if(!defined $stop) { $stop = $start; } my $azure_start = strftime "%Y-%m-%dT%H:%M:%SZ", gmtime $start; my $azure_complete = strftime "%Y-%m-%dT%H:%M:%SZ", gmtime $stop; my $azure_duration = sprintf("%.0f", ($stop-$start)*1000); my $azure_outcome; if($error == 2) { $azure_outcome = 'Not applicable'; } elsif($error < 0) { $azure_outcome = 'Not executed'; } elsif(!$error) { $azure_outcome = 'Passed'; } else { $azure_outcome = 'Failed'; } my $azure_baseurl="$ENV{'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'}$ENV{'SYSTEM_TEAMPROJECTID'}"; my $azure_result=`curl --silent --noproxy "*" --request PATCH \\ --header "Authorization: Bearer $ENV{'AZURE_ACCESS_TOKEN'}" \\ --header "Content-Type: application/json" \\ --data " [ { 'id': $azure_result_id, 'outcome': '$azure_outcome', 'startedDate': '$azure_start', 'completedDate': '$azure_complete', 'durationInMs': $azure_duration } ] " \\ "$azure_baseurl/_apis/test/runs/$azure_run_id/results?api-version=5.0"`; if($azure_result =~ /\[\{"id":(\d+)/) { return $1; } return ""; } sub azure_update_test_run { my ($azure_run_id)=@_; my $azure_baseurl="$ENV{'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'}$ENV{'SYSTEM_TEAMPROJECTID'}"; my $azure_run=`curl --silent --noproxy "*" --request PATCH \\ --header "Authorization: Bearer $ENV{'AZURE_ACCESS_TOKEN'}" \\ --header "Content-Type: application/json" \\ --data " { 'state': 'Completed' } " \\ "$azure_baseurl/_apis/test/runs/$azure_run_id?api-version=5.0"`; if($azure_run =~ /"id":(\d+)/) { return $1; } return ""; } 1; |
Added jni/curl/tests/badsymbols.pl.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 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 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2010-2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ########################################################################### # # This script grew out of help from Przemyslaw Iskra and Balint Szilakszi # a late evening in the #curl IRC channel on freenode. # use strict; use warnings; use vars qw($Cpreprocessor); # # configurehelp perl module is generated by configure script # my $rc = eval { require configurehelp; configurehelp->import(qw( $Cpreprocessor )); 1; }; # Set default values if configure has not generated a configurehelp.pm file. # This is the case with cmake. if (!$rc) { $Cpreprocessor = 'cpp'; } # we may get the dir root pointed out my $root=$ARGV[0] || "."; # need an include directory when building out-of-tree my $i = ($ARGV[1]) ? "-I$ARGV[1] " : ''; my $incdir = "$root/include/curl"; my $verbose=0; my $summary=0; my $misses=0; my @syms; my %doc; my %rem; sub scanenums { my ($file)=@_; my $skipit = 0; open H_IN, "-|", "$Cpreprocessor $i$file" || die "Cannot preprocess $file"; while ( <H_IN> ) { if( /^#(line|) (\d+) \"(.*)\"/) { # if the included file isn't in our incdir, then we skip this section # until next #line # if($3 !~ /^$incdir/) { $skipit = 1; next; } # parse this! $skipit = 0, } if($skipit) { next; } if ( /enum\s+(\S+\s+)?{/ .. /}/ ) { s/^\s+//; chomp; s/[,\s].*//; if(($_ !~ /\}(;|)/) && ($_ ne "typedef") && ($_ ne "enum") && ($_ !~ /^[ \t]*$/) && ($_ ne "#")) { push @syms, $_; } } } close H_IN || die "Error preprocessing $file"; } sub scanheader { my ($f)=@_; scanenums($f); open H, "<$f"; while(<H>) { if (/^#define +([^ \n]*)/) { push @syms, $1; } } close H; } opendir(my $dh, $incdir) || die "Can't opendir: $!"; my @hfiles = grep { /\.h$/ } readdir($dh); closedir $dh; for(@hfiles) { scanheader("$incdir/$_"); } my $errors = 0; for my $s (@syms) { if($s !~ /^(lib|)curl/i) { print "Bad symbols in public header files:\n" if(!$errors); $errors++; print " $s\n"; } } if($errors) { exit 1; } printf "%d fine symbols found\n", scalar(@syms); |
Changes to jni/curl/tests/certs/Makefile.in.
︙ | ︙ | |||
336 337 338 339 340 341 342 343 344 345 346 347 348 349 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/tests/certs/scripts/Makefile.in.
︙ | ︙ | |||
276 277 278 279 280 281 282 283 284 285 286 287 288 289 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/tests/data/Makefile.in.
︙ | ︙ | |||
298 299 300 301 302 303 304 305 306 307 308 309 310 311 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
398 399 400 401 402 403 404 | test289 test290 test291 test292 test293 test294 test295 test296 test297 \ test298 test299 test300 test301 test302 test303 test304 test305 test306 \ test307 test308 test309 test310 test311 test312 test313 test314 test315 \ test316 test317 test318 test319 test320 test321 test322 test323 test324 \ test325 test326 test327 test328 test329 test330 test331 test332 test333 \ test334 test335 test336 test337 test338 test339 test340 test341 test342 \ test343 \ | | | 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 | test289 test290 test291 test292 test293 test294 test295 test296 test297 \ test298 test299 test300 test301 test302 test303 test304 test305 test306 \ test307 test308 test309 test310 test311 test312 test313 test314 test315 \ test316 test317 test318 test319 test320 test321 test322 test323 test324 \ test325 test326 test327 test328 test329 test330 test331 test332 test333 \ test334 test335 test336 test337 test338 test339 test340 test341 test342 \ test343 \ test350 test351 test352 test353 test354 test355 test356 test357 \ test393 test394 test395 \ \ test400 test401 test402 test403 test404 test405 test406 test407 test408 \ test409 \ \ test490 test491 test492 \ \ |
︙ | ︙ | |||
435 436 437 438 439 440 441 | \ test800 test801 test802 test803 test804 test805 test806 test807 test808 \ test809 test810 test811 test812 test813 test814 test815 test816 test817 \ test818 test819 test820 test821 test822 test823 test824 test825 test826 \ test827 test828 test829 test830 test831 test832 test833 test834 test835 \ test836 test837 test838 test839 test840 test841 test842 test843 test844 \ test845 test846 test847 test848 test849 \ | < | | > | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | \ test800 test801 test802 test803 test804 test805 test806 test807 test808 \ test809 test810 test811 test812 test813 test814 test815 test816 test817 \ test818 test819 test820 test821 test822 test823 test824 test825 test826 \ test827 test828 test829 test830 test831 test832 test833 test834 test835 \ test836 test837 test838 test839 test840 test841 test842 test843 test844 \ test845 test846 test847 test848 test849 \ test850 test851 test852 test853 test854 test855 test856 test857 test858 \ test859 test860 test861 test862 test863 test864 test865 test866 test867 \ test868 test869 test870 test871 test872 test873 test874 test875 test876 \ test877 test878 test879 test880 test881 test882 test883 test884 test885 \ test886 test887 test888 test889 test890 test891 test892 test893 test894 \ \ test900 test901 test902 test903 test904 test905 test906 test907 test908 \ test909 test910 test911 test912 test913 test914 test915 test916 test917 \ test918 test919 test920 test921 test922 test923 test924 test925 test926 \ test927 test928 test929 test930 test931 test932 test933 test934 test935 \ test936 test937 test938 test939 test940 test941 test942 test943 test944 \ test945 test946 test947 test948 test949 test950 test951 test952 test953 \ test954 test955 test956 test957 test958 test959 test960 test961 test962 \ test963 test964 test965 test966 test967 test968 test969 \ \ test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \ test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \ test1016 test1017 test1018 test1019 test1020 test1021 test1022 test1023 \ test1024 test1025 test1026 test1027 test1028 test1029 test1030 test1031 \ test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 \ test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \ |
︙ | ︙ | |||
470 471 472 473 474 475 476 | test1104 test1105 test1106 test1107 test1108 test1109 test1110 test1111 \ test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \ test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \ | | > | | 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 | test1104 test1105 test1106 test1107 test1108 test1109 test1110 test1111 \ test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \ test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \ test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 \ \ test1170 test1171 test1172 test1173 test1174 test1175 test1176 \ \ test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \ test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \ test1216 test1217 test1218 test1219 \ test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 \ test1228 test1229 test1230 test1231 test1232 test1233 test1234 test1235 \ test1236 test1237 test1238 test1239 test1240 test1241 test1242 test1243 \ |
︙ | ︙ | |||
522 523 524 525 526 527 528 | test1540 test1541 \ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \ test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \ \ test1590 test1591 test1592 test1593 test1594 test1595 test1596 \ \ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \ | | > > > | > | 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 558 559 560 561 562 563 564 565 566 | test1540 test1541 \ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \ test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \ \ test1590 test1591 test1592 test1593 test1594 test1595 test1596 \ \ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \ test1608 test1609 test1610 test1611 test1612 \ \ test1620 test1621 \ \ test1650 test1651 test1652 test1653 test1654 test1655 \ \ test1700 test1701 test1702 \ \ test1800 test1801 \ \ test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 \ test1908 \ \ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \ test2016 test2017 test2018 test2019 test2020 test2021 test2022 test2023 \ test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \ test2032 test2033 test2034 test2035 test2036 test2037 test2038 test2039 \ test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 \ test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \ test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \ test2064 test2065 test2066 test2067 test2068 test2069 \ test2071 test2072 test2073 test2074 test2075 test2076 test2077 \ test2078 \ test2080 \ test2100 \ \ test3000 test3001 \ test3002 test3003 test3004 test3005 test3006 test3007 # TESTCASES are taken from Makefile.inc EXTRA_DIST = $(TESTCASES) DISABLED CMakeLists.txt all: all-am .SUFFIXES: |
︙ | ︙ |
Changes to jni/curl/tests/data/Makefile.inc.
︙ | ︙ | |||
55 56 57 58 59 60 61 | test289 test290 test291 test292 test293 test294 test295 test296 test297 \ test298 test299 test300 test301 test302 test303 test304 test305 test306 \ test307 test308 test309 test310 test311 test312 test313 test314 test315 \ test316 test317 test318 test319 test320 test321 test322 test323 test324 \ test325 test326 test327 test328 test329 test330 test331 test332 test333 \ test334 test335 test336 test337 test338 test339 test340 test341 test342 \ test343 \ | | | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | test289 test290 test291 test292 test293 test294 test295 test296 test297 \ test298 test299 test300 test301 test302 test303 test304 test305 test306 \ test307 test308 test309 test310 test311 test312 test313 test314 test315 \ test316 test317 test318 test319 test320 test321 test322 test323 test324 \ test325 test326 test327 test328 test329 test330 test331 test332 test333 \ test334 test335 test336 test337 test338 test339 test340 test341 test342 \ test343 \ test350 test351 test352 test353 test354 test355 test356 test357 \ test393 test394 test395 \ \ test400 test401 test402 test403 test404 test405 test406 test407 test408 \ test409 \ \ test490 test491 test492 \ \ |
︙ | ︙ | |||
92 93 94 95 96 97 98 | \ test800 test801 test802 test803 test804 test805 test806 test807 test808 \ test809 test810 test811 test812 test813 test814 test815 test816 test817 \ test818 test819 test820 test821 test822 test823 test824 test825 test826 \ test827 test828 test829 test830 test831 test832 test833 test834 test835 \ test836 test837 test838 test839 test840 test841 test842 test843 test844 \ test845 test846 test847 test848 test849 \ | < | | > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | \ test800 test801 test802 test803 test804 test805 test806 test807 test808 \ test809 test810 test811 test812 test813 test814 test815 test816 test817 \ test818 test819 test820 test821 test822 test823 test824 test825 test826 \ test827 test828 test829 test830 test831 test832 test833 test834 test835 \ test836 test837 test838 test839 test840 test841 test842 test843 test844 \ test845 test846 test847 test848 test849 \ test850 test851 test852 test853 test854 test855 test856 test857 test858 \ test859 test860 test861 test862 test863 test864 test865 test866 test867 \ test868 test869 test870 test871 test872 test873 test874 test875 test876 \ test877 test878 test879 test880 test881 test882 test883 test884 test885 \ test886 test887 test888 test889 test890 test891 test892 test893 test894 \ \ test900 test901 test902 test903 test904 test905 test906 test907 test908 \ test909 test910 test911 test912 test913 test914 test915 test916 test917 \ test918 test919 test920 test921 test922 test923 test924 test925 test926 \ test927 test928 test929 test930 test931 test932 test933 test934 test935 \ test936 test937 test938 test939 test940 test941 test942 test943 test944 \ test945 test946 test947 test948 test949 test950 test951 test952 test953 \ test954 test955 test956 test957 test958 test959 test960 test961 test962 \ test963 test964 test965 test966 test967 test968 test969 \ \ test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \ test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \ test1016 test1017 test1018 test1019 test1020 test1021 test1022 test1023 \ test1024 test1025 test1026 test1027 test1028 test1029 test1030 test1031 \ test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 \ test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \ |
︙ | ︙ | |||
127 128 129 130 131 132 133 | test1104 test1105 test1106 test1107 test1108 test1109 test1110 test1111 \ test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \ test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \ | | > | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | test1104 test1105 test1106 test1107 test1108 test1109 test1110 test1111 \ test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \ test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \ test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 \ \ test1170 test1171 test1172 test1173 test1174 test1175 test1176 \ \ test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \ test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \ test1216 test1217 test1218 test1219 \ test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 \ test1228 test1229 test1230 test1231 test1232 test1233 test1234 test1235 \ test1236 test1237 test1238 test1239 test1240 test1241 test1242 test1243 \ |
︙ | ︙ | |||
179 180 181 182 183 184 185 | test1540 test1541 \ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \ test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \ \ test1590 test1591 test1592 test1593 test1594 test1595 test1596 \ \ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \ | | > > > | > | 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 | test1540 test1541 \ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \ test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \ \ test1590 test1591 test1592 test1593 test1594 test1595 test1596 \ \ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \ test1608 test1609 test1610 test1611 test1612 \ \ test1620 test1621 \ \ test1650 test1651 test1652 test1653 test1654 test1655 \ \ test1700 test1701 test1702 \ \ test1800 test1801 \ \ test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 \ test1908 \ \ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \ test2016 test2017 test2018 test2019 test2020 test2021 test2022 test2023 \ test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \ test2032 test2033 test2034 test2035 test2036 test2037 test2038 test2039 \ test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 \ test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \ test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \ test2064 test2065 test2066 test2067 test2068 test2069 \ test2071 test2072 test2073 test2074 test2075 test2076 test2077 \ test2078 \ test2080 \ test2100 \ \ test3000 test3001 \ test3002 test3003 test3004 test3005 test3006 test3007 |
Changes to jni/curl/tests/data/test1070.
︙ | ︙ | |||
28 29 30 31 32 33 34 | <server> http </server> <name> HTTP POST with server closing connection before (all) data is received </name> <command> | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <server> http </server> <name> HTTP POST with server closing connection before (all) data is received </name> <command> -d @log/input1070 http://%HOSTIP:%HTTPPORT/1070 -H "Expect: 100-continue" </command> <file name="log/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! |
︙ | ︙ | |||
51 52 53 54 55 56 57 58 59 | <strip> ^User-Agent:.* </strip> <protocol nonewline="yes"> POST /1070 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 2313 Content-Type: application/x-www-form-urlencoded | > < | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <strip> ^User-Agent:.* </strip> <protocol nonewline="yes"> POST /1070 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Expect: 100-continue Content-Length: 2313 Content-Type: application/x-www-form-urlencoded This creates </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test1129.
cannot compute difference between binary files
Changes to jni/curl/tests/data/test1133.
︙ | ︙ | |||
44 45 46 47 48 49 50 | </strip> <protocol> POST /we/want/1133 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 1264 | < | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | </strip> <protocol> POST /we/want/1133 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 1264 Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32 ------------------------------24e78000bd32 Content-Disposition: form-data; name="file"; filename="faker,and;.txt" Content-Type: mo/foo foo bar |
︙ | ︙ |
Added jni/curl/tests/data/test1167.
> > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <testcase> <info> <keywords> source analysis </keywords> </info> # # Client-side <client> <server> none </server> <name> Verify curl prefix of public symbols in header files </name> <command type="perl"> %SRCDIR/badsymbols.pl %SRCDIR/.. </command> </client> </testcase> |
Added jni/curl/tests/data/test1176.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> globbing </keywords> </info> # # Server-side <reply> <data nocheck="yes"> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT ETag: "21025-dc7-39462498" Accept-Ranges: bytes Content-Length: 6 Connection: close Content-Type: text/html Funny-head: yesyes -foo- </data> </reply> # # Client-side <client> <server> http </server> <name> HTTP GET </name> <command option="no-output"> http://%HOSTIP:%HTTPPORT/1176 -o 'log/base-#0' </command> </client> # # Verify data after the test has been "shot" <verify> <strip> ^User-Agent:.* </strip> <protocol> GET /1176 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* </protocol> <file name="log/base-#0"> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT ETag: "21025-dc7-39462498" Accept-Ranges: bytes Content-Length: 6 Connection: close Content-Type: text/html Funny-head: yesyes -foo- </file> </verify> </testcase> |
Changes to jni/curl/tests/data/test1300.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> llist unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> llist unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1301.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> curl_strcasecompare unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> curl_strcasecompare unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1302.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> base64 encode/decode unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> base64 encode/decode unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1303.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> Curl_timeleft unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> Curl_timeleft unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1304.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> netrc parsing unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 23 24 25 26 | </server> <features> unittest </features> <name> netrc parsing unit tests </name> <file name="log/netrc1304"> machine example.com login admin password passwd machine curl.example.com login none password none </file> </client> </testcase> |
Changes to jni/curl/tests/data/test1305.
︙ | ︙ | |||
15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> internal hash create/destroy testing </name> | < < < < | 15 16 17 18 19 20 21 22 23 24 25 26 | </server> <features> unittest </features> <name> internal hash create/destroy testing </name> <command> 1305 </command> </client> </testcase> |
Changes to jni/curl/tests/data/test1307.
︙ | ︙ | |||
16 17 18 19 20 21 22 | <features> unittest ftp </features> <name> internal Curl_fnmatch() testing </name> | < < < < | 16 17 18 19 20 21 22 23 24 | <features> unittest ftp </features> <name> internal Curl_fnmatch() testing </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1308.
︙ | ︙ | |||
16 17 18 19 20 21 22 | <features> unittest http </features> <name> formpost unit tests </name> | < < < < | 16 17 18 19 20 21 22 23 24 25 26 27 | <features> unittest http </features> <name> formpost unit tests </name> <file name="log/test-1308"> Piece of the file that is to uploaded as a formpost </file> </client> </testcase> |
Changes to jni/curl/tests/data/test1309.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> splay unit tests </name> | < < < | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | </server> <features> unittest </features> <name> splay unit tests </name> </client> <verify> <stdout> Result: 0.1013[3] 0.1003[2] |
︙ | ︙ | |||
1560 1561 1562 1563 1564 1565 1566 | removed payload 1003[0] removed payload 1003[1] removed payload 1013[0] removed payload 1013[1] removed payload 1013[2] </stdout> </verify> | < | 1557 1558 1559 1560 1561 1562 1563 1564 | removed payload 1003[0] removed payload 1003[1] removed payload 1013[0] removed payload 1013[1] removed payload 1013[2] </stdout> </verify> </testcase> |
Changes to jni/curl/tests/data/test1323.
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 | # # Client-side <client> <server> none </server> <name> curlx_tvdiff </name> | > > > < < < | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # # Client-side <client> <server> none </server> <features> unittest </features> <name> curlx_tvdiff </name> </client> # # Verify data after the test has been "shot" <verify> </verify> </testcase> |
Changes to jni/curl/tests/data/test1330.
︙ | ︙ | |||
16 17 18 19 20 21 22 | <server> none </server> <features> unittest TrackMemory </features> | < < < < < | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <server> none </server> <features> unittest TrackMemory </features> <name> unit tests memory tracking operational </name> <command> nothing </command> </client> |
︙ | ︙ | |||
44 45 46 47 48 49 50 | s/ =.*// s/\(.*\)/()/ s/:\d+/:/ s:^(MEM )(.*/)(.*):$1$3: s/\r\n/\n/ </stripfile> </verify> | < | 39 40 41 42 43 44 45 46 | s/ =.*// s/\(.*\)/()/ s/:\d+/:/ s:^(MEM )(.*/)(.*):$1$3: s/\r\n/\n/ </stripfile> </verify> </testcase> |
Changes to jni/curl/tests/data/test1394.
︙ | ︙ | |||
13 14 15 16 17 18 19 | </server> <features> unittest </features> <name> unit test for parse_cert_parameter() </name> | < < < < | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | </server> <features> unittest </features> <name> unit test for parse_cert_parameter() </name> </client> <verify> <stdout mode="text"> </stdout> </verify> </testcase> |
Changes to jni/curl/tests/data/test1395.
︙ | ︙ | |||
13 14 15 16 17 18 19 | </server> <features> unittest </features> <name> Curl_dedotdotify </name> | < < < < < | 13 14 15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> Curl_dedotdotify </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1396.
︙ | ︙ | |||
15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> curl_easy_escape and curl_easy_unescape </name> | < < < | 15 16 17 18 19 20 21 22 23 24 | </server> <features> unittest </features> <name> curl_easy_escape and curl_easy_unescape </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1397.
︙ | ︙ | |||
15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> Check wildcard certificate matching function Curl_cert_hostcheck </name> | < < < | 15 16 17 18 19 20 21 22 23 24 | </server> <features> unittest </features> <name> Check wildcard certificate matching function Curl_cert_hostcheck </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1398.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> curl_msnprintf unit tests </name> | < < < | 14 15 16 17 18 19 20 21 22 23 | </server> <features> unittest </features> <name> curl_msnprintf unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1399.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> Curl_pgrsTime unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> Curl_pgrsTime unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1437.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /1437 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /1437 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /1437 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /1437 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="2", uri="/1437", response="4376eb639bf8e7343a6e7b56e1b89c4f", algorithm=MD5 User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test153.
︙ | ︙ | |||
111 112 113 114 115 116 117 | Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/1530002", response="f84511b014fdd0ba6494f42871079c32" User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS Accept: */* GET /1530002 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/1530002", response="f84511b014fdd0ba6494f42871079c32" User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS Accept: */* GET /1530002 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="999999", uri="/1530002", cnonce="MTA4MzIy", nc="00000001", qop="auth", response="25291c357671604a16c0242f56721c07", algorithm=MD5 User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS Accept: */* </protocol> <stdout> HTTP/1.1 401 Authorization Required swsclose Server: Apache/1.3.27 (Darwin) PHP/4.1.2 |
︙ | ︙ |
Changes to jni/curl/tests/data/test1538.
︙ | ︙ | |||
124 125 126 127 128 129 130 | e89: The max connection limit is reached e90: SSL public key does not match pinned public key e91: SSL server certificate status verification FAILED e92: Stream error in the HTTP/2 framing layer e93: API function called from within callback e94: An authentication function returned an error e95: HTTP/3 error | > | > | | 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 | e89: The max connection limit is reached e90: SSL public key does not match pinned public key e91: SSL server certificate status verification FAILED e92: Stream error in the HTTP/2 framing layer e93: API function called from within callback e94: An authentication function returned an error e95: HTTP/3 error e96: QUIC connection error e97: Unknown error m-1: Please call curl_multi_perform() soon m0: No error m1: Invalid multi handle m2: Invalid easy handle m3: Out of memory m4: Internal error m5: Invalid socket argument m6: Unknown option m7: The easy handle is already added to a multi handle m8: API function called from within callback m9: Wakeup is unavailable or failed m10: A libcurl function was given a bad argument m11: Unknown error s0: No error s1: Unknown share option s2: Share currently in use s3: Invalid share handle s4: Out of memory s5: Feature not enabled in this library s6: CURLSHcode unknown |
︙ | ︙ |
Changes to jni/curl/tests/data/test1600.
︙ | ︙ | |||
15 16 17 18 19 20 21 | <features> unittest NTLM </features> <name> NTLM unit tests </name> | < < < < | 15 16 17 18 19 20 21 22 23 | <features> unittest NTLM </features> <name> NTLM unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1601.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> MD5 unit tests </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> MD5 unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1602.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> Internal hash create/add/destroy testing, exercising clean functions </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> Internal hash create/add/destroy testing, exercising clean functions </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1603.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> Internal hash add, retrieval, deletion testing </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> Internal hash add, retrieval, deletion testing </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1604.
︙ | ︙ | |||
13 14 15 16 17 18 19 | </server> <features> unittest </features> <name> Test WIN32/MSDOS filename sanitization </name> | < < < < | 13 14 15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> Test WIN32/MSDOS filename sanitization </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1605.
︙ | ︙ | |||
13 14 15 16 17 18 19 | </server> <features> unittest </features> <name> Test negative data lengths as input to libcurl functions </name> | < < < < | 13 14 15 16 17 18 19 20 21 | </server> <features> unittest </features> <name> Test negative data lengths as input to libcurl functions </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1606.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> verify speedcheck </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> verify speedcheck </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1607.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> CURLOPT_RESOLVE parsing </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> CURLOPT_RESOLVE parsing </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1608.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> verify DNS shuffling </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> verify DNS shuffling </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1609.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> CURLOPT_RESOLVE parsing </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> CURLOPT_RESOLVE parsing </name> </client> </testcase> |
Added jni/curl/tests/data/test1610.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <testcase> <info> <keywords> unittest SHA256 </keywords> </info> # # Client-side <client> <server> none </server> <features> unittest </features> <name> SHA256 unit tests </name> </client> </testcase> |
Added jni/curl/tests/data/test1611.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <testcase> <info> <keywords> unittest MD4 </keywords> </info> # # Client-side <client> <server> none </server> <features> unittest </features> <name> MD4 unit tests </name> </client> </testcase> |
Added jni/curl/tests/data/test1612.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <testcase> <info> <keywords> unittest HMAC </keywords> </info> # # Client-side <client> <server> none </server> <features> unittest </features> <name> HMAC unit tests </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1620.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> unit tests for url.c </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> unit tests for url.c </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1621.
︙ | ︙ | |||
15 16 17 18 19 20 21 | <features> unittest https </features> <name> unit tests for stripcredentials from URL </name> | < < < < | 15 16 17 18 19 20 21 22 23 | <features> unittest https </features> <name> unit tests for stripcredentials from URL </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1650.
︙ | ︙ | |||
15 16 17 18 19 20 21 | <features> unittest DoH </features> <name> DOH </name> | < < < < | 15 16 17 18 19 20 21 22 23 | <features> unittest DoH </features> <name> DOH </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1651.
︙ | ︙ | |||
14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> x509 parsing </name> | < < < < | 14 15 16 17 18 19 20 21 22 | </server> <features> unittest </features> <name> x509 parsing </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1652.
︙ | ︙ | |||
12 13 14 15 16 17 18 | </server> <features> unittest </features> <name> infof </name> | < < < | 12 13 14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> infof </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1653.
︙ | ︙ | |||
12 13 14 15 16 17 18 | </server> <features> unittest </features> <name> urlapi </name> | < < < | 12 13 14 15 16 17 18 19 20 | </server> <features> unittest </features> <name> urlapi </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1654.
︙ | ︙ | |||
22 23 24 25 26 27 28 | </setenv> <name> alt-svc </name> <command> log/1654 </command> | < < < | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | </setenv> <name> alt-svc </name> <command> log/1654 </command> <file name="log/1654" mode="text"> h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 1 # a comment h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 1 h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 1 h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 1 # also a comment |
︙ | ︙ |
Changes to jni/curl/tests/data/test1655.
︙ | ︙ | |||
15 16 17 18 19 20 21 | <features> unittest DoH </features> <name> unit test for doh_encode </name> | < < < < | 15 16 17 18 19 20 21 22 23 | <features> unittest DoH </features> <name> unit test for doh_encode </name> </client> </testcase> |
Changes to jni/curl/tests/data/test1800.
︙ | ︙ | |||
44 45 46 47 48 49 50 | </strip> <protocol> GET /1800 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Connection: Upgrade, HTTP2-Settings Upgrade: %H2CVER | | | 44 45 46 47 48 49 50 51 52 53 54 55 | </strip> <protocol> GET /1800 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Connection: Upgrade, HTTP2-Settings Upgrade: %H2CVER HTTP2-Settings: AAMAAABkAAQCAAAAAAIAAAAA </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test1908.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> CURLINFO_EFFECTIVE_URL </keywords> </info> # Server-side <reply> <data nocheck="yes"> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Type: text/html Funny-head: yesyes swsclose Content-Length: 0 alt-svc: h2="3dbbdetxoyw4nsp6c3cc456oj2ays6s43ezxzsfxxri3h5xqd.example:443"; ma=315360000; persist=1 </data> </reply> # Client-side <client> <server> http </server> # require debug so that alt-svc can work over plain old HTTP <features> alt-svc debug </features> <name> alt-svc cache save after resetting the handle </name> <setenv> # make debug-curl accept Alt-Svc over plain HTTP CURL_ALTSVC_HTTP="yeah" </setenv> <tool> lib1908 </tool> <command> %HOSTIP:%HTTPPORT/1908 </command> </client> # Verify data after the test has been "shot" <verify> <strip> ^User-Agent:.* </strip> <protocol> GET /1908 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* </protocol> <stripfile> # strip out the (dynamic) expire date from the file so that the rest # matches s/\"([^\"]*)\"/TIMESTAMP/ </stripfile> <file name="log/altsvc-1908"> # Your alt-svc cache. https://curl.haxx.se/docs/alt-svc.html # This file was generated by libcurl! Edit at your own risk. h1 127.0.0.1 8990 h2 3dbbdetxoyw4nsp6c3cc456oj2ays6s43ezxzsfxxri3h5xqd.example 443 TIMESTAMP 1 0 </file> </verify> </testcase> |
Changes to jni/curl/tests/data/test2006.
︙ | ︙ | |||
82 83 84 85 86 87 88 89 90 91 92 93 94 95 | Accept: */* </protocol> <file1 name="log/download2006"> Some data delivered from an HTTP resource </file1> <file2 name="log/heads2006"> HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 14:49:01 GMT Server: test-server/fake Content-Length: 42 Connection: close Content-Type: text/html Content-Disposition: filename=name2006; charset=funny; option=strange | > > > > | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | Accept: */* </protocol> <file1 name="log/download2006"> Some data delivered from an HTTP resource </file1> <file2 name="log/heads2006"> Content-Length: 496 Accept-ranges: bytes HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 14:49:01 GMT Server: test-server/fake Content-Length: 42 Connection: close Content-Type: text/html Content-Disposition: filename=name2006; charset=funny; option=strange |
︙ | ︙ |
Changes to jni/curl/tests/data/test2007.
︙ | ︙ | |||
86 87 88 89 90 91 92 93 94 95 96 97 98 99 | <file1 name="log/download2007"> Something delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2007"> HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 14:50:02 GMT Server: test-server/fake Content-Length: 42 Connection: close Content-Type: text/html Content-Disposition: filename=name2007; charset=funny; option=strange | > > > > | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | <file1 name="log/download2007"> Something delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2007"> Content-Length: 496 Accept-ranges: bytes HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 14:50:02 GMT Server: test-server/fake Content-Length: 42 Connection: close Content-Type: text/html Content-Disposition: filename=name2007; charset=funny; option=strange |
︙ | ︙ |
Changes to jni/curl/tests/data/test2008.
︙ | ︙ | |||
78 79 80 81 82 83 84 85 86 87 88 89 90 91 | <file1 name="log/download2008"> Some stuff delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2008"> HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 15:23:48 GMT Server: test-server/fake Content-Length: 43 Connection: close Content-Type: text/html Content-Disposition: filename=name2008; charset=funny; option=strange | > > > > | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <file1 name="log/download2008"> Some stuff delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2008"> Content-Length: 496 Accept-ranges: bytes HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 15:23:48 GMT Server: test-server/fake Content-Length: 43 Connection: close Content-Type: text/html Content-Disposition: filename=name2008; charset=funny; option=strange |
︙ | ︙ |
Changes to jni/curl/tests/data/test2009.
︙ | ︙ | |||
79 80 81 82 83 84 85 86 87 88 89 90 91 92 | <file1 name="log/download2009"> Some contents delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2009"> HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 16:27:17 GMT Server: test-server/fake Content-Length: 46 Connection: close Content-Type: text/html Content-Disposition: filename=name2009; charset=funny; option=strange | > > > > | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | <file1 name="log/download2009"> Some contents delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2009"> Content-Length: 496 Accept-ranges: bytes HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 16:27:17 GMT Server: test-server/fake Content-Length: 46 Connection: close Content-Type: text/html Content-Disposition: filename=name2009; charset=funny; option=strange |
︙ | ︙ |
Changes to jni/curl/tests/data/test2010.
︙ | ︙ | |||
78 79 80 81 82 83 84 85 86 87 88 89 90 91 | <file1 name="log/download2010"> Contents delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2010"> HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 17:37:27 GMT Server: test-server/fake Content-Length: 41 Connection: close Content-Type: text/html Content-Disposition: filename=name2010; charset=funny; option=strange | > > > > | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <file1 name="log/download2010"> Contents delivered from an HTTP resource </file1> <stripfile2> s/Last-Modified:.*// </stripfile2> <file2 name="log/heads2010"> Content-Length: 496 Accept-ranges: bytes HTTP/1.1 200 OK Date: Thu, 21 Jun 2012 17:37:27 GMT Server: test-server/fake Content-Length: 41 Connection: close Content-Type: text/html Content-Disposition: filename=name2010; charset=funny; option=strange |
︙ | ︙ |
jni/curl/tests/data/test2055 became a regular file.
︙ | ︙ |
Changes to jni/curl/tests/data/test2058.
︙ | ︙ | |||
91 92 93 94 95 96 97 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2058 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2058 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/2058", response="fbed69f9f3fd304c8f1acb1a43eb32688b933c0e28055c16b926cbcec070aeed", algorithm=SHA-256 Content-Range: bytes 2-4/5 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 3 Expect: 100-continue st |
︙ | ︙ |
Changes to jni/curl/tests/data/test2059.
︙ | ︙ | |||
91 92 93 94 95 96 97 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2059 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2059 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="fddc3bc7b753b73ab0848fd83cb20cbbca971258eb8d20c941dd5e0b010d66be", realm="testrealm", nonce="1053604144", uri="/2059", response="fc09be8192851e284e73e8b719b32a2f6f91cca0594e68713da8c49dc2c1656e", algorithm=SHA-512-256, userhash=true Content-Range: bytes 2-4/5 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 3 Expect: 100-continue st |
︙ | ︙ |
Changes to jni/curl/tests/data/test2060.
︙ | ︙ | |||
91 92 93 94 95 96 97 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2060 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 0 GET http://%HOSTIP:%HTTPPORT/2060 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/2060", response="3ce1e25ffa611bdbe90e2ab367b9602fa223db9f6de76ac667f0d6157e2178a6", algorithm=SHA-512-256 Content-Range: bytes 2-4/5 Accept: */* Proxy-Connection: Keep-Alive Content-Length: 3 Expect: 100-continue st |
︙ | ︙ |
Changes to jni/curl/tests/data/test2061.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2061 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2061 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2061 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2061 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/2061", response="9dc55255f1a2537b838311674b621d45346b862a81631bb20e4ce356ef25062d", algorithm=SHA-256 User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2062.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2062 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2062 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2062 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2062 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/2062", response="2af735ec3508f4dff99248ffbbe9de9002bfd7cc770cfa2b026cb334042a54e3", algorithm=SHA-512-256 User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2063.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2063 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2063 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2063 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2063 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="75af8a3500f771e58a52093a25e7905d6e428a511285c12ea1420c73078dfd61", realm="testrealm", nonce="1053604145", uri="/2063", response="43f7ab531dff687b5dc75617daa59d1fd67d648341d6d2655ca65ef5064cfb51", algorithm=SHA-512-256, userhash=true User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2064.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2064 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2064 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2064 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2064 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="2053604145", uri="/2064", response="a9c3ec1036068b336cbabefe9dfcad52ee8b89bc7c91ddbb5bb415c6acdf38a5", algorithm=SHA-256 User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2065.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2065 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2065 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2065 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2065 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="testuser", realm="testrealm", nonce="2053604145", uri="/2065", response="5a5f20b0e601aeddc6f96422c2332d49ff431c49ab143b5f836ef76e9ac78f5e", algorithm=SHA-512-256 User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2066.
︙ | ︙ | |||
71 72 73 74 75 76 77 | <protocol> GET /2066 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2066 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <protocol> GET /2066 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* GET /2066 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="75af8a3500f771e58a52093a25e7905d6e428a511285c12ea1420c73078dfd61", realm="testrealm", nonce="2053604145", uri="/2066", response="a2e2ae589f575fb132991d6f550ef14bf7ef697d2fef1242d2498f07eafc77dc", algorithm=SHA-512-256, userhash=true User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Accept: */* </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test2067.
︙ | ︙ | |||
74 75 76 77 78 79 80 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2067 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2067 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/2067", response="67b97af219c92fa7e8685e5bebb8e74892f6c6792e911c52bd2dfbf0b49272eb", algorithm=SHA-256 Accept: */* Content-Length: 11 Content-Type: application/x-www-form-urlencoded junkelijunk </protocol> </verify> |
︙ | ︙ |
Changes to jni/curl/tests/data/test2068.
︙ | ︙ | |||
74 75 76 77 78 79 80 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2068 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2068 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/2068", response="4bc9c97a72f1856bcec9b0e1518c6b7ee28773f91357d56840bdc30bd89ca68f", algorithm=SHA-512-256 Accept: */* Content-Length: 11 Content-Type: application/x-www-form-urlencoded junkelijunk </protocol> </verify> |
︙ | ︙ |
Changes to jni/curl/tests/data/test2069.
︙ | ︙ | |||
74 75 76 77 78 79 80 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2069 HTTP/1.1 Host: %HOSTIP:%HTTPPORT | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 0 Content-Type: application/x-www-form-urlencoded POST /2069 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Authorization: Digest username="fddc3bc7b753b73ab0848fd83cb20cbbca971258eb8d20c941dd5e0b010d66be", realm="testrealm", nonce="1053604144", uri="/2069", response="ff13d977110a471f30de75e747976e4de78d7a3d2425cd23ff46e67f4bc9ead7", algorithm=SHA-512-256, userhash=true Accept: */* Content-Length: 11 Content-Type: application/x-www-form-urlencoded junkelijunk </protocol> </verify> |
︙ | ︙ |
Added jni/curl/tests/data/test3002.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with multiple and invalid (first) --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/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 - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 3002 MAIL FROM:<sender@example.com> RCPT TO:<invalid.one> RCPT TO:<recipient.two@example.com> RCPT TO:<recipient.three@example.com> RCPT TO:<recipient.four@example.com> RCPT TO:<recipient.five@example.com> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test3003.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/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 - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 3003 MAIL FROM:<sender@example.com> RCPT TO:<recipient.one@example.com> RCPT TO:<recipient.two@example.com> RCPT TO:<recipient.three@example.com> RCPT TO:<recipient.four@example.com> RCPT TO:<invalid.five> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test3004.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/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 - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 3004 MAIL FROM:<sender@example.com> RCPT TO:<recipient.one@example.com> RCPT TO:<recipient.two@example.com> RCPT TO:<invalid.three> RCPT TO:<recipient.four@example.com> RCPT TO:<recipient.five@example.com> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test3005.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with multiple and invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/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 - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 3005 MAIL FROM:<sender@example.com> RCPT TO:<invalid.one> RCPT TO:<recipient.two@example.com> RCPT TO:<invalid.three> RCPT TO:<invalid.four> RCPT TO:<invalid.five> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test3006.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/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 - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 3006 MAIL FROM:<sender@example.com> RCPT TO:<invalid.one> RCPT TO:<invalid.two> RCPT TO:<invalid.three> RCPT TO:<invalid.four> RCPT TO:<invalid.five> QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test3007.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <name> SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 3007 MAIL FROM:<sender@example.com> RCPT TO:<invalid.one> QUIT </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test304.
︙ | ︙ | |||
45 46 47 48 49 50 51 | </strip> <protocol> POST /we/want/304 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPSPORT Accept: */* Content-Length: 1386 | < | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | </strip> <protocol> POST /we/want/304 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPSPORT Accept: */* Content-Length: 1386 Content-Type: multipart/form-data; boundary=----------------------------c3b2ef7f0bb8 ------------------------------c3b2ef7f0bb8 Content-Disposition: form-data; name="name" daniel ------------------------------c3b2ef7f0bb8 |
︙ | ︙ |
Added jni/curl/tests/data/test357.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 96 97 | <testcase> <info> <keywords> HTTP HTTP PUT Expect </keywords> </info> # Server-side <reply> # 417 means the server didn't like the Expect header <data> HTTP/1.1 417 OK swsbounce Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Length: 0 </data> <data1> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Length: 10 blablabla </data1> <datacheck> HTTP/1.1 417 OK swsbounce Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Length: 0 HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Length: 10 blablabla </datacheck> <servercmd> no-expect </servercmd> </reply> # Client-side <client> <server> http </server> <name> HTTP PUT with Expect: 100-continue and 417 response </name> <command> http://%HOSTIP:%HTTPPORT/we/want/357 -T log/test357.txt </command> <file name="log/test357.txt"> Weird file to upload for testing the PUT feature </file> </client> # Verify data after the test has been "shot" <verify> <strip> ^User-Agent:.* </strip> <protocol> PUT /we/want/357 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 78 Expect: 100-continue PUT /we/want/357 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 78 Weird file to upload for testing the PUT feature </protocol> </verify> </testcase> |
Changes to jni/curl/tests/data/test39.
︙ | ︙ | |||
44 45 46 47 48 49 50 | </strip> <protocol> POST /we/want/39 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 1184 | < | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | </strip> <protocol> POST /we/want/39 HTTP/1.1 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 1184 Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32 ------------------------------24e78000bd32 Content-Disposition: form-data; name="name" daniel ------------------------------24e78000bd32 |
︙ | ︙ |
Changes to jni/curl/tests/data/test552.
cannot compute difference between binary files
Changes to jni/curl/tests/data/test558.
︙ | ︙ | |||
32 33 34 35 36 37 38 | </command> </client> # # Verify data after the test has been "shot" <verify> <file name="log/memdump"> | < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | </command> </client> # # Verify data after the test has been "shot" <verify> <file name="log/memdump"> MEM lib558.c: malloc() MEM lib558.c: free() MEM escape.c: malloc() MEM strdup.c: realloc() MEM strdup.c: realloc() MEM escape.c: free() </file> |
︙ | ︙ |
Changes to jni/curl/tests/data/test651.
︙ | ︙ | |||
57 58 59 60 61 62 63 | # (5*12) == 60 bytes less <protocol> POST /651 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 17139 Content-Type: multipart/form-data; boundary=---------------------------- | < | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | # (5*12) == 60 bytes less <protocol> POST /651 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 17139 Content-Type: multipart/form-data; boundary=---------------------------- ------------------------------ Content-Disposition: form-data; name="hello" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ -------------------------------- </protocol> |
︙ | ︙ |
jni/curl/tests/data/test714 became a regular file.
︙ | ︙ |
jni/curl/tests/data/test715 became a regular file.
︙ | ︙ |
Added jni/curl/tests/data/test894.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> POP3 Clear Text RETR </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> pop3 </server> <name> POP3 with CR in username </name> <command> pop3://user%0dFRIGGING_cmd:secret@%HOSTIP:%POP3PORT/894 </command> </client> # # Verify data after the test has been "shot" <verify> # malformed URL <errorcode> 3 </errorcode> </verify> </testcase> |
Changes to jni/curl/tests/data/test923.
1 2 3 4 5 6 7 8 9 10 11 | <testcase> <info> <keywords> SMTP VRFY </keywords> </info> # # Server-side <reply> | < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <testcase> <info> <keywords> SMTP VRFY </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp |
︙ | ︙ |
Added jni/curl/tests/data/test955.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support - UTF-8 based sender (local part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 955 MAIL FROM:<Avsändaren@example.com> QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test956.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 956 MAIL FROM:<sender@example.com> RCPT TO:<Stödmottagaren@example.com> QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test957.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only) </name> <command> smtp://%HOSTIP:%SMTPPORT/957 --mail-rcpt Användaren </command> </client> # # Verify data after the test has been "shot" <verify> # 56 - CURLE_RECV_ERROR <errorcode> 56 </errorcode> <protocol> EHLO 957 VRFY Användaren QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test958.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only) </name> <command> smtp://%HOSTIP:%SMTPPORT/958 --mail-rcpt Användaren@example.com </command> </client> # # Verify data after the test has been "shot" <verify> # 56 - CURLE_RECV_ERROR <errorcode> 56 </errorcode> <protocol> EHLO 958 VRFY Användaren@example.com QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test959.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support - UTF-8 based sender (host part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/959 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 959 MAIL FROM:<sender@åäö.se> QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test960.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support - UTF-8 based recipient (host part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/960 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> # 55 - CURLE_SEND_ERROR <errorcode> 55 </errorcode> <protocol> EHLO 960 MAIL FROM:<sender@example.com> RCPT TO:<recipient@åäö.se> QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test961.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> !idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (host part only) </name> <command> smtp://%HOSTIP:%SMTPPORT/961 --mail-rcpt user@åäö.se </command> </client> # # Verify data after the test has been "shot" <verify> # 56 - CURLE_RECV_ERROR <errorcode> 56 </errorcode> <protocol> EHLO 961 VRFY user@åäö.se QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test962.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP IDN </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support - UTF-8 based sender (host part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 962 MAIL FROM:<sender@xn--4cab6c.se> RCPT TO:<recipient@example.com> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test963.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP IDN </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP without SMTPUTF8 support (IDN Enabked) - UTF-8 based recipient (host part only) </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 963 MAIL FROM:<sender@example.com> RCPT TO:<recipient@xn--4cab6c.se> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test964.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY IDN </keywords> </info> # # Server-side <reply> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP external VRFY without SMTPUTF8 support (IDN Enabled) - UTF-8 based recipient (host part only) </name> <command> smtp://%HOSTIP:%SMTPPORT/964 --mail-rcpt user@åäö.se </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 964 VRFY user@xn--4cab6c.se QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test965.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP IDN </keywords> </info> # # Server-side <reply> <servercmd> CAPA SMTPUTF8 </servercmd> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP with SMTPUTF8 support - UTF-8 based sender </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 965 MAIL FROM:<Avsändaren@xn--4cab6c.se> SMTPUTF8 RCPT TO:<recipient@example.com> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test966.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP IDN </keywords> </info> # # Server-side <reply> <servercmd> CAPA SMTPUTF8 </servercmd> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP with SMTPUTF8 support - UTF-8 based recipient </name> <stdin> From: different To: another body </stdin> <command> smtp://%HOSTIP:%SMTPPORT/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 966 MAIL FROM:<sender@example.com> SMTPUTF8 RCPT TO:<Stödmottagaren@xn--4cab6c.se> DATA QUIT </protocol> <upload> From: different To: another body . </upload> </verify> </testcase> |
Added jni/curl/tests/data/test967.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY IDN </keywords> </info> # # Server-side <reply> <servercmd> CAPA SMTPUTF8 </servercmd> <data> 252 Send some mail and I'll try my best </data> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP external VRFY with SMTPUTF8 support </name> <command> smtp://%HOSTIP:%SMTPPORT/967 --mail-rcpt Användaren@åäö.se </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 967 VRFY Användaren@xn--4cab6c.se SMTPUTF8 QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test968.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP VRFY IDN </keywords> </info> # # Server-side <reply> <servercmd> CAPA SMTPUTF8 </servercmd> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <setenv> LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 </setenv> <precheck> perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");' </precheck> <name> SMTP VRFY with SMTPUTF8 support </name> <command> smtp://%HOSTIP:%SMTPPORT/968 --mail-rcpt Användaren </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 968 VRFY Användaren SMTPUTF8 QUIT </protocol> </verify> </testcase> |
Added jni/curl/tests/data/test969.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | <testcase> <info> <keywords> SMTP EXPN CUSTOMREQUEST IDN </keywords> </info> # # Server-side <reply> <servercmd> CAPA SMTPUTF8 </servercmd> <data> 250-Joe Smith <joe.smith@example.com> 250-Harry Smith <harry.smith@example.com> 250 Melvin Smith <melvin.smith@example.com> </data> </reply> # # Client-side <client> <server> smtp </server> <features> idn !win32 </features> <name> SMTP mailing list EXPN (CUSTOMREQUEST) with SMTPUTF8 support </name> <command> smtp://%HOSTIP:%SMTPPORT/969 --mail-rcpt Friends -X EXPN </command> </client> # # Verify data after the test has been "shot" <verify> <protocol> EHLO 969 EXPN Friends SMTPUTF8 QUIT </protocol> </verify> </testcase> |
Changes to jni/curl/tests/ftpserver.pl.
1 2 3 4 5 6 7 8 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 | if (!$args) { sendcontrol "501 Unrecognized parameter\r\n"; } else { my $from; my $size; my @elements = split(/ /, $args); # Get the FROM and SIZE parameters for my $e (@elements) { if($e =~ /^FROM:(.*)$/) { $from = $1; } elsif($e =~ /^SIZE=(\d+)$/) { $size = $1; } } # Validate the from address (only <> and a valid email address inside # <> are allowed, such as <user@example.com>) | > | > | < < > | > > > > | | > > | | | 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 | if (!$args) { sendcontrol "501 Unrecognized parameter\r\n"; } else { my $from; my $size; my $smtputf8 = grep /^SMTPUTF8$/, @capabilities; my @elements = split(/ /, $args); # Get the FROM and SIZE parameters for my $e (@elements) { if($e =~ /^FROM:(.*)$/) { $from = $1; } elsif($e =~ /^SIZE=(\d+)$/) { $size = $1; } } # Validate the from address (only <> and a valid email address inside # <> are allowed, such as <user@example.com>) if (($from eq "<>") || (!$smtputf8 && $from =~ /^<([a-zA-Z0-9._%+-]+)\@(([a-zA-Z0-9-]+)\.)+([a-zA-Z]{2,4})>$/) || ($smtputf8 && $from =~ /^<([a-zA-Z0-9\x{80}-\x{ff}._%+-]+)\@(([a-zA-Z0-9\x{80}-\x{ff}-]+)\.)+([a-zA-Z]{2,4})>$/)) { my @found; my $valid = 1; # Check the capabilities for SIZE and if the specified size is # greater than the message size then reject it if (@found = grep /^SIZE (\d+)$/, @capabilities) { if ($found[0] =~ /^SIZE (\d+)$/) { if ($size > $1) { $valid = 0; } } } if(!$valid) { sendcontrol "552 Message size too large\r\n"; } else { sendcontrol "250 Sender OK\r\n"; } } else { sendcontrol "501 Invalid address\r\n"; } } return 0; } sub RCPT_smtp { my ($args) = @_; logmsg "RCPT_smtp got $args\n"; # Get the TO parameter if($args !~ /^TO:(.*)/) { sendcontrol "501 Unrecognized parameter\r\n"; } else { my $smtputf8 = grep /^SMTPUTF8$/, @capabilities; my $to = $1; # Validate the to address (only a valid email address inside <> is # allowed, such as <user@example.com>) if ((!$smtputf8 && $to =~ /^<([a-zA-Z0-9._%+-]+)\@(([a-zA-Z0-9-]+)\.)+([a-zA-Z]{2,4})>$/) || ($smtputf8 && $to =~ /^<([a-zA-Z0-9\x{80}-\x{ff}._%+-]+)\@(([a-zA-Z0-9\x{80}-\x{ff}-]+)\.)+([a-zA-Z]{2,4})>$/)) { sendcontrol "250 Recipient OK\r\n"; } else { sendcontrol "501 Invalid address\r\n"; } } return 0; } sub DATA_smtp { |
︙ | ︙ | |||
1026 1027 1028 1029 1030 1031 1032 | logmsg "VRFY_smtp got $args\n"; if($username eq "") { sendcontrol "501 Unrecognized parameter\r\n"; } else { | > > > > > > > > > | > > > > > > > > > > | | > > > > | 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 | logmsg "VRFY_smtp got $args\n"; if($username eq "") { sendcontrol "501 Unrecognized parameter\r\n"; } else { my $smtputf8 = grep /^SMTPUTF8$/, @capabilities; # Validate the username (only a valid local or external username is # allowed, such as user or user@example.com) if ((!$smtputf8 && $username =~ /^([a-zA-Z0-9._%+-]+)(\@(([a-zA-Z0-9-]+)\.)+([a-zA-Z]{2,4}))?$/) || ($smtputf8 && $username =~ /^([a-zA-Z0-9\x{80}-\x{ff}._%+-]+)(\@(([a-zA-Z0-9\x{80}-\x{ff}-]+)\.)+([a-zA-Z]{2,4}))?$/)) { my @data = getreplydata($smtp_client); if(!@data) { if ($username !~ /^([a-zA-Z0-9._%+-]+)\@(([a-zA-Z0-9-]+)\.)+([a-zA-Z]{2,4})$/) { push @data, "250 <$username\@example.com>\r\n" } else { push @data, "250 <$username>\r\n" } } for my $d (@data) { sendcontrol $d; } } else { sendcontrol "501 Invalid address\r\n"; } } return 0; } sub EXPN_smtp { |
︙ | ︙ |
Changes to jni/curl/tests/libtest/Makefile.in.
︙ | ︙ | |||
137 138 139 140 141 142 143 | lib1550$(EXEEXT) lib1551$(EXEEXT) lib1552$(EXEEXT) \ lib1553$(EXEEXT) lib1554$(EXEEXT) lib1555$(EXEEXT) \ lib1556$(EXEEXT) lib1557$(EXEEXT) lib1558$(EXEEXT) \ lib1559$(EXEEXT) lib1560$(EXEEXT) lib1564$(EXEEXT) \ lib1565$(EXEEXT) lib1591$(EXEEXT) lib1592$(EXEEXT) \ lib1593$(EXEEXT) lib1594$(EXEEXT) lib1596$(EXEEXT) \ lib1900$(EXEEXT) lib1905$(EXEEXT) lib1906$(EXEEXT) \ | | | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | lib1550$(EXEEXT) lib1551$(EXEEXT) lib1552$(EXEEXT) \ lib1553$(EXEEXT) lib1554$(EXEEXT) lib1555$(EXEEXT) \ lib1556$(EXEEXT) lib1557$(EXEEXT) lib1558$(EXEEXT) \ lib1559$(EXEEXT) lib1560$(EXEEXT) lib1564$(EXEEXT) \ lib1565$(EXEEXT) lib1591$(EXEEXT) lib1592$(EXEEXT) \ lib1593$(EXEEXT) lib1594$(EXEEXT) lib1596$(EXEEXT) \ lib1900$(EXEEXT) lib1905$(EXEEXT) lib1906$(EXEEXT) \ lib1907$(EXEEXT) lib1908$(EXEEXT) lib2033$(EXEEXT) @USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB @CURL_LT_SHLIB_USE_NO_UNDEFINED_TRUE@am__append_2 = -no-undefined @CURL_LT_SHLIB_USE_MIMPURE_TEXT_TRUE@am__append_3 = -mimpure-text @DOING_CURL_SYMBOL_HIDING_TRUE@am__append_4 = -DCURL_HIDDEN_SYMBOLS @DOING_CURL_SYMBOL_HIDING_TRUE@am__append_5 = $(CFLAG_CURL_SYMBOL_HIDING) # Build a stub gssapi implementation for testing |
︙ | ︙ | |||
604 605 606 607 608 609 610 | am__objects_148 = lib1907-first.$(OBJEXT) am__objects_149 = lib1907-testutil.$(OBJEXT) am__objects_150 = ../../lib/lib1907-warnless.$(OBJEXT) am_lib1907_OBJECTS = lib1907-lib1907.$(OBJEXT) $(am__objects_148) \ $(am__objects_149) $(am__objects_150) lib1907_OBJECTS = $(am_lib1907_OBJECTS) lib1907_DEPENDENCIES = $(am__DEPENDENCIES_1) | | > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 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 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 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 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 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 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 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 1026 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 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 | am__objects_148 = lib1907-first.$(OBJEXT) am__objects_149 = lib1907-testutil.$(OBJEXT) am__objects_150 = ../../lib/lib1907-warnless.$(OBJEXT) am_lib1907_OBJECTS = lib1907-lib1907.$(OBJEXT) $(am__objects_148) \ $(am__objects_149) $(am__objects_150) lib1907_OBJECTS = $(am_lib1907_OBJECTS) lib1907_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_151 = lib1908-first.$(OBJEXT) am__objects_152 = lib1908-testutil.$(OBJEXT) am__objects_153 = ../../lib/lib1908-warnless.$(OBJEXT) am_lib1908_OBJECTS = lib1908-lib1908.$(OBJEXT) $(am__objects_151) \ $(am__objects_152) $(am__objects_153) lib1908_OBJECTS = $(am_lib1908_OBJECTS) lib1908_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_154 = lib2033-first.$(OBJEXT) am__objects_155 = lib2033-testutil.$(OBJEXT) am__objects_156 = ../../lib/lib2033-warnless.$(OBJEXT) am_lib2033_OBJECTS = lib2033-libntlmconnect.$(OBJEXT) \ $(am__objects_154) $(am__objects_155) $(am__objects_156) lib2033_OBJECTS = $(am_lib2033_OBJECTS) lib2033_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_157 = lib500-first.$(OBJEXT) am__objects_158 = lib500-testutil.$(OBJEXT) am__objects_159 = lib500-testtrace.$(OBJEXT) am_lib500_OBJECTS = lib500-lib500.$(OBJEXT) $(am__objects_157) \ $(am__objects_158) $(am__objects_159) lib500_OBJECTS = $(am_lib500_OBJECTS) lib500_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_160 = lib501-first.$(OBJEXT) am_lib501_OBJECTS = lib501-lib501.$(OBJEXT) $(am__objects_160) lib501_OBJECTS = $(am_lib501_OBJECTS) lib501_LDADD = $(LDADD) lib501_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_161 = lib502-first.$(OBJEXT) am__objects_162 = lib502-testutil.$(OBJEXT) am__objects_163 = ../../lib/lib502-warnless.$(OBJEXT) am_lib502_OBJECTS = lib502-lib502.$(OBJEXT) $(am__objects_161) \ $(am__objects_162) $(am__objects_163) lib502_OBJECTS = $(am_lib502_OBJECTS) lib502_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_164 = lib503-first.$(OBJEXT) am__objects_165 = lib503-testutil.$(OBJEXT) am__objects_166 = ../../lib/lib503-warnless.$(OBJEXT) am_lib503_OBJECTS = lib503-lib503.$(OBJEXT) $(am__objects_164) \ $(am__objects_165) $(am__objects_166) lib503_OBJECTS = $(am_lib503_OBJECTS) lib503_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_167 = lib504-first.$(OBJEXT) am__objects_168 = lib504-testutil.$(OBJEXT) am__objects_169 = ../../lib/lib504-warnless.$(OBJEXT) am_lib504_OBJECTS = lib504-lib504.$(OBJEXT) $(am__objects_167) \ $(am__objects_168) $(am__objects_169) lib504_OBJECTS = $(am_lib504_OBJECTS) lib504_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_170 = lib505-first.$(OBJEXT) am_lib505_OBJECTS = lib505-lib505.$(OBJEXT) $(am__objects_170) lib505_OBJECTS = $(am_lib505_OBJECTS) lib505_LDADD = $(LDADD) lib505_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_171 = lib506-first.$(OBJEXT) am_lib506_OBJECTS = lib506-lib506.$(OBJEXT) $(am__objects_171) lib506_OBJECTS = $(am_lib506_OBJECTS) lib506_LDADD = $(LDADD) lib506_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_172 = lib507-first.$(OBJEXT) am__objects_173 = lib507-testutil.$(OBJEXT) am__objects_174 = ../../lib/lib507-warnless.$(OBJEXT) am_lib507_OBJECTS = lib507-lib507.$(OBJEXT) $(am__objects_172) \ $(am__objects_173) $(am__objects_174) lib507_OBJECTS = $(am_lib507_OBJECTS) lib507_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_175 = lib508-first.$(OBJEXT) am_lib508_OBJECTS = lib508-lib508.$(OBJEXT) $(am__objects_175) lib508_OBJECTS = $(am_lib508_OBJECTS) lib508_LDADD = $(LDADD) lib508_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_176 = lib509-first.$(OBJEXT) am_lib509_OBJECTS = lib509-lib509.$(OBJEXT) $(am__objects_176) lib509_OBJECTS = $(am_lib509_OBJECTS) lib509_LDADD = $(LDADD) lib509_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_177 = lib510-first.$(OBJEXT) am_lib510_OBJECTS = lib510-lib510.$(OBJEXT) $(am__objects_177) lib510_OBJECTS = $(am_lib510_OBJECTS) lib510_LDADD = $(LDADD) lib510_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_178 = lib511-first.$(OBJEXT) am_lib511_OBJECTS = lib511-lib511.$(OBJEXT) $(am__objects_178) lib511_OBJECTS = $(am_lib511_OBJECTS) lib511_LDADD = $(LDADD) lib511_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_179 = lib512-first.$(OBJEXT) am_lib512_OBJECTS = lib512-lib512.$(OBJEXT) $(am__objects_179) lib512_OBJECTS = $(am_lib512_OBJECTS) lib512_LDADD = $(LDADD) lib512_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_180 = lib513-first.$(OBJEXT) am_lib513_OBJECTS = lib513-lib513.$(OBJEXT) $(am__objects_180) lib513_OBJECTS = $(am_lib513_OBJECTS) lib513_LDADD = $(LDADD) lib513_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_181 = lib514-first.$(OBJEXT) am_lib514_OBJECTS = lib514-lib514.$(OBJEXT) $(am__objects_181) lib514_OBJECTS = $(am_lib514_OBJECTS) lib514_LDADD = $(LDADD) lib514_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_182 = lib515-first.$(OBJEXT) am_lib515_OBJECTS = lib515-lib515.$(OBJEXT) $(am__objects_182) lib515_OBJECTS = $(am_lib515_OBJECTS) lib515_LDADD = $(LDADD) lib515_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_183 = lib516-first.$(OBJEXT) am_lib516_OBJECTS = lib516-lib516.$(OBJEXT) $(am__objects_183) lib516_OBJECTS = $(am_lib516_OBJECTS) lib516_LDADD = $(LDADD) lib516_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_184 = lib517-first.$(OBJEXT) am_lib517_OBJECTS = lib517-lib517.$(OBJEXT) $(am__objects_184) lib517_OBJECTS = $(am_lib517_OBJECTS) lib517_LDADD = $(LDADD) lib517_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_185 = lib518-first.$(OBJEXT) am__objects_186 = ../../lib/lib518-warnless.$(OBJEXT) am_lib518_OBJECTS = lib518-lib518.$(OBJEXT) $(am__objects_185) \ $(am__objects_186) lib518_OBJECTS = $(am_lib518_OBJECTS) lib518_LDADD = $(LDADD) lib518_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_187 = lib519-first.$(OBJEXT) am_lib519_OBJECTS = lib519-lib519.$(OBJEXT) $(am__objects_187) lib519_OBJECTS = $(am_lib519_OBJECTS) lib519_LDADD = $(LDADD) lib519_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_188 = lib520-first.$(OBJEXT) am_lib520_OBJECTS = lib520-lib520.$(OBJEXT) $(am__objects_188) lib520_OBJECTS = $(am_lib520_OBJECTS) lib520_LDADD = $(LDADD) lib520_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_189 = lib521-first.$(OBJEXT) am_lib521_OBJECTS = lib521-lib521.$(OBJEXT) $(am__objects_189) lib521_OBJECTS = $(am_lib521_OBJECTS) lib521_LDADD = $(LDADD) lib521_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_190 = lib523-first.$(OBJEXT) am_lib523_OBJECTS = lib523-lib523.$(OBJEXT) $(am__objects_190) lib523_OBJECTS = $(am_lib523_OBJECTS) lib523_LDADD = $(LDADD) lib523_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_191 = lib524-first.$(OBJEXT) am_lib524_OBJECTS = lib524-lib524.$(OBJEXT) $(am__objects_191) lib524_OBJECTS = $(am_lib524_OBJECTS) lib524_LDADD = $(LDADD) lib524_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_192 = lib525-first.$(OBJEXT) am__objects_193 = lib525-testutil.$(OBJEXT) am__objects_194 = ../../lib/lib525-warnless.$(OBJEXT) am_lib525_OBJECTS = lib525-lib525.$(OBJEXT) $(am__objects_192) \ $(am__objects_193) $(am__objects_194) lib525_OBJECTS = $(am_lib525_OBJECTS) lib525_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_195 = lib526-first.$(OBJEXT) am__objects_196 = lib526-testutil.$(OBJEXT) am__objects_197 = ../../lib/lib526-warnless.$(OBJEXT) am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_195) \ $(am__objects_196) $(am__objects_197) lib526_OBJECTS = $(am_lib526_OBJECTS) lib526_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_198 = lib527-first.$(OBJEXT) am__objects_199 = lib527-testutil.$(OBJEXT) am__objects_200 = ../../lib/lib527-warnless.$(OBJEXT) am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_198) \ $(am__objects_199) $(am__objects_200) lib527_OBJECTS = $(am_lib527_OBJECTS) lib527_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_201 = lib529-first.$(OBJEXT) am__objects_202 = lib529-testutil.$(OBJEXT) am__objects_203 = ../../lib/lib529-warnless.$(OBJEXT) am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_201) \ $(am__objects_202) $(am__objects_203) lib529_OBJECTS = $(am_lib529_OBJECTS) lib529_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_204 = lib530-first.$(OBJEXT) am__objects_205 = lib530-testutil.$(OBJEXT) am__objects_206 = ../../lib/lib530-warnless.$(OBJEXT) am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_204) \ $(am__objects_205) $(am__objects_206) lib530_OBJECTS = $(am_lib530_OBJECTS) lib530_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_207 = lib532-first.$(OBJEXT) am__objects_208 = lib532-testutil.$(OBJEXT) am__objects_209 = ../../lib/lib532-warnless.$(OBJEXT) am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_207) \ $(am__objects_208) $(am__objects_209) lib532_OBJECTS = $(am_lib532_OBJECTS) lib532_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_210 = lib533-first.$(OBJEXT) am__objects_211 = lib533-testutil.$(OBJEXT) am__objects_212 = ../../lib/lib533-warnless.$(OBJEXT) am_lib533_OBJECTS = lib533-lib533.$(OBJEXT) $(am__objects_210) \ $(am__objects_211) $(am__objects_212) lib533_OBJECTS = $(am_lib533_OBJECTS) lib533_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_213 = lib537-first.$(OBJEXT) am__objects_214 = ../../lib/lib537-warnless.$(OBJEXT) am_lib537_OBJECTS = lib537-lib537.$(OBJEXT) $(am__objects_213) \ $(am__objects_214) lib537_OBJECTS = $(am_lib537_OBJECTS) lib537_LDADD = $(LDADD) lib537_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_215 = lib539-first.$(OBJEXT) am_lib539_OBJECTS = lib539-lib539.$(OBJEXT) $(am__objects_215) lib539_OBJECTS = $(am_lib539_OBJECTS) lib539_LDADD = $(LDADD) lib539_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_216 = lib540-first.$(OBJEXT) am__objects_217 = lib540-testutil.$(OBJEXT) am__objects_218 = ../../lib/lib540-warnless.$(OBJEXT) am_lib540_OBJECTS = lib540-lib540.$(OBJEXT) $(am__objects_216) \ $(am__objects_217) $(am__objects_218) lib540_OBJECTS = $(am_lib540_OBJECTS) lib540_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_219 = lib541-first.$(OBJEXT) am_lib541_OBJECTS = lib541-lib541.$(OBJEXT) $(am__objects_219) lib541_OBJECTS = $(am_lib541_OBJECTS) lib541_LDADD = $(LDADD) lib541_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_220 = lib542-first.$(OBJEXT) am_lib542_OBJECTS = lib542-lib542.$(OBJEXT) $(am__objects_220) lib542_OBJECTS = $(am_lib542_OBJECTS) lib542_LDADD = $(LDADD) lib542_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_221 = lib543-first.$(OBJEXT) am_lib543_OBJECTS = lib543-lib543.$(OBJEXT) $(am__objects_221) lib543_OBJECTS = $(am_lib543_OBJECTS) lib543_LDADD = $(LDADD) lib543_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_222 = lib544-first.$(OBJEXT) am_lib544_OBJECTS = lib544-lib544.$(OBJEXT) $(am__objects_222) lib544_OBJECTS = $(am_lib544_OBJECTS) lib544_LDADD = $(LDADD) lib544_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_223 = lib545-first.$(OBJEXT) am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_223) lib545_OBJECTS = $(am_lib545_OBJECTS) lib545_LDADD = $(LDADD) lib545_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_224 = lib547-first.$(OBJEXT) am_lib547_OBJECTS = lib547-lib547.$(OBJEXT) $(am__objects_224) lib547_OBJECTS = $(am_lib547_OBJECTS) lib547_LDADD = $(LDADD) lib547_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_225 = lib548-first.$(OBJEXT) am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_225) lib548_OBJECTS = $(am_lib548_OBJECTS) lib548_LDADD = $(LDADD) lib548_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_226 = lib549-first.$(OBJEXT) am_lib549_OBJECTS = lib549-lib549.$(OBJEXT) $(am__objects_226) lib549_OBJECTS = $(am_lib549_OBJECTS) lib549_LDADD = $(LDADD) lib549_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_227 = lib552-first.$(OBJEXT) am__objects_228 = ../../lib/lib552-warnless.$(OBJEXT) am_lib552_OBJECTS = lib552-lib552.$(OBJEXT) $(am__objects_227) \ $(am__objects_228) lib552_OBJECTS = $(am_lib552_OBJECTS) lib552_LDADD = $(LDADD) lib552_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_229 = lib553-first.$(OBJEXT) am_lib553_OBJECTS = lib553-lib553.$(OBJEXT) $(am__objects_229) lib553_OBJECTS = $(am_lib553_OBJECTS) lib553_LDADD = $(LDADD) lib553_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_230 = lib554-first.$(OBJEXT) am_lib554_OBJECTS = lib554-lib554.$(OBJEXT) $(am__objects_230) lib554_OBJECTS = $(am_lib554_OBJECTS) lib554_LDADD = $(LDADD) lib554_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_231 = lib555-first.$(OBJEXT) am__objects_232 = lib555-testutil.$(OBJEXT) am__objects_233 = ../../lib/lib555-warnless.$(OBJEXT) am_lib555_OBJECTS = lib555-lib555.$(OBJEXT) $(am__objects_231) \ $(am__objects_232) $(am__objects_233) lib555_OBJECTS = $(am_lib555_OBJECTS) lib555_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_234 = lib556-first.$(OBJEXT) am__objects_235 = ../../lib/lib556-warnless.$(OBJEXT) am_lib556_OBJECTS = lib556-lib556.$(OBJEXT) $(am__objects_234) \ $(am__objects_235) lib556_OBJECTS = $(am_lib556_OBJECTS) lib556_LDADD = $(LDADD) lib556_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_236 = lib557-first.$(OBJEXT) am_lib557_OBJECTS = lib557-lib557.$(OBJEXT) $(am__objects_236) lib557_OBJECTS = $(am_lib557_OBJECTS) lib557_LDADD = $(LDADD) lib557_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_237 = lib558-first.$(OBJEXT) am_lib558_OBJECTS = lib558-lib558.$(OBJEXT) $(am__objects_237) lib558_OBJECTS = $(am_lib558_OBJECTS) lib558_LDADD = $(LDADD) lib558_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_238 = lib559-first.$(OBJEXT) am_lib559_OBJECTS = lib559-lib559.$(OBJEXT) $(am__objects_238) lib559_OBJECTS = $(am_lib559_OBJECTS) lib559_LDADD = $(LDADD) lib559_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_239 = lib560-first.$(OBJEXT) am__objects_240 = lib560-testutil.$(OBJEXT) am__objects_241 = ../../lib/lib560-warnless.$(OBJEXT) am_lib560_OBJECTS = lib560-lib560.$(OBJEXT) $(am__objects_239) \ $(am__objects_240) $(am__objects_241) lib560_OBJECTS = $(am_lib560_OBJECTS) lib560_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_242 = lib562-first.$(OBJEXT) am_lib562_OBJECTS = lib562-lib562.$(OBJEXT) $(am__objects_242) lib562_OBJECTS = $(am_lib562_OBJECTS) lib562_LDADD = $(LDADD) lib562_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_243 = lib564-first.$(OBJEXT) am__objects_244 = lib564-testutil.$(OBJEXT) am__objects_245 = ../../lib/lib564-warnless.$(OBJEXT) am_lib564_OBJECTS = lib564-lib564.$(OBJEXT) $(am__objects_243) \ $(am__objects_244) $(am__objects_245) lib564_OBJECTS = $(am_lib564_OBJECTS) lib564_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_246 = lib565-first.$(OBJEXT) am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_246) lib565_OBJECTS = $(am_lib565_OBJECTS) lib565_LDADD = $(LDADD) lib565_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_247 = lib566-first.$(OBJEXT) am_lib566_OBJECTS = lib566-lib566.$(OBJEXT) $(am__objects_247) lib566_OBJECTS = $(am_lib566_OBJECTS) lib566_LDADD = $(LDADD) lib566_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_248 = lib567-first.$(OBJEXT) am_lib567_OBJECTS = lib567-lib567.$(OBJEXT) $(am__objects_248) lib567_OBJECTS = $(am_lib567_OBJECTS) lib567_LDADD = $(LDADD) lib567_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_249 = lib568-first.$(OBJEXT) am_lib568_OBJECTS = lib568-lib568.$(OBJEXT) $(am__objects_249) lib568_OBJECTS = $(am_lib568_OBJECTS) lib568_LDADD = $(LDADD) lib568_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_250 = lib569-first.$(OBJEXT) am_lib569_OBJECTS = lib569-lib569.$(OBJEXT) $(am__objects_250) lib569_OBJECTS = $(am_lib569_OBJECTS) lib569_LDADD = $(LDADD) lib569_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_251 = lib570-first.$(OBJEXT) am_lib570_OBJECTS = lib570-lib570.$(OBJEXT) $(am__objects_251) lib570_OBJECTS = $(am_lib570_OBJECTS) lib570_LDADD = $(LDADD) lib570_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_252 = lib571-first.$(OBJEXT) am__objects_253 = ../../lib/lib571-warnless.$(OBJEXT) am_lib571_OBJECTS = lib571-lib571.$(OBJEXT) $(am__objects_252) \ $(am__objects_253) lib571_OBJECTS = $(am_lib571_OBJECTS) lib571_LDADD = $(LDADD) lib571_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_254 = lib572-first.$(OBJEXT) am_lib572_OBJECTS = lib572-lib572.$(OBJEXT) $(am__objects_254) lib572_OBJECTS = $(am_lib572_OBJECTS) lib572_LDADD = $(LDADD) lib572_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_255 = lib573-first.$(OBJEXT) am__objects_256 = lib573-testutil.$(OBJEXT) am__objects_257 = ../../lib/lib573-warnless.$(OBJEXT) am__objects_258 = lib573-testtrace.$(OBJEXT) am_lib573_OBJECTS = lib573-lib573.$(OBJEXT) $(am__objects_255) \ $(am__objects_256) $(am__objects_257) $(am__objects_258) lib573_OBJECTS = $(am_lib573_OBJECTS) lib573_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_259 = lib574-first.$(OBJEXT) am_lib574_OBJECTS = lib574-lib574.$(OBJEXT) $(am__objects_259) lib574_OBJECTS = $(am_lib574_OBJECTS) lib574_LDADD = $(LDADD) lib574_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_260 = lib575-first.$(OBJEXT) am__objects_261 = lib575-testutil.$(OBJEXT) am__objects_262 = ../../lib/lib575-warnless.$(OBJEXT) am_lib575_OBJECTS = lib575-lib575.$(OBJEXT) $(am__objects_260) \ $(am__objects_261) $(am__objects_262) lib575_OBJECTS = $(am_lib575_OBJECTS) lib575_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_263 = lib576-first.$(OBJEXT) am_lib576_OBJECTS = lib576-lib576.$(OBJEXT) $(am__objects_263) lib576_OBJECTS = $(am_lib576_OBJECTS) lib576_LDADD = $(LDADD) lib576_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_264 = lib578-first.$(OBJEXT) am_lib578_OBJECTS = lib578-lib578.$(OBJEXT) $(am__objects_264) lib578_OBJECTS = $(am_lib578_OBJECTS) lib578_LDADD = $(LDADD) lib578_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_265 = lib579-first.$(OBJEXT) am_lib579_OBJECTS = lib579-lib579.$(OBJEXT) $(am__objects_265) lib579_OBJECTS = $(am_lib579_OBJECTS) lib579_LDADD = $(LDADD) lib579_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_266 = lib582-first.$(OBJEXT) am__objects_267 = lib582-testutil.$(OBJEXT) am__objects_268 = ../../lib/lib582-warnless.$(OBJEXT) am_lib582_OBJECTS = lib582-lib582.$(OBJEXT) $(am__objects_266) \ $(am__objects_267) $(am__objects_268) lib582_OBJECTS = $(am_lib582_OBJECTS) lib582_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_269 = lib583-first.$(OBJEXT) am_lib583_OBJECTS = lib583-lib583.$(OBJEXT) $(am__objects_269) lib583_OBJECTS = $(am_lib583_OBJECTS) lib583_LDADD = $(LDADD) lib583_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_270 = lib585-first.$(OBJEXT) am__objects_271 = lib585-testutil.$(OBJEXT) am__objects_272 = lib585-testtrace.$(OBJEXT) am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_270) \ $(am__objects_271) $(am__objects_272) lib585_OBJECTS = $(am_lib585_OBJECTS) lib585_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_273 = lib586-first.$(OBJEXT) am_lib586_OBJECTS = lib586-lib586.$(OBJEXT) $(am__objects_273) lib586_OBJECTS = $(am_lib586_OBJECTS) lib586_LDADD = $(LDADD) lib586_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_274 = lib587-first.$(OBJEXT) am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_274) lib587_OBJECTS = $(am_lib587_OBJECTS) lib587_LDADD = $(LDADD) lib587_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_275 = lib589-first.$(OBJEXT) am_lib589_OBJECTS = lib589-lib589.$(OBJEXT) $(am__objects_275) lib589_OBJECTS = $(am_lib589_OBJECTS) lib589_LDADD = $(LDADD) lib589_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_276 = lib590-first.$(OBJEXT) am_lib590_OBJECTS = lib590-lib590.$(OBJEXT) $(am__objects_276) lib590_OBJECTS = $(am_lib590_OBJECTS) lib590_LDADD = $(LDADD) lib590_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_277 = lib591-first.$(OBJEXT) am__objects_278 = lib591-testutil.$(OBJEXT) am__objects_279 = ../../lib/lib591-warnless.$(OBJEXT) am_lib591_OBJECTS = lib591-lib591.$(OBJEXT) $(am__objects_277) \ $(am__objects_278) $(am__objects_279) lib591_OBJECTS = $(am_lib591_OBJECTS) lib591_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_280 = lib597-first.$(OBJEXT) am__objects_281 = lib597-testutil.$(OBJEXT) am__objects_282 = ../../lib/lib597-warnless.$(OBJEXT) am_lib597_OBJECTS = lib597-lib597.$(OBJEXT) $(am__objects_280) \ $(am__objects_281) $(am__objects_282) lib597_OBJECTS = $(am_lib597_OBJECTS) lib597_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_283 = lib598-first.$(OBJEXT) am_lib598_OBJECTS = lib598-lib598.$(OBJEXT) $(am__objects_283) lib598_OBJECTS = $(am_lib598_OBJECTS) lib598_LDADD = $(LDADD) lib598_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_284 = lib599-first.$(OBJEXT) am_lib599_OBJECTS = lib599-lib599.$(OBJEXT) $(am__objects_284) lib599_OBJECTS = $(am_lib599_OBJECTS) lib599_LDADD = $(LDADD) lib599_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_285 = lib643-first.$(OBJEXT) am_lib643_OBJECTS = lib643-lib643.$(OBJEXT) $(am__objects_285) lib643_OBJECTS = $(am_lib643_OBJECTS) lib643_LDADD = $(LDADD) lib643_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_286 = lib644-first.$(OBJEXT) am_lib644_OBJECTS = lib644-lib643.$(OBJEXT) $(am__objects_286) lib644_OBJECTS = $(am_lib644_OBJECTS) lib644_LDADD = $(LDADD) lib644_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_287 = lib645-first.$(OBJEXT) am_lib645_OBJECTS = lib645-lib643.$(OBJEXT) $(am__objects_287) lib645_OBJECTS = $(am_lib645_OBJECTS) lib645_LDADD = $(LDADD) lib645_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_288 = lib650-first.$(OBJEXT) am_lib650_OBJECTS = lib650-lib650.$(OBJEXT) $(am__objects_288) lib650_OBJECTS = $(am_lib650_OBJECTS) lib650_LDADD = $(LDADD) lib650_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_289 = lib651-first.$(OBJEXT) am_lib651_OBJECTS = lib651-lib651.$(OBJEXT) $(am__objects_289) lib651_OBJECTS = $(am_lib651_OBJECTS) lib651_LDADD = $(LDADD) lib651_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_290 = lib652-first.$(OBJEXT) am_lib652_OBJECTS = lib652-lib652.$(OBJEXT) $(am__objects_290) lib652_OBJECTS = $(am_lib652_OBJECTS) lib652_LDADD = $(LDADD) lib652_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_291 = lib653-first.$(OBJEXT) am_lib653_OBJECTS = lib653-lib653.$(OBJEXT) $(am__objects_291) lib653_OBJECTS = $(am_lib653_OBJECTS) lib653_LDADD = $(LDADD) lib653_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_292 = lib654-first.$(OBJEXT) am_lib654_OBJECTS = lib654-lib654.$(OBJEXT) $(am__objects_292) lib654_OBJECTS = $(am_lib654_OBJECTS) lib654_LDADD = $(LDADD) lib654_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_293 = lib655-first.$(OBJEXT) am_lib655_OBJECTS = lib655-lib655.$(OBJEXT) $(am__objects_293) lib655_OBJECTS = $(am_lib655_OBJECTS) lib655_LDADD = $(LDADD) lib655_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_294 = lib658-first.$(OBJEXT) am__objects_295 = lib658-testutil.$(OBJEXT) am__objects_296 = ../../lib/lib658-warnless.$(OBJEXT) am_lib658_OBJECTS = lib658-lib658.$(OBJEXT) $(am__objects_294) \ $(am__objects_295) $(am__objects_296) lib658_OBJECTS = $(am_lib658_OBJECTS) lib658_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_297 = lib659-first.$(OBJEXT) am__objects_298 = lib659-testutil.$(OBJEXT) am__objects_299 = ../../lib/lib659-warnless.$(OBJEXT) am_lib659_OBJECTS = lib659-lib659.$(OBJEXT) $(am__objects_297) \ $(am__objects_298) $(am__objects_299) lib659_OBJECTS = $(am_lib659_OBJECTS) lib659_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_300 = lib661-first.$(OBJEXT) am_lib661_OBJECTS = lib661-lib661.$(OBJEXT) $(am__objects_300) lib661_OBJECTS = $(am_lib661_OBJECTS) lib661_LDADD = $(LDADD) lib661_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_301 = libauthretry-first.$(OBJEXT) am_libauthretry_OBJECTS = libauthretry-libauthretry.$(OBJEXT) \ $(am__objects_301) libauthretry_OBJECTS = $(am_libauthretry_OBJECTS) libauthretry_LDADD = $(LDADD) libauthretry_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_302 = libntlmconnect-first.$(OBJEXT) am__objects_303 = libntlmconnect-testutil.$(OBJEXT) am__objects_304 = ../../lib/libntlmconnect-warnless.$(OBJEXT) am_libntlmconnect_OBJECTS = libntlmconnect-libntlmconnect.$(OBJEXT) \ $(am__objects_302) $(am__objects_303) $(am__objects_304) libntlmconnect_OBJECTS = $(am_libntlmconnect_OBJECTS) libntlmconnect_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) |
︙ | ︙ | |||
1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 | ../../lib/$(DEPDIR)/lib1591-warnless.Po \ ../../lib/$(DEPDIR)/lib1592-warnless.Po \ ../../lib/$(DEPDIR)/lib1596-warnless.Po \ ../../lib/$(DEPDIR)/lib1900-warnless.Po \ ../../lib/$(DEPDIR)/lib1905-warnless.Po \ ../../lib/$(DEPDIR)/lib1906-warnless.Po \ ../../lib/$(DEPDIR)/lib1907-warnless.Po \ ../../lib/$(DEPDIR)/lib2033-warnless.Po \ ../../lib/$(DEPDIR)/lib502-warnless.Po \ ../../lib/$(DEPDIR)/lib503-warnless.Po \ ../../lib/$(DEPDIR)/lib504-warnless.Po \ ../../lib/$(DEPDIR)/lib507-warnless.Po \ ../../lib/$(DEPDIR)/lib518-warnless.Po \ ../../lib/$(DEPDIR)/lib525-warnless.Po \ | > | 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 | ../../lib/$(DEPDIR)/lib1591-warnless.Po \ ../../lib/$(DEPDIR)/lib1592-warnless.Po \ ../../lib/$(DEPDIR)/lib1596-warnless.Po \ ../../lib/$(DEPDIR)/lib1900-warnless.Po \ ../../lib/$(DEPDIR)/lib1905-warnless.Po \ ../../lib/$(DEPDIR)/lib1906-warnless.Po \ ../../lib/$(DEPDIR)/lib1907-warnless.Po \ ../../lib/$(DEPDIR)/lib1908-warnless.Po \ ../../lib/$(DEPDIR)/lib2033-warnless.Po \ ../../lib/$(DEPDIR)/lib502-warnless.Po \ ../../lib/$(DEPDIR)/lib503-warnless.Po \ ../../lib/$(DEPDIR)/lib504-warnless.Po \ ../../lib/$(DEPDIR)/lib507-warnless.Po \ ../../lib/$(DEPDIR)/lib518-warnless.Po \ ../../lib/$(DEPDIR)/lib525-warnless.Po \ |
︙ | ︙ | |||
1310 1311 1312 1313 1314 1315 1316 | ./$(DEPDIR)/lib1596-lib1594.Po ./$(DEPDIR)/lib1596-testutil.Po \ ./$(DEPDIR)/lib1900-first.Po ./$(DEPDIR)/lib1900-lib1900.Po \ ./$(DEPDIR)/lib1900-testutil.Po ./$(DEPDIR)/lib1905-first.Po \ ./$(DEPDIR)/lib1905-lib1905.Po ./$(DEPDIR)/lib1905-testutil.Po \ ./$(DEPDIR)/lib1906-first.Po ./$(DEPDIR)/lib1906-lib1906.Po \ ./$(DEPDIR)/lib1906-testutil.Po ./$(DEPDIR)/lib1907-first.Po \ ./$(DEPDIR)/lib1907-lib1907.Po ./$(DEPDIR)/lib1907-testutil.Po \ | | > | 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 | ./$(DEPDIR)/lib1596-lib1594.Po ./$(DEPDIR)/lib1596-testutil.Po \ ./$(DEPDIR)/lib1900-first.Po ./$(DEPDIR)/lib1900-lib1900.Po \ ./$(DEPDIR)/lib1900-testutil.Po ./$(DEPDIR)/lib1905-first.Po \ ./$(DEPDIR)/lib1905-lib1905.Po ./$(DEPDIR)/lib1905-testutil.Po \ ./$(DEPDIR)/lib1906-first.Po ./$(DEPDIR)/lib1906-lib1906.Po \ ./$(DEPDIR)/lib1906-testutil.Po ./$(DEPDIR)/lib1907-first.Po \ ./$(DEPDIR)/lib1907-lib1907.Po ./$(DEPDIR)/lib1907-testutil.Po \ ./$(DEPDIR)/lib1908-first.Po ./$(DEPDIR)/lib1908-lib1908.Po \ ./$(DEPDIR)/lib1908-testutil.Po ./$(DEPDIR)/lib2033-first.Po \ ./$(DEPDIR)/lib2033-libntlmconnect.Po \ ./$(DEPDIR)/lib2033-testutil.Po ./$(DEPDIR)/lib500-first.Po \ ./$(DEPDIR)/lib500-lib500.Po ./$(DEPDIR)/lib500-testtrace.Po \ ./$(DEPDIR)/lib500-testutil.Po ./$(DEPDIR)/lib501-first.Po \ ./$(DEPDIR)/lib501-lib501.Po ./$(DEPDIR)/lib502-first.Po \ ./$(DEPDIR)/lib502-lib502.Po ./$(DEPDIR)/lib502-testutil.Po \ ./$(DEPDIR)/lib503-first.Po ./$(DEPDIR)/lib503-lib503.Po \ |
︙ | ︙ | |||
1466 1467 1468 1469 1470 1471 1472 | $(lib1551_SOURCES) $(lib1552_SOURCES) $(lib1553_SOURCES) \ $(lib1554_SOURCES) $(lib1555_SOURCES) $(lib1556_SOURCES) \ $(lib1557_SOURCES) $(lib1558_SOURCES) $(lib1559_SOURCES) \ $(lib1560_SOURCES) $(lib1564_SOURCES) $(lib1565_SOURCES) \ $(lib1591_SOURCES) $(lib1592_SOURCES) $(lib1593_SOURCES) \ $(lib1594_SOURCES) $(lib1596_SOURCES) $(lib1900_SOURCES) \ $(lib1905_SOURCES) $(lib1906_SOURCES) $(lib1907_SOURCES) \ | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 | $(lib1551_SOURCES) $(lib1552_SOURCES) $(lib1553_SOURCES) \ $(lib1554_SOURCES) $(lib1555_SOURCES) $(lib1556_SOURCES) \ $(lib1557_SOURCES) $(lib1558_SOURCES) $(lib1559_SOURCES) \ $(lib1560_SOURCES) $(lib1564_SOURCES) $(lib1565_SOURCES) \ $(lib1591_SOURCES) $(lib1592_SOURCES) $(lib1593_SOURCES) \ $(lib1594_SOURCES) $(lib1596_SOURCES) $(lib1900_SOURCES) \ $(lib1905_SOURCES) $(lib1906_SOURCES) $(lib1907_SOURCES) \ $(lib1908_SOURCES) $(lib2033_SOURCES) $(lib500_SOURCES) \ $(lib501_SOURCES) $(lib502_SOURCES) $(lib503_SOURCES) \ $(lib504_SOURCES) $(lib505_SOURCES) $(lib506_SOURCES) \ $(lib507_SOURCES) $(lib508_SOURCES) $(lib509_SOURCES) \ $(lib510_SOURCES) $(lib511_SOURCES) $(lib512_SOURCES) \ $(lib513_SOURCES) $(lib514_SOURCES) $(lib515_SOURCES) \ $(lib516_SOURCES) $(lib517_SOURCES) $(lib518_SOURCES) \ $(lib519_SOURCES) $(lib520_SOURCES) $(lib521_SOURCES) \ |
︙ | ︙ | |||
1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 | $(lib590_SOURCES) $(lib591_SOURCES) $(lib597_SOURCES) \ $(lib598_SOURCES) $(lib599_SOURCES) $(lib643_SOURCES) \ $(lib644_SOURCES) $(lib645_SOURCES) $(lib650_SOURCES) \ $(lib651_SOURCES) $(lib652_SOURCES) $(lib653_SOURCES) \ $(lib654_SOURCES) $(lib655_SOURCES) $(lib658_SOURCES) \ $(lib659_SOURCES) $(lib661_SOURCES) $(libauthretry_SOURCES) \ $(libntlmconnect_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1507 1508 1509 1510 1511 1512 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 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 | $(lib590_SOURCES) $(lib591_SOURCES) $(lib597_SOURCES) \ $(lib598_SOURCES) $(lib599_SOURCES) $(lib643_SOURCES) \ $(lib644_SOURCES) $(lib645_SOURCES) $(lib650_SOURCES) \ $(lib651_SOURCES) $(lib652_SOURCES) $(lib653_SOURCES) \ $(lib654_SOURCES) $(lib655_SOURCES) $(lib658_SOURCES) \ $(lib659_SOURCES) $(lib661_SOURCES) $(libauthretry_SOURCES) \ $(libntlmconnect_SOURCES) DIST_SOURCES = $(libhostname_la_SOURCES) \ $(am__libstubgss_la_SOURCES_DIST) $(chkdecimalpoint_SOURCES) \ $(chkhostname_SOURCES) $(lib1156_SOURCES) $(lib1500_SOURCES) \ $(lib1501_SOURCES) $(lib1502_SOURCES) $(lib1503_SOURCES) \ $(lib1504_SOURCES) $(lib1505_SOURCES) $(lib1506_SOURCES) \ $(lib1507_SOURCES) $(lib1508_SOURCES) $(lib1509_SOURCES) \ $(lib1510_SOURCES) $(lib1511_SOURCES) $(lib1512_SOURCES) \ $(lib1513_SOURCES) $(lib1514_SOURCES) $(lib1515_SOURCES) \ $(lib1517_SOURCES) $(lib1518_SOURCES) $(lib1520_SOURCES) \ $(lib1522_SOURCES) $(lib1523_SOURCES) $(lib1525_SOURCES) \ $(lib1526_SOURCES) $(lib1527_SOURCES) $(lib1528_SOURCES) \ $(lib1529_SOURCES) $(lib1530_SOURCES) $(lib1531_SOURCES) \ $(lib1532_SOURCES) $(lib1533_SOURCES) $(lib1534_SOURCES) \ $(lib1535_SOURCES) $(lib1536_SOURCES) $(lib1537_SOURCES) \ $(lib1538_SOURCES) $(lib1540_SOURCES) $(lib1541_SOURCES) \ $(lib1550_SOURCES) $(lib1551_SOURCES) $(lib1552_SOURCES) \ $(lib1553_SOURCES) $(lib1554_SOURCES) $(lib1555_SOURCES) \ $(lib1556_SOURCES) $(lib1557_SOURCES) $(lib1558_SOURCES) \ $(lib1559_SOURCES) $(lib1560_SOURCES) $(lib1564_SOURCES) \ $(lib1565_SOURCES) $(lib1591_SOURCES) $(lib1592_SOURCES) \ $(lib1593_SOURCES) $(lib1594_SOURCES) $(lib1596_SOURCES) \ $(lib1900_SOURCES) $(lib1905_SOURCES) $(lib1906_SOURCES) \ $(lib1907_SOURCES) $(lib1908_SOURCES) $(lib2033_SOURCES) \ $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \ $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \ $(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \ $(lib509_SOURCES) $(lib510_SOURCES) $(lib511_SOURCES) \ $(lib512_SOURCES) $(lib513_SOURCES) $(lib514_SOURCES) \ $(lib515_SOURCES) $(lib516_SOURCES) $(lib517_SOURCES) \ $(lib518_SOURCES) $(lib519_SOURCES) $(lib520_SOURCES) \ $(lib521_SOURCES) $(lib523_SOURCES) $(lib524_SOURCES) \ $(lib525_SOURCES) $(lib526_SOURCES) $(lib527_SOURCES) \ $(lib529_SOURCES) $(lib530_SOURCES) $(lib532_SOURCES) \ $(lib533_SOURCES) $(lib537_SOURCES) $(lib539_SOURCES) \ $(lib540_SOURCES) $(lib541_SOURCES) $(lib542_SOURCES) \ $(lib543_SOURCES) $(lib544_SOURCES) $(lib545_SOURCES) \ $(lib547_SOURCES) $(lib548_SOURCES) $(lib549_SOURCES) \ $(lib552_SOURCES) $(lib553_SOURCES) $(lib554_SOURCES) \ $(lib555_SOURCES) $(lib556_SOURCES) $(lib557_SOURCES) \ $(lib558_SOURCES) $(lib559_SOURCES) $(lib560_SOURCES) \ $(lib562_SOURCES) $(lib564_SOURCES) $(lib565_SOURCES) \ $(lib566_SOURCES) $(lib567_SOURCES) $(lib568_SOURCES) \ $(lib569_SOURCES) $(lib570_SOURCES) $(lib571_SOURCES) \ $(lib572_SOURCES) $(lib573_SOURCES) $(lib574_SOURCES) \ $(lib575_SOURCES) $(lib576_SOURCES) $(lib578_SOURCES) \ $(lib579_SOURCES) $(lib582_SOURCES) $(lib583_SOURCES) \ $(lib585_SOURCES) $(lib586_SOURCES) $(lib587_SOURCES) \ $(lib589_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \ $(lib597_SOURCES) $(lib598_SOURCES) $(lib599_SOURCES) \ $(lib643_SOURCES) $(lib644_SOURCES) $(lib645_SOURCES) \ $(lib650_SOURCES) $(lib651_SOURCES) $(lib652_SOURCES) \ $(lib653_SOURCES) $(lib654_SOURCES) $(lib655_SOURCES) \ $(lib658_SOURCES) $(lib659_SOURCES) $(lib661_SOURCES) \ $(libauthretry_SOURCES) $(libntlmconnect_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, |
︙ | ︙ | |||
1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 | lib1905_CPPFLAGS = $(AM_CPPFLAGS) lib1906_SOURCES = lib1906.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1906_LDADD = $(TESTUTIL_LIBS) lib1906_CPPFLAGS = $(AM_CPPFLAGS) lib1907_SOURCES = lib1907.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1907_LDADD = $(TESTUTIL_LIBS) lib1907_CPPFLAGS = $(AM_CPPFLAGS) lib2033_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib2033_LDADD = $(TESTUTIL_LIBS) lib2033_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PIPELINING @BUILD_LIBHOSTNAME_FALSE@noinst_LTLIBRARIES = $(am__append_6) # Makefile.inc provides the source defines (TESTUTIL, SUPPORTFILES, # noinst_PROGRAMS, lib*_SOURCES, and lib*_CFLAGS) | > > > | 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 | lib1905_CPPFLAGS = $(AM_CPPFLAGS) lib1906_SOURCES = lib1906.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1906_LDADD = $(TESTUTIL_LIBS) lib1906_CPPFLAGS = $(AM_CPPFLAGS) lib1907_SOURCES = lib1907.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1907_LDADD = $(TESTUTIL_LIBS) lib1907_CPPFLAGS = $(AM_CPPFLAGS) lib1908_SOURCES = lib1908.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1908_LDADD = $(TESTUTIL_LIBS) lib1908_CPPFLAGS = $(AM_CPPFLAGS) lib2033_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib2033_LDADD = $(TESTUTIL_LIBS) lib2033_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PIPELINING @BUILD_LIBHOSTNAME_FALSE@noinst_LTLIBRARIES = $(am__append_6) # Makefile.inc provides the source defines (TESTUTIL, SUPPORTFILES, # noinst_PROGRAMS, lib*_SOURCES, and lib*_CFLAGS) |
︙ | ︙ | |||
2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 | $(AM_V_CCLD)$(LINK) $(lib1906_OBJECTS) $(lib1906_LDADD) $(LIBS) ../../lib/lib1907-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \ ../../lib/$(DEPDIR)/$(am__dirstamp) lib1907$(EXEEXT): $(lib1907_OBJECTS) $(lib1907_DEPENDENCIES) $(EXTRA_lib1907_DEPENDENCIES) @rm -f lib1907$(EXEEXT) $(AM_V_CCLD)$(LINK) $(lib1907_OBJECTS) $(lib1907_LDADD) $(LIBS) ../../lib/lib2033-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \ ../../lib/$(DEPDIR)/$(am__dirstamp) lib2033$(EXEEXT): $(lib2033_OBJECTS) $(lib2033_DEPENDENCIES) $(EXTRA_lib2033_DEPENDENCIES) @rm -f lib2033$(EXEEXT) $(AM_V_CCLD)$(LINK) $(lib2033_OBJECTS) $(lib2033_LDADD) $(LIBS) | > > > > > > | 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 | $(AM_V_CCLD)$(LINK) $(lib1906_OBJECTS) $(lib1906_LDADD) $(LIBS) ../../lib/lib1907-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \ ../../lib/$(DEPDIR)/$(am__dirstamp) lib1907$(EXEEXT): $(lib1907_OBJECTS) $(lib1907_DEPENDENCIES) $(EXTRA_lib1907_DEPENDENCIES) @rm -f lib1907$(EXEEXT) $(AM_V_CCLD)$(LINK) $(lib1907_OBJECTS) $(lib1907_LDADD) $(LIBS) ../../lib/lib1908-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \ ../../lib/$(DEPDIR)/$(am__dirstamp) lib1908$(EXEEXT): $(lib1908_OBJECTS) $(lib1908_DEPENDENCIES) $(EXTRA_lib1908_DEPENDENCIES) @rm -f lib1908$(EXEEXT) $(AM_V_CCLD)$(LINK) $(lib1908_OBJECTS) $(lib1908_LDADD) $(LIBS) ../../lib/lib2033-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \ ../../lib/$(DEPDIR)/$(am__dirstamp) lib2033$(EXEEXT): $(lib2033_OBJECTS) $(lib2033_DEPENDENCIES) $(EXTRA_lib2033_DEPENDENCIES) @rm -f lib2033$(EXEEXT) $(AM_V_CCLD)$(LINK) $(lib2033_OBJECTS) $(lib2033_LDADD) $(LIBS) |
︙ | ︙ | |||
3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 | @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1591-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1592-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1596-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1900-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1905-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1906-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1907-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib2033-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib502-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib503-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib504-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib507-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib518-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib525-warnless.Po@am__quote@ # am--include-marker | > | 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 | @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1591-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1592-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1596-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1900-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1905-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1906-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1907-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1908-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib2033-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib502-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib503-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib504-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib507-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib518-warnless.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib525-warnless.Po@am__quote@ # am--include-marker |
︙ | ︙ | |||
3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1905-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-lib1906.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-lib1907.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-libntlmconnect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-lib500.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-testtrace.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-testutil.Po@am__quote@ # am--include-marker | > > > | 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1905-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-lib1906.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1906-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-lib1907.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1907-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1908-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1908-lib1908.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1908-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-libntlmconnect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2033-testutil.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-lib500.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-testtrace.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-testutil.Po@am__quote@ # am--include-marker |
︙ | ︙ | |||
6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 | ../../lib/lib1907-warnless.obj: ../../lib/warnless.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1907_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1907-warnless.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib1907-warnless.Tpo -c -o ../../lib/lib1907-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1907-warnless.Tpo ../../lib/$(DEPDIR)/lib1907-warnless.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1907-warnless.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1907_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1907-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` lib2033-libntlmconnect.o: libntlmconnect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib2033_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib2033-libntlmconnect.o -MD -MP -MF $(DEPDIR)/lib2033-libntlmconnect.Tpo -c -o lib2033-libntlmconnect.o `test -f 'libntlmconnect.c' || echo '$(srcdir)/'`libntlmconnect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib2033-libntlmconnect.Tpo $(DEPDIR)/lib2033-libntlmconnect.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libntlmconnect.c' object='lib2033-libntlmconnect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib2033_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib2033-libntlmconnect.o `test -f 'libntlmconnect.c' || echo '$(srcdir)/'`libntlmconnect.c | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 | ../../lib/lib1907-warnless.obj: ../../lib/warnless.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1907_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1907-warnless.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib1907-warnless.Tpo -c -o ../../lib/lib1907-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1907-warnless.Tpo ../../lib/$(DEPDIR)/lib1907-warnless.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1907-warnless.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1907_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1907-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` lib1908-lib1908.o: lib1908.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-lib1908.o -MD -MP -MF $(DEPDIR)/lib1908-lib1908.Tpo -c -o lib1908-lib1908.o `test -f 'lib1908.c' || echo '$(srcdir)/'`lib1908.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-lib1908.Tpo $(DEPDIR)/lib1908-lib1908.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1908.c' object='lib1908-lib1908.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-lib1908.o `test -f 'lib1908.c' || echo '$(srcdir)/'`lib1908.c lib1908-lib1908.obj: lib1908.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-lib1908.obj -MD -MP -MF $(DEPDIR)/lib1908-lib1908.Tpo -c -o lib1908-lib1908.obj `if test -f 'lib1908.c'; then $(CYGPATH_W) 'lib1908.c'; else $(CYGPATH_W) '$(srcdir)/lib1908.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-lib1908.Tpo $(DEPDIR)/lib1908-lib1908.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1908.c' object='lib1908-lib1908.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-lib1908.obj `if test -f 'lib1908.c'; then $(CYGPATH_W) 'lib1908.c'; else $(CYGPATH_W) '$(srcdir)/lib1908.c'; fi` lib1908-first.o: first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-first.o -MD -MP -MF $(DEPDIR)/lib1908-first.Tpo -c -o lib1908-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-first.Tpo $(DEPDIR)/lib1908-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1908-first.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c lib1908-first.obj: first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-first.obj -MD -MP -MF $(DEPDIR)/lib1908-first.Tpo -c -o lib1908-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-first.Tpo $(DEPDIR)/lib1908-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1908-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` lib1908-testutil.o: testutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-testutil.o -MD -MP -MF $(DEPDIR)/lib1908-testutil.Tpo -c -o lib1908-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-testutil.Tpo $(DEPDIR)/lib1908-testutil.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1908-testutil.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c lib1908-testutil.obj: testutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1908-testutil.obj -MD -MP -MF $(DEPDIR)/lib1908-testutil.Tpo -c -o lib1908-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1908-testutil.Tpo $(DEPDIR)/lib1908-testutil.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1908-testutil.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1908-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` ../../lib/lib1908-warnless.o: ../../lib/warnless.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1908-warnless.o -MD -MP -MF ../../lib/$(DEPDIR)/lib1908-warnless.Tpo -c -o ../../lib/lib1908-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1908-warnless.Tpo ../../lib/$(DEPDIR)/lib1908-warnless.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1908-warnless.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1908-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c ../../lib/lib1908-warnless.obj: ../../lib/warnless.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1908-warnless.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib1908-warnless.Tpo -c -o ../../lib/lib1908-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1908-warnless.Tpo ../../lib/$(DEPDIR)/lib1908-warnless.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1908-warnless.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1908_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1908-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi` lib2033-libntlmconnect.o: libntlmconnect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib2033_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib2033-libntlmconnect.o -MD -MP -MF $(DEPDIR)/lib2033-libntlmconnect.Tpo -c -o lib2033-libntlmconnect.o `test -f 'libntlmconnect.c' || echo '$(srcdir)/'`libntlmconnect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib2033-libntlmconnect.Tpo $(DEPDIR)/lib2033-libntlmconnect.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libntlmconnect.c' object='lib2033-libntlmconnect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib2033_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib2033-libntlmconnect.o `test -f 'libntlmconnect.c' || echo '$(srcdir)/'`libntlmconnect.c |
︙ | ︙ | |||
10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 | -rm -f ../../lib/$(DEPDIR)/lib1591-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1592-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1596-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1900-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1905-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1906-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1907-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib2033-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib502-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib503-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib504-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib507-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib518-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib525-warnless.Po | > | 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 | -rm -f ../../lib/$(DEPDIR)/lib1591-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1592-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1596-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1900-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1905-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1906-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1907-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1908-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib2033-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib502-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib503-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib504-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib507-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib518-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib525-warnless.Po |
︙ | ︙ | |||
10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 | -rm -f ./$(DEPDIR)/lib1905-testutil.Po -rm -f ./$(DEPDIR)/lib1906-first.Po -rm -f ./$(DEPDIR)/lib1906-lib1906.Po -rm -f ./$(DEPDIR)/lib1906-testutil.Po -rm -f ./$(DEPDIR)/lib1907-first.Po -rm -f ./$(DEPDIR)/lib1907-lib1907.Po -rm -f ./$(DEPDIR)/lib1907-testutil.Po -rm -f ./$(DEPDIR)/lib2033-first.Po -rm -f ./$(DEPDIR)/lib2033-libntlmconnect.Po -rm -f ./$(DEPDIR)/lib2033-testutil.Po -rm -f ./$(DEPDIR)/lib500-first.Po -rm -f ./$(DEPDIR)/lib500-lib500.Po -rm -f ./$(DEPDIR)/lib500-testtrace.Po -rm -f ./$(DEPDIR)/lib500-testutil.Po | > > > | 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 | -rm -f ./$(DEPDIR)/lib1905-testutil.Po -rm -f ./$(DEPDIR)/lib1906-first.Po -rm -f ./$(DEPDIR)/lib1906-lib1906.Po -rm -f ./$(DEPDIR)/lib1906-testutil.Po -rm -f ./$(DEPDIR)/lib1907-first.Po -rm -f ./$(DEPDIR)/lib1907-lib1907.Po -rm -f ./$(DEPDIR)/lib1907-testutil.Po -rm -f ./$(DEPDIR)/lib1908-first.Po -rm -f ./$(DEPDIR)/lib1908-lib1908.Po -rm -f ./$(DEPDIR)/lib1908-testutil.Po -rm -f ./$(DEPDIR)/lib2033-first.Po -rm -f ./$(DEPDIR)/lib2033-libntlmconnect.Po -rm -f ./$(DEPDIR)/lib2033-testutil.Po -rm -f ./$(DEPDIR)/lib500-first.Po -rm -f ./$(DEPDIR)/lib500-lib500.Po -rm -f ./$(DEPDIR)/lib500-testtrace.Po -rm -f ./$(DEPDIR)/lib500-testutil.Po |
︙ | ︙ | |||
10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 | -rm -f ../../lib/$(DEPDIR)/lib1591-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1592-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1596-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1900-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1905-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1906-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1907-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib2033-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib502-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib503-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib504-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib507-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib518-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib525-warnless.Po | > | 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 | -rm -f ../../lib/$(DEPDIR)/lib1591-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1592-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1596-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1900-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1905-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1906-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1907-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib1908-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib2033-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib502-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib503-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib504-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib507-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib518-warnless.Po -rm -f ../../lib/$(DEPDIR)/lib525-warnless.Po |
︙ | ︙ | |||
10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 | -rm -f ./$(DEPDIR)/lib1905-testutil.Po -rm -f ./$(DEPDIR)/lib1906-first.Po -rm -f ./$(DEPDIR)/lib1906-lib1906.Po -rm -f ./$(DEPDIR)/lib1906-testutil.Po -rm -f ./$(DEPDIR)/lib1907-first.Po -rm -f ./$(DEPDIR)/lib1907-lib1907.Po -rm -f ./$(DEPDIR)/lib1907-testutil.Po -rm -f ./$(DEPDIR)/lib2033-first.Po -rm -f ./$(DEPDIR)/lib2033-libntlmconnect.Po -rm -f ./$(DEPDIR)/lib2033-testutil.Po -rm -f ./$(DEPDIR)/lib500-first.Po -rm -f ./$(DEPDIR)/lib500-lib500.Po -rm -f ./$(DEPDIR)/lib500-testtrace.Po -rm -f ./$(DEPDIR)/lib500-testutil.Po | > > > | 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 | -rm -f ./$(DEPDIR)/lib1905-testutil.Po -rm -f ./$(DEPDIR)/lib1906-first.Po -rm -f ./$(DEPDIR)/lib1906-lib1906.Po -rm -f ./$(DEPDIR)/lib1906-testutil.Po -rm -f ./$(DEPDIR)/lib1907-first.Po -rm -f ./$(DEPDIR)/lib1907-lib1907.Po -rm -f ./$(DEPDIR)/lib1907-testutil.Po -rm -f ./$(DEPDIR)/lib1908-first.Po -rm -f ./$(DEPDIR)/lib1908-lib1908.Po -rm -f ./$(DEPDIR)/lib1908-testutil.Po -rm -f ./$(DEPDIR)/lib2033-first.Po -rm -f ./$(DEPDIR)/lib2033-libntlmconnect.Po -rm -f ./$(DEPDIR)/lib2033-testutil.Po -rm -f ./$(DEPDIR)/lib500-first.Po -rm -f ./$(DEPDIR)/lib500-lib500.Po -rm -f ./$(DEPDIR)/lib500-testtrace.Po -rm -f ./$(DEPDIR)/lib500-testutil.Po |
︙ | ︙ |
Changes to jni/curl/tests/libtest/Makefile.inc.
︙ | ︙ | |||
29 30 31 32 33 34 35 | lib1518 lib1520 lib1521 lib1522 lib1523 \ lib1525 lib1526 lib1527 lib1528 lib1529 lib1530 lib1531 lib1532 lib1533 \ lib1534 lib1535 lib1536 lib1537 lib1538 \ lib1540 lib1541 \ lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \ lib1558 lib1559 lib1560 lib1564 lib1565 \ lib1591 lib1592 lib1593 lib1594 lib1596 \ | | | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | lib1518 lib1520 lib1521 lib1522 lib1523 \ lib1525 lib1526 lib1527 lib1528 lib1529 lib1530 lib1531 lib1532 lib1533 \ lib1534 lib1535 lib1536 lib1537 lib1538 \ lib1540 lib1541 \ lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \ lib1558 lib1559 lib1560 lib1564 lib1565 \ lib1591 lib1592 lib1593 lib1594 lib1596 \ lib1900 lib1905 lib1906 lib1907 lib1908 \ lib2033 chkdecimalpoint_SOURCES = chkdecimalpoint.c ../../lib/mprintf.c \ ../../lib/curl_ctype.c chkdecimalpoint_LDADD = chkdecimalpoint_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_STATICLIB \ -DCURLX_NO_MEMORY_CALLBACKS |
︙ | ︙ | |||
573 574 575 576 577 578 579 580 581 582 583 | lib1906_SOURCES = lib1906.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1906_LDADD = $(TESTUTIL_LIBS) lib1906_CPPFLAGS = $(AM_CPPFLAGS) lib1907_SOURCES = lib1907.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1907_LDADD = $(TESTUTIL_LIBS) lib1907_CPPFLAGS = $(AM_CPPFLAGS) lib2033_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib2033_LDADD = $(TESTUTIL_LIBS) lib2033_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PIPELINING | > > > > | 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 | lib1906_SOURCES = lib1906.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1906_LDADD = $(TESTUTIL_LIBS) lib1906_CPPFLAGS = $(AM_CPPFLAGS) lib1907_SOURCES = lib1907.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1907_LDADD = $(TESTUTIL_LIBS) lib1907_CPPFLAGS = $(AM_CPPFLAGS) lib1908_SOURCES = lib1908.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib1908_LDADD = $(TESTUTIL_LIBS) lib1908_CPPFLAGS = $(AM_CPPFLAGS) lib2033_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib2033_LDADD = $(TESTUTIL_LIBS) lib2033_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PIPELINING |
Changes to jni/curl/tests/libtest/lib1560.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
125 126 127 128 129 130 131 132 133 134 135 136 137 138 | const char *out; unsigned int urlflags; /* pass to curl_url() */ unsigned int qflags; /* pass to curl_url_get() */ CURLUcode ucode; }; static struct testcase get_parts_list[] ={ #ifdef WIN32 {"file:/C:\\programs\\foo", "file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, {"file://C:\\programs\\foo", "file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, | > > > > > > > > | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | const char *out; unsigned int urlflags; /* pass to curl_url() */ unsigned int qflags; /* pass to curl_url_get() */ CURLUcode ucode; }; static struct testcase get_parts_list[] ={ {"user:moo@ftp.example.com/color/#green?no-black", "ftp | user | moo | [13] | ftp.example.com | [15] | /color/ | [16] | " "green?no-black", CURLU_GUESS_SCHEME, 0, CURLUE_OK }, {"ftp.user:moo@example.com/color/#green?no-black", "http | ftp.user | moo | [13] | example.com | [15] | /color/ | [16] | " "green?no-black", CURLU_GUESS_SCHEME, 0, CURLUE_OK }, #ifdef WIN32 {"file:/C:\\programs\\foo", "file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, {"file://C:\\programs\\foo", "file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]", CURLU_DEFAULT_SCHEME, 0, CURLUE_OK}, |
︙ | ︙ |
Added jni/curl/tests/libtest/lib1908.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2013 - 2020, Linus Nielsen Feltzing, <linus@haxx.se> * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "test.h" #include "testutil.h" #include "warnless.h" #include "memdebug.h" int test(char *URL) { CURLcode ret = CURLE_OK; CURL *hnd; start_test_timing(); curl_global_init(CURL_GLOBAL_ALL); hnd = curl_easy_init(); if(hnd) { curl_easy_setopt(hnd, CURLOPT_URL, URL); curl_easy_setopt(hnd, CURLOPT_NOPROGRESS, 1L); curl_easy_setopt(hnd, CURLOPT_ALTSVC, "log/altsvc-1908"); ret = curl_easy_perform(hnd); curl_easy_reset(hnd); curl_easy_cleanup(hnd); } curl_global_cleanup(); return (int)ret; } |
Changes to jni/curl/tests/libtest/mk-lib1521.pl.
1 2 3 4 5 6 7 8 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2017 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
169 170 171 172 173 174 175 | goto test_cleanup; } HEADER ; while(<STDIN>) { | | | | | | | | | | | | | | | | | | | > | | | | | 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 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 | goto test_cleanup; } HEADER ; while(<STDIN>) { if($_ =~ /^ CURLOPT\(([^ ]*), ([^ ]*), (\d*)\)/) { my ($name, $type, $val)=($1, $2, $3); my $w=" "; my $pref = "${w}res = curl_easy_setopt(curl, $name,"; my $i = ' ' x (length($w) + 23); my $check = " if(UNEX(res)) {\n err(\"$name\", res, __LINE__);\n goto test_cleanup;\n }\n"; if($type eq "CURLOPTTYPE_STRINGPOINT") { print "${pref} \"string\");\n$check"; print "${pref} NULL);\n$check"; } elsif($type eq "CURLOPTTYPE_LONG") { print "${pref} 0L);\n$check"; print "${pref} 22L);\n$check"; print "${pref} LO);\n$check"; print "${pref} HI);\n$check"; } elsif($type eq "CURLOPTTYPE_OBJECTPOINT") { if($name =~ /DEPENDS/) { print "${pref} dep);\n$check"; } elsif($name =~ "SHARE") { print "${pref} share);\n$check"; } elsif($name eq "CURLOPT_ERRORBUFFER") { print "${pref} errorbuffer);\n$check"; } elsif(($name eq "CURLOPT_POSTFIELDS") || ($name eq "CURLOPT_COPYPOSTFIELDS")) { # set size to zero to avoid it being "illegal" print " (void)curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 0);\n"; print "${pref} stringpointerextra);\n$check"; } elsif($name eq "CURLOPT_HTTPPOST") { print "${pref} httppost);\n$check"; } elsif($name eq "CURLOPT_MIMEPOST") { print "${pref} mimepost);\n$check"; } elsif($name eq "CURLOPT_STDERR") { print "${pref} stream);\n$check"; } else { print "${pref} &object);\n$check"; } print "${pref} NULL);\n$check"; } elsif($type eq "CURLOPTTYPE_SLISTPOINT") { print "${pref} slist);\n$check"; } elsif($type eq "CURLOPTTYPE_FUNCTIONPOINT") { if($name =~ /([^ ]*)FUNCTION/) { my $l=lc($1); $l =~ s/^curlopt_//; print "${pref}\n$i${l}cb);\n$check"; } else { print "${pref} &func);\n$check"; } print "${pref} NULL);\n$check"; } elsif($type eq "CURLOPTTYPE_OFF_T") { # play conservative to work with 32bit curl_off_t print "${pref} OFF_NO);\n$check"; print "${pref} OFF_HI);\n$check"; print "${pref} OFF_LO);\n$check"; } else { print STDERR "\n---- $type\n"; } } elsif($_ =~ /^ CURLINFO_NONE/) { $infomode = 1; } elsif($infomode && ($_ =~ /^ CURLINFO_([^ ]*) *= *CURLINFO_([^ ]*)/)) { my ($info, $type)=($1, $2); my $c = " res = curl_easy_getinfo(curl, CURLINFO_$info,"; my $check = " if(UNEX(res)) {\n geterr(\"$info\", res, __LINE__);\n goto test_cleanup;\n }\n"; if($type eq "STRING") { print "$c &charp);\n$check"; } elsif($type eq "LONG") { print "$c &val);\n$check"; } elsif($type eq "OFF_T") { |
︙ | ︙ |
jni/curl/tests/manpage-scan.pl became executable.
︙ | ︙ |
Changes to jni/curl/tests/python_dependencies/impacket/smbserver.py.
︙ | ︙ | |||
22 23 24 25 26 27 28 | from __future__ import with_statement import calendar import socket import time import datetime import struct | > > > | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | from __future__ import with_statement import calendar import socket import time import datetime import struct try: # Python 3 import configparser except ImportError: # Python 2 import ConfigParser as configparser import SocketServer import threading import logging import logging.config import ntpath import os import fnmatch |
︙ | ︙ | |||
4126 4127 4128 4129 4130 4131 4132 | return packetsToSend def processConfigFile(self, configFile = None): # TODO: Do a real config parser if self.__serverConfig is None: if configFile is None: configFile = 'smb.conf' | | | 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 | return packetsToSend def processConfigFile(self, configFile = None): # TODO: Do a real config parser if self.__serverConfig is None: if configFile is None: configFile = 'smb.conf' self.__serverConfig = configparser.ConfigParser() self.__serverConfig.read(configFile) self.__serverName = self.__serverConfig.get('global','server_name') self.__serverOS = self.__serverConfig.get('global','server_os') self.__serverDomain = self.__serverConfig.get('global','server_domain') self.__logFile = self.__serverConfig.get('global','log_file') if self.__serverConfig.has_option('global', 'challenge'): |
︙ | ︙ |
Changes to jni/curl/tests/runtests.1.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH runtests.pl 1 "December 18, 2019" "Curl 7.69.0" "runtests" .SH NAME runtests.pl \- run one or more test cases .SH SYNOPSIS .B runtests.pl [options] [test number] [!test number] [key word] [!key word] .SH DESCRIPTION \fIruntests.pl\fP runs one, several or all the existing test cases in curl's |
︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | .IP "-p" Prints out all files in "log/" to stdout when a test case fails. Very practical when used in the automated and distributed tests since then the people checking the failures and the reasons for them might not have physical access to the machine and logs. .IP "-R" Run the tests in a scrambled, or randomized, order instead of sequentially. .IP "-r" Display run time statistics. (Requires Perl Time::HiRes module) .IP "-rf" Display full run time statistics. (Requires Perl Time::HiRes module) .IP "--repeat=[num]" This will repeat the given set of test numbers this many times. If no test numbers are given, it will repeat ALL tests this many times. It iteratively adds the new sequence at the end of the initially given one. If \fB-R\fP is also used, the scrambling is done after the repeats have extended the test sequence. .IP "-s" Shorter output. Speaks less than default. | > > > > > > > > | | | > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | .IP "-p" Prints out all files in "log/" to stdout when a test case fails. Very practical when used in the automated and distributed tests since then the people checking the failures and the reasons for them might not have physical access to the machine and logs. .IP "-R" Run the tests in a scrambled, or randomized, order instead of sequentially. The random seed initially set for this is fixed per month and can be set with \fI--seed\fP. .IP "-r" Display run time statistics. (Requires Perl Time::HiRes module) .IP "-rf" Display full run time statistics. (Requires Perl Time::HiRes module) .IP "--repeat=[num]" This will repeat the given set of test numbers this many times. If no test numbers are given, it will repeat ALL tests this many times. It iteratively adds the new sequence at the end of the initially given one. If \fB-R\fP is also used, the scrambling is done after the repeats have extended the test sequence. .IP "-s" Shorter output. Speaks less than default. .IP "--seed=[num]" When using \fI--shallow\fP or \fI-R\rP that random certain aspects of the behavior, this option can set the initial seed. If not set, the random seed will be set based on the currently set local year and month and the first line of the "curl -V" output. .IP "--shallow=[num]" Used together with \fB-t\fP. This limits the number of tests to fail in torture mode to no more than 'num' per test case. If this reduces the amount, the script will randomly discard entries to fail until the amount is 'num'. The random seed initially set for this is fixed per month and can be set with \fI--seed\fP. .IP "-t[num]" Selects a \fBtorture\fP test for the given tests. This makes runtests.pl first run the tests once and count the number of memory allocations made. It then reruns the test that number of times, each time forcing one of the allocations to fail until all allocs have been tested. By setting \fInum\fP you can force the allocation with that number to be set to fail at once instead of looping through everyone, which is very handy when debugging and then often in |
︙ | ︙ |
Changes to jni/curl/tests/runtests.pl.
1 2 3 4 5 6 7 8 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 | import Time::HiRes qw( time ); } } use strict; use warnings; use Cwd; # Subs imported from serverhelp module use serverhelp qw( serverfactors servername_id servername_str servername_canon | > | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | import Time::HiRes qw( time ); } } use strict; use warnings; use Cwd; use Digest::MD5 qw(md5); # Subs imported from serverhelp module use serverhelp qw( serverfactors servername_id servername_str servername_canon |
︙ | ︙ | |||
106 107 108 109 110 111 112 113 114 115 116 117 118 119 | ); use pathhelp; require "getpart.pm"; # array functions require "valgrind.pm"; # valgrind report parser require "ftp.pm"; my $HOSTIP="127.0.0.1"; # address on which the test server listens my $HOST6IP="[::1]"; # address on which the test server listens my $CLIENTIP="127.0.0.1"; # address which curl uses for incoming connections my $CLIENT6IP="[::1]"; # address which curl uses for incoming connections my $base = 8990; # base port number | > > | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | ); use pathhelp; require "getpart.pm"; # array functions require "valgrind.pm"; # valgrind report parser require "ftp.pm"; require "azure.pm"; require "appveyor.pm"; my $HOSTIP="127.0.0.1"; # address on which the test server listens my $HOST6IP="[::1]"; # address on which the test server listens my $CLIENTIP="127.0.0.1"; # address which curl uses for incoming connections my $CLIENT6IP="[::1]"; # address which curl uses for incoming connections my $base = 8990; # base port number |
︙ | ︙ | |||
159 160 161 162 163 164 165 | my $TESTDIR="$srcdir/data"; my $LIBDIR="./libtest"; my $UNITDIR="./unit"; # TODO: change this to use server_inputfilename() my $SERVERIN="$LOGDIR/server.input"; # what curl sent the server my $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server my $PROXYIN="$LOGDIR/proxy.input"; # what curl sent the proxy | | | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | my $TESTDIR="$srcdir/data"; my $LIBDIR="./libtest"; my $UNITDIR="./unit"; # TODO: change this to use server_inputfilename() my $SERVERIN="$LOGDIR/server.input"; # what curl sent the server my $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server my $PROXYIN="$LOGDIR/proxy.input"; # what curl sent the proxy my $CURLLOG="commands.log"; # all command lines run my $FTPDCMD="$LOGDIR/ftpserver.cmd"; # copy ftp server instructions here my $SERVERLOGS_LOCK="$LOGDIR/serverlogs.lock"; # server logs advisor read lock my $CURLCONFIG="../curl-config"; # curl-config from current build # Normally, all test cases should be run, but at times it is handy to # simply run a particular one: my $TESTCASES="all"; |
︙ | ︙ | |||
237 238 239 240 241 242 243 244 245 246 247 248 249 250 | my $has_cares; # set if built with c-ares my $has_threadedres;# set if built with threaded resolver my $has_psl; # set if libcurl is built with PSL support my $has_altsvc; # set if libcurl is built with alt-svc support my $has_ldpreload; # set if curl is built for systems supporting LD_PRELOAD my $has_multissl; # set if curl is build with MultiSSL support my $has_manual; # set if curl is built with built-in manual # this version is decided by the particular nghttp2 library that is being used my $h2cver = "h2c"; my $has_openssl; # built with a lib using an OpenSSL-like API my $has_gnutls; # built with GnuTLS my $has_nss; # built with NSS | > | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | my $has_cares; # set if built with c-ares my $has_threadedres;# set if built with threaded resolver my $has_psl; # set if libcurl is built with PSL support my $has_altsvc; # set if libcurl is built with alt-svc support my $has_ldpreload; # set if curl is built for systems supporting LD_PRELOAD my $has_multissl; # set if curl is build with MultiSSL support my $has_manual; # set if curl is built with built-in manual my $has_win32; # set if curl is built for Windows # this version is decided by the particular nghttp2 library that is being used my $h2cver = "h2c"; my $has_openssl; # built with a lib using an OpenSSL-like API my $has_gnutls; # built with GnuTLS my $has_nss; # built with NSS |
︙ | ︙ | |||
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | my @protocols; # array of lowercase supported protocol servers my $skipped=0; # number of tests skipped; reported in main loop my %skipped; # skipped{reason}=counter, reasons for skip my @teststat; # teststat[testnum]=reason, reasons for skip my %disabled_keywords; # key words of tests to skip my %enabled_keywords; # key words of tests to run my %disabled; # disabled test cases my $sshdid; # for socks server, ssh daemon version id my $sshdvernum; # for socks server, ssh daemon version number my $sshdverstr; # for socks server, ssh daemon version string my $sshderror; # for socks server, ssh daemon version error my $defserverlogslocktimeout = 2; # timeout to await server logs lock removal | > > | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | my @protocols; # array of lowercase supported protocol servers my $skipped=0; # number of tests skipped; reported in main loop my %skipped; # skipped{reason}=counter, reasons for skip my @teststat; # teststat[testnum]=reason, reasons for skip my %disabled_keywords; # key words of tests to skip my %ignored_keywords; # key words of tests to ignore results my %enabled_keywords; # key words of tests to run my %disabled; # disabled test cases my %ignored; # ignored results of test cases my $sshdid; # for socks server, ssh daemon version id my $sshdvernum; # for socks server, ssh daemon version number my $sshdverstr; # for socks server, ssh daemon version string my $sshderror; # for socks server, ssh daemon version error my $defserverlogslocktimeout = 2; # timeout to await server logs lock removal |
︙ | ︙ | |||
291 292 293 294 295 296 297 | my %timetoolini; # timestamp for each test command run starting my %timetoolend; # timestamp for each test command run stopping my %timesrvrlog; # timestamp for each test server logs lock removal my %timevrfyend; # timestamp for each test result verification end my $testnumcheck; # test number, set in singletest sub. my %oldenv; | | > | 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | my %timetoolini; # timestamp for each test command run starting my %timetoolend; # timestamp for each test command run stopping my %timesrvrlog; # timestamp for each test server logs lock removal my %timevrfyend; # timestamp for each test result verification end my $testnumcheck; # test number, set in singletest sub. my %oldenv; my %feature; # array of enabled features my %keywords; # array of keywords from the test spec ####################################################################### # variables that command line options may set # my $short; my $automakestyle; |
︙ | ︙ | |||
319 320 321 322 323 324 325 | my %runcert; # cert file currently in use by an ssl running server # torture test variables my $torture; my $tortnum; my $tortalloc; my $shallow; | > | > > > | 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | my %runcert; # cert file currently in use by an ssl running server # torture test variables my $torture; my $tortnum; my $tortalloc; my $shallow; my $randseed = 0; # Azure Pipelines specific variables my $AZURE_RUN_ID = 0; my $AZURE_RESULT_ID = 0; ####################################################################### # logmsg is our general message logging subroutine. # sub logmsg { for(@_) { my $line = $_; |
︙ | ︙ | |||
2555 2556 2557 2558 2559 2560 2561 | my $count; my $file; # Get all files opendir(DIR, $dir) || return 0; # can't open dir while($file = readdir(DIR)) { | | | 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 | my $count; my $file; # Get all files opendir(DIR, $dir) || return 0; # can't open dir while($file = readdir(DIR)) { if(($file !~ /^\./)) { unlink("$dir/$file"); $count++; } } closedir DIR; return $count; } |
︙ | ︙ | |||
2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 | $feature{"Metalink"} = $has_metalink; $feature{"http/2"} = $has_http2; $feature{"threaded-resolver"} = $has_threadedres; $feature{"PSL"} = $has_psl; $feature{"alt-svc"} = $has_altsvc; $feature{"manual"} = $has_manual; $feature{"unix-sockets"} = $has_unix; # make each protocol an enabled "feature" for my $p (@protocols) { $feature{$p} = 1; } # 'socks' was once here but is now removed | > | 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 | $feature{"Metalink"} = $has_metalink; $feature{"http/2"} = $has_http2; $feature{"threaded-resolver"} = $has_threadedres; $feature{"PSL"} = $has_psl; $feature{"alt-svc"} = $has_altsvc; $feature{"manual"} = $has_manual; $feature{"unix-sockets"} = $has_unix; $feature{"win32"} = $has_win32; # make each protocol an enabled "feature" for my $p (@protocols) { $feature{$p} = 1; } # 'socks' was once here but is now removed |
︙ | ︙ | |||
2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 | $has_ldpreload = 1; } if($curl =~ /win32|Windows|mingw(32|64)/) { # This is a Windows MinGW build or native build, we need to use # Win32-style path. $pwd = pathhelp::sys_native_current_path(); $has_textaware = 1; } if ($libcurl =~ /(winssl|schannel)/i) { $has_winssl=1; $has_sslpinning=1; } elsif ($libcurl =~ /openssl/i) { $has_openssl=1; | > | 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 | $has_ldpreload = 1; } if($curl =~ /win32|Windows|mingw(32|64)/) { # This is a Windows MinGW build or native build, we need to use # Win32-style path. $pwd = pathhelp::sys_native_current_path(); $has_textaware = 1; $has_win32 = 1; } if ($libcurl =~ /(winssl|schannel)/i) { $has_winssl=1; $has_sslpinning=1; } elsif ($libcurl =~ /openssl/i) { $has_openssl=1; |
︙ | ︙ | |||
3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 | logmsg sprintf("%s", $http_ipv6?"HTTP-IPv6 ":""); logmsg sprintf("%s", $http_unix?"HTTP-unix ":""); logmsg sprintf("%s\n", $ftp_ipv6?"FTP-IPv6 ":""); logmsg sprintf("* Env: %s%s", $valgrind?"Valgrind ":"", $run_event_based?"event-based ":""); logmsg sprintf("%s\n", $libtool?"Libtool ":""); if($verbose) { logmsg "* Ports:\n"; logmsg sprintf("* HTTP/%d ", $HTTPPORT); logmsg sprintf("FTP/%d ", $FTPPORT); logmsg sprintf("FTP2/%d ", $FTP2PORT); | > | 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 | logmsg sprintf("%s", $http_ipv6?"HTTP-IPv6 ":""); logmsg sprintf("%s", $http_unix?"HTTP-unix ":""); logmsg sprintf("%s\n", $ftp_ipv6?"FTP-IPv6 ":""); logmsg sprintf("* Env: %s%s", $valgrind?"Valgrind ":"", $run_event_based?"event-based ":""); logmsg sprintf("%s\n", $libtool?"Libtool ":""); logmsg ("* Seed: $randseed\n"); if($verbose) { logmsg "* Ports:\n"; logmsg sprintf("* HTTP/%d ", $HTTPPORT); logmsg sprintf("FTP/%d ", $FTPPORT); logmsg sprintf("FTP2/%d ", $FTP2PORT); |
︙ | ︙ | |||
3146 3147 3148 3149 3150 3151 3152 | } $$thing =~ s/%FILE_PWD/$file_pwd/g; $$thing =~ s/%SRCDIR/$srcdir/g; $$thing =~ s/%USER/$USER/g; # The purpose of FTPTIME2 and FTPTIME3 is to provide times that can be | | | 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 | } $$thing =~ s/%FILE_PWD/$file_pwd/g; $$thing =~ s/%SRCDIR/$srcdir/g; $$thing =~ s/%USER/$USER/g; # The purpose of FTPTIME2 and FTPTIME3 is to provide times that can be # used for time-out tests and that would work on most hosts as these # adjust for the startup/check time for this particular host. We needed # to do this to make the test suite run better on very slow hosts. my $ftp2 = $ftpchecktime * 2; my $ftp3 = $ftpchecktime * 3; $$thing =~ s/%FTPTIME2/$ftp2/g; |
︙ | ︙ | |||
3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 | $count, $total)=@_; my @what; my $why; my $cmd; my $disablevalgrind; # fist, remove all lingering log files cleardir($LOGDIR); # copy test number to a global scope var, this allows # testnum checking when starting test harness servers. $testnumcheck = $testnum; # timestamp test preparation start $timeprepini{$testnum} = Time::HiRes::time(); if($disttests !~ /test$testnum\W/ ) { logmsg "Warning: test$testnum not present in tests/data/Makefile.inc\n"; } if($disabled{$testnum}) { logmsg "Warning: test$testnum is explicitly disabled\n"; } # load the test case file definition if(loadtest("${TESTDIR}/test${testnum}")) { if($verbose) { # this is not a test logmsg "RUN: $testnum doesn't look like a test case\n"; } | > > > > > | 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 | $count, $total)=@_; my @what; my $why; my $cmd; my $disablevalgrind; my $errorreturncode = 1; # 1 means normal error, 2 means ignored error # fist, remove all lingering log files cleardir($LOGDIR); # copy test number to a global scope var, this allows # testnum checking when starting test harness servers. $testnumcheck = $testnum; # timestamp test preparation start $timeprepini{$testnum} = Time::HiRes::time(); if($disttests !~ /test$testnum\W/ ) { logmsg "Warning: test$testnum not present in tests/data/Makefile.inc\n"; } if($disabled{$testnum}) { logmsg "Warning: test$testnum is explicitly disabled\n"; } if($ignored{$testnum}) { logmsg "Warning: test$testnum result is ignored\n"; $errorreturncode = 2; } # load the test case file definition if(loadtest("${TESTDIR}/test${testnum}")) { if($verbose) { # this is not a test logmsg "RUN: $testnum doesn't look like a test case\n"; } |
︙ | ︙ | |||
3300 3301 3302 3303 3304 3305 3306 | $why = "curl has $1 support"; last; } } if(!$why) { | | > > > | | > > > > > > | 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 | $why = "curl has $1 support"; last; } } if(!$why) { my @info_keywords = getpart("info", "keywords"); my $match; my $k; # Clear the list of keywords from the last test %keywords = (); if(!$info_keywords[0]) { $why = "missing the <keywords> section!"; } for $k (@info_keywords) { chomp $k; if ($disabled_keywords{lc($k)}) { $why = "disabled by keyword"; } elsif ($enabled_keywords{lc($k)}) { $match = 1; } if ($ignored_keywords{lc($k)}) { logmsg "Warning: test$testnum result is ignored due to $k\n"; $errorreturncode = 2; } $keywords{$k} = 1; } if(!$why && !$match && %enabled_keywords) { $why = "disabled by missing keyword"; } } |
︙ | ︙ | |||
3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 | delete $ENV{$var} if($ENV{$var}); } else { $ENV{$var} = $oldenv{$var}; } delete $oldenv{$var}; } # remove test server commands file before servers are started/verified unlink($FTPDCMD) if(-f $FTPDCMD); # timestamp required servers verification start $timesrvrini{$testnum} = Time::HiRes::time(); | > > > > > > > > > > > > > | 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 | delete $ENV{$var} if($ENV{$var}); } else { $ENV{$var} = $oldenv{$var}; } delete $oldenv{$var}; } # get the name of the test early my @testname= getpart("client", "name"); my $testname = $testname[0]; $testname =~ s/\n//g; # create test result in CI services if(azure_check_environment() && $AZURE_RUN_ID) { $AZURE_RESULT_ID = azure_create_test_result($AZURE_RUN_ID, $testnum, $testname); } elsif(appveyor_check_environment()) { appveyor_create_test_result($testnum, $testname); } # remove test server commands file before servers are started/verified unlink($FTPDCMD) if(-f $FTPDCMD); # timestamp required servers verification start $timesrvrini{$testnum} = Time::HiRes::time(); |
︙ | ︙ | |||
3496 3497 3498 3499 3500 3501 3502 | # if this section exists, it might be FTP server instructions: my @ftpservercmd = fixarray ( getpart("reply", "servercmd") ); my $CURLOUT="$LOGDIR/curl$testnum.out"; # curl output if not stdout # name of the test | < < < | 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 | # if this section exists, it might be FTP server instructions: my @ftpservercmd = fixarray ( getpart("reply", "servercmd") ); my $CURLOUT="$LOGDIR/curl$testnum.out"; # curl output if not stdout # name of the test logmsg "[$testname]\n" if(!$short); if($listonly) { timestampskippedevents($testnum); return 0; # look successful } |
︙ | ︙ | |||
3610 3611 3612 3613 3614 3615 3616 | elsif($cmdtype eq "shell") { # run the command line prepended with "/bin/sh" $cmdargs ="$cmd"; $CMDLINE = "/bin/sh "; $tool=$CMDLINE; $disablevalgrind=1; } | | > > > > > | 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 | elsif($cmdtype eq "shell") { # run the command line prepended with "/bin/sh" $cmdargs ="$cmd"; $CMDLINE = "/bin/sh "; $tool=$CMDLINE; $disablevalgrind=1; } elsif(!$tool && !$keywords{"unittest"}) { # run curl, add suitable command line options my $inc=""; if((!$cmdhash{'option'}) || ($cmdhash{'option'} !~ /no-include/)) { $inc = " --include"; } $cmdargs = "$out$inc "; $cmdargs .= "--trace-ascii log/trace$testnum "; $cmdargs .= "--trace-time "; if($evbased) { $cmdargs .= "--test-event "; $fail_due_event_based--; } $cmdargs .= $cmd; } else { $cmdargs = " $cmd"; # $cmd is the command line for the test file $CURLOUT = $STDOUT; # sends received data to stdout # Default the tool to a unit test with the same name as the test spec if($keywords{"unittest"} && !$tool) { $tool="unit$testnum"; } if($tool =~ /^lib/) { $CMDLINE="$LIBDIR/$tool"; } elsif($tool =~ /^unit/) { $CMDLINE="$UNITDIR/$tool"; } |
︙ | ︙ | |||
3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 | $CMDLINE .= "$cmdargs >$STDOUT 2>$STDERR"; if($verbose) { logmsg "$CMDLINE\n"; } print CMDLOG "$CMDLINE\n"; unlink("core"); my $dumped_core; my $cmdres; if($gdbthis) { | > > | 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 | $CMDLINE .= "$cmdargs >$STDOUT 2>$STDERR"; if($verbose) { logmsg "$CMDLINE\n"; } open(CMDLOG, ">", "$LOGDIR/$CURLLOG"); print CMDLOG "$CMDLINE\n"; close(CMDLOG); unlink("core"); my $dumped_core; my $cmdres; if($gdbthis) { |
︙ | ︙ | |||
3880 3881 3882 3883 3884 3885 3886 | my $rc = runclient("$cmd"); # Must run the postcheck command in torture mode in order # to clean up, but the result can't be relied upon. if($rc != 0 && !$torture) { logmsg " postcheck FAILED\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); | | | 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 | my $rc = runclient("$cmd"); # Must run the postcheck command in torture mode in order # to clean up, but the result can't be relied upon. if($rc != 0 && !$torture) { logmsg " postcheck FAILED\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } } } # restore environment variables that were modified if(%oldenv) { foreach my $var (keys %oldenv) { |
︙ | ︙ | |||
3952 3953 3954 3955 3956 3957 3958 | # Yes, we must cut off the final newline from the final line # of the protocol data chomp($validstdout[$#validstdout]); } $res = compare($testnum, $testname, "stdout", \@actual, \@validstdout); if($res) { | | | 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 | # Yes, we must cut off the final newline from the final line # of the protocol data chomp($validstdout[$#validstdout]); } $res = compare($testnum, $testname, "stdout", \@actual, \@validstdout); if($res) { return $errorreturncode; } $ok .= "s"; } else { $ok .= "-"; # stdout not checked } |
︙ | ︙ | |||
4003 4004 4005 4006 4007 4008 4009 | # Yes, we must cut off the final newline from the final line # of the protocol data chomp($validstderr[$#validstderr]); } $res = compare($testnum, $testname, "stderr", \@actual, \@validstderr); if($res) { | | | 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 | # Yes, we must cut off the final newline from the final line # of the protocol data chomp($validstderr[$#validstderr]); } $res = compare($testnum, $testname, "stderr", \@actual, \@validstderr); if($res) { return $errorreturncode; } $ok .= "r"; } else { $ok .= "-"; # stderr not checked } |
︙ | ︙ | |||
4049 4050 4051 4052 4053 4054 4055 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "protocol", \@out, \@protstrip); if($res) { | | | | 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "protocol", \@out, \@protstrip); if($res) { return $errorreturncode; } $ok .= "p"; } else { $ok .= "-"; # protocol not checked } if(!$replyattr{'nocheck'} && (@reply || $replyattr{'sendzero'})) { # verify the received data my @out = loadarray($CURLOUT); $res = compare($testnum, $testname, "data", \@out, \@reply); if ($res) { return $errorreturncode; } $ok .= "d"; } else { $ok .= "-"; # data not checked } |
︙ | ︙ | |||
4088 4089 4090 4091 4092 4093 4094 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "upload", \@out, \@upload); if ($res) { | | | 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "upload", \@out, \@upload); if ($res) { return $errorreturncode; } $ok .= "u"; } else { $ok .= "-"; # upload not checked } |
︙ | ︙ | |||
4134 4135 4136 4137 4138 4139 4140 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "proxy", \@out, \@protstrip); if($res) { | | | 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 | for(@out) { eval $strip; } } $res = compare($testnum, $testname, "proxy", \@out, \@protstrip); if($res) { return $errorreturncode; } $ok .= "P"; } else { $ok .= "-"; # protocol not checked |
︙ | ︙ | |||
4192 4193 4194 4195 4196 4197 4198 | } @outfile = fixarray(@outfile); $res = compare($testnum, $testname, "output ($filename)", \@generated, \@outfile); if($res) { | | | 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 | } @outfile = fixarray(@outfile); $res = compare($testnum, $testname, "output ($filename)", \@generated, \@outfile); if($res) { return $errorreturncode; } $outputok = 1; # output checked } } $ok .= ($outputok) ? "o" : "-"; # output checked or not |
︙ | ︙ | |||
4222 4223 4224 4225 4226 4227 4228 | if(!$short) { logmsg sprintf("\n%s returned $cmdres, when expecting %s\n", (!$tool)?"curl":$tool, $errorcode); } logmsg " exit FAILED\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); | | | 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 | if(!$short) { logmsg sprintf("\n%s returned $cmdres, when expecting %s\n", (!$tool)?"curl":$tool, $errorcode); } logmsg " exit FAILED\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } if($has_memory_tracking) { if(! -f $memdump) { logmsg "\n** ALERT! memory tracking with no output file?\n" if(!$cmdtype eq "perl"); } |
︙ | ︙ | |||
4245 4246 4247 4248 4249 4250 4251 | } } if($leak) { logmsg "\n** MEMORY FAILURE\n"; logmsg @memdata; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); | | | | | | 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 | } } if($leak) { logmsg "\n** MEMORY FAILURE\n"; logmsg @memdata; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } else { $ok .= "m"; } } } else { $ok .= "-"; # memory not checked } if($valgrind) { if($usevalgrind) { unless(opendir(DIR, "$LOGDIR")) { logmsg "ERROR: unable to read $LOGDIR\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } my @files = readdir(DIR); closedir(DIR); my $vgfile; foreach my $file (@files) { if($file =~ /^valgrind$testnum(\..*|)$/) { $vgfile = $file; last; } } if(!$vgfile) { logmsg "ERROR: valgrind log file missing for test $testnum\n"; # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } my @e = valgrindparse("$LOGDIR/$vgfile"); if(@e && $e[0]) { if($automakestyle) { logmsg "FAIL: $testnum - $testname - valgrind\n"; } else { logmsg " valgrind ERROR "; logmsg @e; } # timestamp test result verification end $timevrfyend{$testnum} = Time::HiRes::time(); return $errorreturncode; } $ok .= "v"; } else { if(!$short && !$disablevalgrind) { logmsg " valgrind SKIPPED\n"; } |
︙ | ︙ | |||
4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 | logmsg sprintf("OK (%-3d out of %-3d, %s, took %.1fs, %s)\n", $count, $total, $left, $took, $duration); } else { logmsg "PASS: $testnum - $testname\n"; } return 0; } ####################################################################### # Stop all running test servers # | > > > | 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 | logmsg sprintf("OK (%-3d out of %-3d, %s, took %.1fs, %s)\n", $count, $total, $left, $took, $duration); } else { logmsg "PASS: $testnum - $testname\n"; } if($errorreturncode==2) { logmsg "Warning: test$testnum result is ignored, but passed!\n"; } return 0; } ####################################################################### # Stop all running test servers # |
︙ | ︙ | |||
5042 5043 5044 5045 5046 5047 5048 | $torture=1; my $xtra = $1; if($xtra =~ s/(\d+)$//) { $tortalloc = $1; } } | | | < < > > > > | 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 | $torture=1; my $xtra = $1; if($xtra =~ s/(\d+)$//) { $tortalloc = $1; } } elsif($ARGV[0] =~ /--shallow=(\d+)/) { # Fail no more than this amount per tests when running # torture. my ($num)=($1); $shallow=$num; } elsif($ARGV[0] =~ /--repeat=(\d+)/) { # Repeat-run the given tests this many times $repeat = $1; } elsif($ARGV[0] =~ /--seed=(\d+)/) { # Set a fixed random seed (used for -R and --shallow) $randseed = $1; } elsif($ARGV[0] eq "-a") { # continue anyway, even if a test fail $anyway=1; } elsif($ARGV[0] eq "-p") { $postmortem=1; |
︙ | ︙ | |||
5114 5115 5116 5117 5118 5119 5120 | -g run the test case with gdb -gw run the test case with gdb as a windowed application -h this help text -k keep stdout and stderr files present after tests -l list all test case names/descriptions -n no valgrind -p print log file contents when a test fails | | > | > > | 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 | -g run the test case with gdb -gw run the test case with gdb as a windowed application -h this help text -k keep stdout and stderr files present after tests -l list all test case names/descriptions -n no valgrind -p print log file contents when a test fails -R scrambled order (uses the random seed, see --seed) -r run time statistics -rf full run time statistics -s short output --seed=[num] set the random seed to a fixed number --shallow=[num] randomly makes the torture tests "thinner" -t[N] torture (simulate function failures); N means fail Nth function -v verbose output -vc path use this curl only to verify the existing servers [num] like "5 6 9" or " 5 to 22 " to run those tests only [!num] like "!5 !6 !9" to disable those tests [~num] like "~5 ~6 ~9" to ignore the result of those tests [keyword] like "IPv6" to select only tests containing the key word [!keyword] like "!cookies" to disable any tests containing the key word [~keyword] like "~cookies" to ignore results of tests containing key word EOHELP ; exit; } elsif($ARGV[0] =~ /^(\d+)/) { $number = $1; if($fromnum >= 0) { |
︙ | ︙ | |||
5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 | } elsif($ARGV[0] =~ /^to$/i) { $fromnum = $number+1; } elsif($ARGV[0] =~ /^!(\d+)/) { $fromnum = -1; $disabled{$1}=$1; } elsif($ARGV[0] =~ /^!(.+)/) { $disabled_keywords{lc($1)}=$1; } elsif($ARGV[0] =~ /^([-[{a-zA-Z].*)/) { $enabled_keywords{lc($1)}=$1; } else { print "Unknown option: $ARGV[0]\n"; exit; } shift @ARGV; } if(@testthis && ($testthis[0] ne "")) { $TESTCASES=join(" ", @testthis); } if($valgrind) { # we have found valgrind on the host, use it | > > > > > > > > > > > > > > > > > > > > > | 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 | } elsif($ARGV[0] =~ /^to$/i) { $fromnum = $number+1; } elsif($ARGV[0] =~ /^!(\d+)/) { $fromnum = -1; $disabled{$1}=$1; } elsif($ARGV[0] =~ /^~(\d+)/) { $fromnum = -1; $ignored{$1}=$1; } elsif($ARGV[0] =~ /^!(.+)/) { $disabled_keywords{lc($1)}=$1; } elsif($ARGV[0] =~ /^~(.+)/) { $ignored_keywords{lc($1)}=$1; } elsif($ARGV[0] =~ /^([-[{a-zA-Z].*)/) { $enabled_keywords{lc($1)}=$1; } else { print "Unknown option: $ARGV[0]\n"; exit; } shift @ARGV; } if(!$randseed) { my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); # seed of the month. December 2019 becomes 201912 $randseed = ($year+1900)*100 + $mon+1; open(C, "$CURL --version 2>/dev/null|"); my @c = <C>; close(C); # use the first line of output and get the md5 out of it my $str = md5($c[0]); $randseed += unpack('S', $str); # unsigned 16 bit value } srand $randseed; if(@testthis && ($testthis[0] ne "")) { $TESTCASES=join(" ", @testthis); } if($valgrind) { # we have found valgrind on the host, use it |
︙ | ︙ | |||
5368 5369 5370 5371 5372 5373 5374 | push @rand, $all[$r]; $all[$r]=""; $TESTCASES = join(" ", @all); } $TESTCASES = join(" ", @rand); } | < < < < < < < < | 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 | push @rand, $all[$r]; $all[$r]=""; $TESTCASES = join(" ", @all); } $TESTCASES = join(" ", @rand); } # Display the contents of the given file. Line endings are canonicalized # and excessively long files are elided sub displaylogcontent { my ($file)=@_; if(open(SINGLE, "<$file")) { my $linecount = 0; my $truncate; |
︙ | ︙ | |||
5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 | next; # skip valgrindNnn of other tests } logmsg "=== Start of file $log\n"; displaylogcontent("$LOGDIR/$log"); logmsg "=== End of file $log\n"; } } ####################################################################### # The main test-loop # my $failed; my $testnum; my $ok=0; my $total=0; my $lasttest=0; my @at = split(" ", $TESTCASES); my $count=0; $start = time(); foreach $testnum (@at) { $lasttest = $testnum if($testnum > $lasttest); $count++; my $error = singletest($run_event_based, $testnum, $count, scalar(@at)); if($error < 0) { # not a test we can run next; } $total++; # number of tests we've run if($error>0) { $failed.= "$testnum "; if($postmortem) { # display all files in log/ in a nice way displaylogs($testnum); } | > > > > > > > > > > > > > > > > > > > > > > > | | | > > > | 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 | next; # skip valgrindNnn of other tests } logmsg "=== Start of file $log\n"; displaylogcontent("$LOGDIR/$log"); logmsg "=== End of file $log\n"; } } ####################################################################### # Setup Azure Pipelines Test Run (if running in Azure DevOps) # if(azure_check_environment()) { $AZURE_RUN_ID = azure_create_test_run(); logmsg "Azure Run ID: $AZURE_RUN_ID\n" if ($verbose); } ####################################################################### # The main test-loop # my $failed; my $testnum; my $ok=0; my $ign=0; my $total=0; my $lasttest=0; my @at = split(" ", $TESTCASES); my $count=0; $start = time(); foreach $testnum (@at) { $lasttest = $testnum if($testnum > $lasttest); $count++; my $error = singletest($run_event_based, $testnum, $count, scalar(@at)); # update test result in CI services if(azure_check_environment() && $AZURE_RUN_ID && $AZURE_RESULT_ID) { $AZURE_RESULT_ID = azure_update_test_result($AZURE_RUN_ID, $AZURE_RESULT_ID, $testnum, $error, $timeprepini{$testnum}, $timevrfyend{$testnum}); } elsif(appveyor_check_environment()) { appveyor_update_test_result($testnum, $error, $timeprepini{$testnum}, $timevrfyend{$testnum}); } if($error < 0) { # not a test we can run next; } $total++; # number of tests we've run if($error>0) { $failed.= "$testnum "; if($postmortem) { # display all files in log/ in a nice way displaylogs($testnum); } if($error==2) { $ign++; # ignored test result counter } elsif(!$anyway) { # a test failed, abort logmsg "\n - abort tests\n"; last; } } elsif(!$error) { $ok++; # successful test counter } # loop for next test } my $sofar = time() - $start; ####################################################################### # Finish Azure Pipelines Test Run (if running in Azure DevOps) # if(azure_check_environment() && $AZURE_RUN_ID) { $AZURE_RUN_ID = azure_update_test_run($AZURE_RUN_ID); } # Tests done, stop the servers stopservers($verbose); my $all = $total + $skipped; runtimestats($lasttest); |
︙ | ︙ | |||
5576 5577 5578 5579 5580 5581 5582 | if($c > $max) { logmsg " and ".($c-$max)." more"; } logmsg ")\n"; } } | | | 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 | if($c > $max) { logmsg " and ".($c-$max)." more"; } logmsg ")\n"; } } if($total && (($ok+$ign) != $total)) { exit 1; } |
Changes to jni/curl/tests/server/Makefile.in.
︙ | ︙ | |||
542 543 544 545 546 547 548 549 550 551 552 553 554 555 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ |
Changes to jni/curl/tests/server/sws.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
114 115 116 117 118 119 120 121 122 123 124 125 126 127 | int skip; /* if non-zero, the server is instructed to not read this many bytes from a PUT/POST request. Ie the client sends N bytes said in Content-Length, but the server only reads N - skip bytes. */ int rcmd; /* doing a special command, see defines above */ int prot_version; /* HTTP version * 10 */ int callcount; /* times ProcessRequest() gets called */ bool connmon; /* monitor the state of the connection, log disconnects */ bool upgrade; /* test case allows upgrade to http2 */ bool upgrade_request; /* upgrade request found and allowed */ bool close; /* similar to swsclose in response: close connection after response is sent */ int done_processing; }; | > > | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | int skip; /* if non-zero, the server is instructed to not read this many bytes from a PUT/POST request. Ie the client sends N bytes said in Content-Length, but the server only reads N - skip bytes. */ int rcmd; /* doing a special command, see defines above */ int prot_version; /* HTTP version * 10 */ int callcount; /* times ProcessRequest() gets called */ bool skipall; /* skip all incoming data */ bool noexpect; /* refuse Expect: (don't read the body) */ bool connmon; /* monitor the state of the connection, log disconnects */ bool upgrade; /* test case allows upgrade to http2 */ bool upgrade_request; /* upgrade request found and allowed */ bool close; /* similar to swsclose in response: close connection after response is sent */ int done_processing; }; |
︙ | ︙ | |||
175 176 177 178 179 180 181 182 183 184 185 186 187 188 | /* upgrade to http2 */ #define CMD_UPGRADE "upgrade" /* close connection */ #define CMD_SWSCLOSE "swsclose" #define END_OF_HEADERS "\r\n\r\n" enum { DOCNUMBER_NOTHING = -4, DOCNUMBER_QUIT = -3, DOCNUMBER_WERULEZ = -2, DOCNUMBER_404 = -1 | > > > | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | /* upgrade to http2 */ #define CMD_UPGRADE "upgrade" /* close connection */ #define CMD_SWSCLOSE "swsclose" /* deny Expect: requests */ #define CMD_NOEXPECT "no-expect" #define END_OF_HEADERS "\r\n\r\n" enum { DOCNUMBER_NOTHING = -4, DOCNUMBER_QUIT = -3, DOCNUMBER_WERULEZ = -2, DOCNUMBER_404 = -1 |
︙ | ︙ | |||
422 423 424 425 426 427 428 429 430 431 432 433 434 435 | else if(!strncmp(CMD_SWSCLOSE, cmd, strlen(CMD_SWSCLOSE))) { logmsg("swsclose: close this connection after response"); req->close = TRUE; } else if(1 == sscanf(cmd, "skip: %d", &num)) { logmsg("instructed to skip this number of bytes %d", num); req->skip = num; } else if(1 == sscanf(cmd, "writedelay: %d", &num)) { logmsg("instructed to delay %d secs between packets", num); req->writedelay = num; } else { logmsg("Unknown <servercmd> instruction found: %s", cmd); | > > > > | 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 | else if(!strncmp(CMD_SWSCLOSE, cmd, strlen(CMD_SWSCLOSE))) { logmsg("swsclose: close this connection after response"); req->close = TRUE; } else if(1 == sscanf(cmd, "skip: %d", &num)) { logmsg("instructed to skip this number of bytes %d", num); req->skip = num; } else if(!strncmp(CMD_NOEXPECT, cmd, strlen(CMD_NOEXPECT))) { logmsg("instructed to reject Expect: 100-continue"); req->noexpect = TRUE; } else if(1 == sscanf(cmd, "writedelay: %d", &num)) { logmsg("instructed to delay %d secs between packets", num); req->writedelay = num; } else { logmsg("Unknown <servercmd> instruction found: %s", cmd); |
︙ | ︙ | |||
601 602 603 604 605 606 607 | } logmsg("Port number: %d, test case number: %ld", req->connect_port, req->testno); } } if(req->testno == DOCNUMBER_NOTHING) { | | | 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 | } logmsg("Port number: %d, test case number: %ld", req->connect_port, req->testno); } } if(req->testno == DOCNUMBER_NOTHING) { /* Still no test case number. Try to get the number off the last dot instead, IE we consider the TLD to be the test number. Test 123 can then be written as "example.com.123". */ /* find the last dot */ ptr = strrchr(doc, '.'); /* get the number after it */ |
︙ | ︙ | |||
731 732 733 734 735 736 737 | clen = strtoul(ptr, &endptr, 10); if((ptr == endptr) || !ISSPACE(*endptr) || (ERANGE == errno)) { /* this assumes that a zero Content-Length is valid */ logmsg("Found invalid Content-Length: (%s) in the request", ptr); req->open = FALSE; /* closes connection */ return 1; /* done */ } | > > > | < > > > > > > > | | 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 | clen = strtoul(ptr, &endptr, 10); if((ptr == endptr) || !ISSPACE(*endptr) || (ERANGE == errno)) { /* this assumes that a zero Content-Length is valid */ logmsg("Found invalid Content-Length: (%s) in the request", ptr); req->open = FALSE; /* closes connection */ return 1; /* done */ } if(req->skipall) req->cl = 0; else req->cl = clen - req->skip; logmsg("Found Content-Length: %lu in the request", clen); if(req->skip) logmsg("... but will abort after %zu bytes", req->cl); } else if(strncasecompare("Transfer-Encoding: chunked", line, strlen("Transfer-Encoding: chunked"))) { /* chunked data coming in */ chunked = TRUE; } else if(req->noexpect && strncasecompare("Expect: 100-continue", line, strlen("Expect: 100-continue"))) { if(req->cl) req->cl = 0; req->skipall = TRUE; logmsg("Found Expect: 100-continue, ignore body"); } if(chunked) { if(strstr(req->reqbuf, "\r\n0\r\n\r\n")) { /* end of chunks reached */ return 1; /* done */ } else if(strstr(req->reqbuf, "\r\n0\r\n")) { |
︙ | ︙ | |||
935 936 937 938 939 940 941 942 943 944 945 946 947 948 | req->open = TRUE; req->auth_req = FALSE; req->auth = FALSE; req->cl = 0; req->digest = FALSE; req->ntlm = FALSE; req->skip = 0; req->writedelay = 0; req->rcmd = RCMD_NORMALREQ; req->prot_version = 0; req->callcount = 0; req->connect_port = 0; req->done_processing = 0; req->upgrade = 0; | > > | 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 | req->open = TRUE; req->auth_req = FALSE; req->auth = FALSE; req->cl = 0; req->digest = FALSE; req->ntlm = FALSE; req->skip = 0; req->skipall = FALSE; req->noexpect = FALSE; req->writedelay = 0; req->rcmd = RCMD_NORMALREQ; req->prot_version = 0; req->callcount = 0; req->connect_port = 0; req->done_processing = 0; req->upgrade = 0; |
︙ | ︙ |
jni/curl/tests/sshserver.pl became a regular file.
︙ | ︙ |
jni/curl/tests/symbol-scan.pl became executable.
︙ | ︙ |
Changes to jni/curl/tests/testcurl.1.
︙ | ︙ | |||
16 17 18 19 20 21 22 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" ************************************************************************** .\" .TH testcurl.pl 1 "October 22, 2016" "Curl 7.69.0" "testcurl" .SH NAME testcurl.pl \- (automatically) test curl .SH SYNOPSIS .B testcurl.pl [options] [dir] > output .SH DESCRIPTION \fItestcurl.pl\fP is the master script to use for automatic testing of curl |
︙ | ︙ |
Changes to jni/curl/tests/unit/Makefile.in.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # these files are used in every single unit test program VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ | > > > > > > > > > > > > > > > > > > > > > > | 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 | # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ########################################################################### # these files are used in every single unit test program VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ |
︙ | ︙ | |||
123 124 125 126 127 128 129 130 131 132 133 134 135 136 | unit1307$(EXEEXT) unit1308$(EXEEXT) unit1309$(EXEEXT) \ unit1323$(EXEEXT) unit1330$(EXEEXT) unit1394$(EXEEXT) \ unit1395$(EXEEXT) unit1396$(EXEEXT) unit1397$(EXEEXT) \ unit1398$(EXEEXT) unit1399$(EXEEXT) unit1600$(EXEEXT) \ unit1601$(EXEEXT) unit1602$(EXEEXT) unit1603$(EXEEXT) \ unit1604$(EXEEXT) unit1605$(EXEEXT) unit1606$(EXEEXT) \ unit1607$(EXEEXT) unit1608$(EXEEXT) unit1609$(EXEEXT) \ unit1620$(EXEEXT) unit1621$(EXEEXT) unit1650$(EXEEXT) \ unit1651$(EXEEXT) unit1652$(EXEEXT) unit1653$(EXEEXT) \ unit1654$(EXEEXT) unit1655$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../libtest/unit1300-first.$(OBJEXT) am_unit1300_OBJECTS = unit1300-unit1300.$(OBJEXT) $(am__objects_1) | > | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | unit1307$(EXEEXT) unit1308$(EXEEXT) unit1309$(EXEEXT) \ unit1323$(EXEEXT) unit1330$(EXEEXT) unit1394$(EXEEXT) \ unit1395$(EXEEXT) unit1396$(EXEEXT) unit1397$(EXEEXT) \ unit1398$(EXEEXT) unit1399$(EXEEXT) unit1600$(EXEEXT) \ unit1601$(EXEEXT) unit1602$(EXEEXT) unit1603$(EXEEXT) \ unit1604$(EXEEXT) unit1605$(EXEEXT) unit1606$(EXEEXT) \ unit1607$(EXEEXT) unit1608$(EXEEXT) unit1609$(EXEEXT) \ unit1610$(EXEEXT) unit1611$(EXEEXT) unit1612$(EXEEXT) \ unit1620$(EXEEXT) unit1621$(EXEEXT) unit1650$(EXEEXT) \ unit1651$(EXEEXT) unit1652$(EXEEXT) unit1653$(EXEEXT) \ unit1654$(EXEEXT) unit1655$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../libtest/unit1300-first.$(OBJEXT) am_unit1300_OBJECTS = unit1300-unit1300.$(OBJEXT) $(am__objects_1) |
︙ | ︙ | |||
295 296 297 298 299 300 301 | $(top_builddir)/lib/libcurlu.la am__objects_27 = ../libtest/unit1609-first.$(OBJEXT) am_unit1609_OBJECTS = unit1609-unit1609.$(OBJEXT) $(am__objects_27) unit1609_OBJECTS = $(am_unit1609_OBJECTS) unit1609_LDADD = $(LDADD) unit1609_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la | | > > > > > > > > > > > > > > > > > > | | | | | | | | | | | | | | | | 318 319 320 321 322 323 324 325 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 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 | $(top_builddir)/lib/libcurlu.la am__objects_27 = ../libtest/unit1609-first.$(OBJEXT) am_unit1609_OBJECTS = unit1609-unit1609.$(OBJEXT) $(am__objects_27) unit1609_OBJECTS = $(am_unit1609_OBJECTS) unit1609_LDADD = $(LDADD) unit1609_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_28 = ../libtest/unit1610-first.$(OBJEXT) am_unit1610_OBJECTS = unit1610-unit1610.$(OBJEXT) $(am__objects_28) unit1610_OBJECTS = $(am_unit1610_OBJECTS) unit1610_LDADD = $(LDADD) unit1610_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_29 = ../libtest/unit1611-first.$(OBJEXT) am_unit1611_OBJECTS = unit1611-unit1611.$(OBJEXT) $(am__objects_29) unit1611_OBJECTS = $(am_unit1611_OBJECTS) unit1611_LDADD = $(LDADD) unit1611_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_30 = ../libtest/unit1612-first.$(OBJEXT) am_unit1612_OBJECTS = unit1612-unit1611.$(OBJEXT) $(am__objects_30) unit1612_OBJECTS = $(am_unit1612_OBJECTS) unit1612_LDADD = $(LDADD) unit1612_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_31 = ../libtest/unit1620-first.$(OBJEXT) am_unit1620_OBJECTS = unit1620-unit1620.$(OBJEXT) $(am__objects_31) unit1620_OBJECTS = $(am_unit1620_OBJECTS) unit1620_LDADD = $(LDADD) unit1620_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_32 = ../libtest/unit1621-first.$(OBJEXT) am_unit1621_OBJECTS = unit1621-unit1621.$(OBJEXT) $(am__objects_32) unit1621_OBJECTS = $(am_unit1621_OBJECTS) unit1621_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurl.la am__objects_33 = ../libtest/unit1650-first.$(OBJEXT) am_unit1650_OBJECTS = unit1650-unit1650.$(OBJEXT) $(am__objects_33) unit1650_OBJECTS = $(am_unit1650_OBJECTS) unit1650_LDADD = $(LDADD) unit1650_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_34 = ../libtest/unit1651-first.$(OBJEXT) am_unit1651_OBJECTS = unit1651-unit1651.$(OBJEXT) $(am__objects_34) unit1651_OBJECTS = $(am_unit1651_OBJECTS) unit1651_LDADD = $(LDADD) unit1651_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_35 = ../libtest/unit1652-first.$(OBJEXT) am_unit1652_OBJECTS = unit1652-unit1652.$(OBJEXT) $(am__objects_35) unit1652_OBJECTS = $(am_unit1652_OBJECTS) unit1652_LDADD = $(LDADD) unit1652_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_36 = ../libtest/unit1653-first.$(OBJEXT) am_unit1653_OBJECTS = unit1653-unit1653.$(OBJEXT) $(am__objects_36) unit1653_OBJECTS = $(am_unit1653_OBJECTS) unit1653_LDADD = $(LDADD) unit1653_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_37 = ../libtest/unit1654-first.$(OBJEXT) am_unit1654_OBJECTS = unit1654-unit1654.$(OBJEXT) $(am__objects_37) unit1654_OBJECTS = $(am_unit1654_OBJECTS) unit1654_LDADD = $(LDADD) unit1654_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la am__objects_38 = ../libtest/unit1655-first.$(OBJEXT) am_unit1655_OBJECTS = unit1655-unit1655.$(OBJEXT) $(am__objects_38) unit1655_OBJECTS = $(am_unit1655_OBJECTS) unit1655_LDADD = $(LDADD) unit1655_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false |
︙ | ︙ | |||
384 385 386 387 388 389 390 391 392 393 394 395 396 397 | ../libtest/$(DEPDIR)/unit1603-first.Po \ ../libtest/$(DEPDIR)/unit1604-first.Po \ ../libtest/$(DEPDIR)/unit1605-first.Po \ ../libtest/$(DEPDIR)/unit1606-first.Po \ ../libtest/$(DEPDIR)/unit1607-first.Po \ ../libtest/$(DEPDIR)/unit1608-first.Po \ ../libtest/$(DEPDIR)/unit1609-first.Po \ ../libtest/$(DEPDIR)/unit1620-first.Po \ ../libtest/$(DEPDIR)/unit1621-first.Po \ ../libtest/$(DEPDIR)/unit1650-first.Po \ ../libtest/$(DEPDIR)/unit1651-first.Po \ ../libtest/$(DEPDIR)/unit1652-first.Po \ ../libtest/$(DEPDIR)/unit1653-first.Po \ ../libtest/$(DEPDIR)/unit1654-first.Po \ | > > > | 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 | ../libtest/$(DEPDIR)/unit1603-first.Po \ ../libtest/$(DEPDIR)/unit1604-first.Po \ ../libtest/$(DEPDIR)/unit1605-first.Po \ ../libtest/$(DEPDIR)/unit1606-first.Po \ ../libtest/$(DEPDIR)/unit1607-first.Po \ ../libtest/$(DEPDIR)/unit1608-first.Po \ ../libtest/$(DEPDIR)/unit1609-first.Po \ ../libtest/$(DEPDIR)/unit1610-first.Po \ ../libtest/$(DEPDIR)/unit1611-first.Po \ ../libtest/$(DEPDIR)/unit1612-first.Po \ ../libtest/$(DEPDIR)/unit1620-first.Po \ ../libtest/$(DEPDIR)/unit1621-first.Po \ ../libtest/$(DEPDIR)/unit1650-first.Po \ ../libtest/$(DEPDIR)/unit1651-first.Po \ ../libtest/$(DEPDIR)/unit1652-first.Po \ ../libtest/$(DEPDIR)/unit1653-first.Po \ ../libtest/$(DEPDIR)/unit1654-first.Po \ |
︙ | ︙ | |||
419 420 421 422 423 424 425 426 427 428 429 430 431 432 | ./$(DEPDIR)/unit1603-unit1603.Po \ ./$(DEPDIR)/unit1604-unit1604.Po \ ./$(DEPDIR)/unit1605-unit1605.Po \ ./$(DEPDIR)/unit1606-unit1606.Po \ ./$(DEPDIR)/unit1607-unit1607.Po \ ./$(DEPDIR)/unit1608-unit1608.Po \ ./$(DEPDIR)/unit1609-unit1609.Po \ ./$(DEPDIR)/unit1620-unit1620.Po \ ./$(DEPDIR)/unit1621-unit1621.Po \ ./$(DEPDIR)/unit1650-unit1650.Po \ ./$(DEPDIR)/unit1651-unit1651.Po \ ./$(DEPDIR)/unit1652-unit1652.Po \ ./$(DEPDIR)/unit1653-unit1653.Po \ ./$(DEPDIR)/unit1654-unit1654.Po \ | > > > | 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 | ./$(DEPDIR)/unit1603-unit1603.Po \ ./$(DEPDIR)/unit1604-unit1604.Po \ ./$(DEPDIR)/unit1605-unit1605.Po \ ./$(DEPDIR)/unit1606-unit1606.Po \ ./$(DEPDIR)/unit1607-unit1607.Po \ ./$(DEPDIR)/unit1608-unit1608.Po \ ./$(DEPDIR)/unit1609-unit1609.Po \ ./$(DEPDIR)/unit1610-unit1610.Po \ ./$(DEPDIR)/unit1611-unit1611.Po \ ./$(DEPDIR)/unit1612-unit1611.Po \ ./$(DEPDIR)/unit1620-unit1620.Po \ ./$(DEPDIR)/unit1621-unit1621.Po \ ./$(DEPDIR)/unit1650-unit1650.Po \ ./$(DEPDIR)/unit1651-unit1651.Po \ ./$(DEPDIR)/unit1652-unit1652.Po \ ./$(DEPDIR)/unit1653-unit1653.Po \ ./$(DEPDIR)/unit1654-unit1654.Po \ |
︙ | ︙ | |||
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 | $(unit1307_SOURCES) $(unit1308_SOURCES) $(unit1309_SOURCES) \ $(unit1323_SOURCES) $(unit1330_SOURCES) $(unit1394_SOURCES) \ $(unit1395_SOURCES) $(unit1396_SOURCES) $(unit1397_SOURCES) \ $(unit1398_SOURCES) $(unit1399_SOURCES) $(unit1600_SOURCES) \ $(unit1601_SOURCES) $(unit1602_SOURCES) $(unit1603_SOURCES) \ $(unit1604_SOURCES) $(unit1605_SOURCES) $(unit1606_SOURCES) \ $(unit1607_SOURCES) $(unit1608_SOURCES) $(unit1609_SOURCES) \ $(unit1620_SOURCES) $(unit1621_SOURCES) $(unit1650_SOURCES) \ $(unit1651_SOURCES) $(unit1652_SOURCES) $(unit1653_SOURCES) \ $(unit1654_SOURCES) $(unit1655_SOURCES) DIST_SOURCES = $(unit1300_SOURCES) $(unit1301_SOURCES) \ $(unit1302_SOURCES) $(unit1303_SOURCES) $(unit1304_SOURCES) \ $(unit1305_SOURCES) $(unit1307_SOURCES) $(unit1308_SOURCES) \ $(unit1309_SOURCES) $(unit1323_SOURCES) $(unit1330_SOURCES) \ $(unit1394_SOURCES) $(unit1395_SOURCES) $(unit1396_SOURCES) \ $(unit1397_SOURCES) $(unit1398_SOURCES) $(unit1399_SOURCES) \ $(unit1600_SOURCES) $(unit1601_SOURCES) $(unit1602_SOURCES) \ $(unit1603_SOURCES) $(unit1604_SOURCES) $(unit1605_SOURCES) \ $(unit1606_SOURCES) $(unit1607_SOURCES) $(unit1608_SOURCES) \ | > > | | 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 | $(unit1307_SOURCES) $(unit1308_SOURCES) $(unit1309_SOURCES) \ $(unit1323_SOURCES) $(unit1330_SOURCES) $(unit1394_SOURCES) \ $(unit1395_SOURCES) $(unit1396_SOURCES) $(unit1397_SOURCES) \ $(unit1398_SOURCES) $(unit1399_SOURCES) $(unit1600_SOURCES) \ $(unit1601_SOURCES) $(unit1602_SOURCES) $(unit1603_SOURCES) \ $(unit1604_SOURCES) $(unit1605_SOURCES) $(unit1606_SOURCES) \ $(unit1607_SOURCES) $(unit1608_SOURCES) $(unit1609_SOURCES) \ $(unit1610_SOURCES) $(unit1611_SOURCES) $(unit1612_SOURCES) \ $(unit1620_SOURCES) $(unit1621_SOURCES) $(unit1650_SOURCES) \ $(unit1651_SOURCES) $(unit1652_SOURCES) $(unit1653_SOURCES) \ $(unit1654_SOURCES) $(unit1655_SOURCES) DIST_SOURCES = $(unit1300_SOURCES) $(unit1301_SOURCES) \ $(unit1302_SOURCES) $(unit1303_SOURCES) $(unit1304_SOURCES) \ $(unit1305_SOURCES) $(unit1307_SOURCES) $(unit1308_SOURCES) \ $(unit1309_SOURCES) $(unit1323_SOURCES) $(unit1330_SOURCES) \ $(unit1394_SOURCES) $(unit1395_SOURCES) $(unit1396_SOURCES) \ $(unit1397_SOURCES) $(unit1398_SOURCES) $(unit1399_SOURCES) \ $(unit1600_SOURCES) $(unit1601_SOURCES) $(unit1602_SOURCES) \ $(unit1603_SOURCES) $(unit1604_SOURCES) $(unit1605_SOURCES) \ $(unit1606_SOURCES) $(unit1607_SOURCES) $(unit1608_SOURCES) \ $(unit1609_SOURCES) $(unit1610_SOURCES) $(unit1611_SOURCES) \ $(unit1612_SOURCES) $(unit1620_SOURCES) $(unit1621_SOURCES) \ $(unit1650_SOURCES) $(unit1651_SOURCES) $(unit1652_SOURCES) \ $(unit1653_SOURCES) $(unit1654_SOURCES) $(unit1655_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac |
︙ | ︙ | |||
643 644 645 646 647 648 649 650 651 652 653 654 655 656 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ | > | 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 | USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ USE_QUICHE = @USE_QUICHE@ USE_SCHANNEL = @USE_SCHANNEL@ USE_SECTRANSP = @USE_SECTRANSP@ USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ USE_WOLFSSH = @USE_WOLFSSH@ USE_WOLFSSL = @USE_WOLFSSL@ VERSION = @VERSION@ VERSIONNUM = @VERSIONNUM@ ZLIB_LIBS = @ZLIB_LIBS@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ |
︙ | ︙ | |||
767 768 769 770 771 772 773 | # These are all unit test programs UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \ unit1308 unit1309 unit1323 \ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \ unit1399 \ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \ | | > | 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 | # These are all unit test programs UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \ unit1308 unit1309 unit1323 \ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \ unit1399 \ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \ unit1608 unit1609 unit1610 unit1611 unit1612 \ unit1620 unit1621 \ unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1300_SOURCES = unit1300.c $(UNITFILES) unit1300_CPPFLAGS = $(AM_CPPFLAGS) unit1301_SOURCES = unit1301.c $(UNITFILES) unit1301_CPPFLAGS = $(AM_CPPFLAGS) unit1302_SOURCES = unit1302.c $(UNITFILES) |
︙ | ︙ | |||
827 828 829 830 831 832 833 834 835 836 837 838 839 840 | unit1606_CPPFLAGS = $(AM_CPPFLAGS) unit1607_SOURCES = unit1607.c $(UNITFILES) unit1607_CPPFLAGS = $(AM_CPPFLAGS) unit1608_SOURCES = unit1608.c $(UNITFILES) unit1608_CPPFLAGS = $(AM_CPPFLAGS) unit1609_SOURCES = unit1609.c $(UNITFILES) unit1609_CPPFLAGS = $(AM_CPPFLAGS) unit1620_SOURCES = unit1620.c $(UNITFILES) unit1620_CPPFLAGS = $(AM_CPPFLAGS) unit1621_SOURCES = unit1621.c $(UNITFILES) unit1621_CPPFLAGS = $(AM_CPPFLAGS) unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la unit1650_SOURCES = unit1650.c $(UNITFILES) unit1650_CPPFLAGS = $(AM_CPPFLAGS) | > > > > > > | 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 | unit1606_CPPFLAGS = $(AM_CPPFLAGS) unit1607_SOURCES = unit1607.c $(UNITFILES) unit1607_CPPFLAGS = $(AM_CPPFLAGS) unit1608_SOURCES = unit1608.c $(UNITFILES) unit1608_CPPFLAGS = $(AM_CPPFLAGS) unit1609_SOURCES = unit1609.c $(UNITFILES) unit1609_CPPFLAGS = $(AM_CPPFLAGS) unit1610_SOURCES = unit1610.c $(UNITFILES) unit1610_CPPFLAGS = $(AM_CPPFLAGS) unit1611_SOURCES = unit1611.c $(UNITFILES) unit1611_CPPFLAGS = $(AM_CPPFLAGS) unit1612_SOURCES = unit1611.c $(UNITFILES) unit1612_CPPFLAGS = $(AM_CPPFLAGS) unit1620_SOURCES = unit1620.c $(UNITFILES) unit1620_CPPFLAGS = $(AM_CPPFLAGS) unit1621_SOURCES = unit1621.c $(UNITFILES) unit1621_CPPFLAGS = $(AM_CPPFLAGS) unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la unit1650_SOURCES = unit1650.c $(UNITFILES) unit1650_CPPFLAGS = $(AM_CPPFLAGS) |
︙ | ︙ | |||
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 | $(AM_V_CCLD)$(LINK) $(unit1608_OBJECTS) $(unit1608_LDADD) $(LIBS) ../libtest/unit1609-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1609$(EXEEXT): $(unit1609_OBJECTS) $(unit1609_DEPENDENCIES) $(EXTRA_unit1609_DEPENDENCIES) @rm -f unit1609$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1609_OBJECTS) $(unit1609_LDADD) $(LIBS) ../libtest/unit1620-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1620$(EXEEXT): $(unit1620_OBJECTS) $(unit1620_DEPENDENCIES) $(EXTRA_unit1620_DEPENDENCIES) @rm -f unit1620$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1620_OBJECTS) $(unit1620_LDADD) $(LIBS) ../libtest/unit1621-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ | > > > > > > > > > > > > > > > > > > | 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 | $(AM_V_CCLD)$(LINK) $(unit1608_OBJECTS) $(unit1608_LDADD) $(LIBS) ../libtest/unit1609-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1609$(EXEEXT): $(unit1609_OBJECTS) $(unit1609_DEPENDENCIES) $(EXTRA_unit1609_DEPENDENCIES) @rm -f unit1609$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1609_OBJECTS) $(unit1609_LDADD) $(LIBS) ../libtest/unit1610-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1610$(EXEEXT): $(unit1610_OBJECTS) $(unit1610_DEPENDENCIES) $(EXTRA_unit1610_DEPENDENCIES) @rm -f unit1610$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1610_OBJECTS) $(unit1610_LDADD) $(LIBS) ../libtest/unit1611-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1611$(EXEEXT): $(unit1611_OBJECTS) $(unit1611_DEPENDENCIES) $(EXTRA_unit1611_DEPENDENCIES) @rm -f unit1611$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1611_OBJECTS) $(unit1611_LDADD) $(LIBS) ../libtest/unit1612-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1612$(EXEEXT): $(unit1612_OBJECTS) $(unit1612_DEPENDENCIES) $(EXTRA_unit1612_DEPENDENCIES) @rm -f unit1612$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1612_OBJECTS) $(unit1612_LDADD) $(LIBS) ../libtest/unit1620-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ ../libtest/$(DEPDIR)/$(am__dirstamp) unit1620$(EXEEXT): $(unit1620_OBJECTS) $(unit1620_DEPENDENCIES) $(EXTRA_unit1620_DEPENDENCIES) @rm -f unit1620$(EXEEXT) $(AM_V_CCLD)$(LINK) $(unit1620_OBJECTS) $(unit1620_LDADD) $(LIBS) ../libtest/unit1621-first.$(OBJEXT): ../libtest/$(am__dirstamp) \ |
︙ | ︙ | |||
1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 | @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1603-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1604-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1605-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1606-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1607-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1608-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1609-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1620-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1621-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1650-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1651-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1652-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1653-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1654-first.Po@am__quote@ # am--include-marker | > > > | 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 | @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1603-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1604-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1605-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1606-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1607-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1608-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1609-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1610-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1611-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1612-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1620-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1621-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1650-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1651-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1652-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1653-first.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1654-first.Po@am__quote@ # am--include-marker |
︙ | ︙ | |||
1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1603-unit1603.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1604-unit1604.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1605-unit1605.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1606-unit1606.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1607-unit1607.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1608-unit1608.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1609-unit1609.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1620-unit1620.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1621-unit1621.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1650-unit1650.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1651-unit1651.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1652-unit1652.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1653-unit1653.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1654-unit1654.Po@am__quote@ # am--include-marker | > > > | 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1603-unit1603.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1604-unit1604.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1605-unit1605.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1606-unit1606.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1607-unit1607.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1608-unit1608.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1609-unit1609.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1610-unit1610.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1611-unit1611.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1612-unit1611.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1620-unit1620.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1621-unit1621.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1650-unit1650.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1651-unit1651.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1652-unit1652.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1653-unit1653.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1654-unit1654.Po@am__quote@ # am--include-marker |
︙ | ︙ | |||
1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 | ../libtest/unit1609-first.obj: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1609_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1609-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1609-first.Tpo -c -o ../libtest/unit1609-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1609-first.Tpo ../libtest/$(DEPDIR)/unit1609-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1609-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1609_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1609-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` unit1620-unit1620.o: unit1620.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1620_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1620-unit1620.o -MD -MP -MF $(DEPDIR)/unit1620-unit1620.Tpo -c -o unit1620-unit1620.o `test -f 'unit1620.c' || echo '$(srcdir)/'`unit1620.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1620-unit1620.Tpo $(DEPDIR)/unit1620-unit1620.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1620.c' object='unit1620-unit1620.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1620_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1620-unit1620.o `test -f 'unit1620.c' || echo '$(srcdir)/'`unit1620.c | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 | ../libtest/unit1609-first.obj: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1609_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1609-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1609-first.Tpo -c -o ../libtest/unit1609-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1609-first.Tpo ../libtest/$(DEPDIR)/unit1609-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1609-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1609_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1609-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` unit1610-unit1610.o: unit1610.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1610-unit1610.o -MD -MP -MF $(DEPDIR)/unit1610-unit1610.Tpo -c -o unit1610-unit1610.o `test -f 'unit1610.c' || echo '$(srcdir)/'`unit1610.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1610-unit1610.Tpo $(DEPDIR)/unit1610-unit1610.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1610.c' object='unit1610-unit1610.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1610-unit1610.o `test -f 'unit1610.c' || echo '$(srcdir)/'`unit1610.c unit1610-unit1610.obj: unit1610.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1610-unit1610.obj -MD -MP -MF $(DEPDIR)/unit1610-unit1610.Tpo -c -o unit1610-unit1610.obj `if test -f 'unit1610.c'; then $(CYGPATH_W) 'unit1610.c'; else $(CYGPATH_W) '$(srcdir)/unit1610.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1610-unit1610.Tpo $(DEPDIR)/unit1610-unit1610.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1610.c' object='unit1610-unit1610.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1610-unit1610.obj `if test -f 'unit1610.c'; then $(CYGPATH_W) 'unit1610.c'; else $(CYGPATH_W) '$(srcdir)/unit1610.c'; fi` ../libtest/unit1610-first.o: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1610-first.o -MD -MP -MF ../libtest/$(DEPDIR)/unit1610-first.Tpo -c -o ../libtest/unit1610-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1610-first.Tpo ../libtest/$(DEPDIR)/unit1610-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1610-first.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1610-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c ../libtest/unit1610-first.obj: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1610-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1610-first.Tpo -c -o ../libtest/unit1610-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1610-first.Tpo ../libtest/$(DEPDIR)/unit1610-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1610-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1610_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1610-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` unit1611-unit1611.o: unit1611.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1611-unit1611.o -MD -MP -MF $(DEPDIR)/unit1611-unit1611.Tpo -c -o unit1611-unit1611.o `test -f 'unit1611.c' || echo '$(srcdir)/'`unit1611.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1611-unit1611.Tpo $(DEPDIR)/unit1611-unit1611.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1611.c' object='unit1611-unit1611.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1611-unit1611.o `test -f 'unit1611.c' || echo '$(srcdir)/'`unit1611.c unit1611-unit1611.obj: unit1611.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1611-unit1611.obj -MD -MP -MF $(DEPDIR)/unit1611-unit1611.Tpo -c -o unit1611-unit1611.obj `if test -f 'unit1611.c'; then $(CYGPATH_W) 'unit1611.c'; else $(CYGPATH_W) '$(srcdir)/unit1611.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1611-unit1611.Tpo $(DEPDIR)/unit1611-unit1611.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1611.c' object='unit1611-unit1611.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1611-unit1611.obj `if test -f 'unit1611.c'; then $(CYGPATH_W) 'unit1611.c'; else $(CYGPATH_W) '$(srcdir)/unit1611.c'; fi` ../libtest/unit1611-first.o: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1611-first.o -MD -MP -MF ../libtest/$(DEPDIR)/unit1611-first.Tpo -c -o ../libtest/unit1611-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1611-first.Tpo ../libtest/$(DEPDIR)/unit1611-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1611-first.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1611-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c ../libtest/unit1611-first.obj: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1611-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1611-first.Tpo -c -o ../libtest/unit1611-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1611-first.Tpo ../libtest/$(DEPDIR)/unit1611-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1611-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1611_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1611-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` unit1612-unit1611.o: unit1611.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1612-unit1611.o -MD -MP -MF $(DEPDIR)/unit1612-unit1611.Tpo -c -o unit1612-unit1611.o `test -f 'unit1611.c' || echo '$(srcdir)/'`unit1611.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1612-unit1611.Tpo $(DEPDIR)/unit1612-unit1611.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1611.c' object='unit1612-unit1611.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1612-unit1611.o `test -f 'unit1611.c' || echo '$(srcdir)/'`unit1611.c unit1612-unit1611.obj: unit1611.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1612-unit1611.obj -MD -MP -MF $(DEPDIR)/unit1612-unit1611.Tpo -c -o unit1612-unit1611.obj `if test -f 'unit1611.c'; then $(CYGPATH_W) 'unit1611.c'; else $(CYGPATH_W) '$(srcdir)/unit1611.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1612-unit1611.Tpo $(DEPDIR)/unit1612-unit1611.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1611.c' object='unit1612-unit1611.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1612-unit1611.obj `if test -f 'unit1611.c'; then $(CYGPATH_W) 'unit1611.c'; else $(CYGPATH_W) '$(srcdir)/unit1611.c'; fi` ../libtest/unit1612-first.o: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1612-first.o -MD -MP -MF ../libtest/$(DEPDIR)/unit1612-first.Tpo -c -o ../libtest/unit1612-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1612-first.Tpo ../libtest/$(DEPDIR)/unit1612-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1612-first.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1612-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c ../libtest/unit1612-first.obj: ../libtest/first.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1612-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1612-first.Tpo -c -o ../libtest/unit1612-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1612-first.Tpo ../libtest/$(DEPDIR)/unit1612-first.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1612-first.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1612_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1612-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi` unit1620-unit1620.o: unit1620.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1620_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1620-unit1620.o -MD -MP -MF $(DEPDIR)/unit1620-unit1620.Tpo -c -o unit1620-unit1620.o `test -f 'unit1620.c' || echo '$(srcdir)/'`unit1620.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1620-unit1620.Tpo $(DEPDIR)/unit1620-unit1620.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1620.c' object='unit1620-unit1620.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1620_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1620-unit1620.o `test -f 'unit1620.c' || echo '$(srcdir)/'`unit1620.c |
︙ | ︙ | |||
2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 | -rm -f ../libtest/$(DEPDIR)/unit1603-first.Po -rm -f ../libtest/$(DEPDIR)/unit1604-first.Po -rm -f ../libtest/$(DEPDIR)/unit1605-first.Po -rm -f ../libtest/$(DEPDIR)/unit1606-first.Po -rm -f ../libtest/$(DEPDIR)/unit1607-first.Po -rm -f ../libtest/$(DEPDIR)/unit1608-first.Po -rm -f ../libtest/$(DEPDIR)/unit1609-first.Po -rm -f ../libtest/$(DEPDIR)/unit1620-first.Po -rm -f ../libtest/$(DEPDIR)/unit1621-first.Po -rm -f ../libtest/$(DEPDIR)/unit1650-first.Po -rm -f ../libtest/$(DEPDIR)/unit1651-first.Po -rm -f ../libtest/$(DEPDIR)/unit1652-first.Po -rm -f ../libtest/$(DEPDIR)/unit1653-first.Po -rm -f ../libtest/$(DEPDIR)/unit1654-first.Po | > > > | 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 | -rm -f ../libtest/$(DEPDIR)/unit1603-first.Po -rm -f ../libtest/$(DEPDIR)/unit1604-first.Po -rm -f ../libtest/$(DEPDIR)/unit1605-first.Po -rm -f ../libtest/$(DEPDIR)/unit1606-first.Po -rm -f ../libtest/$(DEPDIR)/unit1607-first.Po -rm -f ../libtest/$(DEPDIR)/unit1608-first.Po -rm -f ../libtest/$(DEPDIR)/unit1609-first.Po -rm -f ../libtest/$(DEPDIR)/unit1610-first.Po -rm -f ../libtest/$(DEPDIR)/unit1611-first.Po -rm -f ../libtest/$(DEPDIR)/unit1612-first.Po -rm -f ../libtest/$(DEPDIR)/unit1620-first.Po -rm -f ../libtest/$(DEPDIR)/unit1621-first.Po -rm -f ../libtest/$(DEPDIR)/unit1650-first.Po -rm -f ../libtest/$(DEPDIR)/unit1651-first.Po -rm -f ../libtest/$(DEPDIR)/unit1652-first.Po -rm -f ../libtest/$(DEPDIR)/unit1653-first.Po -rm -f ../libtest/$(DEPDIR)/unit1654-first.Po |
︙ | ︙ | |||
2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 | -rm -f ./$(DEPDIR)/unit1603-unit1603.Po -rm -f ./$(DEPDIR)/unit1604-unit1604.Po -rm -f ./$(DEPDIR)/unit1605-unit1605.Po -rm -f ./$(DEPDIR)/unit1606-unit1606.Po -rm -f ./$(DEPDIR)/unit1607-unit1607.Po -rm -f ./$(DEPDIR)/unit1608-unit1608.Po -rm -f ./$(DEPDIR)/unit1609-unit1609.Po -rm -f ./$(DEPDIR)/unit1620-unit1620.Po -rm -f ./$(DEPDIR)/unit1621-unit1621.Po -rm -f ./$(DEPDIR)/unit1650-unit1650.Po -rm -f ./$(DEPDIR)/unit1651-unit1651.Po -rm -f ./$(DEPDIR)/unit1652-unit1652.Po -rm -f ./$(DEPDIR)/unit1653-unit1653.Po -rm -f ./$(DEPDIR)/unit1654-unit1654.Po | > > > | 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 | -rm -f ./$(DEPDIR)/unit1603-unit1603.Po -rm -f ./$(DEPDIR)/unit1604-unit1604.Po -rm -f ./$(DEPDIR)/unit1605-unit1605.Po -rm -f ./$(DEPDIR)/unit1606-unit1606.Po -rm -f ./$(DEPDIR)/unit1607-unit1607.Po -rm -f ./$(DEPDIR)/unit1608-unit1608.Po -rm -f ./$(DEPDIR)/unit1609-unit1609.Po -rm -f ./$(DEPDIR)/unit1610-unit1610.Po -rm -f ./$(DEPDIR)/unit1611-unit1611.Po -rm -f ./$(DEPDIR)/unit1612-unit1611.Po -rm -f ./$(DEPDIR)/unit1620-unit1620.Po -rm -f ./$(DEPDIR)/unit1621-unit1621.Po -rm -f ./$(DEPDIR)/unit1650-unit1650.Po -rm -f ./$(DEPDIR)/unit1651-unit1651.Po -rm -f ./$(DEPDIR)/unit1652-unit1652.Po -rm -f ./$(DEPDIR)/unit1653-unit1653.Po -rm -f ./$(DEPDIR)/unit1654-unit1654.Po |
︙ | ︙ | |||
2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 | -rm -f ../libtest/$(DEPDIR)/unit1603-first.Po -rm -f ../libtest/$(DEPDIR)/unit1604-first.Po -rm -f ../libtest/$(DEPDIR)/unit1605-first.Po -rm -f ../libtest/$(DEPDIR)/unit1606-first.Po -rm -f ../libtest/$(DEPDIR)/unit1607-first.Po -rm -f ../libtest/$(DEPDIR)/unit1608-first.Po -rm -f ../libtest/$(DEPDIR)/unit1609-first.Po -rm -f ../libtest/$(DEPDIR)/unit1620-first.Po -rm -f ../libtest/$(DEPDIR)/unit1621-first.Po -rm -f ../libtest/$(DEPDIR)/unit1650-first.Po -rm -f ../libtest/$(DEPDIR)/unit1651-first.Po -rm -f ../libtest/$(DEPDIR)/unit1652-first.Po -rm -f ../libtest/$(DEPDIR)/unit1653-first.Po -rm -f ../libtest/$(DEPDIR)/unit1654-first.Po | > > > | 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 | -rm -f ../libtest/$(DEPDIR)/unit1603-first.Po -rm -f ../libtest/$(DEPDIR)/unit1604-first.Po -rm -f ../libtest/$(DEPDIR)/unit1605-first.Po -rm -f ../libtest/$(DEPDIR)/unit1606-first.Po -rm -f ../libtest/$(DEPDIR)/unit1607-first.Po -rm -f ../libtest/$(DEPDIR)/unit1608-first.Po -rm -f ../libtest/$(DEPDIR)/unit1609-first.Po -rm -f ../libtest/$(DEPDIR)/unit1610-first.Po -rm -f ../libtest/$(DEPDIR)/unit1611-first.Po -rm -f ../libtest/$(DEPDIR)/unit1612-first.Po -rm -f ../libtest/$(DEPDIR)/unit1620-first.Po -rm -f ../libtest/$(DEPDIR)/unit1621-first.Po -rm -f ../libtest/$(DEPDIR)/unit1650-first.Po -rm -f ../libtest/$(DEPDIR)/unit1651-first.Po -rm -f ../libtest/$(DEPDIR)/unit1652-first.Po -rm -f ../libtest/$(DEPDIR)/unit1653-first.Po -rm -f ../libtest/$(DEPDIR)/unit1654-first.Po |
︙ | ︙ | |||
2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 | -rm -f ./$(DEPDIR)/unit1603-unit1603.Po -rm -f ./$(DEPDIR)/unit1604-unit1604.Po -rm -f ./$(DEPDIR)/unit1605-unit1605.Po -rm -f ./$(DEPDIR)/unit1606-unit1606.Po -rm -f ./$(DEPDIR)/unit1607-unit1607.Po -rm -f ./$(DEPDIR)/unit1608-unit1608.Po -rm -f ./$(DEPDIR)/unit1609-unit1609.Po -rm -f ./$(DEPDIR)/unit1620-unit1620.Po -rm -f ./$(DEPDIR)/unit1621-unit1621.Po -rm -f ./$(DEPDIR)/unit1650-unit1650.Po -rm -f ./$(DEPDIR)/unit1651-unit1651.Po -rm -f ./$(DEPDIR)/unit1652-unit1652.Po -rm -f ./$(DEPDIR)/unit1653-unit1653.Po -rm -f ./$(DEPDIR)/unit1654-unit1654.Po | > > > | 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 | -rm -f ./$(DEPDIR)/unit1603-unit1603.Po -rm -f ./$(DEPDIR)/unit1604-unit1604.Po -rm -f ./$(DEPDIR)/unit1605-unit1605.Po -rm -f ./$(DEPDIR)/unit1606-unit1606.Po -rm -f ./$(DEPDIR)/unit1607-unit1607.Po -rm -f ./$(DEPDIR)/unit1608-unit1608.Po -rm -f ./$(DEPDIR)/unit1609-unit1609.Po -rm -f ./$(DEPDIR)/unit1610-unit1610.Po -rm -f ./$(DEPDIR)/unit1611-unit1611.Po -rm -f ./$(DEPDIR)/unit1612-unit1611.Po -rm -f ./$(DEPDIR)/unit1620-unit1620.Po -rm -f ./$(DEPDIR)/unit1621-unit1621.Po -rm -f ./$(DEPDIR)/unit1650-unit1650.Po -rm -f ./$(DEPDIR)/unit1651-unit1651.Po -rm -f ./$(DEPDIR)/unit1652-unit1652.Po -rm -f ./$(DEPDIR)/unit1653-unit1653.Po -rm -f ./$(DEPDIR)/unit1654-unit1654.Po |
︙ | ︙ |
Changes to jni/curl/tests/unit/Makefile.inc.
1 2 3 4 5 6 7 8 9 10 11 12 | # these files are used in every single unit test program UNITFILES = curlcheck.h \ ../libtest/test.h \ ../libtest/first.c # These are all unit test programs UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \ unit1308 unit1309 unit1323 \ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \ unit1399 \ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \ | > > > > > > > > > > > > > > > > > > > > > > | > | 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 | #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.haxx.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ########################################################################### # these files are used in every single unit test program UNITFILES = curlcheck.h \ ../libtest/test.h \ ../libtest/first.c # These are all unit test programs UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \ unit1308 unit1309 unit1323 \ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \ unit1399 \ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \ unit1608 unit1609 unit1610 unit1611 unit1612 \ unit1620 unit1621 \ unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1300_SOURCES = unit1300.c $(UNITFILES) unit1300_CPPFLAGS = $(AM_CPPFLAGS) unit1301_SOURCES = unit1301.c $(UNITFILES) unit1301_CPPFLAGS = $(AM_CPPFLAGS) |
︙ | ︙ | |||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 | unit1607_CPPFLAGS = $(AM_CPPFLAGS) unit1608_SOURCES = unit1608.c $(UNITFILES) unit1608_CPPFLAGS = $(AM_CPPFLAGS) unit1609_SOURCES = unit1609.c $(UNITFILES) unit1609_CPPFLAGS = $(AM_CPPFLAGS) unit1620_SOURCES = unit1620.c $(UNITFILES) unit1620_CPPFLAGS = $(AM_CPPFLAGS) unit1621_SOURCES = unit1621.c $(UNITFILES) unit1621_CPPFLAGS = $(AM_CPPFLAGS) unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la | > > > > > > > > > | 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | unit1607_CPPFLAGS = $(AM_CPPFLAGS) unit1608_SOURCES = unit1608.c $(UNITFILES) unit1608_CPPFLAGS = $(AM_CPPFLAGS) unit1609_SOURCES = unit1609.c $(UNITFILES) unit1609_CPPFLAGS = $(AM_CPPFLAGS) unit1610_SOURCES = unit1610.c $(UNITFILES) unit1610_CPPFLAGS = $(AM_CPPFLAGS) unit1611_SOURCES = unit1611.c $(UNITFILES) unit1611_CPPFLAGS = $(AM_CPPFLAGS) unit1612_SOURCES = unit1611.c $(UNITFILES) unit1612_CPPFLAGS = $(AM_CPPFLAGS) unit1620_SOURCES = unit1620.c $(UNITFILES) unit1620_CPPFLAGS = $(AM_CPPFLAGS) unit1621_SOURCES = unit1621.c $(UNITFILES) unit1621_CPPFLAGS = $(AM_CPPFLAGS) unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la |
︙ | ︙ |
Changes to jni/curl/tests/unit/unit1300.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
50 51 52 53 54 55 56 | int unusedData_case1 = 1; int unusedData_case2 = 2; int unusedData_case3 = 3; struct curl_llist_element case1_list; struct curl_llist_element case2_list; struct curl_llist_element case3_list; struct curl_llist_element case4_list; | < | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | int unusedData_case1 = 1; int unusedData_case2 = 2; int unusedData_case3 = 3; struct curl_llist_element case1_list; struct curl_llist_element case2_list; struct curl_llist_element case3_list; struct curl_llist_element case4_list; struct curl_llist_element *head; struct curl_llist_element *element_next; struct curl_llist_element *element_prev; struct curl_llist_element *to_remove; size_t llist_size = Curl_llist_count(&llist); /** |
︙ | ︙ | |||
212 213 214 215 216 217 218 | to_remove = llist.head; Curl_llist_remove(&llist, to_remove, NULL); fail_unless(llist.head == NULL, "llist head is not NULL while the llist is empty"); fail_unless(llist.tail == NULL, "llist tail is not NULL while the llist is empty"); | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 211 212 213 214 215 216 217 218 219 220 221 | to_remove = llist.head; Curl_llist_remove(&llist, to_remove, NULL); fail_unless(llist.head == NULL, "llist head is not NULL while the llist is empty"); fail_unless(llist.tail == NULL, "llist tail is not NULL while the llist is empty"); Curl_llist_destroy(&llist, NULL); Curl_llist_destroy(&llist_destination, NULL); } UNITTEST_STOP |
Changes to jni/curl/tests/unit/unit1601.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
32 33 34 35 36 37 38 | { } UNITTEST_START #ifndef CURL_DISABLE_CRYPTO_AUTH | > > | > | < | | | | | | 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 | { } UNITTEST_START #ifndef CURL_DISABLE_CRYPTO_AUTH const char string1[] = "1"; const char string2[] = "hello-you-fool"; unsigned char output[MD5_DIGEST_LEN]; unsigned char *testp = output; Curl_md5it(output, (const unsigned char *) string1, strlen(string1)); verify_memory(testp, "\xc4\xca\x42\x38\xa0\xb9\x23\x82\x0d\xcc\x50\x9a\x6f" "\x75\x84\x9b", MD5_DIGEST_LEN); Curl_md5it(output, (const unsigned char *) string2, strlen(string2)); verify_memory(testp, "\x88\x67\x0b\x6d\x5d\x74\x2f\xad\xa5\xcd\xf9\xb6\x82" "\x87\x5f\x22", MD5_DIGEST_LEN); #endif UNITTEST_STOP |
Added jni/curl/tests/unit/unit1610.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curlcheck.h" #include "curl_sha256.h" static CURLcode unit_setup(void) { return CURLE_OK; } static void unit_stop(void) { } UNITTEST_START #ifndef CURL_DISABLE_CRYPTO_AUTH const char string1[] = "1"; const char string2[] = "hello-you-fool"; unsigned char output[SHA256_DIGEST_LENGTH]; unsigned char *testp = output; Curl_sha256it(output, (const unsigned char *) string1, strlen(string1)); verify_memory(testp, "\x6b\x86\xb2\x73\xff\x34\xfc\xe1\x9d\x6b\x80\x4e\xff\x5a\x3f" "\x57\x47\xad\xa4\xea\xa2\x2f\x1d\x49\xc0\x1e\x52\xdd\xb7\x87" "\x5b\x4b", SHA256_DIGEST_LENGTH); Curl_sha256it(output, (const unsigned char *) string2, strlen(string2)); verify_memory(testp, "\xcb\xb1\x6a\x8a\xb9\xcb\xb9\x35\xa8\xcb\xa0\x2e\x28\xc0\x26" "\x30\xd1\x19\x9c\x1f\x02\x17\xf4\x7c\x96\x20\xf3\xef\xe8\x27" "\x15\xae", SHA256_DIGEST_LENGTH); #endif UNITTEST_STOP |
Added jni/curl/tests/unit/unit1611.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ #include "curlcheck.h" #include "curl_md4.h" static CURLcode unit_setup(void) { return CURLE_OK; } static void unit_stop(void) { } UNITTEST_START #ifndef CURL_DISABLE_CRYPTO_AUTH const char string1[] = "1"; const char string2[] = "hello-you-fool"; unsigned char output[MD4_DIGEST_LENGTH]; unsigned char *testp = output; Curl_md4it(output, (const unsigned char *) string1, strlen(string1)); verify_memory(testp, "\x8b\xe1\xec\x69\x7b\x14\xad\x3a\x53\xb3\x71\x43\x61\x20\x64" "\x1d", MD4_DIGEST_LENGTH); Curl_md4it(output, (const unsigned char *) string2, strlen(string2)); verify_memory(testp, "\xa7\x16\x1c\xad\x7e\xbe\xdb\xbc\xf8\xc7\x23\x10\x2d\x2c\xe2" "\x0b", MD4_DIGEST_LENGTH); #endif UNITTEST_STOP |
Changes to jni/curl/tests/unit/unit1651.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
364 365 366 367 368 369 370 | fail_unless(result == CURLE_OK, "Curl_extract_certinfo returned error"); /* a poor man's fuzzing of some initial data to make sure nothing bad happens */ for(byte = 1 ; byte < 255; byte += 17) { for(i = 0; i < 45; i++) { char backup = cert[i]; | | | 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 | fail_unless(result == CURLE_OK, "Curl_extract_certinfo returned error"); /* a poor man's fuzzing of some initial data to make sure nothing bad happens */ for(byte = 1 ; byte < 255; byte += 17) { for(i = 0; i < 45; i++) { char backup = cert[i]; cert[i] = (unsigned char) (byte & 0xff); (void) Curl_extract_certinfo(&conn, 0, beg, end); cert[i] = backup; } } curl_easy_cleanup(data); } UNITTEST_STOP |
︙ | ︙ |
Changes to jni/curl/tests/unit/unit1654.c.
1 2 3 4 5 6 7 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 2019 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is |
︙ | ︙ | |||
120 121 122 123 124 125 126 | ALPN_h1, "curl.haxx.se", 80); if(result) { fprintf(stderr, "Curl_altsvc_parse(6) failed!\n"); unitfail++; } fail_unless(asi->num == 10, "wrong number of entries"); | | | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | ALPN_h1, "curl.haxx.se", 80); if(result) { fprintf(stderr, "Curl_altsvc_parse(6) failed!\n"); unitfail++; } fail_unless(asi->num == 10, "wrong number of entries"); Curl_altsvc_save(curl, asi, outname); curl_easy_cleanup(curl); fail: Curl_altsvc_cleanup(asi); return unitfail; } UNITTEST_STOP #endif |