curl and libcurl 8.22.1

 Public curl releases:         276
 Command line options:         278
 curl_easy_setopt() options:   312
 Public functions in libcurl:  100
 Authors:                      1526
 Contributors:                 3800

This release includes the following changes:

 o tool_cb_wrt: inject the no-clobber number before the extension [21]
 o tool_cb_wrt: try up to .9999 when no-clobbering [46]

This release includes the following bugfixes:

 o build: convert HAS_TIME_T_UNSIGNED to a compile-time check [65]
 o build: drop `HTTP_ONLY` option [23]
 o clang-tidy: merge nested `if()`s [39]
 o config2setopts: always set the security options for SCP/SFTP [67]
 o conncache: remove bundle dest [50]
 o connectdata: use less curltime [34]
 o cookie: ignore individual cookie errors when loading [6]
 o cshutdown: make it smaller [60]
 o curl_addrinfo: drop redundant parentheses [41]
 o curl_fopen: restore the uid and gid checks [70]
 o CURLOPT*ISSUERCERT*: not verified cryptographically [28]
 o CURLOPT_SHARE.md: remove bad explanation for cookie sharing [7]
 o digest: check peer equality for staleness [24]
 o digest: fix maximum length quoted value parsing [22]
 o digest: parse without storing 'value' in local buffer [20]
 o docs: add the missing .html to the url-encode book link [3]
 o doh: reject undersized HTTPS RDATA [11]
 o easy: make ca_cache_timeout standalone [51]
 o escape: polish encoding and decoding for speed [37]
 o ftp: tighten use_ssl check for conn reuse [19]
 o ftp: URL encode file names when wildcarding [61]
 o getparam: switch off CONNECT headers when using -J [4]
 o global_init: tidy up, simplify, fix issues [43]
 o hash: change key arguments to const [14]
 o hsts: cap max-age to two years [47]
 o hsts: on load, only remove exact duplicates [56]
 o HTTP-CONNECT: do not react to 401 responses [31]
 o http2: changes in error handling [53]
 o http: reject resumed uploads [16]
 o imap: compare selected mailbox names case-sensitively [57]
 o libssh2: match hashed known_hosts entries by host [30]
 o mbedtls: fix ticket handling [52]
 o mprintf: stage output and emit it in runs [38]
 o multi: reduce struct size with small cleanups [25]
 o multi: remove redundant completion message list [32]
 o multi: store timeout epoch as whole seconds [36]
 o multi_ntfy: replace enabled bitset with inline flags [44]
 o multihandle: some easy shrinks [33]
 o ngtcp2: shrink max sendbuf [13]
 o openssl/gtls: reject CRLfile with native CA store, matching rustls [27]
 o openssl: use non-deprecated API for MD5/MD4 [69]
 o os400: document curl_formadd_CCSID multi-chunk peculiarity [5]
 o ossl_verifyhost: remove assumption of null termination of ASN1_STRING. [26]
 o runtests: Added runnernums in order to have O(1) lookup [45]
 o schannel: auto_client_cert conn matching [17]
 o schannel: clear borrowed sslContext on close [15]
 o ssl: dedup ssl_fsslctx [35]
 o test1399: improve reliability [9]
 o test1679: unset `SSL_CERT_FILE`, use `TESTNUMBER` [58]
 o tool: (re)set SSL verification in --libcurl output [1]
 o uint-bset: skip unused slots when counting
 o url: ntlm/negotiate, prohibit connection reuse on follows [18]
 o urldata: remove conn->given [40]
 o vquic: fix preprocessor check for old Darwin versions [8]
 o vtls: fix Curl_cert_hostcheck when the pattern is not a C string [12]
 o warnless: dedupe Intel compiler warning suppression pragmas [42]
 o x509: stricter parsing [2]

This release includes the following known bugs:

 See https://curl.se/docs/knownbugs.html

For all changes ever done in curl:

 See https://curl.se/changes.html

Planned upcoming removals include:

 o HTTP/2 Server Push
 o local crypto implementations
 o NTLM
 o SMB

 See https://curl.se/dev/deprecate.html

This release would not have looked like this without help, code, reports and
advice from friends like these:

  Artem Prilutskiy, Aviv Engelberg, Bobbeh Rhino, Christian Hesse,
  Christian Ullrich, Claude, Daniel Lang, Daniel Stenberg, David Benjamin,
  Florent Castelli, Fredrik Blau, Huang Yiheng, Joshua Rogers, Martin Dukek,
  Max Dymond, Mihai-Gabriel Marin, Patrick Monnerat, rawsun007, Ray Satiro,
  renovate[bot], Ron Kuper, Roshan Ramani, Rudolf Polzer, Stanislav Fort,
  Stefan Eissing, Tyler Yankee, Un1q32, Viktor Szakats
  (28 contributors)

References to bug reports and discussions on issues:

 [1] = https://curl.se/bug/?i=22701
 [2] = https://curl.se/bug/?i=22799
 [3] = https://curl.se/bug/?i=22811
 [4] = https://curl.se/bug/?i=22838
 [5] = https://curl.se/bug/?i=22887
 [6] = https://curl.se/bug/?i=22840
 [7] = https://curl.se/bug/?i=22788
 [8] = https://curl.se/bug/?i=22797
 [9] = https://curl.se/bug/?i=22798
 [11] = https://curl.se/bug/?i=22791
 [12] = https://curl.se/bug/?i=22795
 [13] = https://curl.se/bug/?i=22786
 [14] = https://curl.se/bug/?i=22886
 [15] = https://curl.se/bug/?i=22720
 [16] = https://curl.se/bug/?i=22703
 [17] = https://curl.se/bug/?i=22827
 [18] = https://curl.se/bug/?i=22884
 [19] = https://curl.se/bug/?i=22823
 [20] = https://curl.se/bug/?i=22831
 [21] = https://curl.se/bug/?i=22787
 [22] = https://curl.se/bug/?i=22830
 [23] = https://curl.se/bug/?i=22740
 [24] = https://curl.se/bug/?i=22828
 [25] = https://curl.se/bug/?i=22807
 [26] = https://curl.se/bug/?i=22822
 [27] = https://curl.se/bug/?i=22826
 [28] = https://curl.se/bug/?i=22825
 [30] = https://curl.se/bug/?i=22874
 [31] = https://curl.se/bug/?i=22817
 [32] = https://curl.se/bug/?i=22805
 [33] = https://curl.se/bug/?i=22801
 [34] = https://curl.se/bug/?i=22815
 [35] = https://curl.se/bug/?i=22876
 [36] = https://curl.se/bug/?i=22806
 [37] = https://curl.se/bug/?i=22780
 [38] = https://curl.se/bug/?i=22766
 [39] = https://curl.se/bug/?i=22793
 [40] = https://curl.se/bug/?i=22875
 [41] = https://curl.se/bug/?i=22810
 [42] = https://curl.se/bug/?i=22796
 [43] = https://curl.se/bug/?i=22746
 [44] = https://curl.se/bug/?i=22804
 [45] = https://curl.se/bug/?i=22753
 [46] = https://curl.se/bug/?i=22784
 [47] = https://curl.se/bug/?i=22878
 [50] = https://curl.se/bug/?i=22873
 [51] = https://curl.se/bug/?i=22877
 [52] = https://curl.se/bug/?i=22871
 [53] = https://curl.se/bug/?i=22870
 [56] = https://curl.se/bug/?i=22869
 [57] = https://curl.se/bug/?i=22868
 [58] = https://curl.se/bug/?i=22866
 [60] = https://curl.se/bug/?i=22862
 [61] = https://curl.se/bug/?i=22860
 [65] = https://curl.se/bug/?i=22849
 [67] = https://curl.se/bug/?i=22839
 [69] = https://curl.se/bug/?i=22221
 [70] = https://curl.se/bug/?i=22843
