aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2021-12-09 00:06:34 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-12-09 00:06:34 +0000
commita63ec7d2a65b0c8fbe4e57a9bebd17015c1e1b57 (patch)
tree4ea7d66c596691acc81afb7ae39bf880fc63424c
parent3087f614137b31a9513740c4a02455590d06d4a8 (diff)
parentbf130f24c25b91b4db74885fe09b130f3ccd6d46 (diff)
downloadcurl-android13-mainline-go-uwb-release.tar.gz
Merge "Upgrade curl to curl-7_80_0" am: 109872d534 am: 5c5a0819f5 am: 361bd2eee1 am: bf130f24c2t_frc_odp_330442040t_frc_odp_330442000t_frc_con_330443020t_frc_cbr_330443000t_frc_ase_330444010t_frc_art_330443060t_frc_adb_330444000android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r57android-13.0.0_r56android-13.0.0_r55android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android-13.0.0_r30android-13.0.0_r29android-13.0.0_r28android-13.0.0_r27android-13.0.0_r24android-13.0.0_r23android-13.0.0_r22android-13.0.0_r21android-13.0.0_r20android-13.0.0_r19android-13.0.0_r18android-13.0.0_r17android-13.0.0_r16aml_uwb_331910010aml_uwb_331820070aml_uwb_331613010aml_uwb_331611010aml_uwb_331410010aml_uwb_331310030aml_uwb_331115000aml_uwb_331015040aml_uwb_330810010aml_tz4_332714070aml_tz4_332714050aml_tz4_332714010aml_tz4_331910000aml_tz4_331314030aml_tz4_331314020aml_tz4_331314010aml_tz4_331012050aml_tz4_331012040aml_tz4_331012000aml_go_wif_330911000aml_go_uwb_330912000aml_go_tz4_330912000aml_go_tet_330914010aml_go_swc_330913000aml_go_sta_330911000aml_go_sdk_330810000aml_go_sch_330911000aml_go_res_330912000aml_go_per_330912000aml_go_odp_330913000aml_go_odp_330912000aml_go_neu_330912000aml_go_net_330913000aml_go_mpr_330912000aml_go_ase_330913000aml_go_ads_330915100aml_go_ads_330915000aml_go_ads_330913000aml_go_adb_330913000aml_ase_331311020aml_ase_331112000aml_ase_331011020aml_ads_331920180aml_ads_331814200aml_ads_331710270aml_ads_331611190aml_ads_331511020aml_ads_331418080aml_ads_331131000android13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-qpr1-s8-releaseandroid13-qpr1-s7-releaseandroid13-qpr1-s6-releaseandroid13-qpr1-s5-releaseandroid13-qpr1-s4-releaseandroid13-qpr1-s3-releaseandroid13-qpr1-s2-releaseandroid13-qpr1-s1-releaseandroid13-qpr1-releaseandroid13-mainline-uwb-releaseandroid13-mainline-tzdata4-releaseandroid13-mainline-go-wifi-releaseandroid13-mainline-go-uwb-releaseandroid13-mainline-go-tzdata4-releaseandroid13-mainline-go-tethering-releaseandroid13-mainline-go-sdkext-releaseandroid13-mainline-go-scheduling-releaseandroid13-mainline-go-resolv-releaseandroid13-mainline-go-permission-releaseandroid13-mainline-go-os-statsd-releaseandroid13-mainline-go-odp-releaseandroid13-mainline-go-neuralnetworks-releaseandroid13-mainline-go-networking-releaseandroid13-mainline-go-mediaprovider-releaseandroid13-mainline-go-media-swcodec-releaseandroid13-mainline-go-appsearch-releaseandroid13-mainline-go-adservices-releaseandroid13-mainline-go-adbd-releaseandroid13-mainline-appsearch-releaseandroid13-mainline-adservices-releaseandroid13-frc-odp-releaseandroid13-frc-conscrypt-releaseandroid13-frc-cellbroadcast-releaseandroid13-frc-art-releaseandroid13-frc-adbd-releaseandroid13-devandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-releaseandroid13-d3-s1-releaseandroid13-d2-releaseaml_tz4_332714010
Original change: https://android-review.googlesource.com/c/platform/external/curl/+/1913847 Change-Id: I5b999a834d04fa6a86bd2940489915c015df311e
-rw-r--r--CHANGES6347
-rw-r--r--CMake/CurlTests.c20
-rw-r--r--CMake/OtherTests.cmake27
-rw-r--r--CMakeLists.txt172
-rw-r--r--METADATA14
-rwxr-xr-xMacOSX-Framework6
-rw-r--r--Makefile.am5
-rw-r--r--README2
-rw-r--r--RELEASE-NOTES650
-rw-r--r--acinclude.m4128
-rw-r--r--aclocal.m470
-rw-r--r--buildconf.bat634
-rwxr-xr-xcompile2
-rwxr-xr-xconfigure20989
-rw-r--r--configure.ac142
-rwxr-xr-xdepcomp2
-rw-r--r--docs/BINDINGS.md24
-rw-r--r--docs/BUG-BOUNTY.md2
-rw-r--r--docs/BUGS.md50
-rw-r--r--docs/CHECKSRC.md12
-rw-r--r--docs/CODE_REVIEW.md16
-rw-r--r--docs/CODE_STYLE.md22
-rw-r--r--docs/CONTRIBUTE.md52
-rw-r--r--docs/CURL-DISABLE.md12
-rw-r--r--docs/DEPRECATE.md7
-rw-r--r--docs/DYNBUF.md2
-rw-r--r--docs/FAQ259
-rw-r--r--docs/GOVERNANCE.md8
-rw-r--r--docs/HELP-US.md16
-rw-r--r--docs/HISTORY.md2
-rw-r--r--docs/HTTP-COOKIES.md8
-rw-r--r--docs/HTTP2.md4
-rw-r--r--docs/HTTP3.md31
-rw-r--r--docs/HYPER.md12
-rw-r--r--docs/INSTALL.cmake14
-rw-r--r--docs/INSTALL.md24
-rw-r--r--docs/INTERNALS.md63
-rw-r--r--docs/KNOWN_BUGS230
-rw-r--r--docs/MAIL-ETIQUETTE44
-rw-r--r--docs/MQTT.md4
-rw-r--r--docs/Makefile.am2
-rw-r--r--docs/NEW-PROTOCOL.md8
-rw-r--r--docs/PARALLEL-TRANSFERS.md2
-rw-r--r--docs/README.md4
-rw-r--r--docs/RELEASE-PROCEDURE.md9
-rw-r--r--docs/SECURITY-PROCESS.md33
-rw-r--r--docs/SSL-PROBLEMS.md10
-rw-r--r--docs/SSLCERTS.md16
-rw-r--r--docs/THANKS78
-rw-r--r--docs/TODO130
-rw-r--r--docs/TheArtOfHttpScripting.md82
-rw-r--r--docs/URL-SYNTAX.md35
-rw-r--r--docs/VERSIONS.md2
-rw-r--r--docs/cmdline-opts/MANPAGE.md1
-rw-r--r--docs/cmdline-opts/Makefile.inc1
-rw-r--r--docs/cmdline-opts/abstract-unix-socket.d1
-rw-r--r--docs/cmdline-opts/alt-svc.d3
-rw-r--r--docs/cmdline-opts/anyauth.d2
-rw-r--r--docs/cmdline-opts/append.d4
-rw-r--r--docs/cmdline-opts/aws-sigv4.d1
-rw-r--r--docs/cmdline-opts/basic.d2
-rw-r--r--docs/cmdline-opts/cacert.d12
-rw-r--r--docs/cmdline-opts/capath.d2
-rw-r--r--docs/cmdline-opts/cert-status.d1
-rw-r--r--docs/cmdline-opts/cert-type.d2
-rw-r--r--docs/cmdline-opts/cert.d4
-rw-r--r--docs/cmdline-opts/ciphers.d2
-rw-r--r--docs/cmdline-opts/compressed-ssh.d1
-rw-r--r--docs/cmdline-opts/compressed.d5
-rw-r--r--docs/cmdline-opts/config.d9
-rw-r--r--docs/cmdline-opts/connect-timeout.d5
-rw-r--r--docs/cmdline-opts/connect-to.d1
-rw-r--r--docs/cmdline-opts/continue-at.d3
-rw-r--r--docs/cmdline-opts/cookie-jar.d11
-rw-r--r--docs/cmdline-opts/cookie.d13
-rw-r--r--docs/cmdline-opts/create-dirs.d2
-rw-r--r--docs/cmdline-opts/create-file-mode.d1
-rw-r--r--docs/cmdline-opts/crlf.d2
-rw-r--r--docs/cmdline-opts/crlfile.d3
-rw-r--r--docs/cmdline-opts/curves.d1
-rw-r--r--docs/cmdline-opts/data-ascii.d2
-rw-r--r--docs/cmdline-opts/data-binary.d2
-rw-r--r--docs/cmdline-opts/data-raw.d2
-rw-r--r--docs/cmdline-opts/data-urlencode.d6
-rw-r--r--docs/cmdline-opts/data.d6
-rw-r--r--docs/cmdline-opts/delegation.d4
-rw-r--r--docs/cmdline-opts/digest.d2
-rw-r--r--docs/cmdline-opts/disable-eprt.d2
-rw-r--r--docs/cmdline-opts/disable-epsv.d2
-rw-r--r--docs/cmdline-opts/disable.d2
-rw-r--r--docs/cmdline-opts/disallow-username-in-url.d4
-rw-r--r--docs/cmdline-opts/dns-interface.d1
-rw-r--r--docs/cmdline-opts/dns-ipv4-addr.d1
-rw-r--r--docs/cmdline-opts/dns-ipv6-addr.d1
-rw-r--r--docs/cmdline-opts/dns-servers.d1
-rw-r--r--docs/cmdline-opts/doh-cert-status.d1
-rw-r--r--docs/cmdline-opts/doh-insecure.d1
-rw-r--r--docs/cmdline-opts/doh-url.d1
-rw-r--r--docs/cmdline-opts/dump-header.d2
-rw-r--r--docs/cmdline-opts/egd-file.d2
-rw-r--r--docs/cmdline-opts/engine.d2
-rw-r--r--docs/cmdline-opts/etag-compare.d1
-rw-r--r--docs/cmdline-opts/etag-save.d1
-rw-r--r--docs/cmdline-opts/expect100-timeout.d1
-rw-r--r--docs/cmdline-opts/fail-early.d1
-rw-r--r--docs/cmdline-opts/fail-with-body.d2
-rw-r--r--docs/cmdline-opts/fail.d2
-rw-r--r--docs/cmdline-opts/false-start.d1
-rw-r--r--docs/cmdline-opts/form-string.d2
-rw-r--r--docs/cmdline-opts/form.d2
-rw-r--r--docs/cmdline-opts/ftp-account.d1
-rw-r--r--docs/cmdline-opts/ftp-alternative-to-user.d1
-rw-r--r--docs/cmdline-opts/ftp-create-dirs.d4
-rw-r--r--docs/cmdline-opts/ftp-method.d5
-rw-r--r--docs/cmdline-opts/ftp-pasv.d3
-rw-r--r--docs/cmdline-opts/ftp-port.d13
-rw-r--r--docs/cmdline-opts/ftp-pret.d1
-rw-r--r--docs/cmdline-opts/ftp-skip-pasv-ip.d1
-rw-r--r--docs/cmdline-opts/ftp-ssl-ccc-mode.d1
-rw-r--r--docs/cmdline-opts/ftp-ssl-ccc.d1
-rw-r--r--docs/cmdline-opts/ftp-ssl-control.d3
-rwxr-xr-xdocs/cmdline-opts/gen.pl110
-rw-r--r--docs/cmdline-opts/get.d6
-rw-r--r--docs/cmdline-opts/globoff.d2
-rw-r--r--docs/cmdline-opts/happy-eyeballs-timeout-ms.d11
-rw-r--r--docs/cmdline-opts/haproxy-protocol.d7
-rw-r--r--docs/cmdline-opts/head.d2
-rw-r--r--docs/cmdline-opts/header.d10
-rw-r--r--docs/cmdline-opts/help.d2
-rw-r--r--docs/cmdline-opts/hostpubmd5.d1
-rw-r--r--docs/cmdline-opts/hostpubsha256.d11
-rw-r--r--docs/cmdline-opts/hsts.d3
-rw-r--r--docs/cmdline-opts/http0.9.d3
-rw-r--r--docs/cmdline-opts/http1.0.d3
-rw-r--r--docs/cmdline-opts/http1.1.d1
-rw-r--r--docs/cmdline-opts/http2-prior-knowledge.d1
-rw-r--r--docs/cmdline-opts/http2.d7
-rw-r--r--docs/cmdline-opts/http3.d4
-rw-r--r--docs/cmdline-opts/ignore-content-length.d4
-rw-r--r--docs/cmdline-opts/include.d2
-rw-r--r--docs/cmdline-opts/insecure.d5
-rw-r--r--docs/cmdline-opts/interface.d3
-rw-r--r--docs/cmdline-opts/ipv4.d3
-rw-r--r--docs/cmdline-opts/ipv6.d3
-rw-r--r--docs/cmdline-opts/junk-session-cookies.d4
-rw-r--r--docs/cmdline-opts/keepalive-time.d1
-rw-r--r--docs/cmdline-opts/key-type.d2
-rw-r--r--docs/cmdline-opts/key.d2
-rw-r--r--docs/cmdline-opts/krb.d2
-rw-r--r--docs/cmdline-opts/libcurl.d4
-rw-r--r--docs/cmdline-opts/limit-rate.d12
-rw-r--r--docs/cmdline-opts/list-only.d3
-rw-r--r--docs/cmdline-opts/local-port.d1
-rw-r--r--docs/cmdline-opts/location-trusted.d6
-rw-r--r--docs/cmdline-opts/location.d6
-rw-r--r--docs/cmdline-opts/login-options.d1
-rw-r--r--docs/cmdline-opts/mail-auth.d1
-rw-r--r--docs/cmdline-opts/mail-from.d1
-rw-r--r--docs/cmdline-opts/mail-rcpt-allowfails.d6
-rw-r--r--docs/cmdline-opts/mail-rcpt.d6
-rw-r--r--docs/cmdline-opts/manual.d2
-rw-r--r--docs/cmdline-opts/max-filesize.d9
-rw-r--r--docs/cmdline-opts/max-redirs.d2
-rw-r--r--docs/cmdline-opts/max-time.d7
-rw-r--r--docs/cmdline-opts/metalink.d1
-rw-r--r--docs/cmdline-opts/negotiate.d4
-rw-r--r--docs/cmdline-opts/netrc-file.d1
-rw-r--r--docs/cmdline-opts/netrc-optional.d4
-rw-r--r--docs/cmdline-opts/netrc.d10
-rw-r--r--docs/cmdline-opts/next.d4
-rw-r--r--docs/cmdline-opts/no-alpn.d1
-rw-r--r--docs/cmdline-opts/no-buffer.d2
-rw-r--r--docs/cmdline-opts/no-keepalive.d2
-rw-r--r--docs/cmdline-opts/no-npn.d1
-rw-r--r--docs/cmdline-opts/no-progress-meter.d1
-rw-r--r--docs/cmdline-opts/no-sessionid.d1
-rw-r--r--docs/cmdline-opts/noproxy.d1
-rw-r--r--docs/cmdline-opts/ntlm-wb.d2
-rw-r--r--docs/cmdline-opts/ntlm.d2
-rw-r--r--docs/cmdline-opts/oauth2-bearer.d2
-rw-r--r--docs/cmdline-opts/output-dir.d3
-rw-r--r--docs/cmdline-opts/output.d15
-rw-r--r--docs/cmdline-opts/page-footer48
-rw-r--r--docs/cmdline-opts/page-header25
-rw-r--r--docs/cmdline-opts/parallel-immediate.d4
-rw-r--r--docs/cmdline-opts/parallel-max.d4
-rw-r--r--docs/cmdline-opts/parallel.d4
-rw-r--r--docs/cmdline-opts/pass.d2
-rw-r--r--docs/cmdline-opts/path-as-is.d1
-rw-r--r--docs/cmdline-opts/pinnedpubkey.d5
-rw-r--r--docs/cmdline-opts/post301.d1
-rw-r--r--docs/cmdline-opts/post302.d1
-rw-r--r--docs/cmdline-opts/post303.d1
-rw-r--r--docs/cmdline-opts/preproxy.d1
-rw-r--r--docs/cmdline-opts/progress-bar.d5
-rw-r--r--docs/cmdline-opts/proto-default.d9
-rw-r--r--docs/cmdline-opts/proto-redir.d9
-rw-r--r--docs/cmdline-opts/proto.d1
-rw-r--r--docs/cmdline-opts/proxy-anyauth.d1
-rw-r--r--docs/cmdline-opts/proxy-basic.d2
-rw-r--r--docs/cmdline-opts/proxy-cacert.d1
-rw-r--r--docs/cmdline-opts/proxy-capath.d1
-rw-r--r--docs/cmdline-opts/proxy-cert-type.d1
-rw-r--r--docs/cmdline-opts/proxy-cert.d1
-rw-r--r--docs/cmdline-opts/proxy-ciphers.d1
-rw-r--r--docs/cmdline-opts/proxy-crlfile.d1
-rw-r--r--docs/cmdline-opts/proxy-digest.d2
-rw-r--r--docs/cmdline-opts/proxy-header.d3
-rw-r--r--docs/cmdline-opts/proxy-insecure.d1
-rw-r--r--docs/cmdline-opts/proxy-key-type.d1
-rw-r--r--docs/cmdline-opts/proxy-key.d2
-rw-r--r--docs/cmdline-opts/proxy-negotiate.d1
-rw-r--r--docs/cmdline-opts/proxy-ntlm.d2
-rw-r--r--docs/cmdline-opts/proxy-pass.d1
-rw-r--r--docs/cmdline-opts/proxy-pinnedpubkey.d5
-rw-r--r--docs/cmdline-opts/proxy-service-name.d1
-rw-r--r--docs/cmdline-opts/proxy-ssl-allow-beast.d1
-rw-r--r--docs/cmdline-opts/proxy-ssl-auto-client-cert.d1
-rw-r--r--docs/cmdline-opts/proxy-tls13-ciphers.d2
-rw-r--r--docs/cmdline-opts/proxy-tlsauthtype.d1
-rw-r--r--docs/cmdline-opts/proxy-tlspassword.d1
-rw-r--r--docs/cmdline-opts/proxy-tlsuser.d1
-rw-r--r--docs/cmdline-opts/proxy-tlsv1.d1
-rw-r--r--docs/cmdline-opts/proxy-user.d2
-rw-r--r--docs/cmdline-opts/proxy.d4
-rw-r--r--docs/cmdline-opts/proxy1.0.d2
-rw-r--r--docs/cmdline-opts/proxytunnel.d2
-rw-r--r--docs/cmdline-opts/pubkey.d2
-rw-r--r--docs/cmdline-opts/quote.d14
-rw-r--r--docs/cmdline-opts/random-file.d2
-rw-r--r--docs/cmdline-opts/range.d6
-rw-r--r--docs/cmdline-opts/raw.d1
-rw-r--r--docs/cmdline-opts/referer.d6
-rw-r--r--docs/cmdline-opts/remote-header-name.d4
-rw-r--r--docs/cmdline-opts/remote-name-all.d1
-rw-r--r--docs/cmdline-opts/remote-name.d2
-rw-r--r--docs/cmdline-opts/remote-time.d2
-rw-r--r--docs/cmdline-opts/request-target.d3
-rw-r--r--docs/cmdline-opts/request.d11
-rw-r--r--docs/cmdline-opts/resolve.d1
-rw-r--r--docs/cmdline-opts/retry-all-errors.d16
-rw-r--r--docs/cmdline-opts/retry-connrefused.d1
-rw-r--r--docs/cmdline-opts/retry-delay.d1
-rw-r--r--docs/cmdline-opts/retry-max-time.d7
-rw-r--r--docs/cmdline-opts/retry.d1
-rw-r--r--docs/cmdline-opts/sasl-authzid.d3
-rw-r--r--docs/cmdline-opts/sasl-ir.d1
-rw-r--r--docs/cmdline-opts/service-name.d1
-rw-r--r--docs/cmdline-opts/show-error.d5
-rw-r--r--docs/cmdline-opts/silent.d4
-rw-r--r--docs/cmdline-opts/socks4.d5
-rw-r--r--docs/cmdline-opts/socks4a.d5
-rw-r--r--docs/cmdline-opts/socks5-basic.d1
-rw-r--r--docs/cmdline-opts/socks5-gssapi-nec.d1
-rw-r--r--docs/cmdline-opts/socks5-gssapi-service.d1
-rw-r--r--docs/cmdline-opts/socks5-gssapi.d1
-rw-r--r--docs/cmdline-opts/socks5-hostname.d5
-rw-r--r--docs/cmdline-opts/socks5.d5
-rw-r--r--docs/cmdline-opts/speed-limit.d2
-rw-r--r--docs/cmdline-opts/speed-time.d2
-rw-r--r--docs/cmdline-opts/ssl-allow-beast.d11
-rw-r--r--docs/cmdline-opts/ssl-auto-client-cert.d1
-rw-r--r--docs/cmdline-opts/ssl-no-revoke.d1
-rw-r--r--docs/cmdline-opts/ssl-reqd.d3
-rw-r--r--docs/cmdline-opts/ssl-revoke-best-effort.d1
-rw-r--r--docs/cmdline-opts/ssl.d4
-rw-r--r--docs/cmdline-opts/sslv2.d8
-rw-r--r--docs/cmdline-opts/sslv3.d3
-rw-r--r--docs/cmdline-opts/stderr.d5
-rw-r--r--docs/cmdline-opts/styled-output.d4
-rw-r--r--docs/cmdline-opts/suppress-connect-headers.d4
-rw-r--r--docs/cmdline-opts/tcp-fastopen.d1
-rw-r--r--docs/cmdline-opts/tcp-nodelay.d3
-rw-r--r--docs/cmdline-opts/telnet-option.d2
-rw-r--r--docs/cmdline-opts/tftp-blksize.d1
-rw-r--r--docs/cmdline-opts/tftp-no-options.d1
-rw-r--r--docs/cmdline-opts/time-cond.d6
-rw-r--r--docs/cmdline-opts/tls-max.d2
-rw-r--r--docs/cmdline-opts/tls13-ciphers.d2
-rw-r--r--docs/cmdline-opts/tlsauthtype.d1
-rw-r--r--docs/cmdline-opts/tlspassword.d3
-rw-r--r--docs/cmdline-opts/tlsuser.d3
-rw-r--r--docs/cmdline-opts/tlsv1.0.d1
-rw-r--r--docs/cmdline-opts/tlsv1.1.d1
-rw-r--r--docs/cmdline-opts/tlsv1.2.d1
-rw-r--r--docs/cmdline-opts/tlsv1.3.d1
-rw-r--r--docs/cmdline-opts/tlsv1.d3
-rw-r--r--docs/cmdline-opts/tr-encoding.d1
-rw-r--r--docs/cmdline-opts/trace-ascii.d11
-rw-r--r--docs/cmdline-opts/trace-time.d4
-rw-r--r--docs/cmdline-opts/trace.d5
-rw-r--r--docs/cmdline-opts/unix-socket.d1
-rw-r--r--docs/cmdline-opts/upload-file.d18
-rw-r--r--docs/cmdline-opts/url.d6
-rw-r--r--docs/cmdline-opts/use-ascii.d2
-rw-r--r--docs/cmdline-opts/user-agent.d3
-rw-r--r--docs/cmdline-opts/user.d8
-rw-r--r--docs/cmdline-opts/verbose.d9
-rw-r--r--docs/cmdline-opts/version.d2
-rw-r--r--docs/cmdline-opts/write-out.d13
-rw-r--r--docs/cmdline-opts/xattr.d2
-rw-r--r--docs/curl-config.12
-rw-r--r--docs/curl.11967
-rw-r--r--docs/examples/Makefile.m3211
-rw-r--r--docs/examples/README.md4
-rw-r--r--docs/examples/anyauthput.c4
-rw-r--r--docs/examples/chkspeed.c6
-rw-r--r--docs/examples/cookie_interface.c10
-rw-r--r--docs/examples/curlgtk.c4
-rw-r--r--docs/examples/ephiperfifo.c16
-rw-r--r--docs/examples/evhiperfifo.c6
-rw-r--r--docs/examples/externalsocket.c2
-rw-r--r--docs/examples/fileupload.c6
-rw-r--r--docs/examples/fopen.c2
-rw-r--r--docs/examples/ftpget.c4
-rw-r--r--docs/examples/ftpsget.c4
-rw-r--r--docs/examples/ftpupload.c4
-rw-r--r--docs/examples/getinmemory.c4
-rw-r--r--docs/examples/ghiper.c4
-rw-r--r--docs/examples/hiperfifo.c8
-rw-r--r--docs/examples/htmltidy.c10
-rw-r--r--docs/examples/http2-download.c2
-rw-r--r--docs/examples/http2-pushinmemory.c4
-rw-r--r--docs/examples/http2-serverpush.c4
-rw-r--r--docs/examples/http2-upload.c4
-rw-r--r--docs/examples/http3.c4
-rw-r--r--docs/examples/httpcustomheader.c4
-rw-r--r--docs/examples/httpput-postfields.c6
-rw-r--r--docs/examples/httpput.c4
-rw-r--r--docs/examples/https.c6
-rw-r--r--docs/examples/imap-append.c4
-rw-r--r--docs/examples/imap-ssl.c6
-rw-r--r--docs/examples/imap-store.c4
-rw-r--r--docs/examples/imap-tls.c6
-rw-r--r--docs/examples/multi-app.c2
-rw-r--r--docs/examples/multi-debugcallback.c2
-rw-r--r--docs/examples/multi-event.c4
-rw-r--r--docs/examples/multi-legacy.c2
-rw-r--r--docs/examples/multi-single.c2
-rw-r--r--docs/examples/multi-uv.c4
-rw-r--r--docs/examples/multithread.c8
-rw-r--r--docs/examples/pop3-ssl.c6
-rw-r--r--docs/examples/pop3-tls.c6
-rw-r--r--docs/examples/postinmemory.c6
-rw-r--r--docs/examples/postit2-formadd.c4
-rw-r--r--docs/examples/postit2.c4
-rw-r--r--docs/examples/progressfunc.c4
-rw-r--r--docs/examples/sendrecv.c9
-rw-r--r--docs/examples/sftpget.c8
-rw-r--r--docs/examples/simplepost.c4
-rw-r--r--docs/examples/simplessl.c10
-rw-r--r--docs/examples/smooth-gtk-thread.c74
-rw-r--r--docs/examples/smtp-authzid.c18
-rw-r--r--docs/examples/smtp-expn.c10
-rw-r--r--docs/examples/smtp-mail.c18
-rw-r--r--docs/examples/smtp-mime.c18
-rw-r--r--docs/examples/smtp-multi.c4
-rw-r--r--docs/examples/smtp-ssl.c8
-rw-r--r--docs/examples/smtp-tls.c8
-rw-r--r--docs/examples/smtp-vrfy.c12
-rw-r--r--docs/examples/threaded-ssl.c6
-rw-r--r--docs/examples/urlapi.c8
-rw-r--r--docs/examples/xmlstream.c4
-rw-r--r--docs/libcurl/ABI.md8
-rw-r--r--docs/libcurl/Makefile.inc3
-rw-r--r--docs/libcurl/curl_easy_cleanup.316
-rw-r--r--docs/libcurl/curl_easy_duphandle.319
-rw-r--r--docs/libcurl/curl_easy_escape.314
-rw-r--r--docs/libcurl/curl_easy_getinfo.324
-rw-r--r--docs/libcurl/curl_easy_init.310
-rw-r--r--docs/libcurl/curl_easy_option_by_id.311
-rw-r--r--docs/libcurl/curl_easy_option_by_name.311
-rw-r--r--docs/libcurl/curl_easy_option_next.314
-rw-r--r--docs/libcurl/curl_easy_pause.335
-rw-r--r--docs/libcurl/curl_easy_perform.328
-rw-r--r--docs/libcurl/curl_easy_recv.321
-rw-r--r--docs/libcurl/curl_easy_reset.312
-rw-r--r--docs/libcurl/curl_easy_send.325
-rw-r--r--docs/libcurl/curl_easy_setopt.348
-rw-r--r--docs/libcurl/curl_easy_strerror.316
-rw-r--r--docs/libcurl/curl_easy_unescape.320
-rw-r--r--docs/libcurl/curl_easy_upkeep.322
-rw-r--r--docs/libcurl/curl_escape.318
-rw-r--r--docs/libcurl/curl_formadd.350
-rw-r--r--docs/libcurl/curl_formfree.320
-rw-r--r--docs/libcurl/curl_formget.311
-rw-r--r--docs/libcurl/curl_free.316
-rw-r--r--docs/libcurl/curl_getdate.361
-rw-r--r--docs/libcurl/curl_getenv.316
-rw-r--r--docs/libcurl/curl_global_cleanup.318
-rw-r--r--docs/libcurl/curl_global_init.322
-rw-r--r--docs/libcurl/curl_global_init_mem.315
-rw-r--r--docs/libcurl/curl_global_sslset.321
-rw-r--r--docs/libcurl/curl_mime_addpart.312
-rw-r--r--docs/libcurl/curl_mime_data.314
-rw-r--r--docs/libcurl/curl_mime_data_cb.315
-rw-r--r--docs/libcurl/curl_mime_encoder.314
-rw-r--r--docs/libcurl/curl_mime_filedata.318
-rw-r--r--docs/libcurl/curl_mime_filename.312
-rw-r--r--docs/libcurl/curl_mime_free.314
-rw-r--r--docs/libcurl/curl_mime_headers.312
-rw-r--r--docs/libcurl/curl_mime_init.324
-rw-r--r--docs/libcurl/curl_mime_name.312
-rw-r--r--docs/libcurl/curl_mime_subparts.328
-rw-r--r--docs/libcurl/curl_mime_type.312
-rw-r--r--docs/libcurl/curl_mprintf.37
-rw-r--r--docs/libcurl/curl_multi_add_handle.317
-rw-r--r--docs/libcurl/curl_multi_assign.321
-rw-r--r--docs/libcurl/curl_multi_cleanup.313
-rw-r--r--docs/libcurl/curl_multi_fdset.325
-rw-r--r--docs/libcurl/curl_multi_info_read.316
-rw-r--r--docs/libcurl/curl_multi_init.315
-rw-r--r--docs/libcurl/curl_multi_perform.3105
-rw-r--r--docs/libcurl/curl_multi_poll.38
-rw-r--r--docs/libcurl/curl_multi_remove_handle.318
-rw-r--r--docs/libcurl/curl_multi_setopt.317
-rw-r--r--docs/libcurl/curl_multi_socket.339
-rw-r--r--docs/libcurl/curl_multi_socket_action.317
-rw-r--r--docs/libcurl/curl_multi_strerror.315
-rw-r--r--docs/libcurl/curl_multi_timeout.317
-rw-r--r--docs/libcurl/curl_multi_wait.38
-rw-r--r--docs/libcurl/curl_multi_wakeup.312
-rw-r--r--docs/libcurl/curl_share_cleanup.314
-rw-r--r--docs/libcurl/curl_share_init.314
-rw-r--r--docs/libcurl/curl_share_setopt.314
-rw-r--r--docs/libcurl/curl_share_strerror.315
-rw-r--r--docs/libcurl/curl_slist_append.316
-rw-r--r--docs/libcurl/curl_slist_free_all.310
-rw-r--r--docs/libcurl/curl_strequal.313
-rw-r--r--docs/libcurl/curl_unescape.320
-rw-r--r--docs/libcurl/curl_url.310
-rw-r--r--docs/libcurl/curl_url_cleanup.38
-rw-r--r--docs/libcurl/curl_url_dup.38
-rw-r--r--docs/libcurl/curl_url_get.336
-rw-r--r--docs/libcurl/curl_url_set.329
-rw-r--r--docs/libcurl/curl_url_strerror.350
-rw-r--r--docs/libcurl/curl_version.311
-rw-r--r--docs/libcurl/curl_version_info.316
-rw-r--r--docs/libcurl/libcurl-easy.323
-rw-r--r--docs/libcurl/libcurl-env.38
-rw-r--r--docs/libcurl/libcurl-errors.339
-rw-r--r--docs/libcurl/libcurl-multi.318
-rw-r--r--docs/libcurl/libcurl-security.342
-rw-r--r--docs/libcurl/libcurl-share.38
-rw-r--r--docs/libcurl/libcurl-symbols.376
-rw-r--r--docs/libcurl/libcurl-thread.310
-rw-r--r--docs/libcurl/libcurl-tutorial.3158
-rw-r--r--docs/libcurl/libcurl-url.37
-rw-r--r--docs/libcurl/libcurl.328
-rwxr-xr-xdocs/libcurl/mksymbolsmanpage.pl6
-rw-r--r--docs/libcurl/opts/CURLINFO_ACTIVESOCKET.34
-rw-r--r--docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.310
-rw-r--r--docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.316
-rw-r--r--docs/libcurl/opts/CURLINFO_CERTINFO.39
-rw-r--r--docs/libcurl/opts/CURLINFO_CONDITION_UNMET.38
-rw-r--r--docs/libcurl/opts/CURLINFO_CONNECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.34
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.34
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.34
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.34
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_TYPE.36
-rw-r--r--docs/libcurl/opts/CURLINFO_COOKIELIST.36
-rw-r--r--docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.38
-rw-r--r--docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.38
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME.34
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME_T.34
-rw-r--r--docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HEADER_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_VERSION.34
-rw-r--r--docs/libcurl/opts/CURLINFO_LASTSOCKET.34
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NUM_CONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLINFO_OS_ERRNO.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXY_ERROR.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_URL.310
-rw-r--r--docs/libcurl/opts/CURLINFO_REFERER.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REQUEST_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RESPONSE_CODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RETRY_AFTER.38
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SCHEME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_ENGINES.34
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SESSION.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.34
-rw-r--r--docs/libcurl/opts/CURLINFO_TOTAL_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAXCONNECTS.36
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.36
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.34
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.38
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.38
-rw-r--r--docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.337
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.310
-rw-r--r--docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_ALTSVC.36
-rw-r--r--docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.310
-rw-r--r--docs/libcurl/opts/CURLOPT_APPEND.36
-rw-r--r--docs/libcurl/opts/CURLOPT_AUTOREFERER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_AWS_SIGV4.34
-rw-r--r--docs/libcurl/opts/CURLOPT_BUFFERSIZE.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CAINFO.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CAINFO_BLOB.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CAPATH.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CERTINFO.37
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_ONLY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_TO.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEFILE.34
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEJAR.36
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.38
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIESESSION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLF.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLFILE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_CURLU.314
-rw-r--r--docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.38
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGDATA.332
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DIRLISTONLY.34
-rw-r--r--docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.36
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.312
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_INTERFACE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.34
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.34
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SERVERS.38
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.36
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.36
-rw-r--r--docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DOH_URL.323
-rw-r--r--docs/libcurl/opts/CURLOPT_EGDSOCKET.34
-rw-r--r--docs/libcurl/opts/CURLOPT_ERRORBUFFER.314
-rw-r--r--docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FAILONERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FILETIME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_DATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FORBID_REUSE.33
-rw-r--r--docs/libcurl/opts/CURLOPT_FRESH_CONNECT.34
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPPORT.34
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPSSLAUTH.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.34
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.34
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.322
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.36
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_PRET.36
-rw-r--r--docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.39
-rw-r--r--docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADER.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERFUNCTION.314
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADEROPT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTS.311
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTSREADDATA.313
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.315
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.313
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.312
-rw-r--r--docs/libcurl/opts/CURLOPT_HSTS_CTRL.39
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP200ALIASES.316
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPAUTH.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPGET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPHEADER.316
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPOST.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.36
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.39
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_VERSION.316
-rw-r--r--docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.34
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERFACE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLDATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_IPRESOLVE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_ISSUERCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.36
-rw-r--r--docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KEYPASSWD.36
-rw-r--r--docs/libcurl/opts/CURLOPT_KRBLEVEL.38
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.36
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_FROM.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.37
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXAGE_CONN.316
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXCONNECTS.34
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.366
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXREDIRS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.34
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.34
-rw-r--r--docs/libcurl/opts/CURLOPT_MIMEPOST.314
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC.38
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC_FILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOBODY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROGRESS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROXY.34
-rw-r--r--docs/libcurl/opts/CURLOPT_NOSIGNAL.321
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PATH_AS_IS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.310
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.313
-rw-r--r--docs/libcurl/opts/CURLOPT_PORT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_POST.36
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.34
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTREDIR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PREQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PREREQDATA.362
-rw-r--r--docs/libcurl/opts/CURLOPT_PREREQFUNCTION.3105
-rw-r--r--docs/libcurl/opts/CURLOPT_PRE_PROXY.38
-rw-r--r--docs/libcurl/opts/CURLOPT_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSDATA.333
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.337
-rw-r--r--docs/libcurl/opts/CURLOPT_PROTOCOLS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY.310
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYAUTH.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYHEADER.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPORT.34
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYTYPE.310
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERPWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAINFO.34
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.34
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAPATH.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.38
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.310
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.38
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.327
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.314
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.38
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.34
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PUT.327
-rw-r--r--docs/libcurl/opts/CURLOPT_QUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RANDOM_FILE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RANGE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_READDATA.312
-rw-r--r--docs/libcurl/opts/CURLOPT_READFUNCTION.38
-rw-r--r--docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.38
-rw-r--r--docs/libcurl/opts/CURLOPT_REFERER.34
-rw-r--r--docs/libcurl/opts/CURLOPT_REQUEST_TARGET.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_REQUEST.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.36
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SASL_AUTHZID.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SASL_IR.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKDATA.310
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKFUNCTION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SHARE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTDATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.38
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.361
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYDATA.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.310
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERTTYPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.38
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEY.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEYTYPE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLVERSION.34
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.328
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.337
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.381
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_FALSESTART.38
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_OPTIONS.310
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STDERR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.36
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.38
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_NODELAY.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TELNETOPTIONS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.38
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMECONDITION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT_MS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.38
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.34
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.34
-rw-r--r--docs/libcurl/opts/CURLOPT_TRAILERDATA.310
-rw-r--r--docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.310
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFERTEXT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.341
-rw-r--r--docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.39
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD.38
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.36
-rw-r--r--docs/libcurl/opts/CURLOPT_URL.316
-rw-r--r--docs/libcurl/opts/CURLOPT_USERAGENT.36
-rw-r--r--docs/libcurl/opts/CURLOPT_USERNAME.34
-rw-r--r--docs/libcurl/opts/CURLOPT_USERPWD.34
-rw-r--r--docs/libcurl/opts/CURLOPT_USE_SSL.34
-rw-r--r--docs/libcurl/opts/CURLOPT_VERBOSE.38
-rw-r--r--docs/libcurl/opts/CURLOPT_WILDCARDMATCH.322
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEDATA.314
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEFUNCTION.318
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFODATA.333
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.337
-rw-r--r--docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.36
-rw-r--r--docs/libcurl/opts/Makefile.inc4
-rw-r--r--docs/libcurl/symbols-in-versions10
-rw-r--r--docs/options-in-versions1
-rw-r--r--include/curl/curl.h39
-rw-r--r--include/curl/curlver.h8
-rw-r--r--include/curl/typecheck-gcc.h2
-rw-r--r--include/curl/urlapi.h9
-rw-r--r--lib/.checksrc1
-rw-r--r--lib/Makefile.am4
-rw-r--r--lib/Makefile.m3211
-rw-r--r--lib/Makefile.netware1
-rw-r--r--lib/asyn-ares.c156
-rw-r--r--lib/asyn-thread.c1
-rw-r--r--lib/c-hyper.c356
-rw-r--r--lib/c-hyper.h1
-rwxr-xr-xlib/checksrc.pl73
-rw-r--r--lib/config-amigaos.h1
-rw-r--r--lib/config-mac.h1
-rw-r--r--lib/config-os400.h9
-rw-r--r--lib/config-plan9.h1
-rw-r--r--lib/config-riscos.h9
-rw-r--r--lib/config-tpf.h9
-rw-r--r--lib/config-vxworks.h9
-rw-r--r--lib/config-win32.h8
-rw-r--r--lib/config-win32ce.h10
-rw-r--r--lib/connect.c31
-rw-r--r--lib/content_encoding.c3
-rw-r--r--lib/curl_config.h21
-rw-r--r--lib/curl_config.h.cmake82
-rw-r--r--lib/curl_config.h.in21
-rw-r--r--lib/curl_des.c4
-rw-r--r--lib/curl_gssapi.c10
-rw-r--r--lib/curl_ntlm_core.c19
-rw-r--r--lib/curl_ntlm_wb.c3
-rw-r--r--lib/curl_sasl.c125
-rw-r--r--lib/curl_sasl.h67
-rw-r--r--lib/curl_setup.h42
-rw-r--r--lib/curl_setup_once.h20
-rw-r--r--lib/curl_sha256.h9
-rw-r--r--lib/doh.c25
-rw-r--r--lib/easy.c2
-rw-r--r--lib/easyoptions.c7
-rw-r--r--lib/ftp.c23
-rw-r--r--lib/hostasyn.c1
-rw-r--r--lib/hostip.c45
-rw-r--r--lib/hostip.h2
-rw-r--r--lib/hostip4.c1
-rw-r--r--lib/hostip6.c29
-rw-r--r--lib/hostsyn.c3
-rw-r--r--lib/hsts.c46
-rw-r--r--lib/hsts.h2
-rw-r--r--lib/http.c144
-rw-r--r--lib/http.h4
-rw-r--r--lib/http2.c66
-rw-r--r--lib/http_aws_sigv4.c9
-rw-r--r--lib/http_ntlm.c11
-rw-r--r--lib/http_proxy.c133
-rw-r--r--lib/imap.c182
-rw-r--r--lib/krb5.c6
-rw-r--r--lib/libcurl.plist6
-rw-r--r--lib/libcurl.rc4
-rw-r--r--lib/llist.c4
-rw-r--r--lib/md4.c19
-rw-r--r--lib/md5.c28
-rw-r--r--lib/mime.c16
-rwxr-xr-xlib/mk-ca-bundle.pl20
-rw-r--r--lib/mqtt.c4
-rw-r--r--lib/multi.c39
-rw-r--r--lib/non-ascii.c16
-rw-r--r--lib/pop3.c138
-rw-r--r--lib/progress.c7
-rw-r--r--lib/select.c2
-rw-r--r--lib/select.h24
-rw-r--r--lib/sendf.c8
-rw-r--r--lib/setopt.c29
-rw-r--r--lib/setup-win32.h14
-rw-r--r--lib/sha256.c135
-rw-r--r--lib/smtp.c106
-rw-r--r--lib/socks.c14
-rw-r--r--lib/socks_gssapi.c4
-rw-r--r--lib/socks_sspi.c2
-rw-r--r--lib/splay.c2
-rw-r--r--lib/strdup.c28
-rw-r--r--lib/strdup.h5
-rw-r--r--lib/strerror.c75
-rw-r--r--lib/system_win32.c2
-rw-r--r--lib/tftp.c6
-rw-r--r--lib/transfer.c2
-rw-r--r--lib/url.c44
-rw-r--r--lib/urlapi.c199
-rw-r--r--lib/urldata.h19
-rw-r--r--lib/vauth/krb5_gssapi.c76
-rw-r--r--lib/vauth/krb5_sspi.c68
-rw-r--r--lib/vauth/vauth.h1
-rw-r--r--lib/version_win32.c53
-rw-r--r--lib/vquic/ngtcp2.c223
-rw-r--r--lib/vquic/ngtcp2.h8
-rw-r--r--lib/vssh/libssh.c1
-rw-r--r--lib/vssh/libssh2.c156
-rw-r--r--lib/vssh/wolfssh.c6
-rw-r--r--lib/vtls/bearssl.c88
-rw-r--r--lib/vtls/gskit.c26
-rw-r--r--lib/vtls/gtls.c45
-rw-r--r--lib/vtls/mbedtls.c97
-rw-r--r--lib/vtls/mbedtls_threadlock.c27
-rw-r--r--lib/vtls/mesalink.c2
-rw-r--r--lib/vtls/nss.c7
-rw-r--r--lib/vtls/openssl.c183
-rw-r--r--lib/vtls/rustls.c10
-rw-r--r--lib/vtls/schannel.c68
-rw-r--r--lib/vtls/schannel_verify.c2
-rw-r--r--lib/vtls/sectransp.c130
-rw-r--r--lib/vtls/vtls.c10
-rw-r--r--lib/vtls/vtls.h3
-rw-r--r--lib/vtls/wolfssl.c90
-rw-r--r--lib/x509asn1.c24
-rw-r--r--lib/x509asn1.h5
-rw-r--r--local-configure.patch2
-rw-r--r--m4/curl-compilers.m42
-rw-r--r--m4/curl-confopts.m44
-rw-r--r--m4/curl-functions.m411
-rw-r--r--m4/curl-openssl.m451
-rw-r--r--m4/xc-lt-iface.m44
-rwxr-xr-xmaketgz4
-rwxr-xr-xmissing2
-rw-r--r--packages/OS400/curl.inc.in6
-rw-r--r--projects/Windows/VC10/src/curl.vcxproj1
-rw-r--r--projects/Windows/VC11/src/curl.vcxproj1
-rw-r--r--projects/Windows/VC12/src/curl.vcxproj1
-rw-r--r--projects/Windows/VC14/src/curl.vcxproj1
-rw-r--r--projects/Windows/VC15/src/curl.vcxproj1
-rw-r--r--projects/Windows/VC6/src/curl.dsp4
-rw-r--r--projects/Windows/VC7.1/src/curl.vcproj3
-rw-r--r--projects/Windows/VC7/src/curl.vcproj3
-rw-r--r--projects/Windows/VC8/src/curl.vcproj4
-rw-r--r--projects/Windows/VC9/src/curl.vcproj4
-rw-r--r--projects/build-wolfssl.bat784
-rw-r--r--projects/checksrc.bat446
-rw-r--r--projects/generate.bat956
-rw-r--r--src/Makefile.am3
-rw-r--r--src/Makefile.inc1
-rw-r--r--src/Makefile.m3211
-rw-r--r--src/tool_cb_prg.c31
-rw-r--r--src/tool_cfgable.c1
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_doswin.c2
-rw-r--r--src/tool_easysrc.c4
-rw-r--r--src/tool_filetime.c5
-rw-r--r--src/tool_formparse.c26
-rw-r--r--src/tool_getparam.c31
-rw-r--r--src/tool_getparam.h4
-rw-r--r--src/tool_help.c798
-rw-r--r--src/tool_help.h44
-rw-r--r--src/tool_helpers.c6
-rw-r--r--src/tool_hugehelp.c12302
-rw-r--r--src/tool_listhelp.c764
-rw-r--r--src/tool_main.c4
-rw-r--r--src/tool_operate.c225
-rw-r--r--src/tool_operate.h3
-rw-r--r--src/tool_progress.c3
-rw-r--r--src/tool_util.c6
-rw-r--r--src/tool_version.h2
-rw-r--r--src/tool_vms.c2
-rw-r--r--src/tool_xattr.c5
-rwxr-xr-xtest-driver11
-rw-r--r--tests/CMakeLists.txt3
-rw-r--r--tests/FILEFORMAT.md1
-rw-r--r--tests/Makefile.am8
-rw-r--r--tests/data/DISABLED69
-rw-r--r--tests/data/Makefile.inc32
-rw-r--r--tests/data/test100712
-rw-r--r--tests/data/test100912
-rw-r--r--tests/data/test104912
-rw-r--r--tests/data/test109312
-rw-r--r--tests/data/test109412
-rw-r--r--tests/data/test109924
-rw-r--r--tests/data/test112215
-rw-r--r--tests/data/test112351
-rw-r--r--tests/data/test11257
-rw-r--r--tests/data/test11384
-rw-r--r--tests/data/test11444
-rw-r--r--tests/data/test11602
-rw-r--r--tests/data/test11644
-rw-r--r--tests/data/test11707
-rw-r--r--tests/data/test11717
-rw-r--r--tests/data/test117310
-rw-r--r--tests/data/test117646
-rw-r--r--tests/data/test1184108
-rw-r--r--tests/data/test1185184
-rw-r--r--tests/data/test123812
-rw-r--r--tests/data/test12426
-rw-r--r--tests/data/test12436
-rw-r--r--tests/data/test12664
-rw-r--r--tests/data/test12674
-rw-r--r--tests/data/test12723
-rw-r--r--tests/data/test12733
-rw-r--r--tests/data/test128010
-rw-r--r--tests/data/test12872
-rw-r--r--tests/data/test12942
-rw-r--r--tests/data/test14002
-rw-r--r--tests/data/test14012
-rw-r--r--tests/data/test14022
-rw-r--r--tests/data/test14032
-rw-r--r--tests/data/test14042
-rw-r--r--tests/data/test14052
-rw-r--r--tests/data/test14062
-rw-r--r--tests/data/test14072
-rw-r--r--tests/data/test14202
-rw-r--r--tests/data/test142950
-rw-r--r--tests/data/test14307
-rw-r--r--tests/data/test14315
-rw-r--r--tests/data/test14323
-rw-r--r--tests/data/test14512
-rw-r--r--tests/data/test146124
-rw-r--r--tests/data/test14636
-rw-r--r--tests/data/test14646
-rw-r--r--tests/data/test1465bin3028 -> 3028 bytes
-rw-r--r--tests/data/test146645
-rw-r--r--tests/data/test153819
-rw-r--r--tests/data/test154267
-rw-r--r--tests/data/test15596
-rw-r--r--tests/data/test15602
-rw-r--r--tests/data/test15613
-rw-r--r--tests/data/test16604
-rw-r--r--tests/data/test191515
-rw-r--r--tests/data/test193772
-rw-r--r--tests/data/test1938bin0 -> 1281 bytes
-rw-r--r--tests/data/test200212
-rw-r--r--tests/data/test200324
-rw-r--r--tests/data/test200424
-rw-r--r--tests/data/test203361
-rw-r--r--tests/data/test20341
-rw-r--r--tests/data/test20371
-rw-r--r--tests/data/test20411
-rw-r--r--tests/data/test2075
-rw-r--r--tests/data/test20702
-rw-r--r--tests/data/test207961
-rw-r--r--tests/data/test2080bin20673 -> 20675 bytes
-rw-r--r--tests/data/test208251
-rw-r--r--tests/data/test208345
-rw-r--r--tests/data/test208454
-rw-r--r--tests/data/test208564
-rw-r--r--tests/data/test208652
-rw-r--r--tests/data/test208761
-rw-r--r--tests/data/test262bin1148 -> 1178 bytes
-rw-r--r--tests/data/test27112
-rw-r--r--tests/data/test28312
-rw-r--r--tests/data/test28412
-rw-r--r--tests/data/test28512
-rw-r--r--tests/data/test28612
-rw-r--r--tests/data/test30001
-rw-r--r--tests/data/test30011
-rw-r--r--tests/data/test302144
-rw-r--r--tests/data/test302244
-rw-r--r--tests/data/test302360
-rw-r--r--tests/data/test302460
-rw-r--r--tests/data/test31140
-rw-r--r--tests/data/test3101
-rw-r--r--tests/data/test31913
-rw-r--r--tests/data/test3263
-rw-r--r--tests/data/test33212
-rw-r--r--tests/data/test36565
-rw-r--r--tests/data/test36649
-rw-r--r--tests/data/test36748
-rw-r--r--tests/data/test36849
-rw-r--r--tests/data/test36947
-rw-r--r--tests/data/test37036
-rw-r--r--tests/data/test39261
-rw-r--r--tests/data/test43571
-rw-r--r--tests/data/test4932
-rw-r--r--tests/data/test5524
-rw-r--r--tests/data/test5591
-rw-r--r--tests/data/test89770
-rw-r--r--tests/data/test98052
-rw-r--r--tests/data/test98159
-rw-r--r--tests/data/test98257
-rw-r--r--tests/data/test98352
-rw-r--r--tests/data/test98456
-rw-r--r--tests/data/test98554
-rw-r--r--tests/data/test98653
-rwxr-xr-xtests/dictserver.py7
-rwxr-xr-xtests/ftpserver.pl9
-rwxr-xr-xtests/httpserver.pl5
-rw-r--r--tests/libtest/Makefile.inc24
-rw-r--r--tests/libtest/lib1538.c8
-rw-r--r--tests/libtest/lib1542.c86
-rw-r--r--tests/libtest/lib1559.c14
-rw-r--r--tests/libtest/lib1560.c137
-rw-r--r--tests/libtest/lib1565.c13
-rw-r--r--tests/libtest/lib1915.c49
-rw-r--r--tests/libtest/lib1937.c64
-rw-r--r--tests/libtest/lib1938.c66
-rw-r--r--tests/libtest/lib517.c4
-rw-r--r--tests/libtest/lib552.c6
-rw-r--r--tests/libtest/lib557.c1
-rw-r--r--tests/libtest/lib658.c5
-rw-r--r--tests/libtest/lib674.c5
-rw-r--r--tests/libtest/libprereq.c98
-rwxr-xr-xtests/libtest/mk-lib1521.pl3
-rw-r--r--tests/libtest/test.h4
-rw-r--r--tests/libtest/testutil.c6
-rwxr-xr-xtests/manpage-scan.pl12
-rw-r--r--tests/manpage-syntax.pl172
-rwxr-xr-xtests/negtelnetserver.py7
-rwxr-xr-xtests/rtspserver.pl5
-rw-r--r--tests/runtests.14
-rwxr-xr-xtests/runtests.pl160
-rwxr-xr-xtests/secureserver.pl5
-rw-r--r--tests/server/mqttd.c5
-rw-r--r--tests/server/rtspd.c22
-rw-r--r--tests/server/sockfilt.c14
-rw-r--r--tests/server/socksd.c13
-rw-r--r--tests/server/sws.c25
-rw-r--r--tests/server/tftpd.c49
-rw-r--r--tests/server/util.c26
-rw-r--r--tests/server/util.h3
-rwxr-xr-xtests/smbserver.py14
-rw-r--r--tests/sshhelp.pm5
-rw-r--r--tests/sshserver.pl37
-rw-r--r--tests/testcurl.12
-rwxr-xr-xtests/tftpserver.pl5
-rw-r--r--tests/unit/unit1621.c4
-rw-r--r--tests/unit/unit1650.c6
-rwxr-xr-xtests/util.py4
-rw-r--r--winbuild/README.md3
-rwxr-xr-xwinbuild/gen_resp_file.bat64
1154 files changed, 37479 insertions, 26159 deletions
diff --git a/CHANGES b/CHANGES
index 3842d916a..f77f0a9e1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,3277 @@
Changelog
+Version 7.80.0 (10 Nov 2021)
+
+Daniel Stenberg (10 Nov 2021)
+- RELEASE-NOTES: synced
+
+ for curl 7.80.0
+
+- THANKS: add contributors from the 7.80.0 cycle
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: advertise h3 as well as h3-29
+
+ Advertise h3 as well as h3-29 since some servers out there require h3
+ for QUIC v1.
+
+ Closes #7979
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: use QUIC v1 consistently
+
+ Since we switched to v1 quic_transport_parameters codepoint in #7960
+ with quictls, lets use QUIC v1 consistently.
+
+ Closes #7979
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: compile with the latest nghttp3
+
+ Closes #7978
+
+Marc Hoersken (9 Nov 2021)
+- tests: add Schannel-specific tests and disable unsupported ones
+
+ Adds Schannel variants of SSLpinning tests that include the option
+ --ssl-revoke-best-effort to ignore certificate revocation check
+ failures which is required due to our custom test CA certificate.
+
+ Disable the original variants if the Schannel backend is enabled.
+
+ Also skip all IDN tests which are broken while using an msys shell.
+
+ This is a step to simplify test exclusions for Windows and MinGW.
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
+ Closes #7968
+
+Daniel Stenberg (8 Nov 2021)
+- docs: NAME fixes in easy option man pages
+
+ Closes #7975
+
+- [Roger Young brought this change]
+
+ ftp: make the MKD retry to retry once per directory
+
+ Reported-by: Roger Young
+ Fixes #7967
+ Closes #7976
+
+- tool_operate: reorder code to avoid compiler warning
+
+ tool_operate.c(889) : warning C4701: potentially uninitialized local
+ variable 'per' use
+
+ Follow-up to cc71d352651a0d95
+ Reported-by: Marc Hörsken
+ Bug: https://github.com/curl/curl/pull/7922#issuecomment-963042676
+ Closes #7971
+
+- curl_easy_perform.3: add a para about recv and send data
+
+ Reported-by: Godwin Stewart
+ Fixes #7973
+ Closes #7974
+
+- tool_operate: fclose stream only if fopened
+
+ Fixes torture test failures
+ Follow-up to cc71d352651
+
+ Closes #7972
+
+- libcurl-easy.3: language polish
+
+- limit-rate.d: this is average over several seconds
+
+ Closes #7970
+
+- docs: reduce/avoid English contractions
+
+ You're => You are
+ Hasn't => Has not
+ Doesn't => Does not
+ Don't => Do not
+ You'll => You will
+ etc
+
+ Closes #7930
+
+- tool_operate: fix torture leaks with etags
+
+ Spotted by torture testing 343 344 345 347.
+
+ Follow-up from cc71d352651a0
+ Pointed-out-by: Dan Fandrich
+
+ Closes #7969
+
+- [Amaury Denoyelle brought this change]
+
+ ngtcp2: support latest QUIC TLS RFC9001
+
+ QUIC Transport Parameters Extension has been changed between draft-29
+ and latest RFC9001. Most notably, its identifier has been updated from
+ 0xffa5 to 0x0039. The version is selected through the QUIC TLS library
+ via the legacy codepoint.
+
+ Disable the usage of legacy codepoint in curl to switch to latest
+ RFC9001. This is required to be able to keep up with latest QUIC
+ implementations.
+
+ Acked-by: Tatsuhiro Tsujikawa
+ Closes #7960
+
+- test1173: make manpage-syntax.pl spot \n errors in examples
+
+- man pages: fix backslash-n in examples
+
+ ... to be proper backslash-backslash-n sequences to render nicely in man
+ and on website.
+
+ Follow-up to 24155569d8a
+ Reported-by: Sergey Markelov
+
+ Fixes https://github.com/curl/curl-www/issues/163
+ Closes #7962
+
+- scripts/release-notes.pl: use out of repo links verbatim in refs
+
+- tool_operate: a failed etag save now only fails that transfer
+
+ When failing to create the output file for saving an etag, only fail
+ that particular single transfer and allow others to follow.
+
+ In a serial transfer setup, if no transfer at all is done due to them
+ all being skipped because of this error, curl will output an error
+ message and return exit code 26.
+
+ Added test 369 and 370 to verify.
+
+ Reported-by: Earnestly on github
+ Ref: #7942
+ Closes #7945
+
+- [Kevin Burke brought this change]
+
+ .github: retry macos "brew install" command on failure
+
+ Previously we saw errors attempting to run "brew install", see
+ https://github.com/curl/curl/runs/4095721123?check_suite_focus=true for
+ an example, since this command is idempotent, it is safe to run again.
+
+ Closes #7955
+
+- CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred
+
+ Ref: https://github.com/curl/curl/discussions/7954
+
+ Closes #7957
+
+- RELEASE-NOTES: synced
+
+- zuul: pin the quiche build to use an older cmake-rs
+
+ The latest cmake-rs assumes cmake's --parallel works. That was added in
+ cmake 3.12, but a lot of our CI builds run on Ubuntu Bionic which only
+ has cmake 3.10.
+
+ Fixes #7927
+ Closes #7952
+
+- [Marc Hoersken brought this change]
+
+ Revert "src/tool_filetime: disable -Wformat on mingw for this file"
+
+ This reverts commit 7c88fe375b15c44d77bccc9ab733b8069d228e6f.
+
+ Follow up to #6535 as the pragma is obsolete with warnf
+
+ Closes #7941
+
+Jay Satiro (2 Nov 2021)
+- schannel: fix memory leak due to failed SSL connection
+
+ - Call schannel_shutdown if the SSL connection fails.
+
+ Prior to this change schannel_shutdown (which shuts down the SSL
+ connection as well as memory cleanup) was not called when the SSL
+ connection failed (eg due to failed handshake).
+
+ Co-authored-by: Gisle Vanem
+
+ Fixes https://github.com/curl/curl/issues/7877
+ Closes https://github.com/curl/curl/pull/7878
+
+Daniel Stenberg (2 Nov 2021)
+- Curl_updateconninfo: store addresses for QUIC connections too
+
+ So that CURLINFO_PRIMARY_IP etc work for HTTP/3 like for other HTTP
+ versions.
+
+ Reported-by: Jerome Mao
+ Fixes #7939
+ Closes #7944
+
+- [Sergio Durigan Junior brought this change]
+
+ curl.1: fix typos in the manpage
+
+ s/transfering/transferring/
+ s/transfered/transferred/
+
+ Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net>
+ Closes #7937
+
+Marc Hoersken (1 Nov 2021)
+- tests/smbserver.py: fix compatibility with impacket 0.9.23+
+
+ impacket now performs sanity checks if the requested and to
+ be served file path actually is inside the real share path.
+
+ Ref: https://github.com/SecureAuthCorp/impacket/pull/1066
+
+ Fixes #7924
+ Closes #7935
+
+Daniel Stenberg (1 Nov 2021)
+- docs: reduce use of "very"
+
+ "Very" should be avoided in most texts. If intensifiers are needed, try
+ find better words instead.
+
+ Closes #7936
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: specify the missing required callback functions
+
+ Closes #7929
+
+- CURLOPT_[PROXY]_SSL_CIPHER_LIST.3: bold instead of quote
+
+ Bold the example ciphers instead of using single quotes, which then also
+ avoids the problem of how to use single quotes when first in a line.
+
+ Also rephrased the pages a little.
+
+ Reported-by: Sergio Durigan Junior
+ Ref: #7928
+ Closes #7934
+
+- gen.pl: replace leading single quotes with \(aq
+
+ ... and allow single quotes to be used "normally" in the .d files.
+
+ Makes the output curl.1 use better nroff.
+
+ Reported-by: Sergio Durigan Junior
+ Ref: #7928
+ Closes #7933
+
+Marc Hoersken (1 Nov 2021)
+- tests: kill some test servers afterwards to avoid locked logfiles
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7925
+
+Daniel Stenberg (1 Nov 2021)
+- smooth-gtk-thread.c: enhance the mutex lock use
+
+ Reported-by: ryancaicse on github
+ Fixes #7926
+ Closes #7931
+
+Marc Hoersken (31 Oct 2021)
+- CI/runtests.pl: restore -u flag, but remove it from CI runs
+
+ This makes it possible to use -u again for local testing,
+ but removes the flag from CI config files and make targets.
+
+ Reviewed-by: Daniel Stenberg
+
+ Partially reverts #7841
+ Closes #7921
+
+Daniel Stenberg (29 Oct 2021)
+- [Jonathan Cardoso Machado brought this change]
+
+ CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required
+
+ Closes #7923
+
+- [Axel Morawietz brought this change]
+
+ imap: display quota information
+
+ Show response to "GETQUOTAROOT INBOX" command.
+
+ Closes #6973
+
+- RELEASE-NOTES: synced
+
+- [Boris Rasin brought this change]
+
+ cmake: fix error getting LOCATION property on non-imported target
+
+ Closes #7885
+
+- [x2018 brought this change]
+
+ url: check the return value of curl_url()
+
+ Closes #7917
+
+- [Roy Li brought this change]
+
+ configure.ac: replace krb5-config with pkg-config
+
+ The rationale is that custom *-config tools don't work well when
+ cross-compiling or using sysroots (such as when using Yocto project) and
+ require custom fixing for each of them; pkg-config on the other hand
+ works similarly everywhere.
+
+ Signed-off-by: Roy Li <rongqing.li@windriver.com>
+ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+ Closes #7916
+
+- test1160: edited to work with hyper
+
+ Closes #7912
+
+- data/DISABLED: enable tests that now work with hyper
+
+ Closes #7911
+
+- test559: add 'HTTP' in keywords
+
+ Makes it run fine with hyper
+
+ Closes #7911
+
+- test552: updated to work with hyper
+
+ Closes #7911
+
+Marc Hoersken (27 Oct 2021)
+- github: fix incomplete permission to label PRs for Hacktoberfest
+
+ Unfortunately the GitHub API requires a token with write permission
+ for both issues and pull-requests to edit labels on even just PRs.
+
+ Follow up to #7897
+
+Daniel Stenberg (27 Oct 2021)
+- opt-manpages: use 'Added in' instead of 'Since'
+
+ Closes #7913
+
+Marc Hoersken (27 Oct 2021)
+- github: fix missing permission to label PRs for Hacktoberfest
+
+ Follow up to #7897
+
+ Test references to see if permissions are now sufficient:
+
+ Closes #7832
+ Closes #7897
+
+- CI: more use of test-ci make target and verbose output
+
+ Replace test-nonflaky with test-ci and enable verbose output
+ in all remaining CIs except Zuul which is customized a lot.
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+
+ Follow up to #7785
+ Closes #7832
+
+- github: add support for Hacktoberfest using labels
+
+ Automatically add hacktoberfest-accepted label to PRs opened between
+ September 30th and November 1st once a commit with a close reference
+ to it is pushed onto the master branch.
+
+ With this workflow we can participate in Hacktoberfest while not
+ relying on GitHub to identify PRs as merged due to our rebasing.
+
+ Requires hacktoberfest-accepted labels to exist for PRs on the
+ participating repository. Also requires hacktoberfest topic on
+ the participating repository to avoid applying to forked repos.
+
+ Reviewed-by: Daniel Stenberg
+
+ Fixes #7865
+ Closes #7897
+
+Daniel Stenberg (27 Oct 2021)
+- http: reject HTTP response codes < 100
+
+ ... which then also includes negative ones as test 1430 uses.
+
+ This makes native + hyper backend act identically on this and therefore
+ test 1430 can now be enabled when building with hyper. Adjust test 1431
+ as well.
+
+ Closes #7909
+
+- [Kerem Kat brought this change]
+
+ docs: fix typo in CURLOPT_TRAILERFUNCTION example
+
+ Closes #7910
+
+- docs/HYPER: remove some remaining issues, add HTTP/0.9 limitation
+
+- configure: when hyper is selected, deselect nghttp2
+
+ Closes #7908
+
+- [Patrick Monnerat brought this change]
+
+ sendf: accept zero-length data in Curl_client_write()
+
+ Historically, Curl_client_write() used a length value of 0 as a marker
+ for a null-terminated data string. This feature has been removed in
+ commit f4b85d2. To detect leftover uses of the feature, a DEBUGASSERT
+ statement rejecting a length with value 0 was introduced, effectively
+ precluding use of this function with zero-length data.
+
+ The current commit removes the DEBUGASSERT and makes the function to
+ return immediately if length is 0.
+
+ A direct effect is to fix trying to output a zero-length distinguished
+ name in openldap.
+
+ Another DEBUGASSERT statement is also rephrased for better readability.
+
+ Closes #7898
+
+- hyper: disable test 1294 since hyper doesn't allow such crazy headers
+
+ Closes #7905
+
+- c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work
+
+ Verified by the enabled test 1288
+
+ Closes #7905
+
+- test1287: make work on hyper
+
+ Closes #7905
+
+- test1266/1267: disabled on hyper: no HTTP/0.9 support
+
+ Closes #7905
+
+Viktor Szakats (25 Oct 2021)
+- Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options
+
+ Previously, -libssh2/-rtmp options assumed that OpenSSL is also enabled
+ (and then failed with an error when not finding expected OpenSSL headers),
+ but this isn't necessarly true, e.g. when building both libssh2 and curl
+ against Schannel. This patch makes sure to only enable the OpenSSL backend
+ with -libssh2/-rtmp, when there was no SSL option explicitly selected.
+
+ - Re-implement the logic as a single block of script.
+ - Also fix an indentation while there.
+
+ Assisted-by: Jay Satiro
+
+ Closes #7895
+
+Daniel Stenberg (25 Oct 2021)
+- docs: consistent use of "Added in"
+
+ Make them all say "Added in [version]" without using 'curl' or 'libcurl'
+ in that phrase.
+
+- man pages: require all to use the same section header order
+
+ This is the same order we already enforce among the options' man pages:
+ consistency is good. Add lots of previously missing examples.
+
+ Adjust the manpage-syntax script for this purpose, used in test 1173.
+
+ Closes #7904
+
+- [David Hu brought this change]
+
+ docs/HTTP3: improve build instructions
+
+ 1. If writing to a system path if the command is not prefixed with
+ `sudo` it will cause a permission denied error
+
+ 2. The patched OpenSSL branch has been updated to `openssl-3.0.0+quic`
+ to match upstream OpenSSL version.
+
+ 3. We should not disable GnuTLS docs.
+
+ Updated some commands about `make install`
+
+ Closes #7842
+
+- [Ricardo Martins brought this change]
+
+ CMake: restore support for SecureTransport on iOS
+
+ Restore support for building curl for iOS with SecureTransport enabled.
+
+ Closes #7501
+
+- tests: enable more tests with hyper
+
+ Adjusted 1144, 1164 and 1176.
+
+ Closes #7900
+
+- docs: provide "RETURN VALUE" section for more func manpages
+
+ Three were missing, one used a non-standard name for the header.
+
+ Closes #7902
+
+Jay Satiro (25 Oct 2021)
+- curl_multi_socket_action.3: add a "RETURN VALUE" section
+
+ .. because it may not be immediately clear to the user what
+ curl_multi_socket_action returns.
+
+ Ref: https://curl.se/mail/lib-2021-10/0035.html
+
+ Closes https://github.com/curl/curl/pull/7901
+
+Daniel Stenberg (24 Oct 2021)
+- RELEASE-NOTES: synced
+
+- [Samuel Henrique brought this change]
+
+ tests: use python3 in test 1451
+
+ This is a continuation of commit ec91b5a69000bea0794bbb3 in which
+ changing this test was missed. There are no other python2 leftovers
+ now.
+
+ Based on a Debian patch originally written by Alessandro Ghedini
+ <ghedo@debian.org>
+
+ Closes #7899
+
+- [Eddie Lumpkin brought this change]
+
+ lib: fixing comment spelling typos in lib files
+
+ Closes #7894
+ Signed-off-by: ewlumpkin <ewlumpkin@gmail.com>
+
+- openssl: if verifypeer is not requested, skip the CA loading
+
+ It was previously done mostly to show a match/non-match in the verbose
+ output even when verification was not asked for. This change skips the
+ loading of the CA certs unless verifypeer is set to save memory and CPU.
+
+ Closes #7892
+
+- curl-confopts.m4: remove --enable/disable-hidden-symbols
+
+ These configure options have been saying "deprecated" since 9e24b9c7af
+ (April 2012). It was about time we remove them.
+
+ Closes #7891
+
+- c-hyper: don't abort CONNECT responses early when auth-in-progress
+
+ ... and make sure to stop ignoring the body once the CONNECT is done.
+
+ This should make test 206 work proper again and not be flaky.
+
+ Closes #7889
+
+- hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING
+
+ Simply because hyper doesn't have this ability. Mentioned in docs now.
+
+ Skip test 326 then
+
+ Closes #7889
+
+- test262: don't attempt with hyper
+
+ This test verifies that curl works with binary zeroes in HTTP response
+ headers and hyper refuses such. They're not kosher http.
+
+ Closes #7889
+
+- c-hyper: make test 217 run
+
+ Closes #7889
+
+- DISABLED: enable test 209+213 for hyper
+
+ Follow-up to 823d3ab855c
+
+ Closes #7889
+
+- test207: accept a different error code for hyper
+
+ It returns HYPERE_UNEXPECTED_EOF for this case which we convert to the
+ somewhat generic CURLE_RECV_ERROR.
+
+ Closes #7889
+
+- [Érico Nogueira brought this change]
+
+ INSTALL: update symbol hiding option
+
+ --enable-hidden-symbols was deprecated in
+ 9e24b9c7afbcb81120af4cf3f6cdee49a06d8224.
+
+ Closes #7890
+
+- http_proxy: multiple CONNECT with hyper done better
+
+ Enabled test 206
+
+ Closes #7888
+
+- hyper: pass the CONNECT line to the debug callback
+
+ Closes #7887
+
+- mailmap: Malik Idrees Hasan Khan
+
+Jay Satiro (21 Oct 2021)
+- [Malik Idrees Hasan Khan brought this change]
+
+ build: fix typos
+
+ Closes https://github.com/curl/curl/pull/7886
+
+- URL-SYNTAX: add IMAP UID SEARCH example
+
+ - Explain the difference between IMAP search via URL (which returns
+ message sequence numbers) and IMAP search via custom request (which
+ can return UID numbers if prefixed with UID, eg "UID SEARCH ...").
+
+ Bug: https://github.com/curl/curl/issues/7626
+ Reported-by: orycho@users.noreply.github.com
+
+ Ref: https://github.com/curl/curl/issues/2789
+
+ Closes https://github.com/curl/curl/pull/7881
+
+Daniel Stenberg (20 Oct 2021)
+- manpage: adjust the asterisk in some SYNOPSIS sections
+
+ Closes #7884
+
+- curl_multi_perform.3: polish wording
+
+ - simplify the example by using curl_multi_poll
+
+ - mention curl_multi_add_handle in the text
+
+ - cut out the description of pre-7.20.0 return code behavior - that version
+ is now more than eleven years old and is basically no longer out there
+
+ - adjust the "typical usage" to mention curl_multi_poll
+
+ Closes #7883
+
+- docs/THANKS: removed on request
+
+- FAQ: polish the explanation of libcurl
+
+- curl_easy_perform.3: minor wording tweak
+
+- [Erik Stenlund brought this change]
+
+ mime: mention CURL_DISABLE_MIME in comment
+
+ CURL_DISABLE_MIME is not mentioned in the comment describing the if else
+ preprocessor directive.
+
+ Closes #7882
+
+- tls: remove newline from three infof() calls
+
+ Follow-up to e7416cf
+
+ Reported-by: billionai on github
+ Fixes #7879
+ Closes #7880
+
+- RELEASE-NOTES: synced
+
+- curl_gssapi: fix build warnings by removing const
+
+ Follow-up to 20e980f85b0ea6
+
+ In #7875 these inits were modified but I get two warnings that these new
+ typecasts are necessary for.
+
+ Closes #7876
+
+- [Bo Anderson brought this change]
+
+ curl_gssapi: fix link error on macOS Monterey
+
+ Fixes #7657
+ Closes #7875
+
+- test1185: verify checksrc
+
+ Closes #7866
+
+- checksrc: improve the SPACESEMICOLON error message
+
+ and adjust the MULTISPACE one to use plural
+
+ Closes #7866
+
+- url: set "k->size" -1 at start of request
+
+ The size of the transfer is unknown at that point.
+
+ Fixes #7871
+ Closes #7872
+
+Daniel Gustafsson (18 Oct 2021)
+- doh: remove experimental code for DoH with GET
+
+ The code for sending DoH requests with GET was never enabled in a way
+ such that it could be used or tested. As there haven't been requests
+ for this feature, and since it at this is effectively dead, remove it
+ and favor reimplementing the feature in case anyone is interested.
+
+ Closes #7870
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (18 Oct 2021)
+- cirrus: remove FreeBSD 11.4 from the matrix
+
+ It has reached End-Of-Life and causes some LDAP CI issues.
+
+ Closes #7869
+
+- cirrus: switch to openldap24-client
+
+ ... as it seems openldap-client doesn't exist anymore.
+
+ Reported-by: Jay Satiro
+ Fixes #7868
+ Closes #7869
+
+- checksrc: ignore preprocessor lines
+
+ In order to check the actual code better, checksrc now ignores
+ everything that look like preprocessor instructions. It also means
+ that code in macros are now longer checked.
+
+ Note that some rules then still don't need to be followed when code is
+ exactly below a cpp instruction.
+
+ Removes two checksrc exceptions we needed previously because of
+ preprocessor lines being checked.
+
+ Reported-by: Marcel Raad
+ Fixes #7863
+ Closes #7864
+
+- urlapi: skip a strlen(), pass in zero
+
+ ... to let curl_easy_escape() itself do the strlen. This avoids a (false
+ positive) Coverity warning and it avoids us having to store the strlen()
+ return value in an int variable.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7862
+
+- misc: update copyright years
+
+- examples/htmltidy: correct wrong printf() use
+
+ ... and update the includes to match how current htmltidy wants them
+ used.
+
+ Reported-by: Stathis Kapnidis
+ Fixes #7860
+ Closes #7861
+
+Jay Satiro (15 Oct 2021)
+- http: set content length earlier
+
+ - Make content length (ie download size) accessible to the user in the
+ header callback, but only after all headers have been processed (ie
+ only in the final call to the header callback).
+
+ Background:
+
+ For a long time the content length could be retrieved in the header
+ callback via CURLINFO_CONTENT_LENGTH_DOWNLOAD_T as soon as it was parsed
+ by curl.
+
+ Changes were made in 8a16e54 (precedes 7.79.0) to ignore content length
+ if any transfer encoding is used. A side effect of that was that
+ content length was not set by libcurl until after the header callback
+ was called the final time, because until all headers are processed it
+ cannot be determined if content length is valid.
+
+ This change keeps the same intention --all headers must be processed--
+ but now the content length is available before the final call to the
+ header function that indicates all headers have been processed (ie
+ a blank header).
+
+ Bug: https://github.com/curl/curl/commit/8a16e54#r57374914
+ Reported-by: sergio-nsk@users.noreply.github.com
+
+ Co-authored-by: Daniel Stenberg
+
+ Fixes https://github.com/curl/curl/issues/7804
+ Closes https://github.com/curl/curl/pull/7803
+
+Daniel Stenberg (15 Oct 2021)
+- [Abhinav Singh brought this change]
+
+ aws-sigv4: make signature work when post data is binary
+
+ User sets the post fields size for binary data. Hence, we should not be
+ using strlen on it.
+
+ Added test 1937 and 1938 to verify.
+
+ Closes #7844
+
+- [a1346054 brought this change]
+
+ MacOSX-Framework: remove redundant ';'
+
+ Closes #7859
+
+- RELEASE-NOTES: synced
+
+- openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway
+
+ One reason we know it can fail is if a provider is used that doesn't do
+ a proper job or is wrongly configured.
+
+ Reported-by: Michael Baentsch
+ Fixes #7840
+ Closes #7856
+
+Marcel Raad (14 Oct 2021)
+- [Ryan Mast brought this change]
+
+ cmake: add CURL_ENABLE_SSL option and make CMAKE_USE_* SSL backend options depend on it
+
+ Closes https://github.com/curl/curl/pull/7822
+
+Daniel Stenberg (14 Oct 2021)
+- http: remove assert that breaks hyper
+
+ Reported-by: Jay Satiro
+ Fixes #7852
+ Closes #7855
+
+- http_proxy: fix one more result assign for hyper
+
+ and remove the bad assert again, since it was run even with no error!
+
+ Closes #7854
+
+Jay Satiro (14 Oct 2021)
+- sws: fix memory leak on exit
+
+ - Free the allocated http request struct on cleanup.
+
+ Prior to this change if sws was built with leak sanitizer it would
+ report a memory leak error during testing.
+
+ Closes https://github.com/curl/curl/pull/7849
+
+Daniel Stenberg (14 Oct 2021)
+- c-hyper: make Curl_http propagate errors better
+
+ Pass on better return codes when errors occur within Curl_http instead
+ of insisting that CURLE_OUT_OF_MEMORY is the only possible one.
+
+ Pointed-out-by: Jay Satiro
+ Closes #7851
+
+- http_proxy: make hyper CONNECT() return the correct error code
+
+ For every 'goto error', make sure the result variable holds the error
+ code for what went wrong.
+
+ Reported-by: Rafał Mikrut
+ Fixes #7825
+ Closes #7846
+
+- docs/Makefile.am: repair 'make html'
+
+ by removing index.html which isn't around anymore
+
+ Closes #7853
+
+- [Борис Верховский brought this change]
+
+ curl: correct grammar in generated libcurl code
+
+ Closes #7802
+
+- tests: disable test 2043
+
+ It uses revoked.badssl.com which now is expired and therefor this now
+ permafails. We should not use external sites for tests, this test should
+ be converted to use our own infra.
+
+ Closes #7845
+
+- runtests: split out ignored tests
+
+ Report ignore tests separately from the actual fails.
+
+ Don't exit non-zero if test servers couldn't get killed.
+
+ Assisted-by: Jay Satiro
+
+ Fixes #7818
+ Closes #7841
+
+- http2: make getsock not wait for write if there's no remote window
+
+ While uploading, check for remote window availability in the getsock
+ function so that we don't wait for a writable socket if no data can be
+ sent.
+
+ Reported-by: Steini2000 on github
+ Fixes #7821
+ Closes #7839
+
+- test368: verify dash is appended for "-r [num]"
+
+ Follow-up to 8758a26f8878
+
+- [Борис Верховский brought this change]
+
+ curl: actually append "-" to --range without number only
+
+ Closes #7837
+
+- RELEASE-NOTES: synced
+
+- urlapi: URL decode percent-encoded host names
+
+ The host name is stored decoded and can be encoded when used to extract
+ the full URL. By default when extracting the URL, the host name will not
+ be URL encoded to work as similar as possible as before. When not URL
+ encoding the host name, the '%' character will however still be encoded.
+
+ Getting the URL with the CURLU_URLENCODE flag set will percent encode
+ the host name part.
+
+ As a bonus, setting the host name part with curl_url_set() no longer
+ accepts a name that contains space, CR or LF.
+
+ Test 1560 has been extended to verify percent encodings.
+
+ Reported-by: Noam Moshe
+ Reported-by: Sharon Brizinov
+ Reported-by: Raul Onitza-Klugman
+ Reported-by: Kirill Efimov
+ Fixes #7830
+ Closes #7834
+
+Marc Hoersken (8 Oct 2021)
+- CI/makefiles: introduce dedicated test target
+
+ Make it easy to use the same set of test flags
+ throughout all current and future CI builds.
+
+ Reviewed-by: Jay Satiro
+
+ Follow up to #7690
+ Closes #7785
+
+Daniel Stenberg (8 Oct 2021)
+- maketgz: redirect updatemanpages.pl output to /dev/null
+
+- CURLOPT_HTTPHEADER.3: add descripion for specific headers
+
+ Settting Host: or Transfer-Encoding: chunked actually have special
+ meanings to libcurl. This change tries to document them
+
+ Closes #7829
+
+- c-hyper: use hyper_request_set_uri_parts to make h2 better
+
+ and make sure to not send Host: over h2.
+
+ Fixes #7679
+ Reported-by: David Cook
+ Closes #7827
+
+- [Michael Afanasiev brought this change]
+
+ curl-openssl.m4: modify library order for openssl linking
+
+ lcrypto may depend on lz, and configure corrently fails with when
+ statically linking as the order is "-lz -lcrypto". This commit switches
+ the order to "-lcrypto -lz".
+
+ Closes #7826
+
+Marcel Raad (7 Oct 2021)
+- sha256: use high-level EVP interface for OpenSSL
+
+ Available since OpenSSL 0.9.7. The low-level SHA256 interface is
+ deprecated in OpenSSL v3, and its usage was discouraged even before.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+- curl_ntlm_core: use OpenSSL only if DES is available
+
+ This selects another SSL backend then if available, or otherwise at
+ least gives a meaningful error message.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+- md5: fix compilation with OpenSSL 3.0 API
+
+ Only use OpenSSL's MD5 code if it's available.
+
+ Also fix wolfSSL build with `NO_MD5`, in which case neither the
+ wolfSSL/OpenSSL implementation nor the fallback implementation was
+ used.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+Daniel Stenberg (7 Oct 2021)
+- print_category: printf %*s needs an int argument
+
+ ... not a size_t!
+
+ Detected by Coverity: CID 1492331.
+ Closes #7823
+
+Jay Satiro (7 Oct 2021)
+- version_win32: use actual version instead of manifested version
+
+ - Use RtlVerifyVersionInfo instead of VerifyVersionInfo, when possible.
+
+ Later versions of Windows have normal version functions that compare and
+ return versions based on the way the application is manifested, instead
+ of the actual version of Windows the application is running on. We
+ prefer the actual version of Windows so we'll now call the Rtl variant
+ of version functions (RtlVerifyVersionInfo) which does a proper
+ comparison of the actual version.
+
+ Reported-by: Wyatt O'Day
+
+ Ref: https://github.com/curl/curl/pull/7727
+
+ Fixes https://github.com/curl/curl/issues/7742
+ Closes https://github.com/curl/curl/pull/7810
+
+Daniel Stenberg (6 Oct 2021)
+- RELEASE-NOTES: synced
+
+- http: fix Basic auth with empty name field in URL
+
+ Add test 367 to verify.
+
+ Reported-by: Rick Lane
+ Fixes #7819
+ Closes #7820
+
+- [Jeffrey Tolar brought this change]
+
+ CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse
+
+ ... and close connections that are too old instead of reusing them.
+
+ By default, this behavior is disabled.
+
+ Bug: https://curl.se/mail/lib-2021-09/0058.html
+ Closes #7751
+
+Daniel Gustafsson (6 Oct 2021)
+- docs/examples: add missing binaries to gitignore
+
+ Commit f65d7889b added getreferrer, and commit ae8e11ed5 multi-legacy,
+ both of which missed adding .gitignore clauses for the built binaries.
+
+ Closes #7817
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (5 Oct 2021)
+- [Josip Medved brought this change]
+
+ HTTP3: fix the HTTP/3 Explained book link
+
+ Closes #7813
+
+- [Lucas Holt brought this change]
+
+ misc: fix a few issues on MidnightBSD
+
+ Closes #7812
+
+Daniel Gustafsson (4 Oct 2021)
+- [8U61ife brought this change]
+
+ tool_main: fix typo in comment
+
+ Closes: #7811
+ Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
+
+Daniel Stenberg (4 Oct 2021)
+- [Ryan Mast brought this change]
+
+ BINDINGS: URL updates
+
+ For cpr, BBHTTP, Eiffel, Harbour, Haskell, Mono, and Rust
+
+ Closes #7809
+
+- scripts/delta: hide a git error message we don't care about
+
+ fatal: path 'src/tool_listhelp.c' exists on disk, but not in [tag]
+
+- [Patrick Monnerat brought this change]
+
+ sasl: binary messages
+
+ Capabilities of sasl module are extended to exchange messages in binary
+ as an alternative to base64.
+
+ If http authentication flags have been set, those are used as sasl
+ default preferred mechanisms.
+
+ Closes #6930
+
+- [Hayden Roche brought this change]
+
+ wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity
+
+ Prior to this commit, OpenSSL could be used for all these functions, but
+ not wolfSSL. This commit makes it so wolfSSL will be used if USE_WOLFSSL
+ is defined.
+
+ Closes #7806
+
+- scripts/delta: count command line options in the new file
+
+ ... which makes the shown delta number wrong until next release.
+
+- RELEASE-NOTES: synced
+
+- print_category: print help descriptions aligned
+
+ Adjust the description position to make an aligned column when doing
+ help listings, which is more pleasing to the eye.
+
+ Suggested-by: Gisle Vanem
+ Closes #7792
+
+- lib/mk-ca-bundle.pl: skip certs passed Not Valid After date
+
+ With this change applied, the now expired 'DST Root CA X3' cert will no
+ longer be included in the output.
+
+ Details: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
+
+ Closes #7801
+
+- tool_listhelp: easier to generate with gen.pl
+
+ tool_listhelp.c is now a separate file with only the command line --help
+ output, exactly as generated by gen.pl. This makes it easier to generate
+ updates according to what's in the docs/cmdline-opts docs.
+
+ cd $srcroot/docs/cmdline-opts
+ ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c
+
+ With a configure build, this also works:
+
+ make -C src listhelp
+
+ Closes #7787
+
+- [Anthony Hu brought this change]
+
+ wolfssl: allow setting of groups/curves
+
+ In particular, the quantum safe KEM and hybrid curves if wolfSSL is
+ built to support them.
+
+ Closes #7728
+
+- [Jan Mazur brought this change]
+
+ connnect: use sysaddr_un fron sys/un.h or custom-defined for windows
+
+ Closes #7737
+
+Jay Satiro (30 Sep 2021)
+- [Rikard Falkeborn brought this change]
+
+ hostip: Move allocation to clarify there is no memleak
+
+ By just glancing at the code, it looks like there is a memleak if the
+ call to Curl_inet_pton() fails. Looking closer, it is clear that the
+ call to Curl_inet_pton() can not fail, so the code will never leak
+ memory. However, we can make this obvious by moving the allocation
+ after the if-statement.
+
+ Closes https://github.com/curl/curl/pull/7796
+
+Daniel Stenberg (30 Sep 2021)
+- gen.pl: make the output date format work better
+
+ Follow-up to 15910dfd143dd
+
+ The previous strftime format used didn't work correctly on Windows, so
+ change to %B %d %Y which today looks like "September 29 2021".
+
+ Reported-by: Gisle Vanem
+ Bug: #7782
+ Closes #7793
+
+- typecheck-gcc.h: add CURLOPT_PREREQDATA awareness
+
+ Follow-up to a517378de58358a
+
+ To make test 1912 happy again
+
+ Closes #7799
+
+Marcel Raad (29 Sep 2021)
+- configure: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- CMake: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- config: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- lib: remove `HAVE_WINSOCK_H` usage
+
+ WinSock v1 is not supported anymore. Exclusively use `HAVE_WINSOCK2_H`
+ instead.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+Daniel Stenberg (29 Sep 2021)
+- easyoptions: add the two new PRE* options
+
+ Follow-up to a517378de58358a
+
+ Also fix optiontable.pl to do the correct remainder on the entry.
+
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/a517378de58358a85b7cfe9efecb56051268f629#commitcomment-57224830
+ Closes #7791
+
+- Revert "build: remove checks for WinSock 1"
+
+ Due to CI issues
+
+ This reverts commit c2ea04f92b00b6271627cb218647527b5a50f2fc.
+
+ Closes #7790
+
+Daniel Gustafsson (29 Sep 2021)
+- lib: avoid fallthrough cases in switch statements
+
+ Commit b5a434f7f0ee4d64857f8592eced5b9007d83620 inhibits the warning
+ on implicit fallthrough cases, since the current coding of indicating
+ fallthrough with comments is falling out of fashion with new compilers.
+ This attempts to make the issue smaller by rewriting fallthroughs to no
+ longer fallthrough, via either breaking the cases or turning switch
+ statements into if statements.
+
+ lib/content_encoding.c: the fallthrough codepath is simply copied
+ into the case as it's a single line.
+ lib/http_ntlm.c: the fallthrough case skips a state in the state-
+ machine and fast-forwards to NTLMSTATE_LAST. Do this before the
+ switch statement instead to set up the states that we actually
+ want.
+ lib/http_proxy.c: the fallthrough is just falling into exiting the
+ switch statement which can be done easily enough in the case.
+ lib/mime.c: switch statement rewritten as if statement.
+ lib/pop3.c: the fallthrough case skips to the next state in the
+ statemachine, do this explicitly instead.
+ lib/urlapi.c: switch statement rewritten as if statement.
+ lib/vssh/wolfssh.c: the fallthrough cases fast-forwards the state
+ machine, do this by running another iteration of the switch
+ statement instead.
+ lib/vtls/gtls.c: switch statement rewritten as if statement.
+ lib/vtls/nss.c: the fallthrough codepath is simply copied into the
+ case as it's a single line. Also twiddle a comment to not be
+ inside a non-brace if statement.
+
+ Closes: #7322
+ See-also: #7295
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Marcel Raad (28 Sep 2021)
+- config-win32ce: enable WinSock 2
+
+ WinSock 2.2 is supported by Windows CE .NET 4.1 (from 2002, out of
+ support since 2013).
+
+ Ref: https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms899586(v=msdn.10)
+
+ Closes https://github.com/curl/curl/pull/7778
+
+- externalsocket: use WinSock 2.2
+
+ That's the only version we support.
+
+ Closes https://github.com/curl/curl/pull/7778
+
+- build: remove checks for WinSock 1
+
+ It's not supported anymore.
+
+ Closes https://github.com/curl/curl/pull/7778
+
+Daniel Stenberg (28 Sep 2021)
+- scripts/copyright: .muse is .lift now
+
+ And update 5 files with old copyright year range
+
+- cmdline-opts: made the 'Added:' field mandatory
+
+ Since "too old" versions are no longer included in the generated man
+ page, this field is now mandatory so that it won't be forgotten and then
+ not included in the documentation.
+
+ Closes #7786
+
+- curl.1: remove mentions of really old version changes
+
+ To make the man page more readable, this change removes all references
+ to changes in support/versions etc that happened before 7.30.0 from the
+ curl.1 output file. 7.30.0 was released on Apr 12 2013. This particular
+ limit is a bit arbitrary but was fairly easy to grep for.
+
+ It is handled like this: the 'Added' keyword is only used in output if
+ it refers to 7.30.0 or later. All occurances of "(Added in $VERSION)" in
+ description will be stripped out if the mentioned $VERSION is from
+ before 7.30.0. It is therefore important that the "Added in..."
+ references are always written exactly like that - and on a single line,
+ not split over two.
+
+ This change removes about 80 version number references from curl.1, down
+ to 138 from 218.
+
+ Closes #7786
+
+- RELEASE-NOTES: synced
+
+- tool_cb_prg: make resumed upload progress bar show better
+
+ This is a regression that was *probably* injected in the larger progress
+ bar overhaul in 2018.
+
+ Reported-by: beslick5 on github
+ Fixes #7760
+ Closes #7777
+
+- gen.pl: insert the current date and version in generated man page
+
+ Reported-by: Gisle Vanem
+ Ref: #7780
+ Closes #7782
+
+- NTLM: use DES_set_key_unchecked with OpenSSL
+
+ ... as the previously used function DES_set_key() will in some cases
+ reject using a key that it deems "weak" which will cause curl to
+ continue using the unitialized buffer content as key instead.
+
+ Assisted-by: Harry Sintonen
+ Fixes #7779
+ Closes #7781
+
+Marc Hoersken (27 Sep 2021)
+- CI: align make and test flags in various config files
+
+ 1. Use Makefile target to run tests in autotools builds on AppVeyor.
+ 2. Disable testing of SCP protocol on native Windows environments.
+ 3. Remove redundant parameters -a -p from target test-nonflaky.
+ 4. Don't use -vc parameter which is reserved for debugging.
+
+ Replaces #7591
+ Closes #7690
+
+Daniel Stenberg (27 Sep 2021)
+- mailmap: unify Max!
+
+- [Max Dymond brought this change]
+
+ CURLOPT_PREREQFUNCTION: add new callback
+
+ Triggered before a request is made but after a connection is set up
+
+ Changes:
+
+ - callback: Update docs and callback for pre-request callback
+ - Add documentation for CURLOPT_PREREQDATA and CURLOPT_PREREQFUNCTION,
+ - Add redirect test and callback failure test
+ - Note that the function may be called multiple times on a redirection
+ - Disable new 2086 test due to Windows weirdness
+
+ Closes #7477
+
+- KNOWN_BUGS: HTTP/2 connections through HTTPS proxy frequently stall
+
+ Closes #6936
+
+- TODO: make configure use --cache-file more and better
+
+ Closes #7753
+
+- [Sergey Markelov brought this change]
+
+ urlapi: support UNC paths in file: URLs on Windows
+
+ - file://host.name/path/file.txt is a valid UNC path
+ \\host.name\path\files.txt to a non-local file transformed into URI
+ (RFC 8089 Appendix E.3)
+
+ - UNC paths on other OSs must be smb: URLs
+
+ Closes #7366
+
+- [Gleb Ivanovsky brought this change]
+
+ urlapi: add curl_url_strerror()
+
+ Add curl_url_strerror() to convert CURLUcode into readable string and
+ facilitate easier troubleshooting in programs using URL API.
+ Extend CURLUcode with CURLU_LAST for iteration in unit tests.
+ Update man pages with a mention of new function.
+ Update example code and tests with new functionality where it fits.
+
+ Closes #7605
+
+- RELEASE-NOTES: synced
+
+- [Mats Lindestam brought this change]
+
+ libssh2: add SHA256 fingerprint support
+
+ Added support for SHA256 fingerprint in command line curl and in
+ libcurl.
+
+ Closes #7646
+
+- libcurl.rc: switch out the copyright symbol for plain ASCII
+
+ Reported-by: Vitaly Varyvdin
+ Assisted-by: Viktor Szakats
+ Fixes #7765
+ Closes #7776
+
+- [Jun-ya Kato brought this change]
+
+ ngtcp2: fix QUIC transport parameter version
+
+ fix inappropriate version setting for QUIC transport parameters.
+ this patch keeps curl with ngtcp2 uses QUIC draft version (h3-29).
+
+ Closes #7771
+
+- examples/imap-append: fix end-of-data check
+
+ Reported-by: Alexander Chuykov
+ Fixes #7774
+ Closes #7775
+
+Michael Kaufmann (24 Sep 2021)
+- vtls: Fix a memory leak if an SSL session cannot be added to the cache
+
+ On connection shutdown, a new TLS session ticket may arrive after the
+ SSL session cache has already been destructed. In this case, the new
+ SSL session cannot be added to the SSL session cache.
+
+ The callers of Curl_ssl_addsessionid() need to know whether the SSL
+ session has been added to the cache. If it has not been added, the
+ reference counter of the SSL session must not be incremented, or memory
+ used by the SSL session must be freed. This is now possible with the new
+ output parameter "added" of Curl_ssl_addsessionid().
+
+ Fixes #7683
+ Closes #7752
+
+Daniel Stenberg (24 Sep 2021)
+- [Momoka Yamamoto brought this change]
+
+ HTTP3.md: use 'autoreconf -fi' instead of buildconf
+
+ buildconf is not used since #5853
+
+ Closes #7746
+
+- GIT-INFO: rephrase to adapt to s/buildconf/autoreconf
+
+- [h1zzz brought this change]
+
+ llist: remove redundant code, branch will not be executed
+
+ Closes #7770
+
+- [tlahn brought this change]
+
+ HTTP-COOKIES.md: remove duplicate 'each'
+
+ Closes #7772
+
+Jay Satiro (24 Sep 2021)
+- [Joel Depooter brought this change]
+
+ libssh2: Get the version at runtime if possible
+
+ Previously this code used a compile time constant, meaning that libcurl
+ always reported the libssh2 version that libcurl was built with. This
+ could differ from the libssh2 version actually being used. The new code
+ uses the CURL_LIBSSH2_VERSION macro, which is defined in ssh.h. The
+ macro calls the libssh2_version function if it is available, otherwise
+ it falls back to the compile time version.
+
+ Closes https://github.com/curl/curl/pull/7768
+
+- [Joel Depooter brought this change]
+
+ schannel: fix typo
+
+ Closes https://github.com/curl/curl/pull/7769
+
+Daniel Stenberg (23 Sep 2021)
+- cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED
+
+ To avoid the "... is deprecated" warnings brought by OpenSSL v3.
+ (We need to address the underlying code at some point of course.)
+
+ Assisted-by: Jakub Zakrzewski
+ Closes #7767
+
+- curl-openssl: pass argument to sed single-quoted
+
+ ... instead of using an escaped double-quote. This is an attempt to make
+ this work better with ksh that otherwise would insist on a double
+ escape!
+
+ Reported-by: Randall S. Becker
+ Fixes #7758
+ Closes #7764
+
+- RELEASE-NOTES: synced
+
+ Bumped curlver to 7.80.0-dev
+
+- [a1346054 brought this change]
+
+ misc: fix typos in docs and comments
+
+ No user facing output from curl/libcurl is changed by this, just
+ comments.
+
+ Closes #7747
+
+- [Thomas M. DuBuisson brought this change]
+
+ ci: update Lift config to match requirements of curl build
+
+ Also renamed Muse -> Lift, the new tool name.
+
+ Closes #7761
+
+- [Rikard Falkeborn brought this change]
+
+ cleanup: constify unmodified static structs
+
+ Constify a number of static structs that are never modified. Make them
+ const to show this.
+
+ Closes #7759
+
+Version 7.79.1 (22 Sep 2021)
+
+Daniel Stenberg (22 Sep 2021)
+- RELEASE-NOTES: synced
+
+ curl 7.79.1 release
+
+- THANKS: added names from the 7.79.1 release
+
+- test897: verify delivery of IMAP post-body header content
+
+ The "content" is delivered as "body" by curl, but the envelope continues
+ after the body and the rest of it should be delivered as header.
+
+ The IMAP server can now get 'POSTFETCH' set to include more data to
+ include after the body and test 897 is done to verify that such "extra"
+ header data is in fact delivered by curl as header.
+
+ Ref: #7284 but fails to reproduce the issue
+
+ Closes #7748
+
+- KNOWN_BUGS: connection migration doesn't work
+
+ Closes #7695
+
+- RELEASE-NOTES: synced
+
+- http: fix the broken >3 digit response code detection
+
+ When the "reason phrase" in the HTTP status line starts with a digit,
+ that was treated as the forth response code digit and curl would claim
+ the response to be non-compliant.
+
+ Added test 1466 to verify this case.
+
+ Regression brought by 5dc594e44f73b17
+ Reported-by: Glenn de boer
+ Fixes #7738
+ Closes #7739
+
+Jay Satiro (17 Sep 2021)
+- strerror: use sys_errlist instead of strerror on Windows
+
+ - Change Curl_strerror to use sys_errlist[errnum] instead of strerror to
+ retrieve the error message on Windows.
+
+ Windows' strerror writes to a static buffer and is not thread-safe.
+
+ Follow-up to 2f0bb86 which removed most instances of strerror in favor
+ of calling Curl_strerror (which calls strerror_r for other platforms).
+
+ Ref: https://github.com/curl/curl/pull/7685
+ Ref: https://github.com/curl/curl/commit/2f0bb86
+
+ Closes https://github.com/curl/curl/pull/7735
+
+Daniel Stenberg (16 Sep 2021)
+- dist: provide lib/.checksrc in the tarball
+
+ So that debug builds work (checksrc really)
+
+ Reported-by: Marcel Raad
+ Reported-by: tawmoto on github
+ Fixes #7733
+ Closes #7734
+
+- TODO: Improve documentation about fork safety
+
+ Closes #6968
+
+- hsts: CURLSTS_FAIL from hsts read callback should fail transfer
+
+ ... and have CURLE_ABORTED_BY_CALLBACK returned.
+
+ Extended test 1915 to verify.
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7726
+ Closes #7729
+
+- test1184: disable
+
+ The test should be fine and it works for me repeated when run manually,
+ but clearly it causes CI failures and it needs more research.
+
+ Reported-by: RiderALT on github
+ Fixes #7725
+ Closes #7732
+
+- Curl_http2_setup: don't change connection data on repeat invokes
+
+ Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved
+ transfer oriented inits to before the check but also erroneously moved a
+ few connection oriented ones, which causes problems.
+
+ Reported-by: Evangelos Foutras
+ Fixes #7730
+ Closes #7731
+
+- RELEASE-NOTES: synced
+
+ and bump to 7.79.1
+
+Kamil Dudka (16 Sep 2021)
+- tests/sshserver.pl: make it work with openssh-8.7p1
+
+ ... by not using options with no argument where an argument is required:
+
+ === Start of file tests/log/ssh_server.log
+ curl_sshd_config line 6: no argument after keyword "DenyGroups"
+ curl_sshd_config line 7: no argument after keyword "AllowGroups"
+ curl_sshd_config line 10: Deprecated option AuthorizedKeysFile2
+ curl_sshd_config line 29: Deprecated option KeyRegenerationInterval
+ curl_sshd_config line 39: Deprecated option RhostsRSAAuthentication
+ curl_sshd_config line 40: Deprecated option RSAAuthentication
+ curl_sshd_config line 41: Deprecated option ServerKeyBits
+ curl_sshd_config line 45: Deprecated option UseLogin
+ curl_sshd_config line 56: no argument after keyword "AcceptEnv"
+ curl_sshd_config: terminating, 3 bad configuration options
+ === End of file tests/log/ssh_server.log
+
+ === Start of file log/sftp_server.log
+ curl_sftp_config line 33: Unsupported option "rhostsrsaauthentication"
+ curl_sftp_config line 34: Unsupported option "rsaauthentication"
+ curl_sftp_config line 52: no argument after keyword "sendenv"
+ curl_sftp_config: terminating, 1 bad configuration options
+ Connection closed.
+ Connection closed
+ === End of file log/sftp_server.log
+
+ Closes #7724
+
+Daniel Stenberg (15 Sep 2021)
+- hsts: handle unlimited expiry
+
+ When setting a blank expire string, meaning unlimited, curl would pass
+ TIME_T_MAX to getime_r() when creating the output, while on 64 bit
+ systems such a large value cannot be convetered to a tm struct making
+ curl to exit the loop with an error instead. It can't be converted
+ because the year it would represent doesn't fit in the 'int tm_year'
+ field!
+
+ Starting now, unlimited expiry is instead handled differently by using a
+ human readable expiry date spelled out as "unlimited" instead of trying
+ to use a distant actual date.
+
+ Test 1660 and 1915 have been updated to help verify this change.
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7720
+ Closes #7721
+
+- curl_multi_fdset: make FD_SET() not operate on sockets out of range
+
+ The VALID_SOCK() macro was made to only check for FD_SETSIZE if curl was
+ built to use select(), even though the curl_multi_fdset() function
+ always and unconditionally uses FD_SET and needs the check.
+
+ Reported-by: 0xee on github
+ Fixes #7718
+ Closes #7719
+
+- FAQ: add GOPHERS + curl works on data, not files
+
+Version 7.79.0 (14 Sep 2021)
+
+Daniel Stenberg (14 Sep 2021)
+- RELEASE-NOTES: synced
+
+ For the 7.79.0 release
+
+- THANKS: add contributors from 7.79.0 release cycle
+
+- FAQ: add two dev related questions
+
+ 8.1 Why does curl use C89?
+ 8.2 Will curl be rewritten?
+
+ Spell-checked-by: Paul Johnson
+ Closes #7715
+
+- zuul.d/jobs: disable three tests for *-openssl-disable-proxy
+
+ ... as they mysteriously seem to permfail without being related to
+ proxy.
+
+ Closes #7714
+
+- [Patrick Monnerat brought this change]
+
+ ftp,imap,pop3,smtp: reject STARTTLS server response pipelining
+
+ If a server pipelines future responses within the STARTTLS response, the
+ former are preserved in the pingpong cache across TLS negotiation and
+ used as responses to the encrypted commands.
+
+ This fix detects pipelined STARTTLS responses and rejects them with an
+ error.
+
+ CVE-2021-22947
+
+ Bug: https://curl.se/docs/CVE-2021-22947.html
+
+- [Patrick Monnerat brought this change]
+
+ ftp,imap,pop3: do not ignore --ssl-reqd
+
+ In imap and pop3, check if TLS is required even when capabilities
+ request has failed.
+
+ In ftp, ignore preauthentication (230 status of server greeting) if TLS
+ is required.
+
+ Bug: https://curl.se/docs/CVE-2021-22946.html
+
+ CVE-2021-22946
+
+- [z2_ on hackerone brought this change]
+
+ mqtt: clear the leftovers pointer when sending succeeds
+
+ CVE-2021-22945
+
+ Bug: https://curl.se/docs/CVE-2021-22945.html
+
+- zuul: bump the rustls job to use v0.7.2
+
+ ... and add -lm when using a rust library.
+
+ Closes #7701
+
+- RELEASE-PROCEDURE: add release dates from now to 8.0.0 in 2023
+
+- SECURITY-PROCESS: tweak a little to match current practices
+
+ Closes #7713
+
+- http_proxy: fix the User-Agent inclusion in CONNECT
+
+ It should not refer to the uagent string that is allocated and created
+ for the end server http request, as that pointer may be cleared on
+ subsequent CONNECT requests.
+
+ Added test case 1184 to verify.
+
+ Reported-by: T200proX7 on github
+ Fixes #7705
+ Closes #7707
+
+- Curl_hsts_loadcb: don't attempt to load if hsts wasn't inited
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7710
+ Closes #7711
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: fix build with ngtcp2 and nghttp3
+
+ ngtcp2_conn_client_new and nghttp3_conn_client_new are now macros.
+ Check the wrapped functions instead.
+
+ ngtcp2_stream_close callback now takes flags parameter.
+
+ Closes #7709
+
+- write-out.d: clarify size_download/upload
+
+ They show the number of "body" bytes transfered.
+ Fixes #7702
+ Closes #7706
+
+- http2: Curl_http2_setup needs to init stream data in all invokes
+
+ Thus function was written to avoid doing multiple connection data
+ initializations, which is fine, but since it also initiates stream
+ related data it is crucial that it doesn't skip those even if called
+ again for the same connection. Solved by moving the stream
+ initializations before the "doing-it-again" check.
+
+ Reported-by: Inho Oh
+ Fixes #7630
+ Closes #7692
+
+- url: fix compiler warning in no-verbose builds
+
+ Follow-up from 2f0bb864c12
+
+ Closes #7700
+
+- non-ascii: fix build errors from strerror fix
+
+ Follow-up to 2f0bb864c12
+
+ Closes #7697
+
+- parse_args: redo the warnings for --remote-header-name combos
+
+ ... to avoid the memory leak risk pointed out by scan-build.
+
+ Follow-up from 7a3e981781d6c18a
+
+ Closes #7698
+
+- ngtcp2: adapt to new size defintions upstream
+
+ Reviewed-by: Tatsuhiro Tsujikawa
+ Closes #7699
+
+- rustls: add strerror.h include
+
+ Follow-up to 2f0bb864c12
+
+- docs: the security list is reached at security at curl.se now
+
+ Also update the FAQ section a bit to encourage users to rather submit
+ security issues on hackerone than sending email.
+
+ Closes #7689
+
+Marc Hoersken (9 Sep 2021)
+- runtests: add option -u to error on server unexpectedly alive
+
+ Let's try to actually handle the server unexpectedly alive
+ case by first making them visible on CI builds as failures.
+
+ This is needed to detect issues with killing of the test
+ servers completely including nested process chains with
+ multiple PIDs per test server (including bash and perl).
+
+ On Windows/cygwin platforms this is especially helpful with
+ debugging PID mixups due to cygwin using its own PID space.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7180
+
+Daniel Stenberg (9 Sep 2021)
+- opts docs: unify phrasing in NAME header
+
+ - avoid writing "set ..." or "enable/disable ..." or "specify ..."
+ *All* options for curl_easy_setopt() are about setting or enabling
+ things and most of the existing options didn't use that way of
+ description.
+
+ - start with lowercase letter, unless abbreviation. For consistency.
+
+ - Some additional touch-ups
+
+ Closes #7688
+
+- strerror.h: remove the #include from files not using it
+
+- lib: don't use strerror()
+
+ We have and provide Curl_strerror() internally for a reason: strerror()
+ is not necessarily thread-safe so we should always try to avoid it.
+
+ Extended checksrc to warn for this, but feature the check disabled by
+ default and only enable it in lib/
+
+ Closes #7685
+
+Daniel Gustafsson (8 Sep 2021)
+- cirrus: Add FreeBSD 13.0 job and disable sanitizer build
+
+ As alluded to the in the now removed comment, a 13.0 image became
+ available and is now ready to be used.
+
+ The sanitizer builds were running on the 12.1 image which since has
+ been removed from the config, leaving the builds not running at all.
+ When enabled it turns out that they don't actually work due to very
+ long timeouts in executing the tests, so keep the disabled for now
+ but a bit more controlled.
+
+ Closes #7592
+
+Daniel Stenberg (8 Sep 2021)
+- copyrights: update copyright year ranges
+
+- RELEASE-NOTES: synced
+
+- INTERNALS: c-ares has a new home: c-ares.org
+
+- docs: remove experimental mentions from HSTS and MQTT
+
+ Reported-by: Jonathan Cardoso
+ Bug: https://github.com/curl/curl/pull/6700#issuecomment-913792863
+ Closes #7681
+
+- [Cao ZhenXiang brought this change]
+
+ curl: add warning for incompatible parameters usage
+
+ --continue-at - and --remote-header-name are known incompatible parameters
+
+ Closes #7674
+
+- [git-bruh brought this change]
+
+ examples/*hiperfifo.c: fix calloc arguments to match function proto
+
+ Closes #7678
+
+- INTERNALS: bump c-ares requirement to 1.16.0
+
+ Since ba904db0705c93 we use ares_getaddrinfo, added in c-ares 1.16.0
+
+- curl: stop retry if Retry-After: is longer than allowed
+
+ If Retry-After: specifies a period that is longer than what fits within
+ --retry-max-time, then stop retrying immediately.
+
+ Added test 366 to verify.
+
+ Reported-by: Kari Pahula
+ Fixes #7675
+ Closes #7676
+
+- [Michał Antoniak brought this change]
+
+ mbedtls: avoid using a large buffer on the stack
+
+ Use dynamic memory allocation for the buffer used in checking "pinned
+ public key". The PUB_DER_MAX_BYTES parameter with default settings is
+ set to a value greater than 2kB.
+
+ Co-authored-by: Daniel Stenberg
+ Closes #7586
+
+- configure: make --disable-hsts work
+
+ The AC_ARG_ENABLE() macro itself uses a variable called
+ 'enable_[option]', so when our script also used a variable with that
+ name for the purpose of storing what the user wants, it also
+ accidentally made it impossible to switch off the feature with
+ --disable-hsts. Fix this by renaming our variable.
+
+ Reported-by: Michał Antoniak
+ Fixes #7669
+ Closes #7672
+
+Jay Satiro (5 Sep 2021)
+- config.d: note that curlrc is used even when --config
+
+ Bug: https://github.com/curl/curl/pull/7666#issuecomment-912214751
+ Reported-by: Viktor Szakats
+
+ Closes https://github.com/curl/curl/pull/7667
+
+Daniel Stenberg (4 Sep 2021)
+- RELEASE-NOTES: synced
+
+- test1173: check references to libcurl options
+
+ ... that they refer to actual existing libcurl options.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- CURLOPT_UNIX_SOCKET_PATH.3: remove nginx reference, add see also
+
+ Closes #7656
+
+- opt-docs: verify man page sections + order
+
+ In every libcurl option man page there are now 8 mandatory sections that
+ must use the right name in the correct order and test 1173 verifies
+ this. Only 14 man pages needed adjustments.
+
+ The sections and the order is as follows:
+
+ - NAME
+ - SYNOPSIS
+ - DESCRIPTION
+ - PROTOCOLS
+ - EXAMPLE
+ - AVAILABILITY
+ - RETURN VALUE
+ - SEE ALSO
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- opt-docs: make sure all man pages have examples
+
+ Extended manpage-syntax.pl (run by test 1173) to check that every man
+ page for a libcurl option has an EXAMPLE section that is more than two
+ lines. Then fixed all errors it found and added examples.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- get.d: provide more useful examples
+
+ Closes #7668
+
+- page-header: add GOPHERS, simplify wording in the 1st para
+
+ Closes #7665
+
+- connect: get local port + ip also when reusing connections
+
+ Regression. In d6a37c23a3c (7.75.0) we removed the duplicated storage
+ (connection + easy handle), so this info needs be extracted again even
+ for re-used connections.
+
+ Add test 435 to verify
+
+ Reported-by: Max Dymond
+ Fixes #7660
+ Closes #7662
+
+Marcel Raad (2 Sep 2021)
+- multi: fix compiler warning with `CURL_DISABLE_WAKEUP`
+
+ `use_wakeup` is unused in this case.
+
+ Closes https://github.com/curl/curl/pull/7661
+
+Daniel Stenberg (1 Sep 2021)
+- tests: adjust the tftpd output to work with hyper mode
+
+ By making them look less like http headers, the hyper mode "tweak"
+ doesn't interfere.
+
+ Enable test 2002 and 2003 in hyper builds (and 1280 which is unrelated
+ but should be enabled).
+
+ Closes #7658
+
+Daniel Gustafsson (1 Sep 2021)
+- [Gisle Vanem brought this change]
+
+ openssl: annotate SSL3_MT_SUPPLEMENTAL_DATA
+
+ This adds support for the previously unhandled supplemental data which
+ in -v output was printed like:
+
+ TLSv1.2 (IN), TLS header, Unknown (23):
+
+ These will now be printed with proper annotation:
+
+ TLSv1.2 (OUT), TLS header, Supplemental data (23):
+
+ Closes #7652
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (1 Sep 2021)
+- curl.1: provide examples for each option
+
+ The file format for each option now features a "Example:" header that
+ can provide one or more examples that get rendered appropriately in the
+ output. All options MUST have at least one example or gen.pl complains
+ at build-time.
+
+ This fix also does a few other minor format and consistency cleanups.
+
+ Closes #7654
+
+- progress: make trspeed avoid floats
+
+ and compiler warnings for data conversions.
+
+ Reported-by: Michał Antoniak
+ Fixes #7645
+ Closes #7653
+
+- test365: verify response with chunked AND Content-Length headers
+
+- http: ignore content-length if any transfer-encoding is used
+
+ Fixes #7643
+ Closes #7649
+
+- RELEASE-NOTES: synced
+
+- Revert "http2: skip immediate parsing of payload following protocol switch"
+
+ This reverts commit 455a63c66f188598275e87d32de2c4e8e26b80cb.
+
+ Reported-by: Tk Xiong
+ Fixes #7633
+ Closes #7648
+
+- KNOWN_BUGS: HTTP/3 doesn't support client certs
+
+ Closes #7625
+
+- mailing lists: move from cool.haxx.se to lists.haxx.se
+
+- http_proxy: only wait for writable socket while sending request
+
+ Otherwise it would wait socket writability even after the entire CONNECT
+ request has sent and make curl basically busy-loop while waiting for a
+ response to come back.
+
+ The previous fix attempt in #7484 (c27a70a591a4) was inadequate.
+
+ Reported-by: zloi-user on github
+ Reported-by: Oleguer Llopart
+ Fixes #7589
+ Closes #7647
+
+- http: disallow >3-digit response codes
+
+ Make the built-in HTTP parser behave similar to hyper and reject any
+ HTTP response using more than 3 digits for the response code.
+
+ Updated test 1432 accordingly.
+ Enabled test 1432 in the hyper builds.
+
+ Closes #7641
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: stop buffering crypto data
+
+ Stop buffering crypto data because libngtcp2 now buffers submitted
+ crypto data.
+
+ Closes #7637
+
+- test1280: CRLFify the response to please hyper
+
+ Closes #7639
+
+- tests: enable test 1129 for hyper builds
+
+ Closes #7638
+
+- curl: better error message when -O fails to get a good name
+
+ Due to how this currently works internally, it needs a working initial
+ file name to store contents in, so it may still fail even with -J is
+ used (and thus accepting a name from content-disposition:) if the file
+ name part of the URL isn't "good enough".
+
+ Fixes #7628
+ Closes #7635
+
+- curl_easy_setopt: tweak the string copy wording
+
+ Reported-by: Yaobin Wen
+ Fixes #7632
+ Closes #7634
+
+- RELEASE-NOTES: synced
+
+- [Don J Olmstead brought this change]
+
+ cmake: sync CURL_DISABLE options
+
+ Adds the full listing of CURL_DISABLE options to the CMake build. Moves
+ all option code, except for CURL_DISABLE_OPENSSL_AUTO_LOA_CONFIG which
+ resides near OpenSSL configuration, to the same block of code. Also
+ sorts the options here and in the cmake config header.
+
+ Additionally sorted the CURL-DISABLE listing and fixed the
+ CURL_DISABLE_POP3 option.
+
+ Closes #7624
+
+Jay Satiro (25 Aug 2021)
+- KNOWN_BUGS: FTPS upload data loss with TLS 1.3
+
+ Bug: https://github.com/curl/curl/issues/6149
+ Reported-by: Bylon2@users.noreply.github.com
+
+ Closes https://github.com/curl/curl/pull/7623
+
+Daniel Stenberg (24 Aug 2021)
+- cmake: avoid poll() on macOS
+
+ ... like we do in configure builds. Since poll() on macOS is not
+ reliable enough.
+
+ Reported-by: marc-groundctl
+ Fixes #7595
+ Closes #7619
+
+- c-hyper: handle HTTP/1.1 => HTTP/1.0 downgrade on reused connection
+
+ Enable test 1074
+
+ Closes #7617
+
+- c-hyper: deal with Expect: 100-continue combined with POSTFIELDS
+
+ Enable test 1130 and 1131
+
+ Closes #7616
+
+- [a1346054 brought this change]
+
+ tests: be explicit about using 'python3' instead of 'python'
+
+ This fixes running tests in virtualenvs (or on distros) that no longer
+ have a symlink from python to python2 or python3.
+
+ Closes #7602
+
+- [a1346054 brought this change]
+
+ scripts: invoke interpreters through /usr/bin/env
+
+ Closes #7602
+
+- DISABLED: enable 11 more tests for hyper builds
+
+ Closes #7612
+
+- setopt: enable CURLOPT_IGNORE_CONTENT_LENGTH for hyper
+
+ Since this option is also used for FTP, it needs to work to set for
+ applications even if hyper doesn't support it for HTTP. Verified by test
+ 1137.
+
+ Updated docs to specify that the option doesn't work for HTTP when using
+ the hyper backend.
+
+ Closes #7614
+
+- test1138: remove trailing space to make work with hyper
+
+ Closes #7613
+
+- libcurl-errors.3: clarify two CURLUcode errors
+
+ CURLUE_BAD_HANDLE and CURLUE_BAD_PARTPOINTER should be for "bad" or
+ wrong pointers in a generic sense, not just for NULL pointers.
+
+ Reviewed-by: Jay Satiro
+
+ Ref: #7605
+ Closes #7611
+
+Jay Satiro (23 Aug 2021)
+- symbols-in-versions: fix CURLSSLBACKEND_QSOSSL last used version
+
+ ... and also change the 'Removed' column name to 'Last' since that
+ column is for the last version to contain the symbol.
+
+ Closes https://github.com/curl/curl/pull/7609
+
+Daniel Stenberg (23 Aug 2021)
+- urlapi.c:seturl: assert URL instead of using if-check
+
+ There's no code flow possible where this can happen. The assert makes
+ sure it also won't be introduced undetected in the future.
+
+ Closes #7610
+
+- curl-openssl.m4: show correct output for OpenSSL v3
+
+ Using 3.0.0 versions configure should now show this:
+
+ checking for OpenSSL headers version... 3.0.0 - 0x300
+ checking for OpenSSL library version... 3.0.0
+ checking for OpenSSL headers and library versions matching... yes
+
+ This output doesn't actually change what configure generates but is only
+ "cosmetic".
+
+ Reported-by: Randall S. Becker
+ Fixes #7606
+ Closes #7608
+
+Jay Satiro (22 Aug 2021)
+- mksymbolsmanpage.pl: Fix showing symbol's last used version
+
+ Prior to this change the symbol's deprecated version was erroneously
+ shown as its last used version.
+
+ Bug: https://github.com/curl/curl/commit/4e53b94#commitcomment-55239509
+ Reported-by: i-ky@users.noreply.github.com
+
+Daniel Stenberg (21 Aug 2021)
+- mksymbolsmanpage.pl: match symbols case insenitively
+
+ Follow-up to 4e53b9430c750 which made this bug show.
+
+ Reported-by: i-ky
+ Bug: https://github.com/curl/curl/commit/4e53b9430c7504de8984796e2a2091ec16f27136#commitcomment-55239253
+ Closes #7607
+
+- asyn-ares: call ares_freeaddrinfo() to clean up addrinfo results
+
+ As this leaks memory otherwise
+
+ Follow-up to ba904db0705c931
+
+ Closes #7599
+
+- [Ehren Bendler brought this change]
+
+ wolfssl: clean up wolfcrypt error queue
+
+ If wolfSSL is built in certain ways (OPENSSL_EXTRA or Debug), the error
+ queue gets added on to for each session and never freed. Fix it by
+ calling ERR_clear_error() like in vtls/openssl when needed. This func is
+ a no-op in wolfcrypt if the error queue is not enabled.
+
+ Closes #7594
+
+- man pages: remove trailing whitespaces
+
+ Extended test 1173 (via the manpage-syntax.pl script) to detect and warn
+ for them.
+
+ Ref: #7602
+ Reported-by: a1346054 on github
+ Closes #7604
+
+- mailmap: add Gleb Ivanovsky
+
+- config.d: escape the backslash properly
+
+ Closes #7603
+
+- [Don J Olmstead brought this change]
+
+ curl_setup.h: sync values for HTTP_ONLY
+
+ The values for HTTP_ONLY differed between CMakeLists.txt and
+ curl_setup.h. Sync them and sort the values in curl_setup.h to make it
+ easier to spot differences.
+
+ Closes #7601
+
+Jay Satiro (21 Aug 2021)
+- configure: set classic mingw minimum OS version to XP
+
+ - If the user has not specified a minimum OS version (via WINVER or
+ _WIN32_WINNT macros) then set it to Windows XP.
+
+ Prior to this change classic MinGW defaulted the minimum OS version
+ to Windows NT 4.0 which is way too old. At least Windows XP is needed
+ for getaddrinfo (which resolves hostnames to IPv6 addresses).
+
+ Ref: https://github.com/curl/curl/issues/7483#issuecomment-891597034
+
+ Closes https://github.com/curl/curl/pull/7581
+
+- schannel: Work around typo in classic mingw macro
+
+ - Define ALG_CLASS_DHASH (the typo from the include) to ALG_CLASS_HASH.
+
+ Prior to this change there was an incomplete fix to ignore the
+ CALG_TLS1PRF macro on those versions of MinGW where it uses the
+ ALG_CLASS_DHASH typoed macro.
+
+ Ref: 48cf45c
+ Ref: https://osdn.net/projects/mingw/ticket/38391
+ Ref: https://github.com/curl/curl/issues/2924
+
+ Closes https://github.com/curl/curl/pull/7580
+
+Daniel Stenberg (20 Aug 2021)
+- RELEASE-NOTES: synced
+
+- http_proxy: fix user-agent and custom headers for CONNECT with hyper
+
+ Enable test 287
+
+ Closes #7598
+
+- c-hyper: initial support for "dumping" 1xx HTTP responses
+
+ With the use hyper_request_on_informational()
+
+ Enable test 155 and 158
+
+ Closes #7597
+
+Marc Hoersken (18 Aug 2021)
+- tests/*server.pl: flush output before executing subprocess
+
+ Also avoid shell processes staying around by using exec.
+ This is necessary to avoid output data being buffering
+ inside the process chain of Perl, Bash/Shell and our
+ test server binaries. On non-Windows systems the exec
+ will also make the subprocess replace the intermediate
+ shell, but on Windows it will at least bind the processes
+ together since there is no real fork or exec available.
+
+ See: https://cygwin.com/cygwin-ug-net/highlights.html
+ and: https://docs.microsoft.com/cpp/c-runtime-library/exec-wexec-functions
+ Ref: https://github.com/curl/curl/pull/7530#issuecomment-900949010
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+ Closes #7530
+
+- CI: use GitHub Container Registry instead of Docker Hub
+
+ Avoid limits on Docker Hub and improve image pull/download speed.
+
+ Closes #7587
+
+Daniel Stenberg (18 Aug 2021)
+- openssl: when creating a new context, there cannot be an old one
+
+ Remove the previous handling that would call SSL_CTX_free(), and instead
+ add an assert that halts a debug build if there ever is a context
+ already set at this point.
+
+ Closes #7585
+
+Jay Satiro (18 Aug 2021)
+- KNOWN_BUGS: Renegotiate from server may cause hang for OpenSSL backend
+
+ Closes https://github.com/curl/curl/issues/6785
+
+Viktor Szakats (17 Aug 2021)
+- docs/BINDINGS: URL update
+
+Marc Hoersken (17 Aug 2021)
+- tests/server/*.c: align handling of portfile argument and file
+
+ 1. Call the internal variable portname (like pidname) everywhere.
+ 2. Have a variable wroteportfile (like wrotepidfile) everywhere.
+ 3. Make sure the file is cleaned up on exit (like pidfile).
+ 4. Add parameter --portfile to usage outputs everywhere.
+
+ Reviewed-by: Daniel Stenberg
+
+ Replaces #7523
+ Closes #7574
+
+Daniel Gustafsson (17 Aug 2021)
+- KNOWN_BUGS: Fix a number of typos in KNOWN_BUGS
+
+ Fixes a set of typos found in section 11.3.
+
+Daniel Stenberg (17 Aug 2021)
+- getparameter: fix the --local-port number parser
+
+ It could previously get tricked into parsing the uninitialized stack
+ based buffer.
+
+ Reported-by: Brian Carpenter
+ Closes #7582
+
+- KNOWN_BUGS: Can't use Secure Transport with Crypto Token Kit
+
+ Closes #7048
+
+- [Jan Verbeek brought this change]
+
+ curl: add warning for ignored data after quoted form parameter
+
+ In an argument like `-F 'x=@/etc/hostname;filename="foo"abc'` the `abc`
+ is ignored. This adds a warning if the ignored data isn't all
+ whitespace.
+
+ Closes #7394
+
+Jay Satiro (17 Aug 2021)
+- codeql: fix error "Resource not accessible by integration"
+
+ - Enable codeql writing security-events.
+
+ GitHub set the default permissions to read, apparently since earlier
+ this year.
+
+ Ref: https://github.com/github/codeql-action/issues/464
+ Ref: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
+
+ Fixes https://github.com/curl/curl/issues/7575
+ Closes https://github.com/curl/curl/pull/7576
+
+- tool_operate: Fix --fail-early with parallel transfers
+
+ - Abort via progress callback to fail early during parallel transfers.
+
+ When a critical error occurs during a transfer (eg --fail-early
+ constraint) then other running transfers will be aborted via progress
+ callback and finish with error CURLE_ABORTED_BY_CALLBACK (42). In this
+ case, the callback error does not become the most recent error and a
+ custom error message is used for those transfers:
+
+ curld --fail --fail-early --parallel
+ https://httpbin.org/status/404 https://httpbin.org/delay/10
+
+ curl: (22) The requested URL returned error: 404
+ curl: (42) Transfer aborted due to critical error in another transfer
+
+ > echo %ERRORLEVEL%
+ 22
+
+ Fixes https://github.com/curl/curl/issues/6939
+ Closes https://github.com/curl/curl/pull/6984
+
+Daniel Stenberg (17 Aug 2021)
+- [Sergey Markelov brought this change]
+
+ sectransp: support CURLINFO_CERTINFO
+
+ Fixes #4130
+ Closes #7372
+
+- ngtcp2: remove the acked_crypto_offset struct field init
+
+ ... as it is gone from the API upstream.
+
+ Closes #7578
+
+- misc: update incorrect copyright year ranges
+
+ Closes #7577
+
+- KNOWN_BUGS: HTTP/3 quiche upload large file fails
+
+ Closes #7532
+
+- KNOWN_BUGS: CMake build with MIT Kerberos does not work
+
+ Closes #6904
+
+- TODO: add asynch getaddrinfo support
+
+ Closes #6746
+
+- RELEASE-NOTES: synced
+
+- [Artur Sinila brought this change]
+
+ http2: revert call the handle-closed function correctly on closed stream
+
+ Reverts 252790c5335a221
+
+ Assisted-by: Gergely Nagy
+ Fixes #7400
+ Closes #7525
+
+- [Patrick Monnerat brought this change]
+
+ auth: do not append zero-terminator to authorisation id in kerberos
+
+ RFC4752 Section 3.1 states "The authorization identity is not terminated
+ with a zero-valued (%x00) octet". Although a comment in code said it may
+ be needed anyway, nothing confirms it. In addition, servers may consider
+ it as part of the identity, causing a failure.
+
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: use sasl authzid option in kerberos
+
+ ... instead of deriving it from active ticket.
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: we do not support a security layer after kerberos authentication
+
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: properly handle byte order in kerberos security message
+
+ Closes #7008
+
+- [z2_ brought this change]
+
+ x509asn1: fix heap over-read when parsing x509 certificates
+
+ Assisted-by: Patrick Monnerat
+ Closes #7536
+
+- KNOWN_BUGS: Disconnects don't do verbose
+
+ Closes #6995
+
+- mailmap: fixup Michał Antoniak
+
+- [Michał Antoniak brought this change]
+
+ build: fix compiler warnings
+
+ For when CURL_DISABLE_VERBOSE_STRINGS and DEBUGBUILD flags are both
+ active.
+
+ - socks.c : warning C4100: 'lineno': unreferenced formal parameter
+ (co-authored by Daniel Stenberg)
+
+ - mbedtls.c: warning C4189: 'port': local variable is initialized but
+ not referenced
+
+ - schannel.c: warning C4189: 'hostname': local variable is initialized
+ but not referenced
+
+ Cloes #7528
+
+- [Gleb Ivanovsky brought this change]
+
+ CODE_STYLE-md: fix bold font style
+
+ Markdown gets confused with abundance of asterisks, so use underscores
+ instead.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7569
+
+- [Gleb Ivanovsky brought this change]
+
+ CODE_STYLE-md: add missing comma
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7570
+
+- [Daniel Gustafsson brought this change]
+
+ examples/ephiperfifo.c: simplify signal handler
+
+ The signal handler registered for SIGINT is only handling SIGINT
+ so there isn't much need for inspecting the signo. While there,
+ rename the handler to be more specific.
+
+ g_should_exit should really be of sig_atomic_t type, but relying
+ on autoconf in the examples seems like a bad idea so keep that
+ for now.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7310
+
+- c-hyper: initial step for 100-continue support
+
+ Enabled test 154
+
+ Closes #7568
+
+- [Ikko Ashimine brought this change]
+
+ vtls: fix typo in schannel_verify.c
+
+ occurence -> occurrence
+
+ Closes #7566
+
+- [Emil Engler brought this change]
+
+ curl_url_get.3: clarify about path and query
+
+ The current man-page lacks some details regarding the obtained path and
+ query.
+
+ Closes #7563
+
+- c-hyper: fix header value passed to debug callback
+
+ Closes #7567
+
+Viktor Szakats (12 Aug 2021)
+- cleanup: URL updates
+
+ - replace broken URL with the one it was most probably pointing to
+ when added (lib/tftp.c)
+ - replace broken URL with archive.org link (lib/curl_ntlm_wb.c)
+ - delete unnecessary protocol designator from archive.org URL
+ (docs/BINDINGS.md)
+
+ Closes #7562
+
+Daniel Stenberg (12 Aug 2021)
+- [April King brought this change]
+
+ DEPRECATE.md: linkify curl-library mailing list
+
+ Closes #7561
+
+- [Barry Pollard brought this change]
+
+ output.d: add method to suppress response bodies
+
+ Closes #7560
+
+- TODO: remove 'c-ares deviates on http://1346569778'
+
+ Fixed since 56a037cc0ad1b2 (7.77.0)
+
+- [Colin O'Dell brought this change]
+
+ BINDINGS.md: update links to use https where available
+
+ Closes #7558
+
+- asyn-ares.c: move all version number checks to the top
+
+ ... and use #ifdef [feature] in the code as per our guidelines.
+
+- ares: use ares_getaddrinfo()
+
+ ares_getaddrinfo() is the getaddrinfo() cloned provided by c-ares, introduced
+ in version 1.16.0.
+
+ With older c-ares versions, curl invokes ares_gethostbyname() twice - once for
+ IPv4 and once for IPv6 to resolve both addresses, and then combines the
+ returned results.
+
+ Reported-by: jjandesmet
+ Fixes #7364
+ Closes #7552
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: utilize crypto API functions to simplify
+
+ Closes #7551
+
+- [megatronking brought this change]
+
+ ngtcp2: reset the oustanding send buffer again when drained
+
+ Closes #7538
+
+Michael Kaufmann (10 Aug 2021)
+- progress: fix a compile warning on some systems
+
+ lib/progress.c:380:40: warning: conversion to 'long double' from
+ 'curl_off_t {aka long long int}' may alter its value [-Wconversion]
+
+ Closes #7549
+
+Daniel Stenberg (10 Aug 2021)
+- RELEASE-NOTES: synced
+
+- http: consider cookies over localhost to be secure
+
+ Updated test31.
+ Added test 392 to verify secure cookies used for http://localhost
+
+ Reviewed-by: Daniel Gustafsson
+ Fixes #6733
+ Closes #7263
+
+- TODO: erase secrets from heap/stack after use
+
+ Closes #7268
+
+Jay Satiro (10 Aug 2021)
+- hostip: Make Curl_ipv6works function independent of getaddrinfo
+
+ - Do not assume IPv6 is not working when getaddrinfo is not present.
+
+ The check to see if IPv6 actually works is now independent of whether
+ there is any resolver that can potentially resolve a hostname to IPv6.
+
+ Prior to this change if getaddrinfo() was not found at compile time then
+ Curl_ipv6works() would be defined as a macro that returns FALSE.
+
+ When getaddrinfo is not found then libcurl is built with CURLRES_IPV4
+ defined instead of CURLRES_IPV6, meaning that it cannot do IPv6 lookups
+ in the traditional way. With this commit if libcurl is built with IPv6
+ support (ENABLE_IPV6) but without getaddrinfo (CURLRES_IPV6), and the
+ IPv6 stack is actually working, then it is possible for libcurl to
+ resolve IPv6 addresses by using DoH.
+
+ Ref: https://github.com/curl/curl/issues/7483#issuecomment-890765378
+
+ Closes https://github.com/curl/curl/pull/7529
+
+- test1565: fix windows build errors
+
+ - Use our wait_ms() instead of sleep() since Windows doesn't have the
+ latter.
+
+ - Use a separate variable to keep track of whether the pthread_t thread
+ id is valid.
+
+ On Windows pthread_t is not an integer type. pthread offers no macro for
+ invalid pthread_t thread id, so validity is kept track of separately.
+
+ Closes https://github.com/curl/curl/pull/7527
+
+- [Jeremy Falcon brought this change]
+
+ winbuild/README.md: clarify GEN_PDB option
+
+ - Document that GEN_PDB option creates an external database.
+
+ Ref: https://github.com/curl/curl/issues/7502
+
+Daniel Stenberg (9 Aug 2021)
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: replace deprecated functions with nghttp3_conn_shutdown_stream_read
+
+ Closes #7546
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: rework the return value handling of ngtcp2_conn_writev_stream
+
+ Rework the return value handling of ngtcp2_conn_writev_stream and treat
+ NGTCP2_ERR_STREAM_SHUT_WR separately.
+
+ Closes #7546
+
+- configure: error out if both ngtcp2 and quiche are specified
+
+ Reported-by: Vincent Grande
+ See #7539
+ Closes #7545
+
+- [Jeff Mears brought this change]
+
+ easy: use a custom implementation of wcsdup on Windows
+
+ ... so that malloc/free overrides from curl_global_init are used for
+ wcsdup correctly.
+
+ Closes #7540
+
+- zuul: add an mbedtls3 CI job
+
+ Closes #7544
+
+- [Benau brought this change]
+
+ mbedTLS: initial 3.0.0 support
+
+ Closes #7428
+
+- RELEASE-NOTES: synced
+
+- configure.ac: revert bad nghttp2 library detection improvements
+
+ This reverts commit b4b34db65f9f8, 673753344c5f and 29c7cf79e8b.
+
+ The logic is now back to assuming that the nghttp2 lib is called nghttp2 and
+ nothing else.
+
+ Reported-by: Rui Pinheiro
+ Reported-by: Alex Crichton
+ Fixes #7514
+ Closes #7515
+
+- happy-eyeballs-timeout-ms.d: polish the wording
+
+ Reported-by: Josh Soref
+ Fixes #7433
+ Closes #7542
+
+- [modbw brought this change]
+
+ mbedtls_threadlock: fix unused variable warning
+
+ Closes #7393
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: compile with the latest ngtcp2 and nghttp3
+
+ Closes #7541
+
+Marc Hoersken (31 Jul 2021)
+- CI/cirrus: reduce compile time with increased parallism
+
+ Cirrus CI VMs have 2 CPUs, let's use them also for Windows builds.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7505
+
+Daniel Stenberg (30 Jul 2021)
+- [Bin Lan brought this change]
+
+ tool/tests: fix potential year 2038 issues
+
+ The length of 'long' in a 32-bit system is 32 bits, which cannot be used
+ to save timestamps after 2038. Most operating systems have extended
+ time_t to 64 bits.
+
+ Remove the castings to long.
+
+ Closes #7466
+
+- compressed.d: it's a request, not an order
+
+ Clarified
+
+ Reported-by: Dan Jacobson
+ Reviewed-by: Daniel Gustafsson
+ Fixes #7516
+ Closes #7517
+
+- [Bernhard M. Wiedemann brought this change]
+
+ tests: make three tests pass until 2037
+
+ after 2038 something in test1915 fails on 32-bit OSes
+
+ Closes #7512
+
+Daniel Gustafsson (30 Jul 2021)
+- connect: remove superfluous conditional
+
+ Commit dbd16c3e2 cleaned up the logic for traversing the addrinfos,
+ but the move left a conditional on ai which no longer is needed as
+ the while loop reevaluation will cover it.
+
+ Closes #7511
+ Reviewed-by: Carlo Marcelo Arenas Belón
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (29 Jul 2021)
+- RELEASE-NOTES: synced
+
+ and bump curlver to 7.79.0 for next release
+
+Marc Hoersken (29 Jul 2021)
+- tests/*server.py: remove pidfile on server termination
+
+ Avoid pidfile leaking/laying around after server already exited.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7506
+
+Daniel Gustafsson (27 Jul 2021)
+- tool_main: fix typo in comment
+
+ The referred to library is NSPR, so fix the switched around characters.
+
+Daniel Stenberg (28 Jul 2021)
+- [Aleksandr Krotov brought this change]
+
+ bearssl: support CURLOPT_CAINFO_BLOB
+
+ Closes #7468
+
+- curl.1: mention "global" flags
+
+ Mention options that are "global". A global command line option is one
+ that doesn't get reset at --next uses and therefore don't need to be
+ used again.
+
+ Reported-by: Josh Soref
+
+ Fixes #7457
+ Closes #7510
+
+- CURLOPT_DOH_URL.3: CURLOPT_OPENSOCKETFUNCTION is not inherited
+
+ Reported-by: Daniel Woelfel
+ Fixes #7441
+ Closes #7509
+
+- KNOWN_BUGS: add more HTTP/3 problems
+
+ Closes #7351
+ Closes #7339
+ Closes #7125
+
+Marc Hoersken (27 Jul 2021)
+- CI/azure: reduce compile time with increased parallism
+
+ Azure Pipelines CI VMs have 2 CPUs, let's use them.
+
+ Closes #7489
+
+Jay Satiro (27 Jul 2021)
+- [Josh Soref brought this change]
+
+ docs: fix grammar
+
+ Fixes https://github.com/curl/curl/issues/7444
+ Fixes https://github.com/curl/curl/issues/7451
+ Fixes https://github.com/curl/curl/issues/7465
+ Closes https://github.com/curl/curl/pull/7495
+
+- mail-rcpt.d: fix grammar
+
+ Remove confusing sentence that says to specify an e-mail address for
+ mail transfer, since that's implied.
+
+ Reported-by: Josh Soref
+
+ Fixes https://github.com/curl/curl/issues/7452
+ Closes https://github.com/curl/curl/pull/7495
+
+Daniel Stenberg (27 Jul 2021)
+- c-hyper: remove the hyper_executor_poll() loop from Curl_http
+
+ 1. it's superfluous
+ 2. it didn't work identically to the Curl_hyper_stream one which could
+ cause problems like #7486
+
+ Pointed-out-by: David Cook
+ Closes #7499
+
+- curl-openssl.m4: check lib64 for the pkg-config file
+
+ OpenSSL recently started putting the libs in $prefix/lib64 on 'make
+ install', so we check that directory for pkg-config data if the 'lib'
+ check fails.
+
+ Closes #7503
+
+- CURLOPT_SSL_CTX_*.3: tidy up the example
+
+ Use the proper code style. Don't store return codes that aren't read.
+ Copy the same example into CURLOPT_SSL_CTX_FUNCTION.3 as well.
+
+ Closes #7500
+
+- example/cookie_interface: fix scan-build printf warning
+
+ Follow-up to 4b79c4fb565
+
+ Fixes #7497
+ Closes #7498
+
+- [Josh Soref brought this change]
+
+ limit-rate.d: clarify base unit
+
+ Fixes #7439
+ Closes #7494
+
+- [Carlo Marcelo Arenas Belón brought this change]
+
+ examples/cookie_interface: avoid printfing time_t directly
+
+ time_t representation is undefined and varies on bitsize and signedness,
+ and as of C11 could be even non integer.
+
+ instead of casting to unsigned long (which would truncate in systems
+ with a 32bit long after 2106) use difftime to get the elapsed time as a
+ double and print that (without decimals) instead.
+
+ alternatively a cast to curl_off_t and its corresponding print
+ formatting could have been used (at least in POSIX) but portability and
+ curl agnostic code was prioritized.
+
+ Closes #7490
+
+Marc Hoersken (25 Jul 2021)
+- tests/servers: remove obsolete pid variable
+
+ Variable is not used since pidfile handling moved to util.[ch]
+
+ Reviewed-by: Jay Satiro
+ Closes #7482
+
+- tests/servers: use our platform-aware pid for server verification
+
+ The pid used for server verification is later stored as pid2 in
+ the hash of running test servers and therefore used for shutdown.
+
+ The pid used for shutdown must be the platform-aware (Win32) pid
+ to avoid leaking test servers while running them using Cygwin/msys.
+
+ Reviewed-by: Jay Satiro
+ Closes #7481
+
+- tests/runtests.pl: cleanup copy&paste mistakes and unused code
+
+ Reviewed-by: Jay Satiro
+ Part of #7481
+
+Daniel Stenberg (25 Jul 2021)
+- RELEASE-NOTES: synced
+
+ bumped to 7.78.1 for next release
+
+- http_proxy: clear 'sending' when the outgoing request is sent
+
+ ... so that Curl_connect_getsock() will know how to wait for the socket
+ to become readable and not writable after the entire CONNECT request has
+ been issued.
+
+ Regression added in 7.77.0
+
+ Reported-by: zloi-user on github
+ Assisted-by: Jay Satiro
+ Fixes #7155
+ Closes #7484
+
+Jay Satiro (25 Jul 2021)
+- [Josh Soref brought this change]
+
+ openssl: fix grammar
+
+ Closes https://github.com/curl/curl/pull/7480
+
+- configure.ac: tweak nghttp2 library name fix again
+
+ - Change extraction to handle multiple library names returned by
+ pkg-config (eg a possible scenario with pkg-config --static).
+
+ Ref: https://github.com/curl/curl/pull/7472
+
+ Closes https://github.com/curl/curl/pull/7485
+
+Dan Fandrich (23 Jul 2021)
+- Get rid of the unused HAVE_SIG_ATOMIC_T et. al.
+
+ It was added in 2006 but I see no evidence it was ever used.
+
+Jay Satiro (23 Jul 2021)
+- docs: change max-filesize caveat again
+
+ - Add protocols field to max-filesize.d.
+
+ - Revert wording on unknown file size caveat and do not discuss specific
+ protocols in that section.
+
+ Partial revert of ecf0225. All max-filesize options now have the list of
+ protocols and it's clearer just to have that list without discussing
+ specific protocols in the caveat.
+
+ Reported-by: Josh Soref
+
+ Ref: https://github.com/curl/curl/issues/7453#issuecomment-884128762
+
+Daniel Stenberg (22 Jul 2021)
+- [Christian Weisgerber brought this change]
+
+ configure: tweak nghttp2 library name fix
+
+ commit 29c7cf79e8b44cf (shipped in 7.78.0) introduced a problem by
+ assuming that LIB_H2 does not have any leading whitespace. At least
+ OpenBSD's native pkg-config can produce such whitespace, though:
+
+ $ pkg-config --libs-only-l libnghttp2
+ -lnghttp2
+
+ As a result, the configure check for libnghttp2 will erroneously fail.
+
+ Bug: https://curl.se/mail/lib-2021-07/0050.html
+ Closes #7472
+
+- [Bastian Krause brought this change]
+
+ docs/MQTT: update state of username/password support
+
+ PR #7243 implemented username/password support for MQTT, so let's drop
+ these items from the caveats.
+
+ Signed-off-by: Bastian Krause <bst@pengutronix.de>
+
+ Closes #7474
+
+- [Oleg Pudeyev brought this change]
+
+ CURLMOPT_TIMERFUNCTION.3: remove misplaced "time"
+
+ Closes #7470
+
Version 7.78.0 (21 Jul 2021)
Daniel Stenberg (21 Jul 2021)
@@ -192,7 +3463,7 @@ Daniel Stenberg (18 Jul 2021)
Closes #7411
Closes #7412
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
lib: fix compiler warnings with CURL_DISABLE_NETRC
@@ -279,7 +3550,7 @@ Daniel Stenberg (18 Jul 2021)
Fixes #7415
Closes #7417
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
mbedtls: Remove unnecessary include
@@ -1789,19 +5060,19 @@ Daniel Stenberg (3 Jun 2021)
Add test 3017 and 3018 to verify.
Closes #7166
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
cmake: add CURL_DISABLE_NTLM option
Closes #7028
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
configure: add --disable-ntlm option
Closes #7028
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
define: re-add CURL_DISABLE_NTLM and corresponding ifdefs
@@ -3040,7 +6311,7 @@ Daniel Stenberg (4 May 2021)
Closes #6960
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
gskit: fix CURL_DISABLE_PROXY build
@@ -3050,7 +6321,7 @@ Daniel Stenberg (4 May 2021)
Closes #6981
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
gskit: fix undefined reference to 'conn'
@@ -5027,3065 +8298,3 @@ Daniel Gustafsson (26 Feb 2021)
Closes #6665
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
-
-- gnutls: Fix nettle discovery
-
- Commit e06fa7462ac258c removed support for libgcrypt leaving only
- support for nettle which has been the default crypto library in
- GnuTLS for a long time. There were however a few conditionals on
- USE_GNUTLS_NETTLE which cause compilation errors in the metalink
- code (as it used the gcrypt fallback instead as a result). See the
- below autobuild for an example of the error:
-
- https://curl.se/dev/log.cgi?id=20210225123226-30704#prob1
-
- This removes all uses of USE_GNUTLS_NETTLE and also removes the
- gcrypt support from the metalink code while at it.
-
- Closes #6656
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-- cookies: Support multiple -b parameters
-
- Previously only a single -b cookie parameter was supported with the last
- one winning. This adds support for supplying multiple -b params to have
- them serialized semicolon separated. Both cookiefiles and cookies can be
- entered multiple times.
-
- Closes #6649
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-Daniel Stenberg (25 Feb 2021)
-- build: remove all traces of USE_BLOCKING_SOCKETS
-
- libcurl doesn't behave properly with the define set
-
- Closes #6655
-
-- RELEASE-NOTES: synced
-
-Daniel Gustafsson (25 Feb 2021)
-- docs: Fix typos
-
- Random typos spotted when skimming docs.
-
-- cookies: Use named parameters in header prototypes
-
- Align header with project style of using named parameters in the
- function prototypes to aid readability and self-documentation.
-
- Closes #6653
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-Daniel Stenberg (24 Feb 2021)
-- urldata: make 'actions[]' use unsigned char instead of int
-
- ... as it only needs a few bits per index anyway.
-
- Reviewed-by: Daniel Gustafsson
- Closes #6648
-
-- configure: fail if --with-quiche is used and quiche isn't found
-
- Closes #6652
-
-- [Gregor Jasny brought this change]
-
- cmake: use CMAKE_INSTALL_INCLUDEDIR indirection
-
- Reviewed-by: Sergei Nikulov
- Closes #6440
-
-Viktor Szakats (23 Feb 2021)
-- mingw: enable using strcasecmp()
-
- This makes the 'Features:' list sorted case-insensitively,
- bringing output in-line with *nix builds.
-
- Reviewed-by: Jay Satiro
- Closes #6644
-
-- build: delete unused feature guards
-
- - `HAVE_STRNCASECMP`
- - `HAVE_TCGETATTR`
- - `HAVE_TCSETATTR`
-
- Reviewed-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
- Closes #6645
-
-Jay Satiro (23 Feb 2021)
-- docs: add CURLOPT_CURLU to 'See also' in curl_url_ functions
-
- Closes https://github.com/curl/curl/pull/6639
-
-Daniel Stenberg (23 Feb 2021)
-- [Jacob Hoffman-Andrews brought this change]
-
- configure: make hyper opt-in, and fail if missing
-
- Previously, configure would look for hyper by default, and use it if
- found; otherwise it would not use hyper, and not error.
-
- Now, configure will not look for hyper unless --with-hyper is passed. If
- configure looks for hyper and fails, it will error.
-
- Also, add -ld -lpthread -lm to Hyper's libs. I think they are required.
-
- Closes #6598
-
-- multi: do once-per-transfer inits in before_perform in DID state
-
- ... since the state machine might go to RATELIMITING and then back to
- PERFORMING doing once-per-transfer inits in that function is wrong and
- it caused problems with receiving chunked HTTP and it set the
- PRETRANSFER time much too often...
-
- Regression from b68dc34af341805aeb7b3715 (shipped in 7.75.0)
-
- Reported-by: Amaury Denoyelle
- Fixes #6640
- Closes #6641
-
-- RELEASE-NOTES: synced
-
-- CODE_STYLE.md: fix broken link to INTERNALS
-
- ... the link would only work if browsed on GitHub, while this link now
- takes the user to the website instead and thus should work on either.
-
- Reported-by: David Demelier
-
-- curl_url_set.3: mention CURLU_PATH_AS_IS
-
- ... it has been supported since the URL API was added.
-
- Bug: https://curl.se/mail/lib-2021-02/0046.html
-
- Closes #6638
-
-Viktor Szakats (21 Feb 2021)
-- time: enable 64-bit time_t in supported mingw environments
-
- (Unless 32-bit `time_t` is selected manually via the `_USE_32BIT_TIME_T`
- mingw macro.)
-
- Previously, 64-bit `time_t` was enabled on VS2005 and newer only, and
- 32-bit `time_t` was used on all other Windows builds.
-
- Assisted-by: Jay Satiro
- Closes #6636
-
-Jay Satiro (20 Feb 2021)
-- test1188: Check for --fail HTTP status
-
- - Change the test to check for curl error on HTTP 404 Not Found.
-
- test1188 tests "--write-out with %{onerror} and %{urlnum} to stderr".
- Prior to this change it did that by specifying a non-existent host which
- would cause an error. ISPs may hijack DNS and resolve non-existent hosts
- so the test would not work if that was the case.
-
- Ref: https://en.wikipedia.org/wiki/DNS_hijacking#Manipulation_by_ISPs
- Ref: https://github.com/curl/curl/issues/6621
- Ref: https://github.com/curl/curl/pull/6623
-
- Closes https://github.com/curl/curl/pull/6637
-
-- memdebug: close debug logfile explicitly on exit
-
- - Use atexit to register a dbg cleanup function that closes the logfile.
-
- LeakSantizier (LSAN) calls _exit() instead of exit() when a leak is
- detected on exit so the logfile must be closed explicitly or data could
- be lost. Though _exit() does not call atexit handlers such as this,
- LSAN's call to _exit() comes after the atexit handlers are called.
-
- Prior to this change the logfile was not explicitly closed so it was
- possible that if LSAN detected a leak and called _exit (which does
- not flush or close files like exit) then the logfile could be missing
- data. That could then cause curl's memanalyze to report false leaks
- (eg a malloc was recorded to the logfile but the corresponding free was
- discarded from the buffer instead of written to the logfile, then
- memanalyze reports that as a leak).
-
- Ref: https://github.com/google/sanitizers/issues/1374
-
- Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541
-
- Closes https://github.com/curl/curl/pull/6620
-
-- curl_multibyte: always return a heap-allocated copy of string
-
- - Change the Windows char <-> UTF-8 conversion functions to return an
- allocated copy of the passed in string instead of the original.
-
- Prior to this change the curlx_convert_ functions would, as what I
- assume was an optimization, not make a copy of the passed in string if
- no conversion was required. No conversion is required in non-UNICODE
- Windows builds since our tchar strings are type char and remain in
- whatever the passed in encoding is, which is assumed to be UTF-8 but may
- be other encoding.
-
- In contrast the UNICODE Windows builds require conversion
- (wchar <-> char) and do return a copy. That inconsistency could lead to
- programming errors where the developer expects a copy, and does not
- realize that won't happen in all cases.
-
- Closes https://github.com/curl/curl/pull/6602
-
-Viktor Szakats (19 Feb 2021)
-- http: add new files missed from referrer commit
-
- Ref: 44872aefc2d54f297caf2b0cc887df321bc9d791
- Ref: #6591
-
-- http: add support to read and store the referrer header
-
- - add CURLINFO_REFERER libcurl option
- - add --write-out '%{referer}' command-line option
- - extend --xattr command-line option to fill user.xdg.referrer.url extended
- attribute with the referrer (if there was any)
-
- Closes #6591
-
-Daniel Stenberg (19 Feb 2021)
-- urldata: remove the _ORIG suffix from string names
-
- It doesn't provide any useful info but only makes the names longer.
-
- Closes #6624
-
-- url: fix memory leak if OOM in the HSTS handling
-
- Reported-by: Viktor Szakats
- Bug: https://github.com/curl/curl/pull/6627#issuecomment-781626205
-
- Closes #6628
-
-- gnutls: assume nettle crypto support
-
- nettle has been the default crypto library with GnuTLS since 2010. By
- dropping support for the previous libcrypto, we simplify code.
-
- Closes #6625
-
-- asyn-ares: use consistent resolve error message
-
- ... with the help of Curl_resolver_error() which now is moved from
- asyn-thead.c and is provided globally for this purpose.
-
- Follow-up to 35ca04ce1b77636
-
- Makes test 1188 work for c-ares builds
-
- Closes #6626
-
-Viktor Szakats (18 Feb 2021)
-- ci: stop building on freebsd-12-1
-
- An updated freebsd-12-2 image was added a few months ago, and this
- older one is consistently failing to go past `pkginstall`:
- ```
- Newer FreeBSD version for package py37-mlt:
- To ignore this error set IGNORE_OSVERSION=yes
- - package: 1202000
- - running kernel: 1201000
- Ignore the mismatch and continue? [Y/n]: pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64
- ```
-
- FreeBSD thread suggests that 12.1 is EOL, and best to avoid.
-
- Ref: https://forums.freebsd.org/threads/78856/
-
- Reviewed-by: Daniel Stenberg
- Closes #6622
-
-Daniel Stenberg (18 Feb 2021)
-- test1188: change error from connect to resolve error
-
- Using the %NOLISTENPORT to trigger a connection failure is somewhat
- "risky" (since it isn't guaranteed to not be listened to) and caused
- occasional CI problems. This fix changes the infused error to be a more
- reliable one but still verifies the --write-out functionality properly -
- which is the purpose of this test.
-
- Reported-by: Jay Satiro
- Fixes #6621
- Closes #6623
-
-- url.c: use consistent error message for failed resolve
-
-- BUGS: language polish
-
-- wolfssl: don't store a NULL sessionid
-
- This caused a memory leak as the session id cache entry was still
- erroneously stored with a NULL sessionid and that would later be treated
- as not needed to get freed.
-
- Reported-by: Gisle Vanem
- Fixes #6616
- Closes #6617
-
-- parse_proxy: fix a memory leak in the OOM path
-
- Reported-by: Jay Satiro
- Reviewed-by: Jay Satiro
- Reviewed-by: Emil Engler
-
- Closes #6614
- Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541
-
-Jay Satiro (17 Feb 2021)
-- url: fix possible use-after-free in default protocol
-
- Prior to this change if the user specified a default protocol and a
- separately allocated non-absolute URL was used then it was freed
- prematurely, before it was then used to make the replacement URL.
-
- Bug: https://github.com/curl/curl/issues/6604#issuecomment-780138219
- Reported-by: arvids-kokins-bidstack@users.noreply.github.com
-
- Closes https://github.com/curl/curl/pull/6613
-
-Daniel Stenberg (16 Feb 2021)
-- multi: rename the multi transfer states
-
- While working on documenting the states it dawned on me that step one is
- to use more descriptive names on the states. This also changes prefix on
- the states to make them shorter in the source.
-
- State names NOT ending with *ing are transitional ones.
-
- Closes #6612
-
-Viktor Szakats (16 Feb 2021)
-- http: do not add a referrer header with empty value
-
- Previously an empty 'Referer:' header was added to the HTTP request when
- passing `--referer ';auto'` or `--referer ''` on the command-line. This
- patch makes `--referer` work like `--header 'Referer:'` and will only add
- the header if it has a non-zero length value.
-
- Reviewed-by: Jay Satiro
- Closes #6610
-
-Daniel Stenberg (16 Feb 2021)
-- lib: remove 'conn->data' completely
-
- The Curl_easy pointer struct entry in connectdata is now gone. Just
- before commit 215db086e0 landed on January 8, 2021 there were 919
- references to conn->data.
-
- Closes #6608
-
-- openldap: pass 'data' to the callbacks instead of 'conn'
-
-Jay Satiro (15 Feb 2021)
-- doh: Fix sharing user's resolve list with DOH handles
-
- - Share the shared object from the user's easy handle with the DOH
- handles.
-
- Prior to this change if the user had set a shared object with shared
- cached DNS (CURL_LOCK_DATA_DNS) for their easy handle then that wasn't
- used by any associated DOH handles, since they used the multi's default
- hostcache.
-
- This change means all the handles now use the same hostcache, which is
- either the shared hostcache from the user created shared object if it
- exists or if not then the multi's default hostcache.
-
- Reported-by: Manuj Bhatia
-
- Fixes https://github.com/curl/curl/issues/6589
- Closes https://github.com/curl/curl/pull/6607
-
-Daniel Stenberg (15 Feb 2021)
-- http2: remove conn->data use
-
- ... but instead use a private alternative that points to the "driving
- transfer" from the connection. We set the "user data" associated with
- the connection to be the connectdata struct, but when we drive transfers
- the code still needs to know the pointer to the transfer. We can change
- the user data to become the Curl_easy handle, but with older nghttp2
- version we cannot dynamically update that pointer properly when
- different transfers are used over the same connection.
-
- Closes #6520
-
-- openssl: remove conn->data use
-
- We still make the trace callback function get the connectdata struct
- passed to it, since the callback is anchored on the connection.
-
- Repeatedly updating the callback pointer to set 'data' with
- SSL_CTX_set_msg_callback_arg() doesn't seem to work, probably because
- there might already be messages in the queue with the old pointer.
-
- This code therefore makes sure to set the "logger" handle before using
- OpenSSL calls so that the right easy handle gets used for tracing.
-
- Closes #6522
-
-- RELEASE-NOTES: synced
-
-Jay Satiro (14 Feb 2021)
-- doh: add options to disable ssl verification
-
- - New libcurl options CURLOPT_DOH_SSL_VERIFYHOST,
- CURLOPT_DOH_SSL_VERIFYPEER and CURLOPT_DOH_SSL_VERIFYSTATUS do the
- same as their respective counterparts.
-
- - New curl tool options --doh-insecure and --doh-cert-status do the same
- as their respective counterparts.
-
- Prior to this change DOH SSL certificate verification settings for
- verifyhost and verifypeer were supposed to be inherited respectively
- from CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER, but due to a bug
- were not. As a result DOH verification remained at the default, ie
- enabled, and it was not possible to disable. This commit changes
- behavior so that the DOH verification settings are independent and not
- inherited.
-
- Ref: https://github.com/curl/curl/pull/4579#issuecomment-554723676
-
- Fixes https://github.com/curl/curl/issues/4578
- Closes https://github.com/curl/curl/pull/6597
-
-- hostip: fix crash in sync resolver builds that use DOH
-
- - Guard some Curl_async accesses with USE_CURL_ASYNC instead of
- !CURLRES_SYNCH.
-
- This is another follow-up to 8335c64 which moved the async struct from
- the connectdata struct into the Curl_easy struct. A previous follow-up
- 6cd167a fixed building for sync resolver by guarding some async struct
- accesses with !CURLRES_SYNCH. The problem is since DOH (DNS-over-HTTPS)
- is available as an asynchronous secondary resolver the async struct may
- be used even when libcurl is built for the sync resolver. That means
- that CURLRES_SYNCH and USE_CURL_ASYNC may be defined at the same time.
-
- Closes https://github.com/curl/curl/pull/6603
-
-Daniel Stenberg (13 Feb 2021)
-- KNOWN_BUGS: cannot enable LDAPS on Windows with cmake
-
- Reported-by: Jack Boos Yu
- Closes #6284
-
-- KNOWN_BUGS: Excessive HTTP/2 packets with TCP_NODELAY
-
- Reported-by: Alex Xu
- Closes #6363
-
-- http: use credentials from transfer, not connection
-
- HTTP auth "accidentally" worked before this cleanup since the code would
- always overwrite the connection credentials with the credentials from
- the most recent transfer and since HTTP auth is typically done first
- thing, this has not been an issue. It was still wrong and subject to
- possible race conditions or future breakage if the sequence of functions
- would change.
-
- The data.set.str[] strings MUST remain unmodified exactly as set by the
- user, and the credentials to use internally are instead set/updated in
- state.aptr.*
-
- Added test 675 to verify different credentials used in two requests done
- over a reused HTTP connection, which previously behaved wrongly.
-
- Fixes #6542
- Closes #6545
-
-- test433: clear some home dir env variables
-
- Follow-up to bd6b54ba1f55b5
-
- ... so that XDG_CONFIG_HOME is the only home dir variable set and thus
- used correctly in the test!
-
- Fixes #6599
- Closes #6600
-
-- RELEASE-NOTES: synced
-
- bumped the version to 7.76.0
-
-- travis: install libgsasl-dev to add that to the builds
-
- Closes #6588
-
-- urldata: don't touch data->set.httpversion at run-time
-
- Rename it to 'httpwant' and make a cloned field in the state struct as
- well for run-time updates.
-
- Also: refuse non-supported HTTP versions. Verified with test 129.
-
- Closes #6585
-
-Viktor Szakats (11 Feb 2021)
-- tests: disable .curlrc in more environments
-
- by also setting CURL_HOME and XDG_CONFIG_HOME envvars to the local
- directory.
-
- Reviewed-by: Daniel Stenberg
- Fixes #6595
- Closes #6596
-
-- docs/Makefile.inc: format to be update-friendly
-
- - one source file per line
- - convert tabs to spaces
- - do not align line-continuation backslashes
- - sort source files alphabetically
-
- Reviewed-by: Daniel Stenberg
- Closes #6593
-
-Daniel Stenberg (11 Feb 2021)
-- curl: provide libgsasl version and feature info in -V output
-
- Closes #6592
-
-- gsasl: provide CURL_VERSION_GSASL if built-in
-
- To let applications know the feature is available.
-
- Closes #6592
-
-- curl: add --fail-with-body
-
- Prevent both --fail and --fail-with-body on the same command line.
-
- Verify with test 349, 360 and 361.
-
- Closes #6449
-
-- TODO: remove HSTS
-
- Provided now since commit 7385610d0c74
-
-Jay Satiro (10 Feb 2021)
-- tests: Fix tests failing due to change in curl --help
-
- Follow-up to parent 3183217 which added add missing <mode> argument to
- --create-file-mode <mode>.
-
- Ref: https://github.com/curl/curl/issues/6590
-
-- tool_help: add missing argument for --create-file-mode
-
- Prior to this change the required argument was not shown in curl --help.
-
- before:
- --create-file-mode File mode for created files
-
- after:
- --create-file-mode <mode> File mode (octal) for created files
-
- Reported-by: ZimCodes@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/6590
-
-- create-file-mode.d: add missing Arg tag
-
- Prior to this change the required argument was not shown.
-
- curl.1 before: --create-file-mode
- curl.1 after: --create-file-mode <mode>
-
- Reported-by: ZimCodes@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/6590
-
-Viktor Szakats (10 Feb 2021)
-- gsasl: fix errors/warnings building against libgsasl
-
- - also fix an indentation
- - make Curl_auth_gsasl_token() use CURLcode (by Daniel Stenberg)
-
- Ref: https://github.com/curl/curl/pull/6372#issuecomment-776118711
- Ref: https://github.com/curl/curl/pull/6588
-
- Reviewed-by: Jay Satiro
- Assisted-by: Daniel Stenberg
- Reviewed-by: Simon Josefsson
- Closes #6587
-
-- Makefile.m32: add support for libgsasl dependency
-
- Reviewed-by: Marcel Raad
- Closes #6586
-
-Marcel Raad (10 Feb 2021)
-- ngtcp2: clarify calculation precedence
-
- As suggested by Codacy/cppcheck.
-
- Closes https://github.com/curl/curl/pull/6576
-
-- server: remove redundant condition
-
- `end` is always non-null here.
-
- Closes https://github.com/curl/curl/pull/6576
-
-- lib: remove redundant code
-
- Closes https://github.com/curl/curl/pull/6576
-
-- mqttd: remove unused variable
-
- Closes https://github.com/curl/curl/pull/6576
-
-- tool_paramhlp: reduce variable scope
-
- Closes https://github.com/curl/curl/pull/6576
-
-- tests: reduce variable scopes
-
- Closes https://github.com/curl/curl/pull/6576
-
-- lib: reduce variable scopes
-
- Closes https://github.com/curl/curl/pull/6576
-
-- ftp: fix Codacy/cppcheck warning about null pointer arithmetic
-
- Increment `bytes` only if it is non-null.
-
- Closes https://github.com/curl/curl/pull/6576
-
-Daniel Stenberg (9 Feb 2021)
-- ngtcp2: adapt to the new recv_datagram callback
-
-- quiche: fix build error: use 'int' for port number
-
- Follow-up to cb2dc1ba8
-
-- ftp: add 'list_only' to the transfer state struct
-
- and rename it from 'ftp_list_only' since it is also used for SSH and
- POP3. The state is updated internally for 'type=D' FTP URLs.
-
- Added test case 1570 to verify.
-
- Closes #6578
-
-- ftp: add 'prefer_ascii' to the transfer state struct
-
- ... and make sure the code never updates 'set.prefer_ascii' as it breaks
- handle reuse which should use the setting as the user specified it.
-
- Added test 1569 to verify: it first makes an FTP transfer with ';type=A'
- and then another without type on the same handle and the second should
- then use binary. Previously, curl failed this.
-
- Closes #6578
-
-- RELEASE-NOTES: synced
-
-- [Jacob Hoffman-Andrews brought this change]
-
- vtls: initial implementation of rustls backend
-
- This adds a new TLS backend, rustls. It uses the C-to-rustls bindings
- from https://github.com/abetterinternet/crustls.
-
- Rustls is at https://github.com/ctz/rustls/.
-
- There is still a fair bit to be done, like sending CloseNotify on
- connection shutdown, respecting CAPATH, and properly indicating features
- like "supports TLS 1.3 ciphersuites." But it works well enough to make
- requests and receive responses.
-
- Blog post for context:
- https://www.abetterinternet.org/post/memory-safe-curl/
-
- Closes #6350
-
-- [Simon Josefsson brought this change]
-
- sasl: support SCRAM-SHA-1 and SCRAM-SHA-256 via libgsasl
-
- Closes #6372
-
-Jay Satiro (9 Feb 2021)
-- lib: use int type for more port variables
-
- This is a follow-up to 764c6bd. Prior to that change port variables
- were usually type long.
-
- Closes https://github.com/curl/curl/pull/6553
-
-- tool_writeout: refactor write-out and write-out json
-
- - Deduplicate the logic used by write-out and write-out json.
-
- Rather than have separate writeLong, writeString, etc, logic for
- each of write-out and write-out json instead have respective shared
- functions that can output either format and a 'use_json' parameter to
- indicate whether it is json that is output.
-
- This will make it easier to maintain. Rather than have to go through
- two sets of logic now we only have to go through one.
-
- - Support write-out %{errormsg} and %{exitcode} in json.
-
- - Clarify in the doc that %{exitcode} is the exit code of the transfer.
-
- Prior to this change it just said "The numerical exitcode" which
- implies it's the exit code of the tool, and it's not necessarily that.
-
- Closes https://github.com/curl/curl/pull/6544
-
-- lib: drop USE_SOCKETPAIR in favor of CURL_DISABLE_SOCKETPAIR
-
- .. since the former is undocumented and they both do the same thing.
-
- Closes https://github.com/curl/curl/pull/6517
-
-- curl_multibyte: fall back to local code page stat/access on Windows
-
- If libcurl is built with Unicode support for Windows then it is assumed
- the filename string is Unicode in UTF-8 encoding and it is converted to
- UTF-16 to be passed to the wide character version of the respective
- function (eg wstat). However the filename string may actually be in the
- local encoding so, even if it successfully converted to UTF-16, if it
- could not be stat/accessed then try again using the local code page
- version of the function (eg wstat fails try stat).
-
- We already do this with fopen (ie wfopen fails try fopen), so I think it
- makes sense to extend it to stat and access functions.
-
- Closes https://github.com/curl/curl/pull/6514
-
-- [Stephan Szabo brought this change]
-
- file: Support unicode urls on windows
-
- Closes https://github.com/curl/curl/pull/6501
-
-- [Vincent Torri brought this change]
-
- cmake: fix import library name for non-MS compiler on Windows
-
- - Use _imp.lib suffix only for Microsoft's compiler (MSVC).
-
- Prior to this change library suffix _imp.lib was used for the import
- library on Windows regardless of compiler.
-
- With this change the other compilers should now use their default
- suffix which should be .dll.a.
-
- This change is motivated by the usage of pkg-config on MSYS2.
- Indeed, when 'pkg-config --libs libcurl' is used, -lcurl is
- passed to ld. The documentation of ld on Windows :
-
- https://sourceware.org/binutils/docs/ld/WIN32.html
-
- lists, in the 'direct linking to a dll' section, the pattern
- of the searched import library, and libcurl_imp.lib is not there.
-
- Closes https://github.com/curl/curl/pull/6225
-
-Daniel Stenberg (9 Feb 2021)
-- urldata: move 'followlocation' to UrlState
-
- As this is a state variable it does not belong in UserDefined which is
- used to store values set by the user.
-
- Closes #6582
-
-- [Ikko Ashimine brought this change]
-
- http_proxy: fix typo in http_proxy.c
-
- settting -> setting
-
- Closes #6583
-
-- [Fabian Keil brought this change]
-
- tests/server: Bump MAX_TAG_LEN to 200
-
- This is useful for tests containing HTML inside of <data> sections.
- For <img> tags it's not uncommon to be longer than the previous
- limit of 79 bytes.
-
- An example of a previously problem-causing tag is:
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-http://www.privoxy.org/images/privoxy.png-by-size" width="88" height="31">
- which is needed for a Privoxy test for the banners-by-size filter.
-
- Previously it caused server failures like:
- 12:29:05.786961 ====> Client connect
- 12:29:05.787116 accept_connection 3 returned 4
- 12:29:05.787194 accept_connection 3 returned 0
- 12:29:05.787285 Read 119 bytes
- 12:29:05.787345 Process 119 bytes request
- 12:29:05.787407 Got request: GET /banners-by-size/9 HTTP/1.1
- 12:29:05.787464 Requested test number 9 part 0
- 12:29:05.787686 getpart() failed with error: -2
- 12:29:05.787744 - request found to be complete (9)
- 12:29:05.787912 getpart() failed with error: -2
- 12:29:05.788048 Wrote request (119 bytes) input to log/server.input
- 12:29:05.788157 Send response test9 section <data>
- 12:29:05.788443 getpart() failed with error: -2
- 12:29:05.788498 instructed to close connection after server-reply
- 12:29:05.788550 ====> Client disconnect 0
- 12:29:05.871448 exit_signal_handler: 15
- 12:29:05.871714 signalled to die
- 12:29:05.872040 ========> IPv4 sws (port 21108 pid: 51758) exits with signal (15)
-
-- [Fabian Keil brought this change]
-
- tests/badsymbols.pl: when opening '$incdir' fails include it in the error message
-
-- [Fabian Keil brought this change]
-
- runtests.1: document -o, -P, -L, and -E
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add %TESTNUMBER variable to make copying tests more convenient
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add an -o option to change internal variables
-
- runtests.pl has lots of internal variables one might want to
- change in certain situations, but adding a dedicated option
- for every single one of them isn't practical.
-
- Usage:
- ./runtests.pl -o TESTDIR=$privoxy_curl_test_dir -o HOSTIP=10.0.0.1 ...
-
-- [Fabian Keil brought this change]
-
- runtests.pl: cleanups
-
- - show the summarized test result in the last line of the report
- - do not use $_ after mapping it to a named variable
- Doing that makes the code harder to follow.
- - log the restraints sorted by the number of their occurrences
- - fix language when logging restraints that only occured once
- - let runhttpserver() use $TESTDIR instead of $srcdir
- ... so it works if a non-default $TESTDIR is being used.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add an -E option to specify an exclude file
-
- It can contain additional restraints for test numbers,
- keywords and tools.
-
- The idea is to let third parties like the Privoxy project
- distribute an exclude file with their tarballs that specifies
- which curl tests are not expected to work when using Privoxy
- as a proxy, without having to fork the whole curl test suite.
-
- The syntax could be changed to be extendable and maybe
- more closely reflect the "curl test" syntax. Currently
- it's a bunch of lines like these:
-
- test:$TESTNUMBER:Reason why this test with number $TESTNUMBER should be skipped
- keyword:$KEYWORD:Reason why tests whose keywords contain the $KEYWORD should be skipped
- tool:$TOOL:Reason why tests with tools that contain $TOOL should be skipped
-
- To specify multiple $TESTNUMBERs, $KEYWORDs and $TOOLs
- on a single line, split them with commas.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add -L parameter to require additional perl libraries
-
- This is useful to change the behaviour of the script without
- having to modify the file itself, for example to use a custom
- compareparts() function that ignores header differences that
- are expected to occur when an external proxy is being used.
-
- Such differences are proxy-specific and thus the modifications
- should be maintained together with the proxy.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add a -P option to specify an external proxy
-
- ... that should be used when executing the tests.
-
- The assumption is that the proxy is an HTTP proxy.
-
- This option should be used together with -L to provide
- a customized compareparts() version that knows which
- proxy-specific header differences should be ignored.
-
- This option doesn't work for all test types yet.
-
-- [Fabian Keil brought this change]
-
- tests: fixup several tests
-
- missing CRs and modified %hostip
-
- lib556/test556: use a real HTTP version to make test reuse more convenient
-
- make sure the weekday in Date headers matches the date
-
- test61: replace stray "^M" (5e 4d) at the end of a cookie with a '^M' (0d)
-
- Gets the test working with external proxies like Privoxy again.
-
- Closes #6463
-
-- ftp: never set data->set.ftp_append outside setopt
-
- Since the set value then risks getting used like that when the easy
- handle is reused by the application.
-
- Also: renamed the struct field from 'ftp_append' to 'remote_append'
- since it is also used for SSH protocols.
-
- Closes #6579
-
-- urldata: remove the 'rtspversion' field
-
- from struct connectdata and the corresponding code in http.c that set
- it. It was never used for anything!
-
- Closes #6581
-
-- CURLOPT_QUOTE.3: clarify that libcurl doesn't parse what's sent
-
- ... so passed in commands may confuse libcurl's knowledge of state.
-
- Reported-by: Bodo Bergmann
- Fixes #6577
- Closes #6580
-
-- [Jacob Hoffman-Andrews brought this change]
-
- vtls: factor out Curl_ssl_getsock to field of Curl_ssl
-
- Closes #6558
-
-- RELEASE-PROCEDURE: remove old release dates, add new
-
-- docs/SSL-PROBLEMS: enhanced
-
- Elaborate on the intermediate cert issue, and mention that anything
- below TLS 1.2 is generally considered insecure these days.
-
- Closes #6572
-
-- THANKS: remove a Jon Rumsey dupe
-
-Daniel Gustafsson (5 Feb 2021)
-- [nimaje brought this change]
-
- docs: fix FILE example url in --metalink documentation
-
- In a url after <scheme>:// follows the possibly empty authority part
- till the next /, so that url missed a /.
-
- Closes #6573
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-Daniel Stenberg (5 Feb 2021)
-- hostip: fix build with sync resolver
-
- Reported-by: David Goerger
- Follow-up from 8335c6417
- Fixes #6566
- Closes #6568
-
-- mailmap: Jon Rumsey
-
-- [Jon Rumsey brought this change]
-
- gskit: correct the gskit_send() prototype
-
- gskit_send() first paramater is a pointer to Curl_easy not connectdata
- struct.
-
- Closes #6570
- Fixes #6569
-
-- urldata: fix build without HTTP and MQTT
-
- Reported-by: Joseph Chen
- Fixes #6562
- Closes #6563
-
-- ftp: avoid SIZE when asking for a TYPE A file
-
- ... as we ignore it anyway because servers don't report the correct size
- and proftpd even blatantly returns a 550.
-
- Updates a set of tests accordingly.
-
- Reported-by: awesomenode on github
- Fixes #6564
- Closes #6565
-
-- pingpong: rename the curl_pp_transfer enum to use PP prefix
-
- Using an FTP prefix for PP provided functionality was misleading.
-
-- RELEASE-NOTES: synced
-
- ... and bump pending version to 7.75.1 (for now)
-
-Jay Satiro (4 Feb 2021)
-- build: fix --disable-http-auth
-
- Broken since 215db08 (precedes 7.75.0).
-
- Reported-by: Benbuck Nason
-
- Fixes https://github.com/curl/curl/issues/6567
-
-- build: fix --disable-dateparse
-
- Broken since 215db08 (precedes 7.75.0).
-
- Bug: https://curl.se/mail/lib-2021-02/0008.html
- Reported-by: Firefox OS
-
-Daniel Stenberg (4 Feb 2021)
-- [Jon Rumsey brought this change]
-
- OS400: update for CURLOPT_AWS_SIGV4
-
- chkstrings fails because a new string option that could require codepage
- conversion has been added.
-
- Closes #6561
- Fixes #6560
-
-- BUG-BOUNTY: removed the cooperation mention
-
-Version 7.75.0 (3 Feb 2021)
-
-Daniel Stenberg (3 Feb 2021)
-- RELEASE-NOTES: synced
-
-- THANKS: added contributors from 7.75.0
-
-- copyright: fix year ranges in need of updates
-
-- TODO: remove items for next SONAME bump etc
-
- We want to avoid that completely, so we don't plan for things after such
- an event.
-
-- [Jay Satiro brought this change]
-
- ngtcp2: Fix build error due to change in ngtcp2_settings
-
- - Separate ngtcp2_transport_params.
-
- ngtcp2/ngtcp2@05d7adc made ngtcp2_transport_params separate from
- ngtcp2_settings.
-
- ngtcp2 master is required to build curl with http3 support.
-
- Closes #6554
-
-- vtls: remove md5sum
-
- As it is not used anymore.
-
- Reported-by: Jacob Hoffman-Andrews
- Bug: https://curl.se/mail/lib-2021-02/0000.html
-
- Closes #6557
-
-- [Alessandro Ghedini brought this change]
-
- quiche: don't use primary_ip / primary_port
-
- Closes #6555
-
-Alessandro Ghedini (1 Feb 2021)
-- travis: enable quiche's FFI feature
-
-Daniel Stenberg (30 Jan 2021)
-- [Dmitry Wagin brought this change]
-
- http: improve AWS HTTP v4 Signature auth
-
- - Add support services without region and service prefixes in
- the URL endpoint (ex. Min.IO, GCP, Yandex Cloud, Mail.Ru Cloud Solutions, etc)
- by providing region and service parameters via aws-sigv4 option.
- - Add [:region[:service]] suffix to aws-sigv4 option;
- - Fix memory allocation errors.
- - Refactor memory management.
- - Use Curl_http_method instead() STRING_CUSTOMREQUEST.
- - Refactor canonical headers generating.
- - Remove repeated sha256_to_hex() usage.
- - Add some docs fixes.
- - Add some codestyle fixes.
- - Add overloaded strndup() for debug - curl_dbg_strndup().
- - Update tests.
-
- Closes #6524
-
-- hyper: fix CONNECT to set 'data' as userdata
-
- Follow-up to 14e075d1a7fd
-
-- [Layla brought this change]
-
- connect: fix compile errors in `Curl_conninfo_local`
-
- .. for the `#else` (`!HAVE_GETSOCKNAME`) case
-
- Fixes https://github.com/curl/curl/issues/6548
- Closes #6549
-
- Signed-off-by: Layla <layla@insightfulvr.com>
-
-- [Michał Antoniak brought this change]
-
- transfer: fix GCC 10 warning with flag '-Wint-in-bool-context'
-
- ... and return the error code from the Curl_mime_rewind call.
-
- Closes #6537
-
-- [Michał Antoniak brought this change]
-
- avoid warning: enum constant in boolean context
-
-- copyright: fix missing year (range) updates
-
-- RELEASE-NOTES: synced
-
-- openssl: lowercase the hostname before using it for SNI
-
- ... because it turns out several servers out there don't actually behave
- correctly otherwise in spite of the fact that the SNI field is
- specifically said to be case insensitive in RFC 6066 section 3.
-
- Reported-by: David Earl
- Fixes #6540
- Closes #6543
-
-- KNOWN_BUGS: cmake: ExternalProject_Add does not set CURL_CA_PATH
-
- Closes #6313
-
-- KNOWN_BUGS: Multi perform hangs waiting for threaded resolver
-
- Closes #4852
-
-- KNOWN_BUGS: "pulseUI VPN client" is known to be buggy
-
- First entry in the new section "applications" for known problems in
- libcurl using applications.
-
- Closes #6306
-
-- tool_writeout: make %{errormsg} blank for no errors
-
- Closes #6539
-
-Jay Satiro (27 Jan 2021)
-- [Gisle Vanem brought this change]
-
- build: fix djgpp builds
-
- - Update build instructions in packages/DOS/README
-
- - Extend 'VPATH' with 'vquic' and 'vssh'.
-
- - Allow 'Makefile.dist' to build both 'lib' and 'src'.
-
- - Allow using the Windows hosted djgpp cross compiler to build for MSDOS
- under Windows.
-
- - 'USE_SSL' -> 'USE_OPENSSL'
-
- - Added a 'link_EXE' macro. Etc, etc.
-
- - Linking 'curl.exe' needs '$(CURLX_CFILES)' too.
-
- - Do not pick-up '../lib/djgpp/*.o' files. Recompile locally.
-
- - Generate a gzipped 'tool_hugehelp.c' if 'USE_ZLIB=1'.
-
- - Remove 'djgpp-clean'
-
- - Adapt to new C-ares directory structure
-
- - Use conditional variable assignments
-
- Clarify the 'conditional variable assignment' in 'common.dj'.
-
- Closes https://github.com/curl/curl/pull/6382
-
-Daniel Stenberg (27 Jan 2021)
-- [Ikko Ashimine brought this change]
-
- hyper: fix typo in c-hyper.c
-
- settting -> setting
-
- Closes #6538
-
-- libssh2: fix CURL_LIBSSH2_DEBUG-enabled build
-
- Follow-up to 2dcc940959772a
-
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/2dcc940959772a652f6813fb6bd3092095a4877b#commitcomment-46420088
-
-Jay Satiro (27 Jan 2021)
-- asyn-thread: fix build for when getaddrinfo missing
-
- This is a follow-up to 8315343 which several days ago moved the resolver
- pointer into the async struct but did not update the code that uses it
- when getaddrinfo is not present.
-
- Closes https://github.com/curl/curl/pull/6536
-
-Daniel Stenberg (27 Jan 2021)
-- urldata: move 'ints' to the end of 'connectdata'
-
- To optimize storage slightly.
-
- Closes #6534
-
-- urldata: store ip version in a single byte
-
- Closes #6534
-
-- urldata: remove duplicate 'upkeep_interval_ms' from connectdata
-
- ... and rely only on the value already set in Curl_easy.
-
- Closes #6534
-
-- urldata: remove 'local_ip' from the connectdata struct
-
- As the info is already stored in the transfer handle anyway, there's no
- need to carry around a duplicate buffer for the life-time of the handle.
-
- Closes #6534
-
-- urldata: remove duplicate port number storage
-
- ... and use 'int' for ports. We don't use 'unsigned short' since -1 is
- still often used internally to signify "unknown value" and 0 - 65535 are
- all valid port numbers.
-
- Closes #6534
-
-- urldata: remove the duplicate 'ip_addr_str' field
-
- ... as the numerical IP address is already stored and kept in 'primary_ip'.
-
- Closes #6534
-
-- select: convert Curl_select() to private static function
-
- The old function should not be used anywhere anymore (the only remaining
- gskit use has to be fixed to instead use Curl_poll or none at all).
-
- The static function version is now called our_select() and is only built
- if necessary.
-
- Closes #6531
-
-- Curl_chunker: shrink the struct
-
- ... by removing a field, converting the hex index into a byte and
- rearranging the order. Cuts it down from 48 bytes to 32 on x86_64.
-
- Closes #6527
-
-- curl: include the file name in --xattr/--remote-time error msgs
-
-- curl: s/config->global/global/ in single_transfer()
-
-- curl: move fprintf outputs to warnf
-
- For setting and getting time of the download. To make the outputs
- respect --silent etc.
-
- Reported-by: Viktor Szakats
- Fixes #6533
- Closes #6535
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: Fix http3 upload stall
-
- Closes #6521
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: Fix stack buffer overflow
-
- Closes #6521
-
-- warnless.h: remove the prototype for curlx_ultosi
-
- Follow-up to 217552503ff3
-
-- warnless: remove curlx_ultosi
-
- ... not used anywhere
-
- Closes #6530
-
-- [Patrick Monnerat brought this change]
-
- lib: remove conn->data uses
-
- Closes #6515
-
-- pingpong: remove the 'conn' struct member
-
- ... as it's superfluous now when Curl_easy is passed in and we can
- derive the connection from that instead and avoid the duplicate copy.
-
- Closes #6525
-
-- hostip/proxy: remove conn->data use
-
- Closes #6513
-
-- url: reduce conn->data references
-
- ... there are a few left but let's keep them to last
-
- Closes #6512
-
-- scripts/singleuse: add curl_easy_option*
-
-Jay Satiro (25 Jan 2021)
-- test410: fix for windows
-
- - Pass the very long request header via file instead of command line.
-
- Prior to this change the 49k very long request header string was passed
- via command line and on Windows that is too long so it was truncated and
- the test would fail (specifically msys CI).
-
- Closes https://github.com/curl/curl/pull/6516
-
-Daniel Stenberg (25 Jan 2021)
-- libssh2: move data from connection object to transfer object
-
- Readdir data, filenames and attributes are strictly related to the
- transfer and not the connection. This also reduces the total size of the
- fixed connectdata struct.
-
- Closes #6519
-
-- RELEASE-NOTES: synced
-
-- [Patrick Monnerat brought this change]
-
- lib: remove conn->data uses
-
- Closes #6499
-
-- hyper: remove the conn->data references
-
- Closes #6508
-
-- travis: build ngtcp2 --with-gnutls
-
- ... since they disable it by default since a few days back.
-
- Closes #6506
- Fixes #6493
-
-- hostip: remove conn->data from resolver functions
-
- This also moves the 'async' struct from the connectdata struct into the
- Curl_easy struct, which seems like a better home for it.
-
- Closes #6497
-
-Jay Satiro (22 Jan 2021)
-- strerror: skip errnum >= 0 assertion on windows
-
- On Windows an error number may be greater than INT_MAX and negative once
- cast to int.
-
- The assertion is checked only in debug builds.
-
- Closes https://github.com/curl/curl/pull/6504
-
-Daniel Stenberg (21 Jan 2021)
-- doh: make Curl_doh_is_resolved survive a NULL pointer
-
- ... if Curl_doh() returned a NULL, this function gets called anyway as
- in a asynch procedure. Then the doh struct pointer is NULL and signifies
- an OOM situation.
-
- Follow-up to 6246a1d8c6776
-
-- wolfssh: remove conn->data references
-
- ... and repair recent build breakage
-
- Closes #6507
-
-- http: empty reply connection are not left intact
-
- ... so mark the connection as closed in this condition to prevent that
- verbose message to wrongly appear.
-
- Reported-by: Matt Holt
- Bug: https://twitter.com/mholt6/status/1352130240265375744
- Closes #6503
-
-- chunk/encoding: remove conn->data references
-
- ... by anchoring more functions on Curl_easy instead of connectdata
-
- Closes #6498
-
-Jay Satiro (20 Jan 2021)
-- [Erik Olsson brought this change]
-
- lib: save a bit of space with some structure packing
-
- - Reorder some internal struct members so that less padding is used.
-
- This is an attempt at saving a bit of space by packing some structs
- (using pahole to find the holes) where it might make sense to do
- so without losing readability.
-
- I.e., I tried to avoid separating fields that seem grouped
- together (like the cwd... fields in struct ftp_conn for instance).
- Also abstained from touching fields behind conditional macros as
- that quickly can get complicated.
-
- Closes https://github.com/curl/curl/pull/6483
-
-Daniel Stenberg (20 Jan 2021)
-- INSTALL.md: fix typo
-
- Found-by: Marcel Raad
-
-- [Fabian Keil brought this change]
-
- http: get CURLOPT_REQUEST_TARGET working with a HTTP proxy
-
- Added test 1613 to verify.
-
- Closes #6490
-
-- Merge branch 'bagder/curl_range-data-conn'
-
-- ftp: remove conn->data leftover
-
-- curl_range: remove conn->data
-
- Closes #6496
-
-- INSTALL: now at 85 operating systems
-
-- quiche: fix unused parameter ‘conn’
-
- Follow-up to 2bdec0b3
-
-- transfer: fix ‘conn’ undeclared mistake for iconv build
-
- Follow-up to 219d9f8620d
-
-- doh: allocate state struct on demand
-
- ... instead of having it static within the Curl_easy struct. This takes
- away 1176 bytes (18%) from the Curl_easy struct that aren't used very
- often and instead makes the code allocate it when needed.
-
- Closes #6492
-
-- socks: use the download buffer instead
-
- The SOCKS code now uses the generic download buffer for temporary
- storage during the connection procedure, instead of having its own
- private 600 byte buffer that adds to the connectdata struct size. This
- works fine because this point the buffer is allocated but is not use for
- download yet since the connection hasn't completed.
-
- This reduces the connection struct size by 22% on a 64bit arch!
-
- The SOCKS buffer needs to be at least 600 bytes, and the download buffer
- is guaranteed to never be smaller than 1000 bytes.
-
- Closes #6491
-
-- urldata: make magic be the first struct field
-
- By making the `magic` identifier the same size and at the same place
- within the structs (easy, multi, share), libcurl will be able to more
- reliably detect and safely error out if an application passes in the
- wrong handle to APIs. Easier to detect and less likely to cause crashes
- if done.
-
- Such mixups can't be detected at compile-time due to them being
- typedefed void pointers - unless `CURL_STRICTER` is defined.
-
- Closes #6484
-
-- http_chunks: correct and clarify a comment on hexnumber length
-
- ... and also rename the define for max length.
-
- Closes #6489
-
-- curl_path: remove conn->data use
-
- Closes #6487
-
-- transfer: remove conn->data use
-
- Closes #6486
-
-- quic: remove conn->data use
-
- Closes #6485
-
-- [Fabian Keil brought this change]
-
- Add test1181: Proxy request with --proxy-header "Connection: Keep-Alive"
-
-- [Fabian Keil brought this change]
-
- Add test1180: Proxy request with -H "Proxy-Connection: Keep-Alive"
-
- At the moment the test fails as curl sends two Proxy-Connection
- headers.
-
-- c-hyper: avoid duplicated Proxy-Connection headers
-
-- http: make providing Proxy-Connection header not cause duplicated headers
-
- Fixes test 1180
-
- Bug: https://curl.se/mail/lib-2021-01/0095.html
- Reported-by: Fabian Keil
- Closes #6472
-
-- runtests: preprocess DISABLED to allow conditionals
-
- ... with this function provided, we can disable tests for specific
- environments and setups directly within this file.
-
- Closes #6477
-
-- runtests: turn preprocessing into a separate function
-
- ... and remove all other variable substitutions as they're now done once
- and for all in the preprocessor.
-
-- lib/Makefile.inc: convert to listing each file on its own line
-
- ... to make it diff friendlier and easier to read.
-
- Closes #6448
-
-- ftplistparser: remove use of conn->data
-
- Closes #6482
-
-- lib: more conn->data cleanups
-
- Closes #6479
-
-- [Patrick Monnerat brought this change]
-
- vtls: reduce conn->data use
-
- Closes #6474
-
-- hyper: deliver data to application with Curl_client_write
-
- ... just as the native code path does. Avoids sending too large data
- chunks in the callback and more.
-
- Reported-by: Gisle Vanem
- Fixes #6462
- Closes #6473
-
-- gopher: remove accidental conn->data leftover
-
-- libssh: avoid plain free() of libssh-memory
-
- Since curl's own memory debugging system redefines free() calls to track
- and fiddle with memory, it cannot be used on memory allocated by 3rd
- party libraries.
-
- Third party libraries SHOULD NOT require free() to release allocated
- resources for this reason - and libs can use separate healp allocators
- on some systems (like Windows) so free() doesn't necessarily work
- anyway.
-
- Filed as an issue with libssh: https://bugs.libssh.org/T268
-
- Closes #6481
-
-- send: assert that Curl_write_plain() has a ->conn when called
-
- To help catch bad invokes.
-
- Closes #6476
-
-- test410: verify HTTPS GET with a 49K request header
-
- skip test 410 for mesalink in the CI as it otherwise hangs "forever"
-
-- lib: pass in 'struct Curl_easy *' to most functions
-
- ... in most cases instead of 'struct connectdata *' but in some cases in
- addition to.
-
- - We mostly operate on transfers and not connections.
-
- - We need the transfer handle to log, store data and more. Everything in
- libcurl is driven by a transfer (the CURL * in the public API).
-
- - This work clarifies and separates the transfers from the connections
- better.
-
- - We should avoid "conn->data". Since individual connections can be used
- by many transfers when multiplexing, making sure that conn->data
- points to the current and correct transfer at all times is difficult
- and has been notoriously error-prone over the years. The goal is to
- ultimately remove the conn->data pointer for this reason.
-
- Closes #6425
-
-Emil Engler (17 Jan 2021)
-- docs: fix typos in NEW-PROTOCOL.md
-
- This fixes a misspelled "it" and a grammatically wrong "-ing" suffix.
-
- Closes #6471
-
-Daniel Stenberg (16 Jan 2021)
-- RELEASE-NOTES: synced
-
-Jay Satiro (16 Jan 2021)
-- [Razvan Cojocaru brought this change]
-
- cmake: expose CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
-
- This does for cmake builds what --disable-openssl-auto-load-config
- does for autoconf builds.
-
- Closes https://github.com/curl/curl/pull/6435
-
-Daniel Stenberg (15 Jan 2021)
-- test1918: verify curl_easy_option_by_name() and curl_easy_option_by_id()
-
- ... and as a practical side-effect, make sure that the
- Curl_easyopts_check() function is asserted in debug builds, which we
- want to detect mismatches between the options list in easyoptions.c and
- the options in curl.h
-
- Found-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45991815
-
- Closes #6461
-
-- [Gisle Vanem brought this change]
-
- easyoptions: add the missing AWS_SIGV4
-
- Follow-up from AWS_SIGV4
-
-- schannel_verify: fix safefree call typo
-
- Follow-up from e87ad71d1ba00519
-
- Closes #6459
-
-- mime: make sure setting MIMEPOST to NULL resets properly
-
- ... so that a function can first use MIMEPOST and then set it to NULL to
- reset it back to a blank POST.
-
- Added test 584 to verify the fix.
-
- Reported-by: Christoph M. Becker
-
- Fixes #6455
- Closes #6456
-
-- multi: set the PRETRANSFER time-stamp when we switch to PERFORM
-
- ... instead of at end of the DO state. This makes the timer more
- accurate for the protocols that use the DOING state (such as FTP), and
- simplifies how the function (now called init_perform) is called.
-
- The timer will then include the entire procedure up to PERFORM -
- including all instructions for getting the transfer started.
-
- Closes #6454
-
-- CURLINFO_PRETRANSFER_TIME.3: clarify
-
- ... the timer *does* include the instructions for getting the remote
- file.
-
- Ref: #6452
- Closes #6453
-
-- [Gisle Vanem brought this change]
-
- schannel: plug a memory-leak
-
- ... when built without -DUNICODE.
-
- Closes #6457
-
-Jay Satiro (14 Jan 2021)
-- gitattributes: Set batch files to CRLF line endings on checkout
-
- If a batch file is run without CRLF line endings (ie LF-only) then
- arbitrary behavior may occur. I consider that a bug in Windows, however
- the effects can be serious enough (eg unintended code executed) that
- we're fixing it in the repo by requiring CRLF line endings for batch
- files on checkout.
-
- Prior to this change the checked-out line endings of batch files were
- dependent on a user's git preferences. On Windows it is common for git
- users to have automatic CRLF conversion enabled (core.autocrlf true),
- but those users that don't would run into this behavior.
-
- For example a user has reported running the Visual Studio project
- generator batch file (projects/generate.bat) and it looped forever.
- Output showed that the Windows OS interpreter was occasionally jumping
- to arbitrary points in the batch file and executing commands. This
- resulted in unintended files being removed (a removal sequence called)
- and looping forever.
-
- Ref: https://serverfault.com/q/429594
- Ref: https://stackoverflow.com/q/232651
- Ref: https://www.dostips.com/forum/viewtopic.php?t=8988
- Ref: https://git-scm.com/docs/gitattributes#_checking_out_and_checking_in
- Ref: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf
-
- Bug: https://github.com/curl/curl/discussions/6427
- Reported-by: Ganesh Kamath
-
- Closes https://github.com/curl/curl/pull/6442
-
-Daniel Stenberg (14 Jan 2021)
-- tool_operate: spellfix a comment
-
-- ROADMAP: refreshed
-
- o removed HSTS - already implemented
- o added HTTPS RR records
- o mention HTTP/3 completion
-
-- http_chunks: remove Curl_ prefix from static functions
-
-- transfer: remove Curl_ prefix from static functions
-
-- tftp: remove Curl_ prefix from static functions
-
-- multi: remove Curl_ prefix from static functions
-
-- ldap: remove Curl_ prefix from static functions
-
-- doh: remove Curl_ prefix from static functions
-
-- asyn-ares: remove Curl_ prefix from static functions
-
-- vtls: remove Curl_ prefix from static functions
-
-- bearssl: remove Curl_ prefix from static functions
-
-- mbedtls: remove Curl_ prefix from static functions
-
-- wolfssl: remove Curl_ prefix from static functions
-
-- nss: remove Curl_ prefix from static functions
-
-- gnutls: remove Curl_ prefix from static functions
-
-- openssl: remove Curl_ prefix from static functions
-
- ... as we reserve this prefix to library-wide functions.
-
- Closes #6443
-
-- nss: get the run-time version instead of build-time
-
- Closes #6445
-
-Jay Satiro (12 Jan 2021)
-- tool_doswin: Restore original console settings on CTRL signal
-
- - Move Windows terminal init code from tool_main to tool_doswin.
-
- - Restore the original console settings on CTRL+C and CTRL+BREAK.
-
- Background: On Windows the curl tool changes the console settings to
- enable virtual terminal processing (eg color output) if supported
- (ie Win 10). The original settings are restored on exit but prior to
- this change were not restored in the case of the CTRL signals.
-
- Windows VT behavior varies depending on console/powershell/terminal;
- refer to the discussion in #6226.
-
- Assisted-by: Rich Turner
-
- Closes https://github.com/curl/curl/pull/6226
-
-Daniel Stenberg (12 Jan 2021)
-- gen.pl: fix perl syntax
-
- Follow-up to 324cf1d2e
-
-- [Emil Engler brought this change]
-
- help: update to current codebase
-
- This commit bumps the help to the current state of the project.
-
- Closes #6437
-
-- [Emil Engler brought this change]
-
- docs: fix line length bug in gen.pl
-
- The script warns if the length of $opt and $desc is > 78. However, these
- two variables are on totally separate lines so the check makes no sense.
- Also the $bitmask field is totally forgotten. Currently this leads to
- two warnings within `--resolve` and `--aws-sigv4`.
-
- Closes #6438
-
-- [Emil Engler brought this change]
-
- docs: fix wrong documentation in help.d
-
- curl does not list all categories when you invoke "--help" without any
- parameters.
-
- Closes #6436
-
-- aws-sigv4.d: polish the wording
-
- Make it shorter and imperative form
-
- Closes #6439
-
-- [Fabian Keil brought this change]
-
- misc: fix typos
-
- Bug: https://curl.se/mail/lib-2021-01/0063.html
- Closes #6434
-
-- multi_runsingle: bail out early on data->conn == NULL
-
- As that's a significant error condition and scan-build warns for NULL
- pointer dereferences if we don't.
-
- Closes #6433
-
-- multi: skip DONE state if there's no connection left for ftp wildcard
-
- ... to avoid running in that state with data->conn being NULL.
-
-- libssh2: fix "Value stored to 'readdir_len' is never read"
-
- Detected by scan-build
-
-- connect: mark intentional ignores of setsockopt return values
-
- Pointed out by Coverity
-
- Closes #6431
-
-Jay Satiro (11 Jan 2021)
-- http_proxy: Fix CONNECT chunked encoding race condition
-
- - During the end-of-headers response phase do not mark the tunnel
- complete unless the response body was completely parsed/ignored.
-
- Prior to this change if the entirety of a CONNECT response with chunked
- encoding was not received by the time the final header was parsed then
- the connection would be marked done prematurely, before all the chunked
- data could be read in and ignored (since this is what we do with any
- CONNECT response body) and the connection could not be used.
-
- Bug: https://curl.se/mail/lib-2021-01/0033.html
- Reported-by: Fabian Keil
-
- Closes https://github.com/curl/curl/pull/6432
-
-Daniel Stenberg (11 Jan 2021)
-- RELEASE-NOTES: synced
-
-- url: if IDNA conversion fails, fallback to Transitional
-
- This improves IDNA2003 compatiblity.
-
- Reported-by: Bubu on github
- Fixes #6423
- Closes #6428
-
-- travis: make the Hyper build from its master branch
-
- Closes #6430
-
-- http: make 'authneg' also work for Hyper
-
- When doing a request with a request body expecting a 401/407 back, that
- initial request is sent with a zero content-length. Test 177 and more.
-
- Closes #6424
-
-Jay Satiro (8 Jan 2021)
-- cmake: Add an option to disable libidn2
-
- New option USE_LIBIDN2 defaults to ON for libidn2 detection. Prior to
- this change libidn2 detection could not be turned off in cmake builds.
-
- Reported-by: William A Rowe Jr
-
- Fixes https://github.com/curl/curl/issues/6361
- Closes https://github.com/curl/curl/pull/6362
-
-Daniel Stenberg (8 Jan 2021)
-- HYPER: no longer needs the special branch
-
-- test179: use consistent header line endings
-
- ... to make "Hyper mode" work better.
-
-- file: don't provide content-length for directories
-
- ... as it is misleading.
-
- Ref #6379
- Closes #6421
-
-- TODO: Directory listing for FILE:
-
- Ref #6379
-
-- curl.h: add CURLPROTO_GOPHERS as own protocol identifier
-
- Follow-up to a1f06f32b860, to make sure it can be handled separately
- from plain gopher.
-
- Closes #6418
-
-- http: have CURLOPT_FAILONERROR fail after all headers
-
- ... so that Retry-After and other meta-content can still be used.
-
- Added 1634 to verify. Adjusted test 194 and 281 since --fail now also
- includes the header-terminating CRLF in the output before it exits.
-
- Fixes #6408
- Closes #6409
-
-- global_init: debug builds allocates a byte in init
-
- ... to make build tools/valgrind warn if no curl_global_cleanup is
- called.
-
- This is conditionally only done for debug builds with the env variable
- CURL_GLOBAL_INIT set.
-
- Closes #6410
-
-- lib/unit tests: add missing curl_global_cleanup() calls
-
-- travis: adapt to Hyper build change
-
- Closes #6419
-
-- pretransfer: setup the User-Agent header here
-
- ... and not in the connection setup, as for multiplexed transfers the
- connection setup might be skipped and then the transfer would end up
- without the set user-agent!
-
- Reported-by: Flameborn on github
- Assisted-by: Andrey Gursky
- Assisted-by: Jay Satiro
- Assisted-by: Mike Gelfand
- Fixes #6312
- Closes #6417
-
-- test66: disable with Hyper
-
- ...as Hyper doesn't support HTTP/0.9
-
-- c-hyper: poll the tasks until end correctly
-
- ... makes test 36 work.
-
- Closes #6412
-
-- [Gergely Nagy brought this change]
-
- mk-ca-bundle.pl: deterministic output when using -t
-
- Printing trust purposes are now sorted, making the output deterministic
- when running on the same input certdata.txt.
-
- Closes #6413
-
-- KNOWN_BUGS: fixed "wolfSSL lacks support for renegotiation"
-
- Fixed by #6411
-
-- [Himanshu Gupta brought this change]
-
- wolfssl: add SECURE_RENEGOTIATION support
-
- Closes #6411
-
-- RELEASE-NOTES: synced
-
-- wolfssl: update copyright year range
-
- Follow-up to 7de2e96535e9
-
-- c-hyper: make CURLE_GOT_NOTHING work
-
- Test 30
-
- Closes #6407
-
-- http_proxy: make CONNECT work with the Hyper backend
-
- Makes test 80 run
-
- Closes #6406
-
-- TODO: --fail-with-body perchance?
-
-Jay Satiro (4 Jan 2021)
-- tool_operate: fix the suppression logic of some error messages
-
- - Fix the failed truncation and failed writing body error messages to
- not be shown unless error messages are shown. (ie the user has
- specified -sS, or has not specified -s).
-
- - Also prefix same error messages with "curl: ", for example:
- curl: (23) Failed to truncate, exiting
-
- Prior to this change the failed truncation error messages would be shown
- if not -s, but did not account for -sS which should show.
-
- Prior to this change the failed writing body error messages would be
- shown always.
-
- Ref: https://curl.se/docs/manpage.html#-S
-
- Bug: https://curl.se/mail/archive-2020-12/0017.html
- Reported-by: Hongyi Zhao
-
- Closes https://github.com/curl/curl/pull/6402
-
-- wolfssl: Support wolfSSL builds missing TLS 1.1
-
- The wolfSSL TLS library defines NO_OLD_TLS in some of their build
- configurations and that causes the library to be built without TLS 1.1.
- For example if MD5 is explicitly disabled when building wolfSSL then
- that defines NO_OLD_TLS and the library is built without TLS 1.1 [1].
-
- Prior to this change attempting to build curl with a wolfSSL that was
- built with NO_OLD_TLS would cause a build link error undefined reference
- to wolfTLSv1_client_method.
-
- [1]: https://github.com/wolfSSL/wolfssl/blob/v4.5.0-stable/configure.ac#L2366
-
- Bug: https://curl.se/mail/lib-2020-12/0121.html
- Reported-by: Julian Montes
-
- Closes https://github.com/curl/curl/pull/6388
-
-Daniel Stenberg (4 Jan 2021)
-- test1633: set appropriate name
-
- "--retry with a 429 response and Retry-After:"
-
-- travis: limit the tests with quiche builds to HTTPS and FTPS only
-
- ... since it runs into the 50 minute time limit too often otherwise.
-
- Closes #6403
-
-- HISTORY: added dates to early history
-
- Mostly thanks to this archived web page for urlget:
-
- https://web.archive.org/web/19980216125115/http://www.inf.ufrgs.br/~sagula/urlget.html
-
-- httpauth: make multi-request auth work with custom port
-
- When doing HTTP authentication and a port number set with CURLOPT_PORT,
- the code would previously have the URL's port number override as if it
- had been a redirect to an absolute URL.
-
- Added test 1568 to verify.
-
- Reported-by: UrsusArctos on github
- Fixes #6397
- Closes #6400
-
-- [Emil Engler brought this change]
-
- language: s/behaviour/behavior/g
-
- We currently use both spellings the british "behaviour" and the american
- "behavior". However "behavior" is more used in the project so I think
- it's worth dropping the british name.
-
- Closes #6395
-
-- cmdline-opts/retry.d: mention response code 429 as well
-
- Reported-by: Cherish98
- Bug: https://curl.se/mail/archive-2020-12/0018.html
-
-- docs/HYPER.md: mention outstanding issues
-
- To make it more obvious to users what doesn't work (yet)
-
- Closes #6389
-
-- COPYING/configure: bump copyright year range
-
-- c-hyper: add timecondition to the request
-
- Test 77-78
-
- Closes #6391
-
-- c-hyper: make Digest and NTLM work
-
- Test 64, 65, 67, 68, 69, 70, 72
-
- Closes #6390
-
-- examples/curlgtk.c: fix the copyright year range
-
- ... and make private functions static.
-
-- [Olaf Hering brought this change]
-
- docs/examples: adjust prototypes for CURLOPT_READFUNCTION
-
- The type of the buffer in curl_read_callback is 'char *', not 'void *'.
-
- Signed-off-by: Olaf Hering <olaf@aepfle.de>
- Closes #6392
-
-- examples: fix more empty expression statement has no effect
-
- Follow-up to 26e46617b9
-
-- cleanup: fix two empty expression statement has no effect
-
- Follow-up to 26e46617b9
-
-- configure: set -Wextra-semi-stmt for clang with --enable-debug
-
- To have it properly complain on empty statements with no effect.
-
- Ref: #6376
- Closes #6378
-
-- tests/unit: fix empty statements with no effect
-
- ... by making macros use "do {} while(0)"
-
-- [Paul Groke brought this change]
-
- dns: extend CURLOPT_RESOLVE syntax for adding non-permanent entries
-
- Extend the syntax of CURLOPT_RESOLVE strings: allow using a '+' prefix
- (similar to the existing '-' prefix for removing entries) to add
- DNS cache entries that will time out just like entries that are added
- by libcurl itself.
-
- Append " (non-permanent)" to info log message in case a non-permanent
- entry is added.
-
- Adjust relevant comments to reflect the new behavior.
-
- Adjust documentation.
-
- Extend unit1607 to test the new functionality.
-
- Closes #6294
-
-- schannel: fix "empty expression statement has no effect"
-
- Bug: https://github.com/curl/curl/commit/8ab78f720ae478d533e30b202baec4b451741579#commitcomment-45445950
- Reported-by: Gisle Vanem
- Closes #6381
-
-- [Denis Laxalde brought this change]
-
- docs: remove redundant "better" in --fail help
-
- Closes #6385
-
-- [Kevin Ushey brought this change]
-
- curl.1: fix typo microsft -> microsoft
-
- Closes #6380
-
-- [XhmikosR brought this change]
-
- misc: assorted typo fixes
-
- Closes #6375
-
-- RELEASE-NOTES: synced
-
-- tool_operate: avoid NULL dereference of first_arg
-
- Follow-up to 6a5e020d4d2b04a
- Identified by OSS-Fuzz
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28999
- Closes #6377
-
-- misc: fix "warning: empty expression statement has no effect"
-
- Turned several macros into do-while(0) style to allow their use to work
- find with semicolon.
-
- Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45433279
- Follow-up to 08e8455dddc5e4
- Reported-by: Gisle Vanem
- Closes #6376
-
-- KNOWN_BUGS: 6.10 curl never completes Negotiate over HTTP
-
- Closes #5235
- Closes #6370
-
-- writeout: fix NULL dereference for "this url"
-
- Detected by torture test 1029
-
- Follow-up to 7a90ddf88f5a
-
- Closes #6374
-
-- failf: remove newline from formatting strings
-
- ... as failf adds one itself.
-
- Also: add an assert() to failf() that triggers on a newline in the
- format string!
-
- Closes #6365
-
-- [XhmikosR brought this change]
-
- CI: fix warning with the latest versions
-
- `git checkout HEAD^2` is no longer needed
-
- Closes #6369
-
-- INSTALL: update the list known OSes and CPU archs curl has run on
-
- Closes #6366
-
-- [Cherish98 brought this change]
-
- curl: fix handling of -q option
-
- The match of the "-q" option (short for "--disable") should:
- a) allow concatenation with other single-letters; and
- b) be case-sensitive, lest confusing with "-Q" ("--quote")
-
- Closes #6364
-
-- tests/badsymbols.pl: ignore stand-alone single hash lines
-
- Bug: https://curl.se/mail/lib-2020-12/0084.html
- Reported-by: Dennis Clarke
- Assisted-by: Jay Satiro
-
- Closes #6355
-
-- curl_easy_pause.3: add multiplexed pause effects
-
- and generally refresh and update. Remove details for ancient versions.
-
- Reviewed-by: Jay Satiro
- Closes #6360
-
-Jay Satiro (22 Dec 2020)
-- curl_easy_pause.3: fix man page reference
-
- Follow-up to ac9a724 from earlier today.
-
- Ref: https://github.com/curl/curl/pull/6359
-
-Daniel Stenberg (22 Dec 2020)
-- EXPERIMENTAL: add the Hyper backend to the list
-
- ... of current experimental features in curl.
-
-- speedcheck: exclude paused transfers
-
- Paused transfers should not be stopped due to slow speed even when
- CURLOPT_LOW_SPEED_LIMIT is set. Additionally, the slow speed timer is
- now reset when the transfer is unpaused - as otherwise it would easily
- just trigger immediately after unpausing.
-
- Reported-by: Harry Sintonen
- Fixes #6358
- Closes #6359
-
-- h2: do not wait for RECV on paused transfers
-
- ... as the socket might be readable all the time when paused and thus
- causing a busy-loop.
-
- Reported-by: Harry Sintonen
- Reviewed-by: Jay Satiro
- Fixes #6356
- Closes #6357
-
-- RELEASE-NOTES: synced
-
-- cmdline-opts/gen.pl: return hard on errors
-
- ... as the warnings tend to go unnoticed otherwise!
-
- Closes #6354
-
-- examples/libtest: add .checksrc to dist
-
- ... so that (auto)builds from tarballs also get the correct instructions.
-
- Fixes #6176
- Closes #6353
-
-- test: verify new --write-out variables
-
- Extended test 1029 and added 1188
-
-- test970: adapted to the new internal order of variables
-
-- curl: add variables to --write-out
-
- In particular, these ones can help a user to create its own error
- message when one or transfers fail.
-
- writeout: add 'onerror', 'url', 'urlnum', 'exitcode', 'errormsg'
-
- onerror - lets a user only show the rest on non-zero exit codes
-
- url - the input URL used for this transfer
-
- urlnum - the numerical URL counter (0 indexed) for this transfer
-
- exitcode - the numerical exit code for the transfer
-
- errormsg - obvious
-
- Reported-by: Earnestly on github
- Fixes #6199
- Closes #6207
-
-- [Matthias Gatto brought this change]
-
- tests: add very simple AWS HTTP v4 Signature test
-
- Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
-
-- [Matthias Gatto brought this change]
-
- docs: add AWS HTTP v4 Signature
-
-- [Matthias Gatto brought this change]
-
- tool: add AWS HTTP v4 Signature support
-
- Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
-
-- [Matthias Gatto brought this change]
-
- http: Make the call to v4 signature
-
- This patch allow to call the v4 signature introduce in previous commit
-
- Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
-
-- [Matthias Gatto brought this change]
-
- http: introduce AWS HTTP v4 Signature
-
- It is a security process for HTTP.
-
- It doesn't seems to be standard, but it is used by some cloud providers.
-
- Aws:
- https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
- Outscale:
- https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request
- GCP (I didn't test that this code work with GCP though):
- https://cloud.google.com/storage/docs/access-control/signing-urls-manually
-
- most of the code is in lib/http_v4_signature.c
-
- Information require by the algorithm:
- - The URL
- - Current time
- - some prefix that are append to some of the signature parameters.
-
- The data extracted from the URL are: the URI, the region,
- the host and the API type
-
- example:
- https://api.eu-west-2.outscale.com/api/latest/ReadNets
- ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
- ^ ^ ^
- / \ URI
- API type region
-
- Small description of the algorithm:
- - make canonical header using content type, the host, and the date
- - hash the post data
- - make canonical_request using custom request, the URI,
- the get data, the canonical header, the signed header
- and post data hash
- - hash canonical_request
- - make str_to_sign using one of the prefix pass in parameter,
- the date, the credential scope and the canonical_request hash
- - compute hmac from date, using secret key as key.
- - compute hmac from region, using above hmac as key
- - compute hmac from api_type, using above hmac as key
- - compute hmac from request_type, using above hmac as key
- - compute hmac from str_to_sign using above hmac as key
- - create Authorization header using above hmac, prefix pass in parameter,
- the date, and above hash
-
- Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
-
- Closes #5703
-
-- [Matthias Gatto brought this change]
-
- http: add hmac support for sha256
-
- It seems current hmac implementation use md5 for the hash,
- V4 signature require sha256, so I've added the needed struct in
- this commit.
-
- I've added the functions that do the hmac in v4 signature file
- as a static function ,in the next patch of the serie,
- because it's used only by this file.
-
- Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
-
-- [Cristian Rodríguez brought this change]
-
- connect: on linux, enable reporting of all ICMP errors on UDP sockets
-
- The linux kernel does not report all ICMP errors back to userspace due
- to historical reasons.
-
- IP*_RECVERR sockopt must be turned on to have the correct behaviour
- which is to pass all ICMP errors to userspace.
-
- See https://bugzilla.kernel.org/show_bug.cgi?id=202355
-
- Closes #6341
-
-- curl: add --create-file-mode [mode]
-
- This option sets the (octal) mode to use for the remote file when one is
- created, using the SFTP, SCP or FILE protocols. When not set, the
- default is 0644.
-
- Closes #6244
-
-- c-hyper: fix compiler warnings
-
- Identified by clang on windows.
-
- Reported-by: Gisle Vanem
- Bug: 58974d25d8173aec154e593ed9d866da566c9811
-
- Closes #6351
-
-- KNOWN_BUGS: Remote recursive folder creation with SFTP
-
- Closes #5204
-
-Jay Satiro (20 Dec 2020)
-- badsymbols.pl: Add verbose mode -v
-
- Use -v as the first option to enable verbose mode which will show source
- input, extracted symbol and line info. For example:
-
- Source: ./../include/curl/typecheck-gcc.h
- Symbol: curlcheck_socket_info(info)
- Line #423: #define curlcheck_socket_info(info) \
-
- Ref: https://curl.se/mail/lib-2020-12/0084.html
-
- Closes https://github.com/curl/curl/pull/6349
-
-- KNOWN_BUGS: Secure Transport disabling hostname validation also disables SNI
-
- That behavior is a limitation of Apple's Secure Transport.
-
- Reported-by: Cory Benfield
- Reported-by: Ian Spence
- Confirmed-by: Nick Zitzmann
-
- Ref: https://github.com/curl/curl/issues/998
-
- Closes https://github.com/curl/curl/issues/6347
- Closes https://github.com/curl/curl/pull/6348
-
-Daniel Stenberg (18 Dec 2020)
-- TODO: alt-svc should fallback if alt-svc doesn't work
-
- Closes #4908
-
-- travis: restrict the openssl3 job to only run https and ftps tests
-
- ... as it runs too long otherwise and the other tests are verified in
- other builds anyway.
-
- Closes #6345
-
-- build: repair http disabled but mqtt enabled build
-
- ... as the mqtt code reuses the "method" originally used for HTTP.
-
- Closes #6344
-
-- [Jon Wilkes brought this change]
-
- cookie: avoid the C1001 internal compiler error with MSVC 14
-
- Fixes #6112
- Closes #6135
-
-- RELEASE-NOTES: synced
-
-- mqtt: handle POST/PUBLISH without a set POSTFIELDSIZE
-
- Detected by OSS-Fuzz
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735
-
- Added test 1916 and 1917 to verify.
-
- Closes #6338
-
-- travis: add CI job for Hyper build
-
-- tests: updated tests for Hyper
-
-- lib: introduce c-hyper for using Hyper
-
- ... as an alternative HTTP backend within libcurl.
-
-- tool_setopt: provide helper output in debug builds
-
- ... for when setopt() returns error.
-
-- setopt: adjust to Hyper and disabled HTTP builds
-
-- rtsp: disable if Hyper is used
-
-- getinfo: build with disabled HTTP support
-
-- version: include hyper version
-
-- docs: add HYPER.md
-
-- configure: add --with-hyper
-
- As the first (optional) HTTP backend alternative instead of native
-
- Close #6110
-
-- test1522: add debug tracing
-
- I used this to track down some issues and I figured I could just as well
- keep this extra logging in here for future needs.
-
- Closes #6331
-
-- http: show the request as headers even when split-sending
-
- When the initial request isn't possible to send in its entirety, the
- remainder of request would be delivered to the debug callback as data
- and would wrongly be counted internally as body-bytes sent.
-
- Extended test 1295 to verify.
-
- Closes #6328
-
-- multi: when erroring in TOOFAST state, act as for PERFORM
-
- When failing in TOOFAST, the multi_done() wasn't called so the same
- cleanup and handling wasn't done like when it fails in PERFORM, which in
- the case of FTP could mean that the control connection wouldn't be
- marked as "dead" for the CURLE_ABORTED_BY_CALLBACK case. Which caused
- ftp_disconnect() to use it to send "QUIT", which could end up waiting
- for a response a long time before giving up!
-
- Reported-by: Tomas Berger
- Fixes #6333
- Closes #6337
-
-- cmake: enable gophers correctly in curl-config
-
- Closes #6336
-
-- test1198/9: add two mqtt publish tests without payload lengths
-
- Closes #6335
-
-- tests/mqttd: extract the client id from the correct offset
-
- Closes #6334
-
-- TODO: Prevent terminal injection when writing to terminal
-
- Closes #6150
-
-- Revert "CI/github: work-around for brew breakage on macOS"
-
- This reverts commit 4cbb17a2cbbbe6337142d39479e21c3990b9c22f.
-
- ... as the work-around now causes failures.
-
- Closes #6332
-
-- examples: remove superfluous asterisk uses
-
- ... for function pointers. Breaks in ancient compilers.
-
-- RELEASE-NOTES: synced
-
-- test1272: fix line ending
-
- Follow-up to f24784f9143
-
-- URL-SYNTAX: add gophers details
-
-- test1272: test gophers
-
-- runtests: add support for gophers, gopher over TLS
-
-- [parazyd brought this change]
-
- gopher: Implement secure gopher protocol.
-
- This commit introduces a "gophers" handler inside the gopher protocol if
- USE_SSL is defined. This protocol is no different than the usual gopher
- prococol, with the added TLS encapsulation upon connecting. The protocol
- has been adopted in the gopher community, and many people have enabled
- TLS in their gopher daemons like geomyidae(8), and clients, like clic(1)
- and hurl(1).
-
- I have not implemented test units for this protocol because my knowledge
- of Perl is sub-par. However, for someone more knowledgeable it might be
- fairly trivial, because the same test that tests the plain gopher
- protocol can be used for "gophers" just by adding a TLS listener.
-
- Signed-off-by: parazyd <parazyd@dyne.org>
-
- Closes #6208
-
-- TODO: Package curl for Windows in a signed installer
-
- Closes #5424
-
-- mqtt: deal with 0 byte reads correctly
-
- OSS-Fuzz found it
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28676
-
- Closes #6327
-
-- BUG-BOUNTY: minor language update
-
- ... and remove the wording about entries from before 2019 as the "within
- 12 months" is still there and covers that.
-
- Closes #6318
-
-- tooĺ_writeout: fix the -w time output units
-
- Fix regression from commit fc813f80e1bcac (#6248) that changed the unit
- to microseconds instead of seconds with fractions
-
- Reported-by: 不确定
- Fixes #6321
- Closes #6322
-
-- quiche: remove fprintf() leftover
-
-Jay Satiro (14 Dec 2020)
-- KNOWN_BUGS: SHA-256 digest not supported in Windows SSPI builds
-
- Closes https://github.com/curl/curl/issues/6302
-
-- digest_sspi: Show InitializeSecurityContext errors in verbose mode
-
- The error is shown with infof rather than failf so that the user will
- see the extended error message information only in verbose mode, and
- will still see the standard CURLE_AUTH_ERROR message. For example:
-
- ---
-
- * schannel: InitializeSecurityContext failed: SEC_E_QOP_NOT_SUPPORTED
- (0x8009030A) - The per-message Quality of Protection is not supported by
- the security package
- * multi_done
- * Connection #1 to host 127.0.0.1 left intact
- curl: (94) An authentication function returned an error
-
- ---
-
- Ref: https://github.com/curl/curl/issues/6302
-
- Closes https://github.com/curl/curl/pull/6315
-
-Daniel Stenberg (13 Dec 2020)
-- URL-SYNTAX: add default port numbers and IDNA details
-
- Closes #6316
-
-- URL-SYNTAX: mention how FILE:// access can access network on windows
-
- Closes #6314
-
-Jay Satiro (12 Dec 2020)
-- URL-SYNTAX: Document default SMTP port 25
-
- Note that ports 25 and 587 are common ports for smtp, the former being
- the default.
-
- Closes https://github.com/curl/curl/pull/6310
-
-Daniel Stenberg (12 Dec 2020)
-- CURLOPT_URL.3: remove scheme specific details
-
- ... that are now found in URL-SYNTAX.md
-
- Closes #6307
-
-Dan Fandrich (12 Dec 2020)
-- docs: Fix some typos
-
- [skip ci]
-
-Daniel Stenberg (12 Dec 2020)
-- URL-SYNTAX: mention all supported schemes
-
- Closes #6311
-
-- [Douglas R. Reno brought this change]
-
- URL-SYNTAX.md: minor language improvements
-
- Closes #6308
-
-- docs/URL-SYNTAX: the URL syntax curl accepts and works with
-
- Closes #6285
-
-- [0xflotus brought this change]
-
- docs: enable syntax highlighting in several docs files
-
- ... for better readability
-
- Closes #6286
-
-- test1564/1565: require the 'wakeup' feature to run
-
- Fixes #6299
- Fixes #6300
- Closes #6301
-
-- runtests: add 'wakeup' as a feature
-
-- tests/server/disabled: add "wakeup"
-
- To allow the test suite to know if wakeup support is disabled in the
- build.
-
-- lib1564/5: verify that curl_multi_wakeup returns OK
-
-- tests: make --libcurl tests only test FTP options if ftp enabled
-
- Adjust six --libcurl tests to only check the FTP option if FTP is
- actually present in the build.
-
- Fixes #6303
- Closes #6305
-
-- runtests.pl: fix "uninitialized value" warning
-
- follow-up to e12825c642a88774
-
-- runtests: add support for %if [feature] conditions
-
- ... to make tests run differently or expect different results depending
- on what features that are present or not in curl.
-
- Bonus: initial minor 'Hyper' awareness but nothing is using that yet
-
- Closes #6304
-
-- [Jon Rumsey brought this change]
-
- OS400: update ccsidcurl.c
-
- Add 'struct' to cast and declaration of cfcdata to fix compilation
- error.
-
- Fixes #6292
- Closes #6297
-
-- ngtcp2: make it build it current master again
-
- Closes #6296
-
-- [Cristian Rodríguez brought this change]
-
- connect: defer port selection until connect() time
-
- If supported, defer port selection until connect() time
- if --interface is given and source port is 0.
-
- Reproducer:
-
- * start fast webserver on port 80
- * starve system of ephemeral ports
- $ sysctl net.ipv4.ip_local_port_range="60990 60999"
-
- * start a curl/libcurl "crawler"
- $curl --keepalive --parallel --parallel-immediate --head --interface
- 127.0.0.2 "http://127.0.0.[1-254]/file[001-002].txt"
-
- current result:
- (possible some successful data)
- curl: (45) bind failed with errno 98: Address already in use
-
- result after patch:
- (complete success or few connections failing, higlhy depending on load)
-
- Fail only when all the possible 4-tuple combinations are exhausted,
- which is impossible to do when port is selected at bind() time becuse
- the kernel does not know if socket will be listen()'ed on or connect'ed
- yet.
-
- Closes #6295
-
-- [Hans-Christian Noren Egtvedt brought this change]
-
- connect: zero variable on stack to silence valgrind complaint
-
- Valgrind will complain that ssrem buffer usage if not explicit
- initialized, hence initialize it to zero.
-
- This completes the change intially started in commit 2c0d7212151 ('ftp:
- retry getpeername for FTP with TCP_FASTOPEN') where the ssloc buffer has
- a similar memset to zero.
-
- Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
- Closes #6289
-
-- RELEASE-NOTES: synced
-
- start over on the next release cycle
-
-Version 7.74.0 (9 Dec 2020)
-
-Daniel Stenberg (9 Dec 2020)
-- RELEASE-NOTES: synced
-
- for 7.74.0
-
-Jay Satiro (7 Dec 2020)
-- [Jacob Hoffman-Andrews brought this change]
-
- urldata: restore comment on ssl_connect_data.use
-
- This comment was originally on the `use` field, but was separated from
- its field in 62a2534.
-
- Closes https://github.com/curl/curl/pull/6287
-
-Daniel Stenberg (7 Dec 2020)
-- VERSIONS: refreshed
-
- We always use the patch number these days: all releases are
- "major.minor.patch"
-
-- [Jakub Zakrzewski brought this change]
-
- cmake: don't use reserved target name 'test'
-
- CMake up to 3.10 always reserves this name
-
- Fixes #6257
- Closes #6258
-
-- openssl: make the OCSP verification verify the certificate id
-
- CVE-2020-8286
-
- Reported by anonymous
-
- Bug: https://curl.se/docs/CVE-2020-8286.html
-
-- ftp: make wc_statemach loop instead of recurse
-
- CVE-2020-8285
-
- Fixes #6255
- Bug: https://curl.se/docs/CVE-2020-8285.html
- Reported-by: xnynx on github
-
-- ftp: CURLOPT_FTP_SKIP_PASV_IP by default
-
- The command line tool also independently sets --ftp-skip-pasv-ip by
- default.
-
- Ten test cases updated to adapt the modified --libcurl output.
-
- Bug: https://curl.se/docs/CVE-2020-8284.html
- CVE-2020-8284
-
- Reported-by: Varnavas Papaioannou
-
-- urlapi: don't accept blank port number field without scheme
-
- ... as it makes the URL parser accept "very-long-hostname://" as a valid
- host name and we don't want that. The parser now only accepts a blank
- (no digits) after the colon if the URL starts with a scheme.
-
- Reported-by: d4d on hackerone
-
- Closes #6283
-
-- Revert "multi: implement wait using winsock events"
-
- This reverts commit d2a7d7c185f98df8f3e585e5620cbc0482e45fac.
-
- This commit also reverts the subsequent follow-ups to that commit, which
- were all done within windows #ifdefs that are removed in this
- change. Marc helped me verify this.
-
- Fixes #6146
- Closes #6281
-
-- [Klaus Crusius brought this change]
-
- ftp: retry getpeername for FTP with TCP_FASTOPEN
-
- In the case of TFO, the remote host name is not resolved at the
- connetion time.
-
- For FTP that has lead to missing hostname for the secondary connection.
- Therefore the name resolution is done at the time, when FTP requires it.
-
- Fixes #6252
- Closes #6265
- Closes #6282
-
-- [Thomas Danielsson brought this change]
-
- scripts/completion.pl: parse all opts
-
- For tab-completion it may be preferable to include all the
- available options.
-
- Closes #6280
-
-- RELEASE-NOTES: synced
-
-- openssl: use OPENSSL_init_ssl() with >= 1.1.0
-
- Reported-by: Kovalkov Dmitrii and Per Nilsson
- Fixes #6254
- Fixes #6256
- Closes #6260
-
-- SECURITY-PROCESS: disclose on hackerone
-
- Once a vulnerability has been published, the hackerone issue should be
- disclosed. For tranparency.
-
- Closes #6275
-
-Marc Hoersken (3 Dec 2020)
-- tests/util.py: fix compatibility with Python 2
-
- Backporting the Python 3 implementation of setStream
- to ClosingFileHandler as a fallback within Python 2.
-
- Reported-by: Jay Satiro
-
- Fixes #6259
- Closes #6270
-
-Daniel Gustafsson (3 Dec 2020)
-- docs: fix typos and markup in ETag manpage sections
-
- Reported-by: emanruse on github
- Fixes #6273
-
-Daniel Stenberg (2 Dec 2020)
-- quiche: close the connection
-
- Reported-by: Junho Choi
- Fixes #6213
- Closes #6217
-
-Jay Satiro (2 Dec 2020)
-- ngtcp2: Fix build error due to symbol name change
-
- - NGTCP2_CRYPTO_LEVEL_APP -> NGTCP2_CRYPTO_LEVEL_APPLICATION
-
- ngtcp2/ngtcp2@76232e9 changed the name.
-
- ngtcp2 master is required to build curl with http3 support.
-
- Closes https://github.com/curl/curl/pull/6271
-
-Daniel Stenberg (1 Dec 2020)
-- [Klaus Crusius brought this change]
-
- cmake: check for linux/tcp.h
-
- The HAVE_LINUX_TCP_H define was not set by cmake.
-
- Closes #6252
diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c
index e418146b4..8666da0da 100644
--- a/CMake/CurlTests.c
+++ b/CMake/CurlTests.c
@@ -229,10 +229,6 @@ int main () { ; return 0; }
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
@@ -258,10 +254,6 @@ main ()
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
@@ -285,10 +277,6 @@ main ()
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
@@ -313,10 +301,6 @@ main ()
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
@@ -403,10 +387,6 @@ main ()
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
/* includes start */
diff --git a/CMake/OtherTests.cmake b/CMake/OtherTests.cmake
index 466b5674a..73c813fe5 100644
--- a/CMake/OtherTests.cmake
+++ b/CMake/OtherTests.cmake
@@ -33,7 +33,6 @@ set(signature_call_conv)
if(HAVE_WINDOWS_H)
add_header_include(HAVE_WINSOCK2_H "winsock2.h")
add_header_include(HAVE_WINDOWS_H "windows.h")
- add_header_include(HAVE_WINSOCK_H "winsock.h")
set(_source_epilogue
"${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif")
set(signature_call_conv "PASCAL")
@@ -220,28 +219,6 @@ int main(void) {
return 0;
}" HAVE_STRUCT_TIMEVAL)
-set(HAVE_SIG_ATOMIC_T 1)
-set(CMAKE_REQUIRED_FLAGS)
-if(HAVE_SIGNAL_H)
- set(CMAKE_REQUIRED_FLAGS "-DHAVE_SIGNAL_H")
- set(CMAKE_EXTRA_INCLUDE_FILES "signal.h")
-endif()
-check_type_size("sig_atomic_t" SIZEOF_SIG_ATOMIC_T)
-if(HAVE_SIZEOF_SIG_ATOMIC_T)
- check_c_source_compiles("
- #ifdef HAVE_SIGNAL_H
- # include <signal.h>
- #endif
- int main(void) {
- static volatile sig_atomic_t dummy = 0;
- (void)dummy;
- return 0;
- }" HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
- if(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
- set(HAVE_SIG_ATOMIC_T_VOLATILE 1)
- endif()
-endif()
-
if(HAVE_WINDOWS_H)
set(CMAKE_EXTRA_INCLUDE_FILES winsock2.h)
else()
@@ -259,6 +236,9 @@ endif()
unset(CMAKE_TRY_COMPILE_TARGET_TYPE)
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
+ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ # only try this on non-macOS
+
# if not cross-compilation...
include(CheckCSourceRuns)
set(CMAKE_REQUIRED_FLAGS "")
@@ -301,5 +281,6 @@ if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
}
return 0;
}" HAVE_POLL_FINE)
+ endif()
endif()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c85295e11..a88f49b3b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -156,43 +156,77 @@ 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)
-mark_as_advanced(CURL_DISABLE_FTP)
-option(CURL_DISABLE_LDAP "disables LDAP" OFF)
-mark_as_advanced(CURL_DISABLE_LDAP)
-option(CURL_DISABLE_TELNET "disables Telnet" OFF)
-mark_as_advanced(CURL_DISABLE_TELNET)
+option(CURL_ENABLE_EXPORT_TARGET "to enable cmake export target" ON)
+mark_as_advanced(CURL_ENABLE_EXPORT_TARGET)
+
+option(CURL_DISABLE_ALTSVC "disables alt-svc support" OFF)
+mark_as_advanced(CURL_DISABLE_ALTSVC)
+option(CURL_DISABLE_COOKIES "disables cookies support" OFF)
+mark_as_advanced(CURL_DISABLE_COOKIES)
+option(CURL_DISABLE_CRYPTO_AUTH "disables cryptographic authentication" OFF)
+mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
option(CURL_DISABLE_DICT "disables DICT" OFF)
mark_as_advanced(CURL_DISABLE_DICT)
+option(CURL_DISABLE_DOH "disables DNS-over-HTTPS" OFF)
+mark_as_advanced(CURL_DISABLE_DOH)
option(CURL_DISABLE_FILE "disables FILE" OFF)
mark_as_advanced(CURL_DISABLE_FILE)
-option(CURL_DISABLE_TFTP "disables TFTP" OFF)
-mark_as_advanced(CURL_DISABLE_TFTP)
+option(CURL_DISABLE_FTP "disables FTP" OFF)
+mark_as_advanced(CURL_DISABLE_FTP)
+option(CURL_DISABLE_GETOPTIONS "disables curl_easy_options API for existing options to curl_easy_setopt" OFF)
+mark_as_advanced(CURL_DISABLE_GETOPTIONS)
+option(CURL_DISABLE_GOPHER "disables Gopher" OFF)
+mark_as_advanced(CURL_DISABLE_GOPHER)
+option(CURL_DISABLE_HSTS "disables HSTS support" OFF)
+mark_as_advanced(CURL_DISABLE_HSTS)
option(CURL_DISABLE_HTTP "disables HTTP" OFF)
mark_as_advanced(CURL_DISABLE_HTTP)
-
-option(CURL_DISABLE_LDAPS "to disable LDAPS" OFF)
+option(CURL_DISABLE_HTTP_AUTH "disables all HTTP authentication methods" OFF)
+mark_as_advanced(CURL_DISABLE_HTTP_AUTH)
+option(CURL_DISABLE_IMAP "disables IMAP" OFF)
+mark_as_advanced(CURL_DISABLE_IMAP)
+option(CURL_DISABLE_LDAP "disables LDAP" OFF)
+mark_as_advanced(CURL_DISABLE_LDAP)
+option(CURL_DISABLE_LDAPS "disables LDAPS" OFF)
mark_as_advanced(CURL_DISABLE_LDAPS)
-
-option(CURL_DISABLE_RTSP "to disable RTSP" OFF)
-mark_as_advanced(CURL_DISABLE_RTSP)
-option(CURL_DISABLE_PROXY "to disable proxy" OFF)
-mark_as_advanced(CURL_DISABLE_PROXY)
-option(CURL_DISABLE_POP3 "to disable POP3" OFF)
+option(CURL_DISABLE_LIBCURL_OPTION "disables --libcurl option from the curl tool" OFF)
+mark_as_advanced(CURL_DISABLE_LIBCURL_OPTION)
+option(CURL_DISABLE_MIME "disables MIME support" OFF)
+mark_as_advanced(CURL_DISABLE_MIME)
+option(CURL_DISABLE_MQTT "disables MQTT" OFF)
+mark_as_advanced(CURL_DISABLE_MQTT)
+option(CURL_DISABLE_NETRC "disables netrc parser" OFF)
+mark_as_advanced(CURL_DISABLE_NETRC)
+option(CURL_DISABLE_NTLM "disables NTLM support" OFF)
+mark_as_advanced(CURL_DISABLE_NTLM)
+option(CURL_DISABLE_PARSEDATE "disables date parsing" OFF)
+mark_as_advanced(CURL_DISABLE_PARSEDATE)
+option(CURL_DISABLE_POP3 "disables POP3" OFF)
mark_as_advanced(CURL_DISABLE_POP3)
-option(CURL_DISABLE_IMAP "to disable IMAP" OFF)
-mark_as_advanced(CURL_DISABLE_IMAP)
-option(CURL_DISABLE_SMTP "to disable SMTP" OFF)
+option(CURL_DISABLE_PROGRESS_METER "disables built-in progress meter" OFF)
+mark_as_advanced(CURL_DISABLE_PROGRESS_METER)
+option(CURL_DISABLE_PROXY "disables proxy support" OFF)
+mark_as_advanced(CURL_DISABLE_PROXY)
+option(CURL_DISABLE_RTSP "disables RTSP" OFF)
+mark_as_advanced(CURL_DISABLE_RTSP)
+option(CURL_DISABLE_SHUFFLE_DNS "disables shuffle DNS feature" OFF)
+mark_as_advanced(CURL_DISABLE_SHUFFLE_DNS)
+option(CURL_DISABLE_SMB "disables SMB" OFF)
+mark_as_advanced(CURL_DISABLE_SMB)
+option(CURL_DISABLE_SMTP "disables SMTP" OFF)
mark_as_advanced(CURL_DISABLE_SMTP)
-option(CURL_DISABLE_GOPHER "to disable Gopher" OFF)
-mark_as_advanced(CURL_DISABLE_GOPHER)
-option(CURL_DISABLE_MQTT "to disable MQTT" OFF)
-mark_as_advanced(CURL_DISABLE_MQTT)
+option(CURL_DISABLE_SOCKETPAIR "disables use of socketpair for curl_multi_poll" OFF)
+mark_as_advanced(CURL_DISABLE_SOCKETPAIR)
+option(CURL_DISABLE_TELNET "disables Telnet" OFF)
+mark_as_advanced(CURL_DISABLE_TELNET)
+option(CURL_DISABLE_TFTP "disables TFTP" OFF)
+mark_as_advanced(CURL_DISABLE_TFTP)
+option(CURL_DISABLE_VERBOSE_STRINGS "disables verbose strings" OFF)
+mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS)
-option(CURL_ENABLE_EXPORT_TARGET "to enable cmake export target" ON)
-mark_as_advanced(CURL_ENABLE_EXPORT_TARGET)
+# Corresponds to HTTP_ONLY in lib/curl_setup.h
+option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" OFF)
+mark_as_advanced(HTTP_ONLY)
if(HTTP_ONLY)
set(CURL_DISABLE_DICT ON)
@@ -211,18 +245,6 @@ if(HTTP_ONLY)
set(CURL_DISABLE_TFTP ON)
endif()
-option(CURL_DISABLE_ALTSVC "to disable alt-svc support" OFF)
-mark_as_advanced(CURL_DISABLE_ALTSVC)
-option(CURL_DISABLE_HSTS "to disable HSTS support" OFF)
-mark_as_advanced(CURL_DISABLE_HSTS)
-option(CURL_DISABLE_COOKIES "to disable cookies support" OFF)
-mark_as_advanced(CURL_DISABLE_COOKIES)
-option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF)
-mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
-option(CURL_DISABLE_NTLM "to disable NTLM support" OFF)
-mark_as_advanced(CURL_DISABLE_NTLM)
-option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF)
-mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS)
option(ENABLE_IPV6 "Define if you want to enable IPv6 support" ON)
mark_as_advanced(ENABLE_IPV6)
if(ENABLE_IPV6 AND NOT WIN32)
@@ -237,6 +259,17 @@ if(ENABLE_IPV6 AND NOT WIN32)
set(ENABLE_IPV6 OFF
CACHE BOOL "Define if you want to enable IPv6 support" FORCE)
endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES)
+ set(use_core_foundation ON)
+
+ find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration")
+ if(NOT SYSTEMCONFIGURATION_FRAMEWORK)
+ message(FATAL_ERROR "SystemConfiguration framework not found")
+ endif()
+
+ list(APPEND CURL_LIBS "-framework SystemConfiguration")
+ endif()
endif()
if(USE_MANUAL)
@@ -321,28 +354,29 @@ endif()
# check SSL libraries
# TODO support GnuTLS
+option(CURL_ENABLE_SSL "Enable SSL support" ON)
if(CMAKE_USE_WINSSL)
message(FATAL_ERROR "The cmake option CMAKE_USE_WINSSL was renamed to CMAKE_USE_SCHANNEL.")
endif()
if(APPLE)
- option(CMAKE_USE_SECTRANSP "enable Apple OS native SSL/TLS" OFF)
+ cmake_dependent_option(CMAKE_USE_SECTRANSP "enable Apple OS native SSL/TLS" OFF CURL_ENABLE_SSL OFF)
endif()
if(WIN32)
- option(CMAKE_USE_SCHANNEL "enable Windows native SSL/TLS" OFF)
+ cmake_dependent_option(CMAKE_USE_SCHANNEL "enable Windows native SSL/TLS" OFF CURL_ENABLE_SSL OFF)
cmake_dependent_option(CURL_WINDOWS_SSPI "Use windows libraries to allow NTLM authentication without openssl" ON
CMAKE_USE_SCHANNEL OFF)
endif()
-option(CMAKE_USE_MBEDTLS "Enable mbedTLS for SSL/TLS" OFF)
-option(CMAKE_USE_BEARSSL "Enable BearSSL for SSL/TLS" OFF)
-option(CMAKE_USE_NSS "Enable NSS for SSL/TLS" OFF)
-option(CMAKE_USE_WOLFSSL "enable wolfSSL for SSL/TLS" OFF)
+cmake_dependent_option(CMAKE_USE_MBEDTLS "Enable mbedTLS for SSL/TLS" OFF CURL_ENABLE_SSL OFF)
+cmake_dependent_option(CMAKE_USE_BEARSSL "Enable BearSSL for SSL/TLS" OFF CURL_ENABLE_SSL OFF)
+cmake_dependent_option(CMAKE_USE_NSS "Enable NSS for SSL/TLS" OFF CURL_ENABLE_SSL OFF)
+cmake_dependent_option(CMAKE_USE_WOLFSSL "enable wolfSSL for SSL/TLS" OFF CURL_ENABLE_SSL OFF)
set(openssl_default ON)
if(WIN32 OR CMAKE_USE_SECTRANSP OR CMAKE_USE_SCHANNEL OR CMAKE_USE_MBEDTLS OR CMAKE_USE_NSS OR CMAKE_USE_WOLFSSL)
set(openssl_default OFF)
endif()
-option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ${openssl_default})
+cmake_dependent_option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ${openssl_default} CURL_ENABLE_SSL OFF)
option(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG "Disable automatic loading of OpenSSL configuration" OFF)
count_true(enabled_ssl_options_count
@@ -372,29 +406,26 @@ if(CMAKE_USE_DARWINSSL)
message(FATAL_ERROR "The cmake option CMAKE_USE_DARWINSSL was renamed to CMAKE_USE_SECTRANSP.")
endif()
-if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
- if(NOT COREFOUNDATION_FRAMEWORK)
- message(FATAL_ERROR "CoreFoundation framework not found")
- endif()
+if(CMAKE_USE_SECTRANSP)
+ set(use_core_foundation ON)
- find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration")
- if(NOT SYSTEMCONFIGURATION_FRAMEWORK)
- message(FATAL_ERROR "SystemConfiguration framework not found")
+ find_library(SECURITY_FRAMEWORK "Security")
+ if(NOT SECURITY_FRAMEWORK)
+ message(FATAL_ERROR "Security framework not found")
endif()
- list(APPEND CURL_LIBS "-framework CoreFoundation" "-framework SystemConfiguration")
-
- if(CMAKE_USE_SECTRANSP)
- find_library(SECURITY_FRAMEWORK "Security")
- if(NOT SECURITY_FRAMEWORK)
- message(FATAL_ERROR "Security framework not found")
- endif()
+ set(SSL_ENABLED ON)
+ set(USE_SECTRANSP ON)
+ list(APPEND CURL_LIBS "-framework Security")
+endif()
- set(SSL_ENABLED ON)
- set(USE_SECTRANSP ON)
- list(APPEND CURL_LIBS "-framework Security")
+if(use_core_foundation)
+ find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
+ if(NOT COREFOUNDATION_FRAMEWORK)
+ message(FATAL_ERROR "CoreFoundation framework not found")
endif()
+
+ list(APPEND CURL_LIBS "-framework CoreFoundation")
endif()
if(CMAKE_USE_OPENSSL)
@@ -423,6 +454,8 @@ if(CMAKE_USE_OPENSSL)
check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS)
check_symbol_exists(RAND_screen "${CURL_INCLUDES}" HAVE_RAND_SCREEN)
check_symbol_exists(RAND_egd "${CURL_INCLUDES}" HAVE_RAND_EGD)
+
+ add_definitions(-DOPENSSL_SUPPRESS_DEPRECATED)
endif()
if(CMAKE_USE_MBEDTLS)
@@ -886,7 +919,6 @@ endif()
# Check for header files
if(NOT UNIX)
check_include_file_concat("windows.h" HAVE_WINDOWS_H)
- check_include_file_concat("winsock.h" HAVE_WINSOCK_H)
check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H)
check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H)
check_include_file_concat("wincrypt.h" HAVE_WINCRYPT_H)
@@ -1462,12 +1494,10 @@ set(libdir "${CMAKE_INSTALL_PREFIX}/lib")
foreach(_lib ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CURL_LIBS})
if(TARGET "${_lib}")
set(_libname "${_lib}")
- get_target_property(_libtype "${_libname}" TYPE)
- if(_libtype STREQUAL INTERFACE_LIBRARY)
- # Interface libraries can occur when an external project embeds curl and
- # defined targets such as ZLIB::ZLIB by themselves. Ignore these as
- # reading the LOCATION property will error out. Assume the user won't need
- # this information in the .pc file.
+ get_target_property(_imported "${_libname}" IMPORTED)
+ if(NOT _imported)
+ # Reading the LOCATION property on non-imported target will error out.
+ # Assume the user won't need this information in the .pc file.
continue()
endif()
get_target_property(_lib "${_libname}" LOCATION)
diff --git a/METADATA b/METADATA
index d23bce3bd..87fb8f104 100644
--- a/METADATA
+++ b/METADATA
@@ -7,16 +7,16 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://github.com/curl/curl/releases/download/curl-7_78_0/curl-7.78.0.tar.xz"
+ value: "https://github.com/curl/curl/releases/download/curl-7_80_0/curl-7.80.0.tar.xz"
}
- version: "curl-7_78_0"
+ version: "curl-7_80_0"
license_type: NOTICE
- last_upgrade_date {
- year: 2021
- month: 8
- day: 10
- }
security {
tag: "NVD-CPE2.3:cpe:/a:haxx:curl:7.78.0"
}
+ last_upgrade_date {
+ year: 2021
+ month: 12
+ day: 7
+ }
}
diff --git a/MacOSX-Framework b/MacOSX-Framework
index fdf51d6a9..3c8452774 100755
--- a/MacOSX-Framework
+++ b/MacOSX-Framework
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -55,7 +55,7 @@ DEVELOPER_PATH=`xcode-select --print-path`
if test -d "$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs"; then
SDK_PATH="$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs"
else
- SDK_PATH="$DEVELOPER_PATH/SDKs";
+ SDK_PATH="$DEVELOPER_PATH/SDKs"
fi
OLD_SDK=`ls $SDK_PATH|head -1`
NEW_SDK=`ls -r $SDK_PATH|head -1`
diff --git a/Makefile.am b/Makefile.am
index 16adc9833..3e55230ee 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -248,6 +248,9 @@ test-event:
test-am:
@(cd tests; $(MAKE) all am-test)
+test-ci:
+ @(cd tests; $(MAKE) all ci-test)
+
endif
examples:
diff --git a/README b/README
index b690816e1..9705f4198 100644
--- a/README
+++ b/README
@@ -40,7 +40,7 @@ GIT
git clone https://github.com/curl/curl.git
- (you'll get a directory named curl created, filled with the source code)
+ (you will get a directory named curl created, filled with the source code)
SECURITY PROBLEMS
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 1dc81810f..2dcccb1cd 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,198 +1,139 @@
-curl and libcurl 7.78.0
+curl and libcurl 7.80.0
- Public curl releases: 201
- Command line options: 242
- curl_easy_setopt() options: 290
- Public functions in libcurl: 85
- Contributors: 2459
+ Public curl releases: 204
+ Command line options: 243
+ curl_easy_setopt() options: 294
+ Public functions in libcurl: 86
+ Contributors: 2533
This release includes the following changes:
- o curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE [118]
- o CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax [40]
- o hostip: make 'localhost' return fixed values [16]
- o mbedtls: add support for cert and key blob options [11]
- o metalink: remove all support for it [54]
- o mqtt: add support for username and password [91]
+ o CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse [25]
+ o CURLOPT_PREREQFUNCTION: add new callback [17]
+ o libssh2: add SHA256 fingerprint support [4]
+ o urlapi: add curl_url_strerror() [21]
+ o urlapi: support UNC paths in file: URLs on Windows [20]
+ o wolfssl: allow setting of groups/curves [22]
This release includes the following bugfixes:
- o --socks4[a]: clarify where the host name is resolved [107]
- o ares: always store IPv6 addresses first [20]
- o asyn-ares: remove check for 'data' in Curl_resolver_cancel [89]
- o bearssl: explicitly initialize all fields of Curl_ssl [1]
- o bearssl: remove incorrect const on variable that is modified [1]
- o build: fix compiler warnings when CURL_DISABLE_VERBOSE_STRINGS [155]
- o c-hyper: abort CONNECT response reading early on non 2xx responses [75]
- o c-hyper: add support for transfer-encoding in the request [121]
- o c-hyper: bail on too long response headers [115]
- o c-hyper: clear NTLM auth buffer when request is issued [23]
- o c-hyper: convert HYPERE_INVALID_PEER_MESSAGE to CURLE_UNSUPPORTED_PROTOCOL [21]
- o c-hyper: fix NTLM on closed connection tested with test159 [4]
- o c-hyper: fix the uploaded field in progress callbacks [78]
- o c-hyper: handle NULL from hyper_buf_copy() [19]
- o c-hyper: support CURLINFO_STARTTRANSFER_TIME [29]
- o c-hyper: support CURLOPT_HEADER [32]
- o ccsidcurl: fix the compile errors [27]
- o CI/cirrus: install impacket from PyPI instead of FreeBSD packages [166]
- o CI: add bearssl build [1]
- o CI: add Circle CI [92]
- o CI: add jobs using Zuul [86]
- o CI: delete --enable-hsts option (it is the default now) [2]
- o CI: remove travis details [144]
- o cleanup: spell DoH with a lowercase o [172]
- o cmake: add CURL_DISABLE_NTLM option [44]
- o cmake: avoid leaking absolute paths into exported config [3]
- o cmake: fix IoctlSocket FIONBIO check [156]
- o cmake: fix support for UnixSockets feature on Win32 [104]
- o cmake: remove libssh2 feature checks [122]
- o cmake: try well-known send/recv signature for Apple [12]
- o configure.ac: make non-executable [109]
- o configure/cmake: remove checks for many unused functions [95]
- o configure: add --disable-ntlm option [45]
- o configure: disable RTSP when hyper is selected [68]
- o configure: do not strip out debug flags [110]
- o configure: fix nghttp2 library name for static builds [157]
- o configure: inhibit the implicit-fallthrough warning on gcc-12 [106]
- o configure: rename get-easy-option configure option to get-easy-options [81]
- o conn_shutdown: if closed during CONNECT cleanup properly [59]
- o conncache: lowercase the hash key for better match [5]
- o cookies: track expiration in jar to optimize removals [25]
- o copyright: add boiler-plate headers to CI config files [143]
- o crustls: bump crustls version and use new URL [119]
- o curl.h: <sys/select.h> is supported by VxWorks7 [102]
- o curl.h: include sys/select.h for NuttX RTOS [100]
- o curl: ignore blank --output-dir [57]
- o curl_endian: remove the unused Curl_write64_le function [85]
- o curl_multibyte: Remove local encoding fallbacks [58]
- o Curl_ntlm_core_mk_nt_hash: fix OOM in error path [8]
- o Curl_ssl_getsessionid: fail if no session cache exists [14]
- o CURLOPT_WRITEFUNCTION.3: minor update of the example [80]
- o docs/BINDINGS: fix outdated links [116]
- o docs/examples: use curl_multi_poll() in multi examples [152]
- o docs/INSTALL: remove mentions of configure --with-darwin-ssl [55]
- o docs: document missing arguments to commands [160]
- o docs: fix inconsistencies in EGDSOCKET documentation [159]
- o docs: fix incorrect argument name reference [161]
- o docs: Fix typos [146]
- o docs: make docs for --etag-save match the program behaviour [169]
- o docs: use --max-redirs instead of --max-redir [28]
- o doh: (void)-prefix call to curl_easy_setopt
- o doh: fix wrong DEBUGASSERT for doh private_data [62]
- o easy: during upkeep, attach Curl_easy to connections in the cache [171]
- o examples/multi-single: fix scan-build warning [150]
- o examples: length-limit two sscanf() uses of %s [96]
- o examples: safer and more proper read callback logic [127]
- o filecheck: quietly remove test-place/*~ [39]
- o formdata: avoid "Argument cannot be negative" warning [131]
- o formdata: correct typecast in curl_mime_data call [137]
- o GHA: add a linux-hyper job [52]
- o GHA: add several libcurl tests to the hyper job
- o GHA: run the newly fixed tests with hyper [36]
- o github: timeout jobs on macOS after 90 minutes [42]
- o glob: pass an 'int' as len when using printf's %*s [139]
- o gnutls: set the preferred TLS versions in correct order [94]
- o GOVERNANCE: add 'user', 'committer' and 'contributor' [15]
- o hostip: (macOS) free returned memory of SCDynamicStoreCopyProxies [105]
- o hostip: bad CURLOPT_RESOLVE syntax now returns error [35]
- o hsts: ignore numberical IP address hosts [17]
- o HSTS: not experimental anymore
- o http2: clarify 'Using HTTP2' verbose message [63]
- o http2: init recvbuf struct for pushed streams [13]
- o http2_connisdead: handle trailing GOAWAY better [18]
- o http: fix crash in rate-limited upload [142]
- o http: make the haproxy support work with unix domain sockets [99]
- o http_proxy: deal with non-200 CONNECT response with Hyper [22]
- o hyper: propagate errors back up from read callbacks [113]
- o HYPER: remove mentions of deprecated development branch
- o idn: fix libidn2 with windows unicode builds [117]
- o infof: remove newline from format strings, always append it [149]
- o lib: don't compare fd to FD_SETSIZE when using poll [61]
- o lib: fix compiler warnings with CURL_DISABLE_NETRC [168]
- o lib: fix type of len passed to *printf's %*s [133]
- o lib: more %u for port and int for %*s fixes [132]
- o lib: use %u instead of %ld for port number printf [134]
- o libcurl-security.3: mention file descriptors and forks [108]
- o libssh2: limit time a disconnect can take to 1 second [111]
- o mbedtls: make mbedtls_strerror always work [6]
- o mbedtls: Remove unnecessary include [175]
- o mqtt: detect illegal and too large file size [43]
- o mqtt: extend the error message for no topic [136]
- o msnprintf: return number of printed characters excluding null byte [148]
- o multi: add scan-build-6 work-around in curl_multi_fdset [88]
- o multi: alter transfer timeout ordering [97]
- o multi: do not switch off connect_only flag when closing [98]
- o multi: fix crash in curl_multi_wait / curl_multi_poll [153]
- o netrc: skip 'macdef' definitions [87]
- o ngtcp2: disable TLSv1.3 compatible mode when using GnuTLS [83]
- o openssl: avoid static variable for seed flag [101]
- o openssl: don't remove session id entry in disassociate [56]
- o pinnedpubkey.d: fix formatting for version support lists [126]
- o proto.d: fix formatting for paragraphs after margin changes [125]
- o quiche: use send() instead of sendto() to avoid macOS issue [103]
- o Revert "c-hyper: handle body on HYPER_TASK_EMPTY" [26]
- o Revert "ftp: Expression 'ftpc->wait_data_conn' is always false" [147]
- o runtests: also find the last test in Makefile.inc [66]
- o runtests: enable 'hyper mode' only for HTTP tests [34]
- o runtests: init $VERSION to avoid warnings when using -l
- o runtests: parse data/Makefile.inc instead of using make [38]
- o runtests: skip disabled tests unless -f is used [82]
- o rustls: remove native_roots fallback [65]
- o schannel: set ALPN length correctly for HTTP/2 [24]
- o SChannel: Use '_tcsncmp()' instead [164]
- o sectransp: check for client certs by name first, then file [167]
- o setopt: fix incorrect comments [10]
- o socketpair: fix potential hangs [37]
- o socks4: scan for the IPv4 address in resolve results [124]
- o ssl: read pending close notify alert before closing the connection [9]
- o sws: malloc request struct instead of using stack [60]
- o telnet: fix option parser to not send uninitialized contents [170]
- o test1116: hyper doesn't pass through "surprise-trailers" [123]
- o test1147: hyper doesn't allow "crazy" request headers like built-in [114]
- o test1151: added missing CRLF to work with hyper [120]
- o test1216: adjusted for hyper mode [73]
- o test1218: adjusted for hyper mode [72]
- o test1230: adjust to work in hyper mode [74]
- o test1340/1341: adjusted for hyper mode [71]
- o test1438/1457: add HTTP keyword to make hyper mode work [70]
- o test1514: add a CRLF to the response to make it correct [130]
- o test1518: adjusted to work with hyper [129]
- o test1519: adjusted to work with hyper [128]
- o test1594/1595/1596: fix to work in hyper mode [69]
- o test269: disable for hyper [33]
- o test3010: work with hyper mode [67]
- o test328: avoid a header-looking body to make hyper mode work [53]
- o test339: CRLFify better to work in hyper mode [51]
- o test347: CRLFify to work in hyper mode [50]
- o test393: make Content-Length fit within 64 bit for hyper [49]
- o test394: hyper returns a different error [48]
- o test395: hyper cannot work around > 64 bit content-lengths like built-in [47]
- o test433: adjust for hyper mode [46]
- o test434: add HTTP keyword [76]
- o test500: adjust to work with hyper mode
- o test566: adjust to work with hyper mode [79]
- o test599: adjusted to work in hyper mode [77]
- o test644: remove as duplicate of test 587 [84]
- o tests: fix Accept-Encoding strips to work with Hyper builds [41]
- o TLS: prevent shutdown loops to get stuck [112]
- o tool: make _lseeki64() macro work with the PellesC compiler [163]
- o tool_help: document that --tlspassword takes a password [162]
- o tool_help: remove unused define [154]
- o url.c: remove two variable assigns that are never read [90]
- o url: (void)-prefix a curl_url_get() call [138]
- o url: bad CURLOPT_CONNECT_TO syntax now returns error [31]
- o version: turn version number functions into returning void [135]
- o vtls: exit addsessionid if no cache is inited [7]
- o vtls: fix connection reuse checks for issuer cert and case sensitivity [165]
- o vtls: only store TIMER_APPCONNECT for non-proxy connect [93]
- o vtls: use free() not curl_free() [140]
- o warnless: simplify type size handling [30]
- o Win32: fix build with Watt-32
- o winbuild/README: VC should be set to 6 'or larger' [64]
- o winbuild: support alternate nghttp2 static lib name [174]
- o wolfssl: failing to set a session id is not reason to error out [151]
- o write-out.d: clarify urlnum is not unique for de-globbed URLs [145]
- o zuul: use the new rustls directory name [141]
+ o .github: retry macos "brew install" command on failure [125]
+ o aws-sigv4: make signature work when post data is binary [68]
+ o BINDINGS: URL updates [30]
+ o build: remove checks for WinSock 1 [36]
+ o c-hyper: don't abort CONNECT responses early when auth-in-progress [71]
+ o c-hyper: make Curl_http propagate errors better [50]
+ o c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work [97]
+ o c-hyper: make test 217 run [74]
+ o c-hyper: use hyper_request_set_uri_parts to make h2 better [39]
+ o checksrc: ignore preprocessor lines [64]
+ o CI/makefiles: introduce dedicated test target [34]
+ o ci: update Lift config to match requirements of curl build [1]
+ o cirrus: remove FreeBSD 11.4 from the matrix [62]
+ o cirrus: switch to openldap24-client [63]
+ o cleanup: constify unmodified static structs [2]
+ o cmake: add CURL_ENABLE_SSL option [46]
+ o cmake: fix error getting LOCATION property on non-imported target [59]
+ o CMake: restore support for SecureTransport on iOS [103]
+ o cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED [14]
+ o cmdline-opts: made the 'Added:' field mandatory [37]
+ o configure.ac: replace krb5-config with pkg-config [80]
+ o configure: when hyper is selected, deselect nghttp2 [94]
+ o connect: use sysaddr_un from sys/un.h or custom-defined for windows [23]
+ o curl-confopts.m4: remove --enable/disable-hidden-symbols [70]
+ o curl-openssl.m4: modify library order for openssl linking [40]
+ o curl-openssl: pass argument to sed single-quoted [15]
+ o curl.1: remove mentions of really old version changes [38]
+ o curl: actually append "-" to --range without number only [57]
+ o curl: correct grammar in generated libcurl code [53]
+ o curl: print help descriptions in an aligned right column [16]
+ o curl_gssapi: fix link error on macOS Monterey [55]
+ o curl_multi_socket_action.3: add a "RETURN VALUE" section [106]
+ o curl_ntlm_core: use OpenSSL only if DES is available [42]
+ o Curl_updateconninfo: store addresses for QUIC connections too [90]
+ o CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred [126]
+ o CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required [114]
+ o CURLOPT_HTTPHEADER.3: add descripion for specific headers [35]
+ o docs/HTTP3: improve build instructions [102]
+ o docs/Makefile.am: repair 'make html' [52]
+ o docs: fix typo in CURLOPT_TRAILERFUNCTION example [93]
+ o docs: provide "RETURN VALUE" section for more func manpages [105]
+ o docs: reduce use of "very" [107]
+ o doh: remove experimental code for DoH with GET [61]
+ o examples/htmltidy: correct wrong printf() use [66]
+ o examples/imap-append: fix end-of-data check [7]
+ o ftp: make the MKD retry to retry once per directory [113]
+ o gen.pl: insert the current date and version in generated man page [11]
+ o gen.pl: replace leading single quotes with \(aq [110]
+ o http2: make getsock not wait for write if there's no remote window [56]
+ o HTTP3: fix the HTTP/3 Explained book link [27]
+ o http: fix Basic auth with empty name field in URL [24]
+ o http: reject HTTP response codes < 100 [92]
+ o http: remove assert that breaks hyper [47]
+ o http: set content length earlier [67]
+ o http_proxy: make hyper CONNECT() return the correct error code [51]
+ o http_proxy: multiple CONNECT with hyper done better [78]
+ o hyper: disable test 1294 since hyper doesn't allow such crazy headers [96]
+ o hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING [72]
+ o hyper: pass the CONNECT line to the debug callback [79]
+ o imap: display quota information [115]
+ o INSTALL: update symbol hiding option [77]
+ o lib/mk-ca-bundle.pl: skip certs passed Not Valid After date [18]
+ o lib: avoid fallthrough cases in switch statements [33]
+ o libcurl.rc: switch out the copyright symbol for plain ASCII [5]
+ o libssh2: Get the version at runtime if possible [12]
+ o limit-rate.d: this is average over several seconds [119]
+ o llist: remove redundant code, branch will not be executed [10]
+ o Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options [100]
+ o maketgz: redirect updatemanpages.pl output to /dev/null
+ o man pages: require all to use the same section header order [101]
+ o manpage: adjust the asterisk in some SYNOPSIS sections [82]
+ o md5: fix compilation with OpenSSL 3.0 API [43]
+ o misc: fix a few issues on MidnightBSD [28]
+ o misc: fix typos in docs and comments [3]
+ o ngtcp2: advertise h3 as well as h3-29 [109]
+ o ngtcp2: compile with the latest nghttp3 [117]
+ o ngtcp2: specify the missing required callback functions [108]
+ o ngtcp2: use latest QUIC TLS RFC9001 [122]
+ o NTLM: use DES_set_key_unchecked with OpenSSL [13]
+ o openssl: if verifypeer is not requested, skip the CA loading [69]
+ o openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway [44]
+ o Revert "src/tool_filetime: disable -Wformat on mingw for this file" [88]
+ o sasl: binary messages [31]
+ o schannel: fix memory leak due to failed SSL connection [89]
+ o scripts/delta: count command line options in the new file
+ o sendf: accept zero-length data in Curl_client_write() [95]
+ o sha256: use high-level EVP interface for OpenSSL [41]
+ o smooth-gtk-thread.c: enhance the mutex lock use [112]
+ o sws: fix memory leak on exit [49]
+ o test1160: edited to work with hyper [83]
+ o test1173: make manpage-syntax.pl spot \n errors in examples
+ o test1185: verify checksrc [58]
+ o test1266/1267: disabled on hyper: no HTTP/0.9 support [99]
+ o test1287: make work on hyper [98]
+ o test207: accept a different error code for hyper [76]
+ o test262: don't attempt with hyper [73]
+ o test552: updated to work with hyper [87]
+ o test559: add 'HTTP' in keywords [86]
+ o tests/smbserver.py: fix compatibility with impacket 0.9.23+ [104]
+ o tests: add Schannel-specific tests and disable unsupported ones [91]
+ o tests: disable test 2043 [54]
+ o tests: kill some test servers afterwards to avoid locked logfiles [111]
+ o tests: use python3 in test 1451 [48]
+ o tls: remove newline from three infof() calls [85]
+ o tool_cb_prg: make resumed upload progress bar show better [9]
+ o tool_listhelp: easier generated with gen.pl [19]
+ o tool_main: fix typo in comment [29]
+ o tool_operate: a failed etag save now only fails that transfer [124]
+ o URL-SYNTAX: add IMAP UID SEARCH example [81]
+ o url: check the return value of curl_url() [75]
+ o url: set "k->size" -1 at start of request [60]
+ o urlapi: skip a strlen(), pass in zero [65]
+ o urlapi: URL decode percent-encoded host names [26]
+ o version_win32: use actual version instead of manifested version [45]
+ o vtls: Fix a memory leak if an SSL session cannot be added to the cache [8]
+ o wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity [32]
+ o zuul: pin the quiche build to use an older cmake-rs [84]
This release includes the following known bugs:
@@ -201,199 +142,146 @@ This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Albin Vass, Aleksander Mazur, Alexis Vachette, Alex Xu, Andrea Pappacoda,
- Andrei Rybak, Bachue Zhou, Bastian Krause, Bin Lan, Bin Meng,
- Christian Weisgerber, Christoph M. Becker, civodul on github, Dan Fandrich,
- Daniel Gustafsson, Daniel Stenberg, David Hu, dEajL3kA on github,
- Dmitry Karpov, Dmitry Kostjuchenko, Douglas R. Reno, Ebe Janchivdorj,
- Fawad Mirza, Francisco Munoz, Gabriel Simmer, Gealber Morales, Gergely Nagy,
- Gerrit Renker, Gisle Vanem, Gregor Jasny, Gregory Muchka, Harry Sintonen,
- Hugh Macdonald, Jacob Hoffman-Andrews, Jishan Shaikh, Joel Depooter,
- Jonathan Wernberg, Jon Rumsey, Josh Soref, Josie Huddleston, Jun-ya Kato,
- Kevin Burke, Laurent Dufresne, Li Xinwei, MAntoniak on github, Marcel Raad,
- Marc Hörsken, Mark Swaanenburg, Martin Howarth, Max Zettlmeißl,
- Michael Forney, Michael Kaufmann, Mohammed Naser, nian6324 on github,
- Nikos Mavrogiannopoulos, Paul Groke, Peter Körner, Phil E. Taylor,
- Pierre Yager, Randolf J, Ray Satiro, Red Hat Product Security,
- Richard Marion, Richard Whitehouse, Sergey Markelov, Shikha Sharma,
- shithappens2016 on github, sylgal on github, Timur Artikov, Tobias Nyholm,
- Tommy Chiang, User Sg, Vadim Grinshpun, Valentín Gutiérrez, Viktor Szakats,
- William Desportes, Wyatt OʼDay, Xiang Xiao, Yongkang Huang, Younes El-karama,
- Zhang Xiuhua, Борис Верховский, Коваленко Анатолий Викторович,
- (83 contributors)
+ 8U61ife on github, a1346054 on github, Abhinav Singh, Alexander Chuykov,
+ Alexander Kanavin, Amaury Denoyelle, Anthony Hu, Axel Morawietz,
+ beslick5 on github, billionai on github, Bo Anderson, Boris Rasin,
+ Dan Fandrich, Daniel Gustafsson, Daniel Stenberg, David Cook, David Hu,
+ Earnestly on github, Eddie Lumpkin, Érico Nogueira, Erik Stenlund,
+ Gisle Vanem, Gleb Ivanovsky, Godwin Stewart, h1zzz on github, Harry Sintonen,
+ Hayden Roche, Jakub Zakrzewski, Jan Mazur, Jeffrey Tolar, Jerome Mao,
+ Joel Depooter, Jonathan Cardoso Machado, Josip Medved, Jun-ya Kato,
+ Kerem Kat, Kevin Burke, Kirill Efimov, Lucas Holt, Malik Idrees Hasan Khan,
+ Marcel Raad, Marc Hörsken, Mats Lindestam, Max Dymond, Michael Afanasiev,
+ Michael Baentsch, Michael Kaufmann, Momoka Yamamoto, Noam Moshe,
+ orycho on github, Patrick Monnerat, Rafał Mikrut, Randall S. Becker,
+ Raul Onitza-Klugman, Ray Satiro, Ricardo Martins, Rick Lane,
+ Rikard Falkeborn, Roger Young, Roy Li, ryancaicse on github, Ryan Mast,
+ Samuel Henrique, Sean Molenaar, Sergey Markelov, Sergio Durigan Junior,
+ sergio-nsk on github, Sharon Brizinov, Stathis Kapnidis,
+ Steini2000 on github, Tatsuhiro Tsujikawa, Thomas M. DuBuisson,
+ tlahn on github, Viktor Szakats, Vitaly Varyvdin, Wyatt O'Day,
+ x2018 on github, Борис Верховский,
+ (78 contributors)
References to bug reports and discussions on issues:
- [1] = https://curl.se/bug/?i=7133
- [2] = https://curl.se/bug/?i=7167
- [3] = https://curl.se/bug/?i=7152
- [4] = https://curl.se/bug/?i=7154
- [5] = https://curl.se/bug/?i=7159
- [6] = https://curl.se/bug/?i=7162
- [7] = https://curl.se/bug/?i=7165
- [8] = https://curl.se/bug/?i=7164
- [9] = https://curl.se/bug/?i=7095
- [10] = https://curl.se/bug/?i=7157
- [11] = https://curl.se/bug/?i=7157
- [12] = https://curl.se/bug/?i=7158
- [13] = https://curl.se/bug/?i=7153
- [14] = https://curl.se/bug/?i=7148
- [15] = https://curl.se/bug/?i=7151
- [16] = https://curl.se/bug/?i=7039
- [17] = https://curl.se/bug/?i=7146
- [18] = https://curl.se/mail/lib-2021-06/0001.html
- [19] = https://curl.se/bug/?i=7143
- [20] = https://curl.se/mail/lib-2021-06/0003.html
- [21] = https://curl.se/bug/?i=7141
- [22] = https://curl.se/bug/?i=7141
- [23] = https://curl.se/bug/?i=7139
- [24] = https://curl.se/bug/?i=7138
- [25] = https://curl.se/bug/?i=7172
- [26] = https://curl.se/bug/?i=7122
- [27] = https://curl.se/bug/?i=7134
- [28] = https://curl.se/bug/?i=7130
- [29] = https://curl.se/bug/?i=7204
- [30] = https://curl.se/bug/?i=7181
- [31] = https://curl.se/bug/?i=7183
- [32] = https://curl.se/bug/?i=7204
- [33] = https://curl.se/bug/?i=7184
- [34] = https://curl.se/bug/?i=7185
- [35] = https://curl.se/bug/?i=7170
- [36] = https://curl.se/bug/?i=7205
- [37] = https://curl.se/bug/?i=7144
- [38] = https://curl.se/bug/?i=7177
- [39] = https://curl.se/bug/?i=7179
- [40] = https://curl.se/bug/?i=7175
- [41] = https://curl.se/bug/?i=7169
- [42] = https://curl.se/bug/?i=7173
- [43] = https://curl.se/bug/?i=7166
- [44] = https://curl.se/bug/?i=7028
- [45] = https://curl.se/bug/?i=7028
- [46] = https://curl.se/bug/?i=7205
- [47] = https://curl.se/bug/?i=7205
- [48] = https://curl.se/bug/?i=7205
- [49] = https://curl.se/bug/?i=7205
- [50] = https://curl.se/bug/?i=7205
- [51] = https://curl.se/bug/?i=7205
- [52] = https://curl.se/bug/?i=7206
- [53] = https://curl.se/bug/?i=7203
- [54] = https://curl.se/bug/?i=7176
- [55] = https://curl.se/mail/lib-2021-06/0008.html
- [56] = https://curl.se/bug/?i=7222
- [57] = https://curl.se/bug/?i=7218
- [58] = https://curl.se/bug/?i=7257
- [59] = https://curl.se/bug/?i=7236
- [60] = https://curl.se/mail/lib-2021-06/0018.html
- [61] = https://curl.se/bug/?i=7240
- [62] = https://curl.se/bug/?i=7227
- [63] = https://github.com/curl/curl/discussions/7255
- [64] = https://curl.se/bug/?i=7253
- [65] = https://curl.se/bug/?i=7250
- [66] = https://curl.se/bug/?i=7209
- [67] = https://curl.se/bug/?i=7209
- [68] = https://curl.se/bug/?i=7209
- [69] = https://curl.se/bug/?i=7209
- [70] = https://curl.se/bug/?i=7209
- [71] = https://curl.se/bug/?i=7209
- [72] = https://curl.se/bug/?i=7209
- [73] = https://curl.se/bug/?i=7209
- [74] = https://curl.se/bug/?i=7209
- [75] = https://curl.se/bug/?i=493
- [76] = https://curl.se/bug/?i=7209
- [77] = https://curl.se/bug/?i=7209
- [78] = https://curl.se/bug/?i=7209
- [79] = https://curl.se/bug/?i=7209
- [80] = https://curl.se/bug/?i=7219
- [81] = https://curl.se/bug/?i=7211
- [82] = https://curl.se/bug/?i=7212
- [83] = https://curl.se/bug/?i=6896
- [84] = https://curl.se/bug/?i=7208
- [85] = https://curl.se/bug/?i=7280
- [86] = https://curl.se/bug/?i=7245
- [87] = https://curl.se/bug/?i=7238
- [88] = https://curl.se/bug/?i=7248
- [89] = https://curl.se/bug/?i=7248
- [90] = https://curl.se/bug/?i=7248
- [91] = https://curl.se/bug/?i=7243
- [92] = https://curl.se/bug/?i=7239
- [93] = https://curl.se/bug/?i=7274
- [94] = https://curl.se/bug/?i=7277
- [95] = https://curl.se/bug/?i=7276
- [96] = https://curl.se/bug/?i=7293
- [97] = https://curl.se/bug/?i=7178
- [98] = https://curl.se/mail/lib-2021-06/0024.html
- [99] = https://curl.se/bug/?i=7290
- [100] = https://curl.se/bug/?i=7287
- [101] = https://curl.se/bug/?i=7296
- [102] = https://curl.se/bug/?i=7285
- [103] = https://curl.se/bug/?i=7260
- [104] = https://curl.se/bug/?i=7034
- [105] = https://curl.se/bug/?i=7265
- [106] = https://curl.se/bug/?i=7295
- [107] = https://curl.se/bug/?i=7273
- [108] = https://curl.se/bug/?i=7270
- [109] = https://curl.se/bug/?i=7272
- [110] = https://curl.se/bug/?i=7216
- [111] = https://curl.se/bug/?i=7271
- [112] = https://curl.se/bug/?i=7271
- [113] = https://curl.se/bug/?i=7266
- [114] = https://curl.se/bug/?i=7349
- [115] = https://curl.se/bug/?i=7350
- [116] = https://curl.se/bug/?i=7301
- [117] = https://curl.se/bug/?i=7228
- [118] = https://curl.se/bug/?i=7073
- [119] = https://curl.se/bug/?i=7297
- [120] = https://curl.se/bug/?i=7350
- [121] = https://curl.se/bug/?i=7348
- [122] = https://curl.se/bug/?i=7343
- [123] = https://curl.se/bug/?i=7344
- [124] = https://curl.se/bug/?i=7345
- [125] = https://curl.se/bug/?i=7341
- [126] = https://curl.se/bug/?i=7340
- [127] = https://curl.se/bug/?i=7330
- [128] = https://curl.se/bug/?i=7333
- [129] = https://curl.se/bug/?i=7333
- [130] = https://curl.se/bug/?i=7334
- [131] = https://curl.se/bug/?i=7328
- [132] = https://curl.se/bug/?i=7329
- [133] = https://curl.se/bug/?i=7326
- [134] = https://curl.se/bug/?i=7325
- [135] = https://curl.se/bug/?i=7319
- [136] = https://curl.se/bug/?i=7316
- [137] = https://curl.se/bug/?i=7327
- [138] = https://curl.se/bug/?i=7320
- [139] = https://curl.se/bug/?i=7324
- [140] = https://curl.se/bug/?i=7318
- [141] = https://curl.se/bug/?i=7311
- [142] = https://curl.se/bug/?i=7308
- [143] = https://curl.se/bug/?i=7314
- [144] = https://curl.se/bug/?i=7313
- [145] = https://curl.se/bug/?i=7342
- [146] = https://curl.se/bug/?i=7370
- [147] = https://curl.se/mail/lib-2021-07/0025.html
- [148] = https://curl.se/bug/?i=7361
- [149] = https://curl.se/bug/?i=7357
- [150] = https://curl.se/bug/?i=7360
- [151] = https://curl.se/bug/?i=7358
- [152] = https://curl.se/bug/?i=7352
- [153] = https://curl.se/bug/?i=7379
- [154] = https://curl.se/bug/?i=7380
- [155] = https://curl.se/bug/?i=7377
- [156] = https://curl.se/bug/?i=7375
- [157] = https://curl.se/bug/?i=7367
- [159] = https://curl.se/bug/?i=7391
- [160] = https://curl.se/bug/?i=7382
- [161] = https://curl.se/bug/?i=7383
- [162] = https://curl.se/bug/?i=7378
- [163] = https://curl.se/bug/?i=7397
- [164] = https://curl.se/bug/?i=7398
- [165] = https://curl.se/docs/CVE-2021-22924.html
- [166] = https://curl.se/bug/?i=7418
- [167] = https://curl.se/docs/CVE-2021-22926.html
- [168] = https://curl.se/bug/?i=7423
- [169] = https://curl.se/bug/?i=7429
- [170] = https://curl.se/docs/CVE-2021-22925.html
- [171] = https://curl.se/bug/?i=7386
- [172] = https://curl.se/bug/?i=7413
- [174] = https://curl.se/bug/?i=7446
- [175] = https://curl.se/bug/?i=7419
+ [1] = https://curl.se/bug/?i=7761
+ [2] = https://curl.se/bug/?i=7759
+ [3] = https://curl.se/bug/?i=7747
+ [4] = https://curl.se/bug/?i=7646
+ [5] = https://curl.se/bug/?i=7765
+ [7] = https://curl.se/bug/?i=7774
+ [8] = https://curl.se/bug/?i=7683
+ [9] = https://curl.se/bug/?i=7760
+ [10] = https://curl.se/bug/?i=7770
+ [11] = https://curl.se/bug/?i=7782
+ [12] = https://curl.se/bug/?i=7768
+ [13] = https://curl.se/bug/?i=7779
+ [14] = https://curl.se/bug/?i=7767
+ [15] = https://curl.se/bug/?i=7758
+ [16] = https://curl.se/bug/?i=7792
+ [17] = https://curl.se/bug/?i=7477
+ [18] = https://curl.se/bug/?i=7801
+ [19] = https://curl.se/bug/?i=7787
+ [20] = https://curl.se/bug/?i=7366
+ [21] = https://curl.se/bug/?i=7605
+ [22] = https://curl.se/bug/?i=7728
+ [23] = https://curl.se/bug/?i=7737
+ [24] = https://curl.se/bug/?i=7819
+ [25] = https://curl.se/mail/lib-2021-09/0058.html
+ [26] = https://curl.se/bug/?i=7830
+ [27] = https://curl.se/bug/?i=7813
+ [28] = https://curl.se/bug/?i=7812
+ [29] = https://curl.se/bug/?i=7811
+ [30] = https://curl.se/bug/?i=7809
+ [31] = https://curl.se/bug/?i=6930
+ [32] = https://curl.se/bug/?i=7806
+ [33] = https://curl.se/bug/?i=7322
+ [34] = https://curl.se/bug/?i=7785
+ [35] = https://curl.se/bug/?i=7829
+ [36] = https://curl.se/bug/?i=7778
+ [37] = https://curl.se/bug/?i=7786
+ [38] = https://curl.se/bug/?i=7786
+ [39] = https://curl.se/bug/?i=7679
+ [40] = https://curl.se/bug/?i=7826
+ [41] = https://curl.se/bug/?i=7808
+ [42] = https://curl.se/bug/?i=7808
+ [43] = https://curl.se/bug/?i=7808
+ [44] = https://curl.se/bug/?i=7840
+ [45] = https://curl.se/bug/?i=7742
+ [46] = https://curl.se/bug/?i=7822
+ [47] = https://curl.se/bug/?i=7852
+ [48] = https://curl.se/bug/?i=7899
+ [49] = https://curl.se/bug/?i=7849
+ [50] = https://curl.se/bug/?i=7851
+ [51] = https://curl.se/bug/?i=7825
+ [52] = https://curl.se/bug/?i=7853
+ [53] = https://curl.se/bug/?i=7802
+ [54] = https://curl.se/bug/?i=7845
+ [55] = https://curl.se/bug/?i=7657
+ [56] = https://curl.se/bug/?i=7821
+ [57] = https://curl.se/bug/?i=7837
+ [58] = https://curl.se/bug/?i=7866
+ [59] = https://curl.se/bug/?i=7885
+ [60] = https://curl.se/bug/?i=7871
+ [61] = https://curl.se/bug/?i=7870
+ [62] = https://curl.se/bug/?i=7869
+ [63] = https://curl.se/bug/?i=7868
+ [64] = https://curl.se/bug/?i=7863
+ [65] = https://curl.se/bug/?i=7862
+ [66] = https://curl.se/bug/?i=7860
+ [67] = https://github.com/curl/curl/commit/8a16e54#r57374914
+ [68] = https://curl.se/bug/?i=7844
+ [69] = https://curl.se/bug/?i=7892
+ [70] = https://curl.se/bug/?i=7891
+ [71] = https://curl.se/bug/?i=7889
+ [72] = https://curl.se/bug/?i=7889
+ [73] = https://curl.se/bug/?i=7889
+ [74] = https://curl.se/bug/?i=7889
+ [75] = https://curl.se/bug/?i=7917
+ [76] = https://curl.se/bug/?i=7889
+ [77] = https://curl.se/bug/?i=7890
+ [78] = https://curl.se/bug/?i=7888
+ [79] = https://curl.se/bug/?i=7887
+ [80] = https://curl.se/bug/?i=7916
+ [81] = https://github.com/curl/curl/issues/7626
+ [82] = https://curl.se/bug/?i=7884
+ [83] = https://curl.se/bug/?i=7912
+ [84] = https://curl.se/bug/?i=7927
+ [85] = https://curl.se/bug/?i=7879
+ [86] = https://curl.se/bug/?i=7911
+ [87] = https://curl.se/bug/?i=7911
+ [88] = https://curl.se/bug/?i=7941
+ [89] = https://curl.se/bug/?i=7877
+ [90] = https://curl.se/bug/?i=7939
+ [91] = https://curl.se/bug/?i=7968
+ [92] = https://curl.se/bug/?i=7909
+ [93] = https://curl.se/bug/?i=7910
+ [94] = https://curl.se/bug/?i=7908
+ [95] = https://curl.se/bug/?i=7898
+ [96] = https://curl.se/bug/?i=7905
+ [97] = https://curl.se/bug/?i=7905
+ [98] = https://curl.se/bug/?i=7905
+ [99] = https://curl.se/bug/?i=7905
+ [100] = https://curl.se/bug/?i=7895
+ [101] = https://curl.se/bug/?i=7904
+ [102] = https://curl.se/bug/?i=7842
+ [103] = https://curl.se/bug/?i=7501
+ [104] = https://curl.se/bug/?i=7924
+ [105] = https://curl.se/bug/?i=7902
+ [106] = https://curl.se/bug/?i=7901
+ [107] = https://curl.se/bug/?i=7936
+ [108] = https://curl.se/bug/?i=7929
+ [109] = https://curl.se/bug/?i=7979
+ [110] = https://curl.se/bug/?i=7933
+ [111] = https://curl.se/bug/?i=7925
+ [112] = https://curl.se/bug/?i=7926
+ [113] = https://curl.se/bug/?i=7967
+ [114] = https://curl.se/bug/?i=7923
+ [115] = https://curl.se/bug/?i=6973
+ [117] = https://curl.se/bug/?i=7978
+ [119] = https://curl.se/bug/?i=7970
+ [122] = https://curl.se/bug/?i=7960
+ [124] = https://curl.se/bug/?i=7945
+ [125] = https://curl.se/bug/?i=7955
+ [126] = https://curl.se/bug/?i=7957
diff --git a/acinclude.m4 b/acinclude.m4
index 23c06d678..feb9e818f 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -235,43 +235,6 @@ AC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [
])
-dnl CURL_CHECK_HEADER_WINSOCK
-dnl -------------------------------------------------
-dnl Check for compilable and valid winsock.h header
-
-AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [
- AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl
- AC_CACHE_CHECK([for winsock.h], [curl_cv_header_winsock_h], [
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <winsock.h>
- ]],[[
-#if defined(__CYGWIN__) || defined(__CEGCC__)
- HAVE_WINSOCK_H shall not be defined.
-#else
- int dummy=WSACleanup();
-#endif
- ]])
- ],[
- curl_cv_header_winsock_h="yes"
- ],[
- curl_cv_header_winsock_h="no"
- ])
- ])
- case "$curl_cv_header_winsock_h" in
- yes)
- AC_DEFINE_UNQUOTED(HAVE_WINSOCK_H, 1,
- [Define to 1 if you have the winsock.h header file.])
- ;;
- esac
-])
-
-
dnl CURL_CHECK_HEADER_WINSOCK2
dnl -------------------------------------------------
dnl Check for compilable and valid winsock2.h header
@@ -1043,7 +1006,6 @@ dnl and RECV_TYPE_ARG4, defining the type of the function
dnl return value in RECV_TYPE_RETV.
AC_DEFUN([CURL_CHECK_FUNC_RECV], [
- AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
AC_CHECK_HEADERS(sys/types.h sys/socket.h)
#
@@ -1058,10 +1020,6 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1106,10 +1064,6 @@ struct Library *SocketBase = NULL;
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define RECVCALLCONV PASCAL
#else
@@ -1187,7 +1141,6 @@ dnl return value in SEND_TYPE_RETV, and also defining the
dnl type qualifier of second argument in SEND_QUAL_ARG2.
AC_DEFUN([CURL_CHECK_FUNC_SEND], [
- AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
AC_CHECK_HEADERS(sys/types.h sys/socket.h)
#
@@ -1202,10 +1155,6 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1250,10 +1199,6 @@ struct Library *SocketBase = NULL;
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define SENDCALLCONV PASCAL
#else
@@ -1368,10 +1313,6 @@ AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1408,7 +1349,6 @@ dnl -------------------------------------------------
dnl Check for timeval struct
AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
- AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
AC_CHECK_HEADERS(sys/types.h sys/time.h sys/socket.h)
AC_CACHE_CHECK([for struct timeval], [curl_cv_struct_timeval], [
@@ -1422,10 +1362,6 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
#ifdef HAVE_SYS_TYPES_H
@@ -1458,50 +1394,6 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
])
-dnl TYPE_SIG_ATOMIC_T
-dnl -------------------------------------------------
-dnl Check if the sig_atomic_t type is available, and
-dnl verify if it is already defined as volatile.
-
-AC_DEFUN([TYPE_SIG_ATOMIC_T], [
- AC_CHECK_HEADERS(signal.h)
- AC_CHECK_TYPE([sig_atomic_t],[
- AC_DEFINE(HAVE_SIG_ATOMIC_T, 1,
- [Define to 1 if sig_atomic_t is an available typedef.])
- ], ,[
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
- ])
- case "$ac_cv_type_sig_atomic_t" in
- yes)
- #
- AC_MSG_CHECKING([if sig_atomic_t is already defined as volatile])
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([[
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
- ]],[[
- static volatile sig_atomic_t dummy = 0;
- ]])
- ],[
- AC_MSG_RESULT([no])
- curl_cv_sig_atomic_t_volatile="no"
- ],[
- AC_MSG_RESULT([yes])
- curl_cv_sig_atomic_t_volatile="yes"
- ])
- #
- if test "$curl_cv_sig_atomic_t_volatile" = "yes"; then
- AC_DEFINE(HAVE_SIG_ATOMIC_T_VOLATILE, 1,
- [Define to 1 if sig_atomic_t is already defined as volatile.])
- fi
- ;;
- esac
-])
-
-
dnl TYPE_IN_ADDR_T
dnl -------------------------------------------------
dnl Check for in_addr_t: it is used to receive the return code of inet_addr()
@@ -1525,10 +1417,6 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_SYS_TYPES_H
@@ -1571,10 +1459,6 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_SYS_TYPES_H
@@ -1867,10 +1751,6 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
#ifdef HAVE_SYS_TYPES_H
@@ -1925,10 +1805,6 @@ struct Library *SocketBase = NULL;
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define SELECTCALLCONV PASCAL
#endif
@@ -2151,8 +2027,8 @@ dnl regarding the paths this will scan:
dnl /etc/ssl/certs/ca-certificates.crt Debian systems
dnl /etc/pki/tls/certs/ca-bundle.crt Redhat and Mandriva
dnl /usr/share/ssl/certs/ca-bundle.crt old(er) Redhat
-dnl /usr/local/share/certs/ca-root-nss.crt FreeBSD
-dnl /etc/ssl/cert.pem OpenBSD, FreeBSD (symlink)
+dnl /usr/local/share/certs/ca-root-nss.crt FreeBSD, MidnightBSD
+dnl /etc/ssl/cert.pem OpenBSD, FreeBSD, MidnightBSD (symlink)
dnl /etc/ssl/certs/ (ca path) SUSE
AC_DEFUN([CURL_CHECK_CA_BUNDLE], [
diff --git a/aclocal.m4 b/aclocal.m4
index bd780cc45..09539ed10 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,13 +14,13 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.3], [],
+m4_if([$1], [1.16.5], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.3])dnl
+[AM_AUTOMAKE_VERSION([1.16.5])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -400,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -428,6 +428,10 @@ m4_defn([AC_PROG_CC])
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.65])dnl
+m4_ifdef([_$0_ALREADY_INIT],
+ [m4_fatal([$0 expanded multiple times
+]m4_defn([_$0_ALREADY_INIT]))],
+ [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -464,7 +468,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
[ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
@@ -516,6 +520,20 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
[m4_define([AC_PROG_OBJCXX],
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+AC_SUBST([CTAGS])
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+AC_SUBST([ETAGS])
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+AC_SUBST([CSCOPE])
+
AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
@@ -597,7 +615,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -618,7 +636,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -640,7 +658,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -675,7 +693,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -718,7 +736,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -752,7 +770,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -781,7 +799,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -828,7 +846,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -847,7 +865,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -928,7 +946,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -988,7 +1006,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1016,7 +1034,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2020 Free Software Foundation, Inc.
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1035,7 +1053,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2020 Free Software Foundation, Inc.
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/buildconf.bat b/buildconf.bat
index 13ae07e1a..475736ee5 100644
--- a/buildconf.bat
+++ b/buildconf.bat
@@ -1,317 +1,317 @@
-@echo off
-rem ***************************************************************************
-rem * _ _ ____ _
-rem * Project ___| | | | _ \| |
-rem * / __| | | | |_) | |
-rem * | (__| |_| | _ <| |___
-rem * \___|\___/|_| \_\_____|
-rem *
-rem * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
-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.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
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem ***************************************************************************
-
-rem NOTES
-rem
-rem This batch file must be used to set up a git tree to build on systems where
-rem there is no autotools support (i.e. DOS and Windows).
-rem
-
-:begin
- rem Set our variables
- if "%OS%" == "Windows_NT" setlocal
- set MODE=GENERATE
-
- rem Switch to this batch file's directory
- cd /d "%~0\.." 1>NUL 2>&1
-
- rem Check we are running from a curl git repository
- if not exist GIT-INFO goto norepo
-
- rem Detect programs. HAVE_<PROGNAME>
- rem When not found the variable is set undefined. The undefined pattern
- rem allows for statements like "if not defined HAVE_PERL (command)"
- groff --version <NUL 1>NUL 2>&1
- if errorlevel 1 (set HAVE_GROFF=) else (set HAVE_GROFF=Y)
- nroff --version <NUL 1>NUL 2>&1
- if errorlevel 1 (set HAVE_NROFF=) else (set HAVE_NROFF=Y)
- perl --version <NUL 1>NUL 2>&1
- if errorlevel 1 (set HAVE_PERL=) else (set HAVE_PERL=Y)
- gzip --version <NUL 1>NUL 2>&1
- if errorlevel 1 (set HAVE_GZIP=) else (set HAVE_GZIP=Y)
-
-:parseArgs
- if "%~1" == "" goto start
-
- if /i "%~1" == "-clean" (
- set MODE=CLEAN
- ) else if /i "%~1" == "-?" (
- goto syntax
- ) else if /i "%~1" == "-h" (
- goto syntax
- ) else if /i "%~1" == "-help" (
- goto syntax
- ) else (
- goto unknown
- )
-
- shift & goto parseArgs
-
-:start
- if "%MODE%" == "GENERATE" (
- echo.
- echo Generating prerequisite files
-
- call :generate
- if errorlevel 3 goto nogenhugehelp
- if errorlevel 2 goto nogenmakefile
- if errorlevel 1 goto warning
-
- ) else (
- echo.
- echo Removing prerequisite files
-
- call :clean
- if errorlevel 2 goto nocleanhugehelp
- if errorlevel 1 goto nocleanmakefile
- )
-
- goto success
-
-rem Main generate function.
-rem
-rem Returns:
-rem
-rem 0 - success
-rem 1 - success with simplified tool_hugehelp.c
-rem 2 - failed to generate Makefile
-rem 3 - failed to generate tool_hugehelp.c
-rem
-:generate
- if "%OS%" == "Windows_NT" setlocal
- set BASIC_HUGEHELP=0
-
- rem Create Makefile
- echo * %CD%\Makefile
- if exist Makefile.dist (
- copy /Y Makefile.dist Makefile 1>NUL 2>&1
- if errorlevel 1 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 2
- )
- )
-
- rem Create tool_hugehelp.c
- echo * %CD%\src\tool_hugehelp.c
- call :genHugeHelp
- if errorlevel 2 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 3
- )
- if errorlevel 1 (
- set BASIC_HUGEHELP=1
- )
- cmd /c exit 0
-
- rem Setup c-ares git tree
- if exist ares\buildconf.bat (
- echo.
- echo Configuring c-ares build environment
- cd ares
- call buildconf.bat
- cd ..
- )
-
- if "%BASIC_HUGEHELP%" == "1" (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
- )
-
- if "%OS%" == "Windows_NT" endlocal
- exit /B 0
-
-rem Main clean function.
-rem
-rem Returns:
-rem
-rem 0 - success
-rem 1 - failed to clean Makefile
-rem 2 - failed to clean tool_hugehelp.c
-rem
-:clean
- rem Remove Makefile
- echo * %CD%\Makefile
- if exist Makefile (
- del Makefile 2>NUL
- if exist Makefile (
- exit /B 1
- )
- )
-
- rem Remove tool_hugehelp.c
- echo * %CD%\src\tool_hugehelp.c
- if exist src\tool_hugehelp.c (
- del src\tool_hugehelp.c 2>NUL
- if exist src\tool_hugehelp.c (
- exit /B 2
- )
- )
-
- exit /B
-
-rem Function to generate src\tool_hugehelp.c
-rem
-rem Returns:
-rem
-rem 0 - full tool_hugehelp.c generated
-rem 1 - simplified tool_hugehelp.c
-rem 2 - failure
-rem
-:genHugeHelp
- if "%OS%" == "Windows_NT" setlocal
- set LC_ALL=C
- set ROFFCMD=
- set BASIC=1
-
- if defined HAVE_PERL (
- if defined HAVE_GROFF (
- set ROFFCMD=groff -mtty-char -Tascii -P-c -man
- ) else if defined HAVE_NROFF (
- set ROFFCMD=nroff -c -Tascii -man
- )
- )
-
- if defined ROFFCMD (
- echo #include "tool_setup.h"> src\tool_hugehelp.c
- echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
-
- if defined HAVE_GZIP (
- echo #ifndef HAVE_LIBZ>> src\tool_hugehelp.c
- )
-
- %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl docs\MANUAL >> src\tool_hugehelp.c
- if defined HAVE_GZIP (
- echo #else>> src\tool_hugehelp.c
- %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl -c docs\MANUAL >> src\tool_hugehelp.c
- echo #endif /^* HAVE_LIBZ ^*/>> src\tool_hugehelp.c
- )
-
- set BASIC=0
- ) else (
- if exist src\tool_hugehelp.c.cvs (
- copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1
- ) else (
- echo #include "tool_setup.h"> src\tool_hugehelp.c
- echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
- echo.>> src\tool_hugehelp.c
- echo void hugehelp(void^)>> src\tool_hugehelp.c
- echo {>> src\tool_hugehelp.c
- echo #ifdef USE_MANUAL>> src\tool_hugehelp.c
- echo fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c
- echo #endif>> src\tool_hugehelp.c
- echo }>> src\tool_hugehelp.c
- )
- )
-
- findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1
- if errorlevel 1 (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 2
- )
-
- if "%BASIC%" == "1" (
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
- )
-
- if "%OS%" == "Windows_NT" endlocal
- exit /B 0
-
-rem Function to clean-up local variables under DOS, Windows 3.x and
-rem Windows 9x as setlocal isn't available until Windows NT
-rem
-:dosCleanup
- set MODE=
- set HAVE_GROFF=
- set HAVE_NROFF=
- set HAVE_PERL=
- set HAVE_GZIP=
- set BASIC_HUGEHELP=
- set LC_ALL
- set ROFFCMD=
- set BASIC=
-
- exit /B
-
-:syntax
- rem Display the help
- echo.
- echo Usage: buildconf [-clean]
- echo.
- echo -clean - Removes the files
- goto error
-
-:unknown
- echo.
- echo Error: Unknown argument '%1'
- goto error
-
-:norepo
- echo.
- echo Error: This batch file should only be used with a curl git repository
- goto error
-
-:nogenmakefile
- echo.
- echo Error: Unable to generate Makefile
- goto error
-
-:nogenhugehelp
- echo.
- echo Error: Unable to generate src\tool_hugehelp.c
- goto error
-
-:nocleanmakefile
- echo.
- echo Error: Unable to clean Makefile
- goto error
-
-:nocleanhugehelp
- echo.
- echo Error: Unable to clean src\tool_hugehelp.c
- goto error
-
-:warning
- echo.
- echo Warning: The curl manual could not be integrated in the source. This means when
- echo you build curl the manual will not be available (curl --man^). Integration of
- echo the manual is not required and a summary of the options will still be available
- echo (curl --help^). To integrate the manual your PATH is required to have
- echo groff/nroff, perl and optionally gzip for compression.
- goto success
-
-:error
- if "%OS%" == "Windows_NT" (
- endlocal
- ) else (
- call :dosCleanup
- )
- exit /B 1
-
-:success
- if "%OS%" == "Windows_NT" (
- endlocal
- ) else (
- call :dosCleanup
- )
- exit /B 0
+@echo off
+rem ***************************************************************************
+rem * _ _ ____ _
+rem * Project ___| | | | _ \| |
+rem * / __| | | | |_) | |
+rem * | (__| |_| | _ <| |___
+rem * \___|\___/|_| \_\_____|
+rem *
+rem * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+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.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
+rem * furnished to do so, under the terms of the COPYING file.
+rem *
+rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+rem * KIND, either express or implied.
+rem *
+rem ***************************************************************************
+
+rem NOTES
+rem
+rem This batch file must be used to set up a git tree to build on systems where
+rem there is no autotools support (i.e. DOS and Windows).
+rem
+
+:begin
+ rem Set our variables
+ if "%OS%" == "Windows_NT" setlocal
+ set MODE=GENERATE
+
+ rem Switch to this batch file's directory
+ cd /d "%~0\.." 1>NUL 2>&1
+
+ rem Check we are running from a curl git repository
+ if not exist GIT-INFO goto norepo
+
+ rem Detect programs. HAVE_<PROGNAME>
+ rem When not found the variable is set undefined. The undefined pattern
+ rem allows for statements like "if not defined HAVE_PERL (command)"
+ groff --version <NUL 1>NUL 2>&1
+ if errorlevel 1 (set HAVE_GROFF=) else (set HAVE_GROFF=Y)
+ nroff --version <NUL 1>NUL 2>&1
+ if errorlevel 1 (set HAVE_NROFF=) else (set HAVE_NROFF=Y)
+ perl --version <NUL 1>NUL 2>&1
+ if errorlevel 1 (set HAVE_PERL=) else (set HAVE_PERL=Y)
+ gzip --version <NUL 1>NUL 2>&1
+ if errorlevel 1 (set HAVE_GZIP=) else (set HAVE_GZIP=Y)
+
+:parseArgs
+ if "%~1" == "" goto start
+
+ if /i "%~1" == "-clean" (
+ set MODE=CLEAN
+ ) else if /i "%~1" == "-?" (
+ goto syntax
+ ) else if /i "%~1" == "-h" (
+ goto syntax
+ ) else if /i "%~1" == "-help" (
+ goto syntax
+ ) else (
+ goto unknown
+ )
+
+ shift & goto parseArgs
+
+:start
+ if "%MODE%" == "GENERATE" (
+ echo.
+ echo Generating prerequisite files
+
+ call :generate
+ if errorlevel 3 goto nogenhugehelp
+ if errorlevel 2 goto nogenmakefile
+ if errorlevel 1 goto warning
+
+ ) else (
+ echo.
+ echo Removing prerequisite files
+
+ call :clean
+ if errorlevel 2 goto nocleanhugehelp
+ if errorlevel 1 goto nocleanmakefile
+ )
+
+ goto success
+
+rem Main generate function.
+rem
+rem Returns:
+rem
+rem 0 - success
+rem 1 - success with simplified tool_hugehelp.c
+rem 2 - failed to generate Makefile
+rem 3 - failed to generate tool_hugehelp.c
+rem
+:generate
+ if "%OS%" == "Windows_NT" setlocal
+ set BASIC_HUGEHELP=0
+
+ rem Create Makefile
+ echo * %CD%\Makefile
+ if exist Makefile.dist (
+ copy /Y Makefile.dist Makefile 1>NUL 2>&1
+ if errorlevel 1 (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 2
+ )
+ )
+
+ rem Create tool_hugehelp.c
+ echo * %CD%\src\tool_hugehelp.c
+ call :genHugeHelp
+ if errorlevel 2 (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 3
+ )
+ if errorlevel 1 (
+ set BASIC_HUGEHELP=1
+ )
+ cmd /c exit 0
+
+ rem Setup c-ares git tree
+ if exist ares\buildconf.bat (
+ echo.
+ echo Configuring c-ares build environment
+ cd ares
+ call buildconf.bat
+ cd ..
+ )
+
+ if "%BASIC_HUGEHELP%" == "1" (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+ )
+
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 0
+
+rem Main clean function.
+rem
+rem Returns:
+rem
+rem 0 - success
+rem 1 - failed to clean Makefile
+rem 2 - failed to clean tool_hugehelp.c
+rem
+:clean
+ rem Remove Makefile
+ echo * %CD%\Makefile
+ if exist Makefile (
+ del Makefile 2>NUL
+ if exist Makefile (
+ exit /B 1
+ )
+ )
+
+ rem Remove tool_hugehelp.c
+ echo * %CD%\src\tool_hugehelp.c
+ if exist src\tool_hugehelp.c (
+ del src\tool_hugehelp.c 2>NUL
+ if exist src\tool_hugehelp.c (
+ exit /B 2
+ )
+ )
+
+ exit /B
+
+rem Function to generate src\tool_hugehelp.c
+rem
+rem Returns:
+rem
+rem 0 - full tool_hugehelp.c generated
+rem 1 - simplified tool_hugehelp.c
+rem 2 - failure
+rem
+:genHugeHelp
+ if "%OS%" == "Windows_NT" setlocal
+ set LC_ALL=C
+ set ROFFCMD=
+ set BASIC=1
+
+ if defined HAVE_PERL (
+ if defined HAVE_GROFF (
+ set ROFFCMD=groff -mtty-char -Tascii -P-c -man
+ ) else if defined HAVE_NROFF (
+ set ROFFCMD=nroff -c -Tascii -man
+ )
+ )
+
+ if defined ROFFCMD (
+ echo #include "tool_setup.h"> src\tool_hugehelp.c
+ echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
+
+ if defined HAVE_GZIP (
+ echo #ifndef HAVE_LIBZ>> src\tool_hugehelp.c
+ )
+
+ %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl docs\MANUAL >> src\tool_hugehelp.c
+ if defined HAVE_GZIP (
+ echo #else>> src\tool_hugehelp.c
+ %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl -c docs\MANUAL >> src\tool_hugehelp.c
+ echo #endif /^* HAVE_LIBZ ^*/>> src\tool_hugehelp.c
+ )
+
+ set BASIC=0
+ ) else (
+ if exist src\tool_hugehelp.c.cvs (
+ copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1
+ ) else (
+ echo #include "tool_setup.h"> src\tool_hugehelp.c
+ echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
+ echo.>> src\tool_hugehelp.c
+ echo void hugehelp(void^)>> src\tool_hugehelp.c
+ echo {>> src\tool_hugehelp.c
+ echo #ifdef USE_MANUAL>> src\tool_hugehelp.c
+ echo fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c
+ echo #endif>> src\tool_hugehelp.c
+ echo }>> src\tool_hugehelp.c
+ )
+ )
+
+ findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1
+ if errorlevel 1 (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 2
+ )
+
+ if "%BASIC%" == "1" (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+ )
+
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 0
+
+rem Function to clean-up local variables under DOS, Windows 3.x and
+rem Windows 9x as setlocal isn't available until Windows NT
+rem
+:dosCleanup
+ set MODE=
+ set HAVE_GROFF=
+ set HAVE_NROFF=
+ set HAVE_PERL=
+ set HAVE_GZIP=
+ set BASIC_HUGEHELP=
+ set LC_ALL
+ set ROFFCMD=
+ set BASIC=
+
+ exit /B
+
+:syntax
+ rem Display the help
+ echo.
+ echo Usage: buildconf [-clean]
+ echo.
+ echo -clean - Removes the files
+ goto error
+
+:unknown
+ echo.
+ echo Error: Unknown argument '%1'
+ goto error
+
+:norepo
+ echo.
+ echo Error: This batch file should only be used with a curl git repository
+ goto error
+
+:nogenmakefile
+ echo.
+ echo Error: Unable to generate Makefile
+ goto error
+
+:nogenhugehelp
+ echo.
+ echo Error: Unable to generate src\tool_hugehelp.c
+ goto error
+
+:nocleanmakefile
+ echo.
+ echo Error: Unable to clean Makefile
+ goto error
+
+:nocleanhugehelp
+ echo.
+ echo Error: Unable to clean src\tool_hugehelp.c
+ goto error
+
+:warning
+ echo.
+ echo Warning: The curl manual could not be integrated in the source. This means when
+ echo you build curl the manual will not be available (curl --man^). Integration of
+ echo the manual is not required and a summary of the options will still be available
+ echo (curl --help^). To integrate the manual your PATH is required to have
+ echo groff/nroff, perl and optionally gzip for compression.
+ goto success
+
+:error
+ if "%OS%" == "Windows_NT" (
+ endlocal
+ ) else (
+ call :dosCleanup
+ )
+ exit /B 1
+
+:success
+ if "%OS%" == "Windows_NT" (
+ endlocal
+ ) else (
+ call :dosCleanup
+ )
+ exit /B 0
diff --git a/compile b/compile
index 23fcba011..df363c8fb 100755
--- a/compile
+++ b/compile
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
diff --git a/configure b/configure
index bd32f7790..2d73516be 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,12 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for curl -.
+# Generated by GNU Autoconf 2.71 for curl -.
#
# Report bugs to <a suitable curl mailing list: https://curl.se/mail/>.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -263,14 +264,16 @@ xc_configure_preamble_result='yes'
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -280,53 +283,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
+
+
+
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -335,8 +331,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -348,30 +348,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
@@ -393,20 +373,22 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
-else
+else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
@@ -426,12 +408,15 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
-else
+else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
@@ -446,30 +431,38 @@ test \$(( 1 + 1 )) = 2 || exit 1
PATH=/empty FPATH=/empty; export PATH FPATH
test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
|| test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
+ if (eval "$as_required") 2>/dev/null
+then :
as_have_required=yes
-else
+else $as_nop
as_have_required=no
fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
-else
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
+ as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
break 2
fi
fi
@@ -477,14 +470,21 @@ fi
esac
as_found=false
done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
- if test "x$CONFIG_SHELL" != x; then :
+ if test "x$CONFIG_SHELL" != x
+then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
@@ -502,18 +502,19 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and a suitable curl
+ printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and a suitable curl
$0: mailing list: https://curl.se/mail/ about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
@@ -541,6 +542,7 @@ as_fn_unset ()
}
as_unset=as_fn_unset
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -558,6 +560,14 @@ as_fn_exit ()
as_fn_set_status $1
exit $1
} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
@@ -572,7 +582,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -581,7 +591,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -620,12 +630,13 @@ as_fn_executable_p ()
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -637,18 +648,27 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
@@ -660,9 +680,9 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -689,7 +709,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -733,7 +753,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
@@ -747,6 +767,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
exit
}
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -760,6 +784,13 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -837,40 +868,36 @@ PACKAGE_URL=''
ac_unique_file="lib/urldata.h"
# Factoring default headers for most tests.
ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
#endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
#endif
#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
# include <string.h>
#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
+ac_header_c_list=
enable_option_checking=no
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
@@ -1027,6 +1054,9 @@ PKGADD_NAME
PKGADD_PKG
VERSIONNUM
CURLVERSION
+CSCOPE
+ETAGS
+CTAGS
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
@@ -1133,7 +1163,6 @@ enable_warnings
enable_werror
enable_curldebug
enable_symbol_hiding
-enable_hidden_symbols
enable_ares
enable_rt
enable_ech
@@ -1313,8 +1342,6 @@ do
*) ac_optarg=yes ;;
esac
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
@@ -1355,9 +1382,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1381,9 +1408,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1594,9 +1621,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1610,9 +1637,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1656,9 +1683,9 @@ Try \`$0 --help' for more information"
*)
# FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
@@ -1674,7 +1701,7 @@ if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1738,7 +1765,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -1891,9 +1918,6 @@ Optional Features:
--disable-curldebug Disable curl debug memory tracking
--enable-symbol-hiding Enable hiding of library internal symbols
--disable-symbol-hiding Disable hiding of library internal symbols
- --enable-hidden-symbols To be deprecated, use --enable-symbol-hiding
- --disable-hidden-symbols
- To be deprecated, use --disable-symbol-hiding
--enable-ares[=PATH] Enable c-ares for DNS lookups
--disable-ares Disable c-ares for DNS lookups
--disable-rt disable dependency on -lrt
@@ -2154,9 +2178,9 @@ if test "$ac_init_help" = "recursive"; then
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -2184,7 +2208,8 @@ esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -2192,7 +2217,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
@@ -2202,9 +2227,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
curl configure -
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
@@ -2225,14 +2250,14 @@ fi
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
+ rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2240,14 +2265,15 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
+ } && test -s conftest.$ac_objext
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -2269,7 +2295,7 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2277,14 +2303,15 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -2300,14 +2327,14 @@ fi
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2315,17 +2342,18 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -2347,83 +2375,44 @@ fi
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -2449,111 +2438,64 @@ return $2 ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
+ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ------------------------------------------------------------------ ##
-## Report this to a suitable curl mailing list: https://curl.se/mail/ ##
-## ------------------------------------------------------------------ ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
-} # ac_fn_c_check_header_mongrel
+} # ac_fn_c_try_run
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
@@ -2562,11 +2504,12 @@ fi
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -2579,7 +2522,8 @@ if (sizeof ($2))
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
@@ -2591,36 +2535,40 @@ if (sizeof (($2)))
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
eval "$3=yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ eval ac_save_FLAGS=\$$6
+ as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
@@ -2638,19 +2586,22 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ eval $6=\$ac_save_FLAGS
+
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-} # ac_fn_c_check_decl
+} # ac_fn_check_decl
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
@@ -2659,11 +2610,12 @@ $as_echo "$ac_res" >&6; }
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+printf %s "checking for $2.$3... " >&6; }
+if eval test \${$4+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
@@ -2676,9 +2628,10 @@ return 0;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$4=yes"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
@@ -2691,29 +2644,50 @@ return 0;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$4=yes"
-else
+else $as_nop
eval "$4=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$4
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by curl $as_me -, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
- $ $0 $@
+ $ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
@@ -2746,8 +2720,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
@@ -2782,7 +2760,7 @@ do
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2817,11 +2795,13 @@ done
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
- $as_echo "## ---------------- ##
+ printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
@@ -2832,8 +2812,8 @@ trap 'exit_status=$?
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -2857,7 +2837,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- $as_echo "## ----------------- ##
+ printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
@@ -2865,14 +2845,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
+ printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
@@ -2880,15 +2860,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
- $as_echo "## ----------- ##
+ printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
@@ -2896,8 +2876,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
echo
fi
test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
+ printf "%s\n" "$as_me: caught signal $ac_signal"
+ printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2911,63 +2891,48 @@ ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
+ ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
+ ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
+ ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ case $ac_site_file in #(
+ */*) :
+ ;; #(
+ *) :
+ ac_site_file=./$ac_site_file ;;
+esac
+ if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
@@ -2977,19 +2942,434 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+ Do not test the value of __STDC__, because some compilers set it to 0
+ while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not \xHH hex character constants.
+ These do not provoke an error unfortunately, instead are silently treated
+ as an "x". The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously \x00 != x always comes out true, for an
+ array size at least. It is necessary to write \x00 == 0 to get something
+ that is true only with -std. */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+ int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+ #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case '\''s'\'': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case '\''d'\'': // int
+ number = va_arg (args_copy, int);
+ break;
+ case '\''f'\'': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+ // Check bool.
+ _Bool success = false;
+ success |= (argc != 0);
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[0] = argv[0][0];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+ || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+ v1.i = 2;
+ v1.w.k = 5;
+ ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ ${ac_c_conftest_c11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="ltmain.sh config.guess config.sub missing compile install-sh"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ do
+ # As a special case, if "install-sh" is required, that requirement
+ # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+ # and $ac_install_sh is set appropriately for whichever one is found.
+ if test x"$ac_aux" = x"install-sh"
+ then
+ if test -f "${as_dir}install-sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ ac_install_sh="${as_dir}install-sh -c"
+ elif test -f "${as_dir}install.sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ ac_install_sh="${as_dir}install.sh -c"
+ elif test -f "${as_dir}shtool"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ ac_install_sh="${as_dir}shtool install -c"
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+ else
+ break
+ fi
+ fi
+ else
+ if test -f "${as_dir}${ac_aux}"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+ else
+ break
+ fi
+ fi
+ fi
+ done
+ if test "$ac_aux_dir_found" = yes; then
+ ac_aux_dir="$as_dir"
+ break
+ fi
+ ac_first_candidate=false
+
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+ ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+ ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+ ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -3000,12 +3380,12 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
@@ -3014,24 +3394,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
@@ -3041,11 +3421,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+ and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -3073,17 +3454,18 @@ ac_config_headers="$ac_config_headers lib/curl_config.h"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
# Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
+if test ${enable_maintainer_mode+y}
+then :
enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
+else $as_nop
USE_MAINTAINER_MODE=no
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+printf "%s\n" "$USE_MAINTAINER_MODE" >&6; }
if test $USE_MAINTAINER_MODE = yes; then
MAINTAINER_MODE_TRUE=
MAINTAINER_MODE_FALSE='#'
@@ -3096,7 +3478,8 @@ fi
# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
+if test ${enable_silent_rules+y}
+then :
enableval=$enable_silent_rules;
fi
@@ -3106,12 +3489,13 @@ case $enable_silent_rules in # (((
*) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+printf %s "checking whether $am_make supports nested variables... " >&6; }
+if test ${am_cv_make_support_nested_variables+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
@@ -3123,8 +3507,8 @@ else
am_cv_make_support_nested_variables=no
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
@@ -3136,11 +3520,12 @@ AM_BACKSLASH='\'
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debug build options" >&5
-$as_echo_n "checking whether to enable debug build options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable debug build options" >&5
+printf %s "checking whether to enable debug build options... " >&6; }
OPT_DEBUG_BUILD="default"
# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
+if test ${enable_debug+y}
+then :
enableval=$enable_debug; OPT_DEBUG_BUILD=$enableval
fi
@@ -3154,52 +3539,54 @@ fi
*)
want_debug="yes"
-$as_echo "#define DEBUGBUILD 1" >>confdefs.h
+printf "%s\n" "#define DEBUGBUILD 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_debug" >&5
-$as_echo "$want_debug" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_debug" >&5
+printf "%s\n" "$want_debug" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler optimizer" >&5
-$as_echo_n "checking whether to enable compiler optimizer... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler optimizer" >&5
+printf %s "checking whether to enable compiler optimizer... " >&6; }
OPT_COMPILER_OPTIMIZE="default"
# Check whether --enable-optimize was given.
-if test "${enable_optimize+set}" = set; then :
+if test ${enable_optimize+y}
+then :
enableval=$enable_optimize; OPT_COMPILER_OPTIMIZE=$enableval
fi
case "$OPT_COMPILER_OPTIMIZE" in
no)
want_optimize="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
default)
if test "$want_debug" = "yes"; then
want_optimize="assume_no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) no" >&5
-$as_echo "(assumed) no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (assumed) no" >&5
+printf "%s\n" "(assumed) no" >&6; }
else
want_optimize="assume_yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
-$as_echo "(assumed) yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
+printf "%s\n" "(assumed) yes" >&6; }
fi
;;
*)
want_optimize="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable strict compiler warnings" >&5
-$as_echo_n "checking whether to enable strict compiler warnings... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable strict compiler warnings" >&5
+printf %s "checking whether to enable strict compiler warnings... " >&6; }
OPT_COMPILER_WARNINGS="default"
# Check whether --enable-warnings was given.
-if test "${enable_warnings+set}" = set; then :
+if test ${enable_warnings+y}
+then :
enableval=$enable_warnings; OPT_COMPILER_WARNINGS=$enableval
fi
@@ -3214,15 +3601,16 @@ fi
want_warnings="yes"
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_warnings" >&5
-$as_echo "$want_warnings" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_warnings" >&5
+printf "%s\n" "$want_warnings" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings as errors" >&5
-$as_echo_n "checking whether to enable compiler warnings as errors... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings as errors" >&5
+printf %s "checking whether to enable compiler warnings as errors... " >&6; }
OPT_COMPILER_WERROR="default"
# Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
+if test ${enable_werror+y}
+then :
enableval=$enable_werror; OPT_COMPILER_WERROR=$enableval
fi
@@ -3237,34 +3625,35 @@ fi
want_werror="yes"
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_werror" >&5
-$as_echo "$want_werror" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_werror" >&5
+printf "%s\n" "$want_werror" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable curl debug memory tracking" >&5
-$as_echo_n "checking whether to enable curl debug memory tracking... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable curl debug memory tracking" >&5
+printf %s "checking whether to enable curl debug memory tracking... " >&6; }
OPT_CURLDEBUG_BUILD="default"
# Check whether --enable-curldebug was given.
-if test "${enable_curldebug+set}" = set; then :
+if test ${enable_curldebug+y}
+then :
enableval=$enable_curldebug; OPT_CURLDEBUG_BUILD=$enableval
fi
case "$OPT_CURLDEBUG_BUILD" in
no)
want_curldebug="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
default)
if test "$want_debug" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
-$as_echo "(assumed) yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
+printf "%s\n" "(assumed) yes" >&6; }
-$as_echo "#define CURLDEBUG 1" >>confdefs.h
+printf "%s\n" "#define CURLDEBUG 1" >>confdefs.h
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
want_curldebug_assumed="yes"
want_curldebug="$want_debug"
@@ -3272,51 +3661,48 @@ $as_echo "no" >&6; }
*)
want_curldebug="yes"
-$as_echo "#define CURLDEBUG 1" >>confdefs.h
+printf "%s\n" "#define CURLDEBUG 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable hiding of library internal symbols" >&5
-$as_echo_n "checking whether to enable hiding of library internal symbols... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable hiding of library internal symbols" >&5
+printf %s "checking whether to enable hiding of library internal symbols... " >&6; }
OPT_SYMBOL_HIDING="default"
# Check whether --enable-symbol-hiding was given.
-if test "${enable_symbol_hiding+set}" = set; then :
+if test ${enable_symbol_hiding+y}
+then :
enableval=$enable_symbol_hiding; OPT_SYMBOL_HIDING=$enableval
fi
- # Check whether --enable-hidden-symbols was given.
-if test "${enable_hidden_symbols+set}" = set; then :
- enableval=$enable_hidden_symbols; OPT_SYMBOL_HIDING=$enableval
-fi
-
case "$OPT_SYMBOL_HIDING" in
no)
want_symbol_hiding="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
default)
want_symbol_hiding="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
*)
want_symbol_hiding="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable c-ares for DNS lookups" >&5
-$as_echo_n "checking whether to enable c-ares for DNS lookups... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable c-ares for DNS lookups" >&5
+printf %s "checking whether to enable c-ares for DNS lookups... " >&6; }
OPT_ARES="default"
# Check whether --enable-ares was given.
-if test "${enable_ares+set}" = set; then :
+if test ${enable_ares+y}
+then :
enableval=$enable_ares; OPT_ARES=$enableval
fi
@@ -3334,42 +3720,44 @@ fi
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ares" >&5
-$as_echo "$want_ares" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_ares" >&5
+printf "%s\n" "$want_ares" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to disable dependency on -lrt" >&5
-$as_echo_n "checking whether to disable dependency on -lrt... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to disable dependency on -lrt" >&5
+printf %s "checking whether to disable dependency on -lrt... " >&6; }
OPT_RT="default"
# Check whether --enable-rt was given.
-if test "${enable_rt+set}" = set; then :
+if test ${enable_rt+y}
+then :
enableval=$enable_rt; OPT_RT=$enableval
fi
case "$OPT_RT" in
no)
dontwant_rt="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
default)
dontwant_rt="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed no)" >&5
-$as_echo "(assumed no)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (assumed no)" >&5
+printf "%s\n" "(assumed no)" >&6; }
;;
*)
dontwant_rt="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ECH support" >&5
-$as_echo_n "checking whether to enable ECH support... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable ECH support" >&5
+printf %s "checking whether to enable ECH support... " >&6; }
OPT_ECH="default"
# Check whether --enable-ech was given.
-if test "${enable_ech+set}" = set; then :
+if test ${enable_ech+y}
+then :
enableval=$enable_ech; OPT_ECH=$enableval
fi
@@ -3377,21 +3765,21 @@ fi
no)
want_ech="no"
curl_ech_msg="no (--enable-ech)"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
default)
want_ech="no"
curl_ech_msg="no (--enable-ech)"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
*)
want_ech="yes"
curl_ech_msg="enabled (--disable-ech)"
experimental="ech"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
@@ -3414,15 +3802,15 @@ fi
if test -z "$PATH_SEPARATOR"; then
as_fn_error $? "PATH_SEPARATOR not set (internal or config.site problem)" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path separator" >&5
-$as_echo_n "checking for path separator... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATH_SEPARATOR" >&5
-$as_echo "$PATH_SEPARATOR" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for path separator" >&5
+printf %s "checking for path separator... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_SEPARATOR" >&5
+printf "%s\n" "$PATH_SEPARATOR" >&6; }
if test "x$PATH_SEPARATOR" != "x$xc_PATH_SEPARATOR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initial path separator" >&5
-$as_echo_n "checking for initial path separator... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_PATH_SEPARATOR" >&5
-$as_echo "$xc_PATH_SEPARATOR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for initial path separator" >&5
+printf %s "checking for initial path separator... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_PATH_SEPARATOR" >&5
+printf "%s\n" "$xc_PATH_SEPARATOR" >&6; }
as_fn_error $? "path separator mismatch (internal or config.site problem)" "$LINENO" 5
fi
@@ -3436,11 +3824,12 @@ CONFIGURE_OPTIONS="\"$ac_configure_args\""
if test -z "$SED"; then
# Extract the first word of "sed", so it can be a program name with args.
set dummy sed; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $SED in
[\\/]* | ?:[\\/]*)
ac_cv_path_SED="$SED" # Let the user override the test with a path.
@@ -3451,11 +3840,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_SED="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3468,11 +3861,11 @@ esac
fi
SED=$ac_cv_path_SED
if test -n "$SED"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
-$as_echo "$SED" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
+printf "%s\n" "$SED" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -3485,11 +3878,12 @@ fi
if test -z "$GREP"; then
# Extract the first word of "grep", so it can be a program name with args.
set dummy grep; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $GREP in
[\\/]* | ?:[\\/]*)
ac_cv_path_GREP="$GREP" # Let the user override the test with a path.
@@ -3500,11 +3894,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_GREP="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3517,11 +3915,11 @@ esac
fi
GREP=$ac_cv_path_GREP
if test -n "$GREP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5
-$as_echo "$GREP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5
+printf "%s\n" "$GREP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -3533,19 +3931,20 @@ fi
if test -z "$EGREP"; then
if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
EGREP="$GREP -E"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5
-$as_echo "$EGREP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5
+printf "%s\n" "$EGREP" >&6; }
else
# Extract the first word of "egrep", so it can be a program name with args.
set dummy egrep; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $EGREP in
[\\/]* | ?:[\\/]*)
ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path.
@@ -3556,11 +3955,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_EGREP="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_EGREP="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3573,11 +3976,11 @@ esac
fi
EGREP=$ac_cv_path_EGREP
if test -n "$EGREP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5
-$as_echo "$EGREP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5
+printf "%s\n" "$EGREP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -3592,11 +3995,12 @@ if test -z "$AR"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_AR="$AR" # Let the user override the test with a path.
@@ -3607,11 +4011,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_AR="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3623,11 +4031,11 @@ esac
fi
AR=$ac_cv_path_AR
if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -3636,11 +4044,12 @@ if test -z "$ac_cv_path_AR"; then
ac_pt_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path.
@@ -3651,11 +4060,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_AR="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -3667,11 +4080,11 @@ esac
fi
ac_pt_AR=$ac_cv_path_ac_pt_AR
if test -n "$ac_pt_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
-$as_echo "$ac_pt_AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
+printf "%s\n" "$ac_pt_AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_AR" = x; then
@@ -3679,8 +4092,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_pt_AR
@@ -3719,10 +4132,10 @@ CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/inc
esac
done
if test $xc_bad_var_libs = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5
-$as_echo "$as_me: using LIBS: $LIBS" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: LIBS note: LIBS should only be used to specify libraries (-lname)." >&5
-$as_echo "$as_me: LIBS note: LIBS should only be used to specify libraries (-lname)." >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5
+printf "%s\n" "$as_me: using LIBS: $LIBS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: LIBS note: LIBS should only be used to specify libraries (-lname)." >&5
+printf "%s\n" "$as_me: LIBS note: LIBS should only be used to specify libraries (-lname)." >&6;}
fi
@@ -3744,26 +4157,26 @@ $as_echo "$as_me: LIBS note: LIBS should only be used to specify libraries (-lna
esac
done
if test $xc_bad_var_ldflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5
-$as_echo "$as_me: using LDFLAGS: $LDFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5
+printf "%s\n" "$as_me: using LDFLAGS: $LDFLAGS" >&6;}
xc_bad_var_msg="LDFLAGS note: LDFLAGS should only be used to specify linker flags, not"
for xc_word in $LDFLAGS; do
case "$xc_word" in
-D*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-U*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-I*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -3785,22 +4198,22 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
esac
done
if test $xc_bad_var_cppflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5
-$as_echo "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5
+printf "%s\n" "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;}
xc_bad_var_msg="CPPFLAGS note: CPPFLAGS should only be used to specify C preprocessor flags, not"
for xc_word in $CPPFLAGS; do
case "$xc_word" in
-rpath*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-L* | --library-path=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -3831,34 +4244,34 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
esac
done
if test $xc_bad_var_cflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5
-$as_echo "$as_me: using CFLAGS: $CFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5
+printf "%s\n" "$as_me: using CFLAGS: $CFLAGS" >&6;}
xc_bad_var_msg="CFLAGS note: CFLAGS should only be used to specify C compiler flags, not"
for xc_word in $CFLAGS; do
case "$xc_word" in
-D*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-U*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-I*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
;;
-rpath*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-L* | --library-path=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -3868,40 +4281,13 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
test $xc_bad_var_cflags = yes ||
test $xc_bad_var_ldflags = yes ||
test $xc_bad_var_cppflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5
-$as_echo "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5
+printf "%s\n" "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;}
fi
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-# Find a good install program. We prefer a C program (faster),
+ # Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
@@ -3915,20 +4301,25 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+ ./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
@@ -3938,13 +4329,13 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
@@ -3952,12 +4343,12 @@ case $as_dir/ in #((
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
@@ -3973,7 +4364,7 @@ IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
- if test "${ac_cv_path_install+set}" = set; then
+ if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
@@ -3983,8 +4374,8 @@ fi
INSTALL=$ac_install_sh
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
@@ -3994,6 +4385,16 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+
+
+
+
+
+
+
+
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
@@ -4005,11 +4406,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -4017,11 +4419,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4032,11 +4438,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4045,11 +4451,12 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -4057,11 +4464,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4072,11 +4483,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -4084,8 +4495,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -4098,11 +4509,12 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -4110,11 +4522,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4125,11 +4541,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4138,11 +4554,12 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -4151,15 +4568,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4175,18 +4596,18 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4197,11 +4618,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -4209,11 +4631,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4224,11 +4650,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4241,11 +4667,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -4253,11 +4680,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4268,11 +4699,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4284,8 +4715,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -4293,25 +4724,129 @@ esac
fi
fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -4321,7 +4856,7 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -4340,9 +4875,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -4363,11 +4898,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
@@ -4384,7 +4920,7 @@ do
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -4400,44 +4936,46 @@ do
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
-else
+else $as_nop
ac_file=''
fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -4451,15 +4989,15 @@ for ac_file in conftest.exe conftest conftest.*; do
* ) break;;
esac
done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
@@ -4479,8 +5017,8 @@ _ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
@@ -4488,10 +5026,10 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
@@ -4499,34 +5037,35 @@ $as_echo "$ac_try_echo"; } >&5
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4544,11 +5083,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
@@ -4557,26 +5097,27 @@ $as_echo "$ac_try_echo"; } >&5
break;;
esac
done
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4590,29 +5131,33 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -4627,9 +5172,10 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4641,9 +5187,10 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4656,19 +5203,20 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -4683,93 +5231,144 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int main (void)
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
fi
ac_ext=c
@@ -4778,16 +5377,18 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_ext=c
+
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+printf %s "checking whether $CC understands -c and -o together... " >&6; }
+if test ${am_cv_prog_cc_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4819,8 +5420,8 @@ _ACEOF
rm -f core conftest*
unset am_i
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
@@ -4842,40 +5443,36 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ if test ${ac_cv_prog_CPP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ # Double quotes because $CC needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+#include <limits.h>
Syntax error
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
-else
+else $as_nop
# Broken: fails on valid input.
continue
fi
@@ -4887,10 +5484,11 @@ rm -f conftest.err conftest.i conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
# Broken: success on invalid input.
continue
-else
+else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
@@ -4900,7 +5498,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
+if $ac_preproc_ok
+then :
break
fi
@@ -4912,29 +5511,24 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+#include <limits.h>
Syntax error
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
-else
+else $as_nop
# Broken: fails on valid input.
continue
fi
@@ -4946,10 +5540,11 @@ rm -f conftest.err conftest.i conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
# Broken: success on invalid input.
continue
-else
+else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
@@ -4959,11 +5554,12 @@ rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
+if $ac_preproc_ok
+then :
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
@@ -4986,11 +5582,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
@@ -5004,10 +5601,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in sed gsed
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
@@ -5016,13 +5618,13 @@ case `"$ac_path_SED" --version 2>&1` in
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
+ printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -5050,30 +5652,32 @@ else
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for code coverage support" >&5
-$as_echo_n "checking for code coverage support... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for code coverage support" >&5
+printf %s "checking for code coverage support... " >&6; }
coverage="no"
curl_coverage_msg="disabled"
# Check whether --enable-code-coverage was given.
-if test "${enable_code_coverage+set}" = set; then :
+if test ${enable_code_coverage+y}
+then :
enableval=$enable_code_coverage; coverage="$enableval"
fi
- if test "$GCC" != "yes" ; then :
+ if test "$GCC" != "yes"
+then :
coverage="no"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $coverage" >&5
-$as_echo "$coverage" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $coverage" >&5
+printf "%s\n" "$coverage" >&6; }
if test "x$coverage" = "xyes"; then
curl_coverage_msg="enabled"
@@ -5081,11 +5685,12 @@ $as_echo "$coverage" >&6; }
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcov", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcov; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_GCOV+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_GCOV+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$GCOV"; then
ac_cv_prog_GCOV="$GCOV" # Let the user override the test.
else
@@ -5093,11 +5698,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_GCOV="${ac_tool_prefix}gcov"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5108,11 +5717,11 @@ fi
fi
GCOV=$ac_cv_prog_GCOV
if test -n "$GCOV"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5
-$as_echo "$GCOV" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5
+printf "%s\n" "$GCOV" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5121,11 +5730,12 @@ if test -z "$ac_cv_prog_GCOV"; then
ac_ct_GCOV=$GCOV
# Extract the first word of "gcov", so it can be a program name with args.
set dummy gcov; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_GCOV+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_GCOV+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_GCOV"; then
ac_cv_prog_ac_ct_GCOV="$ac_ct_GCOV" # Let the user override the test.
else
@@ -5133,11 +5743,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_GCOV="gcov"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5148,11 +5762,11 @@ fi
fi
ac_ct_GCOV=$ac_cv_prog_ac_ct_GCOV
if test -n "$ac_ct_GCOV"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5
-$as_echo "$ac_ct_GCOV" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5
+printf "%s\n" "$ac_ct_GCOV" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_GCOV" = x; then
@@ -5160,8 +5774,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
GCOV=$ac_ct_GCOV
@@ -5175,11 +5789,12 @@ fi
fi
# Extract the first word of "lcov", so it can be a program name with args.
set dummy lcov; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LCOV+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LCOV+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$LCOV"; then
ac_cv_prog_LCOV="$LCOV" # Let the user override the test.
else
@@ -5187,11 +5802,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LCOV="lcov"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5202,11 +5821,11 @@ fi
fi
LCOV=$ac_cv_prog_LCOV
if test -n "$LCOV"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5
-$as_echo "$LCOV" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5
+printf "%s\n" "$LCOV" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5222,8 +5841,8 @@ fi
am__api_version='1.16'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+printf %s "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
@@ -5277,8 +5896,8 @@ else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
@@ -5297,9 +5916,10 @@ test "$program_suffix" != NONE &&
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
+
-if test x"${MISSING+set}" != xset; then
+ if test x"${MISSING+set}" != xset; then
MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
@@ -5307,8 +5927,8 @@ if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh+set}" != xset; then
@@ -5328,11 +5948,12 @@ if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
@@ -5340,11 +5961,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5355,11 +5980,11 @@ fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5368,11 +5993,12 @@ if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
@@ -5380,11 +6006,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5395,11 +6025,11 @@ fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -5407,8 +6037,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -5420,25 +6050,31 @@ fi
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
+printf %s "checking for a race-free mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${ac_cv_path_mkdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
+ as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir ('*'coreutils) '* | \
+ 'BusyBox '* | \
'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
break 3;;
esac
done
@@ -5449,7 +6085,7 @@ IFS=$as_save_IFS
fi
test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
+ if test ${ac_cv_path_mkdir+y}; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
@@ -5459,18 +6095,19 @@ fi
MKDIR_P="$ac_install_sh -d"
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+printf "%s\n" "$MKDIR_P" >&6; }
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
@@ -5478,11 +6115,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5493,24 +6134,25 @@ fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@@ -5526,12 +6168,12 @@ esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -5548,8 +6190,8 @@ DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
-$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target >confinc.out
@@ -5585,11 +6227,12 @@ esac
fi
done
rm -f confinc.* confmf.*
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
-$as_echo "${_am_result}" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+printf "%s\n" "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
+if test ${enable_dependency_tracking+y}
+then :
enableval=$enable_dependency_tracking;
fi
@@ -5636,14 +6279,10 @@ fi
VERSION='-'
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
+printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
+printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
# Some tools Automake needs.
@@ -5685,11 +6324,12 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
depcc="$CC" am_compiler_list=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+printf %s "checking dependency style of $depcc... " >&6; }
+if test ${am_cv_CC_dependencies_compiler_type+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
@@ -5796,8 +6436,8 @@ else
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
@@ -5811,6 +6451,20 @@ else
fi
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+
+
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
@@ -5859,10 +6513,10 @@ fi
## ------------------------------------- ##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking curl version" >&5
-$as_echo_n "checking curl version... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CURLVERSION" >&5
-$as_echo "$CURLVERSION" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking curl version" >&5
+printf %s "checking curl version... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CURLVERSION" >&5
+printf "%s\n" "$CURLVERSION" >&6; }
@@ -5905,7 +6559,7 @@ curl_verbose_msg="enabled (--disable-verbose)"
curl_h3_msg="no (--with-ngtcp2, --with-quiche)"
enable_altsvc="yes"
-enable_hsts="yes"
+hsts="yes"
INITIAL_LDFLAGS=$LDFLAGS
INITIAL_LIBS=$LIBS
@@ -5913,7 +6567,8 @@ INITIAL_LIBS=$LIBS
OPT_SCHANNEL=no
# Check whether --with-schannel was given.
-if test "${with_schannel+set}" = set; then :
+if test ${with_schannel+y}
+then :
withval=$with_schannel; OPT_SCHANNEL=$withval
TLSCHOICE="schannel"
fi
@@ -5922,10 +6577,11 @@ fi
OPT_SECURETRANSPORT=no
# Check whether --with-secure-transport was given.
-if test "${with_secure_transport+set}" = set; then :
+if test ${with_secure_transport+y}
+then :
withval=$with_secure_transport; OPT_SECURETRANSPORT=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}Secure-Transport"
fi
@@ -5934,10 +6590,11 @@ fi
OPT_AMISSL=no
# Check whether --with-amissl was given.
-if test "${with_amissl+set}" = set; then :
+if test ${with_amissl+y}
+then :
withval=$with_amissl; OPT_AMISSL=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}AmiSSL"
fi
@@ -5946,21 +6603,23 @@ OPT_OPENSSL=no
ca="no"
# Check whether --with-ssl was given.
-if test "${with_ssl+set}" = set; then :
+if test ${with_ssl+y}
+then :
withval=$with_ssl; OPT_SSL=$withval
OPT_OPENSSL=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}OpenSSL"
fi
# Check whether --with-openssl was given.
-if test "${with_openssl+set}" = set; then :
+if test ${with_openssl+y}
+then :
withval=$with_openssl; OPT_OPENSSL=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}OpenSSL"
fi
@@ -5968,10 +6627,11 @@ fi
OPT_GNUTLS=no
# Check whether --with-gnutls was given.
-if test "${with_gnutls+set}" = set; then :
+if test ${with_gnutls+y}
+then :
withval=$with_gnutls; OPT_GNUTLS=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}GnuTLS"
fi
@@ -5979,10 +6639,11 @@ fi
OPT_MBEDTLS=no
# Check whether --with-mbedtls was given.
-if test "${with_mbedtls+set}" = set; then :
+if test ${with_mbedtls+y}
+then :
withval=$with_mbedtls; OPT_MBEDTLS=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}mbedTLS"
fi
@@ -5990,10 +6651,11 @@ fi
OPT_WOLFSSL=no
# Check whether --with-wolfssl was given.
-if test "${with_wolfssl+set}" = set; then :
+if test ${with_wolfssl+y}
+then :
withval=$with_wolfssl; OPT_WOLFSSL=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}wolfSSL"
fi
@@ -6001,10 +6663,11 @@ fi
OPT_MESALINK=no
# Check whether --with-mesalink was given.
-if test "${with_mesalink+set}" = set; then :
+if test ${with_mesalink+y}
+then :
withval=$with_mesalink; OPT_MESALINK=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}MesaLink"
fi
@@ -6012,10 +6675,11 @@ fi
OPT_BEARSSL=no
# Check whether --with-bearssl was given.
-if test "${with_bearssl+set}" = set; then :
+if test ${with_bearssl+y}
+then :
withval=$with_bearssl; OPT_BEARSSL=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}BearSSL"
fi
@@ -6023,10 +6687,11 @@ fi
OPT_RUSTLS=no
# Check whether --with-rustls was given.
-if test "${with_rustls+set}" = set; then :
+if test ${with_rustls+y}
+then :
withval=$with_rustls; OPT_RUSTLS=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}rustls"
fi
@@ -6034,10 +6699,11 @@ fi
OPT_NSS=no
# Check whether --with-nss was given.
-if test "${with_nss+set}" = set; then :
+if test ${with_nss+y}
+then :
withval=$with_nss; OPT_NSS=$withval
test -z "TLSCHOICE" || TLSCHOICE="${TLSCHOICE:+$TLSCHOICE
-else
+else $as_nop
}NSS"
fi
@@ -6065,32 +6731,36 @@ fi
# Check whether --with-darwinssl was given.
-if test "${with_darwinssl+set}" = set; then :
+if test ${with_darwinssl+y}
+then :
withval=$with_darwinssl; as_fn_error $? "--with-darwin-ssl no longer works!" "$LINENO" 5
fi
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+ # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -6109,21 +6779,22 @@ IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -6143,9 +6814,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-cat >>confdefs.h <<_ACEOF
-#define OS "${host}"
-_ACEOF
+printf "%s\n" "#define OS \"${host}\"" >>confdefs.h
# Silence warning: ar: 'u' modifier ignored since 'D' is the default
@@ -6154,11 +6823,12 @@ AR_FLAGS=cr
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
@@ -6166,10 +6836,15 @@ else
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in grep ggrep
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
@@ -6178,13 +6853,13 @@ case `"$ac_path_GREP" --version 2>&1` in
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
+ printf "%s\n" 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -6212,16 +6887,17 @@ else
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
@@ -6232,10 +6908,15 @@ else
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in egrep
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
@@ -6244,13 +6925,13 @@ case `"$ac_path_EGREP" --version 2>&1` in
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
+ printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -6279,15 +6960,15 @@ fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OS is AIX (to define _ALL_SOURCE)" >&5
-$as_echo_n "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if OS is AIX (to define _ALL_SOURCE)" >&5
+printf %s "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6297,27 +6978,28 @@ $as_echo_n "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes_this_is_aix" >/dev/null 2>&1; then :
+ $EGREP "yes_this_is_aix" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f conftest*
+rm -rf conftest*
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is already defined" >&5
-$as_echo_n "checking if _THREAD_SAFE is already defined... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is already defined" >&5
+printf %s "checking if _THREAD_SAFE is already defined... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6337,24 +7019,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tmp_thread_safe_initially_defined="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tmp_thread_safe_initially_defined="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
if test "$tmp_thread_safe_initially_defined" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is actually needed" >&5
-$as_echo_n "checking if _THREAD_SAFE is actually needed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is actually needed" >&5
+printf %s "checking if _THREAD_SAFE is actually needed... " >&6; }
case $host_os in
aix[123].* | aix4.[012].*)
@@ -6369,21 +7052,21 @@ $as_echo_n "checking if _THREAD_SAFE is actually needed... " >&6; }
esac
if test "$tmp_need_thread_safe" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is onwards defined" >&5
-$as_echo_n "checking if _THREAD_SAFE is onwards defined... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is onwards defined" >&5
+printf %s "checking if _THREAD_SAFE is onwards defined... " >&6; }
if test "$tmp_thread_safe_initially_defined" = "yes" ||
test "$tmp_need_thread_safe" = "yes"; then
-$as_echo "#define NEED_THREAD_SAFE 1" >>confdefs.h
+printf "%s\n" "#define NEED_THREAD_SAFE 1" >>confdefs.h
cat >>confdefs.h <<_EOF
#ifndef _THREAD_SAFE
@@ -6391,18 +7074,18 @@ cat >>confdefs.h <<_EOF
#endif
_EOF
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
#
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is already defined" >&5
-$as_echo_n "checking if _REENTRANT is already defined... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is already defined" >&5
+printf %s "checking if _REENTRANT is already defined... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6422,24 +7105,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tmp_reentrant_initially_defined="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tmp_reentrant_initially_defined="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
if test "$tmp_reentrant_initially_defined" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is actually needed" >&5
-$as_echo_n "checking if _REENTRANT is actually needed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is actually needed" >&5
+printf %s "checking if _REENTRANT is actually needed... " >&6; }
case $host_os in
solaris*)
@@ -6469,16 +7153,17 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_errno="yes"
-else
+else $as_nop
tmp_errno="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tmp_errno" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6500,11 +7185,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_errno="errno_macro_defined"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6527,16 +7213,17 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_errno="errno_macro_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
@@ -6571,16 +7258,17 @@ return gmtime_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_gmtime_r="yes"
-else
+else $as_nop
tmp_gmtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_gmtime_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6591,11 +7279,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gmtime_r" >/dev/null 2>&1; then :
+ $EGREP "gmtime_r" >/dev/null 2>&1
+then :
tmp_gmtime_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6606,17 +7295,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gmtime_r" >/dev/null 2>&1; then :
+ $EGREP "gmtime_r" >/dev/null 2>&1
+then :
tmp_gmtime_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -6650,16 +7340,17 @@ return localtime_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_localtime_r="yes"
-else
+else $as_nop
tmp_localtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_localtime_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6670,11 +7361,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "localtime_r" >/dev/null 2>&1; then :
+ $EGREP "localtime_r" >/dev/null 2>&1
+then :
tmp_localtime_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6685,17 +7377,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "localtime_r" >/dev/null 2>&1; then :
+ $EGREP "localtime_r" >/dev/null 2>&1
+then :
tmp_localtime_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -6729,16 +7422,17 @@ return strerror_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_strerror_r="yes"
-else
+else $as_nop
tmp_strerror_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_strerror_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6749,11 +7443,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strerror_r" >/dev/null 2>&1; then :
+ $EGREP "strerror_r" >/dev/null 2>&1
+then :
tmp_strerror_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6764,17 +7459,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strerror_r" >/dev/null 2>&1; then :
+ $EGREP "strerror_r" >/dev/null 2>&1
+then :
tmp_strerror_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -6808,16 +7504,17 @@ return strtok_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_strtok_r="yes"
-else
+else $as_nop
tmp_strtok_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_strtok_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6828,11 +7525,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strtok_r" >/dev/null 2>&1; then :
+ $EGREP "strtok_r" >/dev/null 2>&1
+then :
tmp_strtok_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6843,17 +7541,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strtok_r" >/dev/null 2>&1; then :
+ $EGREP "strtok_r" >/dev/null 2>&1
+then :
tmp_strtok_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -6887,16 +7586,17 @@ return gethostbyname_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_gethostbyname_r="yes"
-else
+else $as_nop
tmp_gethostbyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_gethostbyname_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6907,11 +7607,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gethostbyname_r" >/dev/null 2>&1; then :
+ $EGREP "gethostbyname_r" >/dev/null 2>&1
+then :
tmp_gethostbyname_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6922,17 +7623,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gethostbyname_r" >/dev/null 2>&1; then :
+ $EGREP "gethostbyname_r" >/dev/null 2>&1
+then :
tmp_gethostbyname_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -6966,16 +7668,17 @@ return getprotobyname_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_getprotobyname_r="yes"
-else
+else $as_nop
tmp_getprotobyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test "$tmp_getprotobyname_r" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6986,11 +7689,12 @@ rm -f core conftest.err conftest.$ac_objext \
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getprotobyname_r" >/dev/null 2>&1; then :
+ $EGREP "getprotobyname_r" >/dev/null 2>&1
+then :
tmp_getprotobyname_r="proto_declared"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7001,17 +7705,18 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getprotobyname_r" >/dev/null 2>&1; then :
+ $EGREP "getprotobyname_r" >/dev/null 2>&1
+then :
tmp_getprotobyname_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
fi
-rm -f conftest*
+rm -rf conftest*
fi
-rm -f conftest*
+rm -rf conftest*
fi
@@ -7019,21 +7724,21 @@ rm -f conftest*
fi
if test "$tmp_need_reentrant" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is onwards defined" >&5
-$as_echo_n "checking if _REENTRANT is onwards defined... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is onwards defined" >&5
+printf %s "checking if _REENTRANT is onwards defined... " >&6; }
if test "$tmp_reentrant_initially_defined" = "yes" ||
test "$tmp_need_reentrant" = "yes"; then
-$as_echo "#define NEED_REENTRANT 1" >>confdefs.h
+printf "%s\n" "#define NEED_REENTRANT 1" >>confdefs.h
cat >>confdefs.h <<_EOF
#ifndef _REENTRANT
@@ -7041,27 +7746,29 @@ cat >>confdefs.h <<_EOF
#endif
_EOF
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
#
# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
+if test ${enable_largefile+y}
+then :
enableval=$enable_largefile;
fi
if test "$enable_largefile" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+printf %s "checking for special C compiler options needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_sys_largefile_CC=no
if test "$GCC" != yes; then
ac_save_CC=$CC
@@ -7075,7 +7782,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -7086,32 +7793,35 @@ int main (void)
return 0;
}
_ACEOF
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
break
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
CC="$CC -n32"
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sys_largefile_CC=' -n32'; break
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
break
done
CC=$ac_save_CC
rm -f conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
if test "$ac_cv_sys_largefile_CC" != no; then
CC=$CC$ac_cv_sys_largefile_CC
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7120,7 +7830,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -7131,10 +7841,11 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sys_file_offset_bits=no; break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _FILE_OFFSET_BITS 64
@@ -7143,7 +7854,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -7154,31 +7865,31 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sys_file_offset_bits=64; break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_sys_file_offset_bits=unknown
break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
case $ac_cv_sys_file_offset_bits in #(
no | unknown) ;;
*)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
+printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
;;
esac
rm -rf conftest*
if test $ac_cv_sys_file_offset_bits = unknown; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test ${ac_cv_sys_large_files+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7187,7 +7898,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -7198,10 +7909,11 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sys_large_files=no; break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _LARGE_FILES 1
@@ -7210,7 +7922,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -7221,35 +7933,32 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sys_large_files=1; break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_sys_large_files=unknown
break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+printf "%s\n" "$ac_cv_sys_large_files" >&6; }
case $ac_cv_sys_large_files in #(
no | unknown) ;;
*)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
+printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
;;
esac
rm -rf conftest*
fi
-
-
fi
case `pwd` in
*\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac
@@ -7269,6 +7978,7 @@ macro_revision='2.4.6'
+
ltmain=$ac_aux_dir/ltmain.sh
# Backslashify metacharacters that are still active within
@@ -7292,8 +8002,8 @@ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+printf %s "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -7319,12 +8029,12 @@ func_echo_all ()
}
case $ECHO in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
+ printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+printf "%s\n" "printf" >&6; } ;;
+ print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+printf "%s\n" "print -r" >&6; } ;;
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+printf "%s\n" "cat" >&6; } ;;
esac
@@ -7340,11 +8050,12 @@ esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
@@ -7358,10 +8069,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in sed gsed
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
@@ -7370,13 +8086,13 @@ case `"$ac_path_SED" --version 2>&1` in
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
+ printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -7404,8 +8120,8 @@ else
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
@@ -7422,11 +8138,12 @@ Xsed="$SED -e 1s/^X//"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+printf %s "checking for fgrep... " >&6; }
+if test ${ac_cv_path_FGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
@@ -7437,10 +8154,15 @@ else
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in fgrep
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
@@ -7449,13 +8171,13 @@ case `"$ac_path_FGREP" --version 2>&1` in
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
+ printf "%s\n" 'FGREP' >> "conftest.nl"
"$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -7484,8 +8206,8 @@ fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+printf "%s\n" "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
@@ -7510,17 +8232,18 @@ test -z "$GREP" && GREP=grep
# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
+else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
@@ -7549,15 +8272,16 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
;;
esac
elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${lt_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
@@ -7586,18 +8310,19 @@ fi
LD=$lt_cv_path_LD
if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
@@ -7608,8 +8333,8 @@ case `$LD -v 2>&1 </dev/null` in
;;
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -7620,11 +8345,12 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test ${lt_cv_path_NM+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
@@ -7674,8 +8400,8 @@ else
: ${lt_cv_path_NM=no}
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf "%s\n" "$lt_cv_path_NM" >&6; }
if test no != "$lt_cv_path_NM"; then
NM=$lt_cv_path_NM
else
@@ -7688,11 +8414,12 @@ else
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
@@ -7700,11 +8427,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7715,11 +8446,11 @@ fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+printf "%s\n" "$DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7732,11 +8463,12 @@ if test -z "$DUMPBIN"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
@@ -7744,11 +8476,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7759,11 +8495,11 @@ fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7775,8 +8511,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DUMPBIN=$ac_ct_DUMPBIN
@@ -7804,11 +8540,12 @@ test -z "$NM" && NM=nm
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+printf %s "checking the name lister ($NM) interface... " >&6; }
+if test ${lt_cv_nm_interface+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
@@ -7824,26 +8561,27 @@ else
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+printf "%s\n" "$lt_cv_nm_interface" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
fi
# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+printf %s "checking the maximum length of command line arguments... " >&6; }
+if test ${lt_cv_sys_max_cmd_len+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
i=0
teststring=ABCD
@@ -7970,11 +8708,11 @@ else
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf "%s\n" "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -8018,11 +8756,12 @@ esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+printf %s "checking how to convert $build file names to $host format... " >&6; }
+if test ${lt_cv_to_host_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $host in
*-*-mingw* )
case $build in
@@ -8058,18 +8797,19 @@ esac
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+printf %s "checking how to convert $build file names to toolchain format... " >&6; }
+if test ${lt_cv_to_tool_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
@@ -8085,22 +8825,23 @@ esac
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+printf %s "checking for $LD option to reload object files... " >&6; }
+if test ${lt_cv_ld_reload_flag+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_reload_flag='-r'
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
@@ -8133,11 +8874,12 @@ esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
@@ -8145,11 +8887,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8160,11 +8906,11 @@ fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8173,11 +8919,12 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
@@ -8185,11 +8932,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8200,11 +8951,11 @@ fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
@@ -8212,8 +8963,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
@@ -8229,11 +8980,12 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+printf %s "checking how to recognize dependent libraries... " >&6; }
+if test ${lt_cv_deplibs_check_method+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
@@ -8429,8 +9181,8 @@ os2*)
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
file_magic_glob=
want_nocaseglob=no
@@ -8474,11 +9226,12 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
@@ -8486,11 +9239,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8501,11 +9258,11 @@ fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8514,11 +9271,12 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
@@ -8526,11 +9284,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8541,11 +9303,11 @@ fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
@@ -8553,8 +9315,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
@@ -8571,11 +9333,12 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+printf %s "checking how to associate runtime and link libraries... " >&6; }
+if test ${lt_cv_sharedlib_from_linklib_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
@@ -8598,8 +9361,8 @@ cygwin* | mingw* | pw32* | cegcc*)
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
@@ -8614,11 +9377,12 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
@@ -8626,11 +9390,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8641,11 +9409,11 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8658,11 +9426,12 @@ if test -z "$AR"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
@@ -8670,11 +9439,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8685,11 +9458,11 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8701,8 +9474,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
@@ -8722,11 +9495,12 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+printf %s "checking for archiver @FILE support... " >&6; }
+if test ${lt_cv_ar_at_file+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -8738,13 +9512,14 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
echo conftest.$ac_objext > conftest.lst
lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -eq "$ac_status"; then
# Ensure the archiver fails upon bogus file names.
@@ -8752,7 +9527,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -ne "$ac_status"; then
lt_cv_ar_at_file=@
@@ -8761,11 +9536,11 @@ if ac_fn_c_try_compile "$LINENO"; then :
rm -f conftest.* libconftest.a
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+printf "%s\n" "$lt_cv_ar_at_file" >&6; }
if test no = "$lt_cv_ar_at_file"; then
archiver_list_spec=
@@ -8782,11 +9557,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
@@ -8794,11 +9570,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8809,11 +9589,11 @@ fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8822,11 +9602,12 @@ if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
@@ -8834,11 +9615,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8849,11 +9634,11 @@ fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -8861,8 +9646,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -8881,11 +9666,12 @@ test -z "$STRIP" && STRIP=:
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
@@ -8893,11 +9679,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8908,11 +9698,11 @@ fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -8921,11 +9711,12 @@ if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
@@ -8933,11 +9724,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -8948,11 +9743,11 @@ fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
@@ -8960,8 +9755,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
@@ -9050,11 +9845,12 @@ compiler=$CC
# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+printf %s "checking command to parse $NM output from $compiler object... " >&6; }
+if test ${lt_cv_sys_global_symbol_pipe+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
@@ -9206,7 +10002,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
@@ -9279,7 +10075,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest$ac_exeext; then
pipe_works=yes
fi
@@ -9314,11 +10110,11 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
fi
# Response file support.
@@ -9364,13 +10160,14 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+printf %s "checking for sysroot... " >&6; }
# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
+if test ${with_sysroot+y}
+then :
withval=$with_sysroot;
-else
+else $as_nop
with_sysroot=no
fi
@@ -9388,24 +10185,25 @@ case $with_sysroot in #(
no|'')
;; #(
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-$as_echo "$with_sysroot" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+printf "%s\n" "$with_sysroot" >&6; }
as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+printf "%s\n" "${lt_sysroot:-no}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-$as_echo_n "checking for a working dd... " >&6; }
-if ${ac_cv_path_lt_DD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+printf %s "checking for a working dd... " >&6; }
+if test ${ac_cv_path_lt_DD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
@@ -9416,10 +10214,15 @@ if test -z "$lt_DD"; then
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in dd; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in dd
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_lt_DD" || continue
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
@@ -9439,15 +10242,16 @@ fi
rm -f conftest.i conftest2.i conftest.out
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-$as_echo "$ac_cv_path_lt_DD" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-$as_echo_n "checking how to truncate binary pipes... " >&6; }
-if ${lt_cv_truncate_bin+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+printf %s "checking how to truncate binary pipes... " >&6; }
+if test ${lt_cv_truncate_bin+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
@@ -9458,8 +10262,8 @@ fi
rm -f conftest.i conftest2.i conftest.out
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-$as_echo "$lt_cv_truncate_bin" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+printf "%s\n" "$lt_cv_truncate_bin" >&6; }
@@ -9482,7 +10286,8 @@ func_cc_basename ()
}
# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
+if test ${enable_libtool_lock+y}
+then :
enableval=$enable_libtool_lock;
fi
@@ -9498,7 +10303,7 @@ ia64-*-hpux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
@@ -9518,7 +10323,7 @@ ia64-*-hpux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in
@@ -9556,7 +10361,7 @@ mips64*-*linux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
case `/usr/bin/file conftest.$ac_objext` in
@@ -9597,7 +10402,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
@@ -9660,11 +10465,12 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+printf %s "checking whether the C compiler needs -belf... " >&6; }
+if test ${lt_cv_cc_needs_belf+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -9681,12 +10487,13 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_cc_needs_belf=yes
-else
+else $as_nop
lt_cv_cc_needs_belf=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -9695,8 +10502,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
if test yes != "$lt_cv_cc_needs_belf"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS=$SAVE_CFLAGS
@@ -9709,7 +10516,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
@@ -9746,11 +10553,12 @@ need_locks=$enable_libtool_lock
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
@@ -9758,11 +10566,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -9773,11 +10585,11 @@ fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+printf "%s\n" "$MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -9786,11 +10598,12 @@ if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
# Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
@@ -9798,11 +10611,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -9813,11 +10630,11 @@ fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_MANIFEST_TOOL" = x; then
@@ -9825,8 +10642,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
@@ -9836,11 +10653,12 @@ else
fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test ${lt_cv_path_mainfest_tool+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
@@ -9850,8 +10668,8 @@ else
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
@@ -9866,11 +10684,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
@@ -9878,11 +10697,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -9893,11 +10716,11 @@ fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf "%s\n" "$DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -9906,11 +10729,12 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
@@ -9918,11 +10742,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -9933,11 +10761,11 @@ fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
@@ -9945,8 +10773,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
@@ -9958,11 +10786,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
@@ -9970,11 +10799,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -9985,11 +10818,11 @@ fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf "%s\n" "$NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -9998,11 +10831,12 @@ if test -z "$ac_cv_prog_NMEDIT"; then
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
@@ -10010,11 +10844,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10025,11 +10863,11 @@ fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf "%s\n" "$ac_ct_NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
@@ -10037,8 +10875,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
@@ -10050,11 +10888,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
@@ -10062,11 +10901,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10077,11 +10920,11 @@ fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+printf "%s\n" "$LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -10090,11 +10933,12 @@ if test -z "$ac_cv_prog_LIPO"; then
ac_ct_LIPO=$LIPO
# Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
@@ -10102,11 +10946,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10117,11 +10965,11 @@ fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+printf "%s\n" "$ac_ct_LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_LIPO" = x; then
@@ -10129,8 +10977,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
LIPO=$ac_ct_LIPO
@@ -10142,11 +10990,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
@@ -10154,11 +11003,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10169,11 +11022,11 @@ fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+printf "%s\n" "$OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -10182,11 +11035,12 @@ if test -z "$ac_cv_prog_OTOOL"; then
ac_ct_OTOOL=$OTOOL
# Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
@@ -10194,11 +11048,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10209,11 +11067,11 @@ fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+printf "%s\n" "$ac_ct_OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL" = x; then
@@ -10221,8 +11079,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL=$ac_ct_OTOOL
@@ -10234,11 +11092,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
@@ -10246,11 +11105,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10261,11 +11124,11 @@ fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+printf "%s\n" "$OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -10274,11 +11137,12 @@ if test -z "$ac_cv_prog_OTOOL64"; then
ac_ct_OTOOL64=$OTOOL64
# Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
@@ -10286,11 +11150,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10301,11 +11169,11 @@ fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+printf "%s\n" "$ac_ct_OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL64" = x; then
@@ -10313,8 +11181,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL64=$ac_ct_OTOOL64
@@ -10349,11 +11217,12 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+printf %s "checking for -single_module linker flag... " >&6; }
+if test ${lt_cv_apple_cc_single_mod+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
@@ -10382,14 +11251,15 @@ else
rm -f conftest.*
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+printf %s "checking for -exported_symbols_list linker flag... " >&6; }
+if test ${lt_cv_ld_exported_symbols_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
@@ -10404,24 +11274,26 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_ld_exported_symbols_list=yes
-else
+else $as_nop
lt_cv_ld_exported_symbols_list=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+printf %s "checking for -force_load linker flag... " >&6; }
+if test ${lt_cv_ld_force_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
@@ -10449,8 +11321,8 @@ _LT_EOF
rm -rf conftest.dSYM
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+printf "%s\n" "$lt_cv_ld_force_load" >&6; }
case $host_os in
rhapsody* | darwin1.[012])
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
@@ -10521,147 +11393,43 @@ func_munge_path_list ()
esac
}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
+do
+ if test $ac_cache; then
+ ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
+ fi
+done
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-fi
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-fi
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
+if test "x$ac_cv_header_dlfcn_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
-done
-
# ------------------------------------ #
# Determine libtool default behavior #
# ------------------------------------ #
@@ -10750,7 +11518,7 @@ if test "x$xc_lt_want_with_pic" = 'xdefault'; then
case $host_cpu in # (
x86_64 | amd64 | ia64)
case $host_os in # (
- linux* | freebsd*)
+ linux* | freebsd* | midnightbsd*)
xc_lt_want_with_pic='yes'
;;
esac
@@ -10781,11 +11549,12 @@ case $host in
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AS+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AS"; then
ac_cv_prog_AS="$AS" # Let the user override the test.
else
@@ -10793,11 +11562,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AS="${ac_tool_prefix}as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10808,11 +11581,11 @@ fi
fi
AS=$ac_cv_prog_AS
if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+printf "%s\n" "$AS" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -10821,11 +11594,12 @@ if test -z "$ac_cv_prog_AS"; then
ac_ct_AS=$AS
# Extract the first word of "as", so it can be a program name with args.
set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AS+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_AS"; then
ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
else
@@ -10833,11 +11607,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AS="as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10848,11 +11626,11 @@ fi
fi
ac_ct_AS=$ac_cv_prog_ac_ct_AS
if test -n "$ac_ct_AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+printf "%s\n" "$ac_ct_AS" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_AS" = x; then
@@ -10860,8 +11638,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AS=$ac_ct_AS
@@ -10873,11 +11651,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
@@ -10885,11 +11664,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10900,11 +11683,11 @@ fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -10913,11 +11696,12 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
@@ -10925,11 +11709,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10940,11 +11728,11 @@ fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
@@ -10952,8 +11740,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
@@ -10965,11 +11753,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
@@ -10977,11 +11766,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10992,11 +11785,11 @@ fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11005,11 +11798,12 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
@@ -11017,11 +11811,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11032,11 +11830,11 @@ fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
@@ -11044,8 +11842,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
@@ -11082,7 +11880,8 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
+if test ${enable_shared+y}
+then :
enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
@@ -11100,7 +11899,7 @@ if test "${enable_shared+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_shared=yes
fi
@@ -11113,7 +11912,8 @@ fi
# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
+if test ${enable_static+y}
+then :
enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
@@ -11131,7 +11931,7 @@ if test "${enable_static+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_static=yes
fi
@@ -11145,7 +11945,8 @@ fi
# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
+if test ${with_pic+y}
+then :
withval=$with_pic; lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
@@ -11162,7 +11963,7 @@ if test "${with_pic+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
pic_mode=default
fi
@@ -11174,7 +11975,8 @@ fi
# Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
+if test ${enable_fast_install+y}
+then :
enableval=$enable_fast_install; p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
@@ -11192,7 +11994,7 @@ if test "${enable_fast_install+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_fast_install=yes
fi
@@ -11206,11 +12008,12 @@ fi
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+printf %s "checking which variant of shared library versioning to provide... " >&6; }
# Check whether --with-aix-soname was given.
-if test "${with_aix_soname+set}" = set; then :
+if test ${with_aix_soname+y}
+then :
withval=$with_aix_soname; case $withval in
aix|svr4|both)
;;
@@ -11219,18 +12022,19 @@ if test "${with_aix_soname+set}" = set; then :
;;
esac
lt_cv_with_aix_soname=$with_aix_soname
-else
- if ${lt_cv_with_aix_soname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ if test ${lt_cv_with_aix_soname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_with_aix_soname=aix
fi
with_aix_soname=$lt_cv_with_aix_soname
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-$as_echo "$with_aix_soname" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
@@ -11312,11 +12116,12 @@ if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+printf %s "checking for objdir... " >&6; }
+if test ${lt_cv_objdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
@@ -11327,17 +12132,15 @@ else
fi
rmdir .libs 2>/dev/null
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf "%s\n" "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
+printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
@@ -11383,11 +12186,12 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+printf %s "checking for ${ac_tool_prefix}file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -11436,11 +12240,11 @@ fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11449,11 +12253,12 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+printf %s "checking for file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -11502,11 +12307,11 @@ fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11591,11 +12396,12 @@ if test yes = "$GCC"; then
lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test ${lt_cv_prog_compiler_rtti_exceptions+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -11626,8 +12432,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -11990,26 +12796,28 @@ case $host_os in
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+printf %s "checking for $compiler option to produce PIC... " >&6; }
+if test ${lt_cv_prog_compiler_pic+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test ${lt_cv_prog_compiler_pic_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -12040,8 +12848,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
if test yes = "$lt_cv_prog_compiler_pic_works"; then
case $lt_prog_compiler_pic in
@@ -12069,11 +12877,12 @@ fi
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test ${lt_cv_prog_compiler_static_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
@@ -12097,8 +12906,8 @@ else
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
if test yes = "$lt_cv_prog_compiler_static_works"; then
:
@@ -12112,11 +12921,12 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -12159,19 +12969,20 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -12214,8 +13025,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
@@ -12223,19 +13034,19 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
hard_links=nottested
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
# do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$RM conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf "%s\n" "$hard_links" >&6; }
if test no = "$hard_links"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
@@ -12247,8 +13058,8 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
allow_undefined_flag=
@@ -12806,9 +13617,10 @@ _LT_EOF
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -12819,7 +13631,8 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -12834,7 +13647,7 @@ if ac_fn_c_try_link "$LINENO"; then :
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -12858,9 +13671,10 @@ fi
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -12871,7 +13685,8 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -12886,7 +13701,7 @@ if ac_fn_c_try_link "$LINENO"; then :
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -13137,11 +13952,12 @@ fi
# Older versions of the 11.00 compiler do not understand -b yet
# (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+printf %s "checking if $CC understands -b... " >&6; }
+if test ${lt_cv_prog_compiler__b+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
@@ -13165,8 +13981,8 @@ else
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
if test yes = "$lt_cv_prog_compiler__b"; then
archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -13206,28 +14022,30 @@ fi
# work, assume that -exports_file does not work either and
# implicitly export all symbols.
# This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test ${lt_cv_irix_exported_symbol+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo (void) { return 0; }
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_irix_exported_symbol=yes
-else
+else $as_nop
lt_cv_irix_exported_symbol=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
@@ -13508,8 +14326,8 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf "%s\n" "$ld_shlibs" >&6; }
test no = "$ld_shlibs" && can_build_shared=no
with_gnu_ld=$with_gnu_ld
@@ -13545,18 +14363,19 @@ x|xyes)
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+printf %s "checking whether -lc should be explicitly linked in... " >&6; }
+if test ${lt_cv_archive_cmds_need_lc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
$RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
@@ -13574,7 +14393,7 @@ else
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
lt_cv_archive_cmds_need_lc=no
@@ -13588,8 +14407,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
@@ -13748,8 +14567,8 @@ esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+printf %s "checking dynamic linker characteristics... " >&6; }
if test yes = "$GCC"; then
case $host_os in
@@ -14310,9 +15129,10 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
shlibpath_overrides_runpath=no
# Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_shlibpath_overrides_runpath+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
@@ -14328,12 +15148,14 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+if ac_fn_c_try_link "$LINENO"
+then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
+then :
lt_cv_shlibpath_overrides_runpath=yes
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
@@ -14577,8 +15399,8 @@ uts4*)
dynamic_linker=no
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf "%s\n" "$dynamic_linker" >&6; }
test no = "$dynamic_linker" && can_build_shared=no
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
@@ -14699,8 +15521,8 @@ configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
test -n "$runpath_var" ||
@@ -14724,8 +15546,8 @@ else
# directories.
hardcode_action=unsupported
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf "%s\n" "$hardcode_action" >&6; }
if test relink = "$hardcode_action" ||
test yes = "$inherit_rpath"; then
@@ -14769,11 +15591,12 @@ else
darwin*)
# if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14791,20 +15614,22 @@ return dlopen ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
+else $as_nop
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
@@ -14824,14 +15649,16 @@ fi
*)
ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
+if test "x$ac_cv_func_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+printf %s "checking for shl_load in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_shl_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14849,29 +15676,33 @@ return shl_load ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_shl_load=yes
-else
+else $as_nop
ac_cv_lib_dld_shl_load=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else
+else $as_nop
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
+if test "x$ac_cv_func_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14889,25 +15720,28 @@ return dlopen ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+printf %s "checking for dlopen in -lsvld... " >&6; }
+if test ${ac_cv_lib_svld_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14925,25 +15759,28 @@ return dlopen ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_svld_dlopen=yes
-else
+else $as_nop
ac_cv_lib_svld_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+printf %s "checking for dld_link in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_dld_link+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14961,18 +15798,20 @@ return dld_link ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_dld_link=yes
-else
+else $as_nop
ac_cv_lib_dld_dld_link=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes
+then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
@@ -15011,11 +15850,12 @@ fi
save_LIBS=$LIBS
LIBS="$lt_cv_dlopen_libs $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+printf %s "checking whether a program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
@@ -15094,7 +15934,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -15112,16 +15952,17 @@ rm -fr conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf "%s\n" "$lt_cv_dlopen_self" >&6; }
if test yes = "$lt_cv_dlopen_self"; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self_static+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
@@ -15200,7 +16041,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -15218,8 +16059,8 @@ rm -fr conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS=$save_CPPFLAGS
@@ -15257,13 +16098,13 @@ fi
striplib=
old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
@@ -15271,16 +16112,16 @@ else
if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
fi
@@ -15297,13 +16138,13 @@ fi
# Report what library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+printf %s "checking if libtool supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf "%s\n" "$can_build_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+printf %s "checking whether to build shared libraries... " >&6; }
test no = "$can_build_shared" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
@@ -15327,15 +16168,15 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf "%s\n" "$enable_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test yes = "$enable_shared" || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf "%s\n" "$enable_static" >&6; }
@@ -15405,8 +16246,8 @@ esac
# Verify if libtool shared libraries should be linked using flag -version-info
#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -version-info" >&5
-$as_echo_n "checking whether to build shared libraries with -version-info... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -version-info" >&5
+printf %s "checking whether to build shared libraries with -version-info... " >&6; }
xc_lt_shlib_use_version_info='yes'
if test "x$version_type" = 'xnone'; then
xc_lt_shlib_use_version_info='no'
@@ -15416,15 +16257,15 @@ case $host_os in # (
xc_lt_shlib_use_version_info='yes'
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_version_info" >&5
-$as_echo "$xc_lt_shlib_use_version_info" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_version_info" >&5
+printf "%s\n" "$xc_lt_shlib_use_version_info" >&6; }
#
# Verify if libtool shared libraries should be linked using flag -no-undefined
#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -no-undefined" >&5
-$as_echo_n "checking whether to build shared libraries with -no-undefined... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -no-undefined" >&5
+printf %s "checking whether to build shared libraries with -no-undefined... " >&6; }
xc_lt_shlib_use_no_undefined='no'
if test "x$allow_undefined" = 'xno'; then
xc_lt_shlib_use_no_undefined='yes'
@@ -15436,15 +16277,15 @@ case $host_os in # (
xc_lt_shlib_use_no_undefined='yes'
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_no_undefined" >&5
-$as_echo "$xc_lt_shlib_use_no_undefined" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_no_undefined" >&5
+printf "%s\n" "$xc_lt_shlib_use_no_undefined" >&6; }
#
# Verify if libtool shared libraries should be linked using flag -mimpure-text
#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -mimpure-text" >&5
-$as_echo_n "checking whether to build shared libraries with -mimpure-text... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -mimpure-text" >&5
+printf %s "checking whether to build shared libraries with -mimpure-text... " >&6; }
xc_lt_shlib_use_mimpure_text='no'
case $host_os in # (
solaris2*)
@@ -15453,8 +16294,8 @@ case $host_os in # (
fi
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_mimpure_text" >&5
-$as_echo "$xc_lt_shlib_use_mimpure_text" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_mimpure_text" >&5
+printf "%s\n" "$xc_lt_shlib_use_mimpure_text" >&6; }
#
# Find out whether libtool libraries would be built wit PIC
@@ -15476,48 +16317,48 @@ case "x$pic_mode" in # ((((
*)
xc_lt_build_shared_with_pic='unknown'
xc_lt_build_static_with_pic='unknown'
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unexpected libtool pic_mode value: $pic_mode" >&5
-$as_echo "$as_me: WARNING: unexpected libtool pic_mode value: $pic_mode" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unexpected libtool pic_mode value: $pic_mode" >&5
+printf "%s\n" "$as_me: WARNING: unexpected libtool pic_mode value: $pic_mode" >&2;}
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with PIC" >&5
-$as_echo_n "checking whether to build shared libraries with PIC... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_with_pic" >&5
-$as_echo "$xc_lt_build_shared_with_pic" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries with PIC" >&5
-$as_echo_n "checking whether to build static libraries with PIC... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_with_pic" >&5
-$as_echo "$xc_lt_build_static_with_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with PIC" >&5
+printf %s "checking whether to build shared libraries with PIC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_with_pic" >&5
+printf "%s\n" "$xc_lt_build_shared_with_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries with PIC" >&5
+printf %s "checking whether to build static libraries with PIC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_with_pic" >&5
+printf "%s\n" "$xc_lt_build_static_with_pic" >&6; }
#
# Verify if libtool shared libraries will be built while static not built
#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries only" >&5
-$as_echo_n "checking whether to build shared libraries only... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries only" >&5
+printf %s "checking whether to build shared libraries only... " >&6; }
if test "$xc_lt_build_shared" = 'yes' &&
test "$xc_lt_build_static" = 'no'; then
xc_lt_build_shared_only='yes'
else
xc_lt_build_shared_only='no'
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_only" >&5
-$as_echo "$xc_lt_build_shared_only" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_only" >&5
+printf "%s\n" "$xc_lt_build_shared_only" >&6; }
#
# Verify if libtool static libraries will be built while shared not built
#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries only" >&5
-$as_echo_n "checking whether to build static libraries only... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries only" >&5
+printf %s "checking whether to build static libraries only... " >&6; }
if test "$xc_lt_build_static" = 'yes' &&
test "$xc_lt_build_shared" = 'no'; then
xc_lt_build_static_only='yes'
else
xc_lt_build_static_only='no'
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_only" >&5
-$as_echo "$xc_lt_build_static_only" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_only" >&5
+printf "%s\n" "$xc_lt_build_static_only" >&6; }
@@ -15606,32 +16447,34 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+printf %s "checking for inline... " >&6; }
+if test ${ac_cv_c_inline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
+static $ac_kw foo_t static_foo (void) {return 0; }
+$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_inline=$ac_kw
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
@@ -15651,8 +16494,8 @@ esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if cpp -P is needed" >&5
-$as_echo_n "checking if cpp -P is needed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if cpp -P is needed" >&5
+printf %s "checking if cpp -P is needed... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -15661,19 +16504,20 @@ TEST EINVAL TEST
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "TEST.*TEST" >/dev/null 2>&1; then :
+ $EGREP "TEST.*TEST" >/dev/null 2>&1
+then :
cpp=no
-else
+else $as_nop
cpp=yes
fi
-rm -f conftest*
+rm -rf conftest*
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cpp" >&5
-$as_echo "$cpp" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cpp" >&5
+printf "%s\n" "$cpp" >&6; }
if test "x$cpp" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if cpp -P works" >&5
-$as_echo_n "checking if cpp -P works... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if cpp -P works" >&5
+printf %s "checking if cpp -P works... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS -P"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15684,19 +16528,20 @@ TEST EINVAL TEST
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "TEST.*TEST" >/dev/null 2>&1; then :
+ $EGREP "TEST.*TEST" >/dev/null 2>&1
+then :
cpp_p=yes
-else
+else $as_nop
cpp_p=no
fi
-rm -f conftest*
+rm -rf conftest*
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cpp_p" >&5
-$as_echo "$cpp_p" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cpp_p" >&5
+printf "%s\n" "$cpp_p" >&6; }
if test "x$cpp_p" = "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: failed to figure out cpp -P alternative" >&5
-$as_echo "$as_me: WARNING: failed to figure out cpp -P alternative" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: failed to figure out cpp -P alternative" >&5
+printf "%s\n" "$as_me: WARNING: failed to figure out cpp -P alternative" >&2;}
# without -P
CPPPFLAG=""
else
@@ -15722,8 +16567,8 @@ $as_echo "$as_me: WARNING: failed to figure out cpp -P alternative" >&2;}
flags_prefer_cppflags="no"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is DEC/Compaq/HP C" >&5
-$as_echo_n "checking if compiler is DEC/Compaq/HP C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is DEC/Compaq/HP C" >&5
+printf %s "checking if compiler is DEC/Compaq/HP C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -15746,7 +16591,8 @@ CURL_DEF_TOKEN __DECC
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -15790,7 +16636,8 @@ CURL_DEF_TOKEN __DECC_VER
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -15814,21 +16661,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
if test "$curl_cv_have_def___DECC" = "yes" &&
test "$curl_cv_have_def___DECC_VER" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="DEC_C"
flags_dbg_yes="-g2"
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4"
flags_opt_yes="-O1"
flags_opt_off="-O0"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is HP-UX C" >&5
-$as_echo_n "checking if compiler is HP-UX C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is HP-UX C" >&5
+printf %s "checking if compiler is HP-UX C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -15851,7 +16698,8 @@ CURL_DEF_TOKEN __HP_cc
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -15874,21 +16722,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___HP_cc" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="HP_UX_C"
flags_dbg_yes="-g"
flags_opt_all="-O +O0 +O1 +O2 +O3 +O4"
flags_opt_yes="+O2"
flags_opt_off="+O0"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is IBM C" >&5
-$as_echo_n "checking if compiler is IBM C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is IBM C" >&5
+printf %s "checking if compiler is IBM C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -15911,7 +16759,8 @@ CURL_DEF_TOKEN __IBMC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -15934,8 +16783,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___IBMC__" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="IBM_C"
flags_dbg_yes="-g"
flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5"
@@ -15950,13 +16799,13 @@ $as_echo "yes" >&6; }
flags_opt_off="-qnooptimize"
flags_prefer_cppflags="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Intel C" >&5
-$as_echo_n "checking if compiler is Intel C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Intel C" >&5
+printf %s "checking if compiler is Intel C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -15979,7 +16828,8 @@ CURL_DEF_TOKEN __INTEL_COMPILER
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16002,8 +16852,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_num="$curl_cv_def___INTEL_COMPILER"
OLDCPPFLAGS=$CPPFLAGS
@@ -16027,7 +16877,8 @@ CURL_DEF_TOKEN __unix__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16063,13 +16914,13 @@ rm -f conftest.err conftest.i conftest.$ac_ext
flags_opt_off="/Od"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is clang" >&5
-$as_echo_n "checking if compiler is clang... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is clang" >&5
+printf %s "checking if compiler is clang... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16092,7 +16943,8 @@ CURL_DEF_TOKEN __clang__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16115,10 +16967,10 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___clang__" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is xlclang" >&5
-$as_echo_n "checking if compiler is xlclang... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is xlclang" >&5
+printf %s "checking if compiler is xlclang... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16141,7 +16993,8 @@ CURL_DEF_TOKEN __ibmxl__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16164,12 +17017,12 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___ibmxl__" = "yes" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="XLCLANG"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
compiler_id="CLANG"
fi
fullclangver=`$CC -v 2>&1 | grep version`
@@ -16189,13 +17042,13 @@ $as_echo "no" >&6; }
flags_opt_yes="-Os"
flags_opt_off="-O0"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is GNU C" >&5
-$as_echo_n "checking if compiler is GNU C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is GNU C" >&5
+printf %s "checking if compiler is GNU C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16218,7 +17071,8 @@ CURL_DEF_TOKEN __GNUC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16242,8 +17096,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
if test "$curl_cv_have_def___GNUC__" = "yes" &&
test "$compiler_id" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="GNU_C"
gccver=`$CC -dumpversion`
gccvhi=`echo $gccver | cut -d . -f1`
@@ -16275,7 +17129,8 @@ CURL_DEF_TOKEN _WIN32
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16298,13 +17153,13 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is LCC" >&5
-$as_echo_n "checking if compiler is LCC... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is LCC" >&5
+printf %s "checking if compiler is LCC... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16327,7 +17182,8 @@ CURL_DEF_TOKEN __LCC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16350,21 +17206,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___LCC__" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="LCC"
flags_dbg_yes="-g"
flags_opt_all=""
flags_opt_yes=""
flags_opt_off=""
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPSpro C" >&5
-$as_echo_n "checking if compiler is SGI MIPSpro C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPSpro C" >&5
+printf %s "checking if compiler is SGI MIPSpro C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16387,7 +17243,8 @@ CURL_DEF_TOKEN __GNUC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16431,7 +17288,8 @@ CURL_DEF_TOKEN _COMPILER_VERSION
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16475,7 +17333,8 @@ CURL_DEF_TOKEN _SGI_COMPILER_VERSION
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16500,21 +17359,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
if test "$curl_cv_have_def___GNUC__" = "no" &&
(test "$curl_cv_have_def__SGI_COMPILER_VERSION" = "yes" ||
test "$curl_cv_have_def__COMPILER_VERSION" = "yes"); then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="SGI_MIPSPRO_C"
flags_dbg_yes="-g"
flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast"
flags_opt_yes="-O2"
flags_opt_off="-O0"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPS C" >&5
-$as_echo_n "checking if compiler is SGI MIPS C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPS C" >&5
+printf %s "checking if compiler is SGI MIPS C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16537,7 +17396,8 @@ CURL_DEF_TOKEN __GNUC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16581,7 +17441,8 @@ CURL_DEF_TOKEN __sgi
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16606,21 +17467,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
if test "$curl_cv_have_def___GNUC__" = "no" &&
test "$curl_cv_have_def___sgi" = "yes" &&
test "$compiler_id" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="SGI_MIPS_C"
flags_dbg_yes="-g"
flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast"
flags_opt_yes="-O2"
flags_opt_off="-O0"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SunPro C" >&5
-$as_echo_n "checking if compiler is SunPro C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SunPro C" >&5
+printf %s "checking if compiler is SunPro C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16643,7 +17504,8 @@ CURL_DEF_TOKEN __SUNPRO_C
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16666,21 +17528,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___SUNPRO_C" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="SUNPRO_C"
flags_dbg_yes="-g"
flags_opt_all="-O -xO -xO1 -xO2 -xO3 -xO4 -xO5"
flags_opt_yes="-xO2"
flags_opt_off=""
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Tiny C" >&5
-$as_echo_n "checking if compiler is Tiny C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Tiny C" >&5
+printf %s "checking if compiler is Tiny C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16703,7 +17565,8 @@ CURL_DEF_TOKEN __TINYC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16726,21 +17589,21 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___TINYC__" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
compiler_id="TINY_C"
flags_dbg_yes="-g"
flags_opt_all=""
flags_opt_yes=""
flags_opt_off=""
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Watcom C" >&5
-$as_echo_n "checking if compiler is Watcom C... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Watcom C" >&5
+printf %s "checking if compiler is Watcom C... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16763,7 +17626,8 @@ CURL_DEF_TOKEN __WATCOMC__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16786,8 +17650,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
CPPFLAGS=$OLDCPPFLAGS
if test "$curl_cv_have_def___WATCOMC__" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -16810,7 +17674,8 @@ CURL_DEF_TOKEN __UNIX__
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -16846,8 +17711,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
flags_opt_off=""
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
#
@@ -16862,7 +17727,7 @@ $as_echo "no" >&6; }
***
*** If you wish to help the curl project to better support your compiler
*** you can report this and the required info on the libcurl development
-*** mailing list: https://cool.haxx.se/mailman/listinfo/curl-library/
+*** mailing list: https://lists.haxx.selistinfo/curl-library/
***
_EOF
fi
@@ -16979,8 +17844,8 @@ squeeze() {
squeeze tmp_CFLAGS
#
if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5
-$as_echo_n "checking if compiler accepts some basic options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5
+printf %s "checking if compiler accepts some basic options... " >&6; }
CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
squeeze CPPFLAGS
@@ -17003,11 +17868,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -17015,7 +17881,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tmp_compiler_works" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17033,11 +17899,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -17045,7 +17912,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "x$cross_compiling" != "xyes" &&
@@ -17054,12 +17921,13 @@ rm -f core conftest.err conftest.$ac_objext \
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17079,10 +17947,11 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
@@ -17098,17 +17967,17 @@ fi
fi
if test "$tmp_compiler_works" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
-$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
+printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
-$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
+printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
CPPFLAGS="$tmp_save_CPPFLAGS"
CFLAGS="$tmp_save_CFLAGS"
@@ -17130,8 +17999,8 @@ $as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS"
tmp_CPPFLAGS="$CPPFLAGS"
#
if test "$want_debug" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5
-$as_echo_n "checking if compiler accepts debug enabling options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5
+printf %s "checking if compiler accepts debug enabling options... " >&6; }
tmp_options="$flags_dbg_yes"
fi
#
@@ -17161,8 +18030,8 @@ $as_echo_n "checking if compiler accepts debug enabling options... " >&6; }
#
if test "$want_optimize" = "assume_no" ||
test "$want_optimize" = "assume_yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5
-$as_echo_n "checking if compiler optimizer assumed setting might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5
+printf %s "checking if compiler optimizer assumed setting might be used... " >&6; }
ac_var_match_word="no"
@@ -17199,8 +18068,8 @@ $as_echo_n "checking if compiler optimizer assumed setting might be used... " >&
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5
-$as_echo "$honor_optimize_option" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5
+printf "%s\n" "$honor_optimize_option" >&6; }
if test "$honor_optimize_option" = "yes"; then
if test "$want_optimize" = "assume_yes"; then
want_optimize="yes"
@@ -17245,13 +18114,13 @@ $as_echo "$honor_optimize_option" >&6; }
squeeze tmp_CPPFLAGS
if test "$want_optimize" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5
-$as_echo_n "checking if compiler accepts optimizer enabling options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5
+printf %s "checking if compiler accepts optimizer enabling options... " >&6; }
tmp_options="$flags_opt_yes"
fi
if test "$want_optimize" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5
-$as_echo_n "checking if compiler accepts optimizer disabling options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5
+printf %s "checking if compiler accepts optimizer disabling options... " >&6; }
tmp_options="$flags_opt_off"
fi
if test "$flags_prefer_cppflags" = "yes"; then
@@ -17281,11 +18150,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -17293,7 +18163,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tmp_compiler_works" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17311,11 +18181,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -17323,7 +18194,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "x$cross_compiling" != "xyes" &&
@@ -17332,12 +18203,13 @@ rm -f core conftest.err conftest.$ac_objext \
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17357,10 +18229,11 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
@@ -17376,17 +18249,17 @@ fi
fi
if test "$tmp_compiler_works" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5
-$as_echo "$as_me: compiler options added: $tmp_options" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5
+printf "%s\n" "$as_me: compiler options added: $tmp_options" >&6;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5
-$as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5
+printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
CPPFLAGS="$tmp_save_CPPFLAGS"
CFLAGS="$tmp_save_CFLAGS"
@@ -18693,8 +19566,8 @@ $as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
squeeze tmp_CFLAGS
#
if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5
-$as_echo_n "checking if compiler accepts strict warning options... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5
+printf %s "checking if compiler accepts strict warning options... " >&6; }
CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
squeeze CPPFLAGS
@@ -18717,11 +19590,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -18729,7 +19603,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tmp_compiler_works" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18747,11 +19621,12 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
@@ -18759,7 +19634,7 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "x$cross_compiling" != "xyes" &&
@@ -18768,12 +19643,13 @@ rm -f core conftest.err conftest.$ac_objext \
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18793,10 +19669,11 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
tmp_compiler_works="yes"
-else
+else $as_nop
tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
@@ -18812,17 +19689,17 @@ fi
fi
if test "$tmp_compiler_works" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
-$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
+printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
-$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
+printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
CPPFLAGS="$tmp_save_CPPFLAGS"
CFLAGS="$tmp_save_CFLAGS"
@@ -18855,8 +19732,8 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5
-$as_echo_n "checking if compiler halts on compilation errors... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5
+printf %s "checking if compiler halts on compilation errors... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18872,23 +19749,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "compiler does not halt on compilation errors." "$LINENO" 5
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on negative sized arrays" >&5
-$as_echo_n "checking if compiler halts on negative sized arrays... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on negative sized arrays" >&5
+printf %s "checking if compiler halts on negative sized arrays... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18905,23 +19783,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "compiler does not halt on negative sized arrays." "$LINENO" 5
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on function prototype mismatch" >&5
-$as_echo_n "checking if compiler halts on function prototype mismatch... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on function prototype mismatch" >&5
+printf %s "checking if compiler halts on function prototype mismatch... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18949,23 +19828,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "compiler does not halt on function prototype mismatch." "$LINENO" 5
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports hiding library internal symbols" >&5
-$as_echo_n "checking if compiler supports hiding library internal symbols... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports hiding library internal symbols" >&5
+printf %s "checking if compiler supports hiding library internal symbols... " >&6; }
supports_symbol_hiding="no"
symbol_hiding_CFLAGS=""
symbol_hiding_EXTERN=""
@@ -19007,14 +19887,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))"
tmp_CFLAGS="-fvisibility=hidden"
supports_symbol_hiding="yes"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$tmp_save_CFLAGS"
fi
@@ -19058,7 +19939,8 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
supports_symbol_hiding="yes"
if test -f conftest.err; then
@@ -19068,7 +19950,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi
fi
-else
+else $as_nop
supports_symbol_hiding="no"
echo " " >&6
@@ -19077,17 +19959,17 @@ else
echo " " >&6
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
CFLAGS="$tmp_save_CFLAGS"
fi
if test "$supports_symbol_hiding" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
symbol_hiding_CFLAGS="$tmp_CFLAGS"
symbol_hiding_EXTERN="$tmp_EXTERN"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -19096,35 +19978,35 @@ $as_echo "no" >&6; }
if test "$want_curldebug" = "yes"; then
if test "x$enable_shared" != "xno" &&
test "x$enable_shared" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_shared setting." >&5
-$as_echo "$as_me: WARNING: unknown enable_shared setting." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_shared setting." >&5
+printf "%s\n" "$as_me: WARNING: unknown enable_shared setting." >&2;}
supports_curldebug="no"
fi
if test "x$enable_static" != "xno" &&
test "x$enable_static" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_static setting." >&5
-$as_echo "$as_me: WARNING: unknown enable_static setting." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_static setting." >&5
+printf "%s\n" "$as_me: WARNING: unknown enable_static setting." >&2;}
supports_curldebug="no"
fi
if test "$supports_curldebug" != "no"; then
if test "$enable_shared" = "yes" &&
test "x$xc_lt_shlib_use_no_undefined" = 'xyes'; then
supports_curldebug="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: shared library does not support undefined symbols." >&5
-$as_echo "$as_me: WARNING: shared library does not support undefined symbols." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: shared library does not support undefined symbols." >&5
+printf "%s\n" "$as_me: WARNING: shared library does not support undefined symbols." >&2;}
fi
fi
fi
#
if test "$want_curldebug" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if curl debug memory tracking can be enabled" >&5
-$as_echo_n "checking if curl debug memory tracking can be enabled... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if curl debug memory tracking can be enabled" >&5
+printf %s "checking if curl debug memory tracking can be enabled... " >&6; }
test "$supports_curldebug" = "no" || supports_curldebug="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports_curldebug" >&5
-$as_echo "$supports_curldebug" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $supports_curldebug" >&5
+printf "%s\n" "$supports_curldebug" >&6; }
if test "$supports_curldebug" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot enable curl debug memory tracking." >&5
-$as_echo "$as_me: WARNING: cannot enable curl debug memory tracking." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot enable curl debug memory tracking." >&5
+printf "%s\n" "$as_me: WARNING: cannot enable curl debug memory tracking." >&2;}
want_curldebug="no"
fi
fi
@@ -19182,14 +20064,60 @@ else
fi
+# For original MinGW (ie not MinGW-w64) define the Windows minimum supported OS
+# version to Windows XP (0x501) if it hasn't already been defined by the user.
+# Without this override original MinGW defaults the version to Windows NT 4.0.
+# Note original MinGW sets _WIN32_WINNT if not defined to whatever WINVER is.
+case $host in
+ *-*-mingw32*)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if MinGW minimum supported OS should be set to XP" >&5
+printf %s "checking if MinGW minimum supported OS should be set to XP... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <_mingw.h>
+int main (void)
+{
+
+#if defined(__MINGW64_VERSION_MAJOR) || \
+ defined(WINVER) || \
+ defined(_WIN32_WINNT)
+#error
+#endif
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x501"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ;;
+esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
-$as_echo_n "checking for windows.h... " >&6; }
-if ${curl_cv_header_windows_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
+printf %s "checking for windows.h... " >&6; }
+if test ${curl_cv_header_windows_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19215,36 +20143,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_windows_h="yes"
-else
+else $as_nop
curl_cv_header_windows_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
-$as_echo "$curl_cv_header_windows_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
+printf "%s\n" "$curl_cv_header_windows_h" >&6; }
case "$curl_cv_header_windows_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINDOWS_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target is a native Windows one" >&5
-$as_echo_n "checking whether build target is a native Windows one... " >&6; }
-if ${curl_cv_native_windows+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target is a native Windows one" >&5
+printf %s "checking whether build target is a native Windows one... " >&6; }
+if test ${curl_cv_native_windows+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test "$curl_cv_header_windows_h" = "no"; then
curl_cv_native_windows="no"
@@ -19269,21 +20197,22 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_native_windows="yes"
-else
+else $as_nop
curl_cv_native_windows="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_native_windows" >&5
-$as_echo "$curl_cv_native_windows" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_native_windows" >&5
+printf "%s\n" "$curl_cv_native_windows" >&6; }
if test "x$curl_cv_native_windows" = xyes; then
DOING_NATIVE_WINDOWS_TRUE=
DOING_NATIVE_WINDOWS_FALSE='#'
@@ -19296,67 +20225,12 @@ fi
case X-"$curl_cv_native_windows" in
X-yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5
-$as_echo_n "checking for winsock.h... " >&6; }
-if ${curl_cv_header_winsock_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <winsock.h>
-
-int main (void)
-{
-
-#if defined(__CYGWIN__) || defined(__CEGCC__)
- HAVE_WINSOCK_H shall not be defined.
-#else
- int dummy=WSACleanup();
-#endif
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_cv_header_winsock_h="yes"
-
-else
-
- curl_cv_header_winsock_h="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock_h" >&5
-$as_echo "$curl_cv_header_winsock_h" >&6; }
- case "$curl_cv_header_winsock_h" in
- yes)
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK_H 1
-_ACEOF
-
- ;;
- esac
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
-$as_echo_n "checking for winsock2.h... " >&6; }
-if ${curl_cv_header_winsock2_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
+printf %s "checking for winsock2.h... " >&6; }
+if test ${curl_cv_header_winsock2_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19383,36 +20257,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_winsock2_h="yes"
-else
+else $as_nop
curl_cv_header_winsock2_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
-$as_echo "$curl_cv_header_winsock2_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
+printf "%s\n" "$curl_cv_header_winsock2_h" >&6; }
case "$curl_cv_header_winsock2_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
-$as_echo_n "checking for ws2tcpip.h... " >&6; }
-if ${curl_cv_header_ws2tcpip_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
+printf %s "checking for ws2tcpip.h... " >&6; }
+if test ${curl_cv_header_ws2tcpip_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19440,36 +20314,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_ws2tcpip_h="yes"
-else
+else $as_nop
curl_cv_header_ws2tcpip_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
-$as_echo "$curl_cv_header_ws2tcpip_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
+printf "%s\n" "$curl_cv_header_ws2tcpip_h" >&6; }
case "$curl_cv_header_ws2tcpip_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WS2TCPIP_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wincrypt.h" >&5
-$as_echo_n "checking for wincrypt.h... " >&6; }
-if ${curl_cv_header_wincrypt_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wincrypt.h" >&5
+printf %s "checking for wincrypt.h... " >&6; }
+if test ${curl_cv_header_wincrypt_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19492,36 +20366,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_wincrypt_h="yes"
-else
+else $as_nop
curl_cv_header_wincrypt_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_wincrypt_h" >&5
-$as_echo "$curl_cv_header_wincrypt_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_wincrypt_h" >&5
+printf "%s\n" "$curl_cv_header_wincrypt_h" >&6; }
case "$curl_cv_header_wincrypt_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINCRYPT_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINCRYPT_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winldap.h" >&5
-$as_echo_n "checking for winldap.h... " >&6; }
-if ${curl_cv_header_winldap_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winldap.h" >&5
+printf %s "checking for winldap.h... " >&6; }
+if test ${curl_cv_header_winldap_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19551,36 +20425,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_winldap_h="yes"
-else
+else $as_nop
curl_cv_header_winldap_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winldap_h" >&5
-$as_echo "$curl_cv_header_winldap_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winldap_h" >&5
+printf "%s\n" "$curl_cv_header_winldap_h" >&6; }
case "$curl_cv_header_winldap_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINLDAP_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINLDAP_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winber.h" >&5
-$as_echo_n "checking for winber.h... " >&6; }
-if ${curl_cv_header_winber_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winber.h" >&5
+printf %s "checking for winber.h... " >&6; }
+if test ${curl_cv_header_winber_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19612,33 +20486,31 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_winber_h="yes"
-else
+else $as_nop
curl_cv_header_winber_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winber_h" >&5
-$as_echo "$curl_cv_header_winber_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winber_h" >&5
+printf "%s\n" "$curl_cv_header_winber_h" >&6; }
case "$curl_cv_header_winber_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINBER_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINBER_H 1" >>confdefs.h
;;
esac
;;
*)
- curl_cv_header_winsock_h="no"
curl_cv_header_winsock2_h="no"
curl_cv_header_ws2tcpip_h="no"
curl_cv_header_wincrypt_h="no"
@@ -19647,8 +20519,8 @@ _ACEOF
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 file API" >&5
-$as_echo_n "checking whether build target supports WIN32 file API... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 file API" >&5
+printf %s "checking whether build target supports WIN32 file API... " >&6; }
curl_win32_file_api="no"
if test "$curl_cv_header_windows_h" = "yes"; then
if test x"$enable_largefile" != "xno"; then
@@ -19673,12 +20545,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_win32_file_api="win32_large_files"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test "$curl_win32_file_api" = "no"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19700,46 +20573,43 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_win32_file_api="win32_small_files"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
case "$curl_win32_file_api" in
win32_large_files)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5
-$as_echo "yes (large file enabled)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5
+printf "%s\n" "yes (large file enabled)" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define USE_WIN32_LARGE_FILES 1
-_ACEOF
+printf "%s\n" "#define USE_WIN32_LARGE_FILES 1" >>confdefs.h
USE_WIN32_LARGE_FILES=1
;;
win32_small_files)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5
-$as_echo "yes (large file disabled)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5
+printf "%s\n" "yes (large file disabled)" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define USE_WIN32_SMALL_FILES 1
-_ACEOF
+printf "%s\n" "#define USE_WIN32_SMALL_FILES 1" >>confdefs.h
USE_WIN32_SMALL_FILES=1
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 crypto API" >&5
-$as_echo_n "checking whether build target supports WIN32 crypto API... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 crypto API" >&5
+printf %s "checking whether build target supports WIN32 crypto API... " >&6; }
curl_win32_crypto_api="no"
if test "$curl_cv_header_wincrypt_h" = "yes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19767,28 +20637,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_win32_crypto_api="yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
case "$curl_win32_crypto_api" in
yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define USE_WIN32_CRYPTO 1
-_ACEOF
+printf "%s\n" "#define USE_WIN32_CRYPTO 1" >>confdefs.h
USE_WIN32_CRYPTO=1
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
@@ -19802,16 +20671,16 @@ $as_echo "no" >&6; }
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good-to-use Darwin CFLAGS" >&5
-$as_echo_n "checking for good-to-use Darwin CFLAGS... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_cflags" >&5
-$as_echo "$tst_cflags" >&6; };
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good-to-use Darwin CFLAGS" >&5
+printf %s "checking for good-to-use Darwin CFLAGS... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_cflags" >&5
+printf "%s\n" "$tst_cflags" >&6; };
if test "$tst_cflags" = "yes"; then
old_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -Werror=partial-availability"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Werror=partial-availability" >&5
-$as_echo_n "checking whether $CC accepts -Werror=partial-availability... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Werror=partial-availability" >&5
+printf %s "checking whether $CC accepts -Werror=partial-availability... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19822,21 +20691,22 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if ac_fn_c_try_compile "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
CFLAGS=$old_CFLAGS
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to link macOS CoreFoundation and SystemConfiguration framework" >&5
-$as_echo_n "checking whether to link macOS CoreFoundation and SystemConfiguration framework... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to link macOS CoreFoundation and SystemConfiguration framework" >&5
+printf %s "checking whether to link macOS CoreFoundation and SystemConfiguration framework... " >&6; }
case $host_os in
darwin*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19859,33 +20729,34 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
build_for_macos="yes"
-else
+else $as_nop
build_for_macos="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "x$build_for_macos" != xno; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if the compiler supports __builtin_available()" >&5
-$as_echo_n "checking to see if the compiler supports __builtin_available()... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking to see if the compiler supports __builtin_available()" >&5
+printf %s "checking to see if the compiler supports __builtin_available()... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19902,196 +20773,200 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_BUILTIN_AVAILABLE 1
-_ACEOF
+printf "%s\n" "#define HAVE_BUILTIN_AVAILABLE 1" >>confdefs.h
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support http" >&5
-$as_echo_n "checking whether to support http... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support http" >&5
+printf %s "checking whether to support http... " >&6; }
# Check whether --enable-http was given.
-if test "${enable_http+set}" = set; then :
+if test ${enable_http+y}
+then :
enableval=$enable_http; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_HTTP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_HTTP 1" >>confdefs.h
disable_http="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disable HTTP disables FTP over proxy and RTSP" >&5
-$as_echo "$as_me: WARNING: disable HTTP disables FTP over proxy and RTSP" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: disable HTTP disables FTP over proxy and RTSP" >&5
+printf "%s\n" "$as_me: WARNING: disable HTTP disables FTP over proxy and RTSP" >&2;}
CURL_DISABLE_HTTP=1
-$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h
CURL_DISABLE_RTSP=1
-$as_echo "#define CURL_DISABLE_ALTSVC 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_ALTSVC 1" >>confdefs.h
-$as_echo "#define CURL_DISABLE_HSTS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_HSTS 1" >>confdefs.h
curl_h1_msg="no (--enable-http, --with-hyper)"
curl_altsvc_msg="no";
curl_hsts_msg="no (--enable-hsts)";
enable_altsvc="no"
- enable_hsts="no"
+ hsts="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ftp" >&5
-$as_echo_n "checking whether to support ftp... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support ftp" >&5
+printf %s "checking whether to support ftp... " >&6; }
# Check whether --enable-ftp was given.
-if test "${enable_ftp+set}" = set; then :
+if test ${enable_ftp+y}
+then :
enableval=$enable_ftp; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_FTP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_FTP 1" >>confdefs.h
CURL_DISABLE_FTP=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support file" >&5
-$as_echo_n "checking whether to support file... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support file" >&5
+printf %s "checking whether to support file... " >&6; }
# Check whether --enable-file was given.
-if test "${enable_file+set}" = set; then :
+if test ${enable_file+y}
+then :
enableval=$enable_file; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_FILE 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_FILE 1" >>confdefs.h
CURL_DISABLE_FILE=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldap" >&5
-$as_echo_n "checking whether to support ldap... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support ldap" >&5
+printf %s "checking whether to support ldap... " >&6; }
# Check whether --enable-ldap was given.
-if test "${enable_ldap+set}" = set; then :
+if test ${enable_ldap+y}
+then :
enableval=$enable_ldap; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h
CURL_DISABLE_LDAP=1
;;
yes)
ldap_askedfor="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldaps" >&5
-$as_echo_n "checking whether to support ldaps... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support ldaps" >&5
+printf %s "checking whether to support ldaps... " >&6; }
# Check whether --enable-ldaps was given.
-if test "${enable_ldaps+set}" = set; then :
+if test ${enable_ldaps+y}
+then :
enableval=$enable_ldaps; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
;;
*) if test "x$CURL_DISABLE_LDAP" = "x1" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: LDAP needs to be enabled to support LDAPS" >&5
-$as_echo "LDAP needs to be enabled to support LDAPS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: LDAP needs to be enabled to support LDAPS" >&5
+printf "%s\n" "LDAP needs to be enabled to support LDAPS" >&6; }
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LDAP_SSL 1" >>confdefs.h
HAVE_LDAP_SSL=1
fi
;;
esac
-else
+else $as_nop
if test "x$CURL_DISABLE_LDAP" = "x1" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LDAP_SSL 1" >>confdefs.h
HAVE_LDAP_SSL=1
@@ -20105,7 +20980,8 @@ OPT_HYPER="no"
# Check whether --with-hyper was given.
-if test "${with_hyper+set}" = set; then :
+if test ${with_hyper+y}
+then :
withval=$with_hyper; OPT_HYPER=$withval
fi
@@ -20139,11 +21015,12 @@ if test X"$want_hyper" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -20154,11 +21031,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -20170,11 +21051,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -20183,11 +21064,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -20198,11 +21080,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -20214,11 +21100,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -20226,8 +21112,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -20239,8 +21125,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hyper options with pkg-config" >&5
-$as_echo_n "checking for hyper options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hyper options with pkg-config" >&5
+printf %s "checking for hyper options with pkg-config... " >&6; }
itexists=`
if test -n "$want_hyper_path"; then
PKG_CONFIG_LIBDIR="$want_hyper_path"
@@ -20250,11 +21136,11 @@ $as_echo_n "checking for hyper options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -20288,12 +21174,12 @@ $as_echo "found" >&6; }
fi
fi
if test -n "$LIB_HYPER"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_HYPER" >&5
-$as_echo "$as_me: -l is $LIB_HYPER" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_HYPER" >&5
-$as_echo "$as_me: -I is $CPP_HYPER" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_HYPER" >&5
-$as_echo "$as_me: -L is $LD_HYPER" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_HYPER" >&5
+printf "%s\n" "$as_me: -l is $LIB_HYPER" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_HYPER" >&5
+printf "%s\n" "$as_me: -I is $CPP_HYPER" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_HYPER" >&5
+printf "%s\n" "$as_me: -L is $LD_HYPER" >&6;}
LDFLAGS="$LDFLAGS $LD_HYPER"
CPPFLAGS="$CPPFLAGS $CPP_HYPER"
@@ -20303,11 +21189,12 @@ $as_echo "$as_me: -L is $LD_HYPER" >&6;}
DIR_HYPER=`echo $LD_HYPER | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hyper_io_new in -lhyper" >&5
-$as_echo_n "checking for hyper_io_new in -lhyper... " >&6; }
-if ${ac_cv_lib_hyper_hyper_io_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hyper_io_new in -lhyper" >&5
+printf %s "checking for hyper_io_new in -lhyper... " >&6; }
+if test ${ac_cv_lib_hyper_hyper_io_new+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lhyper $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20325,47 +21212,47 @@ return hyper_io_new ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_hyper_hyper_io_new=yes
-else
+else $as_nop
ac_cv_lib_hyper_hyper_io_new=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hyper_hyper_io_new" >&5
-$as_echo "$ac_cv_lib_hyper_hyper_io_new" >&6; }
-if test "x$ac_cv_lib_hyper_hyper_io_new" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hyper_hyper_io_new" >&5
+printf "%s\n" "$ac_cv_lib_hyper_hyper_io_new" >&6; }
+if test "x$ac_cv_lib_hyper_hyper_io_new" = xyes
+then :
- for ac_header in hyper.h
+ for ac_header in hyper.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "hyper.h" "ac_cv_header_hyper_h" "$ac_includes_default"
-if test "x$ac_cv_header_hyper_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_HYPER_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "hyper.h" "ac_cv_header_hyper_h" "$ac_includes_default"
+if test "x$ac_cv_header_hyper_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_HYPER_H 1" >>confdefs.h
experimental="$experimental Hyper"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Hyper support is experimental" >&5
-$as_echo "$as_me: Hyper support is experimental" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Hyper support is experimental" >&5
+printf "%s\n" "$as_me: Hyper support is experimental" >&6;}
curl_h1_msg="enabled (Hyper)"
curl_h2_msg=$curl_h1_msg
HYPER_ENABLED=1
-$as_echo "#define USE_HYPER 1" >>confdefs.h
+printf "%s\n" "#define USE_HYPER 1" >>confdefs.h
USE_HYPER=1
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_HYPER"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&6;}
fi
done
-
-else
+else $as_nop
as_fn_error $? "--with-hyper but hyper was not found. See docs/HYPER.md." "$LINENO" 5
fi
@@ -20374,26 +21261,27 @@ fi
fi
if test X"$want_hyper" != Xno; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Disable RTSP support with hyper" >&5
-$as_echo "$as_me: Disable RTSP support with hyper" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Disable RTSP support with hyper" >&5
+printf "%s\n" "$as_me: Disable RTSP support with hyper" >&6;}
-$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h
CURL_DISABLE_RTSP=1
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5
-$as_echo_n "checking whether to support rtsp... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5
+printf %s "checking whether to support rtsp... " >&6; }
# Check whether --enable-rtsp was given.
-if test "${enable_rtsp+set}" = set; then :
+if test ${enable_rtsp+y}
+then :
enableval=$enable_rtsp; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h
CURL_DISABLE_RTSP=1
@@ -20402,349 +21290,362 @@ $as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h
if test x$CURL_DISABLE_HTTP = x1 ; then
as_fn_error $? "HTTP support needs to be enabled in order to enable RTSP support!" "$LINENO" 5
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_rtsp_msg="enabled"
fi
;;
esac
-else
+else $as_nop
if test "x$CURL_DISABLE_HTTP" != "x1"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_rtsp_msg="enabled"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support proxies" >&5
-$as_echo_n "checking whether to support proxies... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support proxies" >&5
+printf %s "checking whether to support proxies... " >&6; }
# Check whether --enable-proxy was given.
-if test "${enable_proxy+set}" = set; then :
+if test ${enable_proxy+y}
+then :
enableval=$enable_proxy; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_PROXY 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_PROXY 1" >>confdefs.h
CURL_DISABLE_PROXY=1
https_proxy="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support dict" >&5
-$as_echo_n "checking whether to support dict... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support dict" >&5
+printf %s "checking whether to support dict... " >&6; }
# Check whether --enable-dict was given.
-if test "${enable_dict+set}" = set; then :
+if test ${enable_dict+y}
+then :
enableval=$enable_dict; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_DICT 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_DICT 1" >>confdefs.h
CURL_DISABLE_DICT=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support telnet" >&5
-$as_echo_n "checking whether to support telnet... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support telnet" >&5
+printf %s "checking whether to support telnet... " >&6; }
# Check whether --enable-telnet was given.
-if test "${enable_telnet+set}" = set; then :
+if test ${enable_telnet+y}
+then :
enableval=$enable_telnet; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_TELNET 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_TELNET 1" >>confdefs.h
CURL_DISABLE_TELNET=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support tftp" >&5
-$as_echo_n "checking whether to support tftp... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support tftp" >&5
+printf %s "checking whether to support tftp... " >&6; }
# Check whether --enable-tftp was given.
-if test "${enable_tftp+set}" = set; then :
+if test ${enable_tftp+y}
+then :
enableval=$enable_tftp; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_TFTP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_TFTP 1" >>confdefs.h
CURL_DISABLE_TFTP=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support pop3" >&5
-$as_echo_n "checking whether to support pop3... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support pop3" >&5
+printf %s "checking whether to support pop3... " >&6; }
# Check whether --enable-pop3 was given.
-if test "${enable_pop3+set}" = set; then :
+if test ${enable_pop3+y}
+then :
enableval=$enable_pop3; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_POP3 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_POP3 1" >>confdefs.h
CURL_DISABLE_POP3=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support imap" >&5
-$as_echo_n "checking whether to support imap... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support imap" >&5
+printf %s "checking whether to support imap... " >&6; }
# Check whether --enable-imap was given.
-if test "${enable_imap+set}" = set; then :
+if test ${enable_imap+y}
+then :
enableval=$enable_imap; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_IMAP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_IMAP 1" >>confdefs.h
CURL_DISABLE_IMAP=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support smb" >&5
-$as_echo_n "checking whether to support smb... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support smb" >&5
+printf %s "checking whether to support smb... " >&6; }
# Check whether --enable-smb was given.
-if test "${enable_smb+set}" = set; then :
+if test ${enable_smb+y}
+then :
enableval=$enable_smb; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_SMB 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_SMB 1" >>confdefs.h
CURL_DISABLE_SMB=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support smtp" >&5
-$as_echo_n "checking whether to support smtp... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support smtp" >&5
+printf %s "checking whether to support smtp... " >&6; }
# Check whether --enable-smtp was given.
-if test "${enable_smtp+set}" = set; then :
+if test ${enable_smtp+y}
+then :
enableval=$enable_smtp; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_SMTP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_SMTP 1" >>confdefs.h
CURL_DISABLE_SMTP=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support gopher" >&5
-$as_echo_n "checking whether to support gopher... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support gopher" >&5
+printf %s "checking whether to support gopher... " >&6; }
# Check whether --enable-gopher was given.
-if test "${enable_gopher+set}" = set; then :
+if test ${enable_gopher+y}
+then :
enableval=$enable_gopher; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_GOPHER 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_GOPHER 1" >>confdefs.h
CURL_DISABLE_GOPHER=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support mqtt" >&5
-$as_echo_n "checking whether to support mqtt... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support mqtt" >&5
+printf %s "checking whether to support mqtt... " >&6; }
# Check whether --enable-mqtt was given.
-if test "${enable_mqtt+set}" = set; then :
+if test ${enable_mqtt+y}
+then :
enableval=$enable_mqtt; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_MQTT 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_MQTT 1" >>confdefs.h
CURL_DISABLE_MQTT=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to provide built-in manual" >&5
-$as_echo_n "checking whether to provide built-in manual... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to provide built-in manual" >&5
+printf %s "checking whether to provide built-in manual... " >&6; }
# Check whether --enable-manual was given.
-if test "${enable_manual+set}" = set; then :
+if test ${enable_manual+y}
+then :
enableval=$enable_manual; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
USE_MANUAL="1"
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
USE_MANUAL="1"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable generation of C code" >&5
-$as_echo_n "checking whether to enable generation of C code... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable generation of C code" >&5
+printf %s "checking whether to enable generation of C code... " >&6; }
# Check whether --enable-libcurl_option was given.
-if test "${enable_libcurl_option+set}" = set; then :
+if test ${enable_libcurl_option+y}
+then :
enableval=$enable_libcurl_option; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_LIBCURL_OPTION 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LIBCURL_OPTION 1" >>confdefs.h
curl_libcurl_msg="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use libgcc" >&5
-$as_echo_n "checking whether to use libgcc... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use libgcc" >&5
+printf %s "checking whether to use libgcc... " >&6; }
# Check whether --enable-libgcc was given.
-if test "${enable_libgcc+set}" = set; then :
+if test ${enable_libgcc+y}
+then :
enableval=$enable_libgcc; case "$enableval" in
yes)
LIBS="-lgcc $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if X/Open network library is required" >&5
-$as_echo_n "checking if X/Open network library is required... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if X/Open network library is required" >&5
+printf %s "checking if X/Open network library is required... " >&6; }
tst_lib_xnet_required="no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -20763,27 +21664,30 @@ int main (void)
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_lib_xnet_required="yes"
LIBS="-lxnet $LIBS"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_lib_xnet_required" >&5
-$as_echo "$tst_lib_xnet_required" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_lib_xnet_required" >&5
+printf "%s\n" "$tst_lib_xnet_required" >&6; }
ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = xyes; then :
+if test "x$ac_cv_func_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
-$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+printf %s "checking for gethostbyname in -lnsl... " >&6; }
+if test ${ac_cv_lib_nsl_gethostbyname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20801,18 +21705,20 @@ return gethostbyname ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_nsl_gethostbyname=yes
-else
+else $as_nop
ac_cv_lib_nsl_gethostbyname=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
-$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+printf "%s\n" "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
LIBS="-lnsl $LIBS"
@@ -20824,11 +21730,12 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5
-$as_echo_n "checking for gethostbyname in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_gethostbyname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5
+printf %s "checking for gethostbyname in -lsocket... " >&6; }
+if test ${ac_cv_lib_socket_gethostbyname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20846,18 +21753,20 @@ return gethostbyname ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_socket_gethostbyname=yes
-else
+else $as_nop
ac_cv_lib_socket_gethostbyname=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5
-$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; }
-if test "x$ac_cv_lib_socket_gethostbyname" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5
+printf "%s\n" "$ac_cv_lib_socket_gethostbyname" >&6; }
+if test "x$ac_cv_lib_socket_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
LIBS="-lsocket $LIBS"
@@ -20867,11 +21776,12 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lwatt" >&5
-$as_echo_n "checking for gethostbyname in -lwatt... " >&6; }
-if ${ac_cv_lib_watt_gethostbyname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lwatt" >&5
+printf %s "checking for gethostbyname in -lwatt... " >&6; }
+if test ${ac_cv_lib_watt_gethostbyname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lwatt $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20889,18 +21799,20 @@ return gethostbyname ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_watt_gethostbyname=yes
-else
+else $as_nop
ac_cv_lib_watt_gethostbyname=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_watt_gethostbyname" >&5
-$as_echo "$ac_cv_lib_watt_gethostbyname" >&6; }
-if test "x$ac_cv_lib_watt_gethostbyname" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_watt_gethostbyname" >&5
+printf "%s\n" "$ac_cv_lib_watt_gethostbyname" >&6; }
+if test "x$ac_cv_lib_watt_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
CPPFLAGS="-I/dev/env/WATT_ROOT/inc"
LDFLAGS="-L/dev/env/WATT_ROOT/lib"
@@ -20912,8 +21824,8 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname with both nsl and socket libs" >&5
-$as_echo_n "checking for gethostbyname with both nsl and socket libs... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname with both nsl and socket libs" >&5
+printf %s "checking for gethostbyname with both nsl and socket libs... " >&6; }
my_ac_save_LIBS=$LIBS
LIBS="-lnsl -lsocket $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20931,44 +21843,35 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_GETHOSTBYNAME="1"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
LIBS=$my_ac_save_LIBS
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
if test "$curl_cv_header_windows_h" = "yes"; then
- if test "$curl_cv_header_winsock_h" = "yes"; then
- case $host in
- *-*-mingw32ce*)
- winsock_LIB="-lwinsock"
- ;;
- *)
- winsock_LIB="-lwsock32"
- ;;
- esac
- fi
if test "$curl_cv_header_winsock2_h" = "yes"; then
winsock_LIB="-lws2_32"
fi
if test ! -z "$winsock_LIB"; then
my_ac_save_LIBS=$LIBS
LIBS="$winsock_LIB $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in $winsock_LIB" >&5
-$as_echo_n "checking for gethostbyname in $winsock_LIB... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in $winsock_LIB" >&5
+printf %s "checking for gethostbyname in $winsock_LIB... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -20980,10 +21883,6 @@ $as_echo_n "checking for gethostbyname in $winsock_LIB... " >&6; }
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
@@ -20997,21 +21896,22 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_GETHOSTBYNAME="1"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
winsock_LIB=""
LIBS=$my_ac_save_LIBS
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
fi
@@ -21019,8 +21919,8 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for Minix 3" >&5
-$as_echo_n "checking for gethostbyname for Minix 3... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for Minix 3" >&5
+printf %s "checking for gethostbyname for Minix 3... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21038,26 +21938,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_GETHOSTBYNAME="1"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for eCos" >&5
-$as_echo_n "checking for gethostbyname for eCos... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for eCos" >&5
+printf %s "checking for gethostbyname for eCos... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21075,26 +21976,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_GETHOSTBYNAME="1"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$HAVE_GETHOSTBYNAME" != "1" -o "${with_amissl+set}" = set
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for AmigaOS bsdsocket.library" >&5
-$as_echo_n "checking for gethostbyname for AmigaOS bsdsocket.library... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for AmigaOS bsdsocket.library" >&5
+printf %s "checking for gethostbyname for AmigaOS bsdsocket.library... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21112,35 +22014,37 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVE_GETHOSTBYNAME="1"
HAVE_PROTO_BSDSOCKET_H="1"
-$as_echo "#define HAVE_PROTO_BSDSOCKET_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PROTO_BSDSOCKET_H 1" >>confdefs.h
HAVE_PROTO_BSDSOCKET_H=1
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnetwork" >&5
-$as_echo_n "checking for gethostbyname in -lnetwork... " >&6; }
-if ${ac_cv_lib_network_gethostbyname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnetwork" >&5
+printf %s "checking for gethostbyname in -lnetwork... " >&6; }
+if test ${ac_cv_lib_network_gethostbyname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnetwork $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21158,18 +22062,20 @@ return gethostbyname ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_network_gethostbyname=yes
-else
+else $as_nop
ac_cv_lib_network_gethostbyname=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_gethostbyname" >&5
-$as_echo "$ac_cv_lib_network_gethostbyname" >&6; }
-if test "x$ac_cv_lib_network_gethostbyname" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_gethostbyname" >&5
+printf "%s\n" "$ac_cv_lib_network_gethostbyname" >&6; }
+if test "x$ac_cv_lib_network_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
LIBS="-lnetwork $LIBS"
@@ -21179,11 +22085,12 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnet" >&5
-$as_echo_n "checking for gethostbyname in -lnet... " >&6; }
-if ${ac_cv_lib_net_gethostbyname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnet" >&5
+printf %s "checking for gethostbyname in -lnet... " >&6; }
+if test ${ac_cv_lib_net_gethostbyname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnet $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21201,18 +22108,20 @@ return gethostbyname ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_net_gethostbyname=yes
-else
+else $as_nop
ac_cv_lib_net_gethostbyname=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_gethostbyname" >&5
-$as_echo "$ac_cv_lib_net_gethostbyname" >&6; }
-if test "x$ac_cv_lib_net_gethostbyname" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_gethostbyname" >&5
+printf "%s\n" "$ac_cv_lib_net_gethostbyname" >&6; }
+if test "x$ac_cv_lib_net_gethostbyname" = xyes
+then :
HAVE_GETHOSTBYNAME="1"
LIBS="-lnet $LIBS"
@@ -21235,19 +22144,16 @@ curl_includes_winsock2="\
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
/* includes end */"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
-$as_echo_n "checking for windows.h... " >&6; }
-if ${curl_cv_header_windows_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
+printf %s "checking for windows.h... " >&6; }
+if test ${curl_cv_header_windows_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21273,92 +22179,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_windows_h="yes"
-else
+else $as_nop
curl_cv_header_windows_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
-$as_echo "$curl_cv_header_windows_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
+printf "%s\n" "$curl_cv_header_windows_h" >&6; }
case "$curl_cv_header_windows_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINDOWS_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5
-$as_echo_n "checking for winsock.h... " >&6; }
-if ${curl_cv_header_winsock_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <winsock.h>
-
-int main (void)
-{
-
-#if defined(__CYGWIN__) || defined(__CEGCC__)
- HAVE_WINSOCK_H shall not be defined.
-#else
- int dummy=WSACleanup();
-#endif
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_cv_header_winsock_h="yes"
-
-else
-
- curl_cv_header_winsock_h="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock_h" >&5
-$as_echo "$curl_cv_header_winsock_h" >&6; }
- case "$curl_cv_header_winsock_h" in
- yes)
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK_H 1
-_ACEOF
-
- ;;
- esac
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
-$as_echo_n "checking for winsock2.h... " >&6; }
-if ${curl_cv_header_winsock2_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
+printf %s "checking for winsock2.h... " >&6; }
+if test ${curl_cv_header_winsock2_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21385,26 +22235,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_winsock2_h="yes"
-else
+else $as_nop
curl_cv_header_winsock2_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
-$as_echo "$curl_cv_header_winsock2_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
+printf "%s\n" "$curl_cv_header_winsock2_h" >&6; }
case "$curl_cv_header_winsock2_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
;;
esac
@@ -21418,23 +22267,18 @@ curl_includes_bsdsocket="\
struct Library *SocketBase = NULL;
#endif
/* includes end */"
- for ac_header in proto/bsdsocket.h
-do :
ac_fn_c_check_header_compile "$LINENO" "proto/bsdsocket.h" "ac_cv_header_proto_bsdsocket_h" " $curl_includes_bsdsocket
"
-if test "x$ac_cv_header_proto_bsdsocket_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PROTO_BSDSOCKET_H 1
-_ACEOF
+if test "x$ac_cv_header_proto_bsdsocket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_PROTO_BSDSOCKET_H 1" >>confdefs.h
fi
-done
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in libraries" >&5
-$as_echo_n "checking for connect in libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for connect in libraries" >&5
+printf %s "checking for connect in libraries... " >&6; }
tst_connect_save_LIBS="$LIBS"
tst_connect_need_LIBS="unknown"
for tst_lib in '' '-lsocket' ; do
@@ -21461,12 +22305,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_connect_need_LIBS="$tst_lib"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
done
@@ -21474,17 +22319,17 @@ rm -f core conftest.err conftest.$ac_objext \
#
case X-"$tst_connect_need_LIBS" in
X-unknown)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find connect" >&5
-$as_echo "cannot find connect" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find connect" >&5
+printf "%s\n" "cannot find connect" >&6; }
as_fn_error $? "cannot find connect function in libraries." "$LINENO" 5
;;
X-)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_connect_need_LIBS" >&5
-$as_echo "$tst_connect_need_LIBS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_connect_need_LIBS" >&5
+printf "%s\n" "$tst_connect_need_LIBS" >&6; }
LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS"
;;
esac
@@ -21493,21 +22338,21 @@ $as_echo "$tst_connect_need_LIBS" >&6; }
CURL_NETWORK_LIBS=$LIBS
- for ac_header in sys/types.h sys/time.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
-done
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for monotonic clock_gettime" >&5
-$as_echo_n "checking for monotonic clock_gettime... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for monotonic clock_gettime" >&5
+printf %s "checking for monotonic clock_gettime... " >&6; }
#
if test "x$dontwant_rt" = "xno" ; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21533,28 +22378,29 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_func_clock_gettime="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_func_clock_gettime="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$curl_func_clock_gettime" = "yes"; then
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in libraries" >&5
-$as_echo_n "checking for clock_gettime in libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in libraries" >&5
+printf %s "checking for clock_gettime in libraries... " >&6; }
#
curl_cv_save_LIBS="$LIBS"
curl_cv_gclk_LIBS="unknown"
@@ -21589,12 +22435,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
curl_cv_gclk_LIBS="$x_xlibs"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
done
@@ -21603,15 +22450,15 @@ rm -f core conftest.err conftest.$ac_objext \
#
case X-"$curl_cv_gclk_LIBS" in
X-unknown)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find clock_gettime" >&5
-$as_echo "cannot find clock_gettime" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5
-$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find clock_gettime" >&5
+printf "%s\n" "cannot find clock_gettime" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5
+printf "%s\n" "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;}
curl_func_clock_gettime="no"
;;
X-)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5
-$as_echo "no additional lib required" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5
+printf "%s\n" "no additional lib required" >&6; }
curl_func_clock_gettime="yes"
;;
*)
@@ -21620,26 +22467,27 @@ $as_echo "no additional lib required" >&6; }
else
LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_gclk_LIBS" >&5
-$as_echo "$curl_cv_gclk_LIBS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_gclk_LIBS" >&5
+printf "%s\n" "$curl_cv_gclk_LIBS" >&6; }
curl_func_clock_gettime="yes"
;;
esac
#
if test "x$cross_compiling" != "xyes" &&
test "$curl_func_clock_gettime" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5
-$as_echo_n "checking if monotonic clock_gettime works... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5
+printf %s "checking if monotonic clock_gettime works... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -21669,15 +22517,16 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5
-$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5
+printf "%s\n" "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;}
curl_func_clock_gettime="no"
LIBS="$curl_cv_save_LIBS"
@@ -21693,9 +22542,7 @@ fi
case "$curl_func_clock_gettime" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_CLOCK_GETTIME_MONOTONIC 1
-_ACEOF
+printf "%s\n" "#define HAVE_CLOCK_GETTIME_MONOTONIC 1" >>confdefs.h
;;
esac
@@ -21714,14 +22561,15 @@ clean_LIBS=$LIBS
ZLIB_LIBS=""
# Check whether --with-zlib was given.
-if test "${with_zlib+set}" = set; then :
+if test ${with_zlib+y}
+then :
withval=$with_zlib; OPT_ZLIB="$withval"
fi
if test "$OPT_ZLIB" = "no" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
-$as_echo "$as_me: WARNING: zlib disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
+printf "%s\n" "$as_me: WARNING: zlib disabled" >&2;}
else
if test "$OPT_ZLIB" = "yes" ; then
OPT_ZLIB=""
@@ -21735,11 +22583,12 @@ else
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -21750,11 +22599,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -21766,11 +22619,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -21779,11 +22632,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -21794,11 +22648,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -21810,11 +22668,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -21822,8 +22680,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -21835,8 +22693,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib options with pkg-config" >&5
-$as_echo_n "checking for zlib options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zlib options with pkg-config" >&5
+printf %s "checking for zlib options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -21846,11 +22704,11 @@ $as_echo_n "checking for zlib options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -21866,11 +22724,12 @@ $as_echo "found" >&6; }
if test -z "$HAVE_LIBZ"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateEnd in -lz" >&5
-$as_echo_n "checking for inflateEnd in -lz... " >&6; }
-if ${ac_cv_lib_z_inflateEnd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inflateEnd in -lz" >&5
+printf %s "checking for inflateEnd in -lz... " >&6; }
+if test ${ac_cv_lib_z_inflateEnd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21888,21 +22747,23 @@ return inflateEnd ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_z_inflateEnd=yes
-else
+else $as_nop
ac_cv_lib_z_inflateEnd=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateEnd" >&5
-$as_echo "$ac_cv_lib_z_inflateEnd" >&6; }
-if test "x$ac_cv_lib_z_inflateEnd" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateEnd" >&5
+printf "%s\n" "$ac_cv_lib_z_inflateEnd" >&6; }
+if test "x$ac_cv_lib_z_inflateEnd" = xyes
+then :
HAVE_LIBZ="1"
LIBS="-lz $LIBS"
-else
+else $as_nop
OPT_ZLIB="/usr/local"
fi
@@ -21914,16 +22775,18 @@ fi
LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff"
fi
- ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_zlib_h" = xyes; then :
+ ac_fn_c_check_header_compile "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes
+then :
HAVE_ZLIB_H="1"
if test "$HAVE_LIBZ" != "1"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
-$as_echo_n "checking for gzread in -lz... " >&6; }
-if ${ac_cv_lib_z_gzread+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5
+printf %s "checking for gzread in -lz... " >&6; }
+if test ${ac_cv_lib_z_gzread+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21941,30 +22804,32 @@ return gzread ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_z_gzread=yes
-else
+else $as_nop
ac_cv_lib_z_gzread=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
-$as_echo "$ac_cv_lib_z_gzread" >&6; }
-if test "x$ac_cv_lib_z_gzread" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5
+printf "%s\n" "$ac_cv_lib_z_gzread" >&6; }
+if test "x$ac_cv_lib_z_gzread" = xyes
+then :
HAVE_LIBZ="1"
LIBS="-lz $LIBS"
-else
+else $as_nop
CPPFLAGS=$clean_CPPFLAGS
LDFLAGS=$clean_LDFLAGS
fi
fi
-else
+else $as_nop
CPPFLAGS=$clean_CPPFLAGS
LDFLAGS=$clean_LDFLAGS
@@ -21972,19 +22837,18 @@ else
fi
-
if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz lib, not the header file!" >&5
-$as_echo "$as_me: WARNING: configure found only the libz lib, not the header file!" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz lib, not the header file!" >&5
+printf "%s\n" "$as_me: WARNING: configure found only the libz lib, not the header file!" >&2;}
HAVE_LIBZ=""
CPPFLAGS=$clean_CPPFLAGS
LDFLAGS=$clean_LDFLAGS
LIBS=$clean_LIBS
elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz header file, not the lib!" >&5
-$as_echo "$as_me: WARNING: configure found only the libz header file, not the lib!" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz header file, not the lib!" >&5
+printf "%s\n" "$as_me: WARNING: configure found only the libz header file, not the lib!" >&2;}
CPPFLAGS=$clean_CPPFLAGS
LDFLAGS=$clean_LDFLAGS
LIBS=$clean_LIBS
@@ -21992,18 +22856,18 @@ $as_echo "$as_me: WARNING: configure found only the libz header file, not the li
then
-$as_echo "#define HAVE_ZLIB_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_ZLIB_H 1" >>confdefs.h
-$as_echo "#define HAVE_LIBZ 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBZ 1" >>confdefs.h
ZLIB_LIBS="-lz"
LIBS="-lz $clean_LIBS"
AMFIXLIB="1"
- { $as_echo "$as_me:${as_lineno-$LINENO}: found both libz and libz.h header" >&5
-$as_echo "$as_me: found both libz and libz.h header" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: found both libz and libz.h header" >&5
+printf "%s\n" "$as_me: found both libz and libz.h header" >&6;}
curl_zlib_msg="enabled"
fi
fi
@@ -22023,7 +22887,8 @@ fi
OPT_BROTLI=off
# Check whether --with-brotli was given.
-if test "${with_brotli+set}" = set; then :
+if test ${with_brotli+y}
+then :
withval=$with_brotli; OPT_BROTLI=$withval
fi
@@ -22042,11 +22907,12 @@ if test X"$OPT_BROTLI" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -22057,11 +22923,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -22073,11 +22943,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -22086,11 +22956,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -22101,11 +22972,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -22117,11 +22992,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -22129,8 +23004,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -22142,8 +23017,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libbrotlidec options with pkg-config" >&5
-$as_echo_n "checking for libbrotlidec options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libbrotlidec options with pkg-config" >&5
+printf %s "checking for libbrotlidec options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -22153,11 +23028,11 @@ $as_echo_n "checking for libbrotlidec options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -22189,11 +23064,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $CPP_BROTLI"
LIBS="$LIB_BROTLI $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BrotliDecoderDecompress in -lbrotlidec" >&5
-$as_echo_n "checking for BrotliDecoderDecompress in -lbrotlidec... " >&6; }
-if ${ac_cv_lib_brotlidec_BrotliDecoderDecompress+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BrotliDecoderDecompress in -lbrotlidec" >&5
+printf %s "checking for BrotliDecoderDecompress in -lbrotlidec... " >&6; }
+if test ${ac_cv_lib_brotlidec_BrotliDecoderDecompress+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbrotlidec $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22211,38 +23087,37 @@ return BrotliDecoderDecompress ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_brotlidec_BrotliDecoderDecompress=yes
-else
+else $as_nop
ac_cv_lib_brotlidec_BrotliDecoderDecompress=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brotlidec_BrotliDecoderDecompress" >&5
-$as_echo "$ac_cv_lib_brotlidec_BrotliDecoderDecompress" >&6; }
-if test "x$ac_cv_lib_brotlidec_BrotliDecoderDecompress" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBBROTLIDEC 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brotlidec_BrotliDecoderDecompress" >&5
+printf "%s\n" "$ac_cv_lib_brotlidec_BrotliDecoderDecompress" >&6; }
+if test "x$ac_cv_lib_brotlidec_BrotliDecoderDecompress" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBBROTLIDEC 1" >>confdefs.h
LIBS="-lbrotlidec $LIBS"
fi
- for ac_header in brotli/decode.h
+ for ac_header in brotli/decode.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "brotli/decode.h" "ac_cv_header_brotli_decode_h" "$ac_includes_default"
-if test "x$ac_cv_header_brotli_decode_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_BROTLI_DECODE_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "brotli/decode.h" "ac_cv_header_brotli_decode_h" "$ac_includes_default"
+if test "x$ac_cv_header_brotli_decode_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_BROTLI_DECODE_H 1" >>confdefs.h
curl_brotli_msg="enabled (libbrotlidec)"
HAVE_BROTLI=1
-$as_echo "#define HAVE_BROTLI 1" >>confdefs.h
+printf "%s\n" "#define HAVE_BROTLI 1" >>confdefs.h
HAVE_BROTLI=1
@@ -22251,7 +23126,6 @@ fi
done
-
if test X"$OPT_BROTLI" != Xoff &&
test "$HAVE_BROTLI" != "1"; then
as_fn_error $? "BROTLI libs and/or directories were not found where specified!" "$LINENO" 5
@@ -22263,8 +23137,8 @@ done
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_BROTLI"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_BROTLI to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_BROTLI to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_BROTLI to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_BROTLI to CURL_LIBRARY_PATH" >&6;}
fi
fi
else
@@ -22278,7 +23152,8 @@ fi
OPT_ZSTD=off
# Check whether --with-zstd was given.
-if test "${with_zstd+set}" = set; then :
+if test ${with_zstd+y}
+then :
withval=$with_zstd; OPT_ZSTD=$withval
fi
@@ -22297,11 +23172,12 @@ if test X"$OPT_ZSTD" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -22312,11 +23188,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -22328,11 +23208,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -22341,11 +23221,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -22356,11 +23237,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -22372,11 +23257,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -22384,8 +23269,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -22397,8 +23282,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzstd options with pkg-config" >&5
-$as_echo_n "checking for libzstd options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libzstd options with pkg-config" >&5
+printf %s "checking for libzstd options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -22408,11 +23293,11 @@ $as_echo_n "checking for libzstd options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -22444,11 +23329,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $CPP_ZSTD"
LIBS="$LIB_ZSTD $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZSTD_createDStream in -lzstd" >&5
-$as_echo_n "checking for ZSTD_createDStream in -lzstd... " >&6; }
-if ${ac_cv_lib_zstd_ZSTD_createDStream+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ZSTD_createDStream in -lzstd" >&5
+printf %s "checking for ZSTD_createDStream in -lzstd... " >&6; }
+if test ${ac_cv_lib_zstd_ZSTD_createDStream+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lzstd $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22466,38 +23352,37 @@ return ZSTD_createDStream ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_zstd_ZSTD_createDStream=yes
-else
+else $as_nop
ac_cv_lib_zstd_ZSTD_createDStream=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zstd_ZSTD_createDStream" >&5
-$as_echo "$ac_cv_lib_zstd_ZSTD_createDStream" >&6; }
-if test "x$ac_cv_lib_zstd_ZSTD_createDStream" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZSTD 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zstd_ZSTD_createDStream" >&5
+printf "%s\n" "$ac_cv_lib_zstd_ZSTD_createDStream" >&6; }
+if test "x$ac_cv_lib_zstd_ZSTD_createDStream" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBZSTD 1" >>confdefs.h
LIBS="-lzstd $LIBS"
fi
- for ac_header in zstd.h
+ for ac_header in zstd.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "zstd.h" "ac_cv_header_zstd_h" "$ac_includes_default"
-if test "x$ac_cv_header_zstd_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_ZSTD_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "zstd.h" "ac_cv_header_zstd_h" "$ac_includes_default"
+if test "x$ac_cv_header_zstd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ZSTD_H 1" >>confdefs.h
curl_zstd_msg="enabled (libzstd)"
HAVE_ZSTD=1
-$as_echo "#define HAVE_ZSTD 1" >>confdefs.h
+printf "%s\n" "#define HAVE_ZSTD 1" >>confdefs.h
HAVE_ZSTD=1
@@ -22506,7 +23391,6 @@ fi
done
-
if test X"$OPT_ZSTD" != Xoff &&
test "$HAVE_ZSTD" != "1"; then
as_fn_error $? "libzstd was not found where specified!" "$LINENO" 5
@@ -22518,8 +23402,8 @@ done
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_ZSTD"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_ZSTD to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_ZSTD to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_ZSTD to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_ZSTD to CURL_LIBRARY_PATH" >&6;}
fi
fi
else
@@ -22533,7 +23417,8 @@ fi
LDAPLIBNAME=""
# Check whether --with-ldap-lib was given.
-if test "${with_ldap_lib+set}" = set; then :
+if test ${with_ldap_lib+y}
+then :
withval=$with_ldap_lib; LDAPLIBNAME="$withval"
fi
@@ -22541,7 +23426,8 @@ fi
LBERLIBNAME=""
# Check whether --with-lber-lib was given.
-if test "${with_lber_lib+set}" = set; then :
+if test ${with_lber_lib+y}
+then :
withval=$with_lber_lib; LBERLIBNAME="$withval"
fi
@@ -22549,11 +23435,12 @@ fi
if test x$CURL_DISABLE_LDAP != x1 ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lber.h" >&5
-$as_echo_n "checking for lber.h... " >&6; }
-if ${curl_cv_header_lber_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lber.h" >&5
+printf %s "checking for lber.h... " >&6; }
+if test ${curl_cv_header_lber_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -22587,25 +23474,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_lber_h="yes"
-else
+else $as_nop
curl_cv_header_lber_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_lber_h" >&5
-$as_echo "$curl_cv_header_lber_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_lber_h" >&5
+printf "%s\n" "$curl_cv_header_lber_h" >&6; }
if test "$curl_cv_header_lber_h" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LBER_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_LBER_H 1" >>confdefs.h
#
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22643,34 +23529,34 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_need_header_lber_h="no"
-else
+else $as_nop
curl_cv_need_header_lber_h="yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
case "$curl_cv_need_header_lber_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define NEED_LBER_H 1
-_ACEOF
+printf "%s\n" "#define NEED_LBER_H 1" >>confdefs.h
;;
esac
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap.h" >&5
-$as_echo_n "checking for ldap.h... " >&6; }
-if ${curl_cv_header_ldap_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ldap.h" >&5
+printf %s "checking for ldap.h... " >&6; }
+if test ${curl_cv_header_ldap_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -22706,36 +23592,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_ldap_h="yes"
-else
+else $as_nop
curl_cv_header_ldap_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldap_h" >&5
-$as_echo "$curl_cv_header_ldap_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldap_h" >&5
+printf "%s\n" "$curl_cv_header_ldap_h" >&6; }
case "$curl_cv_header_ldap_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LDAP_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_LDAP_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl.h" >&5
-$as_echo_n "checking for ldapssl.h... " >&6; }
-if ${curl_cv_header_ldapssl_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ldapssl.h" >&5
+printf %s "checking for ldapssl.h... " >&6; }
+if test ${curl_cv_header_ldapssl_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -22777,36 +23663,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_ldapssl_h="yes"
-else
+else $as_nop
curl_cv_header_ldapssl_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldapssl_h" >&5
-$as_echo "$curl_cv_header_ldapssl_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldapssl_h" >&5
+printf "%s\n" "$curl_cv_header_ldapssl_h" >&6; }
case "$curl_cv_header_ldapssl_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LDAPSSL_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_LDAPSSL_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_ssl.h" >&5
-$as_echo_n "checking for ldap_ssl.h... " >&6; }
-if ${curl_cv_header_ldap_ssl_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ldap_ssl.h" >&5
+printf %s "checking for ldap_ssl.h... " >&6; }
+if test ${curl_cv_header_ldap_ssl_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -22844,26 +23730,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_ldap_ssl_h="yes"
-else
+else $as_nop
curl_cv_header_ldap_ssl_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldap_ssl_h" >&5
-$as_echo "$curl_cv_header_ldap_ssl_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ldap_ssl_h" >&5
+printf "%s\n" "$curl_cv_header_ldap_ssl_h" >&6; }
case "$curl_cv_header_ldap_ssl_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LDAP_SSL_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_LDAP_SSL_H 1" >>confdefs.h
;;
esac
@@ -22877,12 +23762,13 @@ _ACEOF
fi
if test "$LDAPLIBNAME" ; then
- as_ac_Lib=`$as_echo "ac_cv_lib_"$LDAPLIBNAME"''_ldap_init" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_init in -l\"$LDAPLIBNAME\"" >&5
-$as_echo_n "checking for ldap_init in -l\"$LDAPLIBNAME\"... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_Lib=`printf "%s\n" "ac_cv_lib_"$LDAPLIBNAME"""_ldap_init" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ldap_init in -l\"$LDAPLIBNAME\"" >&5
+printf %s "checking for ldap_init in -l\"$LDAPLIBNAME\"... " >&6; }
+if eval test \${$as_ac_Lib+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-l"$LDAPLIBNAME" $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22900,39 +23786,41 @@ return ldap_init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
eval "$as_ac_Lib=yes"
-else
+else $as_nop
eval "$as_ac_Lib=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
eval ac_res=\$$as_ac_Lib
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_LIB"$LDAPLIBNAME"" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_LIB"$LDAPLIBNAME"" | $as_tr_cpp` 1
_ACEOF
LIBS="-l"$LDAPLIBNAME" $LIBS"
-else
+else $as_nop
if test -n "$ldap_askedfor"; then
as_fn_error $? "couldn't detect the LDAP libraries" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&5
-$as_echo "$as_me: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&5
+printf "%s\n" "$as_me: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&2;}
-$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h
CURL_DISABLE_LDAP=1
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
@@ -22941,8 +23829,8 @@ fi
else
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP libraries" >&5
-$as_echo_n "checking for LDAP libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LDAP libraries" >&5
+printf %s "checking for LDAP libraries... " >&6; }
#
u_libs=""
#
@@ -23007,12 +23895,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
curl_cv_ldap_LIBS="$x_nlibs"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
done
@@ -23021,12 +23910,12 @@ rm -f core conftest.err conftest.$ac_objext \
#
case X-"$curl_cv_ldap_LIBS" in
X-unknown)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find LDAP libraries" >&5
-$as_echo "cannot find LDAP libraries" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find LDAP libraries" >&5
+printf "%s\n" "cannot find LDAP libraries" >&6; }
;;
X-)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5
-$as_echo "no additional lib required" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5
+printf "%s\n" "no additional lib required" >&6; }
;;
*)
if test -z "$curl_cv_save_LIBS"; then
@@ -23034,8 +23923,8 @@ $as_echo "no additional lib required" >&6; }
else
LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_ldap_LIBS" >&5
-$as_echo "$curl_cv_ldap_LIBS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_ldap_LIBS" >&5
+printf "%s\n" "$curl_cv_ldap_LIBS" >&6; }
;;
esac
#
@@ -23045,15 +23934,15 @@ $as_echo "$curl_cv_ldap_LIBS" >&6; }
if test -n "$ldap_askedfor"; then
as_fn_error $? "couldn't detect the LDAP libraries" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&5
-$as_echo "$as_me: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&5
+printf "%s\n" "$as_me: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&2;}
-$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h
CURL_DISABLE_LDAP=1
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
@@ -23066,12 +23955,13 @@ if test x$CURL_DISABLE_LDAP != x1 ; then
if test "$LBERLIBNAME" ; then
if test "$LBERLIBNAME" != "no" ; then
- as_ac_Lib=`$as_echo "ac_cv_lib_"$LBERLIBNAME"''_ber_free" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ber_free in -l\"$LBERLIBNAME\"" >&5
-$as_echo_n "checking for ber_free in -l\"$LBERLIBNAME\"... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_Lib=`printf "%s\n" "ac_cv_lib_"$LBERLIBNAME"""_ber_free" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ber_free in -l\"$LBERLIBNAME\"" >&5
+printf %s "checking for ber_free in -l\"$LBERLIBNAME\"... " >&6; }
+if eval test \${$as_ac_Lib+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-l"$LBERLIBNAME" $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23089,36 +23979,38 @@ return ber_free ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
eval "$as_ac_Lib=yes"
-else
+else $as_nop
eval "$as_ac_Lib=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
eval ac_res=\$$as_ac_Lib
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_LIB"$LBERLIBNAME"" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_LIB"$LBERLIBNAME"" | $as_tr_cpp` 1
_ACEOF
LIBS="-l"$LBERLIBNAME" $LIBS"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&5
-$as_echo "$as_me: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&5
+printf "%s\n" "$as_me: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&2;}
-$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h
CURL_DISABLE_LDAP=1
-$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h
CURL_DISABLE_LDAPS=1
@@ -23129,29 +24021,30 @@ fi
fi
if test x$CURL_DISABLE_LDAP != x1 ; then
- for ac_func in ldap_url_parse ldap_init_fd
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_func "$LINENO" "ldap_url_parse" "ac_cv_func_ldap_url_parse"
+if test "x$ac_cv_func_ldap_url_parse" = xyes
+then :
+ printf "%s\n" "#define HAVE_LDAP_URL_PARSE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ldap_init_fd" "ac_cv_func_ldap_init_fd"
+if test "x$ac_cv_func_ldap_init_fd" = xyes
+then :
+ printf "%s\n" "#define HAVE_LDAP_INIT_FD 1" >>confdefs.h
fi
-done
if test "$LDAPLIBNAME" = "wldap32"; then
curl_ldap_msg="enabled (winldap)"
-$as_echo "#define USE_WIN32_LDAP 1" >>confdefs.h
+printf "%s\n" "#define USE_WIN32_LDAP 1" >>confdefs.h
else
curl_ldap_msg="enabled (OpenLDAP)"
if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
-$as_echo "#define USE_OPENLDAP 1" >>confdefs.h
+printf "%s\n" "#define USE_OPENLDAP 1" >>confdefs.h
USE_OPENLDAP=1
@@ -23164,28 +24057,30 @@ if test x$CURL_DISABLE_LDAPS != x1 ; then
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
-$as_echo_n "checking whether to enable IPv6... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6" >&5
+printf %s "checking whether to enable IPv6... " >&6; }
# Check whether --enable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then :
+if test ${enable_ipv6+y}
+then :
enableval=$enable_ipv6; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
ipv6=no
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
ipv6=yes
;;
esac
-else
- if test "$cross_compiling" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
ipv6=yes
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -23214,13 +24109,14 @@ main()
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
ipv6=yes
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
ipv6=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -23233,13 +24129,13 @@ fi
if test "$ipv6" = yes; then
curl_ipv6_msg="enabled"
-$as_echo "#define ENABLE_IPV6 1" >>confdefs.h
+printf "%s\n" "#define ENABLE_IPV6 1" >>confdefs.h
IPV6_ENABLED=1
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5
-$as_echo_n "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5
+printf %s "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -23264,34 +24160,36 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1" >>confdefs.h
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if argv can be written to" >&5
-$as_echo_n "checking if argv can be written to... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if argv can be written to" >&5
+printf %s "checking if argv can be written to... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
+ if test "$cross_compiling" = yes
+then :
curl_cv_writable_argv=cross
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -23303,10 +24201,11 @@ int main(int argc, char **argv)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
curl_cv_writable_argv=yes
-else
+else $as_nop
curl_cv_writable_argv=no
fi
@@ -23319,20 +24218,20 @@ fi
case $curl_cv_writable_argv in
yes)
-$as_echo "#define HAVE_WRITABLE_ARGV 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WRITABLE_ARGV 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the previous check could not be made default was used" >&5
-$as_echo "$as_me: WARNING: the previous check could not be made default was used" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: the previous check could not be made default was used" >&5
+printf "%s\n" "$as_me: WARNING: the previous check could not be made default was used" >&2;}
;;
esac
@@ -23341,7 +24240,8 @@ esac
GSSAPI_ROOT="/usr"
# Check whether --with-gssapi-includes was given.
-if test "${with_gssapi_includes+set}" = set; then :
+if test ${with_gssapi_includes+y}
+then :
withval=$with_gssapi_includes; GSSAPI_INCS="-I$withval"
want_gss="yes"
@@ -23350,7 +24250,8 @@ fi
# Check whether --with-gssapi-libs was given.
-if test "${with_gssapi_libs+set}" = set; then :
+if test ${with_gssapi_libs+y}
+then :
withval=$with_gssapi_libs; GSSAPI_LIB_DIR="-L$withval"
want_gss="yes"
@@ -23359,7 +24260,8 @@ fi
# Check whether --with-gssapi was given.
-if test "${with_gssapi+set}" = set; then :
+if test ${with_gssapi+y}
+then :
withval=$with_gssapi;
GSSAPI_ROOT="$withval"
if test x"$GSSAPI_ROOT" != xno; then
@@ -23372,20 +24274,154 @@ if test "${with_gssapi+set}" = set; then :
fi
-: ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
-
save_CPPFLAGS="$CPPFLAGS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GSS-API support is requested" >&5
-$as_echo_n "checking if GSS-API support is requested... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if GSS-API support is requested" >&5
+printf %s "checking if GSS-API support is requested... " >&6; }
if test x"$want_gss" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+
+ if test -n "$PKG_CONFIG"; then
+ PKGCONFIG="$PKG_CONFIG"
+ else
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PKGCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/bin:/usr/local/bin"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKGCONFIG=$ac_cv_path_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKGCONFIG"; then
+ ac_pt_PKGCONFIG=$PKGCONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $ac_pt_PKGCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/bin:/usr/local/bin"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
+if test -n "$ac_pt_PKGCONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKGCONFIG" = x; then
+ PKGCONFIG="no"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKGCONFIG=$ac_pt_PKGCONFIG
+ fi
+else
+ PKGCONFIG="$ac_cv_path_PKGCONFIG"
+fi
+
+ fi
+
+ if test "x$PKGCONFIG" != "xno"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mit-krb5-gssapi options with pkg-config" >&5
+printf %s "checking for mit-krb5-gssapi options with pkg-config... " >&6; }
+ itexists=`
+ if test -n ""; then
+ PKG_CONFIG_LIBDIR=""
+ export PKG_CONFIG_LIBDIR
+ fi
+ $PKGCONFIG --exists mit-krb5-gssapi >/dev/null 2>&1 && echo 1`
+
+ if test -z "$itexists"; then
+ PKGCONFIG="no"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
+ fi
+ fi
if test -z "$GSSAPI_INCS"; then
if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
- elif test -f "$KRB5CONFIG"; then
- GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
+ elif test "$PKGCONFIG" != "no" ; then
+ GSSAPI_INCS=`$PKGCONFIG --cflags mit-krb5-gssapi`
elif test "$GSSAPI_ROOT" != "yes"; then
GSSAPI_INCS="-I$GSSAPI_ROOT/include"
fi
@@ -23393,33 +24429,32 @@ $as_echo "yes" >&6; }
CPPFLAGS="$CPPFLAGS $GSSAPI_INCS"
- ac_fn_c_check_header_mongrel "$LINENO" "gss.h" "ac_cv_header_gss_h" "$ac_includes_default"
-if test "x$ac_cv_header_gss_h" = xyes; then :
+ ac_fn_c_check_header_compile "$LINENO" "gss.h" "ac_cv_header_gss_h" "$ac_includes_default"
+if test "x$ac_cv_header_gss_h" = xyes
+then :
-$as_echo "#define HAVE_GSSGNU 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GSSGNU 1" >>confdefs.h
gnu_gss=yes
-else
+else $as_nop
- for ac_header in gssapi/gssapi.h
+ for ac_header in gssapi/gssapi.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default"
-if test "x$ac_cv_header_gssapi_gssapi_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_GSSAPI_GSSAPI_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default"
+if test "x$ac_cv_header_gssapi_gssapi_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_GSSAPI_GSSAPI_H 1" >>confdefs.h
-else
+else $as_nop
not_mit=1
fi
done
-
- for ac_header in gssapi/gssapi_generic.h gssapi/gssapi_krb5.h
+ for ac_header in gssapi/gssapi_generic.h gssapi/gssapi_krb5.h
do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
$ac_includes_default
#ifdef HAVE_GSSAPI_GSSAPI_H
@@ -23427,41 +24462,41 @@ $ac_includes_default
#endif
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
-else
+else $as_nop
not_mit=1
fi
done
-
if test "x$not_mit" = "x1"; then
- ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default"
-if test "x$ac_cv_header_gssapi_h" = xyes; then :
+ ac_fn_c_check_header_compile "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default"
+if test "x$ac_cv_header_gssapi_h" = xyes
+then :
-$as_echo "#define HAVE_GSSHEIMDAL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GSSHEIMDAL 1" >>confdefs.h
-else
+else $as_nop
want_gss=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling GSS-API support since no header files were found" >&5
-$as_echo "$as_me: WARNING: disabling GSS-API support since no header files were found" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: disabling GSS-API support since no header files were found" >&5
+printf "%s\n" "$as_me: WARNING: disabling GSS-API support since no header files were found" >&2;}
fi
-
else
-$as_echo "#define HAVE_GSSMIT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GSSMIT 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE" >&5
-$as_echo_n "checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE" >&5
+printf %s "checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -23484,34 +24519,34 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define HAVE_OLD_GSSMIT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_OLD_GSSMIT 1" >>confdefs.h
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test x"$want_gss" = xyes; then
-$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GSSAPI 1" >>confdefs.h
HAVE_GSSAPI=1
curl_gss_msg="enabled (MIT Kerberos/Heimdal)"
@@ -23526,11 +24561,147 @@ $as_echo "#define HAVE_GSSAPI 1" >>confdefs.h
LIBS="-lgssapi_krb5 -lresolv $LIBS"
;;
*)
+
+ if test -n "$PKG_CONFIG"; then
+ PKGCONFIG="$PKG_CONFIG"
+ else
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PKGCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/bin:/usr/local/bin"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKGCONFIG=$ac_cv_path_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKGCONFIG"; then
+ ac_pt_PKGCONFIG=$PKGCONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $ac_pt_PKGCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/bin:/usr/local/bin"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
+if test -n "$ac_pt_PKGCONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKGCONFIG" = x; then
+ PKGCONFIG="no"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKGCONFIG=$ac_pt_PKGCONFIG
+ fi
+else
+ PKGCONFIG="$ac_cv_path_PKGCONFIG"
+fi
+
+ fi
+
+ if test "x$PKGCONFIG" != "xno"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mit-krb5-gssapi options with pkg-config" >&5
+printf %s "checking for mit-krb5-gssapi options with pkg-config... " >&6; }
+ itexists=`
+ if test -n ""; then
+ PKG_CONFIG_LIBDIR=""
+ export PKG_CONFIG_LIBDIR
+ fi
+ $PKGCONFIG --exists mit-krb5-gssapi >/dev/null 2>&1 && echo 1`
+
+ if test -z "$itexists"; then
+ PKGCONFIG="no"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
+ fi
+ fi
+
if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi`
LIBS="$gss_libs $LIBS"
- elif test -f "$KRB5CONFIG"; then
- gss_libs=`$KRB5CONFIG --libs gssapi`
+ elif test "$PKGCONFIG" != "no" ; then
+ gss_libs=`$PKGCONFIG --libs mit-krb5-gssapi`
LIBS="$gss_libs $LIBS"
else
case $host in
@@ -23585,7 +24756,8 @@ DEFAULT_SSL_BACKEND=no
VALID_DEFAULT_SSL_BACKEND=
# Check whether --with-default-ssl-backend was given.
-if test "${with_default_ssl_backend+set}" = set; then :
+if test ${with_default_ssl_backend+y}
+then :
withval=$with_default_ssl_backend; DEFAULT_SSL_BACKEND=$withval
fi
@@ -23602,16 +24774,16 @@ case "$DEFAULT_SSL_BACKEND" in
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native SSL/TLS" >&5
-$as_echo_n "checking whether to enable Windows native SSL/TLS... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native SSL/TLS" >&5
+printf %s "checking whether to enable Windows native SSL/TLS... " >&6; }
if test "x$OPT_SCHANNEL" != xno; then
ssl_msg=
if test "x$OPT_SCHANNEL" != "xno" &&
test "x$curl_cv_native_windows" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define USE_SCHANNEL 1" >>confdefs.h
+printf "%s\n" "#define USE_SCHANNEL 1" >>confdefs.h
USE_SCHANNEL=1
@@ -23620,31 +24792,31 @@ $as_echo "#define USE_SCHANNEL 1" >>confdefs.h
SCHANNEL_ENABLED=1
# --with-schannel implies --enable-sspi
-$as_echo "#define USE_WINDOWS_SSPI 1" >>confdefs.h
+printf "%s\n" "#define USE_WINDOWS_SSPI 1" >>confdefs.h
USE_WINDOWS_SSPI=1
curl_sspi_msg="enabled"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Secure Transport" >&5
-$as_echo_n "checking whether to enable Secure Transport... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Secure Transport" >&5
+printf %s "checking whether to enable Secure Transport... " >&6; }
if test "x$OPT_SECURETRANSPORT" != xno; then
if test "x$OPT_SECURETRANSPORT" != "xno" &&
(test "x$cross_compiling" != "xno" || test -d "/System/Library/Frameworks/Security.framework"); then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define USE_SECTRANSP 1" >>confdefs.h
+printf "%s\n" "#define USE_SECTRANSP 1" >>confdefs.h
USE_SECTRANSP=1
@@ -23653,47 +24825,47 @@ $as_echo "#define USE_SECTRANSP 1" >>confdefs.h
SECURETRANSPORT_ENABLED=1
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Amiga native SSL/TLS (AmiSSL)" >&5
-$as_echo_n "checking whether to enable Amiga native SSL/TLS (AmiSSL)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Amiga native SSL/TLS (AmiSSL)" >&5
+printf %s "checking whether to enable Amiga native SSL/TLS (AmiSSL)... " >&6; }
if test "$HAVE_PROTO_BSDSOCKET_H" = "1"; then
if test "x$OPT_AMISSL" != xno; then
ssl_msg=
if test "x$OPT_AMISSL" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
ssl_msg="AmiSSL"
test amissl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
AMISSL_ENABLED=1
LIBS="-lamisslauto $LIBS"
-$as_echo "#define USE_AMISSL 1" >>confdefs.h
+printf "%s\n" "#define USE_AMISSL 1" >>confdefs.h
-$as_echo "#define USE_OPENSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_OPENSSL 1" >>confdefs.h
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -23707,8 +24879,8 @@ if test "x$OPT_OPENSSL" != xno; then
case $host in
*-*-msys* | *-*-mingw*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdi32" >&5
-$as_echo_n "checking for gdi32... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdi32" >&5
+printf %s "checking for gdi32... " >&6; }
my_ac_save_LIBS=$LIBS
LIBS="-lgdi32 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23726,16 +24898,17 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
+if ac_fn_c_try_link "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
LIBS=$my_ac_save_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
;;
esac
@@ -23751,11 +24924,25 @@ rm -f core conftest.err conftest.$ac_objext \
OPENSSL_PCDIR="$OPT_OPENSSL/lib/pkgconfig"
if test -f "$OPENSSL_PCDIR/openssl.pc"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&5
-$as_echo "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&5
+printf "%s\n" "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;}
PKGTEST="yes"
- elif test ! -f "$PREFIX_OPENSSL/include/openssl/ssl.h"; then
- as_fn_error $? "$PREFIX_OPENSSL is a bad --with-openssl prefix!" "$LINENO" 5
+ fi
+
+ if test "$PKGTEST" != "yes"; then
+ # try lib64 instead
+ OPENSSL_PCDIR="$OPT_OPENSSL/lib64/pkgconfig"
+ if test -f "$OPENSSL_PCDIR/openssl.pc"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&5
+printf "%s\n" "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;}
+ PKGTEST="yes"
+ fi
+ fi
+
+ if test "$PKGTEST" != "yes"; then
+ if test ! -f "$PREFIX_OPENSSL/include/openssl/ssl.h"; then
+ as_fn_error $? "$PREFIX_OPENSSL is a bad --with-openssl prefix!" "$LINENO" 5
+ fi
fi
LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
@@ -23776,11 +24963,12 @@ $as_echo "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;}
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -23791,11 +24979,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -23807,11 +24999,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -23820,11 +25012,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -23835,11 +25028,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -23851,11 +25048,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -23863,8 +25060,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -23876,8 +25073,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl options with pkg-config" >&5
-$as_echo_n "checking for openssl options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl options with pkg-config" >&5
+printf %s "checking for openssl options with pkg-config... " >&6; }
itexists=`
if test -n "$OPENSSL_PCDIR"; then
PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR"
@@ -23887,11 +25084,11 @@ $as_echo_n "checking for openssl options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -23919,12 +25116,12 @@ $as_echo "found" >&6; }
$PKGCONFIG --cflags-only-I openssl 2>/dev/null`
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5
-$as_echo "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5
+printf "%s\n" "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;}
LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/^-L//'`
@@ -23935,11 +25132,12 @@ $as_echo "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;}
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HMAC_Update in -lcrypto" >&5
-$as_echo_n "checking for HMAC_Update in -lcrypto... " >&6; }
-if ${ac_cv_lib_crypto_HMAC_Update+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HMAC_Update in -lcrypto" >&5
+printf %s "checking for HMAC_Update in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_HMAC_Update+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23957,23 +25155,25 @@ return HMAC_Update ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_crypto_HMAC_Update=yes
-else
+else $as_nop
ac_cv_lib_crypto_HMAC_Update=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_HMAC_Update" >&5
-$as_echo "$ac_cv_lib_crypto_HMAC_Update" >&6; }
-if test "x$ac_cv_lib_crypto_HMAC_Update" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_HMAC_Update" >&5
+printf "%s\n" "$ac_cv_lib_crypto_HMAC_Update" >&6; }
+if test "x$ac_cv_lib_crypto_HMAC_Update" = xyes
+then :
HAVECRYPTO="yes"
LIBS="-lcrypto $LIBS"
-else
+else $as_nop
if test -n "$LIB_OPENSSL" ; then
LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
@@ -23985,11 +25185,12 @@ else
# Linking previously failed, try extra paths from --with-openssl or
# pkg-config. Use a different function name to avoid reusing the earlier
# cached result.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HMAC_Init_ex in -lcrypto" >&5
-$as_echo_n "checking for HMAC_Init_ex in -lcrypto... " >&6; }
-if ${ac_cv_lib_crypto_HMAC_Init_ex+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HMAC_Init_ex in -lcrypto" >&5
+printf %s "checking for HMAC_Init_ex in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_HMAC_Init_ex+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -24007,27 +25208,29 @@ return HMAC_Init_ex ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_crypto_HMAC_Init_ex=yes
-else
+else $as_nop
ac_cv_lib_crypto_HMAC_Init_ex=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_HMAC_Init_ex" >&5
-$as_echo "$ac_cv_lib_crypto_HMAC_Init_ex" >&6; }
-if test "x$ac_cv_lib_crypto_HMAC_Init_ex" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_HMAC_Init_ex" >&5
+printf "%s\n" "$ac_cv_lib_crypto_HMAC_Init_ex" >&6; }
+if test "x$ac_cv_lib_crypto_HMAC_Init_ex" = xyes
+then :
HAVECRYPTO="yes"
LIBS="-lcrypto $LIBS"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl" >&5
-$as_echo_n "checking OpenSSL linking with -ldl... " >&6; }
- LIBS="$CLEANLIBS -lcrypto -ldl"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl" >&5
+printf %s "checking OpenSSL linking with -ldl... " >&6; }
+ LIBS="-lcrypto $CLEANLIBS -ldl"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24042,20 +25245,21 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVECRYPTO="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl and -lpthread" >&5
-$as_echo_n "checking OpenSSL linking with -ldl and -lpthread... " >&6; }
- LIBS="$CLEANLIBS -lcrypto -ldl -lpthread"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl and -lpthread" >&5
+printf %s "checking OpenSSL linking with -ldl and -lpthread... " >&6; }
+ LIBS="-lcrypto $CLEANLIBS -ldl -lpthread"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24071,28 +25275,29 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
HAVECRYPTO="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
LDFLAGS="$CLEANLDFLAGS"
CPPFLAGS="$CLEANCPPFLAGS"
LIBS="$CLEANLIBS"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -24104,11 +25309,12 @@ fi
if test X"$HAVECRYPTO" = X"yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5
-$as_echo_n "checking for SSL_connect in -lssl... " >&6; }
-if ${ac_cv_lib_ssl_SSL_connect+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5
+printf %s "checking for SSL_connect in -lssl... " >&6; }
+if test ${ac_cv_lib_ssl_SSL_connect+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -24126,21 +25332,21 @@ return SSL_connect ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ssl_SSL_connect=yes
-else
+else $as_nop
ac_cv_lib_ssl_SSL_connect=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5
-$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; }
-if test "x$ac_cv_lib_ssl_SSL_connect" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSL 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5
+printf "%s\n" "$ac_cv_lib_ssl_SSL_connect" >&6; }
+if test "x$ac_cv_lib_ssl_SSL_connect" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSL 1" >>confdefs.h
LIBS="-lssl $LIBS"
@@ -24148,15 +25354,16 @@ fi
if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl with RSAglue/rsaref libs in use" >&5
-$as_echo_n "checking for ssl with RSAglue/rsaref libs in use... " >&6; };
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssl with RSAglue/rsaref libs in use" >&5
+printf %s "checking for ssl with RSAglue/rsaref libs in use... " >&6; };
OLIBS=$LIBS
LIBS="-lRSAglue -lrsaref $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5
-$as_echo_n "checking for SSL_connect in -lssl... " >&6; }
-if ${ac_cv_lib_ssl_SSL_connect+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5
+printf %s "checking for SSL_connect in -lssl... " >&6; }
+if test ${ac_cv_lib_ssl_SSL_connect+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -24174,70 +25381,93 @@ return SSL_connect ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ssl_SSL_connect=yes
-else
+else $as_nop
ac_cv_lib_ssl_SSL_connect=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5
-$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; }
-if test "x$ac_cv_lib_ssl_SSL_connect" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSL 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5
+printf "%s\n" "$ac_cv_lib_ssl_SSL_connect" >&6; }
+if test "x$ac_cv_lib_ssl_SSL_connect" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSL 1" >>confdefs.h
LIBS="-lssl $LIBS"
fi
if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
LIBS=$OLIBS
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
else
- for ac_header in openssl/x509.h openssl/rsa.h openssl/crypto.h \
- openssl/pem.h openssl/ssl.h openssl/err.h
+ for ac_header in openssl/x509.h openssl/rsa.h openssl/crypto.h openssl/pem.h openssl/ssl.h openssl/err.h
do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
ssl_msg="OpenSSL"
test openssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
OPENSSL_ENABLED=1
-$as_echo "#define USE_OPENSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_OPENSSL 1" >>confdefs.h
fi
done
-
if test $ac_cv_header_openssl_x509_h = no; then
- for ac_header in x509.h rsa.h crypto.h pem.h ssl.h err.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "x509.h" "ac_cv_header_x509_h" "$ac_includes_default"
+if test "x$ac_cv_header_x509_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_X509_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "rsa.h" "ac_cv_header_rsa_h" "$ac_includes_default"
+if test "x$ac_cv_header_rsa_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_RSA_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "crypto.h" "ac_cv_header_crypto_h" "$ac_includes_default"
+if test "x$ac_cv_header_crypto_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_CRYPTO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "pem.h" "ac_cv_header_pem_h" "$ac_includes_default"
+if test "x$ac_cv_header_pem_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_PEM_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "ssl.h" "ac_cv_header_ssl_h" "$ac_includes_default"
+if test "x$ac_cv_header_ssl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SSL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "err.h" "ac_cv_header_err_h" "$ac_includes_default"
+if test "x$ac_cv_header_err_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ERR_H 1" >>confdefs.h
+
+fi
if test $ac_cv_header_x509_h = yes &&
@@ -24261,23 +25491,28 @@ done
if test X"$OPENSSL_ENABLED" = X"1"; then
- for ac_func in RAND_egd \
- SSLv2_client_method \
- OpenSSL_version
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_func "$LINENO" "RAND_egd" "ac_cv_func_RAND_egd"
+if test "x$ac_cv_func_RAND_egd" = xyes
+then :
+ printf "%s\n" "#define HAVE_RAND_EGD 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "SSLv2_client_method" "ac_cv_func_SSLv2_client_method"
+if test "x$ac_cv_func_SSLv2_client_method" = xyes
+then :
+ printf "%s\n" "#define HAVE_SSLV2_CLIENT_METHOD 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "OpenSSL_version" "ac_cv_func_OpenSSL_version"
+if test "x$ac_cv_func_OpenSSL_version" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_VERSION 1" >>confdefs.h
fi
-done
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BoringSSL" >&5
-$as_echo_n "checking for BoringSSL... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BoringSSL" >&5
+printf %s "checking for BoringSSL... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24296,27 +25531,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_BORINGSSL 1
-_ACEOF
+printf "%s\n" "#define HAVE_BORINGSSL 1" >>confdefs.h
ssl_msg="BoringSSL"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libressl" >&5
-$as_echo_n "checking for libressl... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libressl" >&5
+printf %s "checking for libressl... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24333,27 +25567,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESSL 1
-_ACEOF
+printf "%s\n" "#define HAVE_LIBRESSL 1" >>confdefs.h
ssl_msg="libressl"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL >= v3" >&5
-$as_echo_n "checking for OpenSSL >= v3... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL >= v3" >&5
+printf %s "checking for OpenSSL >= v3... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24374,25 +25607,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL3 1
-_ACEOF
+printf "%s\n" "#define HAVE_OPENSSL3 1" >>confdefs.h
CPPFLAGS="$CPPFLAGS -DOPENSSL_SUPPRESS_DEPRECATED"
ssl_msg="OpenSSL v3+"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test "$OPENSSL_ENABLED" = "1"; then
@@ -24400,8 +25632,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$LIB_OPENSSL"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $LIB_OPENSSL to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $LIB_OPENSSL to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $LIB_OPENSSL to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $LIB_OPENSSL to CURL_LIBRARY_PATH" >&6;}
fi
fi
@@ -24410,8 +25642,8 @@ $as_echo "$as_me: Added $LIB_OPENSSL to CURL_LIBRARY_PATH" >&6;}
#
tst_api="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers version" >&5
-$as_echo_n "checking for OpenSSL headers version... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers version" >&5
+printf %s "checking for OpenSSL headers version... " >&6; }
OLDCPPFLAGS=$CPPFLAGS
# CPPPFLAG comes from CURL_CPP_P
@@ -24440,7 +25672,8 @@ CURL_DEF_TOKEN OPENSSL_VERSION_NUMBER
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
"$GREP" CURL_DEF_TOKEN 2>/dev/null | \
@@ -24462,6 +25695,53 @@ rm -f conftest.err conftest.i conftest.$ac_ext
fi
CPPFLAGS=$OLDCPPFLAGS
+
+ OLDCPPFLAGS=$CPPFLAGS
+ # CPPPFLAG comes from CURL_CPP_P
+ CPPFLAGS="$CPPFLAGS $CPPPFLAG"
+ if test -z "$SED"; then
+ as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5
+ fi
+ if test -z "$GREP"; then
+ as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5
+ fi
+
+ tmp_exp=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+# include <openssl/crypto.h>
+
+#ifdef OPENSSL_VERSION_STR
+CURL_DEF_TOKEN OPENSSL_VERSION_STR
+#endif
+
+
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+
+ tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \
+ "$GREP" CURL_DEF_TOKEN 2>/dev/null | \
+ "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \
+ "$SED" 's/["][ ]*["]//g' 2>/dev/null`
+ if test -z "$tmp_exp" || test "$tmp_exp" = "OPENSSL_VERSION_STR"; then
+ tmp_exp=""
+ fi
+
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+ if test -z "$tmp_exp"; then
+ curl_cv_have_def_OPENSSL_VERSION_STR=no
+
+ else
+ curl_cv_have_def_OPENSSL_VERSION_STR=yes
+ curl_cv_def_OPENSSL_VERSION_STR=$tmp_exp
+
+ fi
+ CPPFLAGS=$OLDCPPFLAGS
+
if test "$curl_cv_have_def_OPENSSL_VERSION_NUMBER" = "yes"; then
tst_verlen=`expr "$curl_cv_def_OPENSSL_VERSION_NUMBER" : '.*'`
case "x$tst_verlen" in
@@ -24478,7 +25758,16 @@ rm -f conftest.err conftest.i conftest.$ac_ext
tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
;;
*)
- tst_api="unknown"
+ if test "$curl_cv_have_def_OPENSSL_VERSION_STR" = "yes"; then
+ ver=`echo $curl_cv_def_OPENSSL_VERSION_STR | sed 's/"//g'`;
+ tst_vermaj=`echo $ver | cut -d. -f1`
+ tst_vermin=`echo $ver | cut -d. -f2`
+ tst_verfix=`echo $ver | cut -d. -f3`
+ tst_show="$ver"
+ tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
+ else
+ tst_api="unknown"
+ fi
;;
esac
case $tst_api in
@@ -24496,14 +25785,18 @@ rm -f conftest.err conftest.i conftest.$ac_ext
0x093) tst_show="0.9.3" ;;
0x092) tst_show="0.9.2" ;;
0x091) tst_show="0.9.1" ;;
- *) tst_show="unknown" ;;
+ *)
+ if test -z "$tst_show"; then
+ tst_show="unknown"
+ fi
+ ;;
esac
- tst_show="$tst_show - $curl_cv_def_OPENSSL_VERSION_NUMBER"
+ tst_show="$tst_show - $tst_api"
else
tst_show="unknown"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5
-$as_echo "$tst_show" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5
+printf "%s\n" "$tst_show" >&6; }
#
curl_openssl_api_headers=$tst_api
@@ -24511,8 +25804,45 @@ $as_echo "$tst_show" >&6; }
#
tst_api="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library version" >&5
-$as_echo_n "checking for OpenSSL library version... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library version" >&5
+printf %s "checking for OpenSSL library version... " >&6; }
+ if test "$tst_api" = "unknown"; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define SSL_CTX_load_verify_dir innocuous_SSL_CTX_load_verify_dir
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef SSL_CTX_load_verify_dir
+#ifdef __cplusplus
+extern "C"
+#endif
+char SSL_CTX_load_verify_dir ();
+#if defined __stub_SSL_CTX_load_verify_dir || defined __stub___SSL_CTX_load_verify_dir
+choke me
+#endif
+
+int main (void)
+{
+return SSL_CTX_load_verify_dir ();
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+
+ tst_api="0x300"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
if test "$tst_api" = "unknown"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24541,12 +25871,13 @@ return ERR_clear_last_mark ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x111"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24579,12 +25910,13 @@ return SSL_CTX_set_not_resumbl_sess_cb ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x110"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
;;
*)
@@ -24615,12 +25947,13 @@ return SSL_CTX_set_not_resumable_session_callback ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x110"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
;;
esac
@@ -24653,12 +25986,13 @@ return SSL_CONF_CTX_new ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x102"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24689,12 +26023,13 @@ return SSL_renegotiate_abbreviated ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x101"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24725,12 +26060,13 @@ return OBJ_add_sigid ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x100"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24761,12 +26097,13 @@ return ERR_set_mark ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x098"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24797,12 +26134,13 @@ return ERR_peek_last_error ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x097"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24833,12 +26171,13 @@ return c2i_ASN1_OBJECT ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x096"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24869,12 +26208,13 @@ return SSL_CTX_set_purpose ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x095"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24905,12 +26245,13 @@ return OBJ_obj2txt ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x094"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24941,12 +26282,13 @@ return SSL_get_verify_depth ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x093"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -24977,12 +26319,13 @@ return SSL_library_init ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x092"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$tst_api" = "unknown"; then
@@ -25013,15 +26356,17 @@ return SSL_CTX_set_cipher_list ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
tst_api="0x091"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
case $tst_api in
+ 0x300) tst_show="3.0.0" ;;
0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
@@ -25038,16 +26383,16 @@ rm -f core conftest.err conftest.$ac_objext \
0x091) tst_show="0.9.1" ;;
*) tst_show="unknown" ;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5
-$as_echo "$tst_show" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_show" >&5
+printf "%s\n" "$tst_show" >&6; }
#
curl_openssl_api_library=$tst_api
#
tst_match="yes"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers and library versions matching" >&5
-$as_echo_n "checking for OpenSSL headers and library versions matching... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL headers and library versions matching" >&5
+printf %s "checking for OpenSSL headers and library versions matching... " >&6; }
if test "$curl_openssl_api_headers" = "unknown" ||
test "$curl_openssl_api_library" = "unknown"; then
tst_match="fail"
@@ -25056,11 +26401,11 @@ $as_echo_n "checking for OpenSSL headers and library versions matching... " >&6;
tst_match="no"
tst_warns="OpenSSL headers and library versions do not match."
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_match" >&5
-$as_echo "$tst_match" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_match" >&5
+printf "%s\n" "$tst_match" >&6; }
if test "$tst_match" != "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $tst_warns" >&5
-$as_echo "$as_me: WARNING: $tst_warns" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $tst_warns" >&5
+printf "%s\n" "$as_me: WARNING: $tst_warns" >&2;}
fi
check_for_ca_bundle=1
@@ -25071,10 +26416,10 @@ fi
if test X"$OPT_OPENSSL" != Xno &&
test "$OPENSSL_ENABLED" != "1"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: OPT_OPENSSL: $OPT_OPENSSL" >&5
-$as_echo "$as_me: OPT_OPENSSL: $OPT_OPENSSL" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: OPENSSL_ENABLED: $OPENSSL_ENABLED" >&5
-$as_echo "$as_me: OPENSSL_ENABLED: $OPENSSL_ENABLED" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: OPT_OPENSSL: $OPT_OPENSSL" >&5
+printf "%s\n" "$as_me: OPT_OPENSSL: $OPT_OPENSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: OPENSSL_ENABLED: $OPENSSL_ENABLED" >&5
+printf "%s\n" "$as_me: OPENSSL_ENABLED: $OPENSSL_ENABLED" >&6;}
as_fn_error $? "--with-openssl was given but OpenSSL could not be detected" "$LINENO" 5
fi
@@ -25082,32 +26427,33 @@ fi
if test X"$OPENSSL_ENABLED" = X"1"; then
# Check whether --with-egd-socket was given.
-if test "${with_egd_socket+set}" = set; then :
+if test ${with_egd_socket+y}
+then :
withval=$with_egd_socket; EGD_SOCKET="$withval"
fi
if test -n "$EGD_SOCKET" ; then
-cat >>confdefs.h <<_ACEOF
-#define EGD_SOCKET "$EGD_SOCKET"
-_ACEOF
+printf "%s\n" "#define EGD_SOCKET \"$EGD_SOCKET\"" >>confdefs.h
fi
# Check whether --with-random was given.
-if test "${with_random+set}" = set; then :
+if test ${with_random+y}
+then :
withval=$with_random; RANDOM_FILE="$withval"
-else
+else $as_nop
if test x$cross_compiling != xyes; then
- as_ac_File=`$as_echo "ac_cv_file_"/dev/urandom"" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5
-$as_echo_n "checking for \"/dev/urandom\"... " >&6; }
-if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_File=`printf "%s\n" "ac_cv_file_"/dev/urandom"" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5
+printf %s "checking for \"/dev/urandom\"... " >&6; }
+if eval test \${$as_ac_File+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r ""/dev/urandom""; then
@@ -25117,15 +26463,16 @@ else
fi
fi
eval ac_res=\$$as_ac_File
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"
+then :
RANDOM_FILE="/dev/urandom"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: skipped the /dev/urandom detection when cross-compiling" >&5
-$as_echo "$as_me: WARNING: skipped the /dev/urandom detection when cross-compiling" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: skipped the /dev/urandom detection when cross-compiling" >&5
+printf "%s\n" "$as_me: WARNING: skipped the /dev/urandom detection when cross-compiling" >&2;}
fi
@@ -25134,19 +26481,18 @@ fi
if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
-cat >>confdefs.h <<_ACEOF
-#define RANDOM_FILE "$RANDOM_FILE"
-_ACEOF
+printf "%s\n" "#define RANDOM_FILE \"$RANDOM_FILE\"" >>confdefs.h
fi
fi
if test "$OPENSSL_ENABLED" = "1"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SRP_Calc_client_key in -lcrypto" >&5
-$as_echo_n "checking for SRP_Calc_client_key in -lcrypto... " >&6; }
-if ${ac_cv_lib_crypto_SRP_Calc_client_key+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SRP_Calc_client_key in -lcrypto" >&5
+printf %s "checking for SRP_Calc_client_key in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_SRP_Calc_client_key+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25164,21 +26510,23 @@ return SRP_Calc_client_key ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_crypto_SRP_Calc_client_key=yes
-else
+else $as_nop
ac_cv_lib_crypto_SRP_Calc_client_key=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SRP_Calc_client_key" >&5
-$as_echo "$ac_cv_lib_crypto_SRP_Calc_client_key" >&6; }
-if test "x$ac_cv_lib_crypto_SRP_Calc_client_key" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SRP_Calc_client_key" >&5
+printf "%s\n" "$ac_cv_lib_crypto_SRP_Calc_client_key" >&6; }
+if test "x$ac_cv_lib_crypto_SRP_Calc_client_key" = xyes
+then :
-$as_echo "#define HAVE_OPENSSL_SRP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_OPENSSL_SRP 1" >>confdefs.h
HAVE_OPENSSL_SRP=1
@@ -25189,12 +26537,13 @@ fi
if test X"$OPENSSL_ENABLED" = X"1"; then
# Check whether --enable-openssl-auto-load-config was given.
-if test "${enable_openssl_auto_load_config+set}" = set; then :
+if test ${enable_openssl_auto_load_config+y}
+then :
enableval=$enable_openssl_auto_load_config; if test X"$enableval" = X"no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: automatic loading of OpenSSL configuration disabled" >&5
-$as_echo "$as_me: automatic loading of OpenSSL configuration disabled" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: automatic loading of OpenSSL configuration disabled" >&5
+printf "%s\n" "$as_me: automatic loading of OpenSSL configuration disabled" >&6;}
-$as_echo "#define CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG 1" >>confdefs.h
fi
@@ -25223,11 +26572,12 @@ if test "x$OPT_GNUTLS" != xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -25238,11 +26588,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -25254,11 +26608,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -25267,11 +26621,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -25282,11 +26637,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -25298,11 +26657,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -25310,8 +26669,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -25323,8 +26682,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls options with pkg-config" >&5
-$as_echo_n "checking for gnutls options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gnutls options with pkg-config" >&5
+printf %s "checking for gnutls options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -25334,11 +26693,11 @@ $as_echo_n "checking for gnutls options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -25391,11 +26750,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_x509_crt_get_dn2 in -lgnutls" >&5
-$as_echo_n "checking for gnutls_x509_crt_get_dn2 in -lgnutls... " >&6; }
-if ${ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gnutls_x509_crt_get_dn2 in -lgnutls" >&5
+printf %s "checking for gnutls_x509_crt_get_dn2 in -lgnutls... " >&6; }
+if test ${ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgnutls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25413,21 +26773,23 @@ return gnutls_x509_crt_get_dn2 ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2=yes
-else
+else $as_nop
ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" >&5
-$as_echo "$ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" >&6; }
-if test "x$ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" >&5
+printf "%s\n" "$ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" >&6; }
+if test "x$ac_cv_lib_gnutls_gnutls_x509_crt_get_dn2" = xyes
+then :
-$as_echo "#define USE_GNUTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_GNUTLS 1" >>confdefs.h
USE_GNUTLS=1
@@ -25436,7 +26798,7 @@ $as_echo "#define USE_GNUTLS 1" >>confdefs.h
ssl_msg="GnuTLS"
test gnutls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
LIBS="$CLEANLIBS"
CPPFLAGS="$CLEANCPPFLAGS"
@@ -25445,15 +26807,15 @@ fi
if test "x$USE_GNUTLS" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected GnuTLS version $version" >&5
-$as_echo "$as_me: detected GnuTLS version $version" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected GnuTLS version $version" >&5
+printf "%s\n" "$as_me: detected GnuTLS version $version" >&6;}
check_for_ca_bundle=1
if test -n "$gtlslib"; then
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$gtlslib"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $gtlslib to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $gtlslib to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $gtlslib to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $gtlslib to CURL_LIBRARY_PATH" >&6;}
fi
fi
fi
@@ -25468,11 +26830,12 @@ fi
if test "$GNUTLS_ENABLED" = "1"; then
USE_GNUTLS_NETTLE=
# First check if we can detect either crypto library via transitive linking
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lgnutls" >&5
-$as_echo_n "checking for nettle_MD5Init in -lgnutls... " >&6; }
-if ${ac_cv_lib_gnutls_nettle_MD5Init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lgnutls" >&5
+printf %s "checking for nettle_MD5Init in -lgnutls... " >&6; }
+if test ${ac_cv_lib_gnutls_nettle_MD5Init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgnutls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25490,29 +26853,32 @@ return nettle_MD5Init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_gnutls_nettle_MD5Init=yes
-else
+else $as_nop
ac_cv_lib_gnutls_nettle_MD5Init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_nettle_MD5Init" >&5
-$as_echo "$ac_cv_lib_gnutls_nettle_MD5Init" >&6; }
-if test "x$ac_cv_lib_gnutls_nettle_MD5Init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_nettle_MD5Init" >&5
+printf "%s\n" "$ac_cv_lib_gnutls_nettle_MD5Init" >&6; }
+if test "x$ac_cv_lib_gnutls_nettle_MD5Init" = xyes
+then :
USE_GNUTLS_NETTLE=1
fi
# If not, try linking directly to both of them to see if they are available
if test "$USE_GNUTLS_NETTLE" = ""; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lnettle" >&5
-$as_echo_n "checking for nettle_MD5Init in -lnettle... " >&6; }
-if ${ac_cv_lib_nettle_nettle_MD5Init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lnettle" >&5
+printf %s "checking for nettle_MD5Init in -lnettle... " >&6; }
+if test ${ac_cv_lib_nettle_nettle_MD5Init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnettle $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25530,18 +26896,20 @@ return nettle_MD5Init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_nettle_nettle_MD5Init=yes
-else
+else $as_nop
ac_cv_lib_nettle_nettle_MD5Init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nettle_nettle_MD5Init" >&5
-$as_echo "$ac_cv_lib_nettle_nettle_MD5Init" >&6; }
-if test "x$ac_cv_lib_nettle_nettle_MD5Init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nettle_nettle_MD5Init" >&5
+printf "%s\n" "$ac_cv_lib_nettle_nettle_MD5Init" >&6; }
+if test "x$ac_cv_lib_nettle_nettle_MD5Init" = xyes
+then :
USE_GNUTLS_NETTLE=1
fi
@@ -25553,11 +26921,12 @@ fi
fi
if test "$GNUTLS_ENABLED" = "1"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_srp_verifier in -lgnutls" >&5
-$as_echo_n "checking for gnutls_srp_verifier in -lgnutls... " >&6; }
-if ${ac_cv_lib_gnutls_gnutls_srp_verifier+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gnutls_srp_verifier in -lgnutls" >&5
+printf %s "checking for gnutls_srp_verifier in -lgnutls... " >&6; }
+if test ${ac_cv_lib_gnutls_gnutls_srp_verifier+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgnutls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25575,21 +26944,23 @@ return gnutls_srp_verifier ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_gnutls_gnutls_srp_verifier=yes
-else
+else $as_nop
ac_cv_lib_gnutls_gnutls_srp_verifier=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_srp_verifier" >&5
-$as_echo "$ac_cv_lib_gnutls_gnutls_srp_verifier" >&6; }
-if test "x$ac_cv_lib_gnutls_gnutls_srp_verifier" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_srp_verifier" >&5
+printf "%s\n" "$ac_cv_lib_gnutls_gnutls_srp_verifier" >&6; }
+if test "x$ac_cv_lib_gnutls_gnutls_srp_verifier" = xyes
+then :
-$as_echo "#define HAVE_GNUTLS_SRP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GNUTLS_SRP 1" >>confdefs.h
HAVE_GNUTLS_SRP=1
@@ -25614,11 +26985,12 @@ if test "x$OPT_MBEDTLS" != xno; then
if test -z "$OPT_MBEDTLS" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbedtls_havege_init in -lmbedtls" >&5
-$as_echo_n "checking for mbedtls_havege_init in -lmbedtls... " >&6; }
-if ${ac_cv_lib_mbedtls_mbedtls_havege_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbedtls_havege_init in -lmbedtls" >&5
+printf %s "checking for mbedtls_havege_init in -lmbedtls... " >&6; }
+if test ${ac_cv_lib_mbedtls_mbedtls_havege_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25636,21 +27008,23 @@ return mbedtls_havege_init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_mbedtls_mbedtls_havege_init=yes
-else
+else $as_nop
ac_cv_lib_mbedtls_mbedtls_havege_init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mbedtls_mbedtls_havege_init" >&5
-$as_echo "$ac_cv_lib_mbedtls_mbedtls_havege_init" >&6; }
-if test "x$ac_cv_lib_mbedtls_mbedtls_havege_init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mbedtls_mbedtls_havege_init" >&5
+printf "%s\n" "$ac_cv_lib_mbedtls_mbedtls_havege_init" >&6; }
+if test "x$ac_cv_lib_mbedtls_mbedtls_havege_init" = xyes
+then :
-$as_echo "#define USE_MBEDTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_MBEDTLS 1" >>confdefs.h
USE_MBEDTLS=1
@@ -25678,11 +27052,12 @@ fi
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbedtls_ssl_init in -lmbedtls" >&5
-$as_echo_n "checking for mbedtls_ssl_init in -lmbedtls... " >&6; }
-if ${ac_cv_lib_mbedtls_mbedtls_ssl_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbedtls_ssl_init in -lmbedtls" >&5
+printf %s "checking for mbedtls_ssl_init in -lmbedtls... " >&6; }
+if test ${ac_cv_lib_mbedtls_mbedtls_ssl_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25700,21 +27075,23 @@ return mbedtls_ssl_init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_mbedtls_mbedtls_ssl_init=yes
-else
+else $as_nop
ac_cv_lib_mbedtls_mbedtls_ssl_init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mbedtls_mbedtls_ssl_init" >&5
-$as_echo "$ac_cv_lib_mbedtls_mbedtls_ssl_init" >&6; }
-if test "x$ac_cv_lib_mbedtls_mbedtls_ssl_init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mbedtls_mbedtls_ssl_init" >&5
+printf "%s\n" "$ac_cv_lib_mbedtls_mbedtls_ssl_init" >&6; }
+if test "x$ac_cv_lib_mbedtls_mbedtls_ssl_init" = xyes
+then :
-$as_echo "#define USE_MBEDTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_MBEDTLS 1" >>confdefs.h
USE_MBEDTLS=1
@@ -25723,7 +27100,7 @@ $as_echo "#define USE_MBEDTLS 1" >>confdefs.h
ssl_msg="mbedTLS"
test mbedtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
CPPFLAGS=$_cppflags
LDFLAGS=$_ldflags
@@ -25733,8 +27110,8 @@ fi
fi
if test "x$USE_MBEDTLS" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected mbedTLS" >&5
-$as_echo "$as_me: detected mbedTLS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected mbedTLS" >&5
+printf "%s\n" "$as_me: detected mbedTLS" >&6;}
check_for_ca_bundle=1
LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
@@ -25743,8 +27120,8 @@ $as_echo "$as_me: detected mbedTLS" >&6;}
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$mbedtlslib"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $mbedtlslib to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $mbedtlslib to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $mbedtlslib to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $mbedtlslib to CURL_LIBRARY_PATH" >&6;}
fi
fi
fi
@@ -25784,11 +27161,12 @@ if test "x$OPT_WOLFSSL" != xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -25799,11 +27177,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -25815,11 +27197,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -25828,11 +27210,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -25843,11 +27226,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -25859,11 +27246,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -25871,8 +27258,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -25884,8 +27271,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfssl options with pkg-config" >&5
-$as_echo_n "checking for wolfssl options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfssl options with pkg-config" >&5
+printf %s "checking for wolfssl options with pkg-config... " >&6; }
itexists=`
if test -n "$wolfpkg"; then
PKG_CONFIG_LIBDIR="$wolfpkg"
@@ -25895,16 +27282,16 @@ $as_echo_n "checking for wolfssl options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Check dir $wolfpkg" >&5
-$as_echo "$as_me: Check dir $wolfpkg" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Check dir $wolfpkg" >&5
+printf "%s\n" "$as_me: Check dir $wolfpkg" >&6;}
addld=""
addlib=""
@@ -25951,21 +27338,21 @@ $as_echo "$as_me: Check dir $wolfpkg" >&6;}
if test "x$USE_WOLFSSL" != "xyes"; then
LDFLAGS="$LDFLAGS $addld"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Add $addld to LDFLAGS" >&5
-$as_echo "$as_me: Add $addld to LDFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Add $addld to LDFLAGS" >&5
+printf "%s\n" "$as_me: Add $addld to LDFLAGS" >&6;}
if test "$addcflags" != "-I/usr/include"; then
CPPFLAGS="$CPPFLAGS $addcflags"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Add $addcflags to CPPFLAGS" >&5
-$as_echo "$as_me: Add $addcflags to CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Add $addcflags to CPPFLAGS" >&5
+printf "%s\n" "$as_me: Add $addcflags to CPPFLAGS" >&6;}
fi
my_ac_save_LIBS="$LIBS"
LIBS="$addlib $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Add $addlib to LIBS" >&5
-$as_echo "$as_me: Add $addlib to LIBS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Add $addlib to LIBS" >&5
+printf "%s\n" "$as_me: Add $addlib to LIBS" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_Init in -lwolfssl" >&5
-$as_echo_n "checking for wolfSSL_Init in -lwolfssl... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_Init in -lwolfssl" >&5
+printf %s "checking for wolfSSL_Init in -lwolfssl... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -25986,12 +27373,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define USE_WOLFSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_WOLFSSL 1" >>confdefs.h
USE_WOLFSSL=1
@@ -26000,30 +27388,31 @@ $as_echo "#define USE_WOLFSSL 1" >>confdefs.h
ssl_msg="WolfSSL"
test wolfssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
CPPFLAGS=$_cppflags
LDFLAGS=$_ldflags
wolfssllibpath=""
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$my_ac_save_LIBS"
fi
if test "x$USE_WOLFSSL" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected wolfSSL" >&5
-$as_echo "$as_me: detected wolfSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected wolfSSL" >&5
+printf "%s\n" "$as_me: detected wolfSSL" >&6;}
check_for_ca_bundle=1
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
-$as_echo_n "checking size of long long... " >&6; }
-if ${ac_cv_sizeof_long_long+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
+printf %s "checking size of long long... " >&6; }
+if test ${ac_cv_sizeof_long_long+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -26038,10 +27427,11 @@ switch (0) case 0: case (sizeof (long long) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_long_long=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_long_long != x ; then break; fi
done
@@ -26050,48 +27440,47 @@ fi
if test x$ac_cv_sizeof_long_long = x ; then
as_fn_error $? "cannot determine a size for long long" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
-$as_echo "$ac_cv_sizeof_long_long" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
+printf "%s\n" "$ac_cv_sizeof_long_long" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-_ACEOF
+printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h
LIBS="$addlib -lm $LIBS"
- for ac_func in wolfSSL_get_peer_certificate \
- wolfSSL_UseALPN
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_func "$LINENO" "wolfSSL_get_peer_certificate" "ac_cv_func_wolfSSL_get_peer_certificate"
+if test "x$ac_cv_func_wolfSSL_get_peer_certificate" = xyes
+then :
+ printf "%s\n" "#define HAVE_WOLFSSL_GET_PEER_CERTIFICATE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "wolfSSL_UseALPN" "ac_cv_func_wolfSSL_UseALPN"
+if test "x$ac_cv_func_wolfSSL_UseALPN" = xyes
+then :
+ printf "%s\n" "#define HAVE_WOLFSSL_USEALPN 1" >>confdefs.h
fi
-done
ac_fn_c_check_func "$LINENO" "wolfSSL_DES_ecb_encrypt" "ac_cv_func_wolfSSL_DES_ecb_encrypt"
-if test "x$ac_cv_func_wolfSSL_DES_ecb_encrypt" = xyes; then :
+if test "x$ac_cv_func_wolfSSL_DES_ecb_encrypt" = xyes
+then :
-$as_echo "#define HAVE_WOLFSSL_DES_ECB_ENCRYPT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WOLFSSL_DES_ECB_ENCRYPT 1" >>confdefs.h
if test -n "$addcflags"; then
for f in $addcflags; do
CPPFLAGS="$f/wolfssl $CPPFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Add $f/wolfssl to CPPFLAGS" >&5
-$as_echo "$as_me: Add $f/wolfssl to CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Add $f/wolfssl to CPPFLAGS" >&5
+printf "%s\n" "$as_me: Add $f/wolfssl to CPPFLAGS" >&6;}
break
done
else
CPPFLAGS="-I/usr/include/wolfssl $CPPFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Add /usr/include/wolfssl to CPPFLAGS" >&5
-$as_echo "$as_me: Add /usr/include/wolfssl to CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Add /usr/include/wolfssl to CPPFLAGS" >&5
+printf "%s\n" "$as_me: Add /usr/include/wolfssl to CPPFLAGS" >&6;}
fi
WOLFSSL_NTLM=1
@@ -26103,8 +27492,8 @@ fi
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$wolfssllibpath"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&6;}
fi
fi
@@ -26130,11 +27519,12 @@ if test "x$OPT_MESALINK" != xno; then
if test -z "$OPT_MESALINK" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
-$as_echo_n "checking for mesalink_library_init in -lmesalink... " >&6; }
-if ${ac_cv_lib_mesalink_mesalink_library_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
+printf %s "checking for mesalink_library_init in -lmesalink... " >&6; }
+if test ${ac_cv_lib_mesalink_mesalink_library_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmesalink $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26152,21 +27542,23 @@ return mesalink_library_init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_mesalink_mesalink_library_init=yes
-else
+else $as_nop
ac_cv_lib_mesalink_mesalink_library_init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
-$as_echo "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
-if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
+printf "%s\n" "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
+if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes
+then :
-$as_echo "#define USE_MESALINK 1" >>confdefs.h
+printf "%s\n" "#define USE_MESALINK 1" >>confdefs.h
USE_MESALINK=1
@@ -26194,11 +27586,12 @@ fi
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
-$as_echo_n "checking for mesalink_library_init in -lmesalink... " >&6; }
-if ${ac_cv_lib_mesalink_mesalink_library_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
+printf %s "checking for mesalink_library_init in -lmesalink... " >&6; }
+if test ${ac_cv_lib_mesalink_mesalink_library_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmesalink $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26216,21 +27609,23 @@ return mesalink_library_init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_mesalink_mesalink_library_init=yes
-else
+else $as_nop
ac_cv_lib_mesalink_mesalink_library_init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
-$as_echo "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
-if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
+printf "%s\n" "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
+if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes
+then :
-$as_echo "#define USE_MESALINK 1" >>confdefs.h
+printf "%s\n" "#define USE_MESALINK 1" >>confdefs.h
USE_MESALINK=1
@@ -26239,7 +27634,7 @@ $as_echo "#define USE_MESALINK 1" >>confdefs.h
ssl_msg="MesaLink"
test mesalink != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
CPPFLAGS=$_cppflags
LDFLAGS=$_ldflags
@@ -26249,8 +27644,8 @@ fi
fi
if test "x$USE_MESALINK" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected MesaLink" >&5
-$as_echo "$as_me: detected MesaLink" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected MesaLink" >&5
+printf "%s\n" "$as_me: detected MesaLink" >&6;}
LIBS="-lmesalink $LIBS"
@@ -26258,8 +27653,8 @@ $as_echo "$as_me: detected MesaLink" >&6;}
if test "x$cross_compiling" != "xyes"; then
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mesalinklib"
export LD_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $mesalinklib to LD_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $mesalinklib to LD_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $mesalinklib to LD_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $mesalinklib to LD_LIBRARY_PATH" >&6;}
fi
fi
fi
@@ -26283,11 +27678,12 @@ if test "x$OPT_BEARSSL" != xno; then
if test -z "$OPT_BEARSSL" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for br_ssl_client_init_full in -lbearssl" >&5
-$as_echo_n "checking for br_ssl_client_init_full in -lbearssl... " >&6; }
-if ${ac_cv_lib_bearssl_br_ssl_client_init_full+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for br_ssl_client_init_full in -lbearssl" >&5
+printf %s "checking for br_ssl_client_init_full in -lbearssl... " >&6; }
+if test ${ac_cv_lib_bearssl_br_ssl_client_init_full+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbearssl -lbearssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26305,21 +27701,23 @@ return br_ssl_client_init_full ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_bearssl_br_ssl_client_init_full=yes
-else
+else $as_nop
ac_cv_lib_bearssl_br_ssl_client_init_full=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bearssl_br_ssl_client_init_full" >&5
-$as_echo "$ac_cv_lib_bearssl_br_ssl_client_init_full" >&6; }
-if test "x$ac_cv_lib_bearssl_br_ssl_client_init_full" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bearssl_br_ssl_client_init_full" >&5
+printf "%s\n" "$ac_cv_lib_bearssl_br_ssl_client_init_full" >&6; }
+if test "x$ac_cv_lib_bearssl_br_ssl_client_init_full" = xyes
+then :
-$as_echo "#define USE_BEARSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_BEARSSL 1" >>confdefs.h
USE_BEARSSL=1
@@ -26347,11 +27745,12 @@ fi
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for br_ssl_client_init_full in -lbearssl" >&5
-$as_echo_n "checking for br_ssl_client_init_full in -lbearssl... " >&6; }
-if ${ac_cv_lib_bearssl_br_ssl_client_init_full+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for br_ssl_client_init_full in -lbearssl" >&5
+printf %s "checking for br_ssl_client_init_full in -lbearssl... " >&6; }
+if test ${ac_cv_lib_bearssl_br_ssl_client_init_full+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbearssl -lbearssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26369,21 +27768,23 @@ return br_ssl_client_init_full ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_bearssl_br_ssl_client_init_full=yes
-else
+else $as_nop
ac_cv_lib_bearssl_br_ssl_client_init_full=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bearssl_br_ssl_client_init_full" >&5
-$as_echo "$ac_cv_lib_bearssl_br_ssl_client_init_full" >&6; }
-if test "x$ac_cv_lib_bearssl_br_ssl_client_init_full" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bearssl_br_ssl_client_init_full" >&5
+printf "%s\n" "$ac_cv_lib_bearssl_br_ssl_client_init_full" >&6; }
+if test "x$ac_cv_lib_bearssl_br_ssl_client_init_full" = xyes
+then :
-$as_echo "#define USE_BEARSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_BEARSSL 1" >>confdefs.h
USE_BEARSSL=1
@@ -26392,7 +27793,7 @@ $as_echo "#define USE_BEARSSL 1" >>confdefs.h
ssl_msg="BearSSL"
test bearssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
CPPFLAGS=$_cppflags
LDFLAGS=$_ldflags
@@ -26402,8 +27803,8 @@ fi
fi
if test "x$USE_BEARSSL" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected BearSSL" >&5
-$as_echo "$as_me: detected BearSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected BearSSL" >&5
+printf "%s\n" "$as_me: detected BearSSL" >&6;}
check_for_ca_bundle=1
LIBS="-lbearssl $LIBS"
@@ -26412,8 +27813,8 @@ $as_echo "$as_me: detected BearSSL" >&6;}
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$bearssllib"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $bearssllib to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $bearssllib to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $bearssllib to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $bearssllib to CURL_LIBRARY_PATH" >&6;}
fi
fi
fi
@@ -26437,11 +27838,12 @@ if test "x$OPT_RUSTLS" != xno; then
if test -z "$OPT_RUSTLS" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rustls_client_session_read in -lcrustls" >&5
-$as_echo_n "checking for rustls_client_session_read in -lcrustls... " >&6; }
-if ${ac_cv_lib_crustls_rustls_client_session_read+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rustls_client_session_read in -lcrustls" >&5
+printf %s "checking for rustls_client_session_read in -lcrustls... " >&6; }
+if test ${ac_cv_lib_crustls_rustls_client_session_read+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrustls -lpthread -ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26459,21 +27861,23 @@ return rustls_client_session_read ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_crustls_rustls_client_session_read=yes
-else
+else $as_nop
ac_cv_lib_crustls_rustls_client_session_read=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crustls_rustls_client_session_read" >&5
-$as_echo "$ac_cv_lib_crustls_rustls_client_session_read" >&6; }
-if test "x$ac_cv_lib_crustls_rustls_client_session_read" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crustls_rustls_client_session_read" >&5
+printf "%s\n" "$ac_cv_lib_crustls_rustls_client_session_read" >&6; }
+if test "x$ac_cv_lib_crustls_rustls_client_session_read" = xyes
+then :
-$as_echo "#define USE_RUSTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_RUSTLS 1" >>confdefs.h
USE_RUSTLS=1
@@ -26501,11 +27905,12 @@ fi
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rustls_connection_read in -lcrustls" >&5
-$as_echo_n "checking for rustls_connection_read in -lcrustls... " >&6; }
-if ${ac_cv_lib_crustls_rustls_connection_read+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rustls_connection_read in -lcrustls" >&5
+printf %s "checking for rustls_connection_read in -lcrustls... " >&6; }
+if test ${ac_cv_lib_crustls_rustls_connection_read+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrustls -lpthread -ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26523,21 +27928,23 @@ return rustls_connection_read ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_crustls_rustls_connection_read=yes
-else
+else $as_nop
ac_cv_lib_crustls_rustls_connection_read=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crustls_rustls_connection_read" >&5
-$as_echo "$ac_cv_lib_crustls_rustls_connection_read" >&6; }
-if test "x$ac_cv_lib_crustls_rustls_connection_read" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crustls_rustls_connection_read" >&5
+printf "%s\n" "$ac_cv_lib_crustls_rustls_connection_read" >&6; }
+if test "x$ac_cv_lib_crustls_rustls_connection_read" = xyes
+then :
-$as_echo "#define USE_RUSTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_RUSTLS 1" >>confdefs.h
USE_RUSTLS=1
@@ -26546,15 +27953,15 @@ $as_echo "#define USE_RUSTLS 1" >>confdefs.h
ssl_msg="rustls"
test rustls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
as_fn_error $? "--with-rustls was specified but could not find rustls." "$LINENO" 5
fi
fi
if test "x$USE_RUSTLS" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected rustls" >&5
-$as_echo "$as_me: detected rustls" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected rustls" >&5
+printf "%s\n" "$as_me: detected rustls" >&6;}
check_for_ca_bundle=1
LIBS="-lcrustls -lpthread -ldl $LIBS"
@@ -26563,8 +27970,8 @@ $as_echo "$as_me: detected rustls" >&6;}
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$rustlslib"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $rustlslib to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $rustlslib to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $rustlslib to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $rustlslib to CURL_LIBRARY_PATH" >&6;}
fi
fi
fi
@@ -26594,11 +28001,12 @@ if test "x$OPT_NSS" != xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -26609,11 +28017,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -26625,11 +28037,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -26638,11 +28050,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -26653,11 +28066,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -26669,11 +28086,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -26681,8 +28098,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -26694,8 +28111,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5
-$as_echo_n "checking for nss options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5
+printf %s "checking for nss options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -26705,11 +28122,11 @@ $as_echo_n "checking for nss options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -26743,11 +28160,12 @@ $as_echo "found" >&6; }
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -26758,11 +28176,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -26774,11 +28196,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -26787,11 +28209,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -26802,11 +28225,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -26818,11 +28245,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -26830,8 +28257,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -26843,8 +28270,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5
-$as_echo_n "checking for nss options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5
+printf %s "checking for nss options with pkg-config... " >&6; }
itexists=`
if test -n "$NSS_PCDIR"; then
PKG_CONFIG_LIBDIR="$NSS_PCDIR"
@@ -26854,11 +28281,11 @@ $as_echo_n "checking for nss options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -26899,8 +28326,8 @@ $as_echo "found" >&6; }
if test -z "$addlib"; then
# Without pkg-config, we'll kludge in some defaults
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired libraries and compilation flags for NSS." >&5
-$as_echo "$as_me: WARNING: Using hard-wired libraries and compilation flags for NSS." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired libraries and compilation flags for NSS." >&5
+printf "%s\n" "$as_me: WARNING: Using hard-wired libraries and compilation flags for NSS." >&2;}
addld="-L$OPT_NSS/lib"
addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
addcflags="-I$OPT_NSS/include"
@@ -26918,11 +28345,12 @@ $as_echo "$as_me: WARNING: Using hard-wired libraries and compilation flags for
CPPFLAGS="$CPPFLAGS $addcflags"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_VersionRangeSet in -lnss3" >&5
-$as_echo_n "checking for SSL_VersionRangeSet in -lnss3... " >&6; }
-if ${ac_cv_lib_nss3_SSL_VersionRangeSet+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_VersionRangeSet in -lnss3" >&5
+printf %s "checking for SSL_VersionRangeSet in -lnss3... " >&6; }
+if test ${ac_cv_lib_nss3_SSL_VersionRangeSet+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnss3 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26940,21 +28368,23 @@ return SSL_VersionRangeSet ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_nss3_SSL_VersionRangeSet=yes
-else
+else $as_nop
ac_cv_lib_nss3_SSL_VersionRangeSet=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nss3_SSL_VersionRangeSet" >&5
-$as_echo "$ac_cv_lib_nss3_SSL_VersionRangeSet" >&6; }
-if test "x$ac_cv_lib_nss3_SSL_VersionRangeSet" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nss3_SSL_VersionRangeSet" >&5
+printf "%s\n" "$ac_cv_lib_nss3_SSL_VersionRangeSet" >&6; }
+if test "x$ac_cv_lib_nss3_SSL_VersionRangeSet" = xyes
+then :
-$as_echo "#define USE_NSS 1" >>confdefs.h
+printf "%s\n" "#define USE_NSS 1" >>confdefs.h
USE_NSS=1
@@ -26963,7 +28393,7 @@ $as_echo "#define USE_NSS 1" >>confdefs.h
ssl_msg="NSS"
test nss != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
-else
+else $as_nop
LDFLAGS="$CLEANLDFLAGS"
LIBS="$CLEANLIBS"
@@ -26973,14 +28403,15 @@ fi
if test "x$USE_NSS" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: detected NSS version $version" >&5
-$as_echo "$as_me: detected NSS version $version" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: detected NSS version $version" >&5
+printf "%s\n" "$as_me: detected NSS version $version" >&6;}
ac_fn_c_check_func "$LINENO" "PK11_CreateManagedGenericObject" "ac_cv_func_PK11_CreateManagedGenericObject"
-if test "x$ac_cv_func_PK11_CreateManagedGenericObject" = xyes; then :
+if test "x$ac_cv_func_PK11_CreateManagedGenericObject" = xyes
+then :
-$as_echo "#define HAVE_PK11_CREATEMANAGEDGENERICOBJECT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PK11_CREATEMANAGEDGENERICOBJECT 1" >>confdefs.h
fi
@@ -26992,8 +28423,8 @@ fi
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$nssprefix/lib$libsuff"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $nssprefix/lib$libsuff to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $nssprefix/lib$libsuff to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $nssprefix/lib$libsuff to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $nssprefix/lib$libsuff to CURL_LIBRARY_PATH" >&6;}
fi
fi
@@ -27010,17 +28441,17 @@ fi
case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$MBEDTLS_ENABLED$WOLFSSL_ENABLED$SCHANNEL_ENABLED$SECURETRANSPORT_ENABLED$MESALINK_ENABLED$BEARSSL_ENABLED$AMISSL_ENABLED$RUSTLS_ENABLED"
in
x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5
-$as_echo "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-nss, --with-schannel, --with-secure-transport, --with-mesalink, --with-amissl, --with-bearssl or --with-rustls to address this." >&5
-$as_echo "$as_me: WARNING: Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-nss, --with-schannel, --with-secure-transport, --with-mesalink, --with-amissl, --with-bearssl or --with-rustls to address this." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5
+printf "%s\n" "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-nss, --with-schannel, --with-secure-transport, --with-mesalink, --with-amissl, --with-bearssl or --with-rustls to address this." >&5
+printf "%s\n" "$as_me: WARNING: Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-nss, --with-schannel, --with-secure-transport, --with-mesalink, --with-amissl, --with-bearssl or --with-rustls to address this." >&2;}
;;
x1)
# one SSL backend is enabled
SSL_ENABLED="1"
- { $as_echo "$as_me:${as_lineno-$LINENO}: built with one SSL backend" >&5
-$as_echo "$as_me: built with one SSL backend" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: built with one SSL backend" >&5
+printf "%s\n" "$as_me: built with one SSL backend" >&6;}
;;
*)
# more than one SSL backend is enabled
@@ -27029,10 +28460,10 @@ $as_echo "$as_me: built with one SSL backend" >&6;}
CURL_WITH_MULTI_SSL="1"
-$as_echo "#define CURL_WITH_MULTI_SSL 1" >>confdefs.h
+printf "%s\n" "#define CURL_WITH_MULTI_SSL 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: built with multiple SSL backends" >&5
-$as_echo "$as_me: built with multiple SSL backends" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: built with multiple SSL backends" >&5
+printf "%s\n" "$as_me: built with multiple SSL backends" >&6;}
;;
esac
@@ -27051,9 +28482,7 @@ then
elif test yes = "$VALID_DEFAULT_SSL_BACKEND"
then
-cat >>confdefs.h <<_ACEOF
-#define CURL_DEFAULT_SSL_BACKEND "$DEFAULT_SSL_BACKEND"
-_ACEOF
+printf "%s\n" "#define CURL_DEFAULT_SSL_BACKEND \"$DEFAULT_SSL_BACKEND\"" >>confdefs.h
fi
@@ -27061,32 +28490,34 @@ fi
if test -n "$check_for_ca_bundle"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5
-$as_echo_n "checking default CA cert bundle/path... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5
+printf %s "checking default CA cert bundle/path... " >&6; }
# Check whether --with-ca-bundle was given.
-if test "${with_ca_bundle+set}" = set; then :
+if test ${with_ca_bundle+y}
+then :
withval=$with_ca_bundle;
want_ca="$withval"
if test "x$want_ca" = "xyes"; then
as_fn_error $? "--with-ca-bundle=FILE requires a path to the CA bundle" "$LINENO" 5
fi
-else
+else $as_nop
want_ca="unset"
fi
# Check whether --with-ca-path was given.
-if test "${with_ca_path+set}" = set; then :
+if test ${with_ca_path+y}
+then :
withval=$with_ca_path;
want_capath="$withval"
if test "x$want_capath" = "xyes"; then
as_fn_error $? "--with-ca-path=DIRECTORY requires a path to the CA path directory" "$LINENO" 5
fi
-else
+else $as_nop
want_capath="unset"
fi
@@ -27136,8 +28567,8 @@ fi
check_capath="/etc/ssl/certs/"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: skipped the ca-cert path detection when cross-compiling" >&5
-$as_echo "$as_me: WARNING: skipped the ca-cert path detection when cross-compiling" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: skipped the ca-cert path detection when cross-compiling" >&5
+printf "%s\n" "$as_me: WARNING: skipped the ca-cert path detection when cross-compiling" >&2;}
fi
fi
@@ -27168,53 +28599,48 @@ $as_echo "$as_me: WARNING: skipped the ca-cert path detection when cross-compili
if test "x$ca" != "xno"; then
CURL_CA_BUNDLE='"'$ca'"'
-cat >>confdefs.h <<_ACEOF
-#define CURL_CA_BUNDLE "$ca"
-_ACEOF
+printf "%s\n" "#define CURL_CA_BUNDLE \"$ca\"" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ca" >&5
-$as_echo "$ca" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ca" >&5
+printf "%s\n" "$ca" >&6; }
fi
if test "x$capath" != "xno"; then
CURL_CA_PATH="\"$capath\""
-cat >>confdefs.h <<_ACEOF
-#define CURL_CA_PATH "$capath"
-_ACEOF
+printf "%s\n" "#define CURL_CA_PATH \"$capath\"" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $capath (capath)" >&5
-$as_echo "$capath (capath)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $capath (capath)" >&5
+printf "%s\n" "$capath (capath)" >&6; }
fi
if test "x$ca" = "xno" && test "x$capath" = "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use builtin CA store of SSL library" >&5
-$as_echo_n "checking whether to use builtin CA store of SSL library... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use builtin CA store of SSL library" >&5
+printf %s "checking whether to use builtin CA store of SSL library... " >&6; }
# Check whether --with-ca-fallback was given.
-if test "${with_ca_fallback+set}" = set; then :
+if test ${with_ca_fallback+y}
+then :
withval=$with_ca_fallback;
if test "x$with_ca_fallback" != "xyes" -a "x$with_ca_fallback" != "xno"; then
as_fn_error $? "--with-ca-fallback only allows yes or no as parameter" "$LINENO" 5
fi
-else
+else $as_nop
with_ca_fallback="no"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ca_fallback" >&5
-$as_echo "$with_ca_fallback" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_ca_fallback" >&5
+printf "%s\n" "$with_ca_fallback" >&6; }
if test "x$with_ca_fallback" = "xyes"; then
if test "x$OPENSSL_ENABLED" != "x1" -a "x$GNUTLS_ENABLED" != "x1"; then
as_fn_error $? "--with-ca-fallback only works with OpenSSL or GnuTLS" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define CURL_CA_FALLBACK 1
-_ACEOF
+printf "%s\n" "#define CURL_CA_FALLBACK 1" >>confdefs.h
fi
@@ -27223,18 +28649,20 @@ fi
# Check whether --with-libpsl was given.
-if test "${with_libpsl+set}" = set; then :
+if test ${with_libpsl+y}
+then :
withval=$with_libpsl; with_libpsl=$withval
-else
+else $as_nop
with_libpsl=yes
fi
if test $with_libpsl != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psl_builtin" >&5
-$as_echo_n "checking for library containing psl_builtin... " >&6; }
-if ${ac_cv_search_psl_builtin+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing psl_builtin" >&5
+printf %s "checking for library containing psl_builtin... " >&6; }
+if test ${ac_cv_search_psl_builtin+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -27251,44 +28679,49 @@ return psl_builtin ();
return 0;
}
_ACEOF
-for ac_lib in '' psl; do
+for ac_lib in '' psl
+do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
- if ac_fn_c_try_link "$LINENO"; then :
+ if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_search_psl_builtin=$ac_res
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
- if ${ac_cv_search_psl_builtin+:} false; then :
+ if test ${ac_cv_search_psl_builtin+y}
+then :
break
fi
done
-if ${ac_cv_search_psl_builtin+:} false; then :
+if test ${ac_cv_search_psl_builtin+y}
+then :
-else
+else $as_nop
ac_cv_search_psl_builtin=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psl_builtin" >&5
-$as_echo "$ac_cv_search_psl_builtin" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psl_builtin" >&5
+printf "%s\n" "$ac_cv_search_psl_builtin" >&6; }
ac_res=$ac_cv_search_psl_builtin
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
curl_psl_msg="enabled";
-$as_echo "#define USE_LIBPSL 1" >>confdefs.h
+printf "%s\n" "#define USE_LIBPSL 1" >>confdefs.h
-else
+else $as_nop
curl_psl_msg="no (libpsl not found)";
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpsl was not found" >&5
-$as_echo "$as_me: WARNING: libpsl was not found" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libpsl was not found" >&5
+printf "%s\n" "$as_me: WARNING: libpsl was not found" >&2;}
fi
@@ -27307,18 +28740,20 @@ fi
# Check whether --with-libgsasl was given.
-if test "${with_libgsasl+set}" = set; then :
+if test ${with_libgsasl+y}
+then :
withval=$with_libgsasl; with_libgsasl=$withval
-else
+else $as_nop
with_libgsasl=yes
fi
if test $with_libgsasl != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gsasl_init" >&5
-$as_echo_n "checking for library containing gsasl_init... " >&6; }
-if ${ac_cv_search_gsasl_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing gsasl_init" >&5
+printf %s "checking for library containing gsasl_init... " >&6; }
+if test ${ac_cv_search_gsasl_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -27335,44 +28770,49 @@ return gsasl_init ();
return 0;
}
_ACEOF
-for ac_lib in '' gsasl; do
+for ac_lib in '' gsasl
+do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
- if ac_fn_c_try_link "$LINENO"; then :
+ if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_search_gsasl_init=$ac_res
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
- if ${ac_cv_search_gsasl_init+:} false; then :
+ if test ${ac_cv_search_gsasl_init+y}
+then :
break
fi
done
-if ${ac_cv_search_gsasl_init+:} false; then :
+if test ${ac_cv_search_gsasl_init+y}
+then :
-else
+else $as_nop
ac_cv_search_gsasl_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gsasl_init" >&5
-$as_echo "$ac_cv_search_gsasl_init" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gsasl_init" >&5
+printf "%s\n" "$ac_cv_search_gsasl_init" >&6; }
ac_res=$ac_cv_search_gsasl_init
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
curl_gsasl_msg="enabled";
-$as_echo "#define USE_GSASL 1" >>confdefs.h
+printf "%s\n" "#define USE_GSASL 1" >>confdefs.h
-else
+else $as_nop
curl_gsasl_msg="no (libgsasl not found)";
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libgsasl was not found" >&5
-$as_echo "$as_me: WARNING: libgsasl was not found" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libgsasl was not found" >&5
+printf "%s\n" "$as_me: WARNING: libgsasl was not found" >&2;}
fi
@@ -27389,7 +28829,8 @@ fi
# Check whether --with-libmetalink was given.
-if test "${with_libmetalink+set}" = set; then :
+if test ${with_libmetalink+y}
+then :
withval=$with_libmetalink; as_fn_error $? "--with-libmetalink no longer works!" "$LINENO" 5
fi
@@ -27398,9 +28839,10 @@ fi
OPT_LIBSSH2=off
# Check whether --with-libssh2 was given.
-if test "${with_libssh2+set}" = set; then :
+if test ${with_libssh2+y}
+then :
withval=$with_libssh2; OPT_LIBSSH2=$withval
-else
+else $as_nop
OPT_LIBSSH2=no
fi
@@ -27409,9 +28851,10 @@ fi
OPT_LIBSSH=off
# Check whether --with-libssh was given.
-if test "${with_libssh+set}" = set; then :
+if test ${with_libssh+y}
+then :
withval=$with_libssh; OPT_LIBSSH=$withval
-else
+else $as_nop
OPT_LIBSSH=no
fi
@@ -27419,9 +28862,10 @@ fi
OPT_WOLFSSH=off
# Check whether --with-wolfssh was given.
-if test "${with_wolfssh+set}" = set; then :
+if test ${with_wolfssh+y}
+then :
withval=$with_wolfssh; OPT_WOLFSSH=$withval
-else
+else $as_nop
OPT_WOLFSSH=no
fi
@@ -27440,11 +28884,12 @@ if test X"$OPT_LIBSSH2" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -27455,11 +28900,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -27471,11 +28920,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -27484,11 +28933,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -27499,11 +28949,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -27515,11 +28969,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -27527,8 +28981,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -27540,8 +28994,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2 options with pkg-config" >&5
-$as_echo_n "checking for libssh2 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libssh2 options with pkg-config" >&5
+printf %s "checking for libssh2 options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -27551,11 +29005,11 @@ $as_echo_n "checking for libssh2 options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -27587,11 +29041,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $CPP_SSH2"
LIBS="$LIB_SSH2 $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_session_block_directions in -lssh2" >&5
-$as_echo_n "checking for libssh2_session_block_directions in -lssh2... " >&6; }
-if ${ac_cv_lib_ssh2_libssh2_session_block_directions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libssh2_session_block_directions in -lssh2" >&5
+printf %s "checking for libssh2_session_block_directions in -lssh2... " >&6; }
+if test ${ac_cv_lib_ssh2_libssh2_session_block_directions+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lssh2 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -27609,38 +29064,37 @@ return libssh2_session_block_directions ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ssh2_libssh2_session_block_directions=yes
-else
+else $as_nop
ac_cv_lib_ssh2_libssh2_session_block_directions=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh2_libssh2_session_block_directions" >&5
-$as_echo "$ac_cv_lib_ssh2_libssh2_session_block_directions" >&6; }
-if test "x$ac_cv_lib_ssh2_libssh2_session_block_directions" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSH2 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh2_libssh2_session_block_directions" >&5
+printf "%s\n" "$ac_cv_lib_ssh2_libssh2_session_block_directions" >&6; }
+if test "x$ac_cv_lib_ssh2_libssh2_session_block_directions" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSH2 1" >>confdefs.h
LIBS="-lssh2 $LIBS"
fi
- for ac_header in libssh2.h
+ for ac_header in libssh2.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "$ac_includes_default"
-if test "x$ac_cv_header_libssh2_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSH2_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "$ac_includes_default"
+if test "x$ac_cv_header_libssh2_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSH2_H 1" >>confdefs.h
curl_ssh_msg="enabled (libSSH2)"
LIBSSH2_ENABLED=1
-$as_echo "#define USE_LIBSSH2 1" >>confdefs.h
+printf "%s\n" "#define USE_LIBSSH2 1" >>confdefs.h
USE_LIBSSH2=1
@@ -27649,7 +29103,6 @@ fi
done
-
if test X"$OPT_LIBSSH2" != Xoff &&
test "$LIBSSH2_ENABLED" != "1"; then
as_fn_error $? "libSSH2 libs and/or directories were not found where specified!" "$LINENO" 5
@@ -27661,8 +29114,8 @@ done
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_SSH2"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH2 to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_SSH2 to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH2 to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_SSH2 to CURL_LIBRARY_PATH" >&6;}
fi
fi
else
@@ -27684,11 +29137,12 @@ elif test X"$OPT_LIBSSH" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -27699,11 +29153,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -27715,11 +29173,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -27728,11 +29186,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -27743,11 +29202,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -27759,11 +29222,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -27771,8 +29234,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -27784,8 +29247,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh options with pkg-config" >&5
-$as_echo_n "checking for libssh options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libssh options with pkg-config" >&5
+printf %s "checking for libssh options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -27795,11 +29258,11 @@ $as_echo_n "checking for libssh options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -27831,11 +29294,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $CPP_SSH"
LIBS="$LIB_SSH $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssh_new in -lssh" >&5
-$as_echo_n "checking for ssh_new in -lssh... " >&6; }
-if ${ac_cv_lib_ssh_ssh_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssh_new in -lssh" >&5
+printf %s "checking for ssh_new in -lssh... " >&6; }
+if test ${ac_cv_lib_ssh_ssh_new+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lssh $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -27853,38 +29317,37 @@ return ssh_new ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ssh_ssh_new=yes
-else
+else $as_nop
ac_cv_lib_ssh_ssh_new=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh_ssh_new" >&5
-$as_echo "$ac_cv_lib_ssh_ssh_new" >&6; }
-if test "x$ac_cv_lib_ssh_ssh_new" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSH 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh_ssh_new" >&5
+printf "%s\n" "$ac_cv_lib_ssh_ssh_new" >&6; }
+if test "x$ac_cv_lib_ssh_ssh_new" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSH 1" >>confdefs.h
LIBS="-lssh $LIBS"
fi
- for ac_header in libssh/libssh.h
+ for ac_header in libssh/libssh.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "libssh/libssh.h" "ac_cv_header_libssh_libssh_h" "$ac_includes_default"
-if test "x$ac_cv_header_libssh_libssh_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSSH_LIBSSH_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "libssh/libssh.h" "ac_cv_header_libssh_libssh_h" "$ac_includes_default"
+if test "x$ac_cv_header_libssh_libssh_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSSH_LIBSSH_H 1" >>confdefs.h
curl_ssh_msg="enabled (libSSH)"
LIBSSH_ENABLED=1
-$as_echo "#define USE_LIBSSH 1" >>confdefs.h
+printf "%s\n" "#define USE_LIBSSH 1" >>confdefs.h
USE_LIBSSH=1
@@ -27893,7 +29356,6 @@ fi
done
-
if test X"$OPT_LIBSSH" != Xoff &&
test "$LIBSSH_ENABLED" != "1"; then
as_fn_error $? "libSSH libs and/or directories were not found where specified!" "$LINENO" 5
@@ -27905,8 +29367,8 @@ done
if test "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_SSH"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_SSH to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_SSH to CURL_LIBRARY_PATH" >&6;}
fi
fi
else
@@ -27926,11 +29388,12 @@ elif test X"$OPT_WOLFSSH" != Xno; then
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
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfSSH_Init in -lwolfssh" >&5
+printf %s "checking for wolfSSH_Init in -lwolfssh... " >&6; }
+if test ${ac_cv_lib_wolfssh_wolfSSH_Init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lwolfssh $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -27948,38 +29411,37 @@ return wolfSSH_Init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_wolfssh_wolfSSH_Init=yes
-else
+else $as_nop
ac_cv_lib_wolfssh_wolfSSH_Init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
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
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wolfssh_wolfSSH_Init" >&5
+printf "%s\n" "$ac_cv_lib_wolfssh_wolfSSH_Init" >&6; }
+if test "x$ac_cv_lib_wolfssh_wolfSSH_Init" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBWOLFSSH 1" >>confdefs.h
LIBS="-lwolfssh $LIBS"
fi
- for ac_header in wolfssh/ssh.h
+ 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
+ ac_fn_c_check_header_compile "$LINENO" "wolfssh/ssh.h" "ac_cv_header_wolfssh_ssh_h" "$ac_includes_default"
+if test "x$ac_cv_header_wolfssh_ssh_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_WOLFSSH_SSH_H 1" >>confdefs.h
curl_ssh_msg="enabled (wolfSSH)"
WOLFSSH_ENABLED=1
-$as_echo "#define USE_WOLFSSH 1" >>confdefs.h
+printf "%s\n" "#define USE_WOLFSSH 1" >>confdefs.h
USE_WOLFSSH=1
@@ -27988,14 +29450,14 @@ fi
done
-
fi
OPT_LIBRTMP=off
# Check whether --with-librtmp was given.
-if test "${with_librtmp+set}" = set; then :
+if test ${with_librtmp+y}
+then :
withval=$with_librtmp; OPT_LIBRTMP=$withval
fi
@@ -28014,11 +29476,12 @@ if test X"$OPT_LIBRTMP" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -28029,11 +29492,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28045,11 +29512,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -28058,11 +29525,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -28073,11 +29541,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28089,11 +29561,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -28101,8 +29573,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -28114,8 +29586,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for librtmp options with pkg-config" >&5
-$as_echo_n "checking for librtmp options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for librtmp options with pkg-config" >&5
+printf %s "checking for librtmp options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -28125,11 +29597,11 @@ $as_echo_n "checking for librtmp options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -28164,11 +29636,12 @@ $as_echo "found" >&6; }
CPPFLAGS="$CPPFLAGS $CPP_RTMP"
LIBS="$LIB_RTMP $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTMP_Init in -lrtmp" >&5
-$as_echo_n "checking for RTMP_Init in -lrtmp... " >&6; }
-if ${ac_cv_lib_rtmp_RTMP_Init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for RTMP_Init in -lrtmp" >&5
+printf %s "checking for RTMP_Init in -lrtmp... " >&6; }
+if test ${ac_cv_lib_rtmp_RTMP_Init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lrtmp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -28186,30 +29659,31 @@ return RTMP_Init ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_rtmp_RTMP_Init=yes
-else
+else $as_nop
ac_cv_lib_rtmp_RTMP_Init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rtmp_RTMP_Init" >&5
-$as_echo "$ac_cv_lib_rtmp_RTMP_Init" >&6; }
-if test "x$ac_cv_lib_rtmp_RTMP_Init" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rtmp_RTMP_Init" >&5
+printf "%s\n" "$ac_cv_lib_rtmp_RTMP_Init" >&6; }
+if test "x$ac_cv_lib_rtmp_RTMP_Init" = xyes
+then :
- for ac_header in librtmp/rtmp.h
+ for ac_header in librtmp/rtmp.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "librtmp/rtmp.h" "ac_cv_header_librtmp_rtmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_librtmp_rtmp_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRTMP_RTMP_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "librtmp/rtmp.h" "ac_cv_header_librtmp_rtmp_h" "$ac_includes_default"
+if test "x$ac_cv_header_librtmp_rtmp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBRTMP_RTMP_H 1" >>confdefs.h
curl_rtmp_msg="enabled (librtmp)"
LIBRTMP_ENABLED=1
-$as_echo "#define USE_LIBRTMP 1" >>confdefs.h
+printf "%s\n" "#define USE_LIBRTMP 1" >>confdefs.h
USE_LIBRTMP=1
@@ -28218,8 +29692,7 @@ fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -28236,24 +29709,25 @@ fi
versioned_symbols_flavour=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether versioned symbols are wanted" >&5
-$as_echo_n "checking whether versioned symbols are wanted... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether versioned symbols are wanted" >&5
+printf %s "checking whether versioned symbols are wanted... " >&6; }
# Check whether --enable-versioned-symbols was given.
-if test "${enable_versioned_symbols+set}" = set; then :
+if test ${enable_versioned_symbols+y}
+then :
enableval=$enable_versioned_symbols; case "$enableval" in
- yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libraries can be versioned" >&5
-$as_echo_n "checking if libraries can be versioned... " >&6; }
+ yes) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libraries can be versioned" >&5
+printf %s "checking if libraries can be versioned... " >&6; }
GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
if test -z "$GLD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You need an ld version supporting the --version-script option" >&5
-$as_echo "$as_me: WARNING: You need an ld version supporting the --version-script option" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You need an ld version supporting the --version-script option" >&5
+printf "%s\n" "$as_me: WARNING: You need an ld version supporting the --version-script option" >&2;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
versioned_symbols_flavour="MULTISSL_"
elif test "x$OPENSSL_ENABLED" = "x1"; then
@@ -28275,15 +29749,15 @@ $as_echo "yes" >&6; }
fi
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
-else
+else $as_nop
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -28301,41 +29775,43 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native IDN (Windows native builds only)" >&5
-$as_echo_n "checking whether to enable Windows native IDN (Windows native builds only)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows native IDN (Windows native builds only)" >&5
+printf %s "checking whether to enable Windows native IDN (Windows native builds only)... " >&6; }
OPT_WINIDN="default"
# Check whether --with-winidn was given.
-if test "${with_winidn+set}" = set; then :
+if test ${with_winidn+y}
+then :
withval=$with_winidn; OPT_WINIDN=$withval
fi
case "$OPT_WINIDN" in
no|default)
want_winidn="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
yes)
want_winidn="yes"
want_winidn_path="default"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
*)
want_winidn="yes"
want_winidn_path="$withval"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5
-$as_echo "yes ($withval)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5
+printf "%s\n" "yes ($withval)" >&6; }
;;
esac
if test "$want_winidn" = "yes"; then
- clean_CPPFLAGS="$CPPFLAGS"
+ clean_CFLAGS="$CFLAGS"
+ clean_CPPFLAGS="$CPPFLAGS"
clean_LDFLAGS="$LDFLAGS"
clean_LIBS="$LIBS"
WINIDN_LIBS="-lnormaliz"
- WINIDN_CPPFLAGS="-DWINVER=0x0600"
+ WINIDN_CPPFLAGS=""
#
if test "$want_winidn_path" != "default"; then
WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff"
@@ -28343,12 +29819,45 @@ if test "$want_winidn" = "yes"; then
WINIDN_DIR="$want_winidn_path/lib$libsuff"
fi
#
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+ #include <windows.h>
+
+int main (void)
+{
+
+ #if (WINVER < 0x600) && (_WIN32_WINNT < 0x600)
+ #error
+ #endif
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+
+else $as_nop
+
+ CFLAGS=`echo $CFLAGS | $SED -e 's/-DWINVER=[^ ]*//g'`
+ CFLAGS=`echo $CFLAGS | $SED -e 's/-D_WIN32_WINNT=[^ ]*//g'`
+ CPPFLAGS=`echo $CPPFLAGS | $SED -e 's/-DWINVER=[^ ]*//g'`
+ CPPFLAGS=`echo $CPPFLAGS | $SED -e 's/-D_WIN32_WINNT=[^ ]*//g'`
+ WINIDN_CPPFLAGS="$WINIDN_CPPFLAGS -DWINVER=0x0600"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ #
CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS"
LIBS="$WINIDN_LIBS $LIBS"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IdnToUnicode can be linked" >&5
-$as_echo_n "checking if IdnToUnicode can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IdnToUnicode can be linked" >&5
+printf %s "checking if IdnToUnicode can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -28365,35 +29874,37 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_winidn="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_winidn="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_winidn" = "yes"; then
-$as_echo "#define USE_WIN32_IDN 1" >>confdefs.h
+printf "%s\n" "#define USE_WIN32_IDN 1" >>confdefs.h
-$as_echo "#define WANT_IDN_PROTOTYPES 1" >>confdefs.h
+printf "%s\n" "#define WANT_IDN_PROTOTYPES 1" >>confdefs.h
IDN_ENABLED=1
curl_idn_msg="enabled (Windows-native)"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
-$as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
+printf "%s\n" "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;}
+ CFLAGS="$clean_CFLAGS"
CPPFLAGS="$clean_CPPFLAGS"
LDFLAGS="$clean_LDFLAGS"
LIBS="$clean_LIBS"
@@ -28401,38 +29912,39 @@ $as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libidn2" >&5
-$as_echo_n "checking whether to build with libidn2... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with libidn2" >&5
+printf %s "checking whether to build with libidn2... " >&6; }
OPT_IDN="default"
# Check whether --with-libidn2 was given.
-if test "${with_libidn2+set}" = set; then :
+if test ${with_libidn2+y}
+then :
withval=$with_libidn2; OPT_IDN=$withval
fi
case "$OPT_IDN" in
no)
want_idn="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
default)
want_idn="yes"
want_idn_path="default"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
-$as_echo "(assumed) yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
+printf "%s\n" "(assumed) yes" >&6; }
;;
yes)
want_idn="yes"
want_idn_path="default"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
*)
want_idn="yes"
want_idn_path="$withval"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5
-$as_echo "yes ($withval)" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5
+printf "%s\n" "yes ($withval)" >&6; }
;;
esac
@@ -28451,11 +29963,12 @@ if test "$want_idn" = "yes"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -28466,11 +29979,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28482,11 +29999,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -28495,11 +30012,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -28510,11 +30028,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28526,11 +30048,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -28538,8 +30060,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -28551,8 +30073,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn2 options with pkg-config" >&5
-$as_echo_n "checking for libidn2 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libidn2 options with pkg-config" >&5
+printf %s "checking for libidn2 options with pkg-config... " >&6; }
itexists=`
if test -n "$IDN_PCDIR"; then
PKG_CONFIG_LIBDIR="$IDN_PCDIR"
@@ -28562,11 +30084,11 @@ $as_echo_n "checking for libidn2 options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -28604,11 +30126,12 @@ $as_echo "found" >&6; }
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -28619,11 +30142,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28635,11 +30162,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -28648,11 +30175,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -28663,11 +30191,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28679,11 +30211,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -28691,8 +30223,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -28704,8 +30236,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn2 options with pkg-config" >&5
-$as_echo_n "checking for libidn2 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libidn2 options with pkg-config" >&5
+printf %s "checking for libidn2 options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -28715,11 +30247,11 @@ $as_echo_n "checking for libidn2 options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -28734,31 +30266,31 @@ $as_echo "found" >&6; }
fi
#
if test "$PKGCONFIG" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&5
-$as_echo "$as_me: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&5
-$as_echo "$as_me: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&5
+printf "%s\n" "$as_me: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&5
+printf "%s\n" "$as_me: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&6;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LIBS: \"$IDN_LIBS\"" >&5
-$as_echo "$as_me: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
-$as_echo "$as_me: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
-$as_echo "$as_me: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_DIR: \"$IDN_DIR\"" >&5
-$as_echo "$as_me: IDN_DIR: \"$IDN_DIR\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: IDN_LIBS: \"$IDN_LIBS\"" >&5
+printf "%s\n" "$as_me: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
+printf "%s\n" "$as_me: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
+printf "%s\n" "$as_me: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: IDN_DIR: \"$IDN_DIR\"" >&5
+printf "%s\n" "$as_me: IDN_DIR: \"$IDN_DIR\"" >&6;}
fi
#
CPPFLAGS="$CPPFLAGS $IDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $IDN_LDFLAGS"
LIBS="$IDN_LIBS $LIBS"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if idn2_lookup_ul can be linked" >&5
-$as_echo_n "checking if idn2_lookup_ul can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if idn2_lookup_ul can be linked" >&5
+printf %s "checking if idn2_lookup_ul can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -28786,39 +30318,34 @@ return idn2_lookup_ul ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_libidn="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_libidn="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
- for ac_header in idn2.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "idn2.h" "ac_cv_header_idn2_h" "$ac_includes_default"
+if test "x$ac_cv_header_idn2_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_IDN2_H 1" >>confdefs.h
fi
-done
-
if test "$tst_links_libidn" = "yes"; then
-$as_echo "#define HAVE_LIBIDN2 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBIDN2 1" >>confdefs.h
IDN_ENABLED=1
@@ -28827,12 +30354,12 @@ $as_echo "#define HAVE_LIBIDN2 1" >>confdefs.h
if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$IDN_DIR"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $IDN_DIR to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $IDN_DIR to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $IDN_DIR to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $IDN_DIR to CURL_LIBRARY_PATH" >&6;}
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
-$as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
+printf "%s\n" "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;}
CPPFLAGS="$clean_CPPFLAGS"
LDFLAGS="$clean_LDFLAGS"
LIBS="$clean_LIBS"
@@ -28840,37 +30367,35 @@ $as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled"
fi
-
-
-
OPT_H2="yes"
-if test "x$disable_http" = "xyes"; then
- # without HTTP, nghttp2 is no use
+if test "x$disable_http" = "xyes" -o X"$want_hyper" != Xno; then
+ # without HTTP or with Hyper, nghttp2 is no use
OPT_H2="no"
fi
# Check whether --with-nghttp2 was given.
-if test "${with_nghttp2+set}" = set; then :
+if test ${with_nghttp2+y}
+then :
withval=$with_nghttp2; OPT_H2=$withval
fi
case "$OPT_H2" in
no)
- want_h2="no"
+ want_nghttp2="no"
;;
yes)
- want_h2="default"
- want_h2_path=""
+ want_nghttp2="default"
+ want_nghttp2_path=""
;;
*)
- want_h2="yes"
- want_h2_path="$withval/lib/pkgconfig"
+ want_nghttp2="yes"
+ want_nghttp2_path="$withval/lib/pkgconfig"
;;
esac
-if test X"$want_h2" != Xno; then
+if test X"$want_nghttp2" != Xno; then
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
@@ -28882,11 +30407,12 @@ if test X"$want_h2" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -28897,11 +30423,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28913,11 +30443,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -28926,11 +30456,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -28941,11 +30472,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -28957,11 +30492,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -28969,8 +30504,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -28982,71 +30517,70 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnghttp2 options with pkg-config" >&5
-$as_echo_n "checking for libnghttp2 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libnghttp2 options with pkg-config" >&5
+printf %s "checking for libnghttp2 options with pkg-config... " >&6; }
itexists=`
- if test -n "$want_h2_path"; then
- PKG_CONFIG_LIBDIR="$want_h2_path"
+ if test -n "$want_nghttp2_path"; then
+ PKG_CONFIG_LIBDIR="$want_nghttp2_path"
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --exists libnghttp2 >/dev/null 2>&1 && echo 1`
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
if test "$PKGCONFIG" != "no" ; then
LIB_H2=`
- if test -n "$want_h2_path"; then
- PKG_CONFIG_LIBDIR="$want_h2_path"
+ if test -n "$want_nghttp2_path"; then
+ PKG_CONFIG_LIBDIR="$want_nghttp2_path"
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --libs-only-l libnghttp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_H2" >&5
-$as_echo "$as_me: -l is $LIB_H2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_H2" >&5
+printf "%s\n" "$as_me: -l is $LIB_H2" >&6;}
CPP_H2=`
- if test -n "$want_h2_path"; then
- PKG_CONFIG_LIBDIR="$want_h2_path"
+ if test -n "$want_nghttp2_path"; then
+ PKG_CONFIG_LIBDIR="$want_nghttp2_path"
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I libnghttp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_H2" >&5
-$as_echo "$as_me: -I is $CPP_H2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_H2" >&5
+printf "%s\n" "$as_me: -I is $CPP_H2" >&6;}
LD_H2=`
- if test -n "$want_h2_path"; then
- PKG_CONFIG_LIBDIR="$want_h2_path"
+ if test -n "$want_nghttp2_path"; then
+ PKG_CONFIG_LIBDIR="$want_nghttp2_path"
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --libs-only-L libnghttp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_H2" >&5
-$as_echo "$as_me: -L is $LD_H2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_H2" >&5
+printf "%s\n" "$as_me: -L is $LD_H2" >&6;}
LDFLAGS="$LDFLAGS $LD_H2"
CPPFLAGS="$CPPFLAGS $CPP_H2"
LIBS="$LIB_H2 $LIBS"
- LIB_H2_NAME=${LIB_H2#"-l"}
# use nghttp2_session_set_local_window_size to require nghttp2
# >= 1.12.0
- as_ac_Lib=`$as_echo "ac_cv_lib_$LIB_H2_NAME''_nghttp2_session_set_local_window_size" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp2_session_set_local_window_size in -l$LIB_H2_NAME" >&5
-$as_echo_n "checking for nghttp2_session_set_local_window_size in -l$LIB_H2_NAME... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nghttp2_session_set_local_window_size in -lnghttp2" >&5
+printf %s "checking for nghttp2_session_set_local_window_size in -lnghttp2... " >&6; }
+if test ${ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$LIB_H2_NAME $LIBS"
+LIBS="-lnghttp2 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29062,31 +30596,31 @@ return nghttp2_session_set_local_window_size ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$as_ac_Lib=yes"
-else
- eval "$as_ac_Lib=no"
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size=yes
+else $as_nop
+ ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-eval ac_res=\$$as_ac_Lib
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp2_nghttp2_session_set_local_window_size" >&5
+printf "%s\n" "$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
+ 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
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "nghttp2/nghttp2.h" "ac_cv_header_nghttp2_nghttp2_h" "$ac_includes_default"
+if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NGHTTP2_NGHTTP2_H 1" >>confdefs.h
curl_h2_msg="enabled (nghttp2)"
NGHTTP2_ENABLED=1
-$as_echo "#define USE_NGHTTP2 1" >>confdefs.h
+printf "%s\n" "#define USE_NGHTTP2 1" >>confdefs.h
USE_NGHTTP2=1
@@ -29095,8 +30629,7 @@ fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -29105,7 +30638,7 @@ fi
else
- if test X"$want_h2" != Xdefault; then
+ if test X"$want_nghttp2" != Xdefault; then
as_fn_error $? "--with-nghttp2 was specified but could not find libnghttp2 pkg-config file." "$LINENO" 5
fi
fi
@@ -29122,7 +30655,8 @@ fi
# Check whether --with-ngtcp2 was given.
-if test "${with_ngtcp2+set}" = set; then :
+if test ${with_ngtcp2+y}
+then :
withval=$with_ngtcp2; OPT_TCP2=$withval
fi
@@ -29153,11 +30687,12 @@ if test X"$want_tcp2" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -29168,11 +30703,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29184,11 +30723,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -29197,11 +30736,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -29212,11 +30752,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29228,11 +30772,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -29240,8 +30784,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -29253,8 +30797,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libngtcp2 options with pkg-config" >&5
-$as_echo_n "checking for libngtcp2 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libngtcp2 options with pkg-config" >&5
+printf %s "checking for libngtcp2 options with pkg-config... " >&6; }
itexists=`
if test -n "$want_tcp2_path"; then
PKG_CONFIG_LIBDIR="$want_tcp2_path"
@@ -29264,11 +30808,11 @@ $as_echo_n "checking for libngtcp2 options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -29281,8 +30825,8 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --libs-only-l libngtcp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_TCP2" >&5
-$as_echo "$as_me: -l is $LIB_TCP2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_TCP2" >&5
+printf "%s\n" "$as_me: -l is $LIB_TCP2" >&6;}
CPP_TCP2=`
if test -n "$want_tcp2_path"; then
@@ -29290,8 +30834,8 @@ $as_echo "$as_me: -l is $LIB_TCP2" >&6;}
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I libngtcp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_TCP2" >&5
-$as_echo "$as_me: -I is $CPP_TCP2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_TCP2" >&5
+printf "%s\n" "$as_me: -I is $CPP_TCP2" >&6;}
LD_TCP2=`
if test -n "$want_tcp2_path"; then
@@ -29300,8 +30844,8 @@ $as_echo "$as_me: -I is $CPP_TCP2" >&6;}
fi
$PKGCONFIG --libs-only-L libngtcp2`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_TCP2" >&5
-$as_echo "$as_me: -L is $LD_TCP2" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_TCP2" >&5
+printf "%s\n" "$as_me: -L is $LD_TCP2" >&6;}
LDFLAGS="$LDFLAGS $LD_TCP2"
CPPFLAGS="$CPPFLAGS $CPP_TCP2"
@@ -29310,11 +30854,12 @@ $as_echo "$as_me: -L is $LD_TCP2" >&6;}
if test "x$cross_compiling" != "xyes"; then
DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_conn_client_new in -lngtcp2" >&5
-$as_echo_n "checking for ngtcp2_conn_client_new in -lngtcp2... " >&6; }
-if ${ac_cv_lib_ngtcp2_ngtcp2_conn_client_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_conn_client_new_versioned in -lngtcp2" >&5
+printf %s "checking for ngtcp2_conn_client_new_versioned in -lngtcp2... " >&6; }
+if test ${ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -29324,51 +30869,51 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char ngtcp2_conn_client_new ();
+char ngtcp2_conn_client_new_versioned ();
int main (void)
{
-return ngtcp2_conn_client_new ();
+return ngtcp2_conn_client_new_versioned ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_ngtcp2_ngtcp2_conn_client_new=yes
-else
- ac_cv_lib_ngtcp2_ngtcp2_conn_client_new=no
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned=yes
+else $as_nop
+ ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" >&5
-$as_echo "$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" >&6; }
-if test "x$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned" >&5
+printf "%s\n" "$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned" >&6; }
+if test "x$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new_versioned" = xyes
+then :
- for ac_header in ngtcp2/ngtcp2.h
+ for ac_header in ngtcp2/ngtcp2.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "ngtcp2/ngtcp2.h" "ac_cv_header_ngtcp2_ngtcp2_h" "$ac_includes_default"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NGTCP2_NGTCP2_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2.h" "ac_cv_header_ngtcp2_ngtcp2_h" "$ac_includes_default"
+if test "x$ac_cv_header_ngtcp2_ngtcp2_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_H 1" >>confdefs.h
NGTCP2_ENABLED=1
-$as_echo "#define USE_NGTCP2 1" >>confdefs.h
+printf "%s\n" "#define USE_NGTCP2 1" >>confdefs.h
USE_NGTCP2=1
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&6;}
fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -29396,11 +30941,12 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -29411,11 +30957,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29427,11 +30977,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -29440,11 +30990,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -29455,11 +31006,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29471,11 +31026,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -29483,8 +31038,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -29496,8 +31051,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libngtcp2_crypto_openssl options with pkg-config" >&5
-$as_echo_n "checking for libngtcp2_crypto_openssl options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libngtcp2_crypto_openssl options with pkg-config" >&5
+printf %s "checking for libngtcp2_crypto_openssl options with pkg-config... " >&6; }
itexists=`
if test -n "$want_tcp2_path"; then
PKG_CONFIG_LIBDIR="$want_tcp2_path"
@@ -29507,11 +31062,11 @@ $as_echo_n "checking for libngtcp2_crypto_openssl options with pkg-config... " >
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -29524,8 +31079,8 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --libs-only-l libngtcp2_crypto_openssl`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&5
-$as_echo "$as_me: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&5
+printf "%s\n" "$as_me: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&6;}
CPP_NGTCP2_CRYPTO_OPENSSL=`
if test -n "$want_tcp2_path"; then
@@ -29533,8 +31088,8 @@ $as_echo "$as_me: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&6;}
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I libngtcp2_crypto_openssl`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&5
-$as_echo "$as_me: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&5
+printf "%s\n" "$as_me: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&6;}
LD_NGTCP2_CRYPTO_OPENSSL=`
if test -n "$want_tcp2_path"; then
@@ -29543,8 +31098,8 @@ $as_echo "$as_me: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&6;}
fi
$PKGCONFIG --libs-only-L libngtcp2_crypto_openssl`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&5
-$as_echo "$as_me: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&5
+printf "%s\n" "$as_me: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&6;}
LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_OPENSSL"
CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_OPENSSL"
@@ -29553,11 +31108,12 @@ $as_echo "$as_me: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&6;}
if test "x$cross_compiling" != "xyes"; then
DIR_NGTCP2_CRYPTO_OPENSSL=`echo $LD_NGTCP2_CRYPTO_OPENSSL | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl" >&5
-$as_echo_n "checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl... " >&6; }
-if ${ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl" >&5
+printf %s "checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl... " >&6; }
+if test ${ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_openssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -29575,43 +31131,43 @@ return ngtcp2_crypto_ctx_initial ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial=yes
-else
+else $as_nop
ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&5
-$as_echo "$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&6; }
-if test "x$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&5
+printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&6; }
+if test "x$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" = xyes
+then :
- for ac_header in ngtcp2/ngtcp2_crypto.h
+ for ac_header in ngtcp2/ngtcp2_crypto.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "ngtcp2/ngtcp2_crypto.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_h" "$ac_includes_default"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2_crypto.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_h" "$ac_includes_default"
+if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
NGTCP2_ENABLED=1
-$as_echo "#define USE_NGTCP2_CRYPTO_OPENSSL 1" >>confdefs.h
+printf "%s\n" "#define USE_NGTCP2_CRYPTO_OPENSSL 1" >>confdefs.h
USE_NGTCP2_CRYPTO_OPENSSL=1
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_OPENSSL"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&6;}
fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -29638,11 +31194,12 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -29653,11 +31210,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29669,11 +31230,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -29682,11 +31243,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -29697,11 +31259,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29713,11 +31279,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -29725,8 +31291,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -29738,8 +31304,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libngtcp2_crypto_gnutls options with pkg-config" >&5
-$as_echo_n "checking for libngtcp2_crypto_gnutls options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libngtcp2_crypto_gnutls options with pkg-config" >&5
+printf %s "checking for libngtcp2_crypto_gnutls options with pkg-config... " >&6; }
itexists=`
if test -n "$want_tcp2_path"; then
PKG_CONFIG_LIBDIR="$want_tcp2_path"
@@ -29749,11 +31315,11 @@ $as_echo_n "checking for libngtcp2_crypto_gnutls options with pkg-config... " >&
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -29766,8 +31332,8 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --libs-only-l libngtcp2_crypto_gnutls`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGTCP2_CRYPTO_GNUTLS" >&5
-$as_echo "$as_me: -l is $LIB_NGTCP2_CRYPTO_GNUTLS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGTCP2_CRYPTO_GNUTLS" >&5
+printf "%s\n" "$as_me: -l is $LIB_NGTCP2_CRYPTO_GNUTLS" >&6;}
CPP_NGTCP2_CRYPTO_GNUTLS=`
if test -n "$want_tcp2_path"; then
@@ -29775,8 +31341,8 @@ $as_echo "$as_me: -l is $LIB_NGTCP2_CRYPTO_GNUTLS" >&6;}
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I libngtcp2_crypto_gnutls`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGTCP2_CRYPTO_GNUTLS" >&5
-$as_echo "$as_me: -I is $CPP_NGTCP2_CRYPTO_GNUTLS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGTCP2_CRYPTO_GNUTLS" >&5
+printf "%s\n" "$as_me: -I is $CPP_NGTCP2_CRYPTO_GNUTLS" >&6;}
LD_NGTCP2_CRYPTO_GNUTLS=`
if test -n "$want_tcp2_path"; then
@@ -29785,8 +31351,8 @@ $as_echo "$as_me: -I is $CPP_NGTCP2_CRYPTO_GNUTLS" >&6;}
fi
$PKGCONFIG --libs-only-L libngtcp2_crypto_gnutls`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_NGTCP2_CRYPTO_GNUTLS" >&5
-$as_echo "$as_me: -L is $LD_NGTCP2_CRYPTO_GNUTLS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_NGTCP2_CRYPTO_GNUTLS" >&5
+printf "%s\n" "$as_me: -L is $LD_NGTCP2_CRYPTO_GNUTLS" >&6;}
LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_GNUTLS"
CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_GNUTLS"
@@ -29795,11 +31361,12 @@ $as_echo "$as_me: -L is $LD_NGTCP2_CRYPTO_GNUTLS" >&6;}
if test "x$cross_compiling" != "xyes"; then
DIR_NGTCP2_CRYPTO_GNUTLS=`echo $LD_NGTCP2_CRYPTO_GNUTLS | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_gnutls" >&5
-$as_echo_n "checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_gnutls... " >&6; }
-if ${ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_gnutls" >&5
+printf %s "checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_gnutls... " >&6; }
+if test ${ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_gnutls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -29817,43 +31384,43 @@ return ngtcp2_crypto_ctx_initial ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial=yes
-else
+else $as_nop
ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" >&5
-$as_echo "$ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" >&6; }
-if test "x$ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" >&5
+printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" >&6; }
+if test "x$ac_cv_lib_ngtcp2_crypto_gnutls_ngtcp2_crypto_ctx_initial" = xyes
+then :
- for ac_header in ngtcp2/ngtcp2_crypto.h
+ for ac_header in ngtcp2/ngtcp2_crypto.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "ngtcp2/ngtcp2_crypto.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_h" "$ac_includes_default"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2_crypto.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_h" "$ac_includes_default"
+if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
NGTCP2_ENABLED=1
-$as_echo "#define USE_NGTCP2_CRYPTO_GNUTLS 1" >>confdefs.h
+printf "%s\n" "#define USE_NGTCP2_CRYPTO_GNUTLS 1" >>confdefs.h
USE_NGTCP2_CRYPTO_GNUTLS=1
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_GNUTLS"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH" >&6;}
fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -29878,7 +31445,8 @@ fi
# Check whether --with-nghttp3 was given.
-if test "${with_nghttp3+set}" = set; then :
+if test ${with_nghttp3+y}
+then :
withval=$with_nghttp3; OPT_NGHTTP3=$withval
fi
@@ -29909,11 +31477,12 @@ if test X"$want_nghttp3" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -29924,11 +31493,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29940,11 +31513,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -29953,11 +31526,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -29968,11 +31542,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -29984,11 +31562,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -29996,8 +31574,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -30009,8 +31587,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnghttp3 options with pkg-config" >&5
-$as_echo_n "checking for libnghttp3 options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libnghttp3 options with pkg-config" >&5
+printf %s "checking for libnghttp3 options with pkg-config... " >&6; }
itexists=`
if test -n "$want_nghttp3_path"; then
PKG_CONFIG_LIBDIR="$want_nghttp3_path"
@@ -30020,11 +31598,11 @@ $as_echo_n "checking for libnghttp3 options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -30037,8 +31615,8 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --libs-only-l libnghttp3`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGHTTP3" >&5
-$as_echo "$as_me: -l is $LIB_NGHTTP3" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGHTTP3" >&5
+printf "%s\n" "$as_me: -l is $LIB_NGHTTP3" >&6;}
CPP_NGHTTP3=`
if test -n "$want_nghttp3_path"; then
@@ -30046,8 +31624,8 @@ $as_echo "$as_me: -l is $LIB_NGHTTP3" >&6;}
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I libnghttp3`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGHTTP3" >&5
-$as_echo "$as_me: -I is $CPP_NGHTTP3" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGHTTP3" >&5
+printf "%s\n" "$as_me: -I is $CPP_NGHTTP3" >&6;}
LD_NGHTTP3=`
if test -n "$want_nghttp3_path"; then
@@ -30056,8 +31634,8 @@ $as_echo "$as_me: -I is $CPP_NGHTTP3" >&6;}
fi
$PKGCONFIG --libs-only-L libnghttp3`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_NGHTTP3" >&5
-$as_echo "$as_me: -L is $LD_NGHTTP3" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_NGHTTP3" >&5
+printf "%s\n" "$as_me: -L is $LD_NGHTTP3" >&6;}
LDFLAGS="$LDFLAGS $LD_NGHTTP3"
CPPFLAGS="$CPPFLAGS $CPP_NGHTTP3"
@@ -30066,11 +31644,12 @@ $as_echo "$as_me: -L is $LD_NGHTTP3" >&6;}
if test "x$cross_compiling" != "xyes"; then
DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp3_conn_client_new in -lnghttp3" >&5
-$as_echo_n "checking for nghttp3_conn_client_new in -lnghttp3... " >&6; }
-if ${ac_cv_lib_nghttp3_nghttp3_conn_client_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nghttp3_conn_client_new_versioned in -lnghttp3" >&5
+printf %s "checking for nghttp3_conn_client_new_versioned in -lnghttp3... " >&6; }
+if test ${ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnghttp3 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30080,53 +31659,53 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char nghttp3_conn_client_new ();
+char nghttp3_conn_client_new_versioned ();
int main (void)
{
-return nghttp3_conn_client_new ();
+return nghttp3_conn_client_new_versioned ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_nghttp3_nghttp3_conn_client_new=yes
-else
- ac_cv_lib_nghttp3_nghttp3_conn_client_new=no
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned=yes
+else $as_nop
+ ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp3_nghttp3_conn_client_new" >&5
-$as_echo "$ac_cv_lib_nghttp3_nghttp3_conn_client_new" >&6; }
-if test "x$ac_cv_lib_nghttp3_nghttp3_conn_client_new" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned" >&5
+printf "%s\n" "$ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned" >&6; }
+if test "x$ac_cv_lib_nghttp3_nghttp3_conn_client_new_versioned" = xyes
+then :
- for ac_header in nghttp3/nghttp3.h
+ for ac_header in nghttp3/nghttp3.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "nghttp3/nghttp3.h" "ac_cv_header_nghttp3_nghttp3_h" "$ac_includes_default"
-if test "x$ac_cv_header_nghttp3_nghttp3_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NGHTTP3_NGHTTP3_H 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "nghttp3/nghttp3.h" "ac_cv_header_nghttp3_nghttp3_h" "$ac_includes_default"
+if test "x$ac_cv_header_nghttp3_nghttp3_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NGHTTP3_NGHTTP3_H 1" >>confdefs.h
curl_h3_msg="enabled (ngtcp2 + nghttp3)"
NGHTTP3_ENABLED=1
-$as_echo "#define USE_NGHTTP3 1" >>confdefs.h
+printf "%s\n" "#define USE_NGHTTP3 1" >>confdefs.h
USE_NGHTTP3=1
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&6;}
experimental="$experimental HTTP3"
fi
done
-
-else
+else $as_nop
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
@@ -30152,7 +31731,8 @@ fi
# Check whether --with-quiche was given.
-if test "${with_quiche+set}" = set; then :
+if test ${with_quiche+y}
+then :
withval=$with_quiche; OPT_QUICHE=$withval
fi
@@ -30171,6 +31751,11 @@ case "$OPT_QUICHE" in
esac
if test X"$want_quiche" != Xno; then
+
+ if test "$NGHTTP3_ENABLED" = 1; then
+ as_fn_error $? "--with-quiche and --with-ngtcp2 are mutually exclusive" "$LINENO" 5
+ fi
+
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
@@ -30182,11 +31767,12 @@ if test X"$want_quiche" != Xno; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -30197,11 +31783,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -30213,11 +31803,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -30226,11 +31816,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -30241,11 +31832,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -30257,11 +31852,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -30269,8 +31864,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -30282,8 +31877,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quiche options with pkg-config" >&5
-$as_echo_n "checking for quiche options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for quiche options with pkg-config" >&5
+printf %s "checking for quiche options with pkg-config... " >&6; }
itexists=`
if test -n "$want_quiche_path"; then
PKG_CONFIG_LIBDIR="$want_quiche_path"
@@ -30293,11 +31888,11 @@ $as_echo_n "checking for quiche options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -30310,8 +31905,8 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --libs-only-l quiche`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_QUICHE" >&5
-$as_echo "$as_me: -l is $LIB_QUICHE" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_QUICHE" >&5
+printf "%s\n" "$as_me: -l is $LIB_QUICHE" >&6;}
CPP_QUICHE=`
if test -n "$want_quiche_path"; then
@@ -30319,8 +31914,8 @@ $as_echo "$as_me: -l is $LIB_QUICHE" >&6;}
export PKG_CONFIG_LIBDIR
fi
$PKGCONFIG --cflags-only-I quiche`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_QUICHE" >&5
-$as_echo "$as_me: -I is $CPP_QUICHE" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_QUICHE" >&5
+printf "%s\n" "$as_me: -I is $CPP_QUICHE" >&6;}
LD_QUICHE=`
if test -n "$want_quiche_path"; then
@@ -30329,8 +31924,8 @@ $as_echo "$as_me: -I is $CPP_QUICHE" >&6;}
fi
$PKGCONFIG --libs-only-L quiche`
- { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_QUICHE" >&5
-$as_echo "$as_me: -L is $LD_QUICHE" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_QUICHE" >&5
+printf "%s\n" "$as_me: -L is $LD_QUICHE" >&6;}
LDFLAGS="$LDFLAGS $LD_QUICHE"
CPPFLAGS="$CPPFLAGS $CPP_QUICHE"
@@ -30339,11 +31934,12 @@ $as_echo "$as_me: -L is $LD_QUICHE" >&6;}
if test "x$cross_compiling" != "xyes"; then
DIR_QUICHE=`echo $LD_QUICHE | $SED -e 's/^-L//'`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quiche_connect in -lquiche" >&5
-$as_echo_n "checking for quiche_connect in -lquiche... " >&6; }
-if ${ac_cv_lib_quiche_quiche_connect+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for quiche_connect in -lquiche" >&5
+printf %s "checking for quiche_connect in -lquiche... " >&6; }
+if test ${ac_cv_lib_quiche_quiche_connect+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lquiche $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30361,20 +31957,22 @@ return quiche_connect ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_quiche_quiche_connect=yes
-else
+else $as_nop
ac_cv_lib_quiche_quiche_connect=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_quiche_quiche_connect" >&5
-$as_echo "$ac_cv_lib_quiche_quiche_connect" >&6; }
-if test "x$ac_cv_lib_quiche_quiche_connect" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_quiche_quiche_connect" >&5
+printf "%s\n" "$ac_cv_lib_quiche_quiche_connect" >&6; }
+if test "x$ac_cv_lib_quiche_quiche_connect" = xyes
+then :
- for ac_header in quiche.h
+ for ac_header in quiche.h
do :
ac_fn_c_check_header_compile "$LINENO" "quiche.h" "ac_cv_header_quiche_h" "
$ac_includes_default
@@ -30382,41 +31980,35 @@ $ac_includes_default
"
-if test "x$ac_cv_header_quiche_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_QUICHE_H 1
-_ACEOF
+if test "x$ac_cv_header_quiche_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_QUICHE_H 1" >>confdefs.h
experimental="$experimental HTTP3"
- { $as_echo "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
-$as_echo "$as_me: HTTP3 support is experimental" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
+printf "%s\n" "$as_me: HTTP3 support is experimental" >&6;}
curl_h3_msg="enabled (quiche)"
QUICHE_ENABLED=1
-$as_echo "#define USE_QUICHE 1" >>confdefs.h
+printf "%s\n" "#define USE_QUICHE 1" >>confdefs.h
USE_QUICHE=1
- for ac_func in quiche_conn_set_qlog_fd
-do :
- ac_fn_c_check_func "$LINENO" "quiche_conn_set_qlog_fd" "ac_cv_func_quiche_conn_set_qlog_fd"
-if test "x$ac_cv_func_quiche_conn_set_qlog_fd" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_QUICHE_CONN_SET_QLOG_FD 1
-_ACEOF
+ ac_fn_c_check_func "$LINENO" "quiche_conn_set_qlog_fd" "ac_cv_func_quiche_conn_set_qlog_fd"
+if test "x$ac_cv_func_quiche_conn_set_qlog_fd" = xyes
+then :
+ printf "%s\n" "#define HAVE_QUICHE_CONN_SET_QLOG_FD 1" >>confdefs.h
fi
-done
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_QUICHE"
export CURL_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&5
-$as_echo "$as_me: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&5
+printf "%s\n" "$as_me: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&6;}
fi
done
-
-else
+else $as_nop
as_fn_error $? "couldn't use quiche" "$LINENO" 5
fi
@@ -30432,7 +32024,8 @@ fi
OPT_ZSH_FPATH=default
# Check whether --with-zsh-functions-dir was given.
-if test "${with_zsh_functions_dir+set}" = set; then :
+if test ${with_zsh_functions_dir+y}
+then :
withval=$with_zsh_functions_dir; OPT_ZSH_FPATH=$withval
fi
@@ -30453,7 +32046,8 @@ esac
OPT_FISH_FPATH=default
# Check whether --with-fish-functions-dir was given.
-if test "${with_fish_functions_dir+set}" = set; then :
+if test ${with_fish_functions_dir+y}
+then :
withval=$with_fish_functions_dir; OPT_FISH_FPATH=$withval
fi
@@ -30468,11 +32062,12 @@ case "$OPT_FISH_FPATH" in
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -30483,11 +32078,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -30499,11 +32098,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -30512,11 +32111,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -30527,11 +32127,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -30543,11 +32147,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -30555,8 +32159,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -30568,8 +32172,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fish options with pkg-config" >&5
-$as_echo_n "checking for fish options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fish options with pkg-config" >&5
+printf %s "checking for fish options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -30579,11 +32183,11 @@ $as_echo_n "checking for fish options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -30601,11 +32205,12 @@ $as_echo "found" >&6; }
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for malloc.h" >&5
-$as_echo_n "checking for malloc.h... " >&6; }
-if ${curl_cv_header_malloc_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for malloc.h" >&5
+printf %s "checking for malloc.h... " >&6; }
+if test ${curl_cv_header_malloc_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30626,25 +32231,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_malloc_h="yes"
-else
+else $as_nop
curl_cv_header_malloc_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_malloc_h" >&5
-$as_echo "$curl_cv_header_malloc_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_malloc_h" >&5
+printf "%s\n" "$curl_cv_header_malloc_h" >&6; }
if test "$curl_cv_header_malloc_h" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_MALLOC_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_MALLOC_H 1" >>confdefs.h
#
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30666,34 +32270,34 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_need_header_malloc_h="no"
-else
+else $as_nop
curl_cv_need_header_malloc_h="yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
case "$curl_cv_need_header_malloc_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define NEED_MALLOC_H 1
-_ACEOF
+printf "%s\n" "#define NEED_MALLOC_H 1" >>confdefs.h
;;
esac
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory.h" >&5
-$as_echo_n "checking for memory.h... " >&6; }
-if ${curl_cv_header_memory_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for memory.h" >&5
+printf %s "checking for memory.h... " >&6; }
+if test ${curl_cv_header_memory_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30714,25 +32318,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_memory_h="yes"
-else
+else $as_nop
curl_cv_header_memory_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_memory_h" >&5
-$as_echo "$curl_cv_header_memory_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_memory_h" >&5
+printf "%s\n" "$curl_cv_header_memory_h" >&6; }
if test "$curl_cv_header_memory_h" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_MEMORY_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_MEMORY_H 1" >>confdefs.h
#
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30754,72 +32357,29 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_need_header_memory_h="no"
-else
+else $as_nop
curl_cv_need_header_memory_h="yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
case "$curl_cv_need_header_memory_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define NEED_MEMORY_H 1
-_ACEOF
+printf "%s\n" "#define NEED_MEMORY_H 1" >>confdefs.h
;;
esac
fi
-for ac_header in sys/types.h \
- sys/time.h \
- sys/select.h \
- sys/socket.h \
- sys/ioctl.h \
- sys/uio.h \
- assert.h \
- unistd.h \
- stdlib.h \
- arpa/inet.h \
- net/if.h \
- netinet/in.h \
- netinet/in6.h \
- sys/un.h \
- linux/tcp.h \
- netinet/tcp.h \
- netdb.h \
- sys/sockio.h \
- sys/stat.h \
- sys/param.h \
- termios.h \
- termio.h \
- fcntl.h \
- alloca.h \
- io.h \
- pwd.h \
- utime.h \
- sys/utime.h \
- sys/poll.h \
- poll.h \
- socket.h \
- sys/resource.h \
- libgen.h \
- locale.h \
- errno.h \
- stdbool.h \
- arpa/tftp.h \
- sys/filio.h \
- sys/wait.h \
- setjmp.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
+ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -30846,22 +32406,1268 @@ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
-done
+
+"
+if test "x$ac_cv_header_sys_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+"
+if test "x$ac_cv_header_sys_select_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_ioctl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_uio_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "assert.h" "ac_cv_header_assert_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_assert_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ASSERT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_stdlib_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_net_if_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/in6.h" "ac_cv_header_netinet_in6_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_netinet_in6_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN6_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_un_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "linux/tcp.h" "ac_cv_header_linux_tcp_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_linux_tcp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LINUX_TCP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_netinet_tcp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_TCP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_netdb_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_sockio_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_stat_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_param_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_termios_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_termio_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TERMIO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_fcntl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_alloca_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_io_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_IO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_pwd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_utime_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UTIME_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/utime.h" "ac_cv_header_sys_utime_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_utime_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_UTIME_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_poll_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_poll_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "socket.h" "ac_cv_header_socket_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SOCKET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_resource_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_libgen_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGEN_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_locale_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_errno_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_stdbool_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "arpa/tftp.h" "ac_cv_header_arpa_tftp_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_arpa_tftp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ARPA_TFTP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/filio.h" "ac_cv_header_sys_filio_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_filio_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_FILIO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_sys_wait_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#elif defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+
+"
+if test "x$ac_cv_header_setjmp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
+
+fi
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+printf %s "checking for an ANSI C-conforming const... " >&6; }
+if test ${ac_cv_c_const+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30878,7 +33684,7 @@ int main (void)
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
+ /* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
@@ -30906,7 +33712,7 @@ int main (void)
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
@@ -30922,27 +33728,29 @@ int main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_const=yes
-else
+else $as_nop
ac_cv_c_const=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
-$as_echo "#define const /**/" >>confdefs.h
+printf "%s\n" "#define const /**/" >>confdefs.h
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of C99 variadic macro style" >&5
-$as_echo_n "checking for compiler support of C99 variadic macro style... " >&6; }
-if ${curl_cv_variadic_macros_c99+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler support of C99 variadic macro style" >&5
+printf %s "checking for compiler support of C99 variadic macro style... " >&6; }
+if test ${curl_cv_variadic_macros_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30968,34 +33776,34 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_variadic_macros_c99="yes"
-else
+else $as_nop
curl_cv_variadic_macros_c99="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_c99" >&5
-$as_echo "$curl_cv_variadic_macros_c99" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_c99" >&5
+printf "%s\n" "$curl_cv_variadic_macros_c99" >&6; }
case "$curl_cv_variadic_macros_c99" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_VARIADIC_MACROS_C99 1
-_ACEOF
+printf "%s\n" "#define HAVE_VARIADIC_MACROS_C99 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of old gcc variadic macro style" >&5
-$as_echo_n "checking for compiler support of old gcc variadic macro style... " >&6; }
-if ${curl_cv_variadic_macros_gcc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler support of old gcc variadic macro style" >&5
+printf %s "checking for compiler support of old gcc variadic macro style... " >&6; }
+if test ${curl_cv_variadic_macros_gcc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31021,61 +33829,66 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_variadic_macros_gcc="yes"
-else
+else $as_nop
curl_cv_variadic_macros_gcc="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_gcc" >&5
-$as_echo "$curl_cv_variadic_macros_gcc" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_gcc" >&5
+printf "%s\n" "$curl_cv_variadic_macros_gcc" >&6; }
case "$curl_cv_variadic_macros_gcc" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_VARIADIC_MACROS_GCC 1
-_ACEOF
+printf "%s\n" "#define HAVE_VARIADIC_MACROS_GCC 1" >>confdefs.h
;;
esac
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
+if test "x$ac_cv_type_size_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
+printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
- for ac_header in sys/types.h sys/time.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
-$as_echo_n "checking for struct timeval... " >&6; }
-if ${curl_cv_struct_timeval+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+printf %s "checking for struct timeval... " >&6; }
+if test ${curl_cv_struct_timeval+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31089,10 +33902,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
#ifdef HAVE_SYS_TYPES_H
@@ -31118,26 +33927,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_struct_timeval="yes"
-else
+else $as_nop
curl_cv_struct_timeval="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_struct_timeval" >&5
-$as_echo "$curl_cv_struct_timeval" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_struct_timeval" >&5
+printf "%s\n" "$curl_cv_struct_timeval" >&6; }
case "$curl_cv_struct_timeval" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TIMEVAL 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRUCT_TIMEVAL 1" >>confdefs.h
;;
esac
@@ -31146,18 +33954,19 @@ _ACEOF
if test "x$cross_compiling" != xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking run-time libs availability" >&5
-$as_echo_n "checking run-time libs availability... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking run-time libs availability" >&5
+printf %s "checking run-time libs availability... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31167,12 +33976,13 @@ int main()
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: fine" >&5
-$as_echo "fine" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: fine" >&5
+printf "%s\n" "fine" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
as_fn_error $? "one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS" "$LINENO" 5
fi
@@ -31186,11 +33996,12 @@ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-$as_echo_n "checking size of size_t... " >&6; }
-if ${ac_cv_sizeof_size_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
+printf %s "checking size of size_t... " >&6; }
+if test ${ac_cv_sizeof_size_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31205,10 +34016,11 @@ switch (0) case 0: case (sizeof (size_t) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_size_t=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_size_t != x ; then break; fi
done
@@ -31217,19 +34029,18 @@ fi
if test x$ac_cv_sizeof_size_t = x ; then
as_fn_error $? "cannot determine a size for size_t" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-$as_echo "$ac_cv_sizeof_size_t" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
+printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
-_ACEOF
+printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
-$as_echo_n "checking size of long... " >&6; }
-if ${ac_cv_sizeof_long+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+printf %s "checking size of long... " >&6; }
+if test ${ac_cv_sizeof_long+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31244,10 +34055,11 @@ switch (0) case 0: case (sizeof (long) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_long=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_long != x ; then break; fi
done
@@ -31256,19 +34068,18 @@ fi
if test x$ac_cv_sizeof_long = x ; then
as_fn_error $? "cannot determine a size for long" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-$as_echo "$ac_cv_sizeof_long" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf "%s\n" "$ac_cv_sizeof_long" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
+printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
-$as_echo_n "checking size of int... " >&6; }
-if ${ac_cv_sizeof_int+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+printf %s "checking size of int... " >&6; }
+if test ${ac_cv_sizeof_int+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31283,10 +34094,11 @@ switch (0) case 0: case (sizeof (int) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_int=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_int != x ; then break; fi
done
@@ -31295,19 +34107,18 @@ fi
if test x$ac_cv_sizeof_int = x ; then
as_fn_error $? "cannot determine a size for int" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
-$as_echo "$ac_cv_sizeof_int" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+printf "%s\n" "$ac_cv_sizeof_int" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
+printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
-$as_echo_n "checking size of short... " >&6; }
-if ${ac_cv_sizeof_short+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+printf %s "checking size of short... " >&6; }
+if test ${ac_cv_sizeof_short+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31322,10 +34133,11 @@ switch (0) case 0: case (sizeof (short) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_short=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_short != x ; then break; fi
done
@@ -31334,19 +34146,18 @@ fi
if test x$ac_cv_sizeof_short = x ; then
as_fn_error $? "cannot determine a size for short" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
-$as_echo "$ac_cv_sizeof_short" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+printf "%s\n" "$ac_cv_sizeof_short" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-_ACEOF
+printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
-$as_echo_n "checking size of time_t... " >&6; }
-if ${ac_cv_sizeof_time_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
+printf %s "checking size of time_t... " >&6; }
+if test ${ac_cv_sizeof_time_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31361,10 +34172,11 @@ switch (0) case 0: case (sizeof (time_t) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_time_t=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_time_t != x ; then break; fi
done
@@ -31373,19 +34185,18 @@ fi
if test x$ac_cv_sizeof_time_t = x ; then
as_fn_error $? "cannot determine a size for time_t" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
-$as_echo "$ac_cv_sizeof_time_t" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
+printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_TIME_T $ac_cv_sizeof_time_t
-_ACEOF
+printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
-$as_echo_n "checking size of off_t... " >&6; }
-if ${ac_cv_sizeof_off_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
+printf %s "checking size of off_t... " >&6; }
+if test ${ac_cv_sizeof_off_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31400,10 +34211,11 @@ switch (0) case 0: case (sizeof (off_t) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_off_t=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_off_t != x ; then break; fi
done
@@ -31412,22 +34224,21 @@ fi
if test x$ac_cv_sizeof_off_t = x ; then
as_fn_error $? "cannot determine a size for off_t" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
-$as_echo "$ac_cv_sizeof_off_t" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
+printf "%s\n" "$ac_cv_sizeof_off_t" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
-_ACEOF
+printf "%s\n" "#define SIZEOF_OFF_T $ac_cv_sizeof_off_t" >>confdefs.h
o=$CPPFLAGS
CPPFLAGS="-I$srcdir/include $CPPFLAGS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_off_t" >&5
-$as_echo_n "checking size of curl_off_t... " >&6; }
-if ${ac_cv_sizeof_curl_off_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of curl_off_t" >&5
+printf %s "checking size of curl_off_t... " >&6; }
+if test ${ac_cv_sizeof_curl_off_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31444,10 +34255,11 @@ switch (0) case 0: case (sizeof (curl_off_t) == $ac_size):;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_sizeof_curl_off_t=$ac_size
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test x$ac_cv_sizeof_curl_off_t != x ; then break; fi
done
@@ -31456,20 +34268,19 @@ fi
if test x$ac_cv_sizeof_curl_off_t = x ; then
as_fn_error $? "cannot determine a size for curl_off_t" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_curl_off_t" >&5
-$as_echo "$ac_cv_sizeof_curl_off_t" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_curl_off_t" >&5
+printf "%s\n" "$ac_cv_sizeof_curl_off_t" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_CURL_OFF_T $ac_cv_sizeof_curl_off_t
-_ACEOF
+printf "%s\n" "#define SIZEOF_CURL_OFF_T $ac_cv_sizeof_curl_off_t" >>confdefs.h
CPPFLAGS=$o
ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
-if test "x$ac_cv_type_long_long" = xyes; then :
+if test "x$ac_cv_type_long_long" = xyes
+then :
-$as_echo "#define HAVE_LONGLONG 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LONGLONG 1" >>confdefs.h
longlong="yes"
@@ -31477,8 +34288,8 @@ fi
if test "xyes" = "x$longlong"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if numberLL works" >&5
-$as_echo_n "checking if numberLL works... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if numberLL works" >&5
+printf %s "checking if numberLL works... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31494,31 +34305,33 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_LL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LL 1" >>confdefs.h
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# check for ssize_t
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
+if test "x$ac_cv_type_ssize_t" = xyes
+then :
-else
+else $as_nop
-$as_echo "#define ssize_t int" >>confdefs.h
+printf "%s\n" "#define ssize_t int" >>confdefs.h
fi
@@ -31533,10 +34346,11 @@ ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" "
#endif
"
-if test "x$ac_cv_type_bool" = xyes; then :
+if test "x$ac_cv_type_bool" = xyes
+then :
-$as_echo "#define HAVE_BOOL_T 1" >>confdefs.h
+printf "%s\n" "#define HAVE_BOOL_T 1" >>confdefs.h
fi
@@ -31549,11 +34363,12 @@ ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "
#endif
"
-if test "x$ac_cv_type_sa_family_t" = xyes; then :
+if test "x$ac_cv_type_sa_family_t" = xyes
+then :
-$as_echo "#define CURL_SA_FAMILY_T sa_family_t" >>confdefs.h
+printf "%s\n" "#define CURL_SA_FAMILY_T sa_family_t" >>confdefs.h
-else
+else $as_nop
# The windows name?
ac_fn_c_check_type "$LINENO" "ADDRESS_FAMILY" "ac_cv_type_ADDRESS_FAMILY" "
@@ -31562,13 +34377,14 @@ else
#endif
"
-if test "x$ac_cv_type_ADDRESS_FAMILY" = xyes; then :
+if test "x$ac_cv_type_ADDRESS_FAMILY" = xyes
+then :
-$as_echo "#define CURL_SA_FAMILY_T ADDRESS_FAMILY" >>confdefs.h
+printf "%s\n" "#define CURL_SA_FAMILY_T ADDRESS_FAMILY" >>confdefs.h
-else
+else $as_nop
-$as_echo "#define CURL_SA_FAMILY_T unsigned short" >>confdefs.h
+printf "%s\n" "#define CURL_SA_FAMILY_T unsigned short" >>confdefs.h
fi
@@ -31586,26 +34402,28 @@ ac_fn_c_check_type "$LINENO" "suseconds_t" "ac_cv_type_suseconds_t" "
#endif
"
-if test "x$ac_cv_type_suseconds_t" = xyes; then :
+if test "x$ac_cv_type_suseconds_t" = xyes
+then :
-$as_echo "#define HAVE_SUSECONDS_T 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SUSECONDS_T 1" >>confdefs.h
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if time_t is unsigned" >&5
-$as_echo_n "checking if time_t is unsigned... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if time_t is unsigned" >&5
+printf %s "checking if time_t is unsigned... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ if test "$cross_compiling" = yes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31615,16 +34433,17 @@ else
return (t > 0);
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_TIME_T_UNSIGNED 1" >>confdefs.h
+printf "%s\n" "#define HAVE_TIME_T_UNSIGNED 1" >>confdefs.h
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -31647,19 +34466,27 @@ curl_includes_poll="\
# include <sys/poll.h>
#endif
/* includes end */"
- for ac_header in sys/types.h poll.h sys/poll.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_poll
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_poll
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "$curl_includes_poll
+"
+if test "x$ac_cv_header_poll_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$curl_includes_poll
+"
+if test "x$ac_cv_header_sys_poll_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h
+
+fi
@@ -31686,16 +34513,17 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_poll_events_macro_defined="yes"
-else
+else $as_nop
tst_poll_events_macro_defined="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
#
if test "$tst_poll_events_macro_defined" = "yes"; then
if test "x$ac_cv_header_sys_poll_h" = "xyes"; then
@@ -31719,10 +34547,6 @@ _EOF
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_SYS_TYPES_H
@@ -31740,15 +34564,17 @@ _EOF
#endif
"
-if test "x$ac_cv_type_in_addr_t" = xyes; then :
+if test "x$ac_cv_type_in_addr_t" = xyes
+then :
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for in_addr_t equivalent" >&5
-$as_echo_n "checking for in_addr_t equivalent... " >&6; }
-if ${curl_cv_in_addr_t_equiv+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in_addr_t equivalent" >&5
+printf %s "checking for in_addr_t equivalent... " >&6; }
+if test ${curl_cv_in_addr_t_equiv+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
curl_cv_in_addr_t_equiv="unknown"
for t in "unsigned long" int size_t unsigned long; do
@@ -31765,10 +34591,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_SYS_TYPES_H
@@ -31795,28 +34617,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
curl_cv_in_addr_t_equiv="$t"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_in_addr_t_equiv" >&5
-$as_echo "$curl_cv_in_addr_t_equiv" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_in_addr_t_equiv" >&5
+printf "%s\n" "$curl_cv_in_addr_t_equiv" >&6; }
case "$curl_cv_in_addr_t_equiv" in
unknown)
as_fn_error $? "Cannot find a type to use in place of in_addr_t" "$LINENO" 5
;;
*)
-cat >>confdefs.h <<_ACEOF
-#define in_addr_t $curl_cv_in_addr_t_equiv
-_ACEOF
+printf "%s\n" "#define in_addr_t $curl_cv_in_addr_t_equiv" >>confdefs.h
;;
esac
@@ -31852,106 +34673,32 @@ fi
#endif
"
-if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then :
-
-$as_echo "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
-
-fi
-
-
-
-
- for ac_header in signal.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
-if test "x$ac_cv_header_signal_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNAL_H 1
-_ACEOF
-
-fi
-
-done
-
- ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-
-"
-if test "x$ac_cv_type_sig_atomic_t" = xyes; then :
-
-
-$as_echo "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h
+if test "x$ac_cv_type_struct_sockaddr_storage" = xyes
+then :
+printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
fi
- case "$ac_cv_type_sig_atomic_t" in
- yes)
- #
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sig_atomic_t is already defined as volatile" >&5
-$as_echo_n "checking if sig_atomic_t is already defined as volatile... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-
-int main (void)
-{
-
- static volatile sig_atomic_t dummy = 0;
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- curl_cv_sig_atomic_t_volatile="no"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- curl_cv_sig_atomic_t_volatile="yes"
+ ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_select_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- #
- if test "$curl_cv_sig_atomic_t_volatile" = "yes"; then
-
-$as_echo "#define HAVE_SIG_ATOMIC_T_VOLATILE 1" >>confdefs.h
-
- fi
- ;;
- esac
-
-
-
- for ac_header in sys/select.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
-done
-
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for select" >&5
-$as_echo_n "checking for select... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for select" >&5
+printf %s "checking for select... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31964,10 +34711,6 @@ $as_echo_n "checking for select... " >&6; }
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
#ifdef HAVE_SYS_TYPES_H
@@ -32003,28 +34746,30 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_cv_select="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_select="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$curl_cv_select" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for select" >&5
-$as_echo_n "checking types of args and return type for select... " >&6; }
-if ${curl_cv_func_select_args+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for select" >&5
+printf %s "checking types of args and return type for select... " >&6; }
+if test ${curl_cv_func_select_args+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
curl_cv_func_select_args="unknown"
for sel_retv in 'int' 'ssize_t'; do
@@ -32044,10 +34789,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define SELECTCALLCONV PASCAL
#endif
@@ -32103,12 +34844,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_func_select_args="$sel_arg1,$sel_arg234,$sel_arg5,$sel_retv"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
done
@@ -32116,13 +34858,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_select_args" >&5
-$as_echo "$curl_cv_func_select_args" >&6; } # AC-CACHE-CHECK
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_select_args" >&5
+printf "%s\n" "$curl_cv_func_select_args" >&6; } # AC-CACHE-CHECK
if test "$curl_cv_func_select_args" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for select args" >&5
-$as_echo "$as_me: WARNING: Cannot find proper types to use for select args" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_SELECT will not be defined" >&5
-$as_echo "$as_me: WARNING: HAVE_SELECT will not be defined" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for select args" >&5
+printf "%s\n" "$as_me: WARNING: Cannot find proper types to use for select args" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_SELECT will not be defined" >&5
+printf "%s\n" "$as_me: WARNING: HAVE_SELECT will not be defined" >&2;}
else
select_prev_IFS=$IFS; IFS=','
set dummy `echo "$curl_cv_func_select_args" | sed 's/\*/\*/g'`
@@ -32132,19 +34874,13 @@ $as_echo "$as_me: WARNING: HAVE_SELECT will not be defined" >&2;}
sel_qual_type_arg5=$3
#
-cat >>confdefs.h <<_ACEOF
-#define SELECT_TYPE_ARG1 $1
-_ACEOF
+printf "%s\n" "#define SELECT_TYPE_ARG1 $1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SELECT_TYPE_ARG234 $2
-_ACEOF
+printf "%s\n" "#define SELECT_TYPE_ARG234 $2" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SELECT_TYPE_RETV $4
-_ACEOF
+printf "%s\n" "#define SELECT_TYPE_RETV $4" >>confdefs.h
#
prev_sh_opts=$-
@@ -32169,14 +34905,10 @@ _ACEOF
esac
#
-cat >>confdefs.h <<_ACEOF
-#define SELECT_QUAL_ARG5 $sel_qual_arg5
-_ACEOF
+printf "%s\n" "#define SELECT_QUAL_ARG5 $sel_qual_arg5" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SELECT_TYPE_ARG5 $sel_type_arg5
-_ACEOF
+printf "%s\n" "#define SELECT_TYPE_ARG5 $sel_type_arg5" >>confdefs.h
#
case $prev_sh_opts in
@@ -32188,9 +34920,7 @@ _ACEOF
esac
#
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SELECT 1
-_ACEOF
+printf "%s\n" "#define HAVE_SELECT 1" >>confdefs.h
curl_cv_func_select="yes"
fi
@@ -32198,22 +34928,22 @@ _ACEOF
- for ac_header in sys/types.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-done
+fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recv" >&5
-$as_echo_n "checking for recv... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for recv" >&5
+printf %s "checking for recv... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32226,10 +34956,6 @@ $as_echo_n "checking for recv... " >&6; }
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -32254,28 +34980,30 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_cv_recv="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_recv="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$curl_cv_recv" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recv" >&5
-$as_echo_n "checking types of args and return type for recv... " >&6; }
-if ${curl_cv_func_recv_args+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recv" >&5
+printf %s "checking types of args and return type for recv... " >&6; }
+if test ${curl_cv_func_recv_args+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
curl_cv_func_recv_args="unknown"
for recv_retv in 'int' 'ssize_t'; do
@@ -32296,10 +35024,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define RECVCALLCONV PASCAL
#else
@@ -32334,12 +35058,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
done
@@ -32348,8 +35073,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recv_args" >&5
-$as_echo "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recv_args" >&5
+printf "%s\n" "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK
if test "$curl_cv_func_recv_args" = "unknown"; then
as_fn_error $? "Cannot find proper types to use for recv args" "$LINENO" 5
else
@@ -32359,35 +35084,23 @@ $as_echo "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK
shift
#
-cat >>confdefs.h <<_ACEOF
-#define RECV_TYPE_ARG1 $1
-_ACEOF
+printf "%s\n" "#define RECV_TYPE_ARG1 $1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define RECV_TYPE_ARG2 $2
-_ACEOF
+printf "%s\n" "#define RECV_TYPE_ARG2 $2" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define RECV_TYPE_ARG3 $3
-_ACEOF
+printf "%s\n" "#define RECV_TYPE_ARG3 $3" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define RECV_TYPE_ARG4 $4
-_ACEOF
+printf "%s\n" "#define RECV_TYPE_ARG4 $4" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define RECV_TYPE_RETV $5
-_ACEOF
+printf "%s\n" "#define RECV_TYPE_RETV $5" >>confdefs.h
#
-cat >>confdefs.h <<_ACEOF
-#define HAVE_RECV 1
-_ACEOF
+printf "%s\n" "#define HAVE_RECV 1" >>confdefs.h
curl_cv_func_recv="yes"
fi
@@ -32396,22 +35109,22 @@ _ACEOF
fi
- for ac_header in sys/types.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-done
+fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for send" >&5
-$as_echo_n "checking for send... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for send" >&5
+printf %s "checking for send... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32424,10 +35137,6 @@ $as_echo_n "checking for send... " >&6; }
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -32452,28 +35161,30 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
curl_cv_send="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_send="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$curl_cv_send" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for send" >&5
-$as_echo_n "checking types of args and return type for send... " >&6; }
-if ${curl_cv_func_send_args+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for send" >&5
+printf %s "checking types of args and return type for send... " >&6; }
+if test ${curl_cv_func_send_args+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
curl_cv_func_send_args="unknown"
for send_retv in 'int' 'ssize_t'; do
@@ -32494,10 +35205,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#define SENDCALLCONV PASCAL
#else
@@ -32531,12 +35238,13 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
done
@@ -32545,8 +35253,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_send_args" >&5
-$as_echo "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_send_args" >&5
+printf "%s\n" "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK
if test "$curl_cv_func_send_args" = "unknown"; then
as_fn_error $? "Cannot find proper types to use for send args" "$LINENO" 5
else
@@ -32558,24 +35266,16 @@ $as_echo "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK
send_qual_type_arg2=$2
#
-cat >>confdefs.h <<_ACEOF
-#define SEND_TYPE_ARG1 $1
-_ACEOF
+printf "%s\n" "#define SEND_TYPE_ARG1 $1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SEND_TYPE_ARG3 $3
-_ACEOF
+printf "%s\n" "#define SEND_TYPE_ARG3 $3" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SEND_TYPE_ARG4 $4
-_ACEOF
+printf "%s\n" "#define SEND_TYPE_ARG4 $4" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SEND_TYPE_RETV $5
-_ACEOF
+printf "%s\n" "#define SEND_TYPE_RETV $5" >>confdefs.h
#
prev_sh_opts=$-
@@ -32600,14 +35300,10 @@ _ACEOF
esac
#
-cat >>confdefs.h <<_ACEOF
-#define SEND_QUAL_ARG2 $send_qual_arg2
-_ACEOF
+printf "%s\n" "#define SEND_QUAL_ARG2 $send_qual_arg2" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define SEND_TYPE_ARG2 $send_type_arg2
-_ACEOF
+printf "%s\n" "#define SEND_TYPE_ARG2 $send_type_arg2" >>confdefs.h
#
case $prev_sh_opts in
@@ -32619,9 +35315,7 @@ _ACEOF
esac
#
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SEND 1
-_ACEOF
+printf "%s\n" "#define HAVE_SEND 1" >>confdefs.h
curl_cv_func_send="yes"
fi
@@ -32630,24 +35324,25 @@ _ACEOF
fi
- for ac_header in sys/types.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-done
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5
-$as_echo_n "checking for MSG_NOSIGNAL... " >&6; }
-if ${curl_cv_msg_nosignal+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5
+printf %s "checking for MSG_NOSIGNAL... " >&6; }
+if test ${curl_cv_msg_nosignal+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32661,10 +35356,6 @@ else
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#else
#ifdef HAVE_PROTO_BSDSOCKET_H
@@ -32689,26 +35380,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_msg_nosignal="yes"
-else
+else $as_nop
curl_cv_msg_nosignal="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_msg_nosignal" >&5
-$as_echo "$curl_cv_msg_nosignal" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_msg_nosignal" >&5
+printf "%s\n" "$curl_cv_msg_nosignal" >&6; }
case "$curl_cv_msg_nosignal" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_MSG_NOSIGNAL 1
-_ACEOF
+printf "%s\n" "#define HAVE_MSG_NOSIGNAL 1" >>confdefs.h
;;
esac
@@ -32724,19 +35414,20 @@ curl_includes_unistd="\
# include <unistd.h>
#endif
/* includes end */"
- for ac_header in sys/types.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_unistd
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_unistd
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$curl_includes_unistd
+"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
-done
+fi
@@ -32746,8 +35437,8 @@ done
tst_compi_alarm="unknown"
tst_allow_alarm="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm can be linked" >&5
-$as_echo_n "checking if alarm can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if alarm can be linked" >&5
+printf %s "checking if alarm can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32775,25 +35466,26 @@ return alarm ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_alarm="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_alarm="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_alarm" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is prototyped" >&5
-$as_echo_n "checking if alarm is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if alarm is prototyped" >&5
+printf %s "checking if alarm is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32801,26 +35493,27 @@ $as_echo_n "checking if alarm is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "alarm" >/dev/null 2>&1; then :
+ $EGREP "alarm" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_alarm="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_alarm="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_alarm" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is compilable" >&5
-$as_echo_n "checking if alarm is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if alarm is compilable" >&5
+printf %s "checking if alarm is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32838,53 +35531,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_alarm="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_alarm="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_alarm" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm usage allowed" >&5
-$as_echo_n "checking if alarm usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if alarm usage allowed" >&5
+printf %s "checking if alarm usage allowed... " >&6; }
if test "x$curl_disallow_alarm" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_alarm="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_alarm="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm might be used" >&5
-$as_echo_n "checking if alarm might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if alarm might be used" >&5
+printf %s "checking if alarm might be used... " >&6; }
if test "$tst_links_alarm" = "yes" &&
test "$tst_proto_alarm" = "yes" &&
test "$tst_compi_alarm" = "yes" &&
test "$tst_allow_alarm" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_ALARM 1
-_ACEOF
+printf "%s\n" "#define HAVE_ALARM 1" >>confdefs.h
curl_cv_func_alarm="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_alarm="no"
fi
@@ -32901,19 +35593,27 @@ curl_includes_string="\
# include <strings.h>
#endif
/* includes end */"
- for ac_header in sys/types.h string.h strings.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_string
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_string
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$curl_includes_string
+"
+if test "x$ac_cv_header_string_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$curl_includes_string
+"
+if test "x$ac_cv_header_strings_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h
+
+fi
@@ -32926,19 +35626,20 @@ curl_includes_libgen="\
# include <libgen.h>
#endif
/* includes end */"
- for ac_header in sys/types.h libgen.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_libgen
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_libgen
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "$curl_includes_libgen
+"
+if test "x$ac_cv_header_libgen_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGEN_H 1" >>confdefs.h
-done
+fi
@@ -32948,8 +35649,8 @@ done
tst_compi_basename="unknown"
tst_allow_basename="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename can be linked" >&5
-$as_echo_n "checking if basename can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if basename can be linked" >&5
+printf %s "checking if basename can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -32977,25 +35678,26 @@ return basename ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_basename="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_basename="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_basename" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is prototyped" >&5
-$as_echo_n "checking if basename is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if basename is prototyped" >&5
+printf %s "checking if basename is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33005,26 +35707,27 @@ $as_echo_n "checking if basename is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "basename" >/dev/null 2>&1; then :
+ $EGREP "basename" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_basename="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_basename="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_basename" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is compilable" >&5
-$as_echo_n "checking if basename is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if basename is compilable" >&5
+printf %s "checking if basename is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33044,53 +35747,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_basename="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_basename="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_basename" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename usage allowed" >&5
-$as_echo_n "checking if basename usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if basename usage allowed" >&5
+printf %s "checking if basename usage allowed... " >&6; }
if test "x$curl_disallow_basename" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_basename="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_basename="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename might be used" >&5
-$as_echo_n "checking if basename might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if basename might be used" >&5
+printf %s "checking if basename might be used... " >&6; }
if test "$tst_links_basename" = "yes" &&
test "$tst_proto_basename" = "yes" &&
test "$tst_compi_basename" = "yes" &&
test "$tst_allow_basename" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_BASENAME 1
-_ACEOF
+printf "%s\n" "#define HAVE_BASENAME 1" >>confdefs.h
curl_cv_func_basename="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_basename="no"
fi
@@ -33104,19 +35806,20 @@ curl_includes_socket="\
# include <socket.h>
#endif
/* includes end */"
- for ac_header in sys/types.h socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_socket
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_socket
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "socket.h" "ac_cv_header_socket_h" "$curl_includes_socket
+"
+if test "x$ac_cv_header_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SOCKET_H 1" >>confdefs.h
-done
+fi
@@ -33126,8 +35829,8 @@ done
tst_compi_closesocket="unknown"
tst_allow_closesocket="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket can be linked" >&5
-$as_echo_n "checking if closesocket can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket can be linked" >&5
+printf %s "checking if closesocket can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33147,25 +35850,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_closesocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_closesocket="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_closesocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is prototyped" >&5
-$as_echo_n "checking if closesocket is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket is prototyped" >&5
+printf %s "checking if closesocket is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33175,26 +35879,27 @@ $as_echo_n "checking if closesocket is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "closesocket" >/dev/null 2>&1; then :
+ $EGREP "closesocket" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_closesocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_closesocket="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_closesocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is compilable" >&5
-$as_echo_n "checking if closesocket is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket is compilable" >&5
+printf %s "checking if closesocket is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33214,53 +35919,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_closesocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_closesocket="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_closesocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket usage allowed" >&5
-$as_echo_n "checking if closesocket usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket usage allowed" >&5
+printf %s "checking if closesocket usage allowed... " >&6; }
if test "x$curl_disallow_closesocket" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_closesocket="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_closesocket="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket might be used" >&5
-$as_echo_n "checking if closesocket might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket might be used" >&5
+printf %s "checking if closesocket might be used... " >&6; }
if test "$tst_links_closesocket" = "yes" &&
test "$tst_proto_closesocket" = "yes" &&
test "$tst_compi_closesocket" = "yes" &&
test "$tst_allow_closesocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_CLOSESOCKET 1
-_ACEOF
+printf "%s\n" "#define HAVE_CLOSESOCKET 1" >>confdefs.h
curl_cv_func_closesocket="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_closesocket="no"
fi
@@ -33274,19 +35978,20 @@ curl_includes_sys_socket="\
# include <sys/socket.h>
#endif
/* includes end */"
- for ac_header in sys/types.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_socket
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_sys_socket
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$curl_includes_sys_socket
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-done
+fi
@@ -33296,8 +36001,8 @@ done
tst_compi_closesocket_camel="unknown"
tst_allow_closesocket_camel="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket can be linked" >&5
-$as_echo_n "checking if CloseSocket can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket can be linked" >&5
+printf %s "checking if CloseSocket can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33315,25 +36020,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_closesocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_closesocket_camel="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_closesocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5
-$as_echo_n "checking if CloseSocket is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5
+printf %s "checking if CloseSocket is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33341,26 +36047,27 @@ $as_echo_n "checking if CloseSocket is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "CloseSocket" >/dev/null 2>&1; then :
+ $EGREP "CloseSocket" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_closesocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_closesocket_camel="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_closesocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5
-$as_echo_n "checking if CloseSocket is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5
+printf %s "checking if CloseSocket is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33378,53 +36085,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_closesocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_closesocket_camel="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_closesocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket usage allowed" >&5
-$as_echo_n "checking if CloseSocket usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket usage allowed" >&5
+printf %s "checking if CloseSocket usage allowed... " >&6; }
if test "x$curl_disallow_closesocket_camel" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_closesocket_camel="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_closesocket_camel="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5
-$as_echo_n "checking if CloseSocket might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5
+printf %s "checking if CloseSocket might be used... " >&6; }
if test "$tst_links_closesocket_camel" = "yes" &&
test "$tst_proto_closesocket_camel" = "yes" &&
test "$tst_compi_closesocket_camel" = "yes" &&
test "$tst_allow_closesocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_CLOSESOCKET_CAMEL 1
-_ACEOF
+printf "%s\n" "#define HAVE_CLOSESOCKET_CAMEL 1" >>confdefs.h
curl_cv_func_closesocket_camel="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_closesocket_camel="no"
fi
@@ -33435,8 +36141,8 @@ $as_echo "no" >&6; }
tst_compi_connect="unknown"
tst_allow_connect="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect can be linked" >&5
-$as_echo_n "checking if connect can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect can be linked" >&5
+printf %s "checking if connect can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33457,25 +36163,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_connect="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_connect="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_connect" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is prototyped" >&5
-$as_echo_n "checking if connect is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect is prototyped" >&5
+printf %s "checking if connect is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33486,26 +36193,27 @@ $as_echo_n "checking if connect is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "connect" >/dev/null 2>&1; then :
+ $EGREP "connect" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_connect="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_connect="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_connect" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is compilable" >&5
-$as_echo_n "checking if connect is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect is compilable" >&5
+printf %s "checking if connect is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33526,53 +36234,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_connect="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_connect="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_connect" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect usage allowed" >&5
-$as_echo_n "checking if connect usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect usage allowed" >&5
+printf %s "checking if connect usage allowed... " >&6; }
if test "x$curl_disallow_connect" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_connect="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_connect="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect might be used" >&5
-$as_echo_n "checking if connect might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect might be used" >&5
+printf %s "checking if connect might be used... " >&6; }
if test "$tst_links_connect" = "yes" &&
test "$tst_proto_connect" = "yes" &&
test "$tst_compi_connect" = "yes" &&
test "$tst_allow_connect" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_CONNECT 1
-_ACEOF
+printf "%s\n" "#define HAVE_CONNECT 1" >>confdefs.h
curl_cv_func_connect="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_connect="no"
fi
@@ -33589,19 +36296,27 @@ curl_includes_fcntl="\
# include <fcntl.h>
#endif
/* includes end */"
- for ac_header in sys/types.h unistd.h fcntl.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_fcntl
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_fcntl
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$curl_includes_fcntl
+"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$curl_includes_fcntl
+"
+if test "x$ac_cv_header_fcntl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
-done
+fi
@@ -33611,8 +36326,8 @@ done
tst_compi_fcntl="unknown"
tst_allow_fcntl="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl can be linked" >&5
-$as_echo_n "checking if fcntl can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl can be linked" >&5
+printf %s "checking if fcntl can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33640,25 +36355,26 @@ return fcntl ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_fcntl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_fcntl="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_fcntl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is prototyped" >&5
-$as_echo_n "checking if fcntl is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl is prototyped" >&5
+printf %s "checking if fcntl is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33666,26 +36382,27 @@ $as_echo_n "checking if fcntl is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "fcntl" >/dev/null 2>&1; then :
+ $EGREP "fcntl" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_fcntl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_fcntl="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_fcntl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is compilable" >&5
-$as_echo_n "checking if fcntl is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl is compilable" >&5
+printf %s "checking if fcntl is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33703,48 +36420,47 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_fcntl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_fcntl="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_fcntl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl usage allowed" >&5
-$as_echo_n "checking if fcntl usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl usage allowed" >&5
+printf %s "checking if fcntl usage allowed... " >&6; }
if test "x$curl_disallow_fcntl" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_fcntl="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_fcntl="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl might be used" >&5
-$as_echo_n "checking if fcntl might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl might be used" >&5
+printf %s "checking if fcntl might be used... " >&6; }
if test "$tst_links_fcntl" = "yes" &&
test "$tst_proto_fcntl" = "yes" &&
test "$tst_compi_fcntl" = "yes" &&
test "$tst_allow_fcntl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FCNTL 1
-_ACEOF
+printf "%s\n" "#define HAVE_FCNTL 1" >>confdefs.h
curl_cv_func_fcntl="yes"
@@ -33759,8 +36475,8 @@ _ACEOF
esac
#
if test "$curl_cv_func_fcntl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK is compilable" >&5
-$as_echo_n "checking if fcntl O_NONBLOCK is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK is compilable" >&5
+printf %s "checking if fcntl O_NONBLOCK is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33779,57 +36495,56 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_fcntl_o_nonblock="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_fcntl_o_nonblock="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_fcntl_o_nonblock" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK usage allowed" >&5
-$as_echo_n "checking if fcntl O_NONBLOCK usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK usage allowed" >&5
+printf %s "checking if fcntl O_NONBLOCK usage allowed... " >&6; }
if test "x$curl_disallow_fcntl_o_nonblock" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_fcntl_o_nonblock="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_fcntl_o_nonblock="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK might be used" >&5
-$as_echo_n "checking if fcntl O_NONBLOCK might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK might be used" >&5
+printf %s "checking if fcntl O_NONBLOCK might be used... " >&6; }
if test "$tst_compi_fcntl_o_nonblock" = "yes" &&
test "$tst_allow_fcntl_o_nonblock" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FCNTL_O_NONBLOCK 1
-_ACEOF
+printf "%s\n" "#define HAVE_FCNTL_O_NONBLOCK 1" >>confdefs.h
curl_cv_func_fcntl_o_nonblock="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_fcntl_o_nonblock="no"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_fcntl="no"
fi
@@ -33850,11 +36565,12 @@ curl_includes_ws2tcpip="\
#endif
/* includes end */"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
-$as_echo_n "checking for windows.h... " >&6; }
-if ${curl_cv_header_windows_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
+printf %s "checking for windows.h... " >&6; }
+if test ${curl_cv_header_windows_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33880,36 +36596,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_windows_h="yes"
-else
+else $as_nop
curl_cv_header_windows_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
-$as_echo "$curl_cv_header_windows_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
+printf "%s\n" "$curl_cv_header_windows_h" >&6; }
case "$curl_cv_header_windows_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINDOWS_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
-$as_echo_n "checking for winsock2.h... " >&6; }
-if ${curl_cv_header_winsock2_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
+printf %s "checking for winsock2.h... " >&6; }
+if test ${curl_cv_header_winsock2_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33936,36 +36652,36 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_winsock2_h="yes"
-else
+else $as_nop
curl_cv_header_winsock2_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
-$as_echo "$curl_cv_header_winsock2_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
+printf "%s\n" "$curl_cv_header_winsock2_h" >&6; }
case "$curl_cv_header_winsock2_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
-$as_echo_n "checking for ws2tcpip.h... " >&6; }
-if ${curl_cv_header_ws2tcpip_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
+printf %s "checking for ws2tcpip.h... " >&6; }
+if test ${curl_cv_header_ws2tcpip_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33993,26 +36709,25 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
curl_cv_header_ws2tcpip_h="yes"
-else
+else $as_nop
curl_cv_header_ws2tcpip_h="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
-$as_echo "$curl_cv_header_ws2tcpip_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
+printf "%s\n" "$curl_cv_header_ws2tcpip_h" >&6; }
case "$curl_cv_header_ws2tcpip_h" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WS2TCPIP_H 1
-_ACEOF
+printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
;;
esac
@@ -34028,19 +36743,20 @@ curl_includes_netdb="\
# include <netdb.h>
#endif
/* includes end */"
- for ac_header in sys/types.h netdb.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_netdb
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_netdb
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$curl_includes_netdb
+"
+if test "x$ac_cv_header_netdb_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
-done
+fi
@@ -34050,8 +36766,8 @@ done
tst_compi_freeaddrinfo="unknown"
tst_allow_freeaddrinfo="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo can be linked" >&5
-$as_echo_n "checking if freeaddrinfo can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo can be linked" >&5
+printf %s "checking if freeaddrinfo can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34070,25 +36786,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_freeaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_freeaddrinfo="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_freeaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is prototyped" >&5
-$as_echo_n "checking if freeaddrinfo is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is prototyped" >&5
+printf %s "checking if freeaddrinfo is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34098,26 +36815,27 @@ $as_echo_n "checking if freeaddrinfo is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "freeaddrinfo" >/dev/null 2>&1; then :
+ $EGREP "freeaddrinfo" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_freeaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_freeaddrinfo="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_freeaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is compilable" >&5
-$as_echo_n "checking if freeaddrinfo is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is compilable" >&5
+printf %s "checking if freeaddrinfo is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34136,53 +36854,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_freeaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_freeaddrinfo="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_freeaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo usage allowed" >&5
-$as_echo_n "checking if freeaddrinfo usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo usage allowed" >&5
+printf %s "checking if freeaddrinfo usage allowed... " >&6; }
if test "x$curl_disallow_freeaddrinfo" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_freeaddrinfo="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_freeaddrinfo="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo might be used" >&5
-$as_echo_n "checking if freeaddrinfo might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo might be used" >&5
+printf %s "checking if freeaddrinfo might be used... " >&6; }
if test "$tst_links_freeaddrinfo" = "yes" &&
test "$tst_proto_freeaddrinfo" = "yes" &&
test "$tst_compi_freeaddrinfo" = "yes" &&
test "$tst_allow_freeaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FREEADDRINFO 1
-_ACEOF
+printf "%s\n" "#define HAVE_FREEADDRINFO 1" >>confdefs.h
curl_cv_func_freeaddrinfo="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_freeaddrinfo="no"
fi
@@ -34196,19 +36913,20 @@ curl_includes_sys_xattr="\
# include <sys/xattr.h>
#endif
/* includes end */"
- for ac_header in sys/types.h sys/xattr.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_xattr
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_sys_xattr
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/xattr.h" "ac_cv_header_sys_xattr_h" "$curl_includes_sys_xattr
+"
+if test "x$ac_cv_header_sys_xattr_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_XATTR_H 1" >>confdefs.h
-done
+fi
@@ -34219,8 +36937,8 @@ done
tst_allow_fsetxattr="unknown"
tst_nargs_fsetxattr="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr can be linked" >&5
-$as_echo_n "checking if fsetxattr can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr can be linked" >&5
+printf %s "checking if fsetxattr can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34248,25 +36966,26 @@ return fsetxattr ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_fsetxattr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_fsetxattr="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_fsetxattr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is prototyped" >&5
-$as_echo_n "checking if fsetxattr is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is prototyped" >&5
+printf %s "checking if fsetxattr is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34274,27 +36993,28 @@ $as_echo_n "checking if fsetxattr is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "fsetxattr" >/dev/null 2>&1; then :
+ $EGREP "fsetxattr" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_fsetxattr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_fsetxattr="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_fsetxattr" = "yes"; then
if test "$tst_nargs_fsetxattr" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 5 args." >&5
-$as_echo_n "checking if fsetxattr takes 5 args.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 5 args." >&5
+printf %s "checking if fsetxattr takes 5 args.... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34312,25 +37032,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_fsetxattr="yes"
tst_nargs_fsetxattr="5"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_fsetxattr="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test "$tst_nargs_fsetxattr" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 6 args." >&5
-$as_echo_n "checking if fsetxattr takes 6 args.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 6 args." >&5
+printf %s "checking if fsetxattr takes 6 args.... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34348,75 +37069,74 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_fsetxattr="yes"
tst_nargs_fsetxattr="6"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_fsetxattr="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is compilable" >&5
-$as_echo_n "checking if fsetxattr is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is compilable" >&5
+printf %s "checking if fsetxattr is compilable... " >&6; }
if test "$tst_compi_fsetxattr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
#
if test "$tst_compi_fsetxattr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr usage allowed" >&5
-$as_echo_n "checking if fsetxattr usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr usage allowed" >&5
+printf %s "checking if fsetxattr usage allowed... " >&6; }
if test "x$curl_disallow_fsetxattr" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_fsetxattr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_fsetxattr="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr might be used" >&5
-$as_echo_n "checking if fsetxattr might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fsetxattr might be used" >&5
+printf %s "checking if fsetxattr might be used... " >&6; }
if test "$tst_links_fsetxattr" = "yes" &&
test "$tst_proto_fsetxattr" = "yes" &&
test "$tst_compi_fsetxattr" = "yes" &&
test "$tst_allow_fsetxattr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FSETXATTR 1
-_ACEOF
+printf "%s\n" "#define HAVE_FSETXATTR 1" >>confdefs.h
#
if test "$tst_nargs_fsetxattr" -eq "5"; then
-$as_echo "#define HAVE_FSETXATTR_5 1" >>confdefs.h
+printf "%s\n" "#define HAVE_FSETXATTR_5 1" >>confdefs.h
elif test "$tst_nargs_fsetxattr" -eq "6"; then
-$as_echo "#define HAVE_FSETXATTR_6 1" >>confdefs.h
+printf "%s\n" "#define HAVE_FSETXATTR_6 1" >>confdefs.h
fi
#
curl_cv_func_fsetxattr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_fsetxattr="no"
fi
@@ -34427,8 +37147,8 @@ $as_echo "no" >&6; }
tst_compi_ftruncate="unknown"
tst_allow_ftruncate="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate can be linked" >&5
-$as_echo_n "checking if ftruncate can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ftruncate can be linked" >&5
+printf %s "checking if ftruncate can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34456,25 +37176,26 @@ return ftruncate ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_ftruncate="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_ftruncate="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_ftruncate" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is prototyped" >&5
-$as_echo_n "checking if ftruncate is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ftruncate is prototyped" >&5
+printf %s "checking if ftruncate is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34482,26 +37203,27 @@ $as_echo_n "checking if ftruncate is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "ftruncate" >/dev/null 2>&1; then :
+ $EGREP "ftruncate" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_ftruncate="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_ftruncate="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_ftruncate" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is compilable" >&5
-$as_echo_n "checking if ftruncate is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ftruncate is compilable" >&5
+printf %s "checking if ftruncate is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34519,53 +37241,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ftruncate="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ftruncate="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ftruncate" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate usage allowed" >&5
-$as_echo_n "checking if ftruncate usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ftruncate usage allowed" >&5
+printf %s "checking if ftruncate usage allowed... " >&6; }
if test "x$curl_disallow_ftruncate" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ftruncate="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ftruncate="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate might be used" >&5
-$as_echo_n "checking if ftruncate might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ftruncate might be used" >&5
+printf %s "checking if ftruncate might be used... " >&6; }
if test "$tst_links_ftruncate" = "yes" &&
test "$tst_proto_ftruncate" = "yes" &&
test "$tst_compi_ftruncate" = "yes" &&
test "$tst_allow_ftruncate" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FTRUNCATE 1
-_ACEOF
+printf "%s\n" "#define HAVE_FTRUNCATE 1" >>confdefs.h
curl_cv_func_ftruncate="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ftruncate="no"
fi
@@ -34579,19 +37300,20 @@ curl_includes_stdlib="\
# include <stdlib.h>
#endif
/* includes end */"
- for ac_header in sys/types.h stdlib.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stdlib
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_stdlib
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$curl_includes_stdlib
+"
+if test "x$ac_cv_header_stdlib_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
-done
+fi
@@ -34603,8 +37325,8 @@ done
tst_allow_getaddrinfo="unknown"
tst_tsafe_getaddrinfo="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo can be linked" >&5
-$as_echo_n "checking if getaddrinfo can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo can be linked" >&5
+printf %s "checking if getaddrinfo can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34624,25 +37346,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_getaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_getaddrinfo="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_getaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is prototyped" >&5
-$as_echo_n "checking if getaddrinfo is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is prototyped" >&5
+printf %s "checking if getaddrinfo is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34652,26 +37375,27 @@ $as_echo_n "checking if getaddrinfo is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getaddrinfo" >/dev/null 2>&1; then :
+ $EGREP "getaddrinfo" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_getaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_getaddrinfo="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_getaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is compilable" >&5
-$as_echo_n "checking if getaddrinfo is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is compilable" >&5
+printf %s "checking if getaddrinfo is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34691,36 +37415,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_getaddrinfo="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_getaddrinfo="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_getaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5
-$as_echo_n "checking if getaddrinfo seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5
+printf %s "checking if getaddrinfo seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34759,14 +37485,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_getaddrinfo="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_getaddrinfo="no"
fi
@@ -34780,44 +37507,42 @@ fi
#
if test "$tst_compi_getaddrinfo" = "yes" &&
test "$tst_works_getaddrinfo" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo usage allowed" >&5
-$as_echo_n "checking if getaddrinfo usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo usage allowed" >&5
+printf %s "checking if getaddrinfo usage allowed... " >&6; }
if test "x$curl_disallow_getaddrinfo" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_getaddrinfo="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_getaddrinfo="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo might be used" >&5
-$as_echo_n "checking if getaddrinfo might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo might be used" >&5
+printf %s "checking if getaddrinfo might be used... " >&6; }
if test "$tst_links_getaddrinfo" = "yes" &&
test "$tst_proto_getaddrinfo" = "yes" &&
test "$tst_compi_getaddrinfo" = "yes" &&
test "$tst_allow_getaddrinfo" = "yes" &&
test "$tst_works_getaddrinfo" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETADDRINFO 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h
curl_cv_func_getaddrinfo="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_getaddrinfo="no"
curl_cv_func_getaddrinfo_threadsafe="no"
fi
#
if test "$curl_cv_func_getaddrinfo" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is threadsafe" >&5
-$as_echo_n "checking if getaddrinfo is threadsafe... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is threadsafe" >&5
+printf %s "checking if getaddrinfo is threadsafe... " >&6; }
case $host_os in
aix[1234].* | aix5.[01].*)
tst_tsafe_getaddrinfo="no"
@@ -34843,6 +37568,9 @@ $as_echo_n "checking if getaddrinfo is threadsafe... " >&6; }
hpux*)
tst_tsafe_getaddrinfo="yes"
;;
+ midnightbsd*)
+ tst_tsafe_getaddrinfo="yes"
+ ;;
netbsd[123].*)
tst_tsafe_getaddrinfo="no"
;;
@@ -34881,16 +37609,17 @@ int main (void)
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_symbol_defined="yes"
-else
+else $as_nop
tst_symbol_defined="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tst_symbol_defined" = "yes"; then
curl_cv_have_def_h_errno=yes
@@ -34923,16 +37652,17 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_h_errno_modifiable_lvalue="yes"
-else
+else $as_nop
tst_h_errno_modifiable_lvalue="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -34954,16 +37684,17 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_h_errno_sbs_issue_7="yes"
-else
+else $as_nop
tst_h_errno_sbs_issue_7="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test "$tst_h_errno_macro" = "no" &&
test "$tst_h_errno_modifiable_lvalue" = "no" &&
test "$tst_h_errno_sbs_issue_7" = "no"; then
@@ -34972,13 +37703,11 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
tst_tsafe_getaddrinfo="yes"
fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_tsafe_getaddrinfo" >&5
-$as_echo "$tst_tsafe_getaddrinfo" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_tsafe_getaddrinfo" >&5
+printf "%s\n" "$tst_tsafe_getaddrinfo" >&6; }
if test "$tst_tsafe_getaddrinfo" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETADDRINFO_THREADSAFE 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETADDRINFO_THREADSAFE 1" >>confdefs.h
curl_cv_func_getaddrinfo_threadsafe="yes"
else
@@ -34993,8 +37722,8 @@ _ACEOF
tst_compi_gethostbyname="unknown"
tst_allow_gethostbyname="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5
-$as_echo_n "checking if gethostbyname can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5
+printf %s "checking if gethostbyname can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35014,25 +37743,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_gethostbyname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_gethostbyname="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_gethostbyname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5
-$as_echo_n "checking if gethostbyname is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5
+printf %s "checking if gethostbyname is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35042,26 +37772,27 @@ $as_echo_n "checking if gethostbyname is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gethostbyname" >/dev/null 2>&1; then :
+ $EGREP "gethostbyname" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_gethostbyname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_gethostbyname="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_gethostbyname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5
-$as_echo_n "checking if gethostbyname is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5
+printf %s "checking if gethostbyname is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35081,53 +37812,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gethostbyname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gethostbyname="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_gethostbyname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5
-$as_echo_n "checking if gethostbyname usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5
+printf %s "checking if gethostbyname usage allowed... " >&6; }
if test "x$curl_disallow_gethostbyname" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_gethostbyname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_gethostbyname="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5
-$as_echo_n "checking if gethostbyname might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5
+printf %s "checking if gethostbyname might be used... " >&6; }
if test "$tst_links_gethostbyname" = "yes" &&
test "$tst_proto_gethostbyname" = "yes" &&
test "$tst_compi_gethostbyname" = "yes" &&
test "$tst_allow_gethostbyname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETHOSTBYNAME 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
curl_cv_func_gethostbyname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_gethostbyname="no"
fi
@@ -35139,8 +37869,8 @@ $as_echo "no" >&6; }
tst_allow_gethostbyname_r="unknown"
tst_nargs_gethostbyname_r="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r can be linked" >&5
-$as_echo_n "checking if gethostbyname_r can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r can be linked" >&5
+printf %s "checking if gethostbyname_r can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35168,25 +37898,26 @@ return gethostbyname_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_gethostbyname_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_gethostbyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_gethostbyname_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is prototyped" >&5
-$as_echo_n "checking if gethostbyname_r is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is prototyped" >&5
+printf %s "checking if gethostbyname_r is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35194,27 +37925,28 @@ $as_echo_n "checking if gethostbyname_r is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gethostbyname_r" >/dev/null 2>&1; then :
+ $EGREP "gethostbyname_r" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_gethostbyname_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_gethostbyname_r="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_gethostbyname_r" = "yes"; then
if test "$tst_nargs_gethostbyname_r" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 3 args." >&5
-$as_echo_n "checking if gethostbyname_r takes 3 args.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 3 args." >&5
+printf %s "checking if gethostbyname_r takes 3 args.... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35232,25 +37964,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gethostbyname_r="yes"
tst_nargs_gethostbyname_r="3"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gethostbyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test "$tst_nargs_gethostbyname_r" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 5 args." >&5
-$as_echo_n "checking if gethostbyname_r takes 5 args.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 5 args." >&5
+printf %s "checking if gethostbyname_r takes 5 args.... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35268,25 +38001,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gethostbyname_r="yes"
tst_nargs_gethostbyname_r="5"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gethostbyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test "$tst_nargs_gethostbyname_r" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 6 args." >&5
-$as_echo_n "checking if gethostbyname_r takes 6 args.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 6 args." >&5
+printf %s "checking if gethostbyname_r takes 6 args.... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35304,79 +38038,78 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gethostbyname_r="yes"
tst_nargs_gethostbyname_r="6"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gethostbyname_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is compilable" >&5
-$as_echo_n "checking if gethostbyname_r is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is compilable" >&5
+printf %s "checking if gethostbyname_r is compilable... " >&6; }
if test "$tst_compi_gethostbyname_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
#
if test "$tst_compi_gethostbyname_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r usage allowed" >&5
-$as_echo_n "checking if gethostbyname_r usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r usage allowed" >&5
+printf %s "checking if gethostbyname_r usage allowed... " >&6; }
if test "x$curl_disallow_gethostbyname_r" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_gethostbyname_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_gethostbyname_r="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r might be used" >&5
-$as_echo_n "checking if gethostbyname_r might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r might be used" >&5
+printf %s "checking if gethostbyname_r might be used... " >&6; }
if test "$tst_links_gethostbyname_r" = "yes" &&
test "$tst_proto_gethostbyname_r" = "yes" &&
test "$tst_compi_gethostbyname_r" = "yes" &&
test "$tst_allow_gethostbyname_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETHOSTBYNAME_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h
#
if test "$tst_nargs_gethostbyname_r" -eq "3"; then
-$as_echo "#define HAVE_GETHOSTBYNAME_R_3 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_3 1" >>confdefs.h
elif test "$tst_nargs_gethostbyname_r" -eq "5"; then
-$as_echo "#define HAVE_GETHOSTBYNAME_R_5 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_5 1" >>confdefs.h
elif test "$tst_nargs_gethostbyname_r" -eq "6"; then
-$as_echo "#define HAVE_GETHOSTBYNAME_R_6 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_6 1" >>confdefs.h
fi
#
curl_cv_func_gethostbyname_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_gethostbyname_r="no"
fi
@@ -35397,8 +38130,8 @@ curl_preprocess_callconv="\
tst_compi_gethostname="unknown"
tst_allow_gethostname="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname can be linked" >&5
-$as_echo_n "checking if gethostname can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname can be linked" >&5
+printf %s "checking if gethostname can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35418,25 +38151,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_gethostname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_gethostname="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_gethostname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is prototyped" >&5
-$as_echo_n "checking if gethostname is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname is prototyped" >&5
+printf %s "checking if gethostname is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35446,26 +38180,27 @@ $as_echo_n "checking if gethostname is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gethostname" >/dev/null 2>&1; then :
+ $EGREP "gethostname" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_gethostname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_gethostname="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_gethostname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is compilable" >&5
-$as_echo_n "checking if gethostname is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname is compilable" >&5
+printf %s "checking if gethostname is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35485,25 +38220,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gethostname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gethostname="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_gethostname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname arg 2 data type" >&5
-$as_echo_n "checking for gethostname arg 2 data type... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostname arg 2 data type" >&5
+printf %s "checking for gethostname arg 2 data type... " >&6; }
tst_gethostname_type_arg2="unknown"
for tst_arg1 in 'char *' 'unsigned char *' 'void *'; do
for tst_arg2 in 'int' 'unsigned int' 'size_t'; do
@@ -35529,57 +38265,54 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_gethostname_type_arg2="$tst_arg2"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
done
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_gethostname_type_arg2" >&5
-$as_echo "$tst_gethostname_type_arg2" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_gethostname_type_arg2" >&5
+printf "%s\n" "$tst_gethostname_type_arg2" >&6; }
if test "$tst_gethostname_type_arg2" != "unknown"; then
-cat >>confdefs.h <<_ACEOF
-#define GETHOSTNAME_TYPE_ARG2 $tst_gethostname_type_arg2
-_ACEOF
+printf "%s\n" "#define GETHOSTNAME_TYPE_ARG2 $tst_gethostname_type_arg2" >>confdefs.h
fi
fi
#
if test "$tst_compi_gethostname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname usage allowed" >&5
-$as_echo_n "checking if gethostname usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname usage allowed" >&5
+printf %s "checking if gethostname usage allowed... " >&6; }
if test "x$curl_disallow_gethostname" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_gethostname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_gethostname="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname might be used" >&5
-$as_echo_n "checking if gethostname might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname might be used" >&5
+printf %s "checking if gethostname might be used... " >&6; }
if test "$tst_links_gethostname" = "yes" &&
test "$tst_proto_gethostname" = "yes" &&
test "$tst_compi_gethostname" = "yes" &&
test "$tst_allow_gethostname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETHOSTNAME 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETHOSTNAME 1" >>confdefs.h
curl_cv_func_gethostname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_gethostname="no"
fi
@@ -35590,8 +38323,8 @@ $as_echo "no" >&6; }
tst_compi_getpeername="unknown"
tst_allow_getpeername="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getpeername can be linked" >&5
-$as_echo_n "checking if getpeername can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getpeername can be linked" >&5
+printf %s "checking if getpeername can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35611,25 +38344,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_getpeername="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_getpeername="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_getpeername" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getpeername is prototyped" >&5
-$as_echo_n "checking if getpeername is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getpeername is prototyped" >&5
+printf %s "checking if getpeername is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35639,26 +38373,27 @@ $as_echo_n "checking if getpeername is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getpeername" >/dev/null 2>&1; then :
+ $EGREP "getpeername" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_getpeername="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_getpeername="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_getpeername" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getpeername is compilable" >&5
-$as_echo_n "checking if getpeername is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getpeername is compilable" >&5
+printf %s "checking if getpeername is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35678,53 +38413,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_getpeername="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_getpeername="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_getpeername" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getpeername usage allowed" >&5
-$as_echo_n "checking if getpeername usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getpeername usage allowed" >&5
+printf %s "checking if getpeername usage allowed... " >&6; }
if test "x$curl_disallow_getpeername" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_getpeername="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_getpeername="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getpeername might be used" >&5
-$as_echo_n "checking if getpeername might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getpeername might be used" >&5
+printf %s "checking if getpeername might be used... " >&6; }
if test "$tst_links_getpeername" = "yes" &&
test "$tst_proto_getpeername" = "yes" &&
test "$tst_compi_getpeername" = "yes" &&
test "$tst_allow_getpeername" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPEERNAME 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETPEERNAME 1" >>confdefs.h
curl_cv_func_getpeername="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_getpeername="no"
fi
@@ -35735,8 +38469,8 @@ $as_echo "no" >&6; }
tst_compi_getsockname="unknown"
tst_allow_getsockname="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockname can be linked" >&5
-$as_echo_n "checking if getsockname can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getsockname can be linked" >&5
+printf %s "checking if getsockname can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35756,25 +38490,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_getsockname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_getsockname="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_getsockname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockname is prototyped" >&5
-$as_echo_n "checking if getsockname is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getsockname is prototyped" >&5
+printf %s "checking if getsockname is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35784,26 +38519,27 @@ $as_echo_n "checking if getsockname is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getsockname" >/dev/null 2>&1; then :
+ $EGREP "getsockname" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_getsockname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_getsockname="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_getsockname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockname is compilable" >&5
-$as_echo_n "checking if getsockname is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getsockname is compilable" >&5
+printf %s "checking if getsockname is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35823,53 +38559,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_getsockname="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_getsockname="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_getsockname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockname usage allowed" >&5
-$as_echo_n "checking if getsockname usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getsockname usage allowed" >&5
+printf %s "checking if getsockname usage allowed... " >&6; }
if test "x$curl_disallow_getsockname" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_getsockname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_getsockname="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockname might be used" >&5
-$as_echo_n "checking if getsockname might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getsockname might be used" >&5
+printf %s "checking if getsockname might be used... " >&6; }
if test "$tst_links_getsockname" = "yes" &&
test "$tst_proto_getsockname" = "yes" &&
test "$tst_compi_getsockname" = "yes" &&
test "$tst_allow_getsockname" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETSOCKNAME 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETSOCKNAME 1" >>confdefs.h
curl_cv_func_getsockname="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_getsockname="no"
fi
@@ -35880,19 +38615,14 @@ curl_includes_netif="\
# include <net/if.h>
#endif
/* includes end */"
- for ac_header in net/if.h
-do :
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "$curl_includes_netif
"
-if test "x$ac_cv_header_net_if_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NET_IF_H 1
-_ACEOF
+if test "x$ac_cv_header_net_if_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
fi
-done
-
#
@@ -35901,8 +38631,8 @@ done
tst_compi_if_nametoindex="unknown"
tst_allow_if_nametoindex="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex can be linked" >&5
-$as_echo_n "checking if if_nametoindex can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex can be linked" >&5
+printf %s "checking if if_nametoindex can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35922,25 +38652,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_if_nametoindex="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_if_nametoindex="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_if_nametoindex" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex is prototyped" >&5
-$as_echo_n "checking if if_nametoindex is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex is prototyped" >&5
+printf %s "checking if if_nametoindex is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35949,26 +38680,27 @@ $as_echo_n "checking if if_nametoindex is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "if_nametoindex" >/dev/null 2>&1; then :
+ $EGREP "if_nametoindex" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_if_nametoindex="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_if_nametoindex="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_if_nametoindex" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex is compilable" >&5
-$as_echo_n "checking if if_nametoindex is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex is compilable" >&5
+printf %s "checking if if_nametoindex is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -35987,53 +38719,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_if_nametoindex="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_if_nametoindex="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_if_nametoindex" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex usage allowed" >&5
-$as_echo_n "checking if if_nametoindex usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex usage allowed" >&5
+printf %s "checking if if_nametoindex usage allowed... " >&6; }
if test "x$curl_disallow_if_nametoindex" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_if_nametoindex="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_if_nametoindex="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex might be used" >&5
-$as_echo_n "checking if if_nametoindex might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if if_nametoindex might be used" >&5
+printf %s "checking if if_nametoindex might be used... " >&6; }
if test "$tst_links_if_nametoindex" = "yes" &&
test "$tst_proto_if_nametoindex" = "yes" &&
test "$tst_compi_if_nametoindex" = "yes" &&
test "$tst_allow_if_nametoindex" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IF_NAMETOINDEX 1
-_ACEOF
+printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
curl_cv_func_if_nametoindex="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_if_nametoindex="no"
fi
@@ -36053,19 +38784,34 @@ curl_includes_ifaddrs="\
# include <ifaddrs.h>
#endif
/* includes end */"
- for ac_header in sys/types.h sys/socket.h netinet/in.h ifaddrs.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_ifaddrs
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_ifaddrs
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$curl_includes_ifaddrs
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$curl_includes_ifaddrs
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$curl_includes_ifaddrs
+"
+if test "x$ac_cv_header_ifaddrs_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_IFADDRS_H 1" >>confdefs.h
+
+fi
@@ -36076,8 +38822,8 @@ done
tst_works_getifaddrs="unknown"
tst_allow_getifaddrs="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs can be linked" >&5
-$as_echo_n "checking if getifaddrs can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs can be linked" >&5
+printf %s "checking if getifaddrs can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36105,25 +38851,26 @@ return getifaddrs ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_getifaddrs="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_getifaddrs="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_getifaddrs" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is prototyped" >&5
-$as_echo_n "checking if getifaddrs is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is prototyped" >&5
+printf %s "checking if getifaddrs is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36131,26 +38878,27 @@ $as_echo_n "checking if getifaddrs is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getifaddrs" >/dev/null 2>&1; then :
+ $EGREP "getifaddrs" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_getifaddrs="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_getifaddrs="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_getifaddrs" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is compilable" >&5
-$as_echo_n "checking if getifaddrs is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is compilable" >&5
+printf %s "checking if getifaddrs is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36168,36 +38916,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_getifaddrs="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_getifaddrs="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_getifaddrs" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs seems to work" >&5
-$as_echo_n "checking if getifaddrs seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs seems to work" >&5
+printf %s "checking if getifaddrs seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36222,14 +38972,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_getifaddrs="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_getifaddrs="no"
fi
@@ -36243,37 +38994,35 @@ fi
#
if test "$tst_compi_getifaddrs" = "yes" &&
test "$tst_works_getifaddrs" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs usage allowed" >&5
-$as_echo_n "checking if getifaddrs usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs usage allowed" >&5
+printf %s "checking if getifaddrs usage allowed... " >&6; }
if test "x$curl_disallow_getifaddrs" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_getifaddrs="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_getifaddrs="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs might be used" >&5
-$as_echo_n "checking if getifaddrs might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getifaddrs might be used" >&5
+printf %s "checking if getifaddrs might be used... " >&6; }
if test "$tst_links_getifaddrs" = "yes" &&
test "$tst_proto_getifaddrs" = "yes" &&
test "$tst_compi_getifaddrs" = "yes" &&
test "$tst_allow_getifaddrs" = "yes" &&
test "$tst_works_getifaddrs" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GETIFADDRS 1
-_ACEOF
+printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
curl_cv_func_getifaddrs="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_getifaddrs="no"
fi
@@ -36288,19 +39037,20 @@ curl_includes_time="\
#endif
#include <time.h>
/* includes end */"
- for ac_header in sys/types.h sys/time.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_time
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_time
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$curl_includes_time
+"
+if test "x$ac_cv_header_sys_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
-done
+fi
@@ -36311,8 +39061,8 @@ done
tst_works_gmtime_r="unknown"
tst_allow_gmtime_r="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r can be linked" >&5
-$as_echo_n "checking if gmtime_r can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r can be linked" >&5
+printf %s "checking if gmtime_r can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36340,25 +39090,26 @@ return gmtime_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_gmtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_gmtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_gmtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is prototyped" >&5
-$as_echo_n "checking if gmtime_r is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is prototyped" >&5
+printf %s "checking if gmtime_r is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36366,26 +39117,27 @@ $as_echo_n "checking if gmtime_r is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "gmtime_r" >/dev/null 2>&1; then :
+ $EGREP "gmtime_r" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_gmtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_gmtime_r="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_gmtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is compilable" >&5
-$as_echo_n "checking if gmtime_r is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is compilable" >&5
+printf %s "checking if gmtime_r is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36403,36 +39155,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_gmtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_gmtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_gmtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r seems to work" >&5
-$as_echo_n "checking if gmtime_r seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r seems to work" >&5
+printf %s "checking if gmtime_r seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36457,14 +39211,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_gmtime_r="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_gmtime_r="no"
fi
@@ -36478,37 +39233,35 @@ fi
#
if test "$tst_compi_gmtime_r" = "yes" &&
test "$tst_works_gmtime_r" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r usage allowed" >&5
-$as_echo_n "checking if gmtime_r usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r usage allowed" >&5
+printf %s "checking if gmtime_r usage allowed... " >&6; }
if test "x$curl_disallow_gmtime_r" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_gmtime_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_gmtime_r="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r might be used" >&5
-$as_echo_n "checking if gmtime_r might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gmtime_r might be used" >&5
+printf %s "checking if gmtime_r might be used... " >&6; }
if test "$tst_links_gmtime_r" = "yes" &&
test "$tst_proto_gmtime_r" = "yes" &&
test "$tst_compi_gmtime_r" = "yes" &&
test "$tst_allow_gmtime_r" = "yes" &&
test "$tst_works_gmtime_r" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GMTIME_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
curl_cv_func_gmtime_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_gmtime_r="no"
fi
@@ -36532,19 +39285,34 @@ curl_includes_arpa_inet="\
#include <ws2tcpip.h>
#endif
/* includes end */"
- for ac_header in sys/types.h sys/socket.h netinet/in.h arpa/inet.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_arpa_inet
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_arpa_inet
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$curl_includes_arpa_inet
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$curl_includes_arpa_inet
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$curl_includes_arpa_inet
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
+
+fi
@@ -36555,8 +39323,8 @@ done
tst_works_inet_ntop="unknown"
tst_allow_inet_ntop="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop can be linked" >&5
-$as_echo_n "checking if inet_ntop can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop can be linked" >&5
+printf %s "checking if inet_ntop can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36584,25 +39352,26 @@ return inet_ntop ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_inet_ntop="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_inet_ntop="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_inet_ntop" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is prototyped" >&5
-$as_echo_n "checking if inet_ntop is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is prototyped" >&5
+printf %s "checking if inet_ntop is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36610,26 +39379,27 @@ $as_echo_n "checking if inet_ntop is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "inet_ntop" >/dev/null 2>&1; then :
+ $EGREP "inet_ntop" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_inet_ntop="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_inet_ntop="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_inet_ntop" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is compilable" >&5
-$as_echo_n "checking if inet_ntop is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is compilable" >&5
+printf %s "checking if inet_ntop is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36647,36 +39417,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_inet_ntop="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_inet_ntop="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_inet_ntop" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5
-$as_echo_n "checking if inet_ntop seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5
+printf %s "checking if inet_ntop seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36743,14 +39515,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_inet_ntop="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_inet_ntop="no"
fi
@@ -36764,37 +39537,35 @@ fi
#
if test "$tst_compi_inet_ntop" = "yes" &&
test "$tst_works_inet_ntop" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop usage allowed" >&5
-$as_echo_n "checking if inet_ntop usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop usage allowed" >&5
+printf %s "checking if inet_ntop usage allowed... " >&6; }
if test "x$curl_disallow_inet_ntop" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_inet_ntop="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_inet_ntop="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop might be used" >&5
-$as_echo_n "checking if inet_ntop might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop might be used" >&5
+printf %s "checking if inet_ntop might be used... " >&6; }
if test "$tst_links_inet_ntop" = "yes" &&
test "$tst_proto_inet_ntop" = "yes" &&
test "$tst_compi_inet_ntop" = "yes" &&
test "$tst_allow_inet_ntop" = "yes" &&
test "$tst_works_inet_ntop" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INET_NTOP 1
-_ACEOF
+printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h
curl_cv_func_inet_ntop="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_inet_ntop="no"
fi
@@ -36806,8 +39577,8 @@ $as_echo "no" >&6; }
tst_works_inet_pton="unknown"
tst_allow_inet_pton="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton can be linked" >&5
-$as_echo_n "checking if inet_pton can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton can be linked" >&5
+printf %s "checking if inet_pton can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36835,25 +39606,26 @@ return inet_pton ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_inet_pton="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_inet_pton="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_inet_pton" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is prototyped" >&5
-$as_echo_n "checking if inet_pton is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton is prototyped" >&5
+printf %s "checking if inet_pton is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36861,26 +39633,27 @@ $as_echo_n "checking if inet_pton is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "inet_pton" >/dev/null 2>&1; then :
+ $EGREP "inet_pton" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_inet_pton="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_inet_pton="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_inet_pton" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is compilable" >&5
-$as_echo_n "checking if inet_pton is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton is compilable" >&5
+printf %s "checking if inet_pton is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36898,36 +39671,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_inet_pton="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_inet_pton="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_inet_pton" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5
-$as_echo_n "checking if inet_pton seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5
+printf %s "checking if inet_pton seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -36987,14 +39762,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_inet_pton="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_inet_pton="no"
fi
@@ -37008,37 +39784,35 @@ fi
#
if test "$tst_compi_inet_pton" = "yes" &&
test "$tst_works_inet_pton" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton usage allowed" >&5
-$as_echo_n "checking if inet_pton usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton usage allowed" >&5
+printf %s "checking if inet_pton usage allowed... " >&6; }
if test "x$curl_disallow_inet_pton" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_inet_pton="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_inet_pton="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton might be used" >&5
-$as_echo_n "checking if inet_pton might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton might be used" >&5
+printf %s "checking if inet_pton might be used... " >&6; }
if test "$tst_links_inet_pton" = "yes" &&
test "$tst_proto_inet_pton" = "yes" &&
test "$tst_compi_inet_pton" = "yes" &&
test "$tst_allow_inet_pton" = "yes" &&
test "$tst_works_inet_pton" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INET_PTON 1
-_ACEOF
+printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
curl_cv_func_inet_pton="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_inet_pton="no"
fi
@@ -37061,19 +39835,41 @@ curl_includes_stropts="\
# include <stropts.h>
#endif
/* includes end */"
- for ac_header in sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stropts
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_stropts
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$curl_includes_stropts
+"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$curl_includes_stropts
+"
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$curl_includes_stropts
+"
+if test "x$ac_cv_header_sys_ioctl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$curl_includes_stropts
+"
+if test "x$ac_cv_header_stropts_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h
+
+fi
@@ -37083,8 +39879,8 @@ done
tst_compi_ioctl="unknown"
tst_allow_ioctl="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl can be linked" >&5
-$as_echo_n "checking if ioctl can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl can be linked" >&5
+printf %s "checking if ioctl can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37112,25 +39908,26 @@ return ioctl ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_ioctl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_ioctl="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is prototyped" >&5
-$as_echo_n "checking if ioctl is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl is prototyped" >&5
+printf %s "checking if ioctl is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37138,26 +39935,27 @@ $as_echo_n "checking if ioctl is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "ioctl" >/dev/null 2>&1; then :
+ $EGREP "ioctl" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_ioctl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_ioctl="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is compilable" >&5
-$as_echo_n "checking if ioctl is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl is compilable" >&5
+printf %s "checking if ioctl is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37175,48 +39973,47 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctl="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctl="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl usage allowed" >&5
-$as_echo_n "checking if ioctl usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl usage allowed" >&5
+printf %s "checking if ioctl usage allowed... " >&6; }
if test "x$curl_disallow_ioctl" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctl="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctl="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl might be used" >&5
-$as_echo_n "checking if ioctl might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl might be used" >&5
+printf %s "checking if ioctl might be used... " >&6; }
if test "$tst_links_ioctl" = "yes" &&
test "$tst_proto_ioctl" = "yes" &&
test "$tst_compi_ioctl" = "yes" &&
test "$tst_allow_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTL 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTL 1" >>confdefs.h
curl_cv_func_ioctl="yes"
@@ -37225,8 +40022,8 @@ _ACEOF
tst_allow_ioctl_fionbio="unknown"
#
if test "$curl_cv_func_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO is compilable" >&5
-$as_echo_n "checking if ioctl FIONBIO is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO is compilable" >&5
+printf %s "checking if ioctl FIONBIO is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37245,51 +40042,50 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctl_fionbio="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctl_fionbio="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctl_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO usage allowed" >&5
-$as_echo_n "checking if ioctl FIONBIO usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO usage allowed" >&5
+printf %s "checking if ioctl FIONBIO usage allowed... " >&6; }
if test "x$curl_disallow_ioctl_fionbio" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctl_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctl_fionbio="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO might be used" >&5
-$as_echo_n "checking if ioctl FIONBIO might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO might be used" >&5
+printf %s "checking if ioctl FIONBIO might be used... " >&6; }
if test "$tst_compi_ioctl_fionbio" = "yes" &&
test "$tst_allow_ioctl_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTL_FIONBIO 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTL_FIONBIO 1" >>confdefs.h
curl_cv_func_ioctl_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctl_fionbio="no"
fi
@@ -37299,8 +40095,8 @@ $as_echo "no" >&6; }
tst_allow_ioctl_siocgifaddr="unknown"
#
if test "$curl_cv_func_ioctl" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR is compilable" >&5
-$as_echo_n "checking if ioctl SIOCGIFADDR is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR is compilable" >&5
+printf %s "checking if ioctl SIOCGIFADDR is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37320,57 +40116,56 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctl_siocgifaddr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctl_siocgifaddr="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR usage allowed" >&5
-$as_echo_n "checking if ioctl SIOCGIFADDR usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR usage allowed" >&5
+printf %s "checking if ioctl SIOCGIFADDR usage allowed... " >&6; }
if test "x$curl_disallow_ioctl_siocgifaddr" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctl_siocgifaddr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctl_siocgifaddr="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR might be used" >&5
-$as_echo_n "checking if ioctl SIOCGIFADDR might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR might be used" >&5
+printf %s "checking if ioctl SIOCGIFADDR might be used... " >&6; }
if test "$tst_compi_ioctl_siocgifaddr" = "yes" &&
test "$tst_allow_ioctl_siocgifaddr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTL_SIOCGIFADDR 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTL_SIOCGIFADDR 1" >>confdefs.h
curl_cv_func_ioctl_siocgifaddr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctl_siocgifaddr="no"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctl="no"
fi
@@ -37381,8 +40176,8 @@ $as_echo "no" >&6; }
tst_compi_ioctlsocket="unknown"
tst_allow_ioctlsocket="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket can be linked" >&5
-$as_echo_n "checking if ioctlsocket can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket can be linked" >&5
+printf %s "checking if ioctlsocket can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37401,25 +40196,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_ioctlsocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_ioctlsocket="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_ioctlsocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is prototyped" >&5
-$as_echo_n "checking if ioctlsocket is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is prototyped" >&5
+printf %s "checking if ioctlsocket is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37428,26 +40224,27 @@ $as_echo_n "checking if ioctlsocket is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "ioctlsocket" >/dev/null 2>&1; then :
+ $EGREP "ioctlsocket" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_ioctlsocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_ioctlsocket="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_ioctlsocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is compilable" >&5
-$as_echo_n "checking if ioctlsocket is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is compilable" >&5
+printf %s "checking if ioctlsocket is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37466,48 +40263,47 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctlsocket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctlsocket="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctlsocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket usage allowed" >&5
-$as_echo_n "checking if ioctlsocket usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket usage allowed" >&5
+printf %s "checking if ioctlsocket usage allowed... " >&6; }
if test "x$curl_disallow_ioctlsocket" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctlsocket="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctlsocket="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket might be used" >&5
-$as_echo_n "checking if ioctlsocket might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket might be used" >&5
+printf %s "checking if ioctlsocket might be used... " >&6; }
if test "$tst_links_ioctlsocket" = "yes" &&
test "$tst_proto_ioctlsocket" = "yes" &&
test "$tst_compi_ioctlsocket" = "yes" &&
test "$tst_allow_ioctlsocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTLSOCKET 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
curl_cv_func_ioctlsocket="yes"
@@ -37516,8 +40312,8 @@ _ACEOF
tst_allow_ioctlsocket_fionbio="unknown"
#
if test "$curl_cv_func_ioctlsocket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO is compilable" >&5
-$as_echo_n "checking if ioctlsocket FIONBIO is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO is compilable" >&5
+printf %s "checking if ioctlsocket FIONBIO is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37537,57 +40333,56 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctlsocket_fionbio="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctlsocket_fionbio="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO usage allowed" >&5
-$as_echo_n "checking if ioctlsocket FIONBIO usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO usage allowed" >&5
+printf %s "checking if ioctlsocket FIONBIO usage allowed... " >&6; }
if test "x$curl_disallow_ioctlsocket_fionbio" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctlsocket_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctlsocket_fionbio="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO might be used" >&5
-$as_echo_n "checking if ioctlsocket FIONBIO might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO might be used" >&5
+printf %s "checking if ioctlsocket FIONBIO might be used... " >&6; }
if test "$tst_compi_ioctlsocket_fionbio" = "yes" &&
test "$tst_allow_ioctlsocket_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTLSOCKET_FIONBIO 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTLSOCKET_FIONBIO 1" >>confdefs.h
curl_cv_func_ioctlsocket_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctlsocket_fionbio="no"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctlsocket="no"
fi
@@ -37598,8 +40393,8 @@ $as_echo "no" >&6; }
tst_compi_ioctlsocket_camel="unknown"
tst_allow_ioctlsocket_camel="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket can be linked" >&5
-$as_echo_n "checking if IoctlSocket can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket can be linked" >&5
+printf %s "checking if IoctlSocket can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37627,25 +40422,26 @@ return IoctlSocket ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_ioctlsocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_ioctlsocket_camel="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_ioctlsocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5
-$as_echo_n "checking if IoctlSocket is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5
+printf %s "checking if IoctlSocket is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37653,26 +40449,27 @@ $as_echo_n "checking if IoctlSocket is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "IoctlSocket" >/dev/null 2>&1; then :
+ $EGREP "IoctlSocket" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_ioctlsocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_ioctlsocket_camel="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_ioctlsocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5
-$as_echo_n "checking if IoctlSocket is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5
+printf %s "checking if IoctlSocket is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37690,48 +40487,47 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctlsocket_camel="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctlsocket_camel="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctlsocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket usage allowed" >&5
-$as_echo_n "checking if IoctlSocket usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket usage allowed" >&5
+printf %s "checking if IoctlSocket usage allowed... " >&6; }
if test "x$curl_disallow_ioctlsocket_camel" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctlsocket_camel="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctlsocket_camel="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5
-$as_echo_n "checking if IoctlSocket might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5
+printf %s "checking if IoctlSocket might be used... " >&6; }
if test "$tst_links_ioctlsocket_camel" = "yes" &&
test "$tst_proto_ioctlsocket_camel" = "yes" &&
test "$tst_compi_ioctlsocket_camel" = "yes" &&
test "$tst_allow_ioctlsocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTLSOCKET_CAMEL 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTLSOCKET_CAMEL 1" >>confdefs.h
curl_cv_func_ioctlsocket_camel="yes"
@@ -37740,8 +40536,8 @@ _ACEOF
tst_allow_ioctlsocket_camel_fionbio="unknown"
#
if test "$curl_cv_func_ioctlsocket_camel" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO is compilable" >&5
-$as_echo_n "checking if IoctlSocket FIONBIO is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO is compilable" >&5
+printf %s "checking if IoctlSocket FIONBIO is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37760,57 +40556,56 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_ioctlsocket_camel_fionbio="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_ioctlsocket_camel_fionbio="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO usage allowed" >&5
-$as_echo_n "checking if IoctlSocket FIONBIO usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO usage allowed" >&5
+printf %s "checking if IoctlSocket FIONBIO usage allowed... " >&6; }
if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_ioctlsocket_camel_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_ioctlsocket_camel_fionbio="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO might be used" >&5
-$as_echo_n "checking if IoctlSocket FIONBIO might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO might be used" >&5
+printf %s "checking if IoctlSocket FIONBIO might be used... " >&6; }
if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" &&
test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1
-_ACEOF
+printf "%s\n" "#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1" >>confdefs.h
curl_cv_func_ioctlsocket_camel_fionbio="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctlsocket_camel_fionbio="no"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_ioctlsocket_camel="no"
fi
@@ -37822,8 +40617,8 @@ $as_echo "no" >&6; }
tst_works_localtime_r="unknown"
tst_allow_localtime_r="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r can be linked" >&5
-$as_echo_n "checking if localtime_r can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r can be linked" >&5
+printf %s "checking if localtime_r can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37851,25 +40646,26 @@ return localtime_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_localtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_localtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_localtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is prototyped" >&5
-$as_echo_n "checking if localtime_r is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r is prototyped" >&5
+printf %s "checking if localtime_r is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37877,26 +40673,27 @@ $as_echo_n "checking if localtime_r is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "localtime_r" >/dev/null 2>&1; then :
+ $EGREP "localtime_r" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_localtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_localtime_r="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_localtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is compilable" >&5
-$as_echo_n "checking if localtime_r is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r is compilable" >&5
+printf %s "checking if localtime_r is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37914,36 +40711,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_localtime_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_localtime_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_localtime_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r seems to work" >&5
-$as_echo_n "checking if localtime_r seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r seems to work" >&5
+printf %s "checking if localtime_r seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -37968,14 +40767,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_localtime_r="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_localtime_r="no"
fi
@@ -37989,37 +40789,35 @@ fi
#
if test "$tst_compi_localtime_r" = "yes" &&
test "$tst_works_localtime_r" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r usage allowed" >&5
-$as_echo_n "checking if localtime_r usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r usage allowed" >&5
+printf %s "checking if localtime_r usage allowed... " >&6; }
if test "x$curl_disallow_localtime_r" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_localtime_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_localtime_r="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r might be used" >&5
-$as_echo_n "checking if localtime_r might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if localtime_r might be used" >&5
+printf %s "checking if localtime_r might be used... " >&6; }
if test "$tst_links_localtime_r" = "yes" &&
test "$tst_proto_localtime_r" = "yes" &&
test "$tst_compi_localtime_r" = "yes" &&
test "$tst_allow_localtime_r" = "yes" &&
test "$tst_works_localtime_r" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LOCALTIME_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h
curl_cv_func_localtime_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_localtime_r="no"
fi
@@ -38031,8 +40829,8 @@ $as_echo "no" >&6; }
tst_compi_memrchr="unknown"
tst_allow_memrchr="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr can be linked" >&5
-$as_echo_n "checking if memrchr can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr can be linked" >&5
+printf %s "checking if memrchr can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38060,25 +40858,26 @@ return memrchr ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_memrchr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_memrchr="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_memrchr" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr seems a macro" >&5
-$as_echo_n "checking if memrchr seems a macro... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr seems a macro" >&5
+printf %s "checking if memrchr seems a macro... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38096,26 +40895,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_macro_memrchr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_macro_memrchr="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
#
if test "$tst_links_memrchr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is prototyped" >&5
-$as_echo_n "checking if memrchr is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr is prototyped" >&5
+printf %s "checking if memrchr is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38123,27 +40923,28 @@ $as_echo_n "checking if memrchr is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memrchr" >/dev/null 2>&1; then :
+ $EGREP "memrchr" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_memrchr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_memrchr="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_memrchr" = "yes" ||
test "$tst_macro_memrchr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is compilable" >&5
-$as_echo_n "checking if memrchr is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr is compilable" >&5
+printf %s "checking if memrchr is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38161,53 +40962,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_memrchr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_memrchr="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_memrchr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr usage allowed" >&5
-$as_echo_n "checking if memrchr usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr usage allowed" >&5
+printf %s "checking if memrchr usage allowed... " >&6; }
if test "x$curl_disallow_memrchr" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_memrchr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_memrchr="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr might be used" >&5
-$as_echo_n "checking if memrchr might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memrchr might be used" >&5
+printf %s "checking if memrchr might be used... " >&6; }
if (test "$tst_proto_memrchr" = "yes" ||
test "$tst_macro_memrchr" = "yes") &&
test "$tst_compi_memrchr" = "yes" &&
test "$tst_allow_memrchr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_MEMRCHR 1
-_ACEOF
+printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h
curl_cv_func_memrchr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_memrchr="no"
fi
@@ -38226,8 +41026,8 @@ $as_echo "no" >&6; }
;;
esac
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll can be linked" >&5
-$as_echo_n "checking if poll can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll can be linked" >&5
+printf %s "checking if poll can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38245,25 +41045,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_poll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_poll="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_poll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is prototyped" >&5
-$as_echo_n "checking if poll is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll is prototyped" >&5
+printf %s "checking if poll is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38271,26 +41072,27 @@ $as_echo_n "checking if poll is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "poll" >/dev/null 2>&1; then :
+ $EGREP "poll" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_poll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_poll="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_poll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is compilable" >&5
-$as_echo_n "checking if poll is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll is compilable" >&5
+printf %s "checking if poll is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38308,36 +41110,38 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_poll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_poll="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_poll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll seems to work" >&5
-$as_echo_n "checking if poll seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll seems to work" >&5
+printf %s "checking if poll seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38374,14 +41178,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_poll="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_poll="no"
fi
@@ -38395,42 +41200,38 @@ fi
#
if test "$tst_compi_poll" = "yes" &&
test "$tst_works_poll" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll usage allowed" >&5
-$as_echo_n "checking if poll usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll usage allowed" >&5
+printf %s "checking if poll usage allowed... " >&6; }
if test "x$curl_disallow_poll" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_poll="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_poll="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll might be used" >&5
-$as_echo_n "checking if poll might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if poll might be used" >&5
+printf %s "checking if poll might be used... " >&6; }
if test "$tst_links_poll" = "yes" &&
test "$tst_proto_poll" = "yes" &&
test "$tst_compi_poll" = "yes" &&
test "$tst_allow_poll" = "yes" &&
test "$tst_works_poll" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_POLL 1
-_ACEOF
+printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define HAVE_POLL_FINE 1
-_ACEOF
+printf "%s\n" "#define HAVE_POLL_FINE 1" >>confdefs.h
curl_cv_func_poll="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_poll="no"
fi
@@ -38441,8 +41242,8 @@ $as_echo "no" >&6; }
tst_compi_setsockopt="unknown"
tst_allow_setsockopt="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt can be linked" >&5
-$as_echo_n "checking if setsockopt can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt can be linked" >&5
+printf %s "checking if setsockopt can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38462,25 +41263,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_setsockopt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_setsockopt="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_setsockopt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is prototyped" >&5
-$as_echo_n "checking if setsockopt is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt is prototyped" >&5
+printf %s "checking if setsockopt is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38490,26 +41292,27 @@ $as_echo_n "checking if setsockopt is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "setsockopt" >/dev/null 2>&1; then :
+ $EGREP "setsockopt" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_setsockopt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_setsockopt="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_setsockopt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is compilable" >&5
-$as_echo_n "checking if setsockopt is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt is compilable" >&5
+printf %s "checking if setsockopt is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38529,48 +41332,47 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_setsockopt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_setsockopt="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_setsockopt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt usage allowed" >&5
-$as_echo_n "checking if setsockopt usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt usage allowed" >&5
+printf %s "checking if setsockopt usage allowed... " >&6; }
if test "x$curl_disallow_setsockopt" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_setsockopt="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_setsockopt="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt might be used" >&5
-$as_echo_n "checking if setsockopt might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt might be used" >&5
+printf %s "checking if setsockopt might be used... " >&6; }
if test "$tst_links_setsockopt" = "yes" &&
test "$tst_proto_setsockopt" = "yes" &&
test "$tst_compi_setsockopt" = "yes" &&
test "$tst_allow_setsockopt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SETSOCKOPT 1
-_ACEOF
+printf "%s\n" "#define HAVE_SETSOCKOPT 1" >>confdefs.h
curl_cv_func_setsockopt="yes"
@@ -38579,8 +41381,8 @@ _ACEOF
tst_allow_setsockopt_so_nonblock="unknown"
#
if test "$curl_cv_func_setsockopt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK is compilable" >&5
-$as_echo_n "checking if setsockopt SO_NONBLOCK is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK is compilable" >&5
+printf %s "checking if setsockopt SO_NONBLOCK is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38600,57 +41402,56 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_setsockopt_so_nonblock="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_setsockopt_so_nonblock="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK usage allowed" >&5
-$as_echo_n "checking if setsockopt SO_NONBLOCK usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK usage allowed" >&5
+printf %s "checking if setsockopt SO_NONBLOCK usage allowed... " >&6; }
if test "x$curl_disallow_setsockopt_so_nonblock" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_setsockopt_so_nonblock="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_setsockopt_so_nonblock="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK might be used" >&5
-$as_echo_n "checking if setsockopt SO_NONBLOCK might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK might be used" >&5
+printf %s "checking if setsockopt SO_NONBLOCK might be used... " >&6; }
if test "$tst_compi_setsockopt_so_nonblock" = "yes" &&
test "$tst_allow_setsockopt_so_nonblock" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SETSOCKOPT_SO_NONBLOCK 1
-_ACEOF
+printf "%s\n" "#define HAVE_SETSOCKOPT_SO_NONBLOCK 1" >>confdefs.h
curl_cv_func_setsockopt_so_nonblock="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_setsockopt_so_nonblock="no"
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_setsockopt="no"
fi
@@ -38664,19 +41465,20 @@ curl_includes_signal="\
# include <signal.h>
#endif
/* includes end */"
- for ac_header in sys/types.h signal.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_signal
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_signal
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "signal.h" "ac_cv_header_signal_h" "$curl_includes_signal
+"
+if test "x$ac_cv_header_signal_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SIGNAL_H 1" >>confdefs.h
-done
+fi
@@ -38686,8 +41488,8 @@ done
tst_compi_sigaction="unknown"
tst_allow_sigaction="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction can be linked" >&5
-$as_echo_n "checking if sigaction can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigaction can be linked" >&5
+printf %s "checking if sigaction can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38715,25 +41517,26 @@ return sigaction ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_sigaction="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_sigaction="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_sigaction" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is prototyped" >&5
-$as_echo_n "checking if sigaction is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigaction is prototyped" >&5
+printf %s "checking if sigaction is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38741,26 +41544,27 @@ $as_echo_n "checking if sigaction is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "sigaction" >/dev/null 2>&1; then :
+ $EGREP "sigaction" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_sigaction="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_sigaction="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_sigaction" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is compilable" >&5
-$as_echo_n "checking if sigaction is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigaction is compilable" >&5
+printf %s "checking if sigaction is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38778,53 +41582,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_sigaction="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_sigaction="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_sigaction" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction usage allowed" >&5
-$as_echo_n "checking if sigaction usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigaction usage allowed" >&5
+printf %s "checking if sigaction usage allowed... " >&6; }
if test "x$curl_disallow_sigaction" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_sigaction="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_sigaction="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction might be used" >&5
-$as_echo_n "checking if sigaction might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigaction might be used" >&5
+printf %s "checking if sigaction might be used... " >&6; }
if test "$tst_links_sigaction" = "yes" &&
test "$tst_proto_sigaction" = "yes" &&
test "$tst_compi_sigaction" = "yes" &&
test "$tst_allow_sigaction" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGACTION 1
-_ACEOF
+printf "%s\n" "#define HAVE_SIGACTION 1" >>confdefs.h
curl_cv_func_sigaction="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_sigaction="no"
fi
@@ -38835,8 +41638,8 @@ $as_echo "no" >&6; }
tst_compi_siginterrupt="unknown"
tst_allow_siginterrupt="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt can be linked" >&5
-$as_echo_n "checking if siginterrupt can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if siginterrupt can be linked" >&5
+printf %s "checking if siginterrupt can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38864,25 +41667,26 @@ return siginterrupt ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_siginterrupt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_siginterrupt="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_siginterrupt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is prototyped" >&5
-$as_echo_n "checking if siginterrupt is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is prototyped" >&5
+printf %s "checking if siginterrupt is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38890,26 +41694,27 @@ $as_echo_n "checking if siginterrupt is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "siginterrupt" >/dev/null 2>&1; then :
+ $EGREP "siginterrupt" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_siginterrupt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_siginterrupt="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_siginterrupt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is compilable" >&5
-$as_echo_n "checking if siginterrupt is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is compilable" >&5
+printf %s "checking if siginterrupt is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -38927,53 +41732,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_siginterrupt="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_siginterrupt="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_siginterrupt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt usage allowed" >&5
-$as_echo_n "checking if siginterrupt usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if siginterrupt usage allowed" >&5
+printf %s "checking if siginterrupt usage allowed... " >&6; }
if test "x$curl_disallow_siginterrupt" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_siginterrupt="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_siginterrupt="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt might be used" >&5
-$as_echo_n "checking if siginterrupt might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if siginterrupt might be used" >&5
+printf %s "checking if siginterrupt might be used... " >&6; }
if test "$tst_links_siginterrupt" = "yes" &&
test "$tst_proto_siginterrupt" = "yes" &&
test "$tst_compi_siginterrupt" = "yes" &&
test "$tst_allow_siginterrupt" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGINTERRUPT 1
-_ACEOF
+printf "%s\n" "#define HAVE_SIGINTERRUPT 1" >>confdefs.h
curl_cv_func_siginterrupt="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_siginterrupt="no"
fi
@@ -38984,8 +41788,8 @@ $as_echo "no" >&6; }
tst_compi_signal="unknown"
tst_allow_signal="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal can be linked" >&5
-$as_echo_n "checking if signal can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if signal can be linked" >&5
+printf %s "checking if signal can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39013,25 +41817,26 @@ return signal ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_signal="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_signal="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_signal" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is prototyped" >&5
-$as_echo_n "checking if signal is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if signal is prototyped" >&5
+printf %s "checking if signal is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39039,26 +41844,27 @@ $as_echo_n "checking if signal is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "signal" >/dev/null 2>&1; then :
+ $EGREP "signal" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_signal="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_signal="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_signal" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is compilable" >&5
-$as_echo_n "checking if signal is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if signal is compilable" >&5
+printf %s "checking if signal is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39076,53 +41882,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_signal="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_signal="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_signal" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal usage allowed" >&5
-$as_echo_n "checking if signal usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if signal usage allowed" >&5
+printf %s "checking if signal usage allowed... " >&6; }
if test "x$curl_disallow_signal" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_signal="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_signal="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal might be used" >&5
-$as_echo_n "checking if signal might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if signal might be used" >&5
+printf %s "checking if signal might be used... " >&6; }
if test "$tst_links_signal" = "yes" &&
test "$tst_proto_signal" = "yes" &&
test "$tst_compi_signal" = "yes" &&
test "$tst_allow_signal" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNAL 1
-_ACEOF
+printf "%s\n" "#define HAVE_SIGNAL 1" >>confdefs.h
curl_cv_func_signal="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_signal="no"
fi
@@ -39136,19 +41941,20 @@ curl_includes_setjmp="\
# include <setjmp.h>
#endif
/* includes end */"
- for ac_header in sys/types.h setjmp.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_setjmp
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_setjmp
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$curl_includes_setjmp
+"
+if test "x$ac_cv_header_setjmp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
-done
+fi
@@ -39159,8 +41965,8 @@ done
tst_compi_sigsetjmp="unknown"
tst_allow_sigsetjmp="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp can be linked" >&5
-$as_echo_n "checking if sigsetjmp can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp can be linked" >&5
+printf %s "checking if sigsetjmp can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39188,25 +41994,26 @@ return sigsetjmp ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_sigsetjmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_sigsetjmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_sigsetjmp" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp seems a macro" >&5
-$as_echo_n "checking if sigsetjmp seems a macro... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp seems a macro" >&5
+printf %s "checking if sigsetjmp seems a macro... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39225,26 +42032,27 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_macro_sigsetjmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_macro_sigsetjmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
#
if test "$tst_links_sigsetjmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is prototyped" >&5
-$as_echo_n "checking if sigsetjmp is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is prototyped" >&5
+printf %s "checking if sigsetjmp is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39252,27 +42060,28 @@ $as_echo_n "checking if sigsetjmp is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "sigsetjmp" >/dev/null 2>&1; then :
+ $EGREP "sigsetjmp" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_sigsetjmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_sigsetjmp="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_sigsetjmp" = "yes" ||
test "$tst_macro_sigsetjmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is compilable" >&5
-$as_echo_n "checking if sigsetjmp is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is compilable" >&5
+printf %s "checking if sigsetjmp is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39291,53 +42100,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_sigsetjmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_sigsetjmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_sigsetjmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp usage allowed" >&5
-$as_echo_n "checking if sigsetjmp usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp usage allowed" >&5
+printf %s "checking if sigsetjmp usage allowed... " >&6; }
if test "x$curl_disallow_sigsetjmp" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_sigsetjmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_sigsetjmp="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp might be used" >&5
-$as_echo_n "checking if sigsetjmp might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp might be used" >&5
+printf %s "checking if sigsetjmp might be used... " >&6; }
if (test "$tst_proto_sigsetjmp" = "yes" ||
test "$tst_macro_sigsetjmp" = "yes") &&
test "$tst_compi_sigsetjmp" = "yes" &&
test "$tst_allow_sigsetjmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGSETJMP 1
-_ACEOF
+printf "%s\n" "#define HAVE_SIGSETJMP 1" >>confdefs.h
curl_cv_func_sigsetjmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_sigsetjmp="no"
fi
@@ -39348,8 +42156,8 @@ $as_echo "no" >&6; }
tst_compi_socket="unknown"
tst_allow_socket="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket can be linked" >&5
-$as_echo_n "checking if socket can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket can be linked" >&5
+printf %s "checking if socket can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39370,25 +42178,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_socket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_socket="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_socket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is prototyped" >&5
-$as_echo_n "checking if socket is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket is prototyped" >&5
+printf %s "checking if socket is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39399,26 +42208,27 @@ $as_echo_n "checking if socket is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "socket" >/dev/null 2>&1; then :
+ $EGREP "socket" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_socket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_socket="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_socket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is compilable" >&5
-$as_echo_n "checking if socket is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket is compilable" >&5
+printf %s "checking if socket is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39439,53 +42249,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_socket="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_socket="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_socket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket usage allowed" >&5
-$as_echo_n "checking if socket usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket usage allowed" >&5
+printf %s "checking if socket usage allowed... " >&6; }
if test "x$curl_disallow_socket" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_socket="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_socket="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket might be used" >&5
-$as_echo_n "checking if socket might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket might be used" >&5
+printf %s "checking if socket might be used... " >&6; }
if test "$tst_links_socket" = "yes" &&
test "$tst_proto_socket" = "yes" &&
test "$tst_compi_socket" = "yes" &&
test "$tst_allow_socket" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SOCKET 1
-_ACEOF
+printf "%s\n" "#define HAVE_SOCKET 1" >>confdefs.h
curl_cv_func_socket="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_socket="no"
fi
@@ -39496,8 +42305,8 @@ $as_echo "no" >&6; }
tst_compi_socketpair="unknown"
tst_allow_socketpair="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair can be linked" >&5
-$as_echo_n "checking if socketpair can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socketpair can be linked" >&5
+printf %s "checking if socketpair can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39525,25 +42334,26 @@ return socketpair ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_socketpair="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_socketpair="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_socketpair" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair is prototyped" >&5
-$as_echo_n "checking if socketpair is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socketpair is prototyped" >&5
+printf %s "checking if socketpair is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39552,26 +42362,27 @@ $as_echo_n "checking if socketpair is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "socketpair" >/dev/null 2>&1; then :
+ $EGREP "socketpair" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_socketpair="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_socketpair="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_socketpair" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair is compilable" >&5
-$as_echo_n "checking if socketpair is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socketpair is compilable" >&5
+printf %s "checking if socketpair is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39591,53 +42402,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_socketpair="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_socketpair="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_socketpair" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair usage allowed" >&5
-$as_echo_n "checking if socketpair usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socketpair usage allowed" >&5
+printf %s "checking if socketpair usage allowed... " >&6; }
if test "x$curl_disallow_socketpair" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_socketpair="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_socketpair="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socketpair might be used" >&5
-$as_echo_n "checking if socketpair might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socketpair might be used" >&5
+printf %s "checking if socketpair might be used... " >&6; }
if test "$tst_links_socketpair" = "yes" &&
test "$tst_proto_socketpair" = "yes" &&
test "$tst_compi_socketpair" = "yes" &&
test "$tst_allow_socketpair" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SOCKETPAIR 1
-_ACEOF
+printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
curl_cv_func_socketpair="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_socketpair="no"
fi
@@ -39648,8 +42458,8 @@ $as_echo "no" >&6; }
tst_compi_strcasecmp="unknown"
tst_allow_strcasecmp="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5
-$as_echo_n "checking if strcasecmp can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5
+printf %s "checking if strcasecmp can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39677,25 +42487,26 @@ return strcasecmp ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strcasecmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strcasecmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strcasecmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5
-$as_echo_n "checking if strcasecmp is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5
+printf %s "checking if strcasecmp is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39703,26 +42514,27 @@ $as_echo_n "checking if strcasecmp is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strcasecmp" >/dev/null 2>&1; then :
+ $EGREP "strcasecmp" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strcasecmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strcasecmp="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strcasecmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5
-$as_echo_n "checking if strcasecmp is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5
+printf %s "checking if strcasecmp is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39740,53 +42552,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strcasecmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strcasecmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strcasecmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5
-$as_echo_n "checking if strcasecmp usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5
+printf %s "checking if strcasecmp usage allowed... " >&6; }
if test "x$curl_disallow_strcasecmp" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strcasecmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strcasecmp="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5
-$as_echo_n "checking if strcasecmp might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5
+printf %s "checking if strcasecmp might be used... " >&6; }
if test "$tst_links_strcasecmp" = "yes" &&
test "$tst_proto_strcasecmp" = "yes" &&
test "$tst_compi_strcasecmp" = "yes" &&
test "$tst_allow_strcasecmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRCASECMP 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
curl_cv_func_strcasecmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strcasecmp="no"
fi
@@ -39797,8 +42608,8 @@ $as_echo "no" >&6; }
tst_compi_strcmpi="unknown"
tst_allow_strcmpi="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5
-$as_echo_n "checking if strcmpi can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5
+printf %s "checking if strcmpi can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39826,25 +42637,26 @@ return strcmpi ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strcmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strcmpi="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strcmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5
-$as_echo_n "checking if strcmpi is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5
+printf %s "checking if strcmpi is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39852,26 +42664,27 @@ $as_echo_n "checking if strcmpi is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strcmpi" >/dev/null 2>&1; then :
+ $EGREP "strcmpi" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strcmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strcmpi="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strcmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5
-$as_echo_n "checking if strcmpi is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5
+printf %s "checking if strcmpi is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39889,53 +42702,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strcmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strcmpi="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strcmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5
-$as_echo_n "checking if strcmpi usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5
+printf %s "checking if strcmpi usage allowed... " >&6; }
if test "x$curl_disallow_strcmpi" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strcmpi="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strcmpi="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5
-$as_echo_n "checking if strcmpi might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5
+printf %s "checking if strcmpi might be used... " >&6; }
if test "$tst_links_strcmpi" = "yes" &&
test "$tst_proto_strcmpi" = "yes" &&
test "$tst_compi_strcmpi" = "yes" &&
test "$tst_allow_strcmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRCMPI 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRCMPI 1" >>confdefs.h
curl_cv_func_strcmpi="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strcmpi="no"
fi
@@ -39946,8 +42758,8 @@ $as_echo "no" >&6; }
tst_compi_strdup="unknown"
tst_allow_strdup="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup can be linked" >&5
-$as_echo_n "checking if strdup can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup can be linked" >&5
+printf %s "checking if strdup can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -39975,25 +42787,26 @@ return strdup ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strdup="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strdup="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strdup" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is prototyped" >&5
-$as_echo_n "checking if strdup is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup is prototyped" >&5
+printf %s "checking if strdup is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40001,26 +42814,27 @@ $as_echo_n "checking if strdup is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strdup" >/dev/null 2>&1; then :
+ $EGREP "strdup" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strdup="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strdup="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strdup" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is compilable" >&5
-$as_echo_n "checking if strdup is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup is compilable" >&5
+printf %s "checking if strdup is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40038,53 +42852,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strdup="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strdup="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strdup" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup usage allowed" >&5
-$as_echo_n "checking if strdup usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup usage allowed" >&5
+printf %s "checking if strdup usage allowed... " >&6; }
if test "x$curl_disallow_strdup" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strdup="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strdup="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup might be used" >&5
-$as_echo_n "checking if strdup might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup might be used" >&5
+printf %s "checking if strdup might be used... " >&6; }
if test "$tst_links_strdup" = "yes" &&
test "$tst_proto_strdup" = "yes" &&
test "$tst_compi_strdup" = "yes" &&
test "$tst_allow_strdup" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRDUP 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h
curl_cv_func_strdup="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strdup="no"
fi
@@ -40101,8 +42914,8 @@ $as_echo "no" >&6; }
tst_glibc_strerror_r_type_arg3="unknown"
tst_posix_strerror_r_type_arg3="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r can be linked" >&5
-$as_echo_n "checking if strerror_r can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r can be linked" >&5
+printf %s "checking if strerror_r can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40130,25 +42943,26 @@ return strerror_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strerror_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strerror_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is prototyped" >&5
-$as_echo_n "checking if strerror_r is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r is prototyped" >&5
+printf %s "checking if strerror_r is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40156,26 +42970,27 @@ $as_echo_n "checking if strerror_r is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strerror_r" >/dev/null 2>&1; then :
+ $EGREP "strerror_r" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strerror_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strerror_r="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is compilable" >&5
-$as_echo_n "checking if strerror_r is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r is compilable" >&5
+printf %s "checking if strerror_r is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40193,25 +43008,26 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strerror_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strerror_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is glibc like" >&5
-$as_echo_n "checking if strerror_r is glibc like... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r is glibc like" >&5
+printf %s "checking if strerror_r is glibc like... " >&6; }
tst_glibc_strerror_r_type_arg3="unknown"
for arg3 in 'size_t' 'int' 'unsigned int'; do
if test "$tst_glibc_strerror_r_type_arg3" = "unknown"; then
@@ -40233,23 +43049,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_glibc_strerror_r_type_arg3="$arg3"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
case "$tst_glibc_strerror_r_type_arg3" in
unknown)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_glibc_strerror_r="no"
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_glibc_strerror_r="yes"
;;
esac
@@ -40257,18 +43074,19 @@ $as_echo "yes" >&6; }
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_glibc_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
-$as_echo_n "checking if strerror_r seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
+printf %s "checking if strerror_r seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40296,14 +43114,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_glibc_strerror_r="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_glibc_strerror_r="no"
fi
@@ -40317,8 +43136,8 @@ fi
#
if test "$tst_compi_strerror_r" = "yes" &&
test "$tst_works_glibc_strerror_r" != "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is POSIX like" >&5
-$as_echo_n "checking if strerror_r is POSIX like... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r is POSIX like" >&5
+printf %s "checking if strerror_r is POSIX like... " >&6; }
tst_posix_strerror_r_type_arg3="unknown"
for arg3 in 'size_t' 'int' 'unsigned int'; do
if test "$tst_posix_strerror_r_type_arg3" = "unknown"; then
@@ -40340,23 +43159,24 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
tst_posix_strerror_r_type_arg3="$arg3"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
done
case "$tst_posix_strerror_r_type_arg3" in
unknown)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_posix_strerror_r="no"
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_posix_strerror_r="yes"
;;
esac
@@ -40364,18 +43184,19 @@ $as_echo "yes" >&6; }
#
if test "x$cross_compiling" != "xyes" &&
test "$tst_posix_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
-$as_echo_n "checking if strerror_r seems to work... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
+printf %s "checking if strerror_r seems to work... " >&6; }
old=$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
export LD_LIBRARY_PATH
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40403,14 +43224,15 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if ac_fn_c_try_run "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_works_posix_strerror_r="yes"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_works_posix_strerror_r="no"
fi
@@ -40439,72 +43261,60 @@ fi
tst_allow_strerror_r="check"
fi
if test "$tst_allow_strerror_r" = "check"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r usage allowed" >&5
-$as_echo_n "checking if strerror_r usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r usage allowed" >&5
+printf %s "checking if strerror_r usage allowed... " >&6; }
if test "x$curl_disallow_strerror_r" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strerror_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strerror_r="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r might be used" >&5
-$as_echo_n "checking if strerror_r might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strerror_r might be used" >&5
+printf %s "checking if strerror_r might be used... " >&6; }
if test "$tst_links_strerror_r" = "yes" &&
test "$tst_proto_strerror_r" = "yes" &&
test "$tst_compi_strerror_r" = "yes" &&
test "$tst_allow_strerror_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
if test "$tst_glibc_strerror_r" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRERROR_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define HAVE_GLIBC_STRERROR_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_GLIBC_STRERROR_R 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define STRERROR_R_TYPE_ARG3 $tst_glibc_strerror_r_type_arg3
-_ACEOF
+printf "%s\n" "#define STRERROR_R_TYPE_ARG3 $tst_glibc_strerror_r_type_arg3" >>confdefs.h
fi
if test "$tst_posix_strerror_r" = "yes"; then
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRERROR_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define HAVE_POSIX_STRERROR_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_POSIX_STRERROR_R 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define STRERROR_R_TYPE_ARG3 $tst_posix_strerror_r_type_arg3
-_ACEOF
+printf "%s\n" "#define STRERROR_R_TYPE_ARG3 $tst_posix_strerror_r_type_arg3" >>confdefs.h
fi
curl_cv_func_strerror_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strerror_r="no"
fi
#
if test "$tst_compi_strerror_r" = "yes" &&
test "$tst_allow_strerror_r" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&5
-$as_echo "$as_me: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&5
+printf "%s\n" "$as_me: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&2;}
fi
#
@@ -40515,8 +43325,8 @@ $as_echo "$as_me: WARNING: cannot determine strerror_r() style: edit lib/curl_co
tst_compi_stricmp="unknown"
tst_allow_stricmp="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5
-$as_echo_n "checking if stricmp can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5
+printf %s "checking if stricmp can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40544,25 +43354,26 @@ return stricmp ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_stricmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_stricmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_stricmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5
-$as_echo_n "checking if stricmp is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5
+printf %s "checking if stricmp is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40570,26 +43381,27 @@ $as_echo_n "checking if stricmp is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "stricmp" >/dev/null 2>&1; then :
+ $EGREP "stricmp" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_stricmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_stricmp="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_stricmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5
-$as_echo_n "checking if stricmp is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5
+printf %s "checking if stricmp is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40607,53 +43419,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_stricmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_stricmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_stricmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5
-$as_echo_n "checking if stricmp usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5
+printf %s "checking if stricmp usage allowed... " >&6; }
if test "x$curl_disallow_stricmp" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_stricmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_stricmp="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5
-$as_echo_n "checking if stricmp might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5
+printf %s "checking if stricmp might be used... " >&6; }
if test "$tst_links_stricmp" = "yes" &&
test "$tst_proto_stricmp" = "yes" &&
test "$tst_compi_stricmp" = "yes" &&
test "$tst_allow_stricmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRICMP 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRICMP 1" >>confdefs.h
curl_cv_func_stricmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_stricmp="no"
fi
@@ -40664,8 +43475,8 @@ $as_echo "no" >&6; }
tst_compi_strncmpi="unknown"
tst_allow_strncmpi="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi can be linked" >&5
-$as_echo_n "checking if strncmpi can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi can be linked" >&5
+printf %s "checking if strncmpi can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40693,25 +43504,26 @@ return strncmpi ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strncmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strncmpi="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strncmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is prototyped" >&5
-$as_echo_n "checking if strncmpi is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi is prototyped" >&5
+printf %s "checking if strncmpi is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40719,26 +43531,27 @@ $as_echo_n "checking if strncmpi is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strncmpi" >/dev/null 2>&1; then :
+ $EGREP "strncmpi" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strncmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strncmpi="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strncmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is compilable" >&5
-$as_echo_n "checking if strncmpi is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi is compilable" >&5
+printf %s "checking if strncmpi is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40756,53 +43569,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strncmpi="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strncmpi="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strncmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi usage allowed" >&5
-$as_echo_n "checking if strncmpi usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi usage allowed" >&5
+printf %s "checking if strncmpi usage allowed... " >&6; }
if test "x$curl_disallow_strncmpi" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strncmpi="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strncmpi="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi might be used" >&5
-$as_echo_n "checking if strncmpi might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi might be used" >&5
+printf %s "checking if strncmpi might be used... " >&6; }
if test "$tst_links_strncmpi" = "yes" &&
test "$tst_proto_strncmpi" = "yes" &&
test "$tst_compi_strncmpi" = "yes" &&
test "$tst_allow_strncmpi" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRNCMPI 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRNCMPI 1" >>confdefs.h
curl_cv_func_strncmpi="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strncmpi="no"
fi
@@ -40813,8 +43625,8 @@ $as_echo "no" >&6; }
tst_compi_strnicmp="unknown"
tst_allow_strnicmp="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp can be linked" >&5
-$as_echo_n "checking if strnicmp can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp can be linked" >&5
+printf %s "checking if strnicmp can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40842,25 +43654,26 @@ return strnicmp ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strnicmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strnicmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strnicmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is prototyped" >&5
-$as_echo_n "checking if strnicmp is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp is prototyped" >&5
+printf %s "checking if strnicmp is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40868,26 +43681,27 @@ $as_echo_n "checking if strnicmp is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strnicmp" >/dev/null 2>&1; then :
+ $EGREP "strnicmp" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strnicmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strnicmp="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strnicmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is compilable" >&5
-$as_echo_n "checking if strnicmp is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp is compilable" >&5
+printf %s "checking if strnicmp is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40905,53 +43719,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strnicmp="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strnicmp="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strnicmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp usage allowed" >&5
-$as_echo_n "checking if strnicmp usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp usage allowed" >&5
+printf %s "checking if strnicmp usage allowed... " >&6; }
if test "x$curl_disallow_strnicmp" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strnicmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strnicmp="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp might be used" >&5
-$as_echo_n "checking if strnicmp might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp might be used" >&5
+printf %s "checking if strnicmp might be used... " >&6; }
if test "$tst_links_strnicmp" = "yes" &&
test "$tst_proto_strnicmp" = "yes" &&
test "$tst_compi_strnicmp" = "yes" &&
test "$tst_allow_strnicmp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRNICMP 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRNICMP 1" >>confdefs.h
curl_cv_func_strnicmp="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strnicmp="no"
fi
@@ -40962,8 +43775,8 @@ $as_echo "no" >&6; }
tst_compi_strstr="unknown"
tst_allow_strstr="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr can be linked" >&5
-$as_echo_n "checking if strstr can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strstr can be linked" >&5
+printf %s "checking if strstr can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40991,25 +43804,26 @@ return strstr ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strstr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strstr="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strstr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is prototyped" >&5
-$as_echo_n "checking if strstr is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strstr is prototyped" >&5
+printf %s "checking if strstr is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41017,26 +43831,27 @@ $as_echo_n "checking if strstr is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strstr" >/dev/null 2>&1; then :
+ $EGREP "strstr" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strstr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strstr="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strstr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is compilable" >&5
-$as_echo_n "checking if strstr is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strstr is compilable" >&5
+printf %s "checking if strstr is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41054,53 +43869,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strstr="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strstr="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strstr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr usage allowed" >&5
-$as_echo_n "checking if strstr usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strstr usage allowed" >&5
+printf %s "checking if strstr usage allowed... " >&6; }
if test "x$curl_disallow_strstr" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strstr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strstr="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr might be used" >&5
-$as_echo_n "checking if strstr might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strstr might be used" >&5
+printf %s "checking if strstr might be used... " >&6; }
if test "$tst_links_strstr" = "yes" &&
test "$tst_proto_strstr" = "yes" &&
test "$tst_compi_strstr" = "yes" &&
test "$tst_allow_strstr" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRSTR 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRSTR 1" >>confdefs.h
curl_cv_func_strstr="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strstr="no"
fi
@@ -41111,8 +43925,8 @@ $as_echo "no" >&6; }
tst_compi_strtok_r="unknown"
tst_allow_strtok_r="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5
-$as_echo_n "checking if strtok_r can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5
+printf %s "checking if strtok_r can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41140,25 +43954,26 @@ return strtok_r ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strtok_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strtok_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strtok_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5
-$as_echo_n "checking if strtok_r is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5
+printf %s "checking if strtok_r is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41166,26 +43981,27 @@ $as_echo_n "checking if strtok_r is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strtok_r" >/dev/null 2>&1; then :
+ $EGREP "strtok_r" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strtok_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strtok_r="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strtok_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5
-$as_echo_n "checking if strtok_r is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5
+printf %s "checking if strtok_r is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41203,53 +44019,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strtok_r="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strtok_r="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strtok_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5
-$as_echo_n "checking if strtok_r usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5
+printf %s "checking if strtok_r usage allowed... " >&6; }
if test "x$curl_disallow_strtok_r" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strtok_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strtok_r="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5
-$as_echo_n "checking if strtok_r might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5
+printf %s "checking if strtok_r might be used... " >&6; }
if test "$tst_links_strtok_r" = "yes" &&
test "$tst_proto_strtok_r" = "yes" &&
test "$tst_compi_strtok_r" = "yes" &&
test "$tst_allow_strtok_r" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRTOK_R 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRTOK_R 1" >>confdefs.h
curl_cv_func_strtok_r="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strtok_r="no"
fi
@@ -41260,8 +44075,8 @@ $as_echo "no" >&6; }
tst_compi_strtoll="unknown"
tst_allow_strtoll="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5
-$as_echo_n "checking if strtoll can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5
+printf %s "checking if strtoll can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41289,25 +44104,26 @@ return strtoll ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_strtoll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_strtoll="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_strtoll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5
-$as_echo_n "checking if strtoll is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5
+printf %s "checking if strtoll is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41315,26 +44131,27 @@ $as_echo_n "checking if strtoll is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "strtoll" >/dev/null 2>&1; then :
+ $EGREP "strtoll" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_strtoll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_strtoll="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_strtoll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5
-$as_echo_n "checking if strtoll is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5
+printf %s "checking if strtoll is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41352,53 +44169,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_strtoll="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_strtoll="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_strtoll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5
-$as_echo_n "checking if strtoll usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5
+printf %s "checking if strtoll usage allowed... " >&6; }
if test "x$curl_disallow_strtoll" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_strtoll="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_strtoll="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5
-$as_echo_n "checking if strtoll might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5
+printf %s "checking if strtoll might be used... " >&6; }
if test "$tst_links_strtoll" = "yes" &&
test "$tst_proto_strtoll" = "yes" &&
test "$tst_compi_strtoll" = "yes" &&
test "$tst_allow_strtoll" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRTOLL 1
-_ACEOF
+printf "%s\n" "#define HAVE_STRTOLL 1" >>confdefs.h
curl_cv_func_strtoll="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_strtoll="no"
fi
@@ -41412,19 +44228,20 @@ curl_includes_sys_uio="\
# include <sys/uio.h>
#endif
/* includes end */"
- for ac_header in sys/types.h sys/uio.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_uio
+ ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$curl_includes_sys_uio
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$curl_includes_sys_uio
+"
+if test "x$ac_cv_header_sys_uio_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
-done
+fi
@@ -41434,8 +44251,8 @@ done
tst_compi_writev="unknown"
tst_allow_writev="unknown"
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev can be linked" >&5
-$as_echo_n "checking if writev can be linked... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev can be linked" >&5
+printf %s "checking if writev can be linked... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41463,25 +44280,26 @@ return writev ();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_links_writev="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_links_writev="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#
if test "$tst_links_writev" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is prototyped" >&5
-$as_echo_n "checking if writev is prototyped... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev is prototyped" >&5
+printf %s "checking if writev is prototyped... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41489,26 +44307,27 @@ $as_echo_n "checking if writev is prototyped... " >&6; }
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "writev" >/dev/null 2>&1; then :
+ $EGREP "writev" >/dev/null 2>&1
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_proto_writev="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_proto_writev="no"
fi
-rm -f conftest*
+rm -rf conftest*
fi
#
if test "$tst_proto_writev" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is compilable" >&5
-$as_echo_n "checking if writev is compilable... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev is compilable" >&5
+printf %s "checking if writev is compilable... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41526,53 +44345,52 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_compi_writev="yes"
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_compi_writev="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
#
if test "$tst_compi_writev" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev usage allowed" >&5
-$as_echo_n "checking if writev usage allowed... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev usage allowed" >&5
+printf %s "checking if writev usage allowed... " >&6; }
if test "x$curl_disallow_writev" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tst_allow_writev="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
tst_allow_writev="no"
fi
fi
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev might be used" >&5
-$as_echo_n "checking if writev might be used... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev might be used" >&5
+printf %s "checking if writev might be used... " >&6; }
if test "$tst_links_writev" = "yes" &&
test "$tst_proto_writev" = "yes" &&
test "$tst_compi_writev" = "yes" &&
test "$tst_allow_writev" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WRITEV 1
-_ACEOF
+printf "%s\n" "#define HAVE_WRITEV 1" >>confdefs.h
curl_cv_func_writev="yes"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
curl_cv_func_writev="no"
fi
@@ -41581,67 +44399,129 @@ case $host in
*msdosdjgpp)
ac_cv_func_pipe=no
skipcheck_pipe=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5
-$as_echo "$as_me: skip check for pipe on msdosdjgpp" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5
+printf "%s\n" "$as_me: skip check for pipe on msdosdjgpp" >&6;}
;;
esac
-ac_fn_c_check_decl "$LINENO" "getpwuid_r" "ac_cv_have_decl_getpwuid_r" "#include <pwd.h>
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_save_CFLAGS=$CFLAGS
+ ac_cv_c_undeclared_builtin_options='cannot detect'
+ for ac_arg in '' -fno-builtin; do
+ CFLAGS="$ac_save_CFLAGS $ac_arg"
+ # This test program should *not* compile successfully.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int main (void)
+{
+(void) strchr;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ # This test program should compile successfully.
+ # No library function is consistently available on
+ # freestanding implementations, so test against a dummy
+ # declaration. Include always-available headers on the
+ # off chance that they somehow elicit warnings.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
+
+int main (void)
+{
+(void) ac_decl (0, (char *) 0);
+ (void) ac_decl;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ if test x"$ac_arg" = x
+then :
+ ac_cv_c_undeclared_builtin_options='none needed'
+else $as_nop
+ ac_cv_c_undeclared_builtin_options=$ac_arg
+fi
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ done
+ CFLAGS=$ac_save_CFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+ case $ac_cv_c_undeclared_builtin_options in #(
+ 'cannot detect') :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+ 'none needed') :
+ ac_c_undeclared_builtin_options='' ;; #(
+ *) :
+ ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
+
+ac_fn_check_decl "$LINENO" "getpwuid_r" "ac_cv_have_decl_getpwuid_r" "#include <pwd.h>
#include <sys/types.h>
-"
-if test "x$ac_cv_have_decl_getpwuid_r" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_getpwuid_r" = xyes
+then :
ac_have_decl=1
-else
+else $as_nop
ac_have_decl=0
fi
+printf "%s\n" "#define HAVE_DECL_GETPWUID_R $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETPWUID_R $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-
-else
+else $as_nop
-$as_echo "#define HAVE_DECL_GETPWUID_R_MISSING 1" >>confdefs.h
+printf "%s\n" "#define HAVE_DECL_GETPWUID_R_MISSING 1" >>confdefs.h
fi
-for ac_func in fnmatch \
- geteuid \
- getpass_r \
- getppid \
- getpwuid \
- getpwuid_r \
- getrlimit \
- gettimeofday \
- if_nametoindex \
- mach_absolute_time \
- pipe \
- setlocale \
- setmode \
- setrlimit \
- usleep \
- utime \
- utimes
+ for ac_func in fnmatch geteuid getpass_r getppid getpwuid getpwuid_r getrlimit gettimeofday if_nametoindex mach_absolute_time pipe setlocale setmode setrlimit usleep utime utimes
do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-else
+else $as_nop
func="$ac_func"
eval skipcheck=\$skipcheck_$func
if test "x$skipcheck" != "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper for $func" >&5
-$as_echo_n "checking deeper for $func... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking deeper for $func" >&5
+printf %s "checking deeper for $func... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -41657,10 +44537,11 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
eval "ac_cv_func_$func=yes"
cat >>confdefs.h <<_ACEOF
@@ -41668,26 +44549,26 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5
-$as_echo "but still no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: but still no" >&5
+printf "%s\n" "but still no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
fi
-done
+done
#
tst_method="unknown"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to set a socket into non-blocking mode" >&5
-$as_echo_n "checking how to set a socket into non-blocking mode... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to set a socket into non-blocking mode" >&5
+printf %s "checking how to set a socket into non-blocking mode... " >&6; }
if test "x$curl_cv_func_fcntl_o_nonblock" = "xyes"; then
tst_method="fcntl O_NONBLOCK"
elif test "x$curl_cv_func_ioctl_fionbio" = "xyes"; then
@@ -41699,22 +44580,23 @@ $as_echo_n "checking how to set a socket into non-blocking mode... " >&6; }
elif test "x$curl_cv_func_setsockopt_so_nonblock" = "xyes"; then
tst_method="setsockopt SO_NONBLOCK"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_method" >&5
-$as_echo "$tst_method" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_method" >&5
+printf "%s\n" "$tst_method" >&6; }
if test "$tst_method" = "unknown"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine non-blocking socket method." >&5
-$as_echo "$as_me: WARNING: cannot determine non-blocking socket method." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine non-blocking socket method." >&5
+printf "%s\n" "$as_me: WARNING: cannot determine non-blocking socket method." >&2;}
fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PERL in
[\\/]* | ?:[\\/]*)
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
@@ -41725,11 +44607,15 @@ as_dummy="$PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin "
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -41741,11 +44627,11 @@ esac
fi
PERL=$ac_cv_path_PERL
if test -n "$PERL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -41755,11 +44641,12 @@ for ac_prog in gnroff nroff
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NROFF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_NROFF+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $NROFF in
[\\/]* | ?:[\\/]*)
ac_cv_path_NROFF="$NROFF" # Let the user override the test with a path.
@@ -41770,11 +44657,15 @@ as_dummy="$PATH:/usr/bin/:/usr/local/bin "
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_NROFF="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -41786,11 +44677,11 @@ esac
fi
NROFF=$ac_cv_path_NROFF
if test -n "$NROFF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5
-$as_echo "$NROFF" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5
+printf "%s\n" "$NROFF" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -41801,8 +44692,8 @@ done
if test -n "$NROFF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to use *nroff to get plain text from man pages" >&5
-$as_echo_n "checking how to use *nroff to get plain text from man pages... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to use *nroff to get plain text from man pages" >&5
+printf %s "checking how to use *nroff to get plain text from man pages... " >&6; }
MANOPT="-man"
mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
if test -z "$mancheck"; then
@@ -41810,32 +44701,32 @@ $as_echo_n "checking how to use *nroff to get plain text from man pages... " >&6
mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null`
if test -z "$mancheck"; then
MANOPT=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: found no *nroff option to get plaintext from man pages" >&5
-$as_echo "$as_me: WARNING: found no *nroff option to get plaintext from man pages" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: found no *nroff option to get plaintext from man pages" >&5
+printf "%s\n" "$as_me: WARNING: found no *nroff option to get plaintext from man pages" >&2;}
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5
-$as_echo "$MANOPT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5
+printf "%s\n" "$MANOPT" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5
-$as_echo "$MANOPT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5
+printf "%s\n" "$MANOPT" >&6; }
fi
fi
if test -z "$MANOPT"
then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling built-in manual" >&5
-$as_echo "$as_me: WARNING: disabling built-in manual" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: disabling built-in manual" >&5
+printf "%s\n" "$as_me: WARNING: disabling built-in manual" >&2;}
USE_MANUAL="no";
fi
if test "$USE_MANUAL" = "1"; then
-$as_echo "#define USE_MANUAL 1" >>confdefs.h
+printf "%s\n" "#define USE_MANUAL 1" >>confdefs.h
curl_manual_msg="enabled"
fi
@@ -41869,11 +44760,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -41884,11 +44776,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -41900,11 +44796,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -41913,11 +44809,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -41928,11 +44825,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -41944,11 +44845,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -41956,8 +44857,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -41969,8 +44870,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcares options with pkg-config" >&5
-$as_echo_n "checking for libcares options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcares options with pkg-config" >&5
+printf %s "checking for libcares options with pkg-config... " >&6; }
itexists=`
if test -n "$ARES_PCDIR"; then
PKG_CONFIG_LIBDIR="$ARES_PCDIR"
@@ -41980,11 +44881,11 @@ $as_echo_n "checking for libcares options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -42010,12 +44911,12 @@ $as_echo "found" >&6; }
fi
$PKGCONFIG --cflags-only-I libcares`
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares LIBS: \"$ares_LIBS\"" >&5
-$as_echo "$as_me: pkg-config: ares LIBS: \"$ares_LIBS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares LDFLAGS: \"$ares_LDFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: ares LDFLAGS: \"$ares_LDFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares CPPFLAGS: \"$ares_CPPFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: ares CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares LIBS: \"$ares_LIBS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares LIBS: \"$ares_LIBS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares LDFLAGS: \"$ares_LDFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares LDFLAGS: \"$ares_LDFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares CPPFLAGS: \"$ares_CPPFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
else
ares_CPPFLAGS="-I$want_ares_path/include"
ares_LDFLAGS="-L$want_ares_path/lib"
@@ -42037,11 +44938,12 @@ $as_echo "$as_me: pkg-config: ares CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
@@ -42052,11 +44954,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -42068,11 +44974,11 @@ esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+printf "%s\n" "$PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -42081,11 +44987,12 @@ if test -z "$ac_cv_path_PKGCONFIG"; then
ac_pt_PKGCONFIG=$PKGCONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_PKGCONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
@@ -42096,11 +45003,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -42112,11 +45023,11 @@ esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
-$as_echo "$ac_pt_PKGCONFIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKGCONFIG" = x; then
@@ -42124,8 +45035,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKGCONFIG=$ac_pt_PKGCONFIG
@@ -42137,8 +45048,8 @@ fi
fi
if test "x$PKGCONFIG" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcares options with pkg-config" >&5
-$as_echo_n "checking for libcares options with pkg-config... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcares options with pkg-config" >&5
+printf %s "checking for libcares options with pkg-config... " >&6; }
itexists=`
if test -n ""; then
PKG_CONFIG_LIBDIR=""
@@ -42148,11 +45059,11 @@ $as_echo_n "checking for libcares options with pkg-config... " >&6; }
if test -z "$itexists"; then
PKGCONFIG="no"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+printf "%s\n" "found" >&6; }
fi
fi
@@ -42160,12 +45071,12 @@ $as_echo "found" >&6; }
ares_LIBS=`$PKGCONFIG --libs-only-l libcares`
ares_LDFLAGS=`$PKGCONFIG --libs-only-L libcares`
ares_CPPFLAGS=`$PKGCONFIG --cflags-only-I libcares`
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares_LIBS: \"$ares_LIBS\"" >&5
-$as_echo "$as_me: pkg-config: ares_LIBS: \"$ares_LIBS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares_LDFLAGS: \"$ares_LDFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: ares_LDFLAGS: \"$ares_LDFLAGS\"" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: ares_CPPFLAGS: \"$ares_CPPFLAGS\"" >&5
-$as_echo "$as_me: pkg-config: ares_CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares_LIBS: \"$ares_LIBS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares_LIBS: \"$ares_LIBS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares_LDFLAGS: \"$ares_LDFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares_LDFLAGS: \"$ares_LDFLAGS\"" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: ares_CPPFLAGS: \"$ares_CPPFLAGS\"" >&5
+printf "%s\n" "$as_me: pkg-config: ares_CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
else
ares_CPPFLAGS=""
ares_LDFLAGS=""
@@ -42179,8 +45090,8 @@ $as_echo "$as_me: pkg-config: ares_CPPFLAGS: \"$ares_CPPFLAGS\"" >&6;}
LIBS="$ares_LIBS $clean_LIBS"
#
if test "$embedded_ares" != "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking that c-ares is good and recent enough" >&5
-$as_echo_n "checking that c-ares is good and recent enough... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that c-ares is good and recent enough" >&5
+printf %s "checking that c-ares is good and recent enough... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -42206,15 +45117,16 @@ int main (void)
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "c-ares library defective or too old" "$LINENO" 5
CPPFLAGS="$clean_CPPFLAGS"
LDFLAGS="$clean_LDFLAGS"
@@ -42223,12 +45135,12 @@ $as_echo "no" >&6; }
want_ares="no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
if test "$want_ares" = "yes"; then
-$as_echo "#define USE_ARES 1" >>confdefs.h
+printf "%s\n" "#define USE_ARES 1" >>confdefs.h
USE_ARES=1
@@ -42262,11 +45174,12 @@ fi
if test "x$want_ares" != xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the threaded resolver" >&5
-$as_echo_n "checking whether to enable the threaded resolver... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable the threaded resolver" >&5
+printf %s "checking whether to enable the threaded resolver... " >&6; }
OPT_THRES="default"
# Check whether --enable-threaded_resolver was given.
-if test "${enable_threaded_resolver+set}" = set; then :
+if test ${enable_threaded_resolver+y}
+then :
enableval=$enable_threaded_resolver; OPT_THRES=$enableval
fi
@@ -42278,29 +45191,30 @@ fi
want_thres="yes"
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_thres" >&5
-$as_echo "$want_thres" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_thres" >&5
+printf "%s\n" "$want_thres" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use POSIX threads for threaded resolver" >&5
-$as_echo_n "checking whether to use POSIX threads for threaded resolver... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use POSIX threads for threaded resolver" >&5
+printf %s "checking whether to use POSIX threads for threaded resolver... " >&6; }
# Check whether --enable-pthreads was given.
-if test "${enable_pthreads+set}" = set; then :
+if test ${enable_pthreads+y}
+then :
enableval=$enable_pthreads; case "$enableval" in
- no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ no) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
want_pthreads=no
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
want_pthreads=yes
;;
esac
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto" >&5
-$as_echo "auto" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: auto" >&5
+printf "%s\n" "auto" >&6; }
want_pthreads=auto
@@ -42313,8 +45227,8 @@ if test "$want_pthreads" != "no"; then
fi
if test "$dontwant_rt" != "no"; then
if test "$want_pthreads" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-pthreads Ignored since librt is disabled." >&5
-$as_echo "$as_me: WARNING: --enable-pthreads Ignored since librt is disabled." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-pthreads Ignored since librt is disabled." >&5
+printf "%s\n" "$as_me: WARNING: --enable-pthreads Ignored since librt is disabled." >&2;}
fi
want_pthreads=no
fi
@@ -42325,17 +45239,19 @@ if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then
fi
if test "$want_pthreads" != "no"; then
- ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = xyes; then :
+ ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = xyes
+then :
-$as_echo "#define HAVE_PTHREAD_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
LIBS=
ac_fn_c_check_func "$LINENO" "pthread_create" "ac_cv_func_pthread_create"
-if test "x$ac_cv_func_pthread_create" = xyes; then :
+if test "x$ac_cv_func_pthread_create" = xyes
+then :
USE_THREADS_POSIX=1
fi
@@ -42354,11 +45270,12 @@ fi
CFLAGS="$CFLAGS -pthread"
# assign PTHREAD for pkg-config use
PTHREAD=" -pthread"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
-$as_echo_n "checking for pthread_create in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_create+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
+printf %s "checking for pthread_create in -lpthread... " >&6; }
+if test ${ac_cv_lib_pthread_pthread_create+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -42376,20 +45293,22 @@ return pthread_create ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_pthread_pthread_create=yes
-else
+else $as_nop
ac_cv_lib_pthread_pthread_create=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
+printf "%s\n" "$ac_cv_lib_pthread_pthread_create" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_create" = xyes
+then :
USE_THREADS_POSIX=1
-else
+else $as_nop
CFLAGS="$save_CFLAGS"
fi
@@ -42398,14 +45317,13 @@ fi
if test "x$USE_THREADS_POSIX" = "x1"
then
-$as_echo "#define USE_THREADS_POSIX 1" >>confdefs.h
+printf "%s\n" "#define USE_THREADS_POSIX 1" >>confdefs.h
curl_res_msg="POSIX threaded"
fi
fi
-
fi
if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
@@ -42415,7 +45333,7 @@ if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
-$as_echo "#define USE_THREADS_WIN32 1" >>confdefs.h
+printf "%s\n" "#define USE_THREADS_WIN32 1" >>confdefs.h
curl_res_msg="Win32 threaded"
else
@@ -42424,12 +45342,12 @@ $as_echo "#define USE_THREADS_WIN32 1" >>confdefs.h
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking convert -I options to -isystem" >&5
-$as_echo_n "checking convert -I options to -isystem... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking convert -I options to -isystem" >&5
+printf %s "checking convert -I options to -isystem... " >&6; }
if test "$compiler_id" = "GNU_C" ||
test "$compiler_id" = "CLANG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
tmp_has_include="no"
tmp_chg_FLAGS="$CFLAGS"
for word1 in $tmp_chg_FLAGS; do
@@ -42461,125 +45379,129 @@ $as_echo "yes" >&6; }
squeeze CPPFLAGS
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable verbose strings" >&5
-$as_echo_n "checking whether to enable verbose strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable verbose strings" >&5
+printf %s "checking whether to enable verbose strings... " >&6; }
# Check whether --enable-verbose was given.
-if test "${enable_verbose+set}" = set; then :
+if test ${enable_verbose+y}
+then :
enableval=$enable_verbose; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_VERBOSE_STRINGS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_VERBOSE_STRINGS 1" >>confdefs.h
curl_verbose_msg="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable SSPI support (Windows native builds only)" >&5
-$as_echo_n "checking whether to enable SSPI support (Windows native builds only)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable SSPI support (Windows native builds only)" >&5
+printf %s "checking whether to enable SSPI support (Windows native builds only)... " >&6; }
# Check whether --enable-sspi was given.
-if test "${enable_sspi+set}" = set; then :
+if test ${enable_sspi+y}
+then :
enableval=$enable_sspi; case "$enableval" in
yes)
if test "$curl_cv_native_windows" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define USE_WINDOWS_SSPI 1" >>confdefs.h
+printf "%s\n" "#define USE_WINDOWS_SSPI 1" >>confdefs.h
USE_WINDOWS_SSPI=1
curl_sspi_msg="enabled"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&5
-$as_echo "$as_me: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&5
+printf "%s\n" "$as_me: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&2;}
fi
;;
*)
if test "x$SCHANNEL_ENABLED" = "x1"; then
# --with-schannel implies --enable-sspi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
;;
esac
-else
+else $as_nop
if test "x$SCHANNEL_ENABLED" = "x1"; then
# --with-schannel implies --enable-sspi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable cryptographic authentication methods" >&5
-$as_echo_n "checking whether to enable cryptographic authentication methods... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable cryptographic authentication methods" >&5
+printf %s "checking whether to enable cryptographic authentication methods... " >&6; }
# Check whether --enable-crypto-auth was given.
-if test "${enable_crypto_auth+set}" = set; then :
+if test ${enable_crypto_auth+y}
+then :
enableval=$enable_crypto_auth; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_CRYPTO_AUTH 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_CRYPTO_AUTH 1" >>confdefs.h
CURL_DISABLE_CRYPTO_AUTH=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support NTLM" >&5
-$as_echo_n "checking whether to support NTLM... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support NTLM" >&5
+printf %s "checking whether to support NTLM... " >&6; }
# Check whether --enable-ntlm was given.
-if test "${enable_ntlm+set}" = set; then :
+if test ${enable_ntlm+y}
+then :
enableval=$enable_ntlm; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_NTLM 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_NTLM 1" >>confdefs.h
CURL_DISABLE_NTLM=1
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
@@ -42587,7 +45509,8 @@ fi
OPT_NTLM_WB="default"
# Check whether --enable-ntlm-wb was given.
-if test "${enable_ntlm_wb+set}" = set; then :
+if test ${enable_ntlm_wb+y}
+then :
enableval=$enable_ntlm_wb; OPT_NTLM_WB=$enableval
fi
@@ -42609,46 +45532,45 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable NTLM delegation to winbind's helper" >&5
-$as_echo_n "checking whether to enable NTLM delegation to winbind's helper... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable NTLM delegation to winbind's helper" >&5
+printf %s "checking whether to enable NTLM delegation to winbind's helper... " >&6; }
if test "$curl_cv_native_windows" = "yes" ||
test "x$SSL_ENABLED" = "x"; then
want_ntlm_wb_file=""
want_ntlm_wb="no"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ntlm_wb" >&5
-$as_echo "$want_ntlm_wb" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_ntlm_wb" >&5
+printf "%s\n" "$want_ntlm_wb" >&6; }
if test "$want_ntlm_wb" = "yes"; then
-$as_echo "#define NTLM_WB_ENABLED 1" >>confdefs.h
+printf "%s\n" "#define NTLM_WB_ENABLED 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define NTLM_WB_FILE "$want_ntlm_wb_file"
-_ACEOF
+printf "%s\n" "#define NTLM_WB_FILE \"$want_ntlm_wb_file\"" >>confdefs.h
NTLM_WB_ENABLED=1
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable TLS-SRP authentication" >&5
-$as_echo_n "checking whether to enable TLS-SRP authentication... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable TLS-SRP authentication" >&5
+printf %s "checking whether to enable TLS-SRP authentication... " >&6; }
# Check whether --enable-tls-srp was given.
-if test "${enable_tls_srp+set}" = set; then :
+if test ${enable_tls_srp+y}
+then :
enableval=$enable_tls_srp; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
want_tls_srp=no
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
want_tls_srp=yes
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
want_tls_srp=yes
fi
@@ -42656,30 +45578,31 @@ fi
if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_OPENSSL_SRP" = "x1") ; then
-$as_echo "#define USE_TLS_SRP 1" >>confdefs.h
+printf "%s\n" "#define USE_TLS_SRP 1" >>confdefs.h
USE_TLS_SRP=1
curl_tls_srp_msg="enabled"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Unix domain sockets" >&5
-$as_echo_n "checking whether to enable Unix domain sockets... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Unix domain sockets" >&5
+printf %s "checking whether to enable Unix domain sockets... " >&6; }
# Check whether --enable-unix-sockets was given.
-if test "${enable_unix_sockets+set}" = set; then :
+if test ${enable_unix_sockets+y}
+then :
enableval=$enable_unix_sockets; case "$enableval" in
- no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ no) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
want_unix_sockets=no
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
want_unix_sockets=yes
;;
esac
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto" >&5
-$as_echo "auto" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: auto" >&5
+printf "%s\n" "auto" >&6; }
want_unix_sockets=auto
@@ -42690,16 +45613,17 @@ if test "x$want_unix_sockets" != "xno"; then
#include <sys/un.h>
"
-if test "x$ac_cv_member_struct_sockaddr_un_sun_path" = xyes; then :
+if test "x$ac_cv_member_struct_sockaddr_un_sun_path" = xyes
+then :
-$as_echo "#define USE_UNIX_SOCKETS 1" >>confdefs.h
+printf "%s\n" "#define USE_UNIX_SOCKETS 1" >>confdefs.h
USE_UNIX_SOCKETS=1
curl_unix_sockets_msg="enabled"
-else
+else $as_nop
if test "x$want_unix_sockets" = "xyes"; then
as_fn_error $? "--enable-unix-sockets is not available on this platform!" "$LINENO" 5
@@ -42709,325 +45633,337 @@ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support cookies" >&5
-$as_echo_n "checking whether to support cookies... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support cookies" >&5
+printf %s "checking whether to support cookies... " >&6; }
# Check whether --enable-cookies was given.
-if test "${enable_cookies+set}" = set; then :
+if test ${enable_cookies+y}
+then :
enableval=$enable_cookies; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_COOKIES 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_COOKIES 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support socketpair" >&5
-$as_echo_n "checking whether to support socketpair... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support socketpair" >&5
+printf %s "checking whether to support socketpair... " >&6; }
# Check whether --enable-socketpair was given.
-if test "${enable_socketpair+set}" = set; then :
+if test ${enable_socketpair+y}
+then :
enableval=$enable_socketpair; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_SOCKETPAIR 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_SOCKETPAIR 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support HTTP authentication" >&5
-$as_echo_n "checking whether to support HTTP authentication... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support HTTP authentication" >&5
+printf %s "checking whether to support HTTP authentication... " >&6; }
# Check whether --enable-http-auth was given.
-if test "${enable_http_auth+set}" = set; then :
+if test ${enable_http_auth+y}
+then :
enableval=$enable_http_auth; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_HTTP_AUTH 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_HTTP_AUTH 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support DoH" >&5
-$as_echo_n "checking whether to support DoH... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support DoH" >&5
+printf %s "checking whether to support DoH... " >&6; }
# Check whether --enable-doh was given.
-if test "${enable_doh+set}" = set; then :
+if test ${enable_doh+y}
+then :
enableval=$enable_doh; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_DOH 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_DOH 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support the MIME API" >&5
-$as_echo_n "checking whether to support the MIME API... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support the MIME API" >&5
+printf %s "checking whether to support the MIME API... " >&6; }
# Check whether --enable-mime was given.
-if test "${enable_mime+set}" = set; then :
+if test ${enable_mime+y}
+then :
enableval=$enable_mime; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_MIME 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_MIME 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support date parsing" >&5
-$as_echo_n "checking whether to support date parsing... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support date parsing" >&5
+printf %s "checking whether to support date parsing... " >&6; }
# Check whether --enable-dateparse was given.
-if test "${enable_dateparse+set}" = set; then :
+if test ${enable_dateparse+y}
+then :
enableval=$enable_dateparse; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_PARSEDATE 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_PARSEDATE 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support netrc parsing" >&5
-$as_echo_n "checking whether to support netrc parsing... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support netrc parsing" >&5
+printf %s "checking whether to support netrc parsing... " >&6; }
# Check whether --enable-netrc was given.
-if test "${enable_netrc+set}" = set; then :
+if test ${enable_netrc+y}
+then :
enableval=$enable_netrc; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_NETRC 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_NETRC 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support progress-meter" >&5
-$as_echo_n "checking whether to support progress-meter... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support progress-meter" >&5
+printf %s "checking whether to support progress-meter... " >&6; }
# Check whether --enable-progress-meter was given.
-if test "${enable_progress_meter+set}" = set; then :
+if test ${enable_progress_meter+y}
+then :
enableval=$enable_progress_meter; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_PROGRESS_METER 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_PROGRESS_METER 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support DNS shuffling" >&5
-$as_echo_n "checking whether to support DNS shuffling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support DNS shuffling" >&5
+printf %s "checking whether to support DNS shuffling... " >&6; }
# Check whether --enable-dnsshuffle was given.
-if test "${enable_dnsshuffle+set}" = set; then :
+if test ${enable_dnsshuffle+y}
+then :
enableval=$enable_dnsshuffle; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_SHUFFLE_DNS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_SHUFFLE_DNS 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support curl_easy_option*" >&5
-$as_echo_n "checking whether to support curl_easy_option*... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support curl_easy_option*" >&5
+printf %s "checking whether to support curl_easy_option*... " >&6; }
# Check whether --enable-get-easy-options was given.
-if test "${enable_get_easy_options+set}" = set; then :
+if test ${enable_get_easy_options+y}
+then :
enableval=$enable_get_easy_options; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_GETOPTIONS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_GETOPTIONS 1" >>confdefs.h
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support alt-svc" >&5
-$as_echo_n "checking whether to support alt-svc... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support alt-svc" >&5
+printf %s "checking whether to support alt-svc... " >&6; }
# Check whether --enable-alt-svc was given.
-if test "${enable_alt_svc+set}" = set; then :
+if test ${enable_alt_svc+y}
+then :
enableval=$enable_alt_svc; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
-$as_echo "#define CURL_DISABLE_ALTSVC 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_ALTSVC 1" >>confdefs.h
curl_altsvc_msg="no";
enable_altsvc="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test -n "$SSL_ENABLED"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support HSTS" >&5
-$as_echo_n "checking whether to support HSTS... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support HSTS" >&5
+printf %s "checking whether to support HSTS... " >&6; }
# Check whether --enable-hsts was given.
-if test "${enable_hsts+set}" = set; then :
+if test ${enable_hsts+y}
+then :
enableval=$enable_hsts; case "$enableval" in
no)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- enable_hsts="no"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ hsts="no"
;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
;;
esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hsts" >&5
+printf "%s\n" "$hsts" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: disables HSTS due to lack of SSL" >&5
-$as_echo "$as_me: disables HSTS due to lack of SSL" >&6;}
- enable_hsts="no"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: disables HSTS due to lack of SSL" >&5
+printf "%s\n" "$as_me: disables HSTS due to lack of SSL" >&6;}
+ hsts="no"
fi
-if test "x$enable_hsts" != "xyes"; then
+if test "x$hsts" != "xyes"; then
curl_hsts_msg="no (--enable-hsts)";
-$as_echo "#define CURL_DISABLE_HSTS 1" >>confdefs.h
+printf "%s\n" "#define CURL_DISABLE_HSTS 1" >>confdefs.h
fi
if test "x$want_ech" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ECH support is available" >&5
-$as_echo_n "checking whether ECH support is available... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ECH support is available" >&5
+printf %s "checking whether ECH support is available... " >&6; }
ECH_ENABLED=0
ECH_SUPPORT=''
if test "x$OPENSSL_ENABLED" = "x1"; then
- for ac_func in SSL_get_ech_status
+
+ for ac_func in SSL_get_ech_status
do :
ac_fn_c_check_func "$LINENO" "SSL_get_ech_status" "ac_cv_func_SSL_get_ech_status"
-if test "x$ac_cv_func_SSL_get_ech_status" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SSL_GET_ECH_STATUS 1
-_ACEOF
+if test "x$ac_cv_func_SSL_get_ech_status" = xyes
+then :
+ printf "%s\n" "#define HAVE_SSL_GET_ECH_STATUS 1" >>confdefs.h
ECH_SUPPORT="ECH support available (OpenSSL with SSL_get_ech_status)"
ECH_ENABLED=1
fi
-done
+done
fi
if test "x$ECH_ENABLED" = "x1"; then
-$as_echo "#define USE_ECH 1" >>confdefs.h
+printf "%s\n" "#define USE_ECH 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECH_SUPPORT" >&5
-$as_echo "$ECH_SUPPORT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ECH_SUPPORT" >&5
+printf "%s\n" "$ECH_SUPPORT" >&6; }
experimental="$experimental ECH"
else
as_fn_error $? "--enable-ech ignored: No ECH support found" "$LINENO" 5
@@ -43035,8 +45971,8 @@ $as_echo "$ECH_SUPPORT" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5
-$as_echo_n "checking whether hiding of library internal symbols will actually happen... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5
+printf %s "checking whether hiding of library internal symbols will actually happen... " >&6; }
CFLAG_CURL_SYMBOL_HIDING=""
doing_symbol_hiding="no"
if test x"$curl_cv_native_windows" != "xyes" &&
@@ -43045,15 +45981,13 @@ $as_echo_n "checking whether hiding of library internal symbols will actually ha
doing_symbol_hiding="yes"
CFLAG_CURL_SYMBOL_HIDING="$symbol_hiding_CFLAGS"
-cat >>confdefs.h <<_ACEOF
-#define CURL_EXTERN_SYMBOL $symbol_hiding_EXTERN
-_ACEOF
+printf "%s\n" "#define CURL_EXTERN_SYMBOL $symbol_hiding_EXTERN" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test x$doing_symbol_hiding = xyes; then
DOING_CURL_SYMBOL_HIDING_TRUE=
@@ -43144,7 +46078,7 @@ fi
if test "x$enable_altsvc" = "xyes"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES alt-svc"
fi
-if test "x$enable_hsts" = "xyes"; then
+if test "x$hsts" = "xyes"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES HSTS"
fi
@@ -43335,10 +46269,10 @@ squeeze SUPPORT_PROTOCOLS
esac
done
if test $xc_bad_var_libs = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5
-$as_echo "$as_me: using LIBS: $LIBS" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: LIBS note: LIBS should only be used to specify libraries (-lname)." >&5
-$as_echo "$as_me: LIBS note: LIBS should only be used to specify libraries (-lname)." >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5
+printf "%s\n" "$as_me: using LIBS: $LIBS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: LIBS note: LIBS should only be used to specify libraries (-lname)." >&5
+printf "%s\n" "$as_me: LIBS note: LIBS should only be used to specify libraries (-lname)." >&6;}
fi
@@ -43360,26 +46294,26 @@ $as_echo "$as_me: LIBS note: LIBS should only be used to specify libraries (-lna
esac
done
if test $xc_bad_var_ldflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5
-$as_echo "$as_me: using LDFLAGS: $LDFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5
+printf "%s\n" "$as_me: using LDFLAGS: $LDFLAGS" >&6;}
xc_bad_var_msg="LDFLAGS note: LDFLAGS should only be used to specify linker flags, not"
for xc_word in $LDFLAGS; do
case "$xc_word" in
-D*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-U*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-I*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -43401,22 +46335,22 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
esac
done
if test $xc_bad_var_cppflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5
-$as_echo "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5
+printf "%s\n" "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;}
xc_bad_var_msg="CPPFLAGS note: CPPFLAGS should only be used to specify C preprocessor flags, not"
for xc_word in $CPPFLAGS; do
case "$xc_word" in
-rpath*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-L* | --library-path=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -43447,34 +46381,34 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
esac
done
if test $xc_bad_var_cflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5
-$as_echo "$as_me: using CFLAGS: $CFLAGS" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5
+printf "%s\n" "$as_me: using CFLAGS: $CFLAGS" >&6;}
xc_bad_var_msg="CFLAGS note: CFLAGS should only be used to specify C compiler flags, not"
for xc_word in $CFLAGS; do
case "$xc_word" in
-D*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-U*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;}
;;
-I*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;}
;;
-rpath*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-L* | --library-path=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;}
;;
-l* | --library=*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
-$as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5
+printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
;;
esac
done
@@ -43484,8 +46418,8 @@ $as_echo "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;}
test $xc_bad_var_cflags = yes ||
test $xc_bad_var_ldflags = yes ||
test $xc_bad_var_cppflags = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5
-$as_echo "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5
+printf "%s\n" "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;}
fi
@@ -43526,8 +46460,8 @@ _ACEOF
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -43557,15 +46491,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
/^ac_cv_env_/b end
t clear
:clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
@@ -43579,8 +46513,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
@@ -43597,7 +46531,7 @@ U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -43612,14 +46546,14 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+printf %s "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
+printf "%s\n" "done" >&6; }
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -43713,8 +46647,8 @@ fi
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
@@ -43737,14 +46671,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -43754,53 +46690,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
+
+
+
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -43809,8 +46738,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -43822,30 +46755,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -43858,13 +46771,14 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -43891,18 +46805,20 @@ as_fn_unset ()
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
+
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -43914,12 +46830,13 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
@@ -43950,7 +46867,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -43972,6 +46889,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -43985,6 +46906,12 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -44026,7 +46953,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -44035,7 +46962,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -44098,7 +47025,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by curl $as_me -, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -44160,14 +47087,16 @@ $config_commands
Report bugs to <a suitable curl mailing list: https://curl.se/mail/>."
_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
curl config.status -
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -44207,15 +47136,15 @@ do
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
+ printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
+ printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -44223,7 +47152,7 @@ do
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
@@ -44232,7 +47161,7 @@ do
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
+ printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
@@ -44260,7 +47189,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
@@ -44274,7 +47203,7 @@ exec 5>>config.log
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
- $as_echo "$ac_log"
+ printf "%s\n" "$ac_log"
} >&5
_ACEOF
@@ -44614,9 +47543,9 @@ done
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+ test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+ test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+ test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -44952,7 +47881,7 @@ do
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
@@ -44960,17 +47889,17 @@ do
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
+ ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
@@ -44987,7 +47916,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -45011,9 +47940,9 @@ $as_echo X"$ac_file" |
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -45075,8 +48004,8 @@ ac_sed_dataroot='
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
@@ -45120,9 +48049,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -45138,20 +48067,20 @@ which seems to be undefined. Please make sure it is defined" >&2;}
#
if test x"$ac_file" != x-; then
{
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
@@ -45171,7 +48100,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$_am_arg" : 'X\(//\)[^/]' \| \
X"$_am_arg" : 'X\(//\)$' \| \
X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
+printf "%s\n" X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -45191,8 +48120,8 @@ $as_echo X"$_am_arg" |
s/.*/./; q'`/stamp-h$_am_stamp_count
;;
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
+ :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
@@ -45218,7 +48147,7 @@ esac
for am_mf
do
# Strip MF so we end up with the name of the file.
- am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile which includes
# dependency-tracking related rules and includes.
# Grep'ing the whole file directly is not great: AIX grep has a line
@@ -45230,7 +48159,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$am_mf" : 'X\(//\)[^/]' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$am_mf" |
+printf "%s\n" X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -45252,7 +48181,7 @@ $as_echo X"$am_mf" |
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$am_mf" |
+printf "%s\n" X/"$am_mf" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -45277,8 +48206,8 @@ $as_echo X/"$am_mf" |
(exit $ac_status); } || am_rc=$?
done
if test $am_rc -ne 0; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE=\"gmake\" (or whatever is
@@ -45824,6 +48753,7 @@ _LT_EOF
esac
+
ltmain=$ac_aux_dir/ltmain.sh
@@ -45912,7 +48842,7 @@ if test "$no_recursion" != yes; then
;;
*)
case $ac_arg in
- *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
esac
@@ -45922,7 +48852,7 @@ if test "$no_recursion" != yes; then
# in subdir configurations.
ac_arg="--prefix=$prefix"
case $ac_arg in
- *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
@@ -45943,17 +48873,17 @@ if test "$no_recursion" != yes; then
test -d "$srcdir/$ac_dir" || continue
ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
- $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
- $as_echo "$ac_msg" >&6
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
+ printf "%s\n" "$ac_msg" >&6
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -45983,17 +48913,15 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir"
- # Check for guested configure; otherwise get Cygnus style configure.
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
ac_sub_configure=$ac_srcdir/configure.gnu
elif test -f "$ac_srcdir/configure"; then
ac_sub_configure=$ac_srcdir/configure
- elif test -f "$ac_srcdir/configure.in"; then
- # This should be Cygnus configure.
- ac_sub_configure=$ac_aux_dir/configure
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
-$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
+printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
ac_sub_configure=
fi
@@ -46006,8 +48934,8 @@ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
-$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
# The eval makes quoting arguments work.
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
@@ -46018,8 +48946,8 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
done
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
@@ -46078,8 +49006,8 @@ xc_cnt_words=`echo "$xc_inc_lines" | wc -w | tr -d "$xc_space$xc_tab"`
if test $xc_cnt_words -gt 0; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: amending $xc_subdir/Makefile" >&5
-$as_echo "$as_me: amending $xc_subdir/Makefile" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: amending $xc_subdir/Makefile" >&5
+printf "%s\n" "$as_me: amending $xc_subdir/Makefile" >&6;}
# Build Makefile specific patch hunk.
@@ -46160,7 +49088,7 @@ done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build curl/libcurl:
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Configured to build curl/libcurl:
Host setup: ${host}
Install prefix: ${prefix}
@@ -46206,7 +49134,7 @@ done
Protocols: ${SUPPORT_PROTOCOLS}
Features: ${SUPPORT_FEATURES}
" >&5
-$as_echo "$as_me: Configured to build curl/libcurl:
+printf "%s\n" "$as_me: Configured to build curl/libcurl:
Host setup: ${host}
Install prefix: ${prefix}
@@ -46257,3 +49185,4 @@ if test -n "$experimental"; then
WARNING: $experimental enabled but marked EXPERIMENTAL. Use with caution!
_EOF
fi
+
diff --git a/configure.ac b/configure.ac
index dc8e416e4..0c2384703 100644
--- a/configure.ac
+++ b/configure.ac
@@ -172,7 +172,7 @@ curl_verbose_msg="enabled (--disable-verbose)"
curl_h3_msg="no (--with-ngtcp2, --with-quiche)"
enable_altsvc="yes"
-enable_hsts="yes"
+hsts="yes"
dnl
dnl Save some initial values the user might have provided
@@ -446,12 +446,38 @@ else
fi
AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
+# For original MinGW (ie not MinGW-w64) define the Windows minimum supported OS
+# version to Windows XP (0x501) if it hasn't already been defined by the user.
+# Without this override original MinGW defaults the version to Windows NT 4.0.
+# Note original MinGW sets _WIN32_WINNT if not defined to whatever WINVER is.
+case $host in
+ *-*-mingw32*)
+ AC_MSG_CHECKING([if MinGW minimum supported OS should be set to XP])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#include <_mingw.h>
+ ]],[[
+#if defined(__MINGW64_VERSION_MAJOR) || \
+ defined(WINVER) || \
+ defined(_WIN32_WINNT)
+#error
+#endif
+ ]])
+ ],[
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x501"
+ AC_MSG_RESULT([yes])
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+ ;;
+esac
+
dnl **********************************************************************
dnl Compilation based checks should not be done before this point.
dnl **********************************************************************
dnl **********************************************************************
-dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
+dnl Make sure that our checks for headers windows.h winsock2.h
dnl and ws2tcpip.h take precedence over any other further checks which
dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
dnl this specific header files. And do them before its results are used.
@@ -461,7 +487,6 @@ CURL_CHECK_HEADER_WINDOWS
CURL_CHECK_NATIVE_WINDOWS
case X-"$curl_cv_native_windows" in
X-yes)
- CURL_CHECK_HEADER_WINSOCK
CURL_CHECK_HEADER_WINSOCK2
CURL_CHECK_HEADER_WS2TCPIP
CURL_CHECK_HEADER_WINCRYPT
@@ -469,7 +494,6 @@ case X-"$curl_cv_native_windows" in
CURL_CHECK_HEADER_WINBER
;;
*)
- curl_cv_header_winsock_h="no"
curl_cv_header_winsock2_h="no"
curl_cv_header_ws2tcpip_h="no"
curl_cv_header_wincrypt_h="no"
@@ -508,7 +532,7 @@ AS_HELP_STRING([--disable-http],[Disable HTTP support]),
curl_altsvc_msg="no";
curl_hsts_msg="no (--enable-hsts)";
enable_altsvc="no"
- enable_hsts="no"
+ hsts="no"
;;
*) AC_MSG_RESULT(yes)
;;
@@ -996,16 +1020,6 @@ if test "$HAVE_GETHOSTBYNAME" != "1"
then
dnl This is for winsock systems
if test "$curl_cv_header_windows_h" = "yes"; then
- if test "$curl_cv_header_winsock_h" = "yes"; then
- case $host in
- *-*-mingw32ce*)
- winsock_LIB="-lwinsock"
- ;;
- *)
- winsock_LIB="-lwsock32"
- ;;
- esac
- fi
if test "$curl_cv_header_winsock2_h" = "yes"; then
winsock_LIB="-lws2_32"
fi
@@ -1022,10 +1036,6 @@ then
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
-#else
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
#endif
#endif
]],[[
@@ -1667,18 +1677,17 @@ AC_ARG_WITH(gssapi,
fi
])
-: ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
-
save_CPPFLAGS="$CPPFLAGS"
AC_MSG_CHECKING([if GSS-API support is requested])
if test x"$want_gss" = xyes; then
AC_MSG_RESULT(yes)
+ CURL_CHECK_PKGCONFIG(mit-krb5-gssapi)
if test -z "$GSSAPI_INCS"; then
if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
- elif test -f "$KRB5CONFIG"; then
- GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
+ elif test "$PKGCONFIG" != "no" ; then
+ GSSAPI_INCS=`$PKGCONFIG --cflags mit-krb5-gssapi`
elif test "$GSSAPI_ROOT" != "yes"; then
GSSAPI_INCS="-I$GSSAPI_ROOT/include"
fi
@@ -1763,15 +1772,14 @@ if test x"$want_gss" = xyes; then
LIBS="-lgssapi_krb5 -lresolv $LIBS"
;;
*)
+ CURL_CHECK_PKGCONFIG(mit-krb5-gssapi)
if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
dnl krb5-config doesn't have --libs-only-L or similar, put everything
dnl into LIBS
gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi`
LIBS="$gss_libs $LIBS"
- elif test -f "$KRB5CONFIG"; then
- dnl krb5-config doesn't have --libs-only-L or similar, put everything
- dnl into LIBS
- gss_libs=`$KRB5CONFIG --libs gssapi`
+ elif test "$PKGCONFIG" != "no" ; then
+ gss_libs=`$PKGCONFIG --libs mit-krb5-gssapi`
LIBS="$gss_libs $LIBS"
else
case $host in
@@ -2309,11 +2317,12 @@ esac
if test "$want_winidn" = "yes"; then
dnl winidn library support has been requested
+ clean_CFLAGS="$CFLAGS"
clean_CPPFLAGS="$CPPFLAGS"
clean_LDFLAGS="$LDFLAGS"
clean_LIBS="$LIBS"
WINIDN_LIBS="-lnormaliz"
- WINIDN_CPPFLAGS="-DWINVER=0x0600"
+ WINIDN_CPPFLAGS=""
#
if test "$want_winidn_path" != "default"; then
dnl path has been specified
@@ -2323,6 +2332,24 @@ if test "$want_winidn" = "yes"; then
WINIDN_DIR="$want_winidn_path/lib$libsuff"
fi
#
+ dnl WinIDN requires a minimum supported OS version of at least Vista (0x0600)
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #include <windows.h>
+ ]],[[
+ #if (WINVER < 0x600) && (_WIN32_WINNT < 0x600)
+ #error
+ #endif
+ ]])
+ ],[
+ ],[
+ CFLAGS=`echo $CFLAGS | $SED -e 's/-DWINVER=[[^ ]]*//g'`
+ CFLAGS=`echo $CFLAGS | $SED -e 's/-D_WIN32_WINNT=[[^ ]]*//g'`
+ CPPFLAGS=`echo $CPPFLAGS | $SED -e 's/-DWINVER=[[^ ]]*//g'`
+ CPPFLAGS=`echo $CPPFLAGS | $SED -e 's/-D_WIN32_WINNT=[[^ ]]*//g'`
+ WINIDN_CPPFLAGS="$WINIDN_CPPFLAGS -DWINVER=0x0600"
+ ])
+ #
CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS"
LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS"
LIBS="$WINIDN_LIBS $LIBS"
@@ -2349,6 +2376,7 @@ if test "$want_winidn" = "yes"; then
curl_idn_msg="enabled (Windows-native)"
else
AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
+ CFLAGS="$clean_CFLAGS"
CPPFLAGS="$clean_CPPFLAGS"
LDFLAGS="$clean_LDFLAGS"
LIBS="$clean_LIBS"
@@ -2479,20 +2507,14 @@ if test "$want_idn" = "yes"; then
fi
fi
-
-dnl Let's hope this split URL remains working:
-dnl https://www15.software.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
-dnl genprogc/thread_quick_ref.htm
-
-
dnl **********************************************************************
dnl Check for nghttp2
dnl **********************************************************************
OPT_H2="yes"
-if test "x$disable_http" = "xyes"; then
- # without HTTP, nghttp2 is no use
+if test "x$disable_http" = "xyes" -o X"$want_hyper" != Xno; then
+ # without HTTP or with Hyper, nghttp2 is no use
OPT_H2="no"
fi
@@ -2503,49 +2525,48 @@ AS_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]),
case "$OPT_H2" in
no)
dnl --without-nghttp2 option used
- want_h2="no"
+ want_nghttp2="no"
;;
yes)
dnl --with-nghttp2 option used without path
- want_h2="default"
- want_h2_path=""
+ want_nghttp2="default"
+ want_nghttp2_path=""
;;
*)
dnl --with-nghttp2 option used with path
- want_h2="yes"
- want_h2_path="$withval/lib/pkgconfig"
+ want_nghttp2="yes"
+ want_nghttp2_path="$withval/lib/pkgconfig"
;;
esac
-if test X"$want_h2" != Xno; then
+if test X"$want_nghttp2" != Xno; then
dnl backup the pre-nghttp2 variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
- CURL_CHECK_PKGCONFIG(libnghttp2, $want_h2_path)
+ CURL_CHECK_PKGCONFIG(libnghttp2, $want_nghttp2_path)
if test "$PKGCONFIG" != "no" ; then
- LIB_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
+ LIB_H2=`CURL_EXPORT_PCDIR([$want_nghttp2_path])
$PKGCONFIG --libs-only-l libnghttp2`
AC_MSG_NOTICE([-l is $LIB_H2])
- CPP_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) dnl
+ CPP_H2=`CURL_EXPORT_PCDIR([$want_nghttp2_path]) dnl
$PKGCONFIG --cflags-only-I libnghttp2`
AC_MSG_NOTICE([-I is $CPP_H2])
- LD_H2=`CURL_EXPORT_PCDIR([$want_h2_path])
+ LD_H2=`CURL_EXPORT_PCDIR([$want_nghttp2_path])
$PKGCONFIG --libs-only-L libnghttp2`
AC_MSG_NOTICE([-L is $LD_H2])
LDFLAGS="$LDFLAGS $LD_H2"
CPPFLAGS="$CPPFLAGS $CPP_H2"
LIBS="$LIB_H2 $LIBS"
- LIB_H2_NAME=${LIB_H2#"-l"}
# use nghttp2_session_set_local_window_size to require nghttp2
# >= 1.12.0
- AC_CHECK_LIB($LIB_H2_NAME, nghttp2_session_set_local_window_size,
+ AC_CHECK_LIB(nghttp2, nghttp2_session_set_local_window_size,
[
AC_CHECK_HEADERS(nghttp2/nghttp2.h,
curl_h2_msg="enabled (nghttp2)"
@@ -2562,7 +2583,7 @@ if test X"$want_h2" != Xno; then
else
dnl no nghttp2 pkg-config found, deal with it
- if test X"$want_h2" != Xdefault; then
+ if test X"$want_nghttp2" != Xdefault; then
dnl To avoid link errors, we do not allow --with-nghttp2 without
dnl a pkgconfig file
AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
@@ -2632,7 +2653,7 @@ if test X"$want_tcp2" != Xno; then
if test "x$cross_compiling" != "xyes"; then
DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/^-L//'`
fi
- AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new,
+ AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new_versioned,
[
AC_CHECK_HEADERS(ngtcp2/ngtcp2.h,
NGTCP2_ENABLED=1
@@ -2831,7 +2852,7 @@ if test X"$want_nghttp3" != Xno; then
if test "x$cross_compiling" != "xyes"; then
DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/^-L//'`
fi
- AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new,
+ AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new_versioned,
[
AC_CHECK_HEADERS(nghttp3/nghttp3.h,
curl_h3_msg="enabled (ngtcp2 + nghttp3)"
@@ -2894,6 +2915,11 @@ case "$OPT_QUICHE" in
esac
if test X"$want_quiche" != Xno; then
+
+ if test "$NGHTTP3_ENABLED" = 1; then
+ AC_MSG_ERROR([--with-quiche and --with-ngtcp2 are mutually exclusive])
+ fi
+
dnl backup the pre-quiche variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
@@ -3205,8 +3231,6 @@ TYPE_IN_ADDR_T
TYPE_SOCKADDR_STORAGE
-TYPE_SIG_ATOMIC_T
-
CURL_CHECK_FUNC_SELECT
CURL_CHECK_FUNC_RECV
@@ -3853,19 +3877,19 @@ if test -n "$SSL_ENABLED"; then
[ case "$enableval" in
no)
AC_MSG_RESULT(no)
- enable_hsts="no"
+ hsts="no"
;;
*) AC_MSG_RESULT(yes)
;;
esac ],
- AC_MSG_RESULT(no)
+ AC_MSG_RESULT($hsts)
)
else
AC_MSG_NOTICE([disables HSTS due to lack of SSL])
- enable_hsts="no"
+ hsts="no"
fi
-if test "x$enable_hsts" != "xyes"; then
+if test "x$hsts" != "xyes"; then
curl_hsts_msg="no (--enable-hsts)";
AC_DEFINE(CURL_DISABLE_HSTS, 1, [disable alt-svc])
fi
@@ -3990,7 +4014,7 @@ fi
if test "x$enable_altsvc" = "xyes"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES alt-svc"
fi
-if test "x$enable_hsts" = "xyes"; then
+if test "x$hsts" = "xyes"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES HSTS"
fi
@@ -4043,7 +4067,7 @@ if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi
-dnl if not explictily turned off, HTTPS-proxy comes with some TLS backends
+dnl if not explicitly turned off, HTTPS-proxy comes with some TLS backends
if test "x$https_proxy" != "xno"; then
if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
-o "x$NSS_ENABLED" = "x1"; then
diff --git a/depcomp b/depcomp
index 6b391623c..715e34311 100755
--- a/depcomp
+++ b/depcomp
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/docs/BINDINGS.md b/docs/BINDINGS.md
index 919e2d2c2..995f830ec 100644
--- a/docs/BINDINGS.md
+++ b/docs/BINDINGS.md
@@ -12,15 +12,15 @@ libcurl bindings
[Ada95](https://web.archive.org/web/20070403105909/www.almroth.com/adacurl/index.html) Written by Andreas Almroth
-[Basic](http://scriptbasic.com/) ScriptBasic bindings written by Peter Verhas
+[Basic](https://scriptbasic.com/) ScriptBasic bindings written by Peter Verhas
-C++: [curlpp](http://curlpp.org/) Written by Jean-Philippe Barrette-LaPierre,
+C++: [curlpp](https://curlpp.org/) Written by Jean-Philippe Barrette-LaPierre,
[curlcpp](https://github.com/JosephP91/curlcpp) by Giuseppe Persico and [C++
-Requests](https://github.com/whoshuu/cpr) by Huu Nguyen
+Requests](https://github.com/libcpr/cpr) by Huu Nguyen
[Ch](https://chcurl.sourceforge.io/) Written by Stephen Nestinger and Jonathan Rogado
-Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de Carvalho
+Cocoa: [BBHTTP](https://github.com/biasedbit/BBHTTP) written by Bruno de Carvalho
[curlhandle](https://github.com/karelia/curlhandle) Written by Dan Wood
Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo
@@ -31,7 +31,7 @@ Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo
[Dylan](https://dylanlibs.sourceforge.io/) Written by Chris Double
-[Eiffel](https://room.eiffel.com/library/curl) Written by Eiffel Software
+[Eiffel](https://iron.eiffel.com/repository/20.11/package/ABEF6975-37AC-45FD-9C67-52D10BA0669B) Written by Eiffel Software
[Euphoria](https://web.archive.org/web/20050204080544/rays-web.com/eulibcurl.htm) Written by Ray Smith
@@ -45,11 +45,11 @@ Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo
Go: [go-curl](https://github.com/andelf/go-curl) by ShuYu Wang
-[Guile](http://www.lonelycactus.com/guile-curl.html) Written by Michael L. Gran
+[Guile](https://www.lonelycactus.com/guile-curl.html) Written by Michael L. Gran
-[Harbour](https://github.com/vszakats/harbour-core/tree/master/contrib/hbcurl) Written by Viktor Szakáts
+[Harbour](https://github.com/vszakats/hb/tree/main/contrib/hbcurl) Written by Viktor Szakats
-[Haskell](https://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl) Written by Galois, Inc
+[Haskell](https://hackage.haskell.org/package/curl) Written by Galois, Inc
[Java](https://github.com/pjlegato/curl-java)
@@ -59,9 +59,9 @@ Go: [go-curl](https://github.com/andelf/go-curl) by ShuYu Wang
[Lisp](https://common-lisp.net/project/cl-curl/) Written by Liam Healy
-Lua: [luacurl](https://web.archive.org/web/20201205052437/http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](https://github.com/Lua-cURL) by Jürgen Hötzel
+Lua: [luacurl](https://web.archive.org/web/20201205052437/luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](https://github.com/Lua-cURL) by Jürgen Hötzel
-[Mono](https://forge.novell.com/modules/xfmod/project/?libcurl-mono) Written by Jeffrey Phillips
+[Mono](https://web.archive.org/web/20070606064500/https://forge.novell.com/modules/xfmod/project/?libcurl-mono) Written by Jeffrey Phillips
[.NET](https://sourceforge.net/projects/libcurl-net/) libcurl-net by Jeffrey Phillips
@@ -98,7 +98,7 @@ RPG, support for ILE/RPG on OS/400 is included in source distribution
Ruby: [curb](https://github.com/taf2/curb) written by Ross Bamford
-[Rust](https://github.com/carllerche/curl-rust) curl-rust - by Carl Lerche
+[Rust](https://github.com/alexcrichton/curl-rust) curl-rust - by Carl Lerche
[Scheme](http://www.metapaper.net/lisovsky/web/curl/) Bigloo binding by Kirill Lisovsky
@@ -106,7 +106,7 @@ Ruby: [curb](https://github.com/taf2/curb) written by Ross Bamford
[S-Lang](https://www.jedsoft.org/slang/modules/curl.html) by John E Davis
-[Smalltalk](http://www.squeaksource.com/CurlPlugin/) Written by Danil Osipchuk
+[Smalltalk](https://www.squeaksource.com/CurlPlugin/) Written by Danil Osipchuk
[SP-Forth](https://sourceforge.net/p/spf/spf/ci/master/tree/devel/~ac/lib/lin/curl/) Written by Andrey Cherezov
diff --git a/docs/BUG-BOUNTY.md b/docs/BUG-BOUNTY.md
index 5cbb343b0..25159fb3d 100644
--- a/docs/BUG-BOUNTY.md
+++ b/docs/BUG-BOUNTY.md
@@ -35,7 +35,7 @@ Check out the current award amounts at [https://hackerone.com/curl](https://hack
# Who is eligible for a reward?
Everyone and anyone who reports a security problem in a released curl version
-that hasn't already been reported can ask for a bounty.
+that has not already been reported can ask for a bounty.
Vulnerabilities in features that are off by default and documented as
experimental are not eligible for a reward.
diff --git a/docs/BUGS.md b/docs/BUGS.md
index 2c0a3017f..1b09efbfd 100644
--- a/docs/BUGS.md
+++ b/docs/BUGS.md
@@ -12,7 +12,7 @@
## Where to report
- If you can't fix a bug yourself and submit a fix for it, try to report an as
+ If you cannot fix a bug yourself and submit a fix for it, try to report an as
detailed report as possible to a curl mailing list to allow one of us to have
a go at a solution. You can optionally also submit your problem in [curl's
bug tracking system](https://github.com/curl/curl/issues).
@@ -49,7 +49,7 @@
- your operating system's name and version number
- - what version of curl you're using (`curl -V` is fine)
+ - what version of curl you are using (`curl -V` is fine)
- versions of the used libraries that libcurl is built to use
@@ -67,7 +67,7 @@
If curl crashed, causing a core dump (in unix), there is hardly any use to
send that huge file to anyone of us. Unless we have an exact same system
- setup as you, we can't do much with it. Instead, we ask you to get a stack
+ setup as you, we cannot do much with it. Instead, we ask you to get a stack
trace and send that (much smaller) output to us instead!
The address and how to subscribe to the mailing lists are detailed in the
@@ -75,12 +75,12 @@
## libcurl problems
- When you've written your own application with libcurl to perform transfers,
+ When you have written your own application with libcurl to perform transfers,
it is even more important to be specific and detailed when reporting bugs.
Tell us the libcurl version and your operating system. Tell us the name and
version of all relevant sub-components like for example the SSL library
- you're using and what name resolving your libcurl uses. If you use SFTP or
+ you are using and what name resolving your libcurl uses. If you use SFTP or
SCP, the libssh2 version is relevant etc.
Showing us a real source code example repeating your problem is the best way
@@ -104,7 +104,7 @@
But please do not assume that you can just lump over something to us and it
will then magically be fixed after some given time. Most often we need
- feedback and help to understand what you've experienced and how to repeat a
+ feedback and help to understand what you have experienced and how to repeat a
problem. Then we may only be able to assist YOU to debug the problem and to
track down the proper fix.
@@ -114,7 +114,7 @@
## How to get a stack trace
First, you must make sure that you compile all sources with `-g` and that you
- don't 'strip' the final executable. Try to avoid optimizing the code as well,
+ do not 'strip' the final executable. Try to avoid optimizing the code as well,
remove `-O`, `-O2` etc from the compiler options.
Run the program until it cores.
@@ -128,7 +128,7 @@
The list that is presented is the stack trace. If everything worked, it is
supposed to contain the chain of functions that were called when curl
- crashed. Include the stack trace with your detailed bug report. It'll help a
+ crashed. Include the stack trace with your detailed bug report. it will help a
lot.
## Bugs in libcurl bindings
@@ -148,12 +148,12 @@
The developers in the curl project do not have bandwidth or energy enough to
maintain several branches or to spend much time on hunting down problems in
- old versions when chances are we already fixed them or at least that they've
+ old versions when chances are we already fixed them or at least that they have
changed nature and appearance in later versions.
When you experience a problem and want to report it, you really SHOULD
- include the version number of the curl you're using when you experience the
- issue. If that version number shows us that you're using an out-of-date curl,
+ include the version number of the curl you are using when you experience the
+ issue. If that version number shows us that you are using an out-of-date curl,
you should also try out a modern curl version to see if the problem persists
or how/if it has changed in appearance.
@@ -162,9 +162,9 @@
experimental build or similar, to get this confirmed or not.
At times people insist that they cannot upgrade to a modern curl version, but
- instead they "just want the bug fixed". That's fine, just don't count on us
- spending many cycles on trying to identify which single commit, if that's
- even possible, that at some point in the past fixed the problem you're now
+ instead they "just want the bug fixed". That is fine, just do not count on us
+ spending many cycles on trying to identify which single commit, if that is
+ even possible, that at some point in the past fixed the problem you are now
experiencing.
Security wise, it is almost always a bad idea to lag behind the current curl
@@ -178,7 +178,7 @@
When a new issue is posted in the issue tracker or on the mailing list, the
team of developers first need to see the report. Maybe they took the day off,
- maybe they're off in the woods hunting. Have patience. Allow at least a few
+ maybe they are off in the woods hunting. Have patience. Allow at least a few
days before expecting someone to have responded.
In the issue tracker you can expect that some labels will be set on the issue
@@ -186,7 +186,7 @@
## First response
- If your issue/bug report wasn't perfect at once (and few are), chances are
+ If your issue/bug report was not perfect at once (and few are), chances are
that someone will ask follow-up questions. Which version did you use? Which
options did you use? How often does the problem occur? How can we reproduce
this problem? Which protocols does it involve? Or perhaps much more specific
@@ -199,19 +199,19 @@
## Not reproducible
- For problems that we can't reproduce and can't understand even after having
+ For problems that we cannot reproduce and cannot understand even after having
gotten all the info we need and having studied the source code over again,
are really hard to solve so then we may require further work from you who
actually see or experience the problem.
## Unresponsive
- If the problem haven't been understood or reproduced, and there's nobody
+ If the problem have not been understood or reproduced, and there's nobody
responding to follow-up questions or questions asking for clarifications or
for discussing possible ways to move forward with the task, we take that as a
strong suggestion that the bug is not important.
- Unimportant issues will be closed as inactive sooner or later as they can't
+ Unimportant issues will be closed as inactive sooner or later as they cannot
be fixed. The inactivity period (waiting for responses) should not be shorter
than two weeks but may extend months.
@@ -219,7 +219,7 @@
Bugs that are filed and are understood can unfortunately end up in the
"nobody cares enough about it to work on it" category. Such bugs are
- perfectly valid problems that *should* get fixed but apparently aren't. We
+ perfectly valid problems that *should* get fixed but apparently are not. We
try to mark such bugs as `KNOWN_BUGS material` after a time of inactivity and
if no activity is noticed after yet some time those bugs are added to the
`KNOWN_BUGS` document and are closed in the issue tracker.
@@ -227,7 +227,7 @@
## `KNOWN_BUGS`
This is a list of known bugs. Bugs we know exist and that have been pointed
- out but that haven't yet been fixed. The reasons for why they haven't been
+ out but that have not yet been fixed. The reasons for why they have not been
fixed can involve anything really, but the primary reason is that nobody has
considered these problems to be important enough to spend the necessary time
and effort to have them fixed.
@@ -239,14 +239,14 @@
## `TODO`
- Issues that are filed or reported that aren't really bugs but more missing
+ Issues that are filed or reported that are not really bugs but more missing
features or ideas for future improvements and so on are marked as
'enhancement' or 'feature-request' and will be added to the `TODO` document
- and the issues are closed. We don't keep TODO items open in the issue
+ and the issues are closed. We do not keep TODO items open in the issue
tracker.
The `TODO` document is full of ideas and suggestions of what we can add or
- fix one day. You're always encouraged and free to grab one of those items and
+ fix one day. you are always encouraged and free to grab one of those items and
take up a discussion with the curl development team on how that could be
implemented or provided in the project so that you can work on ticking it odd
that document.
@@ -258,7 +258,7 @@
The [issue and pull request trackers](https://github.com/curl/curl) only
holds "active" entries open (using a non-precise definition of what active
- actually is, but they're at least not completely dead). Those that are
+ actually is, but they are at least not completely dead). Those that are
abandoned or in other ways dormant will be closed and sometimes added to
`TODO` and `KNOWN_BUGS` instead.
diff --git a/docs/CHECKSRC.md b/docs/CHECKSRC.md
index 2f634c49e..97300112b 100644
--- a/docs/CHECKSRC.md
+++ b/docs/CHECKSRC.md
@@ -58,7 +58,7 @@ warnings are:
- `COPYRIGHT`: the file is missing a copyright statement!
-- `CPPCOMMENTS`: `//` comment detected, that's not C89 compliant
+- `CPPCOMMENTS`: `//` comment detected, that is not C89 compliant
- `DOBRACE`: only use one space after do before open brace
@@ -120,7 +120,7 @@ warnings are:
- `TYPEDEFSTRUCT`: we frown upon (most) typedefed structs
- `UNUSEDIGNORE`: a checksrc inlined warning ignore was asked for but not used,
- that's an ignore that should be removed or changed to get used.
+ that is an ignore that should be removed or changed to get used.
### Extended warnings
@@ -132,7 +132,7 @@ warning per line like so: `enable <EXTENDEDWARNING>`
Currently there is one extended warning which can be enabled:
-- `COPYRIGHTYEAR`: the current changeset hasn't updated the copyright year in
+- `COPYRIGHTYEAR`: the current changeset has not updated the copyright year in
the source file
## Ignore certain warnings
@@ -159,11 +159,11 @@ This will ignore the warning for overly long lines until it is re-enabled with:
/* !checksrc! enable LONGLINE */
-If the enabling isn't performed before the end of the file, it will be enabled
+If the enabling is not performed before the end of the file, it will be enabled
automatically for the next file.
You can also opt to ignore just N violations so that if you have a single long
-line you just can't shorten and is agreed to be fine anyway:
+line you just cannot shorten and is agreed to be fine anyway:
/* !checksrc! disable LONGLINE 1 */
@@ -174,7 +174,7 @@ instances are ignored and nothing extra.
### Directory wide ignore patterns
-This is a method we've transitioned away from. Use inline ignores as far as
+This is a method we have transitioned away from. Use inline ignores as far as
possible.
Make a `checksrc.skip` file in the directory of the source code with the
diff --git a/docs/CODE_REVIEW.md b/docs/CODE_REVIEW.md
index e6a28a600..20d1be849 100644
--- a/docs/CODE_REVIEW.md
+++ b/docs/CODE_REVIEW.md
@@ -36,17 +36,17 @@ Changing the API and the ABI may be fine in a change but it needs to be done
deliberately and carefully. If not, a reviewer must help the author to realize
the mistake.
-curl and libcurl are similarly very strict on not modifying existing
-behavior. API and ABI stability is not enough, the behavior should also remain
-intact as far as possible.
+curl and libcurl are similarly strict on not modifying existing behavior. API
+and ABI stability is not enough, the behavior should also remain intact as far
+as possible.
## Code style
Most code style nits are detected by checksrc but not all. Only leave remarks
-on style deviation once checksrc doesn't find anymore.
+on style deviation once checksrc does not find anymore.
Minor nits from fresh submitters can also be handled by the maintainer when
-merging, in case it seems like the submitter isn't clear on what to do. We
+merging, in case it seems like the submitter is not clear on what to do. We
want to make the process fun and exciting for new contributors.
## Encourage consistency
@@ -105,15 +105,15 @@ updated documentation. Submitting that in a separate follow-up pull request is
not OK. A code review must also verify that the submitted documentation update
matches the code submission.
-English isn't everyone's first language, be mindful of this and help the
+English is not everyone's first language, be mindful of this and help the
submitter improve the text if it needs a rewrite to read better.
-## Code shouldn't be hard to understand
+## Code should not be hard to understand
Source code should be written to maximize readability and be easy to
understand.
-## Functions shouldn't be large
+## Functions should not be large
A single function should never be large as that makes it hard to follow and
understand all the exit points and state changes. Some existing functions in
diff --git a/docs/CODE_STYLE.md b/docs/CODE_STYLE.md
index e27778e32..e716f6859 100644
--- a/docs/CODE_STYLE.md
+++ b/docs/CODE_STYLE.md
@@ -2,7 +2,7 @@
Source code that has a common style is easier to read than code that uses
different styles in different places. It helps making the code feel like one
-single code base. Easy-to-read is a very important property of code and helps
+single code base. Easy-to-read is an important property of code and helps
making it easier to review when new things are added and it helps debugging
code when developers are trying to figure out why things go wrong. A unified
style is more important than individual contributors having their own personal
@@ -23,9 +23,9 @@ will cause warnings will not be accepted as-is.
## Naming
Try using a non-confusing naming scheme for your new functions and variable
-names. It doesn't necessarily have to mean that you should use the same as in
+names. It does not necessarily have to mean that you should use the same as in
other places of the code, just that the names should be logical,
-understandable and be named according to what they're used for. File-local
+understandable and be named according to what they are used for. File-local
functions should be made static. We like lower case names.
See the [INTERNALS](https://curl.se/dev/internals.html#symbols) document on
@@ -46,8 +46,8 @@ if(something_is_true) {
## Comments
-Since we write C89 code, **//** comments are not allowed. They weren't
-introduced in the C standard until C99. We use only **/* comments */**.
+Since we write C89 code, **//** comments are not allowed. They were not
+introduced in the C standard until C99. We use only __/* comments */__.
```c
/* this is a comment */
@@ -56,10 +56,10 @@ introduced in the C standard until C99. We use only **/* comments */**.
## Long lines
Source code in curl may never be wider than 79 columns and there are two
-reasons for maintaining this even in the modern era of very large and high
+reasons for maintaining this even in the modern era of large and high
resolution screens:
-1. Narrower columns are easier to read than very wide ones. There's a reason
+1. Narrower columns are easier to read than wide ones. There's a reason
newspapers have used columns for decades or centuries.
2. Narrower columns allow developers to easier show multiple pieces of code
@@ -154,8 +154,8 @@ if(!ptr)
## New block on a new line
-We never write multiple statements on the same source line, even for very
-short if() conditions.
+We never write multiple statements on the same source line, even for short
+if() conditions.
```c
if(a)
@@ -174,7 +174,7 @@ else if(b) return FALSE;
## Space around operators
Please use spaces on both sides of operators in C expressions. Postfix **(),
-[], ->, ., ++, --** and Unary **+, - !, ~, &** operators excluded they should
+[], ->, ., ++, --** and Unary **+, -, !, ~, &** operators excluded they should
have no space.
Examples:
@@ -230,7 +230,7 @@ if(Curl_pipeline_wanted(handle->multi, CURLPIPE_HTTP1) &&
(handle->set.httpversion != CURL_HTTP_VERSION_1_0) &&
(handle->set.httpreq == HTTPREQ_GET ||
handle->set.httpreq == HTTPREQ_HEAD))
- /* didn't ask for HTTP/1.0 and a GET or HEAD */
+ /* did not ask for HTTP/1.0 and a GET or HEAD */
return TRUE;
```
diff --git a/docs/CONTRIBUTE.md b/docs/CONTRIBUTE.md
index 4d278b219..b8254088f 100644
--- a/docs/CONTRIBUTE.md
+++ b/docs/CONTRIBUTE.md
@@ -19,7 +19,7 @@ Before posting to one of the curl mailing lists, please read up on the
We also hang out on IRC in #curl on libera.chat
-If you're at all interested in the code side of things, consider clicking
+If you are at all interested in the code side of things, consider clicking
'watch' on the [curl repo on GitHub](https://github.com/curl/curl) to be
notified of pull requests and new issues posted there.
@@ -30,9 +30,9 @@ the same license curl and libcurl is already using unless stated and agreed
otherwise.
If you add a larger piece of code, you can opt to make that file or set of
-files to use a different license as long as they don't enforce any changes to
+files to use a different license as long as they do not enforce any changes to
the rest of the package and they make sense. Such "separate parts" can not be
-GPL licensed (as we don't want copyleft to affect users of libcurl) but they
+GPL licensed (as we do not want copyleft to affect users of libcurl) but they
must use "GPL compatible" licenses (as we want to allow users to use libcurl
properly in GPL licensed environments).
@@ -65,12 +65,12 @@ When writing C code, follow the
[CODE_STYLE](https://curl.se/dev/code-style.html) already established in
the project. Consistent style makes code easier to read and mistakes less
likely to happen. Run `make checksrc` before you submit anything, to make sure
-you follow the basic style. That script doesn't verify everything, but if it
+you follow the basic style. That script does not verify everything, but if it
complains you know you have work to do.
### Non-clobbering All Over
-When you write new functionality or fix bugs, it is important that you don't
+When you write new functionality or fix bugs, it is important that you do not
fiddle all over the source files and functions. Remember that it is likely
that other people have done changes in the same source files as you have and
possibly even in the same functions. If you bring completely new
@@ -80,7 +80,7 @@ fix one bug at a time and send them as separate patches.
### Write Separate Changes
It is annoying when you get a huge patch from someone that is said to fix 511
-odd problems, but discussions and opinions don't agree with 510 of them - or
+odd problems, but discussions and opinions do not agree with 510 of them - or
509 of them were already fixed in a different way. Then the person merging
this change needs to extract the single interesting patch from somewhere
within the huge pile of source, and that creates a lot of extra work.
@@ -96,9 +96,9 @@ and regression in the future.
### Patch Against Recent Sources
Please try to get the latest available sources to make your patches against.
-It makes the lives of the developers so much easier. The very best is if you
-get the most up-to-date sources from the git repository, but the latest
-release archive is quite OK as well!
+It makes the lives of the developers so much easier. The best is if you get
+the most up-to-date sources from the git repository, but the latest release
+archive is quite OK as well!
### Documentation
@@ -114,14 +114,14 @@ generated from the nroff/ASCII versions.
### Test Cases
Since the introduction of the test suite, we can quickly verify that the main
-features are working as they're supposed to. To maintain this situation and
+features are working as they are supposed to. To maintain this situation and
improve it, all new features and functions that are added need to be tested
in the test suite. Every feature that is added should get at least one valid
test case that verifies that it works as documented. If every submitter also
-posts a few test cases, it won't end up as a heavy burden on a single person!
+posts a few test cases, it will not end up as a heavy burden on a single person!
-If you don't have test cases or perhaps you have done something that is very
-hard to write tests for, do explain exactly how you have otherwise tested and
+If you do not have test cases or perhaps you have done something that is hard
+to write tests for, do explain exactly how you have otherwise tested and
verified your changes.
## Sharing Your Changes
@@ -139,9 +139,9 @@ risks stalling and eventually just getting deleted without action. As a
submitter of a change, you are the owner of that change until it has been merged.
Respond on the list or on github about the change and answer questions and/or
-fix nits/flaws. This is very important. We will take lack of replies as a
-sign that you're not very anxious to get your patch accepted and we tend to
-simply drop such changes.
+fix nits/flaws. This is important. We will take lack of replies as a sign that
+you are not anxious to get your patch accepted and we tend to simply drop such
+changes.
### About pull requests
@@ -165,10 +165,10 @@ ways. Every pull request is verified for each of the following:
- ... the test suite still runs 100% fine
- ... the release tarball (the "dist") still works
- ... it builds fine in-tree as well as out-of-tree
- - ... code coverage doesn't shrink drastically
+ - ... code coverage does not shrink drastically
If the pull-request fails one of these tests, it will show up as a red X and
-you are expected to fix the problem. If you don't understand when the issue is
+you are expected to fix the problem. If you do not understand when the issue is
or have other problems to fix the complaint, just ask and other project
members will likely be able to help out.
@@ -205,7 +205,7 @@ commits so that we can review the full updated version more easily.
Make the patch against as recent source versions as possible.
-If you've followed the tips in this document and your patch still hasn't been
+If you have followed the tips in this document and your patch still has not been
incorporated or responded to after some weeks, consider resubmitting it to the
list or better yet: change it to a pull request.
@@ -229,24 +229,24 @@ A short guide to how to write commit messages in the curl project.
The first line is a succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- - don't capitalize first letter
+ - do not capitalize first letter
- no dot (.) at the end
The `[area]` in the first line can be `http2`, `cookies`, `openssl` or
similar. There's no fixed list to select from but using the same "area" as
other related changes could make sense.
-Don't forget to use commit --author="" if you commit someone else's work, and
+Do not forget to use commit --author="" if you commit someone else's work, and
make sure that you have your own user and email setup correctly in git before
you commit
### Write Access to git Repository
-If you are a very frequent contributor, you may be given push access to the
-git repository and then you'll be able to push your changes straight into the
-git repo instead of sending changes as pull requests or by mail as patches.
+If you are a frequent contributor, you may be given push access to the git
+repository and then you will be able to push your changes straight into the git
+repo instead of sending changes as pull requests or by mail as patches.
-Just ask if this is what you'd want. You will be required to have posted
+Just ask if this is what you would want. You will be required to have posted
several high quality patches first, before you can be granted push access.
### How To Make a Patch with git
@@ -263,7 +263,7 @@ local repository:
As usual, group your commits so that you commit all changes at once that
constitute a logical change.
-Once you have done all your commits and you're happy with what you see, you
+Once you have done all your commits and you are happy with what you see, you
can make patches out of your changes that are suitable for mailing:
git format-patch remotes/origin/master
diff --git a/docs/CURL-DISABLE.md b/docs/CURL-DISABLE.md
index 5967d7b79..a2e75f198 100644
--- a/docs/CURL-DISABLE.md
+++ b/docs/CURL-DISABLE.md
@@ -12,10 +12,6 @@ Disable support for HTTP cookies.
Disable support for authentication methods using crypto.
-## CURL_DISABLE_NTLM
-
-Disable support for NTLM.
-
## CURL_DISABLE_DICT
Disable the DICT protocol
@@ -82,6 +78,10 @@ Disable MQTT support.
Disable the netrc parser.
+## CURL_DISABLE_NTLM
+
+Disable support for NTLM.
+
## CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
Disable the auto load config support in the OpenSSL backend.
@@ -90,9 +90,9 @@ Disable the auto load config support in the OpenSSL backend.
Disable date parsing
-## CURL_DISABLE_POP
+## CURL_DISABLE_POP3
-Disable the POP(S) protocols
+Disable the POP3 protocol
## CURL_DISABLE_PROGRESS_METER
diff --git a/docs/DEPRECATE.md b/docs/DEPRECATE.md
index 653e53fa8..d0d94d1ac 100644
--- a/docs/DEPRECATE.md
+++ b/docs/DEPRECATE.md
@@ -1,9 +1,10 @@
# 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 workaround.
+email the
+[curl-library mailing list](https://lists.haxx.se/listinfo/curl-library)
+as soon as possible and explain to us why this is a problem for you and
+how your use case cannot be satisfied properly using a workaround.
## Past removals
diff --git a/docs/DYNBUF.md b/docs/DYNBUF.md
index a30a058b9..6dd2430c0 100644
--- a/docs/DYNBUF.md
+++ b/docs/DYNBUF.md
@@ -15,7 +15,7 @@ without using the dedicated dynbuf API.
void Curl_dyn_init(struct dynbuf *s, size_t toobig);
```
-This inits a struct to use for dynbuf and it can't fail. The `toobig` value
+This inits a struct to use for dynbuf and it cannot fail. The `toobig` value
**must** be set to the maximum size we allow this buffer instance to grow to.
The functions below will return `CURLE_OUT_OF_MEMORY` when hitting this limit.
diff --git a/docs/FAQ b/docs/FAQ
index d678e9e3a..c70225e1d 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -17,7 +17,7 @@ FAQ
1.8 I have a problem who do I mail?
1.9 Where do I buy commercial support for curl?
1.10 How many are using curl?
- 1.11 Why don't you update ca-bundle.crt
+ 1.11 Why do you not update ca-bundle.crt
1.12 I have a problem who can I chat with?
1.13 curl's ECCN number?
1.14 How do I submit my patch?
@@ -31,7 +31,7 @@ FAQ
3. Usage Problems
3.1 curl: (1) SSL is disabled, https: not supported
3.2 How do I tell curl to resume a transfer?
- 3.3 Why doesn't my posting using -F work?
+ 3.3 Why does my posting using -F not work?
3.4 How do I tell curl to run custom FTP commands?
3.5 How can I disable the Accept: */* header?
3.6 Does curl support ASP, XML, XHTML or HTML version Y?
@@ -55,7 +55,7 @@ FAQ
4. Running Problems
4.2 Why do I get problems when I use & or % in the URL?
4.3 How can I use {, }, [ or ] to specify multiple URLs?
- 4.4 Why do I get downloaded data even though the web page doesn't exist?
+ 4.4 Why do I get downloaded data even though the web page does not exist?
4.5 Why do I get return code XXX from a HTTP server?
4.5.1 "400 Bad Request"
4.5.2 "401 Unauthorized"
@@ -66,18 +66,18 @@ FAQ
4.6 Can you tell me what error code 142 means?
4.7 How do I keep user names and passwords secret in curl command lines?
4.8 I found a bug!
- 4.9 curl can't authenticate to the server that requires NTLM?
- 4.10 My HTTP request using HEAD, PUT or DELETE doesn't work!
+ 4.9 curl cannot authenticate to the server that requires NTLM?
+ 4.10 My HTTP request using HEAD, PUT or DELETE does not work!
4.11 Why do my HTTP range requests return the full document?
4.12 Why do I get "certificate verify failed" ?
4.13 Why is curl -R on Windows one hour off?
4.14 Redirects work in browser but not with curl!
- 4.15 FTPS doesn't work
+ 4.15 FTPS does not work
4.16 My HTTP POST or PUT requests are slow!
4.17 Non-functional connect timeouts on Windows
4.18 file:// URLs containing drive letters (Windows, NetWare)
- 4.19 Why doesn't curl return an error when the network cable is unplugged?
- 4.20 curl doesn't return error for HTTP non-200 responses!
+ 4.19 Why does not curl return an error when the network cable is unplugged?
+ 4.20 curl does not return error for HTTP non-200 responses!
5. libcurl Issues
5.1 Is libcurl thread-safe?
@@ -114,6 +114,10 @@ FAQ
7.3 Can I perform multiple requests using the same handle?
7.4 Does PHP/CURL have dependencies?
+ 8. Development
+ 8.1 Why does curl use C89?
+ 8.2 Will curl be rewritten?
+
==============================================================================
1. Philosophy
@@ -131,9 +135,9 @@ FAQ
libcurl
A free and easy-to-use client-side URL transfer library, supporting DICT,
- FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT,
- POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET
- and TFTP.
+ FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,
+ MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS,
+ TELNET and TFTP.
libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading,
Kerberos, SPNEGO, HTTP form based upload, proxies, cookies, user+password
@@ -150,7 +154,7 @@ FAQ
curl
- A command line tool for getting or sending files using URL syntax.
+ A command line tool for getting or sending data using URL syntax.
Since curl uses libcurl, curl supports the same wide range of common
Internet protocols that libcurl does.
@@ -168,8 +172,8 @@ FAQ
1.2 What is libcurl?
- libcurl is a reliable and portable library which provides you with an easy
- interface to a range of common Internet protocols.
+ libcurl is a reliable and portable library for doing Internet data transfers
+ using one or more of its supported Internet protocols.
You can use libcurl for free in your application, be it open source,
commercial or closed-source.
@@ -211,15 +215,15 @@ FAQ
another tool that uses libcurl.
We do not add things to curl that other small and available tools already do
- very well at the side. curl's output can be piped into another program or
+ well at the side. curl's output can be piped into another program or
redirected to another file for the next program to interpret.
We focus on protocol related issues and improvements. If you want to do more
- magic with the supported protocols than curl currently does, chances are good
- we will agree. If you want to add more protocols, we may very well agree.
+ magic with the supported protocols than curl currently does, chances are
+ good we will agree. If you want to add more protocols, we may agree.
If you want someone else to do all the work while you wait for us to
- implement it for you, that is not a very friendly attitude. We spend a
+ implement it for you, that is not a friendly attitude. We spend a
considerable time already on maintaining and developing curl. In order to
get more out of us, you should consider trading in some of your time and
effort in return. Simply go to the GitHub repo which resides at
@@ -244,7 +248,7 @@ FAQ
Project cURL is entirely free and open. We do this voluntarily, mostly in
our spare time. Companies may pay individual developers to work on curl,
- but that's up to each company and developer. This is not controlled by nor
+ but that is up to each company and developer. This is not controlled by nor
supervised in any way by the curl project.
We get help from companies. Haxx provides website, bandwidth, mailing lists
@@ -288,10 +292,14 @@ FAQ
from having to repeat ourselves even more. Thanks for respecting this.
If you have found or simply suspect a security problem in curl or libcurl,
- mail curl-security at haxx.se (closed list of receivers, mails are not
- disclosed) and tell. Then we can produce a fix in a timely manner before the
- flaw is announced to the world, thus lessen the impact the problem will have
- on existing users.
+ submit all the details at https://hackerone.one/curl. On there we keep the
+ issue private while we investigate, confirm it, work and validate a fix and
+ agree on a time schedule for publication etc. That way we produce a fix in a
+ timely manner before the flaw is announced to the world, reducing the impact
+ the problem risk having on existing users.
+
+ Security issues can also be taking to the curl security team by emailing
+ security at curl.se (closed list of receivers, mails are not disclosed).
1.9 Where do I buy commercial support for curl?
@@ -305,22 +313,22 @@ FAQ
It is impossible to tell.
- We don't know how many users that knowingly have installed and use curl.
+ We do not know how many users that knowingly have installed and use curl.
- We don't know how many users that use curl without knowing that they are in
+ We do not know how many users that use curl without knowing that they are in
fact using it.
- We don't know how many users that downloaded or installed curl and then
+ We do not know how many users that downloaded or installed curl and then
never use it.
In 2020, we estimate that curl runs in roughly ten billion installations
world wide.
- 1.11 Why don't you update ca-bundle.crt
+ 1.11 Why do you not update ca-bundle.crt
- In the cURL project we've decided not to attempt to keep this file updated
+ In the cURL project we have decided not to attempt to keep this file updated
(or even present) since deciding what to add to a ca cert bundle is an
- undertaking we've not been ready to accept, and the one we can get from
+ undertaking we have not been ready to accept, and the one we can get from
Mozilla is perfectly fine so there's no need to duplicate that work.
Today, with many services performed over HTTPS, every operating system
@@ -336,7 +344,7 @@ FAQ
1.12 I have a problem who can I chat with?
There's a bunch of friendly people hanging out in the #curl channel on the
- IRC network libera.chat. If you're polite and nice, chances are good that
+ IRC network libera.chat. If you are polite and nice, chances are good that
you can get -- or provide -- help instantly.
1.13 curl's ECCN number?
@@ -364,10 +372,10 @@ FAQ
1.14 How do I submit my patch?
We strongly encourage you to submit changes and improvements directly as
- "pull requests" on github: https://github.com/curl/curl/pulls
+ "pull requests" on GitHub: https://github.com/curl/curl/pulls
- If you for any reason can't or won't deal with github, send your patch to
- the curl-library mailing list. We're many subscribers there and there are
+ If you for any reason cannot or will not deal with GitHub, send your patch to
+ the curl-library mailing list. We are many subscribers there and there are
lots of people who can review patches, comment on them and "receive" them
properly.
@@ -397,16 +405,16 @@ FAQ
configure checks for.
The reason why static libraries is much harder to deal with is that for them
- we don't get any help but the script itself must know or check what more
+ we do not get any help but the script itself must know or check what more
libraries that are needed (with shared libraries, that dependency "chain" is
- handled automatically). This is a very error-prone process and one that also
+ handled automatically). This is a error-prone process and one that also
tends to vary over time depending on the release versions of the involved
components and may also differ between operating systems.
- For that reason, configure does very little attempts to actually figure this
- out and you are instead encouraged to set LIBS and LDFLAGS accordingly when
- you invoke configure, and point out the needed libraries and set the
- necessary flags yourself.
+ For that reason, configure does few attempts to actually figure this out and
+ you are instead encouraged to set LIBS and LDFLAGS accordingly when you
+ invoke configure, and point out the needed libraries and set the necessary
+ flags yourself.
2.2 Does curl work with other SSL libraries?
@@ -429,20 +437,20 @@ FAQ
3.1 curl: (1) SSL is disabled, https: not supported
If you get this output when trying to get anything from a https:// server,
- it means that the instance of curl/libcurl that you're using was built
+ it means that the instance of curl/libcurl that you are using was built
without support for this protocol.
- This could've happened if the configure script that was run at build time
- couldn't find all libs and include files curl requires for SSL to work. If
+ This could have happened if the configure script that was run at build time
+ could not find all libs and include files curl requires for SSL to work. If
the configure script fails to find them, curl is simply built without SSL
support.
To get the https:// support into a curl that was previously built but that
reports that https:// is not supported, you should dig through the document
- and logs and check out why the configure script doesn't find the SSL libs
+ and logs and check out why the configure script does not find the SSL libs
and/or include files.
- Also, check out the other paragraph in this FAQ labeled "configure doesn't
+ Also, check out the other paragraph in this FAQ labeled "configure does not
find OpenSSL even when it is installed".
3.2 How do I tell curl to resume a transfer?
@@ -450,19 +458,19 @@ FAQ
curl supports resumed transfers both ways on both FTP and HTTP.
Try the -C option.
- 3.3 Why doesn't my posting using -F work?
+ 3.3 Why does my posting using -F not work?
- You can't arbitrarily use -F or -d, the choice between -F or -d depends on
+ You cannot arbitrarily use -F or -d, the choice between -F or -d depends on
the HTTP operation you need curl to do and what the web server that will
receive your post expects.
- If the form you're trying to submit uses the type 'multipart/form-data',
+ If the form you are trying to submit uses the type 'multipart/form-data',
then and only then you must use the -F type. In all the most common cases,
you should use -d which then causes a posting with the type
'application/x-www-form-urlencoded'.
This is described in some detail in the MANUAL and TheArtOfHttpScripting
- documents, and if you don't understand it the first time, read it again
+ documents, and if you do not understand it the first time, read it again
before you post questions about this to the mailing list. Also, try reading
through the mailing list archives for old postings and questions regarding
this.
@@ -472,7 +480,7 @@ FAQ
You can tell curl to perform optional commands both before and/or after a
file transfer. Study the -Q/--quote option.
- Since curl is used for file transfers, you don't normally use curl to
+ Since curl is used for file transfers, you do not normally use curl to
perform FTP commands without transferring anything. Therefore you must
always specify a URL to transfer to/from even when doing custom FTP
commands, or use -I which implies the "no body" option sent to libcurl.
@@ -485,9 +493,9 @@ FAQ
3.6 Does curl support ASP, XML, XHTML or HTML version Y?
- To curl, all contents are alike. It doesn't matter how the page was
+ To curl, all contents are alike. It does not matter how the page was
generated. It may be ASP, PHP, Perl, shell-script, SSI or plain HTML
- files. There's no difference to curl and it doesn't even know what kind of
+ files. There's no difference to curl and it does not even know what kind of
language that generated the page.
See also item 3.14 regarding javascript.
@@ -507,7 +515,7 @@ FAQ
3.8 How do I tell curl to follow HTTP redirects?
curl does not follow so-called redirects by default. The Location: header
- that informs the client about this is only interpreted if you're using the
+ that informs the client about this is only interpreted if you are using the
-L/--location option. As in:
curl -L http://redirector.com
@@ -526,7 +534,7 @@ FAQ
All the various bindings to libcurl are made by other projects and people,
outside of the cURL project. The cURL project itself only produces libcurl
- with its plain C API. If you don't find anywhere else to ask you can ask
+ with its plain C API. If you do not find anywhere else to ask you can ask
about bindings on the curl-library list too, but be prepared that people on
that list may not know anything about bindings.
@@ -546,7 +554,7 @@ FAQ
XML-RPC are all such ones. You can use -X to set custom requests and -H to
set custom headers (or replace internally generated ones).
- Using libcurl is of course just as good and you'd just use the proper
+ Using libcurl is of course just as good and you would just use the proper
library options to do the same.
3.11 How do I POST with a different Content-Type?
@@ -560,7 +568,7 @@ FAQ
Because when you use a HTTP proxy, the protocol spoken on the network will
be HTTP, even if you specify a FTP URL. This effectively means that you
- normally can't use FTP-specific features such as FTP upload and FTP quote
+ normally cannot use FTP-specific features such as FTP upload and FTP quote
etc.
There is one exception to this rule, and that is if you can "tunnel through"
@@ -582,7 +590,7 @@ FAQ
Exactly what kind of quotes and how to do this is entirely up to the shell
or command line interpreter that you are using. For most unix shells, you
can more or less pick either single (') or double (") quotes. For
- Windows/DOS prompts I believe you're forced to use double (") quotes.
+ Windows/DOS prompts I believe you are forced to use double (") quotes.
Please study the documentation for your particular environment. Examples in
the curl docs will use a mix of both of these as shown above. You must
@@ -600,8 +608,8 @@ FAQ
.pac files are a netscape invention and are sometimes used by organizations
to allow them to differentiate which proxies to use. The .pac contents is
just a Javascript program that gets invoked by the browser and that returns
- the name of the proxy to connect to. Since curl doesn't support Javascript,
- it can't support .pac proxy configuration either.
+ the name of the proxy to connect to. Since curl does not support Javascript,
+ it cannot support .pac proxy configuration either.
Some workarounds usually suggested to overcome this Javascript dependency:
@@ -633,7 +641,7 @@ FAQ
The server you communicate with may require that you can provide this in
order to prove that you actually are who you claim to be. If the server
- doesn't require this, you don't need a client certificate.
+ does not require this, you do not need a client certificate.
A client certificate is always used together with a private key, and the
private key has a pass phrase that protects it.
@@ -682,7 +690,7 @@ FAQ
3.19 How do I get HTTP from a host using a specific IP address?
- For example, you may be trying out a website installation that isn't yet in
+ For example, you may be trying out a website installation that is not yet in
the DNS. Or you have a site using multiple IP addresses for a given host
name and you want to address a specific one out of the set.
@@ -700,7 +708,7 @@ FAQ
3.20 How to SFTP from my user's home directory?
Contrary to how FTP works, SFTP and SCP URLs specify the exact directory to
- work with. It means that if you don't specify that you want the user's home
+ work with. It means that if you do not specify that you want the user's home
directory, you get the actual root directory.
To specify a file in your user's home directory, you need to use the correct
@@ -716,7 +724,7 @@ FAQ
When passing on a URL to curl to use, it may respond that the particular
protocol is not supported or disabled. The particular way this error message
- is phrased is because curl doesn't make a distinction internally of whether
+ is phrased is because curl does not make a distinction internally of whether
a particular protocol is not supported (i.e. never got any code added that
knows how to speak that protocol) or if it was explicitly disabled. curl can
be built to only support a given set of protocols, and the rest would then
@@ -735,7 +743,7 @@ FAQ
"curl http://example.com" it will use GET. If you use -d or -F curl will use
POST, -I will cause a HEAD and -T will make it a PUT.
- If for whatever reason you're not happy with these default choices that curl
+ If for whatever reason you are not happy with these default choices that curl
does for you, you can override those request methods by specifying -X
[WHATEVER]. This way you can for example send a DELETE by doing "curl -X
DELETE [URL]".
@@ -746,7 +754,7 @@ FAQ
request-body in a GET request with something like "curl -X GET -d data
[URL]"
- Note that -X doesn't actually change curl's behavior as it only modifies the
+ Note that -X does not actually change curl's behavior as it only modifies the
actual string sent in the request, but that may of course trigger a
different set of events.
@@ -791,15 +799,15 @@ FAQ
curl -g 'www.site.com/weirdname[].html'
- 4.4 Why do I get downloaded data even though the web page doesn't exist?
+ 4.4 Why do I get downloaded data even though the web page does not exist?
- curl asks remote servers for the page you specify. If the page doesn't exist
+ curl asks remote servers for the page you specify. If the page does not exist
at the server, the HTTP protocol defines how the server should respond and
- that means that headers and a "page" will be returned. That's simply how
+ that means that headers and a "page" will be returned. That is simply how
HTTP works.
By using the --fail option you can tell curl explicitly to not get any data
- if the HTTP return code doesn't say success.
+ if the HTTP return code does not say success.
4.5 Why do I get return code XXX from a HTTP server?
@@ -857,11 +865,11 @@ FAQ
This problem has two sides:
The first part is to avoid having clear-text passwords in the command line
- so that they don't appear in 'ps' outputs and similar. That is easily
+ so that they do not appear in 'ps' outputs and similar. That is easily
avoided by using the "-K" option to tell curl to read parameters from a file
or stdin to which you can pass the secret info. curl itself will also
attempt to "hide" the given password by blanking out the option - this
- doesn't work on all platforms.
+ does not work on all platforms.
To keep the passwords in your account secret from the rest of the world is
not a task that curl addresses. You could of course encrypt them somehow to
@@ -870,7 +878,7 @@ FAQ
Also note that regular HTTP (using Basic authentication) and FTP passwords
are sent as cleartext across the network. All it takes for anyone to fetch
- them is to listen on the network. Eavesdropping is very easy. Use more secure
+ them is to listen on the network. Eavesdropping is easy. Use more secure
authentication methods (like Digest, Negotiate or even NTLM) or consider the
SSL-based alternatives HTTPS and FTPS.
@@ -879,14 +887,14 @@ FAQ
It is not a bug if the behavior is documented. Read the docs first.
Especially check out the KNOWN_BUGS file, it may be a documented bug!
- If it is a problem with a binary you've downloaded or a package for your
+ If it is a problem with a binary you have downloaded or a package for your
particular platform, try contacting the person who built the package/archive
you have.
If there is a bug, read the BUGS document first. Then report it as described
in there.
- 4.9 curl can't authenticate to the server that requires NTLM?
+ 4.9 curl cannot authenticate to the server that requires NTLM?
NTLM support requires OpenSSL, GnuTLS, mbedTLS, NSS, Secure Transport, or
Microsoft Windows libraries at build-time to provide this functionality.
@@ -894,7 +902,7 @@ FAQ
NTLM is a Microsoft proprietary protocol. Proprietary formats are evil. You
should not use such ones.
- 4.10 My HTTP request using HEAD, PUT or DELETE doesn't work!
+ 4.10 My HTTP request using HEAD, PUT or DELETE does not work!
Many web servers allow or demand that the administrator configures the
server properly for these requests to work on the web server.
@@ -902,7 +910,7 @@ FAQ
Some servers seem to support HEAD only on certain kinds of URLs.
To fully grasp this, try the documentation for the particular server
- software you're trying to interact with. This is not anything curl can do
+ software you are trying to interact with. This is not anything curl can do
anything about.
4.11 Why do my HTTP range requests return the full document?
@@ -913,7 +921,7 @@ FAQ
4.12 Why do I get "certificate verify failed" ?
When you invoke curl and get an error 60 error back it means that curl
- couldn't verify that the server's certificate was good. curl verifies the
+ could not verify that the server's certificate was good. curl verifies the
certificate using the CA cert bundle and verifying for which names the
certificate has been granted.
@@ -930,7 +938,7 @@ FAQ
At times, you find that the verification works in your favorite browser but
fails in curl. When this happens, the reason is usually that the server
sends an incomplete cert chain. The server is mandated to send all
- "intermediate certificates" but doesn't. This typically works with browsers
+ "intermediate certificates" but does not. This typically works with browsers
anyway since they A) cache such certs and B) supports AIA which downloads
such missing certificates on demand. This is a server misconfiguration. A
good way to figure out if this is the case it to use the SSL Labs server
@@ -963,7 +971,7 @@ FAQ
manually figure out what the page is set to do, or write a script that parses
the results and fetches the new URL.
- 4.15 FTPS doesn't work
+ 4.15 FTPS does not work
curl supports FTPS (sometimes known as FTP-SSL) both implicit and explicit
mode.
@@ -980,13 +988,13 @@ FAQ
4.16 My HTTP POST or PUT requests are slow!
libcurl makes all POST and PUT requests (except for POST requests with a
- very tiny request body) use the "Expect: 100-continue" header. This header
+ tiny request body) use the "Expect: 100-continue" header. This header
allows the server to deny the operation early so that libcurl can bail out
before having to send any data. This is useful in authentication
cases and others.
- However, many servers don't implement the Expect: stuff properly and if the
- server doesn't respond (positively) within 1 second libcurl will continue
+ However, many servers do not implement the Expect: stuff properly and if the
+ server does not respond (positively) within 1 second libcurl will continue
and send off the data anyway.
You can disable libcurl's use of the Expect: header the same way you disable
@@ -1006,7 +1014,7 @@ FAQ
Also, even on non-Windows systems there may run a firewall or anti-virus
software or similar that accepts the connection but does not actually do
anything else. This will make (lib)curl to consider the connection connected
- and thus the connect timeout won't trigger.
+ and thus the connect timeout will not trigger.
4.18 file:// URLs containing drive letters (Windows, NetWare)
@@ -1015,7 +1023,7 @@ FAQ
file://D:/blah.txt
- You'll find that even if D:\blah.txt does exist, curl returns a 'file
+ you will find that even if D:\blah.txt does exist, curl returns a 'file
not found' error.
According to RFC 1738 (https://www.ietf.org/rfc/rfc1738.txt),
@@ -1023,7 +1031,7 @@ FAQ
most implementations. In the above example, 'D:' is treated as the
host component, and is taken away. Thus, curl tries to open '/blah.txt'.
If your system is installed to drive C:, that will resolve to 'C:\blah.txt',
- and if that doesn't exist you will get the not found error.
+ and if that does not exist you will get the not found error.
To fix this problem, use file:// URLs with *three* leading slashes:
@@ -1036,11 +1044,11 @@ FAQ
In either case, curl should now be looking for the correct file.
- 4.19 Why doesn't curl return an error when the network cable is unplugged?
+ 4.19 Why does not curl return an error when the network cable is unplugged?
Unplugging a cable is not an error situation. The TCP/IP protocol stack
was designed to be fault tolerant, so even though there may be a physical
- break somewhere the connection shouldn't be affected, just possibly
+ break somewhere the connection should not be affected, just possibly
delayed. Eventually, the physical break will be fixed or the data will be
re-routed around the physical problem through another path.
@@ -1053,9 +1061,9 @@ FAQ
connection to make sure it is still available to send data. That should
reliably detect any TCP/IP network failure.
- But even that won't detect the network going down before the TCP/IP
+ But even that will not detect the network going down before the TCP/IP
connection is established (e.g. during a DNS lookup) or using protocols that
- don't use TCP. To handle those situations, curl offers a number of timeouts
+ do not use TCP. To handle those situations, curl offers a number of timeouts
on its own. --speed-limit/--speed-time will abort if the data transfer rate
falls too low, and --connect-timeout and --max-time can be used to put an
overall timeout on the connection phase or the entire transfer.
@@ -1066,11 +1074,11 @@ FAQ
by having the application monitor the network connection on its own using an
OS-specific mechanism, then signaling libcurl to abort (see also item 5.13).
- 4.20 curl doesn't return error for HTTP non-200 responses!
+ 4.20 curl does not return error for HTTP non-200 responses!
Correct. Unless you use -f (--fail).
- When doing HTTP transfers, curl will perform exactly what you're asking it
+ When doing HTTP transfers, curl will perform exactly what you are asking it
to do and if successful it will not return an error. You can use curl to
test your web server's "file not found" page (that gets 404 back), you can
use it to check your authentication protected web pages (that gets a 401
@@ -1079,7 +1087,7 @@ FAQ
The specific HTTP response code does not constitute a problem or error for
curl. It simply sends and delivers HTTP as you asked and if that worked,
everything is fine and dandy. The response code is generally providing more
- higher level error information that curl doesn't care about. The error was
+ higher level error information that curl does not care about. The error was
not in the HTTP transfer.
If you want your command line to treat error codes in the 400 and up range
@@ -1145,7 +1153,7 @@ FAQ
libcurl has excellent support for transferring multiple files. You should
just repeatedly set new URLs with curl_easy_setopt() and then transfer it
with curl_easy_perform(). The handle you get from curl_easy_init() is not
- only reusable, but you're even encouraged to reuse it if you can, as that
+ only reusable, but you are even encouraged to reuse it if you can, as that
will enable libcurl to use persistent connections.
5.4 Does libcurl do Winsock initialization on win32 systems?
@@ -1187,12 +1195,12 @@ FAQ
When building an application that uses the static libcurl library, you must
add -DCURL_STATICLIB to your CFLAGS. Otherwise the linker will look for
- dynamic import symbols. If you're using Visual Studio, you need to instead
+ dynamic import symbols. If you are using Visual Studio, you need to instead
add CURL_STATICLIB in the "Preprocessor Definitions" section.
If you get linker error like "unknown symbol __imp__curl_easy_init ..." you
have linked against the wrong (static) library. If you want to use the
- libcurl.dll and import lib, you don't need any extra CFLAGS, but use one of
+ libcurl.dll and import lib, you do not need any extra CFLAGS, but use one of
the import libraries below. These are the libraries produced by the various
lib/Makefile.* files:
@@ -1206,7 +1214,7 @@ FAQ
5.8 libcurl.so.X: open failed: No such file or directory
This is an error message you might get when you try to run a program linked
- with a shared version of libcurl and your run-time linker (ld.so) couldn't
+ with a shared version of libcurl and your run-time linker (ld.so) could not
find the shared library named libcurl.so.X. (Where X is the number of the
current libcurl ABI, typically 3 or 4).
@@ -1220,7 +1228,7 @@ FAQ
* Set an environment variable (LD_LIBRARY_PATH for example) where ld.so
should check for libs
- * Adjust the system's config to check for libs in the directory where you've
+ * Adjust the system's config to check for libs in the directory where you have
put the dir (like Linux's /etc/ld.so.conf)
'man ld.so' and 'man ld' will tell you more details
@@ -1289,13 +1297,13 @@ FAQ
can do this with include the progress callback, the read callback and the
write callback.
- If you're using the multi interface, you can also stop a transfer by
+ If you are using the multi interface, you can also stop a transfer by
removing the particular easy handle from the multi stack at any moment you
think the transfer is done or when you wish to abort the transfer.
5.14 Using C++ non-static functions for callbacks?
- libcurl is a C library, it doesn't know anything about C++ member functions.
+ libcurl is a C library, it does not know anything about C++ member functions.
You can overcome this "limitation" with relative ease using a static
member function that is passed a pointer to the class:
@@ -1323,9 +1331,9 @@ FAQ
a symlink etc. If the FTP server supports the MLSD command then it will
return data in a machine-readable format that can be parsed for type. The
types are specified by RFC3659 section 7.5.1. If MLSD is not supported then
- you have to work with what you're given. The LIST output format is entirely
- at the server's own liking and the NLST output doesn't reveal any types and
- in many cases doesn't even include all the directory entries. Also, both LIST
+ you have to work with what you are given. The LIST output format is entirely
+ at the server's own liking and the NLST output does not reveal any types and
+ in many cases does not even include all the directory entries. Also, both LIST
and NLST tend to hide unix-style hidden files (those that start with a dot)
by default so you need to do "LIST -a" or similar to see them.
@@ -1378,16 +1386,16 @@ FAQ
but still in the same single thread.
libcurl will potentially internally use threads for name resolving, if it
- was built to work like that, but in those cases it'll create the child
+ was built to work like that, but in those cases it will create the child
threads by itself and they will only be used and then killed internally by
libcurl and never exposed to the outside.
6. License Issues
- curl and libcurl are released under a MIT/X derivative license. The license is
- very liberal and should not impose a problem for your project. This section
- is just a brief summary for the cases we get the most questions. (Parts of
- this section was much enhanced by Bjorn Reese.)
+ curl and libcurl are released under a MIT/X derivative license. The license
+ is liberal and should not impose a problem for your project. This section is
+ just a brief summary for the cases we get the most questions. (Parts of this
+ section was much enhanced by Bjorn Reese.)
We are not lawyers and this is not legal advice. You should probably consult
one if you want true and accurate legal insights without our prejudice. Note
@@ -1418,7 +1426,7 @@ FAQ
Yes!
- The LGPL license doesn't clash with other licenses.
+ The LGPL license does not clash with other licenses.
6.5 Can I modify curl/libcurl for my program and keep the changes secret?
@@ -1494,3 +1502,40 @@ FAQ
PHP/CURL is a module that comes with the regular PHP package. It depends on
and uses libcurl, so you need to have libcurl installed properly before
PHP/CURL can be used.
+
+8. Development
+
+ 8.1 Why does curl use C89?
+
+ As with everything in curl, there's a history and we keep using what we have
+ used before until someone brings up the subject and argues for and works on
+ changing it.
+
+ We started out using C89 in the 1990s because that was the only way to write
+ a truly portable C program and have it run as widely as possible. C89 was for
+ a long time even necessary to make things work on otherwise considered modern
+ platforms such as Windows. Today, we do not really know how many users that
+ still require the use of a C89 compiler.
+
+ We will continue to use C89 for as long as nobody brings up a strong enough
+ reason for us to change our minds. The core developers of the project do not
+ feel restricted by this and we are not convinced that going C99 will offer us
+ enough of a benefit to warrant the risk of cutting off a share of users.
+
+ 8.2 Will curl be rewritten?
+
+ In one go: no. Little by little over time? Maybe.
+
+ Over the years, new languages and clever operating environments come and go.
+ Every now and then the urge apparently arises to request that we rewrite curl
+ in another language.
+
+ Some the most important properties in curl are maintaining the API and ABI
+ for libcurl and keeping the behavior for the command line tool. As long as we
+ can do that, everything else is up for discussion. To maintain the ABI, we
+ probably have to maintain a certain amount of code in C, and to remain rock
+ stable, we will never risk anything by rewriting a lot of things in one go.
+ That said, we can certainly offer more and more optional backends written in
+ other languages, as long as those backends can be plugged in at build-time.
+ Back-ends can be written in any language, but should probably provide APIs
+ usable from C to ease integration and transition.
diff --git a/docs/GOVERNANCE.md b/docs/GOVERNANCE.md
index dfc2071d6..fd778b391 100644
--- a/docs/GOVERNANCE.md
+++ b/docs/GOVERNANCE.md
@@ -98,7 +98,7 @@ on maintaining curl is considered a hero, for all time hereafter.
## Security team members
-We have a security team. That's the team of people who are subscribed to the
+We have a security team. That is the team of people who are subscribed to the
curl-security mailing list; the receivers of security reports from users and
developers. This list of people will vary over time but should be skilled
developers familiar with the curl project.
@@ -123,7 +123,7 @@ primary curl contact with Fastly.
## BDFL
-That's Daniel.
+That is Daniel.
# Maintainers
@@ -152,10 +152,10 @@ within the area of personal expertise and experience.
### Merge advice
-When you're merging patches/PRs...
+When you are merging patches/PRs...
- make sure the commit messages follow our template
-- squash patch sets into a few logical commits even if the PR didn't, if
+- squash patch sets into a few logical commits even if the PR did not, if
necessary
- avoid the "merge" button on GitHub, do it "manually" instead to get full
control and full audit trail (github leaves out you as "Committer:")
diff --git a/docs/HELP-US.md b/docs/HELP-US.md
index ce3d720be..64c08d803 100644
--- a/docs/HELP-US.md
+++ b/docs/HELP-US.md
@@ -5,7 +5,7 @@ looking for ways to contribute and help out, this document aims to give a few
good starting points.
A good idea is to start by subscribing to the [curl-library mailing
-list](https://cool.haxx.se/mailman/listinfo/curl-library) to keep track of the
+list](https://lists.haxx.se/listinfo/curl-library) to keep track of the
current discussion topics.
## Scratch your own itch
@@ -18,10 +18,10 @@ down and report the bug. Or make your first pull request with a fix for that.
## Smaller tasks
Some projects mark small issues as "beginner friendly", "bite-sized" or
-similar. We don't do that in curl since such issues never linger around long
-enough. Simple issues get handled very fast.
+similar. We do not do that in curl since such issues never linger around long
+enough. Simple issues get handled fast.
-If you're looking for a smaller or simpler task in the project to help out
+If you are looking for a smaller or simpler task in the project to help out
with as an entry-point into the project, perhaps because you are a newcomer or
even maybe not a terribly experienced developer, here's our advice:
@@ -43,7 +43,7 @@ one that piques your interest.
## Work on known bugs
-Some bugs are known and haven't yet received attention and work enough to get
+Some bugs are known and have not yet received attention and work enough to get
fixed. We collect such known existing flaws in the
[KNOWN_BUGS](https://curl.se/docs/knownbugs.html) page. Many of them link
to the original bug report with some additional details, but some may also
@@ -56,7 +56,7 @@ On the [autobuilds page](https://curl.se/dev/builds.html) we show a
collection of test results from the automatic curl build and tests that are
performed by volunteers. Fixing compiler warnings and errors shown there is
something we value greatly. Also, if you own or run systems or architectures
-that aren't already tested in the autobuilds, we also appreciate more
+that are not already tested in the autobuilds, we also appreciate more
volunteers running builds automatically to help us keep curl portable.
## TODO items
@@ -64,7 +64,7 @@ volunteers running builds automatically to help us keep curl portable.
Ideas for features and functions that we have considered worthwhile to
implement and provide are kept in the
[TODO](https://curl.se/docs/todo.html) file. Some of the ideas are
-rough. Some are well thought out. Some probably aren't really suitable
+rough. Some are well thought out. Some probably are not really suitable
anymore.
Before you invest a lot of time on a TODO item, do bring it up for discussion
@@ -83,5 +83,5 @@ the specific implementation. Either way is fine.
We offer [guidelines](https://curl.se/dev/contribute.html) that are
suitable to be familiar with before you decide to contribute to curl. If
-you're used to open source development, you'll probably not find many
+you are used to open source development, you will probably not find many
surprises in there.
diff --git a/docs/HISTORY.md b/docs/HISTORY.md
index 373741c58..12af639c1 100644
--- a/docs/HISTORY.md
+++ b/docs/HISTORY.md
@@ -60,7 +60,7 @@ SSL support was added, powered by the SSLeay library.
August: first announcement of curl on freshmeat.net.
October: with the curl 4.9 release and the introduction of cookie support,
-curl was no longer released under the GPL license. Now we're at 4000 lines of
+curl was no longer released under the GPL license. Now we are at 4000 lines of
code, we switched over to the MPL license to restrict the effects of
"copyleft".
diff --git a/docs/HTTP-COOKIES.md b/docs/HTTP-COOKIES.md
index 9d1e099d1..c7c116b10 100644
--- a/docs/HTTP-COOKIES.md
+++ b/docs/HTTP-COOKIES.md
@@ -8,13 +8,13 @@
Cookies are either "session cookies" which typically are forgotten when the
session is over which is often translated to equal when browser quits, or
- the cookies aren't session cookies they have expiration dates after which
+ the cookies are not session cookies they have expiration dates after which
the client will throw them away.
Cookies are set to the client with the Set-Cookie: header and are sent to
servers with the Cookie: header.
- For a very long time, the only spec explaining how to use cookies was the
+ For a long time, the only spec explaining how to use cookies was the
original [Netscape spec from 1994](https://curl.se/rfc/cookie_spec.html).
In 2011, [RFC6265](https://www.ietf.org/rfc/rfc6265.txt) was finally
@@ -48,7 +48,7 @@
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
+ Each line that specifies a single cookie consists of seven text fields
separated with TAB characters. A valid line must end with a newline
character.
@@ -74,7 +74,7 @@
`-b, --cookie`
tell curl a file to read cookies from and start the cookie engine, or if it
- isn't a file it will pass on the given string. -b name=var works and so does
+ is not a file it will pass on the given string. -b name=var works and so does
-b cookiefile.
`-j, --junk-session-cookies`
diff --git a/docs/HTTP2.md b/docs/HTTP2.md
index d44306767..7ab5dfdcc 100644
--- a/docs/HTTP2.md
+++ b/docs/HTTP2.md
@@ -78,7 +78,7 @@ attempt to re-use existing HTTP/2 connections and just add a new stream over
that when doing subsequent parallel requests.
While libcurl sets up a connection to a HTTP server there is a period during
-which it doesn't know if it can pipeline or do multiplexing and if you add new
+which it does not know if it can pipeline or do multiplexing and if you add new
transfers in that period, libcurl will default to start new connections for
those transfers. With the new option `CURLOPT_PIPEWAIT` (added in 7.43.0), you
can ask that a transfer should rather wait and see in case there's a
@@ -105,7 +105,7 @@ Since 7.47.0, the curl tool enables HTTP/2 by default for HTTPS connections.
curl tool limitations
---------------------
-The command line tool doesn't support HTTP/2 server push. It supports
+The command line tool does not support HTTP/2 server push. It supports
multiplexing when the parallel transfer option is used.
HTTP Alternative Services
diff --git a/docs/HTTP3.md b/docs/HTTP3.md
index 2f377fd35..4853e8da8 100644
--- a/docs/HTTP3.md
+++ b/docs/HTTP3.md
@@ -2,7 +2,7 @@
## Resources
-[HTTP/3 Explained](https://daniel.haxx.se/http3-explained/) - the online free
+[HTTP/3 Explained](https://http3-explained.haxx.se/en/) - the online free
book describing the protocols involved.
[QUIC implementation](https://github.com/curl/curl/wiki/QUIC-implementation) -
@@ -13,7 +13,7 @@ and libcurl.
## QUIC libraries
-QUIC libraries we're experimenting with:
+QUIC libraries we are experimenting with:
[ngtcp2](https://github.com/ngtcp2/ngtcp2)
@@ -33,18 +33,18 @@ in the master branch using pull-requests, just like ordinary changes.
Build (patched) OpenSSL
- % git clone --depth 1 -b OpenSSL_1_1_1k+quic https://github.com/quictls/openssl
+ % git clone --depth 1 -b openssl-3.0.0+quic https://github.com/quictls/openssl
% cd openssl
% ./config enable-tls1_3 --prefix=<somewhere1>
% make
- % make install_sw
+ % make install
Build nghttp3
% cd ..
% git clone https://github.com/ngtcp2/nghttp3
% cd nghttp3
- % autoreconf -i
+ % autoreconf -fi
% ./configure --prefix=<somewhere2> --enable-lib-only
% make
% make install
@@ -54,7 +54,7 @@ Build ngtcp2
% cd ..
% git clone https://github.com/ngtcp2/ngtcp2
% cd ngtcp2
- % autoreconf -i
+ % autoreconf -fi
% ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only
% make
% make install
@@ -64,9 +64,12 @@ Build curl
% cd ..
% git clone https://github.com/curl/curl
% cd curl
- % ./buildconf
+ % autoreconf -fi
% LDFLAGS="-Wl,-rpath,<somewhere1>/lib" ./configure --with-openssl=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3>
% make
+ % make install
+
+For OpenSSL 3.0.0 or later builds on Linux for x86_64 architecture, substitute all occurances of "/lib" with "/lib64"
## Build with GnuTLS
@@ -75,7 +78,7 @@ Build GnuTLS
% git clone --depth 1 https://gitlab.com/gnutls/gnutls.git
% cd gnutls
% ./bootstrap
- % ./configure --disable-doc --prefix=<somewhere1>
+ % ./configure --prefix=<somewhere1>
% make
% make install
@@ -84,7 +87,7 @@ Build nghttp3
% cd ..
% git clone https://github.com/ngtcp2/nghttp3
% cd nghttp3
- % autoreconf -i
+ % autoreconf -fi
% ./configure --prefix=<somewhere2> --enable-lib-only
% make
% make install
@@ -94,7 +97,7 @@ Build ngtcp2
% cd ..
% git clone https://github.com/ngtcp2/ngtcp2
% cd ngtcp2
- % autoreconf -i
+ % autoreconf -fi
% ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only --with-gnutls
% make
% make install
@@ -104,9 +107,10 @@ Build curl
% cd ..
% git clone https://github.com/curl/curl
% cd curl
- % ./buildconf
+ % autoreconf -fi
% ./configure --without-openssl --with-gnutls=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3>
% make
+ % make install
# quiche version
@@ -125,9 +129,12 @@ Build curl:
% cd ..
% git clone https://github.com/curl/curl
% cd curl
- % ./buildconf
+ % autoreconf -fi
% ./configure LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" --with-openssl=$PWD/../quiche/deps/boringssl/src --with-quiche=$PWD/../quiche/target/release
% make
+ % make install
+
+ If `make install` results in `Permission denied` error, you will need to prepend it with `sudo`.
## Run
diff --git a/docs/HYPER.md b/docs/HYPER.md
index da6c66337..0ca1ce1d4 100644
--- a/docs/HYPER.md
+++ b/docs/HYPER.md
@@ -46,10 +46,13 @@ over the wire with Hyper.
## Limitations
-The hyper backend doesn't support
+The hyper backend does not support
- `CURLOPT_IGNORE_CONTENT_LENGTH`
+- `--raw` and disabling `CURLOPT_HTTP_TRANSFER_DECODING`
- RTSP
+- hyper is much stricter about what HTTP header contents it allow in requests
+- HTTP/0.9
## Remaining issues
@@ -59,11 +62,6 @@ still need attention and verification include:
- multiplexed HTTP/2
- h2 Upgrade:
- pausing transfers
-- co-exist with a HTTP/3 build
- receiving HTTP/1 trailers
- sending HTTP/1 trailers
-- accept-encoding
-- transfer encoding
-- alt-svc
-- hsts
-- DoH ([#6389](https://github.com/curl/curl/issues/6389))
+
diff --git a/docs/INSTALL.cmake b/docs/INSTALL.cmake
index 828d9b9c5..3f905d79a 100644
--- a/docs/INSTALL.cmake
+++ b/docs/INSTALL.cmake
@@ -26,14 +26,14 @@ Current flaws in the curl CMake build
- Builds libcurl without large file support
- Does not support all SSL libraries (only OpenSSL, Schannel,
Secure Transport, and mbed TLS, NSS, WolfSSL)
- - Doesn't allow different resolver backends (no c-ares build support)
+ - Does not allow different resolver backends (no c-ares build support)
- No RTMP support built
- - Doesn't allow build curl and libcurl debug enabled
- - Doesn't allow a custom CA bundle path
- - Doesn't allow you to disable specific protocols from the build
- - Doesn't find or use krb4 or GSS
- - Rebuilds test files too eagerly, but still can't run the tests
- - Doesn't detect the correct strerror_r flavor when cross-compiling (issue #1123)
+ - Does not allow build curl and libcurl debug enabled
+ - Does not allow a custom CA bundle path
+ - Does not allow you to disable specific protocols from the build
+ - Does not find or use krb4 or GSS
+ - Rebuilds test files too eagerly, but still cannot run the tests
+ - Does not detect the correct strerror_r flavor when cross-compiling (issue #1123)
Command Line CMake
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 84fe82919..ed8ca2869 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -27,7 +27,7 @@ proceed.
# Unix
-A normal Unix installation is made in three or four steps (after you've
+A normal Unix installation is made in three or four steps (after you have
unpacked the source archive):
./configure --with-openssl [--with-gnutls --with-wolfssl]
@@ -58,7 +58,7 @@ your own home directory:
The configure script always tries to find a working SSL library unless
explicitly told not to. If you have OpenSSL installed in the default search
-path for your compiler/linker, you don't need to do anything special. If you
+path for your compiler/linker, you do not need to do anything special. If you
have OpenSSL installed in `/usr/local/ssl`, you can run configure like:
./configure --with-openssl
@@ -85,7 +85,7 @@ work:
CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" ./configure
If you have shared SSL libs installed in a directory where your run-time
-linker doesn't find them (which usually causes configure failures), you can
+linker does not find them (which usually causes configure failures), you can
provide this option to gcc to set a hard-coded path to the run-time linker:
LDFLAGS=-Wl,-R/usr/local/ssl/lib ./configure --with-openssl
@@ -102,7 +102,7 @@ an option like:
./configure --disable-thread
-If you're a curl developer and use gcc, you might want to enable more debug
+If you are a curl developer and use gcc, you might want to enable more debug
options with the `--enable-debug` option.
curl can be built to use a whole range of libraries to provide various useful
@@ -197,7 +197,7 @@ If you want to enable LDAPS support then set LDAPS=1.
Almost identical to the unix installation. Run the configure script in the
curl source tree root with `sh configure`. Make sure you have the `sh`
-executable in `/bin/` or you'll see the configure fail toward the end.
+executable in `/bin/` or you will see the configure fail toward the end.
Run `make`
@@ -355,7 +355,7 @@ to adjust those variables accordingly. After that you can build curl like this:
./configure --host aarch64-linux-android --with-pic --disable-shared
-Note that this won't give you SSL/TLS support. If you need SSL/TLS, you have
+Note that this will not give you SSL/TLS support. If you need SSL/TLS, you have
to build curl against a SSL/TLS layer, e.g. OpenSSL, because it's impossible for
curl to access Android's native SSL/TLS layer. To build curl for Android using
OpenSSL, follow the OpenSSL build instructions and then install `libssl.a` and
@@ -366,7 +366,7 @@ OpenSSL like this:
./configure --host aarch64-linux-android --with-pic --disable-shared --with-openssl="$TOOLCHAIN/sysroot/usr"
Note, however, that you must target at least Android M (API level 23) or `configure`
-won't be able to detect OpenSSL since `stderr` (and the like) weren't defined
+will not be able to detect OpenSSL since `stderr` (and the like) were not defined
before Android M.
# IBM i
@@ -387,16 +387,16 @@ they affect both environments.
## Multithreading notes
-By default, jobs in IBM i won't start with threading enabled. (Exceptions
+By default, jobs in IBM i will not start with threading enabled. (Exceptions
include interactive PASE sessions started by `QP2TERM` or SSH.) If you use
curl in an environment without threading when options like async DNS were
-enabled, you'll messages like:
+enabled, you will messages like:
```
getaddrinfo() thread failed to start
```
-Don't panic! curl and your program aren't broken. You can fix this by:
+Do not panic! curl and your program are not broken. You can fix this by:
- Set the environment variable `QIBM_MULTI_THREADED` to `Y` before starting
your program. This can be done at whatever scope you feel is appropriate.
@@ -472,7 +472,7 @@ use, here are some other flags that can reduce the size of the library:
- `--disable-unix-sockets` (disables support for UNIX sockets)
- `--disable-verbose` (eliminates debugging strings and error code strings)
- `--disable-versioned-symbols` (disables support for versioned symbols)
- - `--enable-hidden-symbols` (eliminates unneeded symbols in the shared library)
+ - `--enable-symbol-hiding` (eliminates unneeded symbols in the shared library)
- `--without-libidn` (disables support for the libidn DNS library)
- `--without-librtmp` (disables support for RTMP)
- `--without-openssl` (disables support for SSL/TLS)
@@ -514,7 +514,7 @@ line. Following is a list of appropriate key words:
This is a probably incomplete list of known CPU architectures and operating
systems that curl has been compiled for. If you know a system curl compiles
-and runs on, that isn't listed, please let us know!
+and runs on, that is not listed, please let us know!
## 85 Operating Systems
diff --git a/docs/INTERNALS.md b/docs/INTERNALS.md
index a1a8e11c9..9c50b1466 100644
--- a/docs/INTERNALS.md
+++ b/docs/INTERNALS.md
@@ -62,7 +62,7 @@ git
===
All changes to the sources are committed to the git repository as soon as
- they're somewhat verified to work. Changes shall be committed as independently
+ they are somewhat verified to work. Changes shall be committed as independently
as possible so that individual changes can be easily spotted and tracked
afterwards.
@@ -74,7 +74,7 @@ Portability
===========
We write curl and libcurl to compile with C89 compilers. On 32-bit and up
- machines. Most of libcurl assumes more or less POSIX compliance but that's
+ machines. Most of libcurl assumes more or less POSIX compliance but that is
not a requirement.
We write libcurl to build and work with lots of third party tools, and we
@@ -88,7 +88,7 @@ Dependencies
- GnuTLS 3.1.10
- zlib 1.1.4
- libssh2 1.0
- - c-ares 1.6.0
+ - c-ares 1.16.0
- libidn2 2.0.0
- wolfSSL 2.0.0
- openldap 2.0
@@ -103,7 +103,7 @@ 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
+ a suitable C compiler. On systems that do not run configure, we strive to keep
curl running correctly on:
- Windows 98
@@ -143,7 +143,7 @@ Windows vs Unix
2. Windows requires a couple of init calls for the socket stuff.
- That's taken care of by the `curl_global_init()` call, but if other libs
+ That is taken care of by the `curl_global_init()` call, but if other libs
also do it etc there might be reasons for applications to alter that
behavior.
@@ -162,13 +162,13 @@ Windows vs Unix
Inside the source code, We make an effort to avoid `#ifdef [Your OS]`. All
conditionals that deal with features *should* instead be in the format
- `#ifdef HAVE_THAT_WEIRD_FUNCTION`. Since Windows can't run configure scripts,
+ `#ifdef HAVE_THAT_WEIRD_FUNCTION`. Since Windows cannot run configure scripts,
we maintain a `curl_config-win32.h` file in lib directory that is supposed to
look exactly like a `curl_config.h` file would have looked like on a Windows
machine!
Generally speaking: always remember that this will be compiled on dozens of
- operating systems. Don't walk on the edge!
+ operating systems. Do not walk on the edge!
<a name="Library"></a>
Library
@@ -237,7 +237,7 @@ multi_do()
The functions are named after the protocols they handle.
The protocol-specific functions of course deal with protocol-specific
- negotiations and setup. When they're ready to start the actual file
+ negotiations and setup. When they are ready to start the actual file
transfer they call the `Curl_setup_transfer()` function (in
`lib/transfer.c`) to setup the transfer and returns.
@@ -276,7 +276,7 @@ Curl_disconnect()
connections so this is not normally called when `curl_easy_perform()` is
used. This function is only used when we are certain that no more transfers
are going to be made on the connection. It can be also closed by force, or
- it can be called to make sure that libcurl doesn't keep too many
+ it can be called to make sure that libcurl does not keep too many
connections alive at the same time.
This function cleans up all resources that are associated with a single
@@ -372,14 +372,14 @@ General
more).
`lib/getenv.c` offers `curl_getenv()` which is for reading environment
- variables in a neat platform independent way. That's used in the client, but
+ variables in a neat platform independent way. That is used in the client, but
also in `lib/url.c` when checking the proxy environment variables. Note that
contrary to the normal unix `getenv()`, this returns an allocated buffer that
must be `free()`ed after use.
`lib/netrc.c` holds the `.netrc` parser.
- `lib/timeval.c` features replacement functions for systems that don't have
+ `lib/timeval.c` features replacement functions for systems that do not have
`gettimeofday()` and a few support functions for timeval conversions.
A function named `curl_version()` that returns the full curl version string
@@ -408,7 +408,7 @@ Persistent Connections
- When the transfer operation is complete, the connection is left
open. Particular options may tell libcurl not to, and protocols may signal
- closure on connections and then they won't be kept open, of course.
+ closure on connections and then they will not be kept open, of course.
- When `curl_easy_cleanup()` is called, we close all still opened connections,
unless of course the multi interface "owns" the connections.
@@ -454,7 +454,7 @@ SSL libraries
Library Symbols
===============
- All symbols used internally in libcurl must use a `Curl_` prefix if they're
+ All symbols used internally in libcurl must use a `Curl_` prefix if they are
used in more than a single file. Single-file symbols must be made static.
Public ("exported") symbols must use a `curl_` prefix. (There are exceptions,
but they are to be changed to follow this pattern in future versions.) Public
@@ -465,9 +465,9 @@ Library Symbols
Return Codes and Informationals
===============================
- I've made things simple. Almost every function in libcurl returns a CURLcode,
+ I have made things simple. Almost every function in libcurl returns a CURLcode,
that must be `CURLE_OK` if everything is OK or otherwise a suitable error
- code as the `curl/curl.h` include file defines. The very spot that detects an
+ code as the `curl/curl.h` include file defines. The place that detects an
error must use the `Curl_failf()` function to set the human-readable error
description.
@@ -475,7 +475,7 @@ Return Codes and Informationals
must supply a fair number of informational messages by using the
`Curl_infof()` function. Those messages are only displayed when the user
explicitly asks for them. They are best used when revealing information that
- isn't otherwise obvious.
+ is not otherwise obvious.
<a name="abi"></a>
API/ABI
@@ -553,7 +553,7 @@ Test Suite
`httpserver.pl` and `ftpserver.pl` before all the test cases are performed.
The test suite currently only runs on Unix-like platforms.
- You'll find a description of the test suite in the `tests/README` file, and
+ you will find a description of the test suite in the `tests/README` file, and
the test case data files in the `tests/FILEFORMAT` file.
The test suite automatically detects if curl was built with the memory
@@ -591,7 +591,7 @@ Asynchronous name resolves
Lastly, I also changed libcurl to be single-threaded rather than
multi-threaded, again this was to prevent some duplicate symbol errors. I'm
not sure why I needed to change everything to single-threaded, but when I
- didn't I got redefinition errors for several CRT functions (`malloc()`,
+ did not I got redefinition errors for several CRT functions (`malloc()`,
`stricmp()`, etc.)
<a name="curl_off_t"></a>
@@ -716,8 +716,8 @@ Content Encoding
## `CURLRES_IPV6`
this host has `getaddrinfo()` and family, and thus we use that. The host may
- not be able to resolve IPv6, but we don't really have to take that into
- account. Hosts that aren't IPv6-enabled have `CURLRES_IPV4` defined.
+ not be able to resolve IPv6, but we do not really have to take that into
+ account. Hosts that are not IPv6-enabled have `CURLRES_IPV4` defined.
## `CURLRES_ARES`
@@ -797,9 +797,9 @@ Track Down Memory Leaks
tests/memanalyze.pl dump
This now outputs a report on what resources that were allocated but never
- freed etc. This report is very fine for posting to the list!
+ freed etc. This report is fine for posting to the list!
- If this doesn't produce any output, no leak was detected in libcurl. Then
+ If this does not produce any output, no leak was detected in libcurl. Then
the leak is mostly likely to be in your code.
<a name="multi_socket"></a>
@@ -812,8 +812,7 @@ Track Down Memory Leaks
1. The application can use whatever event system it likes as it gets info
from libcurl about what file descriptors libcurl waits for what action
- on. (The previous API returns `fd_sets` which is very
- `select()`-centric).
+ on. (The previous API returns `fd_sets` which is `select()`-centric).
2. When the application discovers action on a single socket, it calls
libcurl and informs that there was action on this particular socket and
@@ -854,7 +853,7 @@ Structs in libcurl
==================
This section should cover 7.32.0 pretty accurately, but will make sense even
-for older and later versions as things don't change drastically that often.
+for older and later versions as things do not change drastically that often.
<a name="Curl_easy"></a>
## Curl_easy
@@ -900,7 +899,7 @@ for older and later versions as things don't change drastically that often.
performance boost.
Each `connectdata` identifies a single physical connection to a server. If
- the connection can't be kept alive, the connection will be closed after use
+ the connection cannot be kept alive, the connection will be closed after use
and then this struct can be removed from the cache and freed.
Thus, the same `Curl_easy` can be used multiple times and each time select
@@ -978,7 +977,7 @@ for older and later versions as things don't change drastically that often.
The concrete function pointer prototypes can be found in `lib/urldata.h`.
- `->scheme` is the URL scheme name, usually spelled out in uppercase. That's
+ `->scheme` is the URL scheme name, usually spelled out in uppercase. That is
"HTTP" or "FTP" etc. SSL versions of the protocol need their own
`Curl_handler` setup so HTTPS separate from HTTP.
@@ -1008,7 +1007,7 @@ for older and later versions as things don't change drastically that often.
`->doing` keeps getting called while issuing the transfer request command(s)
- `->done` gets called when the transfer is complete and DONE. That's after the
+ `->done` gets called when the transfer is complete and DONE. That is after the
main data has been transferred.
`->do_more` gets called during the `DO_MORE` state. The FTP protocol uses
@@ -1049,12 +1048,12 @@ for older and later versions as things don't change drastically that often.
limit which "direction" of socket actions that the main engine will
concern itself with.
- - `PROTOPT_NONETWORK` - a protocol that doesn't use network (read `file:`)
+ - `PROTOPT_NONETWORK` - a protocol that does not use network (read `file:`)
- `PROTOPT_NEEDSPWD` - this protocol needs a password and will use a default
one unless one is provided
- - `PROTOPT_NOURLQUERY` - this protocol can't handle a query part on the URL
+ - `PROTOPT_NOURLQUERY` - this protocol cannot handle a query part on the URL
(?foo=bar)
<a name="conncache"></a>
@@ -1076,7 +1075,7 @@ for older and later versions as things don't change drastically that often.
holds.
Then individual `Curl_easy` structs can be made to share specific things
- that they otherwise wouldn't, such as cookies.
+ that they otherwise would not, such as cookies.
The `Curl_share` struct can currently hold cookies, DNS cache and the SSL
session cache.
@@ -1092,7 +1091,7 @@ for older and later versions as things don't change drastically that often.
[1]: https://curl.se/libcurl/c/curl_easy_setopt.html
[2]: https://curl.se/libcurl/c/curl_easy_init.html
-[3]: https://c-ares.haxx.se/
+[3]: https://c-ares.org/
[4]: https://tools.ietf.org/html/rfc7230 "RFC 7230"
[5]: https://curl.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
[6]: https://curl.se/docs/manpage.html#--compressed
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index eb31f70a4..910db4dd7 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -18,23 +18,24 @@ problems may have been fixed or changed somewhat since this was written!
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.8 DoH is not used for all name resolves when enabled
1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
2. TLS
2.1 CURLINFO_SSL_VERIFYRESULT has limited support
2.2 DER in keychain
2.3 Unable to use PKCS12 certificate with Secure Transport
- 2.4 Secure Transport won't import PKCS#12 client certificates without a password
+ 2.4 Secure Transport will not import PKCS#12 client certificates without a password
2.5 Client cert handling with Issuer DN differs between backends
2.6 CURL_GLOBAL_SSL
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
+ 2.9 TLS session cache does not work with TFO
2.10 Store TLS context per transfer instead of per connection
2.11 Schannel TLS 1.2 handshake bug in old Windows versions
2.12 FTPS with Schannel times out file list operation
2.14 Secure Transport disabling hostname validation also disables SNI
+ 2.15 Renegotiate from server may cause hang for OpenSSL backend
3. Email protocols
3.1 IMAP SEARCH ALL truncated response
@@ -52,7 +53,7 @@ problems may have been fixed or changed somewhat since this was written!
5.2 curl-config --libs contains private details
5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
5.4 Build with statically built dependency
- 5.5 can't handle Unicode arguments in non-Unicode builds on Windows
+ 5.5 cannot handle Unicode arguments in non-Unicode builds on Windows
5.7 Visual Studio project gaps
5.8 configure finding libs in wrong directory
5.9 Utilize Requires.private directives in libcurl.pc
@@ -65,13 +66,14 @@ problems may have been fixed or changed somewhat since this was written!
6.2 MIT Kerberos for Windows build
6.3 NTLM in system context uses wrong name
6.4 Negotiate and Kerberos V5 need a fake user name
- 6.5 NTLM doesn't support password with § character
+ 6.5 NTLM does not support password with § character
6.6 libcurl can fail to try alternatives with --proxy-any
- 6.7 Don't clear digest for single realm
+ 6.7 Do not clear digest for single realm
6.8 RTSP authentication breaks without redirect support
6.9 SHA-256 digest not supported in Windows SSPI builds
6.10 curl never completes Negotiate over HTTP
6.11 Negotiate on Windows fails
+ 6.12 cannot use Secure Transport with Crypto Token Kit
7. FTP
7.1 FTP without or slow 220 response
@@ -84,14 +86,15 @@ problems may have been fixed or changed somewhat since this was written!
7.8 Premature transfer end but healthy control channel
7.9 Passive transfer tries only one IP address
7.10 FTPS needs session reuse
+ 7.11 FTPS upload data loss with TLS 1.3
8. TELNET
- 8.1 TELNET and time limitations don't work
+ 8.1 TELNET and time limitations do not work
8.2 Microsoft telnet server
9. SFTP and SCP
- 9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct
- 9.2 wolfssh: publickey auth doesn't work
+ 9.1 SFTP does not do CURLOPT_POSTQUOTE correct
+ 9.2 wolfssh: publickey auth does not work
9.3 Remote recursive folder creation with SFTP
10. SOCKS
@@ -101,13 +104,13 @@ problems may have been fixed or changed somewhat since this was written!
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
+ 11.3 Disconnects do not do verbose
11.4 HTTP test server 'connection-monitor' problems
11.5 Connection information when using TCP Fast Open
11.6 slow connect to localhost on Windows
11.7 signal-based resolver timeouts
11.8 DoH leaks memory after followlocation
- 11.9 DoH doesn't inherit all transfer options
+ 11.9 DoH does not inherit all transfer options
11.10 Blocking socket operations in non-blocking API
11.11 A shared connection cache is not thread-safe
11.12 'no_proxy' string-matches IPv6 numerical addresses
@@ -119,7 +122,7 @@ problems may have been fixed or changed somewhat since this was written!
12. LDAP
12.1 OpenLDAP hangs after returning results
12.2 LDAP on Windows does authentication wrong?
- 12.3 LDAP on Windows doesn't work
+ 12.3 LDAP on Windows does not work
12.4 LDAPS with NSS is slow
13. TCP/IP
@@ -141,6 +144,7 @@ problems may have been fixed or changed somewhat since this was written!
15.10 libspsl is not supported
15.11 ExternalProject_Add does not set CURL_CA_PATH
15.12 cannot enable LDAPS on Windows
+ 15.13 CMake build with MIT Kerberos does not work
16. Applications
16.1 pulseUI VPN client
@@ -150,11 +154,18 @@ problems may have been fixed or changed somewhat since this was written!
17.2 HTTP/2 frames while in the connection pool kill reuse
17.3 ENHANCE_YOUR_CALM causes infinite retries
17.4 Connection failures with parallel HTTP/2
+ 17.5 HTTP/2 connections through HTTPS proxy frequently stall
18. HTTP/3
18.1 If the HTTP/3 server closes connection during upload curl hangs
18.2 Uploading HTTP/3 files gets interrupted at certain file sizes
18.3 HTTP/3 download is 5x times slower than HTTP/2
+ 18.4 Downloading with HTTP/3 produces broken files
+ 18.5 HTTP/3 download with quiche halts after a while
+ 18.6 HTTP/3 multipart POST with quiche fails
+ 18.7 HTTP/3 quiche upload large file fails
+ 18.8 HTTP/3 does not support client certs
+ 18.9 connection migration does not work
==============================================================================
@@ -207,11 +218,11 @@ problems may have been fixed or changed somewhat since this was written!
See https://github.com/curl/curl/issues/2719
-1.8 DoH isn't used for all name resolves when enabled
+1.8 DoH is not used for all name resolves when enabled
Even if DoH is specified to be used, there are some name resolves that are
done without it. This should be fixed. When the internal function
- `Curl_resolver_wait_resolv()` is called, it doesn't use DoH to complete the
+ `Curl_resolver_wait_resolv()` is called, it does not use DoH to complete the
resolve as it otherwise should.
See https://github.com/curl/curl/pull/3857 and
@@ -220,11 +231,11 @@ problems may have been fixed or changed somewhat since this was written!
1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
I'm using libcurl to POST form data using a FILE* with the CURLFORM_STREAM
- option of curl_formadd(). I've noticed that if the connection drops at just
+ option of curl_formadd(). I have noticed that if the connection drops at just
the right time, the POST is reattempted without the data from the file. It
- seems like the file stream position isn't getting reset to the beginning of
+ seems like the file stream position is not getting reset to the beginning of
the file. I found the CURLOPT_SEEKFUNCTION option and set that with a
- function that performs an fseek() on the FILE*. However, setting that didn't
+ function that performs an fseek() on the FILE*. However, setting that did not
seem to fix the issue or even get called. See
https://github.com/curl/curl/issues/768
@@ -238,14 +249,14 @@ problems may have been fixed or changed somewhat since this was written!
2.2 DER in keychain
- Curl doesn't recognize certificates in DER format in keychain, but it works
+ Curl does not recognize certificates in DER format in keychain, but it works
with PEM. https://curl.se/bug/view.cgi?id=1065
2.3 Unable to use PKCS12 certificate with Secure Transport
See https://github.com/curl/curl/issues/5403
-2.4 Secure Transport won't import PKCS#12 client certificates without a password
+2.4 Secure Transport will not import PKCS#12 client certificates without a password
libcurl calls SecPKCS12Import with the PKCS#12 client certificate, but that
function rejects certificates that do not have a password.
@@ -253,7 +264,7 @@ problems may have been fixed or changed somewhat since this was written!
2.5 Client cert handling with Issuer DN differs between backends
- When the specified client certificate doesn't match any of the
+ When the specified client certificate does not match any of the
server-specified DNs, the OpenSSL and GnuTLS backends behave differently.
The github discussion may contain a solution.
@@ -277,7 +288,7 @@ problems may have been fixed or changed somewhat since this was written!
get "good" random) so applications trying to avoid the init for
performance reasons would do wrong anyway
- D) never very carefully documented so all this mostly just happened to work
+ D) not documented carefully so all this mostly just happened to work
for some users
However, in spite of the problems with the feature, there were some users who
@@ -297,7 +308,7 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/3284
-2.9 TLS session cache doesn't work with TFO
+2.9 TLS session cache does not work with TFO
See https://github.com/curl/curl/issues/4301
@@ -339,6 +350,17 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/6347
+2.15 Renegotiate from server may cause hang for OpenSSL backend
+
+ A race condition has been observed when, immediately after the initial
+ handshake, curl has sent an HTTP request to the server and at the same time
+ the server has sent a TLS hello request (renegotiate) to curl. Both are
+ waiting for the other to respond. OpenSSL is supposed to send a handshake
+ response but does not.
+
+ https://github.com/curl/curl/issues/6785
+ https://github.com/openssl/openssl/issues/14722
+
3. Email protocols
3.1 IMAP SEARCH ALL truncated response
@@ -361,7 +383,7 @@ problems may have been fixed or changed somewhat since this was written!
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
+ Specifying "--login-options AUTH=PLAIN" on the command line does not seem to
work correctly.
See https://github.com/curl/curl/issues/4080
@@ -370,7 +392,7 @@ problems may have been fixed or changed somewhat since this was written!
4.1 -J and -O with %-encoded file names
- -J/--remote-header-name doesn't decode %-encoded file names. RFC6266 details
+ -J/--remote-header-name does not decode %-encoded file names. RFC6266 details
how it should be done. The can of worm is basically that we have no charset
handling in curl and ascii >=128 is a challenge for us. Not to mention that
decoding also means that we need to check for nastiness that is attempted,
@@ -378,10 +400,10 @@ problems may have been fixed or changed somewhat since this was written!
embedded slashes should be cut off.
https://curl.se/bug/view.cgi?id=1294
- -O also doesn't decode %-encoded names, and while it has even less
+ -O also does not decode %-encoded names, and while it has even less
information about the charset involved the process is similar to the -J case.
- Note that we won't add decoding to -O without the user asking for it with
+ Note that we will not add decoding to -O without the user asking for it with
some other means as well, since -O has always been documented to use the name
exactly as specified in the URL.
@@ -396,7 +418,7 @@ problems may have been fixed or changed somewhat since this was written!
4.3 --retry and transfer timeouts
If using --retry and the transfer timeouts (possibly due to using -m or
- -y/-Y) the next attempt doesn't resume the transfer properly from what was
+ -y/-Y) the next attempt does not resume the transfer properly from what was
downloaded in the previous attempt but will truncate and restart at the
original position where it was at before the previous failed attempt. See
https://curl.se/mail/lib-2008-01/0080.html and Mandriva bug report
@@ -444,13 +466,13 @@ problems may have been fixed or changed somewhat since this was written!
We welcome help to improve curl's ability to link with static libraries, but
it is likely a task that we can never fully support.
-5.5 can't handle Unicode arguments in non-Unicode builds on Windows
+5.5 cannot handle Unicode arguments in non-Unicode builds on Windows
- If a URL or filename can't be encoded using the user's current codepage then
+ If a URL or filename cannot be encoded using the user's current codepage then
it can only be encoded properly in the Unicode character set. Windows uses
UTF-16 encoding for Unicode and stores it in wide characters, however curl
and libcurl are not equipped for that at the moment except when built with
- _UNICODE and UNICODE defined. And, except for Cygwin, Windows can't use UTF-8
+ _UNICODE and UNICODE defined. And, except for Cygwin, Windows cannot use UTF-8
as a locale.
https://curl.se/bug/?i=345
@@ -507,10 +529,10 @@ problems may have been fixed or changed somewhat since this was written!
5.12 flaky Windows CI builds
We run many CI builds for each commit and PR on github, and especially a
- number of the Windows builds are very flaky. This means that we rarely get
- all CI builds go green and complete without errors. This is very unfortunate
- as it makes us sometimes miss actual build problems and it is surprising to
- newcomers to the project who (rightfully) don't expect this.
+ number of the Windows builds are flaky. This means that we rarely get all CI
+ builds go green and complete without errors. This is unfortunate as it makes
+ us sometimes miss actual build problems and it is surprising to newcomers to
+ the project who (rightfully) do not expect this.
See https://github.com/curl/curl/issues/6972
@@ -551,7 +573,7 @@ problems may have been fixed or changed somewhat since this was written!
new conn->bits.want_authentication which is set when any of the authentication
options are set.
-6.5 NTLM doesn't support password with § character
+6.5 NTLM does not support password with § character
https://github.com/curl/curl/issues/2120
@@ -561,12 +583,12 @@ problems may have been fixed or changed somewhat since this was written!
authentication will cause libcurl to abort trying other options if the
failed method has a higher preference than the alternatives. As an example,
--proxy-any against a proxy which advertise Negotiate and NTLM, but which
- fails to set up Kerberos authentication won't proceed to try authentication
+ fails to set up Kerberos authentication will not proceed to try authentication
using NTLM.
https://github.com/curl/curl/issues/876
-6.7 Don't clear digest for single realm
+6.7 Do not clear digest for single realm
https://github.com/curl/curl/issues/3267
@@ -592,7 +614,7 @@ problems may have been fixed or changed somewhat since this was written!
6.10 curl never completes Negotiate over HTTP
- Apparently it isn't working correctly...?
+ Apparently it is not working correctly...?
See https://github.com/curl/curl/issues/5235
@@ -604,6 +626,9 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/5881
+6.12 cannot use Secure Transport with Crypto Token Kit
+
+ https://github.com/curl/curl/issues/7048
7. FTP
@@ -620,7 +645,7 @@ problems may have been fixed or changed somewhat since this was written!
When doing FTP over a socks proxy or CONNECT through HTTP proxy and the multi
interface is used, libcurl will fail if the (passive) TCP connection for the
- data transfer isn't more or less instant as the code does not properly wait
+ data transfer is not more or less instant as the code does not properly wait
for the connect to be confirmed. See test case 564 for a first shot at a test
case.
@@ -633,13 +658,13 @@ problems may have been fixed or changed somewhat since this was written!
7.4 FTP with ACCT
When doing an operation over FTP that requires the ACCT command (but not when
- logging in), the operation will fail since libcurl doesn't detect this and
+ logging in), the operation will fail since libcurl does not detect this and
thus fails to issue the correct command:
https://curl.se/bug/view.cgi?id=635
7.5 ASCII FTP
- FTP ASCII transfers do not follow RFC959. They don't convert the data
+ FTP ASCII transfers do not follow RFC959. They do not convert the data
accordingly (not for sending nor for receiving). RFC 959 section 3.1.1.1
clearly describes how this should be done:
@@ -675,12 +700,12 @@ problems may have been fixed or changed somewhat since this was written!
When 'multi_done' is called before the transfer has been completed the normal
way, it is considered a "premature" transfer end. In this situation, libcurl
- closes the connection assuming it doesn't know the state of the connection so
- it can't be reused for subsequent requests.
+ closes the connection assuming it does not know the state of the connection so
+ it cannot be reused for subsequent requests.
- With FTP however, this isn't necessarily true but there are a bunch of
+ With FTP however, this is not necessarily true but there are a bunch of
situations (listed in the ftp_done code) where it *could* keep the connection
- alive even in this situation - but the current code doesn't. Fixing this would
+ alive even in this situation - but the current code does not. Fixing this would
allow libcurl to reuse FTP connections better.
7.9 Passive transfer tries only one IP address
@@ -702,11 +727,28 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/4654
+7.11 FTPS upload data loss with TLS 1.3
+
+ During FTPS upload curl does not attempt to read TLS handshake messages sent
+ after the initial handshake. OpenSSL servers running TLS 1.3 may send such a
+ message. When curl closes the upload connection if unread data has been
+ received (such as a TLS handshake message) then the TCP protocol sends an
+ RST to the server, which may cause the server to discard or truncate the
+ upload if it has not read all sent data yet, and then return an error to curl
+ on the control channel connection.
+
+ Since 7.78.0 this is mostly fixed. curl will do a single read before closing
+ TLS connections (which causes the TLS library to read handshake messages),
+ however there is still possibility of an RST if more messages need to be read
+ or a message arrives after the read but before close (network race condition).
+
+ https://github.com/curl/curl/issues/6149
+
8. TELNET
-8.1 TELNET and time limitations don't work
+8.1 TELNET and time limitations do not work
- When using telnet, the time limitation options don't work.
+ When using telnet, the time limitation options do not work.
https://curl.se/bug/view.cgi?id=846
8.2 Microsoft telnet server
@@ -717,7 +759,7 @@ problems may have been fixed or changed somewhat since this was written!
9. SFTP and SCP
-9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct
+9.1 SFTP does not do CURLOPT_POSTQUOTE correct
When libcurl sends CURLOPT_POSTQUOTE commands when connected to a SFTP server
using the multi interface, the commands are not being sent correctly and
@@ -726,10 +768,10 @@ problems may have been fixed or changed somewhat since this was written!
report but it cannot be accepted as-is. See
https://curl.se/bug/view.cgi?id=748
-9.2 wolfssh: publickey auth doesn't work
+9.2 wolfssh: publickey auth does not work
When building curl to use the wolfSSH backend for SFTP, the publickey
- authentication doesn't work. This is simply functionality not written for curl
+ authentication does not work. This is simply functionality not written for curl
yet, the necessary API for make this work is provided by wolfSSH.
See https://github.com/curl/curl/issues/4820
@@ -746,11 +788,11 @@ problems may have been fixed or changed somewhat since this was written!
10.3 FTPS over SOCKS
- libcurl doesn't support FTPS over a SOCKS proxy.
+ libcurl does not support FTPS over a SOCKS proxy.
10.4 active FTP over a SOCKS
- libcurl doesn't support active FTP over a SOCKS proxy
+ libcurl does not support active FTP over a SOCKS proxy
11. Internals
@@ -770,21 +812,27 @@ problems may have been fixed or changed somewhat since this was written!
CURLE_COULDNT_CONNECT. But the error buffer set by CURLOPT_ERRORBUFFER
remains empty. Issue: https://github.com/curl/curl/issues/544
-11.3 c-ares deviates from stock resolver on http://1346569778
-
- When using the socket resolvers, that URL becomes:
+11.3 Disconnects do not do verbose
- * Rebuilt URL to: http://1346569778/
- * Trying 80.67.6.50...
+ Due to how libcurl keeps connections alive in the "connection pool" after use
+ to potentially transcend the life-time of the initial easy handle that was
+ used to drive the transfer over that connection, it uses a *separate* and
+ internal easy handle when it shuts down the connection. That separate
+ connection might not have the exact same settings as the original easy
+ handle, and in particular it is often note-worthy that it does not have the
+ same VERBOSE and debug callbacks setup so that an application will not get
+ the protocol data for the disconnect phase of a transfer the same way it got
+ all the other data.
- but with c-ares it instead says "Could not resolve: 1346569778 (Domain name
- not found)"
+ This is because the original easy handle might have already been freed at that
+ point and the application might not at all be prepared that the callback
+ would get called again long after the handle was freed.
- See https://github.com/curl/curl/issues/893
+ See for example https://github.com/curl/curl/issues/6995
11.4 HTTP test server 'connection-monitor' problems
- The 'connection-monitor' feature of the sws HTTP test server doesn't work
+ The 'connection-monitor' feature of the sws HTTP test server does not work
properly if some tests are run in unexpected order. Like 1509 and then 1525.
See https://github.com/curl/curl/issues/868
@@ -805,7 +853,7 @@ problems may have been fixed or changed somewhat since this was written!
HAPPY_EYEBALLS_TIMEOUT define exactly. Lowering that define speeds up the
connection, suggesting a problem in the HE handling.
- If we can *know* that we're talking to a local host, we should lower the
+ If we can *know* that we are talking to a local host, we should lower the
happy eyeballs delay timeout for IPv6 (related: hardcode the "localhost"
addresses, mentioned in TODO). Possibly we should reduce that delay for all.
@@ -827,7 +875,7 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/4592
-11.9 DoH doesn't inherit all transfer options
+11.9 DoH does not inherit all transfer options
Some options are not inherited because they are not relevant for the DoH SSL
connections, or inheriting the option may result in unexpected behavior. For
@@ -855,7 +903,7 @@ problems may have been fixed or changed somewhat since this was written!
11.12 'no_proxy' string-matches IPv6 numerical addresses
- This has the downside that "::1" for example doesn't match "::0:1" even
+ This has the downside that "::1" for example does not match "::0:1" even
though they are in fact the same address.
See https://github.com/curl/curl/issues/5745
@@ -924,7 +972,7 @@ problems may have been fixed or changed somewhat since this was written!
https://github.com/curl/curl/issues/3116
-12.3 LDAP on Windows doesn't work
+12.3 LDAP on Windows does not work
A simple curl command line getting "ldap://ldap.forumsys.com" returns an
error that says "no memory" !
@@ -940,7 +988,7 @@ problems may have been fixed or changed somewhat since this was written!
13.1 --interface for ipv6 binds to unusable IP address
Since IPv6 provides a lot of addresses with different scope, binding to an
- IPv6 address needs to take the proper care so that it doesn't bind to a
+ IPv6 address needs to take the proper care so that it does not bind to a
locally scoped address as that is bound to fail.
https://github.com/curl/curl/issues/686
@@ -949,7 +997,7 @@ problems may have been fixed or changed somewhat since this was written!
14.1 DICT responses show the underlying protocol
- When getting a DICT response, the protocol parts of DICT aren't stripped off
+ When getting a DICT response, the protocol parts of DICT are not stripped off
from the output.
https://github.com/curl/curl/issues/1809
@@ -971,13 +1019,13 @@ problems may have been fixed or changed somewhat since this was written!
15.4 build docs/curl.1
- The cmake build doesn't create the docs/curl.1 file and therefor must rely on
+ The cmake build does not create the docs/curl.1 file and therefore must rely on
it being there already. This makes the --manual option not work and test
- cases like 1139 can't function.
+ cases like 1139 cannot function.
15.5 build on Linux links libcurl to libdl
- ... which it shouldn't need to!
+ ... which it should not need to!
See https://github.com/curl/curl/issues/6165
@@ -1022,6 +1070,17 @@ problems may have been fixed or changed somewhat since this was written!
See https://github.com/curl/curl/issues/6284
+15.13 CMake build with MIT Kerberos does not work
+
+ Minimum CMake version was bumped in curl 7.71.0 (#5358) Since CMake 3.2
+ try_compile started respecting the CMAKE_EXE_FLAGS. The code dealing with
+ MIT Kerberos detection sets few variables to potentially weird mix of space,
+ and ;-separated flags. It had to blow up at some point. All the CMake checks
+ that involve compilation are doomed from that point, the configured tree
+ cannot be built.
+
+ https://github.com/curl/curl/issues/6904
+
16. Applications
16.1 pulseUI VPN client
@@ -1029,7 +1088,7 @@ problems may have been fixed or changed somewhat since this was written!
This application crashes at startup with libcurl 7.74.0 (and presumably later
versions too) after we cleaned up OpenSSL initialization. Since this is the
only known application to do this, we suspect it is related to something they
- are doing in their setup that isn't kosher. We have not been able to get in
+ are doing in their setup that is not kosher. We have not been able to get in
contact with them nor got any technical details to help us debug this
further.
@@ -1070,6 +1129,9 @@ problems may have been fixed or changed somewhat since this was written!
See https://github.com/curl/curl/issues/5611
+17.5 HTTP/2 connections through HTTPS proxy frequently stall
+
+ See https://github.com/curl/curl/issues/6936
18. HTTP/3
@@ -1084,3 +1146,29 @@ problems may have been fixed or changed somewhat since this was written!
18.3 HTTP/3 download is 5x times slower than HTTP/2
See https://github.com/curl/curl/issues/6494
+
+18.4 Downloading with HTTP/3 produces broken files
+
+ See https://github.com/curl/curl/issues/7351
+
+18.5 HTTP/3 download with quiche halts after a while
+
+ See https://github.com/curl/curl/issues/7339
+
+18.6 HTTP/3 multipart POST with quiche fails
+
+ https://github.com/curl/curl/issues/7125
+
+18.7 HTTP/3 quiche upload large file fails
+
+ https://github.com/curl/curl/issues/7532
+
+18.8 HTTP/3 does not support client certs
+
+ aka "mutual authentication".
+
+ https://github.com/curl/curl/issues/7625
+
+18.9 connection migration does not work
+
+ https://github.com/curl/curl/issues/7695
diff --git a/docs/MAIL-ETIQUETTE b/docs/MAIL-ETIQUETTE
index 80d06b640..2d54e0a4b 100644
--- a/docs/MAIL-ETIQUETTE
+++ b/docs/MAIL-ETIQUETTE
@@ -39,9 +39,9 @@ MAIL ETIQUETTE
Each mailing list is targeted to a specific set of users and subjects,
please use the one or the ones that suit you the most.
- Each mailing list has hundreds up to thousands of readers, meaning that
- each mail sent will be received and read by a very large number of people.
- People from various cultures, regions, religions and continents.
+ Each mailing list has hundreds up to thousands of readers, meaning that each
+ mail sent will be received and read by a large number of people. People
+ from various cultures, regions, religions and continents.
1.2 Netiquette
@@ -80,7 +80,7 @@ MAIL ETIQUETTE
1.5 Moderation of new posters
Several of the curl mailing lists automatically make all posts from new
- subscribers be moderated. This means that after you've subscribed and
+ subscribers be moderated. This means that after you have subscribed and
sent your first mail to a list, that mail will not be let through to the
list until a mailing list administrator has verified that it is OK and
permits it to get posted.
@@ -111,12 +111,12 @@ MAIL ETIQUETTE
anything good and only puts the light even more on the offender: which was
the entire purpose of it getting sent to the list in the first place.
- Don't feed the trolls!
+ Do not feed the trolls!
1.7 How to unsubscribe
You can unsubscribe the same way you subscribed in the first place. You go
- to the page for the particular mailing list you're subscribed to and you enter
+ to the page for the particular mailing list you are subscribed to and you enter
your email address and password and press the unsubscribe button.
Also, the instructions to unsubscribe are included in the headers of every
@@ -129,24 +129,24 @@ MAIL ETIQUETTE
1.8 I posted, now what?
- If you aren't subscribed with the exact same email address that you used to
+ If you are not subscribed with the exact same email address that you used to
send the email, your post will just be silently discarded.
If you posted for the first time to the mailing list, you first need to wait
- for an administrator to allow your email to go through (moderated). This normally
- happens very quickly but in case we're asleep, you may have to wait a few
- hours.
+ for an administrator to allow your email to go through (moderated). This
+ normally happens quickly but in case we are asleep, you may have to wait a
+ few hours.
Once your email goes through it is sent out to several hundred or even
- thousands of recipients. Your email may cover an area that not that many people
- know about or are interested in. Or possibly the person who knows about it
- is on vacation or under a very heavy work load right now. You may have to wait
- for a response and you should not expect to get a response at all, but
- hopefully you get an answer within a couple of days.
+ thousands of recipients. Your email may cover an area that not that many
+ people know about or are interested in. Or possibly the person who knows
+ about it is on vacation or under a heavy work load right now. You may have
+ to wait for a response and you should not expect to get a response at all,
+ but hopefully you get an answer within a couple of days.
You do yourself and all of us a service when you include as many details as
possible already in your first email. Mention your operating system and
- environment. Tell us which curl version you're using and tell us what you
+ environment. Tell us which curl version you are using and tell us what you
did, what happened and what you expected would happen. Preferably, show us
what you did with details enough to allow others to help point out the problem
or repeat the same steps in their locations.
@@ -194,7 +194,7 @@ MAIL ETIQUETTE
Many mail programs and web archivers use information within mails to keep
them together as "threads", as collections of posts that discuss a certain
- subject. If you don't intend to reply on the same or similar subject, don't
+ subject. If you do not intend to reply on the same or similar subject, do not
just hit reply on an existing mail and change subject, create a new mail.
2.2 Reply to the List
@@ -203,7 +203,7 @@ MAIL ETIQUETTE
reply" or "reply to all", and not just reply to the author of the single
mail you reply to.
- We're actively discouraging replying back to the single person by setting
+ We are actively discouraging replying back to the single person by setting
the Reply-To: field in outgoing mails back to the mailing list address,
making it harder for people to mail the author directly, if only by mistake.
@@ -215,7 +215,7 @@ MAIL ETIQUETTE
2.4 Do Not Top-Post
- If you reply to a message, don't use top-posting. Top-posting is when you
+ If you reply to a message, do not use top-posting. Top-posting is when you
write the new text at the top of a mail and you insert the previous quoted
mail conversation below. It forces users to read the mail in a backwards
order to properly understand it.
@@ -233,13 +233,13 @@ MAIL ETIQUETTE
When you reply to a mail. You let the mail client insert the previous mail
quoted. Then you put the cursor on the first line of the mail and you move
- down through the mail, deleting all parts of the quotes that don't add
+ down through the mail, deleting all parts of the quotes that do not add
context for your comments. When you want to add a comment you do so, inline,
right after the quotes that relate to your comment. Then you continue
downwards again.
- When most of the quotes have been removed and you've added your own words,
- you're done!
+ When most of the quotes have been removed and you have added your own words,
+ you are done!
2.5 HTML is not for mails
diff --git a/docs/MQTT.md b/docs/MQTT.md
index 741b07297..0f034f72e 100644
--- a/docs/MQTT.md
+++ b/docs/MQTT.md
@@ -21,9 +21,7 @@ payload.
## Caveats
Remaining limitations:
- - No username support
- Only QoS level 0 is implemented for publish
- No way to set retain flag for publish
- - No username/password support
- No TLS (mqtts) support
- - Naive EAGAIN handling won't handle split messages
+ - Naive EAGAIN handling will not handle split messages
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 656d1ace0..5d5888ccb 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -31,7 +31,7 @@ GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html
PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf
MANDISTPAGES = curl.1.dist curl-config.1.dist
-HTMLPAGES = $(GENHTMLPAGES) index.html
+HTMLPAGES = $(GENHTMLPAGES)
# Build targets in this file (.) before cmdline-opts to ensure that
# the curl.1 rule below runs first
diff --git a/docs/NEW-PROTOCOL.md b/docs/NEW-PROTOCOL.md
index 9984eea2a..2a9af6f39 100644
--- a/docs/NEW-PROTOCOL.md
+++ b/docs/NEW-PROTOCOL.md
@@ -48,7 +48,7 @@ you are up for a tough argument.
### URL
There should be a documented URL format. If there is an RFC for it there is no
-question about it but the syntax doesn't have to be a published RFC. It could
+question about it but the syntax does not have to be a published RFC. It could
be enough if it is already in use by other implementations.
If you make up the syntax just in order to be able to propose it to curl, then
@@ -80,7 +80,7 @@ As much of the protocol implementation as possible needs to be verified by
curl test cases. We must have the implementation get tested by CI jobs,
torture tests and more.
-We've experienced many times in the past how new implementations were brought
+We have experienced many times in the past how new implementations were brought
to curl and immediately once the code had been merged, the originator vanished
from the face of the earth. That is fine, but we need to take the necessary
precautions so when it happens we are still fine.
@@ -100,11 +100,11 @@ little easier!
The protocol specification itself should be freely available without requiring
any NDA or similar.
-## Don't compare
+## Do not compare
We are constantly raising the bar and we are constantly improving the
project. A lot of things we did in the past would not be acceptable if done
today. Therefore, you might be tempted to use shortcuts or "hacks" you can
spot other - existing - protocol implementations have used, but there is
-nothing to gain from that. The bar has been raised. Former "cheats" won't be
+nothing to gain from that. The bar has been raised. Former "cheats" will not be
tolerated anymore.
diff --git a/docs/PARALLEL-TRANSFERS.md b/docs/PARALLEL-TRANSFERS.md
index da688ea05..6282fe516 100644
--- a/docs/PARALLEL-TRANSFERS.md
+++ b/docs/PARALLEL-TRANSFERS.md
@@ -40,7 +40,7 @@ Example:
Connections are shared fine between different easy handles, but the
"authentication contexts" are not. So for example doing HTTP Digest auth with
one handle for a particular transfer and then continue on with another handle
-that reuses the same connection, the second handle can't send the necessary
+that reuses the same connection, the second handle cannot send the necessary
Authorization header at once since the context is only kept in the original
easy handle.
diff --git a/docs/README.md b/docs/README.md
index 078385043..b72d8bc45 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -2,11 +2,11 @@
# Documentation
-You'll find a mix of various documentation in this directory and
+you will find a mix of various documentation in this directory and
subdirectories, using several different formats. Some of them are not ideal
for reading directly in your browser.
-If you'd rather see the rendered version of the documentation, check out the
+If you would rather see the rendered version of the documentation, check out the
curl website's [documentation section](https://curl.se/docs/) for
general curl stuff or the [libcurl section](https://curl.se/libcurl/) for
libcurl related documentation.
diff --git a/docs/RELEASE-PROCEDURE.md b/docs/RELEASE-PROCEDURE.md
index 3faad6511..26d5dedba 100644
--- a/docs/RELEASE-PROCEDURE.md
+++ b/docs/RELEASE-PROCEDURE.md
@@ -95,16 +95,17 @@ Coming dates
Based on the description above, here are some planned release dates (at the
time of this writing):
-- March 31, 2021 (7.76.0)
-- May 26, 2021
-- July 21, 2021
-- September 15, 2021
+- September 15, 2021 (7.79.0)
- November 10, 2021
- January 5, 2022
- March 2, 2022
- April 27, 2022
- June 22, 2022
- August 17, 2022
+- October 12, 2022
+- December 7, 2022
+- February 1, 2023
+- March 20, 2023 (8.0.0)
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)
diff --git a/docs/SECURITY-PROCESS.md b/docs/SECURITY-PROCESS.md
index a5d487adf..f13d6d3aa 100644
--- a/docs/SECURITY-PROCESS.md
+++ b/docs/SECURITY-PROCESS.md
@@ -62,19 +62,20 @@ announcement.
- Request a CVE number from
[HackerOne](https://docs.hackerone.com/programs/cve-requests.html)
-- Consider informing
- [distros@openwall](https://oss-security.openwall.org/wiki/mailing-lists/distros)
- to prepare them about the upcoming public security vulnerability
- announcement - attach the advisory draft for information. Note that
- 'distros' won't accept an embargo longer than 14 days and they do not care
- for Windows-specific flaws.
-
- Update the "security advisory" with the CVE number.
- The security team commits the fix in a private branch. The commit message
- should ideally contain the CVE number. This fix is usually also distributed
- to the 'distros' mailing list to allow them to use the fix prior to the
- public announcement.
+ should ideally contain the CVE number.
+
+- The security team also decides on and delivers a monetary reward to the
+ reporter as per the bug-bounty polices.
+
+- No more than 10 days before release, inform
+ [distros@openwall](https://oss-security.openwall.org/wiki/mailing-lists/distros)
+ to prepare them about the upcoming public security vulnerability
+ announcement - attach the advisory draft for information with CVE and
+ current patch. 'distros' does not accept an embargo longer than 14 days and
+ they do not care for Windows-specific flaws.
- No more than 48 hours before the release, the private branch is merged into
the master branch and pushed. Once pushed, the information is accessible to
@@ -91,18 +92,18 @@ announcement.
- The security web page on the website should get the new vulnerability
mentioned.
-curl-security (at haxx dot se)
+security (at curl dot se)
------------------------------
This is a private mailing list for discussions on and about curl security
issues.
Who is on this list? There are a couple of criteria you must meet, and then we
-might ask you to join the list or you can ask to join it. It really isn't very
-formal. We basically only require that you have a long-term presence in the
-curl project and you have shown an understanding for the project and its way
-of working. You must've been around for a good while and you should have no
-plans in vanishing in the near future.
+might ask you to join the list or you can ask to join it. It really is not a
+formal process. We basically only require that you have a long-term presence
+in the curl project and you have shown an understanding for the project and
+its way of working. You must have been around for a good while and you should
+have no plans in vanishing in the near future.
We do not make the list of participants public mostly because it tends to vary
somewhat over time and a list somewhere will only risk getting outdated.
diff --git a/docs/SSL-PROBLEMS.md b/docs/SSL-PROBLEMS.md
index 54f985344..3ba601aaa 100644
--- a/docs/SSL-PROBLEMS.md
+++ b/docs/SSL-PROBLEMS.md
@@ -24,12 +24,12 @@
When using said CA bundle to verify a server cert, you will experience
problems if your CA store does not contain the certificates for the
- intermediates if the server doesn't provide them.
+ intermediates if the server does not provide them.
The TLS protocol mandates that the intermediate certificates are sent in the
handshake, but as browsers have ways to survive or work around such
omissions, missing intermediates in TLS handshakes still happen that
- browser-users won't notice.
+ browser-users will not notice.
Browsers work around this problem in two ways: they cache intermediate
certificates from previous transfers and some implement the TLS "AIA"
@@ -51,7 +51,7 @@
## Ciphers
- Clients give servers a list of ciphers to select from. If the list doesn't
+ Clients give servers a list of ciphers to select from. If the list does not
include any ciphers the server wants/can use, the connection handshake
fails.
@@ -76,7 +76,7 @@
BEAST is the name of a TLS 1.0 attack that surfaced 2011. When adding means
to mitigate this attack, it turned out that some broken servers out there in
- the wild didn't work properly with the BEAST mitigation in place.
+ the wild did not work properly with the BEAST mitigation in place.
To make such broken servers work, the --ssl-allow-beast option was
introduced. Exactly as it sounds, it re-introduces the BEAST vulnerability
@@ -89,7 +89,7 @@
depending on the OS or build configuration. The --ssl-no-revoke option was
introduced in 7.44.0 to disable revocation checking but currently is only
supported for Schannel (the native Windows SSL library), with an exception
- in the case of Windows' Untrusted Publishers block list which it seems can't
+ in the case of Windows' Untrusted Publishers block list which it seems cannot
be bypassed. This option may have broader support to accommodate other SSL
backends in the future.
diff --git a/docs/SSLCERTS.md b/docs/SSLCERTS.md
index 415b540ad..0aeab3b16 100644
--- a/docs/SSLCERTS.md
+++ b/docs/SSLCERTS.md
@@ -13,7 +13,7 @@ Native SSL
If libcurl was built with Schannel or Secure Transport support (the native SSL
libraries included in Windows and Mac OS X), then this does not apply to
you. Scroll down for details on how the OS-native engines handle SSL
-certificates. If you're not sure, then run "curl -V" and read the results. If
+certificates. If you are not sure, then run "curl -V" and read the results. If
the version string says `Schannel` in it, then it was built with Schannel
support.
@@ -22,11 +22,11 @@ It is about trust
This system is about trust. In your local CA certificate store you have certs
from *trusted* Certificate Authorities that you then can use to verify that the
-server certificates you see are valid. They're signed by one of the CAs you
+server certificates you see are valid. they are signed by one of the CAs you
trust.
Which CAs do you trust? You can decide to trust the same set of companies your
-operating system trusts, or the set one of the known browsers trust. That's
+operating system trusts, or the set one of the known browsers trust. That is
basically trust via someone else you trust. You should just be aware that
modern operating systems and browsers are setup to trust *hundreds* of
companies and recent years several such CAs have been found untrustworthy.
@@ -42,8 +42,8 @@ If you communicate with HTTPS, FTPS or other TLS-using servers using
certificates that are signed by CAs present in the store, you can be sure
that the remote server really is the one it claims to be.
-If the remote server uses a self-signed certificate, if you don't install a CA
-cert store, if the server uses a certificate signed by a CA that isn't
+If the remote server uses a self-signed certificate, if you do not install a CA
+cert store, if the server uses a certificate signed by a CA that is not
included in the store you use or if the remote host is an impostor
impersonating your favorite site, and you want to transfer files from this
server, do one of the following:
@@ -103,11 +103,11 @@ server, do one of the following:
certificate store or use it stand-alone as described. Just remember that
the security is no better than the way you obtained the certificate.
- 4. If you're using the curl command line tool, you can specify your own CA
+ 4. If you are using the curl command line tool, you can specify your own CA
cert file by setting the environment variable `CURL_CA_BUNDLE` to the path
of your choice.
- If you're using the curl command line tool on Windows, curl will search
+ If you are using the curl command line tool on Windows, curl will search
for a CA cert file named "curl-ca-bundle.crt" in these directories and in
this order:
1. application's directory
@@ -122,7 +122,7 @@ server, do one of the following:
way for you: [CA Extract](https://curl.se/docs/caextract.html)
Neglecting to use one of the above methods when dealing with a server using a
-certificate that isn't signed by one of the certificates in the installed CA
+certificate that is not signed by one of the certificates in the installed CA
certificate store, will cause SSL to report an error ("certificate verify
failed") during the handshake and SSL will then refuse further communication
with that server.
diff --git a/docs/THANKS b/docs/THANKS
index f003461c4..82755c72d 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -4,15 +4,19 @@
If you have contributed but are missing here, please let us know!
+0xee on github
0xflotus on github
1ocalhost on github
3dyd on github
3eka on github
+8U61ife on github
+a1346054 on github
Aaro Koskinen
Aaron Oneal
Aaron Orenstein
Aaron Scarisbrick
aasivov on github
+Abhinav Singh
Abram Pousada
accountantM on github
AceCrow on Github
@@ -51,6 +55,7 @@ Alejandro Colomar
Alejandro R. Sedeño
Aleksandar Milivojevic
Aleksander Mazur
+Aleksandr Krotov
Aleksey Tulinov
Ales Mlakar
Ales Novak
@@ -60,6 +65,7 @@ Alex aka WindEagle
Alex Baines
Alex Bligh
Alex Chan
+Alex Crichton
Alex Fishman
Alex Gaynor
Alex Grebenschikov
@@ -78,8 +84,10 @@ Alex Suykov
Alex Vinnik
Alex Xu
Alexander Beedie
+Alexander Chuykov
Alexander Dyagilev
Alexander Elgert
+Alexander Kanavin
Alexander Klauer
Alexander Kourakos
Alexander Krasnostavsky
@@ -180,6 +188,7 @@ Anthon Pang
Anthony Avina
Anthony Bryan
Anthony G. Basile
+Anthony Hu
Anthony Ramine
Anthony Shaw
Antoine Aubert
@@ -193,6 +202,7 @@ Antoni Villalonga
Antonio Larrosa
Antony74 on github
Antti Hätälä
+April King
arainchik on github
Archangel_SDY on github
Arkadiusz Miskiewicz
@@ -204,6 +214,7 @@ Aron Bergman
Aron Rotteveel
Artak Galoyan
Arthur Murray
+Artur Sinila
Arve Knudsen
Arvid Norberg
arvids-kokins-bidstack on github
@@ -217,6 +228,7 @@ Augustus Saunders
Austin Green
Avery Fay
awesomenode on github
+Axel Morawietz
Axel Tillequin
Ayoub Boudhar
Ayushman Singh Chauhan
@@ -248,6 +260,7 @@ Ben Noordhuis
Ben Van Hof
Ben Voris
Ben Winslow
+Benau on github
Benbuck Nason
Benjamin Gerard
Benjamin Gilbert
@@ -268,6 +281,7 @@ Bernhard Walle
Bert Huijben
Bertrand Demiddelaer
Bertrand Simonnet
+beslick5 on github
Bevan Weiss
Bill Doyle
Bill Egert
@@ -275,6 +289,7 @@ Bill Hoffman
Bill Middlecamp
Bill Nagel
Bill Pyne
+billionai on github
Billyzou0741326 on github
Bin Lan
Bin Meng
@@ -287,12 +302,14 @@ Björn Stenberg
Blaise Potard
Blake Burkhart
bnfp on github
+Bo Anderson
Bob Relyea
Bob Richmond
Bob Schader
bobmitchell1956 on github
Bodo Bergmann
Bogdan Nicula
+Boris Rasin
Brad Burdick
Brad Fitzpatrick
Brad Harder
@@ -341,6 +358,7 @@ Cameron Cawley
Cameron Kaiser
Cameron MacMinn
Camille Moncelier
+Cao ZhenXiang
Caolan McNamara
Captain Basil
Carie Pointer
@@ -424,6 +442,7 @@ coinhubs on github
Colby Ranger
Colin Blair
Colin Hogben
+Colin O'Dell
Colin Watson
Colm Buckley
Constantine Sapuntzakis
@@ -498,6 +517,7 @@ Daniel Silverstone
Daniel Steinberg
Daniel Stenberg
Daniel Theron
+Daniel Woelfel
Daphne Luong
Dario Nieuwenhuis
Dario Weißer
@@ -648,6 +668,7 @@ Ebe Janchivdorj
ebejan on github
Ebenezer Ikonne
Ed Morley
+Eddie Lumpkin
Edgaras Janušauskas
Edin Kadribasic
Edmond Yu
@@ -705,6 +726,7 @@ Erik Janssen
Erik Johansson
Erik Minekus
Erik Olsson
+Erik Stenlund
Ernest Beinrohr
Ernst Sjöstrand
Erwan Legrand
@@ -714,6 +736,7 @@ Ethan Glasser Camp
Etienne Simard
Eugene Kotlyarov
Evan Jordan
+Evangelos Foutras
Even Rouault
Evert Pot
Evgeny Grin
@@ -780,6 +803,7 @@ fullincome on github
Gabriel Kuri
Gabriel Simmer
Gabriel Sjoberg
+Gambit Communications
Ganesh Kamath
Garrett Holmstrom
Gary Maxwell
@@ -814,14 +838,18 @@ Gilles Blanc
Gilles Vollant
Giorgos Oikonomou
Gisle Vanem
+git-bruh on github
GitYuanQu on github
Giuseppe Attardi
Giuseppe D'Ambrosio
Giuseppe Persico
+Gleb Ivanovsky
Glen A Johnson Jr.
Glen Nakamura
Glen Scott
+Glenn de boer
Glenn Sheridan
+Godwin Stewart
Google Inc.
Gordon Marler
Gorilla Maguila
@@ -853,6 +881,7 @@ GwanYeong Kim
Gwenole Beauchesne
Gökhan Şengün
Götz Babin-Ebell
+h1zzz on github
H3RSKO on github
Hagai Auro
Haibo Huang
@@ -875,6 +904,7 @@ Harold Stuart
Harry Sintonen
Harshal Pradhan
Hauke Duden
+Hayden Roche
He Qin
Heikki Korpela
Heinrich Ko
@@ -936,6 +966,7 @@ infinnovation-dev on github
Ingmar Runge
Ingo Ralf Blum
Ingo Wilken
+Inho Oh
Ionuț-Francisc Oancea
Irfan Adilovic
Ironbars13 on github
@@ -986,9 +1017,11 @@ Jan Chren
Jan Ehrhardt
Jan Koen Annot
Jan Kunder
+Jan Mazur
Jan Schaumann
Jan Schmidt
Jan Van Boghout
+Jan Verbeek
JanB on github
Janne Johansson
Jared Jennings
@@ -1031,11 +1064,13 @@ Jeff Mears
Jeff Phillips
Jeff Pohlmeyer
Jeff Weber
+Jeffrey Tolar
Jeffrey Walton
Jens Finkhaeuser
Jens Rantil
Jens Schleusener
Jeremie Rapin
+Jeremy Falcon
Jeremy Friesner
Jeremy Huddleston
Jeremy Lainé
@@ -1046,6 +1081,7 @@ Jeremy Tan
Jeremy Thibault
Jeroen Koekkoek
Jeroen Ooms
+Jerome Mao
Jerome Muffat-Meridol
Jerome Robert
Jerome Vouillon
@@ -1165,6 +1201,7 @@ joshhe on github
Joshua Kwan
Joshua Swink
Josie Huddleston
+Josip Medved
Josue Andrade Gomes
José Joaquín Atria
Jozef Kralik
@@ -1216,6 +1253,7 @@ Kamil Dudka
Kane York
Kang Lin
Kang-Jin Lee
+Kari Pahula
Karl Chen
Karl Moerder
Karol Pietrzak
@@ -1235,6 +1273,7 @@ Ken Rastatter
Kenneth Davidson
Kenny To
Kent Boortz
+Kerem Kat
Keshav Krity
Kevin Baughman
Kevin Burke
@@ -1250,6 +1289,7 @@ Kim Minjoong
Kim Rinnewitz
Kim Vandry
Kimmo Kinnunen
+Kirill Efimov
Kirill Marchuk
Kjell Ericson
Kjetil Jacobsen
@@ -1350,6 +1390,7 @@ Luca Altea
Luca Boccassi
Lucas Adamski
Lucas Clemente Vella
+Lucas Holt
Lucas Pardue
Lucas Servén Marín
Lucas Severo
@@ -1379,11 +1420,11 @@ Mahmoud Samir Fayed
Maks Naumov
Maksim Kuzevanov
Maksim Stsepanenka
+Malik Idrees Hasan Khan
Mamoru Tasaka
Mamta Upadhyay
Mandy Wu
Manfred Schwarb
-MAntoniak on github
Manuel Massing
Manuj Bhatia
Marc Aldorasi
@@ -1474,6 +1515,7 @@ Mathias Gumz
Mathieu Legare
Matias N. Goldberg
Mats Lidell
+Mats Lindestam
Matt Arsenault
Matt Ford
Matt Holt
@@ -1517,6 +1559,7 @@ Mekonikum
Melissa Mears
Mert Yazıcıoğlu
Mettgut Jamalla
+Michael Afanasiev
Michael Anti
Michael Baentsch
Michael Benedict
@@ -1599,6 +1642,7 @@ Miroslav Spousta
Mischa Salle
Mitz Wark
mkzero on github
+modbw on github
Mohamed Lrhazi
Mohamed Osama
Mohammad AlSaleh
@@ -1606,6 +1650,7 @@ Mohammad Hasbini
Mohammed Naser
Mohun Biswas
momala454 on github
+Momoka Yamamoto
moohoorama on github
Morten Minde Neergaard
Mostyn Bramley-Moore
@@ -1674,6 +1719,7 @@ Nir Soffer
Niranjan Hasabnis
Nis Jorgensen
nk
+Noam Moshe
NobodyXu on github
Nobuhiro Ban
Nodak Sodak
@@ -1691,6 +1737,7 @@ Olaf Flebbe
Olaf Hering
Olaf Stüben
Oleg Pudeyev
+Oleguer Llopart
Olen Andoni
olesteban on github
Oli Kingshott
@@ -1708,6 +1755,7 @@ Oren Souroujon
Oren Tirosh
Orgad Shaneh
Ori Avtalion
+orycho on github
osabc on github
Oscar Koeroo
Oscar Norlander
@@ -1748,6 +1796,7 @@ Paul Harrington
Paul Harris
Paul Hoffman
Paul Howarth
+Paul Johnson
Paul Joyce
Paul Marks
Paul Marquis
@@ -1862,6 +1911,7 @@ Rafael Antonio
Rafael Sagula
Rafayel Mkrtchyan
Rafaël Carré
+Rafał Mikrut
Rainer Canavan
Rainer Jung
Rainer Koenig
@@ -1881,6 +1931,7 @@ Randy Armstrong
Randy McMurchy
Raphael Gozzo
Rasmus Melchior Jacobsen
+Raul Onitza-Klugman
Ravi Pratap
Ray Dassen
Ray Pekowski
@@ -1906,6 +1957,7 @@ Reuven Wachtfogel
Reza Arbab
Ricardo Cadime
Ricardo Gomes
+Ricardo Martins
Rich Burridge
Rich FitzJohn
Rich Gray
@@ -1936,6 +1988,7 @@ Richy Kim
Rici Lake
Rick Deist
Rick Jones
+Rick Lane
Rick Richardson
Rick Welykochy
Rickard Hallerbäck
@@ -1943,6 +1996,7 @@ Ricki Hirner
Ricky Leverence
Ricky-Tigg on github
Rider Linden
+RiderALT on github
Rikard Falkeborn
rl1987 on github
Rob Cotrone
@@ -1978,6 +2032,7 @@ Rodric Glaser
Rodrigo Silva
Roger Leigh
Roger Orr
+Roger Young
Roland Blom
Roland Hieber
Roland Krikava
@@ -1998,8 +2053,10 @@ Ronnie Mose
Rosimildo da Silva
Ross Burton
Roy Bellingan
+Roy Li
Roy Shan
Rui LIU
+Rui Pinheiro
Rune Kleveland
Ruslan Baratov
Ruslan Gazizov
@@ -2009,10 +2066,12 @@ RuurdBeerstra on github
Ryan Beck-Buysse
Ryan Braud
Ryan Chan
+Ryan Mast
Ryan Nelson
Ryan Schmidt
Ryan Scott
Ryan Winograd
+ryancaicse on github
Ryuichi KAWAMATA
Rémy Léone
S. Moonesamy
@@ -2028,6 +2087,7 @@ Sam Schanken
Samanta Navarro
Sampo Kellomaki
Samuel Díaz García
+Samuel Henrique
Samuel Listopad
Samuel Marks
Samuel Surtees
@@ -2055,6 +2115,7 @@ Sean Burford
Sean MacLennan
Sean McArthur
Sean Miller
+Sean Molenaar
Sebastiaan van Erk
Sebastian Haglund
Sebastian Mundry
@@ -2071,6 +2132,7 @@ Sergii Pylypenko
Sergio Ballestrero
Sergio Barresi
Sergio Borghese
+Sergio Durigan Junior
sergio-nsk on github
Serj Kalichev
Seshubabu Pasam
@@ -2083,6 +2145,7 @@ Shankar Jadhavar
Shao Shuchao
Sharad Gupta
Shard
+Sharon Brizinov
Shaun Jackman
Shawn Landden
Shawn Poulson
@@ -2122,6 +2185,7 @@ Stadler Stephan
Stan van de Burgt
Stanislav Ivochkin
Stanislav Zidek
+Stathis Kapnidis
steelman on github
Stefan Agner
Stefan Bühler
@@ -2188,14 +2252,15 @@ Symeon Paraschoudis
Sébastien Willemijns
T. Bharath
T. Yamada
+T200proX7 on github
Tadej Vengust
Tae Hyoung Ahn
-Tae Wong
Taiyu Len
Taneli Vähäkangas
Tanguy Fautre
tarek112 on github
Tatsuhiro Tsujikawa
+tawmoto on github
tbugfinder on github
Teemu Yli-Elsila
Temprimus
@@ -2251,6 +2316,8 @@ Timothy Polich
Timur Artikov
Tinus van den Berg
TJ Saunders
+Tk Xiong
+tlahn on github
tmkk on github
Tobias Blomberg
Tobias Gabriel
@@ -2353,11 +2420,13 @@ Ville Skyttä
Vilmos Nebehaj
Vincas Razma
Vincent Bronner
+Vincent Grande
Vincent Le Normand
Vincent Penquerc'h
Vincent Sanders
Vincent Torri
vitaha85 on github
+Vitaly Varyvdin
Vlad Grachov
Vlad Ureche
Vladimir Grishchenko
@@ -2402,6 +2471,7 @@ Wouter Van Rooy
Wu Yongzheng
Wyatt O'Day
Wyatt OʼDay
+x2018 on github
Xavier Bouchoux
XhmikosR on github
XhstormR on github
@@ -2413,6 +2483,7 @@ xnynx on github
xwxbug on github
Yaakov Selkowitz
Yang Tse
+Yaobin Wen
Yarram Sunil
Yasuharu Yamada
Yasuhiro Matsumoto
@@ -2437,6 +2508,8 @@ Yuriy Sosov
Yusuke Nakamura
Yves Arrouye
Yves Lejeune
+z2-2z on github
+z2_ on hackerone
Zachary Seguin
Zdenek Pavlas
Zekun Ni
@@ -2454,6 +2527,7 @@ Zmey Petroff
Zvi Har'El
zzq1015 on github
Ádler Jonas Gross
+Érico Nogueira
İsmail Dönmez
Łukasz Domeradzki
Štefan Kremeň
diff --git a/docs/TODO b/docs/TODO
index bdda19015..dc03f303e 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -34,7 +34,7 @@
1.15 Monitor connections in the connection pool
1.16 Try to URL encode given URL
1.17 Add support for IRIs
- 1.18 try next proxy if one doesn't work
+ 1.18 try next proxy if one does not work
1.19 provide timing info for each redirect
1.20 SRV and URI DNS records
1.21 netrc caching and sharing
@@ -46,6 +46,8 @@
1.28 FD_CLOEXEC
1.29 Upgrade to websockets
1.30 config file parsing
+ 1.31 erase secrets from heap/stack after use
+ 1.32 add asynch getaddrinfo support
2. libcurl - multi interface
2.1 More non-blocking
@@ -58,6 +60,7 @@
2.8 dynamically decide to use socketpair
3. Documentation
+ 3.1 Improve documentation about fork safety
3.2 Provide cmake config-file
4. FTP
@@ -75,7 +78,7 @@
5.3 Rearrange request header order
5.4 Allow SAN names in HTTP/2 server push
5.5 auth= in URLs
- 5.6 alt-svc should fallback if alt-svc doesn't work
+ 5.6 alt-svc should fallback if alt-svc does not work
6. TELNET
6.1 ditch stdin
@@ -118,7 +121,6 @@
13.11 Support intermediate & root pinning for PINNEDPUBLICKEY
13.13 Make sure we forbid TLS 1.3 post-handshake authentication
13.14 Support the clienthello extension
- 13.15 Support mbedTLS 3.0
14. GnuTLS
14.2 check connection
@@ -131,12 +133,10 @@
16. SASL
16.1 Other authentication mechanisms
16.2 Add QOP support to GSSAPI authentication
- 16.3 Support binary messages (i.e.: non-base64)
17. SSH protocols
17.1 Multiplexing
17.2 Handle growing SFTP files
- 17.3 Support better than MD5 hostkey hash
17.4 Support CURLOPT_PREQUOTE
17.5 SSH over HTTPS proxy with more backends
@@ -170,8 +170,9 @@
19. Build
19.1 roffit
19.2 Enable PIE and RELRO by default
- 19.3 Don't use GNU libtool on OpenBSD
+ 19.3 Do not use GNU libtool on OpenBSD
19.4 Package curl for Windows in a signed installer
+ 19.5 make configure use --cache-file more and better
20. Test suite
20.1 SSL tunnel
@@ -200,7 +201,7 @@
1.2 Consult %APPDATA% also for .netrc
- %APPDATA%\.netrc is not considered when running on Windows. Shouldn't it?
+ %APPDATA%\.netrc is not considered when running on Windows. should not it?
See https://github.com/curl/curl/issues/4016
@@ -224,7 +225,7 @@
Currently the libssh2 SSH based code uses it, but to remove PATH_MAX from
there we need libssh2 to properly tell us when we pass in a too small buffer
- and its current API (as of libssh2 1.2.7) doesn't.
+ and its current API (as of libssh2 1.2.7) does not.
1.6 native IDN support on macOS
@@ -281,7 +282,7 @@
is may cause name resolves to fail unless res_init() is called. We should
consider calling res_init() + retry once unconditionally on all name resolve
failures to mitigate against this. Firefox works like that. Note that Windows
- doesn't have res_init() or an alternative.
+ does not have res_init() or an alternative.
https://github.com/curl/curl/issues/2251
@@ -291,7 +292,7 @@
close them with the CURLOPT_CLOSESOCKETFUNCTION callback. However, c-ares
does not use those functions and instead opens and closes the sockets
itself. This means that when curl passes the c-ares socket to the
- CURLMOPT_SOCKETFUNCTION it isn't owned by the application like other sockets.
+ CURLMOPT_SOCKETFUNCTION it is not owned by the application like other sockets.
See https://github.com/curl/curl/issues/2734
@@ -321,7 +322,7 @@
reuse purpose it is verified that it is still alive.
Those connections may get closed by the server side for idleness or they may
- get a HTTP/2 ping from the peer to verify that they're still alive. By adding
+ get a HTTP/2 ping from the peer to verify that they are still alive. By adding
monitoring of the connections while in the pool, libcurl can detect dead
connections (and close them) better and earlier, and it can handle HTTP/2
pings to keep such ones alive even when not actively doing transfers on them.
@@ -344,7 +345,7 @@
To make that work smoothly for curl users even on Windows, curl would
probably need to be able to convert from several input encodings.
-1.18 try next proxy if one doesn't work
+1.18 try next proxy if one does not work
Allow an application to specify a list of proxies to try, and failing to
connect to the first go on and try the next instead until the list is
@@ -434,11 +435,29 @@
See https://github.com/curl/curl/issues/3698
+1.31 erase secrets from heap/stack after use
+
+ Introducing a concept and system to erase secrets from memory after use, it
+ could help mitigate and lessen the impact of (future) security problems etc.
+ However: most secrets are passed to libcurl as clear text from the
+ application and then clearing them within the library adds nothing...
+
+ https://github.com/curl/curl/issues/7268
+
+1.32 add asynch getaddrinfo support
+
+ Use getaddrinfo_a() to provide an asynch name resolver backend to libcurl
+ that does not use threads and does not depend on c-ares. The getaddrinfo_a
+ function is (probably?) glibc specific but that is a widely used libc among
+ our users.
+
+ https://github.com/curl/curl/pull/6746
+
2. libcurl - multi interface
2.1 More non-blocking
- Make sure we don't ever loop because of non-blocking sockets returning
+ Make sure we do not 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.
@@ -477,7 +496,7 @@
2.4 Split connect and authentication process
The multi interface treats the authentication process as part of the connect
- phase. As such any failures during authentication won't trigger the relevant
+ phase. As such any failures during authentication will not trigger the relevant
QUIT or LOGOFF for protocols such as IMAP, POP3 and SMTP.
2.5 Edge-triggered sockets should work
@@ -506,7 +525,7 @@
2.8 dynamically decide to use socketpair
- For users who don't use curl_multi_wait() or don't care for
+ For users who do not use curl_multi_wait() or do not care for
curl_multi_wakeup(), we could introduce a way to make libcurl NOT
create a socketpair in the multi handle.
@@ -514,6 +533,10 @@
3. Documentation
+3.1 Improve documentation about fork safety
+
+ See https://github.com/curl/curl/issues/6968
+
3.2 Provide cmake config-file
A config-file package is a set of files provided by us to allow applications
@@ -543,7 +566,7 @@
4.5 ASCII support
- FTP ASCII transfers do not follow RFC959. They don't convert the data
+ FTP ASCII transfers do not follow RFC959. They do not convert the data
accordingly.
4.6 GSSAPI via Windows SSPI
@@ -613,7 +636,7 @@
Additionally this should be implemented for proxy base URLs as well.
-5.6 alt-svc should fallback if alt-svc doesn't work
+5.6 alt-svc should fallback if alt-svc does not work
The alt-svc: header provides a set of alternative services for curl to use
instead of the original. If the first attempted one fails, it should try the
@@ -632,7 +655,7 @@
6.2 ditch telnet-specific select
Move the telnet support's network select() loop go away and merge the code
- into the main transfer loop. Until this is done, the multi interface won't
+ into the main transfer loop. Until this is done, the multi interface will not
work for telnet.
6.3 feature negotiation debug data
@@ -712,7 +735,7 @@
11.4 Create remote directories
Support for creating remote directories when uploading a file to a directory
- that doesn't exist on the server, just like --ftp-create-dirs.
+ that does not exist on the server, just like --ftp-create-dirs.
12. FILE
@@ -745,7 +768,7 @@
"Look at SSL cafile - quick traces look to me like these are done on every
request as well, when they should only be necessary once per SSL context (or
once per handle)". The major improvement we can rather easily do is to make
- sure we don't create and kill a new SSL "context" for every request, but
+ sure we do not create and kill a new SSL "context" for every request, but
instead make one for every connection and re-use that SSL context in the same
style connections are re-used. It will make us use slightly more memory but
it will libcurl do less creations and deletions of SSL contexts.
@@ -767,7 +790,7 @@
13.6 Provide callback for cert verification
OpenSSL supports a callback for customised verification of the peer
- certificate, but this doesn't seem to be exposed in the libcurl APIs. Could
+ certificate, but this does not seem to be exposed in the libcurl APIs. Could
it be? There's so much that could be done if it were!
13.8 Support DANE
@@ -797,7 +820,7 @@
AIA can provide various things like CRLs but more importantly information
about intermediate CA certificates that can allow validation path to be
- fulfilled when the HTTPS server doesn't itself provide them.
+ fulfilled when the HTTPS server does not itself provide them.
Since AIA is about downloading certs on demand to complete a TLS handshake,
it is probably a bit tricky to get done right.
@@ -809,7 +832,7 @@
CURLOPT_PINNEDPUBLICKEY does not consider the hashes of intermediate & root
certificates when comparing the pinned keys. Therefore it is not compatible
with "HTTP Public Key Pinning" as there also intermediate and root
- certificates can be pinned. This is very useful as it prevents webadmins from
+ certificates can be pinned. This is useful as it prevents webadmins from
"locking themselves out of their servers".
Adding this feature would make curls pinning 100% compatible to HPKP and
@@ -832,13 +855,6 @@
https://tools.ietf.org/html/rfc7685
https://github.com/curl/curl/issues/2299
-13.15 Support mbedTLS 3.0
-
- Version 3.0 is not backwards compatible with pre-3.0 versions, and curl no
- longer builds due to breaking changes in the API.
-
- See https://github.com/curl/curl/issues/7385
-
14. GnuTLS
14.2 check connection
@@ -885,10 +901,6 @@
with integrity protection) and auth-conf (Authentication with integrity and
privacy protection).
-16.3 Support binary messages (i.e.: non-base64)
-
- Mandatory to support LDAP SASL authentication.
-
17. SSH protocols
@@ -907,21 +919,12 @@
The SFTP code in libcurl checks the file size *before* a transfer starts and
then proceeds to transfer exactly that amount of data. If the remote file
- grows while the transfer is in progress libcurl won't notice and will not
+ grows while the transfer is in progress libcurl will not notice and will not
adapt. The OpenSSH SFTP command line tool does and libcurl could also just
attempt to download more to see if there is more to get...
https://github.com/curl/curl/issues/4344
-17.3 Support better than MD5 hostkey hash
-
- libcurl offers the CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 option for verifying the
- server's key. MD5 is generally being deprecated so we should implement
- support for stronger hashing algorithms. libssh2 itself is what provides this
- underlying functionality and it supports at least SHA-1 as an alternative.
- SHA-1 is also being deprecated these days so we should consider working with
- libssh2 to instead offer support for SHA-256 or similar.
-
17.4 Support CURLOPT_PREQUOTE
The two other QUOTE options are supported for SFTP, but this was left out for
@@ -929,7 +932,7 @@
17.5 SSH over HTTPS proxy with more backends
- The SSH based protocols SFTP and SCP didn't work over HTTPS proxy at
+ The SSH based protocols SFTP and SCP did not work over HTTPS proxy at
all until PR https://github.com/curl/curl/pull/6021 brought the
functionality with the libssh2 backend. Presumably, this support
can/could be added for the other backends as well.
@@ -978,8 +981,8 @@
18.6 Option to make -Z merge lined based outputs on stdout
When a user requests multiple lined based files using -Z and sends them to
- stdout, curl will not "merge" and send complete lines fine but may very well
- send partial lines from several sources.
+ stdout, curl will not "merge" and send complete lines fine but may send
+ partial lines from several sources.
https://github.com/curl/curl/issues/5175
@@ -1066,7 +1069,7 @@
When --retry is used and curl actually retries transfer, it should use the
already transferred data and do a resumed transfer for the rest (when
- possible) so that it doesn't have to transfer the same data again that was
+ possible) so that it does not have to transfer the same data again that was
already transferred before the retry.
See https://github.com/curl/curl/issues/1084
@@ -1093,7 +1096,7 @@
provides the "may overwrite any file" risk.
This is extra tricky if the original URL has no file name part at all since
- then the current code path will error out with an error message, and we can't
+ then the current code path will error out with an error message, and we cannot
*know* already at that point if curl will be redirected to a URL that has a
file name...
@@ -1158,7 +1161,7 @@
- If splitting up the work improves the transfer rate, it could then be done
again. Then again, etc up to a limit.
- This way, if transfer B fails (because Range: isn't supported) it will let
+ This way, if transfer B fails (because Range: is not supported) it will let
transfer A remain the single one. N and M could be set to some sensible
defaults.
@@ -1176,7 +1179,7 @@
Users who are for example doing large downloads in CI or remote setups might
want the occasional progress meter update to see that the transfer is
- progressing and hasn't stuck, but they may not appreciate the
+ progressing and has not stuck, but they may not appreciate the
many-times-a-second frequency curl can end up doing it with now.
19. Build
@@ -1198,7 +1201,7 @@
to no impact, neither on the performance nor on the general functionality of
curl.
-19.3 Don't use GNU libtool on OpenBSD
+19.3 Do not use GNU libtool on OpenBSD
When compiling curl on OpenBSD with "--enable-debug" it will give linking
errors when you use GNU libtool. This can be fixed by using the libtool
provided by OpenBSD itself. However for this the user always needs to invoke
@@ -1212,6 +1215,13 @@
See https://github.com/curl/curl/issues/5424
+19.5 make configure use --cache-file more and better
+
+ The configure script can be improved to cache more values so that repeated
+ invokes run much faster.
+
+ See https://github.com/curl/curl/issues/7753
+
20. Test suite
20.1 SSL tunnel
@@ -1222,8 +1232,8 @@
20.2 nicer lacking perl message
- If perl wasn't found by the configure script, don't attempt to run the tests
- but explain something nice why it doesn't.
+ If perl was not found by the configure script, do not attempt to run the tests
+ but explain something nice why it does not.
20.3 more protocols supported
@@ -1238,15 +1248,15 @@
20.5 Add support for concurrent connections
Tests 836, 882 and 938 were designed to verify that separate connections
- aren't used when using different login credentials in protocols that
- shouldn't re-use a connection under such circumstances.
+ are not used when using different login credentials in protocols that
+ should not re-use a connection under such circumstances.
- Unfortunately, ftpserver.pl doesn't appear to support multiple concurrent
+ Unfortunately, ftpserver.pl does not appear to support multiple concurrent
connections. The read while() loop seems to loop until it receives a
disconnect from the client, where it then enters the waiting for connections
loop. When the client opens a second connection to the server, the first
- connection hasn't been dropped (unless it has been forced - which we
- shouldn't do in these tests) and thus the wait for connections loop is never
+ connection has not been dropped (unless it has been forced - which we
+ should not do in these tests) and thus the wait for connections loop is never
entered to receive the second connection.
20.6 Use the RFC6265 test suite
@@ -1260,7 +1270,7 @@
20.7 Support LD_PRELOAD on macOS
- LD_RELOAD doesn't work on macOS, but there are tests which require it to run
+ LD_RELOAD does not work on macOS, but there are tests which require it to run
properly. Look into making the preload support in runtests.pl portable such
that it uses DYLD_INSERT_LIBRARIES on macOS.
diff --git a/docs/TheArtOfHttpScripting.md b/docs/TheArtOfHttpScripting.md
index a6eb8b354..83b0905dc 100644
--- a/docs/TheArtOfHttpScripting.md
+++ b/docs/TheArtOfHttpScripting.md
@@ -2,7 +2,7 @@
## Background
- This document assumes that you're familiar with HTML and general networking.
+ This document assumes that you are familiar with HTML and general networking.
The increasing amount of applications moving to the web has made "HTTP
Scripting" more frequently requested and wanted. To be able to automatically
@@ -21,7 +21,7 @@
## The HTTP Protocol
- HTTP is the protocol used to fetch data from web servers. It is a very simple
+ HTTP is the protocol used to fetch data from web servers. It is a simple
protocol that is built upon TCP/IP. The protocol also allows information to
get sent to the server from the client using a few different methods, as will
be shown here.
@@ -59,7 +59,7 @@
want to know the amount of milliseconds between two points in a transfer. For
those, and other similar situations, the
[`--trace-time`](https://curl.se/docs/manpage.html#--trace-time) option
- is what you need. It'll prepend the time to each trace output line:
+ is what you need. it will prepend the time to each trace output line:
curl --trace-ascii d.txt --trace-time http://example.com/
@@ -73,14 +73,14 @@
## Spec
The Uniform Resource Locator format is how you specify the address of a
- particular resource on the Internet. You know these, you've seen URLs like
+ particular resource on the Internet. You know these, you have seen URLs like
https://curl.se or https://yourbank.com a million times. RFC 3986 is the
canonical spec. And yeah, the formal name is not URL, it is URI.
## Host
The host name is usually resolved using DNS or your /etc/hosts file to an IP
- address and that's what curl will communicate with. Alternatively you specify
+ address and that is what curl will communicate with. Alternatively you specify
the IP address directly in the URL instead of a name.
For development and other trying out situations, you can point to a different
@@ -92,7 +92,7 @@
## Port number
Each protocol curl supports operates on a default port number, be it over TCP
- or in some cases UDP. Normally you don't have to take that into
+ or in some cases UDP. Normally you do not have to take that into
consideration, but at times you run test servers on other ports or
similar. Then you can specify the port number in the URL with a colon and a
number immediately following the host name. Like when doing HTTP to port
@@ -166,7 +166,7 @@
A single curl command line may involve one or many URLs. The most common case
is probably to just use one, but you can specify any amount of URLs. Yes
- any. No limits. You'll then get requests repeated over and over for all the
+ any. No limits. you will then get requests repeated over and over for all the
given URLs.
Example, send two GETs:
@@ -185,13 +185,13 @@
## Multiple HTTP methods in a single command line
Sometimes you need to operate on several URLs in a single command line and do
- different HTTP methods on each. For this, you'll enjoy the
+ different HTTP methods on each. For this, you will enjoy the
[`--next`](https://curl.se/docs/manpage.html#-:) option. It is basically
a separator that separates a bunch of options from the next. All the URLs
before `--next` will get the same method and will get all the POST data
merged into one.
- When curl reaches the `--next` on the command line, it'll sort of reset the
+ When curl reaches the `--next` on the command line, it will sort of reset the
method and the POST data and allow a new set.
Perhaps this is best shown with a few examples. To send first a HEAD and then
@@ -236,7 +236,7 @@
previous URL.
If the original form was seen on the page `www.example.com/when/birth.html`,
- the second page you'll get will become
+ the second page you will get will become
`www.example.com/when/junk.cgi?birthyear=1905&press=OK`.
Most search engines work this way.
@@ -249,16 +249,16 @@
## POST
The GET method makes all input field names get displayed in the URL field of
- your browser. That's generally a good thing when you want to be able to
+ your browser. That is generally a good thing when you want to be able to
bookmark that page with your given data, but it is an obvious disadvantage if
you entered secret information in one of the fields or if there are a large
- amount of fields creating a very long and unreadable URL.
+ amount of fields creating a long and unreadable URL.
The HTTP protocol then offers the POST method. This way the client sends the
- data separated from the URL and thus you won't see any of it in the URL
+ data separated from the URL and thus you will not see any of it in the URL
address field.
- The form would look very similar to the previous one:
+ The form would look similar to the previous one:
```html
<form method="POST" action="junk.cgi">
@@ -313,10 +313,10 @@
## Hidden Fields
- A very common way for HTML based applications to pass state information
- between pages is to add hidden fields to the forms. Hidden fields are already
- filled in, they aren't displayed to the user and they get passed along just
- as all the other fields.
+ A common way for HTML based applications to pass state information between
+ pages is to add hidden fields to the forms. Hidden fields are already filled
+ in, they are not displayed to the user and they get passed along just as all
+ the other fields.
A similar example form with one visible field, one hidden field and one
submit button could look like:
@@ -329,16 +329,16 @@
</form>
```
- To POST this with curl, you won't have to think about if the fields are
- hidden or not. To curl they're all the same:
+ To POST this with curl, you will not have to think about if the fields are
+ hidden or not. To curl they are all the same:
curl --data "birthyear=1905&press=OK&person=daniel" [URL]
## Figure Out What A POST Looks Like
- When you're about fill in a form and send to a server by using curl instead
- of a browser, you're of course very interested in sending a POST exactly the
- way your browser does.
+ When you are about fill in a form and send to a server by using curl instead
+ of a browser, you are of course interested in sending a POST exactly the way
+ your browser does.
An easy way to get to see this, is to save the HTML page with the form on
your local disk, modify the 'method' to a GET, and press the submit button
@@ -364,7 +364,7 @@
## Basic Authentication
HTTP Authentication is the ability to tell the server your username and
- password so that it can verify that you're allowed to do the request you're
+ password so that it can verify that you are allowed to do the request you are
doing. The Basic authentication used in HTTP (which is the type curl uses by
default) is **plain text** based, which means it sends username and password
only slightly obfuscated, but still fully readable by anyone that sniffs on
@@ -408,9 +408,9 @@
able to watch your passwords if you pass them as plain command line
options. There are ways to circumvent this.
- It is worth noting that while this is how HTTP Authentication works, very
- many websites will not use this concept when they provide logins etc. See the
- Web Login chapter further below for more details on that.
+ It is worth noting that while this is how HTTP Authentication works, many
+ websites will not use this concept when they provide logins etc. See the Web
+ Login chapter further below for more details on that.
# More HTTP Headers
@@ -419,7 +419,7 @@
A HTTP request may include a 'referer' field (yes it is misspelled), which
can be used to tell from which URL the client got to this particular
resource. Some programs/scripts check the referer field of requests to verify
- that this wasn't arriving from an external site or an unknown page. While
+ that this was not arriving from an external site or an unknown page. While
this is a stupid way to check something so easily forged, many scripts still
do it. Using curl, you can put anything you want in the referer-field and
thus more easily be able to fool the server into serving your request.
@@ -430,7 +430,7 @@
## User Agent
- Very similar to the referer field, all HTTP requests may set the User-Agent
+ Similar to the referer field, all HTTP requests may set the User-Agent
field. It names what user agent (client) that is being used. Many
applications use this information to decide how to display pages. Silly web
programmers try to make different pages for users of different browsers to
@@ -439,14 +439,14 @@
At times, you will see that getting a page with curl will not return the same
page that you see when getting the page with your browser. Then you know it
- is time to set the User Agent field to fool the server into thinking you're
+ is time to set the User Agent field to fool the server into thinking you are
one of those browsers.
To make curl look like Internet Explorer 5 on a Windows 2000 box:
curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL]
- Or why not look like you're using Netscape 4.73 on an old Linux box:
+ Or why not look like you are using Netscape 4.73 on an old Linux box:
curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
@@ -477,7 +477,7 @@
## Other redirects
Browser typically support at least two other ways of redirects that curl
- doesn't: first the html may contain a meta refresh tag that asks the browser
+ does not: first the html may contain a meta refresh tag that asks the browser
to load a specific URL after a set number of seconds, or it may use
javascript to do it.
@@ -529,7 +529,7 @@
Curl's "cookie engine" gets enabled when you use the
[`--cookie`](https://curl.se/docs/manpage.html#-b) option. If you only
want curl to understand received cookies, use `--cookie` with a file that
- doesn't exist. Example, if you want to let curl understand cookies from a
+ does not exist. Example, if you want to let curl understand cookies from a
page and follow a location (and thus possibly send back cookies it received),
you can invoke it like:
@@ -539,7 +539,7 @@
format that Netscape and Mozilla once used. It is a convenient way to share
cookies between scripts or invokes. The `--cookie` (`-b`) switch
automatically detects if a given file is such a cookie file and parses it,
- and by using the `--cookie-jar` (`-c`) option you'll make curl write a new
+ and by using the `--cookie-jar` (`-c`) option you will make curl write a new
cookie file at the end of an operation:
curl --cookie cookies.txt --cookie-jar newcookies.txt \
@@ -580,7 +580,7 @@
verifying the server's certificate against a locally stored CA cert
bundle. Failing the verification will cause curl to deny the connection. You
must then use [`--insecure`](https://curl.se/docs/manpage.html#-k)
- (`-k`) in case you want to tell curl to ignore that the server can't be
+ (`-k`) in case you want to tell curl to ignore that the server cannot be
verified.
More about server certificate verification and ca cert bundles can be read in
@@ -628,7 +628,7 @@
curl -X POST http://example.org/
- ... but curl will still think and act as if it sent a GET so it won't send
+ ... but curl will still think and act as if it sent a GET so it will not send
any request body etc.
# Web Login
@@ -651,7 +651,7 @@
Some web-based login systems feature various amounts of javascript, and
sometimes they use such code to set or modify cookie contents. Possibly they
do that to prevent programmed logins, like this manual describes how to...
- Anyway, if reading the code isn't enough to let you repeat the behavior
+ Anyway, if reading the code is not enough to let you repeat the behavior
manually, capturing the HTTP requests done by your browsers and analyzing the
sent cookies is usually a working method to work out how to shortcut the
javascript need.
@@ -666,7 +666,7 @@
## Some debug tricks
- Many times when you run curl on a site, you'll notice that the site doesn't
+ Many times when you run curl on a site, you will notice that the site does not
seem to respond the same way to your curl requests as it does to your
browser's.
@@ -690,9 +690,9 @@
## Check what the browsers do
- A very good helper to make sure you do this right, is the web browsers'
- developers tools that let you view all headers you send and receive (even
- when using HTTPS).
+ A good helper to make sure you do this right, is the web browsers' developers
+ tools that let you view all headers you send and receive (even when using
+ HTTPS).
A more raw approach is to capture the HTTP traffic on the network with tools
such as Wireshark or tcpdump and check what headers that were sent and
diff --git a/docs/URL-SYNTAX.md b/docs/URL-SYNTAX.md
index a97eb0d9f..8b1123618 100644
--- a/docs/URL-SYNTAX.md
+++ b/docs/URL-SYNTAX.md
@@ -5,7 +5,8 @@
The official "URL syntax" is primarily defined in these two different
specifications:
- - [RFC 3986](https://tools.ietf.org/html/rfc3986) (although URL is called "URI" in there)
+ - [RFC 3986](https://tools.ietf.org/html/rfc3986) (although URL is called
+ "URI" in there)
- [The WHATWG URL Specification](https://url.spec.whatwg.org/)
RFC 3986 is the earlier one, and curl has always tried to adhere to that one
@@ -19,7 +20,7 @@ changes over time.
URL parsers as implemented in browsers, libraries and tools usually opt to
support one of the mentioned specifications. Bugs, differences in
interpretations and the moving nature of the WHATWG spec does however make it
-very unlikely that multiple parsers treat URLs the exact same way!
+unlikely that multiple parsers treat URLs the exact same way!
## Security
@@ -41,8 +42,8 @@ security concerns:
1. If you have an application that runs as or in a server application, getting
an unfiltered URL can trick your application to access a local resource
- instead of a remote resource. Protecting yourself against localhost accesses is very
- hard when accepting user provided URLs.
+ instead of a remote resource. Protecting yourself against localhost accesses
+ is hard when accepting user provided URLs.
2. Such custom URLs can access other ports than you planned as port numbers
are part of the regular URL format. The combination of a local host and a
@@ -149,7 +150,7 @@ since it often means passing around the password in plain text and is thus a
security risk.
URLs for IMAP, POP3 and SMTP also support *login options* as part of the
-userinfo field. They're provided as a semicolon after the password and then
+userinfo field. they are provided as a semicolon after the password and then
the options.
## Hostname
@@ -231,7 +232,7 @@ Anything else will make curl fail to parse the URL.
### Windows-specific FILE details
-curl accepts that the FILE URL's path starts with a "drive letter". That's a
+curl accepts that the FILE URL's path starts with a "drive letter". That is a
single letter `a` to `z` followed by a colon or a pipe character (`|`).
The Windows operating system itself will convert some file accesses to perform
@@ -285,8 +286,26 @@ subject line:
imap://user:password@mail.example.com/INBOX?SUBJECT%20shadows
-For more information about the individual components of an IMAP URL please see
-RFC 5092.
+Searching via the query part of the URL `?` is a search request for the results
+to be returned as message sequence numbers (MAILINDEX). It is possible to make
+a search request for results to be returned as unique ID numbers (UID) by using
+a custom curl request via `-X`. UID numbers are unique per session (and
+multiple sessions when UIDVALIDITY is the same). For example, if you are
+searching for `"foo bar"` in header+body (TEXT) and you want the matching
+MAILINDEX numbers returned then you could search via URL:
+
+ imap://user:password@mail.example.com/INBOX?TEXT%20%22foo%20bar%22
+
+.. but if you wanted matching UID numbers you would have to use a custom request:
+
+ imap://user:password@mail.example.com/INBOX -X "UID SEARCH TEXT \"foo bar\""
+
+For more information about IMAP commands please see RFC 9051. For more
+information about the individual components of an IMAP URL please see RFC 5092.
+
+* Note old curl versions would FETCH by message sequence number when UID was
+specified in the URL. That was a bug fixed in 7.62.0, which added MAILINDEX to
+FETCH by mail sequence number.
## LDAP
diff --git a/docs/VERSIONS.md b/docs/VERSIONS.md
index bcc7474d9..de0b0d4f8 100644
--- a/docs/VERSIONS.md
+++ b/docs/VERSIONS.md
@@ -1,7 +1,7 @@
Version Numbers and Releases
============================
- Curl is not only curl. Curl is also libcurl. They're actually individually
+ Curl is not only curl. Curl is also libcurl. they are actually individually
versioned, but they usually follow each other closely.
The version numbering is always built up using the same system:
diff --git a/docs/cmdline-opts/MANPAGE.md b/docs/cmdline-opts/MANPAGE.md
index b903bc25e..f7f09eb1d 100644
--- a/docs/cmdline-opts/MANPAGE.md
+++ b/docs/cmdline-opts/MANPAGE.md
@@ -28,6 +28,7 @@ Each file has a set of meta-data and a body of text.
Requires: (space separated list of features this requires, no dashes)
See-also: (space separated list of related options, no dashes)
Help: (short text for the --help output for this option)
+ Example: (example command line, without "curl" and can use `$URL`)
--- (end of meta-data)
### Body
diff --git a/docs/cmdline-opts/Makefile.inc b/docs/cmdline-opts/Makefile.inc
index 6e04552e9..506025a75 100644
--- a/docs/cmdline-opts/Makefile.inc
+++ b/docs/cmdline-opts/Makefile.inc
@@ -96,6 +96,7 @@ DPAGES = \
header.d \
help.d \
hostpubmd5.d \
+ hostpubsha256.d \
hsts.d \
http0.9.d \
http1.0.d \
diff --git a/docs/cmdline-opts/abstract-unix-socket.d b/docs/cmdline-opts/abstract-unix-socket.d
index 8403cab9d..e26048f1d 100644
--- a/docs/cmdline-opts/abstract-unix-socket.d
+++ b/docs/cmdline-opts/abstract-unix-socket.d
@@ -4,6 +4,7 @@ Help: Connect via abstract Unix domain socket
Added: 7.53.0
Protocols: HTTP
Category: connection
+Example: --abstract-unix-socket socketpath $URL
---
Connect through an abstract Unix domain socket, instead of using the network.
Note: netstat shows the path of an abstract socket prefixed with '@', however
diff --git a/docs/cmdline-opts/alt-svc.d b/docs/cmdline-opts/alt-svc.d
index 5598b59b4..914b1fbc6 100644
--- a/docs/cmdline-opts/alt-svc.d
+++ b/docs/cmdline-opts/alt-svc.d
@@ -4,9 +4,8 @@ Protocols: HTTPS
Help: Enable alt-svc with this cache file
Added: 7.64.1
Category: http
+Example: --alt-svc svc.txt $URL
---
-WARNING: this option is experimental. Do not use in production.
-
This option enables the alt-svc parser in curl. If the file name points to an
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.
diff --git a/docs/cmdline-opts/anyauth.d b/docs/cmdline-opts/anyauth.d
index bec0c0c86..109234172 100644
--- a/docs/cmdline-opts/anyauth.d
+++ b/docs/cmdline-opts/anyauth.d
@@ -3,6 +3,8 @@ Help: Pick any authentication method
Protocols: HTTP
See-also: proxy-anyauth basic digest
Category: http proxy auth
+Example: --anyauth --user me:pwd $URL
+Added: 7.10.6
---
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
diff --git a/docs/cmdline-opts/append.d b/docs/cmdline-opts/append.d
index 8bdb2594d..c332b7bd9 100644
--- a/docs/cmdline-opts/append.d
+++ b/docs/cmdline-opts/append.d
@@ -3,7 +3,9 @@ Long: append
Help: Append to target file when uploading
Protocols: FTP SFTP
Category: ftp sftp
+Example: --upload-file local --append ftp://example.com/
+Added: 4.8
---
When used in an upload, this makes curl append to the target file instead of
-overwriting it. If the remote file doesn't exist, it will be created. Note
+overwriting it. If the remote file does not exist, it will be created. Note
that this flag is ignored by some SFTP servers (including OpenSSH).
diff --git a/docs/cmdline-opts/aws-sigv4.d b/docs/cmdline-opts/aws-sigv4.d
index 26546df3f..db988640b 100644
--- a/docs/cmdline-opts/aws-sigv4.d
+++ b/docs/cmdline-opts/aws-sigv4.d
@@ -3,6 +3,7 @@ Arg: <provider1[:provider2[:region[:service]]]>
Help: Use AWS V4 signature authentication
Category: auth http
Added: 7.75.0
+Example: --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" $URL
---
Use AWS V4 signature authentication in the transfer.
diff --git a/docs/cmdline-opts/basic.d b/docs/cmdline-opts/basic.d
index e222c51c1..abab7d068 100644
--- a/docs/cmdline-opts/basic.d
+++ b/docs/cmdline-opts/basic.d
@@ -3,6 +3,8 @@ Help: Use HTTP Basic Authentication
See-also: proxy-basic
Protocols: HTTP
Category: auth
+Example: -u name:password --basic $URL
+Added: 7.10.6
---
Tells curl to use HTTP Basic authentication with the remote host. This is the
default and this option is usually pointless, unless you use it to override a
diff --git a/docs/cmdline-opts/cacert.d b/docs/cmdline-opts/cacert.d
index 793d8c1ba..07612e4f2 100644
--- a/docs/cmdline-opts/cacert.d
+++ b/docs/cmdline-opts/cacert.d
@@ -3,6 +3,8 @@ Arg: <file>
Help: CA certificate to verify peer against
Protocols: TLS
Category: tls
+Example: --cacert CA-file.txt $URL
+Added: 7.5
---
Tells curl to use the specified certificate file to verify the peer. The file
may contain multiple CA certificates. The certificate(s) must be in PEM
@@ -14,7 +16,7 @@ set, and uses the given path as a path to a CA cert bundle. This option
overrides that variable.
The windows version of curl will automatically look for a CA certs file named
-\'curl-ca-bundle.crt\', either in the same directory as curl.exe, or in the
+'curl-ca-bundle.crt', either in the same directory as curl.exe, or in the
Current Working Directory, or in any folder along your PATH.
If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module
@@ -26,9 +28,9 @@ should not be set. If the option is not set, then curl will use the
certificates in the system and user Keychain to verify the peer, which is the
preferred method of verifying the peer's certificate chain.
-(Schannel only) This option is supported for Schannel in Windows 7 or later with
-libcurl 7.60 or later. This option is supported for backward compatibility
-with other SSL engines; instead it is recommended to use Windows' store of
-root certificates (the default for Schannel).
+(Schannel only) This option is supported for Schannel in Windows 7 or later
+with libcurl 7.60 or later. This option is supported for backward
+compatibility with other SSL engines; instead it is recommended to use
+Windows' store of root certificates (the default for Schannel).
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/capath.d b/docs/cmdline-opts/capath.d
index 4ce077a14..190aa4d29 100644
--- a/docs/cmdline-opts/capath.d
+++ b/docs/cmdline-opts/capath.d
@@ -3,6 +3,8 @@ Arg: <dir>
Help: CA directory to verify peer against
Protocols: TLS
Category: tls
+Example: --capath /local/directory $URL
+Added: 7.9.8
---
Tells curl to use the specified certificate directory to verify the
peer. Multiple paths can be provided by separating them with ":" (e.g.
diff --git a/docs/cmdline-opts/cert-status.d b/docs/cmdline-opts/cert-status.d
index 63e352051..360e5c901 100644
--- a/docs/cmdline-opts/cert-status.d
+++ b/docs/cmdline-opts/cert-status.d
@@ -3,6 +3,7 @@ Protocols: TLS
Added: 7.41.0
Help: Verify the status of the server cert via OCSP-staple
Category: tls
+Example: --cert-status $URL
---
Tells curl to verify the status of the server certificate by using the
Certificate Status Request (aka. OCSP stapling) TLS extension.
diff --git a/docs/cmdline-opts/cert-type.d b/docs/cmdline-opts/cert-type.d
index b041bcb06..61bd65c39 100644
--- a/docs/cmdline-opts/cert-type.d
+++ b/docs/cmdline-opts/cert-type.d
@@ -4,6 +4,8 @@ Arg: <type>
Help: Certificate type (DER/PEM/ENG)
See-also: cert key key-type
Category: tls
+Example: --cert-type PEM --cert file $URL
+Added: 7.9.3
---
Tells curl what type the provided client certificate is using. PEM, DER, ENG
and P12 are recognized types. If not specified, PEM is assumed.
diff --git a/docs/cmdline-opts/cert.d b/docs/cmdline-opts/cert.d
index 2938e571f..325e4b3f3 100644
--- a/docs/cmdline-opts/cert.d
+++ b/docs/cmdline-opts/cert.d
@@ -5,11 +5,13 @@ Help: Client certificate file and password
Protocols: TLS
See-also: cert-type key key-type
Category: tls
+Example: --cert certfile --key keyfile $URL
+Added: 5.0
---
Tells curl to use the specified client certificate file when getting a file
with HTTPS, FTPS or another SSL-based protocol. The certificate must be in
PKCS#12 format if using Secure Transport, or PEM format if using any other
-engine. If the optional password isn't specified, it will be queried for on
+engine. If the optional password is not specified, it will be queried for on
the terminal. Note that this option assumes a \&"certificate" file that is the
private key and the client certificate concatenated! See --cert and --key to
specify them independently.
diff --git a/docs/cmdline-opts/ciphers.d b/docs/cmdline-opts/ciphers.d
index 723b95923..985acc8c7 100644
--- a/docs/cmdline-opts/ciphers.d
+++ b/docs/cmdline-opts/ciphers.d
@@ -3,6 +3,8 @@ Arg: <list of ciphers>
Help: SSL ciphers to use
Protocols: TLS
Category: tls
+Example: --ciphers ECDHE-ECDSA-AES256-CCM8 $URL
+Added: 7.9
---
Specifies which ciphers to use in the connection. The list of ciphers must
specify valid ciphers. Read up on SSL cipher list details on this URL:
diff --git a/docs/cmdline-opts/compressed-ssh.d b/docs/cmdline-opts/compressed-ssh.d
index 849fe18b0..d95c6adfb 100644
--- a/docs/cmdline-opts/compressed-ssh.d
+++ b/docs/cmdline-opts/compressed-ssh.d
@@ -3,6 +3,7 @@ Help: Enable SSH compression
Protocols: SCP SFTP
Added: 7.56.0
Category: scp ssh
+Example: --compressed-ssh sftp://example.com/
---
Enables built-in SSH compression.
This is a request, not an order; the server may or may not do it.
diff --git a/docs/cmdline-opts/compressed.d b/docs/cmdline-opts/compressed.d
index 26bc1514a..fe26902bc 100644
--- a/docs/cmdline-opts/compressed.d
+++ b/docs/cmdline-opts/compressed.d
@@ -2,9 +2,12 @@ Long: compressed
Help: Request compressed response
Protocols: HTTP
Category: http
+Example: --compressed $URL
+Added: 7.10
---
Request a compressed response using one of the algorithms curl supports, and
automatically decompress the content. Headers are not modified.
If this option is used and the server sends an unsupported encoding, curl will
-report an error.
+report an error. This is a request, not an order; the server may or may not
+deliver data compressed.
diff --git a/docs/cmdline-opts/config.d b/docs/cmdline-opts/config.d
index 1c46e41c1..e356dc939 100644
--- a/docs/cmdline-opts/config.d
+++ b/docs/cmdline-opts/config.d
@@ -3,8 +3,9 @@ Arg: <file>
Help: Read config from a file
Short: K
Category: curl
+Example: --config file.txt $URL
+Added: 4.10
---
-
Specify a text file to read curl arguments from. The command line arguments
found in the text file will be used as if they were provided on the command
line.
@@ -35,8 +36,8 @@ line. So, it could look similar to this:
url = "https://curl.se/docs/"
When curl is invoked, it (unless --disable is used) checks for a default
-config file and uses it if found. The default config file is checked for in
-the following places in this order:
+config file and uses it if found, even when this option is used. The default
+config file is checked for in the following places in this order:
1) Use the CURL_HOME environment variable if set
@@ -48,7 +49,7 @@ the following places in this order:
5) Windows: use APPDATA if set
-6) Windows: use "USERPROFILE\Application Data" if set
+6) Windows: use "USERPROFILE\\Application Data" if set
7) On windows, if there is no .curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
diff --git a/docs/cmdline-opts/connect-timeout.d b/docs/cmdline-opts/connect-timeout.d
index fa3277221..89152baa3 100644
--- a/docs/cmdline-opts/connect-timeout.d
+++ b/docs/cmdline-opts/connect-timeout.d
@@ -1,8 +1,11 @@
Long: connect-timeout
-Arg: <seconds>
+Arg: <fractional seconds>
Help: Maximum time allowed for connection
See-also: max-time
Category: connection
+Example: --connect-timeout 20 $URL
+Example: --connect-timeout 3.14 $URL
+Added: 7.7
---
Maximum time in seconds that you allow curl's connection to take. This only
limits the connection phase, so if curl connects within the given period it
diff --git a/docs/cmdline-opts/connect-to.d b/docs/cmdline-opts/connect-to.d
index 2f015f8ac..ebea9b9da 100644
--- a/docs/cmdline-opts/connect-to.d
+++ b/docs/cmdline-opts/connect-to.d
@@ -4,6 +4,7 @@ Help: Connect to host
Added: 7.49.0
See-also: resolve header
Category: connection
+Example: --connect-to example.com:443:example.net:8443 $URL
---
For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead.
diff --git a/docs/cmdline-opts/continue-at.d b/docs/cmdline-opts/continue-at.d
index c44d2f496..66fa34ea0 100644
--- a/docs/cmdline-opts/continue-at.d
+++ b/docs/cmdline-opts/continue-at.d
@@ -4,6 +4,9 @@ Arg: <offset>
Help: Resumed transfer offset
See-also: range
Category: connection
+Example: -C - $URL
+Example: -C 400 $URL
+Added: 4.8
---
Continue/Resume a previous file transfer at the given offset. The given offset
is the exact number of bytes that will be skipped, counting from the beginning
diff --git a/docs/cmdline-opts/cookie-jar.d b/docs/cmdline-opts/cookie-jar.d
index f11991f4e..234ba489b 100644
--- a/docs/cmdline-opts/cookie-jar.d
+++ b/docs/cmdline-opts/cookie-jar.d
@@ -4,6 +4,9 @@ Arg: <filename>
Protocols: HTTP
Help: Write cookies to <filename> after operation
Category: http
+Example: -c store-here.txt $URL
+Example: -c store-here.txt -b read-these $URL
+Added: 7.9
---
Specify to which file you want curl to write all cookies after a completed
operation. Curl writes all cookies from its in-memory cookie storage to the
@@ -16,10 +19,10 @@ This command line option will activate the cookie engine that makes curl
record and use cookies. Another way to activate it is to use the --cookie
option.
-If the cookie jar can't be created or written to, the whole curl operation
-won't fail or even report an error clearly. Using --verbose will get a warning
-displayed, but that is the only visible feedback you get about this possibly
-lethal situation.
+If the cookie jar cannot be created or written to, the whole curl operation
+will not fail or even report an error clearly. Using --verbose will get a
+warning displayed, but that is the only visible feedback you get about this
+possibly lethal situation.
If this option is used several times, the last specified file name will be
used.
diff --git a/docs/cmdline-opts/cookie.d b/docs/cmdline-opts/cookie.d
index 5c40cf2d8..a4be033cd 100644
--- a/docs/cmdline-opts/cookie.d
+++ b/docs/cmdline-opts/cookie.d
@@ -4,6 +4,9 @@ Arg: <data|filename>
Protocols: HTTP
Help: Send cookies from string/file
Category: http
+Example: -b cookiefile $URL
+Example: -b cookiefile -c cookiefile $URL
+Added: 4.9
---
Pass the data to the HTTP server in the Cookie header. It is supposedly
the data previously received from the server in a "Set-Cookie:" line. The
@@ -12,7 +15,7 @@ data should be in the format "NAME1=VALUE1; NAME2=VALUE2".
If no '=' symbol is used in the argument, it is instead treated as a filename
to read previously stored cookie from. This option also activates the cookie
engine which will make curl record incoming cookies, which may be handy if
-you're using this in combination with the --location option or do multiple URL
+you are using this in combination with the --location option or do multiple URL
transfers on the same invoke. If the file name is exactly a minus ("-"), curl
will instead read the contents from stdin.
@@ -22,13 +25,13 @@ The file format of the file to read cookies from should be plain HTTP headers
The file specified with --cookie is only used as input. No cookies will be
written to the file. To store cookies, use the --cookie-jar option.
-If you use the Set-Cookie file format and don't specify a domain then the
+If you use the Set-Cookie file format and do not specify a domain then the
cookie is not sent since the domain will never match. To address this, set a
domain in Set-Cookie line (doing that will include sub-domains) or preferably:
use the Netscape format.
This option can be used multiple times.
-Users very often want to both read cookies from a file and write updated
-cookies back to a file, so using both --cookie and --cookie-jar in the same
-command line is common.
+Users often want to both read cookies from a file and write updated cookies
+back to a file, so using both --cookie and --cookie-jar in the same command
+line is common.
diff --git a/docs/cmdline-opts/create-dirs.d b/docs/cmdline-opts/create-dirs.d
index 801e95d1e..742a1eaa1 100644
--- a/docs/cmdline-opts/create-dirs.d
+++ b/docs/cmdline-opts/create-dirs.d
@@ -1,6 +1,8 @@
Long: create-dirs
Help: Create necessary local directory hierarchy
Category: curl
+Example: --create-dirs --output local/dir/file $URL
+Added: 7.10.3
---
When used in conjunction with the --output option, curl will create the
necessary local directory hierarchy as needed. This option creates the
diff --git a/docs/cmdline-opts/create-file-mode.d b/docs/cmdline-opts/create-file-mode.d
index 275fc6c21..429b5ee33 100644
--- a/docs/cmdline-opts/create-file-mode.d
+++ b/docs/cmdline-opts/create-file-mode.d
@@ -5,6 +5,7 @@ Protocols: SFTP SCP FILE
Category: sftp scp file upload
See-also: ftp-create-dirs
Added: 7.75.0
+Example: --create-file-mode 0777 -T localfile sftp://example.com/new
---
When curl is used to create files remotely using one of the supported
protocols, this option allows the user to set which 'mode' to set on the file
diff --git a/docs/cmdline-opts/crlf.d b/docs/cmdline-opts/crlf.d
index 50c4bef81..1266b6490 100644
--- a/docs/cmdline-opts/crlf.d
+++ b/docs/cmdline-opts/crlf.d
@@ -2,6 +2,8 @@ Long: crlf
Help: Convert LF to CRLF in upload
Protocols: FTP SMTP
Category: ftp smtp
+Example: --crlf -T file ftp://example.com/
+Added: 5.7
---
Convert LF to CRLF in upload. Useful for MVS (OS/390).
diff --git a/docs/cmdline-opts/crlfile.d b/docs/cmdline-opts/crlfile.d
index 360e668d1..21e86a8c2 100644
--- a/docs/cmdline-opts/crlfile.d
+++ b/docs/cmdline-opts/crlfile.d
@@ -1,9 +1,10 @@
Long: crlfile
Arg: <file>
Protocols: TLS
-Help: Get a CRL list in PEM format from the given file
+Help: Use this CRL list
Added: 7.19.7
Category: tls
+Example: --crlfile rejects.txt $URL
---
Provide a file using PEM format with a Certificate Revocation List that may
specify peer certificates that are to be considered revoked.
diff --git a/docs/cmdline-opts/curves.d b/docs/cmdline-opts/curves.d
index 47870a278..ac5ab1016 100644
--- a/docs/cmdline-opts/curves.d
+++ b/docs/cmdline-opts/curves.d
@@ -4,6 +4,7 @@ Help: (EC) TLS key exchange algorithm(s) to request
Protocols: TLS
Added: 7.73.0
Category: tls
+Example: --curves X25519 $URL
---
Tells curl to request specific curves to use during SSL session establishment
according to RFC 8422, 5.1. Multiple algorithms can be provided by separating
diff --git a/docs/cmdline-opts/data-ascii.d b/docs/cmdline-opts/data-ascii.d
index 3522f6345..ff2c0bc38 100644
--- a/docs/cmdline-opts/data-ascii.d
+++ b/docs/cmdline-opts/data-ascii.d
@@ -3,5 +3,7 @@ Arg: <data>
Help: HTTP POST ASCII data
Protocols: HTTP
Category: http post upload
+Example: --data-ascii @file $URL
+Added: 7.2
---
This is just an alias for --data.
diff --git a/docs/cmdline-opts/data-binary.d b/docs/cmdline-opts/data-binary.d
index c40785ece..60951a4bf 100644
--- a/docs/cmdline-opts/data-binary.d
+++ b/docs/cmdline-opts/data-binary.d
@@ -3,6 +3,8 @@ Arg: <data>
Help: HTTP POST binary data
Protocols: HTTP
Category: http post upload
+Example: --data-binary @filename $URL
+Added: 7.2
---
This posts data exactly as specified with no extra processing whatsoever.
diff --git a/docs/cmdline-opts/data-raw.d b/docs/cmdline-opts/data-raw.d
index 4db83aefa..b8cd0f721 100644
--- a/docs/cmdline-opts/data-raw.d
+++ b/docs/cmdline-opts/data-raw.d
@@ -5,6 +5,8 @@ Help: HTTP POST data, '@' allowed
Added: 7.43.0
See-also: data
Category: http post upload
+Example: --data-raw "hello" $URL
+Example: --data-raw "@at@at@" $URL
---
This posts data similarly to --data but without the special
interpretation of the @ character.
diff --git a/docs/cmdline-opts/data-urlencode.d b/docs/cmdline-opts/data-urlencode.d
index 2205f9db4..c9cecec51 100644
--- a/docs/cmdline-opts/data-urlencode.d
+++ b/docs/cmdline-opts/data-urlencode.d
@@ -5,6 +5,10 @@ Protocols: HTTP
See-also: data data-raw
Added: 7.18.0
Category: http post upload
+Example: --data-urlencode name=val $URL
+Example: --data-urlencode =encodethis $URL
+Example: --data-urlencode name@file $URL
+Example: --data-urlencode @fileonly $URL
---
This posts data, similar to the other --data options with the exception
that this performs URL-encoding.
@@ -15,7 +19,7 @@ curl using one of the following syntaxes:
.RS
.IP "content"
This will make curl URL-encode the content and pass that on. Just be careful
-so that the content doesn't contain any = or @ symbols, as that will then make
+so that the content does not contain any = or @ symbols, as that will then make
the syntax match one of the other cases below!
.IP "=content"
This will make curl URL-encode the content and pass that on. The preceding =
diff --git a/docs/cmdline-opts/data.d b/docs/cmdline-opts/data.d
index 53ba86b36..9425ba24f 100644
--- a/docs/cmdline-opts/data.d
+++ b/docs/cmdline-opts/data.d
@@ -6,6 +6,10 @@ Protocols: HTTP MQTT
See-also: data-binary data-urlencode data-raw
Mutexed: form head upload-file
Category: important http post upload
+Example: -d "name=curl" $URL
+Example: -d "name=curl" -d "tool=cmdline" $URL
+Example: -d @filename $URL
+Added: 4.0
---
Sends the specified data in a POST request to the HTTP server, in the same way
that a browser does when a user has filled in an HTML form and presses the
@@ -26,5 +30,5 @@ 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
+will be stripped out. If you do not want the @ character to have a special
interpretation use --data-raw instead.
diff --git a/docs/cmdline-opts/delegation.d b/docs/cmdline-opts/delegation.d
index 41fa9408c..3d7e59fe7 100644
--- a/docs/cmdline-opts/delegation.d
+++ b/docs/cmdline-opts/delegation.d
@@ -3,12 +3,14 @@ Arg: <LEVEL>
Help: GSS-API delegation permission
Protocols: GSS/kerberos
Category: auth
+Example: --delegation "none" $URL
+Added: 7.22.0
---
Set LEVEL to tell the server what it is allowed to delegate when it
comes to user credentials.
.RS
.IP "none"
-Don't allow any delegation.
+Do not allow any delegation.
.IP "policy"
Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos
service ticket, which is a matter of realm policy.
diff --git a/docs/cmdline-opts/digest.d b/docs/cmdline-opts/digest.d
index da8c01e26..4feb8505d 100644
--- a/docs/cmdline-opts/digest.d
+++ b/docs/cmdline-opts/digest.d
@@ -4,6 +4,8 @@ Protocols: HTTP
Mutexed: basic ntlm negotiate
See-also: user proxy-digest anyauth
Category: proxy auth http
+Example: -u name:password --digest $URL
+Added: 7.10.6
---
Enables HTTP Digest authentication. This is an authentication scheme that
prevents the password from being sent over the wire in clear text. Use this in
diff --git a/docs/cmdline-opts/disable-eprt.d b/docs/cmdline-opts/disable-eprt.d
index ffcf684e4..9a927a92b 100644
--- a/docs/cmdline-opts/disable-eprt.d
+++ b/docs/cmdline-opts/disable-eprt.d
@@ -2,6 +2,8 @@ Long: disable-eprt
Help: Inhibit using EPRT or LPRT
Protocols: FTP
Category: ftp
+Example: --disable-eprt ftp://example.com/
+Added: 7.10.5
---
Tell curl to disable the use of the EPRT and LPRT commands when doing active
FTP transfers. Curl will normally always first attempt to use EPRT, then LPRT
diff --git a/docs/cmdline-opts/disable-epsv.d b/docs/cmdline-opts/disable-epsv.d
index dadef098b..dfd8f7365 100644
--- a/docs/cmdline-opts/disable-epsv.d
+++ b/docs/cmdline-opts/disable-epsv.d
@@ -2,6 +2,8 @@ Long: disable-epsv
Help: Inhibit using EPSV
Protocols: FTP
Category: ftp
+Example: --disable-epsv ftp://example.com/
+Added: 7.9.2
---
Tell curl to disable the use of the EPSV command when doing passive FTP
transfers. Curl will normally always first attempt to use EPSV before
diff --git a/docs/cmdline-opts/disable.d b/docs/cmdline-opts/disable.d
index d90960884..e7dd6c722 100644
--- a/docs/cmdline-opts/disable.d
+++ b/docs/cmdline-opts/disable.d
@@ -2,6 +2,8 @@ Long: disable
Short: q
Help: Disable .curlrc
Category: curl
+Example: -q $URL
+Added: 5.0
---
If used as the first parameter on the command line, the *curlrc* config
file will not be read and used. See the --config for details on the default
diff --git a/docs/cmdline-opts/disallow-username-in-url.d b/docs/cmdline-opts/disallow-username-in-url.d
index e124f675a..f3122aea5 100644
--- a/docs/cmdline-opts/disallow-username-in-url.d
+++ b/docs/cmdline-opts/disallow-username-in-url.d
@@ -4,5 +4,7 @@ Protocols: HTTP
Added: 7.61.0
See-also: proto
Category: curl http
+Example: --disallow-username-in-url $URL
---
-This tells curl to exit if passed a url containing a username.
+This tells curl to exit if passed a url containing a username. This is probably
+most useful when the URL is being provided at run-time or similar.
diff --git a/docs/cmdline-opts/dns-interface.d b/docs/cmdline-opts/dns-interface.d
index 3cb818ae3..fec7927eb 100644
--- a/docs/cmdline-opts/dns-interface.d
+++ b/docs/cmdline-opts/dns-interface.d
@@ -6,6 +6,7 @@ See-also: dns-ipv4-addr dns-ipv6-addr
Added: 7.33.0
Requires: c-ares
Category: dns
+Example: --dns-interface eth0 $URL
---
Tell curl to send outgoing DNS requests through <interface>. This option is a
counterpart to --interface (which does not affect DNS). The supplied string
diff --git a/docs/cmdline-opts/dns-ipv4-addr.d b/docs/cmdline-opts/dns-ipv4-addr.d
index 0d7bae6f0..e09153ab4 100644
--- a/docs/cmdline-opts/dns-ipv4-addr.d
+++ b/docs/cmdline-opts/dns-ipv4-addr.d
@@ -6,6 +6,7 @@ See-also: dns-interface dns-ipv6-addr
Added: 7.33.0
Requires: c-ares
Category: dns
+Example: --dns-ipv4-addr 10.1.2.3 $URL
---
Tell curl to bind to <ip-address> when making IPv4 DNS requests, so that
the DNS requests originate from this address. The argument should be a
diff --git a/docs/cmdline-opts/dns-ipv6-addr.d b/docs/cmdline-opts/dns-ipv6-addr.d
index a964dbb06..954cb98b3 100644
--- a/docs/cmdline-opts/dns-ipv6-addr.d
+++ b/docs/cmdline-opts/dns-ipv6-addr.d
@@ -6,6 +6,7 @@ See-also: dns-interface dns-ipv4-addr
Added: 7.33.0
Requires: c-ares
Category: dns
+Example: --dns-ipv6-addr 2a04:4e42::561 $URL
---
Tell curl to bind to <ip-address> when making IPv6 DNS requests, so that
the DNS requests originate from this address. The argument should be a
diff --git a/docs/cmdline-opts/dns-servers.d b/docs/cmdline-opts/dns-servers.d
index a0954b31f..089473580 100644
--- a/docs/cmdline-opts/dns-servers.d
+++ b/docs/cmdline-opts/dns-servers.d
@@ -4,6 +4,7 @@ Help: DNS server addrs to use
Requires: c-ares
Added: 7.33.0
Category: dns
+Example: --dns-servers 192.168.0.1,192.168.0.2 $URL
---
Set the list of DNS servers to be used instead of the system default.
The list of IP addresses should be separated with commas. Port numbers
diff --git a/docs/cmdline-opts/doh-cert-status.d b/docs/cmdline-opts/doh-cert-status.d
index 1442fc8a9..a760a6fb1 100644
--- a/docs/cmdline-opts/doh-cert-status.d
+++ b/docs/cmdline-opts/doh-cert-status.d
@@ -3,5 +3,6 @@ Help: Verify the status of the DoH server cert via OCSP-staple
Protocols: all
Added: 7.76.0
Category: dns tls
+Example: --doh-cert-status --doh-url https://doh.example $URL
---
Same as --cert-status but used for DoH (DNS-over-HTTPS).
diff --git a/docs/cmdline-opts/doh-insecure.d b/docs/cmdline-opts/doh-insecure.d
index fe399a2f9..907a5dcd6 100644
--- a/docs/cmdline-opts/doh-insecure.d
+++ b/docs/cmdline-opts/doh-insecure.d
@@ -3,5 +3,6 @@ Help: Allow insecure DoH server connections
Protocols: all
Added: 7.76.0
Category: dns tls
+Example: --doh-insecure --doh-url https://doh.example $URL
---
Same as --insecure but used for DoH (DNS-over-HTTPS).
diff --git a/docs/cmdline-opts/doh-url.d b/docs/cmdline-opts/doh-url.d
index 612945afa..80ff96ccc 100644
--- a/docs/cmdline-opts/doh-url.d
+++ b/docs/cmdline-opts/doh-url.d
@@ -4,6 +4,7 @@ Help: Resolve host names over DoH
Protocols: all
Added: 7.62.0
Category: dns
+Example: --doh-url https://doh.example $URL
---
Specifies which DNS-over-HTTPS (DoH) server to use to resolve hostnames,
instead of using the default name resolver mechanism. The URL must be HTTPS.
diff --git a/docs/cmdline-opts/dump-header.d b/docs/cmdline-opts/dump-header.d
index aa3bd9e33..8c617b92c 100644
--- a/docs/cmdline-opts/dump-header.d
+++ b/docs/cmdline-opts/dump-header.d
@@ -5,6 +5,8 @@ Help: Write the received headers to <filename>
Protocols: HTTP FTP
See-also: output
Category: http ftp
+Example: --dump-header store.txt $URL
+Added: 5.7
---
Write the received protocol headers to the specified file. If no headers are
received, the use of this option will create an empty file.
diff --git a/docs/cmdline-opts/egd-file.d b/docs/cmdline-opts/egd-file.d
index 05ede9ad1..cd3450a21 100644
--- a/docs/cmdline-opts/egd-file.d
+++ b/docs/cmdline-opts/egd-file.d
@@ -4,6 +4,8 @@ Help: EGD socket path for random data
Protocols: TLS
See-also: random-file
Category: tls
+Example: --egd-file /random/here $URL
+Added: 7.7
---
Specify the path name to the Entropy Gathering Daemon socket. The socket is
used to seed the random engine for SSL connections.
diff --git a/docs/cmdline-opts/engine.d b/docs/cmdline-opts/engine.d
index 034796c9a..16349e560 100644
--- a/docs/cmdline-opts/engine.d
+++ b/docs/cmdline-opts/engine.d
@@ -3,6 +3,8 @@ Arg: <name>
Help: Crypto engine to use
Protocols: TLS
Category: tls
+Example: --engine flavor $URL
+Added: 7.9.3
---
Select the OpenSSL crypto engine to use for cipher operations. Use --engine
list to print a list of build-time supported engines. Note that not all (and
diff --git a/docs/cmdline-opts/etag-compare.d b/docs/cmdline-opts/etag-compare.d
index c984cc9f8..fa1676287 100644
--- a/docs/cmdline-opts/etag-compare.d
+++ b/docs/cmdline-opts/etag-compare.d
@@ -4,6 +4,7 @@ Help: Pass an ETag from a file as a custom header
Protocols: HTTP
Added: 7.68.0
Category: http
+Example: --etag-compare etag.txt $URL
---
This option makes a conditional HTTP request for the specific ETag read
from the given file by sending a custom If-None-Match header using the
diff --git a/docs/cmdline-opts/etag-save.d b/docs/cmdline-opts/etag-save.d
index dc2484c32..8efad9044 100644
--- a/docs/cmdline-opts/etag-save.d
+++ b/docs/cmdline-opts/etag-save.d
@@ -4,6 +4,7 @@ Help: Parse ETag from a request and save it to a file
Protocols: HTTP
Added: 7.68.0
Category: http
+Example: --etag-save storetag.txt $URL
---
This option saves an HTTP ETag to the specified file. An ETag is a
caching related header, usually returned in a response.
diff --git a/docs/cmdline-opts/expect100-timeout.d b/docs/cmdline-opts/expect100-timeout.d
index 431a529c2..8855edd0b 100644
--- a/docs/cmdline-opts/expect100-timeout.d
+++ b/docs/cmdline-opts/expect100-timeout.d
@@ -5,6 +5,7 @@ Protocols: HTTP
Added: 7.47.0
See-also: connect-timeout
Category: http
+Example: --expect100-timeout 2.5 -T file $URL
---
Maximum time in seconds that you allow curl to wait for a 100-continue
response when curl emits an Expects: 100-continue header in its request. By
diff --git a/docs/cmdline-opts/fail-early.d b/docs/cmdline-opts/fail-early.d
index 3fbe238af..aad15c3fe 100644
--- a/docs/cmdline-opts/fail-early.d
+++ b/docs/cmdline-opts/fail-early.d
@@ -2,6 +2,7 @@ Long: fail-early
Help: Fail on first transfer error, do not continue
Added: 7.52.0
Category: curl
+Example: --fail-early $URL https://two.example
---
Fail and exit on the first detected transfer error.
diff --git a/docs/cmdline-opts/fail-with-body.d b/docs/cmdline-opts/fail-with-body.d
index 13609ff01..9b8c7db4e 100644
--- a/docs/cmdline-opts/fail-with-body.d
+++ b/docs/cmdline-opts/fail-with-body.d
@@ -4,8 +4,8 @@ Help: Fail on HTTP errors but save the body
Category: http output
Added: 7.76.0
See-also: fail
+Example: --fail-with-body $URL
---
-
Return an error on server errors where the HTTP response code is 400 or
greater). In normal cases when an HTTP server fails to deliver a document, it
returns an HTML document stating so (which often also describes why and
diff --git a/docs/cmdline-opts/fail.d b/docs/cmdline-opts/fail.d
index d4d65fba4..47adafbb9 100644
--- a/docs/cmdline-opts/fail.d
+++ b/docs/cmdline-opts/fail.d
@@ -4,6 +4,8 @@ Protocols: HTTP
Help: Fail silently (no output at all) on HTTP errors
See-also: fail-with-body
Category: important http
+Example: --fail $URL
+Added: 4.0
---
Fail silently (no output at all) on server errors. This is mostly done to
enable scripts etc to better deal with failed attempts. In normal cases
diff --git a/docs/cmdline-opts/false-start.d b/docs/cmdline-opts/false-start.d
index abeff0eb5..de36962ee 100644
--- a/docs/cmdline-opts/false-start.d
+++ b/docs/cmdline-opts/false-start.d
@@ -3,6 +3,7 @@ Help: Enable TLS False Start
Protocols: TLS
Added: 7.42.0
Category: tls
+Example: --false-start $URL
---
Tells curl to use false start during the TLS handshake. False start is a mode
where a TLS client will start sending application data before verifying the
diff --git a/docs/cmdline-opts/form-string.d b/docs/cmdline-opts/form-string.d
index 04d2578c5..4b5b0d64c 100644
--- a/docs/cmdline-opts/form-string.d
+++ b/docs/cmdline-opts/form-string.d
@@ -4,6 +4,8 @@ Protocols: HTTP SMTP IMAP
Arg: <name=string>
See-also: form
Category: http upload
+Example: --form-string "data" $URL
+Added: 7.13.2
---
Similar to --form except that the value string for the named parameter is used
literally. Leading \&'@' and \&'<' characters, and the \&';type=' string in
diff --git a/docs/cmdline-opts/form.d b/docs/cmdline-opts/form.d
index eec9aac72..737d2b398 100644
--- a/docs/cmdline-opts/form.d
+++ b/docs/cmdline-opts/form.d
@@ -5,6 +5,8 @@ Help: Specify multipart MIME data
Protocols: HTTP SMTP IMAP
Mutexed: data head upload-file
Category: http upload
+Example: --form "name=curl" --form "file=@loadthis" $URL
+Added: 5.0
---
For HTTP protocol family, this lets curl emulate a filled-in form in which a
user has pressed the submit button. This causes curl to POST data using the
diff --git a/docs/cmdline-opts/ftp-account.d b/docs/cmdline-opts/ftp-account.d
index bc04ba047..ce816f10d 100644
--- a/docs/cmdline-opts/ftp-account.d
+++ b/docs/cmdline-opts/ftp-account.d
@@ -4,6 +4,7 @@ Help: Account data string
Protocols: FTP
Added: 7.13.0
Category: ftp auth
+Example: --ftp-account "mr.robot" ftp://example.com/
---
When an FTP server asks for "account data" after user name and password has
been provided, this data is sent off using the ACCT command.
diff --git a/docs/cmdline-opts/ftp-alternative-to-user.d b/docs/cmdline-opts/ftp-alternative-to-user.d
index 171484906..a5fb9853d 100644
--- a/docs/cmdline-opts/ftp-alternative-to-user.d
+++ b/docs/cmdline-opts/ftp-alternative-to-user.d
@@ -4,6 +4,7 @@ Help: String to replace USER [name]
Protocols: FTP
Added: 7.15.5
Category: ftp
+Example: --ftp-alternative-to-user "U53r" ftp://example.com
---
If authenticating with the USER and PASS commands fails, send this command.
When connecting to Tumbleweed's Secure Transport server over FTPS using a
diff --git a/docs/cmdline-opts/ftp-create-dirs.d b/docs/cmdline-opts/ftp-create-dirs.d
index 5d9dfda46..9b8595011 100644
--- a/docs/cmdline-opts/ftp-create-dirs.d
+++ b/docs/cmdline-opts/ftp-create-dirs.d
@@ -3,7 +3,9 @@ Protocols: FTP SFTP
Help: Create the remote dirs if not present
See-also: create-dirs
Category: ftp sftp curl
+Example: --ftp-create-dirs -T file ftp://example.com/remote/path/file
+Added: 7.10.7
---
-When an FTP or SFTP URL/operation uses a path that doesn't currently exist on
+When an FTP or SFTP URL/operation uses a path that does not currently exist on
the server, the standard behavior of curl is to fail. Using this option, curl
will instead attempt to create missing directories.
diff --git a/docs/cmdline-opts/ftp-method.d b/docs/cmdline-opts/ftp-method.d
index 149340b82..82ab4819a 100644
--- a/docs/cmdline-opts/ftp-method.d
+++ b/docs/cmdline-opts/ftp-method.d
@@ -4,13 +4,16 @@ Help: Control CWD usage
Protocols: FTP
Added: 7.15.1
Category: ftp
+Example: --ftp-method multicwd ftp://example.com/dir1/dir2/file
+Example: --ftp-method nocwd ftp://example.com/dir1/dir2/file
+Example: --ftp-method singlecwd ftp://example.com/dir1/dir2/file
---
Control what method curl should use to reach a file on an FTP(S)
server. The method argument should be one of the following alternatives:
.RS
.IP multicwd
curl does a single CWD operation for each path part in the given URL. For deep
-hierarchies this means very many commands. This is how RFC 1738 says it should
+hierarchies this means many commands. This is how RFC 1738 says it should
be done. This is the default but the slowest behavior.
.IP nocwd
curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full
diff --git a/docs/cmdline-opts/ftp-pasv.d b/docs/cmdline-opts/ftp-pasv.d
index cbd548de3..8c6c9799f 100644
--- a/docs/cmdline-opts/ftp-pasv.d
+++ b/docs/cmdline-opts/ftp-pasv.d
@@ -4,13 +4,14 @@ Protocols: FTP
Added: 7.11.0
See-also: disable-epsv
Category: ftp
+Example: --ftp-pasv ftp://example.com/
---
Use passive mode for the data connection. Passive is the internal default
behavior, but using this option can be used to override a previous --ftp-port
option.
If this option is used several times, only the first one is used. Undoing an
-enforced passive really isn't doable but you must then instead enforce the
+enforced passive really is not doable but you must then instead enforce the
correct --ftp-port again.
Passive mode means that curl will try the EPSV command first and then PASV,
diff --git a/docs/cmdline-opts/ftp-port.d b/docs/cmdline-opts/ftp-port.d
index 9bb1d43f0..cb6ab2a93 100644
--- a/docs/cmdline-opts/ftp-port.d
+++ b/docs/cmdline-opts/ftp-port.d
@@ -5,6 +5,10 @@ Short: P
Protocols: FTP
See-also: ftp-pasv disable-eprt
Category: ftp
+Example: -P - ftp:/example.com
+Example: -P eth0 ftp:/example.com
+Example: -P 192.168.0.2 ftp:/example.com
+Added: 4.0
---
Reverses the default initiator/listener roles when connecting with FTP. This
option makes curl use active mode. curl then tells the server to connect back
@@ -27,7 +31,8 @@ If this option is used several times, the last one will be used. Disable the
use of PORT with --ftp-pasv. Disable the attempt to use the EPRT command
instead of PORT by using --disable-eprt. EPRT is really PORT++.
-Since 7.19.5, you can append \&":[start]-[end]\&" to the right of the address,
-to tell curl what TCP port range to use. That means you specify a port range,
-from a lower to a higher number. A single number works as well, but do note
-that it increases the risk of failure since the port may not be available.
+You can also append \&":[start]-[end]\&" to the right of the address, to tell
+curl what TCP port range to use. That means you specify a port range, from a
+lower to a higher number. A single number works as well, but do note that it
+increases the risk of failure since the port may not be available.
+(Added in 7.19.5)
diff --git a/docs/cmdline-opts/ftp-pret.d b/docs/cmdline-opts/ftp-pret.d
index e9c7d251a..453d8cf85 100644
--- a/docs/cmdline-opts/ftp-pret.d
+++ b/docs/cmdline-opts/ftp-pret.d
@@ -3,6 +3,7 @@ Help: Send PRET before PASV
Protocols: FTP
Added: 7.20.0
Category: ftp
+Example: --ftp-pret ftp://example.com/
---
Tell curl to send a PRET command before PASV (and EPSV). Certain FTP servers,
mainly drftpd, require this non-standard command for directory listings as
diff --git a/docs/cmdline-opts/ftp-skip-pasv-ip.d b/docs/cmdline-opts/ftp-skip-pasv-ip.d
index bcf4e7e62..36f9e6da1 100644
--- a/docs/cmdline-opts/ftp-skip-pasv-ip.d
+++ b/docs/cmdline-opts/ftp-skip-pasv-ip.d
@@ -4,6 +4,7 @@ Protocols: FTP
Added: 7.14.2
See-also: ftp-pasv
Category: ftp
+Example: --ftp-skip-pasv-ip ftp://example.com/
---
Tell curl to not use the IP address the server suggests in its response
to curl's PASV command when curl connects the data connection. Instead curl
diff --git a/docs/cmdline-opts/ftp-ssl-ccc-mode.d b/docs/cmdline-opts/ftp-ssl-ccc-mode.d
index 6289e544a..15ad1f54b 100644
--- a/docs/cmdline-opts/ftp-ssl-ccc-mode.d
+++ b/docs/cmdline-opts/ftp-ssl-ccc-mode.d
@@ -5,6 +5,7 @@ Protocols: FTP
Added: 7.16.2
See-also: ftp-ssl-ccc
Category: ftp tls
+Example: --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
---
Sets the CCC mode. The passive mode will not initiate the shutdown, but
instead wait for the server to do it, and will not reply to the shutdown from
diff --git a/docs/cmdline-opts/ftp-ssl-ccc.d b/docs/cmdline-opts/ftp-ssl-ccc.d
index 33cab4302..bfaf431bb 100644
--- a/docs/cmdline-opts/ftp-ssl-ccc.d
+++ b/docs/cmdline-opts/ftp-ssl-ccc.d
@@ -4,6 +4,7 @@ Protocols: FTP
See-also: ssl ftp-ssl-ccc-mode
Added: 7.16.1
Category: ftp tls
+Example: --ftp-ssl-ccc ftps://example.com/
---
Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after
authenticating. The rest of the control channel communication will be
diff --git a/docs/cmdline-opts/ftp-ssl-control.d b/docs/cmdline-opts/ftp-ssl-control.d
index 5191353dd..c2dee3134 100644
--- a/docs/cmdline-opts/ftp-ssl-control.d
+++ b/docs/cmdline-opts/ftp-ssl-control.d
@@ -3,7 +3,8 @@ Help: Require SSL/TLS for FTP login, clear for transfer
Protocols: FTP
Added: 7.16.0
Category: ftp tls
+Example: --ftp-ssl-control ftp://example.com
---
Require SSL/TLS for the FTP login, clear for transfer. Allows secure
authentication, but non-encrypted data transfers for efficiency. Fails the
-transfer if the server doesn't support SSL/TLS.
+transfer if the server does not support SSL/TLS.
diff --git a/docs/cmdline-opts/gen.pl b/docs/cmdline-opts/gen.pl
index e651f029a..e891f6709 100755
--- a/docs/cmdline-opts/gen.pl
+++ b/docs/cmdline-opts/gen.pl
@@ -45,6 +45,20 @@ my %redirlong;
my %protolong;
my %catlong;
+use POSIX qw(strftime);
+my $date = strftime "%B %d %Y", localtime;
+my $year = strftime "%Y", localtime;
+my $version = "unknown";
+
+open(INC, "<../../include/curl/curlver.h");
+while(<INC>) {
+ if($_ =~ /^#define LIBCURL_VERSION \"([0-9.]*)/) {
+ $version = $1;
+ last;
+ }
+}
+close(INC);
+
# get the long name version, return the man page string
sub manpageify {
my ($k)=@_;
@@ -63,6 +77,12 @@ sub manpageify {
sub printdesc {
my @desc = @_;
for my $d (@desc) {
+ if($d =~ /\(Added in ([0-9.]+)\)/i) {
+ my $ver = $1;
+ if(too_old($ver)) {
+ $d =~ s/ *\(Added in $ver\)//gi;
+ }
+ }
if($d !~ /^.\\"/) {
# **bold**
$d =~ s/\*\*([^ ]*)\*\*/\\fB$1\\fP/g;
@@ -79,6 +99,8 @@ sub printdesc {
# quote "bare" minuses in the output
$d =~ s/( |\\fI|^)--/$1\\-\\-/g;
$d =~ s/([ -]|\\fI|^)-/$1\\-/g;
+ # handle single quotes first on the line
+ $d =~ s/(\s*)\'/$1\\(aq/;
print $d;
}
}
@@ -114,8 +136,29 @@ sub protocols {
}
}
+sub too_old {
+ my ($version)=@_;
+ my $a = 999999;
+ if($version =~ /^(\d+)\.(\d+)\.(\d+)/) {
+ $a = $1 * 1000 + $2 * 10 + $3;
+ }
+ elsif($version =~ /^(\d+)\.(\d+)/) {
+ $a = $1 * 1000 + $2 * 10;
+ }
+ if($a < 7300) {
+ # we consider everything before 7.30.0 to be too old to mention
+ # specific changes for
+ return 1;
+ }
+ return 0;
+}
+
sub added {
my ($standalone, $data)=@_;
+ if(too_old($data)) {
+ # don't mention ancient additions
+ return "";
+ }
if($standalone) {
return ".SH \"ADDED\"\nAdded in curl version $data\n";
}
@@ -138,8 +181,11 @@ sub single {
my $requires;
my $category;
my $seealso;
+ my @examples; # there can be more than one
my $magic; # cmdline special option
+ my $line;
while(<F>) {
+ $line++;
if(/^Short: *(.)/i) {
$short=$1;
}
@@ -173,6 +219,9 @@ sub single {
elsif(/^Category: *(.*)/i) {
$category=$1;
}
+ elsif(/^Example: *(.*)/i) {
+ push @examples, $1;
+ }
elsif(/^Help: *(.*)/i) {
;
}
@@ -185,6 +234,14 @@ sub single {
print STDERR "ERROR: no 'Category:' in $f\n";
exit 2;
}
+ if(!$examples[0]) {
+ print STDERR "$f:$line:1:ERROR: no 'Example:' present\n";
+ exit 2;
+ }
+ if(!$added) {
+ print STDERR "$f:$line:1:ERROR: no 'Added:' version present\n";
+ exit 2;
+ }
last;
}
else {
@@ -276,6 +333,16 @@ sub single {
}
push @foot, overrides($standalone, "This option overrides $mstr. ");
}
+ if($examples[0]) {
+ my $s ="";
+ $s="s" if($examples[1]);
+ print "\nExample$s:\n.nf\n";
+ foreach my $e (@examples) {
+ $e =~ s!\$URL!https://example.com!g;
+ print " curl $e\n";
+ }
+ print ".fi\n";
+ }
if($added) {
push @foot, added($standalone, $added);
}
@@ -345,6 +412,8 @@ sub header {
open(F, "<:crlf", "$f");
my @d;
while(<F>) {
+ s/%DATE/$date/g;
+ s/%VERSION/$version/g;
push @d, $_;
}
close(F);
@@ -352,6 +421,42 @@ sub header {
}
sub listhelp {
+ print <<HEAD
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \\| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \\___|\\___/|_| \\_\\_____|
+ *
+ * Copyright (C) 1998 - $year, 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.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"
+#include "tool_help.h"
+
+/*
+ * DO NOT edit tool_listhelp.c manually.
+ * This source file is generated with the following command:
+
+ cd \$srcroot/docs/cmdline-opts
+ ./gen.pl listhelp *.d > \$srcroot/src/tool_listhelp.c
+ */
+
+const struct helptxt helptext[] = {
+HEAD
+ ;
foreach my $f (sort keys %helplong) {
my $long = $f;
my $short = $optlong{$long};
@@ -389,6 +494,11 @@ sub listhelp {
}
print $line;
}
+ print <<FOOT
+ { NULL, NULL, CURLHELP_HIDDEN }
+};
+FOOT
+ ;
}
sub listcats {
diff --git a/docs/cmdline-opts/get.d b/docs/cmdline-opts/get.d
index d529bb4e0..22a5522f6 100644
--- a/docs/cmdline-opts/get.d
+++ b/docs/cmdline-opts/get.d
@@ -2,6 +2,10 @@ Long: get
Short: G
Help: Put the post data in the URL and use GET
Category: http upload
+Example: --get $URL
+Example: --get -d "tool=curl" -d "age=old" $URL
+Example: --get -I -d "tool=curl" $URL
+Added: 7.8.1
---
When used, this option will make all data specified with --data, --data-binary
or --data-urlencode to be used in an HTTP GET request instead of the POST
@@ -12,5 +16,5 @@ If used in combination with --head, the POST data will instead be appended to
the URL with a HEAD request.
If this option is used several times, only the first one is used. This is
-because undoing a GET doesn't make sense, but you should then instead enforce
+because undoing a GET does not make sense, but you should then instead enforce
the alternative method you prefer.
diff --git a/docs/cmdline-opts/globoff.d b/docs/cmdline-opts/globoff.d
index 1db0fa264..642cb4b8c 100644
--- a/docs/cmdline-opts/globoff.d
+++ b/docs/cmdline-opts/globoff.d
@@ -2,6 +2,8 @@ Long: globoff
Short: g
Help: Disable URL sequences and ranges using {} and []
Category: curl
+Example: -g "https://example.com/{[]}}}}"
+Added: 7.6
---
This option switches off the "URL globbing parser". When you set this option,
you can specify URLs that contain the letters {}[] without having curl itself
diff --git a/docs/cmdline-opts/happy-eyeballs-timeout-ms.d b/docs/cmdline-opts/happy-eyeballs-timeout-ms.d
index ceff2a7df..c3b2a5132 100644
--- a/docs/cmdline-opts/happy-eyeballs-timeout-ms.d
+++ b/docs/cmdline-opts/happy-eyeballs-timeout-ms.d
@@ -3,12 +3,13 @@ Arg: <milliseconds>
Help: Time for IPv6 before trying IPv4
Added: 7.59.0
Category: connection
+Example: --happy-eyeballs-timeout-ms 500 $URL
---
-Happy eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
-addresses for dual-stack hosts, preferring IPv6 first for the number of
-milliseconds. If the IPv6 address cannot be connected to within that time then
-a connection attempt is made to the IPv4 address in parallel. The first
-connection to be established is the one that is used.
+Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
+addresses for dual-stack hosts, giving IPv6 a head-start of the specified
+number of milliseconds. If the IPv6 address cannot be connected to within that
+time, then a connection attempt is made to the IPv4 address in parallel. The
+first connection to be established is the one that is used.
The range of suggested useful values is limited. Happy Eyeballs RFC 6555 says
"It is RECOMMENDED that connection attempts be paced 150-250 ms apart to
diff --git a/docs/cmdline-opts/haproxy-protocol.d b/docs/cmdline-opts/haproxy-protocol.d
index 835820465..446dc6572 100644
--- a/docs/cmdline-opts/haproxy-protocol.d
+++ b/docs/cmdline-opts/haproxy-protocol.d
@@ -3,10 +3,11 @@ Help: Send HAProxy PROXY protocol v1 header
Protocols: HTTP
Added: 7.60.0
Category: http proxy
+Example: --haproxy-protocol $URL
---
-Send a HAProxy PROXY protocol v1 header at the beginning of the connection. This
-is used by some load balancers and reverse proxies to indicate the client's
-true IP address and port.
+Send a HAProxy PROXY protocol v1 header at the beginning of the
+connection. This is used by some load balancers and reverse proxies to
+indicate the client's true IP address and port.
This option is primarily useful when sending test requests to a service that
expects this header.
diff --git a/docs/cmdline-opts/head.d b/docs/cmdline-opts/head.d
index 6fe468511..c8297c0a5 100644
--- a/docs/cmdline-opts/head.d
+++ b/docs/cmdline-opts/head.d
@@ -3,6 +3,8 @@ Short: I
Help: Show document info only
Protocols: HTTP FTP FILE
Category: http ftp file
+Example: -I $URL
+Added: 4.0
---
Fetch the headers only! HTTP-servers feature the command HEAD which this uses
to get nothing but the header of a document. When used on an FTP or FILE file,
diff --git a/docs/cmdline-opts/header.d b/docs/cmdline-opts/header.d
index 121285ae3..143f426cf 100644
--- a/docs/cmdline-opts/header.d
+++ b/docs/cmdline-opts/header.d
@@ -5,13 +5,17 @@ Help: Pass custom header(s) to server
Protocols: HTTP
Category: http
See-also: user-agent referer
+Example: -H "X-First-Name: Joe" $URL
+Example: -H "User-Agent: yes-please/2000" $URL
+Example: -H "Host:" $URL
+Added: 5.0
---
Extra header to include in the request when sending HTTP to a server. You may
specify any number of extra headers. Note that if you should add a custom
header that has the same name as one of the internal ones curl would use, your
externally set header will be used instead of the internal one. This allows
you to make even trickier stuff than curl would normally do. You should not
-replace internally set headers without knowing perfectly well what you're
+replace internally set headers without knowing perfectly well what you are
doing. Remove an internal header by giving a replacement without content on
the right side of the colon, as in: -H \&"Host:". If you send the custom
header with no-value then its header must be terminated with a semicolon, such
@@ -32,10 +36,6 @@ proxy. Added in 7.37.0.
Passing on a "Transfer-Encoding: chunked" header when doing a HTTP request
with a request body, will make curl send the data using chunked encoding.
-Example:
-
- curl -H "X-First-Name: Joe" http://example.com/
-
**WARNING**: headers set with this option will be set in all requests - even
after redirects are followed, like when told with --location. This can lead to
the header being sent to other hosts than the original host, so sensitive
diff --git a/docs/cmdline-opts/help.d b/docs/cmdline-opts/help.d
index b7c68233a..1600b8bca 100644
--- a/docs/cmdline-opts/help.d
+++ b/docs/cmdline-opts/help.d
@@ -3,6 +3,8 @@ Arg: <category>
Short: h
Help: Get help for commands
Category: important curl
+Example: --help all
+Added: 4.0
---
Usage help. This lists all commands of the <category>.
If no arg was provided, curl will display the most important
diff --git a/docs/cmdline-opts/hostpubmd5.d b/docs/cmdline-opts/hostpubmd5.d
index c926ed8b5..833db950c 100644
--- a/docs/cmdline-opts/hostpubmd5.d
+++ b/docs/cmdline-opts/hostpubmd5.d
@@ -4,6 +4,7 @@ Help: Acceptable MD5 hash of the host public key
Protocols: SFTP SCP
Added: 7.17.1
Category: sftp scp
+Example: --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
---
Pass a string containing 32 hexadecimal digits. The string should
be the 128 bit MD5 checksum of the remote host's public key, curl will refuse
diff --git a/docs/cmdline-opts/hostpubsha256.d b/docs/cmdline-opts/hostpubsha256.d
new file mode 100644
index 000000000..81e6f9851
--- /dev/null
+++ b/docs/cmdline-opts/hostpubsha256.d
@@ -0,0 +1,11 @@
+Long: hostpubsha256
+Arg: <sha256>
+Help: Acceptable SHA256 hash of the host public key
+Protocols: SFTP SCP
+Added: 7.80.0
+Category: sftp scp
+Example: --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
+---
+Pass a string containing a Base64-encoded SHA256 hash of the remote
+host's public key. Curl will refuse the connection with the host
+unless the hashes match.
diff --git a/docs/cmdline-opts/hsts.d b/docs/cmdline-opts/hsts.d
index 2399084bf..f9cd453da 100644
--- a/docs/cmdline-opts/hsts.d
+++ b/docs/cmdline-opts/hsts.d
@@ -4,9 +4,8 @@ Protocols: HTTPS
Help: Enable HSTS with this cache file
Added: 7.74.0
Category: http
+Example: --hsts cache.txt $URL
---
-WARNING: this option is experimental. Do not use in production.
-
This option enables HSTS for the transfer. If the file name points to an
existing HSTS 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.
diff --git a/docs/cmdline-opts/http0.9.d b/docs/cmdline-opts/http0.9.d
index 954c22a17..03def27c0 100644
--- a/docs/cmdline-opts/http0.9.d
+++ b/docs/cmdline-opts/http0.9.d
@@ -1,9 +1,10 @@
Long: http0.9
Tags: Versions
Protocols: HTTP
-Added:
Help: Allow HTTP 0.9 responses
Category: http
+Example: --http0.9 $URL
+Added: 7.64.0
---
Tells curl to be fine with HTTP version 0.9 response.
diff --git a/docs/cmdline-opts/http1.0.d b/docs/cmdline-opts/http1.0.d
index a4059dbf0..3060a13c9 100644
--- a/docs/cmdline-opts/http1.0.d
+++ b/docs/cmdline-opts/http1.0.d
@@ -2,10 +2,11 @@ Short: 0
Long: http1.0
Tags: Versions
Protocols: HTTP
-Added:
+Added: 7.9.1
Mutexed: http1.1 http2
Help: Use HTTP 1.0
Category: http
+Example: --http1.0 $URL
---
Tells curl to use HTTP version 1.0 instead of using its internally preferred
HTTP version.
diff --git a/docs/cmdline-opts/http1.1.d b/docs/cmdline-opts/http1.1.d
index a71a40bab..01fa76d33 100644
--- a/docs/cmdline-opts/http1.1.d
+++ b/docs/cmdline-opts/http1.1.d
@@ -5,5 +5,6 @@ Added: 7.33.0
Mutexed: http1.0 http2
Help: Use HTTP 1.1
Category: http
+Example: --http1.1 $URL
---
Tells curl to use HTTP version 1.1.
diff --git a/docs/cmdline-opts/http2-prior-knowledge.d b/docs/cmdline-opts/http2-prior-knowledge.d
index ea2906edb..e3b32f6ba 100644
--- a/docs/cmdline-opts/http2-prior-knowledge.d
+++ b/docs/cmdline-opts/http2-prior-knowledge.d
@@ -6,6 +6,7 @@ Mutexed: http1.1 http1.0 http2
Requires: HTTP/2
Help: Use HTTP 2 without HTTP/1.1 Upgrade
Category: http
+Example: --http2-prior-knowledge $URL
---
Tells curl to issue its non-TLS HTTP requests using HTTP/2 without HTTP/1.1
Upgrade. It requires prior knowledge that the server supports HTTP/2 straight
diff --git a/docs/cmdline-opts/http2.d b/docs/cmdline-opts/http2.d
index 197515ee8..2a85db600 100644
--- a/docs/cmdline-opts/http2.d
+++ b/docs/cmdline-opts/http2.d
@@ -8,5 +8,12 @@ See-also: no-alpn
Help: Use HTTP 2
See-also: http1.1 http3
Category: http
+Example: --http2 $URL
---
Tells curl to use HTTP version 2.
+
+For HTTPS, this means curl will attempt to negotiate HTTP/2 in the TLS
+handshake. curl does this by default.
+
+For HTTP, this means curl will attempt to upgrade the request to HTTP/2 using
+the Upgrade: request header.
diff --git a/docs/cmdline-opts/http3.d b/docs/cmdline-opts/http3.d
index 8e3c30161..f6c92b39a 100644
--- a/docs/cmdline-opts/http3.d
+++ b/docs/cmdline-opts/http3.d
@@ -7,9 +7,9 @@ Requires: HTTP/3
Help: Use HTTP v3
See-also: http1.1 http2
Category: http
+Example: --http3 $URL
---
-
-WARNING: this option is experimental. Do not use in production.
+**WARNING**: this option is experimental. Do not use in production.
Tells curl to use HTTP version 3 directly to the host and port number used in
the URL. A normal HTTP/3 transaction will be done to a host and then get
diff --git a/docs/cmdline-opts/ignore-content-length.d b/docs/cmdline-opts/ignore-content-length.d
index cec990a8d..8badf4ea0 100644
--- a/docs/cmdline-opts/ignore-content-length.d
+++ b/docs/cmdline-opts/ignore-content-length.d
@@ -2,6 +2,8 @@ Long: ignore-content-length
Help: Ignore the size of the remote resource
Protocols: FTP HTTP
Category: http ftp
+Example: --ignore-content-length $URL
+Added: 7.14.1
---
For HTTP, Ignore the Content-Length header. This is particularly useful for
servers running Apache 1.x, which will report incorrect Content-Length for
@@ -10,4 +12,4 @@ files larger than 2 gigabytes.
For FTP (since 7.46.0), skip the RETR command to figure out the size before
downloading a file.
-This option doesn't work if libcurl was built to use hyper for HTTP.
+This option does not work for HTTP if libcurl was built to use hyper.
diff --git a/docs/cmdline-opts/include.d b/docs/cmdline-opts/include.d
index 250d4accf..85831f845 100644
--- a/docs/cmdline-opts/include.d
+++ b/docs/cmdline-opts/include.d
@@ -3,6 +3,8 @@ Short: i
Help: Include protocol response headers in the output
See-also: verbose
Category: important verbose
+Example: -i $URL
+Added: 4.8
---
Include the HTTP response headers in the output. The HTTP response headers can
include things like server name, cookies, date of the document, HTTP version
diff --git a/docs/cmdline-opts/insecure.d b/docs/cmdline-opts/insecure.d
index 636f121e2..5f39a339b 100644
--- a/docs/cmdline-opts/insecure.d
+++ b/docs/cmdline-opts/insecure.d
@@ -4,8 +4,9 @@ Help: Allow insecure server connections when using SSL
Protocols: TLS
See-also: proxy-insecure cacert
Category: tls
+Example: --insecure $URL
+Added: 7.10
---
-
By default, every SSL connection curl makes is verified to be secure. This
option allows curl to proceed and operate even for server connections
otherwise considered insecure.
@@ -15,3 +16,5 @@ contains the right name and verifies successfully using the cert store.
See this online resource for further details:
https://curl.se/docs/sslcerts.html
+
+**WARNING**: this makes the transfer insecure.
diff --git a/docs/cmdline-opts/interface.d b/docs/cmdline-opts/interface.d
index 196e7efa3..fb21ea2f1 100644
--- a/docs/cmdline-opts/interface.d
+++ b/docs/cmdline-opts/interface.d
@@ -3,8 +3,9 @@ Arg: <name>
Help: Use network INTERFACE (or address)
See-also: dns-interface
Category: connection
+Example: --interface eth0 $URL
+Added: 7.3
---
-
Perform an operation using a specified interface. You can enter interface
name, IP address or host name. An example could look like:
diff --git a/docs/cmdline-opts/ipv4.d b/docs/cmdline-opts/ipv4.d
index a6691376a..a5cae4eb4 100644
--- a/docs/cmdline-opts/ipv4.d
+++ b/docs/cmdline-opts/ipv4.d
@@ -2,12 +2,13 @@ Short: 4
Long: ipv4
Tags: Versions
Protocols:
-Added:
+Added: 7.10.8
Mutexed: ipv6
Requires:
See-also: http1.1 http2
Help: Resolve names to IPv4 addresses
Category: connection dns
+Example: --ipv4 $URL
---
This option tells curl to resolve names to IPv4 addresses only, and not for
example try IPv6.
diff --git a/docs/cmdline-opts/ipv6.d b/docs/cmdline-opts/ipv6.d
index ce0415caa..869c66896 100644
--- a/docs/cmdline-opts/ipv6.d
+++ b/docs/cmdline-opts/ipv6.d
@@ -2,12 +2,13 @@ Short: 6
Long: ipv6
Tags: Versions
Protocols:
-Added:
+Added: 7.10.8
Mutexed: ipv4
Requires:
See-also: http1.1 http2
Help: Resolve names to IPv6 addresses
Category: connection dns
+Example: --ipv6 $URL
---
This option tells curl to resolve names to IPv6 addresses only, and not for
example try IPv4.
diff --git a/docs/cmdline-opts/junk-session-cookies.d b/docs/cmdline-opts/junk-session-cookies.d
index 993b77fa8..cbc269240 100644
--- a/docs/cmdline-opts/junk-session-cookies.d
+++ b/docs/cmdline-opts/junk-session-cookies.d
@@ -4,8 +4,10 @@ Help: Ignore session cookies read from file
Protocols: HTTP
See-also: cookie cookie-jar
Category: http
+Example: --junk-session-cookies -b cookies.txt $URL
+Added: 7.9.7
---
When curl is told to read cookies from a given file, this option will make it
discard all "session cookies". This will basically have the same effect as if
a new session is started. Typical browsers always discard session cookies when
-they're closed down.
+they are closed down.
diff --git a/docs/cmdline-opts/keepalive-time.d b/docs/cmdline-opts/keepalive-time.d
index 41261535c..1b96c4dc5 100644
--- a/docs/cmdline-opts/keepalive-time.d
+++ b/docs/cmdline-opts/keepalive-time.d
@@ -3,6 +3,7 @@ Arg: <seconds>
Help: Interval time for keepalive probes
Added: 7.18.0
Category: connection
+Example: --keepalive-time 20 $URL
---
This option sets the time a connection needs to remain idle before sending
keepalive probes and the time between individual keepalive probes. It is
diff --git a/docs/cmdline-opts/key-type.d b/docs/cmdline-opts/key-type.d
index 50a068676..6fbec77b3 100644
--- a/docs/cmdline-opts/key-type.d
+++ b/docs/cmdline-opts/key-type.d
@@ -3,6 +3,8 @@ Arg: <type>
Help: Private key file type (DER/PEM/ENG)
Protocols: TLS
Category: tls
+Example: --key-type DER --key here $URL
+Added: 7.9.3
---
Private key file type. Specify which type your --key provided private key
is. DER, PEM, and ENG are supported. If not specified, PEM is assumed.
diff --git a/docs/cmdline-opts/key.d b/docs/cmdline-opts/key.d
index a762e6faf..b8a37384f 100644
--- a/docs/cmdline-opts/key.d
+++ b/docs/cmdline-opts/key.d
@@ -3,6 +3,8 @@ Arg: <key>
Protocols: TLS SSH
Help: Private key file name
Category: tls ssh
+Example: --cert certificate --key here $URL
+Added: 7.9.3
---
Private key file name. Allows you to provide your private key in this separate
file. For SSH, if not specified, curl tries the following candidates in order:
diff --git a/docs/cmdline-opts/krb.d b/docs/cmdline-opts/krb.d
index 7759cfb04..36a084704 100644
--- a/docs/cmdline-opts/krb.d
+++ b/docs/cmdline-opts/krb.d
@@ -4,6 +4,8 @@ Help: Enable Kerberos with security <level>
Protocols: FTP
Requires: Kerberos
Category: ftp
+Example: --krb clear ftp://example.com/
+Added: 7.3
---
Enable Kerberos authentication and use. The level must be entered and should
be one of 'clear', 'safe', 'confidential', or 'private'. Should you use a
diff --git a/docs/cmdline-opts/libcurl.d b/docs/cmdline-opts/libcurl.d
index 60921f5f9..b7371fffe 100644
--- a/docs/cmdline-opts/libcurl.d
+++ b/docs/cmdline-opts/libcurl.d
@@ -3,10 +3,14 @@ Arg: <file>
Help: Dump libcurl equivalent code of this command line
Added: 7.16.1
Category: curl
+Example: --libcurl client.c $URL
---
Append this option to any ordinary curl command line, and you will get
libcurl-using C source code written to the file that does the equivalent
of what your command-line operation does!
+This option is global and does not need to be specified for each use of
+--next.
+
If this option is used several times, the last given file name will be
used.
diff --git a/docs/cmdline-opts/limit-rate.d b/docs/cmdline-opts/limit-rate.d
index cb3a86077..6a46c0006 100644
--- a/docs/cmdline-opts/limit-rate.d
+++ b/docs/cmdline-opts/limit-rate.d
@@ -2,15 +2,23 @@ Long: limit-rate
Arg: <speed>
Help: Limit transfer speed to RATE
Category: connection
+Example: --limit-rate 100K $URL
+Example: --limit-rate 1000 $URL
+Example: --limit-rate 10M $URL
+Added: 7.10
---
Specify the maximum transfer rate you want curl to use - for both downloads
-and uploads. This feature is useful if you have a limited pipe and you'd like
+and uploads. This feature is useful if you have a limited pipe and you would like
your transfer not to use your entire bandwidth. To make it slower than it
otherwise would be.
The given speed is measured in bytes/second, unless a suffix is appended.
Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it
-megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
+megabytes, while 'g' or 'G' makes it gigabytes. The suffixes (k, M, G, T, P)
+are 1024 based. For example 1k is 1024. Examples: 200K, 3m and 1G.
+
+The rate limiting logic works on averaging the transfer speed to no more than
+the set threshold over a period of multiple seconds.
If you also use the --speed-limit option, that option will take precedence and
might cripple the rate-limiting slightly, to help keeping the speed-limit
diff --git a/docs/cmdline-opts/list-only.d b/docs/cmdline-opts/list-only.d
index ac3990692..c7bf7b4ac 100644
--- a/docs/cmdline-opts/list-only.d
+++ b/docs/cmdline-opts/list-only.d
@@ -4,11 +4,12 @@ Protocols: FTP POP3
Help: List only mode
Added: 4.0
Category: ftp pop3
+Example: --list-only ftp://example.com/dir/
---
(FTP)
When listing an FTP directory, this switch forces a name-only view. This is
especially useful if the user wants to machine-parse the contents of an FTP
-directory since the normal directory view doesn't use a standard look or
+directory since the normal directory view does not use a standard look or
format. When used like this, the option causes an NLST command to be sent to
the server instead of LIST.
diff --git a/docs/cmdline-opts/local-port.d b/docs/cmdline-opts/local-port.d
index 3f7a0e024..776641700 100644
--- a/docs/cmdline-opts/local-port.d
+++ b/docs/cmdline-opts/local-port.d
@@ -3,6 +3,7 @@ Arg: <num/range>
Help: Force use of RANGE for local port numbers
Added: 7.15.2
Category: connection
+Example: --local-port 1000-3000 $URL
---
Set a preferred single number or range (FROM-TO) of local port numbers to use
for the connection(s). Note that port numbers by nature are a scarce resource
diff --git a/docs/cmdline-opts/location-trusted.d b/docs/cmdline-opts/location-trusted.d
index f01d842bc..0277aa7b5 100644
--- a/docs/cmdline-opts/location-trusted.d
+++ b/docs/cmdline-opts/location-trusted.d
@@ -3,8 +3,10 @@ Help: Like --location, and send auth to other hosts
Protocols: HTTP
See-also: user
Category: http auth
+Example: --location-trusted -u user:password $URL
+Added: 7.10.4
---
Like --location, but will allow sending the name + password to all hosts that
the site may redirect to. This may or may not introduce a security breach if
-the site redirects you to a site to which you'll send your authentication info
-(which is plaintext in the case of HTTP Basic authentication).
+the site redirects you to a site to which you will send your authentication
+info (which is plaintext in the case of HTTP Basic authentication).
diff --git a/docs/cmdline-opts/location.d b/docs/cmdline-opts/location.d
index c70b2eba8..941390a7f 100644
--- a/docs/cmdline-opts/location.d
+++ b/docs/cmdline-opts/location.d
@@ -3,18 +3,20 @@ Short: L
Help: Follow redirects
Protocols: HTTP
Category: http
+Example: -L $URL
+Added: 4.9
---
If the server reports that the requested page has moved to a different
location (indicated with a Location: header and a 3XX response code), this
option will make curl redo the request on the new place. If used together with
--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
+host. If a redirect takes curl to a different host, it will not 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
+When curl follows a redirect and if the request is a POST, it will send 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.
diff --git a/docs/cmdline-opts/login-options.d b/docs/cmdline-opts/login-options.d
index b12246885..de7728854 100644
--- a/docs/cmdline-opts/login-options.d
+++ b/docs/cmdline-opts/login-options.d
@@ -4,6 +4,7 @@ Protocols: IMAP POP3 SMTP
Help: Server login options
Added: 7.34.0
Category: imap pop3 smtp auth
+Example: --login-options 'AUTH=*' imap://example.com
---
Specify the login options to use during server authentication.
diff --git a/docs/cmdline-opts/mail-auth.d b/docs/cmdline-opts/mail-auth.d
index 529997161..49a02d5ba 100644
--- a/docs/cmdline-opts/mail-auth.d
+++ b/docs/cmdline-opts/mail-auth.d
@@ -5,6 +5,7 @@ Help: Originator address of the original email
Added: 7.25.0
See-also: mail-rcpt mail-from
Category: smtp
+Example: --mail-auth user@example.come -T mail smtp://example.com/
---
Specify a single address. This will be used to specify the authentication
address (identity) of a submitted message that is being relayed to another
diff --git a/docs/cmdline-opts/mail-from.d b/docs/cmdline-opts/mail-from.d
index faf48e2a4..be0547c9f 100644
--- a/docs/cmdline-opts/mail-from.d
+++ b/docs/cmdline-opts/mail-from.d
@@ -5,5 +5,6 @@ Protocols: SMTP
Added: 7.20.0
See-also: mail-rcpt mail-auth
Category: smtp
+Example: --mail-from user@example.com -T mail smtp://example.com/
---
Specify a single address that the given mail should get sent from.
diff --git a/docs/cmdline-opts/mail-rcpt-allowfails.d b/docs/cmdline-opts/mail-rcpt-allowfails.d
index 76457c32e..36d555e17 100644
--- a/docs/cmdline-opts/mail-rcpt-allowfails.d
+++ b/docs/cmdline-opts/mail-rcpt-allowfails.d
@@ -3,6 +3,7 @@ Help: Allow RCPT TO command to fail for some recipients
Protocols: SMTP
Added: 7.69.0
Category: smtp
+Example: --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
---
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
@@ -12,5 +13,6 @@ The default behavior can be changed by passing --mail-rcpt-allowfails
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. \ No newline at end of file
+If all recipients trigger RCPT TO failures and this flag is specified, curl
+will still abort the SMTP conversation and return the error received from to
+the last RCPT TO command.
diff --git a/docs/cmdline-opts/mail-rcpt.d b/docs/cmdline-opts/mail-rcpt.d
index d8ae046ee..d4a2502ee 100644
--- a/docs/cmdline-opts/mail-rcpt.d
+++ b/docs/cmdline-opts/mail-rcpt.d
@@ -4,13 +4,11 @@ Help: Mail to this address
Protocols: SMTP
Added: 7.20.0
Category: smtp
+Example: --mail-rcpt user@example.net smtp://example.com
---
-Specify a single address, user name or mailing list name. Repeat this
+Specify a single e-mail 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.
-
When performing an address verification (VRFY command), the recipient should be
specified as the user name or user name and domain (as per Section 3.5 of
RFC5321). (Added in 7.34.0)
diff --git a/docs/cmdline-opts/manual.d b/docs/cmdline-opts/manual.d
index 25ed08dd2..b4ebf3e1f 100644
--- a/docs/cmdline-opts/manual.d
+++ b/docs/cmdline-opts/manual.d
@@ -2,5 +2,7 @@ Long: manual
Short: M
Help: Display the full manual
Category: curl
+Example: --manual
+Added: 5.2
---
Manual. Display the huge help text.
diff --git a/docs/cmdline-opts/max-filesize.d b/docs/cmdline-opts/max-filesize.d
index 2f82998d7..9e3abca42 100644
--- a/docs/cmdline-opts/max-filesize.d
+++ b/docs/cmdline-opts/max-filesize.d
@@ -1,8 +1,11 @@
Long: max-filesize
Arg: <bytes>
Help: Maximum file size to download
+Protocols: FTP HTTP MQTT
See-also: limit-rate
Category: connection
+Example: --max-filesize 100K $URL
+Added: 7.10.8
---
Specify the maximum size (in bytes) of a file to download. If the file
requested is larger than this value, the transfer will not start and curl will
@@ -12,6 +15,6 @@ A size modifier may be used. For example, Appending 'k' or 'K' will count the
number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it
gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0)
-**NOTE**: For protocols where the size is not known in advance (including FTP
-and HTTP) this option has no effect even if the file transfer ends up being
-larger than the given limit.
+**NOTE**: The file size is not always known prior to download, and for such
+files this option has no effect even if the file transfer ends up being larger
+than this given limit. \ No newline at end of file
diff --git a/docs/cmdline-opts/max-redirs.d b/docs/cmdline-opts/max-redirs.d
index 1b5de5bc1..bb045140a 100644
--- a/docs/cmdline-opts/max-redirs.d
+++ b/docs/cmdline-opts/max-redirs.d
@@ -3,6 +3,8 @@ Arg: <num>
Help: Maximum number of redirects allowed
Protocols: HTTP
Category: http
+Example: --max-redirs 3 --location $URL
+Added: 7.5
---
Set maximum number of redirections to follow. When --location is used, to
prevent curl from following too many redirects, by default, the limit is
diff --git a/docs/cmdline-opts/max-time.d b/docs/cmdline-opts/max-time.d
index c4e4ed7eb..7246f6134 100644
--- a/docs/cmdline-opts/max-time.d
+++ b/docs/cmdline-opts/max-time.d
@@ -1,9 +1,12 @@
Long: max-time
Short: m
-Arg: <seconds>
-Help: Maximum time allowed for the transfer
+Arg: <fractional seconds>
+Help: Maximum time allowed for transfer
See-also: connect-timeout
Category: connection
+Example: --max-time 10 $URL
+Example: --max-time 2.92 $URL
+Added: 4.0
---
Maximum time in seconds that you allow the whole operation to take. This is
useful for preventing your batch jobs from hanging for hours due to slow
diff --git a/docs/cmdline-opts/metalink.d b/docs/cmdline-opts/metalink.d
index 4725b389a..1fc108742 100644
--- a/docs/cmdline-opts/metalink.d
+++ b/docs/cmdline-opts/metalink.d
@@ -2,6 +2,7 @@ Long: metalink
Help: Process given URLs as metalink XML file
Added: 7.27.0
Category: misc
+Example: --metalink file $URL
---
This option was previously used to specify a metalink resource. Metalink
support has been disabled in curl since 7.78.0 for security reasons.
diff --git a/docs/cmdline-opts/negotiate.d b/docs/cmdline-opts/negotiate.d
index e247bfbee..69a0e6c66 100644
--- a/docs/cmdline-opts/negotiate.d
+++ b/docs/cmdline-opts/negotiate.d
@@ -3,6 +3,8 @@ Help: Use HTTP Negotiate (SPNEGO) authentication
Protocols: HTTP
See-also: basic ntlm anyauth proxy-negotiate
Category: auth http
+Example: --negotiate -u : $URL
+Added: 7.10.6
---
Enables Negotiate (SPNEGO) authentication.
@@ -11,6 +13,6 @@ This option requires a library built with GSS-API or SSPI support. Use
When using this option, you must also provide a fake --user option to activate
the authentication code properly. Sending a '-u :' is enough as the user name
-and password from the --user option aren't actually used.
+and password from the --user option are not actually used.
If this option is used several times, only the first one is used.
diff --git a/docs/cmdline-opts/netrc-file.d b/docs/cmdline-opts/netrc-file.d
index 95fb2654a..df89d51f5 100644
--- a/docs/cmdline-opts/netrc-file.d
+++ b/docs/cmdline-opts/netrc-file.d
@@ -4,6 +4,7 @@ Arg: <filename>
Added: 7.21.5
Mutexed: netrc
Category: curl
+Example: --netrc-file netrc $URL
---
This option is similar to --netrc, except that you provide the path (absolute
or relative) to the netrc file that curl should use. You can only specify one
diff --git a/docs/cmdline-opts/netrc-optional.d b/docs/cmdline-opts/netrc-optional.d
index e0b59d19b..5f6fea626 100644
--- a/docs/cmdline-opts/netrc-optional.d
+++ b/docs/cmdline-opts/netrc-optional.d
@@ -3,6 +3,8 @@ Help: Use either .netrc or URL
Mutexed: netrc
See-also: netrc-file
Category: curl
+Example: --netrc-optional $URL
+Added: 7.9.8
---
-Very similar to --netrc, but this option makes the .netrc usage **optional**
+Similar to --netrc, but this option makes the .netrc usage **optional**
and not mandatory as the --netrc option does.
diff --git a/docs/cmdline-opts/netrc.d b/docs/cmdline-opts/netrc.d
index a31e2ede3..8a366bdc1 100644
--- a/docs/cmdline-opts/netrc.d
+++ b/docs/cmdline-opts/netrc.d
@@ -2,17 +2,19 @@ Long: netrc
Short: n
Help: Must read .netrc for user name and password
Category: curl
+Example: --netrc $URL
+Added: 4.6
---
Makes curl scan the *.netrc* (*_netrc* on Windows) file in the user's home
directory for login name and password. This is typically used for FTP on
Unix. If used with HTTP, curl will enable user authentication. See
*netrc(5)* and *ftp(1)* for details on the file format. Curl will not
-complain if that file doesn't have the right permissions (it should be
+complain if that file does not have the right permissions (it should be
neither world- nor group-readable). The environment variable "HOME" is used
to find the home directory.
-A quick and very simple example of how to setup a *.netrc* to allow curl
-to FTP to the machine host.domain.com with user name \&'myself' and password
-\&'secret' should look similar to:
+A quick and simple example of how to setup a *.netrc* to allow curl to FTP to
+the machine host.domain.com with user name \&'myself' and password \&'secret'
+should look similar to:
.B "machine host.domain.com login myself password secret"
diff --git a/docs/cmdline-opts/next.d b/docs/cmdline-opts/next.d
index 1adcc7535..bcbad68e5 100644
--- a/docs/cmdline-opts/next.d
+++ b/docs/cmdline-opts/next.d
@@ -6,6 +6,8 @@ Added: 7.36.0
Magic: divider
Help: Make next URL use its separate set of options
Category: curl
+Example: $URL --next -d postthis www2.example.com
+Example: -I $URL --next https://example.net/
---
Tells curl to use a separate operation for the following URL and associated
options. This allows you to send several URL requests, each with their own
@@ -18,4 +20,6 @@ options include --verbose, --trace, --trace-ascii and --fail-early.
For example, you can do both a GET and a POST in a single command line:
+.nf
curl www1.example.com --next -d postthis www2.example.com
+.fi
diff --git a/docs/cmdline-opts/no-alpn.d b/docs/cmdline-opts/no-alpn.d
index 8031b4f07..bc6207632 100644
--- a/docs/cmdline-opts/no-alpn.d
+++ b/docs/cmdline-opts/no-alpn.d
@@ -6,6 +6,7 @@ See-also: no-npn http2
Requires: TLS
Help: Disable the ALPN TLS extension
Category: tls http
+Example: --no-alpn $URL
---
Disable the ALPN TLS extension. ALPN is enabled by default if libcurl was built
with an SSL library that supports ALPN. ALPN is used by a libcurl that supports
diff --git a/docs/cmdline-opts/no-buffer.d b/docs/cmdline-opts/no-buffer.d
index 1079f4712..fe19292a3 100644
--- a/docs/cmdline-opts/no-buffer.d
+++ b/docs/cmdline-opts/no-buffer.d
@@ -2,6 +2,8 @@ Long: no-buffer
Short: N
Help: Disable buffering of the output stream
Category: curl
+Example: --no-buffer $URL
+Added: 6.5
---
Disables the buffering of the output stream. In normal work situations, curl
will use a standard buffered output stream that will have the effect that it
diff --git a/docs/cmdline-opts/no-keepalive.d b/docs/cmdline-opts/no-keepalive.d
index 72f3bc9a5..e62f8d880 100644
--- a/docs/cmdline-opts/no-keepalive.d
+++ b/docs/cmdline-opts/no-keepalive.d
@@ -1,6 +1,8 @@
Long: no-keepalive
Help: Disable TCP keepalive on the connection
Category: connection
+Example: --no-keepalive $URL
+Added: 7.18.0
---
Disables the use of keepalive messages on the TCP connection. curl otherwise
enables them by default.
diff --git a/docs/cmdline-opts/no-npn.d b/docs/cmdline-opts/no-npn.d
index 27e5974bd..7a9239d36 100644
--- a/docs/cmdline-opts/no-npn.d
+++ b/docs/cmdline-opts/no-npn.d
@@ -7,6 +7,7 @@ See-also: no-alpn http2
Requires: TLS
Help: Disable the NPN TLS extension
Category: tls http
+Example: --no-npn $URL
---
Disable the NPN TLS extension. NPN is enabled by default if libcurl was built
with an SSL library that supports NPN. NPN is used by a libcurl that supports
diff --git a/docs/cmdline-opts/no-progress-meter.d b/docs/cmdline-opts/no-progress-meter.d
index bf28d635d..9c7413eeb 100644
--- a/docs/cmdline-opts/no-progress-meter.d
+++ b/docs/cmdline-opts/no-progress-meter.d
@@ -3,6 +3,7 @@ Help: Do not show the progress meter
See-also: verbose silent
Added: 7.67.0
Category: verbose
+Example: --no-progress-meter -o store $URL
---
Option to switch off the progress meter output without muting or otherwise
affecting warning and informational messages like --silent does.
diff --git a/docs/cmdline-opts/no-sessionid.d b/docs/cmdline-opts/no-sessionid.d
index 013ca4cb4..70a32210e 100644
--- a/docs/cmdline-opts/no-sessionid.d
+++ b/docs/cmdline-opts/no-sessionid.d
@@ -3,6 +3,7 @@ Help: Disable SSL session-ID reusing
Protocols: TLS
Added: 7.16.0
Category: tls
+Example: --no-sessionid $URL
---
Disable curl's use of SSL session-ID caching. By default all transfers are
done using the cache. Note that while nothing should ever get hurt by
diff --git a/docs/cmdline-opts/noproxy.d b/docs/cmdline-opts/noproxy.d
index c49e6d180..ee0978e03 100644
--- a/docs/cmdline-opts/noproxy.d
+++ b/docs/cmdline-opts/noproxy.d
@@ -3,6 +3,7 @@ Arg: <no-proxy-list>
Help: List of hosts which do not use proxy
Added: 7.19.4
Category: proxy
+Example: --noproxy "www.example" $URL
---
Comma-separated list of hosts for which not to use a proxy, if one is
specified. The only wildcard is a single * character, which matches all hosts,
diff --git a/docs/cmdline-opts/ntlm-wb.d b/docs/cmdline-opts/ntlm-wb.d
index 4a2f7e1e6..c8e72c325 100644
--- a/docs/cmdline-opts/ntlm-wb.d
+++ b/docs/cmdline-opts/ntlm-wb.d
@@ -3,6 +3,8 @@ Help: Use HTTP NTLM authentication with winbind
Protocols: HTTP
See-also: ntlm proxy-ntlm
Category: auth http
+Example: --ntlm-wb -u user:password $URL
+Added: 7.22.0
---
Enables NTLM much in the style --ntlm does, but hand over the authentication
to the separate binary ntlmauth application that is executed when needed.
diff --git a/docs/cmdline-opts/ntlm.d b/docs/cmdline-opts/ntlm.d
index c63c086eb..658218a10 100644
--- a/docs/cmdline-opts/ntlm.d
+++ b/docs/cmdline-opts/ntlm.d
@@ -5,6 +5,8 @@ See-also: proxy-ntlm
Protocols: HTTP
Requires: TLS
Category: auth http
+Example: --ntlm -u user:password $URL
+Added: 7.10.6
---
Enables NTLM authentication. The NTLM authentication method was designed by
Microsoft and is used by IIS web servers. It is a proprietary protocol,
diff --git a/docs/cmdline-opts/oauth2-bearer.d b/docs/cmdline-opts/oauth2-bearer.d
index e0ea210ed..49691622f 100644
--- a/docs/cmdline-opts/oauth2-bearer.d
+++ b/docs/cmdline-opts/oauth2-bearer.d
@@ -3,6 +3,8 @@ Help: OAuth 2 Bearer Token
Arg: <token>
Protocols: IMAP POP3 SMTP HTTP
Category: auth
+Example: --oauth2-bearer "mF_9.B5f-4.1JqM" $URL
+Added: 7.33.0
---
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
diff --git a/docs/cmdline-opts/output-dir.d b/docs/cmdline-opts/output-dir.d
index d2ff7738e..230ebeea5 100644
--- a/docs/cmdline-opts/output-dir.d
+++ b/docs/cmdline-opts/output-dir.d
@@ -4,6 +4,7 @@ Help: Directory to save files in
Added: 7.73.0
See-also: remote-name remote-header-name
Category: curl
+Example: --output-dir "tmp" -O $URL
---
This option specifies the directory in which files should be stored, when
@@ -12,7 +13,7 @@ This option specifies the directory in which files should be stored, when
The given output directory is used for all URLs and output options on the
command line, up until the first --next.
-If the specified target directory doesn't exist, the operation will fail
+If the specified target directory does not exist, the operation will fail
unless --create-dirs is also used.
If this option is used multiple times, the last specified directory will be
diff --git a/docs/cmdline-opts/output.d b/docs/cmdline-opts/output.d
index bf35bf4a0..15ddd525a 100644
--- a/docs/cmdline-opts/output.d
+++ b/docs/cmdline-opts/output.d
@@ -4,6 +4,11 @@ Short: o
Help: Write to file instead of stdout
See-also: remote-name remote-name-all remote-header-name
Category: important curl
+Example: -o file $URL
+Example: "http://{one,two}.example.com" -o "file_#1.txt"
+Example: "http://{site,host}.host[1-5].com" -o "#1_#2"
+Example: -o file $URL -o file2 https://example.net
+Added: 4.0
---
Write output to <file> instead of stdout. If you are using {} or [] to fetch
multiple documents, you should quote the URL and you can use '#' followed by a
@@ -22,7 +27,7 @@ this:
curl -o aa example.com -o bb example.net
-and the order of the -o options and the URLs doesn't matter, just that the
+and the order of the -o options and the URLs does not matter, just that the
first -o is for the first URL and so on, so the above command line can also be
written as
@@ -31,3 +36,11 @@ written as
See also the --create-dirs option to create the local directories
dynamically. Specifying the output as '-' (a single dash) will force the
output to be done to stdout.
+
+To suppress response bodies, you can redirect output to /dev/null:
+
+ curl example.com -o /dev/null
+
+Or for Windows use nul:
+
+ curl example.com -o nul
diff --git a/docs/cmdline-opts/page-footer b/docs/cmdline-opts/page-footer
index c88cd5fab..a0ce01846 100644
--- a/docs/cmdline-opts/page-footer
+++ b/docs/cmdline-opts/page-footer
@@ -21,7 +21,7 @@ SMTP, LDAP, etc.
.IP "ALL_PROXY [protocol://]<host>[:port]"
Sets the proxy server to use if no protocol-specific proxy is set.
.IP "NO_PROXY <comma-separated list of hosts/domains>"
-list of host names that shouldn't go through any proxy. If set to an asterisk
+list of host names that should not go through any proxy. If set to an asterisk
\&'*' only, it matches all hosts. Each name in this list is matched as either
a domain name which contains the hostname, or the hostname itself.
@@ -38,13 +38,13 @@ The list of host names can also be include numerical IP addresses, and IPv6
versions should then be given without enclosing brackets.
IPv6 numerical addresses are compared as strings, so they will only match if
-the representations are the same: "::1" is the same as "::0:1" but they don't
+the representations are the same: "::1" is the same as "::0:1" but they do not
match.
.IP "CURL_SSL_BACKEND <TLS backend>"
If curl was built with support for "MultiSSL", meaning that it has built-in
support for more than one TLS backend, this environment variable can be set to
the case insensitive name of the particular backend to use when curl is
-invoked. Setting a name that isn't a built-in alternative will make curl
+invoked. Setting a name that is not a built-in alternative will make curl
stay with the default.
SSL backend names (case-insensitive): bearssl, gnutls, gskit, mbedtls,
@@ -61,10 +61,10 @@ analyze the TLS traffic in real time using network analyzing tools such as
Wireshark. This works with the following TLS backends: OpenSSL, libressl,
BoringSSL, GnuTLS, NSS and wolfSSL.
.SH "PROXY PROTOCOL PREFIXES"
-Since curl version 7.21.7, the proxy string may be specified with a
-protocol:// prefix to specify alternative proxy protocols.
+The proxy string may be specified with a protocol:// prefix to specify
+alternative proxy protocols. (Added in 7.21.7)
-If no protocol is specified in the proxy string or if the string doesn't match
+If no protocol is specified in the proxy string or if the string does not match
a supported one, the proxy will be treated as an HTTP proxy.
The supported proxy protocol prefixes are as follows:
@@ -95,42 +95,42 @@ A feature or option that was needed to perform the desired request was not
enabled or was explicitly disabled at build-time. To make curl able to do
this, you probably need another build of libcurl!
.IP 5
-Couldn't resolve proxy. The given proxy host could not be resolved.
+Could not resolve proxy. The given proxy host could not be resolved.
.IP 6
-Couldn't resolve host. The given remote host could not be resolved.
+Could not resolve host. The given remote host could not be resolved.
.IP 7
Failed to connect to host.
.IP 8
-Weird server reply. The server sent data curl couldn't parse.
+Weird server reply. The server sent data curl could not parse.
.IP 9
FTP access denied. The server denied login or denied access to the particular
resource or directory you wanted to reach. Most often you tried to change to a
-directory that doesn't exist on the server.
+directory that does not exist on the server.
.IP 10
FTP accept failed. While waiting for the server to connect back when an active
FTP session is used, an error code was sent over the control connection or
similar.
.IP 11
-FTP weird PASS reply. Curl couldn't parse the reply sent to the PASS request.
+FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
.IP 12
During an active FTP session while waiting for the server to connect back to
curl, the timeout expired.
.IP 13
-FTP weird PASV reply, Curl couldn't parse the reply sent to the PASV request.
+FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
.IP 14
-FTP weird 227 format. Curl couldn't parse the 227-line the server sent.
+FTP weird 227 format. Curl could not parse the 227-line the server sent.
.IP 15
-FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+FTP cannot use host. Could not resolve the host IP we got in the 227-line.
.IP 16
HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is
somewhat generic and can be one out of several problems, see the error message
for details.
.IP 17
-FTP couldn't set binary. Couldn't change transfer method to binary.
+FTP could not set binary. Could not change transfer method to binary.
.IP 18
Partial file. Only a part of the file was transferred.
.IP 19
-FTP couldn't download/access the given file, the RETR (or similar) command
+FTP could not download/access the given file, the RETR (or similar) command
failed.
.IP 21
FTP quote error. A quote command returned error from the server.
@@ -139,9 +139,9 @@ HTTP page not retrieved. The requested url was not found or returned another
error with the HTTP error code being 400 or above. This return code only
appears if --fail is used.
.IP 23
-Write error. Curl couldn't write data to a local filesystem or similar.
+Write error. Curl could not write data to a local filesystem or similar.
.IP 25
-FTP couldn't STOR file. The server denied the STOR operation, used for FTP
+FTP could not STOR file. The server denied the STOR operation, used for FTP
uploading.
.IP 26
Read error. Various reading problems.
@@ -154,18 +154,18 @@ conditions.
FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT
command, try doing a transfer using PASV instead!
.IP 31
-FTP couldn't use REST. The REST command failed. This command is used for
+FTP could not use REST. The REST command failed. This command is used for
resumed FTP transfers.
.IP 33
-HTTP range error. The range "command" didn't work.
+HTTP range error. The range "command" did not work.
.IP 34
HTTP post error. Internal post-request generation error.
.IP 35
SSL connect error. The SSL handshaking failed.
.IP 36
-Bad download resume. Couldn't continue an earlier aborted download.
+Bad download resume. Could not continue an earlier aborted download.
.IP 37
-FILE couldn't read file. Failed to open the file. Permissions?
+FILE could not read file. Failed to open the file. Permissions?
.IP 38
LDAP cannot bind. LDAP bind operation failed.
.IP 39
@@ -189,7 +189,7 @@ Malformed telnet option.
.IP 51
The peer's SSL certificate or SSH MD5 fingerprint was not OK.
.IP 52
-The server didn't reply anything, which here is considered an error.
+The server did not reply anything, which here is considered an error.
.IP 53
SSL crypto engine not found.
.IP 54
@@ -201,7 +201,7 @@ Failure in receiving network data.
.IP 58
Problem with the local certificate.
.IP 59
-Couldn't use specified SSL cipher.
+Could not use specified SSL cipher.
.IP 60
Peer certificate cannot be authenticated with known CA certificates.
.IP 61
diff --git a/docs/cmdline-opts/page-header b/docs/cmdline-opts/page-header
index f96ed6596..db579309b 100644
--- a/docs/cmdline-opts/page-header
+++ b/docs/cmdline-opts/page-header
@@ -22,17 +22,16 @@
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
-.TH curl 1 "16 Dec 2016" "Curl 7.52.0" "Curl Manual"
+.TH curl 1 "%DATE" "curl %VERSION" "curl Manual"
.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
.B curl [options / URLs]
.SH DESCRIPTION
-.B curl
-is a tool to transfer data from or to a server, using one of the supported
-protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP,
-LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
-SMTPS, TELNET or TFTP). The command is designed to work without user
+**curl** is a tool for transferring data from or to a server. It supports these
+protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS,
+LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
+SMTPS, TELNET or TFTP. The command is designed to work without user
interaction.
curl offers a busload of useful tricks like proxy support, user
@@ -43,7 +42,7 @@ head spin!
curl is powered by libcurl for all transfer-related features. See
*libcurl(3)* for details.
.SH URL
-The URL syntax is protocol-dependent. You'll find a detailed description in
+The URL syntax is protocol-dependent. You find a detailed description in
RFC 3986.
You can specify multiple URLs or parts of URLs by writing part sets within
@@ -120,7 +119,7 @@ will work.
.IP FTP(S)
curl supports the File Transfer Protocol with a lot of tweaks and levers. With
or without using TLS.
-.IP GOPHER
+.IP GOPHER(S)
Retrieve files.
.IP HTTP(S)
curl supports HTTP with numerous options and variations. It can speak HTTP
@@ -133,8 +132,8 @@ without using TLS.
curl can do directory lookups for you, with or without TLS.
.IP MQTT
curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a
-topic while uploading/posting equals "publish" on a topic. MQTT support is
-experimental and TLS based MQTT is not supported (yet).
+topic while uploading/posting equals "publish" on a topic. MQTT over TLS is
+not supported (yet).
.IP POP3(S)
Downloading from a pop3 server means getting a mail. With or without using
TLS.
@@ -188,13 +187,11 @@ or without a space between it and its value, although a space is a recommended
separator. The long "double-dash" form, --data for example, requires a space
between it and its value.
-Short version options that don't need any additional values can be used
+Short version options that do not need any additional values can be used
immediately next to each other, like for example you can specify all the
options -O, -L and -v at once as -OLv.
In general, all boolean options are enabled with --**option** and yet again
disabled with --**no-**option. That is, you use the exact same option name
but prefix it with "no-". However, in this list we mostly only list and show
-the --option version of them. (This concept with --no options was added in
-7.19.0. Previously most options were toggled on/off through repeated use of
-the same command line option.)
+the --option version of them.
diff --git a/docs/cmdline-opts/parallel-immediate.d b/docs/cmdline-opts/parallel-immediate.d
index 95c8afc42..4f7468de6 100644
--- a/docs/cmdline-opts/parallel-immediate.d
+++ b/docs/cmdline-opts/parallel-immediate.d
@@ -3,8 +3,12 @@ Help: Do not wait for multiplexing (with --parallel)
Added: 7.68.0
See-also: parallel parallel-max
Category: connection curl
+Example: --parallel-immediate -Z $URL -o file1 $URL -o file2
---
When doing parallel transfers, this option will instruct curl that it should
rather prefer opening up more connections in parallel at once rather than
waiting to see if new transfers can be added as multiplexed streams on another
connection.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/parallel-max.d b/docs/cmdline-opts/parallel-max.d
index c265b7204..1f22fcb7d 100644
--- a/docs/cmdline-opts/parallel-max.d
+++ b/docs/cmdline-opts/parallel-max.d
@@ -4,8 +4,12 @@ Help: Maximum concurrency for parallel transfers
Added: 7.66.0
See-also: parallel
Category: connection curl
+Example: --parallel-max 100 -Z $URL ftp://example.com/
---
When asked to do parallel transfers, using --parallel, this option controls
the maximum amount of transfers to do simultaneously.
+This option is global and does not need to be specified for each use of
+--next.
+
The default is 50.
diff --git a/docs/cmdline-opts/parallel.d b/docs/cmdline-opts/parallel.d
index d6b4affe3..2a0ca4340 100644
--- a/docs/cmdline-opts/parallel.d
+++ b/docs/cmdline-opts/parallel.d
@@ -3,6 +3,10 @@ Long: parallel
Help: Perform transfers in parallel
Added: 7.66.0
Category: connection curl
+Example: --parallel $URL -o file1 $URL -o file2
---
Makes curl perform its transfers in parallel as compared to the regular serial
manner.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/pass.d b/docs/cmdline-opts/pass.d
index e3fb97ae6..3c85c5e92 100644
--- a/docs/cmdline-opts/pass.d
+++ b/docs/cmdline-opts/pass.d
@@ -3,6 +3,8 @@ Arg: <phrase>
Help: Pass phrase for the private key
Protocols: SSH TLS
Category: ssh tls auth
+Example: --pass secret --key file $URL
+Added: 7.9.3
---
Passphrase for the private key.
diff --git a/docs/cmdline-opts/path-as-is.d b/docs/cmdline-opts/path-as-is.d
index 0bfaf6639..fb87def94 100644
--- a/docs/cmdline-opts/path-as-is.d
+++ b/docs/cmdline-opts/path-as-is.d
@@ -2,6 +2,7 @@ Long: path-as-is
Help: Do not squash .. sequences in URL path
Added: 7.42.0
Category: curl
+Example: --path-as-is https://example.com/../../etc/passwd
---
Tell curl to not handle sequences of /../ or /./ in the given URL
path. Normally curl will squash or merge them according to standards but with
diff --git a/docs/cmdline-opts/pinnedpubkey.d b/docs/cmdline-opts/pinnedpubkey.d
index 4e0ed5edd..7985cb2b3 100644
--- a/docs/cmdline-opts/pinnedpubkey.d
+++ b/docs/cmdline-opts/pinnedpubkey.d
@@ -3,11 +3,14 @@ Arg: <hashes>
Help: FILE/HASHES Public key to verify peer against
Protocols: TLS
Category: tls
+Example: --pinnedpubkey keyfile $URL
+Example: --pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
+Added: 7.39.0
---
Tells curl to use the specified public key file (or hashes) to verify the
peer. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
-\'sha256//\' and separated by \';\'
+'sha256//' and separated by ';'.
When negotiating a TLS or SSL connection, the server sends a certificate
indicating its identity. A public key is extracted from this certificate and
diff --git a/docs/cmdline-opts/post301.d b/docs/cmdline-opts/post301.d
index 64ead0536..744ef5813 100644
--- a/docs/cmdline-opts/post301.d
+++ b/docs/cmdline-opts/post301.d
@@ -4,6 +4,7 @@ Protocols: HTTP
See-also: post302 post303 location
Added: 7.17.1
Category: http post
+Example: --post301 --location -d "data" $URL
---
Tells curl to respect RFC 7231/6.4.2 and not convert POST requests into GET
requests when following a 301 redirection. The non-RFC behavior is ubiquitous
diff --git a/docs/cmdline-opts/post302.d b/docs/cmdline-opts/post302.d
index d73cb9dcd..2c6d4b615 100644
--- a/docs/cmdline-opts/post302.d
+++ b/docs/cmdline-opts/post302.d
@@ -4,6 +4,7 @@ Protocols: HTTP
See-also: post301 post303 location
Added: 7.19.1
Category: http post
+Example: --post302 --location -d "data" $URL
---
Tells curl to respect RFC 7231/6.4.3 and not convert POST requests into GET
requests when following a 302 redirection. The non-RFC behavior is ubiquitous
diff --git a/docs/cmdline-opts/post303.d b/docs/cmdline-opts/post303.d
index 1a67e13ef..a2fec18c4 100644
--- a/docs/cmdline-opts/post303.d
+++ b/docs/cmdline-opts/post303.d
@@ -4,6 +4,7 @@ Protocols: HTTP
See-also: post302 post301 location
Added: 7.26.0
Category: http post
+Example: --post303 --location -d "data" $URL
---
Tells curl to violate RFC 7231/6.4.4 and not convert POST requests into GET
requests when following 303 redirections. A server may require a POST to
diff --git a/docs/cmdline-opts/preproxy.d b/docs/cmdline-opts/preproxy.d
index a917c16ed..c91565c0e 100644
--- a/docs/cmdline-opts/preproxy.d
+++ b/docs/cmdline-opts/preproxy.d
@@ -3,6 +3,7 @@ Arg: [protocol://]host[:port]
Help: Use this proxy first
Added: 7.52.0
Category: proxy
+Example: --preproxy socks5://proxy.example -x http://http.example $URL
---
Use the specified SOCKS proxy before connecting to an HTTP or HTTPS --proxy. In
such a case curl first connects to the SOCKS proxy and then connects (through
diff --git a/docs/cmdline-opts/progress-bar.d b/docs/cmdline-opts/progress-bar.d
index 299d5384a..f00be881d 100644
--- a/docs/cmdline-opts/progress-bar.d
+++ b/docs/cmdline-opts/progress-bar.d
@@ -2,6 +2,8 @@ Short: #
Long: progress-bar
Help: Display transfer progress as a bar
Category: verbose
+Example: -# -O $URL
+Added: 5.10
---
Make curl display transfer progress as a simple progress bar instead of the
standard, more informational, meter.
@@ -11,3 +13,6 @@ shows a percentage if the transfer size is known. For transfers without a
known size, there will be space ship (-=o=-) that moves back and forth but
only while data is being transferred, with a set of flying hash sign symbols on
top.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/proto-default.d b/docs/cmdline-opts/proto-default.d
index 74d3932cf..a659b840d 100644
--- a/docs/cmdline-opts/proto-default.d
+++ b/docs/cmdline-opts/proto-default.d
@@ -3,17 +3,14 @@ Help: Use PROTOCOL for any URL missing a scheme
Arg: <protocol>
Added: 7.45.0
Category: connection curl
+Example: --proto-default https ftp.example.com
---
Tells curl to use *protocol* for any URL missing a scheme name.
-Example:
-
- curl --proto-default https ftp.mozilla.org
-
An unknown or unsupported protocol causes error
*CURLE_UNSUPPORTED_PROTOCOL* (1).
This option does not change the default proxy protocol (http).
-Without this option curl would make a guess based on the host, see --url for
-details.
+Without this option set, curl guesses protocol based on the host name, see
+--url for details.
diff --git a/docs/cmdline-opts/proto-redir.d b/docs/cmdline-opts/proto-redir.d
index 10580ad83..73a27d039 100644
--- a/docs/cmdline-opts/proto-redir.d
+++ b/docs/cmdline-opts/proto-redir.d
@@ -3,6 +3,7 @@ Arg: <protocols>
Help: Enable/disable PROTOCOLS on redirect
Added: 7.20.2
Category: connection curl
+Example: --proto-redir =http,https $URL
---
Tells curl to limit what protocols it may use on redirect. Protocols denied by
--proto are not overridden by this option. See --proto for how protocols are
@@ -12,8 +13,6 @@ Example, allow only HTTP and HTTPS on redirect:
curl --proto-redir -all,http,https http://example.com
-By default curl will allow HTTP, HTTPS, FTP and FTPS on redirect (7.65.2).
-Older versions of curl allowed all protocols on redirect except several
-disabled for security reasons: Since 7.19.4 FILE and SCP are disabled, and
-since 7.40.0 SMB and SMBS are also disabled. Specifying *all* or *+all*
-enables all protocols on redirect, including those disabled for security.
+By default curl will only allow HTTP, HTTPS, FTP and FTPS on redirect (since
+7.65.2). Specifying *all* or *+all* enables all protocols on redirects, which
+is not good for security.
diff --git a/docs/cmdline-opts/proto.d b/docs/cmdline-opts/proto.d
index 1e269a56c..6ff52c417 100644
--- a/docs/cmdline-opts/proto.d
+++ b/docs/cmdline-opts/proto.d
@@ -4,6 +4,7 @@ Help: Enable/disable PROTOCOLS
See-also: proto-redir proto-default
Added: 7.20.2
Category: connection curl
+Example: --proto =http,https,sftp $URL
---
Tells curl to limit what protocols it may use for transfers. Protocols are
evaluated left to right, are comma separated, and are each a protocol name or
diff --git a/docs/cmdline-opts/proxy-anyauth.d b/docs/cmdline-opts/proxy-anyauth.d
index 6410c0e6a..80f2b9701 100644
--- a/docs/cmdline-opts/proxy-anyauth.d
+++ b/docs/cmdline-opts/proxy-anyauth.d
@@ -3,6 +3,7 @@ Help: Pick any proxy authentication method
Added: 7.13.2
See-also: proxy proxy-basic proxy-digest
Category: proxy auth
+Example: --proxy-anyauth --proxy-user user:passwd -x proxy $URL
---
Tells curl to pick a suitable authentication method when communicating with
the given HTTP proxy. This might cause an extra request/response round-trip.
diff --git a/docs/cmdline-opts/proxy-basic.d b/docs/cmdline-opts/proxy-basic.d
index e842f9900..c651badc1 100644
--- a/docs/cmdline-opts/proxy-basic.d
+++ b/docs/cmdline-opts/proxy-basic.d
@@ -2,6 +2,8 @@ Long: proxy-basic
Help: Use Basic authentication on the proxy
See-also: proxy proxy-anyauth proxy-digest
Category: proxy auth
+Example: --proxy-basic --proxy-user user:passwd -x proxy $URL
+Added: 7.12.0
---
Tells curl to use HTTP Basic authentication when communicating with the given
proxy. Use --basic for enabling HTTP Basic with a remote host. Basic is the
diff --git a/docs/cmdline-opts/proxy-cacert.d b/docs/cmdline-opts/proxy-cacert.d
index bbc731a28..5c3294475 100644
--- a/docs/cmdline-opts/proxy-cacert.d
+++ b/docs/cmdline-opts/proxy-cacert.d
@@ -4,5 +4,6 @@ Arg: <file>
Added: 7.52.0
See-also: proxy-capath cacert capath proxy
Category: proxy tls
+Example: --proxy-cacert CA-file.txt -x https://proxy $URL
---
Same as --cacert but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-capath.d b/docs/cmdline-opts/proxy-capath.d
index cc342b755..0429984f2 100644
--- a/docs/cmdline-opts/proxy-capath.d
+++ b/docs/cmdline-opts/proxy-capath.d
@@ -4,5 +4,6 @@ Arg: <dir>
Added: 7.52.0
See-also: proxy-cacert proxy capath
Category: proxy tls
+Example: --proxy-capath /local/directory -x https://proxy $URL
---
Same as --capath but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-cert-type.d b/docs/cmdline-opts/proxy-cert-type.d
index fb7596c17..2152f537d 100644
--- a/docs/cmdline-opts/proxy-cert-type.d
+++ b/docs/cmdline-opts/proxy-cert-type.d
@@ -3,5 +3,6 @@ Arg: <type>
Added: 7.52.0
Help: Client certificate type for HTTPS proxy
Category: proxy tls
+Example: --proxy-cert-type PEM --proxy-cert file -x https://proxy $URL
---
Same as --cert-type but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-cert.d b/docs/cmdline-opts/proxy-cert.d
index 7df2712f3..3cf54b73f 100644
--- a/docs/cmdline-opts/proxy-cert.d
+++ b/docs/cmdline-opts/proxy-cert.d
@@ -3,5 +3,6 @@ Arg: <cert[:passwd]>
Help: Set client certificate for proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-cert file -x https://proxy $URL
---
Same as --cert but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-ciphers.d b/docs/cmdline-opts/proxy-ciphers.d
index 366555673..b4c358091 100644
--- a/docs/cmdline-opts/proxy-ciphers.d
+++ b/docs/cmdline-opts/proxy-ciphers.d
@@ -3,5 +3,6 @@ Arg: <list>
Help: SSL ciphers to use for proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy $URL
---
Same as --ciphers but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-crlfile.d b/docs/cmdline-opts/proxy-crlfile.d
index 580dc50ce..1ac199965 100644
--- a/docs/cmdline-opts/proxy-crlfile.d
+++ b/docs/cmdline-opts/proxy-crlfile.d
@@ -3,5 +3,6 @@ Arg: <file>
Help: Set a CRL list for proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-crlfile rejects.txt -x https://proxy $URL
---
Same as --crlfile but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-digest.d b/docs/cmdline-opts/proxy-digest.d
index 52f1fcc67..9677e92c5 100644
--- a/docs/cmdline-opts/proxy-digest.d
+++ b/docs/cmdline-opts/proxy-digest.d
@@ -2,6 +2,8 @@ Long: proxy-digest
Help: Use Digest authentication on the proxy
See-also: proxy proxy-anyauth proxy-basic
Category: proxy tls
+Example: --proxy-digest --proxy-user user:passwd -x proxy $URL
+Added: 7.12.0
---
Tells curl to use HTTP Digest authentication when communicating with the given
proxy. Use --digest for enabling HTTP Digest with a remote host.
diff --git a/docs/cmdline-opts/proxy-header.d b/docs/cmdline-opts/proxy-header.d
index c2b0928f9..273a773d9 100644
--- a/docs/cmdline-opts/proxy-header.d
+++ b/docs/cmdline-opts/proxy-header.d
@@ -4,6 +4,9 @@ Help: Pass custom header(s) to proxy
Protocols: HTTP
Added: 7.37.0
Category: proxy
+Example: --proxy-header "X-First-Name: Joe" -x http://proxy $URL
+Example: --proxy-header "User-Agent: surprise" -x http://proxy $URL
+Example: --proxy-header "Host:" -x http://proxy $URL
---
Extra header to include in the request when sending HTTP to a proxy. You may
specify any number of extra headers. This is the equivalent option to --header
diff --git a/docs/cmdline-opts/proxy-insecure.d b/docs/cmdline-opts/proxy-insecure.d
index e123f4019..3f4f7c180 100644
--- a/docs/cmdline-opts/proxy-insecure.d
+++ b/docs/cmdline-opts/proxy-insecure.d
@@ -2,5 +2,6 @@ Long: proxy-insecure
Help: Do HTTPS proxy connections without verifying the proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-insecure -x https://proxy $URL
---
Same as --insecure but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-key-type.d b/docs/cmdline-opts/proxy-key-type.d
index 1906872ef..31f47afa4 100644
--- a/docs/cmdline-opts/proxy-key-type.d
+++ b/docs/cmdline-opts/proxy-key-type.d
@@ -3,5 +3,6 @@ Arg: <type>
Help: Private key file type for proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-key-type DER --proxy-key here -x https://proxy $URL
---
Same as --key-type but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-key.d b/docs/cmdline-opts/proxy-key.d
index 57d469f43..d0b2c1309 100644
--- a/docs/cmdline-opts/proxy-key.d
+++ b/docs/cmdline-opts/proxy-key.d
@@ -2,5 +2,7 @@ Long: proxy-key
Help: Private key for HTTPS proxy
Arg: <key>
Category: proxy tls
+Example: --proxy-key here -x https://proxy $URL
+Added: 7.52.0
---
Same as --key but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-negotiate.d b/docs/cmdline-opts/proxy-negotiate.d
index 72f35960e..5085a7cb3 100644
--- a/docs/cmdline-opts/proxy-negotiate.d
+++ b/docs/cmdline-opts/proxy-negotiate.d
@@ -3,6 +3,7 @@ Help: Use HTTP Negotiate (SPNEGO) authentication on the proxy
Added: 7.17.1
See-also: proxy-anyauth proxy-basic
Category: proxy auth
+Example: --proxy-negotiate --proxy-user user:passwd -x proxy $URL
---
Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating
with the given proxy. Use --negotiate for enabling HTTP Negotiate (SPNEGO)
diff --git a/docs/cmdline-opts/proxy-ntlm.d b/docs/cmdline-opts/proxy-ntlm.d
index cb1ba7b00..03d2d179c 100644
--- a/docs/cmdline-opts/proxy-ntlm.d
+++ b/docs/cmdline-opts/proxy-ntlm.d
@@ -2,6 +2,8 @@ Long: proxy-ntlm
Help: Use NTLM authentication on the proxy
See-also: proxy-negotiate proxy-anyauth
Category: proxy auth
+Example: --proxy-ntlm --proxy-user user:passwd -x http://proxy $URL
+Added: 7.10.7
---
Tells curl to use HTTP NTLM authentication when communicating with the given
proxy. Use --ntlm for enabling NTLM with a remote host.
diff --git a/docs/cmdline-opts/proxy-pass.d b/docs/cmdline-opts/proxy-pass.d
index 627451bbb..b71468413 100644
--- a/docs/cmdline-opts/proxy-pass.d
+++ b/docs/cmdline-opts/proxy-pass.d
@@ -3,5 +3,6 @@ Arg: <phrase>
Help: Pass phrase for the private key for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
+Example: --proxy-pass secret --proxy-key here -x https://proxy $URL
---
Same as --pass but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-pinnedpubkey.d b/docs/cmdline-opts/proxy-pinnedpubkey.d
index 2ab79f19e..17a57ff2a 100644
--- a/docs/cmdline-opts/proxy-pinnedpubkey.d
+++ b/docs/cmdline-opts/proxy-pinnedpubkey.d
@@ -3,11 +3,14 @@ Arg: <hashes>
Help: FILE/HASHES public key to verify proxy with
Protocols: TLS
Category: proxy tls
+Example: --proxy-pinnedpubkey keyfile $URL
+Example: --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
+Added: 7.59.0
---
Tells curl to use the specified public key file (or hashes) to verify the
proxy. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
-\'sha256//\' and separated by \';\'
+'sha256//' and separated by ';'.
When negotiating a TLS or SSL connection, the server sends a certificate
indicating its identity. A public key is extracted from this certificate and
diff --git a/docs/cmdline-opts/proxy-service-name.d b/docs/cmdline-opts/proxy-service-name.d
index f78072906..fbed17570 100644
--- a/docs/cmdline-opts/proxy-service-name.d
+++ b/docs/cmdline-opts/proxy-service-name.d
@@ -3,5 +3,6 @@ Arg: <name>
Help: SPNEGO proxy service name
Added: 7.43.0
Category: proxy tls
+Example: --proxy-service-name "shrubbery" -x proxy $URL
---
This option allows you to change the service name for proxy negotiation.
diff --git a/docs/cmdline-opts/proxy-ssl-allow-beast.d b/docs/cmdline-opts/proxy-ssl-allow-beast.d
index 138001b36..b3e701f05 100644
--- a/docs/cmdline-opts/proxy-ssl-allow-beast.d
+++ b/docs/cmdline-opts/proxy-ssl-allow-beast.d
@@ -2,5 +2,6 @@ Long: proxy-ssl-allow-beast
Help: Allow security flaw for interop for HTTPS proxy
Added: 7.52.0
Category: proxy tls
+Example: --proxy-ssl-allow-beast -x https://proxy $URL
---
Same as --ssl-allow-beast but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-ssl-auto-client-cert.d b/docs/cmdline-opts/proxy-ssl-auto-client-cert.d
index 054175457..7c071d7ec 100644
--- a/docs/cmdline-opts/proxy-ssl-auto-client-cert.d
+++ b/docs/cmdline-opts/proxy-ssl-auto-client-cert.d
@@ -2,5 +2,6 @@ Long: proxy-ssl-auto-client-cert
Help: Use auto client certificate for proxy (Schannel)
Added: 7.77.0
Category: proxy tls
+Example: --proxy-ssl-auto-client-cert -x https://proxy $URL
---
Same as --ssl-auto-client-cert but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-tls13-ciphers.d b/docs/cmdline-opts/proxy-tls13-ciphers.d
index 9f03f135e..e9524515e 100644
--- a/docs/cmdline-opts/proxy-tls13-ciphers.d
+++ b/docs/cmdline-opts/proxy-tls13-ciphers.d
@@ -3,6 +3,8 @@ Arg: <ciphersuite list>
help: TLS 1.3 proxy cipher suites
Protocols: TLS
Category: proxy tls
+Example: --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy $URL
+Added: 7.61.0
---
Specifies which cipher suites to use in the connection to your HTTPS proxy
when it negotiates TLS 1.3. The list of ciphers suites must specify valid
diff --git a/docs/cmdline-opts/proxy-tlsauthtype.d b/docs/cmdline-opts/proxy-tlsauthtype.d
index 5649a0f5f..c00928ed5 100644
--- a/docs/cmdline-opts/proxy-tlsauthtype.d
+++ b/docs/cmdline-opts/proxy-tlsauthtype.d
@@ -3,5 +3,6 @@ Arg: <type>
Help: TLS authentication type for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
+Example: --proxy-tlsauthtype SRP -x https://proxy $URL
---
Same as --tlsauthtype but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-tlspassword.d b/docs/cmdline-opts/proxy-tlspassword.d
index 38a33d45d..89b551d68 100644
--- a/docs/cmdline-opts/proxy-tlspassword.d
+++ b/docs/cmdline-opts/proxy-tlspassword.d
@@ -3,5 +3,6 @@ Arg: <string>
Help: TLS password for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
+Example: --proxy-tlspassword passwd -x https://proxy $URL
---
Same as --tlspassword but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-tlsuser.d b/docs/cmdline-opts/proxy-tlsuser.d
index 587f7f510..b3c400ed5 100644
--- a/docs/cmdline-opts/proxy-tlsuser.d
+++ b/docs/cmdline-opts/proxy-tlsuser.d
@@ -3,5 +3,6 @@ Arg: <name>
Help: TLS username for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
+Example: --proxy-tlsuser smith -x https://proxy $URL
---
Same as --tlsuser but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-tlsv1.d b/docs/cmdline-opts/proxy-tlsv1.d
index 5003f5f70..c54782e8f 100644
--- a/docs/cmdline-opts/proxy-tlsv1.d
+++ b/docs/cmdline-opts/proxy-tlsv1.d
@@ -2,5 +2,6 @@ Long: proxy-tlsv1
Help: Use TLSv1 for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
+Example: --proxy-tlsv1 -x https://proxy $URL
---
Same as --tlsv1 but used in HTTPS proxy context.
diff --git a/docs/cmdline-opts/proxy-user.d b/docs/cmdline-opts/proxy-user.d
index 82fc5170f..1d63f4d01 100644
--- a/docs/cmdline-opts/proxy-user.d
+++ b/docs/cmdline-opts/proxy-user.d
@@ -3,6 +3,8 @@ Short: U
Arg: <user:password>
Help: Proxy user and password
Category: proxy auth
+Example: --proxy-user name:pwd -x proxy $URL
+Added: 4.0
---
Specify the user name and password to use for proxy authentication.
diff --git a/docs/cmdline-opts/proxy.d b/docs/cmdline-opts/proxy.d
index 0592f13ba..3f6ef7acf 100644
--- a/docs/cmdline-opts/proxy.d
+++ b/docs/cmdline-opts/proxy.d
@@ -3,13 +3,15 @@ Short: x
Arg: [protocol://]host[:port]
Help: Use this proxy
Category: proxy
+Example: --proxy http://proxy.example $URL
+Added: 4.0
---
Use the specified proxy.
The proxy string can be specified with a protocol:// prefix. No protocol
specified or http:// will be treated as HTTP proxy. Use socks4://, socks4a://,
socks5:// or socks5h:// to request a specific SOCKS version to be used.
-(The protocol support was added in curl 7.21.7)
+(Added in 7.21.7)
HTTPS proxy support via https:// protocol prefix was added in 7.52.0 for
OpenSSL, GnuTLS and NSS.
diff --git a/docs/cmdline-opts/proxy1.0.d b/docs/cmdline-opts/proxy1.0.d
index b8a232bf7..8aea3abdd 100644
--- a/docs/cmdline-opts/proxy1.0.d
+++ b/docs/cmdline-opts/proxy1.0.d
@@ -2,6 +2,8 @@ Long: proxy1.0
Arg: <host[:port]>
Help: Use HTTP/1.0 proxy on given port
Category: proxy
+Example: --proxy1.0 -x http://proxy $URL
+Added: 7.19.4
---
Use the specified HTTP 1.0 proxy. If the port number is not specified, it is
assumed at port 1080.
diff --git a/docs/cmdline-opts/proxytunnel.d b/docs/cmdline-opts/proxytunnel.d
index 94dae992f..a62cbb694 100644
--- a/docs/cmdline-opts/proxytunnel.d
+++ b/docs/cmdline-opts/proxytunnel.d
@@ -3,6 +3,8 @@ Short: p
Help: Operate through an HTTP proxy tunnel (using CONNECT)
See-also: proxy
Category: proxy
+Example: --proxytunnel -x http://proxy $URL
+Added: 7.3
---
When an HTTP proxy is used --proxy, this option will make curl tunnel through
the proxy. The tunnel approach is made with the HTTP proxy CONNECT request and
diff --git a/docs/cmdline-opts/pubkey.d b/docs/cmdline-opts/pubkey.d
index 692daf6b0..cbd60f780 100644
--- a/docs/cmdline-opts/pubkey.d
+++ b/docs/cmdline-opts/pubkey.d
@@ -3,6 +3,8 @@ Arg: <key>
Protocols: SFTP SCP
Help: SSH Public key file name
Category: sftp scp auth
+Example: --pubkey file.pub sftp://example.com/
+Added: 7.16.2
---
Public key file name. Allows you to provide your public key in this separate
file.
diff --git a/docs/cmdline-opts/quote.d b/docs/cmdline-opts/quote.d
index 6e4fd08f1..25da93f1d 100644
--- a/docs/cmdline-opts/quote.d
+++ b/docs/cmdline-opts/quote.d
@@ -4,8 +4,9 @@ Short: Q
Help: Send command(s) to server before transfer
Protocols: FTP SFTP
Category: ftp sftp
+Example: --quote "DELE file" ftp://example.com/foo
+Added: 5.3
---
-
Send an arbitrary command to the remote FTP or SFTP server. Quote commands are
sent BEFORE the transfer takes place (just after the initial PWD command in an
FTP transfer, to be exact). To make commands take place after a successful
@@ -14,12 +15,13 @@ has changed the working directory, just before the transfer command(s), prefix
the command with a '+' (this is only supported for FTP). You may specify any
number of commands.
-If the server returns failure for one of the commands, the entire operation
-will be aborted. You must send syntactically correct FTP commands as RFC 959
-defines to FTP servers, or one of the commands listed below to SFTP servers.
+By default curl will stop at first failure. To make curl continue even if the
+command fails, prefix the command with an asterisk (*). Otherwise, if the
+server returns failure for one of the commands, the entire operation will be
+aborted.
-Prefix the command with an asterisk (*) to make curl continue even if the
-command fails as by default curl will stop at first failure.
+You must send syntactically correct FTP commands as RFC 959 defines to FTP
+servers, or one of the commands listed below to SFTP servers.
This option can be used multiple times.
diff --git a/docs/cmdline-opts/random-file.d b/docs/cmdline-opts/random-file.d
index c57f52364..d74148a1f 100644
--- a/docs/cmdline-opts/random-file.d
+++ b/docs/cmdline-opts/random-file.d
@@ -2,6 +2,8 @@ Long: random-file
Arg: <file>
Help: File for reading random data from
Category: misc
+Example: --random-file rubbish $URL
+Added: 7.7
---
Specify the path name to file containing what will be considered as random
data. The data may be used to seed the random engine for SSL connections. See
diff --git a/docs/cmdline-opts/range.d b/docs/cmdline-opts/range.d
index e2d1f62fc..90c74b147 100644
--- a/docs/cmdline-opts/range.d
+++ b/docs/cmdline-opts/range.d
@@ -4,6 +4,8 @@ Help: Retrieve only the bytes within RANGE
Arg: <range>
Protocols: HTTP FTP SFTP FILE
Category: http ftp sftp file
+Example: --range 22-44 $URL
+Added: 4.0
---
Retrieve a byte range (i.e. a partial document) from an HTTP/1.1, FTP or SFTP
server or a local FILE. Ranges can be specified in a number of ways.
@@ -38,8 +40,8 @@ the server's response will be unspecified, depending on the server's
configuration.
You should also be aware that many HTTP/1.1 servers do not have this feature
-enabled, so that when you attempt to get a range, you'll instead get the whole
-document.
+enabled, so that when you attempt to get a range, you will instead get the
+whole document.
FTP and SFTP range downloads only support the simple 'start-stop' syntax
(optionally with one of the numbers omitted). FTP use depends on the extended
diff --git a/docs/cmdline-opts/raw.d b/docs/cmdline-opts/raw.d
index 90e777263..c44d33f5c 100644
--- a/docs/cmdline-opts/raw.d
+++ b/docs/cmdline-opts/raw.d
@@ -3,6 +3,7 @@ Help: Do HTTP "raw"; no transfer decoding
Added: 7.16.2
Protocols: HTTP
Category: http
+Example: --raw $URL
---
When used, it disables all internal HTTP decoding of content or transfer
encodings and instead makes them passed on unaltered, raw.
diff --git a/docs/cmdline-opts/referer.d b/docs/cmdline-opts/referer.d
index 8b2057b94..1eb39ccf2 100644
--- a/docs/cmdline-opts/referer.d
+++ b/docs/cmdline-opts/referer.d
@@ -5,11 +5,15 @@ Protocols: HTTP
Help: Referrer URL
See-also: user-agent header
Category: http
+Example: --referer "https://fake.example" $URL
+Example: --referer "https://fake.example;auto" -L $URL
+Example: --referer ";auto" -L $URL
+Added: 4.0
---
Sends the "Referrer Page" information to the HTTP server. This can also be set
with the --header flag of course. When used with --location you can append
";auto" to the --referer URL to make curl automatically set the previous URL
when it follows a Location: header. The \&";auto" string can be used alone,
-even if you don't set an initial --referer.
+even if you do not set an initial --referer.
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/remote-header-name.d b/docs/cmdline-opts/remote-header-name.d
index 325dade3f..12a805fc3 100644
--- a/docs/cmdline-opts/remote-header-name.d
+++ b/docs/cmdline-opts/remote-header-name.d
@@ -3,13 +3,15 @@ Short: J
Protocols: HTTP
Help: Use the header-provided filename
Category: output
+Example: -OJ https://example.com/file
+Added: 7.20.0
---
This option tells the --remote-name option to use the server-specified
Content-Disposition filename instead of extracting a filename from the URL.
If the server specifies a file name and a file with that name already exists
in the current working directory it will not be overwritten and an error will
-occur. If the server doesn't specify a file name then this option has no
+occur. If the server does not specify a file name then this option has no
effect.
There's no attempt to decode %-sequences (yet) in the provided file name, so
diff --git a/docs/cmdline-opts/remote-name-all.d b/docs/cmdline-opts/remote-name-all.d
index 299684c51..e27bd5f48 100644
--- a/docs/cmdline-opts/remote-name-all.d
+++ b/docs/cmdline-opts/remote-name-all.d
@@ -2,6 +2,7 @@ Long: remote-name-all
Help: Use the remote file name for all URLs
Added: 7.19.0
Category: output
+Example: --remote-name-all ftp://example.com/file1 ftp://example.com/file2
---
This option changes the default action for all given URLs to be dealt with as
if --remote-name were used for each one. So if you want to disable that for a
diff --git a/docs/cmdline-opts/remote-name.d b/docs/cmdline-opts/remote-name.d
index 184c32e47..f7e03f42f 100644
--- a/docs/cmdline-opts/remote-name.d
+++ b/docs/cmdline-opts/remote-name.d
@@ -2,6 +2,8 @@ Long: remote-name
Short: O
Help: Write output to a file named as the remote file
Category: important output
+Example: -O https://example.com/filename
+Added: 4.0
---
Write output to a local file named like the remote file we get. (Only the file
part of the remote file is used, the path is cut off.)
diff --git a/docs/cmdline-opts/remote-time.d b/docs/cmdline-opts/remote-time.d
index 96fb4fbe9..c8bd168ac 100644
--- a/docs/cmdline-opts/remote-time.d
+++ b/docs/cmdline-opts/remote-time.d
@@ -2,6 +2,8 @@ Long: remote-time
Short: R
Help: Set the remote file's time on the local output
Category: output
+Example: --remote-time -o foo $URL
+Added: 7.9
---
When used, this will make curl attempt to figure out the timestamp of the
remote file, and if that is available make the local file get that same
diff --git a/docs/cmdline-opts/request-target.d b/docs/cmdline-opts/request-target.d
index 4422611b1..6e21a6bde 100644
--- a/docs/cmdline-opts/request-target.d
+++ b/docs/cmdline-opts/request-target.d
@@ -4,8 +4,9 @@ Help: Specify the target for this request
Protocols: HTTP
Added: 7.55.0
Category: http
+Example: --request-target "*" -X OPTIONS $URL
---
Tells curl to use an alternative "target" (path) instead of using the path as
provided in the URL. Particularly useful when wanting to issue HTTP requests
-without leading slash or other data that doesn't follow the regular URL
+without leading slash or other data that does not follow the regular URL
pattern, like "OPTIONS *".
diff --git a/docs/cmdline-opts/request.d b/docs/cmdline-opts/request.d
index 47c4c8b04..b73e7823c 100644
--- a/docs/cmdline-opts/request.d
+++ b/docs/cmdline-opts/request.d
@@ -3,6 +3,9 @@ Short: X
Arg: <command>
Help: Specify request command to use
Category: connection
+Example: -X "DELETE" $URL
+Example: -X NLST ftp://example.com/
+Added: 6.0
---
(HTTP) Specifies a custom request method to use when communicating with the
HTTP server. The specified request method will be used instead of the method
@@ -11,7 +14,7 @@ details and explanations. Common additional HTTP requests include PUT and
DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE and
more.
-Normally you don't need this option. All sorts of GET, HEAD, POST and PUT
+Normally you do not need this option. All sorts of GET, HEAD, POST and PUT
requests are rather invoked by using dedicated command line options.
This option only changes the actual word used in the HTTP request, it does not
@@ -20,7 +23,7 @@ request, using -X HEAD will not suffice. You need to use the --head option.
The method string you set with --request will be used for all requests, which
if you for example use --location may cause unintended side-effects when curl
-doesn't change request method according to the HTTP 30x response codes - and
+does not change request method according to the HTTP 30x response codes - and
similar.
(FTP)
@@ -28,8 +31,8 @@ Specifies a custom FTP command to use instead of LIST when doing file lists
with FTP.
(POP3)
-Specifies a custom POP3 command to use instead of LIST or RETR. (Added in
-7.26.0)
+Specifies a custom POP3 command to use instead of LIST or RETR.
+(Added in 7.26.0)
(IMAP)
Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0)
diff --git a/docs/cmdline-opts/resolve.d b/docs/cmdline-opts/resolve.d
index ff10f28d9..6464c42fb 100644
--- a/docs/cmdline-opts/resolve.d
+++ b/docs/cmdline-opts/resolve.d
@@ -3,6 +3,7 @@ Arg: <[+]host:port:addr[,addr]...>
Help: Resolve the host+port to this address
Added: 7.21.3
Category: connection
+Example: --resolve example.com:443:127.0.0.1 $URL
---
Provide a custom address for a specific host and port pair. Using this, you
can make the curl requests(s) use a specified address and prevent the
diff --git a/docs/cmdline-opts/retry-all-errors.d b/docs/cmdline-opts/retry-all-errors.d
index 5ad1da0de..2a9c552fc 100644
--- a/docs/cmdline-opts/retry-all-errors.d
+++ b/docs/cmdline-opts/retry-all-errors.d
@@ -2,6 +2,7 @@ Long: retry-all-errors
Help: Retry all errors (use with --retry)
Added: 7.71.0
Category: curl
+Example: --retry-all-errors $URL
---
Retry on any error. This option is used together with --retry.
@@ -11,13 +12,14 @@ receiving duplicate data. Do not use with redirected input or output. You'd be
much better off handling your unique problems in shell script. Please read the
example below.
-Warning: For server compatibility curl attempts to retry failed flaky transfers
-as close as possible to how they were started, but this is not possible with
-redirected input or output. For example, before retrying it removes output data
-from a failed partial transfer that was written to an output file. However this
-is not true of data redirected to a | pipe or > file, which are not reset. We
-strongly suggest don't parse or record output via redirect in combination with
-this option, since you may receive duplicate data.
+**WARNING**: For server compatibility curl attempts to retry failed flaky
+transfers as close as possible to how they were started, but this is not
+possible with redirected input or output. For example, before retrying it
+removes output data from a failed partial transfer that was written to an
+output file. However this is not true of data redirected to a | pipe or >
+file, which are not reset. We strongly suggest you do not parse or record
+output via redirect in combination with this option, since you may receive
+duplicate data.
By default curl will not error on an HTTP response code that indicates an HTTP
error, if the transfer was successful. For example, if a server replies 404
diff --git a/docs/cmdline-opts/retry-connrefused.d b/docs/cmdline-opts/retry-connrefused.d
index be34f973d..ad079e096 100644
--- a/docs/cmdline-opts/retry-connrefused.d
+++ b/docs/cmdline-opts/retry-connrefused.d
@@ -2,6 +2,7 @@ Long: retry-connrefused
Help: Retry on connection refused (use with --retry)
Added: 7.52.0
Category: curl
+Example: --retry-connrefused --retry $URL
---
In addition to the other conditions, consider ECONNREFUSED as a transient
error too for --retry. This option is used together with --retry.
diff --git a/docs/cmdline-opts/retry-delay.d b/docs/cmdline-opts/retry-delay.d
index 5645c0e6a..283912904 100644
--- a/docs/cmdline-opts/retry-delay.d
+++ b/docs/cmdline-opts/retry-delay.d
@@ -3,6 +3,7 @@ Arg: <seconds>
Help: Wait time between retries
Added: 7.12.3
Category: curl
+Example: --retry-delay 5 --retry $URL
---
Make curl sleep this amount of time before each retry when a transfer has
failed with a transient error (it changes the default backoff time algorithm
diff --git a/docs/cmdline-opts/retry-max-time.d b/docs/cmdline-opts/retry-max-time.d
index 9d6faf304..f859f3ab6 100644
--- a/docs/cmdline-opts/retry-max-time.d
+++ b/docs/cmdline-opts/retry-max-time.d
@@ -3,12 +3,13 @@ Arg: <seconds>
Help: Retry only within this period
Added: 7.12.3
Category: curl
+Example: --retry-max-time 30 --retry 10 $URL
---
The retry timer is reset before the first transfer attempt. Retries will be
-done as usual (see --retry) as long as the timer hasn't reached this given
-limit. Notice that if the timer hasn't reached the limit, the request will be
+done as usual (see --retry) as long as the timer has not reached this given
+limit. Notice that if the timer has not reached the limit, the request will be
made and while performing, it may take longer than this given time period. To
-limit a single request\'s maximum time, use --max-time. Set this option to
+limit a single request's maximum time, use --max-time. Set this option to
zero to not timeout retries.
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/retry.d b/docs/cmdline-opts/retry.d
index bff0ef226..6238383fe 100644
--- a/docs/cmdline-opts/retry.d
+++ b/docs/cmdline-opts/retry.d
@@ -3,6 +3,7 @@ Arg: <num>
Added: 7.12.3
Help: Retry request if transient problems occur
Category: curl
+Example: --retry 7 $URL
---
If a transient error is returned when curl tries to perform a transfer, it
will retry this number of times before giving up. Setting the number to 0
diff --git a/docs/cmdline-opts/sasl-authzid.d b/docs/cmdline-opts/sasl-authzid.d
index e802c80a1..867aac094 100644
--- a/docs/cmdline-opts/sasl-authzid.d
+++ b/docs/cmdline-opts/sasl-authzid.d
@@ -3,11 +3,12 @@ Arg: <identity>
Help: Identity for SASL PLAIN authentication
Added: 7.66.0
Category: auth
+Example: --sasl-authzid zid imap://example.com/
---
Use this authorisation identity (authzid), during SASL PLAIN authentication,
in addition to the authentication identity (authcid) as specified by --user.
-If the option isn't specified, the server will derive the authzid from the
+If the option is not specified, the server will derive the authzid from the
authcid, but if specified, and depending on the server implementation, it may
be used to access another user's inbox, that the user has been granted access
to, or a shared mailbox for example.
diff --git a/docs/cmdline-opts/sasl-ir.d b/docs/cmdline-opts/sasl-ir.d
index 0041c3b4e..5004306a4 100644
--- a/docs/cmdline-opts/sasl-ir.d
+++ b/docs/cmdline-opts/sasl-ir.d
@@ -2,5 +2,6 @@ Long: sasl-ir
Help: Enable initial response in SASL authentication
Added: 7.31.0
Category: auth
+Example: --sasl-ir imap://example.com/
---
Enable initial response in SASL authentication.
diff --git a/docs/cmdline-opts/service-name.d b/docs/cmdline-opts/service-name.d
index c64496b85..3a5559bc8 100644
--- a/docs/cmdline-opts/service-name.d
+++ b/docs/cmdline-opts/service-name.d
@@ -3,6 +3,7 @@ Help: SPNEGO service name
Arg: <name>
Added: 7.43.0
Category: misc
+Example: --service-name sockd/server $URL
---
This option allows you to change the service name for SPNEGO.
diff --git a/docs/cmdline-opts/show-error.d b/docs/cmdline-opts/show-error.d
index 2124409e5..c1af391d0 100644
--- a/docs/cmdline-opts/show-error.d
+++ b/docs/cmdline-opts/show-error.d
@@ -3,5 +3,10 @@ Short: S
Help: Show error even when -s is used
See-also: no-progress-meter
Category: curl
+Example: --show-error --silent $URL
+Added: 5.9
---
When used with --silent, it makes curl show an error message if it fails.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/silent.d b/docs/cmdline-opts/silent.d
index 58a522335..4e52f3056 100644
--- a/docs/cmdline-opts/silent.d
+++ b/docs/cmdline-opts/silent.d
@@ -3,8 +3,10 @@ Short: s
Help: Silent mode
See-also: verbose stderr no-progress-meter
Category: important verbose
+Example: -s $URL
+Added: 4.0
---
-Silent or quiet mode. Don't show progress meter or error messages. Makes Curl
+Silent or quiet mode. Do not show progress meter or error messages. Makes Curl
mute. It will still output the data you ask for, potentially even to the
terminal/stdout unless you redirect it.
diff --git a/docs/cmdline-opts/socks4.d b/docs/cmdline-opts/socks4.d
index 3cfb2540c..6494f33d3 100644
--- a/docs/cmdline-opts/socks4.d
+++ b/docs/cmdline-opts/socks4.d
@@ -3,6 +3,7 @@ Arg: <host[:port]>
Help: SOCKS4 proxy on given host + port
Added: 7.15.2
Category: proxy
+Example: --socks4 hostname:4096 $URL
---
Use the specified SOCKS4 proxy. If the port number is not specified, it is
assumed at port 1080. Using this socket type make curl resolve the host name
@@ -11,8 +12,8 @@ and passing the address on to the proxy.
This option overrides any previous use of --proxy, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks4 proxy
-with --proxy using a socks4:// protocol prefix.
+This option is superfluous since you can specify a socks4 proxy with --proxy
+using a socks4:// protocol prefix. (Added in 7.21.7)
Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at the same time
--proxy is used with an HTTP/HTTPS proxy. In such a case curl first connects to
diff --git a/docs/cmdline-opts/socks4a.d b/docs/cmdline-opts/socks4a.d
index d820566a1..28359e05f 100644
--- a/docs/cmdline-opts/socks4a.d
+++ b/docs/cmdline-opts/socks4a.d
@@ -3,6 +3,7 @@ Arg: <host[:port]>
Help: SOCKS4a proxy on given host + port
Added: 7.18.0
Category: proxy
+Example: --socks4a hostname:4096 $URL
---
Use the specified SOCKS4a proxy. If the port number is not specified, it is
assumed at port 1080. This asks the proxy to resolve the host name.
@@ -10,8 +11,8 @@ assumed at port 1080. This asks the proxy to resolve the host name.
This option overrides any previous use of --proxy, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks4a proxy
-with --proxy using a socks4a:// protocol prefix.
+This option is superfluous since you can specify a socks4a proxy with --proxy
+using a socks4a:// protocol prefix. (Added in 7.21.7)
Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at the same time
--proxy is used with an HTTP/HTTPS proxy. In such a case curl first connects to
diff --git a/docs/cmdline-opts/socks5-basic.d b/docs/cmdline-opts/socks5-basic.d
index 52d1e6619..f32e0bf3e 100644
--- a/docs/cmdline-opts/socks5-basic.d
+++ b/docs/cmdline-opts/socks5-basic.d
@@ -2,6 +2,7 @@ Long: socks5-basic
Help: Enable username/password auth for SOCKS5 proxies
Added: 7.55.0
Category: proxy auth
+Example: --socks5-basic --socks5 hostname:4096 $URL
---
Tells curl to use username/password authentication when connecting to a SOCKS5
proxy. The username/password authentication is enabled by default. Use
diff --git a/docs/cmdline-opts/socks5-gssapi-nec.d b/docs/cmdline-opts/socks5-gssapi-nec.d
index b538f33f3..73cac7a22 100644
--- a/docs/cmdline-opts/socks5-gssapi-nec.d
+++ b/docs/cmdline-opts/socks5-gssapi-nec.d
@@ -2,6 +2,7 @@ Long: socks5-gssapi-nec
Help: Compatibility with NEC SOCKS5 server
Added: 7.19.4
Category: proxy auth
+Example: --socks5-gssapi-nec --socks5 hostname:4096 $URL
---
As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961
says in section 4.3/4.4 it should be protected, but the NEC reference
diff --git a/docs/cmdline-opts/socks5-gssapi-service.d b/docs/cmdline-opts/socks5-gssapi-service.d
index e61d0f5ab..451be8e2d 100644
--- a/docs/cmdline-opts/socks5-gssapi-service.d
+++ b/docs/cmdline-opts/socks5-gssapi-service.d
@@ -3,6 +3,7 @@ Arg: <name>
Help: SOCKS5 proxy service name for GSS-API
Added: 7.19.4
Category: proxy auth
+Example: --socks5-gssapi-service sockd --socks5 hostname:4096 $URL
---
The default service name for a socks server is rcmd/server-fqdn. This option
allows you to change it.
diff --git a/docs/cmdline-opts/socks5-gssapi.d b/docs/cmdline-opts/socks5-gssapi.d
index 72ae7aeb2..2ce806955 100644
--- a/docs/cmdline-opts/socks5-gssapi.d
+++ b/docs/cmdline-opts/socks5-gssapi.d
@@ -2,6 +2,7 @@ Long: socks5-gssapi
Help: Enable GSS-API auth for SOCKS5 proxies
Added: 7.55.0
Category: proxy auth
+Example: --socks5-gssapi --socks5 hostname:4096 $URL
---
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
The GSS-API authentication is enabled by default (if curl is compiled with
diff --git a/docs/cmdline-opts/socks5-hostname.d b/docs/cmdline-opts/socks5-hostname.d
index 247d7660e..599e80ef3 100644
--- a/docs/cmdline-opts/socks5-hostname.d
+++ b/docs/cmdline-opts/socks5-hostname.d
@@ -3,6 +3,7 @@ Arg: <host[:port]>
Help: SOCKS5 proxy, pass host name to proxy
Added: 7.18.0
Category: proxy
+Example: --socks5-hostname proxy.example:7000 $URL
---
Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If
the port number is not specified, it is assumed at port 1080.
@@ -10,8 +11,8 @@ the port number is not specified, it is assumed at port 1080.
This option overrides any previous use of --proxy, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks5
-hostname proxy with --proxy using a socks5h:// protocol prefix.
+This option is superfluous since you can specify a socks5 hostname proxy with
+--proxy using a socks5h:// protocol prefix. (Added in 7.21.7)
Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at the same time
--proxy is used with an HTTP/HTTPS proxy. In such a case curl first connects to
diff --git a/docs/cmdline-opts/socks5.d b/docs/cmdline-opts/socks5.d
index bbe92f0a1..85c349d6b 100644
--- a/docs/cmdline-opts/socks5.d
+++ b/docs/cmdline-opts/socks5.d
@@ -3,6 +3,7 @@ Arg: <host[:port]>
Help: SOCKS5 proxy on given host + port
Added: 7.18.0
Category: proxy
+Example: --socks5 proxy.example:7000 $URL
---
Use the specified SOCKS5 proxy - but resolve the host name locally. If the
port number is not specified, it is assumed at port 1080.
@@ -10,8 +11,8 @@ port number is not specified, it is assumed at port 1080.
This option overrides any previous use of --proxy, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks5 proxy
-with --proxy using a socks5:// protocol prefix.
+This option is superfluous since you can specify a socks5 proxy with --proxy
+using a socks5:// protocol prefix. (Added in 7.21.7)
Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at the same time
--proxy is used with an HTTP/HTTPS proxy. In such a case curl first connects to
diff --git a/docs/cmdline-opts/speed-limit.d b/docs/cmdline-opts/speed-limit.d
index 3f9ad3a46..8351d932e 100644
--- a/docs/cmdline-opts/speed-limit.d
+++ b/docs/cmdline-opts/speed-limit.d
@@ -3,6 +3,8 @@ Short: Y
Arg: <speed>
Help: Stop transfers slower than this
Category: connection
+Example: --speed-limit 300 --speed-time 10 $URL
+Added: 4.7
---
If a download is slower than this given speed (in bytes per second) for
speed-time seconds it gets aborted. speed-time is set with --speed-time and is
diff --git a/docs/cmdline-opts/speed-time.d b/docs/cmdline-opts/speed-time.d
index 81acabec4..f32711fed 100644
--- a/docs/cmdline-opts/speed-time.d
+++ b/docs/cmdline-opts/speed-time.d
@@ -3,6 +3,8 @@ Short: y
Arg: <seconds>
Help: Trigger 'speed-limit' abort after this time
Category: connection
+Example: --speed-limit 300 --speed-time 10 $URL
+Added: 4.7
---
If a download is slower than speed-limit bytes per second during a speed-time
period, the download gets aborted. If speed-time is used, the default
diff --git a/docs/cmdline-opts/ssl-allow-beast.d b/docs/cmdline-opts/ssl-allow-beast.d
index f18fe7470..869ff49ba 100644
--- a/docs/cmdline-opts/ssl-allow-beast.d
+++ b/docs/cmdline-opts/ssl-allow-beast.d
@@ -2,9 +2,12 @@ Long: ssl-allow-beast
Help: Allow security flaw to improve interop
Added: 7.25.0
Category: tls
+Example: --ssl-allow-beast $URL
---
This option tells curl to not work around a security flaw in the SSL3 and
-TLS1.0 protocols known as BEAST. If this option isn't used, the SSL layer may
-use workarounds known to cause interoperability problems with some older SSL
-implementations. WARNING: this option loosens the SSL security, and by using
-this flag you ask for exactly that.
+TLS1.0 protocols known as BEAST. If this option is not used, the SSL layer
+may use workarounds known to cause interoperability problems with some older
+SSL implementations.
+
+**WARNING**: this option loosens the SSL security, and by using this flag you
+ask for exactly that.
diff --git a/docs/cmdline-opts/ssl-auto-client-cert.d b/docs/cmdline-opts/ssl-auto-client-cert.d
index 16108aef1..7581bdff6 100644
--- a/docs/cmdline-opts/ssl-auto-client-cert.d
+++ b/docs/cmdline-opts/ssl-auto-client-cert.d
@@ -3,6 +3,7 @@ Help: Use auto client certificate (Schannel)
Added: 7.77.0
See-also: proxy-ssl-auto-client-cert
Category: tls
+Example: --ssl-auto-client-cert $URL
---
Tell libcurl to automatically locate and use a client certificate for
authentication, when requested by the server. This option is only supported
diff --git a/docs/cmdline-opts/ssl-no-revoke.d b/docs/cmdline-opts/ssl-no-revoke.d
index 3b1614243..dde77aa11 100644
--- a/docs/cmdline-opts/ssl-no-revoke.d
+++ b/docs/cmdline-opts/ssl-no-revoke.d
@@ -2,6 +2,7 @@ Long: ssl-no-revoke
Help: Disable cert revocation checks (Schannel)
Added: 7.44.0
Category: tls
+Example: --ssl-no-revoke $URL
---
(Schannel) This option tells curl to disable certificate revocation checks.
WARNING: this option loosens the SSL security, and by using this flag you ask
diff --git a/docs/cmdline-opts/ssl-reqd.d b/docs/cmdline-opts/ssl-reqd.d
index 2e573e39d..df50eb147 100644
--- a/docs/cmdline-opts/ssl-reqd.d
+++ b/docs/cmdline-opts/ssl-reqd.d
@@ -3,8 +3,9 @@ Help: Require SSL/TLS
Protocols: FTP IMAP POP3 SMTP
Added: 7.20.0
Category: tls
+Example: --ssl-reqd ftp://example.com
---
Require SSL/TLS for the connection. Terminates the connection if the server
-doesn't support SSL/TLS.
+does not support SSL/TLS.
This option was formerly known as --ftp-ssl-reqd.
diff --git a/docs/cmdline-opts/ssl-revoke-best-effort.d b/docs/cmdline-opts/ssl-revoke-best-effort.d
index af22da461..2db32192e 100644
--- a/docs/cmdline-opts/ssl-revoke-best-effort.d
+++ b/docs/cmdline-opts/ssl-revoke-best-effort.d
@@ -2,6 +2,7 @@ Long: ssl-revoke-best-effort
Help: Ignore missing/offline cert CRL dist points
Added: 7.70.0
Category: tls
+Example: --ssl-revoke-best-effort $URL
---
(Schannel) This option tells curl to ignore certificate revocation checks when
they failed due to missing/offline distribution points for the revocation check
diff --git a/docs/cmdline-opts/ssl.d b/docs/cmdline-opts/ssl.d
index 8df460106..2a0ea2793 100644
--- a/docs/cmdline-opts/ssl.d
+++ b/docs/cmdline-opts/ssl.d
@@ -3,10 +3,10 @@ Help: Try SSL/TLS
Protocols: FTP IMAP POP3 SMTP
Added: 7.20.0
Category: tls
+Example: --ssl pop3://example.com/
---
-
Try to use SSL/TLS for the connection. Reverts to a non-secure connection if
-the server doesn't support SSL/TLS. See also --ftp-ssl-control and --ssl-reqd
+the server does not support SSL/TLS. See also --ftp-ssl-control and --ssl-reqd
for different levels of encryption required.
This option was formerly known as --ftp-ssl (Added in 7.11.0). That option
diff --git a/docs/cmdline-opts/sslv2.d b/docs/cmdline-opts/sslv2.d
index f9ee99d0d..f90596449 100644
--- a/docs/cmdline-opts/sslv2.d
+++ b/docs/cmdline-opts/sslv2.d
@@ -2,12 +2,14 @@ Short: 2
Long: sslv2
Tags: Versions
Protocols: SSL
-Added:
+Added: 5.9
Mutexed: sslv3 tlsv1 tlsv1.1 tlsv1.2
Requires: TLS
See-also: http1.1 http2
Help: Use SSLv2
Category: tls
+Example: --sslv2 $URL
---
-This option previously asked curl to use SSLv2, but starting in curl 7.77.0 this
-instruction is ignored. SSLv2 is widely considered insecure (see RFC 6176).
+This option previously asked curl to use SSLv2, but starting in curl 7.77.0
+this instruction is ignored. SSLv2 is widely considered insecure (see RFC
+6176).
diff --git a/docs/cmdline-opts/sslv3.d b/docs/cmdline-opts/sslv3.d
index e8b2c35e8..6599531ce 100644
--- a/docs/cmdline-opts/sslv3.d
+++ b/docs/cmdline-opts/sslv3.d
@@ -2,12 +2,13 @@ Short: 3
Long: sslv3
Tags: Versions
Protocols: SSL
-Added:
+Added: 5.9
Mutexed: sslv2 tlsv1 tlsv1.1 tlsv1.2
Requires: TLS
See-also: http1.1 http2
Help: Use SSLv3
Category: tls
+Example: --sslv3 $URL
---
This option previously asked curl to use SSLv3, but starting in curl 7.77.0
this instruction is ignored. SSLv3 is widely considered insecure (see RFC
diff --git a/docs/cmdline-opts/stderr.d b/docs/cmdline-opts/stderr.d
index 1154efb33..95b660454 100644
--- a/docs/cmdline-opts/stderr.d
+++ b/docs/cmdline-opts/stderr.d
@@ -3,8 +3,13 @@ Arg: <file>
Help: Where to redirect stderr
See-also: verbose silent
Category: verbose
+Example: --stderr output.txt $URL
+Added: 6.2
---
Redirect all writes to stderr to the specified file instead. If the file name
is a plain '-', it is instead written to stdout.
+This option is global and does not need to be specified for each use of
+--next.
+
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/styled-output.d b/docs/cmdline-opts/styled-output.d
index 8aa4a0f05..bf636019a 100644
--- a/docs/cmdline-opts/styled-output.d
+++ b/docs/cmdline-opts/styled-output.d
@@ -2,6 +2,10 @@ Long: styled-output
Help: Enable styled output for HTTP headers
Added: 7.61.0
Category: verbose
+Example: --styled-output -I $URL
---
Enables the automatic use of bold font styles when writing HTTP headers to the
terminal. Use --no-styled-output to switch them off.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/suppress-connect-headers.d b/docs/cmdline-opts/suppress-connect-headers.d
index b4e2a17db..de465623b 100644
--- a/docs/cmdline-opts/suppress-connect-headers.d
+++ b/docs/cmdline-opts/suppress-connect-headers.d
@@ -2,8 +2,10 @@ Long: suppress-connect-headers
Help: Suppress proxy CONNECT response headers
See-also: dump-header include proxytunnel
Category: proxy
+Example: --suppress-connect-headers --include -x proxy $URL
+Added: 7.54.0
---
-When --proxytunnel is used and a CONNECT request is made don't output proxy
+When --proxytunnel is used and a CONNECT request is made do not output proxy
CONNECT response headers. This option is meant to be used with --dump-header or
--include which are used to show protocol headers in the output. It has no
effect on debug options such as --verbose or --trace, or any statistics.
diff --git a/docs/cmdline-opts/tcp-fastopen.d b/docs/cmdline-opts/tcp-fastopen.d
index faef499f3..e7e9d2e9a 100644
--- a/docs/cmdline-opts/tcp-fastopen.d
+++ b/docs/cmdline-opts/tcp-fastopen.d
@@ -2,5 +2,6 @@ Long: tcp-fastopen
Added: 7.49.0
Help: Use TCP Fast Open
Category: connection
+Example: --tcp-fastopen $URL
---
Enable use of TCP Fast Open (RFC7413).
diff --git a/docs/cmdline-opts/tcp-nodelay.d b/docs/cmdline-opts/tcp-nodelay.d
index 90483d2e4..42161e7ca 100644
--- a/docs/cmdline-opts/tcp-nodelay.d
+++ b/docs/cmdline-opts/tcp-nodelay.d
@@ -2,9 +2,10 @@ Long: tcp-nodelay
Help: Use the TCP_NODELAY option
Added: 7.11.2
Category: connection
+Example: --tcp-nodelay $URL
---
Turn on the TCP_NODELAY option. See the *curl_easy_setopt(3)* man page for
details about this option.
Since 7.50.2, curl sets this option by default and you need to explicitly
-switch it off if you don't want it on.
+switch it off if you do not want it on.
diff --git a/docs/cmdline-opts/telnet-option.d b/docs/cmdline-opts/telnet-option.d
index 789de3ea1..1751cbff4 100644
--- a/docs/cmdline-opts/telnet-option.d
+++ b/docs/cmdline-opts/telnet-option.d
@@ -3,6 +3,8 @@ Short: t
Arg: <opt=val>
Help: Set telnet option
Category: telnet
+Example: -t TTYPE=vt100 telnet://example.com/
+Added: 7.7
---
Pass options to the telnet protocol. Supported options are:
diff --git a/docs/cmdline-opts/tftp-blksize.d b/docs/cmdline-opts/tftp-blksize.d
index 6e67ed2e1..3b19e5cf7 100644
--- a/docs/cmdline-opts/tftp-blksize.d
+++ b/docs/cmdline-opts/tftp-blksize.d
@@ -4,6 +4,7 @@ Help: Set TFTP BLKSIZE option
Protocols: TFTP
Added: 7.20.0
Category: tftp
+Example: --tftp-blksize 1024 tftp://example.com/file
---
Set TFTP BLKSIZE option (must be >512). This is the block size that curl will
try to use when transferring data to or from a TFTP server. By default 512
diff --git a/docs/cmdline-opts/tftp-no-options.d b/docs/cmdline-opts/tftp-no-options.d
index 023327301..9ff334b86 100644
--- a/docs/cmdline-opts/tftp-no-options.d
+++ b/docs/cmdline-opts/tftp-no-options.d
@@ -3,6 +3,7 @@ Help: Do not send any TFTP options
Protocols: TFTP
Added: 7.48.0
Category: tftp
+Example: --tftp-no-options tftp://192.168.0.1/
---
Tells curl not to send TFTP options requests.
diff --git a/docs/cmdline-opts/time-cond.d b/docs/cmdline-opts/time-cond.d
index 0b56c6ee3..b84897ff6 100644
--- a/docs/cmdline-opts/time-cond.d
+++ b/docs/cmdline-opts/time-cond.d
@@ -4,10 +4,14 @@ Arg: <time>
Help: Transfer based on a time condition
Protocols: HTTP FTP
Category: http ftp
+Example: -z "Wed 01 Sep 2021 12:18:00" $URL
+Example: -z "-Wed 01 Sep 2021 12:18:00" $URL
+Example: -z file $URL
+Added: 5.8
---
Request a file that has been modified later than the given time and date, or
one that has been modified before that time. The <date expression> can be all
-sorts of date strings or if it doesn't match any internal ones, it is taken as
+sorts of date strings or if it does not match any internal ones, it is taken as
a filename and tries to get the modification date (mtime) from <file>
instead. See the *curl_getdate(3)* man pages for date expression details.
diff --git a/docs/cmdline-opts/tls-max.d b/docs/cmdline-opts/tls-max.d
index 07eb65465..54431ac38 100644
--- a/docs/cmdline-opts/tls-max.d
+++ b/docs/cmdline-opts/tls-max.d
@@ -7,6 +7,8 @@ Requires: TLS
See-also: tlsv1.0 tlsv1.1 tlsv1.2 tlsv1.3
Help: Set maximum allowed TLS version
Category: tls
+Example: --tls-max 1.2 $URL
+Example: --tls-max 1.3 --tlsv1.2 $URL
---
VERSION defines maximum supported TLS version. The minimum acceptable version
is set by tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.
diff --git a/docs/cmdline-opts/tls13-ciphers.d b/docs/cmdline-opts/tls13-ciphers.d
index 0df1695b4..6ed00667f 100644
--- a/docs/cmdline-opts/tls13-ciphers.d
+++ b/docs/cmdline-opts/tls13-ciphers.d
@@ -3,6 +3,8 @@ Arg: <ciphersuite list>
help: TLS 1.3 cipher suites to use
Protocols: TLS
Category: tls
+Example: --tls13-ciphers TLS_AES_128_GCM_SHA256 $URL
+Added: 7.61.0
---
Specifies which cipher suites to use in the connection if it negotiates TLS
1.3. The list of ciphers suites must specify valid ciphers. Read up on TLS 1.3
diff --git a/docs/cmdline-opts/tlsauthtype.d b/docs/cmdline-opts/tlsauthtype.d
index 5b283cf9b..57b6ab8ad 100644
--- a/docs/cmdline-opts/tlsauthtype.d
+++ b/docs/cmdline-opts/tlsauthtype.d
@@ -3,6 +3,7 @@ Arg: <type>
Help: TLS authentication type
Added: 7.21.4
Category: tls auth
+Example: --tlsauthtype SRP $URL
---
Set TLS authentication type. Currently, the only supported option is "SRP",
for TLS-SRP (RFC 5054). If --tlsuser and --tlspassword are specified but
diff --git a/docs/cmdline-opts/tlspassword.d b/docs/cmdline-opts/tlspassword.d
index e7e37805c..8bfc1d557 100644
--- a/docs/cmdline-opts/tlspassword.d
+++ b/docs/cmdline-opts/tlspassword.d
@@ -3,8 +3,9 @@ Arg: <string>
Help: TLS password
Added: 7.21.4
Category: tls auth
+Example: --tlspassword pwd --tlsuser user $URL
---
Set password for use with the TLS authentication method specified with
--tlsauthtype. Requires that --tlsuser also be set.
-This doesn't work with TLS 1.3.
+This option does not work with TLS 1.3.
diff --git a/docs/cmdline-opts/tlsuser.d b/docs/cmdline-opts/tlsuser.d
index ada152608..266d709ce 100644
--- a/docs/cmdline-opts/tlsuser.d
+++ b/docs/cmdline-opts/tlsuser.d
@@ -3,8 +3,9 @@ Arg: <name>
Help: TLS user name
Added: 7.21.4
Category: tls auth
+Example: --tlspassword pwd --tlsuser user $URL
---
Set username for use with the TLS authentication method specified with
--tlsauthtype. Requires that --tlspassword also is set.
-This doesn't work with TLS 1.3.
+This option does not work with TLS 1.3.
diff --git a/docs/cmdline-opts/tlsv1.0.d b/docs/cmdline-opts/tlsv1.0.d
index 4f0176f31..5fc18dcbe 100644
--- a/docs/cmdline-opts/tlsv1.0.d
+++ b/docs/cmdline-opts/tlsv1.0.d
@@ -3,6 +3,7 @@ Help: Use TLSv1.0 or greater
Protocols: TLS
Added: 7.34.0
Category: tls
+Example: --tlsv1.0 $URL
---
Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
diff --git a/docs/cmdline-opts/tlsv1.1.d b/docs/cmdline-opts/tlsv1.1.d
index b3649f7f4..6d169bf30 100644
--- a/docs/cmdline-opts/tlsv1.1.d
+++ b/docs/cmdline-opts/tlsv1.1.d
@@ -3,6 +3,7 @@ Help: Use TLSv1.1 or greater
Protocols: TLS
Added: 7.34.0
Category: tls
+Example: --tlsv1.1 $URL
---
Forces curl to use TLS version 1.1 or later when connecting to a remote TLS server.
diff --git a/docs/cmdline-opts/tlsv1.2.d b/docs/cmdline-opts/tlsv1.2.d
index dffbccb9d..5df843f7c 100644
--- a/docs/cmdline-opts/tlsv1.2.d
+++ b/docs/cmdline-opts/tlsv1.2.d
@@ -3,6 +3,7 @@ Help: Use TLSv1.2 or greater
Protocols: TLS
Added: 7.34.0
Category: tls
+Example: --tlsv1.2 $URL
---
Forces curl to use TLS version 1.2 or later when connecting to a remote TLS server.
diff --git a/docs/cmdline-opts/tlsv1.3.d b/docs/cmdline-opts/tlsv1.3.d
index 37d953552..cc9a53bcd 100644
--- a/docs/cmdline-opts/tlsv1.3.d
+++ b/docs/cmdline-opts/tlsv1.3.d
@@ -3,6 +3,7 @@ Help: Use TLSv1.3 or greater
Protocols: TLS
Added: 7.52.0
Category: tls
+Example: --tlsv1.3 $URL
---
Forces curl to use TLS version 1.3 or later when connecting to a remote TLS
server.
diff --git a/docs/cmdline-opts/tlsv1.d b/docs/cmdline-opts/tlsv1.d
index d4c0c5160..a92b239de 100644
--- a/docs/cmdline-opts/tlsv1.d
+++ b/docs/cmdline-opts/tlsv1.d
@@ -2,12 +2,13 @@ Short: 1
Long: tlsv1
Tags: Versions
Protocols: SSL
-Added:
+Added: 7.9.2
Mutexed: tlsv1.1 tlsv1.2 tlsv1.3
Requires: TLS
See-also: http1.1 http2
Help: Use TLSv1.0 or greater
Category: tls
+Example: --tlsv1 $URL
---
Tells curl to use at least TLS version 1.x when negotiating with a remote TLS
server. That means TLS version 1.0 or higher
diff --git a/docs/cmdline-opts/tr-encoding.d b/docs/cmdline-opts/tr-encoding.d
index ce1d00325..7fdf9e098 100644
--- a/docs/cmdline-opts/tr-encoding.d
+++ b/docs/cmdline-opts/tr-encoding.d
@@ -3,6 +3,7 @@ Added: 7.21.6
Help: Request compressed transfer encoding
Protocols: HTTP
Category: http
+Example: --tr-encoding $URL
---
Request a compressed Transfer-Encoding response using one of the algorithms
curl supports, and uncompress the data while receiving it.
diff --git a/docs/cmdline-opts/trace-ascii.d b/docs/cmdline-opts/trace-ascii.d
index fa7e16ccc..914392a15 100644
--- a/docs/cmdline-opts/trace-ascii.d
+++ b/docs/cmdline-opts/trace-ascii.d
@@ -3,13 +3,18 @@ Arg: <file>
Help: Like --trace, but without hex output
Mutexed: trace verbose
Category: verbose
+Example: --trace-ascii log.txt $URL
+Added: 7.9.7
---
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout.
-This is very similar to --trace, but leaves out the hex part and only shows
-the ASCII part of the dump. It makes smaller output that might be easier to
-read for untrained humans.
+This is similar to --trace, but leaves out the hex part and only shows the
+ASCII part of the dump. It makes smaller output that might be easier to read
+for untrained humans.
+
+This option is global and does not need to be specified for each use of
+--next.
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/trace-time.d b/docs/cmdline-opts/trace-time.d
index 19a31a70e..083270dc6 100644
--- a/docs/cmdline-opts/trace-time.d
+++ b/docs/cmdline-opts/trace-time.d
@@ -2,5 +2,9 @@ Long: trace-time
Help: Add time stamps to trace/verbose output
Added: 7.14.0
Category: verbose
+Example: --trace-time --trace-ascii output $URL
---
Prepends a time stamp to each trace or verbose line that curl displays.
+
+This option is global and does not need to be specified for each use of
+--next.
diff --git a/docs/cmdline-opts/trace.d b/docs/cmdline-opts/trace.d
index 502dafd71..a00a54370 100644
--- a/docs/cmdline-opts/trace.d
+++ b/docs/cmdline-opts/trace.d
@@ -3,10 +3,15 @@ Arg: <file>
Help: Write a debug trace to FILE
Mutexed: verbose trace-ascii
Category: verbose
+Example: --trace log.txt $URL
+Added: 7.9.7
---
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout. Use "%" as filename to have the output sent to
stderr.
+This option is global and does not need to be specified for each use of
+--next.
+
If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/unix-socket.d b/docs/cmdline-opts/unix-socket.d
index e4ea91d01..c526ca6bc 100644
--- a/docs/cmdline-opts/unix-socket.d
+++ b/docs/cmdline-opts/unix-socket.d
@@ -4,5 +4,6 @@ Help: Connect through this Unix domain socket
Added: 7.40.0
Protocols: HTTP
Category: connection
+Example: --unix-socket socket-path $URL
---
Connect through this Unix domain socket, instead of using the network.
diff --git a/docs/cmdline-opts/upload-file.d b/docs/cmdline-opts/upload-file.d
index 63584b797..fbf969e83 100644
--- a/docs/cmdline-opts/upload-file.d
+++ b/docs/cmdline-opts/upload-file.d
@@ -3,6 +3,10 @@ Short: T
Arg: <file>
Help: Transfer local FILE to destination
Category: important upload
+Example: -T file $URL
+Example: -T "img[1-1000].png" ftp://ftp.example.com/
+Example: --upload-file "{file1,file2}" $URL
+Added: 4.0
---
This transfers the specified local file to the remote URL. If there is no file
part in the specified URL, curl will append the local file name. NOTE that you
@@ -12,21 +16,15 @@ file name to use. That will most likely cause the upload operation to fail. If
this is used on an HTTP(S) server, the PUT command will be used.
Use the file name "-" (a single dash) to use stdin instead of a given file.
-Alternately, the file name "." (a single period) may be specified instead
-of "-" to use stdin in non-blocking mode to allow reading server output
-while stdin is being uploaded.
+Alternately, the file name "." (a single period) may be specified instead of
+"-" to use stdin in non-blocking mode to allow reading server output while
+stdin is being uploaded.
You can specify one --upload-file for each URL on the command line. Each
--upload-file + URL pair specifies what to upload and to where. curl also
supports "globbing" of the --upload-file argument, meaning that you can upload
multiple files to a single URL by using the same URL globbing style supported
-in the URL, like this:
-
- curl --upload-file "{file1,file2}" http://www.example.com
-
-or even
-
- curl -T "img[1-1000].png" ftp://ftp.example.com/upload/
+in the URL.
When uploading to an SMTP server: the uploaded data is assumed to be RFC 5322
formatted. It has to feature the necessary set of headers and mail body
diff --git a/docs/cmdline-opts/url.d b/docs/cmdline-opts/url.d
index 30f0bf72e..f0ce9f434 100644
--- a/docs/cmdline-opts/url.d
+++ b/docs/cmdline-opts/url.d
@@ -2,6 +2,8 @@ Long: url
Arg: <url>
Help: URL to work with
Category: curl
+Example: --url $URL
+Added: 7.5
---
Specify a URL to fetch. This option is mostly handy when you want to specify
URL(s) in a config file.
@@ -15,5 +17,5 @@ setting a default protocol, see --proto-default for details.
This option may be used any number of times. To control where this URL is
written, use the --output or the --remote-name options.
-Warning: On Windows, particular file:// accesses can be converted to network
-accesses by the operating system. Beware!
+**WARNING**: On Windows, particular file:// accesses can be converted to
+network accesses by the operating system. Beware!
diff --git a/docs/cmdline-opts/use-ascii.d b/docs/cmdline-opts/use-ascii.d
index 3a5a6a4f8..dae934e19 100644
--- a/docs/cmdline-opts/use-ascii.d
+++ b/docs/cmdline-opts/use-ascii.d
@@ -3,6 +3,8 @@ Long: use-ascii
Help: Use ASCII/text transfer
Protocols: FTP LDAP
Category: misc
+Example: -B ftp://example.com/README
+Added: 5.0
---
Enable ASCII transfer. For FTP, this can also be enforced by using a URL that
ends with ";type=A". This option causes data sent to stdout to be in text mode
diff --git a/docs/cmdline-opts/user-agent.d b/docs/cmdline-opts/user-agent.d
index ec2ca82bb..1b89af6d3 100644
--- a/docs/cmdline-opts/user-agent.d
+++ b/docs/cmdline-opts/user-agent.d
@@ -4,8 +4,9 @@ Arg: <name>
Help: Send User-Agent <name> to server
Protocols: HTTP
Category: important http
+Example: -A "Agent 007" $URL
+Added: 4.5.1
---
-
Specify the User-Agent string to send to the HTTP server. To encode blanks in
the string, surround the string with single quote marks. This header can also
be set with the --header or the --proxy-header options.
diff --git a/docs/cmdline-opts/user.d b/docs/cmdline-opts/user.d
index b588700c0..b84c620b8 100644
--- a/docs/cmdline-opts/user.d
+++ b/docs/cmdline-opts/user.d
@@ -3,6 +3,8 @@ Short: u
Arg: <user:password>
Help: Server user and password
Category: important auth
+Example: -u user:secret $URL
+Added: 4.0
---
Specify the user name and password to use for server authentication. Overrides
--netrc and --netrc-optional.
@@ -16,12 +18,12 @@ still.
On systems where it works, curl will hide the given option argument from
process listings. This is not enough to protect credentials from possibly
getting seen by other users on the same system as they will still be visible
-for a brief moment before cleared. Such sensitive data should be retrieved
-from a file instead or similar and never used in clear text in a command line.
+for a moment before cleared. Such sensitive data should be retrieved from a
+file instead or similar and never used in clear text in a command line.
When using Kerberos V5 with a Windows based server you should include the
Windows domain name in the user name, in order for the server to successfully
-obtain a Kerberos Ticket. If you don't then the initial authentication
+obtain a Kerberos Ticket. If you do not, then the initial authentication
handshake may fail.
When using NTLM, the user name can be specified simply as the user name,
diff --git a/docs/cmdline-opts/verbose.d b/docs/cmdline-opts/verbose.d
index 8db1ea222..26e00e716 100644
--- a/docs/cmdline-opts/verbose.d
+++ b/docs/cmdline-opts/verbose.d
@@ -4,6 +4,8 @@ Mutexed: trace trace-ascii
Help: Make the operation more talkative
See-also: include
Category: important verbose
+Example: --verbose $URL
+Added: 4.0
---
Makes curl verbose during the operation. Useful for debugging and seeing
what's going on "under the hood". A line starting with '>' means "header data"
@@ -12,9 +14,12 @@ normal cases, and a line starting with '*' means additional info provided by
curl.
If you only want HTTP headers in the output, --include might be the option
-you're looking for.
+you are looking for.
-If you think this option still doesn't give you enough details, consider using
+If you think this option still does not give you enough details, consider using
--trace or --trace-ascii instead.
+This option is global and does not need to be specified for each use of
+--next.
+
Use --silent to make curl really quiet.
diff --git a/docs/cmdline-opts/version.d b/docs/cmdline-opts/version.d
index a257ebd9f..723386dca 100644
--- a/docs/cmdline-opts/version.d
+++ b/docs/cmdline-opts/version.d
@@ -2,6 +2,8 @@ Long: version
Short: V
Help: Show version number and quit
Category: important curl
+Example: --version
+Added: 4.0
---
Displays information about curl and the libcurl version it uses.
diff --git a/docs/cmdline-opts/write-out.d b/docs/cmdline-opts/write-out.d
index df50c318c..e33babc24 100644
--- a/docs/cmdline-opts/write-out.d
+++ b/docs/cmdline-opts/write-out.d
@@ -3,6 +3,8 @@ Short: w
Arg: <format>
Help: Use output FORMAT after completion
Category: verbose
+Example: -w '%{http_code}\\n' $URL
+Added: 6.5
---
Make curl display information on stdout after a completed transfer. The format
is a string that may contain plain text mixed with any number of
@@ -47,8 +49,7 @@ server. (Added in 7.15.4)
.TP
.B http_code
The numerical response code that was found in the last retrieved HTTP(S) or
-FTP(s) transfer. In 7.18.2 the alias **response_code** was added to show the
-same info.
+FTP(s) transfer.
.TP
.B http_connect
The numerical code that was found in the last response (from a proxy) to a
@@ -111,7 +112,8 @@ known as "http_code"). (Added in 7.18.2)
The URL scheme (sometimes called protocol) that was effectively used. (Added in 7.52.0)
.TP
.B size_download
-The total amount of bytes that were downloaded.
+The total amount of bytes that were downloaded. This is the size of the
+body/data that was transferred, excluding headers.
.TP
.B size_header
The total amount of bytes of the downloaded headers.
@@ -120,7 +122,8 @@ The total amount of bytes of the downloaded headers.
The total amount of bytes that were sent in the HTTP request.
.TP
.B size_upload
-The total amount of bytes that were uploaded.
+The total amount of bytes that were uploaded. This is the size of the
+body/data that was transferred, excluding headers.
.TP
.B speed_download
The average download speed that curl measured for the complete download. Bytes
@@ -182,7 +185,7 @@ The URL index number of this transfer, 0-indexed. De-globbed URLs share the
same index number as the origin globbed URL. (Added in 7.75.0)
.TP
.B url_effective
-The URL that was fetched last. This is most meaningful if you've told curl
+The URL that was fetched last. This is most meaningful if you have told curl
to follow location: headers.
.RE
.IP
diff --git a/docs/cmdline-opts/xattr.d b/docs/cmdline-opts/xattr.d
index 4b64c6cbf..b5c17fdbc 100644
--- a/docs/cmdline-opts/xattr.d
+++ b/docs/cmdline-opts/xattr.d
@@ -1,6 +1,8 @@
Long: xattr
Help: Store metadata in extended file attributes
Category: misc
+Example: --xattr -o storage $URL
+Added: 7.21.3
---
When saving output to a file, this option tells curl to store certain file
metadata in extended file attributes. Currently, the URL is stored in the
diff --git a/docs/curl-config.1 b/docs/curl-config.1
index 7323347e3..bcaa5c15e 100644
--- a/docs/curl-config.1
+++ b/docs/curl-config.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl-config 1 "November 04, 2020" "Curl 7.78.0" "curl-config manual"
+.TH curl-config 1 "November 04, 2020" "Curl 7.80.0" "curl-config manual"
.SH NAME
curl-config \- Get information about a libcurl installation
diff --git a/docs/curl.1 b/docs/curl.1
index e418ad168..2e69b9f46 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -22,18 +22,16 @@
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
-.TH curl 1 "November 16, 2016" "Curl 7.78.0" "Curl Manual"
-
+.TH curl 1 "November 10 2021" "curl 7.80.0" "curl Manual"
.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
.B curl [options / URLs]
.SH DESCRIPTION
-.B curl
-is a tool to transfer data from or to a server, using one of the supported
-protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP,
-LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
-SMTPS, TELNET or TFTP). The command is designed to work without user
+\fBcurl\fP is a tool for transferring data from or to a server. It supports these
+protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS,
+LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
+SMTPS, TELNET or TFTP. The command is designed to work without user
interaction.
curl offers a busload of useful tricks like proxy support, user
@@ -44,7 +42,7 @@ head spin!
curl is powered by libcurl for all transfer-related features. See
\fIlibcurl(3)\fP for details.
.SH URL
-The URL syntax is protocol-dependent. You'll find a detailed description in
+The URL syntax is protocol-dependent. You find a detailed description in
RFC 3986.
You can specify multiple URLs or parts of URLs by writing part sets within
@@ -79,7 +77,7 @@ letter:
When using [] or {} sequences when invoked from a command line prompt, you
probably have to put the full URL within double quotes to avoid the shell from
interfering with it. This also goes for other characters treated special, like
-for example '&', '?' and '*'.
+for example \(aq&', '?' and '*'.
Provide the IPv6 zone index in the URL with an escaped percentage sign and the
interface name. Like in
@@ -121,7 +119,7 @@ will work.
.IP FTP(S)
curl supports the File Transfer Protocol with a lot of tweaks and levers. With
or without using TLS.
-.IP GOPHER
+.IP GOPHER(S)
Retrieve files.
.IP HTTP(S)
curl supports HTTP with numerous options and variations. It can speak HTTP
@@ -134,8 +132,8 @@ without using TLS.
curl can do directory lookups for you, with or without TLS.
.IP MQTT
curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a
-topic while uploading/posting equals "publish" on a topic. MQTT support is
-experimental and TLS based MQTT is not supported (yet).
+topic while uploading/posting equals "publish" on a topic. MQTT over TLS is
+not supported (yet).
.IP POP3(S)
Downloading from a pop3 server means getting a mail. With or without using
TLS.
@@ -189,26 +187,27 @@ or without a space between it and its value, although a space is a recommended
separator. The long "double-dash" form, \fI\-d, \-\-data\fP for example, requires a space
between it and its value.
-Short version options that don't need any additional values can be used
+Short version options that do not need any additional values can be used
immediately next to each other, like for example you can specify all the
options \-O, \-L and \-v at once as \-OLv.
In general, all boolean options are enabled with \-\-\fBoption\fP and yet again
disabled with \-\-\fBno-\fPoption. That is, you use the exact same option name
but prefix it with "no-". However, in this list we mostly only list and show
-the \-\-option version of them. (This concept with \-\-no options was added in
-7.19.0. Previously most options were toggled on/off through repeated use of
-the same command line option.)
+the \-\-option version of them.
.IP "\-\-abstract-unix-socket <path>"
(HTTP) Connect through an abstract Unix domain socket, instead of using the network.
-Note: netstat shows the path of an abstract socket prefixed with '@', however
+Note: netstat shows the path of an abstract socket prefixed with \(aq@', however
the <path> argument should not have this leading character.
+Example:
+.nf
+ curl --abstract-unix-socket socketpath https://example.com
+.fi
+
Added in 7.53.0.
.IP "\-\-alt-svc <file name>"
-(HTTPS) WARNING: this option is experimental. Do not use in production.
-
-This option enables the alt-svc parser in curl. If the file name points to an
+(HTTPS) This option enables the alt-svc parser in curl. If the file name points to an
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.
@@ -218,6 +217,11 @@ 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.
+Example:
+.nf
+ curl --alt-svc svc.txt https://example.com
+.fi
+
Added in 7.64.1.
.IP "\-\-anyauth"
(HTTP) Tells curl to figure out authentication method by itself, and use the most
@@ -233,11 +237,21 @@ fail.
Used together with \fI\-u, \-\-user\fP.
+Example:
+.nf
+ curl --anyauth --user me:pwd https://example.com
+.fi
+
See also \fI--proxy-anyauth\fP, \fI--basic\fP and \fI--digest\fP.
.IP "\-a, \-\-append"
(FTP SFTP) When used in an upload, this makes curl append to the target file instead of
-overwriting it. If the remote file doesn't exist, it will be created. Note
+overwriting it. If the remote file does not exist, it will be created. Note
that this flag is ignored by some SFTP servers (including OpenSSH).
+
+Example:
+.nf
+ curl --upload-file local --append ftp://example.com/
+.fi
.IP "\-\-aws-sigv4 <provider1[:provider2[:region[:service]]]>"
Use AWS V4 signature authentication in the transfer.
@@ -251,6 +265,11 @@ the endpoint.
The service argument is a string that points to a function provided by a cloud
(service-code) when the service name is omitted from the endpoint.
+Example:
+.nf
+ curl --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" https://example.com
+.fi
+
Added in 7.75.0.
.IP "\-\-basic"
(HTTP) Tells curl to use HTTP Basic authentication with the remote host. This is the
@@ -260,6 +279,11 @@ previously set option that sets a different authentication method (such as
Used together with \fI\-u, \-\-user\fP.
+Example:
+.nf
+ curl -u name:password --basic https://example.com
+.fi
+
See also \fI--proxy-basic\fP.
.IP "\-\-cacert <file>"
(TLS) Tells curl to use the specified certificate file to verify the peer. The file
@@ -267,12 +291,12 @@ may contain multiple CA certificates. The certificate(s) must be in PEM
format. Normally curl is built to use a default file for this, so this option
is typically used to alter that default file.
-curl recognizes the environment variable named 'CURL_CA_BUNDLE' if it is
+curl recognizes the environment variable named \(aqCURL_CA_BUNDLE' if it is
set, and uses the given path as a path to a CA cert bundle. This option
overrides that variable.
The windows version of curl will automatically look for a CA certs file named
-\'curl-ca-bundle.crt\', either in the same directory as curl.exe, or in the
+\(aqcurl-ca-bundle.crt', either in the same directory as curl.exe, or in the
Current Working Directory, or in any folder along your PATH.
If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module
@@ -282,14 +306,19 @@ If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module
option is supported for backward compatibility with other SSL engines, but it
should not be set. If the option is not set, then curl will use the
certificates in the system and user Keychain to verify the peer, which is the
-preferred method of verifying the peer's certificate chain.
+preferred method of verifying the peer\(aqs certificate chain.
-(Schannel only) This option is supported for Schannel in Windows 7 or later with
-libcurl 7.60 or later. This option is supported for backward compatibility
-with other SSL engines; instead it is recommended to use Windows' store of
-root certificates (the default for Schannel).
+(Schannel only) This option is supported for Schannel in Windows 7 or later
+with libcurl 7.60 or later. This option is supported for backward
+compatibility with other SSL engines; instead it is recommended to use
+Windows\(aq store of root certificates (the default for Schannel).
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --cacert CA-file.txt https://example.com
+.fi
.IP "\-\-capath <dir>"
(TLS) Tells curl to use the specified certificate directory to verify the
peer. Multiple paths can be provided by separating them with ":" (e.g.
@@ -301,6 +330,11 @@ OpenSSL-powered curl to make SSL-connections much more efficiently than using
If this option is set, the default capath value will be ignored, and if it is
used several times, the last one will be used.
+
+Example:
+.nf
+ curl --capath /local/directory https://example.com
+.fi
.IP "\-\-cert-status"
(TLS) Tells curl to verify the status of the server certificate by using the
Certificate Status Request (aka. OCSP stapling) TLS extension.
@@ -311,6 +345,11 @@ or no response at all is received, the verification fails.
This is currently only implemented in the OpenSSL, GnuTLS and NSS backends.
+Example:
+.nf
+ curl --cert-status https://example.com
+.fi
+
Added in 7.41.0.
.IP "\-\-cert-type <type>"
(TLS) Tells curl what type the provided client certificate is using. PEM, DER, ENG
@@ -318,12 +357,17 @@ and P12 are recognized types. If not specified, PEM is assumed.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --cert-type PEM --cert file https://example.com
+.fi
+
See also \fI-E, --cert\fP, \fI--key\fP and \fI--key-type\fP.
.IP "\-E, \-\-cert <certificate[:password]>"
(TLS) Tells curl to use the specified client certificate file when getting a file
with HTTPS, FTPS or another SSL-based protocol. The certificate must be in
PKCS#12 format if using Secure Transport, or PEM format if using any other
-engine. If the optional password isn't specified, it will be queried for on
+engine. If the optional password is not specified, it will be queried for on
the terminal. Note that this option assumes a \&"certificate" file that is the
private key and the client certificate concatenated! See \fI\-E, \-\-cert\fP and \fI\-\-key\fP to
specify them independently.
@@ -364,6 +408,11 @@ LocalMachineEnterprise.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --cert certfile --key keyfile https://example.com
+.fi
+
See also \fI--cert-type\fP, \fI--key\fP and \fI--key-type\fP.
.IP "\-\-ciphers <list of ciphers>"
(TLS) Specifies which ciphers to use in the connection. The list of ciphers must
@@ -372,19 +421,34 @@ specify valid ciphers. Read up on SSL cipher list details on this URL:
https://curl.se/docs/ssl-ciphers.html
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com
+.fi
.IP "\-\-compressed-ssh"
(SCP SFTP) Enables built-in SSH compression.
This is a request, not an order; the server may or may not do it.
+Example:
+.nf
+ curl --compressed-ssh sftp://example.com/
+.fi
+
Added in 7.56.0.
.IP "\-\-compressed"
(HTTP) Request a compressed response using one of the algorithms curl supports, and
automatically decompress the content. Headers are not modified.
If this option is used and the server sends an unsupported encoding, curl will
-report an error.
-.IP "\-K, \-\-config <file>"
+report an error. This is a request, not an order; the server may or may not
+deliver data compressed.
+Example:
+.nf
+ curl --compressed https://example.com
+.fi
+.IP "\-K, \-\-config <file>"
Specify a text file to read curl arguments from. The command line arguments
found in the text file will be used as if they were provided on the command
line.
@@ -401,12 +465,12 @@ must be enclosed within quotes. Within double quotes, the following escape
sequences are available: \\\\, \\", \\t, \\n, \\r and \\v. A backslash
preceding any other letter is ignored.
-If the first column of a config line is a '#' character, the rest of the line
+If the first column of a config line is a \(aq#' character, the rest of the line
will be treated as a comment.
Only write one option per physical line in the config file.
-Specify the filename to \fI\-K, \-\-config\fP as '-' to make curl read the file from stdin.
+Specify the filename to \fI\-K, \-\-config\fP as \(aq-' to make curl read the file from stdin.
Note that to be able to specify a URL in the config file, you need to specify
it using the \fI\-\-url\fP option, and not by simply writing the URL on its own
@@ -415,8 +479,8 @@ line. So, it could look similar to this:
url = "https://curl.se/docs/"
When curl is invoked, it (unless \fI\-q, \-\-disable\fP is used) checks for a default
-config file and uses it if found. The default config file is checked for in
-the following places in this order:
+config file and uses it if found, even when this option is used. The default
+config file is checked for in the following places in this order:
1) Use the CURL_HOME environment variable if set
@@ -428,7 +492,7 @@ the following places in this order:
5) Windows: use APPDATA if set
-6) Windows: use "USERPROFILE\Application Data" if set
+6) Windows: use "USERPROFILE\\Application Data" if set
7) On windows, if there is no .curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
@@ -449,14 +513,25 @@ referer = "http://nowhereatall.example.com/"
.fi
This option can be used multiple times to load multiple config files.
-.IP "\-\-connect-timeout <seconds>"
-Maximum time in seconds that you allow curl's connection to take. This only
+
+Example:
+.nf
+ curl --config file.txt https://example.com
+.fi
+.IP "\-\-connect-timeout <fractional seconds>"
+Maximum time in seconds that you allow curl\(aqs connection to take. This only
limits the connection phase, so if curl connects within the given period it
will continue \- if not it will exit. Since version 7.32.0, this option
accepts decimal values.
If this option is used several times, the last one will be used.
+Examples:
+.nf
+ curl --connect-timeout 20 https://example.com
+ curl --connect-timeout 3.14 https://example.com
+.fi
+
See also \fI-m, --max-time\fP.
.IP "\-\-connect-to <HOST1:PORT1:HOST2:PORT2>"
@@ -467,7 +542,7 @@ establish the network connection. It does NOT affect the hostname/port that is
used for TLS/SSL (e.g. SNI, certificate verification) or for the application
protocols. "HOST1" and "PORT1" may be the empty string, meaning "any
host/port". "HOST2" and "PORT2" may also be the empty string, meaning "use the
-request's original host/port".
+request\(aqs original host/port".
A "host" specified to this option is compared as a string, so it needs to
match the name used in request URL. It can be either numerical such as
@@ -475,6 +550,11 @@ match the name used in request URL. It can be either numerical such as
This option can be used many times to add many connect rules.
+Example:
+.nf
+ curl --connect-to example.com:443:example.net:8443 https://example.com
+.fi
+
See also \fI--resolve\fP and \fI-H, --header\fP. Added in 7.49.0.
.IP "\-C, \-\-continue-at <offset>"
Continue/Resume a previous file transfer at the given offset. The given offset
@@ -487,6 +567,12 @@ transfer. It then uses the given output/input files to figure that out.
If this option is used several times, the last one will be used.
+Examples:
+.nf
+ curl -C - https://example.com
+ curl -C 400 https://example.com
+.fi
+
See also \fI-r, --range\fP.
.IP "\-c, \-\-cookie-jar <filename>"
(HTTP) Specify to which file you want curl to write all cookies after a completed
@@ -500,22 +586,28 @@ This command line option will activate the cookie engine that makes curl
record and use cookies. Another way to activate it is to use the \fI\-b, \-\-cookie\fP
option.
-If the cookie jar can't be created or written to, the whole curl operation
-won't fail or even report an error clearly. Using \fI\-v, \-\-verbose\fP will get a warning
-displayed, but that is the only visible feedback you get about this possibly
-lethal situation.
+If the cookie jar cannot be created or written to, the whole curl operation
+will not fail or even report an error clearly. Using \fI\-v, \-\-verbose\fP will get a
+warning displayed, but that is the only visible feedback you get about this
+possibly lethal situation.
If this option is used several times, the last specified file name will be
used.
+
+Examples:
+.nf
+ curl -c store-here.txt https://example.com
+ curl -c store-here.txt -b read-these https://example.com
+.fi
.IP "\-b, \-\-cookie <data|filename>"
(HTTP) Pass the data to the HTTP server in the Cookie header. It is supposedly
the data previously received from the server in a "Set-Cookie:" line. The
data should be in the format "NAME1=VALUE1; NAME2=VALUE2".
-If no '=' symbol is used in the argument, it is instead treated as a filename
+If no \(aq=' symbol is used in the argument, it is instead treated as a filename
to read previously stored cookie from. This option also activates the cookie
engine which will make curl record incoming cookies, which may be handy if
-you're using this in combination with the \fI\-L, \-\-location\fP option or do multiple URL
+you are using this in combination with the \fI\-L, \-\-location\fP option or do multiple URL
transfers on the same invoke. If the file name is exactly a minus ("-"), curl
will instead read the contents from stdin.
@@ -525,16 +617,22 @@ The file format of the file to read cookies from should be plain HTTP headers
The file specified with \fI\-b, \-\-cookie\fP is only used as input. No cookies will be
written to the file. To store cookies, use the \fI\-c, \-\-cookie-jar\fP option.
-If you use the Set-Cookie file format and don't specify a domain then the
+If you use the Set-Cookie file format and do not specify a domain then the
cookie is not sent since the domain will never match. To address this, set a
domain in Set-Cookie line (doing that will include sub-domains) or preferably:
use the Netscape format.
This option can be used multiple times.
-Users very often want to both read cookies from a file and write updated
-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.
+Users often want to both read cookies from a file and write updated 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.
+
+Examples:
+.nf
+ curl -b cookiefile https://example.com
+ curl -b cookiefile -c cookiefile https://example.com
+.fi
.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
@@ -545,27 +643,45 @@ no directories 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.
+
+Example:
+.nf
+ curl --create-dirs --output local/dir/file https://example.com
+.fi
.IP "\-\-create-file-mode <mode>"
(SFTP SCP FILE) When curl is used to create files remotely using one of the supported
-protocols, this option allows the user to set which 'mode' to set on the file
+protocols, this option allows the user to set which \(aqmode' to set on the file
at creation time, instead of the default 0644.
This option takes an octal number as argument.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --create-file-mode 0777 -T localfile sftp://example.com/new
+.fi
+
See also \fI--ftp-create-dirs\fP. Added in 7.75.0.
.IP "\-\-crlf"
(FTP SMTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).
(SMTP added in 7.40.0)
+
+Example:
+.nf
+ curl --crlf -T file ftp://example.com/
+.fi
.IP "\-\-crlfile <file>"
(TLS) Provide a file using PEM format with a Certificate Revocation List that may
specify peer certificates that are to be considered revoked.
If this option is used several times, the last one will be used.
-Added in 7.19.7.
+Example:
+.nf
+ curl --crlfile rejects.txt https://example.com
+.fi
.IP "\-\-curves <algorithm list>"
(TLS) Tells curl to request specific curves to use during SSL session establishment
according to RFC 8422, 5.1. Multiple algorithms can be provided by separating
@@ -579,9 +695,19 @@ negotiations.
If this option is set, the default curves list built into openssl will be
ignored.
+Example:
+.nf
+ curl --curves X25519 https://example.com
+.fi
+
Added in 7.73.0.
.IP "\-\-data-ascii <data>"
(HTTP) This is just an alias for \fI\-d, \-\-data\fP.
+
+Example:
+.nf
+ curl --data-ascii @file https://example.com
+.fi
.IP "\-\-data-binary <data>"
(HTTP) This posts data exactly as specified with no extra processing whatsoever.
@@ -596,10 +722,21 @@ arbitrary binary data by the server then set the content-type to octet-stream:
If this option is used several times, the ones following the first will append
data as described in \fI\-d, \-\-data\fP.
+
+Example:
+.nf
+ curl --data-binary @filename https://example.com
+.fi
.IP "\-\-data-raw <data>"
(HTTP) This posts data similarly to \fI\-d, \-\-data\fP but without the special
interpretation of the @ character.
+Examples:
+.nf
+ curl --data-raw "hello" https://example.com
+ curl --data-raw "@at@at@" https://example.com
+.fi
+
See also \fI-d, --data\fP. Added in 7.43.0.
.IP "\-\-data-urlencode <data>"
(HTTP) This posts data, similar to the other \fI\-d, \-\-data\fP options with the exception
@@ -611,7 +748,7 @@ curl using one of the following syntaxes:
.RS
.IP "content"
This will make curl URL-encode the content and pass that on. Just be careful
-so that the content doesn't contain any = or @ symbols, as that will then make
+so that the content does not contain any = or @ symbols, as that will then make
the syntax match one of the other cases below!
.IP "=content"
This will make curl URL-encode the content and pass that on. The preceding =
@@ -629,7 +766,15 @@ sign appended, resulting in \fIname=urlencoded-file-content\fP. Note that the
name is expected to be URL-encoded already.
.RE
-See also \fI-d, --data\fP and \fI--data-raw\fP. Added in 7.18.0.
+Examples:
+.nf
+ curl --data-urlencode name=val https://example.com
+ curl --data-urlencode =encodethis https://example.com
+ curl --data-urlencode name@file https://example.com
+ curl --data-urlencode @fileonly https://example.com
+.fi
+
+See also \fI-d, --data\fP and \fI--data-raw\fP.
.IP "\-d, \-\-data <data>"
(HTTP MQTT) Sends the specified data in a POST request to the HTTP server, in the same way
that a browser does when a user has filled in an HTML form and presses the
@@ -643,23 +788,30 @@ the @ character. To post data purely binary, you should instead use the
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'.
+&-symbol. Thus, using \(aq-d name=daniel \-d skill=lousy' would generate a post
+chunk that looks like \&\(aqname=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
+data from a file named \&\(aqfoobar' 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
+will be stripped out. If you do not want the @ character to have a special
interpretation use \fI\-\-data-raw\fP instead.
+Examples:
+.nf
+ curl -d "name=curl" https://example.com
+ curl -d "name=curl" -d "tool=cmdline" https://example.com
+ curl -d @filename https://example.com
+.fi
+
See also \fI--data-binary\fP, \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"
-Don't allow any delegation.
+Do not allow any delegation.
.IP "policy"
Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos
service ticket, which is a matter of realm policy.
@@ -668,6 +820,11 @@ Unconditionally allow the server to delegate.
.RE
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --delegation "none" https://example.com
+.fi
.IP "\-\-digest"
(HTTP) Enables HTTP Digest authentication. This is an authentication scheme that
prevents the password from being sent over the wire in clear text. Use this in
@@ -675,6 +832,11 @@ combination with the normal \fI\-u, \-\-user\fP option to set user name and pass
If this option is used several times, only the first one is used.
+Example:
+.nf
+ curl -u name:password --digest https://example.com
+.fi
+
See also \fI-u, --user\fP, \fI--proxy-digest\fP and \fI--anyauth\fP. This option overrides \fI--basic\fP and \fI--ntlm\fP and \fI--negotiate\fP.
.IP "\-\-disable-eprt"
(FTP) Tell curl to disable the use of the EPRT and LPRT commands when doing active
@@ -692,6 +854,11 @@ is necessary then.
Disabling EPRT only changes the active behavior. If you want to switch to
passive mode you need to not use \fI\-P, \-\-ftp-port\fP or force it with \fI\-\-ftp-pasv\fP.
+
+Example:
+.nf
+ curl --disable-eprt ftp://example.com/
+.fi
.IP "\-\-disable-epsv"
(FTP) Tell curl to disable the use of the EPSV command when doing passive FTP
transfers. Curl will normally always first attempt to use EPSV before
@@ -705,12 +872,28 @@ necessary then.
Disabling EPSV only changes the passive behavior. If you want to switch to
active mode you need to use \fI\-P, \-\-ftp-port\fP.
+
+Example:
+.nf
+ curl --disable-epsv ftp://example.com/
+.fi
.IP "\-q, \-\-disable"
If used as the first parameter on the command line, the \fIcurlrc\fP config
file will not be read and used. See the \fI\-K, \-\-config\fP for details on the default
config file search path.
+
+Example:
+.nf
+ curl -q https://example.com
+.fi
.IP "\-\-disallow-username-in-url"
-(HTTP) This tells curl to exit if passed a url containing a username.
+(HTTP) This tells curl to exit if passed a url containing a username. This is probably
+most useful when the URL is being provided at run-time or similar.
+
+Example:
+.nf
+ curl --disallow-username-in-url https://example.com
+.fi
See also \fI--proto\fP. Added in 7.61.0.
.IP "\-\-dns-interface <interface>"
@@ -718,6 +901,11 @@ See also \fI--proto\fP. Added in 7.61.0.
counterpart to \fI\-\-interface\fP (which does not affect DNS). The supplied string
must be an interface name (not an address).
+Example:
+.nf
+ curl --dns-interface eth0 https://example.com
+.fi
+
See also \fI--dns-ipv4-addr\fP and \fI--dns-ipv6-addr\fP. \fI--dns-interface\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0.
.IP "\-\-dns-ipv4-addr <address>"
(DNS) Tell curl to bind to <ip-address> when making IPv4 DNS requests, so that
@@ -726,6 +914,11 @@ single IPv4 address.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --dns-ipv4-addr 10.1.2.3 https://example.com
+.fi
+
See also \fI--dns-interface\fP and \fI--dns-ipv6-addr\fP. \fI--dns-ipv4-addr\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0.
.IP "\-\-dns-ipv6-addr <address>"
(DNS) Tell curl to bind to <ip-address> when making IPv6 DNS requests, so that
@@ -734,6 +927,11 @@ single IPv6 address.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --dns-ipv6-addr 2a04:4e42::561 https://example.com
+.fi
+
See also \fI--dns-interface\fP and \fI--dns-ipv4-addr\fP. \fI--dns-ipv6-addr\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0.
.IP "\-\-dns-servers <addresses>"
Set the list of DNS servers to be used instead of the system default.
@@ -743,14 +941,29 @@ address.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com
+.fi
+
\fI--dns-servers\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0.
.IP "\-\-doh-cert-status"
(all) Same as \fI\-\-cert-status\fP but used for DoH (DNS-over-HTTPS).
+Example:
+.nf
+ curl --doh-cert-status --doh-url https://doh.example https://example.com
+.fi
+
Added in 7.76.0.
.IP "\-\-doh-insecure"
(all) Same as \fI\-k, \-\-insecure\fP but used for DoH (DNS-over-HTTPS).
+Example:
+.nf
+ curl --doh-insecure --doh-url https://doh.example https://example.com
+.fi
+
Added in 7.76.0.
.IP "\-\-doh-url <URL>"
(all) Specifies which DNS-over-HTTPS (DoH) server to use to resolve hostnames,
@@ -763,6 +976,11 @@ settings are not inherited and can be controlled separately via
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --doh-url https://doh.example https://example.com
+.fi
+
Added in 7.62.0.
.IP "\-D, \-\-dump-header <filename>"
(HTTP FTP) Write the received protocol headers to the specified file. If no headers are
@@ -773,16 +991,31 @@ and thus are saved there.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --dump-header store.txt https://example.com
+.fi
+
See also \fI-o, --output\fP.
.IP "\-\-egd-file <file>"
(TLS) Specify the path name to the Entropy Gathering Daemon socket. The socket is
used to seed the random engine for SSL connections.
+Example:
+.nf
+ curl --egd-file /random/here https://example.com
+.fi
+
See also \fI--random-file\fP.
.IP "\-\-engine <name>"
(TLS) Select the OpenSSL crypto engine to use for cipher operations. Use \fI\-\-engine\fP
list to print a list of build-time supported engines. Note that not all (and
possibly none) of the engines may be available at run-time.
+
+Example:
+.nf
+ curl --engine flavor https://example.com
+.fi
.IP "\-\-etag-compare <file>"
(HTTP) This option makes a conditional HTTP request for the specific ETag read
from the given file by sending a custom If-None-Match header using the
@@ -796,6 +1029,11 @@ Use the option \fI\-\-etag-save\fP to first save the ETag from a response, and
then use this option to compare against the saved ETag in a subsequent
request.
+Example:
+.nf
+ curl --etag-compare etag.txt https://example.com
+.fi
+
Added in 7.68.0.
.IP "\-\-etag-save <file>"
(HTTP) This option saves an HTTP ETag to the specified file. An ETag is a
@@ -803,6 +1041,11 @@ caching related header, usually returned in a response.
If no ETag is sent by the server, an empty file is created.
+Example:
+.nf
+ curl --etag-save storetag.txt https://example.com
+.fi
+
Added in 7.68.0.
.IP "\-\-expect100-timeout <seconds>"
(HTTP) Maximum time in seconds that you allow curl to wait for a 100-continue
@@ -810,13 +1053,18 @@ response when curl emits an Expects: 100-continue header in its request. By
default curl will wait one second. This option accepts decimal values! When
curl stops waiting, it will continue as if the response has been received.
+Example:
+.nf
+ curl --expect100-timeout 2.5 -T file https://example.com
+.fi
+
See also \fI--connect-timeout\fP. Added in 7.47.0.
.IP "\-\-fail-early"
Fail and exit on the first detected transfer error.
When curl is used to do multiple transfers on the command line, it will
attempt to operate on each given URL, one by one. By default, it will ignore
-errors if there are more URLs given and the last URL's success will determine
+errors if there are more URLs given and the last URL\(aqs success will determine
the error code curl returns. So early failures will be "hidden" by subsequent
successful transfers.
@@ -827,13 +1075,17 @@ line. This way, no transfer failures go undetected by scripts and similar.
This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP.
This option does not imply \fI\-f, \-\-fail\fP, which causes transfers to fail due to the
-server's HTTP status code. You can combine the two options, however note \fI\-f, \-\-fail\fP
+server\(aqs HTTP status code. You can combine the two options, however note \fI\-f, \-\-fail\fP
is not global and is therefore contained by \fI\-:, \-\-next\fP.
+Example:
+.nf
+ curl --fail-early https://example.com https://two.example
+.fi
+
Added in 7.52.0.
.IP "\-\-fail-with-body"
-(HTTP)
-Return an error on server errors where the HTTP response code is 400 or
+(HTTP) Return an error on server errors where the HTTP response code is 400 or
greater). In normal cases when an HTTP server fails to deliver a document, it
returns an HTML document stating so (which often also describes why and
more). This flag will still allow curl to output and save that content but
@@ -842,6 +1094,11 @@ also to return error 22.
This is an alternative option to \fI\-f, \-\-fail\fP which makes curl fail for the same
circumstances but without saving the content.
+Example:
+.nf
+ curl --fail-with-body https://example.com
+.fi
+
See also \fI-f, --fail\fP. Added in 7.76.0.
.IP "\-f, \-\-fail"
(HTTP) Fail silently (no output at all) on server errors. This is mostly done to
@@ -854,23 +1111,38 @@ This method is not fail-safe and there are occasions where non-successful
response codes will slip through, especially when authentication is involved
(response codes 401 and 407).
+Example:
+.nf
+ curl --fail https://example.com
+.fi
+
See also \fI--fail-with-body\fP.
.IP "\-\-false-start"
(TLS) Tells curl to use false start during the TLS handshake. False start is a mode
where a TLS client will start sending application data before verifying the
-server's Finished message, thus saving a round trip when performing a full
+server\(aqs Finished message, thus saving a round trip when performing a full
handshake.
This is currently only implemented in the NSS and Secure Transport (on iOS 7.0
or later, or OS X 10.9 or later) backends.
+Example:
+.nf
+ curl --false-start https://example.com
+.fi
+
Added in 7.42.0.
.IP "\-\-form-string <name=string>"
(HTTP SMTP IMAP) Similar to \fI\-F, \-\-form\fP except that the value string for the named parameter is used
-literally. Leading \&'@' and \&'<' characters, and the \&';type=' string in
+literally. Leading \&\(aq@' and \&'<' characters, and the \&';type=' string in
the value have no special meaning. Use this in preference to \fI\-F, \-\-form\fP if
-there's any possibility that the string value may accidentally trigger the
-\&'@' or \&'<' features of \fI\-F, \-\-form\fP.
+there\(aqs any possibility that the string value may accidentally trigger the
+\&\(aq@' or \&'<' features of \fI\-F, \-\-form\fP.
+
+Example:
+.nf
+ curl --form-string "data" https://example.com
+.fi
See also \fI-F, --form\fP.
.IP "\-F, \-\-form <name=content>"
@@ -881,7 +1153,7 @@ Content-Type multipart/form-data according to RFC 2388.
For SMTP and IMAP protocols, this is the means to compose a multipart mail
message to transmit.
-This enables uploading of binary files etc. To force the 'content' part to be
+This enables uploading of binary files etc. To force the \(aqcontent' part to be
a file, prefix the file name with an @ sign. To just get the content part from
a file, prefix the file name with the symbol <. The difference between @ and <
is then that @ makes a file get attached in the post as a file upload, while
@@ -891,13 +1163,13 @@ file.
Tell curl to read content from stdin instead of a file by using \- as
filename. This goes for both @ and < constructs. When stdin is used, the
contents is buffered in memory first by curl to determine its size and allow a
-possible resend. Defining a part's data from a named non-regular file (such
+possible resend. Defining a part\(aqs data from a named non-regular file (such
as a named pipe or similar) is unfortunately not subject to buffering and will
be effectively read at transmission time; since the full size is unknown
before the transfer starts, such data is sent as chunks by HTTP and rejected
by IMAP.
-Example: send an image to an HTTP server, where \&'profile' is the name of the
+Example: send an image to an HTTP server, where \&\(aqprofile' 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
@@ -911,7 +1183,7 @@ 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
+You can also tell curl what Content-Type to use by using \(aqtype=', in a manner
similar to:
curl \-F "web=@index.html;type=text/html" example.com
@@ -925,13 +1197,13 @@ filename=, like this:
curl \-F "file=@localfile;filename=nameinpost" example.com
-If filename/path contains ',' or ';', it must be quoted by double-quotes like:
+If filename/path contains \(aq,' or ';', it must be quoted by double-quotes like:
curl \-F "file=@\\"local,file\\";filename=\\"name;in;post\\"" example.com
or
- curl \-F 'file=@"local,file";filename="name;in;post"' example.com
+ curl \-F \(aqfile=@"local,file";filename="name;in;post"' example.com
Note that if a filename/path is quoted by double-quotes, any double-quote
or backslash within the filename must be escaped by backslash.
@@ -939,7 +1211,7 @@ or backslash within the filename must be escaped by backslash.
Quoting must also be applied to non-file data if it contains semicolons,
leading/trailing spaces or leading double quotes:
- curl \-F 'colors="red; green; blue";type=text/x-myapp' example.com
+ curl \-F \(aqcolors="red; green; blue";type=text/x-myapp' example.com
You can add custom headers to the field by setting headers=, like
@@ -951,7 +1223,7 @@ or
The headers= keyword may appear more that once and above notes about quoting
apply. When headers are read from a file, Empty lines and lines starting
-with '#' are comments and ignored; each header can be folded by splitting
+with \(aq#' are comments and ignored; each header can be folded by splitting
between two words and starting the continuation line with a space; embedded
carriage-returns and trailing spaces are stripped.
Here is an example of a header file contents:
@@ -971,22 +1243,22 @@ To support sending multipart mail messages, the syntax is extended as follows:
.br
\- name can be omitted: the equal sign is the first character of the argument,
.br
-\- if data starts with '(', this signals to start a new multipart: it can be
+\- if data starts with \(aq(', this signals to start a new multipart: it can be
followed by a content type specification.
.br
-\- a multipart can be terminated with a '=)' argument.
+\- a multipart can be terminated with a \(aq=)' argument.
Example: the following command sends an SMTP mime e-mail consisting in an
inline part in two alternative formats: plain text and HTML. It attaches a
text file:
- curl \-F '=(;type=multipart/alternative' \\
+ curl \-F \(aq=(;type=multipart/alternative' \\
.br
- \-F '=plain text message' \\
+ \-F \(aq=plain text message' \\
.br
- \-F '= <body>HTML message</body>;type=text/html' \\
+ \-F \(aq= <body>HTML message</body>;type=text/html' \\
.br
- \-F '=)' \-F '=@textfile.txt' ... smtp://example.com
+ \-F \(aq=)' \-F '=@textfile.txt' ... smtp://example.com
Data can be encoded for transfer using encoder=. Available encodings are
\fIbinary\fP and \fI8bit\fP that do nothing else than adding the corresponding
@@ -998,14 +1270,19 @@ characters.
Example: send multipart mail with a quoted-printable text message and a
base64 attached file:
- curl \-F '=text message;encoder=quoted-printable' \\
+ curl \-F \(aq=text message;encoder=quoted-printable' \\
.br
- \-F '=@localfile;encoder=base64' ... smtp://example.com
+ \-F \(aq=@localfile;encoder=base64' ... smtp://example.com
See further examples and details in the MANUAL.
This option can be used multiple times.
+Example:
+.nf
+ curl --form "name=curl" --form "file=@loadthis" https://example.com
+.fi
+
This option overrides \fI-d, --data\fP and \fI-I, --head\fP and \fI-T, --upload-file\fP.
.IP "\-\-ftp-account <data>"
(FTP) When an FTP server asks for "account data" after user name and password has
@@ -1013,19 +1290,30 @@ been provided, this data is sent off using the ACCT command.
If this option is used several times, the last one will be used.
-Added in 7.13.0.
+Example:
+.nf
+ curl --ftp-account "mr.robot" ftp://example.com/
+.fi
.IP "\-\-ftp-alternative-to-user <command>"
(FTP) If authenticating with the USER and PASS commands fails, send this command.
-When connecting to Tumbleweed's Secure Transport server over FTPS using a
+When connecting to Tumbleweed\(aqs Secure Transport server over FTPS using a
client certificate, using "SITE AUTH" will tell the server to retrieve the
username from the certificate.
-Added in 7.15.5.
+Example:
+.nf
+ curl --ftp-alternative-to-user "U53r" ftp://example.com
+.fi
.IP "\-\-ftp-create-dirs"
-(FTP SFTP) When an FTP or SFTP URL/operation uses a path that doesn't currently exist on
+(FTP SFTP) When an FTP or SFTP URL/operation uses a path that does not currently exist on
the server, the standard behavior of curl is to fail. Using this option, curl
will instead attempt to create missing directories.
+Example:
+.nf
+ curl --ftp-create-dirs -T file ftp://example.com/remote/path/file
+.fi
+
See also \fI--create-dirs\fP.
.IP "\-\-ftp-method <method>"
(FTP) Control what method curl should use to reach a file on an FTP(S)
@@ -1033,7 +1321,7 @@ server. The method argument should be one of the following alternatives:
.RS
.IP multicwd
curl does a single CWD operation for each path part in the given URL. For deep
-hierarchies this means very many commands. This is how RFC 1738 says it should
+hierarchies this means many commands. This is how RFC 1738 says it should
be done. This is the default but the slowest behavior.
.IP nocwd
curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full
@@ -1041,32 +1329,42 @@ path to the server for all these commands. This is the fastest behavior.
.IP singlecwd
curl does one CWD with the full target directory and then operates on the file
\&"normally" (like in the multicwd case). This is somewhat more standards
-compliant than 'nocwd' but without the full penalty of 'multicwd'.
+compliant than \(aqnocwd' but without the full penalty of 'multicwd'.
.RE
-Added in 7.15.1.
+Examples:
+.nf
+ curl --ftp-method multicwd ftp://example.com/dir1/dir2/file
+ curl --ftp-method nocwd ftp://example.com/dir1/dir2/file
+ curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file
+.fi
.IP "\-\-ftp-pasv"
(FTP) Use passive mode for the data connection. Passive is the internal default
behavior, but using this option can be used to override a previous \fI\-P, \-\-ftp-port\fP
option.
If this option is used several times, only the first one is used. Undoing an
-enforced passive really isn't doable but you must then instead enforce the
+enforced passive really is not doable but you must then instead enforce the
correct \fI\-P, \-\-ftp-port\fP again.
Passive mode means that curl will try the EPSV command first and then PASV,
unless \fI\-\-disable-epsv\fP is used.
-See also \fI--disable-epsv\fP. Added in 7.11.0.
+Example:
+.nf
+ curl --ftp-pasv ftp://example.com/
+.fi
+
+See also \fI--disable-epsv\fP.
.IP "\-P, \-\-ftp-port <address>"
(FTP) Reverses the default initiator/listener roles when connecting with FTP. This
option makes curl use active mode. curl then tells the server to connect back
-to the client's specified address and port, while passive mode asks the server
+to the client\(aqs specified address and port, while passive mode asks the server
to setup an IP address and port for it to connect to. <address> should be one
of:
.RS
.IP interface
-e.g. "eth0" to specify which interface's IP address you want to use (Unix only)
+e.g. "eth0" to specify which interface\(aqs IP address you want to use (Unix only)
.IP "IP address"
e.g. "192.168.10.1" to specify the exact IP address
.IP "host name"
@@ -1080,10 +1378,18 @@ If this option is used several times, the last one will be used. Disable the
use of PORT with \fI\-\-ftp-pasv\fP. Disable the attempt to use the EPRT command
instead of PORT by using \fI\-\-disable-eprt\fP. EPRT is really PORT++.
-Since 7.19.5, you can append \&":[start]-[end]\&" to the right of the address,
-to tell curl what TCP port range to use. That means you specify a port range,
-from a lower to a higher number. A single number works as well, but do note
-that it increases the risk of failure since the port may not be available.
+You can also append \&":[start]-[end]\&" to the right of the address, to tell
+curl what TCP port range to use. That means you specify a port range, from a
+lower to a higher number. A single number works as well, but do note that it
+increases the risk of failure since the port may not be available.
+
+
+Examples:
+.nf
+ curl -P - ftp:/example.com
+ curl -P eth0 ftp:/example.com
+ curl -P 192.168.0.2 ftp:/example.com
+.fi
See also \fI--ftp-pasv\fP and \fI--disable-eprt\fP.
.IP "\-\-ftp-pret"
@@ -1091,10 +1397,13 @@ See also \fI--ftp-pasv\fP and \fI--disable-eprt\fP.
mainly drftpd, require this non-standard command for directory listings as
well as up and downloads in PASV mode.
-Added in 7.20.0.
+Example:
+.nf
+ curl --ftp-pret ftp://example.com/
+.fi
.IP "\-\-ftp-skip-pasv-ip"
(FTP) Tell curl to not use the IP address the server suggests in its response
-to curl's PASV command when curl connects the data connection. Instead curl
+to curl\(aqs PASV command when curl connects the data connection. Instead curl
will re-use the same IP address it already uses for the control
connection.
@@ -1102,50 +1411,80 @@ Since curl 7.74.0 this option is enabled by default.
This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
-See also \fI--ftp-pasv\fP. Added in 7.14.2.
+Example:
+.nf
+ curl --ftp-skip-pasv-ip ftp://example.com/
+.fi
+
+See also \fI--ftp-pasv\fP.
.IP "\-\-ftp-ssl-ccc-mode <active/passive>"
(FTP) Sets the CCC mode. The passive mode will not initiate the shutdown, but
instead wait for the server to do it, and will not reply to the shutdown from
the server. The active mode initiates the shutdown and waits for a reply from
the server.
-See also \fI--ftp-ssl-ccc\fP. Added in 7.16.2.
+Example:
+.nf
+ curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
+.fi
+
+See also \fI--ftp-ssl-ccc\fP.
.IP "\-\-ftp-ssl-ccc"
(FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after
authenticating. The rest of the control channel communication will be
unencrypted. This allows NAT routers to follow the FTP transaction. The
default mode is passive.
-See also \fI--ssl\fP and \fI--ftp-ssl-ccc-mode\fP. Added in 7.16.1.
+Example:
+.nf
+ curl --ftp-ssl-ccc ftps://example.com/
+.fi
+
+See also \fI--ssl\fP and \fI--ftp-ssl-ccc-mode\fP.
.IP "\-\-ftp-ssl-control"
(FTP) Require SSL/TLS for the FTP login, clear for transfer. Allows secure
authentication, but non-encrypted data transfers for efficiency. Fails the
-transfer if the server doesn't support SSL/TLS.
+transfer if the server does not support SSL/TLS.
-Added in 7.16.0.
+Example:
+.nf
+ curl --ftp-ssl-control ftp://example.com
+.fi
.IP "\-G, \-\-get"
When used, this option will make all data specified with \fI\-d, \-\-data\fP, \fI\-\-data-binary\fP
or \fI\-\-data-urlencode\fP to be used in an HTTP GET request instead of the POST
request that otherwise would be used. The data will be appended to the URL
-with a '?' separator.
+with a \(aq?' separator.
If used in combination with \fI\-I, \-\-head\fP, the POST data will instead be appended to
the URL with a HEAD request.
If this option is used several times, only the first one is used. This is
-because undoing a GET doesn't make sense, but you should then instead enforce
+because undoing a GET does not make sense, but you should then instead enforce
the alternative method you prefer.
+
+Examples:
+.nf
+ curl --get https://example.com
+ curl --get -d "tool=curl" -d "age=old" https://example.com
+ curl --get -I -d "tool=curl" https://example.com
+.fi
.IP "\-g, \-\-globoff"
This option switches off the "URL globbing parser". When you set this option,
you can specify URLs that contain the letters {}[] without having curl itself
interpret them. Note that these letters are not normal legal URL contents but
they should be encoded according to the URI standard.
+
+Example:
+.nf
+ curl -g "https://example.com/{[]}}}}"
+.fi
.IP "\-\-happy-eyeballs-timeout-ms <milliseconds>"
-Happy eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
-addresses for dual-stack hosts, preferring IPv6 first for the number of
-milliseconds. If the IPv6 address cannot be connected to within that time then
-a connection attempt is made to the IPv4 address in parallel. The first
-connection to be established is the one that is used.
+Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
+addresses for dual-stack hosts, giving IPv6 a head-start of the specified
+number of milliseconds. If the IPv6 address cannot be connected to within that
+time, then a connection attempt is made to the IPv4 address in parallel. The
+first connection to be established is the one that is used.
The range of suggested useful values is limited. Happy Eyeballs RFC 6555 says
"It is RECOMMENDED that connection attempts be paced 150-250 ms apart to
@@ -1154,27 +1493,42 @@ balance human factors against network load." libcurl currently defaults to
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --happy-eyeballs-timeout-ms 500 https://example.com
+.fi
+
Added in 7.59.0.
.IP "\-\-haproxy-protocol"
-(HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the connection. This
-is used by some load balancers and reverse proxies to indicate the client's
-true IP address and port.
+(HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the
+connection. This is used by some load balancers and reverse proxies to
+indicate the client\(aqs true IP address and port.
This option is primarily useful when sending test requests to a service that
expects this header.
+Example:
+.nf
+ curl --haproxy-protocol https://example.com
+.fi
+
Added in 7.60.0.
.IP "\-I, \-\-head"
(HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the command HEAD which this uses
to get nothing but the header of a document. When used on an FTP or FILE file,
curl displays the file size and last modification time only.
+
+Example:
+.nf
+ curl -I https://example.com
+.fi
.IP "\-H, \-\-header <header/@file>"
(HTTP) Extra header to include in the request when sending HTTP to a server. You may
specify any number of extra headers. Note that if you should add a custom
header that has the same name as one of the internal ones curl would use, your
externally set header will be used instead of the internal one. This allows
you to make even trickier stuff than curl would normally do. You should not
-replace internally set headers without knowing perfectly well what you're
+replace internally set headers without knowing perfectly well what you are
doing. Remove an internal header by giving a replacement without content on
the right side of the colon, as in: \-H \&"Host:". If you send the custom
header with no-value then its header must be terminated with a semicolon, such
@@ -1195,10 +1549,6 @@ proxy. Added in 7.37.0.
Passing on a "Transfer-Encoding: chunked" header when doing a HTTP request
with a request body, will make curl send the data using chunked encoding.
-Example:
-
- curl \-H "X-First-Name: Joe" http://example.com/
-
\fBWARNING\fP: headers set with this option will be set in all requests \- even
after redirects are followed, like when told with \fI\-L, \-\-location\fP. This can lead to
the header being sent to other hosts than the original host, so sensitive
@@ -1206,6 +1556,13 @@ headers should be used with caution combined with following redirects.
This option can be used multiple times to add/replace/remove multiple headers.
+Examples:
+.nf
+ curl -H "X-First-Name: Joe" https://example.com
+ curl -H "User-Agent: yes-please/2000" https://example.com
+ curl -H "Host:" https://example.com
+.fi
+
See also \fI-A, --user-agent\fP and \fI-e, --referer\fP.
.IP "\-h, \-\-help <category>"
Usage help. This lists all commands of the <category>.
@@ -1214,16 +1571,33 @@ command line arguments.
If the argument "all" was provided, curl will display all options available.
If the argument "category" was provided, curl will display all categories and
their meanings.
+
+Example:
+.nf
+ curl --help all
+.fi
.IP "\-\-hostpubmd5 <md5>"
(SFTP SCP) Pass a string containing 32 hexadecimal digits. The string should
-be the 128 bit MD5 checksum of the remote host's public key, curl will refuse
+be the 128 bit MD5 checksum of the remote host\(aqs public key, curl will refuse
the connection with the host unless the md5sums match.
-Added in 7.17.1.
-.IP "\-\-hsts <file name>"
-(HTTPS) WARNING: this option is experimental. Do not use in production.
+Example:
+.nf
+ curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
+.fi
+.IP "\-\-hostpubsha256 <sha256>"
+(SFTP SCP) Pass a string containing a Base64-encoded SHA256 hash of the remote
+host\(aqs public key. Curl will refuse the connection with the host
+unless the hashes match.
+
+Example:
+.nf
+ curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
+.fi
-This option enables HSTS for the transfer. If the file name points to an
+Added in 7.80.0.
+.IP "\-\-hsts <file name>"
+(HTTPS) This option enables HSTS for the transfer. If the file name points to an
existing HSTS 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.
@@ -1233,6 +1607,11 @@ just handle HSTS 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.
+Example:
+.nf
+ curl --hsts cache.txt https://example.com
+.fi
+
Added in 7.74.0.
.IP "\-\-http0.9"
(HTTP) Tells curl to be fine with HTTP version 0.9 response.
@@ -1242,14 +1621,31 @@ connect with this to non-HTTP servers and still get a response since curl will
simply transparently downgrade \- if allowed.
Since curl 7.66.0, HTTP/0.9 is disabled by default.
+
+Example:
+.nf
+ curl --http0.9 https://example.com
+.fi
+
+Added in 7.64.0.
.IP "\-0, \-\-http1.0"
(HTTP) Tells curl to use HTTP version 1.0 instead of using its internally preferred
HTTP version.
+Example:
+.nf
+ curl --http1.0 https://example.com
+.fi
+
This option overrides \fI--http1.1\fP and \fI--http2\fP.
.IP "\-\-http1.1"
(HTTP) Tells curl to use HTTP version 1.1.
+Example:
+.nf
+ curl --http1.1 https://example.com
+.fi
+
This option overrides \fI-0, --http1.0\fP and \fI--http2\fP. Added in 7.33.0.
.IP "\-\-http2-prior-knowledge"
(HTTP) Tells curl to issue its non-TLS HTTP requests using HTTP/2 without HTTP/1.1
@@ -1257,14 +1653,29 @@ Upgrade. It requires prior knowledge that the server supports HTTP/2 straight
away. HTTPS requests will still do HTTP/2 the standard way with negotiated
protocol version in the TLS handshake.
+Example:
+.nf
+ curl --http2-prior-knowledge https://example.com
+.fi
+
\fI--http2-prior-knowledge\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP. Added in 7.49.0.
.IP "\-\-http2"
(HTTP) Tells curl to use HTTP version 2.
+For HTTPS, this means curl will attempt to negotiate HTTP/2 in the TLS
+handshake. curl does this by default.
+
+For HTTP, this means curl will attempt to upgrade the request to HTTP/2 using
+the Upgrade: request header.
+
+Example:
+.nf
+ curl --http2 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http3\fP. \fI--http2\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2-prior-knowledge\fP. Added in 7.33.0.
.IP "\-\-http3"
-(HTTP)
-WARNING: this option is experimental. Do not use in production.
+(HTTP) \fBWARNING\fP: this option is experimental. Do not use in production.
Tells curl to use HTTP version 3 directly to the host and port number used in
the URL. A normal HTTP/3 transaction will be done to a host and then get
@@ -1274,6 +1685,11 @@ you know that the target speaks HTTP/3 on the given host and port.
This option will make curl fail if a QUIC connection cannot be established, it
cannot fall back to a lower HTTP version on its own.
+Example:
+.nf
+ curl --http3 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http2\fP. \fI--http3\fP requires that the underlying libcurl was built to support HTTP/3. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP and \fI--http2-prior-knowledge\fP. Added in 7.66.0.
.IP "\-\-ignore-content-length"
(FTP HTTP) For HTTP, Ignore the Content-Length header. This is particularly useful for
@@ -1283,7 +1699,12 @@ files larger than 2 gigabytes.
For FTP (since 7.46.0), skip the RETR command to figure out the size before
downloading a file.
-This option doesn't work if libcurl was built to use hyper for HTTP.
+This option does not work for HTTP if libcurl was built to use hyper.
+
+Example:
+.nf
+ curl --ignore-content-length https://example.com
+.fi
.IP "\-i, \-\-include"
Include the HTTP response headers in the output. The HTTP response headers can
include things like server name, cookies, date of the document, HTTP version
@@ -1291,22 +1712,32 @@ and more...
To view the request headers, consider the \fI\-v, \-\-verbose\fP option.
+Example:
+.nf
+ curl -i https://example.com
+.fi
+
See also \fI-v, --verbose\fP.
.IP "\-k, \-\-insecure"
-(TLS)
-By default, every SSL connection curl makes is verified to be secure. This
+(TLS) By default, every SSL connection curl makes is verified to be secure. This
option allows curl to proceed and operate even for server connections
otherwise considered insecure.
-The server connection is verified by making sure the server's certificate
+The server connection is verified by making sure the server\(aqs certificate
contains the right name and verifies successfully using the cert store.
See this online resource for further details:
https://curl.se/docs/sslcerts.html
+\fBWARNING\fP: this makes the transfer insecure.
+
+Example:
+.nf
+ curl --insecure https://example.com
+.fi
+
See also \fI--proxy-insecure\fP and \fI--cacert\fP.
.IP "\-\-interface <name>"
-
Perform an operation using a specified interface. You can enter interface
name, IP address or host name. An example could look like:
@@ -1318,22 +1749,42 @@ On Linux it can be used to specify a VRF, but the binary needs to either
have CAP_NET_RAW or to be run as root. More information about Linux VRF:
https://www.kernel.org/doc/Documentation/networking/vrf.txt
+Example:
+.nf
+ curl --interface eth0 https://example.com
+.fi
+
See also \fI--dns-interface\fP.
.IP "\-4, \-\-ipv4"
This option tells curl to resolve names to IPv4 addresses only, and not for
example try IPv6.
+Example:
+.nf
+ curl --ipv4 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http2\fP. This option overrides \fI-6, --ipv6\fP.
.IP "\-6, \-\-ipv6"
This option tells curl to resolve names to IPv6 addresses only, and not for
example try IPv4.
+Example:
+.nf
+ curl --ipv6 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http2\fP. This option overrides \fI-4, --ipv4\fP.
.IP "\-j, \-\-junk-session-cookies"
(HTTP) When curl is told to read cookies from a given file, this option will make it
discard all "session cookies". This will basically have the same effect as if
a new session is started. Typical browsers always discard session cookies when
-they're closed down.
+they are closed down.
+
+Example:
+.nf
+ curl --junk-session-cookies -b cookies.txt https://example.com
+.fi
See also \fI-b, --cookie\fP and \fI-c, --cookie-jar\fP.
.IP "\-\-keepalive-time <seconds>"
@@ -1346,16 +1797,24 @@ option has no effect if \fI\-\-no-keepalive\fP is used.
If this option is used several times, the last one will be used. If
unspecified, the option defaults to 60 seconds.
-Added in 7.18.0.
+Example:
+.nf
+ curl --keepalive-time 20 https://example.com
+.fi
.IP "\-\-key-type <type>"
(TLS) Private key file type. Specify which type your \fI\-\-key\fP provided private key
is. DER, PEM, and ENG are supported. If not specified, PEM is assumed.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --key-type DER --key here https://example.com
+.fi
.IP "\-\-key <key>"
(TLS SSH) Private key file name. Allows you to provide your private key in this separate
file. For SSH, if not specified, curl tries the following candidates in order:
-\&'~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'.
+\&\(aq~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'.
If curl is built against OpenSSL library, and the engine pkcs11 is available,
then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in a
@@ -1365,43 +1824,70 @@ as "pkcs11" if none was provided and the \fI\-\-key-type\fP option will be set a
"ENG" if none was provided.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --cert certificate --key here https://example.com
+.fi
.IP "\-\-krb <level>"
(FTP) Enable Kerberos authentication and use. The level must be entered and should
-be one of 'clear', 'safe', 'confidential', or 'private'. Should you use a
-level that is not one of these, 'private' will instead be used.
+be one of \(aqclear', 'safe', 'confidential', or 'private'. Should you use a
+level that is not one of these, \(aqprivate' will instead be used.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --krb clear ftp://example.com/
+.fi
+
\fI--krb\fP requires that the underlying libcurl was built to support Kerberos.
.IP "\-\-libcurl <file>"
Append this option to any ordinary curl command line, and you will get
libcurl-using C source code written to the file that does the equivalent
of what your command-line operation does!
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
If this option is used several times, the last given file name will be
used.
-Added in 7.16.1.
+Example:
+.nf
+ curl --libcurl client.c https://example.com
+.fi
.IP "\-\-limit-rate <speed>"
Specify the maximum transfer rate you want curl to use \- for both downloads
-and uploads. This feature is useful if you have a limited pipe and you'd like
+and uploads. This feature is useful if you have a limited pipe and you would like
your transfer not to use your entire bandwidth. To make it slower than it
otherwise would be.
The given speed is measured in bytes/second, unless a suffix is appended.
-Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it
-megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
+Appending \(aqk' or 'K' will count the number as kilobytes, 'm' or 'M' makes it
+megabytes, while \(aqg' or 'G' makes it gigabytes. The suffixes (k, M, G, T, P)
+are 1024 based. For example 1k is 1024. Examples: 200K, 3m and 1G.
+
+The rate limiting logic works on averaging the transfer speed to no more than
+the set threshold over a period of multiple seconds.
If you also use the \fI\-Y, \-\-speed-limit\fP option, that option will take precedence and
might cripple the rate-limiting slightly, to help keeping the speed-limit
logic working.
If this option is used several times, the last one will be used.
+
+Examples:
+.nf
+ curl --limit-rate 100K https://example.com
+ curl --limit-rate 1000 https://example.com
+ curl --limit-rate 10M https://example.com
+.fi
.IP "\-l, \-\-list-only"
(FTP POP3) (FTP)
When listing an FTP directory, this switch forces a name-only view. This is
especially useful if the user wants to machine-parse the contents of an FTP
-directory since the normal directory view doesn't use a standard look or
+directory since the normal directory view does not use a standard look or
format. When used like this, the option causes an NLST command to be sent to
the server instead of LIST.
@@ -1414,22 +1900,33 @@ to be performed instead of RETR. This is particularly useful if the user wants
to see if a specific message-id exists on the server and what size it is.
Note: When combined with \fI\-X, \-\-request\fP, this option can be used to send a UIDL
-command instead, so the user may use the email's unique identifier rather than
+command instead, so the user may use the email\(aqs unique identifier rather than
its message-id to make the request.
-Added in 4.0.
+Example:
+.nf
+ curl --list-only ftp://example.com/dir/
+.fi
.IP "\-\-local-port <num/range>"
Set a preferred single number or range (FROM-TO) of local port numbers to use
for the connection(s). Note that port numbers by nature are a scarce resource
that will be busy at times so setting this range to something too narrow might
cause unnecessary connection setup failures.
-Added in 7.15.2.
+Example:
+.nf
+ curl --local-port 1000-3000 https://example.com
+.fi
.IP "\-\-location-trusted"
(HTTP) Like \fI\-L, \-\-location\fP, but will allow sending the name + password to all hosts that
the site may redirect to. This may or may not introduce a security breach if
-the site redirects you to a site to which you'll send your authentication info
-(which is plaintext in the case of HTTP Basic authentication).
+the site redirects you to a site to which you will send your authentication
+info (which is plaintext in the case of HTTP Basic authentication).
+
+Example:
+.nf
+ curl --location-trusted -u user:password https://example.com
+.fi
See also \fI-u, --user\fP.
.IP "\-L, \-\-location"
@@ -1438,12 +1935,12 @@ location (indicated with a Location: header and a 3XX response code), this
option will make curl redo the request on the new place. If used together with
\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
+host. If a redirect takes curl to a different host, it will not 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
+When curl follows a redirect and if the request is a POST, it will send 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.
@@ -1453,6 +1950,11 @@ using the dedicated options for that: \fI\-\-post301\fP, \fI\-\-post302\fP and \
The method set with \fI\-X, \-\-request\fP overrides the method curl would otherwise select
to use.
+
+Example:
+.nf
+ curl -L https://example.com
+.fi
.IP "\-\-login-options <options>"
(IMAP POP3 SMTP) Specify the login options to use during server authentication.
@@ -1463,17 +1965,32 @@ login options. For more information about login options please see RFC
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --login-options 'AUTH=*' imap://example.com
+.fi
+
Added in 7.34.0.
.IP "\-\-mail-auth <address>"
(SMTP) Specify a single address. This will be used to specify the authentication
address (identity) of a submitted message that is being relayed to another
server.
-See also \fI--mail-rcpt\fP and \fI--mail-from\fP. Added in 7.25.0.
+Example:
+.nf
+ curl --mail-auth user@example.come -T mail smtp://example.com/
+.fi
+
+See also \fI--mail-rcpt\fP and \fI--mail-from\fP.
.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.
+Example:
+.nf
+ curl --mail-from user@example.com -T mail smtp://example.com/
+.fi
+
+See also \fI--mail-rcpt\fP and \fI--mail-auth\fP.
.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
@@ -1483,16 +2000,20 @@ 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.
+If all recipients trigger RCPT TO failures and this flag is specified, curl
+will still abort the SMTP conversation and return the error received from to
+the last RCPT TO command.
+
+Example:
+.nf
+ curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
+.fi
+
Added in 7.69.0.
.IP "\-\-mail-rcpt <address>"
-(SMTP) Specify a single address, user name or mailing list name. Repeat this
+(SMTP) Specify a single e-mail 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.
-
When performing an address verification (VRFY command), the recipient should be
specified as the user name or user name and domain (as per Section 3.5 of
RFC5321). (Added in 7.34.0)
@@ -1501,21 +2022,33 @@ When performing a mailing list expand (EXPN command), the recipient should be
specified using the mailing list name, such as "Friends" or "London-Office".
(Added in 7.34.0)
-Added in 7.20.0.
+Example:
+.nf
+ curl --mail-rcpt user@example.net smtp://example.com
+.fi
.IP "\-M, \-\-manual"
Manual. Display the huge help text.
+
+Example:
+.nf
+ curl --manual
+.fi
.IP "\-\-max-filesize <bytes>"
-Specify the maximum size (in bytes) of a file to download. If the file
+(FTP HTTP MQTT) Specify the maximum size (in bytes) of a file to download. If the file
requested is larger than this value, the transfer will not start and curl will
return with exit code 63.
-A size modifier may be used. For example, Appending 'k' or 'K' will count the
-number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it
+A size modifier may be used. For example, Appending \(aqk' or 'K' will count the
+number as kilobytes, \(aqm' or 'M' makes it megabytes, while 'g' or 'G' makes it
gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0)
-\fBNOTE\fP: For protocols where the size is not known in advance (including FTP
-and HTTP) this option has no effect even if the file transfer ends up being
-larger than the given limit.
+\fBNOTE\fP: The file size is not always known prior to download, and for such
+files this option has no effect even if the file transfer ends up being larger
+than this given limit.
+Example:
+.nf
+ curl --max-filesize 100K https://example.com
+.fi
See also \fI--limit-rate\fP.
.IP "\-\-max-redirs <num>"
@@ -1524,7 +2057,12 @@ prevent curl from following too many redirects, by default, the limit is
set to 50 redirects. Set this option to \-1 to make it unlimited.
If this option is used several times, the last one will be used.
-.IP "\-m, \-\-max-time <seconds>"
+
+Example:
+.nf
+ curl --max-redirs 3 --location https://example.com
+.fi
+.IP "\-m, \-\-max-time <fractional seconds>"
Maximum time in seconds that you allow the whole operation to take. This is
useful for preventing your batch jobs from hanging for hours due to slow
networks or links going down. Since 7.32.0, this option accepts decimal
@@ -1533,12 +2071,21 @@ timeout increases in decimal precision.
If this option is used several times, the last one will be used.
+Examples:
+.nf
+ curl --max-time 10 https://example.com
+ curl --max-time 2.92 https://example.com
+.fi
+
See also \fI--connect-timeout\fP.
.IP "\-\-metalink"
This option was previously used to specify a metalink resource. Metalink
support has been disabled in curl since 7.78.0 for security reasons.
-Added in 7.27.0.
+Example:
+.nf
+ curl --metalink file https://example.com
+.fi
.IP "\-\-negotiate"
(HTTP) Enables Negotiate (SPNEGO) authentication.
@@ -1546,11 +2093,16 @@ This option requires a library built with GSS-API or SSPI support. Use
\fI\-V, \-\-version\fP to see if your curl supports GSS-API/SSPI or SPNEGO.
When using this option, you must also provide a fake \fI\-u, \-\-user\fP option to activate
-the authentication code properly. Sending a '-u :' is enough as the user name
-and password from the \fI\-u, \-\-user\fP option aren't actually used.
+the authentication code properly. Sending a \(aq-u :' is enough as the user name
+and password from the \fI\-u, \-\-user\fP option are not actually used.
If this option is used several times, only the first one is used.
+Example:
+.nf
+ curl --negotiate -u : https://example.com
+.fi
+
See also \fI--basic\fP, \fI--ntlm\fP, \fI--anyauth\fP and \fI--proxy-negotiate\fP.
.IP "\-\-netrc-file <filename>"
This option is similar to \fI\-n, \-\-netrc\fP, except that you provide the path (absolute
@@ -1560,26 +2112,41 @@ the last one will be used.
It will abide by \fI\-\-netrc-optional\fP if specified.
-This option overrides \fI-n, --netrc\fP. Added in 7.21.5.
+Example:
+.nf
+ curl --netrc-file netrc https://example.com
+.fi
+
+This option overrides \fI-n, --netrc\fP.
.IP "\-\-netrc-optional"
-Very similar to \fI\-n, \-\-netrc\fP, but this option makes the .netrc usage \fBoptional\fP
+Similar to \fI\-n, \-\-netrc\fP, but this option makes the .netrc usage \fBoptional\fP
and not mandatory as the \fI\-n, \-\-netrc\fP option does.
+Example:
+.nf
+ curl --netrc-optional https://example.com
+.fi
+
See also \fI--netrc-file\fP. This option overrides \fI-n, --netrc\fP.
.IP "\-n, \-\-netrc"
-Makes curl scan the \fI.netrc\fP (\fI_netrc\fP on Windows) file in the user's home
+Makes curl scan the \fI.netrc\fP (\fI_netrc\fP on Windows) file in the user\(aqs home
directory for login name and password. This is typically used for FTP on
Unix. If used with HTTP, curl will enable user authentication. See
\fInetrc(5)\fP and \fIftp(1)\fP for details on the file format. Curl will not
-complain if that file doesn't have the right permissions (it should be
+complain if that file does not have the right permissions (it should be
neither world- nor group-readable). The environment variable "HOME" is used
to find the home directory.
-A quick and very simple example of how to setup a \fI.netrc\fP to allow curl
-to FTP to the machine host.domain.com with user name \&'myself' and password
-\&'secret' should look similar to:
+A quick and simple example of how to setup a \fI.netrc\fP to allow curl to FTP to
+the machine host.domain.com with user name \&\(aqmyself' and password \&'secret'
+should look similar to:
.B "machine host.domain.com login myself password secret"
+
+Example:
+.nf
+ curl --netrc https://example.com
+.fi
.IP "\-:, \-\-next"
Tells curl to use a separate operation for the following URL and associated
options. This allows you to send several URL requests, each with their own
@@ -1592,7 +2159,15 @@ options include \fI\-v, \-\-verbose\fP, \fI\-\-trace\fP, \fI\-\-trace-ascii\fP a
For example, you can do both a GET and a POST in a single command line:
+.nf
curl www1.example.com \-\-next \-d postthis www2.example.com
+.fi
+
+Examples:
+.nf
+ curl https://example.com --next -d postthis www2.example.com
+ curl -I https://example.com --next https://example.net/
+.fi
Added in 7.36.0.
.IP "\-\-no-alpn"
@@ -1600,6 +2175,11 @@ Added in 7.36.0.
with an SSL library that supports ALPN. ALPN is used by a libcurl that supports
HTTP/2 to negotiate HTTP/2 support with the server during https sessions.
+Example:
+.nf
+ curl --no-alpn https://example.com
+.fi
+
See also \fI--no-npn\fP and \fI--http2\fP. \fI--no-alpn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0.
.IP "\-N, \-\-no-buffer"
Disables the buffering of the output stream. In normal work situations, curl
@@ -1609,17 +2189,32 @@ Using this option will disable that buffering.
Note that this is the negated option name documented. You can thus use
\-\-buffer to enforce the buffering.
+
+Example:
+.nf
+ curl --no-buffer https://example.com
+.fi
.IP "\-\-no-keepalive"
Disables the use of keepalive messages on the TCP connection. curl otherwise
enables them by default.
Note that this is the negated option name documented. You can thus use
\-\-keepalive to enforce keepalive.
+
+Example:
+.nf
+ curl --no-keepalive https://example.com
+.fi
.IP "\-\-no-npn"
(HTTPS) Disable the NPN TLS extension. NPN is enabled by default if libcurl was built
with an SSL library that supports NPN. NPN is used by a libcurl that supports
HTTP/2 to negotiate HTTP/2 support with the server during https sessions.
+Example:
+.nf
+ curl --no-npn https://example.com
+.fi
+
See also \fI--no-alpn\fP and \fI--http2\fP. \fI--no-npn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0.
.IP "\-\-no-progress-meter"
Option to switch off the progress meter output without muting or otherwise
@@ -1628,9 +2223,14 @@ affecting warning and informational messages like \fI\-s, \-\-silent\fP does.
Note that this is the negated option name documented. You can thus use
\-\-progress-meter to enable the progress meter again.
+Example:
+.nf
+ curl --no-progress-meter -o store https://example.com
+.fi
+
See also \fI-v, --verbose\fP and \fI-s, --silent\fP. Added in 7.67.0.
.IP "\-\-no-sessionid"
-(TLS) Disable curl's use of SSL session-ID caching. By default all transfers are
+(TLS) Disable curl\(aqs use of SSL session-ID caching. By default all transfers are
done using the cache. Note that while nothing should ever get hurt by
attempting to reuse SSL session-IDs, there seem to be broken SSL
implementations in the wild that may require you to disable this in order for
@@ -1639,7 +2239,10 @@ you to succeed.
Note that this is the negated option name documented. You can thus use
\-\-sessionid to enforce session-ID caching.
-Added in 7.16.0.
+Example:
+.nf
+ curl --no-sessionid https://example.com
+.fi
.IP "\-\-noproxy <no-proxy-list>"
Comma-separated list of hosts for which not to use a proxy, if one is
specified. The only wildcard is a single * character, which matches all hosts,
@@ -1649,14 +2252,22 @@ example, local.com would match local.com, local.com:80, and www.local.com, but
not www.notlocal.com.
Since 7.53.0, This option overrides the environment variables that disable the
-proxy ('no_proxy' and 'NO_PROXY'). If there's an environment variable
+proxy (\(aqno_proxy' and 'NO_PROXY'). If there's an environment variable
disabling a proxy, you can set the noproxy list to \&"" to override it.
-Added in 7.19.4.
+Example:
+.nf
+ curl --noproxy "www.example" https://example.com
+.fi
.IP "\-\-ntlm-wb"
(HTTP) Enables NTLM much in the style \fI\-\-ntlm\fP does, but hand over the authentication
to the separate binary ntlmauth application that is executed when needed.
+Example:
+.nf
+ curl --ntlm-wb -u user:password https://example.com
+.fi
+
See also \fI--ntlm\fP and \fI--proxy-ntlm\fP.
.IP "\-\-ntlm"
(HTTP) Enables NTLM authentication. The NTLM authentication method was designed by
@@ -1671,6 +2282,11 @@ If you want to enable NTLM for your proxy authentication, then use
If this option is used several times, only the first one is used.
+Example:
+.nf
+ curl --ntlm -u user:password https://example.com
+.fi
+
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
@@ -1680,6 +2296,13 @@ 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.
+
+Example:
+.nf
+ curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com
+.fi
+
+Added in 7.33.0.
.IP "\-\-output-dir <dir>"
This option specifies the directory in which files should be stored, when
@@ -1688,16 +2311,21 @@ This option specifies the directory in which files should be stored, when
The given output directory is used for all URLs and output options on the
command line, up until the first \fI\-:, \-\-next\fP.
-If the specified target directory doesn't exist, the operation will fail
+If the specified target directory does not exist, the operation will fail
unless \fI\-\-create-dirs\fP is also used.
If this option is used multiple times, the last specified directory will be
used.
+Example:
+.nf
+ curl --output-dir "tmp" -O https://example.com
+.fi
+
See also \fI-O, --remote-name\fP and \fI-J, --remote-header-name\fP. Added in 7.73.0.
.IP "\-o, \-\-output <file>"
Write output to <file> instead of stdout. If you are using {} or [] to fetch
-multiple documents, you should quote the URL and you can use '#' followed by a
+multiple documents, you should quote the URL and you can use \(aq#' followed by a
number in the <file> specifier. That variable will be replaced with the current
string for the URL being fetched. Like in:
@@ -1713,16 +2341,32 @@ this:
curl \-o aa example.com \-o bb example.net
-and the order of the \-o options and the URLs doesn't matter, just that the
+and the order of the \-o options and the URLs does not matter, just that the
first \-o is for the first URL and so on, so the above command line can also be
written as
curl example.com example.net \-o aa \-o bb
See also the \fI\-\-create-dirs\fP option to create the local directories
-dynamically. Specifying the output as '-' (a single dash) will force the
+dynamically. Specifying the output as \(aq-' (a single dash) will force the
output to be done to stdout.
+To suppress response bodies, you can redirect output to /dev/null:
+
+ curl example.com \-o /dev/null
+
+Or for Windows use nul:
+
+ curl example.com \-o nul
+
+Examples:
+.nf
+ curl -o file https://example.com
+ curl "http://{one,two}.example.com" -o "file_#1.txt"
+ curl "http://{site,host}.host[1-5].com" -o "#1_#2"
+ curl -o file https://example.com -o file2 https://example.net
+.fi
+
See also \fI-O, --remote-name\fP, \fI--remote-name-all\fP and \fI-J, --remote-header-name\fP.
.IP "\-\-parallel-immediate"
When doing parallel transfers, this option will instruct curl that it should
@@ -1730,34 +2374,68 @@ rather prefer opening up more connections in parallel at once rather than
waiting to see if new transfers can be added as multiplexed streams on another
connection.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
+Example:
+.nf
+ curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2
+.fi
+
See also \fI-Z, --parallel\fP and \fI--parallel-max\fP. Added in 7.68.0.
.IP "\-\-parallel-max <num>"
When asked to do parallel transfers, using \fI\-Z, \-\-parallel\fP, this option controls
the maximum amount of transfers to do simultaneously.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
The default is 50.
+Example:
+.nf
+ curl --parallel-max 100 -Z https://example.com ftp://example.com/
+.fi
+
See also \fI-Z, --parallel\fP. Added in 7.66.0.
.IP "\-Z, \-\-parallel"
Makes curl perform its transfers in parallel as compared to the regular serial
manner.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
+Example:
+.nf
+ curl --parallel https://example.com -o file1 https://example.com -o file2
+.fi
+
Added in 7.66.0.
.IP "\-\-pass <phrase>"
(SSH TLS) Passphrase for the private key.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --pass secret --key file https://example.com
+.fi
.IP "\-\-path-as-is"
Tell curl to not handle sequences of /../ or /./ in the given URL
path. Normally curl will squash or merge them according to standards but with
this option set you tell it not to do that.
+Example:
+.nf
+ curl --path-as-is https://example.com/../../etc/passwd
+.fi
+
Added in 7.42.0.
.IP "\-\-pinnedpubkey <hashes>"
(TLS) Tells curl to use the specified public key file (or hashes) to verify the
peer. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
-\'sha256//\' and separated by \';\'
+\(aqsha256//' and separated by ';'.
When negotiating a TLS or SSL connection, the server sends a certificate
indicating its identity. A public key is extracted from this certificate and
@@ -1781,6 +2459,14 @@ sha256 support:
Other SSL backends not supported.
If this option is used several times, the last one will be used.
+
+Examples:
+.nf
+ curl --pinnedpubkey keyfile https://example.com
+ curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
+.fi
+
+Added in 7.39.0.
.IP "\-\-post301"
(HTTP) Tells curl to respect RFC 7231/6.4.2 and not convert POST requests into GET
requests when following a 301 redirection. The non-RFC behavior is ubiquitous
@@ -1788,7 +2474,12 @@ in web browsers, so curl does the conversion by default to maintain
consistency. However, a server may require a POST to remain a POST after such
a redirection. This option is meaningful only when using \fI\-L, \-\-location\fP.
-See also \fI--post302\fP, \fI--post303\fP and \fI-L, --location\fP. Added in 7.17.1.
+Example:
+.nf
+ curl --post301 --location -d "data" https://example.com
+.fi
+
+See also \fI--post302\fP, \fI--post303\fP and \fI-L, --location\fP.
.IP "\-\-post302"
(HTTP) Tells curl to respect RFC 7231/6.4.3 and not convert POST requests into GET
requests when following a 302 redirection. The non-RFC behavior is ubiquitous
@@ -1796,14 +2487,24 @@ in web browsers, so curl does the conversion by default to maintain
consistency. However, a server may require a POST to remain a POST after such
a redirection. This option is meaningful only when using \fI\-L, \-\-location\fP.
-See also \fI--post301\fP, \fI--post303\fP and \fI-L, --location\fP. Added in 7.19.1.
+Example:
+.nf
+ curl --post302 --location -d "data" https://example.com
+.fi
+
+See also \fI--post301\fP, \fI--post303\fP and \fI-L, --location\fP.
.IP "\-\-post303"
(HTTP) Tells curl to violate RFC 7231/6.4.4 and not convert POST requests into GET
requests when following 303 redirections. A server may require a POST to
remain a POST after a 303 redirection. This option is meaningful only when
using \fI\-L, \-\-location\fP.
-See also \fI--post302\fP, \fI--post301\fP and \fI-L, --location\fP. Added in 7.26.0.
+Example:
+.nf
+ curl --post303 --location -d "data" https://example.com
+.fi
+
+See also \fI--post302\fP, \fI--post301\fP and \fI-L, --location\fP.
.IP "\-\-preproxy [protocol://]host[:port]"
Use the specified SOCKS proxy before connecting to an HTTP or HTTPS \fI\-x, \-\-proxy\fP. In
such a case curl first connects to the SOCKS proxy and then connects (through
@@ -1823,30 +2524,44 @@ or pass in a colon with %3a.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --preproxy socks5://proxy.example -x http://http.example https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-#, \-\-progress-bar"
Make curl display transfer progress as a simple progress bar instead of the
standard, more informational, meter.
-This progress bar draws a single line of '#' characters across the screen and
+This progress bar draws a single line of \(aq#' characters across the screen and
shows a percentage if the transfer size is known. For transfers without a
known size, there will be space ship (-=o=-) that moves back and forth but
only while data is being transferred, with a set of flying hash sign symbols on
top.
-.IP "\-\-proto-default <protocol>"
-Tells curl to use \fIprotocol\fP for any URL missing a scheme name.
-Example:
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
- curl \-\-proto-default https ftp.mozilla.org
+Example:
+.nf
+ curl -# -O https://example.com
+.fi
+.IP "\-\-proto-default <protocol>"
+Tells curl to use \fIprotocol\fP for any URL missing a scheme name.
An unknown or unsupported protocol causes error
\fICURLE_UNSUPPORTED_PROTOCOL\fP (1).
This option does not change the default proxy protocol (http).
-Without this option curl would make a guess based on the host, see \fI\-\-url\fP for
-details.
+Without this option set, curl guesses protocol based on the host name, see
+\fI\-\-url\fP for details.
+
+Example:
+.nf
+ curl --proto-default https ftp.example.com
+.fi
Added in 7.45.0.
.IP "\-\-proto-redir <protocols>"
@@ -1858,17 +2573,18 @@ Example, allow only HTTP and HTTPS on redirect:
curl \-\-proto-redir \-all,http,https http://example.com
-By default curl will allow HTTP, HTTPS, FTP and FTPS on redirect (7.65.2).
-Older versions of curl allowed all protocols on redirect except several
-disabled for security reasons: Since 7.19.4 FILE and SCP are disabled, and
-since 7.40.0 SMB and SMBS are also disabled. Specifying \fIall\fP or \fI+all\fP
-enables all protocols on redirect, including those disabled for security.
+By default curl will only allow HTTP, HTTPS, FTP and FTPS on redirect (since
+7.65.2). Specifying \fIall\fP or \fI+all\fP enables all protocols on redirects, which
+is not good for security.
-Added in 7.20.2.
+Example:
+.nf
+ curl --proto-redir =http,https https://example.com
+.fi
.IP "\-\-proto <protocols>"
Tells curl to limit what protocols it may use for transfers. Protocols are
evaluated left to right, are comma separated, and are each a protocol name or
-\&'all', optionally prefixed by zero or more modifiers. Available modifiers are:
+\&\(aqall', optionally prefixed by zero or more modifiers. Available modifiers are:
.RS
.TP 3
.B +
@@ -1904,46 +2620,96 @@ support for that protocol being built into curl to avoid an error.
This option can be used multiple times, in which case the effect is the same
as concatenating the protocols into one instance of the option.
-See also \fI--proto-redir\fP and \fI--proto-default\fP. Added in 7.20.2.
+Example:
+.nf
+ curl --proto =http,https,sftp https://example.com
+.fi
+
+See also \fI--proto-redir\fP and \fI--proto-default\fP.
.IP "\-\-proxy-anyauth"
Tells curl to pick a suitable authentication method when communicating with
the given HTTP proxy. This might cause an extra request/response round-trip.
-See also \fI-x, --proxy\fP, \fI--proxy-basic\fP and \fI--proxy-digest\fP. Added in 7.13.2.
+Example:
+.nf
+ curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com
+.fi
+
+See also \fI-x, --proxy\fP, \fI--proxy-basic\fP and \fI--proxy-digest\fP.
.IP "\-\-proxy-basic"
Tells curl to use HTTP Basic authentication when communicating with the given
proxy. Use \fI\-\-basic\fP for enabling HTTP Basic with a remote host. Basic is the
default authentication method curl uses with proxies.
+Example:
+.nf
+ curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com
+.fi
+
See also \fI-x, --proxy\fP, \fI--proxy-anyauth\fP and \fI--proxy-digest\fP.
.IP "\-\-proxy-cacert <file>"
Same as \fI\-\-cacert\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-cacert CA-file.txt -x https://proxy https://example.com
+.fi
+
See also \fI--proxy-capath\fP, \fI--cacert\fP, \fI--capath\fP and \fI-x, --proxy\fP. Added in 7.52.0.
.IP "\-\-proxy-capath <dir>"
Same as \fI\-\-capath\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-capath /local/directory -x https://proxy https://example.com
+.fi
+
See also \fI--proxy-cacert\fP, \fI-x, --proxy\fP and \fI--capath\fP. Added in 7.52.0.
.IP "\-\-proxy-cert-type <type>"
Same as \fI\-\-cert-type\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-cert <cert[:passwd]>"
Same as \fI\-E, \-\-cert\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-cert file -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-ciphers <list>"
Same as \fI\-\-ciphers\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-crlfile <file>"
Same as \fI\-\-crlfile\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-crlfile rejects.txt -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-digest"
Tells curl to use HTTP Digest authentication when communicating with the given
proxy. Use \fI\-\-digest\fP for enabling HTTP Digest with a remote host.
+Example:
+.nf
+ curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com
+.fi
+
See also \fI-x, --proxy\fP, \fI--proxy-anyauth\fP and \fI--proxy-basic\fP.
.IP "\-\-proxy-header <header/@file>"
(HTTP) Extra header to include in the request when sending HTTP to a proxy. You may
@@ -1965,37 +2731,76 @@ read the header file from stdin.
This option can be used multiple times to add/replace/remove multiple headers.
+Examples:
+.nf
+ curl --proxy-header "X-First-Name: Joe" -x http://proxy https://example.com
+ curl --proxy-header "User-Agent: surprise" -x http://proxy https://example.com
+ curl --proxy-header "Host:" -x http://proxy https://example.com
+.fi
+
Added in 7.37.0.
.IP "\-\-proxy-insecure"
Same as \fI\-k, \-\-insecure\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-insecure -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-key-type <type>"
Same as \fI\-\-key-type\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-key <key>"
Same as \fI\-\-key\fP but used in HTTPS proxy context.
+
+Example:
+.nf
+ curl --proxy-key here -x https://proxy https://example.com
+.fi
+
+Added in 7.52.0.
.IP "\-\-proxy-negotiate"
Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating
with the given proxy. Use \fI\-\-negotiate\fP for enabling HTTP Negotiate (SPNEGO)
with a remote host.
-See also \fI--proxy-anyauth\fP and \fI--proxy-basic\fP. Added in 7.17.1.
+Example:
+.nf
+ curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com
+.fi
+
+See also \fI--proxy-anyauth\fP and \fI--proxy-basic\fP.
.IP "\-\-proxy-ntlm"
Tells curl to use HTTP NTLM authentication when communicating with the given
proxy. Use \fI\-\-ntlm\fP for enabling NTLM with a remote host.
+Example:
+.nf
+ curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com
+.fi
+
See also \fI--proxy-negotiate\fP and \fI--proxy-anyauth\fP.
.IP "\-\-proxy-pass <phrase>"
Same as \fI\-\-pass\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-pinnedpubkey <hashes>"
(TLS) Tells curl to use the specified public key file (or hashes) to verify the
proxy. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
-\'sha256//\' and separated by \';\'
+\(aqsha256//' and separated by ';'.
When negotiating a TLS or SSL connection, the server sends a certificate
indicating its identity. A public key is extracted from this certificate and
@@ -2003,17 +2808,40 @@ if it does not exactly match the public key provided to this option, curl will
abort the connection before sending or receiving any data.
If this option is used several times, the last one will be used.
+
+Examples:
+.nf
+ curl --proxy-pinnedpubkey keyfile https://example.com
+ curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
+.fi
+
+Added in 7.59.0.
.IP "\-\-proxy-service-name <name>"
This option allows you to change the service name for proxy negotiation.
+Example:
+.nf
+ curl --proxy-service-name "shrubbery" -x proxy https://example.com
+.fi
+
Added in 7.43.0.
.IP "\-\-proxy-ssl-allow-beast"
Same as \fI\-\-ssl-allow-beast\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-ssl-allow-beast -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-ssl-auto-client-cert"
Same as \fI\-\-ssl-auto-client-cert\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com
+.fi
+
Added in 7.77.0.
.IP "\-\-proxy-tls13-ciphers <ciphersuite list>"
(TLS) Specifies which cipher suites to use in the connection to your HTTPS proxy
@@ -2027,21 +2855,48 @@ later. If you are using a different SSL backend you can try setting TLS 1.3
cipher suites by using the \fI\-\-proxy-ciphers\fP option.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com
+.fi
+
+Added in 7.61.0.
.IP "\-\-proxy-tlsauthtype <type>"
Same as \fI\-\-tlsauthtype\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-tlsauthtype SRP -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-tlspassword <string>"
Same as \fI\-\-tlspassword\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-tlspassword passwd -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-tlsuser <name>"
Same as \fI\-\-tlsuser\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-tlsuser smith -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-proxy-tlsv1"
Same as \fI\-1, \-\-tlsv1\fP but used in HTTPS proxy context.
+Example:
+.nf
+ curl --proxy-tlsv1 -x https://proxy https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-U, \-\-proxy-user <user:password>"
Specify the user name and password to use for proxy authentication.
@@ -2057,13 +2912,18 @@ for a brief moment before cleared. Such sensitive data should be retrieved
from a file instead or similar and never used in clear text in a command line.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --proxy-user name:pwd -x proxy https://example.com
+.fi
.IP "\-x, \-\-proxy [protocol://]host[:port]"
Use the specified proxy.
The proxy string can be specified with a protocol:// prefix. No protocol
specified or http:// will be treated as HTTP proxy. Use socks4://, socks4a://,
socks5:// or socks5h:// to request a specific SOCKS version to be used.
-(The protocol support was added in curl 7.21.7)
+
HTTPS proxy support via https:// protocol prefix was added in 7.52.0 for
OpenSSL, GnuTLS and NSS.
@@ -2075,7 +2935,7 @@ If the port number is not specified in the proxy string, it is assumed to be
1080.
This option overrides existing environment variables that set the proxy to
-use. If there's an environment variable setting a proxy, you can set proxy to
+use. If there\(aqs an environment variable setting a proxy, you can set proxy to
\&"" to override it.
All operations that are performed over an HTTP proxy will transparently be
@@ -2092,6 +2952,11 @@ variables, including the protocol prefix (http://) and the embedded user +
password.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --proxy http://proxy.example https://example.com
+.fi
.IP "\-\-proxy1.0 <host[:port]>"
Use the specified HTTP 1.0 proxy. If the port number is not specified, it is
assumed at port 1080.
@@ -2099,6 +2964,11 @@ assumed at port 1080.
The only difference between this and the HTTP proxy option \fI\-x, \-\-proxy\fP, is that
attempts to use CONNECT through the proxy will specify an HTTP 1.0 protocol
instead of the default HTTP 1.1.
+
+Example:
+.nf
+ curl --proxy1.0 -x http://proxy https://example.com
+.fi
.IP "\-p, \-\-proxytunnel"
When an HTTP proxy is used \fI\-x, \-\-proxy\fP, this option will make curl tunnel through
the proxy. The tunnel approach is made with the HTTP proxy CONNECT request and
@@ -2108,6 +2978,11 @@ wants to tunnel through to.
To suppress proxy CONNECT response headers when curl is set to output headers
use \fI\-\-suppress-connect-headers\fP.
+Example:
+.nf
+ curl --proxytunnel -x http://proxy https://example.com
+.fi
+
See also \fI-x, --proxy\fP.
.IP "\-\-pubkey <key>"
(SFTP SCP) Public key file name. Allows you to provide your public key in this separate
@@ -2119,22 +2994,27 @@ If this option is used several times, the last one will be used.
private key file, so passing this option is generally not required. Note that
this public key extraction requires libcurl to be linked against a copy of
libssh2 1.2.8 or higher that is itself linked against OpenSSL.)
+
+Example:
+.nf
+ curl --pubkey file.pub sftp://example.com/
+.fi
.IP "\-Q, \-\-quote <command>"
-(FTP SFTP)
-Send an arbitrary command to the remote FTP or SFTP server. Quote commands are
+(FTP SFTP) Send an arbitrary command to the remote FTP or SFTP server. Quote commands are
sent BEFORE the transfer takes place (just after the initial PWD command in an
FTP transfer, to be exact). To make commands take place after a successful
-transfer, prefix them with a dash '-'. To make commands be sent after curl
+transfer, prefix them with a dash \(aq-'. To make commands be sent after curl
has changed the working directory, just before the transfer command(s), prefix
-the command with a '+' (this is only supported for FTP). You may specify any
+the command with a \(aq+' (this is only supported for FTP). You may specify any
number of commands.
-If the server returns failure for one of the commands, the entire operation
-will be aborted. You must send syntactically correct FTP commands as RFC 959
-defines to FTP servers, or one of the commands listed below to SFTP servers.
+By default curl will stop at first failure. To make curl continue even if the
+command fails, prefix the command with an asterisk (*). Otherwise, if the
+server returns failure for one of the commands, the entire operation will be
+aborted.
-Prefix the command with an asterisk (*) to make curl continue even if the
-command fails as by default curl will stop at first failure.
+You must send syntactically correct FTP commands as RFC 959 defines to FTP
+servers, or one of the commands listed below to SFTP servers.
This option can be used multiple times.
@@ -2180,10 +3060,20 @@ operand, provided it is empty.
.IP "symlink source_file target_file"
See ln.
.RE
+
+Example:
+.nf
+ curl --quote "DELE file" ftp://example.com/foo
+.fi
.IP "\-\-random-file <file>"
Specify the path name to file containing what will be considered as random
data. The data may be used to seed the random engine for SSL connections. See
also the \fI\-\-egd-file\fP option.
+
+Example:
+.nf
+ curl --random-file rubbish https://example.com
+.fi
.IP "\-r, \-\-range <range>"
(HTTP FTP SFTP FILE) Retrieve a byte range (i.e. a partial document) from an HTTP/1.1, FTP or SFTP
server or a local FILE. Ranges can be specified in a number of ways.
@@ -2212,34 +3102,49 @@ specifies two separate 100-byte ranges(*) (HTTP)
response, which will be returned as-is by curl! Parsing or otherwise
transforming this response is the responsibility of the caller.
-Only digit characters (0-9) are valid in the 'start' and 'stop' fields of the
-\&'start-stop' range syntax. If a non-digit character is given in the range,
-the server's response will be unspecified, depending on the server's
+Only digit characters (0-9) are valid in the \(aqstart' and 'stop' fields of the
+\&\(aqstart-stop' range syntax. If a non-digit character is given in the range,
+the server\(aqs response will be unspecified, depending on the server's
configuration.
You should also be aware that many HTTP/1.1 servers do not have this feature
-enabled, so that when you attempt to get a range, you'll instead get the whole
-document.
+enabled, so that when you attempt to get a range, you will instead get the
+whole document.
-FTP and SFTP range downloads only support the simple 'start-stop' syntax
+FTP and SFTP range downloads only support the simple \(aqstart-stop' syntax
(optionally with one of the numbers omitted). FTP use depends on the extended
FTP command SIZE.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --range 22-44 https://example.com
+.fi
.IP "\-\-raw"
(HTTP) When used, it disables all internal HTTP decoding of content or transfer
encodings and instead makes them passed on unaltered, raw.
-Added in 7.16.2.
+Example:
+.nf
+ curl --raw https://example.com
+.fi
.IP "\-e, \-\-referer <URL>"
(HTTP) Sends the "Referrer Page" information to the HTTP server. This can also be set
with the \fI\-H, \-\-header\fP flag of course. When used with \fI\-L, \-\-location\fP you can append
";auto" to the \fI\-e, \-\-referer\fP URL to make curl automatically set the previous URL
when it follows a Location: header. The \&";auto" string can be used alone,
-even if you don't set an initial \fI\-e, \-\-referer\fP.
+even if you do not set an initial \fI\-e, \-\-referer\fP.
If this option is used several times, the last one will be used.
+Examples:
+.nf
+ curl --referer "https://fake.example" https://example.com
+ curl --referer "https://fake.example;auto" -L https://example.com
+ curl --referer ";auto" -L https://example.com
+.fi
+
See also \fI-A, --user-agent\fP and \fI-H, --header\fP.
.IP "\-J, \-\-remote-header-name"
(HTTP) This option tells the \fI\-O, \-\-remote-name\fP option to use the server-specified
@@ -2247,22 +3152,30 @@ Content-Disposition filename instead of extracting a filename from the URL.
If the server specifies a file name and a file with that name already exists
in the current working directory it will not be overwritten and an error will
-occur. If the server doesn't specify a file name then this option has no
+occur. If the server does not specify a file name then this option has no
effect.
-There's no attempt to decode %-sequences (yet) in the provided file name, so
+There\(aqs no attempt to decode %-sequences (yet) in the provided file name, so
this option may provide you with rather unexpected file names.
\fBWARNING\fP: Exercise judicious use of this option, especially on Windows. A
rogue server could send you the name of a DLL or other file that could possibly
be loaded automatically by Windows or some third party software.
+
+Example:
+.nf
+ curl -OJ https://example.com/file
+.fi
.IP "\-\-remote-name-all"
This option changes the default action for all given URLs to be dealt with as
if \fI\-O, \-\-remote-name\fP were used for each one. So if you want to disable that for a
specific URL after \fI\-\-remote-name-all\fP has been used, you must use "-o \-" or
\-\-no-remote-name.
-Added in 7.19.0.
+Example:
+.nf
+ curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2
+.fi
.IP "\-O, \-\-remote-name"
Write output to a local file named like the remote file we get. (Only the file
part of the remote file is used, the path is cut off.)
@@ -2281,16 +3194,31 @@ There is no URL decoding done on the file name. If it has %20 or other URL
encoded parts of the name, they will end up as-is as file name.
You may use this option as many times as the number of URLs you have.
+
+Example:
+.nf
+ curl -O https://example.com/filename
+.fi
.IP "\-R, \-\-remote-time"
When used, this will make curl attempt to figure out the timestamp of the
remote file, and if that is available make the local file get that same
timestamp.
+
+Example:
+.nf
+ curl --remote-time -o foo https://example.com
+.fi
.IP "\-\-request-target <path>"
(HTTP) Tells curl to use an alternative "target" (path) instead of using the path as
provided in the URL. Particularly useful when wanting to issue HTTP requests
-without leading slash or other data that doesn't follow the regular URL
+without leading slash or other data that does not follow the regular URL
pattern, like "OPTIONS *".
+Example:
+.nf
+ curl --request-target "*" -X OPTIONS https://example.com
+.fi
+
Added in 7.55.0.
.IP "\-X, \-\-request <command>"
(HTTP) Specifies a custom request method to use when communicating with the
@@ -2300,7 +3228,7 @@ details and explanations. Common additional HTTP requests include PUT and
DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE and
more.
-Normally you don't need this option. All sorts of GET, HEAD, POST and PUT
+Normally you do not need this option. All sorts of GET, HEAD, POST and PUT
requests are rather invoked by using dedicated command line options.
This option only changes the actual word used in the HTTP request, it does not
@@ -2309,7 +3237,7 @@ request, using \-X HEAD will not suffice. You need to use the \fI\-I, \-\-head\f
The method string you set with \fI\-X, \-\-request\fP will be used for all requests, which
if you for example use \fI\-L, \-\-location\fP may cause unintended side-effects when curl
-doesn't change request method according to the HTTP 30x response codes \- and
+does not change request method according to the HTTP 30x response codes \- and
similar.
(FTP)
@@ -2317,8 +3245,8 @@ Specifies a custom FTP command to use instead of LIST when doing file lists
with FTP.
(POP3)
-Specifies a custom POP3 command to use instead of LIST or RETR. (Added in
-7.26.0)
+Specifies a custom POP3 command to use instead of LIST or RETR.
+
(IMAP)
Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0)
@@ -2327,6 +3255,12 @@ Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0)
Specifies a custom SMTP command to use instead of HELP or VRFY. (Added in 7.34.0)
If this option is used several times, the last one will be used.
+
+Examples:
+.nf
+ curl -X "DELETE" https://example.com
+ curl -X NLST ftp://example.com/
+.fi
.IP "\-\-resolve <[+]host:port:addr[,addr]...>"
Provide a custom address for a specific host and port pair. Using this, you
can make the curl requests(s) use a specified address and prevent the
@@ -2336,14 +3270,14 @@ the number used for the specific protocol the host will be used for. It means
you need several entries if you want to provide address for the same host but
different ports.
-By specifying '*' as host you can tell curl to resolve any host and specific
+By specifying \(aq*' as host you can tell curl to resolve any host and specific
port pair to the specified address. Wildcard is resolved last so any \fI\-\-resolve\fP
with a specific host and port will be used first.
The provided address set by this option will be used even if \fI\-4, \-\-ipv4\fP or \fI\-6, \-\-ipv6\fP
is set to make curl use another IP version.
-By prefixing the host with a '+' you can make the entry time out after curl's
+By prefixing the host with a \(aq+' you can make the entry time out after curl's
default timeout (1 minute). Note that this will only make sense for long
running parallel transfers with a lot of files. In such cases, if this option
is used curl will try to resolve the host as it normally would once the
@@ -2355,27 +3289,31 @@ Support for providing multiple IP addresses per entry was added in 7.59.0.
Support for resolving with wildcard was added in 7.64.0.
-Support for the '+' prefix was was added in 7.75.0.
+Support for the \(aq+' prefix was was added in 7.75.0.
This option can be used many times to add many host names to resolve.
-Added in 7.21.3.
+Example:
+.nf
+ curl --resolve example.com:443:127.0.0.1 https://example.com
+.fi
.IP "\-\-retry-all-errors"
Retry on any error. This option is used together with \fI\-\-retry\fP.
This option is the "sledgehammer" of retrying. Do not use this option by
default (eg in curlrc), there may be unintended consequences such as sending or
-receiving duplicate data. Do not use with redirected input or output. You'd be
+receiving duplicate data. Do not use with redirected input or output. You\(aqd be
much better off handling your unique problems in shell script. Please read the
example below.
-Warning: For server compatibility curl attempts to retry failed flaky transfers
-as close as possible to how they were started, but this is not possible with
-redirected input or output. For example, before retrying it removes output data
-from a failed partial transfer that was written to an output file. However this
-is not true of data redirected to a | pipe or > file, which are not reset. We
-strongly suggest don't parse or record output via redirect in combination with
-this option, since you may receive duplicate data.
+\fBWARNING\fP: For server compatibility curl attempts to retry failed flaky
+transfers as close as possible to how they were started, but this is not
+possible with redirected input or output. For example, before retrying it
+removes output data from a failed partial transfer that was written to an
+output file. However this is not true of data redirected to a | pipe or >
+file, which are not reset. We strongly suggest you do not parse or record
+output via redirect in combination with this option, since you may receive
+duplicate data.
By default curl will not error on an HTTP response code that indicates an HTTP
error, if the transfer was successful. For example, if a server replies 404
@@ -2385,11 +3323,21 @@ transient HTTP errors, but that does not include most 4xx response codes such
as 404. If you want to retry on all response codes that indicate HTTP errors
(4xx and 5xx) then combine with \fI\-f, \-\-fail\fP.
+Example:
+.nf
+ curl --retry-all-errors https://example.com
+.fi
+
Added in 7.71.0.
.IP "\-\-retry-connrefused"
In addition to the other conditions, consider ECONNREFUSED as a transient
error too for \fI\-\-retry\fP. This option is used together with \-\-retry.
+Example:
+.nf
+ curl --retry-connrefused --retry https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-\-retry-delay <seconds>"
Make curl sleep this amount of time before each retry when a transfer has
@@ -2399,18 +3347,24 @@ used. Setting this delay to zero will make curl use the default backoff time.
If this option is used several times, the last one will be used.
-Added in 7.12.3.
+Example:
+.nf
+ curl --retry-delay 5 --retry https://example.com
+.fi
.IP "\-\-retry-max-time <seconds>"
The retry timer is reset before the first transfer attempt. Retries will be
-done as usual (see \fI\-\-retry\fP) as long as the timer hasn't reached this given
-limit. Notice that if the timer hasn't reached the limit, the request will be
+done as usual (see \fI\-\-retry\fP) as long as the timer has not reached this given
+limit. Notice that if the timer has not reached the limit, the request will be
made and while performing, it may take longer than this given time period. To
-limit a single request\'s maximum time, use \fI\-m, \-\-max-time\fP. Set this option to
+limit a single request\(aqs maximum time, use \fI\-m, \-\-max-time\fP. Set this option to
zero to not timeout retries.
If this option is used several times, the last one will be used.
-Added in 7.12.3.
+Example:
+.nf
+ curl --retry-max-time 30 --retry 10 https://example.com
+.fi
.IP "\-\-retry <num>"
If a transient error is returned when curl tries to perform a transfer, it
will retry this number of times before giving up. Setting the number to 0
@@ -2429,39 +3383,70 @@ one was present to know when to issue the next retry.
If this option is used several times, the last one will be used.
-Added in 7.12.3.
+Example:
+.nf
+ curl --retry 7 https://example.com
+.fi
.IP "\-\-sasl-authzid <identity>"
Use this authorisation identity (authzid), during SASL PLAIN authentication,
in addition to the authentication identity (authcid) as specified by \fI\-u, \-\-user\fP.
-If the option isn't specified, the server will derive the authzid from the
+If the option is not specified, the server will derive the authzid from the
authcid, but if specified, and depending on the server implementation, it may
-be used to access another user's inbox, that the user has been granted access
+be used to access another user\(aqs inbox, that the user has been granted access
to, or a shared mailbox for example.
+Example:
+.nf
+ curl --sasl-authzid zid imap://example.com/
+.fi
+
Added in 7.66.0.
.IP "\-\-sasl-ir"
Enable initial response in SASL authentication.
+Example:
+.nf
+ curl --sasl-ir imap://example.com/
+.fi
+
Added in 7.31.0.
.IP "\-\-service-name <name>"
This option allows you to change the service name for SPNEGO.
Examples: \fI\-\-negotiate\fP \fI\-\-service-name\fP sockd would use sockd/server-name.
+Example:
+.nf
+ curl --service-name sockd/server https://example.com
+.fi
+
Added in 7.43.0.
.IP "\-S, \-\-show-error"
When used with \fI\-s, \-\-silent\fP, it makes curl show an error message if it fails.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
+Example:
+.nf
+ curl --show-error --silent https://example.com
+.fi
+
See also \fI--no-progress-meter\fP.
.IP "\-s, \-\-silent"
-Silent or quiet mode. Don't show progress meter or error messages. Makes Curl
+Silent or quiet mode. Do not show progress meter or error messages. Makes Curl
mute. It will still output the data you ask for, potentially even to the
terminal/stdout unless you redirect it.
Use \fI\-S, \-\-show-error\fP in addition to this option to disable progress meter but
still show error messages.
+Example:
+.nf
+ curl -s https://example.com
+.fi
+
See also \fI-v, --verbose\fP, \fI--stderr\fP and \fI--no-progress-meter\fP.
.IP "\-\-socks4 <host[:port]>"
Use the specified SOCKS4 proxy. If the port number is not specified, it is
@@ -2471,8 +3456,8 @@ and passing the address on to the proxy.
This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks4 proxy
-with \fI\-x, \-\-proxy\fP using a socks4:// protocol prefix.
+This option is superfluous since you can specify a socks4 proxy with \fI\-x, \-\-proxy\fP
+using a socks4:// protocol prefix.
Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time
\fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to
@@ -2480,7 +3465,10 @@ the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy.
If this option is used several times, the last one will be used.
-Added in 7.15.2.
+Example:
+.nf
+ curl --socks4 hostname:4096 https://example.com
+.fi
.IP "\-\-socks4a <host[:port]>"
Use the specified SOCKS4a proxy. If the port number is not specified, it is
assumed at port 1080. This asks the proxy to resolve the host name.
@@ -2488,8 +3476,8 @@ assumed at port 1080. This asks the proxy to resolve the host name.
This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks4a proxy
-with \fI\-x, \-\-proxy\fP using a socks4a:// protocol prefix.
+This option is superfluous since you can specify a socks4a proxy with \fI\-x, \-\-proxy\fP
+using a socks4a:// protocol prefix.
Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time
\fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to
@@ -2497,12 +3485,20 @@ the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy.
If this option is used several times, the last one will be used.
-Added in 7.18.0.
+Example:
+.nf
+ curl --socks4a hostname:4096 https://example.com
+.fi
.IP "\-\-socks5-basic"
Tells curl to use username/password authentication when connecting to a SOCKS5
proxy. The username/password authentication is enabled by default. Use
\fI\-\-socks5-gssapi\fP to force GSS-API authentication to SOCKS5 proxies.
+Example:
+.nf
+ curl --socks5-basic --socks5 hostname:4096 https://example.com
+.fi
+
Added in 7.55.0.
.IP "\-\-socks5-gssapi-nec"
As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961
@@ -2510,7 +3506,10 @@ says in section 4.3/4.4 it should be protected, but the NEC reference
implementation does not. The option \fI\-\-socks5-gssapi-nec\fP allows the
unprotected exchange of the protection mode negotiation.
-Added in 7.19.4.
+Example:
+.nf
+ curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com
+.fi
.IP "\-\-socks5-gssapi-service <name>"
The default service name for a socks server is rcmd/server-fqdn. This option
allows you to change it.
@@ -2520,13 +3519,21 @@ sockd/proxy-name \fI\-\-socks5\fP proxy-name \fI\-\-socks5-gssapi-service\fP soc
would use sockd/real-name for cases where the proxy-name does not match the
principal name.
-Added in 7.19.4.
+Example:
+.nf
+ curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com
+.fi
.IP "\-\-socks5-gssapi"
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
The GSS-API authentication is enabled by default (if curl is compiled with
GSS-API support). Use \fI\-\-socks5-basic\fP to force username/password authentication
to SOCKS5 proxies.
+Example:
+.nf
+ curl --socks5-gssapi --socks5 hostname:4096 https://example.com
+.fi
+
Added in 7.55.0.
.IP "\-\-socks5-hostname <host[:port]>"
Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If
@@ -2535,8 +3542,8 @@ the port number is not specified, it is assumed at port 1080.
This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks5
-hostname proxy with \fI\-x, \-\-proxy\fP using a socks5h:// protocol prefix.
+This option is superfluous since you can specify a socks5 hostname proxy with
+\fI\-x, \-\-proxy\fP using a socks5h:// protocol prefix.
Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time
\fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to
@@ -2544,7 +3551,10 @@ the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy.
If this option is used several times, the last one will be used.
-Added in 7.18.0.
+Example:
+.nf
+ curl --socks5-hostname proxy.example:7000 https://example.com
+.fi
.IP "\-\-socks5 <host[:port]>"
Use the specified SOCKS5 proxy \- but resolve the host name locally. If the
port number is not specified, it is assumed at port 1080.
@@ -2552,8 +3562,8 @@ port number is not specified, it is assumed at port 1080.
This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
exclusive.
-Since 7.21.7, this option is superfluous since you can specify a socks5 proxy
-with \fI\-x, \-\-proxy\fP using a socks5:// protocol prefix.
+This option is superfluous since you can specify a socks5 proxy with \fI\-x, \-\-proxy\fP
+using a socks5:// protocol prefix.
Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time
\fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to
@@ -2563,13 +3573,21 @@ If this option is used several times, the last one will be used.
This option (as well as \fI\-\-socks4\fP) does not work with IPV6, FTPS or LDAP.
-Added in 7.18.0.
+Example:
+.nf
+ curl --socks5 proxy.example:7000 https://example.com
+.fi
.IP "\-Y, \-\-speed-limit <speed>"
If a download is slower than this given speed (in bytes per second) for
speed-time seconds it gets aborted. speed-time is set with \fI\-y, \-\-speed-time\fP and is
30 if not set.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --speed-limit 300 --speed-time 10 https://example.com
+.fi
.IP "\-y, \-\-speed-time <seconds>"
If a download is slower than speed-limit bytes per second during a speed-time
period, the download gets aborted. If speed-time is used, the default
@@ -2579,14 +3597,24 @@ This option controls transfers and thus will not affect slow connects etc. If
this is a concern for you, try the \fI\-\-connect-timeout\fP option.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --speed-limit 300 --speed-time 10 https://example.com
+.fi
.IP "\-\-ssl-allow-beast"
This option tells curl to not work around a security flaw in the SSL3 and
-TLS1.0 protocols known as BEAST. If this option isn't used, the SSL layer may
-use workarounds known to cause interoperability problems with some older SSL
-implementations. WARNING: this option loosens the SSL security, and by using
-this flag you ask for exactly that.
+TLS1.0 protocols known as BEAST. If this option is not used, the SSL layer
+may use workarounds known to cause interoperability problems with some older
+SSL implementations.
+
+\fBWARNING\fP: this option loosens the SSL security, and by using this flag you
+ask for exactly that.
-Added in 7.25.0.
+Example:
+.nf
+ curl --ssl-allow-beast https://example.com
+.fi
.IP "\-\-ssl-auto-client-cert"
Tell libcurl to automatically locate and use a client certificate for
authentication, when requested by the server. This option is only supported
@@ -2595,39 +3623,65 @@ default behavior in libcurl with Schannel. Since the server can request any
certificate that supports client authentication in the OS certificate store it
could be a privacy violation and unexpected.
+Example:
+.nf
+ curl --ssl-auto-client-cert https://example.com
+.fi
+
See also \fI--proxy-ssl-auto-client-cert\fP. Added in 7.77.0.
.IP "\-\-ssl-no-revoke"
(Schannel) This option tells curl to disable certificate revocation checks.
WARNING: this option loosens the SSL security, and by using this flag you ask
for exactly that.
+Example:
+.nf
+ curl --ssl-no-revoke https://example.com
+.fi
+
Added in 7.44.0.
.IP "\-\-ssl-reqd"
(FTP IMAP POP3 SMTP) Require SSL/TLS for the connection. Terminates the connection if the server
-doesn't support SSL/TLS.
+does not support SSL/TLS.
This option was formerly known as \-\-ftp-ssl-reqd.
-Added in 7.20.0.
+Example:
+.nf
+ curl --ssl-reqd ftp://example.com
+.fi
.IP "\-\-ssl-revoke-best-effort"
(Schannel) This option tells curl to ignore certificate revocation checks when
they failed due to missing/offline distribution points for the revocation check
lists.
+Example:
+.nf
+ curl --ssl-revoke-best-effort https://example.com
+.fi
+
Added in 7.70.0.
.IP "\-\-ssl"
-(FTP IMAP POP3 SMTP)
-Try to use SSL/TLS for the connection. Reverts to a non-secure connection if
-the server doesn't support SSL/TLS. See also \fI\-\-ftp-ssl-control\fP and \fI\-\-ssl-reqd\fP
+(FTP IMAP POP3 SMTP) Try to use SSL/TLS for the connection. Reverts to a non-secure connection if
+the server does not support SSL/TLS. See also \fI\-\-ftp-ssl-control\fP and \fI\-\-ssl-reqd\fP
for different levels of encryption required.
-This option was formerly known as \-\-ftp-ssl (Added in 7.11.0). That option
+This option was formerly known as \-\-ftp-ssl. That option
name can still be used but will be removed in a future version.
-Added in 7.20.0.
+Example:
+.nf
+ curl --ssl pop3://example.com/
+.fi
.IP "\-2, \-\-sslv2"
-(SSL) This option previously asked curl to use SSLv2, but starting in curl 7.77.0 this
-instruction is ignored. SSLv2 is widely considered insecure (see RFC 6176).
+(SSL) This option previously asked curl to use SSLv2, but starting in curl 7.77.0
+this instruction is ignored. SSLv2 is widely considered insecure (see RFC
+6176).
+
+Example:
+.nf
+ curl --sslv2 https://example.com
+.fi
See also \fI--http1.1\fP and \fI--http2\fP. \fI-2, --sslv2\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI-3, --sslv3\fP and \fI-1, --tlsv1\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP.
.IP "\-3, \-\-sslv3"
@@ -2635,38 +3689,72 @@ See also \fI--http1.1\fP and \fI--http2\fP. \fI-2, --sslv2\fP requires that the
this instruction is ignored. SSLv3 is widely considered insecure (see RFC
7568).
+Example:
+.nf
+ curl --sslv3 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http2\fP. \fI-3, --sslv3\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI-2, --sslv2\fP and \fI-1, --tlsv1\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP.
.IP "\-\-stderr <file>"
Redirect all writes to stderr to the specified file instead. If the file name
-is a plain '-', it is instead written to stdout.
+is a plain \(aq-', it is instead written to stdout.
+
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --stderr output.txt https://example.com
+.fi
+
See also \fI-v, --verbose\fP and \fI-s, --silent\fP.
.IP "\-\-styled-output"
Enables the automatic use of bold font styles when writing HTTP headers to the
terminal. Use \-\-no-styled-output to switch them off.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
+Example:
+.nf
+ curl --styled-output -I https://example.com
+.fi
+
Added in 7.61.0.
.IP "\-\-suppress-connect-headers"
-When \fI\-p, \-\-proxytunnel\fP is used and a CONNECT request is made don't output proxy
+When \fI\-p, \-\-proxytunnel\fP is used and a CONNECT request is made do not output proxy
CONNECT response headers. This option is meant to be used with \fI\-D, \-\-dump-header\fP or
\fI\-i, \-\-include\fP which are used to show protocol headers in the output. It has no
effect on debug options such as \fI\-v, \-\-verbose\fP or \fI\-\-trace\fP, or any statistics.
-See also \fI-D, --dump-header\fP, \fI-i, --include\fP and \fI-p, --proxytunnel\fP.
+Example:
+.nf
+ curl --suppress-connect-headers --include -x proxy https://example.com
+.fi
+
+See also \fI-D, --dump-header\fP, \fI-i, --include\fP and \fI-p, --proxytunnel\fP. Added in 7.54.0.
.IP "\-\-tcp-fastopen"
Enable use of TCP Fast Open (RFC7413).
+Example:
+.nf
+ curl --tcp-fastopen https://example.com
+.fi
+
Added in 7.49.0.
.IP "\-\-tcp-nodelay"
Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for
details about this option.
Since 7.50.2, curl sets this option by default and you need to explicitly
-switch it off if you don't want it on.
+switch it off if you do not want it on.
-Added in 7.11.2.
+Example:
+.nf
+ curl --tcp-nodelay https://example.com
+.fi
.IP "\-t, \-\-telnet-option <opt=val>"
Pass options to the telnet protocol. Supported options are:
@@ -2675,6 +3763,11 @@ TTYPE=<term> Sets the terminal type.
XDISPLOC=<X display> Sets the X display location.
NEW_ENV=<var,val> Sets an environment variable.
+
+Example:
+.nf
+ curl -t TTYPE=vt100 telnet://example.com/
+.fi
.IP "\-\-tftp-blksize <value>"
(TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that curl will
try to use when transferring data to or from a TFTP server. By default 512
@@ -2682,7 +3775,10 @@ bytes will be used.
If this option is used several times, the last one will be used.
-Added in 7.20.0.
+Example:
+.nf
+ curl --tftp-blksize 1024 tftp://example.com/file
+.fi
.IP "\-\-tftp-no-options"
(TFTP) Tells curl not to send TFTP options requests.
@@ -2690,11 +3786,16 @@ This option improves interop with some legacy servers that do not acknowledge
or properly implement TFTP options. When this option is used \fI\-\-tftp-blksize\fP is
ignored.
+Example:
+.nf
+ curl --tftp-no-options tftp://192.168.0.1/
+.fi
+
Added in 7.48.0.
.IP "\-z, \-\-time-cond <time>"
(HTTP FTP) Request a file that has been modified later than the given time and date, or
one that has been modified before that time. The <date expression> can be all
-sorts of date strings or if it doesn't match any internal ones, it is taken as
+sorts of date strings or if it does not match any internal ones, it is taken as
a filename and tries to get the modification date (mtime) from <file>
instead. See the \fIcurl_getdate(3)\fP man pages for date expression details.
@@ -2703,6 +3804,13 @@ that is older than the given date/time, default is a document that is newer
than the specified date/time.
If this option is used several times, the last one will be used.
+
+Examples:
+.nf
+ curl -z "Wed 01 Sep 2021 12:18:00" https://example.com
+ curl -z "-Wed 01 Sep 2021 12:18:00" https://example.com
+ curl -z file https://example.com
+.fi
.IP "\-\-tls-max <VERSION>"
(SSL) VERSION defines maximum supported TLS version. The minimum acceptable version
is set by tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.
@@ -2723,6 +3831,12 @@ Use up to TLSv1.2.
Use up to TLSv1.3.
.RE
+Examples:
+.nf
+ curl --tls-max 1.2 https://example.com
+ curl --tls-max 1.3 --tlsv1.2 https://example.com
+.fi
+
See also \fI--tlsv1.0\fP, \fI--tlsv1.1\fP, \fI--tlsv1.2\fP and \fI--tlsv1.3\fP. \fI--tls-max\fP requires that the underlying libcurl was built to support TLS. Added in 7.54.0.
.IP "\-\-tls13-ciphers <ciphersuite list>"
(TLS) Specifies which cipher suites to use in the connection if it negotiates TLS
@@ -2736,6 +3850,13 @@ later. If you are using a different SSL backend you can try setting TLS 1.3
cipher suites by using the \fI\-\-ciphers\fP option.
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com
+.fi
+
+Added in 7.61.0.
.IP "\-\-tlsauthtype <type>"
Set TLS authentication type. Currently, the only supported option is "SRP",
for TLS-SRP (RFC 5054). If \fI\-\-tlsuser\fP and \fI\-\-tlspassword\fP are specified but
@@ -2743,21 +3864,30 @@ for TLS-SRP (RFC 5054). If \fI\-\-tlsuser\fP and \fI\-\-tlspassword\fP are speci
only if the underlying libcurl is built with TLS-SRP support, which requires
OpenSSL or GnuTLS with TLS-SRP support.
-Added in 7.21.4.
+Example:
+.nf
+ curl --tlsauthtype SRP https://example.com
+.fi
.IP "\-\-tlspassword <string>"
Set password for use with the TLS authentication method specified with
\fI\-\-tlsauthtype\fP. Requires that \fI\-\-tlsuser\fP also be set.
-This doesn't work with TLS 1.3.
+This option does not work with TLS 1.3.
-Added in 7.21.4.
+Example:
+.nf
+ curl --tlspassword pwd --tlsuser user https://example.com
+.fi
.IP "\-\-tlsuser <name>"
Set username for use with the TLS authentication method specified with
\fI\-\-tlsauthtype\fP. Requires that \fI\-\-tlspassword\fP also is set.
-This doesn't work with TLS 1.3.
+This option does not work with TLS 1.3.
-Added in 7.21.4.
+Example:
+.nf
+ curl --tlspassword pwd --tlsuser user https://example.com
+.fi
.IP "\-\-tlsv1.0"
(TLS) Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
@@ -2765,6 +3895,11 @@ In old versions of curl this option was documented to allow _only_ TLS 1.0,
but behavior was inconsistent depending on the TLS library. Use \fI\-\-tls-max\fP if
you want to set a maximum TLS version.
+Example:
+.nf
+ curl --tlsv1.0 https://example.com
+.fi
+
Added in 7.34.0.
.IP "\-\-tlsv1.1"
(TLS) Forces curl to use TLS version 1.1 or later when connecting to a remote TLS server.
@@ -2773,6 +3908,11 @@ In old versions of curl this option was documented to allow _only_ TLS 1.1,
but behavior was inconsistent depending on the TLS library. Use \fI\-\-tls-max\fP if
you want to set a maximum TLS version.
+Example:
+.nf
+ curl --tlsv1.1 https://example.com
+.fi
+
Added in 7.34.0.
.IP "\-\-tlsv1.2"
(TLS) Forces curl to use TLS version 1.2 or later when connecting to a remote TLS server.
@@ -2781,6 +3921,11 @@ In old versions of curl this option was documented to allow _only_ TLS 1.2,
but behavior was inconsistent depending on the TLS library. Use \fI\-\-tls-max\fP if
you want to set a maximum TLS version.
+Example:
+.nf
+ curl --tlsv1.2 https://example.com
+.fi
+
Added in 7.34.0.
.IP "\-\-tlsv1.3"
(TLS) Forces curl to use TLS version 1.3 or later when connecting to a remote TLS
@@ -2791,45 +3936,85 @@ includes QUIC-using (HTTP/3) transfers.
Note that TLS 1.3 is not supported by all TLS backends.
+Example:
+.nf
+ curl --tlsv1.3 https://example.com
+.fi
+
Added in 7.52.0.
.IP "\-1, \-\-tlsv1"
(SSL) Tells curl to use at least TLS version 1.x when negotiating with a remote TLS
server. That means TLS version 1.0 or higher
+Example:
+.nf
+ curl --tlsv1 https://example.com
+.fi
+
See also \fI--http1.1\fP and \fI--http2\fP. \fI-1, --tlsv1\fP requires that the underlying libcurl was built to support TLS. This option overrides \fI--tlsv1.1\fP and \fI--tlsv1.2\fP and \fI--tlsv1.3\fP.
.IP "\-\-tr-encoding"
(HTTP) Request a compressed Transfer-Encoding response using one of the algorithms
curl supports, and uncompress the data while receiving it.
-Added in 7.21.6.
+Example:
+.nf
+ curl --tr-encoding https://example.com
+.fi
.IP "\-\-trace-ascii <file>"
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout.
-This is very similar to \fI\-\-trace\fP, but leaves out the hex part and only shows
-the ASCII part of the dump. It makes smaller output that might be easier to
-read for untrained humans.
+This is similar to \fI\-\-trace\fP, but leaves out the hex part and only shows the
+ASCII part of the dump. It makes smaller output that might be easier to read
+for untrained humans.
+
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --trace-ascii log.txt https://example.com
+.fi
+
This option overrides \fI--trace\fP and \fI-v, --verbose\fP.
.IP "\-\-trace-time"
Prepends a time stamp to each trace or verbose line that curl displays.
-Added in 7.14.0.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
+Example:
+.nf
+ curl --trace-time --trace-ascii output https://example.com
+.fi
.IP "\-\-trace <file>"
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout. Use "%" as filename to have the output sent to
stderr.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
If this option is used several times, the last one will be used.
+Example:
+.nf
+ curl --trace log.txt https://example.com
+.fi
+
This option overrides \fI-v, --verbose\fP and \fI--trace-ascii\fP.
.IP "\-\-unix-socket <path>"
(HTTP) Connect through this Unix domain socket, instead of using the network.
+Example:
+.nf
+ curl --unix-socket socket-path https://example.com
+.fi
+
Added in 7.40.0.
.IP "\-T, \-\-upload-file <file>"
This transfers the specified local file to the remote URL. If there is no file
@@ -2840,26 +4025,27 @@ file name to use. That will most likely cause the upload operation to fail. If
this is used on an HTTP(S) server, the PUT command will be used.
Use the file name "-" (a single dash) to use stdin instead of a given file.
-Alternately, the file name "." (a single period) may be specified instead
-of "-" to use stdin in non-blocking mode to allow reading server output
-while stdin is being uploaded.
+Alternately, the file name "." (a single period) may be specified instead of
+"-" to use stdin in non-blocking mode to allow reading server output while
+stdin is being uploaded.
You can specify one \fI\-T, \-\-upload-file\fP for each URL on the command line. Each
\fI\-T, \-\-upload-file\fP + URL pair specifies what to upload and to where. curl also
supports "globbing" of the \fI\-T, \-\-upload-file\fP argument, meaning that you can upload
multiple files to a single URL by using the same URL globbing style supported
-in the URL, like this:
-
- curl \-\-upload-file "{file1,file2}" http://www.example.com
-
-or even
-
- curl \-T "img[1-1000].png" ftp://ftp.example.com/upload/
+in the URL.
When uploading to an SMTP server: the uploaded data is assumed to be RFC 5322
formatted. It has to feature the necessary set of headers and mail body
formatted correctly by the user as curl will not transcode nor encode it
further in any way.
+
+Examples:
+.nf
+ curl -T file https://example.com
+ curl -T "img[1-1000].png" ftp://ftp.example.com/
+ curl --upload-file "{file1,file2}" https://example.com
+.fi
.IP "\-\-url <url>"
Specify a URL to fetch. This option is mostly handy when you want to specify
URL(s) in a config file.
@@ -2873,15 +4059,24 @@ setting a default protocol, see \fI\-\-proto-default\fP for details.
This option may be used any number of times. To control where this URL is
written, use the \fI\-o, \-\-output\fP or the \fI\-O, \-\-remote-name\fP options.
-Warning: On Windows, particular file:// accesses can be converted to network
-accesses by the operating system. Beware!
+\fBWARNING\fP: On Windows, particular file:// accesses can be converted to
+network accesses by the operating system. Beware!
+
+Example:
+.nf
+ curl --url https://example.com
+.fi
.IP "\-B, \-\-use-ascii"
(FTP LDAP) Enable ASCII transfer. For FTP, this can also be enforced by using a URL that
ends with ";type=A". This option causes data sent to stdout to be in text mode
for win32 systems.
+
+Example:
+.nf
+ curl -B ftp://example.com/README
+.fi
.IP "\-A, \-\-user-agent <name>"
-(HTTP)
-Specify the User-Agent string to send to the HTTP server. To encode blanks in
+(HTTP) Specify the User-Agent string to send to the HTTP server. To encode blanks in
the string, surround the string with single quote marks. This header can also
be set with the \fI\-H, \-\-header\fP or the \fI\-\-proxy-header\fP options.
@@ -2890,6 +4085,11 @@ completely from the request. If you prefer a blank header, you can set it to a
single space (" ").
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl -A "Agent 007" https://example.com
+.fi
.IP "\-u, \-\-user <user:password>"
Specify the user name and password to use for server authentication. Overrides
\fI\-n, \-\-netrc\fP and \fI\-\-netrc-optional\fP.
@@ -2903,12 +4103,12 @@ still.
On systems where it works, curl will hide the given option argument from
process listings. This is not enough to protect credentials from possibly
getting seen by other users on the same system as they will still be visible
-for a brief moment before cleared. Such sensitive data should be retrieved
-from a file instead or similar and never used in clear text in a command line.
+for a moment before cleared. Such sensitive data should be retrieved from a
+file instead or similar and never used in clear text in a command line.
When using Kerberos V5 with a Windows based server you should include the
Windows domain name in the user name, in order for the server to successfully
-obtain a Kerberos Ticket. If you don't then the initial authentication
+obtain a Kerberos Ticket. If you do not, then the initial authentication
handshake may fail.
When using NTLM, the user name can be specified simply as the user name,
@@ -2925,21 +4125,34 @@ the user name and password from your environment by specifying a single colon
with this option: "-u :".
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl -u user:secret https://example.com
+.fi
.IP "\-v, \-\-verbose"
Makes curl verbose during the operation. Useful for debugging and seeing
-what's going on "under the hood". A line starting with '>' means "header data"
-sent by curl, '<' means "header data" received by curl that is hidden in
-normal cases, and a line starting with '*' means additional info provided by
+what\(aqs going on "under the hood". A line starting with '>' means "header data"
+sent by curl, \(aq<' means "header data" received by curl that is hidden in
+normal cases, and a line starting with \(aq*' means additional info provided by
curl.
If you only want HTTP headers in the output, \fI\-i, \-\-include\fP might be the option
-you're looking for.
+you are looking for.
-If you think this option still doesn't give you enough details, consider using
+If you think this option still does not give you enough details, consider using
\fI\-\-trace\fP or \fI\-\-trace-ascii\fP instead.
+This option is global and does not need to be specified for each use of
+\fI\-:, \-\-next\fP.
+
Use \fI\-s, \-\-silent\fP to make curl really quiet.
+Example:
+.nf
+ curl --verbose https://example.com
+.fi
+
See also \fI-i, --include\fP. This option overrides \fI--trace\fP and \fI--trace-ascii\fP.
.IP "\-V, \-\-version"
Displays information about curl and the libcurl version it uses.
@@ -3016,6 +4229,11 @@ Unix sockets support is provided.
.IP "zstd"
Automatic decompression (via zstd) of compressed files over HTTP is supported.
.RE
+
+Example:
+.nf
+ curl --version
+.fi
.IP "\-w, \-\-write-out <format>"
Make curl display information on stdout after a completed transfer. The format
is a string that may contain plain text mixed with any number of
@@ -3051,21 +4269,20 @@ The numerical exitcode of the transfer. (Added in 7.75.0)
.B filename_effective
The ultimate filename that curl writes out to. This is only meaningful if curl
is told to write to a file with the \fI\-O, \-\-remote-name\fP or \fI\-o, \-\-output\fP
-option. It's most useful in combination with the \fI\-J, \-\-remote-header-name\fP
-option. (Added in 7.26.0)
+option. It\(aqs most useful in combination with the \fI\-J, \-\-remote-header-name\fP
+option.
.TP
.B ftp_entry_path
The initial path curl ended up in when logging on to the remote FTP
-server. (Added in 7.15.4)
+server.
.TP
.B http_code
The numerical response code that was found in the last retrieved HTTP(S) or
-FTP(s) transfer. In 7.18.2 the alias \fBresponse_code\fP was added to show the
-same info.
+FTP(s) transfer.
.TP
.B http_connect
The numerical code that was found in the last response (from a proxy) to a
-curl CONNECT request. (Added in 7.12.4)
+curl CONNECT request.
.TP
.B http_version
The http version that was effectively used. (Added in 7.50.0)
@@ -3075,56 +4292,57 @@ A JSON object with all available keys.
.TP
.B local_ip
The IP address of the local end of the most recently done connection \- can be
-either IPv4 or IPv6. (Added in 7.29.0)
+either IPv4 or IPv6.
.TP
.B local_port
-The local port number of the most recently done connection. (Added in 7.29.0)
+The local port number of the most recently done connection.
.TP
.B method
The http method used in the most recent HTTP request. (Added in 7.72.0)
.TP
.B num_connects
-Number of new connects made in the recent transfer. (Added in 7.12.3)
+Number of new connects made in the recent transfer.
.TP
.B num_headers
The number of response headers in the most recent request (restarted at each
redirect). Note that the status line IS NOT a header. (Added in 7.73.0)
.TP
.B num_redirects
-Number of redirects that were followed in the request. (Added in 7.12.3)
+Number of redirects that were followed in the request.
.TP
.B onerror
The rest of the output is only shown if the transfer returned a non-zero error
(Added in 7.75.0)
.TP
.B proxy_ssl_verify_result
-The result of the HTTPS proxy's SSL peer certificate verification that was
+The result of the HTTPS proxy\(aqs SSL peer certificate verification that was
requested. 0 means the verification was successful. (Added in 7.52.0)
.TP
.B redirect_url
When an HTTP request was made without \fI\-L, \-\-location\fP to follow redirects (or when
\fI\-\-max-redirs\fP is met), this variable will show the actual URL a redirect
-\fIwould\fP have gone to. (Added in 7.18.2)
+\fIwould\fP have gone to.
.TP
.B referer
The Referer: header, if there was any. (Added in 7.76.0)
.TP
.B remote_ip
The remote IP address of the most recently done connection \- can be either
-IPv4 or IPv6. (Added in 7.29.0)
+IPv4 or IPv6.
.TP
.B remote_port
-The remote port number of the most recently done connection. (Added in 7.29.0)
+The remote port number of the most recently done connection.
.TP
.B response_code
The numerical response code that was found in the last transfer (formerly
-known as "http_code"). (Added in 7.18.2)
+known as "http_code").
.TP
.B scheme
The URL scheme (sometimes called protocol) that was effectively used. (Added in 7.52.0)
.TP
.B size_download
-The total amount of bytes that were downloaded.
+The total amount of bytes that were downloaded. This is the size of the
+body/data that was transferred, excluding headers.
.TP
.B size_header
The total amount of bytes of the downloaded headers.
@@ -3133,7 +4351,8 @@ The total amount of bytes of the downloaded headers.
The total amount of bytes that were sent in the HTTP request.
.TP
.B size_upload
-The total amount of bytes that were uploaded.
+The total amount of bytes that were uploaded. This is the size of the
+body/data that was transferred, excluding headers.
.TP
.B speed_download
The average download speed that curl measured for the complete download. Bytes
@@ -3145,7 +4364,7 @@ second.
.TP
.B ssl_verify_result
The result of the SSL peer certificate verification that was requested. 0
-means the verification was successful. (Added in 7.19.0)
+means the verification was successful.
.TP
.B stderr
From this point on, the \fI\-w, \-\-write-out\fP output will be written to standard
@@ -3158,7 +4377,7 @@ This is the default, but can be used to switch back after switching to stderr.
.TP
.B time_appconnect
The time, in seconds, it took from the start until the SSL/SSH/etc
-connect/handshake to the remote host was completed. (Added in 7.19.0)
+connect/handshake to the remote host was completed.
.TP
.B time_connect
The time, in seconds, it took from the start until the TCP connect to the
@@ -3177,7 +4396,7 @@ are specific to the particular protocol(s) involved.
The time, in seconds, it took for all redirection steps including name lookup,
connect, pretransfer and transfer before the final transaction was
started. time_redirect shows the complete execution time for multiple
-redirections. (Added in 7.12.3)
+redirections.
.TP
.B time_starttransfer
The time, in seconds, it took from the start until the first byte was just
@@ -3195,17 +4414,27 @@ The URL index number of this transfer, 0-indexed. De-globbed URLs share the
same index number as the origin globbed URL. (Added in 7.75.0)
.TP
.B url_effective
-The URL that was fetched last. This is most meaningful if you've told curl
+The URL that was fetched last. This is most meaningful if you have told curl
to follow location: headers.
.RE
.IP
If this option is used several times, the last one will be used.
+
+Example:
+.nf
+ curl -w '%{http_code}\\n' https://example.com
+.fi
.IP "\-\-xattr"
When saving output to a file, this option tells curl to store certain file
metadata in extended file attributes. Currently, the URL is stored in the
xdg.origin.url attribute and, for HTTP, the content type is stored in
the mime_type attribute. If the file system does not support extended
attributes, a warning is issued.
+
+Example:
+.nf
+ curl --xattr -o storage https://example.com
+.fi
.SH FILES
.I ~/.curlrc
.RS
@@ -3229,8 +4458,8 @@ SMTP, LDAP, etc.
.IP "ALL_PROXY [protocol://]<host>[:port]"
Sets the proxy server to use if no protocol-specific proxy is set.
.IP "NO_PROXY <comma-separated list of hosts/domains>"
-list of host names that shouldn't go through any proxy. If set to an asterisk
-\&'*' only, it matches all hosts. Each name in this list is matched as either
+list of host names that should not go through any proxy. If set to an asterisk
+\&\(aq*' only, it matches all hosts. Each name in this list is matched as either
a domain name which contains the hostname, or the hostname itself.
This environment variable disables use of the proxy even when specified with
@@ -3246,13 +4475,13 @@ The list of host names can also be include numerical IP addresses, and IPv6
versions should then be given without enclosing brackets.
IPv6 numerical addresses are compared as strings, so they will only match if
-the representations are the same: "::1" is the same as "::0:1" but they don't
+the representations are the same: "::1" is the same as "::0:1" but they do not
match.
.IP "CURL_SSL_BACKEND <TLS backend>"
If curl was built with support for "MultiSSL", meaning that it has built-in
support for more than one TLS backend, this environment variable can be set to
the case insensitive name of the particular backend to use when curl is
-invoked. Setting a name that isn't a built-in alternative will make curl
+invoked. Setting a name that is not a built-in alternative will make curl
stay with the default.
SSL backend names (case-insensitive): bearssl, gnutls, gskit, mbedtls,
@@ -3269,10 +4498,10 @@ analyze the TLS traffic in real time using network analyzing tools such as
Wireshark. This works with the following TLS backends: OpenSSL, libressl,
BoringSSL, GnuTLS, NSS and wolfSSL.
.SH "PROXY PROTOCOL PREFIXES"
-Since curl version 7.21.7, the proxy string may be specified with a
-protocol:// prefix to specify alternative proxy protocols.
+The proxy string may be specified with a protocol:// prefix to specify
+alternative proxy protocols.
-If no protocol is specified in the proxy string or if the string doesn't match
+If no protocol is specified in the proxy string or if the string does not match
a supported one, the proxy will be treated as an HTTP proxy.
The supported proxy protocol prefixes are as follows:
@@ -3303,42 +4532,42 @@ A feature or option that was needed to perform the desired request was not
enabled or was explicitly disabled at build-time. To make curl able to do
this, you probably need another build of libcurl!
.IP 5
-Couldn't resolve proxy. The given proxy host could not be resolved.
+Could not resolve proxy. The given proxy host could not be resolved.
.IP 6
-Couldn't resolve host. The given remote host could not be resolved.
+Could not resolve host. The given remote host could not be resolved.
.IP 7
Failed to connect to host.
.IP 8
-Weird server reply. The server sent data curl couldn't parse.
+Weird server reply. The server sent data curl could not parse.
.IP 9
FTP access denied. The server denied login or denied access to the particular
resource or directory you wanted to reach. Most often you tried to change to a
-directory that doesn't exist on the server.
+directory that does not exist on the server.
.IP 10
FTP accept failed. While waiting for the server to connect back when an active
FTP session is used, an error code was sent over the control connection or
similar.
.IP 11
-FTP weird PASS reply. Curl couldn't parse the reply sent to the PASS request.
+FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
.IP 12
During an active FTP session while waiting for the server to connect back to
curl, the timeout expired.
.IP 13
-FTP weird PASV reply, Curl couldn't parse the reply sent to the PASV request.
+FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
.IP 14
-FTP weird 227 format. Curl couldn't parse the 227-line the server sent.
+FTP weird 227 format. Curl could not parse the 227-line the server sent.
.IP 15
-FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+FTP cannot use host. Could not resolve the host IP we got in the 227-line.
.IP 16
HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is
somewhat generic and can be one out of several problems, see the error message
for details.
.IP 17
-FTP couldn't set binary. Couldn't change transfer method to binary.
+FTP could not set binary. Could not change transfer method to binary.
.IP 18
Partial file. Only a part of the file was transferred.
.IP 19
-FTP couldn't download/access the given file, the RETR (or similar) command
+FTP could not download/access the given file, the RETR (or similar) command
failed.
.IP 21
FTP quote error. A quote command returned error from the server.
@@ -3347,9 +4576,9 @@ HTTP page not retrieved. The requested url was not found or returned another
error with the HTTP error code being 400 or above. This return code only
appears if \fI\-f, \-\-fail\fP is used.
.IP 23
-Write error. Curl couldn't write data to a local filesystem or similar.
+Write error. Curl could not write data to a local filesystem or similar.
.IP 25
-FTP couldn't STOR file. The server denied the STOR operation, used for FTP
+FTP could not STOR file. The server denied the STOR operation, used for FTP
uploading.
.IP 26
Read error. Various reading problems.
@@ -3362,18 +4591,18 @@ conditions.
FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT
command, try doing a transfer using PASV instead!
.IP 31
-FTP couldn't use REST. The REST command failed. This command is used for
+FTP could not use REST. The REST command failed. This command is used for
resumed FTP transfers.
.IP 33
-HTTP range error. The range "command" didn't work.
+HTTP range error. The range "command" did not work.
.IP 34
HTTP post error. Internal post-request generation error.
.IP 35
SSL connect error. The SSL handshaking failed.
.IP 36
-Bad download resume. Couldn't continue an earlier aborted download.
+Bad download resume. Could not continue an earlier aborted download.
.IP 37
-FILE couldn't read file. Failed to open the file. Permissions?
+FILE could not read file. Failed to open the file. Permissions?
.IP 38
LDAP cannot bind. LDAP bind operation failed.
.IP 39
@@ -3395,9 +4624,9 @@ manual!
.IP 49
Malformed telnet option.
.IP 51
-The peer's SSL certificate or SSH MD5 fingerprint was not OK.
+The peer\(aqs SSL certificate or SSH MD5 fingerprint was not OK.
.IP 52
-The server didn't reply anything, which here is considered an error.
+The server did not reply anything, which here is considered an error.
.IP 53
SSL crypto engine not found.
.IP 54
@@ -3409,7 +4638,7 @@ Failure in receiving network data.
.IP 58
Problem with the local certificate.
.IP 59
-Couldn't use specified SSL cipher.
+Could not use specified SSL cipher.
.IP 60
Peer certificate cannot be authenticated with known CA certificates.
.IP 61
@@ -3453,9 +4682,9 @@ An unspecified error occurred during the SSH session.
.IP 80
Failed to shut down the SSL connection.
.IP 82
-Could not load CRL file, missing or wrong format (added in 7.19.0).
+Could not load CRL file, missing or wrong format.
.IP 83
-Issuer check failed (added in 7.19.0).
+Issuer check failed.
.IP 84
The FTP PRET command failed.
.IP 85
diff --git a/docs/examples/Makefile.m32 b/docs/examples/Makefile.m32
index 45ec8679c..c27b35f83 100644
--- a/docs/examples/Makefile.m32
+++ b/docs/examples/Makefile.m32
@@ -178,12 +178,10 @@ ARES = 1
endif
ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
RTMP = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
SSH2 = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssl,$(CFG)),-ssl)
@@ -230,6 +228,13 @@ ifeq ($(findstring -ngtcp2,$(CFG)),-ngtcp2)
NGTCP2 = 1
endif
+# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
+ifneq ($(SSH2)$(RTMP),)
+ ifeq ($(SSL)$(WINSSL),)
+ SSL = 1
+ endif
+endif
+
INCLUDES = -I. -I$(PROOT) -I$(PROOT)/include -I$(PROOT)/lib
ifdef DYN
@@ -284,7 +289,7 @@ ifdef SSL
endif
endif
ifneq "$(wildcard $(OPENSSL_INCLUDE)/openssl/opensslv.h)" "$(OPENSSL_INCLUDE)/openssl/opensslv.h"
- $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
+ $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
endif
ifndef OPENSSL_LIBPATH
OPENSSL_LIBS = -lssl -lcrypto
diff --git a/docs/examples/README.md b/docs/examples/README.md
index c83846566..78577f84f 100644
--- a/docs/examples/README.md
+++ b/docs/examples/README.md
@@ -16,14 +16,14 @@ Most examples should build fine using a command line like this:
`curl-config --cc --cflags --libs` -o example example.c
-Some compilers don't like having the arguments in this order but instead
+Some compilers do not like having the arguments in this order but instead
want you do reorganize them like:
`curl-config --cc` -o example example.c `curl-config --cflags --libs`
**Please** do not use the `curl.se` site as a test target for your
libcurl applications/experiments. Even if some of the examples use that site
-as a URL at some places, it doesn't mean that the URLs work or that we expect
+as a URL at some places, it does not mean that the URLs work or that we expect
you to actually torture our website with your tests! Thanks.
## Examples
diff --git a/docs/examples/anyauthput.c b/docs/examples/anyauthput.c
index 47b713a6c..cbb963390 100644
--- a/docs/examples/anyauthput.c
+++ b/docs/examples/anyauthput.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -154,7 +154,7 @@ int main(int argc, char **argv)
/* set user name and password for the authentication */
curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
- /* Now run off and do what you've been told! */
+ /* Now run off and do what you have been told! */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
diff --git a/docs/examples/chkspeed.c b/docs/examples/chkspeed.c
index f9e6f13d6..bc5387d77 100644
--- a/docs/examples/chkspeed.c
+++ b/docs/examples/chkspeed.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -156,7 +156,7 @@ int main(int argc, char *argv[])
/* send all data to this function */
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteCallback);
- /* some servers don't like requests that are made without a user-agent
+ /* some servers do not like requests that are made without a user-agent
field, so we provide one */
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT,
"libcurl-speedchecker/" CHKSPEED_VERSION);
@@ -206,7 +206,7 @@ int main(int argc, char *argv[])
/* cleanup curl stuff */
curl_easy_cleanup(curl_handle);
- /* we're done with libcurl, so clean it up */
+ /* we are done with libcurl, so clean it up */
curl_global_cleanup();
return 0;
diff --git a/docs/examples/cookie_interface.c b/docs/examples/cookie_interface.c
index 42cbe4649..9168247cf 100644
--- a/docs/examples/cookie_interface.c
+++ b/docs/examples/cookie_interface.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -69,7 +69,7 @@ main(void)
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
- char nline[256];
+ char nline[512];
curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
@@ -93,9 +93,9 @@ main(void)
#define snprintf _snprintf
#endif
/* Netscape format cookie */
- snprintf(nline, sizeof(nline), "%s\t%s\t%s\t%s\t%lu\t%s\t%s",
+ snprintf(nline, sizeof(nline), "%s\t%s\t%s\t%s\t%.0f\t%s\t%s",
".example.com", "TRUE", "/", "FALSE",
- (unsigned long)time(NULL) + 31337UL,
+ difftime(time(NULL) + 31337, (time_t)0),
"PREF", "hello example, i like you very much!");
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if(res != CURLE_OK) {
@@ -104,7 +104,7 @@ main(void)
return 1;
}
- /* HTTP-header style cookie. If you use the Set-Cookie format and don't
+ /* HTTP-header style cookie. If you use the Set-Cookie format and do not
specify a domain then the cookie is sent for any domain and will not be
modified, likely not what you intended. Starting in 7.43.0 any-domain
cookies will not be exported either. For more information refer to the
diff --git a/docs/examples/curlgtk.c b/docs/examples/curlgtk.c
index 51f4b458a..c14e4823e 100644
--- a/docs/examples/curlgtk.c
+++ b/docs/examples/curlgtk.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (c) 2000 - 2020 David Odin (aka DindinX) for MandrakeSoft
+ * Copyright (c) 2000 - 2021 David Odin (aka DindinX) for MandrakeSoft
*/
/* <DESC>
* use the libcurl in a gtk-threaded application
@@ -96,7 +96,7 @@ int main(int argc, char **argv)
gtk_widget_show_all(Window);
if(!g_thread_create(&my_thread, argv[1], FALSE, NULL) != 0)
- g_warning("can't create the thread");
+ g_warning("cannot create the thread");
gdk_threads_enter();
gtk_main();
diff --git a/docs/examples/ephiperfifo.c b/docs/examples/ephiperfifo.c
index 11761b977..af13169f3 100644
--- a/docs/examples/ephiperfifo.c
+++ b/docs/examples/ephiperfifo.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -224,7 +224,7 @@ static void timer_cb(GlobalInfo* g, int revents)
err = read(g->tfd, &count, sizeof(uint64_t));
if(err == -1) {
- /* Note that we may call the timer callback even if the timerfd isn't
+ /* Note that we may call the timer callback even if the timerfd is not
* readable. It's possible that there are multiple events stored in the
* epoll buffer (i.e. the timer may have fired multiple times). The
* event count is cleared after the first call so future events in the
@@ -292,7 +292,7 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act,
/* Initialize a new SockInfo structure */
static void addsock(curl_socket_t s, CURL *easy, int action, GlobalInfo *g)
{
- SockInfo *fdp = (SockInfo*)calloc(sizeof(SockInfo), 1);
+ SockInfo *fdp = (SockInfo*)calloc(1, sizeof(SockInfo));
fdp->global = g;
setsock(fdp, s, easy, action, g);
@@ -455,11 +455,9 @@ static void clean_fifo(GlobalInfo *g)
int g_should_exit_ = 0;
-void SignalHandler(int signo)
+void sigint_handler(int signo)
{
- if(signo == SIGINT) {
- g_should_exit_ = 1;
- }
+ g_should_exit_ = 1;
}
int main(int argc, char **argv)
@@ -472,7 +470,7 @@ int main(int argc, char **argv)
(void)argv;
g_should_exit_ = 0;
- signal(SIGINT, SignalHandler);
+ signal(SIGINT, sigint_handler);
memset(&g, 0, sizeof(GlobalInfo));
g.epfd = epoll_create1(EPOLL_CLOEXEC);
@@ -505,7 +503,7 @@ int main(int argc, char **argv)
curl_multi_setopt(g.multi, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
curl_multi_setopt(g.multi, CURLMOPT_TIMERDATA, &g);
- /* we don't call any curl_multi_socket*() function yet as we have no handles
+ /* we do not call any curl_multi_socket*() function yet as we have no handles
added! */
fprintf(MSG_OUT, "Entering wait loop\n");
diff --git a/docs/examples/evhiperfifo.c b/docs/examples/evhiperfifo.c
index 95c64865f..07cfada43 100644
--- a/docs/examples/evhiperfifo.c
+++ b/docs/examples/evhiperfifo.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -266,7 +266,7 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act,
/* Initialize a new SockInfo structure */
static void addsock(curl_socket_t s, CURL *easy, int action, GlobalInfo *g)
{
- SockInfo *fdp = calloc(sizeof(SockInfo), 1);
+ SockInfo *fdp = calloc(1, sizeof(SockInfo));
fdp->global = g;
setsock(fdp, s, easy, action, g);
@@ -439,7 +439,7 @@ int main(int argc, char **argv)
curl_multi_setopt(g.multi, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
curl_multi_setopt(g.multi, CURLMOPT_TIMERDATA, &g);
- /* we don't call any curl_multi_socket*() function yet as we have no handles
+ /* we do not call any curl_multi_socket*() function yet as we have no handles
added! */
ev_loop(g.loop, 0);
diff --git a/docs/examples/externalsocket.c b/docs/examples/externalsocket.c
index bb29b0e44..292a59621 100644
--- a/docs/examples/externalsocket.c
+++ b/docs/examples/externalsocket.c
@@ -97,7 +97,7 @@ int main(void)
#ifdef WIN32
WSADATA wsaData;
- int initwsa = WSAStartup(MAKEWORD(2, 0), &wsaData);
+ int initwsa = WSAStartup(MAKEWORD(2, 2), &wsaData);
if(initwsa) {
printf("WSAStartup failed: %d\n", initwsa);
return 1;
diff --git a/docs/examples/fileupload.c b/docs/examples/fileupload.c
index eb484e9c0..afea64316 100644
--- a/docs/examples/fileupload.c
+++ b/docs/examples/fileupload.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -38,11 +38,11 @@ int main(void)
fd = fopen("debugit", "rb"); /* open file to upload */
if(!fd)
- return 1; /* can't continue */
+ return 1; /* cannot continue */
/* to get the file size */
if(fstat(fileno(fd), &file_info) != 0)
- return 1; /* can't continue */
+ return 1; /* cannot continue */
curl = curl_easy_init();
if(curl) {
diff --git a/docs/examples/fopen.c b/docs/examples/fopen.c
index 932140e3e..02ab11905 100644
--- a/docs/examples/fopen.c
+++ b/docs/examples/fopen.c
@@ -135,7 +135,7 @@ static int fill_buffer(URL_FILE *file, size_t want)
CURLMcode mc; /* curl_multi_fdset() return code */
/* only attempt to fill buffer if transactions still running and buffer
- * doesn't exceed required size already
+ * does not exceed required size already
*/
if((!file->still_running) || (file->buffer_pos > want))
return 0;
diff --git a/docs/examples/ftpget.c b/docs/examples/ftpget.c
index 300a2821c..ad9a383e7 100644
--- a/docs/examples/ftpget.c
+++ b/docs/examples/ftpget.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -40,7 +40,7 @@ static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
/* open file for writing */
out->stream = fopen(out->filename, "wb");
if(!out->stream)
- return -1; /* failure, can't open file to write */
+ return -1; /* failure, cannot open file to write */
}
return fwrite(buffer, size, nmemb, out->stream);
}
diff --git a/docs/examples/ftpsget.c b/docs/examples/ftpsget.c
index 44ae3ffae..9fcbceda8 100644
--- a/docs/examples/ftpsget.c
+++ b/docs/examples/ftpsget.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -42,7 +42,7 @@ static size_t my_fwrite(void *buffer, size_t size, size_t nmemb,
/* open file for writing */
out->stream = fopen(out->filename, "wb");
if(!out->stream)
- return -1; /* failure, can't open file to write */
+ return -1; /* failure, cannot open file to write */
}
return fwrite(buffer, size, nmemb, out->stream);
}
diff --git a/docs/examples/ftpupload.c b/docs/examples/ftpupload.c
index 7ed7634ae..1b7bbf26a 100644
--- a/docs/examples/ftpupload.c
+++ b/docs/examples/ftpupload.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -119,7 +119,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
(curl_off_t)fsize);
- /* Now run off and do what you've been told! */
+ /* Now run off and do what you have been told! */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
diff --git a/docs/examples/getinmemory.c b/docs/examples/getinmemory.c
index 120ceac3b..fcb97eab0 100644
--- a/docs/examples/getinmemory.c
+++ b/docs/examples/getinmemory.c
@@ -81,7 +81,7 @@ int main(void)
/* we pass our 'chunk' struct to the callback function */
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
- /* some servers don't like requests that are made without a user-agent
+ /* some servers do not like requests that are made without a user-agent
field, so we provide one */
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
@@ -109,7 +109,7 @@ int main(void)
free(chunk.memory);
- /* we're done with libcurl, so clean it up */
+ /* we are done with libcurl, so clean it up */
curl_global_cleanup();
return 0;
diff --git a/docs/examples/ghiper.c b/docs/examples/ghiper.c
index d58adb1e6..9ebc056fd 100644
--- a/docs/examples/ghiper.c
+++ b/docs/examples/ghiper.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -427,7 +427,7 @@ int main(int argc, char **argv)
curl_multi_setopt(g->multi, CURLMOPT_TIMERFUNCTION, update_timeout_cb);
curl_multi_setopt(g->multi, CURLMOPT_TIMERDATA, g);
- /* we don't call any curl_multi_socket*() function yet as we have no handles
+ /* we do not call any curl_multi_socket*() function yet as we have no handles
added! */
g_main_loop_run(gmain);
diff --git a/docs/examples/hiperfifo.c b/docs/examples/hiperfifo.c
index d7d8725bf..5af990071 100644
--- a/docs/examples/hiperfifo.c
+++ b/docs/examples/hiperfifo.c
@@ -266,7 +266,7 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act,
/* Initialize a new SockInfo structure */
static void addsock(curl_socket_t s, CURL *easy, int action, GlobalInfo *g)
{
- SockInfo *fdp = calloc(sizeof(SockInfo), 1);
+ SockInfo *fdp = calloc(1, sizeof(SockInfo));
fdp->global = g;
setsock(fdp, s, easy, action, g);
@@ -447,13 +447,13 @@ int main(int argc, char **argv)
curl_multi_setopt(g.multi, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
curl_multi_setopt(g.multi, CURLMOPT_TIMERDATA, &g);
- /* we don't call any curl_multi_socket*() function yet as we have no handles
+ /* we do not call any curl_multi_socket*() function yet as we have no handles
added! */
event_base_dispatch(g.evbase);
- /* this, of course, won't get called since only way to stop this program is
- via ctrl-C, but it is here to show how cleanup /would/ be done. */
+ /* this, of course, will not get called since only way to stop this program
+ is via ctrl-C, but it is here to show how cleanup /would/ be done. */
clean_fifo(&g);
event_del(&g.timer_event);
event_base_free(g.evbase);
diff --git a/docs/examples/htmltidy.c b/docs/examples/htmltidy.c
index be5350cd4..73ac6fb88 100644
--- a/docs/examples/htmltidy.c
+++ b/docs/examples/htmltidy.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -28,8 +28,8 @@
*/
#include <stdio.h>
-#include <tidy.h>
-#include <tidybuffio.h>
+#include <tidy/tidy.h>
+#include <tidy/tidybuffio.h>
#include <curl/curl.h>
/* curl write callback, to fill tidy's input buffer... */
@@ -53,14 +53,14 @@ void dumpNode(TidyDoc doc, TidyNode tnod, int indent)
printf("%*.*s%s ", indent, indent, "<", name);
/* walk the attribute list */
for(attr = tidyAttrFirst(child); attr; attr = tidyAttrNext(attr) ) {
- printf(tidyAttrName(attr));
+ printf("%s", tidyAttrName(attr));
tidyAttrValue(attr)?printf("=\"%s\" ",
tidyAttrValue(attr)):printf(" ");
}
printf(">\n");
}
else {
- /* if it doesn't have a name, then it's probably text, cdata, etc... */
+ /* if it does not have a name, then it's probably text, cdata, etc... */
TidyBuffer buf;
tidyBufInit(&buf);
tidyNodeGetText(doc, child, &buf);
diff --git a/docs/examples/http2-download.c b/docs/examples/http2-download.c
index 6ba82f35b..cb0ef13ac 100644
--- a/docs/examples/http2-download.c
+++ b/docs/examples/http2-download.c
@@ -37,7 +37,7 @@
#include <curl/mprintf.h>
#ifndef CURLPIPE_MULTIPLEX
-/* This little trick will just make sure that we don't enable pipelining for
+/* This little trick will just make sure that we do not enable pipelining for
libcurls old enough to not have this symbol. It is _not_ defined to zero in
a recent libcurl header. */
#define CURLPIPE_MULTIPLEX 0
diff --git a/docs/examples/http2-pushinmemory.c b/docs/examples/http2-pushinmemory.c
index 7610ccc35..a9c364859 100644
--- a/docs/examples/http2-pushinmemory.c
+++ b/docs/examples/http2-pushinmemory.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -103,7 +103,7 @@ static int server_push_callback(CURL *parent,
(void)num_headers; /* unused */
if(pushindex == MAX_FILES)
- /* can't fit anymore */
+ /* cannot fit anymore */
return CURL_PUSH_DENY;
/* write to this buffer */
diff --git a/docs/examples/http2-serverpush.c b/docs/examples/http2-serverpush.c
index 3d32f2245..b7c16371a 100644
--- a/docs/examples/http2-serverpush.c
+++ b/docs/examples/http2-serverpush.c
@@ -35,7 +35,7 @@
#include <curl/curl.h>
#ifndef CURLPIPE_MULTIPLEX
-#error "too old libcurl, can't do HTTP/2 server push!"
+#error "too old libcurl, cannot do HTTP/2 server push!"
#endif
static
@@ -180,7 +180,7 @@ static int server_push_callback(CURL *parent,
/* here's a new stream, save it in a new file for each new push */
out = fopen(filename, "wb");
if(!out) {
- /* if we can't save it, deny it */
+ /* if we cannot save it, deny it */
fprintf(stderr, "Failed to create output file for push\n");
return CURL_PUSH_DENY;
}
diff --git a/docs/examples/http2-upload.c b/docs/examples/http2-upload.c
index 9485825b3..742177f69 100644
--- a/docs/examples/http2-upload.c
+++ b/docs/examples/http2-upload.c
@@ -39,7 +39,7 @@
#include <curl/mprintf.h>
#ifndef CURLPIPE_MULTIPLEX
-/* This little trick will just make sure that we don't enable pipelining for
+/* This little trick will just make sure that we do not enable pipelining for
libcurls old enough to not have this symbol. It is _not_ defined to zero in
a recent libcurl header. */
#define CURLPIPE_MULTIPLEX 0
@@ -124,7 +124,7 @@ int my_trace(CURL *handle, curl_infotype type,
known_offset = 1;
}
secs = epoch_offset + tv.tv_sec;
- now = localtime(&secs); /* not thread safe but we don't care */
+ now = localtime(&secs); /* not thread safe but we do not care */
curl_msnprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld",
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
diff --git a/docs/examples/http3.c b/docs/examples/http3.c
index d462d2acc..8553e3ac8 100644
--- a/docs/examples/http3.c
+++ b/docs/examples/http3.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -35,7 +35,7 @@ int main(void)
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
- /* Forcing HTTP/3 will make the connection fail if the server isn't
+ /* Forcing HTTP/3 will make the connection fail if the server is not
accessible over QUIC + HTTP/3 on the given host and port.
Consider using CURLOPT_ALTSVC instead! */
curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_3);
diff --git a/docs/examples/httpcustomheader.c b/docs/examples/httpcustomheader.c
index 7a1e1d855..f431177f2 100644
--- a/docs/examples/httpcustomheader.c
+++ b/docs/examples/httpcustomheader.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -45,7 +45,7 @@ int main(void)
chunk = curl_slist_append(chunk, "Host: example.com");
/* Add a header with "blank" contents to the right of the colon. Note that
- we're then using a semicolon in the string we pass to curl! */
+ we are then using a semicolon in the string we pass to curl! */
chunk = curl_slist_append(chunk, "X-silly-header;");
/* set our custom set of headers */
diff --git a/docs/examples/httpput-postfields.c b/docs/examples/httpput-postfields.c
index 83c2d1f00..eb74eb9d7 100644
--- a/docs/examples/httpput-postfields.c
+++ b/docs/examples/httpput-postfields.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -67,7 +67,7 @@ int main(int argc, char **argv)
headers = curl_slist_append(headers, "Content-Type: literature/classic");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
- /* pass on content in request body. When CURLOPT_POSTFIELDSIZE isn't used,
+ /* pass on content in request body. When CURLOPT_POSTFIELDSIZE is not used,
curl does strlen to get the size. */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, olivertwist);
@@ -82,7 +82,7 @@ int main(int argc, char **argv)
name, not only a directory */
curl_easy_setopt(curl, CURLOPT_URL, url);
- /* Now run off and do what you've been told! */
+ /* Now run off and do what you have been told! */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
diff --git a/docs/examples/httpput.c b/docs/examples/httpput.c
index 8365ab208..90749da2d 100644
--- a/docs/examples/httpput.c
+++ b/docs/examples/httpput.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -104,7 +104,7 @@ int main(int argc, char **argv)
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
(curl_off_t)file_info.st_size);
- /* Now run off and do what you've been told! */
+ /* Now run off and do what you have been told! */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
diff --git a/docs/examples/https.c b/docs/examples/https.c
index 6dbf8bd0c..675441a17 100644
--- a/docs/examples/https.c
+++ b/docs/examples/https.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -39,7 +39,7 @@ int main(void)
#ifdef SKIP_PEER_VERIFICATION
/*
- * If you want to connect to a site who isn't using a certificate that is
+ * If you want to connect to a site who is not using a certificate that is
* signed by one of the certs in the CA bundle you have, you can skip the
* verification of the server's certificate. This makes the connection
* A LOT LESS SECURE.
@@ -53,7 +53,7 @@ int main(void)
#ifdef SKIP_HOSTNAME_VERIFICATION
/*
- * If the site you're connecting to uses a different host name that what
+ * If the site you are connecting to uses a different host name that what
* they have mentioned in their server certificate's commonName (or
* subjectAltName) fields, libcurl will refuse to connect. You can skip
* this check, but this will make the connection less secure.
diff --git a/docs/examples/imap-append.c b/docs/examples/imap-append.c
index 8dc6d23fd..78ecc8d01 100644
--- a/docs/examples/imap-append.c
+++ b/docs/examples/imap-append.c
@@ -69,7 +69,7 @@ static size_t payload_source(char *ptr, size_t size, size_t nmemb, void *userp)
data = &payload_text[upload_ctx->bytes_read];
- if(data) {
+ if(*data) {
size_t len = strlen(data);
if(room < len)
len = room;
@@ -101,7 +101,7 @@ int main(void)
* SELECT to ensure you are creating the message in the OUTBOX. */
curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com/100");
- /* In this case, we're using a callback function to specify the data. You
+ /* In this case, we are using a callback function to specify the data. You
* could just use the CURLOPT_READDATA option to specify a FILE pointer to
* read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
diff --git a/docs/examples/imap-ssl.c b/docs/examples/imap-ssl.c
index ce890c97b..e43639e16 100644
--- a/docs/examples/imap-ssl.c
+++ b/docs/examples/imap-ssl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -51,7 +51,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_URL,
"imaps://imap.example.com/INBOX/;UID=1");
- /* If you want to connect to a site who isn't using a certificate that is
+ /* If you want to connect to a site who is not using a certificate that is
* signed by one of the certs in the CA bundle you have, you can skip the
* verification of the server's certificate. This makes the connection
* A LOT LESS SECURE.
@@ -63,7 +63,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif
- /* If the site you're connecting to uses a different host name that what
+ /* If the site you are connecting to uses a different host name that what
* they have mentioned in their server certificate's commonName (or
* subjectAltName) fields, libcurl will refuse to connect. You can skip
* this check, but this will make the connection less secure. */
diff --git a/docs/examples/imap-store.c b/docs/examples/imap-store.c
index d39c6eadf..9a87a7993 100644
--- a/docs/examples/imap-store.c
+++ b/docs/examples/imap-store.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -62,7 +62,7 @@ int main(void)
curl_easy_strerror(res));
else {
/* Set the EXPUNGE command, although you can use the CLOSE command if you
- * don't want to know the result of the STORE */
+ * do not want to know the result of the STORE */
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "EXPUNGE");
/* Perform the second custom request */
diff --git a/docs/examples/imap-tls.c b/docs/examples/imap-tls.c
index d80f54d64..d8b587d66 100644
--- a/docs/examples/imap-tls.c
+++ b/docs/examples/imap-tls.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -50,14 +50,14 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_URL,
"imap://imap.example.com/INBOX/;UID=1");
- /* In this example, we'll start with a plain text connection, and upgrade
+ /* In this example, we will start with a plain text connection, and upgrade
* to Transport Layer Security (TLS) using the STARTTLS command. Be careful
* of using CURLUSESSL_TRY here, because if TLS upgrade fails, the transfer
* will continue anyway - see the security discussion in the libcurl
* tutorial for more details. */
curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL);
- /* If your server doesn't have a valid certificate, then you can disable
+ /* If your server does not have a valid certificate, then you can disable
* part of the Transport Layer Security protection by setting the
* CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST options to 0 (false).
* curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
diff --git a/docs/examples/multi-app.c b/docs/examples/multi-app.c
index 76c25750b..58ad03f81 100644
--- a/docs/examples/multi-app.c
+++ b/docs/examples/multi-app.c
@@ -58,7 +58,7 @@ int main(void)
for(i = 0; i<HANDLECOUNT; i++)
handles[i] = curl_easy_init();
- /* set the options (I left out a few, you'll get the point anyway) */
+ /* set the options (I left out a few, you will get the point anyway) */
curl_easy_setopt(handles[HTTP_HANDLE], CURLOPT_URL, "https://example.com");
curl_easy_setopt(handles[FTP_HANDLE], CURLOPT_URL, "ftp://example.com");
diff --git a/docs/examples/multi-debugcallback.c b/docs/examples/multi-debugcallback.c
index af79e56df..b173b724f 100644
--- a/docs/examples/multi-debugcallback.c
+++ b/docs/examples/multi-debugcallback.c
@@ -135,7 +135,7 @@ int main(void)
http_handle = curl_easy_init();
- /* set the options (I left out a few, you'll get the point anyway) */
+ /* set the options (I left out a few, you will get the point anyway) */
curl_easy_setopt(http_handle, CURLOPT_URL, "https://www.example.com/");
curl_easy_setopt(http_handle, CURLOPT_DEBUGFUNCTION, my_trace);
diff --git a/docs/examples/multi-event.c b/docs/examples/multi-event.c
index ebe9513ed..6da85134b 100644
--- a/docs/examples/multi-event.c
+++ b/docs/examples/multi-event.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -153,7 +153,7 @@ static int start_timeout(CURLM *multi, long timeout_ms, void *userp)
}
else {
if(timeout_ms == 0)
- timeout_ms = 1; /* 0 means directly call socket_action, but we'll do it
+ timeout_ms = 1; /* 0 means directly call socket_action, but we will do it
in a bit */
struct timeval tv;
tv.tv_sec = timeout_ms / 1000;
diff --git a/docs/examples/multi-legacy.c b/docs/examples/multi-legacy.c
index ca1a9b93f..85ec55d0f 100644
--- a/docs/examples/multi-legacy.c
+++ b/docs/examples/multi-legacy.c
@@ -58,7 +58,7 @@ int main(void)
for(i = 0; i<HANDLECOUNT; i++)
handles[i] = curl_easy_init();
- /* set the options (I left out a few, you'll get the point anyway) */
+ /* set the options (I left out a few, you will get the point anyway) */
curl_easy_setopt(handles[HTTP_HANDLE], CURLOPT_URL, "https://example.com");
curl_easy_setopt(handles[FTP_HANDLE], CURLOPT_URL, "ftp://example.com");
diff --git a/docs/examples/multi-single.c b/docs/examples/multi-single.c
index e340231fb..ec27da1ed 100644
--- a/docs/examples/multi-single.c
+++ b/docs/examples/multi-single.c
@@ -56,7 +56,7 @@ int main(void)
http_handle = curl_easy_init();
- /* set the options (I left out a few, you'll get the point anyway) */
+ /* set the options (I left out a few, you will get the point anyway) */
curl_easy_setopt(http_handle, CURLOPT_URL, "https://www.example.com/");
/* init a multi stack */
diff --git a/docs/examples/multi-uv.c b/docs/examples/multi-uv.c
index 3da61a23e..f8985a8d7 100644
--- a/docs/examples/multi-uv.c
+++ b/docs/examples/multi-uv.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -163,7 +163,7 @@ static int start_timeout(CURLM *multi, long timeout_ms, void *userp)
}
else {
if(timeout_ms == 0)
- timeout_ms = 1; /* 0 means directly call socket_action, but we'll do it
+ timeout_ms = 1; /* 0 means directly call socket_action, but we will do it
in a bit */
uv_timer_start(&timeout, on_timeout, timeout_ms, 0);
}
diff --git a/docs/examples/multithread.c b/docs/examples/multithread.c
index ada1e4ac8..003c312cd 100644
--- a/docs/examples/multithread.c
+++ b/docs/examples/multithread.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -41,9 +41,9 @@
*/
const char * const urls[NUMT]= {
"https://curl.se/",
- "ftp://cool.haxx.se/",
- "https://www.cag.se/",
- "www.haxx.se"
+ "ftp://example.com/",
+ "https://example.net/",
+ "www.example"
};
static void *pull_one_url(void *url)
diff --git a/docs/examples/pop3-ssl.c b/docs/examples/pop3-ssl.c
index 4362925d6..be492890c 100644
--- a/docs/examples/pop3-ssl.c
+++ b/docs/examples/pop3-ssl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -50,7 +50,7 @@ int main(void)
* pop3s:// rather than pop3:// to request a SSL based connection. */
curl_easy_setopt(curl, CURLOPT_URL, "pop3s://pop.example.com/1");
- /* If you want to connect to a site who isn't using a certificate that is
+ /* If you want to connect to a site who is not using a certificate that is
* signed by one of the certs in the CA bundle you have, you can skip the
* verification of the server's certificate. This makes the connection
* A LOT LESS SECURE.
@@ -62,7 +62,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif
- /* If the site you're connecting to uses a different host name that what
+ /* If the site you are connecting to uses a different host name that what
* they have mentioned in their server certificate's commonName (or
* subjectAltName) fields, libcurl will refuse to connect. You can skip
* this check, but this will make the connection less secure. */
diff --git a/docs/examples/pop3-tls.c b/docs/examples/pop3-tls.c
index 1ce97a5c1..496a3de2d 100644
--- a/docs/examples/pop3-tls.c
+++ b/docs/examples/pop3-tls.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -49,14 +49,14 @@ int main(void)
/* This will retrieve message 1 from the user's mailbox */
curl_easy_setopt(curl, CURLOPT_URL, "pop3://pop.example.com/1");
- /* In this example, we'll start with a plain text connection, and upgrade
+ /* In this example, we will start with a plain text connection, and upgrade
* to Transport Layer Security (TLS) using the STLS command. Be careful of
* using CURLUSESSL_TRY here, because if TLS upgrade fails, the transfer
* will continue anyway - see the security discussion in the libcurl
* tutorial for more details. */
curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL);
- /* If your server doesn't have a valid certificate, then you can disable
+ /* If your server does not have a valid certificate, then you can disable
* part of the Transport Layer Security protection by setting the
* CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST options to 0 (false).
* curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
diff --git a/docs/examples/postinmemory.c b/docs/examples/postinmemory.c
index e3a676f2c..d0f797042 100644
--- a/docs/examples/postinmemory.c
+++ b/docs/examples/postinmemory.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -75,13 +75,13 @@ int main(void)
/* we pass our 'chunk' struct to the callback function */
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
- /* some servers don't like requests that are made without a user-agent
+ /* some servers do not like requests that are made without a user-agent
field, so we provide one */
curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postthis);
- /* if we don't provide POSTFIELDSIZE, libcurl will strlen() by
+ /* if we do not provide POSTFIELDSIZE, libcurl will strlen() by
itself */
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(postthis));
diff --git a/docs/examples/postit2-formadd.c b/docs/examples/postit2-formadd.c
index 43dbb3918..cef89f6c9 100644
--- a/docs/examples/postit2-formadd.c
+++ b/docs/examples/postit2-formadd.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -26,7 +26,7 @@
/* Example code that uploads a file name 'foo' to a remote script that accepts
* "HTML form based" (as described in RFC1738) uploads using HTTP POST.
*
- * The imaginary form we'll fill in looks like:
+ * The imaginary form we will fill in looks like:
*
* <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
* Enter file: <input type="file" name="sendfile" size="40">
diff --git a/docs/examples/postit2.c b/docs/examples/postit2.c
index 95b565efe..923fead4a 100644
--- a/docs/examples/postit2.c
+++ b/docs/examples/postit2.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -26,7 +26,7 @@
/* Example code that uploads a file name 'foo' to a remote script that accepts
* "HTML form based" (as described in RFC1738) uploads using HTTP POST.
*
- * The imaginary form we'll fill in looks like:
+ * The imaginary form we will fill in looks like:
*
* <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
* Enter file: <input type="file" name="sendfile" size="40">
diff --git a/docs/examples/progressfunc.c b/docs/examples/progressfunc.c
index 00c67face..68f47d594 100644
--- a/docs/examples/progressfunc.c
+++ b/docs/examples/progressfunc.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -112,7 +112,7 @@ int main(void)
#if LIBCURL_VERSION_NUM >= 0x072000
/* xferinfo was introduced in 7.32.0, no earlier libcurl versions will
- compile as they won't have the symbols around.
+ compile as they will not have the symbols around.
If built with a newer libcurl, but running with an older libcurl:
curl_easy_setopt() will fail in run-time trying to set the new
diff --git a/docs/examples/sendrecv.c b/docs/examples/sendrecv.c
index 9f4082926..44741aeba 100644
--- a/docs/examples/sendrecv.c
+++ b/docs/examples/sendrecv.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -63,9 +63,9 @@ int main(void)
const char *request = "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n";
size_t request_len = strlen(request);
- /* A general note of caution here: if you're using curl_easy_recv() or
+ /* A general note of caution here: if you are using curl_easy_recv() or
curl_easy_send() to implement HTTP or _any_ other protocol libcurl
- supports "natively", you're doing it wrong and you should stop.
+ supports "natively", you are doing it wrong and you should stop.
This example uses HTTP only to show how to use this API, it does not
suggest that writing an application doing this is sensible.
@@ -87,7 +87,8 @@ int main(void)
return 1;
}
- /* Extract the socket from the curl handle - we'll need it for waiting. */
+ /* Extract the socket from the curl handle - we will need it for
+ waiting. */
res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
if(res != CURLE_OK) {
diff --git a/docs/examples/sftpget.c b/docs/examples/sftpget.c
index 37840c918..3c74d2abc 100644
--- a/docs/examples/sftpget.c
+++ b/docs/examples/sftpget.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -34,8 +34,8 @@
/*
* This is an example showing how to get a single file from an SFTP server.
* It delays the actual destination file creation until the first write
- * callback so that it won't create an empty file in case the remote file
- * doesn't exist or something else fails.
+ * callback so that it will not create an empty file in case the remote file
+ * does not exist or something else fails.
*/
struct FtpFile {
@@ -51,7 +51,7 @@ static size_t my_fwrite(void *buffer, size_t size, size_t nmemb,
/* open file for writing */
out->stream = fopen(out->filename, "wb");
if(!out->stream)
- return -1; /* failure, can't open file to write */
+ return -1; /* failure, cannot open file to write */
}
return fwrite(buffer, size, nmemb, out->stream);
}
diff --git a/docs/examples/simplepost.c b/docs/examples/simplepost.c
index 8580c5e9d..70252a41a 100644
--- a/docs/examples/simplepost.c
+++ b/docs/examples/simplepost.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -39,7 +39,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postthis);
- /* if we don't provide POSTFIELDSIZE, libcurl will strlen() by
+ /* if we do not provide POSTFIELDSIZE, libcurl will strlen() by
itself */
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(postthis));
diff --git a/docs/examples/simplessl.c b/docs/examples/simplessl.c
index d4d8b9ea6..f34ee4740 100644
--- a/docs/examples/simplessl.c
+++ b/docs/examples/simplessl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -35,7 +35,7 @@
3.1. set a #define USE_ENGINE
3.2. set pEngine to the name of the crypto engine you use
3.3. set pKeyName to the key identifier you want to use
- 4. if you don't use a crypto engine:
+ 4. if you do not use a crypto engine:
4.1. set pKeyName to the file name of your client key
4.2. if the format of the key file is DER, set pKeyType to "DER"
@@ -86,14 +86,14 @@ int main(void)
/* use crypto engine */
if(curl_easy_setopt(curl, CURLOPT_SSLENGINE, pEngine) != CURLE_OK) {
/* load the crypto engine */
- fprintf(stderr, "can't set crypto engine\n");
+ fprintf(stderr, "cannot set crypto engine\n");
break;
}
if(curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1L) != CURLE_OK) {
/* set the crypto engine as default */
/* only needed for the first time you load
a engine in a curl object... */
- fprintf(stderr, "can't set crypto engine as default\n");
+ fprintf(stderr, "cannot set crypto engine as default\n");
break;
}
}
@@ -119,7 +119,7 @@ int main(void)
/* set the file with the certs vaildating the server */
curl_easy_setopt(curl, CURLOPT_CAINFO, pCACertFile);
- /* disconnect if we can't validate server's cert */
+ /* disconnect if we cannot validate server's cert */
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
/* Perform the request, res will get the return code */
diff --git a/docs/examples/smooth-gtk-thread.c b/docs/examples/smooth-gtk-thread.c
index 81d405eaf..231c0dd25 100644
--- a/docs/examples/smooth-gtk-thread.c
+++ b/docs/examples/smooth-gtk-thread.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -60,55 +60,47 @@ const char * const urls[]= {
size_t write_file(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
- /* printf("write_file\n"); */
return fwrite(ptr, size, nmemb, stream);
}
-/* https://weather.com/weather/today/l/46214?cc=*&dayf=5&unit=i */
-void *pull_one_url(void *NaN)
+static void run_one(gchar *http, int j)
{
- /* Stop threads from entering unless j is incremented */
- pthread_mutex_lock(&lock);
- while(j < num_urls) {
- CURL *curl;
- gchar *http;
+ FILE *outfile = fopen(urls[j], "wb");
+ CURL *curl;
+ curl = curl_easy_init();
+ if(curl) {
printf("j = %d\n", j);
- http =
- g_strdup_printf("xoap.weather.com/weather/local/%s?cc=*&dayf=5&unit=i\n",
- urls[j]);
-
- printf("http %s", http);
-
- curl = curl_easy_init();
- if(curl) {
-
- FILE *outfile = fopen(urls[j], "wb");
-
- /* Set the URL and transfer type */
- curl_easy_setopt(curl, CURLOPT_URL, http);
-
- /* Write to the file */
- curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_file);
-
- j++; /* critical line */
- pthread_mutex_unlock(&lock);
+ /* Set the URL and transfer type */
+ curl_easy_setopt(curl, CURLOPT_URL, http);
- curl_easy_perform(curl);
+ /* Write to the file */
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_file);
+ curl_easy_perform(curl);
- fclose(outfile);
- printf("fclose\n");
+ fclose(outfile);
+ curl_easy_cleanup(curl);
+ }
+}
- curl_easy_cleanup(curl);
+void *pull_one_url(void *NaN)
+{
+ /* protect the reading and increasing of 'j' with a mutex */
+ pthread_mutex_lock(&lock);
+ while(j < num_urls) {
+ int i = j;
+ j++;
+ pthread_mutex_unlock(&lock);
+ http = g_strdup_printf("https://example.com/%s", urls[i]);
+ if(http) {
+ run_one(http, i);
+ g_free(http);
}
- g_free(http);
-
- /* Adds more latency, testing the mutex.*/
- sleep(1);
-
- } /* end while */
+ pthread_mutex_lock(&lock);
+ }
+ pthread_mutex_unlock(&lock);
return NULL;
}
@@ -130,7 +122,7 @@ void *create_thread(void *progress_bar)
pthread_t tid[NUMT];
int i;
- /* Make sure I don't create more threads than urls. */
+ /* Make sure I do not create more threads than urls. */
for(i = 0; i < NUMT && i < num_urls ; i++) {
int error = pthread_create(&tid[i],
NULL, /* default attributes please */
@@ -214,7 +206,7 @@ int main(int argc, char **argv)
G_CALLBACK(cb_delete), NULL);
if(!g_thread_create(&create_thread, progress_bar, FALSE, NULL) != 0)
- g_warning("can't create the thread");
+ g_warning("cannot create the thread");
gtk_main();
gdk_threads_leave();
diff --git a/docs/examples/smtp-authzid.c b/docs/examples/smtp-authzid.c
index e541f0905..b315b215c 100644
--- a/docs/examples/smtp-authzid.c
+++ b/docs/examples/smtp-authzid.c
@@ -113,7 +113,7 @@ int main(void)
/* Force PLAIN authentication */
curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, "AUTH=PLAIN");
- /* Note that this option isn't strictly required, omitting it will result
+ /* Note that this option is not strictly required, omitting it will result
* in libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise,
@@ -127,7 +127,7 @@ int main(void)
recipients = curl_slist_append(recipients, TO_ADDR);
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* We're using a callback function to specify the payload (the headers and
+ /* We are using a callback function to specify the payload (the headers and
* body of the message). You could just use the CURLOPT_READDATA option to
* specify a FILE pointer to read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
@@ -145,13 +145,13 @@ int main(void)
/* Free the list of recipients */
curl_slist_free_all(recipients);
- /* curl won't send the QUIT command until you call cleanup, so you should
- * be able to re-use this connection for additional messages (setting
- * CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and calling
- * curl_easy_perform() again. It may not be a good idea to keep the
- * connection open for a very long time though (more than a few minutes
- * may result in the server timing out the connection), and you do want to
- * clean up in the end.
+ /* curl will not send the QUIT command until you call cleanup, so you
+ * should be able to re-use this connection for additional messages
+ * (setting CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and
+ * calling curl_easy_perform() again. It may not be a good idea to keep
+ * the connection open for a very long time though (more than a few
+ * minutes may result in the server timing out the connection), and you do
+ * want to clean up in the end.
*/
curl_easy_cleanup(curl);
}
diff --git a/docs/examples/smtp-expn.c b/docs/examples/smtp-expn.c
index 9de5b3246..2c11c4f84 100644
--- a/docs/examples/smtp-expn.c
+++ b/docs/examples/smtp-expn.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -66,10 +66,10 @@ int main(void)
/* Free the list of recipients */
curl_slist_free_all(recipients);
- /* Curl won't send the QUIT command until you call cleanup, so you should
- * be able to re-use this connection for additional requests. It may not be
- * a good idea to keep the connection open for a very long time though
- * (more than a few minutes may result in the server timing out the
+ /* curl will not send the QUIT command until you call cleanup, so you
+ * should be able to re-use this connection for additional requests. It
+ * may not be a good idea to keep the connection open for a very long time
+ * though (more than a few minutes may result in the server timing out the
* connection) and you do want to clean up in the end.
*/
curl_easy_cleanup(curl);
diff --git a/docs/examples/smtp-mail.c b/docs/examples/smtp-mail.c
index 5159786c4..2c0cfb253 100644
--- a/docs/examples/smtp-mail.c
+++ b/docs/examples/smtp-mail.c
@@ -99,7 +99,7 @@ int main(void)
/* This is the URL for your mailserver */
curl_easy_setopt(curl, CURLOPT_URL, "smtp://mail.example.com");
- /* Note that this option isn't strictly required, omitting it will result
+ /* Note that this option is not strictly required, omitting it will result
* in libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise,
@@ -115,7 +115,7 @@ int main(void)
recipients = curl_slist_append(recipients, CC_ADDR);
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* We're using a callback function to specify the payload (the headers and
+ /* We are using a callback function to specify the payload (the headers and
* body of the message). You could just use the CURLOPT_READDATA option to
* specify a FILE pointer to read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
@@ -133,13 +133,13 @@ int main(void)
/* Free the list of recipients */
curl_slist_free_all(recipients);
- /* curl won't send the QUIT command until you call cleanup, so you should
- * be able to re-use this connection for additional messages (setting
- * CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and calling
- * curl_easy_perform() again. It may not be a good idea to keep the
- * connection open for a very long time though (more than a few minutes
- * may result in the server timing out the connection), and you do want to
- * clean up in the end.
+ /* curl will not send the QUIT command until you call cleanup, so you
+ * should be able to re-use this connection for additional messages
+ * (setting CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and
+ * calling curl_easy_perform() again. It may not be a good idea to keep
+ * the connection open for a very long time though (more than a few
+ * minutes may result in the server timing out the connection), and you do
+ * want to clean up in the end.
*/
curl_easy_cleanup(curl);
}
diff --git a/docs/examples/smtp-mime.c b/docs/examples/smtp-mime.c
index 4a2ff19ce..564f920d2 100644
--- a/docs/examples/smtp-mime.c
+++ b/docs/examples/smtp-mime.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -84,7 +84,7 @@ int main(void)
/* This is the URL for your mailserver */
curl_easy_setopt(curl, CURLOPT_URL, "smtp://mail.example.com");
- /* Note that this option isn't strictly required, omitting it will result
+ /* Note that this option is not strictly required, omitting it will result
* in libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise,
@@ -145,13 +145,13 @@ int main(void)
curl_slist_free_all(recipients);
curl_slist_free_all(headers);
- /* curl won't send the QUIT command until you call cleanup, so you should
- * be able to re-use this connection for additional messages (setting
- * CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and calling
- * curl_easy_perform() again. It may not be a good idea to keep the
- * connection open for a very long time though (more than a few minutes
- * may result in the server timing out the connection), and you do want to
- * clean up in the end.
+ /* curl will not send the QUIT command until you call cleanup, so you
+ * should be able to re-use this connection for additional messages
+ * (setting CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and
+ * calling curl_easy_perform() again. It may not be a good idea to keep
+ * the connection open for a very long time though (more than a few
+ * minutes may result in the server timing out the connection), and you do
+ * want to clean up in the end.
*/
curl_easy_cleanup(curl);
diff --git a/docs/examples/smtp-multi.c b/docs/examples/smtp-multi.c
index ac867a21a..4ba7ecb60 100644
--- a/docs/examples/smtp-multi.c
+++ b/docs/examples/smtp-multi.c
@@ -101,7 +101,7 @@ int main(void)
/* This is the URL for your mailserver */
curl_easy_setopt(curl, CURLOPT_URL, "smtp://mail.example.com");
- /* Note that this option isn't strictly required, omitting it will result in
+ /* Note that this option is not strictly required, omitting it will result in
* libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise, they
@@ -116,7 +116,7 @@ int main(void)
recipients = curl_slist_append(recipients, CC_MAIL);
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* We're using a callback function to specify the payload (the headers and
+ /* We are using a callback function to specify the payload (the headers and
* body of the message). You could just use the CURLOPT_READDATA option to
* specify a FILE pointer to read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
diff --git a/docs/examples/smtp-ssl.c b/docs/examples/smtp-ssl.c
index 6181bb035..099dedb6c 100644
--- a/docs/examples/smtp-ssl.c
+++ b/docs/examples/smtp-ssl.c
@@ -101,7 +101,7 @@ int main(void)
* than smtp:// to request a SSL based connection. */
curl_easy_setopt(curl, CURLOPT_URL, "smtps://mainserver.example.net");
- /* If you want to connect to a site who isn't using a certificate that is
+ /* If you want to connect to a site who is not using a certificate that is
* signed by one of the certs in the CA bundle you have, you can skip the
* verification of the server's certificate. This makes the connection
* A LOT LESS SECURE.
@@ -113,7 +113,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif
- /* If the site you're connecting to uses a different host name that what
+ /* If the site you are connecting to uses a different host name that what
* they have mentioned in their server certificate's commonName (or
* subjectAltName) fields, libcurl will refuse to connect. You can skip
* this check, but this will make the connection less secure. */
@@ -121,7 +121,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
- /* Note that this option isn't strictly required, omitting it will result
+ /* Note that this option is not strictly required, omitting it will result
* in libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise,
@@ -137,7 +137,7 @@ int main(void)
recipients = curl_slist_append(recipients, CC_MAIL);
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* We're using a callback function to specify the payload (the headers and
+ /* We are using a callback function to specify the payload (the headers and
* body of the message). You could just use the CURLOPT_READDATA option to
* specify a FILE pointer to read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
diff --git a/docs/examples/smtp-tls.c b/docs/examples/smtp-tls.c
index a9c45fa72..41024b1da 100644
--- a/docs/examples/smtp-tls.c
+++ b/docs/examples/smtp-tls.c
@@ -103,14 +103,14 @@ int main(void)
* matches your server configuration. */
curl_easy_setopt(curl, CURLOPT_URL, "smtp://mainserver.example.net:587");
- /* In this example, we'll start with a plain text connection, and upgrade
+ /* In this example, we will start with a plain text connection, and upgrade
* to Transport Layer Security (TLS) using the STARTTLS command. Be careful
* of using CURLUSESSL_TRY here, because if TLS upgrade fails, the transfer
* will continue anyway - see the security discussion in the libcurl
* tutorial for more details. */
curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL);
- /* If your server doesn't have a valid certificate, then you can disable
+ /* If your server does not have a valid certificate, then you can disable
* part of the Transport Layer Security protection by setting the
* CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST options to 0 (false).
* curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
@@ -123,7 +123,7 @@ int main(void)
* for more information. */
curl_easy_setopt(curl, CURLOPT_CAINFO, "/path/to/certificate.pem");
- /* Note that this option isn't strictly required, omitting it will result
+ /* Note that this option is not strictly required, omitting it will result
* in libcurl sending the MAIL FROM command with empty sender data. All
* autoresponses should have an empty reverse-path, and should be directed
* to the address in the reverse-path which triggered them. Otherwise,
@@ -139,7 +139,7 @@ int main(void)
recipients = curl_slist_append(recipients, CC_MAIL);
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* We're using a callback function to specify the payload (the headers and
+ /* We are using a callback function to specify the payload (the headers and
* body of the message). You could just use the CURLOPT_READDATA option to
* specify a FILE pointer to read from. */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
diff --git a/docs/examples/smtp-vrfy.c b/docs/examples/smtp-vrfy.c
index 7d021011c..26819a50a 100644
--- a/docs/examples/smtp-vrfy.c
+++ b/docs/examples/smtp-vrfy.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -37,7 +37,7 @@
* 1) This example requires libcurl 7.34.0 or above.
* 2) Not all email servers support this command and even if your email server
* does support it, it may respond with a 252 response code even though the
- * address doesn't exist.
+ * address does not exist.
*/
int main(void)
@@ -66,10 +66,10 @@ int main(void)
/* Free the list of recipients */
curl_slist_free_all(recipients);
- /* Curl won't send the QUIT command until you call cleanup, so you should
- * be able to re-use this connection for additional requests. It may not be
- * a good idea to keep the connection open for a very long time though
- * (more than a few minutes may result in the server timing out the
+ /* curl will not send the QUIT command until you call cleanup, so you
+ * should be able to re-use this connection for additional requests. It
+ * may not be a good idea to keep the connection open for a very long time
+ * though (more than a few minutes may result in the server timing out the
* connection) and you do want to clean up in the end.
*/
curl_easy_cleanup(curl);
diff --git a/docs/examples/threaded-ssl.c b/docs/examples/threaded-ssl.c
index 44c6a6c1e..e594b813b 100644
--- a/docs/examples/threaded-ssl.c
+++ b/docs/examples/threaded-ssl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -121,7 +121,7 @@ static void *pull_one_url(void *url)
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, url);
- /* this example doesn't verify the server's certificate, which means we
+ /* this example does not verify the server's certificate, which means we
might be downloading stuff from an impostor */
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
@@ -135,7 +135,7 @@ int main(int argc, char **argv)
{
pthread_t tid[NUMT];
int i;
- (void)argc; /* we don't use any arguments in this example */
+ (void)argc; /* we do not use any arguments in this example */
(void)argv;
/* Must initialize libcurl before any threads are started */
diff --git a/docs/examples/urlapi.c b/docs/examples/urlapi.c
index 229954d05..0c67480a1 100644
--- a/docs/examples/urlapi.c
+++ b/docs/examples/urlapi.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -26,8 +26,8 @@
#include <stdio.h>
#include <curl/curl.h>
-#if !CURL_AT_LEAST_VERSION(7, 62, 0)
-#error "this example requires curl 7.62.0 or later"
+#if !CURL_AT_LEAST_VERSION(7, 80, 0)
+#error "this example requires curl 7.80.0 or later"
#endif
int main(void)
@@ -47,7 +47,7 @@ int main(void)
"http://example.com/path/index.html", 0);
if(uc) {
- fprintf(stderr, "curl_url_set() failed: %in", uc);
+ fprintf(stderr, "curl_url_set() failed: %s", curl_url_strerror(uc));
goto cleanup;
}
diff --git a/docs/examples/xmlstream.c b/docs/examples/xmlstream.c
index e6416c349..0a8bff3d5 100644
--- a/docs/examples/xmlstream.c
+++ b/docs/examples/xmlstream.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -98,7 +98,7 @@ static size_t parseStreamCallback(void *contents, size_t length, size_t nmemb,
size_t real_size = length * nmemb;
struct ParserStruct *state = (struct ParserStruct *) XML_GetUserData(parser);
- /* Only parse if we're not already in a failure state. */
+ /* Only parse if we are not already in a failure state. */
if(state->ok && XML_Parse(parser, contents, real_size, 0) == 0) {
int error_code = XML_GetErrorCode(parser);
fprintf(stderr, "Parsing response buffer of length %lu failed"
diff --git a/docs/libcurl/ABI.md b/docs/libcurl/ABI.md
index 8cf516221..fcd6be44a 100644
--- a/docs/libcurl/ABI.md
+++ b/docs/libcurl/ABI.md
@@ -17,7 +17,7 @@ ABI - Application Binary Interface
In libcurl land, you cannot tell by the libcurl version number if that
libcurl is binary compatible or not with another libcurl version. As a rule,
- we don't break the ABI so you can *always* upgrade to a later version without
+ we do not break the ABI so you can *always* upgrade to a later version without
any loss or change in functionality.
## Soname Bumps
@@ -38,11 +38,11 @@ ABI - Application Binary Interface
## Downgrades
- Going to an older libcurl version from one you're currently using can be a
+ Going to an older libcurl version from one you are currently using can be a
tricky thing. Mostly we add features and options to newer libcurls as that
- won't break ABI or hamper existing applications. This has the implication
+ will not break ABI or hamper existing applications. This has the implication
that going backwards may get you in a situation where you pick a libcurl that
- doesn't support the options your application needs. Or possibly you even
+ does not support the options your application needs. Or possibly you even
downgrade so far so you cross an ABI break border and thus a different
soname, and then your application may need to adapt to the modified ABI.
diff --git a/docs/libcurl/Makefile.inc b/docs/libcurl/Makefile.inc
index 30eb779e2..706d8b6ba 100644
--- a/docs/libcurl/Makefile.inc
+++ b/docs/libcurl/Makefile.inc
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2008 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2008 - 2021, 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
@@ -95,6 +95,7 @@ man_MANS = \
curl_url_dup.3 \
curl_url_get.3 \
curl_url_set.3 \
+ curl_url_strerror.3 \
curl_version.3 \
curl_version_info.3 \
libcurl-easy.3 \
diff --git a/docs/libcurl/curl_easy_cleanup.3 b/docs/libcurl/curl_easy_cleanup.3
index d173202dc..07af52f46 100644
--- a/docs/libcurl/curl_easy_cleanup.3
+++ b/docs/libcurl/curl_easy_cleanup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_cleanup 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_cleanup 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_cleanup - End a libcurl easy handle
@@ -35,7 +35,7 @@ same \fIhandle\fP as input that a \fIcurl_easy_init(3)\fP call returned.
This might close all connections this handle has used and possibly has kept
open until now - unless it was attached to a multi handle while doing the
-transfers. Don't call this function if you intend to transfer more files,
+transfers. Do not call this function if you intend to transfer more files,
re-using handles is a key to good performance with libcurl.
Occasionally you may get your progress callback or header callback called from
@@ -50,12 +50,6 @@ memory associated with it!
Passing in a NULL pointer in \fIhandle\fP will make this function return
immediately with no action.
-.SH "OLD TIMES"
-For libcurl versions before 7.17,: after you've called this function, you can
-safely remove all the strings you've previously told libcurl to use, as it
-won't use them anymore now.
-.SH RETURN VALUE
-None
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -66,6 +60,10 @@ if(curl) {
curl_easy_cleanup(curl);
}
.fi
+.SH AVAILABILITY
+Added in 7.1
+.SH RETURN VALUE
+None
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_duphandle "(3), "
.BR curl_easy_reset "(3), "
diff --git a/docs/libcurl/curl_easy_duphandle.3 b/docs/libcurl/curl_easy_duphandle.3
index a1da59d62..e6b4368b5 100644
--- a/docs/libcurl/curl_easy_duphandle.3
+++ b/docs/libcurl/curl_easy_duphandle.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_duphandle 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_duphandle 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
@@ -46,6 +46,21 @@ NULL).
In multi-threaded programs, this function must be called in a synchronous way,
the input handle may not be in use when cloned.
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+CURL *nother;
+if(curl) {
+ CURLcode res;
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+ nother = curl_easy_duphandle(curl);
+ res = curl_easy_perform(nother);
+ curl_easy_cleanup(nother);
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.9
.SH RETURN VALUE
If this function returns NULL, something went wrong and no valid handle was
returned.
diff --git a/docs/libcurl/curl_easy_escape.3 b/docs/libcurl/curl_easy_escape.3
index d5aa5032e..23232dbd3 100644
--- a/docs/libcurl/curl_easy_escape.3
+++ b/docs/libcurl/curl_easy_escape.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_escape 3 "November 09, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_escape 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_escape - URL encodes the given string
@@ -40,7 +40,7 @@ If \fIlength\fP is set to 0 (zero), \fIcurl_easy_escape(3)\fP uses strlen() on
the input \fIstring\fP to find out the size. This function does not accept
input strings longer than \fBCURL_MAX_INPUT_LENGTH\fP (8 MB).
-You must \fIcurl_free(3)\fP the returned string when you're done with it.
+You must \fIcurl_free(3)\fP the returned string when you are done with it.
.SH ENCODING
libcurl is typically not aware of, nor does it care about, character
encodings. \fIcurl_easy_escape(3)\fP encodes the data byte-by-byte into the
@@ -50,10 +50,6 @@ uses.
The caller of \fIcurl_easy_escape(3)\fP must make sure that the data passed in
to the function is encoded correctly.
-.SH AVAILABILITY
-Added in 7.15.4 and replaces the old \fIcurl_escape(3)\fP function.
-.SH RETURN VALUE
-A pointer to a null-terminated string or NULL if it failed.
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -65,5 +61,9 @@ if(curl) {
}
}
.fi
+.SH AVAILABILITY
+Added in 7.15.4 and replaces the old \fIcurl_escape(3)\fP function.
+.SH RETURN VALUE
+A pointer to a null-terminated string or NULL if it failed.
.SH "SEE ALSO"
.BR curl_easy_unescape "(3), " curl_free "(3), " RFC 3986
diff --git a/docs/libcurl/curl_easy_getinfo.3 b/docs/libcurl/curl_easy_getinfo.3
index 61d165f7a..98c4d97f0 100644
--- a/docs/libcurl/curl_easy_getinfo.3
+++ b/docs/libcurl/curl_easy_getinfo.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_getinfo 3 "February 19, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_getinfo 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_getinfo - extract information from a curl handle
@@ -283,6 +283,28 @@ Total time of the previous request.
The time it took for all redirection steps
include name lookup, connect, pretransfer and transfer before final
transaction was started. So, this is zero if no redirection took place.
+.SH EXAMPLE
+.nf
+ curl = curl_easy_init();
+ if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
+ res = curl_easy_perform(curl);
+
+ if(CURLE_OK == res) {
+ char *ct;
+ /* ask for the content-type */
+ res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
+
+ if((CURLE_OK == res) && ct)
+ printf("We received Content-Type: %s\\n", ct);
+ }
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+.fi
+.SH AVAILABILITY
+Added in 7.4.1
.SH RETURN VALUE
If the operation was successful, CURLE_OK is returned. Otherwise an
appropriate error code will be returned.
diff --git a/docs/libcurl/curl_easy_init.3 b/docs/libcurl/curl_easy_init.3
index b77f098ac..afdbe3ee7 100644
--- a/docs/libcurl/curl_easy_init.3
+++ b/docs/libcurl/curl_easy_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_init 3 "December 31, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_init 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_init - Start a libcurl easy session
@@ -42,9 +42,6 @@ You are strongly advised to not allow this automatic behavior, by calling
\fIcurl_global_init(3)\fP yourself properly. See the description in
\fBlibcurl\fP(3) of global environment requirements for details of how to use
this function.
-.SH RETURN VALUE
-If this function returns NULL, something went wrong and you cannot use the
-other curl functions.
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -55,6 +52,11 @@ if(curl) {
curl_easy_cleanup(curl);
}
.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+If this function returns NULL, something went wrong and you cannot use the
+other curl functions.
.SH "SEE ALSO"
.BR curl_easy_cleanup "(3), " curl_global_init "(3), " curl_easy_reset "(3), "
.BR curl_easy_perform "(3) "
diff --git a/docs/libcurl/curl_easy_option_by_id.3 b/docs/libcurl/curl_easy_option_by_id.3
index a7a722b27..271033070 100644
--- a/docs/libcurl/curl_easy_option_by_id.3
+++ b/docs/libcurl/curl_easy_option_by_id.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_option_by_id 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_option_by_id 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_option_by_id - find an easy setopt option by id
@@ -38,6 +38,13 @@ will return the non-aliases version for the cases where there is an alias
function as well.
If libcurl has no option with the given id, this function returns NULL.
+.SH EXAMPLE
+.nf
+const struct curl_easyoption *opt = curl_easy_option_by_id(CURLOPT_URL);
+if(opt) {
+ printf("This option wants type %x\\n", opt->type);
+}
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.73.0
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_easy_option_by_name.3 b/docs/libcurl/curl_easy_option_by_name.3
index deb0f3097..1b96d59fa 100644
--- a/docs/libcurl/curl_easy_option_by_name.3
+++ b/docs/libcurl/curl_easy_option_by_name.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_option_by_name 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_option_by_name 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_option_by_name - find an easy setopt option by name
@@ -36,6 +36,13 @@ that name. The name should be specified without the "CURLOPT_" prefix and the
name comparison is made case insensitive.
If libcurl has no option with the given name, this function returns NULL.
+.SH EXAMPLE
+.nf
+const struct curl_easyoption *opt = curl_easy_option_by_name("URL");
+if(opt) {
+ printf("This option wants CURLoption %x\\n", (int)opt->id);
+}
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.73.0
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_easy_option_next.3 b/docs/libcurl/curl_easy_option_next.3
index a28990d01..355ae27f8 100644
--- a/docs/libcurl/curl_easy_option_next.3
+++ b/docs/libcurl/curl_easy_option_next.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_option_next 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_option_next 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_option_next - iterate over easy setopt options
@@ -65,6 +65,16 @@ information about what argument type they want.
If the \fBCURLOT_FLAG_ALIAS\fP bit is set in the flags field, it means the
name is provided for backwards compatibility as an alias.
+.SH EXAMPLE
+.nf
+/* iterate over all available options */
+const struct curl_easyoption *opt;
+opt = curl_easy_option_by_next(NULL);
+while(opt) {
+ printf("Name: %s\\n", opt->name);
+ opt = curl_easy_option_by_next(opt);
+}
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.73.0
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_easy_pause.3 b/docs/libcurl/curl_easy_pause.3
index b97da63cb..aba9d4fd4 100644
--- a/docs/libcurl/curl_easy_pause.3
+++ b/docs/libcurl/curl_easy_pause.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_pause 3 "December 22, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_pause 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_pause - pause and unpause a connection
@@ -36,7 +36,7 @@ paused, and you can unpause a connection that was previously paused.
A connection can be paused by using this function or by letting the read or
the write callbacks return the proper magic return code
(\fICURL_READFUNC_PAUSE\fP and \fICURL_WRITEFUNC_PAUSE\fP). A write callback
-that returns pause signals to the library that it couldn't take care of any
+that returns pause signals to the library that it could not take care of any
data at all, and that data will then be delivered again to the callback when
the transfer is unpaused.
@@ -60,19 +60,15 @@ connection. The following bits can be used:
.IP CURLPAUSE_RECV
Pause receiving data. There will be no data received on this connection until
this function is called again without this bit set. Thus, the write callback
-(\fICURLOPT_WRITEFUNCTION(3)\fP) won't be called.
+(\fICURLOPT_WRITEFUNCTION(3)\fP) will not be called.
.IP CURLPAUSE_SEND
Pause sending data. There will be no data sent on this connection until this
function is called again without this bit set. Thus, the read callback
-(\fICURLOPT_READFUNCTION(3)\fP) won't be called.
+(\fICURLOPT_READFUNCTION(3)\fP) will not be called.
.IP CURLPAUSE_ALL
Convenience define that pauses both directions.
.IP CURLPAUSE_CONT
Convenience define that unpauses both directions.
-.SH RETURN VALUE
-CURLE_OK (zero) means that the option was set properly, and a non-zero return
-code means something wrong occurred after the new state was set. See the
-\fIlibcurl-errors(3)\fP man page for the full list with descriptions.
.SH LIMITATIONS
The pausing of transfers does not work with protocols that work without
network connectivity, like FILE://. Trying to pause such a transfer, in any
@@ -89,11 +85,14 @@ buffering 32 megabyte of data for a paused stream.
When such a paused stream is unpaused again, any buffered data will be
delivered first.
-.SH AVAILABILITY
-Added in libcurl 7.18.0.
+.SH EXAMPLE
+.nf
+/* pause a transfer in both directions */
+curl_easy_pause(curl, CURL_READFUNC_PAUSE | CURL_WRITEFUNC_PAUSE);
+.fi
.SH "MEMORY USE"
When pausing a read by returning the magic return code from a write callback,
-the read data is already in libcurl's internal buffers so it'll have to keep
+the read data is already in libcurl's internal buffers so it will have to keep
it in an allocated buffer until the receiving is again unpaused using this
function.
@@ -101,8 +100,14 @@ If the downloaded data is compressed and is asked to get uncompressed
automatically on download, libcurl will continue to uncompress the entire
downloaded chunk and it will cache the data uncompressed. This has the side-
effect that if you download something that is compressed a lot, it can result
-in a very large data amount needing to be allocated to save the data during
-the pause. This said, you should probably consider not using paused receiving
-if you allow libcurl to uncompress data automatically.
+in a large data amount needing to be allocated to save the data during the
+pause. This said, you should probably consider not using paused receiving if
+you allow libcurl to uncompress data automatically.
+.SH AVAILABILITY
+Added in 7.18.0.
+.SH RETURN VALUE
+CURLE_OK (zero) means that the option was set properly, and a non-zero return
+code means something wrong occurred after the new state was set. See the
+\fIlibcurl-errors(3)\fP man page for the full list with descriptions.
.SH "SEE ALSO"
.BR curl_easy_cleanup "(3), " curl_easy_reset "(3)"
diff --git a/docs/libcurl/curl_easy_perform.3 b/docs/libcurl/curl_easy_perform.3
index 17e604287..99a3e1c59 100644
--- a/docs/libcurl/curl_easy_perform.3
+++ b/docs/libcurl/curl_easy_perform.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_perform 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_perform 3 "November 08, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_perform - perform a blocking file transfer
@@ -30,12 +30,12 @@ curl_easy_perform - perform a blocking file transfer
.ad
.SH DESCRIPTION
Invoke this function after \fIcurl_easy_init(3)\fP and all the
-\fIcurl_easy_setopt(3)\fP calls are made, and will perform the transfer as
+\fIcurl_easy_setopt(3)\fP calls are made, and it performs the transfer as
described in the options. It must be called with the same \fBeasy_handle\fP as
input as the \fIcurl_easy_init(3)\fP call returned.
\fIcurl_easy_perform(3)\fP performs the entire request in a blocking manner
-and returns when done, or if it failed. For non-blocking behavior, see
+and returns when done, or earlier if it fails. For non-blocking behavior, see
\fIcurl_multi_perform(3)\fP.
You can do any amount of calls to \fIcurl_easy_perform(3)\fP while using the
@@ -51,14 +51,14 @@ same \fBeasy_handle\fP. Let the function return first before invoking it
another time. If you want parallel transfers, you must use several curl
easy_handles.
+A network transfer moves data to a peer or from a peer. An application tells
+libcurl how to receive data by setting the \fICURLOPT_WRITEFUNCTION(3)\fP and
+\fICURLOPT_WRITEDATA(3)\fP options. To tell libcurl what data to send, there
+are a few more alternatives but two common ones are
+\fICURLOPT_READFUNCTION(3)\fP and \fICURLOPT_POSTFIELDS(3)\fP.
+
While the \fBeasy_handle\fP is added to a multi handle, it cannot be used by
\fIcurl_easy_perform(3)\fP.
-.SH RETURN VALUE
-CURLE_OK (0) means everything was ok, non-zero means an error occurred as
-.I <curl/curl.h>
-defines - see \fIlibcurl-errors(3)\fP. If the \fICURLOPT_ERRORBUFFER(3)\fP was
-set with \fIcurl_easy_setopt(3)\fP there will be a readable error message in
-the error buffer when non-zero is returned.
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -69,6 +69,14 @@ if(curl) {
curl_easy_cleanup(curl);
}
.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+CURLE_OK (0) means everything was ok, non-zero means an error occurred as
+.I <curl/curl.h>
+defines - see \fIlibcurl-errors(3)\fP. If the \fICURLOPT_ERRORBUFFER(3)\fP was
+set with \fIcurl_easy_setopt(3)\fP there will be a readable error message in
+the error buffer when non-zero is returned.
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
.BR curl_multi_add_handle "(3), " curl_multi_perform "(3), "
diff --git a/docs/libcurl/curl_easy_recv.3 b/docs/libcurl/curl_easy_recv.3
index 76ed18709..e23f381bb 100644
--- a/docs/libcurl/curl_easy_recv.3
+++ b/docs/libcurl/curl_easy_recv.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_recv 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_recv 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
@@ -61,7 +61,22 @@ read which would include any cached data.
Furthermore if you wait on the socket and it tells you there is data to read,
\fIcurl_easy_recv(3)\fP may return \fBCURLE_AGAIN\fP if the only data that was
read was for internal SSL processing, and no other data is available.
+.SH EXAMPLE
+.nf
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+ /* Do not do the transfer - only connect to host */
+ curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
+ res = curl_easy_perform(curl);
+
+ if(res == CURLE_OK) {
+ /* Extract the socket from the curl handle -
+ we will need it for waiting. */
+ res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
+ /* read data */
+ res = curl_easy_recv(curl, buf, sizeof(buf), &nread);
+ }
+.fi
.SH AVAILABILITY
Added in 7.18.2.
.SH RETURN VALUE
@@ -77,8 +92,6 @@ Reading exactly 0 bytes indicates a closed connection.
If there's no socket available to use from the previous transfer, this function
returns \fBCURLE_UNSUPPORTED_PROTOCOL\fP.
-.SH EXAMPLE
-See \fBsendrecv.c\fP in \fBdocs/examples\fP directory for usage example.
.SH "SEE ALSO"
.BR curl_easy_setopt "(3), " curl_easy_perform "(3), "
.BR curl_easy_getinfo "(3), "
diff --git a/docs/libcurl/curl_easy_reset.3 b/docs/libcurl/curl_easy_reset.3
index 0e064ca22..a08b2d756 100644
--- a/docs/libcurl/curl_easy_reset.3
+++ b/docs/libcurl/curl_easy_reset.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_reset 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_reset 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
@@ -36,6 +36,14 @@ 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 EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+
+/* ... the handle is used and options are set ... */
+
+curl_easy_reset(curl);
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.12.1
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_easy_send.3 b/docs/libcurl/curl_easy_send.3
index 4db7f5490..804d8c534 100644
--- a/docs/libcurl/curl_easy_send.3
+++ b/docs/libcurl/curl_easy_send.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_send 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_send 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_send - sends raw data over an "easy" connection
@@ -54,13 +54,28 @@ obtained using \fIcurl_easy_getinfo(3)\fP with \fICURLINFO_ACTIVESOCKET(3)\fP.
Furthermore if you wait on the socket and it tells you it's writable,
\fIcurl_easy_send(3)\fP may return \fBCURLE_AGAIN\fP if the only data that was
sent was for internal SSL processing, and no other data could be sent.
+.SH EXAMPLE
+.nf
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+ /* Do not do the transfer - only connect to host */
+ curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
+ res = curl_easy_perform(curl);
+
+ if(res == CURLE_OK) {
+ /* Extract the socket from the curl handle -
+ we will need it for waiting. */
+ res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
+ /* send data */
+ res = curl_easy_send(curl, "hello", 5, &sent);
+ }
+.fi
.SH AVAILABILITY
Added in 7.18.2.
.SH RETURN VALUE
On success, returns \fBCURLE_OK\fP and stores the number of bytes actually
-sent into \fB*n\fP. Note that this may very well be less than the amount you
-wanted to send.
+sent into \fB*n\fP. Note that this may be less than the amount you wanted to
+send.
On failure, returns the appropriate error code.
@@ -69,8 +84,6 @@ system facilities to wait until the socket is writable, and retry.
If there's no socket available to use from the previous transfer, this function
returns \fBCURLE_UNSUPPORTED_PROTOCOL\fP.
-.SH EXAMPLE
-See \fBsendrecv.c\fP in \fBdocs/examples\fP directory for usage example.
.SH "SEE ALSO"
.BR curl_easy_setopt "(3), " curl_easy_perform "(3), " curl_easy_getinfo "(3), "
.BR curl_easy_recv "(3) "
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 16f527802..fa466ca64 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_setopt 3 "July 16, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_setopt 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_setopt \- set options for a curl easy handle
@@ -45,11 +45,11 @@ you must change them between the transfers. You can optionally reset all
options back to internal default with \fIcurl_easy_reset(3)\fP.
Strings passed to libcurl as 'char *' arguments, are copied by the library;
-thus the string storage associated to the pointer argument may be overwritten
-after \fIcurl_easy_setopt(3)\fP returns. The only exception to this rule is
-really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies the string
-\fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you need to
-read up on. This function does not accept input strings longer than
+the string storage associated to the pointer argument may be discarded or
+reused after \fIcurl_easy_setopt(3)\fP returns. The only exception to this
+rule is really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies
+the string \fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you
+need to read up on. This function does not accept input strings longer than
\fBCURL_MAX_INPUT_LENGTH\fP (8 MB).
The order in which the options are set does not matter.
@@ -145,6 +145,10 @@ Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPP
Callback to be called before a new resolve request is started. See \fICURLOPT_RESOLVER_START_FUNCTION(3)\fP
.IP CURLOPT_RESOLVER_START_DATA
Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(3)\fP
+.IP CURLOPT_PREREQFUNCTION
+Callback to be called after a connection is established but before a request is made on that connection. See \fICURLOPT_PREREQFUNCTION(3)\fP
+.IP CURLOPT_PREREQDATA
+Data pointer to pass to the CURLOPT_PREREQFUNCTION callback. See \fICURLOPT_PREREQDATA(3)\fP
.SH ERROR OPTIONS
.IP CURLOPT_ERRORBUFFER
Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
@@ -265,7 +269,7 @@ Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
.IP CURLOPT_XOAUTH2_BEARER
OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
.IP CURLOPT_DISALLOW_USERNAME_IN_URL
-Don't allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
+Do not allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
.SH HTTP OPTIONS
.IP CURLOPT_AUTOREFERER
Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP
@@ -489,7 +493,9 @@ Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP
.IP CURLOPT_FORBID_REUSE
Prevent subsequent connections from re-using this. See \fICURLOPT_FORBID_REUSE(3)\fP
.IP CURLOPT_MAXAGE_CONN
-Limit the age of connections for reuse. See \fICURLOPT_MAXAGE_CONN(3)\fP
+Limit the age (idle time) of connections for reuse. See \fICURLOPT_MAXAGE_CONN(3)\fP
+.IP CURLOPT_MAXLIFETIME_CONN
+Limit the age (since creation) of connections for reuse. See \fICURLOPT_MAXLIFETIME_CONN(3)\fP
.IP CURLOPT_CONNECTTIMEOUT
Timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT(3)\fP
.IP CURLOPT_CONNECTTIMEOUT_MS
@@ -643,6 +649,8 @@ SSH authentication types. See \fICURLOPT_SSH_AUTH_TYPES(3)\fP
Enable SSH compression. See \fICURLOPT_SSH_COMPRESSION(3)\fP
.IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
MD5 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP
+.IP CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256
+SHA256 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_SHA256(3)\fP
.IP CURLOPT_SSH_PUBLIC_KEYFILE
File name of public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP
.IP CURLOPT_SSH_PRIVATE_KEYFILE
@@ -665,6 +673,18 @@ Mode for creating new remote directories. See \fICURLOPT_NEW_DIRECTORY_PERMS(3)\
.SH TELNET OPTIONS
.IP CURLOPT_TELNETOPTIONS
TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ CURLcode res;
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+ res = curl_easy_perform(curl);
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Always
.SH RETURN VALUE
\fICURLE_OK\fP (zero) means that the option was set properly, non-zero means an
error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors(3)\fP
@@ -677,21 +697,11 @@ Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise
\fBCURLE_BAD_FUNCTION_ARGUMENT\fP is returned when the argument to an option
is invalid, like perhaps out of range.
-If you try to set an option that libcurl doesn't know about, perhaps because
+If you try to set an option that libcurl does not know about, perhaps because
the library is too old to support it or the option was removed in a recent
version, this function will return \fICURLE_UNKNOWN_OPTION\fP. If support for
the option was disabled at compile-time, it will return
\fICURLE_NOT_BUILT_IN\fP.
-.SH EXAMPLE
-.nf
-CURL *curl = curl_easy_init();
-if(curl) {
- CURLcode res;
- curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
- res = curl_easy_perform(curl);
- curl_easy_cleanup(curl);
-}
-.fi
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_cleanup "(3), " curl_easy_reset "(3), "
.BR curl_easy_getinfo "(3), " curl_multi_setopt "(3), "
diff --git a/docs/libcurl/curl_easy_strerror.3 b/docs/libcurl/curl_easy_strerror.3
index 51fc27117..a8e7400ab 100644
--- a/docs/libcurl/curl_easy_strerror.3
+++ b/docs/libcurl/curl_easy_strerror.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_strerror 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_strerror 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_strerror - return string describing error code
@@ -33,9 +33,19 @@ CURLcode error code passed in the argument \fIerrornum\fP.
Typically applications also appreciate \fICURLOPT_ERRORBUFFER(3)\fP for more
specific error descriptions generated at run-time.
+.SH EXAMPLE
+.nf
+ /* Perform the request, res will get the return code */
+ res = curl_easy_perform(curl);
+ /* Check for errors */
+ if(res != CURLE_OK)
+ fprintf(stderr, "curl_easy_perform() failed: %s\\n",
+ curl_easy_strerror(res));
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.12.0
.SH RETURN VALUE
A pointer to a null-terminated string.
.SH "SEE ALSO"
-.BR libcurl-errors "(3), " curl_multi_strerror "(3), " curl_share_strerror "(3)"
+.BR libcurl-errors "(3), " curl_multi_strerror "(3), "
+.BR curl_share_strerror "(3), " curl_url_strerror "(3)"
diff --git a/docs/libcurl/curl_easy_unescape.3 b/docs/libcurl/curl_easy_unescape.3
index ec9ff9369..5d6a0f6f2 100644
--- a/docs/libcurl/curl_easy_unescape.3
+++ b/docs/libcurl/curl_easy_unescape.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_unescape 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_unescape 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_unescape - URL decodes the given string
@@ -46,7 +46,21 @@ pointer to an \fIint\fP type, it can only return a value up to INT_MAX so no
longer string can be unescaped if the string length is returned in this
parameter.
-You must \fIcurl_free(3)\fP the returned string when you're done with it.
+You must \fIcurl_free(3)\fP the returned string when you are done with it.
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ int decodelen;
+ char *decoded = curl_easy_unescape(curl, "%63%75%72%6c", 12, &decodelen);
+ if(decoded) {
+ /* do not assume printf() works on the decoded data! */
+ printf("Decoded: ");
+ /* ... */
+ curl_free(decoded);
+ }
+}
+.fi
.SH AVAILABILITY
Added in 7.15.4 and replaces the old \fIcurl_unescape(3)\fP function.
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_easy_upkeep.3 b/docs/libcurl/curl_easy_upkeep.3
index 689bee43e..15a590f41 100644
--- a/docs/libcurl/curl_easy_upkeep.3
+++ b/docs/libcurl/curl_easy_upkeep.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_upkeep 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_easy_upkeep 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_easy_upkeep - Perform any connection upkeep checks.
@@ -42,14 +42,6 @@ is called, an HTTP/2 PING frame is sent on the connection.
This function must be explicitly called in order to perform the upkeep work.
The connection upkeep interval is set with
\fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP.
-
-.SH AVAILABILITY
-Added in 7.62.0.
-.SH RETURN VALUE
-On success, returns \fBCURLE_OK\fP.
-
-On failure, returns the appropriate error code.
-
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -74,5 +66,13 @@ if(curl) {
/* always cleanup */
curl_easy_cleanup(curl);
}
-
.fi
+.SH AVAILABILITY
+Added in 7.62.0.
+.SH RETURN VALUE
+On success, returns \fBCURLE_OK\fP.
+
+On failure, returns the appropriate error code.
+.SH SEE ALSO
+.BR CURLOPT_TCP_KEEPALIVE "(3), "
+.BR CURLOPT_TCP_KEEPIDLE "(3), "
diff --git a/docs/libcurl/curl_escape.3 b/docs/libcurl/curl_escape.3
index 65b8c6aee..ebbfa60f9 100644
--- a/docs/libcurl/curl_escape.3
+++ b/docs/libcurl/curl_escape.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_escape 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_escape 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_escape - URL encodes the given string
@@ -36,10 +36,18 @@ 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.
+If the \fBlengthf\fP argument is set to 0, curl_escape() will use strlen() on
+the input \fBurl\fP string to find out the size.
-You must \fIcurl_free(3)\fP the returned string when you're done with it.
+You must \fIcurl_free(3)\fP the returned string when you are done with it.
+.SH EXAMPLE
+.nf
+char *output = curl_escape("data to convert", 15);
+if(output) {
+ printf("Encoded: %s\\n", output);
+ curl_free(output);
+}
+.fi
.SH AVAILABILITY
Since 7.15.4, \fIcurl_easy_escape(3)\fP should be used. This function will
be removed in a future release.
diff --git a/docs/libcurl/curl_formadd.3 b/docs/libcurl/curl_formadd.3
index baf20db95..39724cad9 100644
--- a/docs/libcurl/curl_formadd.3
+++ b/docs/libcurl/curl_formadd.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formadd 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_formadd 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
@@ -34,7 +34,7 @@ This function is deprecated. Do not use! See \fIcurl_mime_init(3)\fP instead!
curl_formadd() is used to append sections when building a multipart/formdata
HTTP POST (sometimes referred to as RFC2388-style posts). Append one section
-at a time until you've added all the sections you want included and then you
+at a time until you have added all the sections you want included and then you
pass the \fIfirstitem\fP pointer as parameter to \fICURLOPT_HTTPPOST(3)\fP.
\fIlastitem\fP is set after each \fIcurl_formadd(3)\fP call and on repeated
invokes it should be left as set to allow repeated invokes to find the end of
@@ -53,7 +53,7 @@ You can disable this header with \fICURLOPT_HTTPHEADER(3)\fP as usual.
First, there are some basics you need to understand about multipart/formdata
posts. Each part consists of at least a NAME and a CONTENTS part. If the part
is made for file upload, there are also a stored CONTENT-TYPE and a FILENAME.
-Below, we'll discuss what options you use to set these properties in the
+Below, we will discuss what options you use to set these properties in the
parts you want to add to your post.
The options listed first are for making normal parts. The options from
@@ -62,28 +62,28 @@ parts.
.SH OPTIONS
.IP CURLFORM_COPYNAME
followed by a string which provides the \fIname\fP of this part. libcurl
-copies the string so your application doesn't need to keep it around after
-this function call. If the name isn't NUL-terminated, you must set its length
+copies the string so your application does not need to keep it around after
+this function call. If the name is not NUL-terminated, you must set its length
with \fBCURLFORM_NAMELENGTH\fP. The \fIname\fP is not allowed to contain
zero-valued bytes. The copied data will be freed by \fIcurl_formfree(3)\fP.
.IP CURLFORM_PTRNAME
followed by a string which provides the \fIname\fP of this part. libcurl
will use the pointer and refer to the data in your application, so you
must make sure it remains until curl no longer needs it. If the name
-isn't NUL-terminated, you must set its length with \fBCURLFORM_NAMELENGTH\fP.
+is not NUL-terminated, you must set its length with \fBCURLFORM_NAMELENGTH\fP.
The \fIname\fP is not allowed to contain zero-valued bytes.
.IP CURLFORM_COPYCONTENTS
followed by a pointer to the contents of this part, the actual data
-to send away. libcurl copies the provided data, so your application doesn't
-need to keep it around after this function call. If the data isn't null
-terminated, or if you'd like it to contain zero bytes, you must
+to send away. libcurl copies the provided data, so your application does not
+need to keep it around after this function call. If the data is not null
+terminated, or if you would like it to contain zero bytes, you must
set the length of the name with \fBCURLFORM_CONTENTSLENGTH\fP. The copied
data will be freed by \fIcurl_formfree(3)\fP.
.IP CURLFORM_PTRCONTENTS
followed by a pointer to the contents of this part, the actual data
to send away. libcurl will use the pointer and refer to the data in your
application, so you must make sure it remains until curl no longer needs it.
-If the data isn't NUL-terminated, or if you'd like it to contain zero bytes,
+If the data is not NUL-terminated, or if you would like it to contain zero bytes,
you must set its length with \fBCURLFORM_CONTENTSLENGTH\fP.
.IP CURLFORM_CONTENTLEN
followed by a curl_off_t value giving the length of the contents. Note that
@@ -166,25 +166,13 @@ of headers to those libcurl automatically generates. The list must exist while
the POST occurs, if you free it before the post completes you may experience
problems.
-When you've passed the HttpPost pointer to \fIcurl_easy_setopt(3)\fP (using
+When you have passed the HttpPost pointer to \fIcurl_easy_setopt(3)\fP (using
the \fICURLOPT_HTTPPOST(3)\fP option), you must not free the list until after
-you've called \fIcurl_easy_cleanup(3)\fP for the curl handle.
+you have called \fIcurl_easy_cleanup(3)\fP for the curl handle.
See example below.
-.SH AVAILABILITY
-Deprecated in 7.56.0. Before this release, field names were allowed to
-contain zero-valued bytes. The pseudo-filename "-" to read stdin is
-discouraged although still supported, but data is not read before being
-actually sent: the effective data size can then not be automatically
-determined, resulting in a chunked encoding transfer. Backslashes and
-double quotes in field and file names are now escaped before transmission.
-.SH RETURN VALUE
-0 means everything was ok, non-zero means an error occurred corresponding
-to a CURL_FORMADD_* constant defined in
-.I <curl/curl.h>
.SH EXAMPLE
.nf
-
struct curl_httppost* post = NULL;
struct curl_httppost* last = NULL;
char namebuffer[] = "name buffer";
@@ -261,7 +249,17 @@ to a CURL_FORMADD_* constant defined in
CURLFORM_FILECONTENT, ".bashrc", CURLFORM_END);
/* Set the form info */
curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
-
+.SH AVAILABILITY
+Deprecated in 7.56.0. Before this release, field names were allowed to
+contain zero-valued bytes. The pseudo-filename "-" to read stdin is
+discouraged although still supported, but data is not read before being
+actually sent: the effective data size can then not be automatically
+determined, resulting in a chunked encoding transfer. Backslashes and
+double quotes in field and file names are now escaped before transmission.
+.SH RETURN VALUE
+0 means everything was ok, non-zero means an error occurred corresponding
+to a CURL_FORMADD_* constant defined in
+.I <curl/curl.h>
.SH "SEE ALSO"
.BR curl_easy_setopt "(3),"
.BR curl_formfree "(3),"
diff --git a/docs/libcurl/curl_formfree.3 b/docs/libcurl/curl_formfree.3
index a0423cf99..86639cc92 100644
--- a/docs/libcurl/curl_formfree.3
+++ b/docs/libcurl/curl_formfree.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formfree 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_formfree 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_formfree - free a previously build multipart/formdata HTTP POST chain
@@ -44,6 +44,22 @@ the \fIcurl_formadd(3)\fP invoke(s).
Passing in a NULL pointer in \fIform\fP will make this function return
immediately with no action.
+.SH EXAMPLE
+.nf
+ /* Fill in a file upload field */
+ curl_formadd(&formpost,
+ &lastptr,
+ CURLFORM_COPYNAME, "file",
+ CURLFORM_FILE, "nice-image.jpg",
+ CURLFORM_END);
+
+ curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
+
+ curl_easy_perform(curl);
+
+ /* then cleanup the formpost chain */
+ curl_formfree(formpost);
+.fi
.SH AVAILABILITY
Deprecated in 7.56.0.
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_formget.3 b/docs/libcurl/curl_formget.3
index 77e9f0feb..923941bee 100644
--- a/docs/libcurl/curl_formget.3
+++ b/docs/libcurl/curl_formget.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formget 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_formget 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_formget - serialize a previously built multipart/formdata HTTP POST chain
@@ -43,13 +43,10 @@ chain. The character buffer passed to the callback must not be freed. The
callback should return the buffer length passed to it on success.
If the \fBCURLFORM_STREAM\fP option is used in the formpost, it will prevent
-\fIcurl_formget(3)\fP from working until you've performed the actual HTTP
+\fIcurl_formget(3)\fP from working until you have performed the actual HTTP
request as only then will libcurl get the actual read callback to use!
-.SH RETURN VALUE
-0 means everything was ok, non-zero means an error occurred
.SH EXAMPLE
.nf
-
size_t print_httppost_callback(void *arg, const char *buf, size_t len)
{
fwrite(buf, len, 1, stdout);
@@ -68,5 +65,7 @@ request as only then will libcurl get the actual read callback to use!
.SH AVAILABILITY
This function was added in libcurl 7.15.5. The form API is deprecated in
libcurl 7.56.0.
+.SH RETURN VALUE
+0 means everything was ok, non-zero means an error occurred
.SH "SEE ALSO"
.BR curl_formadd "(3), " curl_mime_init "(3)"
diff --git a/docs/libcurl/curl_free.3 b/docs/libcurl/curl_free.3
index 6251a5a03..b936a42ba 100644
--- a/docs/libcurl/curl_free.3
+++ b/docs/libcurl/curl_free.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_free 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_free 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_free - reclaim memory that has been obtained through a libcurl call
@@ -35,5 +35,17 @@ differences in memory management between your application and libcurl.
Passing in a NULL pointer in \fIptr\fP will make this function return
immediately with no action.
+.SH EXAMPLE
+.nf
+ char *width = curl_getenv("COLUMNS");
+ if(width) {
+ /* it was set! */
+ curl_free(width);
+ }
+.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+None
.SH "SEE ALSO"
.BR curl_easy_unescape "(3), " curl_easy_escape "(3) "
diff --git a/docs/libcurl/curl_getdate.3 b/docs/libcurl/curl_getdate.3
index e01c88e50..22e8af88a 100644
--- a/docs/libcurl/curl_getdate.3
+++ b/docs/libcurl/curl_getdate.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getdate 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_getdate 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_getdate - Convert a date string to number of seconds
@@ -63,36 +63,39 @@ If a decimal number of the form YYYYMMDD appears, then YYYY is read as the
year, MM as the month number and DD as the day of the month, for the specified
calendar date.
.PP
-.SH EXAMPLES
+.SH EXAMPLE
.nf
-Sun, 06 Nov 1994 08:49:37 GMT
-Sunday, 06-Nov-94 08:49:37 GMT
-Sun Nov 6 08:49:37 1994
-06 Nov 1994 08:49:37 GMT
-06-Nov-94 08:49:37 GMT
-Nov 6 08:49:37 1994
-06 Nov 1994 08:49:37
-06-Nov-94 08:49:37
-1994 Nov 6 08:49:37
-GMT 08:49:37 06-Nov-94 Sunday
-94 6 Nov 08:49:37
-1994 Nov 6
-06-Nov-94
-Sun Nov 6 94
-1994.Nov.6
-Sun/Nov/6/94/GMT
-Sun, 06 Nov 1994 08:49:37 CET
-06 Nov 1994 08:49:37 EST
-Sun, 12 Sep 2004 15:05:58 -0700
-Sat, 11 Sep 2004 21:32:11 +0200
-20040912 15:05:58 -0700
-20040911 +0200
+ time_t t;
+ t = curl_getdate("Sun, 06 Nov 1994 08:49:37 GMT", NULL);
+ t = curl_getdate("Sunday, 06-Nov-94 08:49:37 GMT", NULL);
+ t = curl_getdate("Sun Nov 6 08:49:37 1994", NULL);
+ t = curl_getdate("06 Nov 1994 08:49:37 GMT", NULL);
+ t = curl_getdate("06-Nov-94 08:49:37 GMT", NULL);
+ t = curl_getdate("Nov 6 08:49:37 1994", NULL);
+ t = curl_getdate("06 Nov 1994 08:49:37", NULL);
+ t = curl_getdate("06-Nov-94 08:49:37", NULL);
+ t = curl_getdate("1994 Nov 6 08:49:37", NULL);
+ t = curl_getdate("GMT 08:49:37 06-Nov-94 Sunday", NULL);
+ t = curl_getdate("94 6 Nov 08:49:37", NULL);
+ t = curl_getdate("1994 Nov 6", NULL);
+ t = curl_getdate("06-Nov-94", NULL);
+ t = curl_getdate("Sun Nov 6 94", NULL);
+ t = curl_getdate("1994.Nov.6", NULL);
+ t = curl_getdate("Sun/Nov/6/94/GMT", NULL);
+ t = curl_getdate("Sun, 06 Nov 1994 08:49:37 CET", NULL);
+ t = curl_getdate("06 Nov 1994 08:49:37 EST", NULL);
+ t = curl_getdate("Sun, 12 Sep 2004 15:05:58 -0700", NULL);
+ t = curl_getdate("Sat, 11 Sep 2004 21:32:11 +0200", NULL);
+ t = curl_getdate("20040912 15:05:58 -0700", NULL);
+ t = curl_getdate("20040911 +0200", NULL);
.fi
.SH STANDARDS
-This parser was written to handle date formats specified in RFC 822 (including
-the update in RFC 1123) using time zone name or time zone delta and RFC 850
-(obsoleted by RFC 1036) and ANSI C's asctime() format. These formats are the
-only ones RFC 7231 says HTTP applications may use.
+This parser handles date formats specified in RFC 822 (including the update in
+RFC 1123) using time zone name or time zone delta and RFC 850 (obsoleted by
+RFC 1036) and ANSI C's asctime() format. These formats are the only ones RFC
+7231 says HTTP applications may use.
+.SH AVAILABILITY
+Always
.SH RETURN VALUE
This function returns -1 when it fails to parse the date string. Otherwise it
returns the number of seconds as described.
diff --git a/docs/libcurl/curl_getenv.3 b/docs/libcurl/curl_getenv.3
index d8b458254..1ec6c66d4 100644
--- a/docs/libcurl/curl_getenv.3
+++ b/docs/libcurl/curl_getenv.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getenv 3 "December 31, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_getenv 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_getenv - return value for environment name
@@ -33,7 +33,15 @@ curl_getenv() is a portable wrapper for the getenv() function, meant to
emulate its behavior 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.
+You must \fIcurl_free(3)\fP the returned string when you are done with it.
+.SH EXAMPLE
+.nf
+ char *width = curl_getenv("COLUMNS");
+ if(width) {
+ /* it was set! */
+ curl_free(width);
+ }
+.fi
.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
@@ -42,8 +50,8 @@ curlx_getenv().
A pointer to a null-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
+Under unix operating systems, there is no point in returning an allocated
+memory, although other systems will not work properly if this is not done. The
unix implementation thus has to suffer slightly from the drawbacks of other
systems.
.SH "SEE ALSO"
diff --git a/docs/libcurl/curl_global_cleanup.3 b/docs/libcurl/curl_global_cleanup.3
index c3622f4b8..0a6881e59 100644
--- a/docs/libcurl/curl_global_cleanup.3
+++ b/docs/libcurl/curl_global_cleanup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_cleanup 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_global_cleanup 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_global_cleanup - global libcurl cleanup
@@ -36,7 +36,7 @@ You should call \fIcurl_global_cleanup(3)\fP once for each call you make to
\fBThis function is not thread safe.\fP You must not call it when any other
thread in the program (i.e. a thread sharing the same memory) is running.
-This doesn't just mean no other thread that is using libcurl. Because
+This does not just mean no other thread that is using libcurl. Because
\fIcurl_global_cleanup(3)\fP calls functions of other libraries that are
similarly thread unsafe, it could conflict with any other thread that uses
these other libraries.
@@ -50,6 +50,18 @@ containing libcurl is dynamically unloaded while libcurl-created threads are
still running then your program may crash or other corruption may occur. We
recommend you do not run libcurl from any module that may be unloaded
dynamically. This behavior may be addressed in the future.
+.SH EXAMPLE
+.nf
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+
+ /* use libcurl, then before exiting... */
+
+ curl_global_cleanup();
+.fi
+.SH AVAILABILITY
+Added in 7.8
+.SH RETURN VALUE
+None
.SH "SEE ALSO"
.BR curl_global_init "(3), "
.BR libcurl "(3), "
diff --git a/docs/libcurl/curl_global_init.3 b/docs/libcurl/curl_global_init.3
index f84454324..1bd6f4552 100644
--- a/docs/libcurl/curl_global_init.3
+++ b/docs/libcurl/curl_global_init.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_global_init 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_global_init - Global libcurl initialisation
@@ -40,13 +40,13 @@ effect as one call.
The flags option is a bit pattern that tells libcurl exactly what features to
init, as described below. Set the desired bits by ORing the values together.
-In normal operation, you must specify CURL_GLOBAL_ALL. Don't use any other
-value unless you are familiar with it and mean to control internal operations of
-libcurl.
+In normal operation, you must specify CURL_GLOBAL_ALL. Do not use any other
+value unless you are familiar with it and mean to control internal operations
+of libcurl.
\fBThis function is not thread safe.\fP You must not call it when any other
thread in the program (i.e. a thread sharing the same memory) is running.
-This doesn't just mean no other thread that is using libcurl. Because
+This does not just mean no other thread that is using libcurl. Because
\fIcurl_global_init(3)\fP calls functions of other libraries that are
similarly thread unsafe, it could conflict with any other thread that uses
these other libraries.
@@ -93,6 +93,16 @@ 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 EXAMPLE
+.nf
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+
+ /* use libcurl, then before exiting... */
+
+ curl_global_cleanup();
+.fi
+.SH AVAILABILITY
+Added in 7.8
.SH RETURN VALUE
If this function returns non-zero, something went wrong and you cannot use the
other curl functions.
diff --git a/docs/libcurl/curl_global_init_mem.3 b/docs/libcurl/curl_global_init_mem.3
index 4f39a6421..ffa93e755 100644
--- a/docs/libcurl/curl_global_init_mem.3
+++ b/docs/libcurl/curl_global_init_mem.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init_mem 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_global_init_mem 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_global_init_mem - Global libcurl initialisation with memory callbacks
@@ -57,11 +57,20 @@ To replace calloc()
.RE
This function is otherwise the same as \fIcurl_global_init(3)\fP, please refer
to that man page for documentation.
-.SH "CAUTION"
+.SH CAUTION
Manipulating these gives considerable powers to the application to severely
screw things up for libcurl. Take care!
+.SH EXAMPLE
+.nf
+ curl_global_init_mem(CURL_GLOBAL_DEFAULT, curl_malloc_cb,
+ curl_free_cb, curl_realloc_cb,
+ curl_strdup_cb, curl_calloc_cb);
+.fi
.SH AVAILABILITY
Added in 7.12.0
+.SH RETURN VALUE
+CURLE_OK (0) means everything was ok, non-zero means an error occurred as
+\fI<curl/curl.h>\fP defines - see \fIlibcurl-errors(3)\fP.
.SH "SEE ALSO"
.BR curl_global_init "(3), "
.BR curl_global_cleanup "(3), "
diff --git a/docs/libcurl/curl_global_sslset.3 b/docs/libcurl/curl_global_sslset.3
index ab172d30a..f03e66067 100644
--- a/docs/libcurl/curl_global_sslset.3
+++ b/docs/libcurl/curl_global_sslset.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_sslset 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_global_sslset 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_global_sslset - Select SSL backend to use with libcurl
@@ -82,8 +82,20 @@ attempt to change it will result in a \fBCURLSSLSET_TOO_LATE\fP.
\fBThis function is not thread safe.\fP You must not call it when any other
thread in the program (i.e. a thread sharing the same memory) is running.
-This doesn't just mean no other thread that is using libcurl.
+This does not just mean no other thread that is using libcurl.
+.SH EXAMPLE
+.nf
+ /* choose a specific backend */
+ curl_global_sslset(CURLSSLBACKEND_WOLFSSL, NULL, NULL);
+
+ /* list the available ones */
+ const curl_ssl_backend **list;
+ curl_global_sslset((curl_sslbackend)-1, NULL, &list);
+ for(i = 0; list[i]; i++)
+ printf("SSL backend #%d: '%s' (ID: %d)\\n",
+ i, list[i]->name, list[i]->id);
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.56.0. Before this version, there was no
support for choosing SSL backends at runtime.
@@ -91,7 +103,8 @@ support for choosing SSL backends at runtime.
If this function returns CURLSSLSET_OK, the backend was successfully selected.
If the chosen backend is unknown (or support for the chosen backend has not
-been compiled into libcurl), the function returns \fICURLSSLSET_UNKNOWN_BACKEND\fP.
+been compiled into libcurl), the function returns
+\fICURLSSLSET_UNKNOWN_BACKEND\fP.
If the backend had been configured previously, or if \fIcurl_global_init(3)\fP
has already been called, the function returns \fICURLSSLSET_TOO_LATE\fP.
diff --git a/docs/libcurl/curl_mime_addpart.3 b/docs/libcurl/curl_mime_addpart.3
index 5b080d022..d7d0a6438 100644
--- a/docs/libcurl/curl_mime_addpart.3
+++ b/docs/libcurl/curl_mime_addpart.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_addpart 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_addpart 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_addpart - append a new empty part to a mime structure
@@ -35,10 +35,6 @@ subsequently be populated using functions from the mime API.
\fImime\fP is the handle of the mime structure in which the new part must be
appended.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-A mime part structure handle, or NULL upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -54,6 +50,10 @@ A mime part structure handle, or NULL upon failure.
curl_mime_data(part, "This is the field data", CURL_ZERO_TERMINATED);
curl_mime_name(part, "data");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+A mime part structure handle, or NULL upon failure.
.SH "SEE ALSO"
.BR curl_mime_init "(3),"
.BR curl_mime_name "(3),"
diff --git a/docs/libcurl/curl_mime_data.3 b/docs/libcurl/curl_mime_data.3
index de9241ee4..fc8677c7d 100644
--- a/docs/libcurl/curl_mime_data.3
+++ b/docs/libcurl/curl_mime_data.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_data 3 "November 01, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_data - set a mime part's body data from memory
@@ -43,12 +43,8 @@ Setting a part's contents twice is valid: only the value set by the last call
is retained. It is possible to unassign part's contents by setting
\fIdata\fP to NULL.
-Setting very large data is memory consuming: one might consider using
+Setting large data is memory consuming: one might consider using
\fIcurl_mime_data_cb(3)\fP in such a case.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -63,6 +59,10 @@ CURLE_OK or a CURL error code upon failure.
/* add data to the part */
curl_mime_data(part, "raw contents to send", CURL_ZERO_TERMINATED);
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_data_cb "(3),"
diff --git a/docs/libcurl/curl_mime_data_cb.3 b/docs/libcurl/curl_mime_data_cb.3
index b0cd3aac6..ab9060dd6 100644
--- a/docs/libcurl/curl_mime_data_cb.3
+++ b/docs/libcurl/curl_mime_data_cb.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data_cb 3 "July 13, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_data_cb 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_data_cb - set a callback-based data source for a mime part's body
@@ -70,9 +70,9 @@ in that memory area. Returning 0 will signal end-of-file to the library and
cause it to stop the current transfer.
If you stop the current transfer by returning 0 "pre-maturely" (i.e. before the
-server expected it, like when you've said you will upload N bytes and you
+server expected it, like when you have said you will upload N bytes and you
upload less than N bytes), you may experience that the server "hangs" waiting
-for the rest of the data that won't come.
+for the rest of the data that will not come.
The read callback may return \fICURL_READFUNC_ABORT\fP to stop the current
operation immediately, resulting in a \fICURLE_ABORTED_BY_CALLBACK\fP error
@@ -97,11 +97,6 @@ duplicated: the \fIarg\fP pointer argument is also duplicated, resulting in
the pointed item to be shared between the original and the copied handle.
In particular, special attention should be given to the \fIfreefunc\fP
procedure code since it will be called twice with the same argument.
-
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
Sending a huge data string will cause the same amount of memory to be
allocated: to avoid overhead resources consumption, one might want to use a
@@ -161,6 +156,10 @@ int seek_callback(void *arg, curl_off_t offset, int origin)
curl_mime_data_cb(part, hugectl.size, read_callback, seek_callback, NULL,
&hugectl);
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_data "(3),"
diff --git a/docs/libcurl/curl_mime_encoder.3 b/docs/libcurl/curl_mime_encoder.3
index 9a2b1c85f..2ff1e8e7e 100644
--- a/docs/libcurl/curl_mime_encoder.3
+++ b/docs/libcurl/curl_mime_encoder.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_encoder 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_encoder 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_encoder - set a mime part's encoder and content transfer encoding
@@ -42,7 +42,7 @@ Setting a part's encoder twice is valid: only the value set by the last call is
retained.
Upon multipart rendering, the part's content is encoded according to the
-pertaining scheme and a corresponding \fIContent-Transfer-Encoding"\fP header
+pertaining scheme and a corresponding \fI"Content-Transfer-Encoding"\fP header
is added to the part.
Supported encoding schemes are:
@@ -71,10 +71,6 @@ If the original data is already encoded in such a scheme, a custom
Encoding should not be applied to multiparts, thus the use of this
function on a part with content set with \fIcurl_mime_subparts\fP() is
strongly discouraged.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -92,6 +88,10 @@ CURLE_OK or a CURL error code upon failure.
/* encode file data in base64 for transfer */
curl_mime_encoder(part, "base64");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_headers "(3),"
diff --git a/docs/libcurl/curl_mime_filedata.3 b/docs/libcurl/curl_mime_filedata.3
index 512ebd7b8..d73d18a19 100644
--- a/docs/libcurl/curl_mime_filedata.3
+++ b/docs/libcurl/curl_mime_filedata.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filedata 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_filedata 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_filedata - set a mime part's body data from a file contents
@@ -54,13 +54,6 @@ will be transferred as chunks by HTTP and rejected by IMAP.
Setting a part's contents twice is valid: only the value set by the last call
is retained.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure. CURLE_READ_ERROR is only an
-indication that the file is not yet readable: it can be safely ignored at
-this time, but the file must be made readable before the pertaining
-easy handle is performed.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -78,6 +71,13 @@ easy handle is performed.
/* set name */
curl_mime_name(part, "data");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure. CURLE_READ_ERROR is only an
+indication that the file is not yet readable: it can be safely ignored at
+this time, but the file must be made readable before the pertaining
+easy handle is performed.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_data "(3),"
diff --git a/docs/libcurl/curl_mime_filename.3 b/docs/libcurl/curl_mime_filename.3
index 17160e516..bfee0674d 100644
--- a/docs/libcurl/curl_mime_filename.3
+++ b/docs/libcurl/curl_mime_filename.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filename 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_filename 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_filename - set a mime part's remote file name
@@ -43,10 +43,6 @@ to NULL to remove a previously attached remote file name.
The remote file name string is copied into the part, thus the associated
storage may safely be released or reused after call. Setting a part's file
name twice is valid: only the value set by the last call is retained.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -67,6 +63,10 @@ CURLE_OK or a CURL error code upon failure.
/* set name */
curl_mime_name(part, "data");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_filedata "(3),"
diff --git a/docs/libcurl/curl_mime_free.3 b/docs/libcurl/curl_mime_free.3
index 046840399..b858e1e6d 100644
--- a/docs/libcurl/curl_mime_free.3
+++ b/docs/libcurl/curl_mime_free.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_free 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_free 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_free - free a previously built mime structure
@@ -43,6 +43,16 @@ not be explicitly freed as they are by the top structure freeing.
Passing in a NULL pointer in \fImime\fP will make this function return
immediately with no action.
+.SH EXAMPLE
+.nf
+ /* Build the mime message. */
+ mime = curl_mime_init(curl);
+
+ /* ... */
+
+ /* Free multipart message. */
+ curl_mime_free(mime);
+.fi
.SH AVAILABILITY
As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
.SH RETURN VALUE
diff --git a/docs/libcurl/curl_mime_headers.3 b/docs/libcurl/curl_mime_headers.3
index 9c0c4d808..895218fc0 100644
--- a/docs/libcurl/curl_mime_headers.3
+++ b/docs/libcurl/curl_mime_headers.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_headers 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_headers 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_headers - set a mime part's custom headers
@@ -43,10 +43,6 @@ freed explicitly.
Setting a part's custom headers list twice is valid: only the value set by
the last call is retained.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
struct curl_slist *headers = NULL;
@@ -62,5 +58,9 @@ CURLE_OK or a CURL error code upon failure.
/* set name */
curl_mime_name(part, "numbers");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3)"
diff --git a/docs/libcurl/curl_mime_init.3 b/docs/libcurl/curl_mime_init.3
index 3531e4a3a..59c351df2 100644
--- a/docs/libcurl/curl_mime_init.3
+++ b/docs/libcurl/curl_mime_init.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,15 +19,16 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_init 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_init 3 "October 25, 2021" "libcurl 7.80.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 ");"
-.ad
+.nf
+#include <curl/curl.h>
+
+curl_mime *curl_mime_init(CURL *easy_handle);
+.fi
.SH DESCRIPTION
\fIcurl_mime_init(3)\fP creates a handle to a new empty mime structure
intended to be used with \fIeasy_handle\fP. This mime structure can be
@@ -37,14 +38,8 @@ call.
Using a mime handle is the recommended way to post an HTTP form, format and
send a multi-part e-mail with SMTP or upload such an e-mail to an IMAP server.
-
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-A mime struct handle, or NULL upon failure.
.SH EXAMPLE
.nf
-
CURL *easy = curl_easy_init();
curl_mime *mime;
curl_mimepart *part;
@@ -63,7 +58,10 @@ A mime struct handle, or NULL upon failure.
/* Clean-up. */
curl_easy_cleanup(easy);
curl_mime_free(mime);
-
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+A mime struct handle, or NULL upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_free "(3),"
diff --git a/docs/libcurl/curl_mime_name.3 b/docs/libcurl/curl_mime_name.3
index d61cc0052..9ead5c710 100644
--- a/docs/libcurl/curl_mime_name.3
+++ b/docs/libcurl/curl_mime_name.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_name 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_name 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_name - set a mime part's name
@@ -40,10 +40,6 @@ The name string is copied into the part, thus the associated storage may
safely be released or reused after call. Setting a part's name twice is valid:
only the value set by the last call is retained. It is possible to "unname" a
part by setting \fIname\fP to NULL.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -58,6 +54,10 @@ CURLE_OK or a CURL error code upon failure.
/* give the part a name */
curl_mime_name(part, "shoe_size");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_data "(3),"
diff --git a/docs/libcurl/curl_mime_subparts.3 b/docs/libcurl/curl_mime_subparts.3
index 9a1b8c3df..2e5a29574 100644
--- a/docs/libcurl/curl_mime_subparts.3
+++ b/docs/libcurl/curl_mime_subparts.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_subparts 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_subparts 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_subparts - set subparts of a multipart mime part
@@ -43,12 +43,32 @@ subsequent calls to mime API functions.
Setting a part's contents twice is valid: only the value set by the last call
is retained. It is possible to unassign previous part's contents by setting
\fIsubparts\fP to NULL.
+.SH EXAMPLE
+.nf
+ /* The inline part is an alternative proposing the html and the text
+ versions of the e-mail. */
+ alt = curl_mime_init(curl);
+
+ /* HTML message. */
+ part = curl_mime_addpart(alt);
+ curl_mime_data(part, inline_html, CURL_ZERO_TERMINATED);
+ curl_mime_type(part, "text/html");
+
+ /* Text message. */
+ part = curl_mime_addpart(alt);
+ curl_mime_data(part, inline_text, CURL_ZERO_TERMINATED);
+
+ /* Create the inline part. */
+ part = curl_mime_addpart(mime);
+ curl_mime_subparts(part, alt);
+ curl_mime_type(part, "multipart/alternative");
+ slist = curl_slist_append(NULL, "Content-Disposition: inline");
+ curl_mime_headers(part, slist, 1);
+.fi
.SH AVAILABILITY
As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
.SH RETURN VALUE
CURLE_OK or a CURL error code upon failure.
-.SH EXAMPLE
-TODO
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_init "(3)"
diff --git a/docs/libcurl/curl_mime_type.3 b/docs/libcurl/curl_mime_type.3
index 7958acd47..84d9fd3bc 100644
--- a/docs/libcurl/curl_mime_type.3
+++ b/docs/libcurl/curl_mime_type.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_type 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_mime_type 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_mime_type - set a mime part's content type
@@ -54,10 +54,6 @@ extension, or application/octet-stream by default.
- For a multipart part, multipart/mixed.
.br
- text/plain in other cases.
-.SH AVAILABILITY
-As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
-.SH RETURN VALUE
-CURLE_OK or a CURL error code upon failure.
.SH EXAMPLE
.nf
curl_mime *mime;
@@ -78,6 +74,10 @@ CURLE_OK or a CURL error code upon failure.
/* set name */
curl_mime_name(part, "image");
.fi
+.SH AVAILABILITY
+As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
+.SH RETURN VALUE
+CURLE_OK or a CURL error code upon failure.
.SH "SEE ALSO"
.BR curl_mime_addpart "(3),"
.BR curl_mime_name "(3),"
diff --git a/docs/libcurl/curl_mprintf.3 b/docs/libcurl/curl_mprintf.3
index d795e14bb..063d08408 100644
--- a/docs/libcurl/curl_mprintf.3
+++ b/docs/libcurl/curl_mprintf.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_printf 3 "July 07, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_printf 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
@@ -240,6 +240,11 @@ by the corresponding argument.
.TP
.B %
A '%' is written. No argument is converted.
+.SH EXAMPLE
+.nf
+ mprintf("My name is %s\\n", name);
+ mprintf("Pi is almost %f\\n", 25/8);
+.fi
.SH AVAILABILITY
These functions will be removed from the public libcurl API in the future. Do
not use them in new programs or projects.
diff --git a/docs/libcurl/curl_multi_add_handle.3 b/docs/libcurl/curl_multi_add_handle.3
index 589b95547..9c0a7cd06 100644
--- a/docs/libcurl/curl_multi_add_handle.3
+++ b/docs/libcurl/curl_multi_add_handle.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_add_handle 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_add_handle 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_add_handle - add an easy handle to a multi session
@@ -48,7 +48,7 @@ handles will not affect the pool of connections or the ability to do
connection re-use.
If you have \fICURLMOPT_TIMERFUNCTION(3)\fP set in the multi handle (and you
-really should if you're working event-based with
+really should if you are working event-based with
\fIcurl_multi_socket_action(3)\fP and friends), that callback will be called
from within this function to ask for an updated timer so that your main event
loop will get the activity on this handle to get started.
@@ -65,6 +65,17 @@ first the easy handle and then the multi handle:
2 - \fIcurl_easy_cleanup(3)\fP
3 - \fIcurl_multi_cleanup(3)\fP
+.SH EXAMPLE
+.nf
+ /* init a multi stack */
+ multi_handle = curl_multi_init();
+
+ /* add individual transfers */
+ curl_multi_add_handle(multi_handle, http_handle);
+ curl_multi_add_handle(multi_handle, http_handle2);
+.fi
+.SH AVAILABILITY
+ADded in 7.9.6
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code.
.SH "SEE ALSO"
diff --git a/docs/libcurl/curl_multi_assign.3 b/docs/libcurl/curl_multi_assign.3
index 67b18adb6..7e8c190aa 100644
--- a/docs/libcurl/curl_multi_assign.3
+++ b/docs/libcurl/curl_multi_assign.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_assign 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_assign 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_assign \- set data to associate with an internal socket
@@ -36,7 +36,7 @@ socket and a private pointer of the application. This is designed for
When set, the \fIsockptr\fP pointer will be passed to all future socket
callbacks for the specific \fIsockfd\fP socket.
-If the given \fIsockfd\fP isn't already in use by libcurl, this function will
+If the given \fIsockfd\fP is not already in use by libcurl, this function will
return an error.
libcurl only keeps one single pointer associated with a socket, so calling
@@ -47,9 +47,16 @@ The idea here being that this association (socket to private pointer) is
something that just about every application that uses this API will need and
then libcurl can just as well do it since it already has an internal hash
table lookup for this.
-.SH "RETURN VALUE"
+.SH EXAMPLE
+.nf
+ /* make our struct pointer associated with socket fd */
+ mc = curl_multi_assign(multi_handle, fd, ourstructp);
+.fi
+.SH AVAILABILITY
+Added in 7.15.5
+.SH RETURN VALUE
The standard CURLMcode for multi interface error codes.
-.SH "TYPICAL USAGE"
+.SH TYPICAL USAGE
In a typical application you allocate a struct or at least use some kind of
semi-dynamic data for each socket that we must wait for action on when using
the \fIcurl_multi_socket_action(3)\fP approach.
@@ -57,8 +64,6 @@ the \fIcurl_multi_socket_action(3)\fP approach.
When our socket-callback gets called by libcurl and we get to know about yet
another socket to wait for, we can use \fIcurl_multi_assign(3)\fP to point out
the particular data so that when we get updates about this same socket again,
-we don't have to find the struct associated with this socket by ourselves.
-.SH AVAILABILITY
-This function was added in libcurl 7.15.5.
+we do not have to find the struct associated with this socket by ourselves.
.SH "SEE ALSO"
.BR curl_multi_setopt "(3), " curl_multi_socket_action "(3) "
diff --git a/docs/libcurl/curl_multi_cleanup.3 b/docs/libcurl/curl_multi_cleanup.3
index 0d4eb3680..9bd060477 100644
--- a/docs/libcurl/curl_multi_cleanup.3
+++ b/docs/libcurl/curl_multi_cleanup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_cleanup 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_cleanup 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_cleanup - close down a multi session
@@ -44,6 +44,15 @@ removed
Passing in a NULL pointer in \fImulti_handle\fP will make this function return
CURLM_BAD_HANDLE immediately with no other action.
+.SH EXAMPLE
+.nf
+ /* when the multi transfer is done ... */
+
+ /* remove all easy handles, then: */
+ curl_multi_cleanup(multi_handle);
+.fi
+.SH AVAILABILITY
+Added in 7.9.6
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code. On success,
CURLM_OK is returned.
diff --git a/docs/libcurl/curl_multi_fdset.3 b/docs/libcurl/curl_multi_fdset.3
index ce3fb85e0..de7e375f6 100644
--- a/docs/libcurl/curl_multi_fdset.3
+++ b/docs/libcurl/curl_multi_fdset.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_fdset 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_fdset 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_fdset - extracts file descriptor information from a multi handle
@@ -37,7 +37,7 @@ CURLMcode curl_multi_fdset(CURLM *multi_handle,
This function extracts file descriptor information from a given multi_handle.
libcurl returns its fd_set sets. The application can use these to select() on,
but be sure to FD_ZERO them before calling this function as
-\fIcurl_multi_fdset(3)\fP only adds its own descriptors, it doesn't zero or
+\fIcurl_multi_fdset(3)\fP only adds its own descriptors, it does not zero or
otherwise remove any others. The \fIcurl_multi_perform(3)\fP function should
be called as soon as one of them is ready to be read from or written to.
@@ -56,7 +56,7 @@ error conditions pending.
If no file descriptors are set by libcurl, \fImax_fd\fP will contain -1 when
this function returns. Otherwise it will contain the highest descriptor number
libcurl set. When libcurl returns -1 in \fImax_fd\fP, it is because libcurl
-currently does something that isn't possible for your application to monitor
+currently does something that is not possible for your application to monitor
with a socket and unfortunately you can then not know exactly when the current
action is completed using select(). You then need to wait a while before you
proceed and call \fIcurl_multi_perform(3)\fP anyway. How long to wait? Unless
@@ -67,7 +67,7 @@ conditions to find a suitable value.
When doing select(), you should use \fIcurl_multi_timeout(3)\fP to figure out
how long to wait for action. Call \fIcurl_multi_perform(3)\fP even if no
activity has been seen on the fd_sets after the timeout expires as otherwise
-internal retries and timeouts may not work as you'd think and want.
+internal retries and timeouts may not work as you would think and want.
If one of the sockets used by libcurl happens to be larger than what can be
set in an fd_set, which on POSIX systems means that the file descriptor is
@@ -76,6 +76,21 @@ large file descriptor in an fd_set implies an out of bounds write which can
cause crashes, or worse. The effect of NOT storing it will possibly save you
from the crash, but will make your program NOT wait for sockets it should wait
for...
+.SH EXAMPLE
+.nf
+ /* get file descriptors from the transfers */
+ mc = curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
+
+ if(mc != CURLM_OK) {
+ fprintf(stderr, "curl_multi_fdset() failed, code %d.\\n", mc);
+ break;
+ }
+
+ /* wait for activity on one of the sockets */
+ rc = select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout);
+.fi
+.SH AVAILABILITY
+Added in 7.9.6
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code. See
\fIlibcurl-errors(3)\fP
diff --git a/docs/libcurl/curl_multi_info_read.3 b/docs/libcurl/curl_multi_info_read.3
index d2aeb4eab..b99d4abcb 100644
--- a/docs/libcurl/curl_multi_info_read.3
+++ b/docs/libcurl/curl_multi_info_read.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_info_read 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_info_read 3 "November 01, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_info_read - read multi stack informationals
@@ -49,10 +49,10 @@ is emptied.
calling \fIcurl_multi_cleanup(3)\fP, \fIcurl_multi_remove_handle(3)\fP or
\fIcurl_easy_cleanup(3)\fP.
-The 'CURLMsg' struct is very simple and only contains very basic information.
-If more involved information is wanted, the particular "easy handle" is
-present in that struct and can be used in subsequent regular
-\fIcurl_easy_getinfo(3)\fP calls (or similar):
+The 'CURLMsg' struct is simple and only contains basic information. If more
+involved information is wanted, the particular "easy handle" is present in
+that struct and can be used in subsequent regular \fIcurl_easy_getinfo(3)\fP
+calls (or similar):
.nf
struct CURLMsg {
@@ -87,7 +87,9 @@ do {
}
} while(m);
.fi
-.SH "RETURN VALUE"
+.SH AVAILABILITY
+Added in 7.9.6
+.SH RETURN VALUE
A pointer to a filled-in struct, or NULL if it failed or ran out of
structs. It also writes the number of messages left in the queue (after this
read) in the integer the second argument points to.
diff --git a/docs/libcurl/curl_multi_init.3 b/docs/libcurl/curl_multi_init.3
index fda05105f..1507f0bb3 100644
--- a/docs/libcurl/curl_multi_init.3
+++ b/docs/libcurl/curl_multi_init.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_init 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_init 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_init - create a multi handle
@@ -33,6 +33,17 @@ This function returns a CURLM handle to be used as input to all the other
multi-functions, sometimes referred to as a multi handle in some places in the
documentation. This init call MUST have a corresponding call to
\fIcurl_multi_cleanup(3)\fP when the operation is complete.
+.SH EXAMPLE
+.fi
+ /* init a multi stack */
+ multi_handle = curl_multi_init();
+
+ /* add individual transfers */
+ curl_multi_add_handle(multi_handle, http_handle);
+ curl_multi_add_handle(multi_handle, http_handle2);
+.nf
+.SH AVAILABILITY
+Added in 7.9.6
.SH RETURN VALUE
If this function returns NULL, something went wrong and you cannot use the
other curl functions.
diff --git a/docs/libcurl/curl_multi_perform.3 b/docs/libcurl/curl_multi_perform.3
index 6365e032a..fb1c57ed9 100644
--- a/docs/libcurl/curl_multi_perform.3
+++ b/docs/libcurl/curl_multi_perform.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_perform 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_perform 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_perform - reads/writes available data from each easy handle
@@ -29,8 +29,9 @@ curl_multi_perform - reads/writes available data from each easy handle
CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);
.ad
.SH DESCRIPTION
-This function handles transfers on all the added handles that need attention
-in an non-blocking fashion.
+This function performs transfers on all the added handles that need attention
+in an non-blocking fashion. The easy handles have previously been added to the
+multi handle with \fIcurl_multi_add_handle(3)\fP.
When an application has found out there's data available for the multi_handle
or a timeout has elapsed, the application should call this function to
@@ -38,94 +39,54 @@ read/write whatever there is to read or write right now etc.
\fIcurl_multi_perform(3)\fP returns as soon as the reads/writes are done. This
function does not require that there actually is any data available for
reading or that data can be written, it can be called just in case. It will
-write the number of handles that still transfer data in the second argument's
+store the number of handles that still transfer data in the second argument's
integer-pointer.
If the amount of \fIrunning_handles\fP is changed from the previous call (or
-is less than the amount of easy handles you've added to the multi handle), you
+is less than the amount of easy handles you have added to the multi handle), you
know that there is one or more transfers less "running". You can then call
\fIcurl_multi_info_read(3)\fP to get information about each individual
completed transfer, and that returned info includes CURLcode and more. If an
-added handle fails very quickly, it may never be counted as a running_handle.
-You could use \fIcurl_multi_info_read(3)\fP to track actual status of the
-added handles in that case.
+added handle fails quickly, it may never be counted as a running_handle. You
+could use \fIcurl_multi_info_read(3)\fP to track actual status of the added
+handles in that case.
When \fIrunning_handles\fP is set to zero (0) on the return of this function,
there is no longer any transfers in progress.
.SH EXAMPLE
.nf
-#ifdef _WIN32
-#define SHORT_SLEEP Sleep(100)
-#else
-#define SHORT_SLEEP usleep(100000)
-#endif
+int still_running;
+do {
+ CURLMcode mc = curl_multi_perform(multi_handle, &still_running);
-fd_set fdread;
-fd_set fdwrite;
-fd_set fdexcep;
-int maxfd = -1;
+ if(!mc && still_running)
+ /* wait for activity, timeout or "nothing" */
+ mc = curl_multi_poll(multi_handle, NULL, 0, 1000, NULL);
-long curl_timeo;
-
-curl_multi_timeout(multi_handle, &curl_timeo);
-if(curl_timeo < 0)
- curl_timeo = 1000;
-
-timeout.tv_sec = curl_timeo / 1000;
-timeout.tv_usec = (curl_timeo % 1000) * 1000;
-
-FD_ZERO(&fdread);
-FD_ZERO(&fdwrite);
-FD_ZERO(&fdexcep);
-
-/* get file descriptors from the transfers */
-mc = curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
-
-if(maxfd == -1) {
- SHORT_SLEEP;
- rc = 0;
-}
-else
- rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
-
-switch(rc) {
-case -1:
- /* select error */
- break;
-case 0:
-default:
- /* timeout or readable/writable sockets */
- curl_multi_perform(multi_handle, &still_running);
- break;
-}
+ if(mc) {
+ fprintf(stderr, "curl_multi_poll() failed, code %d.\\n", (int)mc);
+ break;
+ }
/* if there are still transfers, loop! */
+} while(still_running);
.fi
-.SH "RETURN VALUE"
+.SH AVAILABILITY
+Added in 7.9.6
+.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code.
-Before version 7.20.0 (released on February 9 2010): If you receive \fICURLM_CALL_MULTI_PERFORM\fP, this
-basically means that you should call \fIcurl_multi_perform(3)\fP again, before
-you select() on more actions. You don't have to do it immediately, but the
-return code means that libcurl may have more data available to return or that
-there may be more data to send off before it is "satisfied". Do note that
-\fIcurl_multi_perform(3)\fP will return \fICURLM_CALL_MULTI_PERFORM\fP only
-when it wants to be called again \fBimmediately\fP. When things are fine and
-there is nothing immediate it wants done, it'll return \fICURLM_OK\fP and you
-need to wait for \&"action" and then call this function again.
-
-This function only returns errors etc regarding the whole multi stack.
-Problems still might have occurred on individual transfers even when this
-function returns \fICURLM_OK\fP. Use \fIcurl_multi_info_read(3)\fP to figure
-out how individual transfers did.
+This function returns errors regarding the whole multi stack. Problems on
+individual transfers may have occurred even when this function returns
+\fICURLM_OK\fP. Use \fIcurl_multi_info_read(3)\fP to figure out how individual
+transfers did.
.SH "TYPICAL USAGE"
-Most applications will use \fIcurl_multi_fdset(3)\fP to get the multi_handle's
-file descriptors, and \fIcurl_multi_timeout(3)\fP to get a suitable timeout
-period, then it'll wait for action on the file descriptors using
-\fBselect(3)\fP. As soon as one or more file descriptor is ready,
-\fIcurl_multi_perform(3)\fP gets called.
+Most applications will use \fIcurl_multi_poll(3)\fP to make libcurl wait for
+activity on any of the ongoing transfers. As soon as one or more file
+descriptor has activity or the function times out, the application calls
+\fIcurl_multi_perform(3)\fP.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
-.BR curl_multi_wait "(3), "
+.BR curl_multi_wait "(3), " curl_multi_add_handle "(3), "
.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
.BR libcurl-errors "(3)"
diff --git a/docs/libcurl/curl_multi_poll.3 b/docs/libcurl/curl_multi_poll.3
index 5757de403..eba996758 100644
--- a/docs/libcurl/curl_multi_poll.3
+++ b/docs/libcurl/curl_multi_poll.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_poll 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_poll 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_poll - polls on all easy handles in a multi handle
@@ -108,11 +108,11 @@ do {
curl_multi_remove_handle(multi_handle, easy_handle);
.fi
+.SH AVAILABILITY
+Added in 7.66.0.
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code. See
\fIlibcurl-errors(3)\fP
-.SH AVAILABILITY
-This function was added in libcurl 7.66.0.
.SH "SEE ALSO"
.BR curl_multi_fdset "(3), " curl_multi_perform "(3), "
.BR curl_multi_wait "(3), " curl_multi_wakeup "(3)"
diff --git a/docs/libcurl/curl_multi_remove_handle.3 b/docs/libcurl/curl_multi_remove_handle.3
index 099b929e6..a61827794 100644
--- a/docs/libcurl/curl_multi_remove_handle.3
+++ b/docs/libcurl/curl_multi_remove_handle.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_remove_handle 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_remove_handle 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_remove_handle - remove an easy handle from a multi session
@@ -41,6 +41,20 @@ other easy handles and transfers will remain unaffected.
It is fine to remove a handle at any time during a transfer, just not from
within any libcurl callback function.
+.SH EXAMPLE
+.nf
+/* when an easy handle has completed, remove it */
+msg = curl_multi_info_read(multi_handle, &queued);
+if(msg) {
+ if(msg->msg == CURLMSG_DONE) {
+ /* a transfer ended */
+ fprintf(stderr, "Transfer completed\\n");
+ curl_multi_remove_handle(multi_handle, msg->easy_handle);
+ }
+}
+.fi
+.SH AVAILABILITY
+Added in 7.9.6
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code.
.SH "SEE ALSO"
diff --git a/docs/libcurl/curl_multi_setopt.3 b/docs/libcurl/curl_multi_setopt.3
index 51fe71090..1191525a6 100644
--- a/docs/libcurl/curl_multi_setopt.3
+++ b/docs/libcurl/curl_multi_setopt.3
@@ -19,14 +19,14 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_setopt 3 "December 31, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_setopt 3 "October 31, 2021" "libcurl 7.80.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);
+CURLMcode curl_multi_setopt(CURLM *multi_handle, CURLMoption option, param);
.SH DESCRIPTION
\fIcurl_multi_setopt(3)\fP is used to tell a libcurl multi handle how to
behave. By using the appropriate options to \fIcurl_multi_setopt(3)\fP, you
@@ -70,12 +70,17 @@ See \fICURLMOPT_TIMERFUNCTION(3)\fP
See \fICURLMOPT_TIMERDATA(3)\fP
.IP CURLMOPT_MAX_CONCURRENT_STREAMS
See \fICURLMOPT_MAX_CONCURRENT_STREAMS(3)\fP
-.SH RETURNS
+.SH EXAMPLE
+.fi
+ /* Limit the amount of simultaneous connections curl should allow: */
+ curl_multi_setopt(handle, CURLMOPT_MAXCONNECTS, (long)MAX_PARALLEL);
+.nf
+.SH AVAILABILITY
+Added in 7.15.4
+.SH RETURN VALUE
The standard CURLMcode for multi interface error codes. Note that it returns a
CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
-doesn't know of.
-.SH AVAILABILITY
-This function was added in libcurl 7.15.4.
+does not know of.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
.BR curl_multi_socket "(3), " curl_multi_info_read "(3)"
diff --git a/docs/libcurl/curl_multi_socket.3 b/docs/libcurl/curl_multi_socket.3
index 32416d1e9..e16bef264 100644
--- a/docs/libcurl/curl_multi_socket.3
+++ b/docs/libcurl/curl_multi_socket.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,14 +19,14 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_socket 3 "October 25, 2021" "libcurl 7.80.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,
+CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t sockfd,
int *running_handles);
CURLMcode curl_multi_socket_all(CURLM *multi_handle,
@@ -67,17 +67,14 @@ equivalent to \fIcurl_multi_socket_action(3)\fP with \fBev_bitmask\fP set to
Force libcurl to (re-)check all its internal sockets and transfers instead of
just a single one by calling \fIcurl_multi_socket_all(3)\fP. Note that there
should not be any reason to use this function!
-.SH "CALLBACK DETAILS"
-
+.SH CALLBACK
The socket \fBcallback\fP function uses a prototype like this
.nf
-
int curl_socket_callback(CURL *easy, /* easy handle */
curl_socket_t s, /* socket */
int action, /* see values below */
void *userp, /* private callback pointer */
void *socketp); /* private socket pointer */
-
.fi
The callback MUST return 0.
@@ -110,22 +107,6 @@ strictly associated to the given socket.
The \fIuserp\fP argument is a private pointer you have previously set with
\fIcurl_multi_setopt(3)\fP and the \fICURLMOPT_SOCKETDATA(3)\fP option.
-.SH "RETURN VALUE"
-CURLMcode type, general libcurl multi interface error code.
-
-Legacy: If you receive \fICURLM_CALL_MULTI_PERFORM\fP, this basically means
-that you should call \fIcurl_multi_socket(3)\fP again, before you wait for
-more actions on libcurl's sockets. You don't have to do it immediately, but
-the return code means that libcurl may have more data available to return or
-that there may be more data to send off before it is "satisfied".
-
-In modern libcurls, \fICURLM_CALL_MULTI_PERFORM\fP or
-\fICURLM_CALL_MULTI_SOCKET\fP should not be returned and no application needs
-to care about them.
-
-NOTE that the return code is for the whole multi stack. Problems still might have
-occurred on individual transfers even when one of these functions
-return OK.
.SH "TYPICAL USAGE"
1. Create a multi handle
@@ -148,12 +129,24 @@ socket(s) that got action. If no activity is detected and the timeout expires,
call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP
8. Go back to step 6.
+.SH EXAMPLE
+.nf
+/* the event-library gets told when there activity on the socket 'fd',
+ which we translate to a call to curl_multi_socket_action() */
+int running;
+rc = curl_multi_socket(multi_handle, fd, &running);
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.15.4, and is deemed stable since
7.16.0.
\fIcurl_multi_socket(3)\fP is deprecated, use
\fIcurl_multi_socket_action(3)\fP instead!
+.SH "RETURN VALUE"
+CURLMcode type, general libcurl multi interface error code.
+
+The return code is for the whole multi stack. Problems still might have
+occurred on individual transfers even when one of these functions return OK.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
diff --git a/docs/libcurl/curl_multi_socket_action.3 b/docs/libcurl/curl_multi_socket_action.3
index 61d997984..d62168429 100644
--- a/docs/libcurl/curl_multi_socket_action.3
+++ b/docs/libcurl/curl_multi_socket_action.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket_action 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_socket_action 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_socket_action \- reads/writes available data given an action
@@ -27,7 +27,7 @@ curl_multi_socket_action \- reads/writes available data given an action
.nf
#include <curl/curl.h>
-CURLMcode curl_multi_socket_action(CURLM * multi_handle,
+CURLMcode curl_multi_socket_action(CURLM *multi_handle,
curl_socket_t sockfd,
int ev_bitmask,
int *running_handles);
@@ -89,8 +89,19 @@ callback has been told.
8, When activity is detected, call curl_multi_socket_action() for the
socket(s) that got action. If no activity is detected and the timeout expires,
call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP.
+.SH EXAMPLE
+.nf
+/* the event-library gets told when there activity on the socket 'fd',
+ which we translate to a call to curl_multi_socket_action() */
+int running;
+rc = curl_multi_socket_action(multi_handle, fd, EVENT,
+ &running);
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.15.4, and is deemed stable since 7.16.0.
+.SH RETURN VALUE
+CURLMcode type, general libcurl multi interface error code. See
+\fIlibcurl-errors(3)\fP
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
diff --git a/docs/libcurl/curl_multi_strerror.3 b/docs/libcurl/curl_multi_strerror.3
index ce7b38b90..7c6c8f276 100644
--- a/docs/libcurl/curl_multi_strerror.3
+++ b/docs/libcurl/curl_multi_strerror.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_strerror 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_strerror 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_strerror - return string describing error code
@@ -30,9 +30,18 @@ curl_multi_strerror - return string describing error code
.SH DESCRIPTION
The curl_multi_strerror() function returns a string describing the CURLMcode
error code passed in the argument \fIerrornum\fP.
+.SH EXAMPLE
+.nf
+int still_running;
+
+CURLMcode mc = curl_multi_perform(multi_handle, &still_running);
+if(mc)
+ printf("error: %s\\n", curl_multi_strerror(mc));
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.12.0
.SH RETURN VALUE
A pointer to a null-terminated string.
.SH "SEE ALSO"
-.BR libcurl-errors "(3), " curl_easy_strerror "(3), " curl_share_strerror "(3)"
+.BR libcurl-errors "(3), " curl_easy_strerror "(3), "
+.BR curl_share_strerror "(3), " curl_url_strerror "(3)"
diff --git a/docs/libcurl/curl_multi_timeout.3 b/docs/libcurl/curl_multi_timeout.3
index 3e69f1742..ef7090f01 100644
--- a/docs/libcurl/curl_multi_timeout.3
+++ b/docs/libcurl/curl_multi_timeout.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_timeout 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_timeout 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_timeout \- how long to wait for action before proceeding
@@ -35,13 +35,12 @@ actions \- at most \- before proceeding.
Proceeding means either doing the socket-style timeout action: call the
\fIcurl_multi_socket_action(3)\fP function with the \fBsockfd\fP argument set
-to CURL_SOCKET_TIMEOUT, or call \fIcurl_multi_perform(3)\fP if you're using
+to CURL_SOCKET_TIMEOUT, or call \fIcurl_multi_perform(3)\fP if you are using
the simpler and older multi interface approach.
The timeout value returned in the long \fBtimeout\fP points to, is in number
-of milliseconds at this very moment. If 0, it means you should proceed
-immediately without waiting for anything. If it returns -1, there's no timeout
-at all set.
+of milliseconds at this moment. If 0, it means you should proceed immediately
+without waiting for anything. If it returns -1, there's no timeout at all set.
An application that uses the multi_socket API SHOULD NOT use this function, but
SHOULD instead use \fIcurl_multi_setopt(3)\fP and its
@@ -66,14 +65,14 @@ timeout.tv_usec = (timeo % 1000) * 1000;
/* wait for activities no longer than the set timeout */
select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
.fi
-.SH "RETURN VALUE"
-The standard CURLMcode for multi interface error codes.
-.SH "TYPICAL USAGE"
+.SH TYPICAL USAGE
Call \fIcurl_multi_timeout(3)\fP, then wait for action on the sockets. You
figure out which sockets to wait for by calling \fIcurl_multi_fdset(3)\fP or
by a previous call to \fIcurl_multi_socket(3)\fP.
.SH AVAILABILITY
This function was added in libcurl 7.15.4.
+.SH RETURN VALUE
+The standard CURLMcode for multi interface error codes.
.SH "SEE ALSO"
.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
.BR curl_multi_socket "(3), " curl_multi_setopt "(3) "
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3
index 911d1e817..4e10c5769 100644
--- a/docs/libcurl/curl_multi_wait.3
+++ b/docs/libcurl/curl_multi_wait.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_wait 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_wait 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_wait - polls on all easy handles in a multi handle
@@ -115,10 +115,10 @@ do {
curl_multi_remove_handle(multi_handle, easy_handle);
.fi
+.SH AVAILABILITY
+This function was added in libcurl 7.28.0.
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code. See
\fIlibcurl-errors(3)\fP
-.SH AVAILABILITY
-This function was added in libcurl 7.28.0.
.SH "SEE ALSO"
.BR curl_multi_fdset "(3), " curl_multi_perform "(3)", curl_multi_poll "(3) ",
diff --git a/docs/libcurl/curl_multi_wakeup.3 b/docs/libcurl/curl_multi_wakeup.3
index ef04dcb1f..67508c682 100644
--- a/docs/libcurl/curl_multi_wakeup.3
+++ b/docs/libcurl/curl_multi_wakeup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_wakeup 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_multi_wakeup 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_multi_wakeup - wakes up a sleeping curl_multi_poll call
@@ -42,10 +42,6 @@ possible that multiple calls to this function will wake up the same waiting
operation.
This function has no effect on \fIcurl_multi_wait(3)\fP calls.
-.SH RETURN VALUE
-CURLMcode type, general libcurl multi interface error code.
-.SH AVAILABILITY
-Added in 7.68.0
.SH EXAMPLE
.nf
CURL *easy_handle;
@@ -83,5 +79,9 @@ if(something makes us decide to stop thread 1) {
}
.fi
+.SH AVAILABILITY
+Added in 7.68.0
+.SH RETURN VALUE
+CURLMcode type, general libcurl multi interface error code.
.SH "SEE ALSO"
.BR curl_multi_poll "(3), " curl_multi_wait "(3)"
diff --git a/docs/libcurl/curl_share_cleanup.3 b/docs/libcurl/curl_share_cleanup.3
index b4214d6c4..17e686004 100644
--- a/docs/libcurl/curl_share_cleanup.3
+++ b/docs/libcurl/curl_share_cleanup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_cleanup 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_share_cleanup 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_share_cleanup - Clean up a shared object
@@ -34,6 +34,16 @@ when this function has been called.
Passing in a NULL pointer in \fIshare_handle\fP will make this function return
immediately with no action.
+.SH EXAMPLE
+.nf
+ CURLSHcode sh
+ share = curl_share_init();
+ sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
+ /* use the share, then ... */
+ curl_share_cleanup(share);
+.fi
+.SH AVAILABILITY
+Added in 7.10
.SH RETURN VALUE
CURLSHE_OK (zero) means that the option was set properly, non-zero means an
error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
diff --git a/docs/libcurl/curl_share_init.3 b/docs/libcurl/curl_share_init.3
index f20141aff..e04bdd9a9 100644
--- a/docs/libcurl/curl_share_init.3
+++ b/docs/libcurl/curl_share_init.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_init 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_share_init 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_share_init - Create a shared object
@@ -37,6 +37,16 @@ documentation. This init call MUST have a corresponding call to
This \fIshare handle\fP is what you pass to curl using the
\fICURLOPT_SHARE(3)\fP option with \fIcurl_easy_setopt(3)\fP, to make that
specific curl handle use the data in this share.
+.SH EXAMPLE
+.nf
+ CURLSHcode sh
+ share = curl_share_init();
+ sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
+ if(sh)
+ printf("Error: %s\\n", curl_share_strerror(sh));
+.fi
+.SH AVAILABILITY
+Added in 7.10
.SH RETURN VALUE
If this function returns NULL, something went wrong (out of memory, etc.)
and therefore the share object was not created.
diff --git a/docs/libcurl/curl_share_setopt.3 b/docs/libcurl/curl_share_setopt.3
index 6d2646042..7a621a47f 100644
--- a/docs/libcurl/curl_share_setopt.3
+++ b/docs/libcurl/curl_share_setopt.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_setopt 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_share_setopt 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_share_setopt - Set options for a shared object
@@ -107,6 +107,16 @@ the same as those for \fICURLSHOPT_SHARE\fP.
.IP CURLSHOPT_USERDATA
The \fIparameter\fP allows you to specify a pointer to data that will be passed
to the lock_function and unlock_function each time it is called.
+.SH EXAMPLE
+.nf
+ CURLSHcode sh
+ share = curl_share_init();
+ sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
+ if(sh)
+ printf("Error: %s\\n", curl_share_strerror(sh));
+.fi
+.SH AVAILABILITY
+Added in 7.10
.SH RETURN VALUE
CURLSHE_OK (zero) means that the option was set properly, non-zero means an
error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
diff --git a/docs/libcurl/curl_share_strerror.3 b/docs/libcurl/curl_share_strerror.3
index e003ae100..c4c93c977 100644
--- a/docs/libcurl/curl_share_strerror.3
+++ b/docs/libcurl/curl_share_strerror.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_strerror 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_share_strerror 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_share_strerror - return string describing error code
@@ -30,9 +30,18 @@ curl_share_strerror - return string describing error code
.SH DESCRIPTION
The curl_share_strerror() function returns a string describing the CURLSHcode
error code passed in the argument \fIerrornum\fP.
+.SH EXAMPLE
+.nf
+ CURLSHcode sh
+ share = curl_share_init();
+ sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
+ if(sh)
+ printf("Error: %s\\n", curl_share_strerror(sh));
+.fi
.SH AVAILABILITY
This function was added in libcurl 7.12.0
.SH RETURN VALUE
A pointer to a null-terminated string.
.SH "SEE ALSO"
-.BR libcurl-errors "(3), " curl_multi_strerror "(3), " curl_easy_strerror "(3)"
+.BR libcurl-errors "(3), " curl_multi_strerror "(3), "
+.BR curl_easy_strerror "(3), " curl_url_strerror "(3)"
diff --git a/docs/libcurl/curl_slist_append.3 b/docs/libcurl/curl_slist_append.3
index 3d3bef2f6..3caa15206 100644
--- a/docs/libcurl/curl_slist_append.3
+++ b/docs/libcurl/curl_slist_append.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_append 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_slist_append 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_slist_append - add a string to an slist
@@ -38,11 +38,6 @@ returns. \fIcurl_slist_append(3)\fP copies the string.
The list should be freed again (after usage) with
\fIcurl_slist_free_all(3)\fP.
-.SH RETURN VALUE
-A null pointer is returned if anything went wrong, otherwise the new list
-pointer is returned. To avoid overwriting an existing non-empty list on
-failure, the new list should be returned to a temporary variable which can
-be tested for NULL before updating the original list pointer.
.SH EXAMPLE
.nf
CURL *handle;
@@ -69,5 +64,12 @@ curl_easy_perform(handle);
curl_slist_free_all(slist); /* free the list again */
.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+A null pointer is returned if anything went wrong, otherwise the new list
+pointer is returned. To avoid overwriting an existing non-empty list on
+failure, the new list should be returned to a temporary variable which can
+be tested for NULL before updating the original list pointer.
.SH "SEE ALSO"
.BR curl_slist_free_all "(3), "
diff --git a/docs/libcurl/curl_slist_free_all.3 b/docs/libcurl/curl_slist_free_all.3
index 9aed31dfd..dfdafb8c1 100644
--- a/docs/libcurl/curl_slist_free_all.3
+++ b/docs/libcurl/curl_slist_free_all.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_free_all 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_slist_free_all 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_slist_free_all - free an entire curl_slist list
@@ -34,8 +34,6 @@ linked list.
Passing in a NULL pointer in \fIlist\fP will make this function return
immediately with no action.
-.SH RETURN VALUE
-Nothing.
.SH EXAMPLE
.nf
CURL *handle;
@@ -52,5 +50,9 @@ curl_easy_perform(handle);
curl_slist_free_all(slist); /* free the list again */
.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+Nothing.
.SH "SEE ALSO"
.BR curl_slist_append "(3), "
diff --git a/docs/libcurl/curl_strequal.3 b/docs/libcurl/curl_strequal.3
index 0684af2d5..8bfb1b678 100644
--- a/docs/libcurl/curl_strequal.3
+++ b/docs/libcurl/curl_strequal.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_strequal 3 "November 05, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_strequal 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_strequal, curl_strnequal - case insensitive string comparisons
@@ -42,11 +42,18 @@ first \fIlen\fP characters of \fIstr1\fP.
These functions are provided by libcurl to enable applications to compare
strings in a truly portable manner. There are no standard portable case
insensitive string comparison functions. These two work on all platforms.
+.SH EXAMPLE
+.nf
+if(curl_strequal(name, input))
+ printf("Name and input matches\\n");
+if(curl_strnequal(name, input, 5))
+ printf("Name and input matches in the 5 first bytes\\n");
+.fi
.SH AVAILABILITY
These functions will be removed from the public libcurl API in a near
future. They will instead be made "available" by source code access only, and
then as curlx_strequal() and curlx_strenqual().
.SH RETURN VALUE
-Non-zero if the strings are identical. Zero if they're not.
+Non-zero if the strings are identical. Zero if they are not.
.SH "SEE ALSO"
.BR strcmp "(3), " strcasecmp "(3)"
diff --git a/docs/libcurl/curl_unescape.3 b/docs/libcurl/curl_unescape.3
index 192ff3b08..29b80caa9 100644
--- a/docs/libcurl/curl_unescape.3
+++ b/docs/libcurl/curl_unescape.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_unescape 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_unescape 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_unescape - URL decodes the given string
@@ -39,7 +39,21 @@ converted to their plain text versions.
If the 'length' argument is set to 0, curl_unescape() 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.
+You must \fIcurl_free(3)\fP the returned string when you are done with it.
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ int decodelen;
+ char *decoded = curl_unescape("%63%75%72%6c", 12, &decodelen);
+ if(decoded) {
+ /* do not assume printf() works on the decoded data! */
+ printf("Decoded: ");
+ /* ... */
+ curl_free(decoded);
+ }
+}
+.fi
.SH AVAILABILITY
Since 7.15.4, \fIcurl_easy_unescape(3)\fP should be used. This function will
be removed in a future release.
diff --git a/docs/libcurl/curl_url.3 b/docs/libcurl/curl_url.3
index b53cfcd9a..c2857605f 100644
--- a/docs/libcurl/curl_url.3
+++ b/docs/libcurl/curl_url.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_url 3 "March 27, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_url 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_url - returns a new CURLU handle
@@ -30,8 +30,6 @@ CURLU *curl_url();
.SH DESCRIPTION
This function will allocates and returns a pointer to a fresh CURLU handle, to
be used for further use of the URL API.
-.SH RETURN VALUE
-Returns a \fBCURLU *\fP if successful, or NULL if out of memory.
.SH EXAMPLE
.nf
CURLUcode rc;
@@ -48,7 +46,9 @@ Returns a \fBCURLU *\fP if successful, or NULL if out of memory.
}
.fi
.SH AVAILABILITY
-Added in curl 7.62.0
+Added in 7.62.0
+.SH RETURN VALUE
+Returns a \fBCURLU *\fP if successful, or NULL if out of memory.
.SH "SEE ALSO"
.BR curl_url_cleanup "(3), " curl_url_get "(3), " curl_url_set "(3), "
-.BR curl_url_dup "(3), " CURLOPT_CURLU "(3), "
+.BR curl_url_dup "(3), " curl_url_strerror "(3), " CURLOPT_CURLU "(3)"
diff --git a/docs/libcurl/curl_url_cleanup.3 b/docs/libcurl/curl_url_cleanup.3
index 4e8085b13..94ff559ce 100644
--- a/docs/libcurl/curl_url_cleanup.3
+++ b/docs/libcurl/curl_url_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_url_cleanup 3 "March 27, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_url_cleanup 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_url_cleanup - free a CURLU handle
@@ -30,8 +30,6 @@ void curl_url_cleanup(CURLU *handle);
.fi
.SH DESCRIPTION
Frees all the resources associated with the given CURLU handle!
-.SH RETURN VALUE
-none
.SH EXAMPLE
.nf
CURLU *url = curl_url();
@@ -39,7 +37,9 @@ none
curl_url_cleanup(url);
.fi
.SH AVAILABILITY
-Added in curl 7.62.0
+Added in 7.62.0
+.SH RETURN VALUE
+none
.SH "SEE ALSO"
.BR curl_url_dup "(3), " curl_url "(3), " curl_url_set "(3), "
.BR curl_url_get "(3), " CURLOPT_CURLU "(3), "
diff --git a/docs/libcurl/curl_url_dup.3 b/docs/libcurl/curl_url_dup.3
index f851edde7..2afccfe66 100644
--- a/docs/libcurl/curl_url_dup.3
+++ b/docs/libcurl/curl_url_dup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_url_dup 3 "March 27, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_url_dup 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_url_dup - duplicate a CURLU handle
@@ -32,8 +32,6 @@ CURLU *curl_url_dup(CURLU *inhandle);
Duplicates a given CURLU \fIinhandle\fP and all its contents and returns a
pointer to a new CURLU handle. The new handle also needs to be freed with
\fIcurl_url_cleanup(3)\fP.
-.SH RETURN VALUE
-Returns a new handle or NULL if out of memory.
.SH EXAMPLE
.nf
CURLUcode rc;
@@ -47,7 +45,9 @@ Returns a new handle or NULL if out of memory.
curl_url_cleanup(url);
.fi
.SH AVAILABILITY
-Added in curl 7.62.0
+Added in 7.62.0
+.SH RETURN VALUE
+Returns a new handle or NULL if out of memory.
.SH "SEE ALSO"
.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
.BR curl_url_get "(3), " CURLOPT_CURLU "(3), "
diff --git a/docs/libcurl/curl_url_get.3 b/docs/libcurl/curl_url_get.3
index a93400bac..34f0b4984 100644
--- a/docs/libcurl/curl_url_get.3
+++ b/docs/libcurl/curl_url_get.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_url_get 3 "March 27, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_url_get 3 "October 25, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_url_get - extract a part from a URL
@@ -57,7 +57,7 @@ default port for the scheme.
.IP CURLU_URLDECODE
Asks \fIcurl_url_get(3)\fP to URL decode the contents before returning it. It
will not attempt to decode the scheme, the port number or the full URL.
-
The query component will also get plus-to-space conversion as a bonus when
this bit is set.
@@ -67,6 +67,14 @@ encoding.
If there's any byte values lower than 32 in the decoded string, the get
operation will return an error instead.
+.IP CURLU_URLENCODE
+If set, will make \fIcurl_url_get(3)\fP URL encode the host name part when a
+full URL is retrieved. If not set (default), libcurl returns the URL with the
+host name "raw" to support IDN names to appear as-is. IDN host names are
+typically using non-ASCII bytes that otherwise will be percent-encoded.
+
+Note that even when not asking for URL encoding, the '%' (byte 37) will be URL
+encoded to make sure the host name remains valid.
.SH PARTS
.IP CURLUPART_URL
When asked to return the full URL, \fIcurl_url_get(3)\fP will return a
@@ -85,15 +93,19 @@ If the host name is a numeric IPv6 address, this field might also be set.
.IP CURLUPART_PORT
Port cannot be URL decoded on get.
.IP CURLUPART_PATH
+\fIpart\fP will be '/' even if no path is supplied in the URL.
.IP CURLUPART_QUERY
+The initial question mark that denotes the beginning of the query part is
+a delimiter only.
+It is not part of the query contents.
+
+
+A not-present query will lead \fIpart\fP to be set to NULL.
+A zero-length query will lead \fIpart\fP to be set to a zero-length string.
+
The query part will also get pluses converted to space when asked to URL
decode on get with the CURLU_URLDECODE bit.
.IP CURLUPART_FRAGMENT
-.SH RETURN VALUE
-Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
-fine.
-
-If this function returns an error, no URL part is returned.
.SH EXAMPLE
.nf
CURLUcode rc;
@@ -110,7 +122,13 @@ If this function returns an error, no URL part is returned.
}
.fi
.SH AVAILABILITY
-Added in curl 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
+Added in 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
+.SH RETURN VALUE
+Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
+fine. See the \fIlibcurl-errors(3)\fP man page for the full list with
+descriptions.
+
+If this function returns an error, no URL part is returned.
.SH "SEE ALSO"
.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
-.BR curl_url_dup "(3), " CURLOPT_CURLU "(3), "
+.BR curl_url_dup "(3), " curl_url_strerror "(3), " CURLOPT_CURLU "(3)"
diff --git a/docs/libcurl/curl_url_set.3 b/docs/libcurl/curl_url_set.3
index 732802536..3c63913bf 100644
--- a/docs/libcurl/curl_url_set.3
+++ b/docs/libcurl/curl_url_set.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_url_set 3 "May 31, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_url_set 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_url_set - set a URL part
@@ -81,7 +81,7 @@ The query part will also get spaces converted to pluses when asked to URL
encode on set with the CURLU_URLENCODE bit.
If used together with the \fICURLU_APPENDQUERY\fP bit, the provided part will
-be appended on the end of the existing query - and if the previous part didn't
+be appended on the end of the existing query - and if the previous part did not
end with an ampersand (&), an ampersand will be inserted before the new
appended part.
@@ -123,7 +123,7 @@ cannot know whether this is permitted for custom schemes. Specifying the flag
permits empty authority sections, similar to how file scheme is handled.
.IP CURLU_PATH_AS_IS
When set for \fBCURLUPART_URL\fP, this makes libcurl skip the normalization of
-the path. That's the procedure where curl otherwise removes sequences of
+the path. That is the procedure where curl otherwise removes sequences of
dot-slash and dot-dot etc. The same option used for transfers is called
\fICURLOPT_PATH_AS_IS(3)\fP.
.IP CURLU_ALLOW_SPACE
@@ -135,15 +135,6 @@ When space is used and allowed in a URL, it will be stored as-is unless
space before stored. This affects how the URL will be constructed when
\fIcurl_url_get(3)\fP is subsequently used to extract the full URL or
individual parts.
-.SH RETURN VALUE
-Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
-fine.
-
-A URL string passed on to \fIcurl_url_set(3)\fP for the \fBCURLUPART_URL\fP
-part, must be shorter than 8000000 bytes otherwise it returns
-\fBCURLUE_MALFORMED_INPUT\fP (added in 7.65.0).
-
-If this function returns an error, no URL part is set.
.SH EXAMPLE
.nf
CURLUcode rc;
@@ -157,7 +148,17 @@ If this function returns an error, no URL part is set.
curl_url_cleanup(url);
.fi
.SH AVAILABILITY
-Added in curl 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
+Added in 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
+.SH RETURN VALUE
+Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
+fine. See the \fIlibcurl-errors(3)\fP man page for the full list with
+descriptions.
+
+A URL string passed on to \fIcurl_url_set(3)\fP for the \fBCURLUPART_URL\fP
+part, must be shorter than 8000000 bytes otherwise it returns
+\fBCURLUE_MALFORMED_INPUT\fP (added in 7.65.0).
+
+If this function returns an error, no URL part is set.
.SH "SEE ALSO"
.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_get "(3), "
-.BR curl_url_dup "(3), " CURLOPT_CURLU "(3), "
+.BR curl_url_dup "(3), " curl_url_strerror "(3), " CURLOPT_CURLU "(3)"
diff --git a/docs/libcurl/curl_url_strerror.3 b/docs/libcurl/curl_url_strerror.3
new file mode 100644
index 000000000..4e5ce7159
--- /dev/null
+++ b/docs/libcurl/curl_url_strerror.3
@@ -0,0 +1,50 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2021, 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.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_url_strerror 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
+
+.SH NAME
+curl_url_strerror - return string describing error code
+.SH SYNOPSIS
+.nf
+.B #include <curl/curl.h>
+.BI "const char *curl_url_strerror(CURLUcode " errornum ");"
+.SH DESCRIPTION
+The curl_url_strerror() function returns a string describing the CURLUcode
+error code passed in the argument \fIerrornum\fP.
+.SH EXAMPLE
+.nf
+ CURLUcode rc;
+ CURLU *url = curl_url();
+ rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ if(rc)
+ printf("URL error: %s\\n", curl_url_strerror(rc));
+ curl_url_cleanup(url);
+.fi
+
+.SH AVAILABILITY
+Added in 7.80.0
+.SH RETURN VALUE
+A pointer to a null-terminated string.
+.SH "SEE ALSO"
+.BR libcurl-errors "(3), " curl_url_get "(3), " curl_url_set "(3), "
+.BR curl_easy_strerror "(3), " curl_multi_strerror "(3), "
+.BR curl_share_strerror "(3)"
diff --git a/docs/libcurl/curl_version.3 b/docs/libcurl/curl_version.3
index d738f382e..df847730a 100644
--- a/docs/libcurl/curl_version.3
+++ b/docs/libcurl/curl_version.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_version 3 "November 04, 2020" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_version 3 "November 04, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_version - returns the libcurl version string
@@ -33,6 +33,13 @@ Returns a human readable string with the version number of libcurl and some of
its important components (like OpenSSL version).
We recommend using \fIcurl_version_info(3)\fP instead!
+.SH EXAMPLE
+.nf
+printf("libcurl version %s\\n", curl_version());
+.fi
+
+.SH AVAILABILITY
+Always
.SH RETURN VALUE
A pointer to a null-terminated string. The string resides in a statically
allocated buffer and must not be freed by the caller.
diff --git a/docs/libcurl/curl_version_info.3 b/docs/libcurl/curl_version_info.3
index 080de2445..9e6dc6094 100644
--- a/docs/libcurl/curl_version_info.3
+++ b/docs/libcurl/curl_version_info.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_version_info 3 "April 03, 2021" "libcurl 7.78.0" "libcurl Manual"
+.TH curl_version_info 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual"
.SH NAME
curl_version_info - returns run-time libcurl version info
@@ -108,7 +108,7 @@ typedef struct {
.fi
\fIage\fP describes what the age of this struct is. The number depends on how
-new the libcurl you're using is. You are however guaranteed to get a struct
+new the libcurl you are using is. You are however guaranteed to get a struct
that you have a matching struct for in the header, as you tell libcurl your
"age" with the input argument.
@@ -192,7 +192,7 @@ libcurl was built with support for NTLM delegation to a winbind helper.
(Added in 7.22.0)
.IP CURL_VERSION_PSL
libcurl was built with support for Mozilla's Public Suffix List. This makes
-libcurl ignore cookies with a domain that's on the list.
+libcurl ignore cookies with a domain that is on the list.
(Added in 7.47.0)
.IP CURL_VERSION_SPNEGO
libcurl was built with support for SPNEGO authentication (Simple and Protected
@@ -224,6 +224,16 @@ libcurl has no libz support, this is NULL.
names protocols that libcurl supports (using lowercase letters). The protocol
names are the same as would be used in URLs. The array is terminated by a NULL
entry.
+.SH EXAMPLE
+.nf
+curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
+printf("libcurl version %u.%u.%u\\n",
+ (ver->version_num >> 16) & 0xff,
+ (ver->version_num >> 8) & 0xff,
+ ver->version_num & 0xff,
+.fi
+.SH AVAILABILITY
+Added in 7.10
.SH RETURN VALUE
A pointer to a curl_version_info_data struct.
.SH "SEE ALSO"
diff --git a/docs/libcurl/libcurl-easy.3 b/docs/libcurl/libcurl-easy.3
index fd3edae3a..7be35442d 100644
--- a/docs/libcurl/libcurl-easy.3
+++ b/docs/libcurl/libcurl-easy.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "November 04, 2020" "libcurl 7.78.0" "libcurl easy interface"
+.TH libcurl 3 "November 08, 2021" "libcurl 7.80.0" "libcurl easy interface"
.SH NAME
libcurl-easy \- easy interface overview
@@ -29,16 +29,17 @@ When using libcurl's "easy" interface you init your session and get a handle
interface functions you use. Use \fIcurl_easy_init(3)\fP to get the handle.
You continue by setting all the options you want in the upcoming transfer, the
-most important among them is the URL itself (you can't transfer anything
+most important among them is the URL itself (you cannot transfer anything
without a specified URL as you may have figured out yourself). You might want
to set some callbacks as well that will be called from the library when data
is available etc. \fIcurl_easy_setopt(3)\fP is used for all this.
-\fICURLOPT_URL(3)\fP is only option you really must set, as otherwise there
-can be no transfer. Another commonly used option is \fICURLOPT_VERBOSE(3)\fP
-that will help you see what libcurl is doing under the hood, very useful when
-debugging for example. The \fIcurl_easy_setopt(3)\fP man page has a full index
-of the over 200 available options.
+\fICURLOPT_URL(3)\fP is the only option you really must set, as otherwise
+there can be no transfer. Another commonly used option is
+\fICURLOPT_VERBOSE(3)\fP that will help you see what libcurl is doing under
+the hood, which is useful when debugging for example. The
+\fIcurl_easy_setopt(3)\fP man page has a full index of the almost 300
+available options.
If you at any point would like to blank all previously set options for a
single easy handle, you can call \fIcurl_easy_reset(3)\fP and you can also
@@ -46,12 +47,12 @@ make a clone of an easy handle (with all its set options) using
\fIcurl_easy_duphandle(3)\fP.
When all is setup, you tell libcurl to perform the transfer using
-\fIcurl_easy_perform(3)\fP. It will then do the entire operation and won't
+\fIcurl_easy_perform(3)\fP. It will then do the entire operation and will not
return until it is done (successfully or not).
After the transfer has been made, you can set new options and make another
-transfer, or if you're done, cleanup the session by calling
-\fIcurl_easy_cleanup(3)\fP. If you want persistent connections, you don't
+transfer, or if you are done, cleanup the session by calling
+\fIcurl_easy_cleanup(3)\fP. If you want persistent connections, you do not
cleanup immediately, but instead run ahead and perform other transfers using
the same easy handle.
.SH "SEE ALSO"
diff --git a/docs/libcurl/libcurl-env.3 b/docs/libcurl/libcurl-env.3
index 4419584e8..f8580551a 100644
--- a/docs/libcurl/libcurl-env.3
+++ b/docs/libcurl/libcurl-env.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-env 3 "March 27, 2021" "libcurl 7.78.0" "libcurl environment variables"
+.TH libcurl-env 3 "October 31, 2021" "libcurl 7.80.0" "libcurl environment variables"
.SH NAME
libcurl-env \- environment variables libcurl understands
@@ -46,7 +46,7 @@ set.
.IP CURL_SSL_BACKEND
When libcurl is built to support multiple SSL backends, it will select a
specific backend at first use. If no selection is done by the program using
-libcurl, this variable's selection will be used. Setting a name that isn't a
+libcurl, this variable's selection will be used. Setting a name that is not a
built-in alternative will make libcurl stay with the default.
SSL backend names (case-insensitive): bearssl, gnutls, gskit, mbedtls,
@@ -56,7 +56,7 @@ When the netrc feature is used (\fICURLOPT_NETRC(3)\fP), this variable is
checked as the primary way to find the "current" home directory in which
the .netrc file is likely to exist.
.IP LOGNAME
-User name to use when invoking the ntlm-wb tool, if NTLMUSER wasn't set.
+User name to use when invoking the ntlm-wb tool, if NTLMUSER was not set.
.IP NO_PROXY
This has the same functionality as the \fICURLOPT_NOPROXY(3)\fP option: it
gives libcurl a comma-separated list of host name patterns for which libcurl
@@ -73,7 +73,7 @@ When libcurl runs with the NSS backends for TLS features, this variable is
used to find the directory for NSS PKI database instead of the built-in.
.IP USER
User name to use when invoking the ntlm-wb tool, if NTLMUSER and LOGNAME
-weren't set.
+were not set.
.SH "Debug Variables"
There's a set of variables only recognized and used if libcurl was built
"debug enabled", which should never be true for a library used in production.
diff --git a/docs/libcurl/libcurl-errors.3 b/docs/libcurl/libcurl-errors.3
index 8070af3a3..b684e8cd0 100644
--- a/docs/libcurl/libcurl-errors.3
+++ b/docs/libcurl/libcurl-errors.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-errors 3 "June 02, 2021" "libcurl 7.78.0" "libcurl errors"
+.TH libcurl-errors 3 "October 31, 2021" "libcurl 7.80.0" "libcurl errors"
.SH NAME
libcurl-errors \- error codes in libcurl
@@ -40,13 +40,13 @@ CURLcode is one of the following:
All fine. Proceed as usual.
.IP "CURLE_UNSUPPORTED_PROTOCOL (1)"
The URL you passed to libcurl used a protocol that this libcurl does not
-support. The support might be a compile-time option that you didn't use, it
+support. The support might be a compile-time option that you did not use, it
can be a misspelled protocol string or just a protocol libcurl has no code
for.
.IP "CURLE_FAILED_INIT (2)"
-Very early initialization code failed. This is likely to be an internal error
-or problem, or a resource problem where something fundamental couldn't get
-done at init time.
+Early initialization code failed. This is likely to be an internal error or
+problem, or a resource problem where something fundamental could not get done
+at init time.
.IP "CURLE_URL_MALFORMAT (3)"
The URL was not properly formatted.
.IP "CURLE_NOT_BUILT_IN (4)"
@@ -61,7 +61,7 @@ Couldn't resolve host. The given remote host was not resolved.
.IP "CURLE_COULDNT_CONNECT (7)"
Failed to connect() to host or proxy.
.IP "CURLE_WEIRD_SERVER_REPLY (8)"
-The server sent data libcurl couldn't parse. This error code was known as as
+The server sent data libcurl could not parse. This error code was known as as
\fICURLE_FTP_WEIRD_SERVER_REPLY\fP before 7.51.0.
.IP "CURLE_REMOTE_ACCESS_DENIED (9)"
We were denied access to the resource given in the URL. For FTP, this occurs
@@ -91,7 +91,7 @@ Received an error when trying to set the transfer mode to binary or ASCII.
.IP "CURLE_PARTIAL_FILE (18)"
A file transfer was shorter or larger than expected. This happens when the
server first reports an expected transfer size, and then delivers data that
-doesn't match the previously given size.
+does not match the previously given size.
.IP "CURLE_FTP_COULDNT_RETR_FILE (19)"
This was either a weird reply to a 'RETR' command or a zero byte transfer
complete.
@@ -118,7 +118,7 @@ things are severely screwed up if this ever occurs.
Operation timeout. The specified time-out period was reached according to the
conditions.
.IP "CURLE_FTP_PORT_FAILED (30)"
-The FTP PORT command returned error. This mostly happens when you haven't
+The FTP PORT command returned error. This mostly happens when you have not
specified a good enough address for libcurl to use. See
\fICURLOPT_FTPPORT(3)\fP.
.IP "CURLE_FTP_COULDNT_USE_REST (31)"
@@ -137,8 +137,8 @@ others.
The download could not be resumed because the specified offset was out of the
file boundary.
.IP "CURLE_FILE_COULDNT_READ_FILE (37)"
-A file given with FILE:// couldn't be opened. Most likely because the file
-path doesn't identify an existing file. Did you check file permissions?
+A file given with FILE:// could not be opened. Most likely because the file
+path does not identify an existing file. Did you check file permissions?
.IP "CURLE_LDAP_CANNOT_BIND (38)"
LDAP cannot bind. LDAP bind operation failed.
.IP "CURLE_LDAP_SEARCH_FAILED (39)"
@@ -168,7 +168,7 @@ details about what option.
Nothing was returned from the server, and under the circumstances, getting
nothing is considered an error.
.IP "CURLE_SSL_ENGINE_NOTFOUND (53)"
-The specified crypto engine wasn't found.
+The specified crypto engine was not found.
.IP "CURLE_SSL_ENGINE_SETFAILED (54)"
Failed setting the selected SSL crypto engine as default!
.IP "CURLE_SEND_ERROR (55)"
@@ -286,7 +286,7 @@ Things are fine.
.IP "CURLM_BAD_HANDLE (1)"
The passed-in handle is not a valid CURLM handle.
.IP "CURLM_BAD_EASY_HANDLE (2)"
-An easy handle was not good/valid. It could mean that it isn't an easy handle
+An easy handle was not good/valid. It could mean that it is not an easy handle
at all, or possibly that the handle already is in use by this or another multi
handle.
.IP "CURLM_OUT_OF_MEMORY (3)"
@@ -323,19 +323,21 @@ An invalid share object was passed to the function.
Not enough memory was available.
(Added in 7.12.0)
.IP "CURLSHE_NOT_BUILT_IN (5)"
-The requested sharing could not be done because the library you use don't have
+The requested sharing could not be done because the library you use do not have
that particular feature enabled. (Added in 7.23.0)
.SH "CURLUcode"
+The URL interface will return a CURLUcode to indicate when an error has
+occurred. Also consider \fIcurl_url_strerror(3)\fP.
.IP "CURLUE_BAD_HANDLE (1)"
-An argument that should be a CURLU pointer was passed in as a NULL.
+An invalid CURLU pointer was passed as argument.
.IP "CURLUE_BAD_PARTPOINTER (2)"
-A NULL pointer was passed to the 'part' argument of \fIcurl_url_get(3)\fP.
+An invalid 'part' argument was passed as argument.
.IP "CURLUE_MALFORMED_INPUT (3)"
A malformed input was passed to a URL API function.
.IP "CURLUE_BAD_PORT_NUMBER (4)"
The port number was not a decimal number between 0 and 65535.
.IP "CURLUE_UNSUPPORTED_SCHEME (5)"
-This libcurl build doesn't support the given URL scheme.
+This libcurl build does not support the given URL scheme.
.IP "CURLUE_URLDECODE (6)"
URL decode error, most likely because of rubbish in the input.
.IP "CURLUE_OUT_OF_MEMORY (7)"
@@ -362,5 +364,6 @@ There is no query part in the URL.
There is no fragment part in the URL.
.SH "SEE ALSO"
.BR curl_easy_strerror "(3), " curl_multi_strerror "(3), "
-.BR curl_share_strerror "(3), " CURLOPT_ERRORBUFFER "(3), "
-.BR CURLOPT_VERBOSE "(3), " CURLOPT_DEBUGFUNCTION "(3) "
+.BR curl_share_strerror "(3), " curl_url_strerror "(3), "
+.BR CURLOPT_ERRORBUFFER "(3), " CURLOPT_VERBOSE "(3), "
+.BR CURLOPT_DEBUGFUNCTION "(3)"
diff --git a/docs/libcurl/libcurl-multi.3 b/docs/libcurl/libcurl-multi.3
index 0ac2cf023..9735884f8 100644
--- a/docs/libcurl/libcurl-multi.3
+++ b/docs/libcurl/libcurl-multi.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-multi 3 "November 04, 2020" "libcurl 7.78.0" "libcurl multi interface"
+.TH libcurl-multi 3 "October 31, 2021" "libcurl 7.80.0" "libcurl multi interface"
.SH NAME
libcurl-multi \- how to use the multi interface
@@ -33,7 +33,7 @@ for an overview of the libcurl easy interface.
All functions in the multi interface are prefixed with curl_multi.
.SH "OBJECTIVES"
-The multi interface offers several abilities that the easy interface doesn't.
+The multi interface offers several abilities that the easy interface does not.
They are mainly:
1. Enable a "pull" interface. The application that uses libcurl decides where
@@ -78,8 +78,8 @@ Adding the easy handle to the multi handle does not start the transfer.
Remember that one of the main ideas with this interface is to let your
application drive. You drive the transfers by invoking
\fIcurl_multi_perform(3)\fP. libcurl will then transfer data if there is
-anything available to transfer. It'll use the callbacks and everything else
-you have setup in the individual easy handles. It'll transfer data on all
+anything available to transfer. it will use the callbacks and everything else
+you have setup in the individual easy handles. it will transfer data on all
current transfers in the multi stack that are ready to transfer anything. It
may be all, it may be none. When there's nothing more to do for now, it
returns back to the calling application.
@@ -98,7 +98,7 @@ period for your select() calls.
\fIcurl_multi_perform(3)\fP stores the number of still running transfers in
one of its input arguments, and by reading that you can figure out when all
the transfers in the multi handles are done. 'done' does not mean
-successful. One or more of the transfers may have failed.
+successful. One or more of the transfers may have failed.
To get information about completed transfers, to figure out success or not and
similar, \fIcurl_multi_info_read(3)\fP should be called. It can return a
@@ -158,11 +158,11 @@ libevent, libev, kqueue, epoll or similar) with which the application
better scale upward and beyond thousands of simultaneous transfers without
losing performance.
-When you've added your initial set of handles, you call
+When you have added your initial set of handles, you call
\fIcurl_multi_socket_action(3)\fP with CURL_SOCKET_TIMEOUT set in the sockfd
-argument, and you'll get callbacks call that sets you up and you then continue
+argument, and you will get callbacks call that sets you up and you then continue
to call \fIcurl_multi_socket_action(3)\fP accordingly when you get activity on
-the sockets you've been asked to wait on, or if the timeout timer expires.
+the sockets you have been asked to wait on, or if the timeout timer expires.
You can poll \fIcurl_multi_info_read(3)\fP to see if any transfer has
completed, as it then has a message saying so.
diff --git a/docs/libcurl/libcurl-security.3 b/docs/libcurl/libcurl-security.3
index ef65206c4..feeb1491e 100644
--- a/docs/libcurl/libcurl-security.3
+++ b/docs/libcurl/libcurl-security.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-security 3 "June 17, 2021" "libcurl 7.78.0" "libcurl security"
+.TH libcurl-security 3 "October 31, 2021" "libcurl 7.80.0" "libcurl security"
.SH NAME
libcurl-security \- security considerations when using libcurl
@@ -43,9 +43,9 @@ many of these and similar types of weaknesses of which application writers
should be aware.
.SH "Command Lines"
If you use a command line tool (such as curl) that uses libcurl, and you give
-options to the tool on the command line those options can very likely get read
-by other users of your system when they use 'ps' or other tools to list
-currently running processes.
+options to the tool on the command line those options can get read by other
+users of your system when they use 'ps' or other tools to list currently
+running processes.
To avoid these problems, never feed sensitive things to programs using command
line options. Write them to a protected file and use the \-K option to avoid
@@ -61,22 +61,22 @@ every time anyone reads that file!
For applications that enable .netrc use, a user who manage to set the right
URL might then be possible to pass on passwords.
-To avoid these problems, don't use .netrc files and never store passwords in
+To avoid these problems, do not use .netrc files and never store passwords in
plain text anywhere.
.SH "Clear Text Passwords"
Many of the protocols libcurl supports send name and password unencrypted as
-clear text (HTTP Basic authentication, FTP, TELNET etc). It is very easy for
-anyone on your network or a network nearby yours to just fire up a network
-analyzer tool and eavesdrop on your passwords. Don't let the fact that HTTP
-Basic uses base64 encoded passwords fool you. They may not look readable at a
-first glance, but they very easily "deciphered" by anyone within seconds.
+clear text (HTTP Basic authentication, FTP, TELNET etc). It is easy for anyone
+on your network or a network nearby yours to just fire up a network analyzer
+tool and eavesdrop on your passwords. do not let the fact that HTTP Basic uses
+base64 encoded passwords fool you. They may not look readable at a first
+glance, but they are easily "deciphered" by anyone within seconds.
To avoid this problem, use an authentication mechanism or other protocol that
-doesn't let snoopers see your password: Digest, CRAM-MD5, Kerberos, SPNEGO or
+does not let snoopers see your password: Digest, CRAM-MD5, Kerberos, SPNEGO or
NTLM authentication. Or even better: use authenticated protocols that protect
the entire connection and everything sent over it.
.SH "Un-authenticated Connections"
-Protocols that don't have any form of cryptographic authentication cannot
+Protocols that do not have any form of cryptographic authentication cannot
with any certainty know that they communicate with the right remote server.
If your application is using a fixed scheme or fixed host name, it is not safe
@@ -172,11 +172,11 @@ or a mix of decimal, octal or hexadecimal encoding.
.SH "IPv6 Addresses"
libcurl will normally handle IPv6 addresses transparently and just as easily
as IPv4 addresses. That means that a sanitizing function that filters out
-addresses like 127.0.0.1 isn't sufficient--the equivalent IPv6 addresses ::1,
+addresses like 127.0.0.1 is not sufficient--the equivalent IPv6 addresses ::1,
::, 0:00::0:1, ::127.0.0.1 and ::ffff:7f00:1 supplied somehow by an attacker
would all bypass a naive filter and could allow access to undesired local
resources. IPv6 also has special address blocks like link-local and
-site-local that generally shouldn't be accessed by a server-side libcurl-using
+site-local that generally should not be accessed by a server-side libcurl-using
application. A poorly-configured firewall installed in a data center,
organization or server may also be configured to limit IPv4 connections but
leave IPv6 connections wide open. In some cases, setting
@@ -235,14 +235,14 @@ When first realizing this, the curl team tried to filter out such attempts in
order to protect applications for inadvertent probes of for example internal
networks etc. This resulted in CVE-2019-15601 and the associated security fix.
-However, we've since been made aware of the fact that the previous fix was far
+However, we have since been made aware of the fact that the previous fix was far
from adequate as there are several other ways to accomplish more or less the
same thing: accessing a remote host over the network instead of the local file
system.
The conclusion we have come to is that this is a weakness or feature in the
Windows operating system itself, that we as an application cannot safely
-protect users against. It would just be a whack-a-mole race we don't want to
+protect users against. It would just be a whack-a-mole race we do not want to
participate in. There are too many ways to do it and there's no knob we can
use to turn off the practice.
@@ -252,7 +252,7 @@ will potentially make your system try to access other hosts on your
network. curl cannot protect you against this.
.SH "What if the user can set the URL"
Applications may find it tempting to let users set the URL that it can work
-on. That's probably fine, but opens up for mischief and trickery that you as
+on. That is probably fine, but opens up for mischief and trickery that you as
an application author may want to address or take precautions against.
If your curl-using script allow a custom URL do you also, perhaps
@@ -260,7 +260,7 @@ unintentionally, allow the user to pass other options to the curl command line
if creative use of special characters are applied?
If the user can set the URL, the user can also specify the scheme part to
-other protocols that you didn't intend for users to use and perhaps didn't
+other protocols that you did not intend for users to use and perhaps did not
consider. curl supports over 20 different URL schemes. "http://" might be what
you thought, "ftp://" or "imap://" might be what the user gives your
application. Also, cross-protocol operations might be done by using a
@@ -316,8 +316,8 @@ The fact that FTP uses two connections makes it vulnerable in a way that is
hard to avoid.
.SH "Denial of Service"
A malicious server could cause libcurl to effectively hang by sending data
-very slowly, or even no data at all but just keeping the TCP connection open.
-This could effectively result in a denial-of-service attack. The
+slowly, or even no data at all but just keeping the TCP connection open. This
+could effectively result in a denial-of-service attack. The
\fICURLOPT_TIMEOUT(3)\fP and/or \fICURLOPT_LOW_SPEED_LIMIT(3)\fP options can
be used to mitigate against this.
@@ -371,7 +371,7 @@ information with faked data.
.SH "Setuid applications using libcurl"
libcurl-using applications that set the 'setuid' bit to run with elevated or
modified rights also implicitly give that extra power to libcurl and this
-should only be done after very careful considerations.
+should only be done after careful considerations.
Giving setuid powers to the application means that libcurl can save files using
those new rights (if for example the `SSLKEYLOGFILE` environment variable is
diff --git a/docs/libcurl/libcurl-share.3 b/docs/libcurl/libcurl-share.3
index eb7d16fb5..c0d67f48a 100644
--- a/docs/libcurl/libcurl-share.3
+++ b/docs/libcurl/libcurl-share.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-share 3 "November 05, 2020" "libcurl 7.78.0" "libcurl share interface"
+.TH libcurl-share 3 "October 31, 2021" "libcurl 7.80.0" "libcurl share interface"
.SH NAME
libcurl-share \- how to use the share interface
@@ -46,7 +46,7 @@ You tell the shared object what data you want it to share by using
\fIcurl_share_setopt(3)\fP.
Since you can use this share from multiple threads, and libcurl has no
-internal thread synchronization, you must provide mutex callbacks if you're
+internal thread synchronization, you must provide mutex callbacks if you are
using this multi-threaded. You set lock and unlock functions with
\fIcurl_share_setopt(3)\fP too.
@@ -59,7 +59,7 @@ To make an easy handle stop using that particular share, you set
\fICURLOPT_SHARE(3)\fP to NULL for that easy handle. To make a handle stop
sharing a particular data, you can \fICURLSHOPT_UNSHARE\fP it.
-When you're done using the share, make sure that no easy handle is still using
+When you are done using the share, make sure that no easy handle is still using
it, and call \fIcurl_share_cleanup(3)\fP on the handle.
.SH "SEE ALSO"
.BR curl_share_init "(3), " curl_share_setopt "(3), " curl_share_cleanup "(3)"
diff --git a/docs/libcurl/libcurl-symbols.3 b/docs/libcurl/libcurl-symbols.3
index 59888c257..014cab8ff 100644
--- a/docs/libcurl/libcurl-symbols.3
+++ b/docs/libcurl/libcurl-symbols.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-symbols 3 "Jul 21, 2021" "libcurl 7.41.0" "libcurl symbols"
+.TH libcurl-symbols 3 "Nov 10, 2021" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
@@ -394,11 +394,11 @@ Deprecated since 7.56.0
.IP CURLFORM_ARRAY_END
Introduced in 7.9.1
Deprecated since 7.9.5
-Last used in 7.9.5
+Last used in 7.9.6
.IP CURLFORM_ARRAY_START
Introduced in 7.9.1
Deprecated since 7.9.5
-Last used in 7.9.5
+Last used in 7.9.6
.IP CURLFORM_BUFFER
Introduced in 7.9.8
Deprecated since 7.56.0
@@ -836,7 +836,7 @@ Introduced in 7.21.0
.IP CURLOPT_CLOSEFUNCTION
Introduced in 7.7
Deprecated since 7.11.1
-Last used in 7.11.1
+Last used in 7.15.5
.IP CURLOPT_CLOSEPOLICY
Introduced in 7.7
Deprecated since 7.16.1
@@ -942,7 +942,7 @@ Deprecated since 7.16.4
.IP CURLOPT_FTPASCII
Introduced in 7.1
Deprecated since 7.11.1
-Last used in 7.11.1
+Last used in 7.15.5
.IP CURLOPT_FTPLISTONLY
Introduced in 7.1
Deprecated since 7.16.4
@@ -1082,6 +1082,8 @@ Introduced in 7.7
Introduced in 7.10.8
.IP CURLOPT_MAXFILESIZE_LARGE
Introduced in 7.11.0
+.IP CURLOPT_MAXLIFETIME_CONN
+Introduced in 7.80.0
.IP CURLOPT_MAXREDIRS
Introduced in 7.5
.IP CURLOPT_MAX_RECV_SPEED_LARGE
@@ -1093,7 +1095,7 @@ Introduced in 7.56.0
.IP CURLOPT_MUTE
Introduced in 7.1
Deprecated since 7.8
-Last used in 7.8
+Last used in 7.15.5
.IP CURLOPT_NETRC
Introduced in 7.1
.IP CURLOPT_NETRC_FILE
@@ -1113,7 +1115,7 @@ Introduced in 7.10
.IP CURLOPT_NOTHING
Introduced in 7.1.1
Deprecated since 7.11.1
-Last used in 7.11.1
+Last used in 7.11.0
.IP CURLOPT_OPENSOCKETDATA
Introduced in 7.17.1
.IP CURLOPT_OPENSOCKETFUNCTION
@@ -1121,17 +1123,17 @@ Introduced in 7.17.1
.IP CURLOPT_PASSWDDATA
Introduced in 7.4.2
Deprecated since 7.11.1
-Last used in 7.11.1
+Last used in 7.15.5
.IP CURLOPT_PASSWDFUNCTION
Introduced in 7.4.2
Deprecated since 7.11.1
-Last used in 7.11.1
+Last used in 7.15.5
.IP CURLOPT_PASSWORD
Introduced in 7.19.1
.IP CURLOPT_PASV_HOST
Introduced in 7.12.1
Deprecated since 7.16.0
-Last used in 7.16.0
+Last used in 7.15.5
.IP CURLOPT_PATH_AS_IS
Introduced in 7.42.0
.IP CURLOPT_PINNEDPUBLICKEY
@@ -1157,6 +1159,10 @@ Introduced in 7.1
Introduced in 7.19.1
.IP CURLOPT_PREQUOTE
Introduced in 7.9.5
+.IP CURLOPT_PREREQDATA
+Introduced in 7.80.0
+.IP CURLOPT_PREREQFUNCTION
+Introduced in 7.80.0
.IP CURLOPT_PRE_PROXY
Introduced in 7.52.0
.IP CURLOPT_PRIVATE
@@ -1323,6 +1329,8 @@ Introduced in 7.16.1
Introduced in 7.56.0
.IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
Introduced in 7.17.1
+.IP CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256
+Introduced in 7.80.0
.IP CURLOPT_SSH_KEYDATA
Introduced in 7.19.6
.IP CURLOPT_SSH_KEYFUNCTION
@@ -2036,6 +2044,10 @@ Introduced in 7.14.0
Introduced in 7.14.0
.IP CURL_POLL_REMOVE
Introduced in 7.14.0
+.IP CURL_PREREQFUNC_ABORT
+Introduced in 7.79.0
+.IP CURL_PREREQFUNC_OK
+Introduced in 7.79.0
.IP CURL_PROGRESSFUNC_CONTINUE
Introduced in 7.68.0
.IP CURL_PROGRESS_BAR
@@ -2108,28 +2120,28 @@ Introduced in 7.9.2
Introduced in 7.54.0
.IP CURL_SSLVERSION_MAX_NONE
Introduced in 7.54.0
-.IP CURL_SSLVERSION_MAX_TLS
-Introduced in
-.IP CURL_SSLVERSION_MAX_TLS
-Introduced in
-.IP CURL_SSLVERSION_MAX_TLS
-Introduced in
-.IP CURL_SSLVERSION_MAX_TLS
-Introduced in
-.IP CURL_SSLVERSION_SSL
-Introduced in
-.IP CURL_SSLVERSION_SSL
-Introduced in
-.IP CURL_SSLVERSION_TLS
-Introduced in
-.IP CURL_SSLVERSION_TLS
-Introduced in
-.IP CURL_SSLVERSION_TLS
-Introduced in
-.IP CURL_SSLVERSION_TLS
-Introduced in
-.IP CURL_SSLVERSION_TLS
-Introduced in
+.IP CURL_SSLVERSION_MAX_TLSv1_0
+Introduced in 7.54.0
+.IP CURL_SSLVERSION_MAX_TLSv1_1
+Introduced in 7.54.0
+.IP CURL_SSLVERSION_MAX_TLSv1_2
+Introduced in 7.54.0
+.IP CURL_SSLVERSION_MAX_TLSv1_3
+Introduced in 7.54.0
+.IP CURL_SSLVERSION_SSLv2
+Introduced in 7.9.2
+.IP CURL_SSLVERSION_SSLv3
+Introduced in 7.9.2
+.IP CURL_SSLVERSION_TLSv1
+Introduced in 7.9.2
+.IP CURL_SSLVERSION_TLSv1_0
+Introduced in 7.34.0
+.IP CURL_SSLVERSION_TLSv1_1
+Introduced in 7.34.0
+.IP CURL_SSLVERSION_TLSv1_2
+Introduced in 7.34.0
+.IP CURL_SSLVERSION_TLSv1_3
+Introduced in 7.52.0
.IP CURL_STRICTER
Introduced in 7.50.2
.IP CURL_TIMECOND_IFMODSINCE
diff --git a/docs/libcurl/libcurl-thread.3 b/docs/libcurl/libcurl-thread.3
index 65d661300..f4dd9a2fe 100644
--- a/docs/libcurl/libcurl-thread.3
+++ b/docs/libcurl/libcurl-thread.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2015 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2015 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-thread 3 "November 04, 2020" "libcurl 7.78.0" "libcurl thread safety"
+.TH libcurl-thread 3 "October 31, 2021" "libcurl 7.80.0" "libcurl thread safety"
.SH NAME
libcurl-thread \- libcurl thread safety
@@ -85,9 +85,9 @@ threaded situation as there will be race where libcurl risks restoring the
former signal handler while another thread should still ignore it.
.IP "Name resolving"
\fBgethostby* functions and other system calls.\fP These functions, provided
-by your operating system, must be thread safe. It is very important that
-libcurl can find and use thread safe versions of these and other system calls,
-as otherwise it can't function fully thread safe. Some operating systems are
+by your operating system, must be thread safe. It is important that libcurl
+can find and use thread safe versions of these and other system calls, as
+otherwise it cannot function fully thread safe. Some operating systems are
known to have faulty thread implementations. We have previously received
problem reports on *BSD (at least in the past, they may be working fine these
days). Some operating systems that are known to have solid and working thread
diff --git a/docs/libcurl/libcurl-tutorial.3 b/docs/libcurl/libcurl-tutorial.3
index 333fc8b6d..64415b9a4 100644
--- a/docs/libcurl/libcurl-tutorial.3
+++ b/docs/libcurl/libcurl-tutorial.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-tutorial 3 "November 05, 2020" "libcurl 7.78.0" "libcurl programming"
+.TH libcurl-tutorial 3 "October 31, 2021" "libcurl 7.80.0" "libcurl programming"
.SH NAME
libcurl-tutorial \- libcurl programming tutorial
@@ -87,9 +87,9 @@ The people behind libcurl have put a considerable effort to make libcurl work
on a large amount of different operating systems and environments.
You program libcurl the same way on all platforms that libcurl runs on. There
-are only very few minor considerations that differ. If you just make sure to
-write your code portable enough, you may very well create yourself a very
-portable program. libcurl shouldn't stop you from that.
+are only a few minor details that differ. If you just make sure to write your
+code portable enough, you can create a portable program. libcurl should not
+stop you from that.
.SH "Global Preparation"
The program must initialize some of the libcurl functionality globally. That
@@ -105,7 +105,7 @@ that are specified are:
.RS
.IP "CURL_GLOBAL_WIN32"
which only does anything on Windows machines. When used on
-a Windows machine, it'll make libcurl initialize the win32 socket
+a Windows machine, it will make libcurl initialize the win32 socket
stuff. Without having that initialized properly, your program cannot use
sockets properly. You should only do this once for each application, so if
your program already does this or of another library in use does it, you
@@ -118,10 +118,10 @@ program or another library already does this, this bit should not be needed.
.RE
libcurl has a default protection mechanism that detects if
-\fIcurl_global_init(3)\fP hasn't been called by the time
+\fIcurl_global_init(3)\fP has not been called by the time
\fIcurl_easy_perform(3)\fP is called and if that is the case, libcurl runs the
function itself with a guessed bit pattern. Please note that depending solely
-on this is not considered nice nor very good.
+on this is not considered nice nor good.
When the program no longer uses libcurl, it should call
\fIcurl_global_cleanup(3)\fP, which is the opposite of the init call. It will
@@ -175,7 +175,7 @@ make a clone of an easy handle (with all its set options) using
Many of the options you set in libcurl are "strings", pointers to data
terminated with a zero byte. When you set strings with
-\fIcurl_easy_setopt(3)\fP, libcurl makes its own copy so that they don't need
+\fIcurl_easy_setopt(3)\fP, libcurl makes its own copy so that they do not need
to be kept around in your application after being set[4].
One of the most basic properties to set in the handle is the URL. You set your
@@ -204,18 +204,18 @@ by setting another property:
curl_easy_setopt(easyhandle, CURLOPT_WRITEDATA, &internal_struct);
Using that property, you can easily pass local data between your application
-and the function that gets invoked by libcurl. libcurl itself won't touch the
+and the function that gets invoked by libcurl. libcurl itself will not touch the
data you pass with \fICURLOPT_WRITEDATA(3)\fP.
libcurl offers its own default internal callback that will take care of the
-data if you don't set the callback with \fICURLOPT_WRITEFUNCTION(3)\fP. It
+data if you do not set the callback with \fICURLOPT_WRITEFUNCTION(3)\fP. It
will then simply output the received data to stdout. You can have the default
callback write the data to a different file handle by passing a 'FILE *' to a
file opened for writing with the \fICURLOPT_WRITEDATA(3)\fP option.
Now, we need to take a step back and have a deep breath. Here's one of those
rare platform-dependent nitpicks. Did you spot it? On some platforms[2],
-libcurl won't be able to operate on files opened by the program. Thus, if you
+libcurl will not be able to operate on files opened by the program. Thus, if you
use the default callback and pass in an open file with
\fICURLOPT_WRITEDATA(3)\fP, it will crash. You should therefore avoid this to
make your program run fine virtually everywhere.
@@ -223,11 +223,11 @@ make your program run fine virtually everywhere.
(\fICURLOPT_WRITEDATA(3)\fP was formerly known as \fICURLOPT_FILE\fP. Both
names still work and do the same thing).
-If you're using libcurl as a win32 DLL, you MUST use the
+If you are using libcurl as a win32 DLL, you MUST use the
\fICURLOPT_WRITEFUNCTION(3)\fP if you set \fICURLOPT_WRITEDATA(3)\fP - or you
will experience crashes.
-There are of course many more options you can set, and we'll get back to a few
+There are of course many more options you can set, and we will get back to a few
of them later. Let's instead continue to the actual transfer:
success = curl_easy_perform(easyhandle);
@@ -241,9 +241,9 @@ often as possible. Your callback function should return the number of bytes it
passed to it, libcurl will abort the operation and return with an error code.
When the transfer is complete, the function returns a return code that informs
-you if it succeeded in its mission or not. If a return code isn't enough for
+you if it succeeded in its mission or not. If a return code is not enough for
you, you can use the \fICURLOPT_ERRORBUFFER(3)\fP to point libcurl to a buffer
-of yours where it'll store a human readable error message as well.
+of yours where it will store a human readable error message as well.
If you then want to transfer another file, the handle is ready to be used
again. Mind you, it is even preferred that you re-use an existing handle if
@@ -260,22 +260,22 @@ of all the details needed to get the file moved from one machine to another.
libcurl is thread safe but there are a few exceptions. Refer to
\fIlibcurl-thread(3)\fP for more information.
-.SH "When It Doesn't Work"
+.SH "When It does not Work"
There will always be times when the transfer fails for some reason. You might
have set the wrong libcurl option or misunderstood what the libcurl option
actually does, or the remote server might return non-standard replies that
confuse the library which then confuses your program.
There's one golden rule when these things occur: set the
-\fICURLOPT_VERBOSE(3)\fP option to 1. It'll cause the library to spew out the
+\fICURLOPT_VERBOSE(3)\fP option to 1. it will cause the library to spew out the
entire protocol details it sends, some internal info and some received
-protocol data as well (especially when using FTP). If you're using HTTP,
+protocol data as well (especially when using FTP). If you are using HTTP,
adding the headers in the received output to study is also a clever way to get
a better understanding why the server behaves the way it does. Include headers
in the normal body output with \fICURLOPT_HEADER(3)\fP set 1.
Of course, there are bugs left. We need to know about them to be able to fix
-them, so we're quite dependent on your bug reports! When you do report
+them, so we are quite dependent on your bug reports! When you do report
suspected bugs in libcurl, please include as many details as you possibly can:
a protocol dump that \fICURLOPT_VERBOSE(3)\fP produces, library version, as
much as possible of your code that uses libcurl, operating system name and
@@ -285,14 +285,13 @@ If \fICURLOPT_VERBOSE(3)\fP is not enough, you increase the level of debug
data your application receive by using the \fICURLOPT_DEBUGFUNCTION(3)\fP.
Getting some in-depth knowledge about the protocols involved is never wrong,
-and if you're trying to do funny things, you might very well understand
-libcurl and how to use it better if you study the appropriate RFC documents
-at least briefly.
+and if you are trying to do funny things, you might understand libcurl and how
+to use it better if you study the appropriate RFC documents at least briefly.
.SH "Upload Data to a Remote Site"
libcurl tries to keep a protocol independent approach to most transfers, thus
-uploading to a remote FTP site is very similar to uploading data to an HTTP
-server with a PUT request.
+uploading to a remote FTP site is similar to uploading data to an HTTP server
+with a PUT request.
Of course, first you either create an easy handle or you re-use one existing
one. Then you set the URL to operate on just like before. This is the remote
@@ -319,7 +318,7 @@ Tell libcurl that we want to upload:
curl_easy_setopt(easyhandle, CURLOPT_UPLOAD, 1L);
-A few protocols won't behave properly when uploads are done without any prior
+A few protocols will not behave properly when uploads are done without any prior
knowledge of the expected file size. So, set the upload file size using the
\fICURLOPT_INFILESIZE_LARGE(3)\fP for all known file sizes like this[1]:
@@ -328,8 +327,8 @@ knowledge of the expected file size. So, set the upload file size using the
curl_easy_setopt(easyhandle, CURLOPT_INFILESIZE_LARGE, file_size);
.fi
-When you call \fIcurl_easy_perform(3)\fP this time, it'll perform all the
-necessary operations and when it has invoked the upload it'll call your
+When you call \fIcurl_easy_perform(3)\fP this time, it will perform all the
+necessary operations and when it has invoked the upload it will call your
supplied callback to get the data to upload. The program should return as much
data as possible in every invoke, as that is likely to make the upload perform
as fast as possible. The callback should return the number of bytes it wrote
@@ -374,7 +373,7 @@ curl use this file, use the \fICURLOPT_NETRC(3)\fP option:
curl_easy_setopt(easyhandle, CURLOPT_NETRC, 1L);
-And a very basic example of how such a .netrc file may look like:
+And a basic example of how such a .netrc file may look like:
.nf
machine myhost.mydomain.com
@@ -384,8 +383,8 @@ And a very basic example of how such a .netrc file may look like:
All these examples have been cases where the password has been optional, or
at least you could leave it out and have libcurl attempt to do its job
-without it. There are times when the password isn't optional, like when
-you're using an SSL private key for secure transfers.
+without it. There are times when the password is not optional, like when
+you are using an SSL private key for secure transfers.
To pass the known private key password to libcurl:
@@ -471,10 +470,10 @@ then passing that list to libcurl.
.fi
While the simple examples above cover the majority of all cases where HTTP
-POST operations are required, they don't do multi-part formposts. Multi-part
+POST operations are required, they do not do multi-part formposts. Multi-part
formposts were introduced as a better way to post (possibly large) binary data
-and were first documented in the RFC1867 (updated in RFC2388). They're called
-multi-part because they're built by a chain of parts, each part being a single
+and were first documented in the RFC1867 (updated in RFC2388). they are called
+multi-part because they are built by a chain of parts, each part being a single
unit of data. Each part has its own name and contents. You can in fact create
and post a multi-part formpost with the regular libcurl POST support described
above, but that would require that you build a formpost yourself and provide
@@ -533,7 +532,7 @@ It should however not be used anymore for new designs and programs using it
ought to be converted to the MIME API. It is however described here as an
aid to conversion.
-Using \fIcurl_formadd\fP, you add parts to the form. When you're done adding
+Using \fIcurl_formadd\fP, you add parts to the form. When you are done adding
parts, you post the whole form.
The MIME API example above is expressed as follows using this function:
@@ -753,7 +752,7 @@ a pointer to a function that matches this prototype:
If any of the input arguments is unknown, a 0 will be passed. The first
argument, the 'clientp' is the pointer you pass to libcurl with
-\fICURLOPT_PROGRESSDATA(3)\fP. libcurl won't touch it.
+\fICURLOPT_PROGRESSDATA(3)\fP. libcurl will not touch it.
.SH "libcurl with C++"
@@ -789,17 +788,16 @@ libcurl supports SOCKS and HTTP proxies. When a given URL is wanted, libcurl
will ask the proxy for it instead of trying to connect to the actual host
identified in the URL.
-If you're using a SOCKS proxy, you may find that libcurl doesn't quite support
+If you are using a SOCKS proxy, you may find that libcurl does not quite support
all operations through it.
For HTTP proxies: the fact that the proxy is an HTTP proxy puts certain
restrictions on what can actually happen. A requested URL that might not be a
HTTP URL will be still be passed to the HTTP proxy to deliver back to
libcurl. This happens transparently, and an application may not need to
-know. I say "may", because at times it is very important to understand that
-all operations over an HTTP proxy use the HTTP protocol. For example, you
-can't invoke your own custom FTP commands or even proper FTP directory
-listings.
+know. I say "may", because at times it is important to understand that all
+operations over an HTTP proxy use the HTTP protocol. For example, you cannot
+invoke your own custom FTP commands or even proper FTP directory listings.
.IP "Proxy Options"
@@ -840,7 +838,7 @@ on the host. If not specified, the internal default port number will be used
and that is most likely *not* the one you would like it to be.
There are two special environment variables. 'all_proxy' is what sets proxy
-for any URL in case the protocol specific variable wasn't set, and
+for any URL in case the protocol specific variable was not set, and
\&'no_proxy' defines a list of hosts that should not use a proxy even though a
variable may say so. If 'no_proxy' is a plain asterisk ("*") it matches all
hosts.
@@ -864,7 +862,7 @@ remote host").
Because of the nature of this operation, where the proxy has no idea what kind
of data that is passed in and out through this tunnel, this breaks some of the
-very few advantages that come from using a proxy, such as caching. Many
+few advantages that come from using a proxy, such as caching. Many
organizations prevent this kind of tunneling to other destination port numbers
than 443 (which is the default HTTPS port number).
@@ -902,7 +900,7 @@ should be used), "PROXY host:port" (to tell the browser where the proxy for
this particular URL is) or "SOCKS host:port" (to direct the browser to a SOCKS
proxy).
-libcurl has no means to interpret or evaluate Javascript and thus it doesn't
+libcurl has no means to interpret or evaluate Javascript and thus it does not
support this. If you get yourself in a position where you face this nasty
invention, the following advice have been mentioned and used in the past:
@@ -931,7 +929,7 @@ host again, will benefit from libcurl's session ID cache that drastically
reduces re-connection time.
FTP connections that are kept alive save a lot of time, as the command-
-response round-trips are skipped, and also you don't risk getting blocked
+response round-trips are skipped, and also you do not risk getting blocked
without permission to login again like on many FTP servers only allowing N
persons to be logged in at the same time.
@@ -943,19 +941,19 @@ may also be added in the future.
Each easy handle will attempt to keep the last few connections alive for a
while in case they are to be used again. You can set the size of this "cache"
-with the \fICURLOPT_MAXCONNECTS(3)\fP option. Default is 5. There is very
-seldom any point in changing this value, and if you think of changing this it
-is often just a matter of thinking again.
+with the \fICURLOPT_MAXCONNECTS(3)\fP option. Default is 5. There is rarely
+any point in changing this value, and if you think of changing this it is
+often just a matter of thinking again.
To force your upcoming request to not use an already existing connection (it
will even close one first if there happens to be one alive to the same host
-you're about to operate on), you can do that by setting
+you are about to operate on), you can do that by setting
\fICURLOPT_FRESH_CONNECT(3)\fP to 1. In a similar spirit, you can also forbid
the upcoming request to be "lying" around and possibly get re-used after the
request by setting \fICURLOPT_FORBID_REUSE(3)\fP to 1.
.SH "HTTP Headers Used by libcurl"
-When you use libcurl to do HTTP requests, it'll pass along a series of headers
+When you use libcurl to do HTTP requests, it will pass along a series of headers
automatically. It might be good for you to know and understand these. You
can replace or remove them by using the \fICURLOPT_HTTPHEADER(3)\fP option.
@@ -987,18 +985,18 @@ libcurl is your friend here too.
.IP CUSTOMREQUEST
If just changing the actual HTTP request keyword is what you want, like when
GET, HEAD or POST is not good enough for you, \fICURLOPT_CUSTOMREQUEST(3)\fP
-is there for you. It is very simple to use:
+is there for you. It is simple to use:
curl_easy_setopt(easyhandle, CURLOPT_CUSTOMREQUEST, "MYOWNREQUEST");
When using the custom request, you change the request keyword of the actual
request you are performing. Thus, by default you make a GET request but you can
also make a POST operation (as described before) and then replace the POST
-keyword if you want to. You're the boss.
+keyword if you want to. you are the boss.
.IP "Modify Headers"
HTTP-like protocols pass a series of headers to the server when doing the
-request, and you're free to pass any amount of extra headers that you
+request, and you are free to pass any amount of extra headers that you
think fit. Adding headers is this easy:
.nf
@@ -1016,7 +1014,7 @@ think fit. Adding headers is this easy:
.fi
\&... and if you think some of the internally generated headers, such as
-Accept: or Host: don't contain the data you want them to contain, you can
+Accept: or Host: do not contain the data you want them to contain, you can
replace them by simply setting them too:
.nf
@@ -1046,9 +1044,9 @@ data size is unknown.
.IP "HTTP Version"
All HTTP requests includes the version number to tell the server which version
-we support. libcurl speaks HTTP 1.1 by default. Some very old servers don't
-like getting 1.1-requests and when dealing with stubborn old things like that,
-you can tell libcurl to use 1.0 instead by doing something like this:
+we support. libcurl speaks HTTP 1.1 by default. Some old servers do not like
+getting 1.1-requests and when dealing with stubborn old things like that, you
+can tell libcurl to use 1.0 instead by doing something like this:
curl_easy_setopt(easyhandle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
@@ -1058,14 +1056,14 @@ Not all protocols are HTTP-like, and thus the above may not help you when
you want to make, for example, your FTP transfers to behave differently.
Sending custom commands to an FTP server means that you need to send the
-commands exactly as the FTP server expects them (RFC959 is a good guide
-here), and you can only use commands that work on the control-connection
-alone. All kinds of commands that require data interchange and thus need
-a data-connection must be left to libcurl's own judgement. Also be aware
-that libcurl will do its very best to change directory to the target
-directory before doing any transfer, so if you change directory (with CWD
-or similar) you might confuse libcurl and then it might not attempt to
-transfer the file in the correct remote directory.
+commands exactly as the FTP server expects them (RFC959 is a good guide here),
+and you can only use commands that work on the control-connection alone. All
+kinds of commands that require data interchange and thus need a
+data-connection must be left to libcurl's own judgement. Also be aware that
+libcurl will do its best to change directory to the target directory before
+doing any transfer, so if you change directory (with CWD or similar) you might
+confuse libcurl and then it might not attempt to transfer the file in the
+correct remote directory.
A little example that deletes a given file before an operation:
@@ -1103,7 +1101,7 @@ content transfer will be performed.
.IP "FTP Custom CUSTOMREQUEST"
If you do want to list the contents of an FTP directory using your own defined
FTP command, \fICURLOPT_CUSTOMREQUEST(3)\fP will do just that. "NLST" is the
-default one for listing directories but you're free to pass in your idea of a
+default one for listing directories but you are free to pass in your idea of a
good alternative.
.SH "Cookies Without Chocolate Chips"
@@ -1111,13 +1109,13 @@ In the HTTP sense, a cookie is a name with an associated value. A server sends
the name and value to the client, and expects it to get sent back on every
subsequent request to the server that matches the particular conditions
set. The conditions include that the domain name and path match and that the
-cookie hasn't become too old.
+cookie has not become too old.
In real-world cases, servers send new cookies to replace existing ones to
update them. Server use cookies to "track" users and to keep "sessions".
Cookies are sent from server to clients with the header Set-Cookie: and
-they're sent from clients to servers with the Cookie: header.
+they are sent from clients to servers with the Cookie: header.
To just send whatever cookie you want to a server, you can use
\fICURLOPT_COOKIE(3)\fP to set a cookie string like this:
@@ -1140,11 +1138,11 @@ the parser is enabled the cookies will be understood and the cookies will be
kept in memory and used properly in subsequent requests when the same handle
is used. Many times this is enough, and you may not have to save the cookies
to disk at all. Note that the file you specify to \fICURLOPT_COOKIEFILE(3)\fP
-doesn't have to exist to enable the parser, so a common way to just enable the
-parser and not read any cookies is to use the name of a file you know doesn't
+does not have to exist to enable the parser, so a common way to just enable the
+parser and not read any cookies is to use the name of a file you know does not
exist.
-If you would rather use existing cookies that you've previously received with
+If you would rather use existing cookies that you have previously received with
your Netscape or Mozilla browsers, you can make libcurl use that cookie file
as input. The \fICURLOPT_COOKIEFILE(3)\fP is used for that too, as libcurl
will automatically find out what kind of file it is and act accordingly.
@@ -1168,7 +1166,7 @@ libcurl can either connect to the server a second time or tell the server to
connect back to it. The first option is the default and it is also what works
best for all the people behind firewalls, NATs or IP-masquerading setups.
libcurl then tells the server to open up a new port and wait for a second
-connection. This is by default attempted with EPSV first, and if that doesn't
+connection. This is by default attempted with EPSV first, and if that does not
work it tries PASV instead. (EPSV is an extension to the original FTP spec
and does not exist nor work on all FTP servers.)
@@ -1283,14 +1281,14 @@ The headers are passed to the callback function one by one, and you can
depend on that fact. It makes it easier for you to add custom header parsers
etc.
-\&"Headers" for FTP transfers equal all the FTP server responses. They aren't
+\&"Headers" for FTP transfers equal all the FTP server responses. They are not
actually true headers, but in this case we pretend they are! ;-)
.SH "Post Transfer Information"
See \fIcurl_easy_getinfo(3)\fP.
.SH "The multi Interface"
The easy interface as described in detail in this document is a synchronous
-interface that transfers one file at a time and doesn't return until it is
+interface that transfers one file at a time and does not return until it is
done.
The multi interface, on the other hand, allows your program to transfer
@@ -1318,7 +1316,7 @@ you set all the options just like you learned above, and then you create a
multi handle with \fIcurl_multi_init(3)\fP and add all those easy handles to
that multi handle with \fIcurl_multi_add_handle(3)\fP.
-When you've added the handles you have for the moment (you can still add new
+When you have added the handles you have for the moment (you can still add new
ones at any time), you start the transfers by calling
\fIcurl_multi_perform(3)\fP.
@@ -1334,12 +1332,12 @@ sockets/handles. You figure out what to select() for by using
\fIcurl_multi_fdset(3)\fP, that fills in a set of fd_set variables for you
with the particular file descriptors libcurl uses for the moment.
-When you then call select(), it'll return when one of the file handles signal
+When you then call select(), it will return when one of the file handles signal
action and you then call \fIcurl_multi_perform(3)\fP to allow libcurl to do
what it wants to do. Take note that libcurl does also feature some time-out
-code so we advise you to never use very long timeouts on select() before you
-call \fIcurl_multi_perform(3)\fP again. \fIcurl_multi_timeout(3)\fP is
-provided to help you get a suitable timeout period.
+code so we advise you to never use long timeouts on select() before you call
+\fIcurl_multi_perform(3)\fP again. \fIcurl_multi_timeout(3)\fP is provided to
+help you get a suitable timeout period.
Another precaution you should use: always call \fIcurl_multi_fdset(3)\fP
immediately before the select() call since the current set of file descriptors
@@ -1372,7 +1370,7 @@ per-easy handle basis when the easy interface is used.
The DNS cache is shared between handles within a multi handle, making
subsequent name resolving faster, and the connection pool that is kept to
better allow persistent connections and connection re-use is also shared. If
-you're using the easy interface, you can still share these between specific
+you are using the easy interface, you can still share these between specific
easy handles by using the share interface, see \fIlibcurl-share(3)\fP.
Some things are never shared automatically, not within multi handles, like for
diff --git a/docs/libcurl/libcurl-url.3 b/docs/libcurl/libcurl-url.3
index 26ebe991c..c29eb8523 100644
--- a/docs/libcurl/libcurl-url.3
+++ b/docs/libcurl/libcurl-url.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "May 05, 2021" "libcurl 7.78.0" "libcurl url interface"
+.TH libcurl 3 "October 31, 2021" "libcurl 7.80.0" "libcurl url interface"
.SH NAME
libcurl-url \- URL interface overview
@@ -84,7 +84,7 @@ pieces from the handle at any time.
Extracted parts are not URL decoded unless the user also asks for it with the
CURLU_URLDECODE flag set in the fourth bitmask argument.
-Remember to free the returned string with \fIcurl_free(3)\fP when you're done
+Remember to free the returned string with \fIcurl_free(3)\fP when you are done
with it!
.SH "SET PARTS"
A user set individual URL parts, either after having parsed a full URL or
@@ -136,4 +136,5 @@ Now the URL looks like
The URL API was introduced in libcurl 7.62.0.
.SH "SEE ALSO"
.BR curl_url "(3), " curl_url_cleanup "(3), " curl_url_get "(3), "
-.BR curl_url_dup "(3), " curl_url_set "(3), " CURLOPT_URL "(3), "
+.BR curl_url_dup "(3), " curl_url_set "(3), " curl_url_strerror "(3), "
+.BR CURLOPT_URL "(3)"
diff --git a/docs/libcurl/libcurl.3 b/docs/libcurl/libcurl.3
index 275cd3fae..e3e27c77c 100644
--- a/docs/libcurl/libcurl.3
+++ b/docs/libcurl/libcurl.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "May 05, 2021" "libcurl 7.78.0" "libcurl overview"
+.TH libcurl 3 "October 31, 2021" "libcurl 7.80.0" "libcurl overview"
.SH NAME
libcurl \- client-side URL transfers
@@ -97,11 +97,11 @@ curl-config is added to make it easier for applications to link with libcurl
and developers to learn about libcurl and how to use it.
Run 'curl-config --libs' to get the (additional) linker options you need to
-link with the particular version of libcurl you've installed. See the
+link with the particular version of libcurl you have installed. See the
\fIcurl-config(1)\fP man page for further details.
Unix-like operating system that ship libcurl as part of their distributions
-often don't provide the curl-config tool, but simply install the library and
+often do not provide the curl-config tool, but simply install the library and
headers in the common path for this purpose.
Many Linux and similar systems use pkg-config to provide build and link
@@ -128,7 +128,7 @@ several transfers, if the conditions are right.
libcurl will \fBalways\fP attempt to use persistent connections. Whenever you
use \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP etc, libcurl
will attempt to use an existing connection to do the transfer, and if none
-exists it'll open a new one that will be subject for re-use on a possible
+exists it will open a new one that will be subject for re-use on a possible
following call to \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP.
To allow libcurl to take full advantage of persistent connections, you should
@@ -137,7 +137,7 @@ do as many of your file transfers as possible using the same handle.
If you use the easy interface, and you call \fIcurl_easy_cleanup(3)\fP, all
the possibly open connections held by libcurl will be closed and forgotten.
-When you've created a multi handle and are using the multi interface, the
+When you have created a multi handle and are using the multi interface, the
connection pool is instead kept in the multi handle so closing and creating
new easy handles to do transfers will not affect them. Instead all added easy
handles can take advantage of the single shared pool.
@@ -164,31 +164,31 @@ use of libcurl.
You can call both of these multiple times, as long as all calls meet
these requirements and the number of calls to each is the same.
-It isn't actually required that the functions be called at the beginning
-and end of the program -- that's just usually the easiest way to do it.
+It is not actually required that the functions be called at the beginning
+and end of the program -- that is just usually the easiest way to do it.
It \fIis\fP required that the functions be called when no other thread
in the program is running.
These global constant functions are \fInot thread safe\fP, so you must
not call them when any other thread in the program is running. It
-isn't good enough that no other thread is using libcurl at the time,
+is not good enough that no other thread is using libcurl at the time,
because these functions internally call similar functions of other
-libraries, and those functions are similarly thread-unsafe. You can't
+libraries, and those functions are similarly thread-unsafe. You cannot
generally know what these libraries are, or whether other threads are
using them.
The global constant situation merits special consideration when the
code you are writing to use libcurl is not the main program, but rather
a modular piece of a program, e.g. another library. As a module,
-your code doesn't know about other parts of the program -- it doesn't
-know whether they use libcurl or not. And its code doesn't necessarily
+your code does not know about other parts of the program -- it does not
+know whether they use libcurl or not. And its code does not necessarily
run at the start and end of the whole program.
A module like this must have global constant functions of its own, just like
\fIcurl_global_init(3)\fP and \fIcurl_global_cleanup(3)\fP. The module thus
has control at the beginning and end of the program and has a place to call
the libcurl functions. Note that if multiple modules in the program use
-libcurl, they all will separately call the libcurl functions, and that's OK
+libcurl, they all will separately call the libcurl functions, and that is OK
because only the first \fIcurl_global_init(3)\fP and the last
\fIcurl_global_cleanup(3)\fP in a program change anything. (libcurl uses a
reference count in static memory).
@@ -220,11 +220,11 @@ have to agree on one allocator.
There is a failsafe in libcurl that makes it usable in simple situations
without you having to worry about the global constant environment at all:
-\fIcurl_easy_init(3)\fP sets up the environment itself if it hasn't been done
+\fIcurl_easy_init(3)\fP sets up the environment itself if it has not been done
yet. The resources it acquires to do so get released by the operating system
automatically when the program exits.
This failsafe feature exists mainly for backward compatibility because
-there was a time when the global functions didn't exist. Because it
+there was a time when the global functions did not exist. Because it
is sufficient only in the simplest of programs, it is not recommended
for any program to rely on it.
diff --git a/docs/libcurl/mksymbolsmanpage.pl b/docs/libcurl/mksymbolsmanpage.pl
index 5a117d628..d19a93ce4 100755
--- a/docs/libcurl/mksymbolsmanpage.pl
+++ b/docs/libcurl/mksymbolsmanpage.pl
@@ -6,7 +6,7 @@
# * | (__| |_| | _ <| |___
# * \___|\___/|_| \_\_____|
# *
-# * Copyright (C) 2015 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# * Copyright (C) 2015 - 2021, 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
@@ -69,7 +69,7 @@ HEADER
;
while(<STDIN>) {
- if($_ =~ /^(CURL[A-Z0-9_.]*) *(.*)/) {
+ if($_ =~ /^(CURL[A-Z0-9_.]*) *(.*)/i) {
my ($symbol, $rest)=($1,$2);
my ($intro, $dep, $rem);
if($rest =~ s/^([0-9.]*) *//) {
@@ -86,7 +86,7 @@ while(<STDIN>) {
print "Deprecated since $dep\n";
}
if($rem) {
- print "Last used in $dep\n";
+ print "Last used in $rem\n";
}
}
diff --git a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3 b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
index 39c787aa0..1a8587206 100644
--- a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_ACTIVESOCKET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_ACTIVESOCKET 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_ACTIVESOCKET \- get the active socket
@@ -40,7 +40,7 @@ is complete, and is typically used in combination with
\fICURLOPT_CONNECT_ONLY(3)\fP, which skips the transfer phase.
\fICURLINFO_ACTIVESOCKET(3)\fP was added as a replacement for
-\fICURLINFO_LASTSOCKET(3)\fP since that one isn't working on all platforms.
+\fICURLINFO_LASTSOCKET(3)\fP since that one is not working on all platforms.
.SH PROTOCOLS
All
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
index 55de8db34..f9c9fcbe8 100644
--- a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_APPCONNECT_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_APPCONNECT_TIME 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is completed
@@ -31,9 +31,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME, double *timep
.SH DESCRIPTION
Pass a pointer to a double to receive the time, in seconds, it took from the
start until the SSL/SSH connect/handshake to the remote host was completed.
-This time is most often very near to the \fICURLINFO_PRETRANSFER_TIME(3)\fP
-time, except for cases such as HTTP pipelining where the pretransfer time can
-be delayed due to waits in line for the pipeline and more.
+This time is most often close to the \fICURLINFO_PRETRANSFER_TIME(3)\fP time,
+except for cases such as HTTP pipelining where the pretransfer time can be
+delayed due to waits in line for the pipeline and more.
When a redirect is followed, the time from each request is added together.
diff --git a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
index b97600e63..0de75e16c 100644
--- a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2018 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_APPCONNECT_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_APPCONNECT_TIME_T 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_APPCONNECT_TIME_T \- get the time until the SSL/SSH handshake is completed
@@ -29,12 +29,12 @@ CURLINFO_APPCONNECT_TIME_T \- get the time until the SSL/SSH handshake is comple
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
-Pass a pointer to a curl_off_t to receive the time, in microseconds,
-it took from the
-start until the SSL/SSH connect/handshake to the remote host was completed.
-This time is most often very near to the \fICURLINFO_PRETRANSFER_TIME_T(3)\fP
-time, except for cases such as HTTP pipelining where the pretransfer time can
-be delayed due to waits in line for the pipeline and more.
+Pass a pointer to a curl_off_t to receive the time, in microseconds, it took
+from the start until the SSL/SSH connect/handshake to the remote host was
+completed. This time is most often close to the
+\fICURLINFO_PRETRANSFER_TIME_T(3)\fP time, except for cases such as HTTP
+pipelining where the pretransfer time can be delayed due to waits in line for
+the pipeline and more.
When a redirect is followed, the time from each request is added together.
diff --git a/docs/libcurl/opts/CURLINFO_CERTINFO.3 b/docs/libcurl/opts/CURLINFO_CERTINFO.3
index 4d7e72de1..d0a468557 100644
--- a/docs/libcurl/opts/CURLINFO_CERTINFO.3
+++ b/docs/libcurl/opts/CURLINFO_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CERTINFO 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CERTINFO 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CERTINFO \- get the TLS certificate chain
@@ -30,7 +30,7 @@ CURLINFO_CERTINFO \- get the TLS certificate chain
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CERTINFO,
struct curl_certinfo **chainp);
.SH DESCRIPTION
-Pass a pointer to a 'struct curl_certinfo *' and you'll get it set to point to
+Pass a pointer to a 'struct curl_certinfo *' and you will get it set to point to
a struct that holds a number of linked lists with info about the certificate
chain, assuming you had \fICURLOPT_CERTINFO(3)\fP enabled when the request was
made. The struct reports how many certs it found and then you can extract info
@@ -72,8 +72,9 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-This option is only working in libcurl built with OpenSSL, NSS, Schannel or
-GSKit support. Schannel support added in 7.50.0
+This option is only working in libcurl built with OpenSSL, NSS, Schannel, GSKit
+or Secure Transport support. Schannel support added in 7.50.0. Secure Transport
+support added in 7.79.0.
Added in 7.19.1
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3 b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
index ba91ebde8..809edf4a8 100644
--- a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
+++ b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONDITION_UNMET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONDITION_UNMET 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONDITION_UNMET \- get info on unmet time conditional or 304 HTTP response.
@@ -30,9 +30,9 @@ CURLINFO_CONDITION_UNMET \- get info on unmet time conditional or 304 HTTP respo
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONDITION_UNMET, long *unmet);
.SH DESCRIPTION
Pass a pointer to a long to receive the number 1 if the condition provided in
-the previous request didn't match (see \fICURLOPT_TIMECONDITION(3)\fP). Alas,
-if this returns a 1 you know that the reason you didn't get data in return is
-because it didn't fulfill the condition. The long this argument points to will
+the previous request did not match (see \fICURLOPT_TIMECONDITION(3)\fP). Alas,
+if this returns a 1 you know that the reason you did not get data in return is
+because it did not fulfill the condition. The long this argument points to will
get a zero stored if the condition instead was met. This can also return 1 if
the server responded with a 304 HTTP status code, for example after sending a
custom "If-Match-*" header.
diff --git a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
index 8de98f7e1..a2073d2e2 100644
--- a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONNECT_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONNECT_TIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONNECT_TIME \- get the time until connect
diff --git a/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
index 0a09e74d5..9cec2c8ad 100644
--- a/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONNECT_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONNECT_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONNECT_TIME_T \- get the time until connect
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
index e0ea8b6f5..580aaf877 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD,
.SH DESCRIPTION
Pass a pointer to a double to receive the content-length of the download. This
is the value read from the Content-Length: field. Since 7.19.4, this returns
--1 if the size isn't known.
+-1 if the size is not known.
\fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
sensible variable type.
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
index 8cd463646..a6517a1f4 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
.SH DESCRIPTION
Pass a pointer to a \fIcurl_off_t\fP to receive the content-length of the
download. This is the value read from the Content-Length: field. Stores -1 if
-the size isn't known.
+the size is not known.
.SH PROTOCOLS
HTTP(S)
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
index dd902611a..2d0011fb7 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload
@@ -31,7 +31,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD,
double *content_length);
.SH DESCRIPTION
Pass a pointer to a double to receive the specified size of the upload. Since
-7.19.4, this returns -1 if the size isn't known.
+7.19.4, this returns -1 if the size is not known.
\fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP is a newer replacement that returns a
more sensible variable type.
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
index a2ec4c86d..019ac64da 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
@@ -31,7 +31,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T,
curl_off_t *content_length);
.SH DESCRIPTION
Pass a pointer to a \fIcurl_off_t\fP to receive the specified size of the
-upload. Stores -1 if the size isn't known.
+upload. Stores -1 if the size is not known.
.SH PROTOCOLS
All
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3 b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
index 189f0dbe5..89c2a41e7 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_TYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_TYPE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_TYPE \- get Content-Type
@@ -31,8 +31,8 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_TYPE, char **ct);
.SH DESCRIPTION
Pass a pointer to a char pointer to receive the content-type of the downloaded
object. This is the value read from the Content-Type: field. If you get NULL,
-it means that the server didn't send a valid Content-Type header or that the
-protocol used doesn't support this.
+it means that the server did not send a valid Content-Type header or that the
+protocol used does not support this.
The \fBct\fP pointer will be NULL or pointing to private memory you MUST NOT
free it - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
diff --git a/docs/libcurl/opts/CURLINFO_COOKIELIST.3 b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
index 2f1aa2769..4b4fa4ab0 100644
--- a/docs/libcurl/opts/CURLINFO_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_COOKIELIST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_COOKIELIST 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_COOKIELIST \- get all known cookies
@@ -31,7 +31,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_COOKIELIST,
struct curl_slist **cookies);
.SH DESCRIPTION
Pass a pointer to a 'struct curl_slist *' to receive a linked-list of all
-cookies curl knows (expired ones, too). Don't forget to call
+cookies curl knows (expired ones, too). do not forget to call
\fIcurl_slist_free_all(3)\fP on the list after it has been used. If there are
no cookies (cookies for the handle have not been enabled or simply none have
been received) 'struct curl_slist *' will be set to point to NULL.
@@ -62,7 +62,7 @@ if(curl) {
printf("%s\\n", each->data);
each = each->next;
}
- /* we must free these cookies when we're done */
+ /* we must free these cookies when we are done */
curl_slist_free_all(cookies);
}
}
diff --git a/docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.3 b/docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.3
index 3a587e02e..9dce4556b 100644
--- a/docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.3
+++ b/docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_EFFECTIVE_METHOD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_EFFECTIVE_METHOD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_EFFECTIVE_METHOD \- get the last used HTTP method
@@ -35,8 +35,8 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_METHOD,
Pass in a pointer to a char pointer and get the last used effective HTTP
method.
-In cases when you've asked libcurl to follow redirects, the method may very
-well not be the same method the first request would use.
+In cases when you have asked libcurl to follow redirects, the method may not be
+the same method the first request would use.
The \fBmethodp\fP pointer will be NULL or pointing to private memory you MUST
NOT free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
diff --git a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3 b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
index 3bea12f7c..88e50346a 100644
--- a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
+++ b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_EFFECTIVE_URL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_EFFECTIVE_URL 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_EFFECTIVE_URL \- get the last used URL
@@ -31,8 +31,8 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_URL, char **urlp);
.SH DESCRIPTION
Pass in a pointer to a char pointer and get the last used effective URL.
-In cases when you've asked libcurl to follow redirects, it may very well not
-be the same value you set with \fICURLOPT_URL(3)\fP.
+In cases when you have asked libcurl to follow redirects, it may not be the same
+value you set with \fICURLOPT_URL(3)\fP.
The \fBurlp\fP pointer will be NULL or pointing to private memory you MUST NOT
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME.3 b/docs/libcurl/opts/CURLINFO_FILETIME.3
index ea95421d8..1a04cfc8e 100644
--- a/docs/libcurl/opts/CURLINFO_FILETIME.3
+++ b/docs/libcurl/opts/CURLINFO_FILETIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FILETIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_FILETIME 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FILETIME \- get the remote time of the retrieved document
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME, long *timep);
Pass a pointer to a long to receive the remote time of the retrieved document
(in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If you get
-1, it can be because of many reasons (it might be unknown, the server might
-hide it or the server doesn't support the command that tells document time
+hide it or the server does not support the command that tells document time
etc) and the time of the document is unknown.
You must tell libcurl to collect this information before the transfer is made,
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME_T.3 b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
index 185fc2613..353753951 100644
--- a/docs/libcurl/opts/CURLINFO_FILETIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FILETIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_FILETIME 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FILETIME_T \- get the remote time of the retrieved document
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t *timep)
Pass a pointer to a curl_off_t to receive the remote time of the retrieved
document (in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If
you get -1, it can be because of many reasons (it might be unknown, the server
-might hide it or the server doesn't support the command that tells document
+might hide it or the server does not support the command that tells document
time etc) and the time of the document is unknown.
You must ask libcurl to collect this information before the transfer is made,
diff --git a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3 b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
index 4e534a773..769632b5f 100644
--- a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
+++ b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FTP_ENTRY_PATH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_FTP_ENTRY_PATH 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server
diff --git a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3 b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
index 8c0fd6f3d..5d67ae73d 100644
--- a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HEADER_SIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_HEADER_SIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HEADER_SIZE \- get size of retrieved headers
diff --git a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
index 68a898351..3001474e5 100644
--- a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTPAUTH_AVAIL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTPAUTH_AVAIL 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3 b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
index d6d2f1193..6d1b9ba16 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_CONNECTCODE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_CONNECTCODE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3 b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
index 48127c658..fd0e2bd92 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_VERSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_VERSION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_VERSION \- get the http version used in the connection
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_VERSION, long *p);
Pass a pointer to a long to receive the version used in the last http
connection. The returned value will be CURL_HTTP_VERSION_1_0,
CURL_HTTP_VERSION_1_1, CURL_HTTP_VERSION_2_0, CURL_HTTP_VERSION_3 or 0 if the
-version can't be determined.
+version cannot be determined.
.SH PROTOCOLS
HTTP
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3 b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
index 83f9ad5f3..de188955c 100644
--- a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LASTSOCKET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_LASTSOCKET 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LASTSOCKET \- get the last socket used
@@ -47,7 +47,7 @@ All
.nf
CURL *curl = curl_easy_init();
if(curl) {
- long sockfd; /* doesn't work on win64! */
+ long sockfd; /* does not work on win64! */
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* Do not do the transfer - only connect to host */
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3 b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
index 898e261af..570a201c5 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_IP 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_IP 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_IP \- get local IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3 b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
index 93cce5f25..b1488d9de 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_PORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_PORT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_PORT \- get the latest local port number
diff --git a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3 b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
index 18423a6cb..13e445c86 100644
--- a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NAMELOOKUP_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_NAMELOOKUP_TIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NAMELOOKUP_TIME \- get the name lookup time
diff --git a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3 b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
index 34b013968..4171120b1 100644
--- a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NAMELOOKUP_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_NAMELOOKUP_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds
diff --git a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3 b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
index b29bb9a91..10edb1a47 100644
--- a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
+++ b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NUM_CONNECTS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_NUM_CONNECTS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NUM_CONNECTS \- get number of created connections
diff --git a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3 b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
index 461cf4f17..05afe92ae 100644
--- a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
+++ b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_OS_ERRNO 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_OS_ERRNO 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_OS_ERRNO \- get errno number from last connect failure
diff --git a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
index e6dbb12d9..493895e97 100644
--- a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRETRANSFER_TIME 3 "January 14, 2021" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRETRANSFER_TIME 3 "January 14, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start
diff --git a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3 b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
index 4b7530fab..3cb3b837a 100644
--- a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRETRANSFER_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRETRANSFER_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
index e110ca152..aca98f04c 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_IP 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_IP 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_IP \- get IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
index eae2353a6..9961e6f83 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_PORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_PORT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_PORT \- get the latest destination port number
diff --git a/docs/libcurl/opts/CURLINFO_PRIVATE.3 b/docs/libcurl/opts/CURLINFO_PRIVATE.3
index 74714ba3b..c4f429b54 100644
--- a/docs/libcurl/opts/CURLINFO_PRIVATE.3
+++ b/docs/libcurl/opts/CURLINFO_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIVATE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIVATE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIVATE \- get the private pointer
diff --git a/docs/libcurl/opts/CURLINFO_PROTOCOL.3 b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
index d24c013a8..3c310bbea 100644
--- a/docs/libcurl/opts/CURLINFO_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROTOCOL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROTOCOL 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROTOCOL \- get the protocol used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
index 8d38b9da1..0b0cc1cac 100644
--- a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXYAUTH_AVAIL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROXYAUTH_AVAIL 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_PROXY_ERROR.3 b/docs/libcurl/opts/CURLINFO_PROXY_ERROR.3
index 6da00a011..7806e8cfe 100644
--- a/docs/libcurl/opts/CURLINFO_PROXY_ERROR.3
+++ b/docs/libcurl/opts/CURLINFO_PROXY_ERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXY_ERROR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROXY_ERROR 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXY_ERROR \- get the detailed (SOCKS) proxy error
diff --git a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
index 5eec425ce..2a9999760 100644
--- a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
index 297aa114e..d4c9d2ff7 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_COUNT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_COUNT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_COUNT \- get the number of redirects
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
index b8b6cb7f5..e6b061bf7 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_TIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_TIME \- get the time for all redirection steps
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
index f466fec32..2d45b79bc 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
index 7c1547910..2d36c9715 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_URL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_URL 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_URL \- get the URL a redirect would go to
@@ -31,9 +31,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_URL, char **urlp);
.SH DESCRIPTION
Pass a pointer to a char pointer to receive the URL a redirect \fIwould\fP
take you to if you would enable \fICURLOPT_FOLLOWLOCATION(3)\fP. This can come
-very handy if you think using the built-in libcurl redirect logic isn't good
-enough for you but you would still prefer to avoid implementing all the magic
-of figuring out the new URL.
+handy if you think using the built-in libcurl redirect logic is not good enough
+for you but you would still prefer to avoid implementing all the magic of
+figuring out the new URL.
This URL is also set if the \fICURLOPT_MAXREDIRS(3)\fP limit prevented a
redirect to happen (since 7.54.1).
diff --git a/docs/libcurl/opts/CURLINFO_REFERER.3 b/docs/libcurl/opts/CURLINFO_REFERER.3
index 3febff192..4b41ef658 100644
--- a/docs/libcurl/opts/CURLINFO_REFERER.3
+++ b/docs/libcurl/opts/CURLINFO_REFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REFERER 3 "February 19, 2021" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REFERER 3 "February 19, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REFERER \- get the referrer header
diff --git a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3 b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
index 7dac290aa..2a23b0e22 100644
--- a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REQUEST_SIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_REQUEST_SIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REQUEST_SIZE \- get size of sent request
diff --git a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3 b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
index fe86b25e3..4c42ade5f 100644
--- a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
+++ b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RESPONSE_CODE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RESPONSE_CODE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RESPONSE_CODE \- get the last response code
diff --git a/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3 b/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3
index 185fb9885..6c842ac8c 100644
--- a/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3
+++ b/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RETRY_AFTER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RETRY_AFTER 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RETRY_AFTER \- returns the Retry-After retry delay
@@ -35,7 +35,7 @@ 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.
+or zero if there was no header or the header could not be parsed.
.SH DEFAULT
Returns zero delay if there was no header.
.SH PROTOCOLS
@@ -57,7 +57,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in curl 7.66.0
+Added in 7.66.0
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
index 305273b2c..1808ffb5b 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3 b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
index 75b26cf3c..1faef5403 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CSEQ_RECV 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CSEQ_RECV 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
index 175db73e4..f5175f112 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SERVER_CSEQ 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SERVER_CSEQ 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
index b77e38eaf..d7d254938 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SESSION_ID 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SESSION_ID 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SESSION_ID \- get RTSP session ID
diff --git a/docs/libcurl/opts/CURLINFO_SCHEME.3 b/docs/libcurl/opts/CURLINFO_SCHEME.3
index bc6495864..2f0499659 100644
--- a/docs/libcurl/opts/CURLINFO_SCHEME.3
+++ b/docs/libcurl/opts/CURLINFO_SCHEME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SCHEME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SCHEME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
index 5076a982c..23b28cf9c 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
index 2c414ae9f..57740a93b 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
index 6232e8de1..26696a452 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
index ca2c79e19..fc6d77d8a 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
index 981dddee1..a09d642fb 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
index 813f2edc3..a7b167fcb 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
index 697fce789..0277db7b1 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
index b910e092f..65ad284b8 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD_T \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3 b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
index 29ee9b96e..b3a108bc0 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_ENGINES 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_ENGINES 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines
@@ -34,7 +34,7 @@ Pass the address of a 'struct curl_slist *' to receive a linked-list of
OpenSSL crypto-engines supported. Note that engines are normally implemented
in separate dynamic libraries. Hence not all the returned engines may be
available at run-time. \fBNOTE:\fP you must call \fIcurl_slist_free_all(3)\fP
-on the list pointer once you're done with it, as libcurl will not free the
+on the list pointer once you are done with it, as libcurl will not free the
data for you.
.SH PROTOCOLS
All TLS based ones.
diff --git a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
index 8e0e5a121..ddc514d8e 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_VERIFYRESULT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_VERIFYRESULT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
index 1e5452a73..46045dd6c 100644
--- a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_STARTTRANSFER_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_STARTTRANSFER_TIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received
diff --git a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3 b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
index a15377745..beb8ad928 100644
--- a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_STARTTRANSFER_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_STARTTRANSFER_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3 b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
index 3b2ce7bcd..a3e84327d 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SESSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SESSION 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION \- get TLS session info
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3 b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
index abe31a12b..74407e8ee 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SSL_PTR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SSL_PTR 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
@@ -117,7 +117,7 @@ pointer, with the (possibly) changed certificate information.
If you are using OpenSSL or wolfSSL then \fICURLOPT_SSL_CTX_FUNCTION(3)\fP can
be used to set a certificate verification callback in the CTX. That is safer
-than using this option to poll for certificate changes and doesn't suffer from
+than using this option to poll for certificate changes and does not suffer from
any of the problems above. There is currently no way in libcurl to set a
verification callback for the other SSL backends.
diff --git a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3 b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
index f1da089b2..5e0a10092 100644
--- a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TOTAL_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_TOTAL_TIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TOTAL_TIME \- get total time of previous transfer
diff --git a/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3 b/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
index 55f6e5f55..319ab32dd 100644
--- a/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TOTAL_TIME_T 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_getinfo options"
+.TH CURLINFO_TOTAL_TIME_T 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds
diff --git a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
index 1299ea2f8..ec7f29ac5 100644
--- a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining
diff --git a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
index 17e60a224..aacb04899 100644
--- a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty
diff --git a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
index 4dfee7158..b67745a0f 100644
--- a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAXCONNECTS 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAXCONNECTS 3 "September 08, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
-CURLMOPT_MAXCONNECTS \- set size of connection cache
+CURLMOPT_MAXCONNECTS \- size of connection cache
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.3 b/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.3
index 82392fc0d..0ca9164e4 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_CONCURRENT_STREAMS 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_CONCURRENT_STREAMS 3 "September 08, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
-CURLMOPT_MAX_CONCURRENT_STREAMS \- set max concurrent streams for http2
+CURLMOPT_MAX_CONCURRENT_STREAMS \- max concurrent streams for http2
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
index 0974c5d5c..5932b7dc0 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "March 17, 2021" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "September 08, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
-CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host
+CURLMOPT_MAX_HOST_CONNECTIONS \- max number of connections to a single host
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3 b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
index c4e1a4727..0803aaf4d 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
index 9d1cacd94..9be355b48 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "March 17, 2021" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "March 17, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
index ee8db9834..586c751fb 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
index cd6a69410..8807761e2 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SERVER_BL 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SERVER_BL 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SERVER_BL \- pipelining server block list
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
index 9b5d9088c..cbba63260 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SITE_BL 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SITE_BL 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SITE_BL \- pipelining host block list
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3 b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
index 54797b068..7aeb15008 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHDATA 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHDATA \- pointer to pass to push callback
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
index 892584155..43c60c7bc 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
@@ -76,7 +76,7 @@ Returns the header at index 'num' (or NULL). The returned pointer points to a
"name:value" string that will be freed when this callback returns.
.IP curl_pushheader_byname
Returns the value for the given header name (or NULL). This is a shortcut so
-that the application doesn't have to loop through all headers to find the one
+that the application does not have to loop through all headers to find the one
it is interested in. The data pointed will be freed when this callback
returns. If more than one header field use the same name, this returns only
the first one.
@@ -89,7 +89,7 @@ The callback denies the stream and no data for this will reach the
application, the easy handle will be destroyed by libcurl.
.IP "CURL_PUSH_ERROROUT (2)"
Returning this will reject the pushed stream and return an error back on the
-parent stream making it get closed with an error. (Added in curl 7.72.0)
+parent stream making it get closed with an error. (Added in 7.72.0)
.IP *
All other return codes are reserved for future use.
.SH DEFAULT
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3 b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
index e2d5bbd70..24422d391 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETDATA 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
index d1a34ee57..b65f5e936 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETFUNCTION 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3 b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
index e3d7aeed0..caf9ebe38 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERDATA 3 "November 04, 2020" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
index 4b9b448a9..2e9ac7f95 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERFUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_multi_setopt options"
.SH NAME
-CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
+CURLMOPT_TIMERFUNCTION \- callback to receive timeout values
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -41,7 +41,7 @@ Certain features, such as timeouts and retries, require you to call libcurl
even when there is no activity on the file descriptors.
Your callback function \fBtimer_callback\fP should install a non-repeating
-timer with an interval of \fBtimeout_ms\fP. When time that timer fires, call
+timer with an interval of \fBtimeout_ms\fP. When that timer fires, call
either \fIcurl_multi_socket_action(3)\fP or \fIcurl_multi_perform(3)\fP,
depending on which interface you use.
diff --git a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3 b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
index a74ce6b7c..f6b603afe 100644
--- a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,39 +20,40 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "October 27, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
+CURLOPT_ABSTRACT_UNIX_SOCKET \- abstract Unix domain socket
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ABSTRACT_UNIX_SOCKET, char *path);
.SH DESCRIPTION
-Enables the use of an abstract Unix domain socket instead of establishing a TCP
-connection to a host. The parameter should be a char * to a null-terminated string
-holding the path of the socket. The path will be set to \fIpath\fP prefixed by a
-NULL byte (this is the convention for abstract sockets, however it should be stressed
-that the path passed to this function should not contain a leading NULL).
+Enables the use of an abstract Unix domain socket instead of establishing a
+TCP connection to a host. The parameter should be a char * to a
+null-terminated string holding the path of the socket. The path will be set to
+\fIpath\fP prefixed by a NULL byte (this is the convention for abstract
+sockets, however it should be stressed that the path passed to this function
+should not contain a leading NULL).
-On non-supporting platforms, the abstract address will be interpreted as an empty
-string and fail gracefully, generating a run-time error.
-
-This option shares the same semantics as
-.BR CURLOPT_UNIX_SOCKET_PATH "(3)
-in which documentation more details can be found. Internally, these two options share
-the same storage and therefore only one of them can be set per handle.
+On non-supporting platforms, the abstract address will be interpreted as an
+empty string and fail gracefully, generating a run-time error.
+This option shares the same semantics as \fICURLOPT_UNIX_SOCKET_PATH(3)\fP in
+which documentation more details can be found. Internally, these two options
+share the same storage and therefore only one of them can be set per handle.
.SH DEFAULT
Default is NULL.
+.SH PROTOCOLS
+All
.SH EXAMPLE
.nf
- curl_easy_setopt(curl_handle, CURLOPT_ABSTRACT_UNIX_SOCKET, "/tmp/foo.sock");
- curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/");
+ curl_easy_setopt(curl_handle, CURLOPT_ABSTRACT_UNIX_SOCKET, "/tmp/foo.sock");
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/");
.fi
.SH AVAILABILITY
-Since 7.53.0.
+Added in 7.53.0.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
index f9e82366e..9697cf141 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3 b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
index 1cf927d41..d8b2a2bff 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,16 +20,16 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPT_ENCODING 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPT_ENCODING 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
+CURLOPT_ACCEPT_ENCODING \- automatic decompression of HTTP downloads
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc);
.SH DESCRIPTION
-Pass a char * argument specifying what encoding you'd like.
+Pass a char * argument specifying what encoding you would like.
Sets the contents of the Accept-Encoding: header sent in an HTTP request, and
enables decoding of a response when a Content-Encoding: header is received.
@@ -95,7 +95,7 @@ if(curl) {
.SH AVAILABILITY
This option was called CURLOPT_ENCODING before 7.21.6
-The specific libcurl you're using must have been built with zlib to be able to
+The specific libcurl you are using must have been built with zlib to be able to
decompress gzip and deflate responses, with the brotli library to
decompress brotli responses and with the zstd library to decompress zstd
responses.
diff --git a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3 b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
index 0acd0b0fd..5f7680248 100644
--- a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
+++ b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ADDRESS_SCOPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ADDRESS_SCOPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ADDRESS_SCOPE \- set scope id for IPv6 addresses
+CURLOPT_ADDRESS_SCOPE \- scope id for IPv6 addresses
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_ALTSVC.3 b/docs/libcurl/opts/CURLOPT_ALTSVC.3
index 263591eb8..bd485ca79 100644
--- a/docs/libcurl/opts/CURLOPT_ALTSVC.3
+++ b/docs/libcurl/opts/CURLOPT_ALTSVC.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ALTSVC 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ALTSVC 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ALTSVC \- set alt-svc cache file name
+CURLOPT_ALTSVC \- alt-svc cache file name
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3 b/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3
index 95868241d..83134166a 100644
--- a/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3
+++ b/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ALTSVC_CTRL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ALTSVC_CTRL 3 "November 04, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ALTSVC_CTRL \- control alt-svc behavior
@@ -39,11 +39,15 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC_CTRL, long bitmask);
Populate the long \fIbitmask\fP with the correct set of features to instruct
libcurl how to handle Alt-Svc for the transfers using this handle.
-libcurl will only accept Alt-Svc headers over a secure transport, meaning
+libcurl only accepts Alt-Svc headers over a secure transport, meaning
HTTPS. It will also only complete a request to an alternative origin if that
origin is properly hosted over HTTPS. These requirements are there to make
sure both the source and the destination are legitimate.
+Alternative services are only used when setting up new connections. If there
+exists an existing connection to the host in the connection pool, then that
+will be preferred.
+
Setting any bit will enable the alt-svc engine.
.IP "CURLALTSVC_READONLYFILE"
Do not write the alt-svc cache back to the file specified with
diff --git a/docs/libcurl/opts/CURLOPT_APPEND.3 b/docs/libcurl/opts/CURLOPT_APPEND.3
index 09b04cc6a..fb4c068d5 100644
--- a/docs/libcurl/opts/CURLOPT_APPEND.3
+++ b/docs/libcurl/opts/CURLOPT_APPEND.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_APPEND 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_APPEND 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_APPEND \- enable appending to the remote file
+CURLOPT_APPEND \- append to the remote file
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3 b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
index 75f46c11d..bae1910dc 100644
--- a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
+++ b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_AUTOREFERER 3 "March 30, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_AUTOREFERER 3 "March 30, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_AUTOREFERER \- automatically update the referer header
diff --git a/docs/libcurl/opts/CURLOPT_AWS_SIGV4.3 b/docs/libcurl/opts/CURLOPT_AWS_SIGV4.3
index 40dbd0091..d20e9eeea 100644
--- a/docs/libcurl/opts/CURLOPT_AWS_SIGV4.3
+++ b/docs/libcurl/opts/CURLOPT_AWS_SIGV4.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_AWS_SIGV4 3 "January 25, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_AWS_SIGV4 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_AWS_SIGV4 \- V4 signature
@@ -93,6 +93,6 @@ Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH NOTES
This option overrides the other auth types you might have set in CURL_HTTPAUTH
which should be highlighted as this makes this auth method special.
-This method can't be combined with other auth types.
+This method cannot be combined with other auth types.
.SH "SEE ALSO"
.BR CURLOPT_HEADEROPT "(3), " CURLOPT_HTTPHEADER "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3 b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
index 6408ffc8b..7532efd6f 100644
--- a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_BUFFERSIZE 3 "May 06, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_BUFFERSIZE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_BUFFERSIZE \- set preferred receive buffer size
+CURLOPT_BUFFERSIZE \- receive buffer size
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CAINFO.3 b/docs/libcurl/opts/CURLOPT_CAINFO.3
index a1d7b61d1..0b2f0b054 100644
--- a/docs/libcurl/opts/CURLOPT_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAINFO 3 "July 13, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CAINFO 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
@@ -74,7 +74,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-For the SSL engines that don't support certificate files the CURLOPT_CAINFO
+For the SSL engines that do not support certificate files the CURLOPT_CAINFO
option is ignored. Schannel support added in libcurl 7.60.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
diff --git a/docs/libcurl/opts/CURLOPT_CAINFO_BLOB.3 b/docs/libcurl/opts/CURLOPT_CAINFO_BLOB.3
index 5a3f34f72..5576ea308 100644
--- a/docs/libcurl/opts/CURLOPT_CAINFO_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_CAINFO_BLOB.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAINFO_BLOB 3 "July 13, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CAINFO_BLOB 3 "July 21, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAINFO_BLOB \- Certificate Authority (CA) bundle in PEM format
@@ -59,8 +59,8 @@ if(curl) {
.SH AVAILABILITY
Added in 7.77.0.
-This option is supported by the OpenSSL, Secure
-Transport and Schannel backends.
+This option is supported by the BearSSL (since 7.79.0),
+OpenSSL, Secure Transport and Schannel backends.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_CAPATH.3 b/docs/libcurl/opts/CURLOPT_CAPATH.3
index d0028fb77..0f25c4e79 100644
--- a/docs/libcurl/opts/CURLOPT_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_CAPATH.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAPATH 3 "May 14, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CAPATH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CAPATH \- specify directory holding CA certificates
+CURLOPT_CAPATH \- directory holding CA certificates
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CERTINFO.3 b/docs/libcurl/opts/CURLOPT_CERTINFO.3
index 46c09fb3b..1af0f2835 100644
--- a/docs/libcurl/opts/CURLOPT_CERTINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CERTINFO 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CERTINFO 3 "July 09, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CERTINFO \- request SSL certificate information
@@ -71,8 +71,9 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-This option is supported by the OpenSSL, GnuTLS, Schannel, NSS and GSKit
-backends.
+This option is supported by the OpenSSL, GnuTLS, Schannel, NSS, GSKit and
+Secure Transport backends. Schannel support added in 7.50.0. Secure Transport
+support added in 7.79.0.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
index c821fc6ee..d4ec65c82 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
index a736f8174..c331a293e 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_DATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_DATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
+CURLOPT_CHUNK_DATA \- pointer passed to the FTP chunk callbacks
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
index bc6bf0969..d2a971e3b 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_END_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_END_FUNCTION 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
index 71a027f30..5724d3e7e 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETDATA 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
index 3090446f1..7b96b30e4 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETFUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
+CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
index de2c7384e..630f2486c 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
index 87dc23a2b..523197069 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT_MS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3 b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
index dfea3718f..59b2b9230 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_ONLY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_ONLY 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECT_ONLY \- stop when connected to target server
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3 b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
index a9b57091a..b2207416f 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_TO 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_TO 3 "September 08, 2021" "libcurl 7.80.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
+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>
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
index 77961bad4..e5c33c68b 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
@@ -50,7 +50,7 @@ should be returned if an error was encountered.
network encoding. It is used when commands or ASCII data are received over
the network.
-If you set a callback pointer to NULL, or don't set it at all, the built-in
+If you set a callback pointer to NULL, or do not set it at all, the built-in
libcurl iconv functions will be used. If HAVE_ICONV was not defined when
libcurl was built, and no callback has been established, conversion will
return the CURLE_CONV_REQD error code.
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
index ed37268cc..03fc91692 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
@@ -49,7 +49,7 @@ should be returned if an error was encountered.
\fBCURLOPT_CONV_FROM_UTF8_FUNCTION\fP converts to host encoding from UTF8
encoding. It is required only for SSL processing.
-If you set a callback pointer to NULL, or don't set it at all, the built-in
+If you set a callback pointer to NULL, or do not set it at all, the built-in
libcurl iconv functions will be used. If HAVE_ICONV was not defined when
libcurl was built, and no callback has been established, conversion will
return the CURLE_CONV_REQD error code.
diff --git a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
index 055439c5d..8e2c57ec4 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
@@ -50,7 +50,7 @@ should be returned if an error was encountered.
network encoding. It is used when commands or ASCII data are sent over the
network.
-If you set a callback pointer to NULL, or don't set it at all, the built-in
+If you set a callback pointer to NULL, or do not set it at all, the built-in
libcurl iconv functions will be used. If HAVE_ICONV was not defined when
libcurl was built, and no callback has been established, conversion will
return the CURLE_CONV_REQD error code.
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.3 b/docs/libcurl/opts/CURLOPT_COOKIE.3
index 558103800..dae286466 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_COOKIE \- set contents of HTTP Cookie header
+CURLOPT_COOKIE \- HTTP Cookie header
.SH SYNOPSIS
#include <curl/curl.h>
@@ -43,7 +43,7 @@ similar, they will all get this cookie passed on.
The cookies set by this option are separate from the internal cookie storage
held by the cookie engine and will not be modified by it. If you enable the
-cookie engine and either you've imported a cookie of the same name (e.g. 'foo')
+cookie engine and either you have imported a cookie of the same name (e.g. 'foo')
or the server has set one, it will have no effect on the cookies you set here.
A request to the server will send both the 'foo' held by the cookie engine and
the 'foo' held by this option. To set a cookie that is instead held by the
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3 b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
index c720e79bc..0d9055f29 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEFILE 3 "May 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEFILE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEFILE \- file name to read cookies from
@@ -45,7 +45,7 @@ libcurl will instead read from stdin.
This option only \fBreads\fP cookies. To make libcurl write cookies to file,
see \fICURLOPT_COOKIEJAR(3)\fP.
-If you use the Set-Cookie file format and don't specify a domain then the
+If you use the Set-Cookie file format and do not specify a domain then the
cookie is not sent since the domain will never match. To address this, set a
domain in Set-Cookie line (doing that will include sub-domains) or preferably:
use the Netscape format.
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3 b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
index 70d2fa42e..079098201 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEJAR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEJAR 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEJAR \- file name to store cookies to
@@ -36,10 +36,10 @@ created. Specify "-" as filename to instead have the cookies written to
stdout. Using this option also enables cookies for this session, so if you for
example follow a location it will make matching cookies get sent accordingly.
-Note that libcurl doesn't read any cookies from the cookie jar. If you want to
+Note that libcurl does not read any cookies from the cookie jar. If you want to
read cookies from a file, use \fICURLOPT_COOKIEFILE(3)\fP.
-If the cookie jar file can't be created or written to (when the
+If the cookie jar file cannot be created or written to (when the
\fIcurl_easy_cleanup(3)\fP is called), libcurl will not and cannot report an
error for this. Using \fICURLOPT_VERBOSE(3)\fP or
\fICURLOPT_DEBUGFUNCTION(3)\fP will get a warning to display, but that is the
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
index 84b02ed49..d6af9aee3 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIELIST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIELIST 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
@@ -38,10 +38,10 @@ regular HTTP-style header (Set-Cookie: ...) format. This will also enable the
cookie engine. This adds that single cookie to the internal cookie store.
Exercise caution if you are using this option and multiple transfers may occur.
-If you use the Set-Cookie format and don't specify a domain then the cookie is
+If you use the Set-Cookie format and do not specify a domain then the cookie is
sent for any domain (even after redirects are followed) and cannot be modified
by a server-set cookie. If a server sets a cookie of the same name (or maybe
-you've imported one) then both will be sent on a future transfer to that
+you have imported one) then both will be sent on a future transfer to that
server, likely not what you intended. To address these issues set a domain in
Set-Cookie (doing that will include sub-domains) or use the Netscape format as
shown in EXAMPLE.
@@ -91,7 +91,7 @@ curl_easy_setopt(curl, CURLOPT_COOKIELIST, my_cookie);
before a transfer is performed. Cookies in the list that have the same
hostname, path and name as in my_cookie are skipped. That is because
libcurl has already imported my_cookie and it's considered a "live"
-cookie. A live cookie won't be replaced by one read from a file.
+cookie. A live cookie will not be replaced by one read from a file.
*/
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt"); /* import */
diff --git a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3 b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
index dde63f527..b85d9f5c0 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIESESSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIESESSION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIESESSION \- start a new cookie session
@@ -48,7 +48,7 @@ CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");
- /* new "session", don't load session cookies */
+ /* new "session", do not load session cookies */
curl_easy_setopt(curl, CURLOPT_COOKIESESSION, 1L);
/* get the (non session) cookies from this file */
diff --git a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
index d1dbdbbe7..d94d2b2b1 100644
--- a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COPYPOSTFIELDS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_COPYPOSTFIELDS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
diff --git a/docs/libcurl/opts/CURLOPT_CRLF.3 b/docs/libcurl/opts/CURLOPT_CRLF.3
index 0d276a600..1b4f96e95 100644
--- a/docs/libcurl/opts/CURLOPT_CRLF.3
+++ b/docs/libcurl/opts/CURLOPT_CRLF.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLF 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CRLF 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CRLF \- enable/disable CRLF conversion
+CURLOPT_CRLF \- CRLF conversion
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_CRLFILE.3
index c896f0cc6..1232913ec 100644
--- a/docs/libcurl/opts/CURLOPT_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_CRLFILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLFILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CRLFILE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CRLFILE \- specify a Certificate Revocation List file
+CURLOPT_CRLFILE \- Certificate Revocation List file
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_CURLU.3 b/docs/libcurl/opts/CURLOPT_CURLU.3
index 7f23da113..d88e2f77a 100644
--- a/docs/libcurl/opts/CURLOPT_CURLU.3
+++ b/docs/libcurl/opts/CURLOPT_CURLU.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CURLU 3 "February 21, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CURLU 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CURLU \- set URL with CURLU *
+CURLOPT_CURLU \- URL in CURLU * format
.SH SYNOPSIS
#include <curl/curl.h>
@@ -37,9 +37,9 @@ CURLU *. Setting \fICURLOPT_CURLU(3)\fP will explicitly override
transfer is started.
libcurl will use this handle and its contents read-only and will not change
-its contents. An application can very well update the contents of the URL
-handle after a transfer is done and if the same handle is then used in a
-subsequent request the updated contents will then be used.
+its contents. An application can update the contents of the URL handle after a
+transfer is done and if the same handle is then used in a subsequent request
+the updated contents will then be used.
.SH DEFAULT
The default value of this parameter is NULL.
.SH PROTOCOLS
@@ -68,4 +68,4 @@ Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_URL "(3), "
.BR curl_url "(3), " curl_url_get "(3), " curl_url_set "(3), "
-.BR curl_url_dup "(3), " curl_url_cleanup "(3), "
+.BR curl_url_dup "(3), " curl_url_cleanup "(3), " curl_url_strerror "(3)"
diff --git a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3 b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
index 40b649ddb..c78a2da9e 100644
--- a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CUSTOMREQUEST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_CUSTOMREQUEST 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_CUSTOMREQUEST \- custom string for request
+CURLOPT_CUSTOMREQUEST \- custom request method
.SH SYNOPSIS
#include <curl/curl.h>
@@ -32,7 +32,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request);
Pass a pointer to a null-terminated string as parameter.
When you change the request method by setting \fICURLOPT_CUSTOMREQUEST(3)\fP
-to something, you don't actually change how libcurl behaves or acts in regards
+to something, you do not actually change how libcurl behaves or acts in regards
to the particular request method, it will only change the actual string sent
in the request.
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3 b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
index 284e93a95..c205fd4b9 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DEBUGDATA \- custom pointer for debug callback
+CURLOPT_DEBUGDATA \- pointer passed to the debug callback
.SH SYNOPSIS
#include <curl/curl.h>
@@ -37,7 +37,31 @@ NULL
.SH PROTOCOLS
All
.SH EXAMPLE
-https://curl.se/libcurl/c/debug.html
+.nf
+int main(void)
+{
+ CURL *curl;
+ CURLcode res;
+ struct data my_tracedata;
+
+ curl = curl_easy_init();
+ if(curl) {
+ curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, my_trace);
+
+ curl_easy_setopt(curl, CURLOPT_DEBUGDATA, &my_tracedata);
+
+ /* the DEBUGFUNCTION has no effect until we enable VERBOSE */
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
+
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ return 0;
+}
+.fi
.SH AVAILABILITY
Always
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3 b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
index 1fdff77df..240f2b2ef 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGFUNCTION 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEBUGFUNCTION \- debug callback
diff --git a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3 b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
index 2c3fdcb1b..60d42a96f 100644
--- a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEFAULT_PROTOCOL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DEFAULT_PROTOCOL 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
diff --git a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3 b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
index 74e615e78..87cd0ad4e 100644
--- a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
+++ b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DIRLISTONLY 3 "December 31, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DIRLISTONLY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
@@ -43,7 +43,7 @@ that some FTP servers list only files in their response to NLST; they might not
include subdirectories and symbolic links.
Setting this option to 1 also implies a directory listing even if the URL
-doesn't end with a slash, which otherwise is necessary.
+does not end with a slash, which otherwise is necessary.
Do NOT use this option if you also use \fICURLOPT_WILDCARDMATCH(3)\fP as it
will effectively break that feature then.
diff --git a/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3 b/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
index 61b190263..e34d23643 100644
--- a/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
+++ b/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DISALLOW_USERNAME_IN_URL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DISALLOW_USERNAME_IN_URL 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url
@@ -47,7 +47,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.61.0
+Added in 7.61.0
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
diff --git a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
index 6ba426f6b..3bc4a6ca1 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
+CURLOPT_DNS_CACHE_TIMEOUT \- life-time for DNS cache entries
.SH SYNOPSIS
#include <curl/curl.h>
@@ -34,13 +34,13 @@ memory and used for this number of seconds. Set to zero to completely disable
caching, or set to -1 to make the cached entries remain forever. By default,
libcurl caches this info for 60 seconds.
-The name resolve functions of various libc implementations don't re-read name
+The name resolve functions of various libc implementations do not re-read name
server information unless explicitly told so (for example, by calling
\fIres_init(3)\fP). This may cause libcurl to keep using the older server even
if DHCP has updated the server info, and this may look like a DNS cache issue
to the casual libcurl-app user.
-Note that DNS entries have a "TTL" property but libcurl doesn't use that. This
+Note that DNS entries have a "TTL" property but libcurl does not use that. This
DNS cache timeout is entirely speculative that a name will resolve to the same
address for a certain small amount of time into the future.
.SH DEFAULT
@@ -53,7 +53,7 @@ CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");
- /* only reuse addresses for a very short time */
+ /* only reuse addresses for a short time */
curl_easy_setopt(curl, CURLOPT_DNS_CACHE_TIMEOUT, 2L);
ret = curl_easy_perform(curl);
diff --git a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
index 2d565c8cd..c8deb6028 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_INTERFACE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_INTERFACE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
+CURLOPT_DNS_INTERFACE \- interface to speak DNS over
.SH SYNOPSIS
#include <curl/curl.h>
@@ -31,7 +31,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname);
.SH DESCRIPTION
Pass a char * as parameter. Set the name of the network interface that the DNS
resolver should bind to. This must be an interface name (not an address). Set
-this option to NULL to use the default setting (don't bind to a specific
+this option to NULL to use the default setting (do not bind to a specific
interface).
The application does not have to keep the string around after setting this
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
index 79144da63..4bc04c610 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP4 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP4 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
@@ -31,7 +31,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP4, char *address);
.SH DESCRIPTION
Set the local IPv4 \fIaddress\fP that the resolver should bind to. The
argument should be of type char * and contain a single numerical IPv4 address
-as a string. Set this option to NULL to use the default setting (don't bind
+as a string. Set this option to NULL to use the default setting (do not bind
to a specific IP address).
The application does not have to keep the string around after setting this
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
index 42a1dce15..52e0b4e6b 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP6 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP6 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
@@ -31,7 +31,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP6, char *address);
.SH DESCRIPTION
Set the local IPv6 \fIaddress\fP that the resolver should bind to. The
argument should be of type char * and contain a single IPv6 address as a
-string. Set this option to NULL to use the default setting (don't bind to a
+string. Set this option to NULL to use the default setting (do not bind to a
specific IP address).
The application does not have to keep the string around after setting this
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3 b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
index d73fdf6e3..59492c2be 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,17 +20,17 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_SERVERS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_SERVERS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DNS_SERVERS \- set preferred DNS servers
+CURLOPT_DNS_SERVERS \- DNS servers to use
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SERVERS, char *servers);
.SH DESCRIPTION
Pass a char * that is the list of DNS servers to be used instead of the system
-default. The format of the dns servers option is:
+default. The format of the dns servers option is:
host[:port][,host[:port]]...
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3 b/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
index 7d2f71cc9..d4df16dfa 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns more than one
+CURLOPT_DNS_SHUFFLE_ADDRESSES \- shuffle IP addresses for hostname
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3 b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
index a68225267..9816b6f44 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
+CURLOPT_DNS_USE_GLOBAL_CACHE \- global DNS cache
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.3
index 27efa2a14..511952a58 100644
--- a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DOH_SSL_VERIFYHOST 3 "July 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DOH_SSL_VERIFYHOST 3 "July 16, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DOH_SSL_VERIFYHOST \- verify the host name in the DoH SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.3
index 79d401597..28d39ed4d 100644
--- a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DOH_SSL_VERIFYPEER 3 "July 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DOH_SSL_VERIFYPEER 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DOH_SSL_VERIFYPEER \- verify the DoH SSL certificate
@@ -33,7 +33,7 @@ Pass a long as parameter set to 1L to enable or 0L to disable.
This option tells curl to verify the authenticity of the DoH (DNS-over-HTTPS)
server's certificate. A value of 1 means curl verifies; 0 (zero) means it
-doesn't.
+does not.
This option is the DoH equivalent of \fICURLOPT_SSL_VERIFYPEER(3)\fP and
only affects requests to the DoH server.
@@ -54,7 +54,7 @@ the option is zero, the peer certificate verification succeeds regardless.
Authenticating the certificate is not enough to be sure about the server. You
typically also want to ensure that the server is the server you mean to be
talking to. Use \fICURLOPT_DOH_SSL_VERIFYHOST(3)\fP for that. The check
-that the host name in the certificate is valid for the host name you're
+that the host name in the certificate is valid for the host name you are
connecting to is done independently of the
\fICURLOPT_DOH_SSL_VERIFYPEER(3)\fP option.
diff --git a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.3 b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.3
index f0ebca78f..93586e5bc 100644
--- a/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.3
+++ b/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DOH_SSL_VERIFYSTATUS 3 "July 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DOH_SSL_VERIFYSTATUS 3 "July 16, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DOH_SSL_VERIFYSTATUS \- verify the DoH SSL certificate's status
diff --git a/docs/libcurl/opts/CURLOPT_DOH_URL.3 b/docs/libcurl/opts/CURLOPT_DOH_URL.3
index f06d47127..a845cea2c 100644
--- a/docs/libcurl/opts/CURLOPT_DOH_URL.3
+++ b/docs/libcurl/opts/CURLOPT_DOH_URL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2018 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DOH_URL 3 "July 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_DOH_URL 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL
@@ -34,7 +34,7 @@ resolving. The parameter should be a char * to a null-terminated string which
must be URL-encoded in the following format: "https://host:port/path". It MUST
specify a HTTPS URL.
-libcurl doesn't validate the syntax or use this variable until the transfer is
+libcurl does not validate the syntax or use this variable until the transfer is
issued. Even if you set a crazy value here, \fIcurl_easy_setopt(3)\fP will
still return \fICURLE_OK\fP.
@@ -45,14 +45,17 @@ will use the default name lookup function. You can bootstrap that by providing
the address for the DoH server with \fICURLOPT_RESOLVE(3)\fP.
Disable DoH use again by setting this option to NULL.
+.SH "INHERIT OPTIONS"
+DoH lookups use SSL and some SSL settings from your transfer are inherited,
+like \fICURLOPT_SSL_CTX_FUNCTION(3)\fP.
-\fBAdvanced:\fP The DoH lookups use SSL so some SSL settings from your transfer
-are inherited. The hostname and peer certificate verification settings are not
-inherited and can be controlled separately via
-\fICURLOPT_DOH_SSL_VERIFYHOST(3)\fP and \fICURLOPT_DOH_SSL_VERIFYPEER(3)\fP.
-Note \fICURLOPT_SSL_CTX_FUNCTION(3)\fP is inherited.
+The hostname and peer certificate verification settings are not inherited but
+can be controlled separately via \fICURLOPT_DOH_SSL_VERIFYHOST(3)\fP and
+\fICURLOPT_DOH_SSL_VERIFYPEER(3)\fP.
+
+A set \fICURLOPT_OPENSOCKETFUNCTION(3)\fP callback is not inherited.
.SH DEFAULT
-NULL - there is no default DoH URL. If this option isn't set, libcurl will use
+NULL - there is no default DoH URL. If this option is not set, libcurl will use
the default name resolver.
.SH PROTOCOLS
All
@@ -71,7 +74,7 @@ Added in 7.62.0
Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
heap space.
-Note that \fIcurl_easy_setopt(3)\fP won't actually parse the given string so
+Note that \fIcurl_easy_setopt(3)\fP will not actually parse the given string so
given a bad DoH URL, curl will not detect a problem until it tries to resolve
a name with it.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3 b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
index ca85340ac..451e3b364 100644
--- a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EGDSOCKET 3 "July 14, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_EGDSOCKET 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_EGDSOCKET \- set EGD socket path
+CURLOPT_EGDSOCKET \- EGD socket path
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3 b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
index 80df8e67a..0090e9563 100644
--- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
+++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ERRORBUFFER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ERRORBUFFER 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ERRORBUFFER \- set error buffer for error messages
+CURLOPT_ERRORBUFFER \- error buffer for error messages
.SH SYNOPSIS
#include <curl/curl.h>
@@ -35,9 +35,9 @@ return code from \fIcurl_easy_perform(3)\fP and related functions. The buffer
\fBmust be at least CURL_ERROR_SIZE bytes big\fP.
You must keep the associated buffer available until libcurl no longer needs
-it. Failing to do so will cause very odd behavior or even crashes. libcurl
-will need it until you call \fIcurl_easy_cleanup(3)\fP or you set the same
-option again to use a different pointer.
+it. Failing to do so will cause odd behavior or even crashes. libcurl will
+need it until you call \fIcurl_easy_cleanup(3)\fP or you set the same option
+again to use a different pointer.
Do not rely on the contents of the buffer unless an error code was returned.
Since 7.60.0 libcurl will initialize the contents of the error buffer to an
@@ -90,4 +90,4 @@ Returns CURLE_OK
.SH "SEE ALSO"
.BR CURLOPT_DEBUGFUNCTION "(3), " CURLOPT_VERBOSE "(3), "
.BR curl_easy_strerror "(3), " curl_multi_strerror "(3), "
-.BR curl_share_strerror "(3) "
+.BR curl_share_strerror "(3), " curl_url_strerror "(3)"
diff --git a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
index b002a4327..81f4d954f 100644
--- a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
diff --git a/docs/libcurl/opts/CURLOPT_FAILONERROR.3 b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
index 3f9a5f825..a60f16b14 100644
--- a/docs/libcurl/opts/CURLOPT_FAILONERROR.3
+++ b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FAILONERROR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FAILONERROR 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FAILONERROR \- request failure on HTTP response >= 400
diff --git a/docs/libcurl/opts/CURLOPT_FILETIME.3 b/docs/libcurl/opts/CURLOPT_FILETIME.3
index fa2ff0eb2..3471489db 100644
--- a/docs/libcurl/opts/CURLOPT_FILETIME.3
+++ b/docs/libcurl/opts/CURLOPT_FILETIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FILETIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FILETIME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FILETIME \- get the modification time of the remote resource
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
index f2ebbc768..93a810464 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_DATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_DATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FNMATCH_DATA \- custom pointer to fnmatch callback
+CURLOPT_FNMATCH_DATA \- pointer passed to the fnmatch callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
index 7df0cacf1..7431d4354 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_FUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FNMATCH_FUNCTION \- wildcard matching function callback
+CURLOPT_FNMATCH_FUNCTION \- wildcard match callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3 b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
index 742baf8b6..7e57cb3f2 100644
--- a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
+++ b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FOLLOWLOCATION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FOLLOWLOCATION 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FOLLOWLOCATION \- follow HTTP 3xx redirects
@@ -52,7 +52,7 @@ dictates which request method it will use in the subsequent request: For 301,
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
+or just lacks features, it is 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
\fICURLOPT_FOLLOWLOCATION(3)\fP.
diff --git a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3 b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
index c3e659ad6..1620a5ebf 100644
--- a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
+++ b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FORBID_REUSE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FORBID_REUSE 3 "September 18, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FORBID_REUSE \- make connection get closed at once after use
@@ -58,3 +58,4 @@ Always
Returns CURLE_OK
.SH "SEE ALSO"
.BR CURLOPT_FRESH_CONNECT "(3), " CURLOPT_MAXCONNECTS "(3), "
+.BR CURLOPT_MAXLIFETIME_CONN "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3 b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
index 30d2503f8..02154ef94 100644
--- a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
+++ b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FRESH_CONNECT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FRESH_CONNECT 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FRESH_CONNECT \- force a new connection to be used
@@ -35,7 +35,7 @@ used with caution and only if you understand what it does as it may seriously
impact performance.
Related functionality is \fICURLOPT_FORBID_REUSE(3)\fP which makes sure the
-connection is closed after use so that it won't be re-used.
+connection is closed after use so that it will not be re-used.
Set \fIfresh\fP to 0 to have libcurl attempt re-using an existing connection
(default behavior).
diff --git a/docs/libcurl/opts/CURLOPT_FTPPORT.3 b/docs/libcurl/opts/CURLOPT_FTPPORT.3
index 8203affae..d6c7f56c8 100644
--- a/docs/libcurl/opts/CURLOPT_FTPPORT.3
+++ b/docs/libcurl/opts/CURLOPT_FTPPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPPORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTPPORT 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTPPORT \- make FTP transfer active
@@ -37,7 +37,7 @@ The PORT instruction tells the remote server to connect to our specified IP
address. The string may be a plain IP address, a host name, a network
interface name (under Unix) or just a '-' symbol to let the library use your
system's default IP address. Default FTP operations are passive, and thus
-won't use PORT.
+will not use PORT.
The address can be followed by a ':' to specify a port, optionally followed by
a '-' to specify a port range. If the port specified is 0, the operating
diff --git a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3 b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
index 7bed1b71a..66731786a 100644
--- a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPSSLAUTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTPSSLAUTH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FTPSSLAUTH \- set order in which to attempt TLS vs SSL when using FTP
+CURLOPT_FTPSSLAUTH \- order in which to attempt TLS vs SSL
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3 b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
index ad83700ca..1d12de740 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ACCOUNT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ACCOUNT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FTP_ACCOUNT \- set account info for FTP
+CURLOPT_FTP_ACCOUNT \- account info for FTP
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
index c76dd036e..f9aedc490 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_ALTERNATIVE_TO_USER \- command to use instead of USER with FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3 b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
index 2170112f7..5cf74381c 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_CREATE_MISSING_DIRS \- create missing dirs for FTP and SFTP
@@ -45,13 +45,13 @@ For FTP requests, that means a CWD command fails. CWD being the command that
changes working directory.
For SFTP requests, libcurl will attempt to create the remote directory if it
-can't obtain a handle to the target-location. The creation will fail if a file
+cannot obtain a handle to the target-location. The creation will fail if a file
of the same name as the directory to create already exists or lack of
permissions prevents creation.
Setting \fIcreate\fP to \fICURLFTP_CREATE_DIR_RETRY\fP (2), tells libcurl to
retry the CWD command again if the subsequent MKD command fails. This is
-especially useful if you're doing many simultaneous connections against the
+especially useful if you are doing many simultaneous connections against the
same server and they all have this option enabled, as then CWD may first fail
but then another connection does MKD before this connection and thus MKD fails
but trying CWD works!
diff --git a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3 b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
index 380e615b6..56c5b7bd6 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_FILEMETHOD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_FILEMETHOD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_FILEMETHOD \- select directory traversing method for FTP
@@ -34,7 +34,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_FILEMETHOD,
Pass a long telling libcurl which \fImethod\fP to use to reach a file on a
FTP(S) server.
-This option exists because some server implementations aren't compliant to
+This option exists because some server implementations are not compliant to
what the standards say should work.
The argument should be one of the following alternatives:
diff --git a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
index 0a36ea852..b8dbe9790 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_RESPONSE_TIMEOUT \- time allowed to wait for FTP response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
index 1c4b6855d..798a19585 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SKIP_PASV_IP 3 "November 24, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SKIP_PASV_IP 3 "November 24, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SKIP_PASV_IP \- ignore the IP address in the PASV response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3 b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
index a0bb82a71..494af98c2 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SSL_CCC 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SSL_CCC 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SSL_CCC \- switch off SSL again with FTP after auth
@@ -35,7 +35,7 @@ shuts down the SSL/TLS layer after authenticating. The rest of the control
channel communication will be unencrypted. This allows NAT routers to follow
the FTP transaction. Pass a long using one of the values below
.IP CURLFTPSSL_CCC_NONE
-Don't attempt to use CCC.
+do not attempt to use CCC.
.IP CURLFTPSSL_CCC_PASSIVE
Do not initiate the shutdown, but wait for the server to do it. Do not send a
reply.
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
index 94a9f3c4a..af8cf6de5 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPRT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPRT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FTP_USE_EPRT \- enable/disable use of EPRT with FTP
+CURLOPT_FTP_USE_EPRT \- use EPRT for FTP
.SH SYNOPSIS
#include <curl/curl.h>
@@ -40,6 +40,22 @@ necessary then.
.SH DEFAULT
.SH PROTOCOLS
.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/file.txt");
+
+ /* contact us back, aka "active" FTP */
+ curl_easy_setopt(curl, CURLOPT_FTPPORT, "-");
+
+ /* FTP the way the neanderthals did it */
+ curl_easy_setopt(curl, CURLOPT_FTP_USE_EPRT, 0L);
+
+ ret = curl_easy_perform(curl);
+
+ curl_easy_cleanup(curl);
+}
+.fi
.SH AVAILABILITY
Added in 7.10.5
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
index 760002131..d1a3bac76 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPSV 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPSV 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FTP_USE_EPSV \- enable/disable use of EPSV
+CURLOPT_FTP_USE_EPSV \- use EPSV for FTP
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
index 35e41d4dc..121e9d408 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_PRET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_PRET 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_FTP_USE_PRET \- enable the PRET command
+CURLOPT_FTP_USE_PRET \- use PRET for FTP
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3 b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
index cf3342b9f..6387edad5 100644
--- a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
+++ b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_GSSAPI_DELEGATION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_GSSAPI_DELEGATION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_GSSAPI_DELEGATION \- set allowed GSS-API delegation
+CURLOPT_GSSAPI_DELEGATION \- allowed GSS-API delegation
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
index f1968849b..60233e148 100644
--- a/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS \- head start for ipv6 for happy eyeballs
@@ -41,6 +41,8 @@ Eyeballs RFC 6555 says "It is RECOMMENDED that connection attempts be paced
currently defaults to 200 ms. Firefox and Chrome currently default to 300 ms.
.SH DEFAULT
CURL_HET_DEFAULT (currently defined as 200L)
+.SH PROTOCOLS
+All except FILE
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -58,3 +60,6 @@ if(curl) {
Added in 7.59.0
.SH RETURN VALUE
Returns CURLE_OK
+.SH SEE ALSO
+.BR CURLOPT_CONNECTTIMEOUT_MS "(3), "
+.BR CURLOPT_TIMEOUT "(3), " CURLOPT_LOW_SPEED_LIMIT "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3 b/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
index 59c1fb3f1..16963d8e7 100644
--- a/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
+++ b/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HAPROXYPROTOCOL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HAPROXYPROTOCOL 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HAPROXYPROTOCOL \- send HAProxy PROXY protocol v1 header
@@ -56,3 +56,5 @@ if(curl) {
Along with HTTP. Added in 7.60.0.
.SH RETURN VALUE
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
+.SH SEE ALSO
+.BR CURLOPT_PROXY "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_HEADER.3 b/docs/libcurl/opts/CURLOPT_HEADER.3
index b2640faf8..3a67a47f5 100644
--- a/docs/libcurl/opts/CURLOPT_HEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HEADER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADER 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADER \- pass headers to the data stream
@@ -63,6 +63,8 @@ if(curl) {
curl_easy_perform(curl);
}
.fi
+.SH AVAILABILITY
+Provided in all libcurl versions.
.SH RETURN VALUE
Returns CURLE_OK.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_HEADERDATA.3 b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
index b8b20c082..5675c02cc 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERDATA.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADERDATA 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERDATA \- pointer to pass to header callback
diff --git a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3 b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
index f9e752589..437b48fb4 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADERFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERFUNCTION \- callback that receives header data
@@ -39,16 +39,16 @@ shown above.
This function gets called by libcurl as soon as it has received header
data. The header callback will be called once for each header and only
-complete header lines are passed on to the callback. Parsing headers is very
-easy using this. \fIbuffer\fP points to the delivered data, and the size of
-that data is \fInitems\fP; \fIsize\fP is always 1. Do not assume that the
-header line is null-terminated!
+complete header lines are passed on to the callback. Parsing headers is easy
+to do using this callback. \fIbuffer\fP points to the delivered data, and the
+size of that data is \fInitems\fP; \fIsize\fP is always 1. Do not assume that
+the header line is null-terminated!
The pointer named \fIuserdata\fP is the one you set with the
\fICURLOPT_HEADERDATA(3)\fP option.
This callback function must return the number of bytes actually taken care of.
-If that amount differs from the amount passed in to your function, it'll signal
+If that amount differs from the amount passed in to your function, it will signal
an error to the library. This will cause the transfer to get aborted and the
libcurl function in progress will return \fICURLE_WRITE_ERROR\fP.
diff --git a/docs/libcurl/opts/CURLOPT_HEADEROPT.3 b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
index 2d75c62da..a37e39e49 100644
--- a/docs/libcurl/opts/CURLOPT_HEADEROPT.3
+++ b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADEROPT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADEROPT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HEADEROPT \- set how to send HTTP headers
+CURLOPT_HEADEROPT \- send HTTP headers to both proxy and host or separately
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HSTS.3 b/docs/libcurl/opts/CURLOPT_HSTS.3
index 6d107e7fd..da7603338 100644
--- a/docs/libcurl/opts/CURLOPT_HSTS.3
+++ b/docs/libcurl/opts/CURLOPT_HSTS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2020 - 2021, 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
@@ -20,21 +20,16 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTS 3 "November 13, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HSTS \- set HSTS cache file name
+CURLOPT_HSTS \- HSTS cache file name
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTS, char *filename);
.fi
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
Make the \fIfilename\fP point to a file name to load an existing HSTS cache
from, and to store the cache in when the easy handle is closed. Setting a file
diff --git a/docs/libcurl/opts/CURLOPT_HSTSREADDATA.3 b/docs/libcurl/opts/CURLOPT_HSTSREADDATA.3
index 2eda548eb..c5aadc760 100644
--- a/docs/libcurl/opts/CURLOPT_HSTSREADDATA.3
+++ b/docs/libcurl/opts/CURLOPT_HSTSREADDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTSREADDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTSREADDATA 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HSTSREADDATA \- pointer passed to the HSTS read callback
@@ -28,17 +28,12 @@ CURLOPT_HSTSREADDATA \- pointer passed to the HSTS read callback
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTSREADDATA, void *pointer);
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
Data \fIpointer\fP to pass to the HSTS read function. If you use the
-\fICURLOPT_HSTSREADFUNCTION(3)\fP option, this is the pointer you'll get as
+\fICURLOPT_HSTSREADFUNCTION(3)\fP option, this is the pointer you will get as
input in the 3rd argument to the callback.
-This option doesn't enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
+This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
do that.
.SH DEFAULT
NULL
diff --git a/docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.3 b/docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.3
index bc6942555..c3e59548f 100644
--- a/docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTSREADFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTSREADFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HSTSREADFUNCTION \- read callback for HSTS hosts
@@ -30,11 +30,6 @@ CURLOPT_HSTSREADFUNCTION \- read callback for HSTS hosts
CURLSTScode hstsread(CURL *easy, struct curl_hstsentry *sts, void *userp);
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTSREADFUNCTION, hstsread);
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
Pass a pointer to your callback function, as the prototype shows above.
@@ -52,9 +47,11 @@ might cause the name to not get accepted)
The callback should return \fICURLSTS_OK\fP if it returns a name and is
prepared to be called again (for another host) or \fICURLSTS_DONE\fP if it has
-no entry to return. It can also return \fICURLSTS_FAIL\fP to signal error.
+no entry to return. It can also return \fICURLSTS_FAIL\fP to signal
+error. Returning \fICURLSTS_FAIL\fP will stop the transfer from being
+performed and make \fICURLE_ABORTED_BY_CALLBACK\fP get returned.
-This option doesn't enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
+This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
do that.
.SH DEFAULT
NULL - no callback.
diff --git a/docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.3 b/docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.3
index aa64a0314..f0d9e1bb6 100644
--- a/docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_HSTSWRITEDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTSWRITEDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTSWRITEDATA 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HSTSWRITEDATA \- pointer passed to the HSTS write callback
@@ -28,17 +28,12 @@ CURLOPT_HSTSWRITEDATA \- pointer passed to the HSTS write callback
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTSWRITEDATA, void *pointer);
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
Data \fIpointer\fP to pass to the HSTS write function. If you use the
-\fICURLOPT_HSTSWRITEFUNCTION(3)\fP option, this is the pointer you'll get as
+\fICURLOPT_HSTSWRITEFUNCTION(3)\fP option, this is the pointer you will get as
input in the 4th argument to the callback.
-This option doesn't enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
+This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
do that.
.SH DEFAULT
NULL
diff --git a/docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.3
index a8bcd75b6..22d36382e 100644
--- a/docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTSWRITEFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTSWRITEFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HSTSWRITEFUNCTION \- write callback for HSTS hosts
@@ -31,11 +31,6 @@ CURLSTScode hstswrite(CURL *easy, struct curl_hstsentry *sts,
struct curl_index *count, void *userp);
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTSWRITEFUNCTION, hstswrite);
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
Pass a pointer to your callback function, as the prototype shows above.
@@ -55,6 +50,9 @@ the syntax YYYYMMDD HH:MM:SS.
The callback should return \fICURLSTS_OK\fP if it succeeded and is prepared to
be called again (for another host) or \fICURLSTS_DONE\fP if there's nothing
more to do. It can also return \fICURLSTS_FAIL\fP to signal error.
+
+This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
+do that.
.SH DEFAULT
NULL - no callback.
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_HSTS_CTRL.3 b/docs/libcurl/opts/CURLOPT_HSTS_CTRL.3
index 2887b64ee..c3dbf9f1f 100644
--- a/docs/libcurl/opts/CURLOPT_HSTS_CTRL.3
+++ b/docs/libcurl/opts/CURLOPT_HSTS_CTRL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2020, 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HSTS_CTRL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HSTS_CTRL 3 "September 06, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HSTS_CTRL \- control HSTS behavior
@@ -33,11 +33,6 @@ CURLOPT_HSTS_CTRL \- control HSTS behavior
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTS_CTRL, long bitmask);
.fi
-.SH EXPERIMENTAL
-Warning: this feature is early code and is marked as experimental. It can only
-be enabled by explicitly telling configure with \fB--enable-hsts\fP. You are
-advised to not ship this in production before the experimental label is
-removed.
.SH DESCRIPTION
HSTS (HTTP Strict Transport Security) means that an HTTPS server can instruct
the client to not contact it again over clear-text HTTP for a certain period
diff --git a/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.3 b/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.3
index 5b9401a32..ead9f41cb 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2019, 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP09_ALLOWED 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP09_ALLOWED 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTP09 \- allow HTTP/0.9 response
+CURLOPT_HTTP09_ALLOWED \- allow HTTP/0.9 response
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3 b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
index 029818c33..7baccbb35 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP200ALIASES 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP200ALIASES 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTP200ALIASES \- specify alternative matches for HTTP 200 OK
+CURLOPT_HTTP200ALIASES \- alternative matches for HTTP 200 OK
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -33,11 +33,11 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP200ALIASES,
.SH DESCRIPTION
Pass a pointer to a linked list of \fIaliases\fP to be treated as valid HTTP
200 responses. Some servers respond with a custom header response line. For
-example, SHOUTcast servers respond with "ICY 200 OK". Also some very old
-Icecast 1.3.x servers will respond like that for certain user agent headers or
-in absence of such. By including this string in your list of aliases,
-the response will be treated as a valid HTTP header line such as
-"HTTP/1.0 200 OK".
+example, SHOUTcast servers respond with "ICY 200 OK". Also some old Icecast
+1.3.x servers will respond like that for certain user agent headers or in
+absence of such. By including this string in your list of aliases, the
+response will be treated as a valid HTTP header line such as "HTTP/1.0 200
+OK".
The linked list should be a fully valid list of struct curl_slist structs, and
be properly filled in. Use \fIcurl_slist_append(3)\fP to create the list and
diff --git a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3 b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
index 6a68afa74..115bcf338 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPAUTH 3 "July 03, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPAUTH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try
+CURLOPT_HTTPAUTH \- HTTP server authentication methods to try
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HTTPGET.3 b/docs/libcurl/opts/CURLOPT_HTTPGET.3
index bae84bcf3..05a568ed1 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPGET.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPGET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPGET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPGET 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPGET \- ask for an HTTP GET request
diff --git a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3 b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
index 7aa536600..e077598be 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPHEADER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPHEADER 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTPHEADER \- set custom HTTP headers
+CURLOPT_HTTPHEADER \- set of HTTP headers
.SH SYNOPSIS
#include <curl/curl.h>
@@ -69,6 +69,16 @@ The most commonly replaced headers have "shortcuts" in the options
There's an alternative option that sets or replaces headers only for requests
that are sent with CONNECT to a proxy: \fICURLOPT_PROXYHEADER(3)\fP. Use
\fICURLOPT_HEADEROPT(3)\fP to control the behavior.
+.SH SPECIFIC HEADERS
+Setting some specific headers will cause libcurl to act differently.
+.IP "Host:"
+The specified host name will be used for cookie matching if the cookie engine
+is also enabled for this transfer. If the request is done over HTTP/2 or
+HTTP/3, the custom host name will instead be used in the ":authority" header
+field and Host: will not be sent at all over the wire.
+.IP "Transfer-Encoding: chunked"
+Tells libcurl the upload is to be done using this chunked encoding instead of
+providing the Content-Length: field in the request.
.SH SECURITY CONCERNS
By default, this option makes libcurl send the given headers in all HTTP
requests done by this handle. You should therefore use this option with
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPOST.3 b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
index cb75f8ecb..e24e22d8c 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPOST.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPOST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPOST 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTPPOST \- specify the multipart formpost content
+CURLOPT_HTTPPOST \- multipart formpost content
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
index 93b491b7f..0a0a6d212 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPROXYTUNNEL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPROXYTUNNEL 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPPROXYTUNNEL \- tunnel through HTTP proxy
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
index 1a85c41c9..5d9634cf8 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_CONTENT_DECODING 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_CONTENT_DECODING 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTP_CONTENT_DECODING \- enable/disable HTTP content decoding
+CURLOPT_HTTP_CONTENT_DECODING \- HTTP content decoding control
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
index 9184ad91d..bbb99a61e 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "October 22, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTP_TRANSFER_DECODING \- enable/disable HTTP transfer decoding
+CURLOPT_HTTP_TRANSFER_DECODING \- HTTP transfer decoding control
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -50,7 +50,8 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in 7.16.2
+Added in 7.16.2 Does not work with the hyper backend (it will always have
+transfer decoding enabled).
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3 b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
index 91d5bc709..f7dccab72 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_VERSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_VERSION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_HTTP_VERSION \- specify HTTP protocol version to use
+CURLOPT_HTTP_VERSION \- HTTP protocol version to use
.SH SYNOPSIS
#include <curl/curl.h>
@@ -34,24 +34,24 @@ libcurl to use the specific HTTP versions.
Note that the HTTP version is just a request. libcurl will still prioritize to
re-use an existing connection so it might then re-use a connection using a
-HTTP version you haven't asked for.
+HTTP version you have not asked for.
.IP CURL_HTTP_VERSION_NONE
-We don't care about what version the library uses. libcurl will use whatever
+We do not care about what version the library uses. libcurl will use whatever
it thinks fit.
.IP CURL_HTTP_VERSION_1_0
Enforce HTTP 1.0 requests.
.IP CURL_HTTP_VERSION_1_1
Enforce HTTP 1.1 requests.
.IP CURL_HTTP_VERSION_2_0
-Attempt HTTP 2 requests. libcurl will fall back to HTTP 1.1 if HTTP 2 can't be
+Attempt HTTP 2 requests. libcurl will fall back to HTTP 1.1 if HTTP 2 cannot be
negotiated with the server. (Added in 7.33.0)
The alias \fICURL_HTTP_VERSION_2\fP was added in 7.43.0 to better reflect the
actual protocol name.
.IP CURL_HTTP_VERSION_2TLS
Attempt HTTP 2 over TLS (HTTPS) only. libcurl will fall back to HTTP 1.1 if
-HTTP 2 can't be negotiated with the HTTPS server. For clear text HTTP servers,
+HTTP 2 cannot be negotiated with the HTTPS server. For clear text HTTP servers,
libcurl will use 1.1. (Added in 7.47.0)
.IP CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
Issue non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade. It requires
@@ -61,7 +61,7 @@ TLS handshake. (Added in 7.49.0)
.IP CURL_HTTP_VERSION_3
(Added in 7.66.0) Setting this value will make libcurl attempt to use HTTP/3
directly to server given in the URL. Note that this cannot gracefully
-downgrade to earlier HTTP version if the server doesn't support HTTP/3.
+downgrade to earlier HTTP version if the server does not support HTTP/3.
For more reliably upgrading to HTTP/3, set the preferred version to something
lower and let the server announce its HTTP/3 support via Alt-Svc:. See
diff --git a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
index 6999d0d4d..f3adcb3c3 100644
--- a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
+++ b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "June 03, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "August 23, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length
@@ -62,7 +62,7 @@ if(curl) {
.fi
.SH AVAILABILITY
Added in 7.14.1. Support for FTP added in 7.46.0. This option is not working
-for the hyper backend.
+for HTTP when libcurl is built to use the hyper backend.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
index 3e5eb5790..06d953f2e 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_INFILESIZE \- set size of the input file to send off
+CURLOPT_INFILESIZE \- size of the input file to send off
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
index cd0104bf9..5d0f21bee 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE_LARGE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_INFILESIZE_LARGE \- set size of the input file to send off
+CURLOPT_INFILESIZE_LARGE \- size of the input file to send off
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_INTERFACE.3
index 7e77fb596..6d4586628 100644
--- a/docs/libcurl/opts/CURLOPT_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_INTERFACE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERFACE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERFACE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERFACE \- source interface for outgoing traffic
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
index 1985d7369..9137bff62 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_INTERLEAVEDATA \- custom pointer passed to RTSP interleave callback
+CURLOPT_INTERLEAVEDATA \- pointer passed to RTSP interleave callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
index 713927163..061978f1f 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEFUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_INTERLEAVEFUNCTION \- callback function for RTSP interleaved data
+CURLOPT_INTERLEAVEFUNCTION \- callback for RTSP interleaved data
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3 b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
index 3d59c8678..306e60718 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_IOCTLDATA \- custom pointer passed to I/O callback
+CURLOPT_IOCTLDATA \- pointer passed to I/O callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3 b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
index 0ccf51d7e..d6b35103f 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IOCTLFUNCTION \- callback for I/O operations
@@ -49,7 +49,7 @@ Pass a pointer to your callback function, which should match the prototype
shown above.
This callback function gets called by libcurl when something special
-I/O-related needs to be done that the library can't do by itself. For now,
+I/O-related needs to be done that the library cannot do by itself. For now,
rewinding the read data stream is the only action it can request. The
rewinding of the read data stream may be necessary when doing an HTTP PUT or
POST with a multi-pass authentication method.
diff --git a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3 b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
index 5ce9e2022..153cbf133 100644
--- a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IPRESOLVE 3 "April 24, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_IPRESOLVE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_IPRESOLVE \- specify which IP protocol version to use
+CURLOPT_IPRESOLVE \- IP protocol version to use
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3 b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
index a19913c87..755e34145 100644
--- a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
+++ b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ISSUERCERT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ISSUERCERT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ISSUERCERT \- issuer SSL certificate filename
diff --git a/docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.3 b/docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.3
index f3f1bf035..1f6dcda18 100644
--- a/docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ISSUERCERT_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_ISSUERCERT_BLOB 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ISSUERCERT_BLOB \- issuer SSL certificate from memory blob
@@ -71,7 +71,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL backends.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3 b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
index d096cc387..90fdf08a3 100644
--- a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
+++ b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEEP_SENDING_ON_ERROR \- keep sending on early HTTP response >= 300
diff --git a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
index 6e6afec58..09a29dc67 100644
--- a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEYPASSWD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_KEYPASSWD 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_KEYPASSWD \- set passphrase to private key
+CURLOPT_KEYPASSWD \- passphrase to private key
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3 b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
index b92131fc0..a6aca266e 100644
--- a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
+++ b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KRBLEVEL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_KRBLEVEL 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_KRBLEVEL \- set FTP kerberos security level
+CURLOPT_KRBLEVEL \- FTP kerberos security level
.SH SYNOPSIS
#include <curl/curl.h>
@@ -32,7 +32,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_KRBLEVEL, char *level);
Pass a char * as parameter. Set the kerberos security level for FTP; this also
enables kerberos awareness. This is a string that should match one of the
following: \&'clear', \&'safe', \&'confidential' or \&'private'. If the
-string is set but doesn't match one of these, 'private' will be used. Set the
+string is set but does not match one of these, 'private' will be used. Set the
string to NULL to disable kerberos support for FTP.
The application does not have to keep the string around after setting this
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORT.3 b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
index 741eaac3a..770573e3d 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORT.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_LOCALPORT \- set local port number to use for socket
+CURLOPT_LOCALPORT \- local port number to use for socket
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3 b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
index f1827d751..b9d5b041a 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORTRANGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORTRANGE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOCALPORTRANGE \- number of additional local ports to try
diff --git a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
index 400dfe870..b8132acef 100644
--- a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOGIN_OPTIONS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_LOGIN_OPTIONS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_LOGIN_OPTIONS \- set login options
+CURLOPT_LOGIN_OPTIONS \- login options
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
index 9094c9e5b..424fd5a12 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_LIMIT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_LIMIT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_LOW_SPEED_LIMIT \- set low speed limit in bytes per second
+CURLOPT_LOW_SPEED_LIMIT \- low speed limit in bytes per second
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
index 3aa0f559d..6eb0dcb0f 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_TIME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_TIME 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_LOW_SPEED_TIME \- set low speed limit time period
+CURLOPT_LOW_SPEED_TIME \- low speed limit time period
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3 b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
index ed6b7a58f..443dd8e6e 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_AUTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_AUTH 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_AUTH \- SMTP authentication address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3 b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
index ad6d48d51..13a7cfa02 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_FROM 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_FROM 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_FROM \- SMTP sender address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3 b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
index 8b67164b1..b6141be3f 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_RCPT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_RCPT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_RCPT \- list of SMTP mail recipients
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.3 b/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.3
index b2e4b3a67..dc1abe4e7 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLLOWFAILS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_RCPT_ALLLOWFAILS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_RCPT_ALLLOWFAILS 3 "July 26, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_RCPT_ALLLOWFAILS \- allow RCPT TO command to fail for some recipients
@@ -40,8 +40,9 @@ 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.
+If all recipients trigger RCPT TO failures and this flag is specified, curl
+will still abort the SMTP conversation and return the error received from to
+the last RCPT TO command.
.SH DEFAULT
0
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.3 b/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.3
index ca8b370ba..aa0e864e8 100644
--- a/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.3
+++ b/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 2019 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXAGE_CONN 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXAGE_CONN 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXAGE_CONN \- max idle time allowed for reusing a connection
@@ -30,13 +30,13 @@ CURLOPT_MAXAGE_CONN \- max idle time allowed for reusing a connection
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXAGE_CONN, long maxage);
.SH DESCRIPTION
Pass a long as parameter containing \fImaxage\fP - the maximum time in seconds
-that you allow an existing connection to have to be considered for reuse for
-this request.
+that you allow an existing connection to have been idle to be considered for
+reuse for this request.
The "connection cache" that holds previously used connections. When a new
request is to be done, it will consider any connection that matches for
-reuse. The \fICURLOPT_MAXAGE_CONN(3)\fP limit prevents libcurl from trying
-very old connections for reuse, since old connections have a high risk of not
+reuse. The \fICURLOPT_MAXAGE_CONN(3)\fP limit prevents libcurl from trying too
+old connections for reuse, since old connections have a high risk of not
working and thus trying them is a performance loss and sometimes service loss
due to the difficulties to figure out the situation. If a connection is found
in the cache that is older than this set \fImaxage\fP, it will instead be
@@ -58,9 +58,9 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.65.0
+Added in 7.65.0
.SH RETURN VALUE
Returns CURLE_OK.
.SH "SEE ALSO"
.BR CURLOPT_TIMEOUT "(3), " CURLOPT_FORBID_REUSE "(3), "
-.BR CURLOPT_FRESH_CONNECT "(3), "
+.BR CURLOPT_FRESH_CONNECT "(3), " CURLOPT_MAXLIFETIME_CONN "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
index c0f4a00e9..d579cc60a 100644
--- a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXCONNECTS 3 "December 31, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXCONNECTS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXCONNECTS \- maximum connection cache size
@@ -31,7 +31,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXCONNECTS, long amount);
.SH DESCRIPTION
Pass a long. The set \fIamount\fP will be the maximum number of simultaneously
open persistent connections that libcurl may cache in the pool associated with
-this handle. The default is 5, and there isn't much point in changing this
+this handle. The default is 5, and there is not much point in changing this
value unless you are perfectly aware of how this works and changes libcurl's
behavior. This concerns connections using any of the protocols that support
persistent connections.
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
index 1e33502f7..6158b5996 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE 3 "July 21, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE 3 "July 23, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE \- maximum file size allowed to download
@@ -34,9 +34,9 @@ Pass a long as parameter. This allows you to specify the maximum \fIsize\fP
this value, the transfer will not start and \fICURLE_FILESIZE_EXCEEDED\fP will
be returned.
-For protocols where the size is not known in advance (including FTP and HTTP)
-this option has no effect even if the file transfer ends up being larger than
-the given limit.
+The file size is not always known prior to download, and for such files this
+option has no effect even if the file transfer ends up being larger than this
+given limit.
If you want a limit above 2GB, use \fICURLOPT_MAXFILESIZE_LARGE(3)\fP.
.SH DEFAULT
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
index e6d4bb9bb..aca3859de 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE_LARGE 3 "July 21, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE_LARGE 3 "July 23, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE_LARGE \- maximum file size allowed to download
@@ -36,9 +36,9 @@ Pass a curl_off_t as parameter. This allows you to specify the maximum
larger than this value, the transfer will not start and
\fICURLE_FILESIZE_EXCEEDED\fP will be returned.
-For protocols where the size is not known in advance (including FTP and HTTP)
-this option has no effect even if the file transfer ends up being larger than
-the given limit.
+The file size is not always known prior to download, and for such files this
+option has no effect even if the file transfer ends up being larger than this
+given limit.
.SH DEFAULT
None
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.3 b/docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.3
new file mode 100644
index 000000000..18329d9cd
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.3
@@ -0,0 +1,66 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 2021, 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.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_MAXLIFETIME_CONN 3 "10 Nov 2021" "libcurl 7.80.0" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_MAXLIFETIME_CONN \- max lifetime (since creation) allowed for reusing a connection
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXLIFETIME_CONN, long maxlifetime);
+.SH DESCRIPTION
+Pass a long as parameter containing \fImaxlifetime\fP - the maximum time in
+seconds, since the creation of the connection, that you allow an existing
+connection to have to be considered for reuse for this request.
+
+libcurl features a connection cache that holds previously used connections.
+When a new request is to be done, it will consider any connection that matches
+for reuse. The \fICURLOPT_MAXLIFETIME_CONN(3)\fP limit prevents libcurl from
+trying too old connections for reuse. This can be used for client-side load
+balancing. If a connection is found in the cache that is older than this set
+\fImaxlifetime\fP, it will instead be closed once any in-progress transfers
+complete.
+
+If set to 0, this behavior is disabled: all connections are eligible for reuse.
+.SH DEFAULT
+Default \fImaxlifetime\fP is 0 seconds (i.e., disabled).
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+
+ /* only allow each connection to be reused for 30 seconds */
+ curl_easy_setopt(curl, CURLOPT_MAXLIFETIME_CONN, 30L);
+
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.80.0
+.SH RETURN VALUE
+Returns CURLE_OK.
+.SH "SEE ALSO"
+.BR CURLOPT_TIMEOUT "(3), " CURLOPT_FORBID_REUSE "(3), "
+.BR CURLOPT_FRESH_CONNECT "(3), " CURLOPT_MAXAGE_CONN "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3 b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
index dd688c136..566efb62d 100644
--- a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXREDIRS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXREDIRS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXREDIRS \- maximum number of redirects allowed
diff --git a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
index 1395f33da..a98023252 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_RECV_SPEED_LARGE \- rate limit data download speed
@@ -41,7 +41,7 @@ the given threshold over a period time.
If you set \fImaxspeed\fP to a value lower than \fICURLOPT_BUFFERSIZE(3)\fP,
libcurl might download faster than the set limit initially.
-This option doesn't affect transfer speeds done with FILE:// URLs.
+This option does not affect transfer speeds done with FILE:// URLs.
.SH DEFAULT
0, disabled
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
index baf959d3e..cb0a4f634 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_SEND_SPEED_LARGE \- rate limit data upload speed
@@ -43,7 +43,7 @@ If you set \fImaxspeed\fP to a value lower than
\fICURLOPT_UPLOAD_BUFFERSIZE(3)\fP, libcurl might "shoot over" the limit on
its first send and still send off a full buffer.
-This option doesn't affect transfer speeds done with FILE:// URLs.
+This option does not affect transfer speeds done with FILE:// URLs.
.SH DEFAULT
0, disabled
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_MIMEPOST.3 b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
index a97188c40..01035ce81 100644
--- a/docs/libcurl/opts/CURLOPT_MIMEPOST.3
+++ b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MIMEPOST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_MIMEPOST 3 "October 27, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_MIMEPOST \- set post/send data from mime structure
+CURLOPT_MIMEPOST \- send data from mime structure
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -41,13 +41,13 @@ This option is the preferred way of posting an HTTP form, replacing and
extending the deprecated \fICURLOPT_HTTPPOST(3)\fP option.
.SH PROTOCOLS
HTTP, SMTP, IMAP.
-.SH AVAILABILITY
-Since 7.56.0.
-.SH RETURN VALUE
-This will return CURLE_OK.
.SH EXAMPLE
Using this option implies the use of several mime structure building
functions: see https://curl.se/libcurl/c/smtp-mime.html for a complete
example.
+.SH AVAILABILITY
+Added in 7.56.0
+.SH RETURN VALUE
+This will return CURLE_OK.
.SH "SEE ALSO"
.BR curl_mime_init "(3)"
diff --git a/docs/libcurl/opts/CURLOPT_NETRC.3 b/docs/libcurl/opts/CURLOPT_NETRC.3
index 8ac5167dc..795c4fc92 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NETRC 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_NETRC \- request that .netrc is used
+CURLOPT_NETRC \- enable use of .netrc
.SH SYNOPSIS
#include <curl/curl.h>
@@ -40,7 +40,7 @@ libcurl uses a user name (and supplied or prompted password) supplied with
the options controlled by this parameter.
Only machine name, user name and password are taken into account (init macros
-and similar things aren't supported).
+and similar things are not supported).
libcurl does not verify that the file has the correct properties set (as the
standard Unix ftp client does). It should only be readable by user.
diff --git a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3 b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
index f56af13bc..ce3380364 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC_FILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NETRC_FILE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NETRC_FILE \- file name to read .netrc info from
diff --git a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
index f565f4eb9..ea4904ab7 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_DIRECTORY_PERMS \- permissions for remotely created directories
diff --git a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
index 7bac6a15f..260c08317 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_FILE_PERMS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NEW_FILE_PERMS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_FILE_PERMS \- permissions for remotely created files
diff --git a/docs/libcurl/opts/CURLOPT_NOBODY.3 b/docs/libcurl/opts/CURLOPT_NOBODY.3
index b64314636..d56eb1865 100644
--- a/docs/libcurl/opts/CURLOPT_NOBODY.3
+++ b/docs/libcurl/opts/CURLOPT_NOBODY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOBODY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NOBODY 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOBODY \- do the download request without getting the body
diff --git a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3 b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
index b5f702722..28fdb377c 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROGRESS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NOPROGRESS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROGRESS \- switch off the progress meter
diff --git a/docs/libcurl/opts/CURLOPT_NOPROXY.3 b/docs/libcurl/opts/CURLOPT_NOPROXY.3
index 9a2142a61..b65f54063 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROXY.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROXY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NOPROXY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROXY \- disable proxy use for specific hosts
@@ -51,7 +51,7 @@ brackets:
"example.com,::1,localhost"
IPv6 numerical addresses are compared as strings, so they will only match if
-the representations are the same: "::1" is the same as "::0:1" but they don't
+the representations are the same: "::1" is the same as "::0:1" but they do not
match.
The application does not have to keep the string around after setting this
diff --git a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3 b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
index a5cf9d0b0..595242eab 100644
--- a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
+++ b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOSIGNAL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_NOSIGNAL 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOSIGNAL \- skip all signal handling
@@ -50,7 +50,24 @@ cases when they may still happen, contrary to our desire. In addition, using
raised.
.SH DEFAULT
0
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
+
+ curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
+
+ ret = curl_easy_perform(curl);
+
+ curl_easy_cleanup(curl);
+}
+.fi
.SH AVAILABILITY
Added in 7.10
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH SEE ALSO
+.BR CURLOPT_TIMEOUT "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
index 3c964e554..0eb18771d 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_OPENSOCKETDATA \- custom pointer passed to open socket callback
+CURLOPT_OPENSOCKETDATA \- pointer passed to open socket callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
index ec1a30982..7f856fdb9 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETFUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_OPENSOCKETFUNCTION \- set callback for opening sockets
+CURLOPT_OPENSOCKETFUNCTION \- callback for opening socket
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PASSWORD.3
index 345580b14..08023ab15 100644
--- a/docs/libcurl/opts/CURLOPT_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PASSWORD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PASSWORD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PASSWORD \- password to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3 b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
index dbbe2806d..0b8e1c7ec 100644
--- a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
+++ b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PATH_AS_IS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PATH_AS_IS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PATH_AS_IS \- do not handle dot dot sequences
diff --git a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
index 5b8900381..0473a852b 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2019, 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PINNEDPUBLICKEY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PINNEDPUBLICKEY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PINNEDPUBLICKEY \- set pinned public key
+CURLOPT_PINNEDPUBLICKEY \- pinned public key
.SH SYNOPSIS
#include <curl/curl.h>
@@ -65,14 +65,14 @@ if(curl) {
If you do not have the server's public key file you can extract it from the
server's certificate.
.nf
-# retrieve the server's certificate if you don't already have it
+# retrieve the server's certificate if you do not already have it
#
# be sure to examine the certificate to see if it is what you expected
#
# Windows-specific:
# - Use NUL instead of /dev/null.
# - OpenSSL may wait for input instead of disconnecting. Hit enter.
-# - If you don't have sed, then just copy the certificate into a file:
+# - If you do not have sed, then just copy the certificate into a file:
# Lines from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE-----.
#
openssl s_client -servername www.example.com -connect www.example.com:443 < /dev/null | sed -n "/-----BEGIN/,/-----END/p" > www.example.com.pem
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3 b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
index 41c822727..a960d0557 100644
--- a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PIPEWAIT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PIPEWAIT 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PIPEWAIT \- wait for pipelining/multiplexing
@@ -55,6 +55,15 @@ and support level.
.SH PROTOCOLS
HTTP(S)
.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
+ curl_easy_setopt(curl, CURLOPT_PIPEWAIT, 1L);
+
+ /* now add this easy handle to the multi handle */
+}
+.fi
.SH AVAILABILITY
Added in 7.43.0
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_PORT.3 b/docs/libcurl/opts/CURLOPT_PORT.3
index 74c55cddb..7181beb6a 100644
--- a/docs/libcurl/opts/CURLOPT_PORT.3
+++ b/docs/libcurl/opts/CURLOPT_PORT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PORT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PORT \- set remote port number to work with
+CURLOPT_PORT \- remote port number to connect to
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_POST.3 b/docs/libcurl/opts/CURLOPT_POST.3
index 68ba73987..85660686c 100644
--- a/docs/libcurl/opts/CURLOPT_POST.3
+++ b/docs/libcurl/opts/CURLOPT_POST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POST 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_POST \- request an HTTP POST
+CURLOPT_POST \- make an HTTP POST
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
index e662bbaef..a5fcca1d2 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDS 3 "April 23, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_POSTFIELDS \- specify data to POST to server
+CURLOPT_POSTFIELDS \- data to POST to server
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
index f6f7d6024..527164e3c 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
index 2a8684bb3..81c1499b7 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE_LARGE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3 b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
index 0d2d2c255..baa486879 100644
--- a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTQUOTE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTQUOTE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTQUOTE \- (S)FTP commands to run after the transfer
diff --git a/docs/libcurl/opts/CURLOPT_POSTREDIR.3 b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
index 7755c15fa..562bc8cfc 100644
--- a/docs/libcurl/opts/CURLOPT_POSTREDIR.3
+++ b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTREDIR 3 "December 31, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTREDIR 3 "December 31, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTREDIR \- how to act on an HTTP POST redirect
diff --git a/docs/libcurl/opts/CURLOPT_PREQUOTE.3 b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
index d3a56d480..01a1aa8d2 100644
--- a/docs/libcurl/opts/CURLOPT_PREQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PREQUOTE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PREQUOTE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PREQUOTE \- commands to run before an FTP transfer
diff --git a/docs/libcurl/opts/CURLOPT_PREREQDATA.3 b/docs/libcurl/opts/CURLOPT_PREREQDATA.3
new file mode 100644
index 000000000..f3f8a23fb
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PREREQDATA.3
@@ -0,0 +1,62 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 2021, Max Dymond, <max.dymond@microsoft.com>, 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.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_PREREQDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_PREREQDATA \- pointer passed to the pre-request callback
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PREREQDATA, void *pointer);
+.SH DESCRIPTION
+Pass a \fIpointer\fP that will be untouched by libcurl and passed as the first
+argument in the pre-request callback set with
+\fICURLOPT_PREREQFUNCTION(3)\fP.
+.SH DEFAULT
+NULL
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+static int prereq_callback(void *clientp,
+ char *conn_primary_ip,
+ char *conn_local_ip,
+ int conn_primary_port,
+ int conn_local_port)
+{
+ printf("Connection made to %s:%s\\n", conn_primary_ip, conn_primary_port);
+ return CURL_PREREQFUNC_OK;
+}
+
+{
+ struct data prereq_data;
+ curl_easy_setopt(CURL *handle, CURLOPT_PREREQFUNCTION, prereq_callback);
+ curl_easy_setopt(CURL *handle, CURLOPT_PREREQDATA, &prereq_data);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.80.0
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_PREREQFUNCTION "(3) "
diff --git a/docs/libcurl/opts/CURLOPT_PREREQFUNCTION.3 b/docs/libcurl/opts/CURLOPT_PREREQFUNCTION.3
new file mode 100644
index 000000000..09205acdb
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PREREQFUNCTION.3
@@ -0,0 +1,105 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 2021, Max Dymond, <max.dymond@microsoft.com>, 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.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_PREREQFUNCTION 3 "November 04, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_PREREQFUNCTION \- user callback called when a connection has been
+established, but before a request has been made.
+.SH SYNOPSIS
+.nf
+#include <curl/curl.h>
+
+/* These are the return codes for the pre-request callback. */
+#define CURL_PREREQFUNC_OK 0
+#define CURL_PREREQFUNC_ABORT 1 /* fail the entire transfer */
+
+int prereq_callback(void *clientp,
+ char *conn_primary_ip,
+ char *conn_local_ip,
+ int conn_primary_port,
+ int conn_local_port);
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PREREQFUNCTION, prereq_callback);
+.SH DESCRIPTION
+Pass a pointer to your callback function, which should match the prototype
+shown above.
+
+This function gets called by libcurl after a connection has been established
+or a connection has been reused (including any SSL handshaking), but before any
+request is actually made on the connection. For example, for HTTP, this
+callback is called once a connection has been established to the server, but
+before a GET/HEAD/POST/etc request has been sent.
+
+This function may be called multiple times if redirections are enabled and are
+being followed (see \fICURLOPT_FOLLOWLOCATION(3)\fP).
+
+This function is passed the following information:
+.IP conn_primary_ip
+A nul-terminated pointer to a C string containing the primary IP of the remote
+server established with this connection. For FTP, this is the IP for the control
+connection. IPv6 addresses are represented without surrounding brackets.
+.IP conn_local_ip
+A nul-terminated pointer to a C string containing the originating IP for this
+connection. IPv6 addresses are represented without surrounding brackets.
+.IP conn_primary_port
+The primary port number on the remote server established with this connection.
+For FTP, this is the port for the control connection. This can be a TCP or a
+UDP port number dependending on the protocol.
+.IP conn_local_port
+The originating port number for this connection. This can be a TCP or a UDP port
+number dependending on the protocol.
+.RE
+
+\fIclientp\fP is the pointer you set with \fICURLOPT_PREREQDATA(3)\fP.
+
+The callback function must return \fICURL_PREREQFUNC_OK\fP on success, or
+\fICURL_PREREQFUNC_ABORT\fP to cause the transfer to fail.
+
+.SH DEFAULT
+By default, this is NULL and unused.
+.SH PROTOCOLS
+ALL
+.SH EXAMPLE
+.nf
+static int prereq_callback(void *clientp,
+ char *conn_primary_ip,
+ char *conn_local_ip,
+ int conn_primary_port,
+ int conn_local_port)
+{
+ printf("Connection made to %s:%s\\n", conn_primary_ip, conn_primary_port);
+ return CURL_PREREQFUNC_OK;
+}
+
+{
+ struct data prereq_data;
+ curl_easy_setopt(CURL *handle, CURLOPT_PREREQFUNCTION, prereq_callback);
+ curl_easy_setopt(CURL *handle, CURLOPT_PREREQDATA, &prereq_data);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.80.0
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_PREREQDATA "(3) "
diff --git a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3 b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
index 220ced286..dd5868caa 100644
--- a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRE_PROXY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PRE_PROXY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PRE_PROXY \- set pre-proxy to use
+CURLOPT_PRE_PROXY \- pre-proxy host to use
.SH SYNOPSIS
#include <curl/curl.h>
@@ -60,7 +60,7 @@ Default is NULL, meaning no pre proxy is used.
When you set a host name to use, do not assume that there's any particular
single port number used widely for proxies. Specify it!
.SH PROTOCOLS
-All except file://. Note that some protocols don't do very well over proxy.
+All except file://. Note that some protocols do not work well over proxy.
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
diff --git a/docs/libcurl/opts/CURLOPT_PRIVATE.3 b/docs/libcurl/opts/CURLOPT_PRIVATE.3
index 404b2663c..39171e2e1 100644
--- a/docs/libcurl/opts/CURLOPT_PRIVATE.3
+++ b/docs/libcurl/opts/CURLOPT_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRIVATE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PRIVATE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PRIVATE \- store a private pointer
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3 b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
index edf1986a1..f0892db92 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROGRESSDATA \- custom pointer passed to the progress callback
+CURLOPT_PROGRESSDATA \- pointer passed to the progress callback
.SH SYNOPSIS
#include <curl/curl.h>
@@ -36,7 +36,32 @@ The default value of this parameter is NULL.
.SH PROTOCOLS
All
.SH EXAMPLE
-https://curl.se/libcurl/c/progressfunc.html
+.nf
+ struct progress {
+ char *private;
+ size_t size;
+ };
+
+ static size_t progress_callback(void *clientp,
+ double dltotal,
+ double dlnow,
+ double ultotal,
+ double ulnow)
+ {
+ struct memory *progress = (struct progress *)userp;
+
+ /* use the values */
+
+ return 0; /* all is good */
+ }
+
+ struct progress data;
+
+ /* pass struct to callback */
+ curl_easy_setopt(curl_handle, CURLOPT_PROGRESSDATA, &data);
+
+ curl_easy_setopt(curl_handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
+.fi
.SH AVAILABILITY
Always
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3 b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
index 239fa47b0..65a39bb02 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROGRESSFUNCTION \- callback to progress meter function
+CURLOPT_PROGRESSFUNCTION \- progress meter callback
.SH SYNOPSIS
#include <curl/curl.h>
@@ -42,7 +42,7 @@ We encourage users to use the newer \fICURLOPT_XFERINFOFUNCTION(3)\fP instead,
if you can.
This function gets called by libcurl instead of its internal equivalent with a
-frequent interval. While data is being transferred it will be called very
+frequent interval. While data is being transferred it will be called
frequently, and during slow periods like when nothing is being transferred it
can slow down to about one call per second.
@@ -74,12 +74,37 @@ function that performs transfers.
\fICURLOPT_NOPROGRESS(3)\fP must be set to 0 to make this function actually
get called.
.SH DEFAULT
-By default, libcurl has an internal progress meter. That's rarely wanted by
+By default, libcurl has an internal progress meter. That is rarely wanted by
users.
.SH PROTOCOLS
All
.SH EXAMPLE
-https://curl.se/libcurl/c/progressfunc.html
+.nf
+ struct progress {
+ char *private;
+ size_t size;
+ };
+
+ static size_t progress_callback(void *clientp,
+ double dltotal,
+ double dlnow,
+ double ultotal,
+ double ulnow)
+ {
+ struct memory *progress = (struct progress *)userp;
+
+ /* use the values */
+
+ return 0; /* all is good */
+ }
+
+ struct progress data;
+
+ /* pass struct to callback */
+ curl_easy_setopt(curl_handle, CURLOPT_PROGRESSDATA, &data);
+
+ curl_easy_setopt(curl_handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
+.fi
.SH AVAILABILITY
Always
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
index 11ca37445..51b4a1c63 100644
--- a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROTOCOLS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROTOCOLS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROTOCOLS \- set allowed protocols
+CURLOPT_PROTOCOLS \- allowed protocols
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY.3 b/docs/libcurl/opts/CURLOPT_PROXY.3
index 09c226818..5e6ff59c6 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY \- set proxy to use
+CURLOPT_PROXY \- proxy to use
.SH SYNOPSIS
#include <curl/curl.h>
@@ -62,7 +62,7 @@ which kind of proxy the string identifies.
When you tell the library to use an HTTP proxy, libcurl will transparently
convert operations to HTTP even if you specify an FTP URL etc. This may have
an impact on what other features of the library you can use, such as
-\fICURLOPT_QUOTE(3)\fP and similar FTP specifics that don't work unless you
+\fICURLOPT_QUOTE(3)\fP and similar FTP specifics that do not work unless you
tunnel through the HTTP proxy. Such tunneling is activated with
\fICURLOPT_HTTPPROXYTUNNEL(3)\fP.
@@ -91,7 +91,7 @@ Default is NULL, meaning no proxy is used.
When you set a host name to use, do not assume that there's any particular
single port number used widely for proxies. Specify it!
.SH PROTOCOLS
-All except file://. Note that some protocols don't do very well over proxy.
+All except file://. Note that some protocols do not work well over proxy.
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
diff --git a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3 b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
index 87bbe3e42..7b1f3d576 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYAUTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYAUTH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXYAUTH \- set HTTP proxy authentication methods to try
+CURLOPT_PROXYAUTH \- HTTP proxy authentication methods
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3 b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
index 824fcf811..cf38c3fd1 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYHEADER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYHEADER 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXYHEADER \- custom HTTP headers to pass to proxy
+CURLOPT_PROXYHEADER \- set of HTTP headers to pass to proxy
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
index 481f55375..aee4eacab 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPASSWORD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPASSWORD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPASSWORD \- password to use with proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPORT.3 b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
index 6ff3c99fb..07629bd6d 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPORT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPORT 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPORT \- port number the proxy listens on
@@ -33,7 +33,7 @@ Pass a long with this option to set the proxy port to connect to unless it is
specified in the proxy string \fICURLOPT_PROXY(3)\fP or uses 443 for https
proxies and 1080 for all others as default.
-While this accepts a 'long', the port number is 16 bit so it can't be larger
+While this accepts a 'long', the port number is 16 bit so it cannot be larger
than 65535.
.SH DEFAULT
0, not specified which makes it use the default port
diff --git a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
index 817628f82..16e618521 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYTYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYTYPE 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYTYPE \- proxy protocol type
@@ -37,9 +37,9 @@ HTTP Proxy. Default.
.IP CURLPROXY_HTTPS
HTTPS Proxy. (Added in 7.52.0 for OpenSSL, GnuTLS and NSS)
.IP CURLPROXY_HTTP_1_0
-HTTP 1.0 Proxy. This is very similar to CURLPROXY_HTTP except it uses HTTP/1.0
-for any CONNECT tunnelling. It does not change the HTTP version of the actual
-HTTP requests, controlled by \fICURLOPT_HTTP_VERSION(3)\fP.
+HTTP 1.0 Proxy. This is similar to CURLPROXY_HTTP except it uses HTTP/1.0 for
+any CONNECT tunnelling. It does not change the HTTP version of the actual HTTP
+requests, controlled by \fICURLOPT_HTTP_VERSION(3)\fP.
.IP CURLPROXY_SOCKS4
SOCKS4 Proxy.
.IP CURLPROXY_SOCKS4A
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
index 8ff955d10..23fecaee2 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERNAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERNAME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERNAME \- user name to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
index cd0648677..7b66b8acb 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERPWD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERPWD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERPWD \- user name and password to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
index 64a64ca1a..ee9fc4354 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAINFO 3 "July 13, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAINFO 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAINFO \- path to proxy Certificate Authority (CA) bundle
@@ -71,7 +71,7 @@ if(curl) {
.SH AVAILABILITY
Added in 7.52.0
-For TLS backends that don't support certificate files, the
+For TLS backends that do not support certificate files, the
\fICURLOPT_PROXY_CAINFO(3)\fP option is ignored. Refer to
https://curl.se/docs/ssl-compared.html
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.3
index bec362204..3c270734a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAINFO_BLOB 3 "July 13, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAINFO_BLOB 3 "August 21, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAINFO_BLOB \- proxy Certificate Authority (CA) bundle in PEM format
@@ -54,7 +54,7 @@ if(curl) {
curl_easy_setopt(curl, CURLOPT_PROXY, "https://localhost:443");
blob.data = strpem;
blob.len = strlen(strpem);
- blob.flags = CURL_BLOB_COPY;
+ blob.flags = CURL_BLOB_COPY;
curl_easy_setopt(curl, CURLOPT_PROXY_CAINFO_BLOB, &blob);
ret = curl_easy_perform(curl);
curl_easy_cleanup(curl);
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
index b666d85d1..7d167d1dd 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAPATH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAPATH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_CAPATH \- specify directory holding proxy CA certificates
+CURLOPT_PROXY_CAPATH \- directory holding HTTPS proxy CA certificates
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
index fe3be27f5..b5eb2a54a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CRLFILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CRLFILE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_CRLFILE \- specify a proxy Certificate Revocation List file
+CURLOPT_PROXY_CRLFILE \- HTTPS proxy Certificate Revocation List file
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.3 b/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.3
index d010b441a..6562fa041 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_ISSUERCERT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_ISSUERCERT 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_ISSUERCERT \- proxy issuer SSL certificate filename
@@ -65,7 +65,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL backends.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.3 b/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.3
index 6331cc2ea..2770aacf8 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_ISSUERCERT_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_ISSUERCERT_BLOB 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_ISSUERCERT_BLOB \- proxy issuer SSL certificate from memory blob
+CURLOPT_PROXY_ISSUERCERT_BLOB \- proxy issuer SSL certificate from memory blob
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -77,7 +77,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL backends.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
index 6dfd89698..411887613 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_KEYPASSWD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_KEYPASSWD 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_KEYPASSWD \- set passphrase to proxy private key
+CURLOPT_PROXY_KEYPASSWD \- passphrase for the proxy private key
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
index 9b4c51de3..9aa68c748 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_PINNEDPUBLICKEY \- set pinned public key for https proxy
+CURLOPT_PROXY_PINNEDPUBLICKEY \- pinned public key for https proxy
.SH SYNOPSIS
#include <curl/curl.h>
@@ -64,14 +64,14 @@ if(curl) {
If you do not have the https proxy server's public key file you can extract it
from the https proxy server's certificate.
.nf
-# retrieve the server's certificate if you don't already have it
+# retrieve the server's certificate if you do not already have it
#
# be sure to examine the certificate to see if it is what you expected
#
# Windows-specific:
# - Use NUL instead of /dev/null.
# - OpenSSL may wait for input instead of disconnecting. Hit enter.
-# - If you don't have sed, then just copy the certificate into a file:
+# - If you do not have sed, then just copy the certificate into a file:
# Lines from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE-----.
#
openssl s_client -servername www.example.com -connect www.example.com:443 < /dev/null | sed -n "/-----BEGIN/,/-----END/p" > www.example.com.pem
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
index 7424ead5e..23700977a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SERVICE_NAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SERVICE_NAME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SERVICE_NAME \- proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
index 31b1127c3..5646a4261 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSLCERT \- set SSL proxy client certificate
+CURLOPT_PROXY_SSLCERT \- HTTPS proxy client certificate
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
index 2b8fafadf..fa640670b 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERTTYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERTTYPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSLCERTTYPE \- specify type of the proxy client SSL certificate
+CURLOPT_PROXY_SSLCERTTYPE \- type of the proxy client SSL certificate
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.3
index f127ded45..1927ef935 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERT_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERT_BLOB 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLCERT_BLOB \- SSL proxy client certificate from memory blob
@@ -63,8 +63,8 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL, Secure
-Transport and Schannel backends.
+Added in 7.71.0. This option is supported by the OpenSSL, Secure Transport and
+Schannel backends.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
index b768ffb04..beab88a85 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEY 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSLKEY \- specify private keyfile for TLS and SSL proxy client cert
+CURLOPT_PROXY_SSLKEY \- private keyfile for HTTPS proxy client cert
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
index 95d84621d..9790fda4c 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEYTYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEYTYPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSLKEYTYPE \- set type of the proxy private key file
+CURLOPT_PROXY_SSLKEYTYPE \- type of the proxy private key file
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.3
index 85d99b0d6..48e178b6f 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEY_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEY_BLOB 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLKEY_BLOB \- private key for proxy cert from memory blob
@@ -66,7 +66,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL backends.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
index 9919e91bc..2ebeead81 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLVERSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLVERSION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSLVERSION \- set preferred proxy TLS/SSL version
+CURLOPT_PROXY_SSLVERSION \- preferred HTTPS proxy TLS version
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
index 7b8f836bf..a22d52f85 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSL_CIPHER_LIST \- specify ciphers to use for proxy TLS
+CURLOPT_PROXY_SSL_CIPHER_LIST \- ciphers to use for HTTPS proxy
.SH SYNOPSIS
#include <curl/curl.h>
@@ -35,22 +35,21 @@ syntactically correct, it consists of one or more cipher strings separated by
colons. Commas or spaces are also acceptable separators but colons are
normally used, \&!, \&- and \&+ can be used as operators.
-For OpenSSL and GnuTLS valid examples of cipher lists include 'RC4-SHA',
-\'SHA1+DES\', 'TLSv1' and 'DEFAULT'. The default list is normally set when you
-compile OpenSSL.
+For OpenSSL and GnuTLS valid examples of cipher lists include \fBRC4-SHA\fP,
+\fBSHA1+DES\fP, \fBTLSv1\fP and \fBDEFAULT\fP. The default list is normally
+set when you compile OpenSSL.
-You'll find more details about cipher lists on this URL:
-
- https://www.openssl.org/docs/apps/ciphers.html
-
-For NSS, valid examples of cipher lists include 'rsa_rc4_128_md5',
-\'rsa_aes_128_sha\', etc. With NSS you don't add/remove ciphers. If one uses
+For NSS, valid examples of cipher lists include \fBrsa_rc4_128_md5\fP,
+\fBrsa_aes_128_sha\fP, etc. With NSS you do not add/remove ciphers. If one uses
this option then all known ciphers are disabled and only those passed in are
enabled.
-You'll find more details about the NSS cipher lists on this URL:
+For WolfSSL, valid examples of cipher lists include \fBECDHE-RSA-RC4-SHA\fP,
+\fBAES256-SHA:AES256-SHA256\fP, etc.
+
+you will find more details about cipher lists on this URL:
- http://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives
+ https://curl.se/docs/ssl-ciphers.html
The application does not have to keep the string around after setting this
option.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
index 57fbc60fa..bae84e035 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_OPTIONS 3 "February 27, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_OPTIONS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_SSL_OPTIONS \- set proxy SSL behavior options
+CURLOPT_PROXY_SSL_OPTIONS \- HTTPS proxy SSL behavior options
.SH SYNOPSIS
#include <curl/curl.h>
@@ -33,7 +33,7 @@ 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,
+SSL3 and TLS1.0 protocols. If this option is not 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
@@ -43,7 +43,7 @@ supported for Secure Transport, NSS and OpenSSL.
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 block list which it seems can't be bypassed. (Added in
+Untrusted Publishers block list which it seems cannot be bypassed. (Added in
7.44.0)
.IP CURLSSLOPT_NO_PARTIALCHAIN
Tells libcurl to not accept "partial" certificate chains, which it otherwise
@@ -68,8 +68,6 @@ could be a privacy violation and unexpected.
0
.SH PROTOCOLS
All TLS-based protocols
-.SH AVAILABLE
-Added in 7.52.0
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -83,6 +81,8 @@ if(curl) {
curl_easy_cleanup(curl);
}
.fi
+.SH AVAILABILITY
+Added in 7.52.0
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
index a3bbfb973..3ddd5614e 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYHOST \- verify the proxy certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
index ace18ad39..ea8a66cb5 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYPEER \- verify the proxy's SSL certificate
@@ -32,9 +32,9 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_VERIFYPEER, long verif
Pass a long as parameter set to 1L to enable or 0L to disable.
This option tells curl to verifies the authenticity of the HTTPS proxy's
-certificate. A value of 1 means curl verifies; 0 (zero) means it doesn't.
+certificate. A value of 1 means curl verifies; 0 (zero) means it does not.
-This is the proxy version of \fICURLOPT_SSL_VERIFYPEER(3)\fP that's used for
+This is the proxy version of \fICURLOPT_SSL_VERIFYPEER(3)\fP that is used for
ordinary HTTPS servers.
When negotiating a TLS or SSL connection, the server sends a certificate
@@ -53,7 +53,7 @@ the option is zero, the peer certificate verification succeeds regardless.
Authenticating the certificate is not enough to be sure about the server. You
typically also want to ensure that the server is the server you mean to be
talking to. Use \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP for that. The check
-that the host name in the certificate is valid for the host name you're
+that the host name in the certificate is valid for the host name you are
connecting to is done independently of the
\fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP option.
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
index 53fd52895..841715d42 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLS13_CIPHERS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLS13_CIPHERS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLS13_CIPHERS \- ciphers suites for proxy TLS 1.3
@@ -34,7 +34,7 @@ suites to use for the TLS 1.3 connection to a proxy. The list must be
syntactically correct, it consists of one or more cipher suite strings
separated by colons.
-You'll find more details about cipher lists on this URL:
+you will find more details about cipher lists on this URL:
https://curl.se/docs/ssl-ciphers.html
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
index 80103809e..2226ebbaf 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_PASSWORD \- password to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
index 22ad1d691..f83ff34ad 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_PROXY_TLSAUTH_TYPE \- set proxy TLS authentication methods
+CURLOPT_PROXY_TLSAUTH_TYPE \- HTTPS proxy TLS authentication methods
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
index f273458d3..95dbf5c16 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_USERNAME \- user name to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
index 9083a1e1f..af5063d60 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TRANSFER_MODE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TRANSFER_MODE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TRANSFER_MODE \- append FTP transfer mode to URL for proxy
diff --git a/docs/libcurl/opts/CURLOPT_PUT.3 b/docs/libcurl/opts/CURLOPT_PUT.3
index 092159b6f..538b00556 100644
--- a/docs/libcurl/opts/CURLOPT_PUT.3
+++ b/docs/libcurl/opts/CURLOPT_PUT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PUT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_PUT 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PUT \- make an HTTP PUT request
@@ -39,6 +39,29 @@ This option is \fBdeprecated\fP since version 7.12.1. Use
0, disabled
.SH PROTOCOLS
HTTP
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ /* we want to use our own read function */
+ curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
+
+ /* enable PUT */
+ curl_easy_setopt(curl, CURLOPT_PUT, 1L);
+
+ /* specify target */
+ curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/dir/to/newfile");
+
+ /* now specify which pointer to pass to our callback */
+ curl_easy_setopt(curl, CURLOPT_READDATA, hd_src);
+
+ /* Set the size of the file to upload */
+ curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)fsize);
+
+ /* Now run off and do what you have been told! */
+ curl_easy_perform(curl);
+}
+.fi
.SH AVAILABILITY
Deprecated since 7.12.1. Do not use.
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_QUOTE.3 b/docs/libcurl/opts/CURLOPT_QUOTE.3
index 0dacc6ffc..560987e61 100644
--- a/docs/libcurl/opts/CURLOPT_QUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_QUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_QUOTE 3 "February 08, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_QUOTE 3 "February 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_QUOTE \- (S)FTP commands to run before transfer
diff --git a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3 b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
index a2c698780..4a2a3ce1a 100644
--- a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANDOM_FILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RANDOM_FILE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RANDOM_FILE \- specify a source for random data
+CURLOPT_RANDOM_FILE \- file to read random data from
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RANGE.3 b/docs/libcurl/opts/CURLOPT_RANGE.3
index 541af6404..06dbad42a 100644
--- a/docs/libcurl/opts/CURLOPT_RANGE.3
+++ b/docs/libcurl/opts/CURLOPT_RANGE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RANGE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RANGE \- set byte range to request
+CURLOPT_RANGE \- byte range to request
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_READDATA.3 b/docs/libcurl/opts/CURLOPT_READDATA.3
index b8e6917a0..99efc0641 100644
--- a/docs/libcurl/opts/CURLOPT_READDATA.3
+++ b/docs/libcurl/opts/CURLOPT_READDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,23 +20,23 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_READDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_READDATA \- custom pointer passed to the read callback
+CURLOPT_READDATA \- pointer passed to the read callback
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_READDATA, void *pointer);
.SH DESCRIPTION
Data \fIpointer\fP to pass to the file read function. If you use the
-\fICURLOPT_READFUNCTION(3)\fP option, this is the pointer you'll get as
+\fICURLOPT_READFUNCTION(3)\fP option, this is the pointer you will get as
input in the 4th argument to the callback.
-If you don't specify a read callback but instead rely on the default internal
+If you do not specify a read callback but instead rely on the default internal
read function, this data must be a valid readable FILE * (cast to 'void *').
-If you're using libcurl as a win32 DLL, you \fBMUST\fP use a
+If you are using libcurl as a win32 DLL, you \fBMUST\fP use a
\fICURLOPT_READFUNCTION(3)\fP if you set this option or you will experience
crashes.
.SH DEFAULT
diff --git a/docs/libcurl/opts/CURLOPT_READFUNCTION.3 b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
index ba1ee92b1..a2084885e 100644
--- a/docs/libcurl/opts/CURLOPT_READFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READFUNCTION 3 "December 30, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_READFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_READFUNCTION \- read callback for data uploads
@@ -47,9 +47,9 @@ area pointed at by the pointer \fIbuffer\fP. Returning 0 will signal
end-of-file to the library and cause it to stop the current transfer.
If you stop the current transfer by returning 0 "pre-maturely" (i.e before the
-server expected it, like when you've said you will upload N bytes and you
+server expected it, like when you have said you will upload N bytes and you
upload less than N bytes), you may experience that the server "hangs" waiting
-for the rest of the data that won't come.
+for the rest of the data that will not come.
The read callback may return \fICURL_READFUNC_ABORT\fP to stop the current
operation immediately, resulting in a \fICURLE_ABORTED_BY_CALLBACK\fP error
@@ -62,7 +62,7 @@ connection to pause. See \fIcurl_easy_pause(3)\fP for further details.
that the callback wants, or it will be considered the final packet by the
server end and the transfer will end there.
-If you set this callback pointer to NULL, or don't set it at all, the default
+If you set this callback pointer to NULL, or do not set it at all, the default
internal read function will be used. It is doing an fread() on the FILE *
userdata set with \fICURLOPT_READDATA(3)\fP.
diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
index 8239ea1fa..aaf57ab90 100644
--- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REDIR_PROTOCOLS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_REDIR_PROTOCOLS 3 "October 27, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_REDIR_PROTOCOLS \- set protocols allowed to redirect to
+CURLOPT_REDIR_PROTOCOLS \- protocols allowed to redirect to
.SH SYNOPSIS
#include <curl/curl.h>
@@ -76,7 +76,7 @@ CURLPROTO_TELNET
CURLPROTO_TFTP
.fi
.SH DEFAULT
-HTTP, HTTPS, FTP and FTPS (Since 7.65.2).
+HTTP, HTTPS, FTP and FTPS (Added in 7.65.2).
Older versions defaulted to all protocols except FILE, SCP and since 7.40.0
SMB and SMBS.
diff --git a/docs/libcurl/opts/CURLOPT_REFERER.3 b/docs/libcurl/opts/CURLOPT_REFERER.3
index eb778679d..f5b3bdd47 100644
--- a/docs/libcurl/opts/CURLOPT_REFERER.3
+++ b/docs/libcurl/opts/CURLOPT_REFERER.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REFERER 3 "February 19, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_REFERER 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_REFERER \- set the HTTP referer header
+CURLOPT_REFERER \- the HTTP referer header
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3 b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
index 1ba67ea8e..7b9e9b09b 100644
--- a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
+++ b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REQUEST_TARGET 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_REQUEST_TARGET 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_REQUEST_TARGET \- specify an alternative target for this request
+CURLOPT_REQUEST_TARGET \- alternative target for this request
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVE.3 b/docs/libcurl/opts/CURLOPT_RESOLVE.3
index 89e2596c2..523cadaf6 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVE 3 "April 24, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVE 3 "April 24, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESOLVE \- provide custom host name to IP address resolves
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
index d352db3fc..0c2857210 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVER_START_DATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVER_START_DATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RESOLVER_START_DATA \- custom pointer passed to the resolver start callback
+CURLOPT_RESOLVER_START_DATA \- pointer passed to the resolver start callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
index 0cc2b1da5..7e1c7161b 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVER_START_FUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVER_START_FUNCTION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RESOLVER_START_FUNCTION \- set callback to be called before a new resolve request is started
+CURLOPT_RESOLVER_START_FUNCTION \- callback called before a new name resolve is started
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
index 22ff50ad1..7d99a6534 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RESUME_FROM \- set a point to resume transfer from
+CURLOPT_RESUME_FROM \- offset to resume transfer from
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
index 722405a80..a2cd8ea72 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM_LARGE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RESUME_FROM_LARGE \- set a point to resume transfer from
+CURLOPT_RESUME_FROM_LARGE \- offset to resume transfer from
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
index effdaa13e..b7d98a554 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_CLIENT_CSEQ \- set the RTSP client CSEQ number
+CURLOPT_RTSP_CLIENT_CSEQ \- RTSP client CSEQ number
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3 b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
index 1d4413a95..5dbc75a50 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_REQUEST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_REQUEST 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_REQUEST \- specify RTSP request
+CURLOPT_RTSP_REQUEST \- RTSP request
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
index 1aaa2529f..0386f79ef 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SERVER_CSEQ 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SERVER_CSEQ 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_SERVER_CSEQ \- set the RTSP server CSEQ number
+CURLOPT_RTSP_SERVER_CSEQ \- RTSP server CSEQ number
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
index a5fa3ed50..251bf6f86 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SESSION_ID 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SESSION_ID 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_SESSION_ID \- set RTSP session ID
+CURLOPT_RTSP_SESSION_ID \- RTSP session ID
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3 b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
index 753c27532..81123636e 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_STREAM_URI 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_STREAM_URI 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_STREAM_URI \- set RTSP stream URI
+CURLOPT_RTSP_STREAM_URI \- RTSP stream URI
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3 b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
index 48c63f080..0d22ba53c 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_TRANSPORT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_TRANSPORT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_RTSP_TRANSPORT \- set RTSP Transport: header
+CURLOPT_RTSP_TRANSPORT \- RTSP Transport: header
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SASL_AUTHZID.3 b/docs/libcurl/opts/CURLOPT_SASL_AUTHZID.3
index 1dcd46a83..a81184a8f 100644
--- a/docs/libcurl/opts/CURLOPT_SASL_AUTHZID.3
+++ b/docs/libcurl/opts/CURLOPT_SASL_AUTHZID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SASL_AUTHZID 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SASL_AUTHZID 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SASL_AUTHZID \- authorisation identity (identity to act as)
diff --git a/docs/libcurl/opts/CURLOPT_SASL_IR.3 b/docs/libcurl/opts/CURLOPT_SASL_IR.3
index 7242faa35..8415a15cd 100644
--- a/docs/libcurl/opts/CURLOPT_SASL_IR.3
+++ b/docs/libcurl/opts/CURLOPT_SASL_IR.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SASL_IR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SASL_IR 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SASL_IR \- enable sending initial response in first packet
+CURLOPT_SASL_IR \- send initial response in first packet
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SEEKDATA.3 b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
index 97a42f2f3..dc23b941a 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,20 +20,20 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SEEKDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SEEKDATA \- custom pointer passed to the seek callback
+CURLOPT_SEEKDATA \- pointer passed to the seek callback
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SEEKDATA, void *pointer);
.SH DESCRIPTION
Data \fIpointer\fP to pass to the seek callback function. If you use the
-\fICURLOPT_SEEKFUNCTION(3)\fP option, this is the pointer you'll get as
+\fICURLOPT_SEEKFUNCTION(3)\fP option, this is the pointer you will get as
input.
.SH DEFAULT
-If you don't set this, NULL is passed to the callback.
+If you do not set this, NULL is passed to the callback.
.SH PROTOCOLS
HTTP, FTP, SFTP
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
index 1bfd85364..32da7bcc4 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SEEKFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SEEKFUNCTION \- user callback for seeking in input stream
@@ -31,7 +31,7 @@ CURLOPT_SEEKFUNCTION \- user callback for seeking in input stream
/* These are the return codes for the seek callbacks */
#define CURL_SEEKFUNC_OK 0
#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */
-#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so
+#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking cannot be done, so
libcurl might try other means instead */
int seek_callback(void *userp, curl_off_t offset, int origin);
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
index b157095cf..3ae287066 100644
--- a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SERVICE_NAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SERVICE_NAME 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SERVICE_NAME \- authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SHARE.3 b/docs/libcurl/opts/CURLOPT_SHARE.3
index 3f7b4cd96..876a6604b 100644
--- a/docs/libcurl/opts/CURLOPT_SHARE.3
+++ b/docs/libcurl/opts/CURLOPT_SHARE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SHARE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SHARE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SHARE \- specify share handle to use
+CURLOPT_SHARE \- share handle to use
.SH SYNOPSIS
#include <curl/curl.h>
@@ -39,7 +39,7 @@ data. If the curl handles are used simultaneously in multiple threads, you
If you add a share that is set to share cookies, your easy handle will use
that cookie cache and get the cookie engine enabled. If you unshare an object
-that was using cookies (or change to another object that doesn't share
+that was using cookies (or change to another object that does not share
cookies), the easy handle will get its cookie engine disabled.
Data that the share object is not set to share will be dealt with the usual
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
index deeffc280..bd5622051 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SOCKOPTDATA \- custom pointer to pass to sockopt callback
+CURLOPT_SOCKOPTDATA \- pointer to pass to sockopt callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
index af256e84f..d9a6c0094 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SOCKOPTFUNCTION \- set callback for setting socket options
+CURLOPT_SOCKOPTFUNCTION \- callback for setting socket options
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -55,7 +55,7 @@ exact purpose for this particular socket:
\fICURLSOCKTYPE_IPCXN\fP for actively created connections or since 7.28.0
\fICURLSOCKTYPE_ACCEPT\fP for FTP when the connection was setup with PORT/EPSV
-(in earlier versions these sockets weren't passed to this callback).
+(in earlier versions these sockets were not passed to this callback).
Future versions of libcurl may support more purposes. libcurl passes the newly
created socket descriptor to the callback in the \fIcurlfd\fP parameter so
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
index 86efa977e..ff1f1c539 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_AUTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_AUTH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SOCKS5_AUTH \- set allowed methods for SOCKS5 proxy authentication
+CURLOPT_SOCKS5_AUTH \- methods for SOCKS5 proxy authentication
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
index 89cbbaa43..95c299e3d 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SOCKS5_GSSAPI_NEC \- set socks proxy gssapi negotiation protection
+CURLOPT_SOCKS5_GSSAPI_NEC \- socks proxy gssapi negotiation protection
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
index 79d2a4db7..9eae76ff1 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_GSSAPI_SERVICE \- SOCKS5 proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3 b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
index 4834a14b8..722901b81 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_AUTH_TYPES 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_AUTH_TYPES 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_AUTH_TYPES \- set desired auth types for SFTP and SCP
+CURLOPT_SSH_AUTH_TYPES \- auth types for SFTP and SCP
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3 b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
index 3ba3672fc..ddfa06d2d 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_COMPRESSION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_COMPRESSION 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_COMPRESSION \- enables compression / decompression of SSH traffic
+CURLOPT_SSH_COMPRESSION \- enable SSH compression
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
index ce9ac5fd3..f3661554f 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 \- checksum of SSH server public key
+CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 \- MD5 checksum of SSH server public key
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3 b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3
new file mode 100644
index 000000000..ee88e4e6f
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3
@@ -0,0 +1,61 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2021, 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.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_SSH_HOST_PUBLIC_KEY_SHA256 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 \- SHA256 hash of SSH server public key
+.SH SYNOPSIS
+.nf
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256,
+ char *sha256);
+.SH DESCRIPTION
+Pass a char * pointing to a string containing a Base64-encoded SHA256
+hash of the remote host's public key.
+The transfer will fail if the given hash does not match the hash the
+remote host provides.
+
+.SH DEFAULT
+NULL
+.SH PROTOCOLS
+SCP and SFTP
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "sftp://example.com/file");
+ curl_easy_setopt(curl, CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256,
+ "NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ=");
+ ret = curl_easy_perform(curl);
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.80.0
+Requires the libssh2 back-end.
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+CURLE_OUT_OF_MEMORY if there was insufficient heap space.
+.SH "SEE ALSO"
+.BR CURLOPT_SSH_PUBLIC_KEYFILE "(3), " CURLOPT_SSH_AUTH_TYPES "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
index 0f36a4e27..93df7a6aa 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_KEYDATA \- pointer to pass to the SSH key callback
+CURLOPT_SSH_KEYDATA \- pointer passed to the SSH key callback
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
index d4857e89c..82817de9f 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KEYFUNCTION \- callback for known host matching logic
@@ -32,7 +32,7 @@ enum curl_khstat {
CURLKHSTAT_FINE_ADD_TO_FILE,
CURLKHSTAT_FINE,
CURLKHSTAT_REJECT, /* reject the connection, return an error */
- CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right
+ CURLKHSTAT_DEFER, /* do not accept it, but we cannot answer right
now so this causes a CURLE_DEFER error but
otherwise the connection will be left intact
etc */
@@ -77,19 +77,19 @@ codes to tell libcurl how to act:
.IP CURLKHSTAT_FINE_REPLACE
The new host+key is accepted and libcurl will replace the old host+key into
the known_hosts file before continuing with the connection. This will also
-add the new host+key combo to the known_host pool kept in memory if it wasn't
+add the new host+key combo to the known_host pool kept in memory if it was not
already present there. The adding of data to the file is done by completely
replacing the file with a new copy, so the permissions of the file must allow
this. (Added in 7.73.0)
.IP CURLKHSTAT_FINE_ADD_TO_FILE
The host+key is accepted and libcurl will append it to the known_hosts file
before continuing with the connection. This will also add the host+key combo
-to the known_host pool kept in memory if it wasn't already present there. The
+to the known_host pool kept in memory if it was not already present there. The
adding of data to the file is done by completely replacing the file with a new
copy, so the permissions of the file must allow this.
.IP CURLKHSTAT_FINE
The host+key is accepted libcurl will continue with the connection. This will
-also add the host+key combo to the known_host pool kept in memory if it wasn't
+also add the host+key combo to the known_host pool kept in memory if it was not
already present there.
.IP CURLKHSTAT_REJECT
The host+key is rejected. libcurl will deny the connection to continue and it
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3 b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
index 1453f0846..d908f3969 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KNOWNHOSTS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KNOWNHOSTS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KNOWNHOSTS \- file name holding the SSH known hosts
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
index 64d8be468..c0657c369 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_PRIVATE_KEYFILE \- set private key file for SSH auth
+CURLOPT_SSH_PRIVATE_KEYFILE \- private key file for SSH auth
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
index f381e6aaa..3042e4deb 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSH_PUBLIC_KEYFILE \- set public key file for SSH auth
+CURLOPT_SSH_PUBLIC_KEYFILE \- public key file for SSH auth
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_SSLCERT.3
index 87068e9bf..a73e05fa1 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLCERT \- set SSL client certificate
+CURLOPT_SSLCERT \- SSL client certificate
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
index 66c6ccdce..dc5f8c7a7 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2015, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERTTYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERTTYPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLCERTTYPE \- specify type of the client SSL certificate
+CURLOPT_SSLCERTTYPE \- type of client SSL certificate
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.3 b/docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.3
index 348652cd7..6efdd2759 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERT_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERT_BLOB 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLCERT_BLOB \- SSL client certificate from memory blob
@@ -61,8 +61,8 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL, Secure
-Transport and Schannel backends.
+Added in 7.71.0. This option is supported by the OpenSSL, Secure Transport and
+Schannel backends.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
index d7802bcf7..86a5b29bc 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLENGINE \- set SSL engine identifier
+CURLOPT_SSLENGINE \- SSL engine identifier
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
index 025979e47..354402de1 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE_DEFAULT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE_DEFAULT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLENGINE_DEFAULT \- make SSL engine default
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_SSLKEY.3
index 8fc743156..079540b3f 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEY 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLKEY \- specify private keyfile for TLS and SSL client cert
+CURLOPT_SSLKEY \- private keyfile for TLS and SSL client cert
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
index 5202a8fce..137dc6f94 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEYTYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEYTYPE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLKEYTYPE \- set type of the private key file
+CURLOPT_SSLKEYTYPE \- type of the private key file
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.3 b/docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.3
index 8ee4a528d..0f36dd8cb 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEY_BLOB 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEY_BLOB 3 "October 25, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLKEY_BLOB \- private key for client cert from memory blob
@@ -68,7 +68,7 @@ if(curl) {
}
.fi
.SH AVAILABILITY
-Added in libcurl 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL backends.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/docs/libcurl/opts/CURLOPT_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
index 38c60d06b..164e2d5a3 100644
--- a/docs/libcurl/opts/CURLOPT_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLVERSION 3 "March 22, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLVERSION 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSLVERSION \- set preferred TLS/SSL version
+CURLOPT_SSLVERSION \- preferred TLS/SSL version
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
index 5a72874e8..12165a1e5 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CIPHER_LIST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CIPHER_LIST 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_CIPHER_LIST \- specify ciphers to use for TLS
+CURLOPT_SSL_CIPHER_LIST \- ciphers to use for TLS
.SH SYNOPSIS
#include <curl/curl.h>
@@ -35,21 +35,21 @@ it consists of one or more cipher strings separated by colons. Commas or
spaces are also acceptable separators but colons are normally used, \&!, \&-
and \&+ can be used as operators.
-For OpenSSL and GnuTLS valid examples of cipher lists include 'RC4-SHA',
-\'SHA1+DES\', 'TLSv1' and 'DEFAULT'. The default list is normally set when you
-compile OpenSSL.
+For OpenSSL and GnuTLS valid examples of cipher lists include \fBRC4-SHA\fP,
+\fBSHA1+DES\fP, \fBTLSv1\fP and \fBDEFAULT\fP. The default list is normally
+set when you compile OpenSSL.
-You'll find more details about cipher lists on this URL:
-
- https://curl.se/docs/ssl-ciphers.html
-
-For NSS, valid examples of cipher lists include 'rsa_rc4_128_md5',
-\'rsa_aes_128_sha\', etc. With NSS you don't add/remove ciphers. If one uses
+For NSS, valid examples of cipher lists include \fBrsa_rc4_128_md5\fP,
+\fBrsa_aes_128_sha\fP, etc. With NSS you do not add/remove ciphers. If one uses
this option then all known ciphers are disabled and only those passed in are
enabled.
-For WolfSSL, valid examples of cipher lists include
-\'ECDHE-RSA-RC4-SHA\', 'AES256-SHA:AES256-SHA256', etc.
+For WolfSSL, valid examples of cipher lists include \fBECDHE-RSA-RC4-SHA\fP,
+\fBAES256-SHA:AES256-SHA256\fP, etc.
+
+you will find more details about cipher lists on this URL:
+
+ https://curl.se/docs/ssl-ciphers.html
The application does not have to keep the string around after setting this
option.
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
index 807a79381..d3dc00ca1 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,17 +20,17 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_DATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_DATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_CTX_DATA \- custom pointer passed to ssl_ctx callback
+CURLOPT_SSL_CTX_DATA \- pointer passed to ssl_ctx callback
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_CTX_DATA, void *pointer);
.SH DESCRIPTION
Data \fIpointer\fP to pass to the ssl context callback set by the option
-\fICURLOPT_SSL_CTX_FUNCTION(3)\fP, this is the pointer you'll get as third
+\fICURLOPT_SSL_CTX_FUNCTION(3)\fP, this is the pointer you will get as third
parameter.
.SH DEFAULT
NULL
@@ -47,11 +47,11 @@ All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
{
X509_STORE *store;
- X509 *cert=NULL;
+ X509 *cert = NULL;
BIO *bio;
- char *mypem = (char *)parm;
+ char *mypem = parm;
/* get a BIO */
- bio=BIO_new_mem_buf(mypem, -1);
+ bio = BIO_new_mem_buf(mypem, -1);
/* use it to read the PEM formatted certificate from memory into an
* X509 structure that SSL can use
*/
@@ -60,10 +60,10 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
printf("PEM_read_bio_X509 failed...\\n");
/* get a pointer to the X509 certificate store (which may be empty) */
- store=SSL_CTX_get_cert_store((SSL_CTX *)sslctx);
+ store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx);
/* add our certificate to this store */
- if(X509_STORE_add_cert(store, cert)==0)
+ if(X509_STORE_add_cert(store, cert) == 0)
printf("error adding certificate\\n");
/* decrease reference counts */
@@ -89,20 +89,21 @@ int main(void)
"omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\\n"
"-----END CERTIFICATE-----\\n";
- rv=curl_global_init(CURL_GLOBAL_ALL);
- ch=curl_easy_init();
- rv=curl_easy_setopt(ch, CURLOPT_SSLCERTTYPE, "PEM");
- rv=curl_easy_setopt(ch, CURLOPT_SSL_VERIFYPEER, 1L);
- rv=curl_easy_setopt(ch, CURLOPT_URL, "https://www.example.com/");
+ curl_global_init(CURL_GLOBAL_ALL);
+ ch = curl_easy_init();
+
+ curl_easy_setopt(ch, CURLOPT_SSLCERTTYPE, "PEM");
+ curl_easy_setopt(ch, CURLOPT_SSL_VERIFYPEER, 1L);
+ curl_easy_setopt(ch, CURLOPT_URL, "https://www.example.com/");
/* Retrieve page using cacerts' certificate -> will succeed
* load the certificate by installing a function doing the necessary
* "modifications" to the SSL CONTEXT just before link init
*/
- rv=curl_easy_setopt(ch, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function);
- rv=curl_easy_setopt(ch, CURLOPT_SSL_CTX_DATA, mypem);
- rv=curl_easy_perform(ch);
- if(rv==CURLE_OK)
+ curl_easy_setopt(ch, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function);
+ curl_easy_setopt(ch, CURLOPT_SSL_CTX_DATA, mypem);
+ rv = curl_easy_perform(ch);
+ if(!rv)
printf("*** transfer succeeded ***\\n");
else
printf("*** transfer failed ***\\n");
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
index a0bc569e3..13bc92148 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_FUNCTION 3 "July 16, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_FUNCTION 3 "July 26, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CTX_FUNCTION \- SSL context callback for OpenSSL, wolfSSL or mbedTLS
@@ -76,9 +76,82 @@ NULL
.SH PROTOCOLS
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
.SH EXAMPLE
-See cacertinmem.c in docs/examples directory for usage example.
+.nf
+/* OpenSSL specific */
+
+#include <openssl/ssl.h>
+#include <curl/curl.h>
+#include <stdio.h>
+
+static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
+{
+ X509_STORE *store;
+ X509 *cert = NULL;
+ BIO *bio;
+ char *mypem = parm;
+ /* get a BIO */
+ bio = BIO_new_mem_buf(mypem, -1);
+ /* use it to read the PEM formatted certificate from memory into an
+ * X509 structure that SSL can use
+ */
+ PEM_read_bio_X509(bio, &cert, 0, NULL);
+ if(cert == NULL)
+ printf("PEM_read_bio_X509 failed...\\n");
+
+ /* get a pointer to the X509 certificate store (which may be empty) */
+ store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx);
+
+ /* add our certificate to this store */
+ if(X509_STORE_add_cert(store, cert) == 0)
+ printf("error adding certificate\\n");
+
+ /* decrease reference counts */
+ X509_free(cert);
+ BIO_free(bio);
+
+ /* all set to go */
+ return CURLE_OK;
+}
+
+int main(void)
+{
+ CURL * ch;
+ CURLcode rv;
+ char *mypem = /* example CA cert PEM - shortened */
+ "-----BEGIN CERTIFICATE-----\\n"
+ "MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\\n"
+ "IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\\n"
+ "IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\\n"
+ "Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\\n"
+ "GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\\n"
+ "zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\\n"
+ "omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\\n"
+ "-----END CERTIFICATE-----\\n";
+
+ curl_global_init(CURL_GLOBAL_ALL);
+ ch = curl_easy_init();
+
+ curl_easy_setopt(ch, CURLOPT_SSLCERTTYPE, "PEM");
+ curl_easy_setopt(ch, CURLOPT_SSL_VERIFYPEER, 1L);
+ curl_easy_setopt(ch, CURLOPT_URL, "https://www.example.com/");
+
+ /* Retrieve page using cacerts' certificate -> will succeed
+ * load the certificate by installing a function doing the necessary
+ * "modifications" to the SSL CONTEXT just before link init
+ */
+ curl_easy_setopt(ch, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function);
+ curl_easy_setopt(ch, CURLOPT_SSL_CTX_DATA, mypem);
+ rv = curl_easy_perform(ch);
+ if(!rv)
+ printf("*** transfer succeeded ***\\n");
+ else
+ printf("*** transfer failed ***\\n");
-https://curl.se/libcurl/c/cacertinmem.html
+ curl_easy_cleanup(ch);
+ curl_global_cleanup();
+ return rv;
+}
+.fi
.SH AVAILABILITY
Added in 7.11.0 for OpenSSL, in 7.42.0 for wolfSSL and in 7.54.0 for
mbedTLS. Other SSL backends are not supported.
diff --git a/docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.3 b/docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.3
index dca1a885c..a2bb34702 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_EC_CURVES 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_EC_CURVES 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_EC_CURVES \- set key exchange curves
+CURLOPT_SSL_EC_CURVES \- key exchange curves
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
index d4cce506a..15f8369b9 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_ALPN 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_ALPN 3 "September 19, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_ENABLE_ALPN \- enable ALPN
+CURLOPT_SSL_ENABLE_ALPN \- Application Layer Protocol Negotiation
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
index 276c4d694..0314ec871 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_NPN 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_NPN 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_ENABLE_NPN \- enable NPN
+CURLOPT_SSL_ENABLE_NPN \- use NPN
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3 b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
index 0b2f0271f..01eea8464 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_FALSESTART 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_FALSESTART 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_FALSESTART \- enable TLS false start
+CURLOPT_SSL_FALSESTART \- TLS false start
.SH SYNOPSIS
#include <curl/curl.h>
@@ -54,3 +54,5 @@ Secure Transport (on iOS 7.0 or later, or OS X 10.9 or later) TLS backends.
.SH RETURN VALUE
Returns CURLE_OK if false start is supported by the SSL backend, otherwise
returns CURLE_NOT_BUILT_IN.
+.SH SEE ALSO
+.BR CURLOPT_TCP_FASTOPEN "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
index a8cfb31be..9c78df261 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_OPTIONS 3 "February 27, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_OPTIONS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_OPTIONS \- set SSL behavior options
+CURLOPT_SSL_OPTIONS \- SSL behavior options
.SH SYNOPSIS
#include <curl/curl.h>
@@ -33,7 +33,7 @@ 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,
+SSL3 and TLS1.0 protocols. If this option is not 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
@@ -43,7 +43,7 @@ supported for Secure Transport, NSS and OpenSSL.
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 block list which it seems can't be bypassed. (Added in
+Untrusted Publishers block list which it seems cannot be bypassed. (Added in
7.44.0)
.IP CURLSSLOPT_NO_PARTIALCHAIN
Tells libcurl to not accept "partial" certificate chains, which it otherwise
diff --git a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3 b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
index 3601e644e..9c6c5de01 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_SESSIONID_CACHE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_SESSIONID_CACHE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SSL_SESSIONID_CACHE \- enable/disable use of the SSL session-ID cache
+CURLOPT_SSL_SESSIONID_CACHE \- use the SSL session-ID cache
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
index d76387b4f..cbdd856b7 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYHOST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYHOST 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYHOST \- verify the certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
index 8676e6436..60b8725aa 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYPEER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYPEER 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYPEER \- verify the peer's SSL certificate
@@ -32,7 +32,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYPEER, long verify);
Pass a long as parameter to enable or disable.
This option determines whether curl verifies the authenticity of the peer's
-certificate. A value of 1 means curl verifies; 0 (zero) means it doesn't.
+certificate. A value of 1 means curl verifies; 0 (zero) means it does not.
When negotiating a TLS or SSL connection, the server sends a certificate
indicating its identity. Curl verifies whether the certificate is authentic,
@@ -50,7 +50,7 @@ option is zero, the peer certificate verification succeeds regardless.
Authenticating the certificate is not enough to be sure about the server. You
typically also want to ensure that the server is the server you mean to be
talking to. Use \fICURLOPT_SSL_VERIFYHOST(3)\fP for that. The check that the
-host name in the certificate is valid for the host name you're connecting to
+host name in the certificate is valid for the host name you are connecting to
is done independently of the \fICURLOPT_SSL_VERIFYPEER(3)\fP option.
WARNING: disabling verification of the certificate allows bad guys to
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
index 9c8f0bde9..5da44d1af 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYSTATUS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYSTATUS 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYSTATUS \- verify the certificate's status
diff --git a/docs/libcurl/opts/CURLOPT_STDERR.3 b/docs/libcurl/opts/CURLOPT_STDERR.3
index 1a599ed5f..09849258f 100644
--- a/docs/libcurl/opts/CURLOPT_STDERR.3
+++ b/docs/libcurl/opts/CURLOPT_STDERR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STDERR 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_STDERR 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STDERR \- redirect stderr to another stream
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
index e0a1137ab..7ae9bd40f 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_STREAM_DEPENDS \- set stream this transfer depends on
+CURLOPT_STREAM_DEPENDS \- stream this transfer depends on
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
index c88208b29..edd42316d 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS_E 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS_E 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_STREAM_DEPENDS_E \- set stream this transfer depends on exclusively
+CURLOPT_STREAM_DEPENDS_E \- stream this transfer depends on exclusively
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3 b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
index cce061080..b3f1c510f 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_WEIGHT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_WEIGHT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_STREAM_WEIGHT \- set numerical stream weight
+CURLOPT_STREAM_WEIGHT \- numerical stream weight
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3 b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
index c4495ae44..ac32b3eaa 100644
--- a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
+++ b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_SUPPRESS_CONNECT_HEADERS \- Suppress proxy CONNECT response headers from user callbacks
+CURLOPT_SUPPRESS_CONNECT_HEADERS \- suppress proxy CONNECT response headers from user callbacks
.SH SYNOPSIS
.nf
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3 b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
index 13c676f0c..d4c003158 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_FASTOPEN 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_FASTOPEN 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TCP_FASTOPEN \- enable TCP Fast Open
+CURLOPT_TCP_FASTOPEN \- TCP Fast Open
.SH SYNOPSIS
#include <curl/curl.h>
@@ -53,3 +53,5 @@ El Capitan.
.SH RETURN VALUE
Returns CURLE_OK if fast open is supported by the operating system, otherwise
returns CURLE_NOT_BUILT_IN.
+.SH SEE ALSO
+.BR CURLOPT_SSL_FALSESTART "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
index cb270f0f6..384f2b2fc 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPALIVE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPALIVE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TCP_KEEPALIVE \- enable TCP keep-alive probing
+CURLOPT_TCP_KEEPALIVE \- TCP keep-alive probing
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
index b56eb7647..1306cf64c 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPIDLE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPIDLE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TCP_KEEPIDLE \- set TCP keep-alive idle time wait
+CURLOPT_TCP_KEEPIDLE \- TCP keep-alive idle time wait
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
index 44b4871e5..1a8072068 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPINTVL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPINTVL 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TCP_KEEPINTVL \- set TCP keep-alive interval
+CURLOPT_TCP_KEEPINTVL \- TCP keep-alive interval
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3 b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
index 1868fb287..23efa2eb2 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_NODELAY 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_NODELAY 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TCP_NODELAY \- set the TCP_NODELAY option
+CURLOPT_TCP_NODELAY \- the TCP_NODELAY option
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3 b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
index a61e848cc..fe1b07dd8 100644
--- a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TELNETOPTIONS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TELNETOPTIONS 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TELNETOPTIONS \- custom telnet options
+CURLOPT_TELNETOPTIONS \- set of telnet options
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3 b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
index 6670f0103..ec96f0f58 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_BLKSIZE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_BLKSIZE 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TFTP_BLKSIZE \- TFTP block size
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
index 7c2eb0dba..243b88abf 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_NO_OPTIONS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_NO_OPTIONS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TFTP_NO_OPTIONS \- Do not send TFTP options requests.
+CURLOPT_TFTP_NO_OPTIONS \- send no TFTP options requests
.SH SYNOPSIS
#include <curl/curl.h>
@@ -70,3 +70,5 @@ if(curl) {
Added in 7.48.0
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH SEE ALSO
+.BR CURLOPT_TFTP_BLKSIZE "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3 b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
index 5e9735429..1f0d8bbb5 100644
--- a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
+++ b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMECONDITION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMECONDITION 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMECONDITION \- select condition for a time request
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
index 07321ba61..a39a82be7 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TIMEOUT \- set maximum time the request is allowed to take
+CURLOPT_TIMEOUT \- maximum time the transfer is allowed to complete
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
index 5d61a8ff9..088515a38 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT_MS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TIMEOUT_MS \- set maximum time the request is allowed to take
+CURLOPT_TIMEOUT_MS \- maximum time the transfer is allowed to complete
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
index 8bf177f99..134469cce 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEVALUE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEVALUE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TIMEVALUE \- set time value for conditional
+CURLOPT_TIMEVALUE \- time value for conditional
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
index 5827c8d4b..421211abe 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEVALUE_LARGE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEVALUE_LARGE 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TIMEVALUE_LARGE \- set time value for conditional
+CURLOPT_TIMEVALUE_LARGE \- time value for conditional
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3 b/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
index 0dc89f2ad..d59b4a47f 100644
--- a/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
+++ b/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLS13_CIPHERS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TLS13_CIPHERS 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TLS13_CIPHERS \- specify ciphers suites to use for TLS 1.3
+CURLOPT_TLS13_CIPHERS \- ciphers suites to use for TLS 1.3
.SH SYNOPSIS
#include <curl/curl.h>
@@ -33,7 +33,7 @@ Pass a char *, pointing to a null-terminated string holding the list of cipher
suites to use for the TLS 1.3 connection. The list must be syntactically
correct, it consists of one or more cipher suite strings separated by colons.
-You'll find more details about cipher lists on this URL:
+you will find more details about cipher lists on this URL:
https://curl.se/docs/ssl-ciphers.html
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
index ba65dc04a..ba6eca4df 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_PASSWORD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_PASSWORD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_PASSWORD \- password to use for TLS authentication
@@ -37,7 +37,7 @@ to use for the TLS authentication method specified with the
The application does not have to keep the string around after setting this
option.
-This feature relies in TLS SRP which doesn't work with TLS 1.3.
+This feature relies in TLS SRP which does not work with TLS 1.3.
.SH DEFAULT
NULL
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
index fdcfb7efc..d3e908b26 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_TYPE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_TYPE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TLSAUTH_TYPE \- set TLS authentication methods
+CURLOPT_TLSAUTH_TYPE \- TLS authentication methods
.SH SYNOPSIS
#include <curl/curl.h>
@@ -42,7 +42,7 @@ options.
The application does not have to keep the string around after setting this
option.
-TLS SRP doesn't work with TLS 1.3.
+TLS SRP does not work with TLS 1.3.
.SH DEFAULT
blank
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
index 1b3f383c1..aa14ebcf6 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_USERNAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_USERNAME 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_USERNAME \- user name to use for TLS authentication
@@ -37,7 +37,7 @@ to use for the TLS authentication method specified with the
The application does not have to keep the string around after setting this
option.
-This feature relies in TLS SRP which doesn't work with TLS 1.3.
+This feature relies in TLS SRP which does not work with TLS 1.3.
.SH DEFAULT
NULL
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_TRAILERDATA.3 b/docs/libcurl/opts/CURLOPT_TRAILERDATA.3
index 1d395daa9..19c9ac1ea 100644
--- a/docs/libcurl/opts/CURLOPT_TRAILERDATA.3
+++ b/docs/libcurl/opts/CURLOPT_TRAILERDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,15 +20,15 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRAILERDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TRAILERDATA 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TRAILERDATA \- Custom pointer passed to the trailing headers callback
+CURLOPT_TRAILERDATA \- pointer passed to trailing headers callback
.SH SYNOPSIS
#include <curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TRAILERDATA, void *userdata);
-.SH DESCRIPTION:
+.SH DESCRIPTION
Data pointer to be passed to the HTTP trailer callback function.
.SH DEFAULT
NULL
@@ -46,5 +46,7 @@ curl_easy_setopt(hndl, CURLOPT_TRAILERDATA, &data);
A more complete example can be found in examples/http_trailers.html
.SH AVAILABILITY
This option was added in curl 7.64.0 and is present if HTTP support is enabled
+.SH RETURN VALUE
+Returns CURLE_OK.
.SH "SEE ALSO"
.BR CURLOPT_TRAILERFUNCTION "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.3 b/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.3
index 1b521cf13..c8d8d647f 100644
--- a/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRAILERFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TRAILERFUNCTION 3 "October 26, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_TRAILERFUNCTION \- Set callback for sending trailing headers
+CURLOPT_TRAILERFUNCTION \- callback for sending trailing headers
.SH SYNOPSIS
#include <curl.h>
@@ -67,7 +67,7 @@ HTTP
static int trailer_cb(struct curl_slist **tr, void *data)
{
/* libcurl will free the list */
- tr = curl_slist_append(*tr, "My-super-awesome-trailer: trailer-stuff");
+ *tr = curl_slist_append(*tr, "My-super-awesome-trailer: trailer-stuff");
return CURL_TRAILERFUNC_OK;
}
@@ -98,5 +98,7 @@ if(curl) {
}
.SH AVAILABILITY
This option was added in curl 7.64.0 and is present if HTTP support is enabled
+.SH RETURN VALUE
+Returns CURLE_OK.
.SH "SEE ALSO"
.BR CURLOPT_TRAILERDATA "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3 b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
index 2ef66a8e0..4e1c258e4 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFERTEXT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFERTEXT 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFERTEXT \- request a text based transfer for FTP
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3 b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
index 630c2d448..2b839e88b 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFER_ENCODING 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFER_ENCODING 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFER_ENCODING \- ask for HTTP Transfer Encoding
diff --git a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3 b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
index b8c6f0b2c..a37548f36 100644
--- a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
+++ b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNIX_SOCKET_PATH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_UNIX_SOCKET_PATH 3 "October 27, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_UNIX_SOCKET_PATH \- set Unix domain socket
+CURLOPT_UNIX_SOCKET_PATH \- Unix domain socket
.SH SYNOPSIS
#include <curl/curl.h>
@@ -41,42 +41,41 @@ curl does not need to resolve the DNS hostname in the URL.
The maximum path length on Cygwin, Linux and Solaris is 107. On other platforms
it might be even less.
-Proxy and TCP options such as
-.BR CURLOPT_TCP_NODELAY "(3)
-are not supported. Proxy options such as
-.BR CURLOPT_PROXY "(3)
-have no effect either as these are TCP-oriented, and asking a proxy server to
-connect to a certain Unix domain socket is not possible.
+Proxy and TCP options such as \fICURLOPT_TCP_NODELAY(3)\fP are not
+supported. Proxy options such as \fICURLOPT_PROXY(3)\fP have no effect either
+as these are TCP-oriented, and asking a proxy server to connect to a certain
+Unix domain socket is not possible.
The application does not have to keep the string around after setting this
option.
.SH DEFAULT
Default is NULL, meaning that no Unix domain sockets are used.
.SH PROTOCOLS
-All protocols except for file:// and FTP are supported in theory. HTTP, IMAP,
+All protocols except for FILE and FTP are supported in theory. HTTP, IMAP,
POP3 and SMTP should in particular work (including their SSL/TLS variants).
.SH EXAMPLE
-Given that you have an nginx server running, listening on /tmp/nginx.sock, you
+Given that you have an HTTP server running listening on /tmp/httpd.sock, you
can request an HTTP resource with:
.nf
- curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, "/tmp/nginx.sock");
- curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/");
+ curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, "/tmp/httpd.sock");
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/");
.fi
-If you are on Linux and somehow have a need for paths larger than 107 bytes, you
-could use the proc filesystem to bypass the limitation:
+If you are on Linux and somehow have a need for paths larger than 107 bytes,
+you could use the proc filesystem to bypass the limitation:
.nf
- int dirfd = open(long_directory_path_to_socket, O_DIRECTORY | O_RDONLY);
- char path[108];
- snprintf(path, sizeof(path), "/proc/self/fd/%d/nginx.sock", dirfd);
- curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, path);
- /* Be sure to keep dirfd valid until you discard the handle */
+ int dirfd = open(long_directory_path_to_socket, O_DIRECTORY | O_RDONLY);
+ char path[108];
+ snprintf(path, sizeof(path), "/proc/self/fd/%d/httpd.sock", dirfd);
+ curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, path);
+ /* Be sure to keep dirfd valid until you discard the handle */
.fi
.SH AVAILABILITY
-Since 7.40.0.
+Added in 7.40.0.
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
+.BR CURLOPT_ABSTRACT_UNIX_SOCKET "(3), "
.BR CURLOPT_OPENSOCKETFUNCTION "(3), " unix "(7), "
diff --git a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3 b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
index 2cc20d13c..91d6d36c9 100644
--- a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNRESTRICTED_AUTH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_UNRESTRICTED_AUTH 3 "November 04, 2020" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UNRESTRICTED_AUTH \- send credentials to other hosts too
diff --git a/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3 b/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3
index 969d1f33c..0d14d4245 100644
--- a/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3
+++ b/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UPKEEP_INTERVAL_MS 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_UPKEEP_INTERVAL_MS 3 "September 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UPKEEP_INTERVAL_MS \- connection upkeep interval
@@ -43,6 +43,8 @@ is called, an HTTP/2 PING frame is sent on the connection.
.SH DEFAULT
CURL_UPKEEP_INTERVAL_DEFAULT (currently defined as 60000L, which is 60 seconds)
+.SH PROTOCOLS
+All
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
@@ -72,3 +74,6 @@ if(curl) {
Added in 7.62.0
.SH RETURN VALUE
Returns CURLE_OK
+.SH SEE ALSO
+.BR CURLOPT_TCP_KEEPALIVE "(3), "
+
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD.3 b/docs/libcurl/opts/CURLOPT_UPLOAD.3
index 5c24e6a4e..f28f1a38a 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD.3
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UPLOAD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_UPLOAD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_UPLOAD \- enable data upload
+CURLOPT_UPLOAD \- data upload
.SH SYNOPSIS
#include <curl/curl.h>
@@ -66,7 +66,7 @@ if(curl) {
/* Set the size of the file to upload */
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)fsize);
- /* Now run off and do what you've been told! */
+ /* Now run off and do what you have been told! */
curl_easy_perform(curl);
}
.fi
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3 b/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3
index ac6505e71..48759c2cc 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UPLOAD_BUFFERSIZE 3 "May 06, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_UPLOAD_BUFFERSIZE 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_UPLOAD_BUFFERSIZE \- set preferred upload buffer size
+CURLOPT_UPLOAD_BUFFERSIZE \- upload buffer size
.SH SYNOPSIS
#include <curl/curl.h>
@@ -43,7 +43,7 @@ allowed to be set is 2 megabytes. The minimum buffer size allowed to be set is
16 kilobytes.
Since curl 7.61.1 the upload buffer is allocated on-demand - so if the handle
-isn't used for upload, this buffer will not be allocated at all.
+is not used for upload, this buffer will not be allocated at all.
DO NOT set this option on a handle that is currently used for an active
transfer as that may lead to unintended consequences.
diff --git a/docs/libcurl/opts/CURLOPT_URL.3 b/docs/libcurl/opts/CURLOPT_URL.3
index 2423d79ad..38654e067 100644
--- a/docs/libcurl/opts/CURLOPT_URL.3
+++ b/docs/libcurl/opts/CURLOPT_URL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_URL 3 "June 15, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_URL 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_URL \- provide the URL to use in the request
+CURLOPT_URL \- URL for this transfer
.SH SYNOPSIS
#include <curl/curl.h>
@@ -37,7 +37,7 @@ scheme://host:port/path
For a greater explanation of the format please see RFC3986.
-libcurl doesn't validate the syntax or use this variable until the transfer is
+libcurl does not validate the syntax or use this variable until the transfer is
issued. Even if you set a crazy value here, \fIcurl_easy_setopt(3)\fP will
still return \fICURLE_OK\fP.
@@ -78,7 +78,7 @@ UTF-8 (when winidn is used; or a Windows Unicode build using libidn2).
If libcurl is built without IDN support, the server name is used exactly as
specified when passed to the name resolver functions.
.SH DEFAULT
-There is no default URL. If this option isn't set, no transfer can be
+There is no default URL. If this option is not set, no transfer can be
performed.
.SH SECURITY CONCERNS
Applications may at times find it convenient to allow users to specify URLs
@@ -89,8 +89,8 @@ security concerns:
If you have an application that runs as or in a server application, getting an
unfiltered URL can easily trick your application to access a local resource
-instead of a remote. Protecting yourself against localhost accesses is very
-hard when accepting user provided URLs.
+instead of a remote. Protecting yourself against localhost accesses is hard
+when accepting user provided URLs.
Such custom URLs can also access other ports than you planned as port numbers
are part of the regular URL format. The combination of a local host and a
@@ -120,7 +120,7 @@ POP3 and SMTP were added in 7.31.0
Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
heap space.
-Note that \fIcurl_easy_setopt(3)\fP won't actually parse the given string so
+Note that \fIcurl_easy_setopt(3)\fP will not actually parse the given string so
given a bad URL, it will not be detected until \fIcurl_easy_perform(3)\fP or
similar is called.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLOPT_USERAGENT.3 b/docs/libcurl/opts/CURLOPT_USERAGENT.3
index 2c9a80ef4..a2b355f9b 100644
--- a/docs/libcurl/opts/CURLOPT_USERAGENT.3
+++ b/docs/libcurl/opts/CURLOPT_USERAGENT.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERAGENT 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_USERAGENT 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_USERAGENT \- set HTTP user-agent header
+CURLOPT_USERAGENT \- HTTP user-agent header
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/CURLOPT_USERNAME.3 b/docs/libcurl/opts/CURLOPT_USERNAME.3
index 9ced4f173..8dd29bc14 100644
--- a/docs/libcurl/opts/CURLOPT_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERNAME 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_USERNAME 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERNAME \- user name to use in authentication
@@ -40,7 +40,7 @@ authentication. You should not use this option together with the (older)
When using Kerberos V5 authentication with a Windows based server, you should
include the domain name in order for the server to successfully obtain a
-Kerberos Ticket. If you don't then the initial part of the authentication
+Kerberos Ticket. If you do not then the initial part of the authentication
handshake may fail.
When using NTLM, the user name can be specified simply as the user name
diff --git a/docs/libcurl/opts/CURLOPT_USERPWD.3 b/docs/libcurl/opts/CURLOPT_USERPWD.3
index fe89d8490..faa15cf6d 100644
--- a/docs/libcurl/opts/CURLOPT_USERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_USERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERPWD 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_USERPWD 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERPWD \- user name and password to use in authentication
@@ -34,7 +34,7 @@ for the connection. The format of which is: [user name]:[password].
When using Kerberos V5 authentication with a Windows based server, you should
specify the user name part with the domain name in order for the server to
-successfully obtain a Kerberos Ticket. If you don't then the initial part of
+successfully obtain a Kerberos Ticket. If you do not then the initial part of
the authentication handshake may fail.
When using NTLM, the user name can be specified simply as the user name
diff --git a/docs/libcurl/opts/CURLOPT_USE_SSL.3 b/docs/libcurl/opts/CURLOPT_USE_SSL.3
index 3bc98a2a7..cc40cf093 100644
--- a/docs/libcurl/opts/CURLOPT_USE_SSL.3
+++ b/docs/libcurl/opts/CURLOPT_USE_SSL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USE_SSL 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_USE_SSL 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USE_SSL \- request using SSL / TLS for the transfer
@@ -37,7 +37,7 @@ using the STARTTLS command.
This is for enabling SSL/TLS when you use FTP, SMTP, POP3, IMAP etc.
.IP CURLUSESSL_NONE
-Don't attempt to use SSL.
+do not attempt to use SSL.
.IP CURLUSESSL_TRY
Try using SSL, proceed as normal otherwise.
.IP CURLUSESSL_CONTROL
diff --git a/docs/libcurl/opts/CURLOPT_VERBOSE.3 b/docs/libcurl/opts/CURLOPT_VERBOSE.3
index b9125c111..21f35b50d 100644
--- a/docs/libcurl/opts/CURLOPT_VERBOSE.3
+++ b/docs/libcurl/opts/CURLOPT_VERBOSE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,17 +20,17 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_VERBOSE 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_VERBOSE 3 "November 01, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_VERBOSE \- set verbose mode on/off
+CURLOPT_VERBOSE \- verbose mode
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_VERBOSE, long onoff);
.SH DESCRIPTION
Set the \fIonoff\fP parameter to 1 to make the library display a lot of
-verbose information about its operations on this \fIhandle\fP. Very useful for
+verbose information about its operations on this \fIhandle\fP. Useful for
libcurl and/or protocol debugging and understanding. The verbose information
will be sent to stderr, or the stream set with \fICURLOPT_STDERR(3)\fP.
diff --git a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3 b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
index 91b9a9773..ebc9c2794 100644
--- a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
+++ b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WILDCARDMATCH 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_WILDCARDMATCH 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_WILDCARDMATCH \- enable directory wildcard transfers
+CURLOPT_WILDCARDMATCH \- directory wildcard transfers
.SH SYNOPSIS
#include <curl/curl.h>
@@ -79,7 +79,21 @@ Using the rules above, a file name pattern can be constructed:
.SH PROTOCOLS
This feature is only supported for FTP download.
.SH EXAMPLE
-See https://curl.se/libcurl/c/ftp-wildcard.html
+.nf
+ /* initialization of easy handle */
+ handle = curl_easy_init();
+
+ /* turn on wildcard matching */
+ curl_easy_setopt(handle, CURLOPT_WILDCARDMATCH, 1L);
+
+ /* callback is called before download of concrete file started */
+ curl_easy_setopt(handle, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
+
+ /* callback is called after data from the file have been transferred */
+ curl_easy_setopt(handle, CURLOPT_CHUNK_END_FUNCTION, file_is_downloaded);
+
+ /* See more on https://curl.se/libcurl/c/ftp-wildcard.html */
+.fi
.SH AVAILABILITY
Added in 7.21.0
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_WRITEDATA.3 b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
index adc5b5193..feb8bfcd7 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,25 +20,25 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEDATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_WRITEDATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_WRITEDATA \- custom pointer passed to the write callback
+CURLOPT_WRITEDATA \- pointer passed to the write callback
.SH SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WRITEDATA, void *pointer);
.SH DESCRIPTION
A data \fIpointer\fP to pass to the write callback. If you use the
-\fICURLOPT_WRITEFUNCTION(3)\fP option, this is the pointer you'll get in that
-callback's 4th argument. If you don't use a write callback, you must make
+\fICURLOPT_WRITEFUNCTION(3)\fP option, this is the pointer you will get in that
+callback's 4th argument. If you do not use a write callback, you must make
\fIpointer\fP a 'FILE *' (cast to 'void *') as libcurl will pass this to
\fIfwrite(3)\fP when writing data.
The internal \fICURLOPT_WRITEFUNCTION(3)\fP will write the data to the FILE *
-given with this option, or to stdout if this option hasn't been set.
+given with this option, or to stdout if this option has not been set.
-If you're using libcurl as a win32 DLL, you \fBMUST\fP use a
+If you are using libcurl as a win32 DLL, you \fBMUST\fP use a
\fICURLOPT_WRITEFUNCTION(3)\fP if you set this option or you will experience
crashes.
.SH DEFAULT
diff --git a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
index facfecae5..c274bbb24 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEFUNCTION 3 "June 09, 2021" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_WRITEFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_WRITEFUNCTION \- set callback for writing received data
+CURLOPT_WRITEFUNCTION \- callback for writing received data
.SH SYNOPSIS
.nf
#include <curl/curl.h>
@@ -58,7 +58,7 @@ The data passed to this function will not be null-terminated!
Set the \fIuserdata\fP argument with the \fICURLOPT_WRITEDATA(3)\fP option.
Your callback should return the number of bytes actually taken care of. If
-that amount differs from the amount passed to your callback function, it'll
+that amount differs from the amount passed to your callback function, it will
signal an error condition to the library. This will cause the transfer to get
aborted and the libcurl function used will return \fICURLE_WRITE_ERROR\fP.
@@ -69,16 +69,12 @@ Set this option to NULL to get the internal default function used instead of
your callback. The internal default function will write the data to the FILE *
given with \fICURLOPT_WRITEDATA(3)\fP.
-This option doesn't enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
+This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to
do that.
.SH DEFAULT
libcurl will use 'fwrite' as a callback by default.
.SH PROTOCOLS
For all protocols
-.SH AVAILABILITY
-Support for the CURL_WRITEFUNC_PAUSE return code was added in version 7.18.0.
-.SH RETURN VALUE
-This will return CURLE_OK.
.SH EXAMPLE
.nf
struct memory {
@@ -111,6 +107,10 @@ This will return CURLE_OK.
/* we pass our 'chunk' struct to the callback function */
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
.fi
+.SH AVAILABILITY
+Support for the CURL_WRITEFUNC_PAUSE return code was added in version 7.18.0.
+.SH RETURN VALUE
+This will return CURLE_OK.
.SH "SEE ALSO"
.BR CURLOPT_WRITEDATA "(3), " CURLOPT_READFUNCTION "(3), "
.BR CURLOPT_HEADERFUNCTION "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3 b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
index 2f378a823..d082dff84 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFODATA 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFODATA 3 "November 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_XFERINFODATA \- custom pointer passed to the progress callback
+CURLOPT_XFERINFODATA \- pointer passed to the progress callback
.SH SYNOPSIS
#include <curl/curl.h>
@@ -38,7 +38,32 @@ The default value of this parameter is NULL.
.SH PROTOCOLS
All
.SH EXAMPLE
-https://curl.se/libcurl/c/progressfunc.html
+.nf
+ struct progress {
+ char *private;
+ size_t size;
+ };
+
+ static size_t progress_callback(void *clientp,
+ curl_off_t dltotal,
+ curl_off_t dlnow,
+ curl_off_t ultotal,
+ curl_off_t ulnow)
+ {
+ struct memory *progress = (struct progress *)userp;
+
+ /* use the values */
+
+ return 0; /* all is good */
+ }
+
+ struct progress data;
+
+ /* pass struct to callback */
+ curl_easy_setopt(curl_handle, CURLOPT_XFERINFODATA, &data);
+
+ curl_easy_setopt(curl_handle, CURLOPT_XFERINFOFUNCTION, progress_callback);
+.fi
.SH AVAILABILITY
Added in 7.32.0
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3 b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
index 267ec75f0..6478e7c64 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFOFUNCTION 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFOFUNCTION 3 "October 31, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_XFERINFOFUNCTION \- callback to progress meter function
+CURLOPT_XFERINFOFUNCTION \- progress meter callback
.SH SYNOPSIS
#include <curl/curl.h>
@@ -39,7 +39,7 @@ Pass a pointer to your callback function, which should match the prototype
shown above.
This function gets called by libcurl instead of its internal equivalent with a
-frequent interval. While data is being transferred it will be called very
+frequent interval. While data is being transferred it will be called
frequently, and during slow periods like when nothing is being transferred it
can slow down to about one call per second.
@@ -71,12 +71,37 @@ function that performs transfers.
\fICURLOPT_NOPROGRESS(3)\fP must be set to 0 to make this function actually
get called.
.SH DEFAULT
-By default, libcurl has an internal progress meter. That's rarely wanted by
+By default, libcurl has an internal progress meter. That is rarely wanted by
users.
.SH PROTOCOLS
All
.SH EXAMPLE
-https://curl.se/libcurl/c/progressfunc.html
+.nf
+ struct progress {
+ char *private;
+ size_t size;
+ };
+
+ static size_t progress_callback(void *clientp,
+ curl_off_t dltotal,
+ curl_off_t dlnow,
+ curl_off_t ultotal,
+ curl_off_t ulnow)
+ {
+ struct memory *progress = (struct progress *)userp;
+
+ /* use the values */
+
+ return 0; /* all is good */
+ }
+
+ struct progress data;
+
+ /* pass struct to callback */
+ curl_easy_setopt(curl_handle, CURLOPT_XFERINFODATA, &data);
+
+ curl_easy_setopt(curl_handle, CURLOPT_XFERINFOFUNCTION, progress_callback);
+.fi
.SH AVAILABILITY
Added in 7.32.0. This callback replaces \fICURLOPT_PROGRESSFUNCTION(3)\fP
.SH RETURN VALUE
diff --git a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3 b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
index 3906ef189..ab7895542 100644
--- a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
+++ b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2021, 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
@@ -20,10 +20,10 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XOAUTH2_BEARER 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options"
+.TH CURLOPT_XOAUTH2_BEARER 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options"
.SH NAME
-CURLOPT_XOAUTH2_BEARER \- specify OAuth 2.0 access token
+CURLOPT_XOAUTH2_BEARER \- OAuth 2.0 access token
.SH SYNOPSIS
#include <curl/curl.h>
diff --git a/docs/libcurl/opts/Makefile.inc b/docs/libcurl/opts/Makefile.inc
index 1181331b9..55a0a3b7c 100644
--- a/docs/libcurl/opts/Makefile.inc
+++ b/docs/libcurl/opts/Makefile.inc
@@ -228,6 +228,7 @@ man_MANS = \
CURLOPT_MAXCONNECTS.3 \
CURLOPT_MAXFILESIZE.3 \
CURLOPT_MAXFILESIZE_LARGE.3 \
+ CURLOPT_MAXLIFETIME_CONN.3 \
CURLOPT_MAXREDIRS.3 \
CURLOPT_MAX_RECV_SPEED_LARGE.3 \
CURLOPT_MAX_SEND_SPEED_LARGE.3 \
@@ -254,6 +255,8 @@ man_MANS = \
CURLOPT_POSTQUOTE.3 \
CURLOPT_POSTREDIR.3 \
CURLOPT_PREQUOTE.3 \
+ CURLOPT_PREREQDATA.3 \
+ CURLOPT_PREREQFUNCTION.3 \
CURLOPT_PRE_PROXY.3 \
CURLOPT_PRIVATE.3 \
CURLOPT_PROGRESSDATA.3 \
@@ -326,6 +329,7 @@ man_MANS = \
CURLOPT_SSH_AUTH_TYPES.3 \
CURLOPT_SSH_COMPRESSION.3 \
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 \
+ CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3 \
CURLOPT_SSH_KEYDATA.3 \
CURLOPT_SSH_KEYFUNCTION.3 \
CURLOPT_SSH_KNOWNHOSTS.3 \
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index 2dc0af2c9..a8f2e08be 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -10,7 +10,7 @@
for a few symbols the last version that featured it. The names appear in
alphabetical order.
- Name Introduced Deprecated Removed
+ Name Introduced Deprecated Last
CURLALTSVC_H1 7.64.1
CURLALTSVC_H2 7.64.1
@@ -499,6 +499,7 @@ CURLOPT_MAXAGE_CONN 7.65.0
CURLOPT_MAXCONNECTS 7.7
CURLOPT_MAXFILESIZE 7.10.8
CURLOPT_MAXFILESIZE_LARGE 7.11.0
+CURLOPT_MAXLIFETIME_CONN 7.80.0
CURLOPT_MAXREDIRS 7.5
CURLOPT_MAX_RECV_SPEED_LARGE 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE 7.15.5
@@ -531,6 +532,8 @@ CURLOPT_POSTFIELDSIZE_LARGE 7.11.1
CURLOPT_POSTQUOTE 7.1
CURLOPT_POSTREDIR 7.19.1
CURLOPT_PREQUOTE 7.9.5
+CURLOPT_PREREQDATA 7.80.0
+CURLOPT_PREREQFUNCTION 7.80.0
CURLOPT_PRE_PROXY 7.52.0
CURLOPT_PRIVATE 7.10.3
CURLOPT_PROGRESSDATA 7.1
@@ -613,6 +616,7 @@ CURLOPT_SOURCE_USERPWD 7.12.1 - 7.15.5
CURLOPT_SSH_AUTH_TYPES 7.16.1
CURLOPT_SSH_COMPRESSION 7.56.0
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 7.17.1
+CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 7.80.0
CURLOPT_SSH_KEYDATA 7.19.6
CURLOPT_SSH_KEYFUNCTION 7.19.6
CURLOPT_SSH_KNOWNHOSTS 7.19.6
@@ -815,7 +819,7 @@ CURLSSLBACKEND_NSS 7.34.0
CURLSSLBACKEND_OPENSSL 7.34.0
CURLSSLBACKEND_POLARSSL 7.34.0 7.69.0
CURLSSLBACKEND_RUSTLS 7.76.0
-CURLSSLBACKEND_QSOSSL 7.34.0 - 7.38.1
+CURLSSLBACKEND_QSOSSL 7.34.0 - 7.38.0
CURLSSLBACKEND_SCHANNEL 7.34.0
CURLSSLBACKEND_SECURETRANSPORT 7.64.1
CURLSSLBACKEND_WOLFSSL 7.49.0
@@ -963,6 +967,8 @@ CURL_POLL_INOUT 7.14.0
CURL_POLL_NONE 7.14.0
CURL_POLL_OUT 7.14.0
CURL_POLL_REMOVE 7.14.0
+CURL_PREREQFUNC_ABORT 7.79.0
+CURL_PREREQFUNC_OK 7.79.0
CURL_PROGRESSFUNC_CONTINUE 7.68.0
CURL_PROGRESS_BAR 7.1.1 - 7.4.1
CURL_PROGRESS_STATS 7.1.1 - 7.4.1
diff --git a/docs/options-in-versions b/docs/options-in-versions
index 6fada9381..ac087a1ef 100644
--- a/docs/options-in-versions
+++ b/docs/options-in-versions
@@ -84,6 +84,7 @@
--header (-H) 5.0
--help (-h) 4.0
--hostpubmd5 7.17.1
+--hostpubsha256 7.80.0
--hsts 7.74.0
--http0.9 7.64.0
--http1.0 (-0) 7.9.1
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 521c254e7..6b6ac8a05 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -25,9 +25,6 @@
/*
* If you have libcurl problems, all docs and details are found here:
* https://curl.se/libcurl/
- *
- * curl-library mailing list subscription and unsubscription web interface:
- * https://cool.haxx.se/mailman/listinfo/curl-library/
*/
#ifdef CURL_NO_OLDIES
@@ -49,8 +46,8 @@
#include <stdio.h>
#include <limits.h>
-#if defined(__FreeBSD__) && (__FreeBSD__ >= 2)
-/* Needed for __FreeBSD_version symbol definition */
+#if (defined(__FreeBSD__) && (__FreeBSD__ >= 2)) || defined(__MidnightBSD__)
+/* Needed for __FreeBSD_version or __MidnightBSD_version symbol definition */
#include <osreldate.h>
#endif
@@ -76,6 +73,7 @@
defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \
defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \
(defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \
+ (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) || \
defined(__VXWORKS__)
#include <sys/select.h>
#endif
@@ -473,6 +471,20 @@ typedef int (*curl_debug_callback)
size_t size, /* size of the data pointed to */
void *userptr); /* whatever the user please */
+/* This is the CURLOPT_PREREQFUNCTION callback prototype. */
+typedef int (*curl_prereq_callback)(void *clientp,
+ char *conn_primary_ip,
+ char *conn_local_ip,
+ int conn_primary_port,
+ int conn_local_port);
+
+/* Return code for when the pre-request callback has terminated without
+ any errors */
+#define CURL_PREREQFUNC_OK 0
+/* Return code for when the pre-request callback wants to abort the
+ request */
+#define CURL_PREREQFUNC_ABORT 1
+
/* All possible error codes from all sorts of curl functions. Future versions
may return other values, stay prepared.
@@ -2046,7 +2058,8 @@ typedef enum {
/* 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) */
+ /* maximum age (idle time) of a connection to consider it for reuse
+ * (in seconds) */
CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288),
/* SASL authorisation identity */
@@ -2105,6 +2118,20 @@ typedef enum {
this option is used only if PROXY_SSL_VERIFYPEER is true */
CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310),
+ /* used by scp/sftp to verify the host's public key */
+ CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311),
+
+ /* Function that will be called immediately before the initial request
+ is made on a connection (after any protocol negotiation step). */
+ CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312),
+
+ /* Data passed to the CURLOPT_PREREQFUNCTION callback */
+ CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313),
+
+ /* maximum age (since creation) of a connection to consider it for reuse
+ * (in seconds) */
+ CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
diff --git a/include/curl/curlver.h b/include/curl/curlver.h
index d2ccdbaf8..6756c31bf 100644
--- a/include/curl/curlver.h
+++ b/include/curl/curlver.h
@@ -30,12 +30,12 @@
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.78.0"
+#define LIBCURL_VERSION "7.80.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 78
+#define LIBCURL_VERSION_MINOR 80
#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
@@ -57,7 +57,7 @@
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 0x074e00
+#define LIBCURL_VERSION_NUM 0x075000
/*
* This is the date and time when the full source package was created. The
@@ -68,7 +68,7 @@
*
* "2007-11-23"
*/
-#define LIBCURL_TIMESTAMP "2021-07-21"
+#define LIBCURL_TIMESTAMP "2021-11-10"
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
#define CURL_AT_LEAST_VERSION(x,y,z) \
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index 34d0267ed..9e14d8a37 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -317,6 +317,7 @@ CURLWARNING(_curl_easy_getinfo_err_curl_off_t,
(option) == CURLOPT_SERVICE_NAME || \
(option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \
(option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \
+ (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 || \
(option) == CURLOPT_SSH_KNOWNHOSTS || \
(option) == CURLOPT_SSH_PRIVATE_KEYFILE || \
(option) == CURLOPT_SSH_PUBLIC_KEYFILE || \
@@ -363,6 +364,7 @@ CURLWARNING(_curl_easy_getinfo_err_curl_off_t,
(option) == CURLOPT_INTERLEAVEDATA || \
(option) == CURLOPT_IOCTLDATA || \
(option) == CURLOPT_OPENSOCKETDATA || \
+ (option) == CURLOPT_PREREQDATA || \
(option) == CURLOPT_PROGRESSDATA || \
(option) == CURLOPT_READDATA || \
(option) == CURLOPT_SEEKDATA || \
diff --git a/include/curl/urlapi.h b/include/curl/urlapi.h
index 1d7088011..3c4b4e18a 100644
--- a/include/curl/urlapi.h
+++ b/include/curl/urlapi.h
@@ -47,7 +47,8 @@ typedef enum {
CURLUE_NO_HOST, /* 14 */
CURLUE_NO_PORT, /* 15 */
CURLUE_NO_QUERY, /* 16 */
- CURLUE_NO_FRAGMENT /* 17 */
+ CURLUE_NO_FRAGMENT, /* 17 */
+ CURLUE_LAST
} CURLUcode;
typedef enum {
@@ -118,6 +119,12 @@ CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what,
CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what,
const char *part, unsigned int flags);
+/*
+ * curl_url_strerror() turns a CURLUcode value into the equivalent human
+ * readable error string. This is useful for printing meaningful error
+ * messages.
+ */
+CURL_EXTERN const char *curl_url_strerror(CURLUcode);
#ifdef __cplusplus
} /* end of extern "C" */
diff --git a/lib/.checksrc b/lib/.checksrc
new file mode 100644
index 000000000..16133a44c
--- /dev/null
+++ b/lib/.checksrc
@@ -0,0 +1 @@
+enable STRERROR
diff --git a/lib/Makefile.am b/lib/Makefile.am
index b51796f91..769363941 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -30,7 +30,7 @@ EXTRA_DIST = Makefile.m32 config-win32.h config-win32ce.h \
config-os400.h setup-os400.h \
config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
firefox-db2pem.sh config-vxworks.h Makefile.vxworks checksrc.pl \
- setup-win32.h
+ setup-win32.h .checksrc
lib_LTLIBRARIES = libcurl.la
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index 9f1f5963d..d78614da3 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -179,12 +179,10 @@ SYNC = 1
endif
ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
RTMP = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
SSH2 = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssl,$(CFG)),-ssl)
@@ -237,6 +235,13 @@ ifeq ($(findstring -unicode,$(CFG)),-unicode)
UNICODE = 1
endif
+# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
+ifneq ($(SSH2)$(RTMP),)
+ ifeq ($(SSL)$(WINSSL),)
+ SSL = 1
+ endif
+endif
+
INCLUDES = -I. -I../include
CFLAGS += -DBUILDING_LIBCURL
ifdef SSL
@@ -299,7 +304,7 @@ ifdef SSL
endif
endif
ifneq "$(wildcard $(OPENSSL_INCLUDE)/openssl/opensslv.h)" "$(OPENSSL_INCLUDE)/openssl/opensslv.h"
- $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
+ $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
endif
ifndef OPENSSL_LIBPATH
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index cf7904aa7..92752128d 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -580,7 +580,6 @@ endif
@echo $(DL)#define HAVE_SETLOCALE 1$(DL) >> $@
@echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@
@echo $(DL)#define HAVE_SIGNAL_H 1$(DL) >> $@
- @echo $(DL)#define HAVE_SIG_ATOMIC_T 1$(DL) >> $@
@echo $(DL)#define HAVE_SOCKET 1$(DL) >> $@
@echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
@echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@
diff --git a/lib/asyn-ares.c b/lib/asyn-ares.c
index 839fabb86..fc168baa6 100644
--- a/lib/asyn-ares.c
+++ b/lib/asyn-ares.c
@@ -59,7 +59,6 @@
#include "hostip.h"
#include "hash.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "multiif.h"
#include "inet_pton.h"
@@ -80,13 +79,33 @@
#define HAVE_CARES_CALLBACK_TIMEOUTS 1
#endif
+#if ARES_VERSION >= 0x010601
+/* IPv6 supported since 1.6.1 */
+#define HAVE_CARES_IPV6 1
+#endif
+
+#if ARES_VERSION >= 0x010704
+#define HAVE_CARES_SERVERS_CSV 1
+#define HAVE_CARES_LOCAL_DEV 1
+#define HAVE_CARES_SET_LOCAL 1
+#endif
+
+#if ARES_VERSION >= 0x010b00
+#define HAVE_CARES_PORTS_CSV 1
+#endif
+
+#if ARES_VERSION >= 0x011000
+/* 1.16.0 or later has ares_getaddrinfo */
+#define HAVE_CARES_GETADDRINFO 1
+#endif
+
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
#include "memdebug.h"
struct thread_data {
- int num_pending; /* number of ares_gethostbyname() requests */
+ int num_pending; /* number of outstanding c-ares requests */
struct Curl_addrinfo *temp_ai; /* intermediary result while fetching c-ares
parts */
int last_status;
@@ -322,7 +341,7 @@ static int waitperform(struct Curl_easy *data, timediff_t timeout_ms)
nfds = 0;
if(!nfds)
- /* Call ares_process() unconditonally here, even if we simply timed out
+ /* Call ares_process() unconditionally here, even if we simply timed out
above, as otherwise the ares name resolve won't timeout! */
ares_process_fd((ares_channel)data->state.async.resolver, ARES_SOCKET_BAD,
ARES_SOCKET_BAD);
@@ -490,6 +509,8 @@ CURLcode Curl_resolver_wait_resolv(struct Curl_easy *data,
return result;
}
+#ifndef HAVE_CARES_GETADDRINFO
+
/* Connects results to the list */
static void compound_results(struct thread_data *res,
struct Curl_addrinfo *ai)
@@ -620,8 +641,99 @@ static void query_completed_cb(void *arg, /* (struct connectdata *) */
}
}
}
+#else
+/* c-ares 1.16.0 or later */
/*
+ * ares2addr() converts an address list provided by c-ares to an internal
+ * libcurl compatible list
+ */
+static struct Curl_addrinfo *ares2addr(struct ares_addrinfo_node *node)
+{
+ /* traverse the ares_addrinfo_node list */
+ struct ares_addrinfo_node *ai;
+ struct Curl_addrinfo *cafirst = NULL;
+ struct Curl_addrinfo *calast = NULL;
+ int error = 0;
+
+ for(ai = node; ai != NULL; ai = ai->ai_next) {
+ size_t ss_size;
+ struct Curl_addrinfo *ca;
+ /* ignore elements with unsupported address family, */
+ /* settle family-specific sockaddr structure size. */
+ if(ai->ai_family == AF_INET)
+ ss_size = sizeof(struct sockaddr_in);
+#ifdef ENABLE_IPV6
+ else if(ai->ai_family == AF_INET6)
+ ss_size = sizeof(struct sockaddr_in6);
+#endif
+ else
+ continue;
+
+ /* ignore elements without required address info */
+ if(!ai->ai_addr || !(ai->ai_addrlen > 0))
+ continue;
+
+ /* ignore elements with bogus address size */
+ if((size_t)ai->ai_addrlen < ss_size)
+ continue;
+
+ ca = malloc(sizeof(struct Curl_addrinfo) + ss_size);
+ if(!ca) {
+ error = EAI_MEMORY;
+ break;
+ }
+
+ /* copy each structure member individually, member ordering, */
+ /* size, or padding might be different for each platform. */
+
+ ca->ai_flags = ai->ai_flags;
+ ca->ai_family = ai->ai_family;
+ ca->ai_socktype = ai->ai_socktype;
+ ca->ai_protocol = ai->ai_protocol;
+ ca->ai_addrlen = (curl_socklen_t)ss_size;
+ ca->ai_addr = NULL;
+ ca->ai_canonname = NULL;
+ ca->ai_next = NULL;
+
+ ca->ai_addr = (void *)((char *)ca + sizeof(struct Curl_addrinfo));
+ memcpy(ca->ai_addr, ai->ai_addr, ss_size);
+
+ /* if the return list is empty, this becomes the first element */
+ if(!cafirst)
+ cafirst = ca;
+
+ /* add this element last in the return list */
+ if(calast)
+ calast->ai_next = ca;
+ calast = ca;
+ }
+
+ /* if we failed, destroy the Curl_addrinfo list */
+ if(error) {
+ Curl_freeaddrinfo(cafirst);
+ cafirst = NULL;
+ }
+
+ return cafirst;
+}
+
+static void addrinfo_cb(void *arg, int status, int timeouts,
+ struct ares_addrinfo *result)
+{
+ struct Curl_easy *data = (struct Curl_easy *)arg;
+ struct thread_data *res = data->state.async.tdata;
+ (void)timeouts;
+ if(ARES_SUCCESS == status) {
+ res->temp_ai = ares2addr(result->nodes);
+ res->last_status = CURL_ASYNC_SUCCESS;
+ ares_freeaddrinfo(result);
+ }
+ res->num_pending--;
+}
+
+#endif
+/*
* Curl_resolver_getaddrinfo() - when using ares
*
* Returns name information about the given hostname and port number. If
@@ -658,8 +770,28 @@ struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
/* initial status - failed */
res->last_status = ARES_ENOTFOUND;
-#if ARES_VERSION >= 0x010601
- /* IPv6 supported by c-ares since 1.6.1 */
+#ifdef HAVE_CARES_GETADDRINFO
+ {
+ struct ares_addrinfo_hints hints;
+ char service[12];
+ int pf = PF_INET;
+ memset(&hints, 0, sizeof(hints));
+#ifdef CURLRES_IPV6
+ if(Curl_ipv6works(data))
+ /* The stack seems to be IPv6-enabled */
+ pf = PF_UNSPEC;
+#endif /* CURLRES_IPV6 */
+ hints.ai_family = pf;
+ hints.ai_socktype = (data->conn->transport == TRNSPRT_TCP)?
+ SOCK_STREAM : SOCK_DGRAM;
+ msnprintf(service, sizeof(service), "%d", port);
+ res->num_pending = 1;
+ ares_getaddrinfo((ares_channel)data->state.async.resolver, hostname,
+ service, &hints, addrinfo_cb, data);
+ }
+#else
+
+#ifdef HAVE_CARES_IPV6
if(Curl_ipv6works(data)) {
/* The stack seems to be IPv6-enabled */
res->num_pending = 2;
@@ -671,7 +803,7 @@ struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
PF_INET6, query_completed_cb, data);
}
else
-#endif /* ARES_VERSION >= 0x010601 */
+#endif
{
res->num_pending = 1;
@@ -680,7 +812,7 @@ struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
hostname, PF_INET,
query_completed_cb, data);
}
-
+#endif
*waitp = 1; /* expect asynchronous response */
}
return NULL; /* no struct yet */
@@ -701,8 +833,8 @@ CURLcode Curl_set_dns_servers(struct Curl_easy *data,
if(!(servers && servers[0]))
return CURLE_OK;
-#if (ARES_VERSION >= 0x010704)
-#if (ARES_VERSION >= 0x010b00)
+#ifdef HAVE_CARES_SERVERS_CSV
+#ifdef HAVE_CARES_PORTS_CSV
ares_result = ares_set_servers_ports_csv(data->state.async.resolver,
servers);
#else
@@ -732,7 +864,7 @@ CURLcode Curl_set_dns_servers(struct Curl_easy *data,
CURLcode Curl_set_dns_interface(struct Curl_easy *data,
const char *interf)
{
-#if (ARES_VERSION >= 0x010704)
+#ifdef HAVE_CARES_LOCAL_DEV
if(!interf)
interf = "";
@@ -749,7 +881,7 @@ CURLcode Curl_set_dns_interface(struct Curl_easy *data,
CURLcode Curl_set_dns_local_ip4(struct Curl_easy *data,
const char *local_ip4)
{
-#if (ARES_VERSION >= 0x010704)
+#ifdef HAVE_CARES_SET_LOCAL
struct in_addr a4;
if((!local_ip4) || (local_ip4[0] == 0)) {
@@ -775,7 +907,7 @@ CURLcode Curl_set_dns_local_ip4(struct Curl_easy *data,
CURLcode Curl_set_dns_local_ip6(struct Curl_easy *data,
const char *local_ip6)
{
-#if (ARES_VERSION >= 0x010704) && defined(ENABLE_IPV6)
+#if defined(HAVE_CARES_SET_LOCAL) && defined(ENABLE_IPV6)
unsigned char a6[INET6_ADDRSTRLEN];
if((!local_ip6) || (local_ip6[0] == 0)) {
diff --git a/lib/asyn-thread.c b/lib/asyn-thread.c
index 36f68cb49..149172ad3 100644
--- a/lib/asyn-thread.c
+++ b/lib/asyn-thread.c
@@ -68,7 +68,6 @@
#include "hostip.h"
#include "hash.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "multiif.h"
#include "inet_ntop.h"
diff --git a/lib/c-hyper.c b/lib/c-hyper.c
index 2cc5d496e..c253cd36e 100644
--- a/lib/c-hyper.c
+++ b/lib/c-hyper.c
@@ -156,13 +156,15 @@ static int hyper_each_header(void *userdata,
Curl_debug(data, CURLINFO_HEADER_IN, headp, len);
- writetype = CLIENTWRITE_HEADER;
- if(data->set.include_header)
- writetype |= CLIENTWRITE_BODY;
- result = Curl_client_write(data, writetype, headp, len);
- if(result) {
- data->state.hresult = CURLE_ABORTED_BY_CALLBACK;
- return HYPER_ITER_BREAK;
+ if(!data->state.hconnect || !data->set.suppress_connect_headers) {
+ writetype = CLIENTWRITE_HEADER;
+ if(data->set.include_header)
+ writetype |= CLIENTWRITE_BODY;
+ result = Curl_client_write(data, writetype, headp, len);
+ if(result) {
+ data->state.hresult = CURLE_ABORTED_BY_CALLBACK;
+ return HYPER_ITER_BREAK;
+ }
}
data->info.header_size += (long)len;
@@ -176,7 +178,7 @@ static int hyper_body_chunk(void *userdata, const hyper_buf *chunk)
size_t len = hyper_buf_len(chunk);
struct Curl_easy *data = (struct Curl_easy *)userdata;
struct SingleRequest *k = &data->req;
- CURLcode result;
+ CURLcode result = CURLE_OK;
if(0 == k->bodywrites++) {
bool done = FALSE;
@@ -192,8 +194,21 @@ static int hyper_body_chunk(void *userdata, const hyper_buf *chunk)
Curl_safefree(data->req.newurl);
}
#endif
- if(data->state.hconnect &&
- (data->req.httpcode/100 != 2)) {
+ if(data->state.expect100header) {
+ Curl_expire_done(data, EXPIRE_100_TIMEOUT);
+ if(data->req.httpcode < 400) {
+ k->exp100 = EXP100_SEND_DATA;
+ if(data->hyp.exp100_waker) {
+ hyper_waker_wake(data->hyp.exp100_waker);
+ data->hyp.exp100_waker = NULL;
+ }
+ }
+ else { /* >= 4xx */
+ k->exp100 = EXP100_FAILED;
+ }
+ }
+ if(data->state.hconnect && (data->req.httpcode/100 != 2) &&
+ data->state.authproxy.done) {
done = TRUE;
result = CURLE_OK;
}
@@ -245,6 +260,15 @@ static CURLcode status_line(struct Curl_easy *data,
conn->httpversion =
http_version == HYPER_HTTP_VERSION_1_1 ? 11 :
(http_version == HYPER_HTTP_VERSION_2 ? 20 : 10);
+ if(http_version == HYPER_HTTP_VERSION_1_0)
+ data->state.httpwant = CURL_HTTP_VERSION_1_0;
+
+ if(data->state.hconnect)
+ /* CONNECT */
+ data->info.httpproxycode = http_status;
+
+ /* We need to set 'httpcodeq' for functions that check the response code in
+ a single place. */
data->req.httpcode = http_status;
result = Curl_http_statusline(data, conn);
@@ -262,16 +286,18 @@ static CURLcode status_line(struct Curl_easy *data,
len = Curl_dyn_len(&data->state.headerb);
Curl_debug(data, CURLINFO_HEADER_IN, Curl_dyn_ptr(&data->state.headerb),
len);
- writetype = CLIENTWRITE_HEADER;
- if(data->set.include_header)
- writetype |= CLIENTWRITE_BODY;
- result = Curl_client_write(data, writetype,
- Curl_dyn_ptr(&data->state.headerb), len);
- if(result) {
- data->state.hresult = CURLE_ABORTED_BY_CALLBACK;
- return HYPER_ITER_BREAK;
- }
+ if(!data->state.hconnect || !data->set.suppress_connect_headers) {
+ writetype = CLIENTWRITE_HEADER;
+ if(data->set.include_header)
+ writetype |= CLIENTWRITE_BODY;
+ result = Curl_client_write(data, writetype,
+ Curl_dyn_ptr(&data->state.headerb), len);
+ if(result) {
+ data->state.hresult = CURLE_ABORTED_BY_CALLBACK;
+ return HYPER_ITER_BREAK;
+ }
+ }
data->info.header_size += (long)len;
data->req.headerbytecount += (long)len;
data->req.httpcode = http_status;
@@ -284,8 +310,14 @@ static CURLcode status_line(struct Curl_easy *data,
*/
static CURLcode empty_header(struct Curl_easy *data)
{
- return hyper_each_header(data, NULL, 0, NULL, 0) ?
- CURLE_WRITE_ERROR : CURLE_OK;
+ CURLcode result = Curl_http_size(data);
+ if(!result) {
+ result = hyper_each_header(data, NULL, 0, NULL, 0) ?
+ CURLE_WRITE_ERROR : CURLE_OK;
+ if(result)
+ failf(data, "hyperstream: couldn't pass blank header");
+ }
+ return result;
}
CURLcode Curl_hyper_stream(struct Curl_easy *data,
@@ -306,8 +338,25 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
const uint8_t *reasonp;
size_t reason_len;
CURLcode result = CURLE_OK;
+ struct SingleRequest *k = &data->req;
(void)conn;
+ if(k->exp100 > EXP100_SEND_DATA) {
+ struct curltime now = Curl_now();
+ timediff_t ms = Curl_timediff(now, k->start100);
+ if(ms >= data->set.expect_100_timeout) {
+ /* we've waited long enough, continue anyway */
+ k->exp100 = EXP100_SEND_DATA;
+ k->keepon |= KEEP_SEND;
+ Curl_expire_done(data, EXPIRE_100_TIMEOUT);
+ infof(data, "Done waiting for 100-continue");
+ if(data->hyp.exp100_waker) {
+ hyper_waker_wake(data->hyp.exp100_waker);
+ data->hyp.exp100_waker = NULL;
+ }
+ }
+ }
+
if(select_res & CURL_CSELECT_IN) {
if(h->read_waker)
hyper_waker_wake(h->read_waker);
@@ -341,8 +390,7 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
hyper_task_free(task);
if(t == HYPER_TASK_ERROR) {
- hyper_code errnum = hyper_error_code(hypererr);
- if(errnum == HYPERE_ABORTED_BY_CALLBACK) {
+ if(data->state.hresult) {
/* override Hyper's view, might not even be an error */
result = data->state.hresult;
infof(data, "hyperstream is done (by early callback)");
@@ -352,7 +400,9 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
size_t errlen = hyper_error_print(hypererr, errbuf, sizeof(errbuf));
hyper_code code = hyper_error_code(hypererr);
failf(data, "Hyper: [%d] %.*s", (int)code, (int)errlen, errbuf);
- if((code == HYPERE_UNEXPECTED_EOF) && !data->req.bytecount)
+ if(code == HYPERE_ABORTED_BY_CALLBACK)
+ result = CURLE_OK;
+ else if((code == HYPERE_UNEXPECTED_EOF) && !data->req.bytecount)
result = CURLE_GOT_NOTHING;
else if(code == HYPERE_INVALID_PEER_MESSAGE)
result = CURLE_UNSUPPORTED_PROTOCOL; /* maybe */
@@ -367,6 +417,11 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
/* end of transfer */
*done = TRUE;
infof(data, "hyperstream is done!");
+ if(!k->bodywrites) {
+ /* hyper doesn't always call the body write callback */
+ bool stilldone;
+ result = Curl_http_firstwrite(data, data->conn, &stilldone);
+ }
break;
}
else if(t != HYPER_TASK_RESPONSE) {
@@ -405,11 +460,9 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
break;
}
- if(empty_header(data)) {
- failf(data, "hyperstream: couldn't pass blank header");
- result = CURLE_OUT_OF_MEMORY;
+ result = empty_header(data);
+ if(result)
break;
- }
/* Curl_http_auth_act() checks what authentication methods that are
* available and decides which one (if any) to use. It will set 'newurl'
@@ -523,7 +576,7 @@ CURLcode Curl_hyper_header(struct Curl_easy *data, hyper_headers *headers,
free(ptr);
}
else
- Curl_debug(data, CURLINFO_HEADER_OUT, (char *)line, linelen);
+ Curl_debug(data, CURLINFO_HEADER_OUT, (char *)n, linelen);
}
numh++;
n += linelen;
@@ -546,9 +599,22 @@ static CURLcode request_target(struct Curl_easy *data,
if(result)
return result;
- if(hyper_request_set_uri(req, (uint8_t *)Curl_dyn_uptr(&r),
- Curl_dyn_len(&r))) {
- failf(data, "error setting path");
+ if(h2 && hyper_request_set_uri_parts(req,
+ /* scheme */
+ (uint8_t *)data->state.up.scheme,
+ strlen(data->state.up.scheme),
+ /* authority */
+ (uint8_t *)conn->host.name,
+ strlen(conn->host.name),
+ /* path_and_query */
+ (uint8_t *)Curl_dyn_uptr(&r),
+ Curl_dyn_len(&r))) {
+ failf(data, "error setting uri parts to hyper");
+ result = CURLE_OUT_OF_MEMORY;
+ }
+ else if(!h2 && hyper_request_set_uri(req, (uint8_t *)Curl_dyn_uptr(&r),
+ Curl_dyn_len(&r))) {
+ failf(data, "error setting uri to hyper");
result = CURLE_OUT_OF_MEMORY;
}
else
@@ -564,6 +630,16 @@ static int uploadpostfields(void *userdata, hyper_context *ctx,
{
struct Curl_easy *data = (struct Curl_easy *)userdata;
(void)ctx;
+ if(data->req.exp100 > EXP100_SEND_DATA) {
+ if(data->req.exp100 == EXP100_FAILED)
+ return HYPER_POLL_ERROR;
+
+ /* still waiting confirmation */
+ if(data->hyp.exp100_waker)
+ hyper_waker_free(data->hyp.exp100_waker);
+ data->hyp.exp100_waker = hyper_context_waker(ctx);
+ return HYPER_POLL_PENDING;
+ }
if(data->req.upload_done)
*chunk = NULL; /* nothing more to deliver */
else {
@@ -590,9 +666,21 @@ static int uploadstreamed(void *userdata, hyper_context *ctx,
{
size_t fillcount;
struct Curl_easy *data = (struct Curl_easy *)userdata;
- CURLcode result =
- Curl_fillreadbuffer(data, data->set.upload_buffer_size, &fillcount);
+ CURLcode result;
(void)ctx;
+
+ if(data->req.exp100 > EXP100_SEND_DATA) {
+ if(data->req.exp100 == EXP100_FAILED)
+ return HYPER_POLL_ERROR;
+
+ /* still waiting confirmation */
+ if(data->hyp.exp100_waker)
+ hyper_waker_free(data->hyp.exp100_waker);
+ data->hyp.exp100_waker = hyper_context_waker(ctx);
+ return HYPER_POLL_PENDING;
+ }
+
+ result = Curl_fillreadbuffer(data, data->set.upload_buffer_size, &fillcount);
if(result) {
data->state.hresult = result;
return HYPER_POLL_ERROR;
@@ -627,6 +715,7 @@ static CURLcode bodysend(struct Curl_easy *data,
hyper_request *hyperreq,
Curl_HttpReq httpreq)
{
+ struct HTTP *http = data->req.p.http;
CURLcode result = CURLE_OK;
struct dynbuf req;
if((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD))
@@ -659,6 +748,7 @@ static CURLcode bodysend(struct Curl_easy *data,
result = CURLE_OUT_OF_MEMORY;
}
}
+ http->sending = HTTPSEND_BODY;
return result;
}
@@ -677,6 +767,48 @@ static CURLcode cookies(struct Curl_easy *data,
return result;
}
+/* called on 1xx responses */
+static void http1xx_cb(void *arg, struct hyper_response *resp)
+{
+ struct Curl_easy *data = (struct Curl_easy *)arg;
+ hyper_headers *headers = NULL;
+ CURLcode result = CURLE_OK;
+ uint16_t http_status;
+ int http_version;
+ const uint8_t *reasonp;
+ size_t reason_len;
+
+ infof(data, "Got HTTP 1xx informational");
+
+ http_status = hyper_response_status(resp);
+ http_version = hyper_response_version(resp);
+ reasonp = hyper_response_reason_phrase(resp);
+ reason_len = hyper_response_reason_phrase_len(resp);
+
+ result = status_line(data, data->conn,
+ http_status, http_version, reasonp, reason_len);
+ if(!result) {
+ headers = hyper_response_headers(resp);
+ if(!headers) {
+ failf(data, "hyperstream: couldn't get 1xx response headers");
+ result = CURLE_RECV_ERROR;
+ }
+ }
+ data->state.hresult = result;
+
+ if(!result) {
+ /* the headers are already received */
+ hyper_headers_foreach(headers, hyper_each_header, data);
+ /* this callback also sets data->state.hresult on error */
+
+ if(empty_header(data))
+ result = CURLE_OUT_OF_MEMORY;
+ }
+
+ if(data->state.hresult)
+ infof(data, "ERROR in 1xx, bail out!");
+}
+
/*
* Curl_http() gets called from the generic multi_do() function when a HTTP
* request is to be performed. This creates and sends a properly constructed
@@ -694,13 +826,13 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
hyper_request *req = NULL;
hyper_headers *headers = NULL;
hyper_task *handshake = NULL;
- hyper_error *hypererr = NULL;
CURLcode result;
const char *p_accept; /* Accept: string */
const char *method;
Curl_HttpReq httpreq;
bool h2 = FALSE;
const char *te = NULL; /* transfer-encoding */
+ hyper_code rc;
/* Always consider the DO phase done after this function call, even if there
may be parts of the request that is not yet sent, since we can deal with
@@ -746,6 +878,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
io = hyper_io_new();
if(!io) {
failf(data, "Couldn't create hyper IO");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
/* tell Hyper how to read/write network data */
@@ -758,6 +891,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
h->exec = hyper_executor_new();
if(!h->exec) {
failf(data, "Couldn't create hyper executor");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
}
@@ -765,6 +899,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
options = hyper_clientconn_options_new();
if(!options) {
failf(data, "Couldn't create hyper client options");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
if(conn->negnpn == CURL_HTTP_VERSION_2) {
@@ -778,6 +913,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
handshake = hyper_clientconn_handshake(io, options);
if(!handshake) {
failf(data, "Couldn't create hyper client handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
io = NULL;
@@ -785,6 +921,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
if(HYPERE_OK != hyper_executor_push(h->exec, handshake)) {
failf(data, "Couldn't hyper_executor_push the handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
handshake = NULL; /* ownership passed on */
@@ -792,6 +929,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
task = hyper_executor_poll(h->exec);
if(!task) {
failf(data, "Couldn't hyper_executor_poll the handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
@@ -801,19 +939,22 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
req = hyper_request_new();
if(!req) {
failf(data, "Couldn't hyper_request_new");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
- if(data->state.httpwant == CURL_HTTP_VERSION_1_0) {
+ if(!Curl_use_http_1_1plus(data, conn)) {
if(HYPERE_OK != hyper_request_set_version(req,
HYPER_HTTP_VERSION_1_0)) {
failf(data, "error setting HTTP version");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
}
if(hyper_request_set_method(req, (uint8_t *)method, strlen(method))) {
failf(data, "error setting method");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
@@ -824,47 +965,81 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
headers = hyper_request_headers(req);
if(!headers) {
failf(data, "hyper_request_headers");
+ result = CURLE_OUT_OF_MEMORY;
+ goto error;
+ }
+
+ rc = hyper_request_on_informational(req, http1xx_cb, data);
+ if(rc) {
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
result = Curl_http_body(data, conn, httpreq, &te);
if(result)
- return result;
-
- if(data->state.aptr.host &&
- Curl_hyper_header(data, headers, data->state.aptr.host))
goto error;
- if(data->state.aptr.proxyuserpwd &&
- Curl_hyper_header(data, headers, data->state.aptr.proxyuserpwd))
- goto error;
+ if(!h2) {
+ if(data->state.aptr.host) {
+ result = Curl_hyper_header(data, headers, data->state.aptr.host);
+ if(result)
+ goto error;
+ }
+ }
+ else {
+ /* For HTTP/2, we show the Host: header as if we sent it, to make it look
+ like for HTTP/1 but it isn't actually sent since :authority is then
+ used. */
+ result = Curl_debug(data, CURLINFO_HEADER_OUT, data->state.aptr.host,
+ strlen(data->state.aptr.host));
+ if(result)
+ goto error;
+ }
- if(data->state.aptr.userpwd &&
- Curl_hyper_header(data, headers, data->state.aptr.userpwd))
- goto error;
+ if(data->state.aptr.proxyuserpwd) {
+ result = Curl_hyper_header(data, headers, data->state.aptr.proxyuserpwd);
+ if(result)
+ goto error;
+ }
- if((data->state.use_range && data->state.aptr.rangeline) &&
- Curl_hyper_header(data, headers, data->state.aptr.rangeline))
- goto error;
+ if(data->state.aptr.userpwd) {
+ result = Curl_hyper_header(data, headers, data->state.aptr.userpwd);
+ if(result)
+ goto error;
+ }
+
+ if((data->state.use_range && data->state.aptr.rangeline)) {
+ result = Curl_hyper_header(data, headers, data->state.aptr.rangeline);
+ if(result)
+ goto error;
+ }
if(data->set.str[STRING_USERAGENT] &&
*data->set.str[STRING_USERAGENT] &&
- data->state.aptr.uagent &&
- Curl_hyper_header(data, headers, data->state.aptr.uagent))
- goto error;
+ data->state.aptr.uagent) {
+ result = Curl_hyper_header(data, headers, data->state.aptr.uagent);
+ if(result)
+ goto error;
+ }
p_accept = Curl_checkheaders(data, "Accept")?NULL:"Accept: */*\r\n";
- if(p_accept && Curl_hyper_header(data, headers, p_accept))
- goto error;
-
- if(te && Curl_hyper_header(data, headers, te))
- goto error;
+ if(p_accept) {
+ result = Curl_hyper_header(data, headers, p_accept);
+ if(result)
+ goto error;
+ }
+ if(te) {
+ result = Curl_hyper_header(data, headers, te);
+ if(result)
+ goto error;
+ }
#ifndef CURL_DISABLE_PROXY
if(conn->bits.httpproxy && !conn->bits.tunnel_proxy &&
!Curl_checkheaders(data, "Proxy-Connection") &&
!Curl_checkProxyheaders(data, conn, "Proxy-Connection")) {
- if(Curl_hyper_header(data, headers, "Proxy-Connection: Keep-Alive"))
+ result = Curl_hyper_header(data, headers, "Proxy-Connection: Keep-Alive");
+ if(result)
goto error;
}
#endif
@@ -873,8 +1048,10 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
if(data->state.referer && !Curl_checkheaders(data, "Referer")) {
data->state.aptr.ref = aprintf("Referer: %s\r\n", data->state.referer);
if(!data->state.aptr.ref)
- return CURLE_OUT_OF_MEMORY;
- if(Curl_hyper_header(data, headers, data->state.aptr.ref))
+ result = CURLE_OUT_OF_MEMORY;
+ else
+ result = Curl_hyper_header(data, headers, data->state.aptr.ref);
+ if(result)
goto error;
}
@@ -884,8 +1061,11 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
data->state.aptr.accept_encoding =
aprintf("Accept-Encoding: %s\r\n", data->set.str[STRING_ENCODING]);
if(!data->state.aptr.accept_encoding)
- return CURLE_OUT_OF_MEMORY;
- if(Curl_hyper_header(data, headers, data->state.aptr.accept_encoding))
+ result = CURLE_OUT_OF_MEMORY;
+ else
+ result = Curl_hyper_header(data, headers,
+ data->state.aptr.accept_encoding);
+ if(result)
goto error;
}
else
@@ -895,61 +1075,58 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
/* we only consider transfer-encoding magic if libz support is built-in */
result = Curl_transferencode(data);
if(result)
- return result;
- if(Curl_hyper_header(data, headers, data->state.aptr.te))
+ goto error;
+ result = Curl_hyper_header(data, headers, data->state.aptr.te);
+ if(result)
goto error;
#endif
result = cookies(data, conn, headers);
if(result)
- return result;
+ goto error;
result = Curl_add_timecondition(data, headers);
if(result)
- return result;
+ goto error;
result = Curl_add_custom_headers(data, FALSE, headers);
if(result)
- return result;
+ goto error;
result = bodysend(data, conn, headers, req, httpreq);
if(result)
- return result;
+ goto error;
- Curl_debug(data, CURLINFO_HEADER_OUT, (char *)"\r\n", 2);
+ result = Curl_debug(data, CURLINFO_HEADER_OUT, (char *)"\r\n", 2);
+ if(result)
+ goto error;
data->req.upload_chunky = FALSE;
sendtask = hyper_clientconn_send(client, req);
if(!sendtask) {
failf(data, "hyper_clientconn_send");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
if(HYPERE_OK != hyper_executor_push(h->exec, sendtask)) {
failf(data, "Couldn't hyper_executor_push the send");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
hyper_clientconn_free(client);
- do {
- task = hyper_executor_poll(h->exec);
- if(task) {
- bool error = hyper_task_type(task) == HYPER_TASK_ERROR;
- if(error)
- hypererr = hyper_task_value(task);
- hyper_task_free(task);
- if(error)
- goto error;
- }
- } while(task);
-
if((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD)) {
/* HTTP GET/HEAD download */
Curl_pgrsSetUploadSize(data, 0); /* nothing */
Curl_setup_transfer(data, FIRSTSOCKET, -1, TRUE, -1);
}
conn->datastream = Curl_hyper_stream;
+ if(data->state.expect100header)
+ /* Timeout count starts now since with Hyper we don't know exactly when
+ the full request has been sent. */
+ data->req.start100 = Curl_now();
/* clear userpwd and proxyuserpwd to avoid re-using old credentials
* from re-used connections */
@@ -957,7 +1134,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
Curl_safefree(data->state.aptr.proxyuserpwd);
return CURLE_OK;
error:
-
+ DEBUGASSERT(result);
if(io)
hyper_io_free(io);
@@ -967,16 +1144,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
if(handshake)
hyper_task_free(handshake);
- if(hypererr) {
- uint8_t errbuf[256];
- size_t errlen = hyper_error_print(hypererr, errbuf, sizeof(errbuf));
- hyper_code code = hyper_error_code(hypererr);
- failf(data, "Hyper: [%d] %.*s", (int)code, (int)errlen, errbuf);
- hyper_error_free(hypererr);
- if(data->state.hresult)
- return data->state.hresult;
- }
- return CURLE_OUT_OF_MEMORY;
+ return result;
}
void Curl_hyper_done(struct Curl_easy *data)
@@ -994,6 +1162,10 @@ void Curl_hyper_done(struct Curl_easy *data)
hyper_waker_free(h->write_waker);
h->write_waker = NULL;
}
+ if(h->exp100_waker) {
+ hyper_waker_free(h->exp100_waker);
+ h->exp100_waker = NULL;
+ }
}
#endif /* !defined(CURL_DISABLE_HTTP) && defined(USE_HYPER) */
diff --git a/lib/c-hyper.h b/lib/c-hyper.h
index d60ed78d1..d63defeff 100644
--- a/lib/c-hyper.h
+++ b/lib/c-hyper.h
@@ -33,6 +33,7 @@ struct hyptransfer {
hyper_waker *read_waker;
const hyper_executor *exec;
hyper_task *endtask;
+ hyper_waker *exp100_waker;
};
size_t Curl_hyper_recv(void *userp, hyper_context *ctx,
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index a35535c19..8f98a99ab 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -47,6 +47,7 @@ my @ignore_line;
my %warnings_extended = (
'COPYRIGHTYEAR' => 'copyright year incorrect',
+ 'STRERROR', => 'strerror() detected',
);
my %warnings = (
@@ -87,7 +88,7 @@ my %warnings = (
'EXCLAMATIONSPACE' => 'Whitespace after exclamation mark in expression',
'EMPTYLINEBRACE' => 'Empty line before the open brace',
'EQUALSNULL' => 'if/while comparison with == NULL',
- 'NOTEQUALSZERO' => 'if/while comparison with != 0'
+ 'NOTEQUALSZERO', => 'if/while comparison with != 0',
);
sub readskiplist {
@@ -238,9 +239,17 @@ if(!$file) {
print " -i<n> Indent spaces. Default: 2\n";
print " -m<n> Maximum line length. Default: 79\n";
print "\nDetects and warns for these problems:\n";
- for(sort keys %warnings) {
- printf (" %-18s: %s\n", $_, $warnings{$_});
+ my @allw = keys %warnings;
+ push @allw, keys %warnings_extended;
+ for my $w (sort @allw) {
+ if($warnings{$w}) {
+ printf (" %-18s: %s\n", $w, $warnings{$w});
+ }
+ else {
+ printf (" %-18s: %s[*]\n", $w, $warnings_extended{$w});
+ }
}
+ print " [*] = disabled by default\n";
exit;
}
@@ -361,7 +370,10 @@ sub scanfile {
my $line = 1;
my $prevl="";
- my $l;
+ my $prevpl="";
+ my $l = "";
+ my $prep = 0;
+ my $prevp = 0;
open(R, "<$file") || die "failed to open $file";
my $incomment=0;
@@ -443,6 +455,14 @@ sub scanfile {
# comments
# ------------------------------------------------------------
+ # prev line was a preprocessor **and** ended with a backslash
+ if($prep && ($prevpl =~ /\\ *\z/)) {
+ # this is still a preprocessor line
+ $prep = 1;
+ goto preproc;
+ }
+ $prep = 0;
+
# crude attempt to detect // comments without too many false
# positives
if($l =~ /^(([^"\*]*)[^:"]|)\/\//) {
@@ -450,6 +470,13 @@ sub scanfile {
$line, length($1), $file, $l, "\/\/ comment");
}
+ # detect and strip preprocessor directives
+ if($l =~ /^[ \t]*\#/) {
+ # preprocessor line
+ $prep = 1;
+ goto preproc;
+ }
+
my $nostr = nostrings($l);
# check spaces after for/if/while/function call
if($nostr =~ /^(.*)(for|if|while| ([a-zA-Z0-9_]+)) \((.)/) {
@@ -520,7 +547,6 @@ sub scanfile {
}
elsif($even && $postparen &&
($postparen !~ /^ *$/) && ($postparen !~ /^ *[,{&|\\]+/)) {
- print STDERR "5: '$postparen'\n";
checkwarn("ONELINECONDITION",
$line, length($l)-length($postparen), $file, $l,
"conditional block on the same line");
@@ -621,7 +647,7 @@ sub scanfile {
# check for space before the semicolon last in a line
if($l =~ /^(.*[^ ].*) ;$/) {
checkwarn("SPACESEMICOLON",
- $line, length($1), $file, $ol, "space before last semicolon");
+ $line, length($1), $file, $ol, "no space before semicolon");
}
# scan for use of banned functions
@@ -638,7 +664,18 @@ sub scanfile {
$line, length($1), $file, $ol,
"use of $2 is banned");
}
-
+ if($warnings{"STRERROR"}) {
+ # scan for use of banned strerror. This is not a BANNEDFUNC to
+ # allow for individual enable/disable of this warning.
+ if($l =~ /^(.*\W)(strerror)\s*\(/x) {
+ if($1 !~ /^ *\#/) {
+ # skip preprocessor lines
+ checkwarn("STRERROR",
+ $line, length($1), $file, $ol,
+ "use of $2 is banned");
+ }
+ }
+ }
# scan for use of snprintf for curl-internals reasons
if($l =~ /^(.*\W)(v?snprintf)\s*\(/x) {
checkwarn("SNPRINTF",
@@ -656,10 +693,9 @@ sub scanfile {
}
}
- # check for open brace first on line but not first column
- # only alert if previous line ended with a close paren and wasn't a cpp
- # line
- if((($prevl =~ /\)\z/) && ($prevl !~ /^ *#/)) && ($l =~ /^( +)\{/)) {
+ # check for open brace first on line but not first column only alert
+ # if previous line ended with a close paren and it wasn't a cpp line
+ if(($prevl =~ /\)\z/) && ($l =~ /^( +)\{/) && !$prevp) {
checkwarn("BRACEPOS",
$line, length($1), $file, $ol, "badly placed open brace");
}
@@ -667,11 +703,10 @@ sub scanfile {
# if the previous line starts with if/while/for AND ends with an open
# brace, or an else statement, check that this line is indented $indent
# more steps, if not a cpp line
- if($prevl =~ /^( *)((if|while|for)\(.*\{|else)\z/) {
+ if(!$prevp && ($prevl =~ /^( *)((if|while|for)\(.*\{|else)\z/)) {
my $first = length($1);
-
# this line has some character besides spaces
- if(($l !~ /^ *#/) && ($l =~ /^( *)[^ ]/)) {
+ if($l =~ /^( *)[^ ]/) {
my $second = length($1);
my $expect = $first+$indent;
if($expect != $second) {
@@ -762,13 +797,13 @@ sub scanfile {
$nostr =~ /^(.*(\S)) + [{?]/i) {
checkwarn("MULTISPACE",
$line, length($1)+1, $file, $ol,
- "multiple space");
- print STDERR "L: $l\n";
- print STDERR "nostr: $nostr\n";
+ "multiple spaces");
}
-
+ preproc:
$line++;
- $prevl = $ol;
+ $prevp = $prep;
+ $prevl = $ol if(!$prep);
+ $prevpl = $ol if($prep);
}
if(!scalar(@copyright)) {
diff --git a/lib/config-amigaos.h b/lib/config-amigaos.h
index 0bbf4c41d..842cbc247 100644
--- a/lib/config-amigaos.h
+++ b/lib/config-amigaos.h
@@ -55,7 +55,6 @@
#define HAVE_SETJMP_H 1
#define HAVE_SIGNAL 1
#define HAVE_SIGNAL_H 1
-#define HAVE_SIG_ATOMIC_T 1
#define HAVE_SOCKET 1
#define HAVE_STRCASECMP 1
#define HAVE_STRDUP 1
diff --git a/lib/config-mac.h b/lib/config-mac.h
index c8833e300..22d32d480 100644
--- a/lib/config-mac.h
+++ b/lib/config-mac.h
@@ -67,7 +67,6 @@
#define HAVE_SIGACTION 1
#define HAVE_SIGNAL_H 1
-#define HAVE_SIG_ATOMIC_T 1
#ifdef MACOS_SSL_SUPPORT
# define USE_OPENSSL 1
diff --git a/lib/config-os400.h b/lib/config-os400.h
index cff9c3e62..d68cb4b18 100644
--- a/lib/config-os400.h
+++ b/lib/config-os400.h
@@ -235,12 +235,6 @@
/* Define if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H
-/* Define if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T
-
-/* Define if sig_atomic_t is already defined as volatile. */
-#undef HAVE_SIG_ATOMIC_T_VOLATILE
-
/* Define if you have the `socket' function. */
#define HAVE_SOCKET
@@ -334,9 +328,6 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H
-/* Define if you have the <winsock.h> header file. */
-#undef HAVE_WINSOCK_H
-
/* Define if you have the <x509.h> header file. */
#undef HAVE_X509_H
diff --git a/lib/config-plan9.h b/lib/config-plan9.h
index 9b98a6e24..dbe9b82af 100644
--- a/lib/config-plan9.h
+++ b/lib/config-plan9.h
@@ -149,7 +149,6 @@
#define HAVE_SIGNAL 1
#define HAVE_SIGNAL_H 1
#define HAVE_SIGSETJMP 1
-#define HAVE_SIG_ATOMIC_T 1
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
#define HAVE_SOCKET 1
#define HAVE_SSL_GET_SHUTDOWN 1
diff --git a/lib/config-riscos.h b/lib/config-riscos.h
index 0535137be..9986b20fb 100644
--- a/lib/config-riscos.h
+++ b/lib/config-riscos.h
@@ -227,12 +227,6 @@
/* Define if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H
-/* Define if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T
-
-/* Define if sig_atomic_t is already defined as volatile. */
-#undef HAVE_SIG_ATOMIC_T_VOLATILE
-
/* Define if you have the `socket' function. */
#define HAVE_SOCKET
@@ -311,9 +305,6 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H
-/* Define if you have the <winsock.h> header file. */
-#undef HAVE_WINSOCK_H
-
/* Define if you have the <x509.h> header file. */
#undef HAVE_X509_H
diff --git a/lib/config-tpf.h b/lib/config-tpf.h
index ab29bfccc..cce06cedd 100644
--- a/lib/config-tpf.h
+++ b/lib/config-tpf.h
@@ -366,12 +366,6 @@
/* Define to 1 if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H 1
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
-
/* If you have sigsetjmp */
/* #undef HAVE_SIGSETJMP */
@@ -489,9 +483,6 @@
/* 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 this symbol if your OS supports changing the contents of argv */
/* #undef HAVE_WRITABLE_ARGV */
diff --git a/lib/config-vxworks.h b/lib/config-vxworks.h
index 22d2b964a..af1d87345 100644
--- a/lib/config-vxworks.h
+++ b/lib/config-vxworks.h
@@ -445,12 +445,6 @@
/* Define to 1 if you have the sigsetjmp function or macro. */
/* #undef HAVE_SIGSETJMP */
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
-
/* Define to 1 if struct sockaddr_in6 has the sin6_scope_id member */
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
@@ -607,9 +601,6 @@
/* 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 this symbol if your OS supports changing the contents of argv */
#define HAVE_WRITABLE_ARGV 1
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 244e5ae72..89593a815 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -132,9 +132,6 @@
/* Define if you have the <windows.h> header file. */
#define HAVE_WINDOWS_H 1
-/* Define if you have the <winsock.h> header file. */
-#define HAVE_WINSOCK_H 1
-
/* Define if you have the <winsock2.h> header file. */
#ifndef __SALFORDC__
#define HAVE_WINSOCK2_H 1
@@ -149,9 +146,6 @@
/* OTHER HEADER INFO */
/* ---------------------------------------------------------------- */
-/* Define if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
@@ -384,7 +378,6 @@
#ifdef USE_LWIPSOCK
# undef USE_WINSOCK
-# undef HAVE_WINSOCK_H
# undef HAVE_WINSOCK2_H
# undef HAVE_WS2TCPIP_H
# undef HAVE_ERRNO_H
@@ -415,7 +408,6 @@
#undef byte
#undef word
#undef USE_WINSOCK
- #undef HAVE_WINSOCK_H
#undef HAVE_WINSOCK2_H
#undef HAVE_WS2TCPIP_H
#define HAVE_GETADDRINFO
diff --git a/lib/config-win32ce.h b/lib/config-win32ce.h
index f3f02e720..889028b26 100644
--- a/lib/config-win32ce.h
+++ b/lib/config-win32ce.h
@@ -110,22 +110,16 @@
/* Define if you have the <windows.h> header file. */
#define HAVE_WINDOWS_H 1
-/* Define if you have the <winsock.h> header file. */
-#define HAVE_WINSOCK_H 1
-
/* Define if you have the <winsock2.h> header file. */
-/* #define HAVE_WINSOCK2_H 1 */
+#define HAVE_WINSOCK2_H 1
/* Define if you have the <ws2tcpip.h> header file. */
-/* #define HAVE_WS2TCPIP_H 1 */
+#define HAVE_WS2TCPIP_H 1
/* ---------------------------------------------------------------- */
/* OTHER HEADER INFO */
/* ---------------------------------------------------------------- */
-/* Define if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
diff --git a/lib/connect.c b/lib/connect.c
index 11e6b888b..af6094731 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -85,7 +85,7 @@
static bool verifyconnect(curl_socket_t sockfd, int *error);
-#if defined(__DragonFly__) || defined(HAVE_WINSOCK_H)
+#if defined(__DragonFly__) || defined(HAVE_WINSOCK2_H)
/* DragonFlyBSD and Windows use millisecond units */
#define KEEPALIVE_FACTOR(x) (x *= 1000)
#else
@@ -589,12 +589,10 @@ static CURLcode trynextip(struct Curl_easy *data,
struct Curl_addrinfo *ai = conn->tempaddr[tempindex];
while(ai) {
- if(ai) {
- result = singleipconnect(data, conn, ai, tempindex);
- if(result == CURLE_COULDNT_CONNECT) {
- ai = ainext(conn, tempindex, TRUE);
- continue;
- }
+ result = singleipconnect(data, conn, ai, tempindex);
+ if(result == CURLE_COULDNT_CONNECT) {
+ ai = ainext(conn, tempindex, TRUE);
+ continue;
}
break;
}
@@ -631,7 +629,7 @@ bool Curl_addr2string(struct sockaddr *sa, curl_socklen_t salen,
#ifdef ENABLE_IPV6
struct sockaddr_in6 *si6 = NULL;
#endif
-#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
+#if (defined(HAVE_SYS_UN_H) || defined(WIN32_SOCKADDR_UN)) && defined(AF_UNIX)
struct sockaddr_un *su = NULL;
#else
(void)salen;
@@ -658,7 +656,7 @@ bool Curl_addr2string(struct sockaddr *sa, curl_socklen_t salen,
}
break;
#endif
-#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
+#if (defined(HAVE_SYS_UN_H) || defined(WIN32_SOCKADDR_UN)) && defined(AF_UNIX)
case AF_UNIX:
if(salen > (curl_socklen_t)sizeof(CURL_SA_FAMILY_T)) {
su = (struct sockaddr_un*)sa;
@@ -746,18 +744,15 @@ void Curl_conninfo_local(struct Curl_easy *data, curl_socket_t sockfd,
void Curl_updateconninfo(struct Curl_easy *data, struct connectdata *conn,
curl_socket_t sockfd)
{
- /* 'local_ip' and 'local_port' get filled with local's numerical
- ip address and port number whenever an outgoing connection is
- **established** from the primary socket to a remote address. */
+ /* 'local_ip' and 'local_port' get filled with local's numerical ip address
+ and port number whenever an outgoing connection is **established** from
+ the primary socket to a remote address. */
char local_ip[MAX_IPADR_LEN] = "";
int local_port = -1;
- if(conn->transport == TRNSPRT_TCP) {
- if(!conn->bits.reuse && !conn->bits.tcp_fastopen) {
- Curl_conninfo_remote(data, conn, sockfd);
- Curl_conninfo_local(data, sockfd, local_ip, &local_port);
- }
- } /* end of TCP-only section */
+ if(!conn->bits.reuse && !conn->bits.tcp_fastopen)
+ Curl_conninfo_remote(data, conn, sockfd);
+ Curl_conninfo_local(data, sockfd, local_ip, &local_port);
/* persist connection info in session handle */
Curl_persistconninfo(data, conn, local_ip, local_port);
diff --git a/lib/content_encoding.c b/lib/content_encoding.c
index a84ff543b..c03637a39 100644
--- a/lib/content_encoding.c
+++ b/lib/content_encoding.c
@@ -240,7 +240,8 @@ static CURLcode inflate_stream(struct Curl_easy *data,
}
zp->zlib_init = ZLIB_UNINIT; /* inflateEnd() already called. */
}
- /* FALLTHROUGH */
+ result = exit_zlib(data, z, &zp->zlib_init, process_zlib_error(data, z));
+ break;
default:
result = exit_zlib(data, z, &zp->zlib_init, process_zlib_error(data, z));
break;
diff --git a/lib/curl_config.h b/lib/curl_config.h
index 0961ee94c..c46f32ba4 100644
--- a/lib/curl_config.h
+++ b/lib/curl_config.h
@@ -589,12 +589,6 @@
/* Define to 1 if you have the sigsetjmp function or macro. */
/* #undef HAVE_SIGSETJMP */
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
-
/* Define to 1 if struct sockaddr_in6 has the sin6_scope_id member */
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
@@ -622,6 +616,9 @@
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
@@ -766,9 +763,6 @@
/* 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 */
@@ -907,7 +901,9 @@
/* The number of bytes in type short */
#define SIZEOF_SHORT 2
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
#define STDC_HEADERS 1
/* Define to the type of arg 3 for strerror_r. */
@@ -1041,11 +1037,6 @@
/* # undef _ALL_SOURCE */
#endif
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
/* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64
diff --git a/lib/curl_config.h.cmake b/lib/curl_config.h.cmake
index fa4f19c74..d2a0f438c 100644
--- a/lib/curl_config.h.cmake
+++ b/lib/curl_config.h.cmake
@@ -33,61 +33,91 @@
/* Location of default ca path */
#cmakedefine CURL_CA_PATH "${CURL_CA_PATH}"
-/* to disable cookies support */
+/* disables alt-svc */
+#cmakedefine CURL_DISABLE_ALTSVC 1
+
+/* disables cookies support */
#cmakedefine CURL_DISABLE_COOKIES 1
-/* to disable cryptographic authentication */
+/* disables cryptographic authentication */
#cmakedefine CURL_DISABLE_CRYPTO_AUTH 1
-/* to disable DICT */
+/* disables DICT */
#cmakedefine CURL_DISABLE_DICT 1
-/* to disable FILE */
+/* disables DNS-over-HTTPS */
+#cmakedefine CURL_DISABLE_DOH 1
+
+/* disables FILE */
#cmakedefine CURL_DISABLE_FILE 1
-/* to disable FTP */
+/* disables FTP */
#cmakedefine CURL_DISABLE_FTP 1
-/* to disable GOPHER */
+/* disables GOPHER */
#cmakedefine CURL_DISABLE_GOPHER 1
-/* to disable IMAP */
-#cmakedefine CURL_DISABLE_IMAP 1
+/* disables HSTS support */
+#cmakedefine CURL_DISABLE_HSTS 1
-/* to disable HTTP */
+/* disables HTTP */
#cmakedefine CURL_DISABLE_HTTP 1
-/* to disable LDAP */
+/* disables IMAP */
+#cmakedefine CURL_DISABLE_IMAP 1
+
+/* disables LDAP */
#cmakedefine CURL_DISABLE_LDAP 1
-/* to disable LDAPS */
+/* disables LDAPS */
#cmakedefine CURL_DISABLE_LDAPS 1
-/* to disable MQTT */
+/* disables --libcurl option from the curl tool */
+#cmakedefine CURL_DISABLE_LIBCURL_OPTION 1
+
+/* disables MIME support */
+#cmakedefine CURL_DISABLE_MIME 1
+
+/* disables MQTT */
#cmakedefine CURL_DISABLE_MQTT 1
-/* to disable POP3 */
+/* disables netrc parser */
+#cmakedefine CURL_DISABLE_NETRC 1
+
+/* disables NTLM support */
+#cmakedefine CURL_DISABLE_NTLM 1
+
+/* disables date parsing */
+#cmakedefine CURL_DISABLE_PARSEDATE 1
+
+/* disables POP3 */
#cmakedefine CURL_DISABLE_POP3 1
-/* to disable proxies */
+/* disables built-in progress meter */
+#cmakedefine CURL_DISABLE_PROGRESS_METER 1
+
+/* disables proxies */
#cmakedefine CURL_DISABLE_PROXY 1
-/* to disable RTSP */
+/* disables RTSP */
#cmakedefine CURL_DISABLE_RTSP 1
-/* to disable SMB */
+/* disables SMB */
#cmakedefine CURL_DISABLE_SMB 1
-/* to disable SMTP */
+/* disables SMTP */
#cmakedefine CURL_DISABLE_SMTP 1
-/* to disable TELNET */
+/* disables use of socketpair for curl_multi_poll */
+#cmakedefine CURL_DISABLE_SOCKETPAIR 1
+
+/* disables TELNET */
#cmakedefine CURL_DISABLE_TELNET 1
-/* to disable TFTP */
+/* disables TFTP */
#cmakedefine CURL_DISABLE_TFTP 1
-/* to disable verbose strings */
+/* disables verbose strings */
#cmakedefine CURL_DISABLE_VERBOSE_STRINGS 1
/* to make a symbol visible */
@@ -521,12 +551,6 @@
/* Define to 1 if you have the sigsetjmp function or macro. */
#cmakedefine HAVE_SIGSETJMP 1
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#cmakedefine HAVE_SIG_ATOMIC_T 1
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-#cmakedefine HAVE_SIG_ATOMIC_T_VOLATILE 1
-
/* Define to 1 if struct sockaddr_in6 has the sin6_scope_id member */
#cmakedefine HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
@@ -686,9 +710,6 @@
/* Define to 1 if you have the winsock2.h header file. */
#cmakedefine HAVE_WINSOCK2_H 1
-/* Define to 1 if you have the winsock.h header file. */
-#cmakedefine HAVE_WINSOCK_H 1
-
/* Define this symbol if your OS supports changing the contents of argv */
#cmakedefine HAVE_WRITABLE_ARGV 1
@@ -931,9 +952,6 @@ ${SIZEOF_TIME_T_CODE}
/* if Unix domain sockets are enabled */
#cmakedefine USE_UNIX_SOCKETS
-/* to disable alt-svc */
-#cmakedefine CURL_DISABLE_ALTSVC 1
-
/* Define to 1 if you are building a Windows target with large file support. */
#cmakedefine USE_WIN32_LARGE_FILES 1
diff --git a/lib/curl_config.h.in b/lib/curl_config.h.in
index 5a8190f8c..751f6a4f6 100644
--- a/lib/curl_config.h.in
+++ b/lib/curl_config.h.in
@@ -588,12 +588,6 @@
/* Define to 1 if you have the sigsetjmp function or macro. */
#undef HAVE_SIGSETJMP
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#undef HAVE_SIG_ATOMIC_T
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-#undef HAVE_SIG_ATOMIC_T_VOLATILE
-
/* Define to 1 if struct sockaddr_in6 has the sin6_scope_id member */
#undef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
@@ -621,6 +615,9 @@
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
@@ -765,9 +762,6 @@
/* 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
@@ -924,7 +918,9 @@
/* The number of bytes in type time_t */
#undef SIZEOF_TIME_T
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
#undef STDC_HEADERS
/* Define to the type of arg 3 for strerror_r. */
@@ -1058,11 +1054,6 @@
# undef _ALL_SOURCE
#endif
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
diff --git a/lib/curl_des.c b/lib/curl_des.c
index 8c5af19cd..76185cbf2 100644
--- a/lib/curl_des.c
+++ b/lib/curl_des.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2015 - 2020, Steve Holme, <steve_holme@hotmail.com>.
+ * Copyright (C) 2015 - 2021, 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
@@ -22,7 +22,7 @@
#include "curl_setup.h"
-#if defined(USE_NTLM) && !defined(USE_OPENSSL)
+#if defined(USE_NTLM) && !defined(USE_OPENSSL) && !defined(USE_WOLFSSL)
#include "curl_des.h"
diff --git a/lib/curl_gssapi.c b/lib/curl_gssapi.c
index 5810dad14..8f340562b 100644
--- a/lib/curl_gssapi.c
+++ b/lib/curl_gssapi.c
@@ -32,10 +32,12 @@
#include "curl_memory.h"
#include "memdebug.h"
-static char spnego_oid_bytes[] = "\x2b\x06\x01\x05\x05\x02";
-gss_OID_desc Curl_spnego_mech_oid = { 6, &spnego_oid_bytes };
-static char krb5_oid_bytes[] = "\x2a\x86\x48\x86\xf7\x12\x01\x02\x02";
-gss_OID_desc Curl_krb5_mech_oid = { 9, &krb5_oid_bytes };
+gss_OID_desc Curl_spnego_mech_oid = {
+ 6, (char *)"\x2b\x06\x01\x05\x05\x02"
+};
+gss_OID_desc Curl_krb5_mech_oid = {
+ 9, (char *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x02"
+};
OM_uint32 Curl_gss_init_sec_context(
struct Curl_easy *data,
diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
index 749b44e4a..ed123d0c1 100644
--- a/lib/curl_ntlm_core.c
+++ b/lib/curl_ntlm_core.c
@@ -49,7 +49,14 @@
in NTLM type-3 messages.
*/
-#if defined(USE_OPENSSL) || defined(USE_WOLFSSL)
+#if defined(USE_OPENSSL)
+ #include <openssl/opensslconf.h>
+ #if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
+ #define USE_OPENSSL_DES
+ #endif
+#endif
+
+#if defined(USE_OPENSSL_DES) || defined(USE_WOLFSSL)
#ifdef USE_WOLFSSL
#include <wolfssl/options.h>
@@ -97,7 +104,7 @@
#elif defined(USE_WIN32_CRYPTO)
# include <wincrypt.h>
#else
-# error "Can't compile NTLM support without a crypto library."
+# error "Can't compile NTLM support without a crypto library with DES."
#endif
#include "urldata.h"
@@ -133,7 +140,7 @@ static void extend_key_56_to_64(const unsigned char *key_56, char *key)
key[7] = (unsigned char) ((key_56[6] << 1) & 0xFF);
}
-#if defined(USE_OPENSSL) || defined(USE_WOLFSSL)
+#if defined(USE_OPENSSL_DES) || defined(USE_WOLFSSL)
/*
* Turns a 56 bit key into the 64 bit, odd parity key and sets the key. The
* key schedule ks is also set.
@@ -150,7 +157,7 @@ static void setup_des_key(const unsigned char *key_56,
DES_set_odd_parity(&key);
/* Set the key */
- DES_set_key(&key, ks);
+ DES_set_key_unchecked(&key, ks);
}
#elif defined(USE_GNUTLS)
@@ -362,7 +369,7 @@ void Curl_ntlm_core_lm_resp(const unsigned char *keys,
const unsigned char *plaintext,
unsigned char *results)
{
-#if defined(USE_OPENSSL) || defined(USE_WOLFSSL)
+#if defined(USE_OPENSSL_DES) || defined(USE_WOLFSSL)
DES_key_schedule ks;
setup_des_key(keys, DESKEY(ks));
@@ -420,7 +427,7 @@ CURLcode Curl_ntlm_core_mk_lm_hash(struct Curl_easy *data,
{
/* Create LanManager hashed password. */
-#if defined(USE_OPENSSL) || defined(USE_WOLFSSL)
+#if defined(USE_OPENSSL_DES) || defined(USE_WOLFSSL)
DES_key_schedule ks;
setup_des_key(pw, DESKEY(ks));
diff --git a/lib/curl_ntlm_wb.c b/lib/curl_ntlm_wb.c
index ca9e2874a..5a3bc3c89 100644
--- a/lib/curl_ntlm_wb.c
+++ b/lib/curl_ntlm_wb.c
@@ -426,7 +426,8 @@ CURLcode Curl_output_ntlm_wb(struct Curl_easy *data, struct connectdata *conn,
/* Use Samba's 'winbind' daemon to support NTLM authentication,
* by delegating the NTLM challenge/response protocol to a helper
* in ntlm_auth.
- * http://devel.squid-cache.org/ntlm/squid_helper_protocol.html
+ * https://web.archive.org/web/20190925164737
+ * /devel.squid-cache.org/ntlm/squid_helper_protocol.html
* https://www.samba.org/samba/docs/man/manpages-3/winbindd.8.html
* https://www.samba.org/samba/docs/man/manpages-3/ntlm_auth.1.html
* Preprocessor symbol 'NTLM_WB_ENABLED' is defined when this
diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c
index f5ac99a68..8d39e4f81 100644
--- a/lib/curl_sasl.c
+++ b/lib/curl_sasl.c
@@ -56,8 +56,8 @@
/* Supported mechanisms */
static const struct {
- const char *name; /* Name */
- size_t len; /* Name length */
+ const char *name; /* Name */
+ size_t len; /* Name length */
unsigned short bit; /* Flag bit */
} mechtable[] = {
{ "LOGIN", 5, SASL_MECH_LOGIN },
@@ -85,8 +85,11 @@ static const struct {
* conn [in] - The connection data.
* authused [in] - The authentication mechanism used.
*/
-void Curl_sasl_cleanup(struct connectdata *conn, unsigned int authused)
+void Curl_sasl_cleanup(struct connectdata *conn, unsigned short authused)
{
+ (void)conn;
+ (void)authused;
+
#if defined(USE_KERBEROS5)
/* Cleanup the gssapi structure */
if(authused == SASL_MECH_GSSAPI) {
@@ -107,12 +110,6 @@ void Curl_sasl_cleanup(struct connectdata *conn, unsigned int authused)
Curl_auth_cleanup_ntlm(&conn->ntlm);
}
#endif
-
-#if !defined(USE_KERBEROS5) && !defined(USE_NTLM)
- /* Reserved for future use */
- (void)conn;
- (void)authused;
-#endif
}
/*
@@ -189,16 +186,35 @@ CURLcode Curl_sasl_parse_url_auth_option(struct SASL *sasl,
*
* Initializes the SASL structure.
*/
-void Curl_sasl_init(struct SASL *sasl, const struct SASLproto *params)
+void Curl_sasl_init(struct SASL *sasl, struct Curl_easy *data,
+ const struct SASLproto *params)
{
+ unsigned long auth = data->set.httpauth;
+
sasl->params = params; /* Set protocol dependent parameters */
sasl->state = SASL_STOP; /* Not yet running */
+ sasl->curmech = NULL; /* No mechanism yet. */
sasl->authmechs = SASL_AUTH_NONE; /* No known authentication mechanism yet */
- sasl->prefmech = SASL_AUTH_DEFAULT; /* Prefer all mechanisms */
- sasl->authused = SASL_AUTH_NONE; /* No the authentication mechanism used */
+ sasl->prefmech = params->defmechs; /* Default preferred mechanisms */
+ sasl->authused = SASL_AUTH_NONE; /* The authentication mechanism used */
sasl->resetprefs = TRUE; /* Reset prefmech upon AUTH parsing. */
sasl->mutual_auth = FALSE; /* No mutual authentication (GSSAPI only) */
sasl->force_ir = FALSE; /* Respect external option */
+
+ if(auth != CURLAUTH_BASIC) {
+ sasl->resetprefs = FALSE;
+ sasl->prefmech = SASL_AUTH_NONE;
+ if(auth & CURLAUTH_BASIC)
+ sasl->prefmech |= SASL_MECH_PLAIN | SASL_MECH_LOGIN;
+ if(auth & CURLAUTH_DIGEST)
+ sasl->prefmech |= SASL_MECH_DIGEST_MD5;
+ if(auth & CURLAUTH_NTLM)
+ sasl->prefmech |= SASL_MECH_NTLM;
+ if(auth & CURLAUTH_BEARER)
+ sasl->prefmech |= SASL_MECH_OAUTHBEARER | SASL_MECH_XOAUTH2;
+ if(auth & CURLAUTH_GSSAPI)
+ sasl->prefmech |= SASL_MECH_GSSAPI;
+ }
}
/*
@@ -247,40 +263,45 @@ static void state(struct SASL *sasl, struct Curl_easy *data,
static CURLcode get_server_message(struct SASL *sasl, struct Curl_easy *data,
struct bufref *out)
{
- unsigned char *msg;
- size_t msglen;
- char *serverdata = NULL;
CURLcode result = CURLE_OK;
- sasl->params->getmessage(data->state.buffer, &serverdata);
- if(!serverdata)
- result = CURLE_BAD_CONTENT_ENCODING;
- else if(!*serverdata || *serverdata == '=')
- Curl_bufref_set(out, NULL, 0, NULL);
- else {
- result = Curl_base64_decode(serverdata, &msg, &msglen);
- if(!result)
- Curl_bufref_set(out, msg, msglen, curl_free);
+ result = sasl->params->getmessage(data, out);
+ if(!result && (sasl->params->flags & SASL_FLAG_BASE64)) {
+ unsigned char *msg;
+ size_t msglen;
+ const char *serverdata = (const char *) Curl_bufref_ptr(out);
+
+ if(!*serverdata || *serverdata == '=')
+ Curl_bufref_set(out, NULL, 0, NULL);
+ else {
+ result = Curl_base64_decode(serverdata, &msg, &msglen);
+ if(!result)
+ Curl_bufref_set(out, msg, msglen, curl_free);
+ }
}
return result;
}
/* Encode the outgoing SASL message. */
-static CURLcode build_message(struct Curl_easy *data, struct bufref *msg)
+static CURLcode build_message(struct SASL *sasl, struct Curl_easy *data,
+ struct bufref *msg)
{
CURLcode result = CURLE_OK;
- char *base64;
- size_t base64len;
- if(!Curl_bufref_ptr(msg)) /* Empty mesage. */
- Curl_bufref_set(msg, "", 0, NULL);
- else if(!Curl_bufref_len(msg)) /* Explicit empty response. */
- Curl_bufref_set(msg, "=", 1, NULL);
- else {
- result = Curl_base64_encode(data, (const char *) Curl_bufref_ptr(msg),
- Curl_bufref_len(msg), &base64, &base64len);
- if(!result)
- Curl_bufref_set(msg, base64, base64len, curl_free);
+ if(sasl->params->flags & SASL_FLAG_BASE64) {
+ if(!Curl_bufref_ptr(msg)) /* Empty message. */
+ Curl_bufref_set(msg, "", 0, NULL);
+ else if(!Curl_bufref_len(msg)) /* Explicit empty response. */
+ Curl_bufref_set(msg, "=", 1, NULL);
+ else {
+ char *base64;
+ size_t base64len;
+
+ result = Curl_base64_encode(data, (const char *) Curl_bufref_ptr(msg),
+ Curl_bufref_len(msg), &base64, &base64len);
+ if(!result)
+ Curl_bufref_set(msg, base64, base64len, curl_free);
+ }
}
return result;
@@ -310,11 +331,11 @@ bool Curl_sasl_can_authenticate(struct SASL *sasl, struct connectdata *conn)
* Calculate the required login details for SASL authentication.
*/
CURLcode Curl_sasl_start(struct SASL *sasl, struct Curl_easy *data,
- struct connectdata *conn,
bool force_ir, saslprogress *progress)
{
CURLcode result = CURLE_OK;
- unsigned int enabledmechs;
+ struct connectdata *conn = data->conn;
+ unsigned short enabledmechs;
const char *mech = NULL;
struct bufref resp;
saslstate state1 = SASL_STOP;
@@ -471,16 +492,16 @@ CURLcode Curl_sasl_start(struct SASL *sasl, struct Curl_easy *data,
}
if(!result && mech) {
+ sasl->curmech = mech;
if(Curl_bufref_ptr(&resp))
- result = build_message(data, &resp);
+ result = build_message(sasl, data, &resp);
if(sasl->params->maxirlen &&
strlen(mech) + Curl_bufref_len(&resp) > sasl->params->maxirlen)
Curl_bufref_free(&resp);
if(!result)
- result = sasl->params->sendauth(data, conn, mech,
- (const char *) Curl_bufref_ptr(&resp));
+ result = sasl->params->sendauth(data, mech, &resp);
if(!result) {
*progress = SASL_INPROGRESS;
@@ -498,10 +519,10 @@ CURLcode Curl_sasl_start(struct SASL *sasl, struct Curl_easy *data,
* Continue the authentication.
*/
CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
- struct connectdata *conn,
int code, saslprogress *progress)
{
CURLcode result = CURLE_OK;
+ struct connectdata *conn = data->conn;
saslstate newstate = SASL_FINAL;
struct bufref resp;
const char * const hostname = SSL_HOST_NAME();
@@ -574,7 +595,8 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
result = Curl_auth_create_digest_md5_message(data, &serverdata,
conn->user, conn->passwd,
service, &resp);
- newstate = SASL_DIGESTMD5_RESP;
+ if(!result && (sasl->params->flags & SASL_FLAG_BASE64))
+ newstate = SASL_DIGESTMD5_RESP;
break;
case SASL_DIGESTMD5_RESP:
/* Keep response NULL to output an empty line. */
@@ -630,7 +652,9 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
}
else
/* Decode the security challenge and create the response message */
- result = Curl_auth_create_gssapi_security_message(data, &serverdata,
+ result = Curl_auth_create_gssapi_security_message(data,
+ conn->sasl_authzid,
+ &serverdata,
&conn->krb5,
&resp);
}
@@ -639,7 +663,9 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
/* Decode the security challenge and create the response message */
result = get_server_message(sasl, data, &serverdata);
if(!result)
- result = Curl_auth_create_gssapi_security_message(data, &serverdata,
+ result = Curl_auth_create_gssapi_security_message(data,
+ conn->sasl_authzid,
+ &serverdata,
&conn->krb5,
&resp);
break;
@@ -687,7 +713,7 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
sasl->authmechs ^= sasl->authused;
/* Start an alternative SASL authentication */
- return Curl_sasl_start(sasl, data, conn, sasl->force_ir, progress);
+ return Curl_sasl_start(sasl, data, sasl->force_ir, progress);
default:
failf(data, "Unsupported SASL authentication mechanism");
result = CURLE_UNSUPPORTED_PROTOCOL; /* Should not happen */
@@ -699,14 +725,13 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
switch(result) {
case CURLE_BAD_CONTENT_ENCODING:
/* Cancel dialog */
- result = sasl->params->sendcont(data, conn, "*");
+ result = sasl->params->cancelauth(data, sasl->curmech);
newstate = SASL_CANCEL;
break;
case CURLE_OK:
- result = build_message(data, &resp);
+ result = build_message(sasl, data, &resp);
if(!result)
- result = sasl->params->sendcont(data, conn,
- (const char *) Curl_bufref_ptr(&resp));
+ result = sasl->params->contauth(data, sasl->curmech, &resp);
break;
default:
newstate = SASL_STOP; /* Stop on error */
diff --git a/lib/curl_sasl.h b/lib/curl_sasl.h
index e17d323eb..91458c74a 100644
--- a/lib/curl_sasl.h
+++ b/lib/curl_sasl.h
@@ -24,6 +24,8 @@
#include <curl/curl.h>
+#include "bufref.h"
+
struct Curl_easy;
struct connectdata;
@@ -46,17 +48,20 @@ struct connectdata;
#define SASL_AUTH_DEFAULT (SASL_AUTH_ANY & ~SASL_MECH_EXTERNAL)
/* Authentication mechanism strings */
-#define SASL_MECH_STRING_LOGIN "LOGIN"
-#define SASL_MECH_STRING_PLAIN "PLAIN"
-#define SASL_MECH_STRING_CRAM_MD5 "CRAM-MD5"
-#define SASL_MECH_STRING_DIGEST_MD5 "DIGEST-MD5"
-#define SASL_MECH_STRING_GSSAPI "GSSAPI"
-#define SASL_MECH_STRING_EXTERNAL "EXTERNAL"
-#define SASL_MECH_STRING_NTLM "NTLM"
-#define SASL_MECH_STRING_XOAUTH2 "XOAUTH2"
-#define SASL_MECH_STRING_OAUTHBEARER "OAUTHBEARER"
-#define SASL_MECH_STRING_SCRAM_SHA_1 "SCRAM-SHA-1"
-#define SASL_MECH_STRING_SCRAM_SHA_256 "SCRAM-SHA-256"
+#define SASL_MECH_STRING_LOGIN "LOGIN"
+#define SASL_MECH_STRING_PLAIN "PLAIN"
+#define SASL_MECH_STRING_CRAM_MD5 "CRAM-MD5"
+#define SASL_MECH_STRING_DIGEST_MD5 "DIGEST-MD5"
+#define SASL_MECH_STRING_GSSAPI "GSSAPI"
+#define SASL_MECH_STRING_EXTERNAL "EXTERNAL"
+#define SASL_MECH_STRING_NTLM "NTLM"
+#define SASL_MECH_STRING_XOAUTH2 "XOAUTH2"
+#define SASL_MECH_STRING_OAUTHBEARER "OAUTHBEARER"
+#define SASL_MECH_STRING_SCRAM_SHA_1 "SCRAM-SHA-1"
+#define SASL_MECH_STRING_SCRAM_SHA_256 "SCRAM-SHA-256"
+
+/* SASL flags */
+#define SASL_FLAG_BASE64 0x0001 /* Messages are base64-encoded */
/* SASL machine states */
typedef enum {
@@ -90,30 +95,37 @@ typedef enum {
/* Protocol dependent SASL parameters */
struct SASLproto {
const char *service; /* The service name */
- int contcode; /* Code to receive when continuation is expected */
- int finalcode; /* Code to receive upon authentication success */
- size_t maxirlen; /* Maximum initial response length */
- CURLcode (*sendauth)(struct Curl_easy *data,
- struct connectdata *conn,
- const char *mech, const char *ir);
+ CURLcode (*sendauth)(struct Curl_easy *data, const char *mech,
+ const struct bufref *ir);
/* Send authentication command */
- CURLcode (*sendcont)(struct Curl_easy *data,
- struct connectdata *conn, const char *contauth);
+ CURLcode (*contauth)(struct Curl_easy *data, const char *mech,
+ const struct bufref *contauth);
/* Send authentication continuation */
- void (*getmessage)(char *buffer, char **outptr);
+ CURLcode (*cancelauth)(struct Curl_easy *data, const char *mech);
+ /* Cancel authentication. */
+ CURLcode (*getmessage)(struct Curl_easy *data, struct bufref *out);
/* Get SASL response message */
+ size_t maxirlen; /* Maximum initial response + mechanism length,
+ or zero if no max. This is normally the max
+ command length - other characters count.
+ This has to be zero for non-base64 protocols. */
+ int contcode; /* Code to receive when continuation is expected */
+ int finalcode; /* Code to receive upon authentication success */
+ unsigned short defmechs; /* Mechanisms enabled by default */
+ unsigned short flags; /* Configuration flags. */
};
/* Per-connection parameters */
struct SASL {
const struct SASLproto *params; /* Protocol dependent parameters */
- saslstate state; /* Current machine state */
+ saslstate state; /* Current machine state */
+ const char *curmech; /* Current mechanism id. */
unsigned short authmechs; /* Accepted authentication mechanisms */
unsigned short prefmech; /* Preferred authentication mechanism */
unsigned short authused; /* Auth mechanism used for the connection */
- bool resetprefs; /* For URL auth option parsing. */
- bool mutual_auth; /* Mutual authentication enabled (GSSAPI only) */
- bool force_ir; /* Protocol always supports initial response */
+ bool resetprefs; /* For URL auth option parsing. */
+ bool mutual_auth; /* Mutual authentication enabled (GSSAPI only) */
+ bool force_ir; /* Protocol always supports initial response */
};
/* This is used to test whether the line starts with the given mechanism */
@@ -123,7 +135,7 @@ struct SASL {
/* This is used to cleanup any libraries or curl modules used by the sasl
functions */
-void Curl_sasl_cleanup(struct connectdata *conn, unsigned int authused);
+void Curl_sasl_cleanup(struct connectdata *conn, unsigned short authused);
/* Convert a mechanism name to a token */
unsigned short Curl_sasl_decode_mech(const char *ptr,
@@ -134,19 +146,18 @@ CURLcode Curl_sasl_parse_url_auth_option(struct SASL *sasl,
const char *value, size_t len);
/* Initializes an SASL structure */
-void Curl_sasl_init(struct SASL *sasl, const struct SASLproto *params);
+void Curl_sasl_init(struct SASL *sasl, struct Curl_easy *data,
+ const struct SASLproto *params);
/* Check if we have enough auth data and capabilities to authenticate */
bool Curl_sasl_can_authenticate(struct SASL *sasl, struct connectdata *conn);
/* Calculate the required login details for SASL authentication */
CURLcode Curl_sasl_start(struct SASL *sasl, struct Curl_easy *data,
- struct connectdata *conn,
bool force_ir, saslprogress *progress);
/* Continue an SASL authentication */
CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,
- struct connectdata *conn,
int code, saslprogress *progress);
#endif /* HEADER_CURL_SASL_H */
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index c0861d79b..61384cdff 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -166,41 +166,47 @@
*/
#ifdef HTTP_ONLY
-# ifndef CURL_DISABLE_TFTP
-# define CURL_DISABLE_TFTP
+# ifndef CURL_DISABLE_DICT
+# define CURL_DISABLE_DICT
+# endif
+# ifndef CURL_DISABLE_FILE
+# define CURL_DISABLE_FILE
# endif
# ifndef CURL_DISABLE_FTP
# define CURL_DISABLE_FTP
# endif
+# ifndef CURL_DISABLE_GOPHER
+# define CURL_DISABLE_GOPHER
+# endif
+# ifndef CURL_DISABLE_IMAP
+# define CURL_DISABLE_IMAP
+# endif
# ifndef CURL_DISABLE_LDAP
# define CURL_DISABLE_LDAP
# endif
-# ifndef CURL_DISABLE_TELNET
-# define CURL_DISABLE_TELNET
+# ifndef CURL_DISABLE_LDAPS
+# define CURL_DISABLE_LDAPS
# endif
-# ifndef CURL_DISABLE_DICT
-# define CURL_DISABLE_DICT
+# ifndef CURL_DISABLE_MQTT
+# define CURL_DISABLE_MQTT
# endif
-# ifndef CURL_DISABLE_FILE
-# define CURL_DISABLE_FILE
+# ifndef CURL_DISABLE_POP3
+# define CURL_DISABLE_POP3
# endif
# ifndef CURL_DISABLE_RTSP
# define CURL_DISABLE_RTSP
# endif
-# ifndef CURL_DISABLE_POP3
-# define CURL_DISABLE_POP3
-# endif
-# ifndef CURL_DISABLE_IMAP
-# define CURL_DISABLE_IMAP
+# ifndef CURL_DISABLE_SMB
+# define CURL_DISABLE_SMB
# endif
# ifndef CURL_DISABLE_SMTP
# define CURL_DISABLE_SMTP
# endif
-# ifndef CURL_DISABLE_GOPHER
-# define CURL_DISABLE_GOPHER
+# ifndef CURL_DISABLE_TELNET
+# define CURL_DISABLE_TELNET
# endif
-# ifndef CURL_DISABLE_SMB
-# define CURL_DISABLE_SMB
+# ifndef CURL_DISABLE_TFTP
+# define CURL_DISABLE_TFTP
# endif
#endif
@@ -711,7 +717,6 @@ int netware_init(void);
#if defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)
# if defined(SOCKET) || \
defined(USE_WINSOCK) || \
- defined(HAVE_WINSOCK_H) || \
defined(HAVE_WINSOCK2_H) || \
defined(HAVE_WS2TCPIP_H)
# error "WinSock and lwIP TCP/IP stack definitions shall not coexist!"
@@ -833,6 +838,7 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
ADDRESS_FAMILY sun_family;
char sun_path[UNIX_PATH_MAX];
} SOCKADDR_UN, *PSOCKADDR_UN;
+# define WIN32_SOCKADDR_UN
# endif
#endif
diff --git a/lib/curl_setup_once.h b/lib/curl_setup_once.h
index 22d0a063e..38018d23c 100644
--- a/lib/curl_setup_once.h
+++ b/lib/curl_setup_once.h
@@ -323,26 +323,6 @@ struct timeval {
#include "curl_ctype.h"
-/*
- * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
- */
-
-#ifndef HAVE_SIG_ATOMIC_T
-typedef int sig_atomic_t;
-#define HAVE_SIG_ATOMIC_T
-#endif
-
-
-/*
- * Convenience SIG_ATOMIC_T definition
- */
-
-#ifdef HAVE_SIG_ATOMIC_T_VOLATILE
-#define SIG_ATOMIC_T static sig_atomic_t
-#else
-#define SIG_ATOMIC_T static volatile sig_atomic_t
-#endif
-
/*
* Macro used to include code only in debug builds.
diff --git a/lib/curl_sha256.h b/lib/curl_sha256.h
index b4579d769..b14c475ef 100644
--- a/lib/curl_sha256.h
+++ b/lib/curl_sha256.h
@@ -8,7 +8,7 @@
* \___|\___/|_| \_\_____|
*
* Copyright (C) 2017, Florin Petriuc, <petriuc.florin@gmail.com>
- * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2018 - 2021, 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
@@ -28,7 +28,14 @@
extern const struct HMAC_params Curl_HMAC_SHA256[1];
+#ifdef USE_WOLFSSL
+/* SHA256_DIGEST_LENGTH is an enum value in wolfSSL. Need to import it from
+ * sha.h*/
+#include <wolfssl/options.h>
+#include <openssl/sha.h>
+#else
#define SHA256_DIGEST_LENGTH 32
+#endif
void Curl_sha256it(unsigned char *outbuffer, const unsigned char *input,
const size_t len);
diff --git a/lib/doh.c b/lib/doh.c
index de0c902b8..d6a216770 100644
--- a/lib/doh.c
+++ b/lib/doh.c
@@ -235,25 +235,6 @@ static CURLcode dohprobe(struct Curl_easy *data,
p->dnstype = dnstype;
Curl_dyn_init(&p->serverdoh, DYN_DOH_RESPONSE);
- /* Note: this is code for sending the DoH request with GET but there's still
- no logic that actually enables this. We should either add that ability or
- yank out the GET code. Discuss! */
- if(data->set.doh_get) {
- char *b64;
- size_t b64len;
- result = Curl_base64url_encode(data, (char *)p->dohbuffer, p->dohlen,
- &b64, &b64len);
- if(result)
- goto error;
- nurl = aprintf("%s?dns=%s", url, b64);
- free(b64);
- if(!nurl) {
- result = CURLE_OUT_OF_MEMORY;
- goto error;
- }
- url = nurl;
- }
-
timeout_ms = Curl_timeleft(data, NULL, TRUE);
if(timeout_ms <= 0) {
result = CURLE_OPERATION_TIMEDOUT;
@@ -268,10 +249,8 @@ static CURLcode dohprobe(struct Curl_easy *data,
ERROR_CHECK_SETOPT(CURLOPT_URL, url);
ERROR_CHECK_SETOPT(CURLOPT_WRITEFUNCTION, doh_write_cb);
ERROR_CHECK_SETOPT(CURLOPT_WRITEDATA, resp);
- if(!data->set.doh_get) {
- ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDS, p->dohbuffer);
- ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDSIZE, (long)p->dohlen);
- }
+ ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDS, p->dohbuffer);
+ ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDSIZE, (long)p->dohlen);
ERROR_CHECK_SETOPT(CURLOPT_HTTPHEADER, headers);
#ifdef USE_NGHTTP2
ERROR_CHECK_SETOPT(CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
diff --git a/lib/easy.c b/lib/easy.c
index 588b1fb47..2aca93845 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -117,7 +117,7 @@ curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc;
curl_strdup_callback Curl_cstrdup = (curl_strdup_callback)system_strdup;
curl_calloc_callback Curl_ccalloc = (curl_calloc_callback)calloc;
#if defined(WIN32) && defined(UNICODE)
-curl_wcsdup_callback Curl_cwcsdup = (curl_wcsdup_callback)_wcsdup;
+curl_wcsdup_callback Curl_cwcsdup = Curl_wcsdup;
#endif
#if defined(_MSC_VER) && defined(_DLL) && !defined(__POCC__)
diff --git a/lib/easyoptions.c b/lib/easyoptions.c
index 4e65e3525..b6131d432 100644
--- a/lib/easyoptions.c
+++ b/lib/easyoptions.c
@@ -165,6 +165,7 @@ struct curl_easyoption Curl_easyopts[] = {
{"MAXCONNECTS", CURLOPT_MAXCONNECTS, CURLOT_LONG, 0},
{"MAXFILESIZE", CURLOPT_MAXFILESIZE, CURLOT_LONG, 0},
{"MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE, CURLOT_OFF_T, 0},
+ {"MAXLIFETIME_CONN", CURLOPT_MAXLIFETIME_CONN, CURLOT_LONG, 0},
{"MAXREDIRS", CURLOPT_MAXREDIRS, CURLOT_LONG, 0},
{"MAX_RECV_SPEED_LARGE", CURLOPT_MAX_RECV_SPEED_LARGE, CURLOT_OFF_T, 0},
{"MAX_SEND_SPEED_LARGE", CURLOPT_MAX_SEND_SPEED_LARGE, CURLOT_OFF_T, 0},
@@ -192,6 +193,8 @@ struct curl_easyoption Curl_easyopts[] = {
{"POSTQUOTE", CURLOPT_POSTQUOTE, CURLOT_SLIST, 0},
{"POSTREDIR", CURLOPT_POSTREDIR, CURLOT_VALUES, 0},
{"PREQUOTE", CURLOPT_PREQUOTE, CURLOT_SLIST, 0},
+ {"PREREQDATA", CURLOPT_PREREQDATA, CURLOT_CBPTR, 0},
+ {"PREREQFUNCTION", CURLOPT_PREREQFUNCTION, CURLOT_FUNCTION, 0},
{"PRE_PROXY", CURLOPT_PRE_PROXY, CURLOT_STRING, 0},
{"PRIVATE", CURLOPT_PRIVATE, CURLOT_OBJECT, 0},
{"PROGRESSDATA", CURLOPT_XFERINFODATA, CURLOT_CBPTR, CURLOT_FLAG_ALIAS},
@@ -271,6 +274,8 @@ struct curl_easyoption Curl_easyopts[] = {
{"SSH_COMPRESSION", CURLOPT_SSH_COMPRESSION, CURLOT_LONG, 0},
{"SSH_HOST_PUBLIC_KEY_MD5", CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
CURLOT_STRING, 0},
+ {"SSH_HOST_PUBLIC_KEY_SHA256", CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256,
+ CURLOT_STRING, 0},
{"SSH_KEYDATA", CURLOPT_SSH_KEYDATA, CURLOT_CBPTR, 0},
{"SSH_KEYFUNCTION", CURLOPT_SSH_KEYFUNCTION, CURLOT_FUNCTION, 0},
{"SSH_KNOWNHOSTS", CURLOPT_SSH_KNOWNHOSTS, CURLOT_STRING, 0},
@@ -354,6 +359,6 @@ struct curl_easyoption Curl_easyopts[] = {
*/
int Curl_easyopts_check(void)
{
- return ((CURLOPT_LASTENTRY%10000) != (310 + 1));
+ return ((CURLOPT_LASTENTRY%10000) != (314 + 1));
}
#endif
diff --git a/lib/ftp.c b/lib/ftp.c
index 1a699de59..a8d209e3f 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -876,11 +876,6 @@ static CURLcode ftp_state_cwd(struct Curl_easy *data,
ftpc->count2 = 0; /* count2 counts failed CWDs */
- /* count3 is set to allow a MKD to fail once. In the case when first CWD
- fails and then MKD fails (due to another session raced it to create the
- dir) this then allows for a second try to CWD to it */
- ftpc->count3 = (data->set.ftp_create_missing_dirs == 2)?1:0;
-
if(conn->bits.reuse && ftpc->entrypath &&
/* no need to go to entrypath when we have an absolute path */
!(ftpc->dirdepth && ftpc->dirs[0][0] == '/')) {
@@ -2681,9 +2676,12 @@ static CURLcode ftp_statemachine(struct Curl_easy *data,
/* we have now received a full FTP server response */
switch(ftpc->state) {
case FTP_WAIT220:
- if(ftpcode == 230)
- /* 230 User logged in - already! */
- return ftp_state_user_resp(data, ftpcode, ftpc->state);
+ if(ftpcode == 230) {
+ /* 230 User logged in - already! Take as 220 if TLS required. */
+ if(data->set.use_ssl <= CURLUSESSL_TRY ||
+ conn->bits.ftp_use_control_ssl)
+ return ftp_state_user_resp(data, ftpcode, ftpc->state);
+ }
else if(ftpcode != 220) {
failf(data, "Got a %03d ftp-server response when 220 was expected",
ftpcode);
@@ -2740,6 +2738,9 @@ static CURLcode ftp_statemachine(struct Curl_easy *data,
case FTP_AUTH:
/* we have gotten the response to a previous AUTH command */
+ if(pp->cache_size)
+ return CURLE_WEIRD_SERVER_REPLY; /* Forbid pipelining in response. */
+
/* RFC2228 (page 5) says:
*
* If the server is willing to accept the named security mechanism,
@@ -2996,6 +2997,12 @@ static CURLcode ftp_statemachine(struct Curl_easy *data,
ftpc->cwdcount && !ftpc->count2) {
/* try making it */
ftpc->count2++; /* counter to prevent CWD-MKD loops */
+
+ /* count3 is set to allow MKD to fail once per dir. In the case when
+ CWD fails and then MKD fails (due to another session raced it to
+ create the dir) this then allows for a second try to CWD to it. */
+ ftpc->count3 = (data->set.ftp_create_missing_dirs == 2) ? 1 : 0;
+
result = Curl_pp_sendf(data, &ftpc->pp, "MKD %s",
ftpc->dirs[ftpc->cwdcount - 1]);
if(!result)
diff --git a/lib/hostasyn.c b/lib/hostasyn.c
index b25de1d41..f7d99ce9a 100644
--- a/lib/hostasyn.c
+++ b/lib/hostasyn.c
@@ -50,7 +50,6 @@
#include "hostip.h"
#include "hash.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "curl_memory.h"
/* The last #include file should be: */
diff --git a/lib/hostip.c b/lib/hostip.c
index 30ce50926..c33c9af9d 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -56,7 +56,6 @@
#include "hash.h"
#include "rand.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "inet_ntop.h"
#include "inet_pton.h"
@@ -508,9 +507,6 @@ static struct Curl_addrinfo *get_localhost(int port)
struct sockaddr_in sa;
unsigned int ipv4;
unsigned short port16 = (unsigned short)(port & 0xffff);
- ca = calloc(sizeof(struct Curl_addrinfo) + ss_size + hostlen + 1, 1);
- if(!ca)
- return NULL;
/* memset to clear the sa.sin_zero field */
memset(&sa, 0, sizeof(sa));
@@ -520,6 +516,9 @@ static struct Curl_addrinfo *get_localhost(int port)
return NULL;
memcpy(&sa.sin_addr, &ipv4, sizeof(ipv4));
+ ca = calloc(sizeof(struct Curl_addrinfo) + ss_size + hostlen + 1, 1);
+ if(!ca)
+ return NULL;
ca->ai_flags = 0;
ca->ai_family = AF_INET;
ca->ai_socktype = SOCK_STREAM;
@@ -533,6 +532,36 @@ static struct Curl_addrinfo *get_localhost(int port)
return ca;
}
+#ifdef ENABLE_IPV6
+/*
+ * Curl_ipv6works() returns TRUE if IPv6 seems to work.
+ */
+bool Curl_ipv6works(struct Curl_easy *data)
+{
+ if(data) {
+ /* 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(data);
+ DEBUGASSERT(data->multi);
+ return 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;
+ sclose(s);
+ }
+ return (ipv6_works>0)?TRUE:FALSE;
+ }
+}
+#endif /* ENABLE_IPV6 */
+
/*
* Curl_host_is_ipnum() returns TRUE if the given string is a numerical IPv4
* (or IPv6 if supported) address.
@@ -674,9 +703,7 @@ enum resolve_t Curl_resolv(struct Curl_easy *data,
#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(data, conn))
+ if(conn->ip_version == CURL_IPRESOLVE_V6 && !Curl_ipv6works(data))
return CURLRESOLV_ERROR;
if(strcasecompare(hostname, "localhost"))
@@ -684,6 +711,10 @@ enum resolve_t Curl_resolv(struct Curl_easy *data,
else if(allowDOH && data->set.doh && !ipnum)
addr = Curl_doh(data, hostname, port, &respwait);
else {
+ /* Check what IP specifics the app has requested and if we can provide
+ * it. If not, bail out. */
+ if(!Curl_ipvalid(data, conn))
+ return CURLRESOLV_ERROR;
/* 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 */
diff --git a/lib/hostip.h b/lib/hostip.h
index 28f3b8401..67a688aeb 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -97,7 +97,7 @@ enum resolve_t Curl_resolv_timeout(struct Curl_easy *data,
struct Curl_dns_entry **dnsentry,
timediff_t timeoutms);
-#ifdef CURLRES_IPV6
+#ifdef ENABLE_IPV6
/*
* Curl_ipv6works() returns TRUE if IPv6 seems to work.
*/
diff --git a/lib/hostip4.c b/lib/hostip4.c
index ac92126d8..1fd791015 100644
--- a/lib/hostip4.c
+++ b/lib/hostip4.c
@@ -50,7 +50,6 @@
#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"
diff --git a/lib/hostip6.c b/lib/hostip6.c
index 943cdd261..c2d5f08e3 100644
--- a/lib/hostip6.c
+++ b/lib/hostip6.c
@@ -50,7 +50,6 @@
#include "hostip.h"
#include "hash.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "inet_pton.h"
#include "connect.h"
@@ -60,34 +59,6 @@
#include "memdebug.h"
/*
- * Curl_ipv6works() returns TRUE if IPv6 seems to work.
- */
-bool Curl_ipv6works(struct Curl_easy *data)
-{
- if(data) {
- /* 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(data);
- DEBUGASSERT(data->multi);
- return 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;
- sclose(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.
*/
diff --git a/lib/hostsyn.c b/lib/hostsyn.c
index 550b43a08..c00c2744c 100644
--- a/lib/hostsyn.c
+++ b/lib/hostsyn.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -50,7 +50,6 @@
#include "hostip.h"
#include "hash.h"
#include "share.h"
-#include "strerror.h"
#include "url.h"
#include "curl_memory.h"
/* The last #include file should be: */
diff --git a/lib/hsts.c b/lib/hsts.c
index 0d5a58401..052dc1157 100644
--- a/lib/hsts.c
+++ b/lib/hsts.c
@@ -49,6 +49,7 @@
#define MAX_HSTS_HOSTLENSTR "256"
#define MAX_HSTS_DATELEN 64
#define MAX_HSTS_DATELENSTR "64"
+#define UNLIMITED "unlimited"
#ifdef DEBUGBUILD
/* to play well with debug builds, we can *set* a fixed time this will
@@ -283,13 +284,17 @@ static CURLcode hsts_push(struct Curl_easy *data,
e.namelen = strlen(sts->host);
e.includeSubDomains = sts->includeSubDomains;
- result = Curl_gmtime((time_t)sts->expires, &stamp);
- if(result)
- return result;
+ if(sts->expires != TIME_T_MAX) {
+ result = Curl_gmtime((time_t)sts->expires, &stamp);
+ if(result)
+ return result;
- msnprintf(e.expire, sizeof(e.expire), "%d%02d%02d %02d:%02d:%02d",
- stamp.tm_year + 1900, stamp.tm_mon + 1, stamp.tm_mday,
- stamp.tm_hour, stamp.tm_min, stamp.tm_sec);
+ msnprintf(e.expire, sizeof(e.expire), "%d%02d%02d %02d:%02d:%02d",
+ stamp.tm_year + 1900, stamp.tm_mon + 1, stamp.tm_mday,
+ stamp.tm_hour, stamp.tm_min, stamp.tm_sec);
+ }
+ else
+ strcpy(e.expire, UNLIMITED);
sc = data->set.hsts_write(data, &e, i,
data->set.hsts_write_userp);
@@ -303,14 +308,18 @@ static CURLcode hsts_push(struct Curl_easy *data,
static CURLcode hsts_out(struct stsentry *sts, FILE *fp)
{
struct tm stamp;
- CURLcode result = Curl_gmtime((time_t)sts->expires, &stamp);
- if(result)
- return result;
-
- fprintf(fp, "%s%s \"%d%02d%02d %02d:%02d:%02d\"\n",
- sts->includeSubDomains ? ".": "", sts->host,
- stamp.tm_year + 1900, stamp.tm_mon + 1, stamp.tm_mday,
- stamp.tm_hour, stamp.tm_min, stamp.tm_sec);
+ if(sts->expires != TIME_T_MAX) {
+ CURLcode result = Curl_gmtime((time_t)sts->expires, &stamp);
+ if(result)
+ return result;
+ fprintf(fp, "%s%s \"%d%02d%02d %02d:%02d:%02d\"\n",
+ sts->includeSubDomains ? ".": "", sts->host,
+ stamp.tm_year + 1900, stamp.tm_mon + 1, stamp.tm_mday,
+ stamp.tm_hour, stamp.tm_min, stamp.tm_sec);
+ }
+ else
+ fprintf(fp, "%s%s \"%s\"\n",
+ sts->includeSubDomains ? ".": "", sts->host, UNLIMITED);
return CURLE_OK;
}
@@ -403,7 +412,8 @@ static CURLcode hsts_add(struct hsts *h, char *line)
"%" MAX_HSTS_HOSTLENSTR "s \"%" MAX_HSTS_DATELENSTR "[^\"]\"",
host, date);
if(2 == rc) {
- time_t expires = Curl_getdate_capped(date);
+ time_t expires = strcmp(date, UNLIMITED) ? Curl_getdate_capped(date) :
+ TIME_T_MAX;
CURLcode result;
char *p = host;
bool subdomain = FALSE;
@@ -456,7 +466,7 @@ static CURLcode hsts_pull(struct Curl_easy *data, struct hsts *h)
return result;
}
else if(sc == CURLSTS_FAIL)
- return CURLE_BAD_FUNCTION_ARGUMENT;
+ return CURLE_ABORTED_BY_CALLBACK;
} while(sc == CURLSTS_OK);
}
return CURLE_OK;
@@ -526,7 +536,9 @@ CURLcode Curl_hsts_loadfile(struct Curl_easy *data,
*/
CURLcode Curl_hsts_loadcb(struct Curl_easy *data, struct hsts *h)
{
- return hsts_pull(data, h);
+ if(h)
+ return hsts_pull(data, h);
+ return CURLE_OK;
}
#endif /* CURL_DISABLE_HTTP || CURL_DISABLE_HSTS */
diff --git a/lib/hsts.h b/lib/hsts.h
index baa582864..653c05348 100644
--- a/lib/hsts.h
+++ b/lib/hsts.h
@@ -59,7 +59,7 @@ CURLcode Curl_hsts_loadcb(struct Curl_easy *data,
struct hsts *h);
#else
#define Curl_hsts_cleanup(x)
-#define Curl_hsts_loadcb(x,y)
+#define Curl_hsts_loadcb(x,y) CURLE_OK
#define Curl_hsts_save(x,y,z)
#endif /* CURL_DISABLE_HTTP || CURL_DISABLE_HSTS */
#endif /* HEADER_CURL_HSTS_H */
diff --git a/lib/http.c b/lib/http.c
index 05b971b20..78ad10ede 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -323,7 +323,7 @@ static CURLcode http_output_basic(struct Curl_easy *data, bool proxy)
pwd = data->state.aptr.passwd;
}
- out = aprintf("%s:%s", user, pwd ? pwd : "");
+ out = aprintf("%s:%s", user ? user : "", pwd ? pwd : "");
if(!out)
return CURLE_OUT_OF_MEMORY;
@@ -1669,8 +1669,8 @@ CURLcode Curl_http_done(struct Curl_easy *data,
* - if any server previously contacted to handle this request only supports
* 1.0.
*/
-static bool use_http_1_1plus(const struct Curl_easy *data,
- const struct connectdata *conn)
+bool Curl_use_http_1_1plus(const struct Curl_easy *data,
+ const struct connectdata *conn)
{
if((data->state.httpversion == 10) || (conn->httpversion == 10))
return FALSE;
@@ -1696,7 +1696,7 @@ static const char *get_http_string(const struct Curl_easy *data,
return "2";
#endif
- if(use_http_1_1plus(data, conn))
+ if(Curl_use_http_1_1plus(data, conn))
return "1.1";
return "1.0";
@@ -1711,7 +1711,7 @@ static CURLcode expect100(struct Curl_easy *data,
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) &&
+ if(!data->state.disableexpect && Curl_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
@@ -2348,7 +2348,7 @@ CURLcode Curl_http_body(struct Curl_easy *data, struct connectdata *conn,
if(conn->bits.authneg)
/* don't enable chunked during auth neg */
;
- else if(use_http_1_1plus(data, conn)) {
+ else if(Curl_use_http_1_1plus(data, conn)) {
if(conn->httpversion < 20)
/* HTTP, upload, unknown file size and not HTTP 1.0 */
data->req.upload_chunky = TRUE;
@@ -2711,14 +2711,16 @@ CURLcode Curl_http_cookies(struct Curl_easy *data,
int count = 0;
if(data->cookies && data->state.cookie_engine) {
+ const char *host = data->state.aptr.cookiehost ?
+ data->state.aptr.cookiehost : conn->host.name;
+ const bool secure_context =
+ conn->handler->protocol&CURLPROTO_HTTPS ||
+ strcasecompare("localhost", host) ||
+ !strcmp(host, "127.0.0.1") ||
+ !strcmp(host, "[::1]") ? TRUE : FALSE;
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE);
- co = Curl_cookie_getlist(data->cookies,
- data->state.aptr.cookiehost?
- data->state.aptr.cookiehost:
- conn->host.name,
- data->state.up.path,
- (conn->handler->protocol&CURLPROTO_HTTPS)?
- TRUE:FALSE);
+ co = Curl_cookie_getlist(data->cookies, host, data->state.up.path,
+ secure_context);
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
}
if(co) {
@@ -2900,7 +2902,7 @@ CURLcode Curl_http_firstwrite(struct Curl_easy *data,
bool *done)
{
struct SingleRequest *k = &data->req;
- DEBUGASSERT(conn->handler->protocol&(PROTO_FAMILY_HTTP|CURLPROTO_RTSP));
+
if(data->req.newurl) {
if(conn->bits.close) {
/* Abort after the headers if "follow Location" is set
@@ -3401,17 +3403,8 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
NULL, 10, &contentlength);
if(offt == CURL_OFFT_OK) {
- if(data->set.max_filesize &&
- contentlength > data->set.max_filesize) {
- failf(data, "Maximum file size exceeded");
- return CURLE_FILESIZE_EXCEEDED;
- }
k->size = contentlength;
k->maxdownload = k->size;
- /* we set the progress download size already at this point
- just to make it easier for apps/callbacks to extract this
- info as soon as possible */
- Curl_pgrsSetDownloadSize(data, k->size);
}
else if(offt == CURL_OFFT_FLOW) {
/* out of range */
@@ -3502,6 +3495,12 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
TRUE);
if(result)
return result;
+ if(!k->chunk) {
+ /* if this isn't chunked, only close can signal the end of this transfer
+ as Content-Length is said not to be trusted for transfer-encoding! */
+ connclose(conn, "HTTP/1.1 transfer-encoding without chunks");
+ k->ignore_cl = TRUE;
+ }
}
else if(!k->http_bodyless && checkprefix("Content-Encoding:", headp) &&
data->set.str[STRING_ENCODING]) {
@@ -3564,18 +3563,21 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
#if !defined(CURL_DISABLE_COOKIES)
else if(data->cookies && data->state.cookie_engine &&
checkprefix("Set-Cookie:", headp)) {
+ /* If there is a custom-set Host: name, use it here, or else use real peer
+ host name. */
+ const char *host = data->state.aptr.cookiehost?
+ data->state.aptr.cookiehost:conn->host.name;
+ const bool secure_context =
+ conn->handler->protocol&CURLPROTO_HTTPS ||
+ strcasecompare("localhost", host) ||
+ !strcmp(host, "127.0.0.1") ||
+ !strcmp(host, "[::1]") ? TRUE : FALSE;
+
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE,
CURL_LOCK_ACCESS_SINGLE);
- Curl_cookie_add(data,
- data->cookies, TRUE, FALSE,
- headp + strlen("Set-Cookie:"),
- /* If there is a custom-set Host: name, use it
- here, or else use real peer host name. */
- data->state.aptr.cookiehost?
- data->state.aptr.cookiehost:conn->host.name,
- data->state.up.path,
- (conn->handler->protocol&CURLPROTO_HTTPS)?
- TRUE:FALSE);
+ Curl_cookie_add(data, data->cookies, TRUE, FALSE,
+ headp + strlen("Set-Cookie:"), host,
+ data->state.up.path, secure_context);
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
}
#endif
@@ -3771,6 +3773,29 @@ CURLcode Curl_http_statusline(struct Curl_easy *data,
return CURLE_OK;
}
+/* Content-Length must be ignored if any Transfer-Encoding is present in the
+ response. Refer to RFC 7230 section 3.3.3 and RFC2616 section 4.4. This is
+ figured out here after all headers have been received but before the final
+ call to the user's header callback, so that a valid content length can be
+ retrieved by the user in the final call. */
+CURLcode Curl_http_size(struct Curl_easy *data)
+{
+ struct SingleRequest *k = &data->req;
+ if(data->req.ignore_cl || k->chunk) {
+ k->size = k->maxdownload = -1;
+ }
+ else if(k->size != -1) {
+ if(data->set.max_filesize &&
+ k->size > data->set.max_filesize) {
+ failf(data, "Maximum file size exceeded");
+ return CURLE_FILESIZE_EXCEEDED;
+ }
+ Curl_pgrsSetDownloadSize(data, k->size);
+ k->maxdownload = k->size;
+ }
+ return CURLE_OK;
+}
+
/*
* Read any HTTP header lines from the server and pass them to the client app.
*/
@@ -3965,6 +3990,12 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
}
}
+ if(!k->header) {
+ result = Curl_http_size(data);
+ if(result)
+ return result;
+ }
+
/* At this point we have some idea about the fate of the connection.
If we are closing the connection it may result auth failure. */
#if defined(USE_NTLM)
@@ -4121,31 +4152,6 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
reason */
*stop_reading = TRUE;
#endif
- else {
- /* If we know the expected size of this document, we set the
- maximum download size to the size of the expected
- document or else, we won't know when to stop reading!
-
- Note that we set the download maximum even if we read a
- "Connection: close" header, to make sure that
- "Content-Length: 0" still prevents us from attempting to
- read the (missing) response-body.
- */
- /* According to RFC2616 section 4.4, we MUST ignore
- Content-Length: headers if we are now receiving data
- using chunked Transfer-Encoding.
- */
- if(k->chunk)
- k->maxdownload = k->size = -1;
- }
- if(-1 != k->size) {
- /* We do this operation even if no_body is true, since this
- data might be retrieved later with curl_easy_getinfo()
- and its CURLINFO_CONTENT_LENGTH_DOWNLOAD option. */
-
- Curl_pgrsSetDownloadSize(data, k->size);
- k->maxdownload = k->size;
- }
/* If max download size is *zero* (nothing) we already have
nothing and can safely return ok now! But for HTTP/2, we'd
@@ -4210,18 +4216,20 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
* https://tools.ietf.org/html/rfc7230#section-3.1.2
*
* The response code is always a three-digit number in HTTP as the spec
- * says. We try to allow any number here, but we cannot make
+ * says. We allow any three-digit number here, but we cannot make
* guarantees on future behaviors since it isn't within the protocol.
*/
char separator;
char twoorthree[2];
int httpversion = 0;
+ char digit4 = 0;
nc = sscanf(HEADER1,
- " HTTP/%1d.%1d%c%3d",
+ " HTTP/%1d.%1d%c%3d%c",
&httpversion_major,
&httpversion,
&separator,
- &k->httpcode);
+ &k->httpcode,
+ &digit4);
if(nc == 1 && httpversion_major >= 2 &&
2 == sscanf(HEADER1, " HTTP/%1[23] %d", twoorthree, &k->httpcode)) {
@@ -4230,7 +4238,19 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
separator = ' ';
}
- if((nc == 4) && (' ' == separator)) {
+ /* There can only be a 4th response code digit stored in 'digit4' if
+ all the other fields were parsed and stored first, so nc is 5 when
+ digit4 a digit.
+
+ The sscanf() line above will also allow zero-prefixed and negative
+ numbers, so we check for that too here.
+ */
+ else if(ISDIGIT(digit4) || (k->httpcode < 100)) {
+ failf(data, "Unsupported response code in HTTP response");
+ return CURLE_UNSUPPORTED_PROTOCOL;
+ }
+
+ if((nc >= 4) && (' ' == separator)) {
httpversion += 10 * httpversion_major;
switch(httpversion) {
case 10:
diff --git a/lib/http.h b/lib/http.h
index bce171550..cb5b56faf 100644
--- a/lib/http.h
+++ b/lib/http.h
@@ -99,6 +99,8 @@ CURLcode Curl_http_body(struct Curl_easy *data, struct connectdata *conn,
const char **teep);
CURLcode Curl_http_bodysend(struct Curl_easy *data, struct connectdata *conn,
struct dynbuf *r, Curl_HttpReq httpreq);
+bool Curl_use_http_1_1plus(const struct Curl_easy *data,
+ const struct connectdata *conn);
#ifndef CURL_DISABLE_COOKIES
CURLcode Curl_http_cookies(struct Curl_easy *data,
struct connectdata *conn,
@@ -287,6 +289,8 @@ struct http_conn {
#endif
};
+CURLcode Curl_http_size(struct Curl_easy *data);
+
CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
struct connectdata *conn,
ssize_t *nread,
diff --git a/lib/http2.c b/lib/http2.c
index 60e0143c1..992fbbb26 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -100,6 +100,7 @@ static int http2_getsock(struct Curl_easy *data,
const struct http_conn *c = &conn->proto.httpc;
struct SingleRequest *k = &data->req;
int bitmap = GETSOCK_BLANK;
+ struct HTTP *stream = data->req.p.http;
sock[0] = conn->sock[FIRSTSOCKET];
@@ -108,9 +109,13 @@ static int http2_getsock(struct Curl_easy *data,
frame so we should always be ready for one */
bitmap |= GETSOCK_READSOCK(FIRSTSOCKET);
- /* we're still uploading or the HTTP/2 layer wants to send data */
- if(((k->keepon & (KEEP_SEND|KEEP_SEND_PAUSE)) == KEEP_SEND) ||
- nghttp2_session_want_write(c->h2))
+ /* we're (still uploading OR the HTTP/2 layer wants to send data) AND
+ there's a window to send data in */
+ if((((k->keepon & (KEEP_SEND|KEEP_SEND_PAUSE)) == KEEP_SEND) ||
+ nghttp2_session_want_write(c->h2)) &&
+ (nghttp2_session_get_remote_window_size(c->h2) &&
+ nghttp2_session_get_stream_remote_window_size(c->h2,
+ stream->stream_id)))
bitmap |= GETSOCK_WRITESOCK(FIRSTSOCKET);
return bitmap;
@@ -763,6 +768,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
ncopy);
stream->nread_header_recvbuf += ncopy;
+ DEBUGASSERT(stream->mem);
H2BUGF(infof(data_s, "Store %zu bytes headers from stream %u at %p",
ncopy, stream_id, stream->mem));
@@ -1624,10 +1630,6 @@ static ssize_t http2_recv(struct Curl_easy *data, int sockindex,
return -1;
}
- if(stream->closed)
- /* closed overrides paused */
- return http2_handle_stream_close(conn, data, stream, err);
-
/* Nullify here because we call nghttp2_session_send() and they
might refer to the old buffer. */
stream->upload_mem = NULL;
@@ -1956,8 +1958,19 @@ static ssize_t http2_send(struct Curl_easy *data, int sockindex,
nghttp2_session_resume_data(h2, stream->stream_id);
}
- H2BUGF(infof(data, "http2_send returns %zu for stream %u", len,
- stream->stream_id));
+#ifdef DEBUG_HTTP2
+ if(!len) {
+ infof(data, "http2_send: easy %p (stream %u) win %u/%u",
+ data, stream->stream_id,
+ nghttp2_session_get_remote_window_size(httpc->h2),
+ nghttp2_session_get_stream_remote_window_size(httpc->h2,
+ stream->stream_id)
+ );
+
+ }
+ infof(data, "http2_send returns %zu for stream %u", len,
+ stream->stream_id);
+#endif
return len;
}
@@ -2218,6 +2231,16 @@ CURLcode Curl_http2_setup(struct Curl_easy *data,
Curl_dyn_init(&stream->header_recvbuf, DYN_H2_HEADERS);
Curl_dyn_init(&stream->trailer_recvbuf, DYN_H2_TRAILERS);
+ stream->upload_left = 0;
+ stream->upload_mem = NULL;
+ stream->upload_len = 0;
+ stream->mem = data->state.buffer;
+ stream->len = data->set.buffer_size;
+
+ multi_connchanged(data->multi);
+ /* below this point only connection related inits are done, which only needs
+ to be done once per connection */
+
if((conn->handler == &Curl_handler_http2_ssl) ||
(conn->handler == &Curl_handler_http2))
return CURLE_OK; /* already done */
@@ -2234,11 +2257,10 @@ CURLcode Curl_http2_setup(struct Curl_easy *data,
}
infof(data, "Using HTTP2, server supports multiplexing");
- stream->upload_left = 0;
- stream->upload_mem = NULL;
- stream->upload_len = 0;
- stream->mem = data->state.buffer;
- stream->len = data->set.buffer_size;
+
+ conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+ conn->httpversion = 20;
+ conn->bundle->multiuse = BUNDLE_MULTIPLEX;
httpc->inbuflen = 0;
httpc->nread_inbuf = 0;
@@ -2246,12 +2268,7 @@ CURLcode Curl_http2_setup(struct Curl_easy *data,
httpc->pause_stream_id = 0;
httpc->drain_total = 0;
- conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
- conn->httpversion = 20;
- conn->bundle->multiuse = BUNDLE_MULTIPLEX;
-
infof(data, "Connection state changed (HTTP/2 confirmed)");
- multi_connchanged(data->multi);
return CURLE_OK;
}
@@ -2340,15 +2357,8 @@ CURLcode Curl_http2_switched(struct Curl_easy *data,
DEBUGASSERT(httpc->nread_inbuf == 0);
- /* Good enough to call it an end once the remaining payload is copied to the
- * connection buffer.
- * Some servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately
- * following the protocol switch other than waiting for the client-side
- * connection preface. If h2_process_pending_input is invoked here to parse
- * the remaining payload, stream 1 would be marked as closed too early and
- * thus ignored in http2_recv (following 252790c53).
- * The logic in lib/http.c and lib/transfer.c guarantees a following
- * http2_recv would be invoked very soon. */
+ if(-1 == h2_process_pending_input(data, httpc, &result))
+ return CURLE_HTTP2;
return CURLE_OK;
}
diff --git a/lib/http_aws_sigv4.c b/lib/http_aws_sigv4.c
index 02663abd6..cbbecb712 100644
--- a/lib/http_aws_sigv4.c
+++ b/lib/http_aws_sigv4.c
@@ -92,6 +92,7 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
char *signed_headers = NULL;
Curl_HttpReq httpreq;
const char *method;
+ size_t post_data_len;
const char *post_data = data->set.postfields ? data->set.postfields : "";
unsigned char sha_hash[32];
char sha_hex[65];
@@ -281,8 +282,12 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
goto fail;
}
+ if(data->set.postfieldsize < 0)
+ post_data_len = strlen(post_data);
+ else
+ post_data_len = (size_t)data->set.postfieldsize;
Curl_sha256it(sha_hash,
- (const unsigned char *) post_data, strlen(post_data));
+ (const unsigned char *) post_data, post_data_len);
sha256_to_hex(sha_hex, sha_hash, sizeof(sha_hex));
Curl_http_method(data, conn, &method, &httpreq);
@@ -321,7 +326,7 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
/*
* Google allow to use rsa key instead of HMAC, so this code might change
- * In the furure, but for now we support only HMAC version
+ * In the future, but for now we support only HMAC version
*/
str_to_sign = curl_maprintf("%s4-HMAC-SHA256\n" /* Algorithm */
"%s\n" /* RequestDateTime */
diff --git a/lib/http_ntlm.c b/lib/http_ntlm.c
index 627a11c5a..a6526db9f 100644
--- a/lib/http_ntlm.c
+++ b/lib/http_ntlm.c
@@ -198,6 +198,12 @@ CURLcode Curl_output_ntlm(struct Curl_easy *data, bool proxy)
#endif
Curl_bufref_init(&ntlmmsg);
+
+ /* connection is already authenticated, don't send a header in future
+ * requests so go directly to NTLMSTATE_LAST */
+ if(*state == NTLMSTATE_TYPE3)
+ *state = NTLMSTATE_LAST;
+
switch(*state) {
case NTLMSTATE_TYPE1:
default: /* for the weird cases we (re)start here */
@@ -246,11 +252,6 @@ CURLcode Curl_output_ntlm(struct Curl_easy *data, bool proxy)
}
break;
- case NTLMSTATE_TYPE3:
- /* connection is already authenticated,
- * don't send a header in future requests */
- *state = NTLMSTATE_LAST;
- /* FALLTHROUGH */
case NTLMSTATE_LAST:
Curl_safefree(*allocuserpwd);
authp->done = TRUE;
diff --git a/lib/http_proxy.c b/lib/http_proxy.c
index a7f7aa353..fc050a07d 100644
--- a/lib/http_proxy.c
+++ b/lib/http_proxy.c
@@ -148,7 +148,7 @@ int Curl_connect_getsock(struct connectdata *conn)
DEBUGASSERT(conn->connect_state);
http = &conn->connect_state->http_proxy;
- if(http->sending)
+ if(http->sending == HTTPSEND_REQUEST)
return GETSOCK_WRITESOCK(0);
return GETSOCK_READSOCK(0);
@@ -207,9 +207,15 @@ static void connect_done(struct Curl_easy *data)
Curl_dyn_free(&s->rcvbuf);
Curl_dyn_free(&s->req);
- /* retore the protocol pointer */
+ /* restore the protocol pointer */
data->req.p.http = s->prot_save;
s->prot_save = NULL;
+ data->info.httpcode = 0; /* clear it as it might've been used for the
+ proxy */
+ data->req.ignorebody = FALSE;
+#ifdef USE_HYPER
+ data->state.hconnect = FALSE;
+#endif
infof(data, "CONNECT phase completed!");
}
}
@@ -284,8 +290,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
/* This only happens if we've looped here due to authentication
reasons, and we don't really use the newly cloned URL here
then. Just free() it. */
- free(data->req.newurl);
- data->req.newurl = NULL;
+ Curl_safefree(data->req.newurl);
/* initialize send-buffer */
Curl_dyn_init(req, DYN_HTTP_REQUEST);
@@ -300,32 +305,27 @@ static CURLcode CONNECT(struct Curl_easy *data,
hostheader, TRUE);
if(!result) {
- const char *proxyconn = "";
- const char *useragent = "";
const char *httpv =
(conn->http_proxy.proxytype == CURLPROXY_HTTP_1_0) ? "1.0" : "1.1";
- if(!Curl_checkProxyheaders(data, conn, "Proxy-Connection"))
- proxyconn = "Proxy-Connection: Keep-Alive\r\n";
-
- if(!Curl_checkProxyheaders(data, conn, "User-Agent") &&
- data->set.str[STRING_USERAGENT])
- useragent = data->state.aptr.uagent;
-
result =
Curl_dyn_addf(req,
"CONNECT %s HTTP/%s\r\n"
"%s" /* Host: */
- "%s" /* Proxy-Authorization */
- "%s" /* User-Agent */
- "%s", /* Proxy-Connection */
+ "%s", /* Proxy-Authorization */
hostheader,
httpv,
host?host:"",
data->state.aptr.proxyuserpwd?
- data->state.aptr.proxyuserpwd:"",
- useragent,
- proxyconn);
+ data->state.aptr.proxyuserpwd:"");
+
+ if(!result && !Curl_checkProxyheaders(data, conn, "User-Agent") &&
+ data->set.str[STRING_USERAGENT])
+ result = Curl_dyn_addf(req, "User-Agent: %s\r\n",
+ data->set.str[STRING_USERAGENT]);
+
+ if(!result && !Curl_checkProxyheaders(data, conn, "Proxy-Connection"))
+ result = Curl_dyn_add(req, "Proxy-Connection: Keep-Alive\r\n");
if(!result)
result = Curl_add_custom_headers(data, TRUE, req);
@@ -390,6 +390,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
k->upload_fromhere += bytes_written;
return result;
}
+ http->sending = HTTPSEND_NADA;
/* if nothing left to send, continue */
}
{ /* READING RESPONSE PHASE */
@@ -739,6 +740,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
io = hyper_io_new();
if(!io) {
failf(data, "Couldn't create hyper IO");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
/* tell Hyper how to read/write network data */
@@ -754,6 +756,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
h->exec = hyper_executor_new();
if(!h->exec) {
failf(data, "Couldn't create hyper executor");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
}
@@ -761,6 +764,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
options = hyper_clientconn_options_new();
if(!options) {
failf(data, "Couldn't create hyper client options");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
@@ -771,6 +775,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
handshake = hyper_clientconn_handshake(io, options);
if(!handshake) {
failf(data, "Couldn't create hyper client handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
io = NULL;
@@ -778,6 +783,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
if(HYPERE_OK != hyper_executor_push(h->exec, handshake)) {
failf(data, "Couldn't hyper_executor_push the handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
handshake = NULL; /* ownership passed on */
@@ -785,6 +791,7 @@ static CURLcode CONNECT(struct Curl_easy *data,
task = hyper_executor_poll(h->exec);
if(!task) {
failf(data, "Couldn't hyper_executor_poll the handshake");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
@@ -793,14 +800,24 @@ static CURLcode CONNECT(struct Curl_easy *data,
req = hyper_request_new();
if(!req) {
failf(data, "Couldn't hyper_request_new");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
if(hyper_request_set_method(req, (uint8_t *)"CONNECT",
strlen("CONNECT"))) {
failf(data, "error setting method");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
+ infof(data, "Establish HTTP proxy tunnel to %s:%d",
+ hostname, remote_port);
+
+ /* This only happens if we've looped here due to authentication
+ reasons, and we don't really use the newly cloned URL here
+ then. Just free() it. */
+ Curl_safefree(data->req.newurl);
+
result = CONNECT_host(data, conn, hostname, remote_port,
&hostheader, &host);
if(result)
@@ -810,6 +827,16 @@ static CURLcode CONNECT(struct Curl_easy *data,
strlen(hostheader))) {
failf(data, "error setting path");
result = CURLE_OUT_OF_MEMORY;
+ goto error;
+ }
+ if(data->set.verbose) {
+ char *se = aprintf("CONNECT %s HTTP/1.1\r\n", hostheader);
+ if(!se) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto error;
+ }
+ Curl_debug(data, CURLINFO_HEADER_OUT, se, strlen(se));
+ free(se);
}
/* Setup the proxy-authorization header, if any */
result = Curl_http_output_auth(data, conn, "CONNECT", HTTPREQ_GET,
@@ -823,40 +850,65 @@ static CURLcode CONNECT(struct Curl_easy *data,
(HYPERE_OK != hyper_request_set_version(req,
HYPER_HTTP_VERSION_1_0))) {
failf(data, "error setting HTTP version");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
headers = hyper_request_headers(req);
if(!headers) {
failf(data, "hyper_request_headers");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
- if(host && Curl_hyper_header(data, headers, host))
- goto error;
- Curl_safefree(host);
+ if(host) {
+ result = Curl_hyper_header(data, headers, host);
+ if(result)
+ goto error;
+ Curl_safefree(host);
+ }
- if(data->state.aptr.proxyuserpwd &&
- Curl_hyper_header(data, headers, data->state.aptr.proxyuserpwd))
- goto error;
+ if(data->state.aptr.proxyuserpwd) {
+ result = Curl_hyper_header(data, headers,
+ data->state.aptr.proxyuserpwd);
+ if(result)
+ goto error;
+ }
- if(data->set.str[STRING_USERAGENT] &&
- *data->set.str[STRING_USERAGENT] &&
- data->state.aptr.uagent &&
- Curl_hyper_header(data, headers, data->state.aptr.uagent))
- goto error;
+ if(!Curl_checkProxyheaders(data, conn, "User-Agent") &&
+ data->set.str[STRING_USERAGENT]) {
+ struct dynbuf ua;
+ Curl_dyn_init(&ua, DYN_HTTP_REQUEST);
+ result = Curl_dyn_addf(&ua, "User-Agent: %s\r\n",
+ data->set.str[STRING_USERAGENT]);
+ if(result)
+ goto error;
+ result = Curl_hyper_header(data, headers, Curl_dyn_ptr(&ua));
+ if(result)
+ goto error;
+ Curl_dyn_free(&ua);
+ }
- if(!Curl_checkProxyheaders(data, conn, "Proxy-Connection") &&
- Curl_hyper_header(data, headers, "Proxy-Connection: Keep-Alive"))
+ if(!Curl_checkProxyheaders(data, conn, "Proxy-Connection")) {
+ result = Curl_hyper_header(data, headers,
+ "Proxy-Connection: Keep-Alive");
+ if(result)
+ goto error;
+ }
+
+ result = Curl_add_custom_headers(data, TRUE, headers);
+ if(result)
goto error;
sendtask = hyper_clientconn_send(client, req);
if(!sendtask) {
failf(data, "hyper_clientconn_send");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
if(HYPERE_OK != hyper_executor_push(h->exec, sendtask)) {
failf(data, "Couldn't hyper_executor_push the send");
+ result = CURLE_OUT_OF_MEMORY;
goto error;
}
@@ -869,8 +921,11 @@ static CURLcode CONNECT(struct Curl_easy *data,
if(error)
hypererr = hyper_task_value(task);
hyper_task_free(task);
- if(error)
+ if(error) {
+ /* this could probably use a better error code? */
+ result = CURLE_OUT_OF_MEMORY;
goto error;
+ }
}
} while(task);
s->tunnel_state = TUNNEL_CONNECT;
@@ -898,15 +953,23 @@ static CURLcode CONNECT(struct Curl_easy *data,
h->write_waker = NULL;
}
}
- /* FALLTHROUGH */
+ break;
+
default:
break;
}
+
+ /* If we are supposed to continue and request a new URL, which basically
+ * means the HTTP authentication is still going on so if the tunnel
+ * is complete we start over in INIT state */
+ if(data->req.newurl && (TUNNEL_COMPLETE == s->tunnel_state)) {
+ infof(data, "CONNECT request done, loop to make another");
+ connect_init(data, TRUE); /* reinit */
+ }
} while(data->req.newurl);
result = CURLE_OK;
if(s->tunnel_state == TUNNEL_COMPLETE) {
- data->info.httpproxycode = data->req.httpcode;
if(data->info.httpproxycode/100 != 2) {
if(conn->bits.close && data->req.newurl) {
conn->bits.proxy_connect_closed = TRUE;
diff --git a/lib/imap.c b/lib/imap.c
index ab4d412ee..bea964f79 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -74,11 +74,11 @@
#include "strcase.h"
#include "vtls/vtls.h"
#include "connect.h"
-#include "strerror.h"
#include "select.h"
#include "multiif.h"
#include "url.h"
#include "strcase.h"
+#include "bufref.h"
#include "curl_sasl.h"
#include "warnless.h"
@@ -102,19 +102,19 @@ static CURLcode imap_doing(struct Curl_easy *data, bool *dophase_done);
static CURLcode imap_setup_connection(struct Curl_easy *data,
struct connectdata *conn);
static char *imap_atom(const char *str, bool escape_only);
-static CURLcode imap_sendf(struct Curl_easy *data,
- struct connectdata *conn, const char *fmt, ...);
+static CURLcode imap_sendf(struct Curl_easy *data, const char *fmt, ...);
static CURLcode imap_parse_url_options(struct connectdata *conn);
static CURLcode imap_parse_url_path(struct Curl_easy *data);
static CURLcode imap_parse_custom_request(struct Curl_easy *data);
static CURLcode imap_perform_authenticate(struct Curl_easy *data,
- struct connectdata *conn,
const char *mech,
- const char *initresp);
+ const struct bufref *initresp);
static CURLcode imap_continue_authenticate(struct Curl_easy *data,
- struct connectdata *conn,
- const char *resp);
-static void imap_get_message(char *buffer, char **outptr);
+ const char *mech,
+ const struct bufref *resp);
+static CURLcode imap_cancel_authenticate(struct Curl_easy *data,
+ const char *mech);
+static CURLcode imap_get_message(struct Curl_easy *data, struct bufref *out);
/*
* IMAP protocol handler.
@@ -181,12 +181,15 @@ const struct Curl_handler Curl_handler_imaps = {
/* SASL parameters for the imap protocol */
static const struct SASLproto saslimap = {
"imap", /* The service name */
- '+', /* Code received when continuation is expected */
- IMAP_RESP_OK, /* Code to receive upon authentication success */
- 0, /* Maximum initial response length (no max) */
imap_perform_authenticate, /* Send authentication command */
imap_continue_authenticate, /* Send authentication continuation */
- imap_get_message /* Get SASL response message */
+ imap_cancel_authenticate, /* Send authentication cancellation */
+ imap_get_message, /* Get SASL response message */
+ 0, /* No maximum initial response length */
+ '+', /* Code received when continuation is expected */
+ IMAP_RESP_OK, /* Code to receive upon authentication success */
+ SASL_AUTH_DEFAULT, /* Default mechanisms */
+ SASL_FLAG_BASE64 /* Configuration flags */
};
@@ -294,6 +297,7 @@ static bool imap_endofresp(struct Curl_easy *data, struct connectdata *conn,
!strcasecompare(imap->custom, "EXPUNGE") &&
!strcasecompare(imap->custom, "LSUB") &&
!strcasecompare(imap->custom, "UID") &&
+ !strcasecompare(imap->custom, "GETQUOTAROOT") &&
!strcasecompare(imap->custom, "NOOP")))
return FALSE;
break;
@@ -353,34 +357,32 @@ static bool imap_endofresp(struct Curl_easy *data, struct connectdata *conn,
*
* Gets the authentication message from the response buffer.
*/
-static void imap_get_message(char *buffer, char **outptr)
+static CURLcode imap_get_message(struct Curl_easy *data, struct bufref *out)
{
- size_t len = strlen(buffer);
- char *message = NULL;
+ char *message = data->state.buffer;
+ size_t len = strlen(message);
if(len > 2) {
/* Find the start of the message */
len -= 2;
- for(message = buffer + 2; *message == ' ' || *message == '\t';
- message++, len--)
+ for(message += 2; *message == ' ' || *message == '\t'; message++, len--)
;
/* Find the end of the message */
- for(; len--;)
+ while(len--)
if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' &&
message[len] != '\t')
break;
/* Terminate the message */
- if(++len) {
- message[len] = '\0';
- }
+ message[++len] = '\0';
+ Curl_bufref_set(out, message, len, NULL);
}
else
/* junk input => zero length output */
- message = &buffer[len];
+ Curl_bufref_set(out, "", 0, NULL);
- *outptr = message;
+ return CURLE_OK;
}
/***********************************************************************
@@ -438,7 +440,7 @@ static CURLcode imap_perform_capability(struct Curl_easy *data,
imapc->tls_supported = FALSE; /* Clear the TLS capability */
/* Send the CAPABILITY command */
- result = imap_sendf(data, conn, "CAPABILITY");
+ result = imap_sendf(data, "CAPABILITY");
if(!result)
state(data, IMAP_CAPABILITY);
@@ -452,11 +454,10 @@ static CURLcode imap_perform_capability(struct Curl_easy *data,
*
* Sends the STARTTLS command to start the upgrade to TLS.
*/
-static CURLcode imap_perform_starttls(struct Curl_easy *data,
- struct connectdata *conn)
+static CURLcode imap_perform_starttls(struct Curl_easy *data)
{
/* Send the STARTTLS command */
- CURLcode result = imap_sendf(data, conn, "STARTTLS");
+ CURLcode result = imap_sendf(data, "STARTTLS");
if(!result)
state(data, IMAP_STARTTLS);
@@ -517,7 +518,7 @@ static CURLcode imap_perform_login(struct Curl_easy *data,
passwd = imap_atom(conn->passwd, false);
/* Send the LOGIN command */
- result = imap_sendf(data, conn, "LOGIN %s %s", user ? user : "",
+ result = imap_sendf(data, "LOGIN %s %s", user ? user : "",
passwd ? passwd : "");
free(user);
@@ -537,20 +538,19 @@ static CURLcode imap_perform_login(struct Curl_easy *data,
* SASL authentication mechanism.
*/
static CURLcode imap_perform_authenticate(struct Curl_easy *data,
- struct connectdata *conn,
const char *mech,
- const char *initresp)
+ const struct bufref *initresp)
{
CURLcode result = CURLE_OK;
- (void)data;
+ const char *ir = (const char *) Curl_bufref_ptr(initresp);
- if(initresp) {
+ if(ir) {
/* Send the AUTHENTICATE command with the initial response */
- result = imap_sendf(data, conn, "AUTHENTICATE %s %s", mech, initresp);
+ result = imap_sendf(data, "AUTHENTICATE %s %s", mech, ir);
}
else {
/* Send the AUTHENTICATE command */
- result = imap_sendf(data, conn, "AUTHENTICATE %s", mech);
+ result = imap_sendf(data, "AUTHENTICATE %s", mech);
}
return result;
@@ -560,15 +560,34 @@ static CURLcode imap_perform_authenticate(struct Curl_easy *data,
*
* imap_continue_authenticate()
*
- * Sends SASL continuation data or cancellation.
+ * Sends SASL continuation data.
*/
static CURLcode imap_continue_authenticate(struct Curl_easy *data,
- struct connectdata *conn,
- const char *resp)
+ const char *mech,
+ const struct bufref *resp)
{
- struct imap_conn *imapc = &conn->proto.imapc;
+ struct imap_conn *imapc = &data->conn->proto.imapc;
+
+ (void)mech;
+
+ return Curl_pp_sendf(data, &imapc->pp,
+ "%s", (const char *) Curl_bufref_ptr(resp));
+}
+
+/***********************************************************************
+ *
+ * imap_cancel_authenticate()
+ *
+ * Sends SASL cancellation.
+ */
+static CURLcode imap_cancel_authenticate(struct Curl_easy *data,
+ const char *mech)
+{
+ struct imap_conn *imapc = &data->conn->proto.imapc;
+
+ (void)mech;
- return Curl_pp_sendf(data, &imapc->pp, "%s", resp);
+ return Curl_pp_sendf(data, &imapc->pp, "*");
}
/***********************************************************************
@@ -595,8 +614,7 @@ static CURLcode imap_perform_authentication(struct Curl_easy *data,
}
/* Calculate the SASL login details */
- result = Curl_sasl_start(&imapc->sasl, data, conn,
- imapc->ir_supported, &progress);
+ result = Curl_sasl_start(&imapc->sasl, data, imapc->ir_supported, &progress);
if(!result) {
if(progress == SASL_INPROGRESS)
@@ -623,12 +641,11 @@ static CURLcode imap_perform_authentication(struct Curl_easy *data,
static CURLcode imap_perform_list(struct Curl_easy *data)
{
CURLcode result = CURLE_OK;
- struct connectdata *conn = data->conn;
struct IMAP *imap = data->req.p.imap;
if(imap->custom)
/* Send the custom request */
- result = imap_sendf(data, conn, "%s%s", imap->custom,
+ result = imap_sendf(data, "%s%s", imap->custom,
imap->custom_params ? imap->custom_params : "");
else {
/* Make sure the mailbox is in the correct atom format if necessary */
@@ -638,7 +655,7 @@ static CURLcode imap_perform_list(struct Curl_easy *data)
return CURLE_OUT_OF_MEMORY;
/* Send the LIST command */
- result = imap_sendf(data, conn, "LIST \"%s\" *", mailbox);
+ result = imap_sendf(data, "LIST \"%s\" *", mailbox);
free(mailbox);
}
@@ -679,7 +696,7 @@ static CURLcode imap_perform_select(struct Curl_easy *data)
return CURLE_OUT_OF_MEMORY;
/* Send the SELECT command */
- result = imap_sendf(data, conn, "SELECT %s", mailbox);
+ result = imap_sendf(data, "SELECT %s", mailbox);
free(mailbox);
@@ -695,8 +712,7 @@ static CURLcode imap_perform_select(struct Curl_easy *data)
*
* Sends a FETCH command to initiate the download of a message.
*/
-static CURLcode imap_perform_fetch(struct Curl_easy *data,
- struct connectdata *conn)
+static CURLcode imap_perform_fetch(struct Curl_easy *data)
{
CURLcode result = CURLE_OK;
struct IMAP *imap = data->req.p.imap;
@@ -705,21 +721,21 @@ static CURLcode imap_perform_fetch(struct Curl_easy *data,
/* Send the FETCH command */
if(imap->partial)
- result = imap_sendf(data, conn, "UID FETCH %s BODY[%s]<%s>",
+ result = imap_sendf(data, "UID FETCH %s BODY[%s]<%s>",
imap->uid, imap->section ? imap->section : "",
imap->partial);
else
- result = imap_sendf(data, conn, "UID FETCH %s BODY[%s]",
+ result = imap_sendf(data, "UID FETCH %s BODY[%s]",
imap->uid, imap->section ? imap->section : "");
}
else if(imap->mindex) {
/* Send the FETCH command */
if(imap->partial)
- result = imap_sendf(data, conn, "FETCH %s BODY[%s]<%s>",
+ result = imap_sendf(data, "FETCH %s BODY[%s]<%s>",
imap->mindex, imap->section ? imap->section : "",
imap->partial);
else
- result = imap_sendf(data, conn, "FETCH %s BODY[%s]",
+ result = imap_sendf(data, "FETCH %s BODY[%s]",
imap->mindex, imap->section ? imap->section : "");
}
else {
@@ -741,7 +757,6 @@ static CURLcode imap_perform_fetch(struct Curl_easy *data,
static CURLcode imap_perform_append(struct Curl_easy *data)
{
CURLcode result = CURLE_OK;
- struct connectdata *conn = data->conn;
struct IMAP *imap = data->req.p.imap;
char *mailbox;
@@ -792,7 +807,7 @@ static CURLcode imap_perform_append(struct Curl_easy *data)
return CURLE_OUT_OF_MEMORY;
/* Send the APPEND command */
- result = imap_sendf(data, conn,
+ result = imap_sendf(data,
"APPEND %s (\\Seen) {%" CURL_FORMAT_CURL_OFF_T "}",
mailbox, data->state.infilesize);
@@ -810,8 +825,7 @@ static CURLcode imap_perform_append(struct Curl_easy *data)
*
* Sends a SEARCH command.
*/
-static CURLcode imap_perform_search(struct Curl_easy *data,
- struct connectdata *conn)
+static CURLcode imap_perform_search(struct Curl_easy *data)
{
CURLcode result = CURLE_OK;
struct IMAP *imap = data->req.p.imap;
@@ -823,7 +837,7 @@ static CURLcode imap_perform_search(struct Curl_easy *data,
}
/* Send the SEARCH command */
- result = imap_sendf(data, conn, "SEARCH %s", imap->query);
+ result = imap_sendf(data, "SEARCH %s", imap->query);
if(!result)
state(data, IMAP_SEARCH);
@@ -837,11 +851,10 @@ static CURLcode imap_perform_search(struct Curl_easy *data,
*
* Performs the logout action prior to sclose() being called.
*/
-static CURLcode imap_perform_logout(struct Curl_easy *data,
- struct connectdata *conn)
+static CURLcode imap_perform_logout(struct Curl_easy *data)
{
/* Send the LOGOUT command */
- CURLcode result = imap_sendf(data, conn, "LOGOUT");
+ CURLcode result = imap_sendf(data, "LOGOUT");
if(!result)
state(data, IMAP_LOGOUT);
@@ -935,22 +948,18 @@ static CURLcode imap_state_capability_resp(struct Curl_easy *data,
line += wordlen;
}
}
- else if(imapcode == IMAP_RESP_OK) {
- if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
- /* We don't have a SSL/TLS connection yet, but SSL is requested */
- if(imapc->tls_supported)
- /* Switch to TLS connection now */
- result = imap_perform_starttls(data, conn);
- else if(data->set.use_ssl == CURLUSESSL_TRY)
- /* Fallback and carry on with authentication */
- result = imap_perform_authentication(data, conn);
- else {
- failf(data, "STARTTLS not supported.");
- result = CURLE_USE_SSL_FAILED;
- }
+ else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
+ /* PREAUTH is not compatible with STARTTLS. */
+ if(imapcode == IMAP_RESP_OK && imapc->tls_supported && !imapc->preauth) {
+ /* Switch to TLS connection now */
+ result = imap_perform_starttls(data);
}
- else
+ else if(data->set.use_ssl <= CURLUSESSL_TRY)
result = imap_perform_authentication(data, conn);
+ else {
+ failf(data, "STARTTLS not available.");
+ result = CURLE_USE_SSL_FAILED;
+ }
}
else
result = imap_perform_authentication(data, conn);
@@ -968,6 +977,10 @@ static CURLcode imap_state_starttls_resp(struct Curl_easy *data,
(void)instate; /* no use for this yet */
+ /* Pipelining in response is forbidden. */
+ if(data->conn->proto.imapc.pp.cache_size)
+ return CURLE_WEIRD_SERVER_REPLY;
+
if(imapcode != IMAP_RESP_OK) {
if(data->set.use_ssl != CURLUSESSL_TRY) {
failf(data, "STARTTLS denied");
@@ -994,7 +1007,7 @@ static CURLcode imap_state_auth_resp(struct Curl_easy *data,
(void)instate; /* no use for this yet */
- result = Curl_sasl_continue(&imapc->sasl, data, conn, imapcode, &progress);
+ result = Curl_sasl_continue(&imapc->sasl, data, imapcode, &progress);
if(!result)
switch(progress) {
case SASL_DONE:
@@ -1095,9 +1108,9 @@ static CURLcode imap_state_select_resp(struct Curl_easy *data, int imapcode,
if(imap->custom)
result = imap_perform_list(data);
else if(imap->query)
- result = imap_perform_search(data, conn);
+ result = imap_perform_search(data);
else
- result = imap_perform_fetch(data, conn);
+ result = imap_perform_fetch(data);
}
}
else {
@@ -1442,7 +1455,7 @@ static CURLcode imap_connect(struct Curl_easy *data, bool *done)
/* Set the default preferred authentication type and mechanism */
imapc->preftype = IMAP_TYPE_ANY;
- Curl_sasl_init(&imapc->sasl, &saslimap);
+ Curl_sasl_init(&imapc->sasl, data, &saslimap);
Curl_dyn_init(&imapc->dyn, DYN_IMAP_CMD);
/* Initialise the pingpong layer */
@@ -1569,10 +1582,10 @@ static CURLcode imap_perform(struct Curl_easy *data, bool *connected,
result = imap_perform_list(data);
else if(!imap->custom && selected && (imap->uid || imap->mindex))
/* FETCH from the same mailbox */
- result = imap_perform_fetch(data, conn);
+ result = imap_perform_fetch(data);
else if(!imap->custom && selected && imap->query)
/* SEARCH the current mailbox */
- result = imap_perform_search(data, conn);
+ result = imap_perform_search(data);
else if(imap->mailbox && !selected &&
(imap->custom || imap->uid || imap->mindex || imap->query))
/* SELECT the mailbox */
@@ -1644,7 +1657,7 @@ static CURLcode imap_disconnect(struct Curl_easy *data,
/* The IMAP session may or may not have been allocated/setup at this
point! */
if(!dead_connection && conn->bits.protoconnstart) {
- if(!imap_perform_logout(data, conn))
+ if(!imap_perform_logout(data))
(void)imap_block_statemach(data, conn, TRUE); /* ignore errors */
}
@@ -1748,17 +1761,16 @@ static CURLcode imap_setup_connection(struct Curl_easy *data,
*
* Designed to never block.
*/
-static CURLcode imap_sendf(struct Curl_easy *data,
- struct connectdata *conn, const char *fmt, ...)
+static CURLcode imap_sendf(struct Curl_easy *data, const char *fmt, ...)
{
CURLcode result = CURLE_OK;
- struct imap_conn *imapc = &conn->proto.imapc;
+ struct imap_conn *imapc = &data->conn->proto.imapc;
DEBUGASSERT(fmt);
/* Calculate the tag based on the connection ID and command ID */
msnprintf(imapc->resptag, sizeof(imapc->resptag), "%c%03d",
- 'A' + curlx_sltosi(conn->connection_id % 26),
+ 'A' + curlx_sltosi(data->conn->connection_id % 26),
(++imapc->cmdid)%1000);
/* start with a blank buffer */
@@ -1912,8 +1924,6 @@ static CURLcode imap_parse_url_options(struct connectdata *conn)
struct imap_conn *imapc = &conn->proto.imapc;
const char *ptr = conn->options;
- imapc->sasl.resetprefs = TRUE;
-
while(!result && ptr && *ptr) {
const char *key = ptr;
const char *value;
diff --git a/lib/krb5.c b/lib/krb5.c
index e25f52656..afe425b04 100644
--- a/lib/krb5.c
+++ b/lib/krb5.c
@@ -374,7 +374,7 @@ static void krb5_end(void *app_data)
}
}
-static struct Curl_sec_client_mech Curl_krb5_client_mech = {
+static const struct Curl_sec_client_mech Curl_krb5_client_mech = {
"GSSAPI",
sizeof(gss_ctx_id_t),
krb5_init,
@@ -684,7 +684,7 @@ int Curl_sec_read_msg(struct Curl_easy *data, struct connectdata *conn,
(void) data;
if(!conn->mech)
- /* not inititalized, return error */
+ /* not initialized, return error */
return -1;
DEBUGASSERT(level > PROT_NONE && level < PROT_LAST);
@@ -768,7 +768,7 @@ static int sec_set_protection_level(struct Curl_easy *data)
}
}
- /* Now try to negiociate the protection level. */
+ /* Now try to negotiate the protection level. */
code = ftp_send_command(data, "PROT %c", level_to_char(level));
if(code < 0)
diff --git a/lib/libcurl.plist b/lib/libcurl.plist
index 575e28da7..daf485621 100644
--- a/lib/libcurl.plist
+++ b/lib/libcurl.plist
@@ -15,7 +15,7 @@
<string>se.curl.libcurl</string>
<key>CFBundleVersion</key>
- <string>7.78.0</string>
+ <string>7.80.0</string>
<key>CFBundleName</key>
<string>libcurl</string>
@@ -27,9 +27,9 @@
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>libcurl 7.78.0</string>
+ <string>libcurl 7.80.0</string>
<key>CFBundleGetInfoString</key>
- <string>libcurl.plist 7.78.0</string>
+ <string>libcurl.plist 7.80.0</string>
</dict>
</plist>
diff --git a/lib/libcurl.rc b/lib/libcurl.rc
index 3f7ae1603..fde6c8cae 100644
--- a/lib/libcurl.rc
+++ b/lib/libcurl.rc
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -51,7 +51,7 @@ BEGIN
VALUE "OriginalFilename", "libcurl.dll\0"
VALUE "ProductName", "The curl library\0"
VALUE "ProductVersion", LIBCURL_VERSION "\0"
- VALUE "LegalCopyright", "\xa9 " LIBCURL_COPYRIGHT "\0" /* a9: Copyright symbol */
+ VALUE "LegalCopyright", "Copyright (C) " LIBCURL_COPYRIGHT "\0"
VALUE "License", "https://curl.se/docs/copyright.html\0"
END
END
diff --git a/lib/llist.c b/lib/llist.c
index e0ec7393d..e78da7da8 100644
--- a/lib/llist.c
+++ b/lib/llist.c
@@ -106,9 +106,7 @@ Curl_llist_remove(struct Curl_llist *list, struct Curl_llist_element *e,
e->next->prev = NULL;
}
else {
- if(!e->prev)
- list->head = e->next;
- else
+ if(e->prev)
e->prev->next = e->next;
if(!e->next)
diff --git a/lib/md4.c b/lib/md4.c
index c651ddf66..d90e45475 100644
--- a/lib/md4.c
+++ b/lib/md4.c
@@ -27,6 +27,7 @@
#include "curl_md4.h"
#include "warnless.h"
+
#ifdef USE_OPENSSL
#include <openssl/opensslconf.h>
#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
@@ -35,9 +36,20 @@
#endif
#endif /* USE_OPENSSL */
+#ifdef USE_WOLFSSL
+#include <wolfssl/options.h>
+#ifdef NO_MD4
+#define OPENSSL_NO_MD4
+#endif
+#endif
+
#ifdef USE_MBEDTLS
-#include <mbedtls/config.h>
#include <mbedtls/version.h>
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+#include <mbedtls/mbedtls_config.h>
+#else
+#include <mbedtls/config.h>
+#endif
#if(MBEDTLS_VERSION_NUMBER >= 0x02070000)
#define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS
@@ -70,8 +82,9 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
md4_digest(ctx, MD4_DIGEST_SIZE, result);
}
-#elif defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4)
-/* When OpenSSL is available we use the MD4-functions from OpenSSL */
+#elif (defined(USE_OPENSSL) || defined(USE_WOLFSSL)) && \
+ !defined(OPENSSL_NO_MD4)
+/* When OpenSSL or wolfSSL is available, we use their MD4 functions. */
#include <openssl/md4.h>
#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \
diff --git a/lib/md5.c b/lib/md5.c
index 7a24fd8cf..810c5fba8 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -33,11 +33,26 @@
#ifdef USE_MBEDTLS
#include <mbedtls/version.h>
-#if(MBEDTLS_VERSION_NUMBER >= 0x02070000)
+#if(MBEDTLS_VERSION_NUMBER >= 0x02070000) && \
+ (MBEDTLS_VERSION_NUMBER < 0x03000000)
#define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS
#endif
#endif /* USE_MBEDTLS */
+#if defined(USE_OPENSSL) && !defined(USE_AMISSL)
+ #include <openssl/opensslconf.h>
+ #if !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_DEPRECATED_3_0)
+ #define USE_OPENSSL_MD5
+ #endif
+#endif
+
+#ifdef USE_WOLFSSL
+ #include <wolfssl/options.h>
+ #ifndef NO_MD5
+ #define USE_WOLFSSL_MD5
+ #endif
+#endif
+
#if defined(USE_GNUTLS)
#include <nettle/md5.h>
@@ -64,8 +79,9 @@ static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
md5_digest(ctx, 16, digest);
}
-#elif defined(USE_OPENSSL) && !defined(USE_AMISSL)
-/* When OpenSSL is available we use the MD5-function from OpenSSL */
+#elif defined(USE_OPENSSL_MD5) || defined(USE_WOLFSSL_MD5)
+
+/* When OpenSSL or wolfSSL is available, we use their MD5 functions. */
#include <openssl/md5.h>
#include "curl_memory.h"
/* The last #include file should be: */
@@ -85,7 +101,7 @@ 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);
+ (void) mbedtls_md5_starts(ctx);
#else
(void) mbedtls_md5_starts_ret(ctx);
#endif
@@ -96,7 +112,7 @@ static void MD5_Update(MD5_CTX *ctx,
unsigned int length)
{
#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
- mbedtls_md5_update(ctx, data, length);
+ (void) mbedtls_md5_update(ctx, data, length);
#else
(void) mbedtls_md5_update_ret(ctx, data, length);
#endif
@@ -105,7 +121,7 @@ static void MD5_Update(MD5_CTX *ctx,
static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
{
#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
- mbedtls_md5_finish(ctx, digest);
+ (void) mbedtls_md5_finish(ctx, digest);
#else
(void) mbedtls_md5_finish_ret(ctx, digest);
#endif
diff --git a/lib/mime.c b/lib/mime.c
index 0bf1b46a4..f40cc1a61 100644
--- a/lib/mime.c
+++ b/lib/mime.c
@@ -462,11 +462,13 @@ static size_t encoder_base64_read(char *buffer, size_t size, bool ateof,
/* Buffered data size can only be 0, 1 or 2. */
ptr[2] = ptr[3] = '=';
i = 0;
- switch(st->bufend - st->bufbeg) {
- case 2:
- i = (st->buf[st->bufbeg + 1] & 0xFF) << 8;
- /* FALLTHROUGH */
- case 1:
+
+ /* If there is buffered data */
+ if(st->bufend != st->bufbeg) {
+
+ if(st->bufend - st->bufbeg == 2)
+ i = (st->buf[st->bufbeg + 1] & 0xFF) << 8;
+
i |= (st->buf[st->bufbeg] & 0xFF) << 16;
ptr[0] = base64[(i >> 18) & 0x3F];
ptr[1] = base64[(i >> 12) & 0x3F];
@@ -476,7 +478,6 @@ static size_t encoder_base64_read(char *buffer, size_t size, bool ateof,
}
cursize += 4;
st->pos += 4;
- break;
}
}
}
@@ -1954,7 +1955,8 @@ void Curl_mime_unpause(curl_mimepart *part)
}
-#else /* !CURL_DISABLE_HTTP || !CURL_DISABLE_SMTP || !CURL_DISABLE_IMAP */
+#else /* !CURL_DISABLE_HTTP && !CURL_DISABLE_MIME ||
+ !CURL_DISABLE_SMTP || !CURL_DISABLE_IMAP */
/* Mime not compiled in: define stubs for externally-referenced functions. */
curl_mime *curl_mime_init(CURL *easy)
diff --git a/lib/mk-ca-bundle.pl b/lib/mk-ca-bundle.pl
index 910fedb0c..e5a7420c0 100755
--- a/lib/mk-ca-bundle.pl
+++ b/lib/mk-ca-bundle.pl
@@ -436,9 +436,25 @@ while (<TXT>) {
last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/);
}
}
- elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) {
+# Not Valid After : Thu Sep 30 14:01:15 2021
+ elsif(/^# Not Valid After : (.*)/) {
+ my $stamp = $1;
+ use Time::Piece;
+ my $t = Time::Piece->strptime
+ ($stamp, "%a %b %d %H:%M:%S %Y");
+ my $delta = ($t->epoch - time()); # negative means no longer valid
+ if($delta < 0) {
+ $skipnum++;
+ report "Skipping: $caname is not valid anymore" if ($opt_v);
+ $valid = 0;
+ }
+ else {
+ $valid = 1;
+ }
+ next;
+ }
+ elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) {
push @precert, $_;
- $valid = 1;
next;
}
elsif(/^#|^\s*$/) {
diff --git a/lib/mqtt.c b/lib/mqtt.c
index f077e6c3d..fcd40b41e 100644
--- a/lib/mqtt.c
+++ b/lib/mqtt.c
@@ -128,6 +128,10 @@ static CURLcode mqtt_send(struct Curl_easy *data,
mq->sendleftovers = sendleftovers;
mq->nsend = nsend;
}
+ else {
+ mq->sendleftovers = NULL;
+ mq->nsend = 0;
+ }
return result;
}
diff --git a/lib/multi.c b/lib/multi.c
index 82d538d00..f307d63b9 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1052,11 +1052,17 @@ CURLMcode curl_multi_fdset(struct Curl_multi *multi,
for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++) {
curl_socket_t s = CURL_SOCKET_BAD;
- if((bitmap & GETSOCK_READSOCK(i)) && VALID_SOCK((sockbunch[i]))) {
+ if((bitmap & GETSOCK_READSOCK(i)) && VALID_SOCK(sockbunch[i])) {
+ if(!FDSET_SOCK(sockbunch[i]))
+ /* pretend it doesn't exist */
+ continue;
FD_SET(sockbunch[i], read_fd_set);
s = sockbunch[i];
}
- if((bitmap & GETSOCK_WRITESOCK(i)) && VALID_SOCK((sockbunch[i]))) {
+ if((bitmap & GETSOCK_WRITESOCK(i)) && VALID_SOCK(sockbunch[i])) {
+ if(!FDSET_SOCK(sockbunch[i]))
+ /* pretend it doesn't exist */
+ continue;
FD_SET(sockbunch[i], write_fd_set);
s = sockbunch[i];
}
@@ -1100,6 +1106,9 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
WSANETWORKEVENTS wsa_events;
DEBUGASSERT(multi->wsa_event != WSA_INVALID_EVENT);
#endif
+#ifndef ENABLE_WAKEUP
+ (void)use_wakeup;
+#endif
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
@@ -2019,6 +2028,28 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
break;
case MSTATE_DO:
+ if(data->set.fprereq) {
+ int prereq_rc;
+
+ /* call the prerequest callback function */
+ Curl_set_in_callback(data, true);
+ prereq_rc = data->set.fprereq(data->set.prereq_userp,
+ data->info.conn_primary_ip,
+ data->info.conn_local_ip,
+ data->info.conn_primary_port,
+ data->info.conn_local_port);
+ Curl_set_in_callback(data, false);
+ if(prereq_rc != CURL_PREREQFUNC_OK) {
+ failf(data, "operation aborted by pre-request callback");
+ /* failure in pre-request callback - don't do any other processing */
+ result = CURLE_ABORTED_BY_CALLBACK;
+ Curl_posttransfer(data);
+ multi_done(data, result, FALSE);
+ stream_error = TRUE;
+ break;
+ }
+ }
+
if(data->set.connect_only) {
/* keep connection open for application to use the socket */
connkeep(data->conn, "CONNECT_ONLY");
@@ -2602,7 +2633,7 @@ CURLMcode curl_multi_cleanup(struct Curl_multi *multi)
multi->magic = 0; /* not good anymore */
- /* Firsrt remove all remaining easy handles */
+ /* First remove all remaining easy handles */
data = multi->easyp;
while(data) {
nextdata = data->next;
@@ -3171,7 +3202,7 @@ CURLMcode curl_multi_socket_all(struct Curl_multi *multi, int *running_handles)
static CURLMcode multi_timeout(struct Curl_multi *multi,
long *timeout_ms)
{
- static struct curltime tv_zero = {0, 0};
+ static const struct curltime tv_zero = {0, 0};
if(multi->timetree) {
/* we have a tree of expire times */
diff --git a/lib/non-ascii.c b/lib/non-ascii.c
index 932cf89ee..3b77ae98d 100644
--- a/lib/non-ascii.c
+++ b/lib/non-ascii.c
@@ -31,6 +31,7 @@
#include "sendf.h"
#include "urldata.h"
#include "multiif.h"
+#include "strerror.h"
#include "curl_memory.h"
/* The last #include file should be: */
@@ -104,6 +105,7 @@ CURLcode Curl_convert_to_network(struct Curl_easy *data,
iconv_t *cd = &tmpcd;
char *input_ptr, *output_ptr;
size_t in_bytes, out_bytes, rc;
+ char ebuffer[STRERROR_LEN];
/* open an iconv conversion descriptor if necessary */
if(data)
@@ -116,7 +118,7 @@ CURLcode Curl_convert_to_network(struct Curl_easy *data,
"The iconv_open(\"%s\", \"%s\") call failed with errno %i: %s",
CURL_ICONV_CODESET_OF_NETWORK,
CURL_ICONV_CODESET_OF_HOST,
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
}
@@ -130,7 +132,7 @@ CURLcode Curl_convert_to_network(struct Curl_easy *data,
if((rc == ICONV_ERROR) || (in_bytes)) {
failf(data,
"The Curl_convert_to_network iconv call failed with errno %i: %s",
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
#else
@@ -170,6 +172,7 @@ CURLcode Curl_convert_from_network(struct Curl_easy *data,
iconv_t *cd = &tmpcd;
char *input_ptr, *output_ptr;
size_t in_bytes, out_bytes, rc;
+ char ebuffer[STRERROR_LEN];
/* open an iconv conversion descriptor if necessary */
if(data)
@@ -182,7 +185,7 @@ CURLcode Curl_convert_from_network(struct Curl_easy *data,
"The iconv_open(\"%s\", \"%s\") call failed with errno %i: %s",
CURL_ICONV_CODESET_OF_HOST,
CURL_ICONV_CODESET_OF_NETWORK,
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
}
@@ -196,7 +199,7 @@ CURLcode Curl_convert_from_network(struct Curl_easy *data,
if((rc == ICONV_ERROR) || (in_bytes)) {
failf(data,
"Curl_convert_from_network iconv call failed with errno %i: %s",
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
#else
@@ -237,6 +240,7 @@ CURLcode Curl_convert_from_utf8(struct Curl_easy *data,
char *input_ptr;
char *output_ptr;
size_t in_bytes, out_bytes, rc;
+ char ebuffer[STRERROR_LEN];
/* open an iconv conversion descriptor if necessary */
if(data)
@@ -249,7 +253,7 @@ CURLcode Curl_convert_from_utf8(struct Curl_easy *data,
"The iconv_open(\"%s\", \"%s\") call failed with errno %i: %s",
CURL_ICONV_CODESET_OF_HOST,
CURL_ICONV_CODESET_FOR_UTF8,
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
}
@@ -263,7 +267,7 @@ CURLcode Curl_convert_from_utf8(struct Curl_easy *data,
if((rc == ICONV_ERROR) || (in_bytes)) {
failf(data,
"The Curl_convert_from_utf8 iconv call failed with errno %i: %s",
- errno, strerror(errno));
+ errno, Curl_strerror(errno, ebuffer, sizeof(ebuffer)));
return CURLE_CONV_FAILED;
}
if(output_ptr < input_ptr) {
diff --git a/lib/pop3.c b/lib/pop3.c
index 5fdd6f3e0..d4ca67877 100644
--- a/lib/pop3.c
+++ b/lib/pop3.c
@@ -75,10 +75,10 @@
#include "strcase.h"
#include "vtls/vtls.h"
#include "connect.h"
-#include "strerror.h"
#include "select.h"
#include "multiif.h"
#include "url.h"
+#include "bufref.h"
#include "curl_sasl.h"
#include "curl_md5.h"
#include "warnless.h"
@@ -104,12 +104,12 @@ static CURLcode pop3_setup_connection(struct Curl_easy *data,
static CURLcode pop3_parse_url_options(struct connectdata *conn);
static CURLcode pop3_parse_url_path(struct Curl_easy *data);
static CURLcode pop3_parse_custom_request(struct Curl_easy *data);
-static CURLcode pop3_perform_auth(struct Curl_easy *data,
- struct connectdata *conn, const char *mech,
- const char *initresp);
-static CURLcode pop3_continue_auth(struct Curl_easy *data,
- struct connectdata *conn, const char *resp);
-static void pop3_get_message(char *buffer, char **outptr);
+static CURLcode pop3_perform_auth(struct Curl_easy *data, const char *mech,
+ const struct bufref *initresp);
+static CURLcode pop3_continue_auth(struct Curl_easy *data, const char *mech,
+ const struct bufref *resp);
+static CURLcode pop3_cancel_auth(struct Curl_easy *data, const char *mech);
+static CURLcode pop3_get_message(struct Curl_easy *data, struct bufref *out);
/*
* POP3 protocol handler.
@@ -171,13 +171,16 @@ const struct Curl_handler Curl_handler_pop3s = {
/* SASL parameters for the pop3 protocol */
static const struct SASLproto saslpop3 = {
- "pop", /* The service name */
- '*', /* Code received when continuation is expected */
- '+', /* Code to receive upon authentication success */
- 255 - 8, /* Maximum initial response length (no max) */
- pop3_perform_auth, /* Send authentication command */
- pop3_continue_auth, /* Send authentication continuation */
- pop3_get_message /* Get SASL response message */
+ "pop", /* The service name */
+ pop3_perform_auth, /* Send authentication command */
+ pop3_continue_auth, /* Send authentication continuation */
+ pop3_cancel_auth, /* Send authentication cancellation */
+ pop3_get_message, /* Get SASL response message */
+ 255 - 8, /* Max line len - strlen("AUTH ") - 1 space - crlf */
+ '*', /* Code received when continuation is expected */
+ '+', /* Code to receive upon authentication success */
+ SASL_AUTH_DEFAULT, /* Default mechanisms */
+ SASL_FLAG_BASE64 /* Configuration flags */
};
#ifdef USE_SSL
@@ -251,34 +254,32 @@ static bool pop3_endofresp(struct Curl_easy *data, struct connectdata *conn,
*
* Gets the authentication message from the response buffer.
*/
-static void pop3_get_message(char *buffer, char **outptr)
+static CURLcode pop3_get_message(struct Curl_easy *data, struct bufref *out)
{
- size_t len = strlen(buffer);
- char *message = NULL;
+ char *message = data->state.buffer;
+ size_t len = strlen(message);
if(len > 2) {
/* Find the start of the message */
len -= 2;
- for(message = buffer + 2; *message == ' ' || *message == '\t';
- message++, len--)
+ for(message += 2; *message == ' ' || *message == '\t'; message++, len--)
;
/* Find the end of the message */
- for(; len--;)
+ while(len--)
if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' &&
message[len] != '\t')
break;
/* Terminate the message */
- if(++len) {
- message[len] = '\0';
- }
+ message[++len] = '\0';
+ Curl_bufref_set(out, message, len, NULL);
}
else
/* junk input => zero length output */
- message = &buffer[len];
+ Curl_bufref_set(out, "", 0, NULL);
- *outptr = message;
+ return CURLE_OK;
}
/***********************************************************************
@@ -475,16 +476,16 @@ static CURLcode pop3_perform_apop(struct Curl_easy *data,
* authentication mechanism.
*/
static CURLcode pop3_perform_auth(struct Curl_easy *data,
- struct connectdata *conn,
const char *mech,
- const char *initresp)
+ const struct bufref *initresp)
{
CURLcode result = CURLE_OK;
- struct pop3_conn *pop3c = &conn->proto.pop3c;
+ struct pop3_conn *pop3c = &data->conn->proto.pop3c;
+ const char *ir = (const char *) Curl_bufref_ptr(initresp);
- if(initresp) { /* AUTH <mech> ...<crlf> */
+ if(ir) { /* AUTH <mech> ...<crlf> */
/* Send the AUTH command with the initial response */
- result = Curl_pp_sendf(data, &pop3c->pp, "AUTH %s %s", mech, initresp);
+ result = Curl_pp_sendf(data, &pop3c->pp, "AUTH %s %s", mech, ir);
}
else {
/* Send the AUTH command */
@@ -498,15 +499,33 @@ static CURLcode pop3_perform_auth(struct Curl_easy *data,
*
* pop3_continue_auth()
*
- * Sends SASL continuation data or cancellation.
+ * Sends SASL continuation data.
*/
static CURLcode pop3_continue_auth(struct Curl_easy *data,
- struct connectdata *conn,
- const char *resp)
+ const char *mech,
+ const struct bufref *resp)
{
- struct pop3_conn *pop3c = &conn->proto.pop3c;
+ struct pop3_conn *pop3c = &data->conn->proto.pop3c;
+
+ (void)mech;
+
+ return Curl_pp_sendf(data, &pop3c->pp,
+ "%s", (const char *) Curl_bufref_ptr(resp));
+}
+
+/***********************************************************************
+ *
+ * pop3_cancel_auth()
+ *
+ * Sends SASL cancellation.
+ */
+static CURLcode pop3_cancel_auth(struct Curl_easy *data, const char *mech)
+{
+ struct pop3_conn *pop3c = &data->conn->proto.pop3c;
- return Curl_pp_sendf(data, &pop3c->pp, "%s", resp);
+ (void)mech;
+
+ return Curl_pp_sendf(data, &pop3c->pp, "*");
}
/***********************************************************************
@@ -533,7 +552,7 @@ static CURLcode pop3_perform_authentication(struct Curl_easy *data,
if(pop3c->authtypes & pop3c->preftype & POP3_TYPE_SASL) {
/* Calculate the SASL login details */
- result = Curl_sasl_start(&pop3c->sasl, data, conn, FALSE, &progress);
+ result = Curl_sasl_start(&pop3c->sasl, data, FALSE, &progress);
if(!result)
if(progress == SASL_INPROGRESS)
@@ -741,28 +760,23 @@ static CURLcode pop3_state_capa_resp(struct Curl_easy *data, int pop3code,
}
}
}
- else if(pop3code == '+') {
- if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
- /* We don't have a SSL/TLS connection yet, but SSL is requested */
- if(pop3c->tls_supported)
- /* Switch to TLS connection now */
- result = pop3_perform_starttls(data, conn);
- else if(data->set.use_ssl == CURLUSESSL_TRY)
- /* Fallback and carry on with authentication */
- result = pop3_perform_authentication(data, conn);
- else {
- failf(data, "STLS not supported.");
- result = CURLE_USE_SSL_FAILED;
- }
- }
- else
- result = pop3_perform_authentication(data, conn);
- }
else {
/* Clear text is supported when CAPA isn't recognised */
- pop3c->authtypes |= POP3_TYPE_CLEARTEXT;
+ if(pop3code != '+')
+ pop3c->authtypes |= POP3_TYPE_CLEARTEXT;
- result = pop3_perform_authentication(data, conn);
+ if(!data->set.use_ssl || conn->ssl[FIRSTSOCKET].use)
+ result = pop3_perform_authentication(data, conn);
+ else if(pop3code == '+' && pop3c->tls_supported)
+ /* Switch to TLS connection now */
+ result = pop3_perform_starttls(data, conn);
+ else if(data->set.use_ssl <= CURLUSESSL_TRY)
+ /* Fallback and carry on with authentication */
+ result = pop3_perform_authentication(data, conn);
+ else {
+ failf(data, "STLS not supported.");
+ result = CURLE_USE_SSL_FAILED;
+ }
}
return result;
@@ -777,6 +791,10 @@ static CURLcode pop3_state_starttls_resp(struct Curl_easy *data,
CURLcode result = CURLE_OK;
(void)instate; /* no use for this yet */
+ /* Pipelining in response is forbidden. */
+ if(data->conn->proto.pop3c.pp.cache_size)
+ return CURLE_WEIRD_SERVER_REPLY;
+
if(pop3code != '+') {
if(data->set.use_ssl != CURLUSESSL_TRY) {
failf(data, "STARTTLS denied");
@@ -803,7 +821,7 @@ static CURLcode pop3_state_auth_resp(struct Curl_easy *data,
(void)instate; /* no use for this yet */
- result = Curl_sasl_continue(&pop3c->sasl, data, conn, pop3code, &progress);
+ result = Curl_sasl_continue(&pop3c->sasl, data, pop3code, &progress);
if(!result)
switch(progress) {
case SASL_DONE:
@@ -1013,7 +1031,9 @@ static CURLcode pop3_statemachine(struct Curl_easy *data,
break;
case POP3_QUIT:
- /* fallthrough, just stop! */
+ state(data, POP3_STOP);
+ break;
+
default:
/* internal error */
state(data, POP3_STOP);
@@ -1104,7 +1124,7 @@ static CURLcode pop3_connect(struct Curl_easy *data, bool *done)
/* Set the default preferred authentication type and mechanism */
pop3c->preftype = POP3_TYPE_ANY;
- Curl_sasl_init(&pop3c->sasl, &saslpop3);
+ Curl_sasl_init(&pop3c->sasl, data, &saslpop3);
/* Initialise the pingpong layer */
Curl_pp_setup(pp);
@@ -1345,8 +1365,6 @@ static CURLcode pop3_parse_url_options(struct connectdata *conn)
struct pop3_conn *pop3c = &conn->proto.pop3c;
const char *ptr = conn->options;
- pop3c->sasl.resetprefs = TRUE;
-
while(!result && ptr && *ptr) {
const char *key = ptr;
const char *value;
diff --git a/lib/progress.c b/lib/progress.c
index 4bcd615eb..f5ef6bd52 100644
--- a/lib/progress.c
+++ b/lib/progress.c
@@ -377,7 +377,12 @@ static curl_off_t trspeed(curl_off_t size, /* number of bytes */
{
if(us < 1)
return size * 1000000;
- return (curl_off_t)((long double)size/us * 1000000);
+ else if(size < CURL_OFF_T_MAX/1000000)
+ return (size * 1000000) / us;
+ else if(us >= 1000000)
+ return size / (us / 1000000);
+ else
+ return CURL_OFF_T_MAX;
}
/* returns TRUE if it's time to show the progress meter */
diff --git a/lib/select.c b/lib/select.c
index 52dca5a2c..70d7ee5c2 100644
--- a/lib/select.c
+++ b/lib/select.c
@@ -64,7 +64,7 @@
* 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
+ * value is system dependent, neither factor is a critical issue
* for the intended use of this function in the library.
*
* Return values:
diff --git a/lib/select.h b/lib/select.h
index 19da1e774..59a571dbb 100644
--- a/lib/select.h
+++ b/lib/select.h
@@ -97,8 +97,10 @@ int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes,
#if defined(TPF)
#define VALID_SOCK(x) 1
#define VERIFY_SOCK(x) Curl_nop_stmt
+#define FDSET_SOCK(x) 1
#elif defined(USE_WINSOCK)
#define VALID_SOCK(s) ((s) < INVALID_SOCKET)
+#define FDSET_SOCK(x) 1
#define VERIFY_SOCK(x) do { \
if(!VALID_SOCK(x)) { \
SET_SOCKERRNO(WSAEINVAL); \
@@ -106,17 +108,17 @@ int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes,
} \
} while(0)
#else
-#ifdef HAVE_POLL_FINE
-#define VALID_SOCK(s) ((s) >= 0) /* FD_SETSIZE is irrelevant for poll */
-#else
-#define VALID_SOCK(s) (((s) >= 0) && ((s) < FD_SETSIZE))
-#endif
-#define VERIFY_SOCK(x) do { \
- if(!VALID_SOCK(x)) { \
- SET_SOCKERRNO(EINVAL); \
- return -1; \
- } \
-} while(0)
+#define VALID_SOCK(s) ((s) >= 0)
+
+/* If the socket is small enough to get set or read from an fdset */
+#define FDSET_SOCK(s) ((s) < FD_SETSIZE)
+
+#define VERIFY_SOCK(x) do { \
+ if(!VALID_SOCK(x) || !FDSET_SOCK(x)) { \
+ SET_SOCKERRNO(EINVAL); \
+ return -1; \
+ } \
+ } while(0)
#endif
#endif /* HEADER_CURL_SELECT_H */
diff --git a/lib/sendf.c b/lib/sendf.c
index 14ca84bfe..bcfa27a50 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -608,7 +608,7 @@ static CURLcode chop_write(struct Curl_easy *data,
/* Curl_client_write() sends data to the write callback(s)
The bit pattern defines to what "streams" to write to. Body and/or header.
- The defines are in sendf.h of course. "len" is not allowed to be 0.
+ The defines are in sendf.h of course.
If CURL_DO_LINEEND_CONV is enabled, data is converted IN PLACE to the
local character encoding. This is a problem and should be changed in
@@ -621,8 +621,10 @@ CURLcode Curl_client_write(struct Curl_easy *data,
{
struct connectdata *conn = data->conn;
- DEBUGASSERT(len);
- DEBUGASSERT(type <= 3);
+ DEBUGASSERT(!(type & ~CLIENTWRITE_BOTH));
+
+ if(!len)
+ return CURLE_OK;
/* FTP data may need conversion. */
if((type & CLIENTWRITE_BODY) &&
diff --git a/lib/setopt.c b/lib/setopt.c
index 076fe5f59..56d9c4992 100644
--- a/lib/setopt.c
+++ b/lib/setopt.c
@@ -2370,12 +2370,8 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
break;
case CURLOPT_IGNORE_CONTENT_LENGTH:
-#ifndef USE_HYPER
data->set.ignorecl = (0 != va_arg(param, long)) ? TRUE : FALSE;
break;
-#else
- return CURLE_NOT_BUILT_IN;
-#endif
case CURLOPT_CONNECT_ONLY:
/*
@@ -2481,6 +2477,15 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
va_arg(param, char *));
break;
+ case CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256:
+ /*
+ * Option to allow for the SHA256 of the host public key to be checked
+ * for validation purposes.
+ */
+ result = Curl_setstropt(&data->set.str[STRING_SSH_HOST_PUBLIC_KEY_SHA256],
+ va_arg(param, char *));
+ break;
+
case CURLOPT_SSH_KNOWNHOSTS:
/*
* Store the file name to read known hosts from.
@@ -2511,8 +2516,12 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
/*
* disable libcurl transfer encoding is used
*/
+#ifndef USE_HYPER
data->set.http_te_skip = (0 == va_arg(param, long)) ? TRUE : FALSE;
break;
+#else
+ return CURLE_NOT_BUILT_IN; /* hyper doesn't support */
+#endif
case CURLOPT_HTTP_CONTENT_DECODING:
/*
@@ -2933,6 +2942,12 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
return CURLE_BAD_FUNCTION_ARGUMENT;
data->set.maxage_conn = arg;
break;
+ case CURLOPT_MAXLIFETIME_CONN:
+ arg = va_arg(param, long);
+ if(arg < 0)
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+ data->set.maxlifetime_conn = arg;
+ break;
case CURLOPT_TRAILERFUNCTION:
#ifndef CURL_DISABLE_HTTP
data->set.trailer_callback = va_arg(param, curl_trailer_callback);
@@ -3008,6 +3023,12 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
return result;
break;
#endif
+ case CURLOPT_PREREQFUNCTION:
+ data->set.fprereq = va_arg(param, curl_prereq_callback);
+ break;
+ case CURLOPT_PREREQDATA:
+ data->set.prereq_userp = va_arg(param, void *);
+ break;
default:
/* unknown tag and its companion, just ignore: */
result = CURLE_UNKNOWN_OPTION;
diff --git a/lib/setup-win32.h b/lib/setup-win32.h
index c35dec88c..fa8742f3b 100644
--- a/lib/setup-win32.h
+++ b/lib/setup-win32.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -25,11 +25,11 @@
/*
* Include header files for windows builds before redefining anything.
* Use this preprocessor block only to include or exclude windows.h,
- * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * winsock2.h or ws2tcpip.h. Any other windows thing belongs
* to any other further and independent block. Under Cygwin things work
* just as under linux (e.g. <sys/socket.h>) and the winsock headers should
* never be included when __CYGWIN__ is defined. configure script takes
- * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
+ * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK2_H,
* neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
*/
@@ -47,10 +47,6 @@
# ifdef HAVE_WS2TCPIP_H
# include <ws2tcpip.h>
# endif
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
# include <tchar.h>
# ifdef UNICODE
@@ -67,10 +63,6 @@
#ifdef HAVE_WINSOCK2_H
# define USE_WINSOCK 2
-#else
-# ifdef HAVE_WINSOCK_H
-# error "WinSock version 1 is no longer supported, version 2 is required!"
-# endif
#endif
/*
diff --git a/lib/sha256.c b/lib/sha256.c
index c34f97e8f..1391412ce 100644
--- a/lib/sha256.c
+++ b/lib/sha256.c
@@ -29,11 +29,18 @@
#include "curl_sha256.h"
#include "curl_hmac.h"
+#ifdef USE_WOLFSSL
+#include <wolfssl/options.h>
+#ifndef NO_SHA256
+#define USE_OPENSSL_SHA256
+#endif
+#endif
+
#if defined(USE_OPENSSL)
#include <openssl/opensslv.h>
-#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
+#if (OPENSSL_VERSION_NUMBER >= 0x0090700fL)
#define USE_OPENSSL_SHA256
#endif
@@ -42,8 +49,9 @@
#ifdef USE_MBEDTLS
#include <mbedtls/version.h>
-#if(MBEDTLS_VERSION_NUMBER >= 0x02070000)
- #define HAS_RESULT_CODE_BASED_FUNCTIONS
+#if(MBEDTLS_VERSION_NUMBER >= 0x02070000) && \
+ (MBEDTLS_VERSION_NUMBER < 0x03000000)
+ #define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS
#endif
#endif /* USE_MBEDTLS */
@@ -62,7 +70,36 @@
#if defined(USE_OPENSSL_SHA256)
/* When OpenSSL is available we use the SHA256-function from OpenSSL */
-#include <openssl/sha.h>
+#include <openssl/evp.h>
+
+#include "curl_memory.h"
+
+/* The last #include file should be: */
+#include "memdebug.h"
+
+struct sha256_ctx {
+ EVP_MD_CTX *openssl_ctx;
+};
+typedef struct sha256_ctx my_sha256_ctx;
+
+static void my_sha256_init(my_sha256_ctx *ctx)
+{
+ ctx->openssl_ctx = EVP_MD_CTX_create();
+ EVP_DigestInit_ex(ctx->openssl_ctx, EVP_sha256(), NULL);
+}
+
+static void my_sha256_update(my_sha256_ctx *ctx,
+ const unsigned char *data,
+ unsigned int length)
+{
+ EVP_DigestUpdate(ctx->openssl_ctx, data, length);
+}
+
+static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx)
+{
+ EVP_DigestFinal_ex(ctx->openssl_ctx, digest, NULL);
+ EVP_MD_CTX_destroy(ctx->openssl_ctx);
+}
#elif defined(USE_GNUTLS)
@@ -73,21 +110,21 @@
/* The last #include file should be: */
#include "memdebug.h"
-typedef struct sha256_ctx SHA256_CTX;
+typedef struct sha256_ctx my_sha256_ctx;
-static void SHA256_Init(SHA256_CTX *ctx)
+static void my_sha256_init(my_sha256_ctx *ctx)
{
sha256_init(ctx);
}
-static void SHA256_Update(SHA256_CTX *ctx,
- const unsigned char *data,
- unsigned int length)
+static void my_sha256_update(my_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)
+static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx)
{
sha256_digest(ctx, SHA256_DIGEST_SIZE, digest);
}
@@ -101,32 +138,32 @@ static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx)
/* The last #include file should be: */
#include "memdebug.h"
-typedef mbedtls_sha256_context SHA256_CTX;
+typedef mbedtls_sha256_context my_sha256_ctx;
-static void SHA256_Init(SHA256_CTX *ctx)
+static void my_sha256_init(my_sha256_ctx *ctx)
{
-#if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS)
- mbedtls_sha256_starts(ctx, 0);
+#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
+ (void) 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)
+static void my_sha256_update(my_sha256_ctx *ctx,
+ const unsigned char *data,
+ unsigned int length)
{
-#if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS)
- mbedtls_sha256_update(ctx, data, length);
+#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
+ (void) 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)
+static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx)
{
-#if !defined(HAS_RESULT_CODE_BASED_FUNCTIONS)
- mbedtls_sha256_finish(ctx, digest);
+#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
+ (void) mbedtls_sha256_finish(ctx, digest);
#else
(void) mbedtls_sha256_finish_ret(ctx, digest);
#endif
@@ -144,21 +181,21 @@ static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx)
/* The last #include file should be: */
#include "memdebug.h"
-typedef CC_SHA256_CTX SHA256_CTX;
+typedef CC_SHA256_CTX my_sha256_ctx;
-static void SHA256_Init(SHA256_CTX *ctx)
+static void my_sha256_init(my_sha256_ctx *ctx)
{
(void) CC_SHA256_Init(ctx);
}
-static void SHA256_Update(SHA256_CTX *ctx,
- const unsigned char *data,
- unsigned int length)
+static void my_sha256_update(my_sha256_ctx *ctx,
+ const unsigned char *data,
+ unsigned int length)
{
(void) CC_SHA256_Update(ctx, data, length);
}
-static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx)
+static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx)
{
(void) CC_SHA256_Final(digest, ctx);
}
@@ -171,13 +208,13 @@ struct sha256_ctx {
HCRYPTPROV hCryptProv;
HCRYPTHASH hHash;
};
-typedef struct sha256_ctx SHA256_CTX;
+typedef struct sha256_ctx my_sha256_ctx;
#if !defined(CALG_SHA_256)
#define CALG_SHA_256 0x0000800c
#endif
-static void SHA256_Init(SHA256_CTX *ctx)
+static void my_sha256_init(my_sha256_ctx *ctx)
{
if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, PROV_RSA_AES,
CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) {
@@ -185,14 +222,14 @@ static void SHA256_Init(SHA256_CTX *ctx)
}
}
-static void SHA256_Update(SHA256_CTX *ctx,
- const unsigned char *data,
- unsigned int length)
+static void my_sha256_update(my_sha256_ctx *ctx,
+ const unsigned char *data,
+ unsigned int length)
{
CryptHashData(ctx->hHash, (unsigned char *) data, length, 0);
}
-static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx)
+static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx)
{
unsigned long length = 0;
@@ -261,7 +298,7 @@ struct sha256_state {
unsigned long state[8], curlen;
unsigned char buf[64];
};
-typedef struct sha256_state SHA256_CTX;
+typedef struct sha256_state my_sha256_ctx;
/* The K array */
static const unsigned long K[64] = {
@@ -338,7 +375,7 @@ static int sha256_compress(struct sha256_state *md,
}
/* Initialize the hash state */
-static void SHA256_Init(struct sha256_state *md)
+static void my_sha256_init(struct sha256_state *md)
{
md->curlen = 0;
md->length = 0;
@@ -359,9 +396,9 @@ static void SHA256_Init(struct sha256_state *md)
@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)
+static int my_sha256_update(struct sha256_state *md,
+ const unsigned char *in,
+ unsigned long inlen)
{
unsigned long n;
@@ -400,8 +437,8 @@ static int SHA256_Update(struct sha256_state *md,
@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)
+static int my_sha256_final(unsigned char *out,
+ struct sha256_state *md)
{
int i;
@@ -458,24 +495,24 @@ static int SHA256_Final(unsigned char *out,
void Curl_sha256it(unsigned char *output, const unsigned char *input,
const size_t length)
{
- SHA256_CTX ctx;
+ my_sha256_ctx ctx;
- SHA256_Init(&ctx);
- SHA256_Update(&ctx, input, curlx_uztoui(length));
- SHA256_Final(output, &ctx);
+ my_sha256_init(&ctx);
+ my_sha256_update(&ctx, input, curlx_uztoui(length));
+ my_sha256_final(output, &ctx);
}
const struct HMAC_params Curl_HMAC_SHA256[] = {
{
/* Hash initialization function. */
- CURLX_FUNCTION_CAST(HMAC_hinit_func, SHA256_Init),
+ CURLX_FUNCTION_CAST(HMAC_hinit_func, my_sha256_init),
/* Hash update function. */
- CURLX_FUNCTION_CAST(HMAC_hupdate_func, SHA256_Update),
+ CURLX_FUNCTION_CAST(HMAC_hupdate_func, my_sha256_update),
/* Hash computation end function. */
- CURLX_FUNCTION_CAST(HMAC_hfinal_func, SHA256_Final),
+ CURLX_FUNCTION_CAST(HMAC_hfinal_func, my_sha256_final),
/* Size of hash context structure. */
- sizeof(SHA256_CTX),
+ sizeof(my_sha256_ctx),
/* Maximum key length. */
64,
/* Result size. */
diff --git a/lib/smtp.c b/lib/smtp.c
index 1a3da1559..8e0b04609 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -78,11 +78,11 @@
#include "strcase.h"
#include "vtls/vtls.h"
#include "connect.h"
-#include "strerror.h"
#include "select.h"
#include "multiif.h"
#include "url.h"
#include "curl_gethostname.h"
+#include "bufref.h"
#include "curl_sasl.h"
#include "warnless.h"
/* The last 3 #include files should be in this order */
@@ -109,12 +109,12 @@ static CURLcode smtp_parse_url_path(struct Curl_easy *data);
static CURLcode smtp_parse_custom_request(struct Curl_easy *data);
static CURLcode smtp_parse_address(struct Curl_easy *data, const char *fqma,
char **address, struct hostname *host);
-static CURLcode smtp_perform_auth(struct Curl_easy *data,
- struct connectdata *conn, const char *mech,
- const char *initresp);
-static CURLcode smtp_continue_auth(struct Curl_easy *data,
- struct connectdata *conn, const char *resp);
-static void smtp_get_message(char *buffer, char **outptr);
+static CURLcode smtp_perform_auth(struct Curl_easy *data, const char *mech,
+ const struct bufref *initresp);
+static CURLcode smtp_continue_auth(struct Curl_easy *data, const char *mech,
+ const struct bufref *resp);
+static CURLcode smtp_cancel_auth(struct Curl_easy *data, const char *mech);
+static CURLcode smtp_get_message(struct Curl_easy *data, struct bufref *out);
/*
* SMTP protocol handler.
@@ -176,13 +176,16 @@ const struct Curl_handler Curl_handler_smtps = {
/* SASL parameters for the smtp protocol */
static const struct SASLproto saslsmtp = {
- "smtp", /* The service name */
- 334, /* Code received when continuation is expected */
- 235, /* Code to receive upon authentication success */
- 512 - 8, /* Maximum initial response length (no max) */
- smtp_perform_auth, /* Send authentication command */
- smtp_continue_auth, /* Send authentication continuation */
- smtp_get_message /* Get SASL response message */
+ "smtp", /* The service name */
+ smtp_perform_auth, /* Send authentication command */
+ smtp_continue_auth, /* Send authentication continuation */
+ smtp_cancel_auth, /* Cancel authentication */
+ smtp_get_message, /* Get SASL response message */
+ 512 - 8, /* Max line len - strlen("AUTH ") - 1 space - crlf */
+ 334, /* Code received when continuation is expected */
+ 235, /* Code to receive upon authentication success */
+ SASL_AUTH_DEFAULT, /* Default mechanisms */
+ SASL_FLAG_BASE64 /* Configuration flags */
};
#ifdef USE_SSL
@@ -249,34 +252,32 @@ static bool smtp_endofresp(struct Curl_easy *data, struct connectdata *conn,
*
* Gets the authentication message from the response buffer.
*/
-static void smtp_get_message(char *buffer, char **outptr)
+static CURLcode smtp_get_message(struct Curl_easy *data, struct bufref *out)
{
- size_t len = strlen(buffer);
- char *message = NULL;
+ char *message = data->state.buffer;
+ size_t len = strlen(message);
if(len > 4) {
/* Find the start of the message */
len -= 4;
- for(message = buffer + 4; *message == ' ' || *message == '\t';
- message++, len--)
+ for(message += 4; *message == ' ' || *message == '\t'; message++, len--)
;
/* Find the end of the message */
- for(; len--;)
+ while(len--)
if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' &&
message[len] != '\t')
break;
/* Terminate the message */
- if(++len) {
- message[len] = '\0';
- }
+ message[++len] = '\0';
+ Curl_bufref_set(out, message, len, NULL);
}
else
/* junk input => zero length output */
- message = &buffer[len];
+ Curl_bufref_set(out, "", 0, NULL);
- *outptr = message;
+ return CURLE_OK;
}
/***********************************************************************
@@ -422,16 +423,16 @@ static CURLcode smtp_perform_upgrade_tls(struct Curl_easy *data)
* authentication mechanism.
*/
static CURLcode smtp_perform_auth(struct Curl_easy *data,
- struct connectdata *conn,
const char *mech,
- const char *initresp)
+ const struct bufref *initresp)
{
CURLcode result = CURLE_OK;
- struct smtp_conn *smtpc = &conn->proto.smtpc;
+ struct smtp_conn *smtpc = &data->conn->proto.smtpc;
+ const char *ir = (const char *) Curl_bufref_ptr(initresp);
- if(initresp) { /* AUTH <mech> ...<crlf> */
+ if(ir) { /* AUTH <mech> ...<crlf> */
/* Send the AUTH command with the initial response */
- result = Curl_pp_sendf(data, &smtpc->pp, "AUTH %s %s", mech, initresp);
+ result = Curl_pp_sendf(data, &smtpc->pp, "AUTH %s %s", mech, ir);
}
else {
/* Send the AUTH command */
@@ -445,14 +446,33 @@ static CURLcode smtp_perform_auth(struct Curl_easy *data,
*
* smtp_continue_auth()
*
- * Sends SASL continuation data or cancellation.
+ * Sends SASL continuation data.
*/
static CURLcode smtp_continue_auth(struct Curl_easy *data,
- struct connectdata *conn, const char *resp)
+ const char *mech,
+ const struct bufref *resp)
{
- struct smtp_conn *smtpc = &conn->proto.smtpc;
+ struct smtp_conn *smtpc = &data->conn->proto.smtpc;
+
+ (void)mech;
- return Curl_pp_sendf(data, &smtpc->pp, "%s", resp);
+ return Curl_pp_sendf(data, &smtpc->pp,
+ "%s", (const char *) Curl_bufref_ptr(resp));
+}
+
+/***********************************************************************
+ *
+ * smtp_cancel_auth()
+ *
+ * Sends SASL cancellation.
+ */
+static CURLcode smtp_cancel_auth(struct Curl_easy *data, const char *mech)
+{
+ struct smtp_conn *smtpc = &data->conn->proto.smtpc;
+
+ (void)mech;
+
+ return Curl_pp_sendf(data, &smtpc->pp, "*");
}
/***********************************************************************
@@ -470,7 +490,7 @@ static CURLcode smtp_perform_authentication(struct Curl_easy *data)
saslprogress progress;
/* Check we have enough data to authenticate with, and the
- server supports authentiation, and end the connect phase if not */
+ server supports authentication, and end the connect phase if not */
if(!smtpc->auth_supported ||
!Curl_sasl_can_authenticate(&smtpc->sasl, conn)) {
state(data, SMTP_STOP);
@@ -478,7 +498,7 @@ static CURLcode smtp_perform_authentication(struct Curl_easy *data)
}
/* Calculate the SASL login details */
- result = Curl_sasl_start(&smtpc->sasl, data, conn, FALSE, &progress);
+ result = Curl_sasl_start(&smtpc->sasl, data, FALSE, &progress);
if(!result) {
if(progress == SASL_INPROGRESS)
@@ -507,7 +527,7 @@ static CURLcode smtp_perform_command(struct Curl_easy *data)
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
+ SMTPUTF8 extension and b) The mailbox contains UTF-8 characters, 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;
@@ -580,7 +600,7 @@ static CURLcode smtp_perform_mail(struct Curl_easy *data)
struct connectdata *conn = data->conn;
/* 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
+ SMTPUTF8 extension and b) The mailbox contains UTF-8 characters, 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;
@@ -835,6 +855,10 @@ static CURLcode smtp_state_starttls_resp(struct Curl_easy *data,
CURLcode result = CURLE_OK;
(void)instate; /* no use for this yet */
+ /* Pipelining in response is forbidden. */
+ if(data->conn->proto.smtpc.pp.cache_size)
+ return CURLE_WEIRD_SERVER_REPLY;
+
if(smtpcode != 220) {
if(data->set.use_ssl != CURLUSESSL_TRY) {
failf(data, "STARTTLS denied, code %d", smtpcode);
@@ -982,7 +1006,7 @@ static CURLcode smtp_state_auth_resp(struct Curl_easy *data,
(void)instate; /* no use for this yet */
- result = Curl_sasl_continue(&smtpc->sasl, data, conn, smtpcode, &progress);
+ result = Curl_sasl_continue(&smtpc->sasl, data, smtpcode, &progress);
if(!result)
switch(progress) {
case SASL_DONE:
@@ -1330,7 +1354,7 @@ static CURLcode smtp_connect(struct Curl_easy *data, bool *done)
PINGPONG_SETUP(pp, smtp_statemachine, smtp_endofresp);
/* Initialize the SASL storage */
- Curl_sasl_init(&smtpc->sasl, &saslsmtp);
+ Curl_sasl_init(&smtpc->sasl, data, &saslsmtp);
/* Initialise the pingpong layer */
Curl_pp_setup(pp);
@@ -1652,8 +1676,6 @@ static CURLcode smtp_parse_url_options(struct connectdata *conn)
struct smtp_conn *smtpc = &conn->proto.smtpc;
const char *ptr = conn->options;
- smtpc->sasl.resetprefs = TRUE;
-
while(!result && ptr && *ptr) {
const char *key = ptr;
const char *value;
diff --git a/lib/socks.c b/lib/socks.c
index 91c4223a5..db4c80834 100644
--- a/lib/socks.c
+++ b/lib/socks.c
@@ -99,24 +99,24 @@ int Curl_blockread_all(struct Curl_easy *data, /* transfer */
}
#endif
-#ifndef DEBUGBUILD
-#define sxstate(x,y) socksstate(x,y)
-#else
+#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
+#define DEBUG_AND_VERBOSE
#define sxstate(x,y) socksstate(x,y, __LINE__)
+#else
+#define sxstate(x,y) socksstate(x,y)
#endif
-
/* always use this function to change state, to make debugging easier */
static void socksstate(struct Curl_easy *data,
enum connect_t state
-#ifdef DEBUGBUILD
+#ifdef DEBUG_AND_VERBOSE
, int lineno
#endif
)
{
struct connectdata *conn = data->conn;
enum connect_t oldstate = conn->cnnct.state;
-#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
+#ifdef DEBUG_AND_VERBOSE
/* synced with the state list in urldata.h */
static const char * const statename[] = {
"INIT",
@@ -146,7 +146,7 @@ static void socksstate(struct Curl_easy *data,
conn->cnnct.state = state;
-#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
+#ifdef DEBUG_AND_VERBOSE
infof(data,
"SXSTATE: %s => %s conn %p; line %d",
statename[oldstate], statename[conn->cnnct.state], conn,
diff --git a/lib/socks_gssapi.c b/lib/socks_gssapi.c
index 34bfa37d7..8ef2f8f37 100644
--- a/lib/socks_gssapi.c
+++ b/lib/socks_gssapi.c
@@ -257,7 +257,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
return CURLE_COULDNT_CONNECT;
}
- if(socksreq[1] != 1) { /* status / messgae type */
+ if(socksreq[1] != 1) { /* status / message type */
failf(data, "Invalid GSS-API authentication response type (%d %d).",
socksreq[0], socksreq[1]);
gss_release_name(&gss_status, &server);
@@ -452,7 +452,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
return CURLE_COULDNT_CONNECT;
}
- if(socksreq[1] != 2) { /* status / messgae type */
+ if(socksreq[1] != 2) { /* status / message type */
failf(data, "Invalid GSS-API encryption response type (%d %d).",
socksreq[0], socksreq[1]);
gss_delete_sec_context(&gss_status, &gss_context, NULL);
diff --git a/lib/socks_sspi.c b/lib/socks_sspi.c
index cb225b9b5..ffc870346 100644
--- a/lib/socks_sspi.c
+++ b/lib/socks_sspi.c
@@ -277,7 +277,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
return CURLE_COULDNT_CONNECT;
}
- if(socksreq[1] != 1) { /* status / messgae type */
+ if(socksreq[1] != 1) { /* status / message type */
failf(data, "Invalid SSPI authentication response type (%u %u).",
(unsigned int)socksreq[0], (unsigned int)socksreq[1]);
free(service_name);
diff --git a/lib/splay.c b/lib/splay.c
index a94e2c85e..1c1dafb92 100644
--- a/lib/splay.c
+++ b/lib/splay.c
@@ -154,7 +154,7 @@ struct Curl_tree *Curl_splaygetbest(struct curltime i,
struct Curl_tree *t,
struct Curl_tree **removed)
{
- static struct curltime tv_zero = {0, 0};
+ static const struct curltime tv_zero = {0, 0};
struct Curl_tree *x;
if(!t) {
diff --git a/lib/strdup.c b/lib/strdup.c
index 9af47ea47..85cf33b3e 100644
--- a/lib/strdup.c
+++ b/lib/strdup.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -24,6 +24,10 @@
#include <curl/curl.h>
+#ifdef WIN32
+#include <wchar.h>
+#endif
+
#include "strdup.h"
#include "curl_memory.h"
@@ -50,6 +54,28 @@ char *curlx_strdup(const char *str)
}
#endif
+#ifdef WIN32
+/***************************************************************************
+ *
+ * Curl_wcsdup(source)
+ *
+ * Copies the 'source' wchar string to a newly allocated buffer (that is
+ * returned).
+ *
+ * Returns the new pointer or NULL on failure.
+ *
+ ***************************************************************************/
+wchar_t *Curl_wcsdup(const wchar_t *src)
+{
+ size_t length = wcslen(src);
+
+ if(length > (SIZE_T_MAX / sizeof(wchar_t)) - 1)
+ return (wchar_t *)NULL; /* integer overflow */
+
+ return (wchar_t *)Curl_memdup(src, (length + 1) * sizeof(wchar_t));
+}
+#endif
+
/***************************************************************************
*
* Curl_memdup(source, length)
diff --git a/lib/strdup.h b/lib/strdup.h
index 0936956f8..8c8a6f20e 100644
--- a/lib/strdup.h
+++ b/lib/strdup.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -26,6 +26,9 @@
#ifndef HAVE_STRDUP
extern char *curlx_strdup(const char *str);
#endif
+#ifdef WIN32
+wchar_t* Curl_wcsdup(const wchar_t* src);
+#endif
void *Curl_memdup(const void *src, size_t buffer_length);
void *Curl_saferealloc(void *ptr, size_t size);
diff --git a/lib/strerror.c b/lib/strerror.c
index a1ec539b9..31eb2bf79 100644
--- a/lib/strerror.c
+++ b/lib/strerror.c
@@ -453,6 +453,78 @@ curl_share_strerror(CURLSHcode error)
#endif
}
+const char *
+curl_url_strerror(CURLUcode error)
+{
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+ switch(error) {
+ case CURLUE_OK:
+ return "No error";
+
+ case CURLUE_BAD_HANDLE:
+ return "An invalid CURLU pointer was passed as argument";
+
+ case CURLUE_BAD_PARTPOINTER:
+ return "An invalid 'part' argument was passed as argument";
+
+ case CURLUE_MALFORMED_INPUT:
+ return "A malformed input was passed to a URL API function";
+
+ case CURLUE_BAD_PORT_NUMBER:
+ return "The port number was not a decimal number between 0 and 65535";
+
+ case CURLUE_UNSUPPORTED_SCHEME:
+ return "This libcurl build doesn't support the given URL scheme";
+
+ case CURLUE_URLDECODE:
+ return "URL decode error, most likely because of rubbish in the input";
+
+ case CURLUE_OUT_OF_MEMORY:
+ return "A memory function failed";
+
+ case CURLUE_USER_NOT_ALLOWED:
+ return "Credentials was passed in the URL when prohibited";
+
+ case CURLUE_UNKNOWN_PART:
+ return "An unknown part ID was passed to a URL API function";
+
+ case CURLUE_NO_SCHEME:
+ return "There is no scheme part in the URL";
+
+ case CURLUE_NO_USER:
+ return "There is no user part in the URL";
+
+ case CURLUE_NO_PASSWORD:
+ return "There is no password part in the URL";
+
+ case CURLUE_NO_OPTIONS:
+ return "There is no options part in the URL";
+
+ case CURLUE_NO_HOST:
+ return "There is no host part in the URL";
+
+ case CURLUE_NO_PORT:
+ return "There is no port part in the URL";
+
+ case CURLUE_NO_QUERY:
+ return "There is no query part in the URL";
+
+ case CURLUE_NO_FRAGMENT:
+ return "There is no fragment part in the URL";
+
+ case CURLUE_LAST:
+ break;
+ }
+
+ return "CURLUcode unknown";
+#else
+ if(error == CURLUE_OK)
+ return "No error";
+ else
+ return "Error";
+#endif
+}
+
#ifdef USE_WINSOCK
/* This is a helper function for Curl_strerror that converts Winsock error
* codes (WSAGetLastError) to error messages.
@@ -735,7 +807,7 @@ const char *Curl_strerror(int err, char *buf, size_t buflen)
#if defined(WIN32)
/* 'sys_nerr' is the maximum errno number, it is not widely portable */
if(err >= 0 && err < sys_nerr)
- strncpy(buf, strerror(err), max);
+ strncpy(buf, sys_errlist[err], max);
else
#endif
{
@@ -786,6 +858,7 @@ const char *Curl_strerror(int err, char *buf, size_t buflen)
}
#else
{
+ /* !checksrc! disable STRERROR 1 */
const char *msg = strerror(err);
if(msg)
strncpy(buf, msg, max);
diff --git a/lib/system_win32.c b/lib/system_win32.c
index 2939fd0d7..d4e194831 100644
--- a/lib/system_win32.c
+++ b/lib/system_win32.c
@@ -102,6 +102,8 @@ CURLcode Curl_win32_init(long flags)
Curl_if_nametoindex = pIfNameToIndex;
}
+ /* curlx_verify_windows_version must be called during init at least once
+ because it has its own initialization routine. */
if(curlx_verify_windows_version(6, 0, PLATFORM_WINNT,
VERSION_GREATER_THAN_EQUAL)) {
Curl_isVistaOrGreater = TRUE;
diff --git a/lib/tftp.c b/lib/tftp.c
index 8aeb14a4f..7e5246f01 100644
--- a/lib/tftp.c
+++ b/lib/tftp.c
@@ -720,7 +720,7 @@ static CURLcode tftp_tx(struct tftp_state_data *state, tftp_event_t event)
/* There's a bug in tftpd-hpa that causes it to send us an ack for
* 65535 when the block number wraps to 0. So when we're expecting
* 0, also accept 65535. See
- * http://syslinux.zytor.com/archives/2010-September/015253.html
+ * https://www.syslinux.org/archives/2010-September/015612.html
* */
!(state->block == 0 && rblock == 65535)) {
/* This isn't the expected block. Log it and up the retry counter */
@@ -1304,9 +1304,9 @@ static CURLcode tftp_doing(struct Curl_easy *data, bool *dophase_done)
/**********************************************************
*
- * tftp_peform
+ * tftp_perform
*
- * Entry point for transfer from tftp_do, sarts state mach
+ * Entry point for transfer from tftp_do, starts state mach
*
**********************************************************/
static CURLcode tftp_perform(struct Curl_easy *data, bool *dophase_done)
diff --git a/lib/transfer.c b/lib/transfer.c
index 3e650b5b9..05fec7998 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1503,7 +1503,7 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
}
#endif
Curl_http2_init_state(&data->state);
- Curl_hsts_loadcb(data, data->hsts);
+ result = Curl_hsts_loadcb(data, data->hsts);
}
/*
diff --git a/lib/url.c b/lib/url.c
index 8a2845ddd..93b4397bf 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -622,6 +622,7 @@ CURLcode Curl_init_userdefined(struct Curl_easy *data)
set->upkeep_interval_ms = CURL_UPKEEP_INTERVAL_DEFAULT;
set->maxconnects = DEFAULT_CONNCACHE_SIZE; /* for easy handles */
set->maxage_conn = 118;
+ set->maxlifetime_conn = 0;
set->http09_allowed = FALSE;
set->httpwant =
#ifdef USE_NGHTTP2
@@ -962,21 +963,36 @@ socks_proxy_info_matches(const struct proxy_info *data,
#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. */
+/* A connection has to have been idle for a shorter time than 'maxage_conn'
+ (the success rate is just too low after this), or created less than
+ 'maxlifetime_conn' ago, to be subject for reuse. */
static bool conn_maxage(struct Curl_easy *data,
struct connectdata *conn,
struct curltime now)
{
- timediff_t idletime = Curl_timediff(now, conn->lastused);
+ timediff_t idletime, lifetime;
+
+ idletime = Curl_timediff(now, conn->lastused);
idletime /= 1000; /* integer seconds is fine */
if(idletime > data->set.maxage_conn) {
- infof(data, "Too old connection (%ld seconds), disconnect it",
+ infof(data, "Too old connection (%ld seconds idle), disconnect it",
idletime);
return TRUE;
}
+
+ lifetime = Curl_timediff(now, conn->created);
+ lifetime /= 1000; /* integer seconds is fine */
+
+ if(data->set.maxlifetime_conn && lifetime > data->set.maxlifetime_conn) {
+ infof(data,
+ "Too old connection (%ld seconds since creation), disconnect it",
+ lifetime);
+ return TRUE;
+ }
+
+
return FALSE;
}
@@ -1892,9 +1908,13 @@ static void zonefrom_url(CURLU *uh, struct Curl_easy *data,
#else
scopeidx = if_nametoindex(zoneid);
#endif
- if(!scopeidx)
+ if(!scopeidx) {
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+ char buffer[STRERROR_LEN];
infof(data, "Invalid zoneid: %s; %s", zoneid,
- strerror(errno));
+ Curl_strerror(errno, buffer, sizeof(buffer)));
+#endif
+ }
else
conn->scope_id = scopeidx;
}
@@ -1950,7 +1970,8 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
CURLU_DISALLOW_USER : 0) |
(data->set.path_as_is ? CURLU_PATH_AS_IS : 0));
if(uc) {
- DEBUGF(infof(data, "curl_url_set rejected %s", data->state.url));
+ DEBUGF(infof(data, "curl_url_set rejected %s: %s", data->state.url,
+ curl_url_strerror(uc)));
return Curl_uc_to_curlcode(uc);
}
@@ -2376,6 +2397,11 @@ static CURLcode parse_proxy(struct Curl_easy *data,
CURLcode result = CURLE_OK;
char *scheme = NULL;
+ if(!uhp) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto error;
+ }
+
/* When parsing the proxy, allowing non-supported schemes since we have
these made up ones for proxies. Guess scheme for URLs without it. */
uc = curl_url_set(uhp, CURLUPART_URL, proxy,
@@ -2759,7 +2785,7 @@ CURLcode Curl_parse_login_details(const char *login, const size_t len,
size_t plen;
size_t olen;
- /* the input length check is because this is called directcly from setopt
+ /* the input length check is because this is called directly from setopt
and isn't going through the regular string length check */
size_t llen = strlen(login);
if(llen > CURL_MAX_INPUT_LENGTH)
@@ -4089,7 +4115,7 @@ CURLcode Curl_connect(struct Curl_easy *data,
/* init the single-transfer specific data */
Curl_free_request_state(data);
memset(&data->req, 0, sizeof(struct SingleRequest));
- data->req.maxdownload = -1;
+ data->req.size = data->req.maxdownload = -1;
/* call the stuff that needs to be called */
result = create_conn(data, &conn, asyncp);
diff --git a/lib/urlapi.c b/lib/urlapi.c
index 905c499d9..6d116b61b 100644
--- a/lib/urlapi.c
+++ b/lib/urlapi.c
@@ -157,23 +157,23 @@ static size_t strlen_url(const char *url, bool relative)
continue;
}
- switch(*ptr) {
- case '?':
- left = FALSE;
- /* FALLTHROUGH */
- default:
- if(urlchar_needs_escaping(*ptr))
- newlen += 2;
- newlen++;
- break;
- case ' ':
+ if(*ptr == ' ') {
if(left)
newlen += 3;
else
newlen++;
- break;
+ continue;
}
+
+ if (*ptr == '?')
+ left = FALSE;
+
+ if(urlchar_needs_escaping(*ptr))
+ newlen += 2;
+
+ newlen++;
}
+
return newlen;
}
@@ -202,19 +202,7 @@ static void strcpy_url(char *output, const char *url, bool relative)
continue;
}
- switch(*iptr) {
- case '?':
- left = FALSE;
- /* FALLTHROUGH */
- default:
- if(urlchar_needs_escaping(*iptr)) {
- msnprintf(optr, 4, "%%%02x", *iptr);
- optr += 3;
- }
- else
- *optr++=*iptr;
- break;
- case ' ':
+ if(*iptr == ' ') {
if(left) {
*optr++='%'; /* add a '%' */
*optr++='2'; /* add a '2' */
@@ -222,8 +210,18 @@ static void strcpy_url(char *output, const char *url, bool relative)
}
else
*optr++='+'; /* add a '+' here */
- break;
+ continue;
+ }
+
+ if(*iptr == '?')
+ left = FALSE;
+
+ if(urlchar_needs_escaping(*iptr)) {
+ msnprintf(optr, 4, "%%%02x", *iptr);
+ optr += 3;
}
+ else
+ *optr++ = *iptr;
}
*optr = 0; /* null-terminate output buffer */
@@ -656,7 +654,7 @@ static CURLUcode hostname_check(struct Curl_URL *u, char *hostname)
}
else {
/* letters from the second string is not ok */
- len = strcspn(hostname, " ");
+ len = strcspn(hostname, " \r\n");
if(hlen != len)
/* hostname with bad content */
return CURLUE_MALFORMED_INPUT;
@@ -756,10 +754,35 @@ static bool ipv4_normalize(const char *hostname, char *outp, size_t olen)
return TRUE;
}
+/* return strdup'ed version in 'outp', possibly percent decoded */
+static CURLUcode decode_host(char *hostname, char **outp)
+{
+ char *per = NULL;
+ if(hostname[0] != '[')
+ /* only decode if not an ipv6 numerical */
+ per = strchr(hostname, '%');
+ if(!per) {
+ *outp = strdup(hostname);
+ if(!*outp)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ else {
+ /* might be encoded */
+ size_t dlen;
+ CURLcode result = Curl_urldecode(NULL, hostname, 0,
+ outp, &dlen, REJECT_CTRL);
+ if(result)
+ return CURLUE_MALFORMED_INPUT;
+ }
+
+ return CURLUE_OK;
+}
+
static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
{
char *path;
bool path_alloced = FALSE;
+ bool uncpath = FALSE;
char *hostname;
char *query = NULL;
char *fragment = NULL;
@@ -770,8 +793,7 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
size_t schemelen = 0;
size_t urllen;
- if(!url)
- return CURLUE_MALFORMED_INPUT;
+ DEBUGASSERT(url);
/*************************************************************
* Parse the URL.
@@ -799,7 +821,6 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
/* path has been allocated large enough to hold this */
strcpy(path, &url[5]);
- hostname = NULL; /* no host for file: URLs */
u->scheme = strdup("file");
if(!u->scheme)
return CURLUE_OUT_OF_MEMORY;
@@ -821,10 +842,13 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
*
* o the hostname matches "localhost" (case-insensitively), or
*
- * o the hostname is a FQDN that resolves to this machine.
+ * o the hostname is a FQDN that resolves to this machine, or
+ *
+ * o it is an UNC String transformed to an URI (Windows only, RFC 8089
+ * Appendix E.3).
*
* For brevity, we only consider URLs with empty, "localhost", or
- * "127.0.0.1" hostnames as local.
+ * "127.0.0.1" hostnames as local, otherwise as an UNC String.
*
* Additionally, there is an exception for URLs with a Windows drive
* letter in the authority (which was accidentally omitted from RFC 8089
@@ -833,18 +857,43 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
if(ptr[0] != '/' && !STARTS_WITH_URL_DRIVE_PREFIX(ptr)) {
/* the URL includes a host name, it must match "localhost" or
"127.0.0.1" to be valid */
- if(!checkprefix("localhost/", ptr) &&
- !checkprefix("127.0.0.1/", ptr)) {
+ if(checkprefix("localhost/", ptr) ||
+ checkprefix("127.0.0.1/", ptr)) {
+ ptr += 9; /* now points to the slash after the host */
+ }
+ else {
+#if defined(WIN32)
+ size_t len;
+
+ /* the host name, NetBIOS computer name, can not contain disallowed
+ chars, and the delimiting slash character must be appended to the
+ host name */
+ path = strpbrk(ptr, "/\\:*?\"<>|");
+ if(!path || *path != '/')
+ return CURLUE_MALFORMED_INPUT;
+
+ len = path - ptr;
+ if(len) {
+ memcpy(hostname, ptr, len);
+ hostname[len] = 0;
+ uncpath = TRUE;
+ }
+
+ ptr -= 2; /* now points to the // before the host in UNC */
+#else
/* Invalid file://hostname/, expected localhost or 127.0.0.1 or
none */
return CURLUE_MALFORMED_INPUT;
+#endif
}
- ptr += 9; /* now points to the slash after the host */
}
path = ptr;
}
+ if(!uncpath)
+ hostname = NULL; /* no host for file: URLs by default */
+
#if !defined(MSDOS) && !defined(WIN32) && !defined(__CYGWIN__)
/* Don't allow Windows drive letters when not in Windows.
* This catches both "file:/c:" and "file:c:" */
@@ -1004,20 +1053,22 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
if(0 == strlen(hostname) && (flags & CURLU_NO_AUTHORITY)) {
/* Skip hostname check, it's allowed to be empty. */
+ u->host = strdup("");
}
else {
- result = hostname_check(u, hostname);
- if(result)
- return result;
+ if(ipv4_normalize(hostname, normalized_ipv4, sizeof(normalized_ipv4)))
+ u->host = strdup(normalized_ipv4);
+ else {
+ result = decode_host(hostname, &u->host);
+ if(result)
+ return result;
+ result = hostname_check(u, u->host);
+ if(result)
+ return result;
+ }
}
-
- if(ipv4_normalize(hostname, normalized_ipv4, sizeof(normalized_ipv4)))
- u->host = strdup(normalized_ipv4);
- else
- 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))
@@ -1112,6 +1163,7 @@ CURLUcode curl_url_get(CURLU *u, CURLUPart what,
CURLUcode ifmissing = CURLUE_UNKNOWN_PART;
char portbuf[7];
bool urldecode = (flags & CURLU_URLDECODE)?1:0;
+ bool urlencode = (flags & CURLU_URLENCODE)?1:0;
bool plusdecode = FALSE;
(void)flags;
if(!u)
@@ -1229,16 +1281,54 @@ CURLUcode curl_url_get(CURLU *u, CURLUPart what,
if(h && !(h->flags & PROTOPT_URLOPTIONS))
options = NULL;
- if((u->host[0] == '[') && u->zoneid) {
- /* make it '[ host %25 zoneid ]' */
- size_t hostlen = strlen(u->host);
- size_t alen = hostlen + 3 + strlen(u->zoneid) + 1;
- allochost = malloc(alen);
+ if(u->host[0] == '[') {
+ if(u->zoneid) {
+ /* make it '[ host %25 zoneid ]' */
+ size_t hostlen = strlen(u->host);
+ size_t alen = hostlen + 3 + strlen(u->zoneid) + 1;
+ allochost = malloc(alen);
+ if(!allochost)
+ return CURLUE_OUT_OF_MEMORY;
+ memcpy(allochost, u->host, hostlen - 1);
+ msnprintf(&allochost[hostlen - 1], alen - hostlen + 1,
+ "%%25%s]", u->zoneid);
+ }
+ }
+ else if(urlencode) {
+ allochost = curl_easy_escape(NULL, u->host, 0);
if(!allochost)
return CURLUE_OUT_OF_MEMORY;
- memcpy(allochost, u->host, hostlen - 1);
- msnprintf(&allochost[hostlen - 1], alen - hostlen + 1,
- "%%25%s]", u->zoneid);
+ }
+ else {
+ /* only encode '%' in output host name */
+ char *host = u->host;
+ size_t pcount = 0;
+ /* first, count number of percents present in the name */
+ while(*host) {
+ if(*host == '%')
+ pcount++;
+ host++;
+ }
+ /* if there were percents, encode the host name */
+ if(pcount) {
+ size_t hostlen = strlen(u->host);
+ size_t alen = hostlen + 2 * pcount + 1;
+ char *o = allochost = malloc(alen);
+ if(!allochost)
+ return CURLUE_OUT_OF_MEMORY;
+
+ host = u->host;
+ while(*host) {
+ if(*host == '%') {
+ memcpy(o, "%25", 3);
+ o += 3;
+ host++;
+ continue;
+ }
+ *o++ = *host++;
+ }
+ *o = '\0';
+ }
}
url = aprintf("%s://%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
@@ -1380,10 +1470,15 @@ CURLUcode curl_url_set(CURLU *u, CURLUPart what,
case CURLUPART_OPTIONS:
storep = &u->options;
break;
- case CURLUPART_HOST:
+ case CURLUPART_HOST: {
+ size_t len = strcspn(part, " \r\n");
+ if(strlen(part) != len)
+ /* hostname with bad content */
+ return CURLUE_MALFORMED_INPUT;
storep = &u->host;
Curl_safefree(u->zoneid);
break;
+ }
case CURLUPART_ZONEID:
storep = &u->zoneid;
break;
diff --git a/lib/urldata.h b/lib/urldata.h
index 1d9911208..22068882f 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -330,7 +330,7 @@ struct digestdata {
char *opaque;
char *qop;
char *algorithm;
- int nc; /* nounce count */
+ int nc; /* nonce count */
BIT(stale); /* set true for re-negotiation */
BIT(userhash);
#endif
@@ -704,14 +704,15 @@ struct SingleRequest {
#ifndef CURL_DISABLE_DOH
struct dohdata *doh; /* DoH specific data for this request */
#endif
- BIT(header); /* incoming data has HTTP header */
+ BIT(header); /* incoming data has HTTP header */
BIT(content_range); /* set TRUE if Content-Range: was found */
- BIT(upload_done); /* set to TRUE when doing chunked transfer-encoding
- upload and we're uploading the last chunk */
- BIT(ignorebody); /* we read a response-body but we ignore it! */
+ BIT(upload_done); /* set to TRUE when doing chunked transfer-encoding
+ upload and we're uploading the last chunk */
+ BIT(ignorebody); /* we read a response-body but we ignore it! */
BIT(http_bodyless); /* HTTP response status code is between 100 and 199,
204 or 304 */
- BIT(chunk); /* if set, this is a chunked transfer-encoding */
+ BIT(chunk); /* if set, this is a chunked transfer-encoding */
+ BIT(ignore_cl); /* ignore content-length */
BIT(upload_chunky); /* set TRUE if we are doing chunked transfer-encoding
on upload */
BIT(getheader); /* TRUE if header parsing is wanted */
@@ -1553,6 +1554,7 @@ enum dupstring {
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_HOST_PUBLIC_KEY_SHA256, /* sha256 of host public key in base64 */
STRING_SSH_KNOWNHOSTS, /* file name of knownhosts file */
STRING_PROXY_SERVICE_NAME, /* Proxy service name */
STRING_SERVICE_NAME, /* Service name */
@@ -1650,6 +1652,8 @@ struct UserDefined {
curl_closesocket_callback fclosesocket; /* function for closing the
socket */
void *closesocket_client;
+ curl_prereq_callback fprereq; /* pre-initial request callback */
+ void *prereq_userp; /* pre-initial request user data */
void *seek_client; /* pointer to pass to the seek callback */
/* the 3 curl_conv_callback functions below are used on non-ASCII hosts */
@@ -1674,6 +1678,8 @@ struct UserDefined {
long server_response_timeout; /* in milliseconds, 0 means no timeout */
long maxage_conn; /* in seconds, max idle time to allow a connection that
is to be reused */
+ long maxlifetime_conn; /* in seconds, max time since creation to allow a
+ connection that is to be reused */
long tftp_blksize; /* in bytes, 0 means use default */
curl_off_t filesize; /* size of file to upload, -1 means unknown */
long low_speed_limit; /* bytes/second */
@@ -1851,7 +1857,6 @@ struct UserDefined {
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(doh_verifypeer); /* DoH certificate peer verification */
BIT(doh_verifyhost); /* DoH certificate hostname verification */
BIT(doh_verifystatus); /* DoH certificate status verification */
diff --git a/lib/vauth/krb5_gssapi.c b/lib/vauth/krb5_gssapi.c
index fee24ee47..67d43bd56 100644
--- a/lib/vauth/krb5_gssapi.c
+++ b/lib/vauth/krb5_gssapi.c
@@ -170,6 +170,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,
* Parameters:
*
* data [in] - The session handle.
+ * authzid [in] - The authorization identity if some.
* chlg [in] - Optional challenge message.
* krb5 [in/out] - The Kerberos 5 data struct being used and modified.
* out [out] - The result storage.
@@ -177,6 +178,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,
* Returns CURLE_OK on success.
*/
CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
+ const char *authzid,
const struct bufref *chlg,
struct kerberos5data *krb5,
struct bufref *out)
@@ -189,13 +191,10 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
OM_uint32 unused_status;
gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER;
- unsigned int indata = 0;
- unsigned int outdata = 0;
+ unsigned char *indata;
gss_qop_t qop = GSS_C_QOP_DEFAULT;
unsigned int sec_layer = 0;
unsigned int max_size = 0;
- gss_name_t username = GSS_C_NO_NAME;
- gss_buffer_desc username_token;
/* Ensure we have a valid challenge message */
if(!Curl_bufref_len(chlg)) {
@@ -203,25 +202,6 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
return CURLE_BAD_CONTENT_ENCODING;
}
- /* Get the fully qualified username back from the context */
- major_status = gss_inquire_context(&minor_status, krb5->context,
- &username, NULL, NULL, NULL, NULL,
- NULL, NULL);
- if(GSS_ERROR(major_status)) {
- Curl_gss_log_error(data, "gss_inquire_context() failed: ",
- major_status, minor_status);
- return CURLE_AUTH_ERROR;
- }
-
- /* Convert the username from internal format to a displayable token */
- major_status = gss_display_name(&minor_status, username,
- &username_token, NULL);
- if(GSS_ERROR(major_status)) {
- Curl_gss_log_error(data, "gss_display_name() failed: ",
- major_status, minor_status);
- return CURLE_AUTH_ERROR;
- }
-
/* Setup the challenge "input" security buffer */
input_token.value = (void *) Curl_bufref_ptr(chlg);
input_token.length = Curl_bufref_len(chlg);
@@ -232,32 +212,32 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
if(GSS_ERROR(major_status)) {
Curl_gss_log_error(data, "gss_unwrap() failed: ",
major_status, minor_status);
- gss_release_buffer(&unused_status, &username_token);
return CURLE_BAD_CONTENT_ENCODING;
}
/* Not 4 octets long so fail as per RFC4752 Section 3.1 */
if(output_token.length != 4) {
infof(data, "GSSAPI handshake failure (invalid security data)");
- gss_release_buffer(&unused_status, &username_token);
return CURLE_BAD_CONTENT_ENCODING;
}
- /* Copy the data out and free the challenge as it is not required anymore */
- memcpy(&indata, output_token.value, 4);
+ /* Extract the security layer and the maximum message size */
+ indata = output_token.value;
+ sec_layer = indata[0];
+ max_size = (indata[1] << 16) | (indata[2] << 8) | indata[3];
+
+ /* Free the challenge as it is not required anymore */
gss_release_buffer(&unused_status, &output_token);
- /* Extract the security layer */
- sec_layer = indata & 0x000000FF;
+ /* Process the security layer */
if(!(sec_layer & GSSAUTH_P_NONE)) {
infof(data, "GSSAPI handshake failure (invalid security layer)");
- gss_release_buffer(&unused_status, &username_token);
return CURLE_BAD_CONTENT_ENCODING;
}
+ sec_layer &= GSSAUTH_P_NONE; /* We do not support a security layer */
- /* Extract the maximum message size the server can receive */
- max_size = ntohl(indata & 0xFFFFFF00);
+ /* Process the maximum message size the server can receive */
if(max_size > 0) {
/* The server has told us it supports a maximum receive buffer, however, as
we don't require one unless we are encrypting data, we tell the server
@@ -266,26 +246,24 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
}
/* Allocate our message */
- messagelen = sizeof(outdata) + username_token.length + 1;
+ messagelen = 4;
+ if(authzid)
+ messagelen += strlen(authzid);
message = malloc(messagelen);
- if(!message) {
- gss_release_buffer(&unused_status, &username_token);
+ if(!message)
return CURLE_OUT_OF_MEMORY;
- }
- /* Populate the message with the security layer, client supported receive
- message size and authorization identity including the 0x00 based
- terminator. Note: Despite RFC4752 Section 3.1 stating "The authorization
- identity is not terminated with the zero-valued (%x00) octet." it seems
- necessary to include it. */
- outdata = htonl(max_size) | sec_layer;
- memcpy(message, &outdata, sizeof(outdata));
- memcpy(message + sizeof(outdata), username_token.value,
- username_token.length);
- message[messagelen - 1] = '\0';
-
- /* Free the username token as it is not required anymore */
- gss_release_buffer(&unused_status, &username_token);
+ /* Populate the message with the security layer and client supported receive
+ message size. */
+ message[0] = sec_layer & 0xFF;
+ message[1] = (max_size >> 16) & 0xFF;
+ message[2] = (max_size >> 8) & 0xFF;
+ message[3] = max_size & 0xFF;
+
+ /* If given, append the authorization identity. */
+
+ if(authzid && *authzid)
+ memcpy(message + 4, authzid, messagelen - 4);
/* Setup the "authentication data" security buffer */
input_token.value = message;
diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c
index 8f7a2b02d..c652fd736 100644
--- a/lib/vauth/krb5_sspi.c
+++ b/lib/vauth/krb5_sspi.c
@@ -238,13 +238,15 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,
* Parameters:
*
* data [in] - The session handle.
- * chlg [in] - The optional challenge message.
+ * authzid [in] - The authorization identity if some.
+ * chlg [in] - The optional challenge message.
* krb5 [in/out] - The Kerberos 5 data struct being used and modified.
* out [out] - The result storage.
*
* Returns CURLE_OK on success.
*/
CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
+ const char *authzid,
const struct bufref *chlg,
struct kerberos5data *krb5,
struct bufref *out)
@@ -260,15 +262,12 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
SecBuffer wrap_buf[3];
SecBufferDesc input_desc;
SecBufferDesc wrap_desc;
- unsigned long indata = 0;
- unsigned long outdata = 0;
+ unsigned char *indata;
unsigned long qop = 0;
unsigned long sec_layer = 0;
unsigned long max_size = 0;
SecPkgContext_Sizes sizes;
- SecPkgCredentials_Names names;
SECURITY_STATUS status;
- char *user_name;
#if defined(CURL_DISABLE_VERBOSE_STRINGS)
(void) data;
@@ -291,17 +290,6 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
if(status != SEC_E_OK)
return CURLE_AUTH_ERROR;
- /* Get the fully qualified username back from the context */
- status = s_pSecFn->QueryCredentialsAttributes(krb5->credentials,
- SECPKG_CRED_ATTR_NAMES,
- &names);
-
- if(status == SEC_E_INSUFFICIENT_MEMORY)
- return CURLE_OUT_OF_MEMORY;
-
- if(status != SEC_E_OK)
- return CURLE_AUTH_ERROR;
-
/* Setup the "input" security buffer */
input_desc.ulVersion = SECBUFFER_VERSION;
input_desc.cBuffers = 2;
@@ -326,19 +314,22 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
return CURLE_BAD_CONTENT_ENCODING;
}
- /* Copy the data out and free the challenge as it is not required anymore */
- memcpy(&indata, input_buf[1].pvBuffer, 4);
+ /* Extract the security layer and the maximum message size */
+ indata = input_buf[1].pvBuffer;
+ sec_layer = indata[0];
+ max_size = (indata[1] << 16) | (indata[2] << 8) | indata[3];
+
+ /* Free the challenge as it is not required anymore */
s_pSecFn->FreeContextBuffer(input_buf[1].pvBuffer);
- /* Extract the security layer */
- sec_layer = indata & 0x000000FF;
+ /* Process the security layer */
if(!(sec_layer & KERB_WRAP_NO_ENCRYPT)) {
infof(data, "GSSAPI handshake failure (invalid security layer)");
return CURLE_BAD_CONTENT_ENCODING;
}
+ sec_layer &= KERB_WRAP_NO_ENCRYPT; /* We do not support a security layer */
- /* Extract the maximum message size the server can receive */
- max_size = ntohl(indata & 0xFFFFFF00);
+ /* Process the maximum message size the server can receive */
if(max_size > 0) {
/* The server has told us it supports a maximum receive buffer, however, as
we don't require one unless we are encrypting data, we tell the server
@@ -351,33 +342,28 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
if(!trailer)
return CURLE_OUT_OF_MEMORY;
- /* Convert the user name to UTF8 when operating with Unicode */
- user_name = curlx_convert_tchar_to_UTF8(names.sUserName);
- if(!user_name) {
- free(trailer);
-
- return CURLE_OUT_OF_MEMORY;
- }
-
/* Allocate our message */
- messagelen = sizeof(outdata) + strlen(user_name) + 1;
+ messagelen = 4;
+ if(authzid)
+ messagelen += strlen(authzid);
message = malloc(messagelen);
if(!message) {
free(trailer);
- curlx_unicodefree(user_name);
return CURLE_OUT_OF_MEMORY;
}
- /* Populate the message with the security layer, client supported receive
- message size and authorization identity including the 0x00 based
- terminator. Note: Despite RFC4752 Section 3.1 stating "The authorization
- identity is not terminated with the zero-valued (%x00) octet." it seems
- necessary to include it. */
- outdata = htonl(max_size) | sec_layer;
- memcpy(message, &outdata, sizeof(outdata));
- strcpy((char *) message + sizeof(outdata), user_name);
- curlx_unicodefree(user_name);
+ /* Populate the message with the security layer and client supported receive
+ message size. */
+ message[0] = sec_layer & 0xFF;
+ message[1] = (max_size >> 16) & 0xFF;
+ message[2] = (max_size >> 8) & 0xFF;
+ message[3] = max_size & 0xFF;
+
+ /* If given, append the authorization identity. */
+
+ if(authzid && *authzid)
+ memcpy(message + 4, authzid, messagelen - 4);
/* Allocate the padding */
padding = malloc(sizes.cbBlockSize);
diff --git a/lib/vauth/vauth.h b/lib/vauth/vauth.h
index ec5b0007f..47a7c0bc8 100644
--- a/lib/vauth/vauth.h
+++ b/lib/vauth/vauth.h
@@ -194,6 +194,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,
/* This is used to generate a base64 encoded GSSAPI (Kerberos V5) security
token message */
CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data,
+ const char *authzid,
const struct bufref *chlg,
struct kerberos5data *krb5,
struct bufref *out);
diff --git a/lib/version_win32.c b/lib/version_win32.c
index b8157e989..2f845413c 100644
--- a/lib/version_win32.c
+++ b/lib/version_win32.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2016 - 2020, Steve Holme, <steve_holme@hotmail.com>.
+ * Copyright (C) 2016 - 2021, 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
@@ -26,11 +26,28 @@
#include <curl/curl.h>
#include "version_win32.h"
+#include "warnless.h"
/* The last #include files should be: */
#include "curl_memory.h"
#include "memdebug.h"
+/* This Unicode version struct works for VerifyVersionInfoW (OSVERSIONINFOEXW)
+ and RtlVerifyVersionInfo (RTLOSVERSIONINFOEXW) */
+struct OUR_OSVERSIONINFOEXW {
+ ULONG dwOSVersionInfoSize;
+ ULONG dwMajorVersion;
+ ULONG dwMinorVersion;
+ ULONG dwBuildNumber;
+ ULONG dwPlatformId;
+ WCHAR szCSDVersion[128];
+ USHORT wServicePackMajor;
+ USHORT wServicePackMinor;
+ USHORT wSuiteMask;
+ UCHAR wProductType;
+ UCHAR wReserved;
+};
+
/*
* curlx_verify_windows_version()
*
@@ -152,12 +169,23 @@ bool curlx_verify_windows_version(const unsigned int majorVersion,
}
#else
ULONGLONG cm = 0;
- OSVERSIONINFOEX osver;
+ struct OUR_OSVERSIONINFOEXW osver;
BYTE majorCondition;
BYTE minorCondition;
BYTE spMajorCondition;
BYTE spMinorCondition;
+ typedef LONG (APIENTRY *RTLVERIFYVERSIONINFO_FN)
+ (struct OUR_OSVERSIONINFOEXW *, ULONG, ULONGLONG);
+ static RTLVERIFYVERSIONINFO_FN pRtlVerifyVersionInfo;
+ static bool onetime = true; /* safe because first call is during init */
+
+ if(onetime) {
+ pRtlVerifyVersionInfo = CURLX_FUNCTION_CAST(RTLVERIFYVERSIONINFO_FN,
+ (GetProcAddress(GetModuleHandleA("ntdll"), "RtlVerifyVersionInfo")));
+ onetime = false;
+ }
+
switch(condition) {
case VERSION_LESS_THAN:
majorCondition = VER_LESS;
@@ -214,10 +242,23 @@ bool curlx_verify_windows_version(const unsigned int majorVersion,
if(platform != PLATFORM_DONT_CARE)
cm = VerSetConditionMask(cm, VER_PLATFORMID, VER_EQUAL);
- if(VerifyVersionInfo(&osver, (VER_MAJORVERSION | VER_MINORVERSION |
- VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR),
- cm))
- matched = TRUE;
+ /* Later versions of Windows have version functions that may not return the
+ real version of Windows unless the application is so manifested. We prefer
+ the real version always, so we use the Rtl variant of the function when
+ possible. Note though the function signatures have underlying fundamental
+ types that are the same, the return values are different. */
+ if(pRtlVerifyVersionInfo) {
+ matched = !pRtlVerifyVersionInfo(&osver,
+ (VER_MAJORVERSION | VER_MINORVERSION |
+ VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR),
+ cm);
+ }
+ else {
+ matched = !!VerifyVersionInfoW((OSVERSIONINFOEXW *)&osver,
+ (VER_MAJORVERSION | VER_MINORVERSION |
+ VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR),
+ cm);
+ }
#endif
return matched;
diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c
index fc449c415..dfe8f96fb 100644
--- a/lib/vquic/ngtcp2.c
+++ b/lib/vquic/ngtcp2.c
@@ -28,6 +28,9 @@
#include <nghttp3/nghttp3.h>
#ifdef USE_OPENSSL
#include <openssl/err.h>
+#include <ngtcp2/ngtcp2_crypto_openssl.h>
+#elif defined(USE_GNUTLS)
+#include <ngtcp2/ngtcp2_crypto_gnutls.h>
#endif
#include "urldata.h"
#include "sendf.h"
@@ -58,6 +61,7 @@
#endif
#define H3_ALPN_H3_29 "\x5h3-29"
+#define H3_ALPN_H3 "\x2h3"
/*
* This holds outgoing HTTP/3 stream data that is used by nghttp3 until acked.
@@ -117,42 +121,6 @@ static void quic_printf(void *user_data, const char *fmt, ...)
}
#endif
-#ifdef USE_OPENSSL
-static ngtcp2_crypto_level
-quic_from_ossl_level(OSSL_ENCRYPTION_LEVEL ossl_level)
-{
- switch(ossl_level) {
- case ssl_encryption_initial:
- return NGTCP2_CRYPTO_LEVEL_INITIAL;
- case ssl_encryption_early_data:
- return NGTCP2_CRYPTO_LEVEL_EARLY;
- case ssl_encryption_handshake:
- return NGTCP2_CRYPTO_LEVEL_HANDSHAKE;
- case ssl_encryption_application:
- return NGTCP2_CRYPTO_LEVEL_APPLICATION;
- default:
- assert(0);
- }
-}
-#elif defined(USE_GNUTLS)
-static ngtcp2_crypto_level
-quic_from_gtls_level(gnutls_record_encryption_level_t gtls_level)
-{
- switch(gtls_level) {
- case GNUTLS_ENCRYPTION_LEVEL_INITIAL:
- return NGTCP2_CRYPTO_LEVEL_INITIAL;
- case GNUTLS_ENCRYPTION_LEVEL_EARLY:
- return NGTCP2_CRYPTO_LEVEL_EARLY;
- case GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE:
- return NGTCP2_CRYPTO_LEVEL_HANDSHAKE;
- case GNUTLS_ENCRYPTION_LEVEL_APPLICATION:
- return NGTCP2_CRYPTO_LEVEL_APPLICATION;
- default:
- assert(0);
- }
-}
-#endif
-
static void qlog_callback(void *user_data, uint32_t flags,
const void *data, size_t datalen)
{
@@ -223,27 +191,9 @@ static int write_client_handshake(struct quicsocket *qs,
ngtcp2_crypto_level level,
const uint8_t *data, size_t len)
{
- struct quic_handshake *crypto_data;
int rv;
- crypto_data = &qs->crypto_data[level];
- if(!crypto_data->buf) {
- crypto_data->buf = malloc(4096);
- if(!crypto_data->buf)
- return 0;
- crypto_data->alloclen = 4096;
- }
-
- /* TODO Just pretend that handshake does not grow more than 4KiB for
- now */
- assert(crypto_data->len + len <= crypto_data->alloclen);
-
- memcpy(&crypto_data->buf[crypto_data->len], data, len);
- crypto_data->len += len;
-
- rv = ngtcp2_conn_submit_crypto_data(
- qs->qconn, level, (uint8_t *)(&crypto_data->buf[crypto_data->len] - len),
- len);
+ rv = ngtcp2_conn_submit_crypto_data(qs->qconn, level, data, len);
if(rv) {
H3BUGF(fprintf(stderr, "write_client_handshake failed\n"));
}
@@ -260,7 +210,7 @@ static int quic_set_encryption_secrets(SSL *ssl,
size_t secretlen)
{
struct quicsocket *qs = (struct quicsocket *)SSL_get_app_data(ssl);
- int level = quic_from_ossl_level(ossl_level);
+ int level = ngtcp2_crypto_openssl_from_ossl_encryption_level(ossl_level);
if(ngtcp2_crypto_derive_and_install_rx_key(
qs->qconn, NULL, NULL, NULL, level, rx_secret, secretlen) != 0)
@@ -282,7 +232,8 @@ static int quic_add_handshake_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL ossl_level,
const uint8_t *data, size_t len)
{
struct quicsocket *qs = (struct quicsocket *)SSL_get_app_data(ssl);
- ngtcp2_crypto_level level = quic_from_ossl_level(ossl_level);
+ ngtcp2_crypto_level level =
+ ngtcp2_crypto_openssl_from_ossl_encryption_level(ossl_level);
return write_client_handshake(qs, level, data, len);
}
@@ -353,9 +304,10 @@ static int quic_init_ssl(struct quicsocket *qs)
SSL_set_app_data(qs->ssl, qs);
SSL_set_connect_state(qs->ssl);
+ SSL_set_quic_use_legacy_codepoint(qs->ssl, 0);
- alpn = (const uint8_t *)H3_ALPN_H3_29;
- alpnlen = sizeof(H3_ALPN_H3_29) - 1;
+ alpn = (const uint8_t *)H3_ALPN_H3_29 H3_ALPN_H3;
+ alpnlen = sizeof(H3_ALPN_H3_29) - 1 + sizeof(H3_ALPN_H3) - 1;
if(alpn)
SSL_set_alpn_protos(qs->ssl, alpn, (int)alpnlen);
@@ -370,7 +322,8 @@ static int secret_func(gnutls_session_t ssl,
const void *tx_secret, size_t secretlen)
{
struct quicsocket *qs = gnutls_session_get_ptr(ssl);
- int level = quic_from_gtls_level(gtls_level);
+ int level =
+ ngtcp2_crypto_gnutls_from_gnutls_record_encryption_level(gtls_level);
if(level != NGTCP2_CRYPTO_LEVEL_EARLY &&
ngtcp2_crypto_derive_and_install_rx_key(
@@ -395,7 +348,8 @@ static int read_func(gnutls_session_t ssl,
size_t len)
{
struct quicsocket *qs = gnutls_session_get_ptr(ssl);
- ngtcp2_crypto_level level = quic_from_gtls_level(gtls_level);
+ ngtcp2_crypto_level level =
+ ngtcp2_crypto_gnutls_from_gnutls_record_encryption_level(gtls_level);
int rv;
if(htype == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC)
@@ -465,7 +419,7 @@ static int tp_send_func(gnutls_session_t ssl, gnutls_buffer_t extdata)
static int quic_init_ssl(struct quicsocket *qs)
{
- gnutls_datum_t alpn = {NULL, 0};
+ gnutls_datum_t alpn[2];
/* this will need some attention when HTTPS proxy over QUIC get fixed */
const char * const hostname = qs->conn->host.name;
int rc;
@@ -487,12 +441,10 @@ static int quic_init_ssl(struct quicsocket *qs)
gnutls_alert_set_read_function(qs->ssl, alert_read_func);
rc = gnutls_session_ext_register(qs->ssl, "QUIC Transport Parameters",
- 0xffa5, GNUTLS_EXT_TLS,
- tp_recv_func, tp_send_func,
- NULL, NULL, NULL,
- GNUTLS_EXT_FLAG_TLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE);
+ NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1, GNUTLS_EXT_TLS,
+ tp_recv_func, tp_send_func, NULL, NULL, NULL,
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_EE);
if(rc < 0) {
H3BUGF(fprintf(stderr, "gnutls_session_ext_register failed: %s\n",
gnutls_strerror(rc)));
@@ -532,10 +484,12 @@ static int quic_init_ssl(struct quicsocket *qs)
}
/* strip the first byte (the length) from NGHTTP3_ALPN_H3 */
- alpn.data = (unsigned char *)H3_ALPN_H3_29 + 1;
- alpn.size = sizeof(H3_ALPN_H3_29) - 2;
- if(alpn.data)
- gnutls_alpn_set_protocols(qs->ssl, &alpn, 1, 0);
+ alpn[0].data = (unsigned char *)H3_ALPN_H3_29 + 1;
+ alpn[0].size = sizeof(H3_ALPN_H3_29) - 2;
+ alpn[1].data = (unsigned char *)H3_ALPN_H3 + 1;
+ alpn[1].size = sizeof(H3_ALPN_H3) - 2;
+
+ gnutls_alpn_set_protocols(qs->ssl, alpn, 2, GNUTLS_ALPN_MANDATORY);
/* set SNI */
gnutls_server_name_set(qs->ssl, GNUTLS_NAME_DNS, hostname, strlen(hostname));
@@ -543,22 +497,6 @@ static int quic_init_ssl(struct quicsocket *qs)
}
#endif
-static int
-cb_recv_crypto_data(ngtcp2_conn *tconn, ngtcp2_crypto_level crypto_level,
- uint64_t offset,
- const uint8_t *data, size_t datalen,
- void *user_data)
-{
- (void)offset;
- (void)user_data;
-
- if(ngtcp2_crypto_read_write_crypto_data(tconn, crypto_level, data,
- datalen) != 0)
- return NGTCP2_ERR_CRYPTO;
-
- return 0;
-}
-
static int cb_handshake_completed(ngtcp2_conn *tconn, void *user_data)
{
(void)user_data;
@@ -623,8 +561,8 @@ cb_acked_stream_data_offset(ngtcp2_conn *tconn, int64_t stream_id,
return 0;
}
-static int cb_stream_close(ngtcp2_conn *tconn, int64_t stream_id,
- uint64_t app_error_code,
+static int cb_stream_close(ngtcp2_conn *tconn, uint32_t flags,
+ int64_t stream_id, uint64_t app_error_code,
void *user_data, void *stream_user_data)
{
struct quicsocket *qs = (struct quicsocket *)user_data;
@@ -633,6 +571,10 @@ static int cb_stream_close(ngtcp2_conn *tconn, int64_t stream_id,
(void)stream_user_data;
/* stream is closed... */
+ if(!(flags & NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET)) {
+ app_error_code = NGHTTP3_H3_NO_ERROR;
+ }
+
rv = nghttp3_conn_close_stream(qs->h3conn, stream_id,
app_error_code);
if(rv) {
@@ -653,7 +595,25 @@ static int cb_stream_reset(ngtcp2_conn *tconn, int64_t stream_id,
(void)app_error_code;
(void)stream_user_data;
- rv = nghttp3_conn_reset_stream(qs->h3conn, stream_id);
+ rv = nghttp3_conn_shutdown_stream_read(qs->h3conn, stream_id);
+ if(rv) {
+ return NGTCP2_ERR_CALLBACK_FAILURE;
+ }
+
+ return 0;
+}
+
+static int cb_stream_stop_sending(ngtcp2_conn *tconn, int64_t stream_id,
+ uint64_t app_error_code, void *user_data,
+ void *stream_user_data)
+{
+ struct quicsocket *qs = (struct quicsocket *)user_data;
+ int rv;
+ (void)tconn;
+ (void)app_error_code;
+ (void)stream_user_data;
+
+ rv = nghttp3_conn_shutdown_stream_read(qs->h3conn, stream_id);
if(rv) {
return NGTCP2_ERR_CALLBACK_FAILURE;
}
@@ -690,6 +650,20 @@ static int cb_extend_max_stream_data(ngtcp2_conn *tconn, int64_t stream_id,
return 0;
}
+static void cb_rand(uint8_t *dest, size_t destlen,
+ const ngtcp2_rand_ctx *rand_ctx)
+{
+ CURLcode result;
+ (void)rand_ctx;
+
+ result = Curl_rand(NULL, dest, destlen);
+ if(result) {
+ /* cb_rand is only used for non-cryptographic context. If Curl_rand
+ failed, just fill 0 and call it *random*. */
+ memset(dest, 0, destlen);
+ }
+}
+
static int cb_get_new_connection_id(ngtcp2_conn *tconn, ngtcp2_cid *cid,
uint8_t *token, size_t cidlen,
void *user_data)
@@ -713,14 +687,13 @@ static int cb_get_new_connection_id(ngtcp2_conn *tconn, ngtcp2_cid *cid,
static ngtcp2_callbacks ng_callbacks = {
ngtcp2_crypto_client_initial_cb,
NULL, /* recv_client_initial */
- cb_recv_crypto_data,
+ ngtcp2_crypto_recv_crypto_data_cb,
cb_handshake_completed,
NULL, /* recv_version_negotiation */
ngtcp2_crypto_encrypt_cb,
ngtcp2_crypto_decrypt_cb,
ngtcp2_crypto_hp_mask_cb,
cb_recv_stream_data,
- NULL, /* acked_crypto_offset */
cb_acked_stream_data_offset,
NULL, /* stream_open */
cb_stream_close,
@@ -728,7 +701,7 @@ static ngtcp2_callbacks ng_callbacks = {
ngtcp2_crypto_recv_retry_cb,
cb_extend_max_local_streams_bidi,
NULL, /* extend_max_local_streams_uni */
- NULL, /* rand */
+ cb_rand,
cb_get_new_connection_id,
NULL, /* remove_connection_id */
ngtcp2_crypto_update_key_cb, /* update_key */
@@ -745,7 +718,9 @@ static ngtcp2_callbacks ng_callbacks = {
ngtcp2_crypto_delete_crypto_cipher_ctx_cb,
NULL, /* recv_datagram */
NULL, /* ack_datagram */
- NULL /* lost_datagram */
+ NULL, /* lost_datagram */
+ ngtcp2_crypto_get_path_challenge_data_cb,
+ cb_stream_stop_sending
};
/*
@@ -817,7 +792,7 @@ CURLcode Curl_quic_connect(struct Curl_easy *data,
ngtcp2_addr_init(&path.remote, addr, addrlen);
rc = ngtcp2_conn_client_new(&qs->qconn, &qs->dcid, &qs->scid, &path,
- NGTCP2_PROTO_VER_MIN, &ng_callbacks,
+ NGTCP2_PROTO_VER_V1, &ng_callbacks,
&qs->settings, &qs->transport_params, NULL, qs);
if(rc)
return CURLE_QUIC_CONNECT_ERROR;
@@ -833,7 +808,7 @@ CURLcode Curl_quic_connect(struct Curl_easy *data,
void Curl_quic_ver(char *p, size_t len)
{
const ngtcp2_info *ng2 = ngtcp2_version(0);
- nghttp3_info *ht3 = nghttp3_version(0);
+ const nghttp3_info *ht3 = nghttp3_version(0);
(void)msnprintf(p, len, "ngtcp2/%s nghttp3/%s",
ng2->version_str, ht3->version_str);
}
@@ -859,7 +834,6 @@ static int ng_getsock(struct Curl_easy *data, struct connectdata *conn,
static void qs_disconnect(struct quicsocket *qs)
{
- int i;
if(!qs->conn) /* already closed */
return;
qs->conn = NULL;
@@ -880,8 +854,6 @@ static void qs_disconnect(struct quicsocket *qs)
qs->cred = NULL;
}
#endif
- for(i = 0; i < 3; i++)
- Curl_safefree(qs->crypto_data[i].buf);
nghttp3_conn_del(qs->h3conn);
ngtcp2_conn_del(qs->qconn);
#ifdef USE_OPENSSL
@@ -1143,14 +1115,10 @@ static nghttp3_callbacks ngh3_callbacks = {
NULL, /* begin_trailers */
cb_h3_recv_header,
NULL, /* end_trailers */
- NULL, /* http_begin_push_promise */
- NULL, /* http_recv_push_promise */
- NULL, /* http_end_push_promise */
- NULL, /* http_cancel_push */
cb_h3_send_stop_sending,
- NULL, /* push_stream */
NULL, /* end_stream */
NULL, /* reset_stream */
+ NULL /* shutdown */
};
static int init_ngh3_conn(struct quicsocket *qs)
@@ -1660,6 +1628,12 @@ static ssize_t ngh3_stream_send(struct Curl_easy *data,
return -1;
}
+ /* Reset post upload buffer after resumed. */
+ if(stream->upload_mem) {
+ stream->upload_mem = NULL;
+ stream->upload_len = 0;
+ }
+
*curlcode = CURLE_OK;
return sent;
}
@@ -1758,8 +1732,7 @@ static CURLcode ng_flush_egress(struct Curl_easy *data,
int rv;
ssize_t sent;
ssize_t outlen;
- uint8_t out[NGTCP2_MAX_PKTLEN_IPV4];
- size_t pktlen;
+ uint8_t out[NGTCP2_MAX_UDP_PAYLOAD_SIZE];
ngtcp2_path_storage ps;
ngtcp2_tstamp ts = timestamp();
struct sockaddr_storage remote_addr;
@@ -1772,19 +1745,6 @@ static CURLcode ng_flush_egress(struct Curl_easy *data,
ssize_t ndatalen;
uint32_t flags;
- 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) {
failf(data, "ngtcp2_conn_handle_expiry returned error: %s",
@@ -1811,15 +1771,16 @@ static CURLcode ng_flush_egress(struct Curl_easy *data,
flags = NGTCP2_WRITE_STREAM_FLAG_MORE |
(fin ? NGTCP2_WRITE_STREAM_FLAG_FIN : 0);
- outlen = ngtcp2_conn_writev_stream(qs->qconn, &ps.path, NULL, out, pktlen,
+ outlen = ngtcp2_conn_writev_stream(qs->qconn, &ps.path, NULL, out,
+ sizeof(out),
&ndatalen, flags, stream_id,
(const ngtcp2_vec *)vec, veccnt, ts);
if(outlen == 0) {
break;
}
if(outlen < 0) {
- if(outlen == NGTCP2_ERR_STREAM_DATA_BLOCKED ||
- outlen == NGTCP2_ERR_STREAM_SHUT_WR) {
+ switch(outlen) {
+ case NGTCP2_ERR_STREAM_DATA_BLOCKED:
assert(ndatalen == -1);
rv = nghttp3_conn_block_stream(qs->h3conn, stream_id);
if(rv) {
@@ -1828,8 +1789,17 @@ static CURLcode ng_flush_egress(struct Curl_easy *data,
return CURLE_SEND_ERROR;
}
continue;
- }
- else if(outlen == NGTCP2_ERR_WRITE_MORE) {
+ case NGTCP2_ERR_STREAM_SHUT_WR:
+ assert(ndatalen == -1);
+ rv = nghttp3_conn_shutdown_stream_write(qs->h3conn, stream_id);
+ if(rv) {
+ failf(data,
+ "nghttp3_conn_shutdown_stream_write returned error: %s\n",
+ nghttp3_strerror(rv));
+ return CURLE_SEND_ERROR;
+ }
+ continue;
+ case NGTCP2_ERR_WRITE_MORE:
assert(ndatalen >= 0);
rv = nghttp3_conn_add_write_offset(qs->h3conn, stream_id, ndatalen);
if(rv) {
@@ -1838,8 +1808,7 @@ static CURLcode ng_flush_egress(struct Curl_easy *data,
return CURLE_SEND_ERROR;
}
continue;
- }
- else {
+ default:
assert(ndatalen == -1);
failf(data, "ngtcp2_conn_writev_stream returned error: %s",
ngtcp2_strerror((int)outlen));
diff --git a/lib/vquic/ngtcp2.h b/lib/vquic/ngtcp2.h
index cbede4514..501453042 100644
--- a/lib/vquic/ngtcp2.h
+++ b/lib/vquic/ngtcp2.h
@@ -34,13 +34,6 @@
#include <gnutls/gnutls.h>
#endif
-struct quic_handshake {
- char *buf; /* pointer to the buffer */
- size_t alloclen; /* size of allocation */
- size_t len; /* size of content in buffer */
- size_t nread; /* how many bytes have been read */
-};
-
struct quicsocket {
struct connectdata *conn; /* point back to the connection */
ngtcp2_conn *qconn;
@@ -56,7 +49,6 @@ struct quicsocket {
gnutls_certificate_credentials_t cred;
gnutls_session_t ssl;
#endif
- struct quic_handshake crypto_data[3];
/* the last TLS alert description generated by the local endpoint */
uint8_t tls_alert;
struct sockaddr_storage local_addr;
diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c
index c2ca8ef63..3e317e87c 100644
--- a/lib/vssh/libssh.c
+++ b/lib/vssh/libssh.c
@@ -74,7 +74,6 @@
#include "strcase.h"
#include "vtls/vtls.h"
#include "connect.h"
-#include "strerror.h"
#include "inet_ntop.h"
#include "parsedate.h" /* for the week day and month names */
#include "sockaddr.h" /* required for Curl_sockaddr_storage */
diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c
index 5cbff0769..7466840ff 100644
--- a/lib/vssh/libssh2.c
+++ b/lib/vssh/libssh2.c
@@ -73,7 +73,6 @@
#include "strcase.h"
#include "vtls/vtls.h"
#include "connect.h"
-#include "strerror.h"
#include "inet_ntop.h"
#include "parsedate.h" /* for the week day and month names */
#include "sockaddr.h" /* required for Curl_sockaddr_storage */
@@ -82,6 +81,11 @@
#include "select.h"
#include "warnless.h"
#include "curl_path.h"
+#include "strcase.h"
+
+#include <curl_base64.h> /* for base64 encoding/decoding */
+#include <curl_sha256.h>
+
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -616,40 +620,142 @@ static CURLcode ssh_check_fingerprint(struct Curl_easy *data)
struct connectdata *conn = data->conn;
struct ssh_conn *sshc = &conn->proto.sshc;
const char *pubkey_md5 = data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5];
- char md5buffer[33];
+ const char *pubkey_sha256 = data->set.str[STRING_SSH_HOST_PUBLIC_KEY_SHA256];
+
+ infof(data, "SSH MD5 public key: %s",
+ pubkey_md5 != NULL ? pubkey_md5 : "NULL");
+ infof(data, "SSH SHA256 public key: %s",
+ pubkey_sha256 != NULL ? pubkey_sha256 : "NULL");
- const char *fingerprint = libssh2_hostkey_hash(sshc->ssh_session,
- LIBSSH2_HOSTKEY_HASH_MD5);
+ if(pubkey_sha256) {
+ const char *fingerprint = NULL;
+ char *fingerprint_b64 = NULL;
+ size_t fingerprint_b64_len;
+ size_t pub_pos = 0;
+ size_t b64_pos = 0;
- if(fingerprint) {
+#ifdef LIBSSH2_HOSTKEY_HASH_SHA256
/* The fingerprint points to static storage (!), don't free() it. */
- int i;
- for(i = 0; i < 16; i++)
- msnprintf(&md5buffer[i*2], 3, "%02x", (unsigned char) fingerprint[i]);
- infof(data, "SSH MD5 fingerprint: %s", md5buffer);
- }
+ fingerprint = libssh2_hostkey_hash(sshc->ssh_session,
+ LIBSSH2_HOSTKEY_HASH_SHA256);
+#else
+ const char *hostkey;
+ size_t len = 0;
+ unsigned char hash[32];
+
+ hostkey = libssh2_session_hostkey(sshc->ssh_session, &len, NULL);
+ if(hostkey) {
+ Curl_sha256it(hash, (const unsigned char *) hostkey, len);
+ fingerprint = (char *) hash;
+ }
+#endif
- /* Before we authenticate we check the hostkey's MD5 fingerprint
- * against a known fingerprint, if available.
- */
- if(pubkey_md5 && strlen(pubkey_md5) == 32) {
- if(!fingerprint || !strcasecompare(md5buffer, pubkey_md5)) {
- if(fingerprint)
- failf(data,
- "Denied establishing ssh session: mismatch md5 fingerprint. "
- "Remote %s is not equal to %s", md5buffer, pubkey_md5);
- else
- failf(data,
- "Denied establishing ssh session: md5 fingerprint not available");
+ if(!fingerprint) {
+ failf(data,
+ "Denied establishing ssh session: sha256 fingerprint "
+ "not available");
+ state(data, SSH_SESSION_FREE);
+ sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
+ return sshc->actualcode;
+ }
+
+ /* The length of fingerprint is 32 bytes for SHA256.
+ * See libssh2_hostkey_hash documentation. */
+ if(Curl_base64_encode (data, fingerprint, 32, &fingerprint_b64,
+ &fingerprint_b64_len) != CURLE_OK) {
+ state(data, SSH_SESSION_FREE);
+ sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
+ return sshc->actualcode;
+ }
+
+ if(!fingerprint_b64) {
+ failf(data,
+ "sha256 fingerprint could not be encoded");
+ state(data, SSH_SESSION_FREE);
+ sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
+ return sshc->actualcode;
+ }
+
+ infof(data, "SSH SHA256 fingerprint: %s", fingerprint_b64);
+
+ /* Find the position of any = padding characters in the public key */
+ while((pubkey_sha256[pub_pos] != '=') && pubkey_sha256[pub_pos]) {
+ pub_pos++;
+ }
+
+ /* Find the position of any = padding characters in the base64 coded
+ * hostkey fingerprint */
+ while((fingerprint_b64[b64_pos] != '=') && fingerprint_b64[b64_pos]) {
+ b64_pos++;
+ }
+
+ /* Before we authenticate we check the hostkey's sha256 fingerprint
+ * against a known fingerprint, if available.
+ */
+ if((pub_pos != b64_pos) ||
+ Curl_strncasecompare(fingerprint_b64, pubkey_sha256, pub_pos) != 1) {
+ free(fingerprint_b64);
+
+ failf(data,
+ "Denied establishing ssh session: mismatch sha256 fingerprint. "
+ "Remote %s is not equal to %s", fingerprint, pubkey_sha256);
state(data, SSH_SESSION_FREE);
sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
return sshc->actualcode;
}
- infof(data, "MD5 checksum match!");
+
+ free(fingerprint_b64);
+
+ infof(data, "SHA256 checksum match!");
+ }
+
+ if(pubkey_md5) {
+ char md5buffer[33];
+ const char *fingerprint = NULL;
+
+ fingerprint = libssh2_hostkey_hash(sshc->ssh_session,
+ LIBSSH2_HOSTKEY_HASH_MD5);
+
+ if(fingerprint) {
+ /* The fingerprint points to static storage (!), don't free() it. */
+ int i;
+ for(i = 0; i < 16; i++) {
+ msnprintf(&md5buffer[i*2], 3, "%02x", (unsigned char) fingerprint[i]);
+ }
+
+ infof(data, "SSH MD5 fingerprint: %s", md5buffer);
+ }
+
+ /* Before we authenticate we check the hostkey's MD5 fingerprint
+ * against a known fingerprint, if available.
+ */
+ if(pubkey_md5 && strlen(pubkey_md5) == 32) {
+ if(!fingerprint || !strcasecompare(md5buffer, pubkey_md5)) {
+ if(fingerprint) {
+ failf(data,
+ "Denied establishing ssh session: mismatch md5 fingerprint. "
+ "Remote %s is not equal to %s", md5buffer, pubkey_md5);
+ }
+ else {
+ failf(data,
+ "Denied establishing ssh session: md5 fingerprint "
+ "not available");
+ }
+ state(data, SSH_SESSION_FREE);
+ sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
+ return sshc->actualcode;
+ }
+ infof(data, "MD5 checksum match!");
+ }
+ }
+
+ if(!pubkey_md5 && !pubkey_sha256) {
+ return ssh_knownhost(data);
+ }
+ else {
/* as we already matched, we skip the check for known hosts */
return CURLE_OK;
}
- return ssh_knownhost(data);
}
/*
@@ -3611,7 +3717,7 @@ void Curl_ssh_cleanup(void)
void Curl_ssh_version(char *buffer, size_t buflen)
{
- (void)msnprintf(buffer, buflen, "libssh2/%s", LIBSSH2_VERSION);
+ (void)msnprintf(buffer, buflen, "libssh2/%s", CURL_LIBSSH2_VERSION);
}
/* The SSH session is associated with the *CONNECTION* but the callback user
diff --git a/lib/vssh/wolfssh.c b/lib/vssh/wolfssh.c
index 4b1e2ec5e..5b4cde91b 100644
--- a/lib/vssh/wolfssh.c
+++ b/lib/vssh/wolfssh.c
@@ -449,7 +449,8 @@ static CURLcode wssh_statemach_act(struct Curl_easy *data, bool *block)
switch(sshc->state) {
case SSH_INIT:
state(data, SSH_S_STARTUP);
- /* FALLTHROUGH */
+ break;
+
case SSH_S_STARTUP:
rc = wolfSSH_connect(sshc->ssh_session);
if(rc != WS_SUCCESS)
@@ -838,7 +839,8 @@ static CURLcode wssh_statemach_act(struct Curl_easy *data, bool *block)
break;
}
state(data, SSH_SFTP_READDIR);
- /* FALLTHROUGH */
+ break;
+
case SSH_SFTP_READDIR:
name = wolfSSH_SFTP_LS(sshc->ssh_session, sftp_scp->path);
if(!name)
diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
index cbbb3b5de..9b772d064 100644
--- a/lib/vtls/bearssl.c
+++ b/lib/vtls/bearssl.c
@@ -68,6 +68,14 @@ struct cafile_parser {
size_t dn_len;
};
+#define CAFILE_SOURCE_PATH 1
+#define CAFILE_SOURCE_BLOB 2
+struct cafile_source {
+ const int type;
+ const char * const data;
+ const size_t len;
+};
+
static void append_dn(void *ctx, const void *buf, size_t len)
{
struct cafile_parser *ca = ctx;
@@ -90,7 +98,8 @@ static void x509_push(void *ctx, const void *buf, size_t len)
br_x509_decoder_push(&ca->xc, buf, len);
}
-static CURLcode load_cafile(const char *path, br_x509_trust_anchor **anchors,
+static CURLcode load_cafile(struct cafile_source *source,
+ br_x509_trust_anchor **anchors,
size_t *anchors_len)
{
struct cafile_parser ca;
@@ -100,13 +109,22 @@ static CURLcode load_cafile(const char *path, br_x509_trust_anchor **anchors,
br_x509_trust_anchor *new_anchors;
size_t new_anchors_len;
br_x509_pkey *pkey;
- FILE *fp;
- unsigned char buf[BUFSIZ], *p;
+ FILE *fp = 0;
+ unsigned char buf[BUFSIZ];
+ const unsigned char *p;
const char *name;
size_t n, i, pushed;
- fp = fopen(path, "rb");
- if(!fp)
+ DEBUGASSERT(source->type == CAFILE_SOURCE_PATH
+ || source->type == CAFILE_SOURCE_BLOB);
+
+ if(source->type == CAFILE_SOURCE_PATH) {
+ fp = fopen(source->data, "rb");
+ if(!fp)
+ return CURLE_SSL_CACERT_BADFILE;
+ }
+
+ if(source->type == CAFILE_SOURCE_BLOB && source->len > (size_t)INT_MAX)
return CURLE_SSL_CACERT_BADFILE;
ca.err = CURLE_OK;
@@ -115,11 +133,17 @@ static CURLcode load_cafile(const char *path, br_x509_trust_anchor **anchors,
ca.anchors_len = 0;
br_pem_decoder_init(&pc);
br_pem_decoder_setdest(&pc, x509_push, &ca);
- for(;;) {
- n = fread(buf, 1, sizeof(buf), fp);
- if(n == 0)
- break;
- p = buf;
+ do {
+ if(source->type == CAFILE_SOURCE_PATH) {
+ n = fread(buf, 1, sizeof(buf), fp);
+ if(n == 0)
+ break;
+ p = buf;
+ }
+ else if(source->type == CAFILE_SOURCE_BLOB) {
+ n = source->len;
+ p = (unsigned char *) source->data;
+ }
while(n) {
pushed = br_pem_decoder_push(&pc, p, n);
if(ca.err)
@@ -211,12 +235,13 @@ static CURLcode load_cafile(const char *path, br_x509_trust_anchor **anchors,
goto fail;
}
}
- }
- if(ferror(fp))
+ } while(source->type != CAFILE_SOURCE_BLOB);
+ if(fp && ferror(fp))
ca.err = CURLE_READ_ERROR;
fail:
- fclose(fp);
+ if(fp)
+ fclose(fp);
if(ca.err == CURLE_OK) {
*anchors = ca.anchors;
*anchors_len = ca.anchors_len;
@@ -299,7 +324,10 @@ static CURLcode bearssl_connect_step1(struct Curl_easy *data,
{
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
struct ssl_backend_data *backend = connssl->backend;
- const char * const ssl_cafile = SSL_CONN_CONFIG(CAfile);
+ const struct curl_blob *ca_info_blob = SSL_CONN_CONFIG(ca_info_blob);
+ const char * const ssl_cafile =
+ /* CURLOPT_CAINFO_BLOB overrides CURLOPT_CAINFO */
+ (ca_info_blob ? NULL : SSL_CONN_CONFIG(CAfile));
const char *hostname = SSL_HOST_NAME();
const bool verifypeer = SSL_CONN_CONFIG(verifypeer);
const bool verifyhost = SSL_CONN_CONFIG(verifyhost);
@@ -340,8 +368,30 @@ static CURLcode bearssl_connect_step1(struct Curl_easy *data,
return CURLE_SSL_CONNECT_ERROR;
}
+ if(ca_info_blob) {
+ struct cafile_source source = {
+ CAFILE_SOURCE_BLOB,
+ ca_info_blob->data,
+ ca_info_blob->len,
+ };
+ ret = load_cafile(&source, &backend->anchors, &backend->anchors_len);
+ if(ret != CURLE_OK) {
+ if(verifypeer) {
+ failf(data, "error importing CA certificate blob");
+ return ret;
+ }
+ /* Only warn if no certificate verification is required. */
+ infof(data, "error importing CA certificate blob, continuing anyway");
+ }
+ }
+
if(ssl_cafile) {
- ret = load_cafile(ssl_cafile, &backend->anchors, &backend->anchors_len);
+ struct cafile_source source = {
+ CAFILE_SOURCE_PATH,
+ ssl_cafile,
+ 0,
+ };
+ ret = load_cafile(&source, &backend->anchors, &backend->anchors_len);
if(ret != CURLE_OK) {
if(verifypeer) {
failf(data, "error setting certificate verify locations."
@@ -558,6 +608,7 @@ static CURLcode bearssl_connect_step3(struct Curl_easy *data,
if(SSL_SET_OPTION(primary.sessionid)) {
bool incache;
+ bool added = FALSE;
void *oldsession;
br_ssl_session_parameters *session;
@@ -573,10 +624,11 @@ static CURLcode bearssl_connect_step3(struct Curl_easy *data,
Curl_ssl_delsessionid(data, oldsession);
ret = Curl_ssl_addsessionid(data, conn,
SSL_IS_PROXY() ? TRUE : FALSE,
- session, 0, sockindex);
+ session, 0, sockindex, &added);
Curl_ssl_sessionid_unlock(data);
- if(ret) {
+ if(!added)
free(session);
+ if(ret) {
return CURLE_OUT_OF_MEMORY;
}
}
@@ -841,7 +893,7 @@ static CURLcode bearssl_sha256sum(const unsigned char *input,
const struct Curl_ssl Curl_ssl_bearssl = {
{ CURLSSLBACKEND_BEARSSL, "bearssl" }, /* info */
- 0,
+ SSLSUPP_CAINFO_BLOB,
sizeof(struct ssl_backend_data),
Curl_none_init, /* init */
diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c
index af8fc92b2..e451f6aeb 100644
--- a/lib/vtls/gskit.c
+++ b/lib/vtls/gskit.c
@@ -180,6 +180,7 @@ static bool is_separator(char c)
static CURLcode gskit_status(struct Curl_easy *data, int rc,
const char *procname, CURLcode defcode)
{
+ char buffer[STRERROR_LEN];
/* Process GSKit status and map it to a CURLcode. */
switch(rc) {
case GSK_OK:
@@ -208,7 +209,8 @@ static CURLcode gskit_status(struct Curl_easy *data, int rc,
case ENOMEM:
return CURLE_OUT_OF_MEMORY;
default:
- failf(data, "%s I/O error: %s", procname, strerror(errno));
+ failf(data, "%s I/O error: %s", procname,
+ Curl_strerror(errno, buffer, sizeof(buffer)));
break;
}
break;
@@ -223,13 +225,15 @@ static CURLcode gskit_status(struct Curl_easy *data, int rc,
static CURLcode set_enum(struct Curl_easy *data, gsk_handle h,
GSK_ENUM_ID id, GSK_ENUM_VALUE value, bool unsupported_ok)
{
+ char buffer[STRERROR_LEN];
int rc = gsk_attribute_set_enum(h, id, value);
switch(rc) {
case GSK_OK:
return CURLE_OK;
case GSK_ERROR_IO:
- failf(data, "gsk_attribute_set_enum() I/O error: %s", strerror(errno));
+ failf(data, "gsk_attribute_set_enum() I/O error: %s",
+ Curl_strerror(errno, buffer, sizeof(buffer)));
break;
case GSK_ATTRIBUTE_INVALID_ID:
if(unsupported_ok)
@@ -245,13 +249,15 @@ static CURLcode set_enum(struct Curl_easy *data, gsk_handle h,
static CURLcode set_buffer(struct Curl_easy *data, gsk_handle h,
GSK_BUF_ID id, const char *buffer, bool unsupported_ok)
{
+ char buffer[STRERROR_LEN];
int rc = gsk_attribute_set_buffer(h, id, buffer, 0);
switch(rc) {
case GSK_OK:
return CURLE_OK;
case GSK_ERROR_IO:
- failf(data, "gsk_attribute_set_buffer() I/O error: %s", strerror(errno));
+ failf(data, "gsk_attribute_set_buffer() I/O error: %s",
+ Curl_strerror(errno, buffer, sizeof(buffer)));
break;
case GSK_ATTRIBUTE_INVALID_ID:
if(unsupported_ok)
@@ -267,6 +273,7 @@ static CURLcode set_buffer(struct Curl_easy *data, gsk_handle h,
static CURLcode set_numeric(struct Curl_easy *data,
gsk_handle h, GSK_NUM_ID id, int value)
{
+ char buffer[STRERROR_LEN];
int rc = gsk_attribute_set_numeric_value(h, id, value);
switch(rc) {
@@ -274,7 +281,7 @@ static CURLcode set_numeric(struct Curl_easy *data,
return CURLE_OK;
case GSK_ERROR_IO:
failf(data, "gsk_attribute_set_numeric_value() I/O error: %s",
- strerror(errno));
+ Curl_strerror(errno, buffer, sizeof(buffer)));
break;
default:
failf(data, "gsk_attribute_set_numeric_value(): %s", gsk_strerror(rc));
@@ -287,13 +294,15 @@ static CURLcode set_numeric(struct Curl_easy *data,
static CURLcode set_callback(struct Curl_easy *data,
gsk_handle h, GSK_CALLBACK_ID id, void *info)
{
+ char buffer[STRERROR_LEN];
int rc = gsk_attribute_set_callback(h, id, info);
switch(rc) {
case GSK_OK:
return CURLE_OK;
case GSK_ERROR_IO:
- failf(data, "gsk_attribute_set_callback() I/O error: %s", strerror(errno));
+ failf(data, "gsk_attribute_set_callback() I/O error: %s",
+ Curl_strerror(errno, buffer, sizeof(buffer)));
break;
default:
failf(data, "gsk_attribute_set_callback(): %s", gsk_strerror(rc));
@@ -966,7 +975,9 @@ static CURLcode gskit_connect_step2(struct Curl_easy *data,
continue; /* Retry. */
}
if(errno != ETIME) {
- failf(data, "QsoWaitForIOCompletion() I/O error: %s", strerror(errno));
+ char buffer[STRERROR_LEN];
+ failf(data, "QsoWaitForIOCompletion() I/O error: %s",
+ Curl_strerror(errno, buffer, sizeof(buffer)));
cancel_async_handshake(conn, sockindex);
close_async_handshake(connssl);
return CURLE_SSL_CONNECT_ERROR;
@@ -1229,7 +1240,8 @@ static int gskit_shutdown(struct Curl_easy *data,
nread = read(conn->sock[sockindex], buf, sizeof(buf));
if(nread < 0) {
- failf(data, "read: %s", strerror(errno));
+ char buffer[STRERROR_LEN];
+ failf(data, "read: %s", Curl_strerror(errno, buffer, sizeof(buffer)));
rc = -1;
}
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 1b145d8eb..2053fd439 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -404,6 +404,7 @@ gtls_connect_step1(struct Curl_easy *data,
const char * const hostname = SSL_HOST_NAME();
long * const certverifyresult = &SSL_SET_OPTION_LVALUE(certverifyresult);
const char *tls13support;
+ CURLcode result;
if(connssl->state == ssl_connection_complete)
/* to make us tolerant against being called more than once for the
@@ -557,31 +558,25 @@ gtls_connect_step1(struct Curl_easy *data,
/* Ensure +SRP comes at the *end* of all relevant strings so that it can be
* removed if a run-time error indicates that SRP is not supported by this
* GnuTLS version */
- switch(SSL_CONN_CONFIG(version)) {
- case CURL_SSLVERSION_TLSv1_3:
- if(!tls13support) {
- failf(data, "This GnuTLS installation does not support TLS 1.3");
- return CURLE_SSL_CONNECT_ERROR;
- }
- /* FALLTHROUGH */
- case CURL_SSLVERSION_DEFAULT:
- case CURL_SSLVERSION_TLSv1:
- case CURL_SSLVERSION_TLSv1_0:
- case CURL_SSLVERSION_TLSv1_1:
- case CURL_SSLVERSION_TLSv1_2: {
- CURLcode result = set_ssl_version_min_max(data, &prioritylist,
- tls13support);
- if(result)
- return result;
- break;
- }
- case CURL_SSLVERSION_SSLv2:
- case CURL_SSLVERSION_SSLv3:
- default:
- failf(data, "GnuTLS does not support SSLv2 or SSLv3");
+
+ if(SSL_CONN_CONFIG(version) == CURL_SSLVERSION_SSLv2 ||
+ SSL_CONN_CONFIG(version) == CURL_SSLVERSION_SSLv3) {
+ failf(data, "GnuTLS does not support SSLv2 or SSLv3");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+
+ if(SSL_CONN_CONFIG(version) == CURL_SSLVERSION_TLSv1_3) {
+ if(!tls13support) {
+ failf(data, "This GnuTLS installation does not support TLS 1.3");
return CURLE_SSL_CONNECT_ERROR;
+ }
}
+ /* At this point we know we have a supported TLS version, so set it */
+ result = set_ssl_version_min_max(data, &prioritylist, tls13support);
+ if(result)
+ return result;
+
#ifdef HAVE_GNUTLS_SRP
/* Only add SRP to the cipher list if SRP is requested. Otherwise
* GnuTLS will disable TLS 1.3 support. */
@@ -1287,6 +1282,7 @@ gtls_connect_step3(struct Curl_easy *data,
if(connect_sessionid) {
bool incache;
+ bool added = FALSE;
void *ssl_sessionid;
/* extract session ID to the allocated buffer */
@@ -1306,10 +1302,11 @@ gtls_connect_step3(struct Curl_easy *data,
result = Curl_ssl_addsessionid(data, conn,
SSL_IS_PROXY() ? TRUE : FALSE,
connect_sessionid, connect_idsize,
- sockindex);
+ sockindex, &added);
Curl_ssl_sessionid_unlock(data);
- if(result) {
+ if(!added)
free(connect_sessionid);
+ if(result) {
result = CURLE_OUT_OF_MEMORY;
}
}
diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
index e986bea82..08c79e162 100644
--- a/lib/vtls/mbedtls.c
+++ b/lib/vtls/mbedtls.c
@@ -41,7 +41,9 @@
#include <mbedtls/net.h>
#endif
#include <mbedtls/ssl.h>
+#if MBEDTLS_VERSION_NUMBER < 0x03000000
#include <mbedtls/certs.h>
+#endif
#include <mbedtls/x509.h>
#include <mbedtls/error.h>
@@ -183,6 +185,17 @@ static Curl_send mbed_send;
static CURLcode mbedtls_version_from_curl(int *mbedver, long version)
{
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ switch(version) {
+ case CURL_SSLVERSION_TLSv1_0:
+ case CURL_SSLVERSION_TLSv1_1:
+ case CURL_SSLVERSION_TLSv1_2:
+ *mbedver = MBEDTLS_SSL_MINOR_VERSION_3;
+ return CURLE_OK;
+ case CURL_SSLVERSION_TLSv1_3:
+ break;
+ }
+#else
switch(version) {
case CURL_SSLVERSION_TLSv1_0:
*mbedver = MBEDTLS_SSL_MINOR_VERSION_1;
@@ -196,6 +209,8 @@ static CURLcode mbedtls_version_from_curl(int *mbedver, long version)
case CURL_SSLVERSION_TLSv1_3:
break;
}
+#endif
+
return CURLE_SSL_CONNECT_ERROR;
}
@@ -205,8 +220,13 @@ set_ssl_version_min_max(struct Curl_easy *data, struct connectdata *conn,
{
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
struct ssl_backend_data *backend = connssl->backend;
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ int mbedtls_ver_min = MBEDTLS_SSL_MINOR_VERSION_3;
+ int mbedtls_ver_max = MBEDTLS_SSL_MINOR_VERSION_3;
+#else
int mbedtls_ver_min = MBEDTLS_SSL_MINOR_VERSION_1;
int mbedtls_ver_max = MBEDTLS_SSL_MINOR_VERSION_1;
+#endif
long ssl_version = SSL_CONN_CONFIG(version);
long ssl_version_max = SSL_CONN_CONFIG(version_max);
CURLcode result = CURLE_OK;
@@ -257,7 +277,9 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
const struct curl_blob *ssl_cert_blob = SSL_SET_OPTION(primary.cert_blob);
const char * const ssl_crlfile = SSL_SET_OPTION(CRLfile);
const char * const hostname = SSL_HOST_NAME();
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
const long int port = SSL_HOST_PORT();
+#endif
int ret = -1;
char errorbuf[128];
@@ -354,8 +376,15 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
if(SSL_SET_OPTION(key) || SSL_SET_OPTION(key_blob)) {
if(SSL_SET_OPTION(key)) {
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ ret = mbedtls_pk_parse_keyfile(&backend->pk, SSL_SET_OPTION(key),
+ SSL_SET_OPTION(key_passwd),
+ mbedtls_ctr_drbg_random,
+ &backend->ctr_drbg);
+#else
ret = mbedtls_pk_parse_keyfile(&backend->pk, SSL_SET_OPTION(key),
SSL_SET_OPTION(key_passwd));
+#endif
if(ret) {
mbedtls_strerror(ret, errorbuf, sizeof(errorbuf));
@@ -369,9 +398,17 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
const unsigned char *key_data =
(const unsigned char *)ssl_key_blob->data;
const char *passwd = SSL_SET_OPTION(key_passwd);
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ ret = mbedtls_pk_parse_key(&backend->pk, key_data, ssl_key_blob->len,
+ (const unsigned char *)passwd,
+ passwd ? strlen(passwd) : 0,
+ mbedtls_ctr_drbg_random,
+ &backend->ctr_drbg);
+#else
ret = mbedtls_pk_parse_key(&backend->pk, key_data, ssl_key_blob->len,
(const unsigned char *)passwd,
passwd ? strlen(passwd) : 0);
+#endif
if(ret) {
mbedtls_strerror(ret, errorbuf, sizeof(errorbuf));
@@ -426,10 +463,12 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
switch(SSL_CONN_CONFIG(version)) {
case CURL_SSLVERSION_DEFAULT:
case CURL_SSLVERSION_TLSv1:
+#if MBEDTLS_VERSION_NUMBER < 0x03000000
mbedtls_ssl_conf_min_version(&backend->config, MBEDTLS_SSL_MAJOR_VERSION_3,
MBEDTLS_SSL_MINOR_VERSION_1);
infof(data, "mbedTLS: Set min SSL version to TLS 1.0");
break;
+#endif
case CURL_SSLVERSION_TLSv1_0:
case CURL_SSLVERSION_TLSv1_1:
case CURL_SSLVERSION_TLSv1_2:
@@ -629,10 +668,15 @@ mbed_connect_step2(struct Curl_easy *data, struct connectdata *conn,
if(pinnedpubkey) {
int size;
CURLcode result;
- mbedtls_x509_crt *p;
- unsigned char pubkey[PUB_DER_MAX_BYTES];
+ mbedtls_x509_crt *p = NULL;
+ unsigned char *pubkey = NULL;
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ if(!peercert || !peercert->MBEDTLS_PRIVATE(raw).MBEDTLS_PRIVATE(p) ||
+ !peercert->MBEDTLS_PRIVATE(raw).MBEDTLS_PRIVATE(len)) {
+#else
if(!peercert || !peercert->raw.p || !peercert->raw.len) {
+#endif
failf(data, "Failed due to missing peer certificate");
return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
}
@@ -642,39 +686,54 @@ mbed_connect_step2(struct Curl_easy *data, struct connectdata *conn,
if(!p)
return CURLE_OUT_OF_MEMORY;
+ pubkey = malloc(PUB_DER_MAX_BYTES);
+
+ if(!pubkey) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto pinnedpubkey_error;
+ }
+
mbedtls_x509_crt_init(p);
/* Make a copy of our const peercert because mbedtls_pk_write_pubkey_der
needs a non-const key, for now.
https://github.com/ARMmbed/mbedtls/issues/396 */
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ if(mbedtls_x509_crt_parse_der(p,
+ peercert->MBEDTLS_PRIVATE(raw).MBEDTLS_PRIVATE(p),
+ peercert->MBEDTLS_PRIVATE(raw).MBEDTLS_PRIVATE(len))) {
+#else
if(mbedtls_x509_crt_parse_der(p, peercert->raw.p, peercert->raw.len)) {
+#endif
failf(data, "Failed copying peer certificate");
- mbedtls_x509_crt_free(p);
- free(p);
- return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ result = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ goto pinnedpubkey_error;
}
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ size = mbedtls_pk_write_pubkey_der(&p->MBEDTLS_PRIVATE(pk), pubkey,
+ PUB_DER_MAX_BYTES);
+#else
size = mbedtls_pk_write_pubkey_der(&p->pk, pubkey, PUB_DER_MAX_BYTES);
+#endif
if(size <= 0) {
failf(data, "Failed copying public key from peer certificate");
- mbedtls_x509_crt_free(p);
- free(p);
- return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ result = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ goto pinnedpubkey_error;
}
/* mbedtls_pk_write_pubkey_der writes data at the end of the buffer. */
result = Curl_pin_peer_pubkey(data,
pinnedpubkey,
&pubkey[PUB_DER_MAX_BYTES - size], size);
+ pinnedpubkey_error:
+ mbedtls_x509_crt_free(p);
+ free(p);
+ free(pubkey);
if(result) {
- mbedtls_x509_crt_free(p);
- free(p);
return result;
}
-
- mbedtls_x509_crt_free(p);
- free(p);
}
#ifdef HAS_ALPN
@@ -725,6 +784,7 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
mbedtls_ssl_session *our_ssl_sessionid;
void *old_ssl_sessionid = NULL;
bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
+ bool added = FALSE;
our_ssl_sessionid = malloc(sizeof(mbedtls_ssl_session));
if(!our_ssl_sessionid)
@@ -748,11 +808,13 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
Curl_ssl_delsessionid(data, old_ssl_sessionid);
retcode = Curl_ssl_addsessionid(data, conn, isproxy, our_ssl_sessionid,
- 0, sockindex);
+ 0, sockindex, &added);
Curl_ssl_sessionid_unlock(data);
- if(retcode) {
+ if(!added) {
mbedtls_ssl_session_free(our_ssl_sessionid);
free(our_ssl_sessionid);
+ }
+ if(retcode) {
failf(data, "failed to store ssl session");
return retcode;
}
@@ -1064,12 +1126,17 @@ static CURLcode mbedtls_sha256sum(const unsigned char *input,
unsigned char *sha256sum,
size_t sha256len UNUSED_PARAM)
{
+ /* TODO: explain this for different mbedtls 2.x vs 3 version */
(void)sha256len;
#if MBEDTLS_VERSION_NUMBER < 0x02070000
mbedtls_sha256(input, inputlen, sha256sum, 0);
#else
/* returns 0 on success, otherwise failure */
+#if MBEDTLS_VERSION_NUMBER >= 0x03000000
+ if(mbedtls_sha256(input, inputlen, sha256sum, 0) != 0)
+#else
if(mbedtls_sha256_ret(input, inputlen, sha256sum, 0) != 0)
+#endif
return CURLE_BAD_FUNCTION_ARGUMENT;
#endif
return CURLE_OK;
diff --git a/lib/vtls/mbedtls_threadlock.c b/lib/vtls/mbedtls_threadlock.c
index 473f5171e..751755c23 100644
--- a/lib/vtls/mbedtls_threadlock.c
+++ b/lib/vtls/mbedtls_threadlock.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2013 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2013 - 2021, 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
@@ -55,10 +55,8 @@ int Curl_mbedtlsthreadlock_thread_setup(void)
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)
+ if(pthread_mutex_init(&mutex_buf[i], NULL))
return 0; /* pthread_mutex_init failed */
#elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H)
mutex_buf[i] = CreateMutex(0, FALSE, 0);
@@ -78,14 +76,11 @@ int Curl_mbedtlsthreadlock_thread_cleanup(void)
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)
+ if(pthread_mutex_destroy(&mutex_buf[i]))
return 0; /* pthread_mutex_destroy failed */
#elif defined(USE_THREADS_WIN32) && defined(HAVE_PROCESS_H)
- ret = CloseHandle(mutex_buf[i]);
- if(!ret)
+ if(!CloseHandle(mutex_buf[i]))
return 0; /* CloseHandle failed */
#endif /* USE_THREADS_POSIX && HAVE_PTHREAD_H */
}
@@ -98,17 +93,14 @@ int Curl_mbedtlsthreadlock_thread_cleanup(void)
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) {
+ if(pthread_mutex_lock(&mutex_buf[n])) {
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) {
+ if(WaitForSingleObject(mutex_buf[n], INFINITE) == WAIT_FAILED) {
DEBUGF(fprintf(stderr,
"Error: mbedtlsthreadlock_lock_function failed\n"));
return 0; /* pthread_mutex_lock failed */
@@ -121,17 +113,14 @@ int Curl_mbedtlsthreadlock_lock_function(int n)
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) {
+ if(pthread_mutex_unlock(&mutex_buf[n])) {
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) {
+ if(!ReleaseMutex(mutex_buf[n])) {
DEBUGF(fprintf(stderr,
"Error: mbedtlsthreadlock_unlock_function failed\n"));
return 0; /* pthread_mutex_lock failed */
diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
index 3db9184f7..0a1dea3ac 100644
--- a/lib/vtls/mesalink.c
+++ b/lib/vtls/mesalink.c
@@ -365,7 +365,7 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
if(!incache) {
result =
Curl_ssl_addsessionid(data, conn, isproxy, our_ssl_sessionid, 0,
- sockindex);
+ sockindex, NULL);
if(result) {
Curl_ssl_sessionid_unlock(data);
failf(data, "failed to store ssl session");
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
index cf657895f..1897b9ab1 100644
--- a/lib/vtls/nss.c
+++ b/lib/vtls/nss.c
@@ -955,7 +955,7 @@ static void display_cert_info(struct Curl_easy *data,
subject = CERT_NameToAscii(&cert->subject);
issuer = CERT_NameToAscii(&cert->issuer);
common_name = CERT_GetCommonName(&cert->subject);
- infof(data, "subject: %s\n", subject);
+ infof(data, "subject: %s", subject);
CERT_GetCertTimes(cert, &notBefore, &notAfter);
PR_ExplodeTime(notBefore, PR_GMTParameters, &printableTime);
@@ -2250,10 +2250,11 @@ static CURLcode nss_connect_common(struct Curl_easy *data,
case CURLE_OK:
break;
case CURLE_AGAIN:
+ /* CURLE_AGAIN in non-blocking mode is not an error */
if(!blocking)
- /* CURLE_AGAIN in non-blocking mode is not an error */
return CURLE_OK;
- /* FALLTHROUGH */
+ else
+ return result;
default:
return result;
}
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 8af23b783..a1baef9c3 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -194,7 +194,7 @@
!defined(OPENSSL_IS_BORINGSSL))
#define HAVE_SSL_CTX_SET_CIPHERSUITES
#define HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
-/* SET_EC_CURVES available under the same preconditions: see
+/* SET_EC_CURVES is available under the same preconditions: see
* https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set1_groups.html
*/
#define HAVE_SSL_CTX_SET_EC_CURVES
@@ -209,8 +209,8 @@
#endif
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
-/* up2date versions of OpenSSL maintain the default reasonably secure without
- * breaking compatibility, so it is better not to override the default by curl
+/* up2date versions of OpenSSL maintain reasonably secure defaults without
+ * breaking compatibility, so it is better not to override the defaults in curl
*/
#define DEFAULT_CIPHER_SELECTION NULL
#else
@@ -227,6 +227,10 @@
#endif
#endif
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#define HAVE_RANDOM_INIT_BY_DEFAULT 1
+#endif
+
struct ssl_backend_data {
struct Curl_easy *logger; /* transfer handle to pass trace logs to, only
using sockindex 0 */
@@ -435,18 +439,21 @@ static bool rand_enough(void)
static CURLcode ossl_seed(struct Curl_easy *data)
{
- char fname[256];
-
/* This might get called before it has been added to a multi handle */
if(data->multi && data->multi->ssl_seeded)
return CURLE_OK;
if(rand_enough()) {
- /* OpenSSL 1.1.0+ will return here */
+ /* OpenSSL 1.1.0+ should return here */
if(data->multi)
data->multi->ssl_seeded = TRUE;
return CURLE_OK;
}
+#ifdef HAVE_RANDOM_INIT_BY_DEFAULT
+ /* with OpenSSL 1.1.0+, a failed RAND_status is a showstopper */
+ failf(data, "Insufficient randomness");
+ return CURLE_SSL_CONNECT_ERROR;
+#else
#ifndef RANDOM_FILE
/* if RANDOM_FILE isn't defined, we only perform this if an option tells
@@ -507,19 +514,23 @@ static CURLcode ossl_seed(struct Curl_easy *data)
RAND_add(randb, (int)len, (double)len/2);
} while(!rand_enough());
- /* generates a default path for the random seed file */
- fname[0] = 0; /* blank it first */
- RAND_file_name(fname, sizeof(fname));
- if(fname[0]) {
- /* we got a file name to try */
- RAND_load_file(fname, RAND_LOAD_LENGTH);
- if(rand_enough())
- return CURLE_OK;
+ {
+ /* generates a default path for the random seed file */
+ char fname[256];
+ fname[0] = 0; /* blank it first */
+ RAND_file_name(fname, sizeof(fname));
+ if(fname[0]) {
+ /* we got a file name to try */
+ RAND_load_file(fname, RAND_LOAD_LENGTH);
+ if(rand_enough())
+ return CURLE_OK;
+ }
}
infof(data, "libcurl is now using a weak random seed!");
return (rand_enough() ? CURLE_OK :
- CURLE_SSL_CONNECT_ERROR /* confusing error code */);
+ CURLE_SSL_CONNECT_ERROR /* confusing error code */);
+#endif
}
#ifndef SSL_FILETYPE_ENGINE
@@ -1192,7 +1203,7 @@ static int ossl_init(void)
CONF_MFLAGS_IGNORE_MISSING_FILE);
#endif
- /* Lets get nice error messages */
+ /* Let's get nice error messages */
SSL_load_error_strings();
/* Init the global ciphers and digests */
@@ -1769,7 +1780,7 @@ static CURLcode verifyhost(struct Curl_easy *data, struct connectdata *conn,
/* we have the name entry and we will now convert this to a string
that we can use for comparison. Doing this we support BMPstring,
- UTF8 etc. */
+ UTF8, etc. */
if(i >= 0) {
ASN1_STRING *tmp =
@@ -2060,6 +2071,10 @@ static const char *ssl_msg_type(int ssl_ver, int msg)
case SSL3_MT_ENCRYPTED_EXTENSIONS:
return "Encrypted Extensions";
#endif
+#ifdef SSL3_MT_SUPPLEMENTAL_DATA
+ case SSL3_MT_SUPPLEMENTAL_DATA:
+ return "Supplemental data";
+#endif
#ifdef SSL3_MT_END_OF_EARLY_DATA
case SSL3_MT_END_OF_EARLY_DATA:
return "End of early data";
@@ -2158,7 +2173,7 @@ static void ossl_trace(int direction, int ssl_ver, int content_type,
/* Log progress for interesting records only (like Handshake or Alert), skip
* all raw record headers (content_type == SSL3_RT_HEADER or ssl_ver == 0).
- * For TLS 1.3, skip notification of the decrypted inner Content Type.
+ * For TLS 1.3, skip notification of the decrypted inner Content-Type.
*/
if(ssl_ver
#ifdef SSL3_RT_INNER_CONTENT_TYPE
@@ -2299,7 +2314,7 @@ set_ssl_version_min_max(SSL_CTX *ctx, struct connectdata *conn)
long curl_ssl_version_min = SSL_CONN_CONFIG(version);
long curl_ssl_version_max;
- /* convert cURL min SSL version option to OpenSSL constant */
+ /* convert curl min SSL version option to OpenSSL constant */
#if defined(OPENSSL_IS_BORINGSSL) || defined(LIBRESSL_VERSION_NUMBER)
uint16_t ossl_ssl_version_min = 0;
uint16_t ossl_ssl_version_max = 0;
@@ -2329,7 +2344,7 @@ set_ssl_version_min_max(SSL_CTX *ctx, struct connectdata *conn)
We don't want to pass 0 to SSL_CTX_set_min_proto_version as
it would enable all versions down to the lowest supported by
the library.
- So we skip this, and stay with the OS default
+ So we skip this, and stay with the library default
*/
if(curl_ssl_version_min != CURL_SSLVERSION_DEFAULT) {
if(!SSL_CTX_set_min_proto_version(ctx, ossl_ssl_version_min)) {
@@ -2340,7 +2355,7 @@ set_ssl_version_min_max(SSL_CTX *ctx, struct connectdata *conn)
/* ... then, TLS max version */
curl_ssl_version_max = SSL_CONN_CONFIG(version_max);
- /* convert cURL max SSL version option to OpenSSL constant */
+ /* 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;
@@ -2489,6 +2504,7 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
if(SSL_SET_OPTION(primary.sessionid)) {
bool incache;
+ bool added = FALSE;
void *old_ssl_sessionid = NULL;
Curl_ssl_sessionid_lock(data);
@@ -2507,9 +2523,11 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
if(!incache) {
if(!Curl_ssl_addsessionid(data, conn, isproxy, ssl_sessionid,
- 0 /* unknown size */, sockindex)) {
- /* the session has been put into the session cache */
- res = 1;
+ 0 /* unknown size */, sockindex, &added)) {
+ if(added) {
+ /* the session has been put into the session cache */
+ res = 1;
+ }
}
else
failf(data, "failed to store ssl session");
@@ -2523,7 +2541,7 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
static CURLcode load_cacert_from_memory(SSL_CTX *ctx,
const struct curl_blob *ca_info_blob)
{
- /* these need freed at the end */
+ /* these need to be freed at the end */
BIO *cbio = NULL;
STACK_OF(X509_INFO) *inf = NULL;
@@ -2658,8 +2676,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
return CURLE_SSL_CONNECT_ERROR;
}
- if(backend->ctx)
- SSL_CTX_free(backend->ctx);
+ DEBUGASSERT(!backend->ctx);
backend->ctx = SSL_CTX_new(req_method);
if(!backend->ctx) {
@@ -2681,23 +2698,23 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
}
#endif
- /* OpenSSL contains code to work-around lots of bugs and flaws in various
+ /* OpenSSL contains code to work around lots of bugs and flaws in various
SSL-implementations. SSL_CTX_set_options() is used to enabled those
work-arounds. The man page for this option states that SSL_OP_ALL enables
all the work-arounds and that "It is usually safe to use SSL_OP_ALL to
enable the bug workaround options if compatibility with somewhat broken
implementations is desired."
- The "-no_ticket" option was introduced in Openssl0.9.8j. It's a flag to
+ The "-no_ticket" option was introduced in OpenSSL 0.9.8j. It's a flag to
disable "rfc4507bis session ticket support". rfc4507bis was later turned
into the proper RFC5077 it seems: https://tools.ietf.org/html/rfc5077
The enabled extension concerns the session management. I wonder how often
- libcurl stops a connection and then resumes a TLS session. also, sending
- the session data is some overhead. .I suggest that you just use your
+ libcurl stops a connection and then resumes a TLS session. Also, sending
+ the session data is some overhead. I suggest that you just use your
proposed patch (which explicitly disables TICKET).
- If someone writes an application with libcurl and openssl who wants to
+ If someone writes an application with libcurl and OpenSSL who wants to
enable the feature, one can do this in the SSL callback.
SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option enabling allowed proper
@@ -2733,7 +2750,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
#endif
#ifdef SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
- /* unless the user explicitly ask to allow the protocol vulnerability we
+ /* unless the user explicitly asks to allow the protocol vulnerability we
use the work-around */
if(!SSL_SET_OPTION(enable_beast))
ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
@@ -2933,7 +2950,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
NULL, cert_name, sizeof(cert_name))) {
strcpy(cert_name, "Unknown");
}
- infof(data, "SSL: Checking cert %s\"\n", cert_name);
+ infof(data, "SSL: Checking cert \"%s\"", cert_name);
#endif
encoded_cert = (const unsigned char *)pContext->pbCertEncoded;
@@ -3030,9 +3047,9 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
return result;
}
if(imported_native_ca)
- infof(data, "successfully imported windows ca store");
+ infof(data, "successfully imported Windows CA store");
else
- infof(data, "error importing windows ca store, continuing anyway");
+ infof(data, "error importing Windows CA store, continuing anyway");
}
#endif
@@ -3044,77 +3061,53 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
failf(data, "error importing CA certificate blob");
return result;
}
- /* Only warning if no certificate verification is required. */
+ /* Only warn if no certificate verification is required. */
infof(data, "error importing CA certificate blob, continuing anyway");
}
}
+ if(verifypeer && !imported_native_ca && (ssl_cafile || ssl_capath)) {
#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
/* OpenSSL 3.0.0 has deprecated SSL_CTX_load_verify_locations */
- {
- if(ssl_cafile) {
- if(!SSL_CTX_load_verify_file(backend->ctx, ssl_cafile)) {
- if(verifypeer && !imported_native_ca) {
- /* Fail if we insist on successfully verifying the server. */
- failf(data, "error setting certificate file: %s", ssl_cafile);
- return CURLE_SSL_CACERT_BADFILE;
- }
- /* Continue with a warning if no certificate verif is required. */
- infof(data, "error setting certificate file, continuing anyway");
- }
- infof(data, " CAfile: %s", ssl_cafile);
+ if(ssl_cafile &&
+ !SSL_CTX_load_verify_file(backend->ctx, ssl_cafile)) {
+ /* Fail if we insist on successfully verifying the server. */
+ failf(data, "error setting certificate file: %s", ssl_cafile);
+ return CURLE_SSL_CACERT_BADFILE;
}
- if(ssl_capath) {
- if(!SSL_CTX_load_verify_dir(backend->ctx, ssl_capath)) {
- if(verifypeer && !imported_native_ca) {
- /* Fail if we insist on successfully verifying the server. */
- failf(data, "error setting certificate path: %s", ssl_capath);
- return CURLE_SSL_CACERT_BADFILE;
- }
- /* Continue with a warning if no certificate verif is required. */
- infof(data, "error setting certificate path, continuing anyway");
- }
- infof(data, " CApath: %s", ssl_capath);
+ if(ssl_capath &&
+ !SSL_CTX_load_verify_dir(backend->ctx, ssl_capath)) {
+ /* Fail if we insist on successfully verifying the server. */
+ failf(data, "error setting certificate path: %s", ssl_capath);
+ return CURLE_SSL_CACERT_BADFILE;
}
- }
#else
- if(ssl_cafile || ssl_capath) {
- /* tell SSL where to find CA certificates that are used to verify
- the servers certificate. */
+ /* tell OpenSSL where to find CA certificates that are used to verify the
+ server's certificate. */
if(!SSL_CTX_load_verify_locations(backend->ctx, ssl_cafile, ssl_capath)) {
- if(verifypeer && !imported_native_ca) {
- /* Fail if we insist on successfully verifying the server. */
- failf(data, "error setting certificate verify locations:"
- " CAfile: %s CApath: %s",
- ssl_cafile ? ssl_cafile : "none",
- ssl_capath ? ssl_capath : "none");
- return CURLE_SSL_CACERT_BADFILE;
- }
- /* Just continue with a warning if no strict certificate verification
- is required. */
- infof(data, "error setting certificate verify locations,"
- " continuing anyway:");
- }
- else {
- /* Everything is fine. */
- infof(data, "successfully set certificate verify locations:");
+ /* Fail if we insist on successfully verifying the server. */
+ failf(data, "error setting certificate verify locations:"
+ " CAfile: %s CApath: %s",
+ ssl_cafile ? ssl_cafile : "none",
+ ssl_capath ? ssl_capath : "none");
+ return CURLE_SSL_CACERT_BADFILE;
}
+#endif
infof(data, " CAfile: %s", ssl_cafile ? ssl_cafile : "none");
infof(data, " CApath: %s", ssl_capath ? ssl_capath : "none");
}
-#endif
#ifdef CURL_CA_FALLBACK
if(verifypeer &&
!ca_info_blob && !ssl_cafile && !ssl_capath && !imported_native_ca) {
/* verifying the peer without any CA certificates won't
- work so use openssl's built in default as fallback */
+ work so use openssl's built-in default as fallback */
SSL_CTX_set_default_verify_paths(backend->ctx);
}
#endif
if(ssl_crlfile) {
- /* tell SSL where to find CRL file that is used to check certificate
+ /* tell OpenSSL where to find CRL file that is used to check certificate
* revocation */
lookup = X509_STORE_add_lookup(SSL_CTX_get_cert_store(backend->ctx),
X509_LOOKUP_file());
@@ -3124,7 +3117,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
return CURLE_SSL_CRL_BADFILE;
}
/* Everything is fine. */
- infof(data, "successfully load CRL file:");
+ infof(data, "successfully loaded CRL file:");
X509_STORE_set_flags(SSL_CTX_get_cert_store(backend->ctx),
X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL);
@@ -3150,7 +3143,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
only, instead of needing the whole chain.
Due to OpenSSL bug https://github.com/openssl/openssl/issues/5081 we
- cannot do partial chains with CRL check.
+ cannot do partial chains with a CRL check.
*/
X509_STORE_set_flags(SSL_CTX_get_cert_store(backend->ctx),
X509_V_FLAG_PARTIAL_CHAIN);
@@ -3158,7 +3151,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
#endif
}
- /* SSL always tries to verify the peer, this only says whether it should
+ /* OpenSSL always tries to verify the peer, this only says whether it should
* fail to connect if the verification fails, or if it should continue
* anyway. In the latter case the result of the verification is checked with
* SSL_get_verify_result() below. */
@@ -3173,7 +3166,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
#endif
/* Enable the session cache because it's a prerequisite for the "new session"
- * callback. Use the "external storage" mode to avoid that OpenSSL creates
+ * callback. Use the "external storage" mode to prevent OpenSSL from creating
* an internal session cache.
*/
SSL_CTX_set_session_cache_mode(backend->ctx,
@@ -3192,7 +3185,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
}
}
- /* Lets make an SSL structure */
+ /* Let's make an SSL structure */
if(backend->handle)
SSL_free(backend->handle);
backend->handle = SSL_new(backend->ctx);
@@ -3332,7 +3325,7 @@ static CURLcode ossl_connect_step2(struct Curl_easy *data,
/* the connection failed, we're not waiting for anything else. */
connssl->connecting_state = ssl_connect_2;
- /* Get the earliest error code from the thread's error queue and removes
+ /* Get the earliest error code from the thread's error queue and remove
the entry. */
errdetail = ERR_get_error();
@@ -3361,7 +3354,7 @@ static CURLcode ossl_connect_step2(struct Curl_easy *data,
!defined(LIBRESSL_VERSION_NUMBER) && \
!defined(OPENSSL_IS_BORINGSSL))
/* SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED is only available on
- OpenSSL version above v1.1.1, not Libre SSL nor BoringSSL */
+ OpenSSL version above v1.1.1, not LibreSSL nor BoringSSL */
else if((lib == ERR_LIB_SSL) &&
(reason == SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED)) {
/* If client certificate is required, communicate the
@@ -3378,7 +3371,7 @@ static CURLcode ossl_connect_step2(struct Curl_easy *data,
/* detail is already set to the SSL error above */
/* If we e.g. use SSLv2 request-method and the server doesn't like us
- * (RST connection etc.), OpenSSL gives no explanation whatsoever and
+ * (RST connection, etc.), OpenSSL gives no explanation whatsoever and
* the SO_ERROR is also lost.
*/
if(CURLE_SSL_CONNECT_ERROR == result && errdetail == 0) {
@@ -3401,7 +3394,7 @@ static CURLcode ossl_connect_step2(struct Curl_easy *data,
}
}
else {
- /* we have been connected fine, we're not waiting for anything else. */
+ /* we connected fine, we're not waiting for anything else. */
connssl->connecting_state = ssl_connect_3;
/* Informational message */
@@ -3820,7 +3813,7 @@ static CURLcode pkp_pin_peer_pubkey(struct Curl_easy *data, X509* cert,
}
/*
- * Get the server cert, verify it and show it etc, only call failf() if the
+ * Get the server cert, verify it and show it, etc., only call failf() if the
* 'strict' argument is TRUE as otherwise all this is for informational
* purposes only!
*
@@ -4021,7 +4014,7 @@ static CURLcode ossl_connect_step3(struct Curl_easy *data,
/*
* We check certificates to authenticate the server; otherwise we risk
* man-in-the-middle attack; NEVERTHELESS, if we're told explicitly not to
- * verify the peer ignore faults and failures from the server cert
+ * verify the peer, ignore faults and failures from the server cert
* operations.
*/
@@ -4059,7 +4052,7 @@ static CURLcode ossl_connect_common(struct Curl_easy *data,
const timediff_t timeout_ms = Curl_timeleft(data, NULL, TRUE);
if(timeout_ms < 0) {
- /* no need to continue if time already is up */
+ /* no need to continue if time is already up */
failf(data, "SSL connection timeout");
return CURLE_OPERATION_TIMEDOUT;
}
diff --git a/lib/vtls/rustls.c b/lib/vtls/rustls.c
index 94a1ca886..2ac97ce28 100644
--- a/lib/vtls/rustls.c
+++ b/lib/vtls/rustls.c
@@ -34,7 +34,7 @@
#include "sendf.h"
#include "vtls.h"
#include "select.h"
-
+#include "strerror.h"
#include "multiif.h"
struct ssl_backend_data
@@ -132,7 +132,9 @@ cr_recv(struct Curl_easy *data, int sockindex,
infof(data, "sread: EAGAIN or EWOULDBLOCK");
}
else if(io_error) {
- failf(data, "reading from socket: %s", strerror(io_error));
+ char buffer[STRERROR_LEN];
+ failf(data, "reading from socket: %s",
+ Curl_strerror(io_error, buffer, sizeof(buffer)));
*err = CURLE_READ_ERROR;
return -1;
}
@@ -244,7 +246,9 @@ cr_send(struct Curl_easy *data, int sockindex,
return -1;
}
else if(io_error) {
- failf(data, "writing to socket: %s", strerror(io_error));
+ char buffer[STRERROR_LEN];
+ failf(data, "writing to socket: %s",
+ Curl_strerror(io_error, buffer, sizeof(buffer)));
*err = CURLE_WRITE_ERROR;
return -1;
}
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index 7ffba6cc1..44c59e779 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -141,6 +141,12 @@
# define CALG_SHA_256 0x0000800c
#endif
+/* Work around typo in classic MinGW's w32api up to version 5.0,
+ see https://osdn.net/projects/mingw/ticket/38391 */
+#if !defined(ALG_CLASS_DHASH) && defined(ALG_CLASS_HASH)
+#define ALG_CLASS_DHASH ALG_CLASS_HASH
+#endif
+
#define BACKEND connssl->backend
static Curl_recv schannel_recv;
@@ -279,13 +285,7 @@ get_alg_id_by_name(char *name)
#ifdef CALG_HMAC
CIPHEROPTION(CALG_HMAC);
#endif
-#if !defined(__W32API_MAJOR_VERSION) || \
- !defined(__W32API_MINOR_VERSION) || \
- defined(__MINGW64_VERSION_MAJOR) || \
- (__W32API_MAJOR_VERSION > 5) || \
- ((__W32API_MAJOR_VERSION == 5) && (__W32API_MINOR_VERSION > 0))
- /* CALG_TLS1PRF has a syntax error in MinGW's w32api up to version 5.0,
- see https://osdn.net/projects/mingw/ticket/38391 */
+#ifdef CALG_TLS1PRF
CIPHEROPTION(CALG_TLS1PRF);
#endif
#ifdef CALG_HASH_REPLACE_OWF
@@ -716,8 +716,6 @@ schannel_acquire_credential_handle(struct Curl_easy *data,
}
BACKEND->cred->refcount = 1;
- /* https://msdn.microsoft.com/en-us/library/windows/desktop/aa374716.aspx
- */
sspi_status =
s_pSecFn->AcquireCredentialsHandle(NULL, (TCHAR *)UNISP_NAME,
SECPKG_CRED_OUTBOUND, NULL,
@@ -1141,8 +1139,6 @@ schannel_connect_step2(struct Curl_easy *data, struct connectdata *conn,
if(!host_name)
return CURLE_OUT_OF_MEMORY;
- /* https://msdn.microsoft.com/en-us/library/windows/desktop/aa375924.aspx
- */
sspi_status = s_pSecFn->InitializeSecurityContext(
&BACKEND->cred->cred_handle, &BACKEND->ctxt->ctxt_handle,
host_name, BACKEND->req_flags, 0, 0, &inbuf_desc, 0, NULL,
@@ -1364,7 +1360,7 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
SECURITY_STATUS sspi_status = SEC_E_OK;
CERT_CONTEXT *ccert_context = NULL;
bool isproxy = SSL_IS_PROXY();
-#ifdef DEBUGBUILD
+#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
const char * const hostname = SSL_HOST_NAME();
#endif
#ifdef HAS_ALPN
@@ -1436,6 +1432,7 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
/* save the current session data for possible re-use */
if(SSL_SET_OPTION(primary.sessionid)) {
bool incache;
+ bool added = FALSE;
struct Curl_schannel_cred *old_cred = NULL;
Curl_ssl_sessionid_lock(data);
@@ -1453,13 +1450,13 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
if(!incache) {
result = Curl_ssl_addsessionid(data, conn, isproxy, BACKEND->cred,
sizeof(struct Curl_schannel_cred),
- sockindex);
+ sockindex, &added);
if(result) {
Curl_ssl_sessionid_unlock(data);
failf(data, "schannel: failed to store credential handle");
return result;
}
- else {
+ else if(added) {
/* this cred session is now also referenced by sessionid cache */
BACKEND->cred->refcount++;
DEBUGF(infof(data,
@@ -1970,12 +1967,12 @@ schannel_recv(struct Curl_easy *data, int sockindex,
if(sspi_status == SEC_I_RENEGOTIATE) {
infof(data, "schannel: remote party requests renegotiation");
if(*err && *err != CURLE_AGAIN) {
- infof(data, "schannel: can't renogotiate, an error is pending");
+ infof(data, "schannel: can't renegotiate, an error is pending");
goto cleanup;
}
if(BACKEND->encdata_offset) {
*err = CURLE_RECV_ERROR;
- infof(data, "schannel: can't renogotiate, "
+ infof(data, "schannel: can't renegotiate, "
"encrypted data available");
goto cleanup;
}
@@ -2124,26 +2121,23 @@ static bool schannel_data_pending(const struct connectdata *conn,
return FALSE;
}
-static void schannel_close(struct Curl_easy *data, struct connectdata *conn,
- int sockindex)
-{
- if(conn->ssl[sockindex].use)
- /* if the SSL/TLS channel hasn't been shut down yet, do that now. */
- Curl_ssl_shutdown(data, conn, sockindex);
-}
-
static void schannel_session_free(void *ptr)
{
/* this is expected to be called under sessionid lock */
struct Curl_schannel_cred *cred = ptr;
- cred->refcount--;
- if(cred->refcount == 0) {
- s_pSecFn->FreeCredentialsHandle(&cred->cred_handle);
- Curl_safefree(cred);
+ if(cred) {
+ cred->refcount--;
+ if(cred->refcount == 0) {
+ s_pSecFn->FreeCredentialsHandle(&cred->cred_handle);
+ Curl_safefree(cred);
+ }
}
}
+/* shut down the SSL connection and clean up related memory.
+ this function can be called multiple times on the same connection including
+ if the SSL connection failed (eg connection made but failed handshake). */
static int schannel_shutdown(struct Curl_easy *data, struct connectdata *conn,
int sockindex)
{
@@ -2155,10 +2149,12 @@ static int schannel_shutdown(struct Curl_easy *data, struct connectdata *conn,
DEBUGASSERT(data);
- infof(data, "schannel: shutting down SSL/TLS connection with %s port %hu",
- hostname, conn->remote_port);
+ if(connssl->use) {
+ infof(data, "schannel: shutting down SSL/TLS connection with %s port %hu",
+ hostname, conn->remote_port);
+ }
- if(BACKEND->cred && BACKEND->ctxt) {
+ if(connssl->use && BACKEND->cred && BACKEND->ctxt) {
SecBufferDesc BuffDesc;
SecBuffer Buffer;
SECURITY_STATUS sspi_status;
@@ -2251,6 +2247,16 @@ static int schannel_shutdown(struct Curl_easy *data, struct connectdata *conn,
return CURLE_OK;
}
+static void schannel_close(struct Curl_easy *data, struct connectdata *conn,
+ int sockindex)
+{
+ if(conn->ssl[sockindex].use)
+ /* Curl_ssl_shutdown resets the socket state and calls schannel_shutdown */
+ Curl_ssl_shutdown(data, conn, sockindex);
+ else
+ schannel_shutdown(data, conn, sockindex);
+}
+
static int schannel_init(void)
{
return (Curl_sspi_global_init() == CURLE_OK ? 1 : 0);
diff --git a/lib/vtls/schannel_verify.c b/lib/vtls/schannel_verify.c
index 12fccaa8e..1b283d045 100644
--- a/lib/vtls/schannel_verify.c
+++ b/lib/vtls/schannel_verify.c
@@ -80,7 +80,7 @@ static int is_cr_or_lf(char c)
/* Search the substring needle,needlelen into string haystack,haystacklen
* Strings don't need to be terminated by a '\0'.
* Similar of OSX/Linux memmem (not available on Visual Studio).
- * Return position of beginning of first occurence or NULL if not found
+ * Return position of beginning of first occurrence or NULL if not found
*/
static const char *c_memmem(const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen)
diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c
index 26b833dd2..0bf515460 100644
--- a/lib/vtls/sectransp.c
+++ b/lib/vtls/sectransp.c
@@ -33,6 +33,8 @@
#include "strtok.h"
#include "multiif.h"
#include "strcase.h"
+#include "x509asn1.h"
+#include "strerror.h"
#ifdef USE_SECTRANSP
@@ -2107,7 +2109,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
}
result = Curl_ssl_addsessionid(data, conn, isproxy, ssl_sessionid,
- ssl_sessionid_len, sockindex);
+ ssl_sessionid_len, sockindex, NULL);
Curl_ssl_sessionid_unlock(data);
if(result) {
failf(data, "failed to store ssl session");
@@ -2854,13 +2856,60 @@ sectransp_connect_step2(struct Curl_easy *data, struct connectdata *conn,
}
}
+static CURLcode
+add_cert_to_certinfo(struct Curl_easy *data,
+ SecCertificateRef server_cert,
+ int idx)
+{
+ CURLcode result = CURLE_OK;
+ const char *beg;
+ const char *end;
+ CFDataRef cert_data = SecCertificateCopyData(server_cert);
+
+ if(!cert_data)
+ return CURLE_PEER_FAILED_VERIFICATION;
+
+ beg = (const char *)CFDataGetBytePtr(cert_data);
+ end = beg + CFDataGetLength(cert_data);
+ result = Curl_extract_certinfo(data, idx, beg, end);
+ CFRelease(cert_data);
+ return result;
+}
+
+static CURLcode
+collect_server_cert_single(struct Curl_easy *data,
+ SecCertificateRef server_cert,
+ CFIndex idx)
+{
+ CURLcode result = CURLE_OK;
#ifndef CURL_DISABLE_VERBOSE_STRINGS
+ if(data->set.verbose) {
+ char *certp;
+ result = CopyCertSubject(data, server_cert, &certp);
+ if(!result) {
+ infof(data, "Server certificate: %s", certp);
+ free(certp);
+ }
+ }
+#endif
+ if(data->set.ssl.certinfo)
+ result = add_cert_to_certinfo(data, server_cert, (int)idx);
+ return result;
+}
+
/* This should be called during step3 of the connection at the earliest */
-static void
-show_verbose_server_cert(struct Curl_easy *data,
- struct connectdata *conn,
- int sockindex)
+static CURLcode
+collect_server_cert(struct Curl_easy *data,
+ struct connectdata *conn,
+ int sockindex)
{
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+ const bool show_verbose_server_cert = data->set.verbose;
+#else
+ const bool show_verbose_server_cert = false;
+#endif
+ CURLcode result = data->set.ssl.certinfo ?
+ CURLE_PEER_FAILED_VERIFICATION : CURLE_OK;
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
struct ssl_backend_data *backend = connssl->backend;
CFArrayRef server_certs = NULL;
@@ -2869,8 +2918,11 @@ show_verbose_server_cert(struct Curl_easy *data,
CFIndex i, count;
SecTrustRef trust = NULL;
+ if(!show_verbose_server_cert && !data->set.ssl.certinfo)
+ return CURLE_OK;
+
if(!backend->ssl_ctx)
- return;
+ return result;
#if CURL_BUILD_MAC_10_7 || CURL_BUILD_IOS
#if CURL_BUILD_IOS
@@ -2880,15 +2932,11 @@ show_verbose_server_cert(struct Curl_easy *data,
a null trust, so be on guard for that: */
if(err == noErr && trust) {
count = SecTrustGetCertificateCount(trust);
- for(i = 0L ; i < count ; i++) {
- CURLcode result;
- char *certp;
+ if(data->set.ssl.certinfo)
+ result = Curl_ssl_init_certinfo(data, (int)count);
+ for(i = 0L ; !result && (i < count) ; i++) {
server_cert = SecTrustGetCertificateAtIndex(trust, i);
- result = CopyCertSubject(data, server_cert, &certp);
- if(!result) {
- infof(data, "Server certificate: %s", certp);
- free(certp);
- }
+ result = collect_server_cert_single(data, server_cert, i);
}
CFRelease(trust);
}
@@ -2906,15 +2954,11 @@ show_verbose_server_cert(struct Curl_easy *data,
a null trust, so be on guard for that: */
if(err == noErr && trust) {
count = SecTrustGetCertificateCount(trust);
- for(i = 0L ; i < count ; i++) {
- char *certp;
- CURLcode result;
+ if(data->set.ssl.certinfo)
+ result = Curl_ssl_init_certinfo(data, (int)count);
+ for(i = 0L ; !result && (i < count) ; i++) {
server_cert = SecTrustGetCertificateAtIndex(trust, i);
- result = CopyCertSubject(data, server_cert, &certp);
- if(!result) {
- infof(data, "Server certificate: %s", certp);
- free(certp);
- }
+ result = collect_server_cert_single(data, server_cert, i);
}
CFRelease(trust);
}
@@ -2925,16 +2969,12 @@ show_verbose_server_cert(struct Curl_easy *data,
/* Just in case SSLCopyPeerCertificates() returns null too... */
if(err == noErr && server_certs) {
count = CFArrayGetCount(server_certs);
- for(i = 0L ; i < count ; i++) {
- char *certp;
- CURLcode result;
+ if(data->set.ssl.certinfo)
+ result = Curl_ssl_init_certinfo(data, (int)count);
+ for(i = 0L ; !result && (i < count) ; i++) {
server_cert = (SecCertificateRef)CFArrayGetValueAtIndex(server_certs,
i);
- result = CopyCertSubject(data, server_cert, &certp);
- if(!result) {
- infof(data, "Server certificate: %s", certp);
- free(certp);
- }
+ result = collect_server_cert_single(data, server_cert, i);
}
CFRelease(server_certs);
}
@@ -2946,21 +2986,17 @@ show_verbose_server_cert(struct Curl_easy *data,
err = SSLCopyPeerCertificates(backend->ssl_ctx, &server_certs);
if(err == noErr) {
count = CFArrayGetCount(server_certs);
- for(i = 0L ; i < count ; i++) {
- CURLcode result;
- char *certp;
+ if(data->set.ssl.certinfo)
+ result = Curl_ssl_init_certinfo(data, (int)count);
+ for(i = 0L ; !result && (i < count) ; i++) {
server_cert = (SecCertificateRef)CFArrayGetValueAtIndex(server_certs, i);
- result = CopyCertSubject(data, server_cert, &certp);
- if(!result) {
- infof(data, "Server certificate: %s", certp);
- free(certp);
- }
+ result = collect_server_cert_single(data, server_cert, i);
}
CFRelease(server_certs);
}
#endif /* CURL_BUILD_MAC_10_7 || CURL_BUILD_IOS */
+ return result;
}
-#endif /* !CURL_DISABLE_VERBOSE_STRINGS */
static CURLcode
sectransp_connect_step3(struct Curl_easy *data, struct connectdata *conn,
@@ -2969,12 +3005,11 @@ sectransp_connect_step3(struct Curl_easy *data, struct connectdata *conn,
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
/* There is no step 3!
- * Well, okay, if verbose mode is on, let's print the details of the
- * server certificates. */
-#ifndef CURL_DISABLE_VERBOSE_STRINGS
- if(data->set.verbose)
- show_verbose_server_cert(data, conn, sockindex);
-#endif
+ * Well, okay, let's collect server certificates, and if verbose mode is on,
+ * let's print the details of the server certificates. */
+ const CURLcode result = collect_server_cert(data, conn, sockindex);
+ if(result)
+ return result;
connssl->connecting_state = ssl_connect_done;
return CURLE_OK;
@@ -3188,7 +3223,9 @@ static int sectransp_shutdown(struct Curl_easy *data,
nread = read(conn->sock[sockindex], buf, sizeof(buf));
if(nread < 0) {
- failf(data, "read: %s", strerror(errno));
+ char buffer[STRERROR_LEN];
+ failf(data, "read: %s",
+ Curl_strerror(errno, buffer, sizeof(buffer)));
rc = -1;
}
@@ -3433,6 +3470,7 @@ const struct Curl_ssl Curl_ssl_sectransp = {
{ CURLSSLBACKEND_SECURETRANSPORT, "secure-transport" }, /* info */
SSLSUPP_CAINFO_BLOB |
+ SSLSUPP_CERTINFO |
#ifdef SECTRANSP_PINNEDPUBKEY
SSLSUPP_PINNEDPUBKEY,
#else
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index e5bbe1f5f..6007bbba0 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -516,7 +516,8 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
const bool isProxy,
void *ssl_sessionid,
size_t idsize,
- int sockindex)
+ int sockindex,
+ bool *added)
{
size_t i;
struct Curl_ssl_session *store;
@@ -536,6 +537,10 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
const char *hostname = conn->host.name;
#endif
(void)sockindex;
+
+ if(added)
+ *added = FALSE;
+
if(!data->state.session)
return CURLE_OK;
@@ -609,6 +614,9 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
return CURLE_OUT_OF_MEMORY;
}
+ if(added)
+ *added = TRUE;
+
DEBUGF(infof(data, "Added Session ID to cache for %s://%s:%d [%s]",
store->scheme, store->name, store->remote_port,
isProxy ? "PROXY" : "server"));
diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
index beaa83d9e..c7bbba082 100644
--- a/lib/vtls/vtls.h
+++ b/lib/vtls/vtls.h
@@ -261,7 +261,8 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
const bool isProxy,
void *ssl_sessionid,
size_t idsize,
- int sockindex);
+ int sockindex,
+ bool *added);
/* Kill a single session ID entry in the cache
* Sessionid mutex must be locked (see Curl_ssl_sessionid_lock).
* This will call engine-specific curlssl_session_free function, which must
diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c
index 7cab17fb6..8c5b9157b 100644
--- a/lib/vtls/wolfssl.c
+++ b/lib/vtls/wolfssl.c
@@ -202,6 +202,43 @@ static int do_file_type(const char *type)
return -1;
}
+#ifdef HAVE_LIBOQS
+struct group_name_map {
+ const word16 group;
+ const char *name;
+};
+
+static const struct group_name_map gnm[] = {
+ { WOLFSSL_KYBER_LEVEL1, "KYBER_LEVEL1" },
+ { WOLFSSL_KYBER_LEVEL3, "KYBER_LEVEL3" },
+ { WOLFSSL_KYBER_LEVEL5, "KYBER_LEVEL5" },
+ { WOLFSSL_NTRU_HPS_LEVEL1, "NTRU_HPS_LEVEL1" },
+ { WOLFSSL_NTRU_HPS_LEVEL3, "NTRU_HPS_LEVEL3" },
+ { WOLFSSL_NTRU_HPS_LEVEL5, "NTRU_HPS_LEVEL5" },
+ { WOLFSSL_NTRU_HRSS_LEVEL3, "NTRU_HRSS_LEVEL3" },
+ { WOLFSSL_SABER_LEVEL1, "SABER_LEVEL1" },
+ { WOLFSSL_SABER_LEVEL3, "SABER_LEVEL3" },
+ { WOLFSSL_SABER_LEVEL5, "SABER_LEVEL5" },
+ { WOLFSSL_KYBER_90S_LEVEL1, "KYBER_90S_LEVEL1" },
+ { WOLFSSL_KYBER_90S_LEVEL3, "KYBER_90S_LEVEL3" },
+ { WOLFSSL_KYBER_90S_LEVEL5, "KYBER_90S_LEVEL5" },
+ { WOLFSSL_P256_NTRU_HPS_LEVEL1, "P256_NTRU_HPS_LEVEL1" },
+ { WOLFSSL_P384_NTRU_HPS_LEVEL3, "P384_NTRU_HPS_LEVEL3" },
+ { WOLFSSL_P521_NTRU_HPS_LEVEL5, "P521_NTRU_HPS_LEVEL5" },
+ { WOLFSSL_P384_NTRU_HRSS_LEVEL3, "P384_NTRU_HRSS_LEVEL3" },
+ { WOLFSSL_P256_SABER_LEVEL1, "P256_SABER_LEVEL1" },
+ { WOLFSSL_P384_SABER_LEVEL3, "P384_SABER_LEVEL3" },
+ { WOLFSSL_P521_SABER_LEVEL5, "P521_SABER_LEVEL5" },
+ { WOLFSSL_P256_KYBER_LEVEL1, "P256_KYBER_LEVEL1" },
+ { WOLFSSL_P384_KYBER_LEVEL3, "P384_KYBER_LEVEL3" },
+ { WOLFSSL_P521_KYBER_LEVEL5, "P521_KYBER_LEVEL5" },
+ { WOLFSSL_P256_KYBER_90S_LEVEL1, "P256_KYBER_90S_LEVEL1" },
+ { WOLFSSL_P384_KYBER_90S_LEVEL3, "P384_KYBER_90S_LEVEL3" },
+ { WOLFSSL_P521_KYBER_90S_LEVEL5, "P521_KYBER_90S_LEVEL5" },
+ { 0, NULL }
+};
+#endif
+
/*
* This function loads all the client/CA certificates and CRLs. Setup the TLS
* layer and do all necessary magic.
@@ -210,11 +247,15 @@ static CURLcode
wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
int sockindex)
{
- char *ciphers;
+ char *ciphers, *curves;
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
struct ssl_backend_data *backend = connssl->backend;
SSL_METHOD* req_method = NULL;
curl_socket_t sockfd = conn->sock[sockindex];
+#ifdef HAVE_LIBOQS
+ word16 oqsAlg = 0;
+ size_t idx = 0;
+#endif
#ifdef HAVE_SNI
bool sni = FALSE;
#define use_sni(x) sni = (x)
@@ -327,6 +368,26 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
infof(data, "Cipher selection: %s", ciphers);
}
+ curves = SSL_CONN_CONFIG(curves);
+ if(curves) {
+
+#ifdef HAVE_LIBOQS
+ for(idx = 0; gnm[idx].name != NULL; idx++) {
+ if(strncmp(curves, gnm[idx].name, strlen(gnm[idx].name)) == 0) {
+ oqsAlg = gnm[idx].group;
+ break;
+ }
+ }
+
+ if(oqsAlg == 0)
+#endif
+ {
+ if(!SSL_CTX_set1_curves_list(backend->ctx, curves)) {
+ failf(data, "failed setting curves list: '%s'", curves);
+ return CURLE_SSL_CIPHER;
+ }
+ }
+ }
#ifndef NO_FILESYSTEM
/* load trusted cacert */
if(SSL_CONN_CONFIG(CAfile)) {
@@ -439,6 +500,14 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
return CURLE_OUT_OF_MEMORY;
}
+#ifdef HAVE_LIBOQS
+ if(oqsAlg) {
+ if(wolfSSL_UseKeyShare(backend->handle, oqsAlg) != WOLFSSL_SUCCESS) {
+ failf(data, "unable to use oqs KEM");
+ }
+ }
+#endif
+
#ifdef HAVE_ALPN
if(conn->bits.tls_enable_alpn) {
char protocols[128];
@@ -495,7 +564,7 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
/* we got a session id, use it! */
if(!SSL_set_session(backend->handle, ssl_sessionid)) {
Curl_ssl_delsessionid(data, ssl_sessionid);
- infof(data, "Can't use session ID, going on without\n");
+ infof(data, "Can't use session ID, going on without");
}
else
infof(data, "SSL re-using session ID");
@@ -525,6 +594,8 @@ wolfssl_connect_step2(struct Curl_easy *data, struct connectdata *conn,
const char * const dispname = SSL_HOST_DISPNAME();
const char * const pinnedpubkey = SSL_PINNED_PUB_KEY();
+ ERR_clear_error();
+
conn->recv[sockindex] = wolfssl_recv;
conn->send[sockindex] = wolfssl_send;
@@ -747,7 +818,7 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
if(!incache) {
result = Curl_ssl_addsessionid(data, conn, isproxy, our_ssl_sessionid,
- 0, sockindex);
+ 0, sockindex, NULL);
if(result) {
Curl_ssl_sessionid_unlock(data);
failf(data, "failed to store ssl session");
@@ -775,7 +846,11 @@ static ssize_t wolfssl_send(struct Curl_easy *data,
struct ssl_backend_data *backend = connssl->backend;
char error_buffer[WOLFSSL_MAX_ERROR_SZ];
int memlen = (len > (size_t)INT_MAX) ? INT_MAX : (int)len;
- int rc = SSL_write(backend->handle, mem, memlen);
+ int rc;
+
+ ERR_clear_error();
+
+ rc = SSL_write(backend->handle, mem, memlen);
if(rc <= 0) {
int err = SSL_get_error(backend->handle, rc);
@@ -831,7 +906,11 @@ static ssize_t wolfssl_recv(struct Curl_easy *data,
struct ssl_backend_data *backend = connssl->backend;
char error_buffer[WOLFSSL_MAX_ERROR_SZ];
int buffsize = (buffersize > (size_t)INT_MAX) ? INT_MAX : (int)buffersize;
- int nread = SSL_read(backend->handle, buf, buffsize);
+ int nread;
+
+ ERR_clear_error();
+
+ nread = SSL_read(backend->handle, buf, buffsize);
if(nread < 0) {
int err = SSL_get_error(backend->handle, nread);
@@ -916,6 +995,7 @@ static int wolfssl_shutdown(struct Curl_easy *data, struct connectdata *conn,
(void) data;
if(backend->handle) {
+ ERR_clear_error();
SSL_free(backend->handle);
backend->handle = NULL;
}
diff --git a/lib/x509asn1.c b/lib/x509asn1.c
index c70378dac..1bdaeadc8 100644
--- a/lib/x509asn1.c
+++ b/lib/x509asn1.c
@@ -23,7 +23,7 @@
#include "curl_setup.h"
#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS) || \
- defined(USE_WOLFSSL) || defined(USE_SCHANNEL)
+ defined(USE_WOLFSSL) || defined(USE_SCHANNEL) || defined(USE_SECTRANSP)
#include <curl/curl.h>
#include "urldata.h"
@@ -34,6 +34,7 @@
#include "inet_pton.h"
#include "curl_base64.h"
#include "x509asn1.h"
+#include "dynbuf.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -205,16 +206,16 @@ static const char *bool2str(const char *beg, const char *end)
*/
static const char *octet2str(const char *beg, const char *end)
{
- size_t n = end - beg;
- char *buf = NULL;
+ struct dynbuf buf;
+ CURLcode result;
- if(n <= (SIZE_T_MAX - 1) / 3) {
- buf = malloc(3 * n + 1);
- if(buf)
- for(n = 0; beg < end; n += 3)
- msnprintf(buf + n, 4, "%02x:", *(const unsigned char *) beg++);
- }
- return buf;
+ Curl_dyn_init(&buf, 3 * CURL_ASN1_MAX + 1);
+ result = Curl_dyn_addn(&buf, "", 0);
+
+ while(!result && beg < end)
+ result = Curl_dyn_addf(&buf, "%02x:", (unsigned char) *beg++);
+
+ return Curl_dyn_ptr(&buf);
}
static const char *bit2str(const char *beg, const char *end)
@@ -1103,7 +1104,8 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data,
return CURLE_OK;
}
-#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_WOLFSSL or USE_SCHANNEL */
+#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_WOLFSSL or USE_SCHANNEL
+ * or USE_SECTRANSP */
#if defined(USE_GSKIT)
diff --git a/lib/x509asn1.h b/lib/x509asn1.h
index 326e32d58..3b51eeef8 100644
--- a/lib/x509asn1.h
+++ b/lib/x509asn1.h
@@ -26,7 +26,7 @@
#include "curl_setup.h"
#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS) || \
- defined(USE_WOLFSSL) || defined(USE_SCHANNEL)
+ defined(USE_WOLFSSL) || defined(USE_SCHANNEL) || defined(USE_SECTRANSP)
#include "urldata.h"
@@ -129,5 +129,6 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, int certnum,
const char *beg, const char *end);
CURLcode Curl_verifyhost(struct Curl_easy *data, struct connectdata *conn,
const char *beg, const char *end);
-#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_WOLFSSL or USE_SCHANNEL */
+#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_WOLFSSL or USE_SCHANNEL
+ * or USE_SECTRANSP */
#endif /* HEADER_CURL_X509ASN1_H */
diff --git a/local-configure.patch b/local-configure.patch
index fc068599a..c7769c0c9 100644
--- a/local-configure.patch
+++ b/local-configure.patch
@@ -61,7 +61,7 @@ Index: curl/lib/curl_config.h
-/* The number of bytes in type time_t */
-#define SIZEOF_TIME_T 8
-
- /* Define to 1 if you have the ANSI C header files. */
+ /* Define to 1 if all of the C90 standard headers exist (not just the ones
#define STDC_HEADERS 1
@@ -1058,7 +1040,7 @@
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index 6d17a9fbd..5fb17cc8c 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -64,7 +64,7 @@ AC_DEFUN([CURL_CHECK_COMPILER], [
***
*** If you wish to help the curl project to better support your compiler
*** you can report this and the required info on the libcurl development
-*** mailing list: https://cool.haxx.se/mailman/listinfo/curl-library/
+*** mailing list: https://lists.haxx.selistinfo/curl-library/
***
_EOF
fi
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4
index 75fa64948..efe42495d 100644
--- a/m4/curl-confopts.m4
+++ b/m4/curl-confopts.m4
@@ -242,10 +242,6 @@ AC_DEFUN([CURL_CHECK_OPTION_SYMBOL_HIDING], [
AS_HELP_STRING([--enable-symbol-hiding],[Enable hiding of library internal symbols])
AS_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal symbols]),
OPT_SYMBOL_HIDING=$enableval)
- AC_ARG_ENABLE(hidden-symbols,
-AS_HELP_STRING([--enable-hidden-symbols],[To be deprecated, use --enable-symbol-hiding])
-AS_HELP_STRING([--disable-hidden-symbols],[To be deprecated, use --disable-symbol-hiding]),
- OPT_SYMBOL_HIDING=$enableval)
case "$OPT_SYMBOL_HIDING" in
no)
dnl --disable-symbol-hiding option used.
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
index d3ffaea9f..575454d44 100644
--- a/m4/curl-functions.m4
+++ b/m4/curl-functions.m4
@@ -486,7 +486,7 @@ curl_includes_unistd="\
dnl CURL_INCLUDES_WINSOCK2
dnl -------------------------------------------------
dnl Set up variable with list of headers that must be
-dnl included when winsock(2).h is to be included.
+dnl included when winsock2.h is to be included.
AC_DEFUN([CURL_INCLUDES_WINSOCK2], [
curl_includes_winsock2="\
@@ -498,15 +498,10 @@ curl_includes_winsock2="\
# include <windows.h>
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
# endif
#endif
/* includes end */"
CURL_CHECK_HEADER_WINDOWS
- CURL_CHECK_HEADER_WINSOCK
CURL_CHECK_HEADER_WINSOCK2
])
@@ -2055,6 +2050,10 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [
dnl hpux 11.11 and newer
tst_tsafe_getaddrinfo="yes"
;;
+ midnightbsd*)
+ dnl all MidnightBSD versions
+ tst_tsafe_getaddrinfo="yes"
+ ;;
netbsd[[123]].*)
dnl netbsd 3.X and older
tst_tsafe_getaddrinfo="no"
diff --git a/m4/curl-openssl.m4 b/m4/curl-openssl.m4
index 835768e1b..5309f33d2 100644
--- a/m4/curl-openssl.m4
+++ b/m4/curl-openssl.m4
@@ -46,6 +46,9 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
# include <crypto.h>
# endif
], [silent])
+ CURL_CHECK_DEF([OPENSSL_VERSION_STR], [
+# include <openssl/crypto.h>
+ ], [silent])
if test "$curl_cv_have_def_OPENSSL_VERSION_NUMBER" = "yes"; then
tst_verlen=`expr "$curl_cv_def_OPENSSL_VERSION_NUMBER" : '.*'`
case "x$tst_verlen" in
@@ -62,7 +65,16 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
;;
*)
- tst_api="unknown"
+ if test "$curl_cv_have_def_OPENSSL_VERSION_STR" = "yes"; then
+ ver=`echo $curl_cv_def_OPENSSL_VERSION_STR | sed 's/"//g'`;
+ tst_vermaj=`echo $ver | cut -d. -f1`
+ tst_vermin=`echo $ver | cut -d. -f2`
+ tst_verfix=`echo $ver | cut -d. -f3`
+ tst_show="$ver"
+ tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
+ else
+ tst_api="unknown"
+ fi
;;
esac
case $tst_api in
@@ -80,9 +92,13 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
0x093) tst_show="0.9.3" ;;
0x092) tst_show="0.9.2" ;;
0x091) tst_show="0.9.1" ;;
- *) tst_show="unknown" ;;
+ *)
+ if test -z "$tst_show"; then
+ tst_show="unknown"
+ fi
+ ;;
esac
- tst_show="$tst_show - $curl_cv_def_OPENSSL_VERSION_NUMBER"
+ tst_show="$tst_show - $tst_api"
else
tst_show="unknown"
fi
@@ -124,6 +140,13 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
AC_MSG_CHECKING([for OpenSSL library version])
if test "$tst_api" = "unknown"; then
AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([SSL_CTX_load_verify_dir])
+ ],[
+ tst_api="0x300"
+ ])
+ fi
+ if test "$tst_api" = "unknown"; then
+ AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([ERR_clear_last_mark])
],[
tst_api="0x111"
@@ -225,6 +248,7 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
])
fi
case $tst_api in
+ 0x300) tst_show="3.0.0" ;;
0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
@@ -330,8 +354,21 @@ if test "x$OPT_OPENSSL" != xno; then
if test -f "$OPENSSL_PCDIR/openssl.pc"; then
AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
PKGTEST="yes"
- elif test ! -f "$PREFIX_OPENSSL/include/openssl/ssl.h"; then
- AC_MSG_ERROR([$PREFIX_OPENSSL is a bad --with-openssl prefix!])
+ fi
+
+ if test "$PKGTEST" != "yes"; then
+ # try lib64 instead
+ OPENSSL_PCDIR="$OPT_OPENSSL/lib64/pkgconfig"
+ if test -f "$OPENSSL_PCDIR/openssl.pc"; then
+ AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
+ PKGTEST="yes"
+ fi
+ fi
+
+ if test "$PKGTEST" != "yes"; then
+ if test ! -f "$PREFIX_OPENSSL/include/openssl/ssl.h"; then
+ AC_MSG_ERROR([$PREFIX_OPENSSL is a bad --with-openssl prefix!])
+ fi
fi
dnl in case pkg-config comes up empty, use what we got
@@ -400,7 +437,7 @@ if test "x$OPT_OPENSSL" != xno; then
dnl still no, but what about with -ldl?
AC_MSG_CHECKING([OpenSSL linking with -ldl])
- LIBS="$CLEANLIBS -lcrypto -ldl"
+ LIBS="-lcrypto $CLEANLIBS -ldl"
AC_LINK_IFELSE([ AC_LANG_PROGRAM([[
#include <openssl/err.h>
]], [[
@@ -416,7 +453,7 @@ if test "x$OPT_OPENSSL" != xno; then
dnl This may be necessary for static libraries.
AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
- LIBS="$CLEANLIBS -lcrypto -ldl -lpthread"
+ LIBS="-lcrypto $CLEANLIBS -ldl -lpthread"
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
#include <openssl/err.h>
diff --git a/m4/xc-lt-iface.m4 b/m4/xc-lt-iface.m4
index 465767fc3..e389b2b03 100644
--- a/m4/xc-lt-iface.m4
+++ b/m4/xc-lt-iface.m4
@@ -2,7 +2,7 @@
#
# xc-lt-iface.m4
#
-# Copyright (c) 2013 - 2020, Daniel Stenberg <daniel@haxx.se>
+# Copyright (c) 2013 - 2021, Daniel Stenberg <daniel@haxx.se>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -119,7 +119,7 @@ if test "x$xc_lt_want_with_pic" = 'xdefault'; then
case $host_cpu in @%:@ (
x86_64 | amd64 | ia64)
case $host_os in @%:@ (
- linux* | freebsd*)
+ linux* | freebsd* | midnightbsd*)
xc_lt_want_with_pic='yes'
;;
esac
diff --git a/maketgz b/maketgz
index 2f97f18c3..d1351addf 100755
--- a/maketgz
+++ b/maketgz
@@ -9,7 +9,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -147,7 +147,7 @@ fi
#
echo "update man pages"
-./scripts/updatemanpages.pl $version
+./scripts/updatemanpages.pl $version >/dev/null
# make the generated file newer than the man page
touch src/tool_hugehelp.c
diff --git a/missing b/missing
index 8d0eaad25..1fe1611f1 100755
--- a/missing
+++ b/missing
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 018cabad2..b6a37a60a 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -1583,6 +1583,8 @@
d c 40309
d CURLOPT_PROXY_CAINFO_BLOB...
d c 40310
+ d CURLOPT_MAXLIFETIME_CONN...
+ d c 00314
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001
@@ -2913,6 +2915,10 @@
d part * value options(*string)
d flags 10u 0 value
*
+ d curl_url_strerror...
+ d pr * extproc('curl_url_strerror') const char *
+ d code value like(CURLUcode)
+ *
d curl_easy_option_by_name...
d pr * extproc('curl_easy_option_by_name') curl_easyoption *
d name * value option(*string)
diff --git a/projects/Windows/VC10/src/curl.vcxproj b/projects/Windows/VC10/src/curl.vcxproj
index 0eb7fe669..8c46df4e5 100644
--- a/projects/Windows/VC10/src/curl.vcxproj
+++ b/projects/Windows/VC10/src/curl.vcxproj
@@ -2657,6 +2657,7 @@
<ClCompile Include="..\..\..\..\src\tool_homedir.c" />
<ClCompile Include="..\..\..\..\src\tool_hugehelp.c" />
<ClCompile Include="..\..\..\..\src\tool_libinfo.c" />
+ <ClCompile Include="..\..\..\..\src\tool_listhelp.c" />
<ClCompile Include="..\..\..\..\src\tool_main.c" />
<ClCompile Include="..\..\..\..\src\tool_msgs.c" />
<ClCompile Include="..\..\..\..\src\tool_operate.c" />
diff --git a/projects/Windows/VC11/src/curl.vcxproj b/projects/Windows/VC11/src/curl.vcxproj
index 832cc9987..456abdded 100644
--- a/projects/Windows/VC11/src/curl.vcxproj
+++ b/projects/Windows/VC11/src/curl.vcxproj
@@ -2713,6 +2713,7 @@
<ClCompile Include="..\..\..\..\src\tool_homedir.c" />
<ClCompile Include="..\..\..\..\src\tool_hugehelp.c" />
<ClCompile Include="..\..\..\..\src\tool_libinfo.c" />
+ <ClCompile Include="..\..\..\..\src\tool_listhelp.c" />
<ClCompile Include="..\..\..\..\src\tool_main.c" />
<ClCompile Include="..\..\..\..\src\tool_msgs.c" />
<ClCompile Include="..\..\..\..\src\tool_operate.c" />
diff --git a/projects/Windows/VC12/src/curl.vcxproj b/projects/Windows/VC12/src/curl.vcxproj
index 7f55bf2b6..e0455a481 100644
--- a/projects/Windows/VC12/src/curl.vcxproj
+++ b/projects/Windows/VC12/src/curl.vcxproj
@@ -2713,6 +2713,7 @@
<ClCompile Include="..\..\..\..\src\tool_homedir.c" />
<ClCompile Include="..\..\..\..\src\tool_hugehelp.c" />
<ClCompile Include="..\..\..\..\src\tool_libinfo.c" />
+ <ClCompile Include="..\..\..\..\src\tool_listhelp.c" />
<ClCompile Include="..\..\..\..\src\tool_main.c" />
<ClCompile Include="..\..\..\..\src\tool_msgs.c" />
<ClCompile Include="..\..\..\..\src\tool_operate.c" />
diff --git a/projects/Windows/VC14/src/curl.vcxproj b/projects/Windows/VC14/src/curl.vcxproj
index 33c74573c..ee17dee94 100644
--- a/projects/Windows/VC14/src/curl.vcxproj
+++ b/projects/Windows/VC14/src/curl.vcxproj
@@ -2713,6 +2713,7 @@
<ClCompile Include="..\..\..\..\src\tool_homedir.c" />
<ClCompile Include="..\..\..\..\src\tool_hugehelp.c" />
<ClCompile Include="..\..\..\..\src\tool_libinfo.c" />
+ <ClCompile Include="..\..\..\..\src\tool_listhelp.c" />
<ClCompile Include="..\..\..\..\src\tool_main.c" />
<ClCompile Include="..\..\..\..\src\tool_msgs.c" />
<ClCompile Include="..\..\..\..\src\tool_operate.c" />
diff --git a/projects/Windows/VC15/src/curl.vcxproj b/projects/Windows/VC15/src/curl.vcxproj
index 220c71a63..28d3b0fbc 100644
--- a/projects/Windows/VC15/src/curl.vcxproj
+++ b/projects/Windows/VC15/src/curl.vcxproj
@@ -2685,6 +2685,7 @@
<ClCompile Include="..\..\..\..\src\tool_homedir.c" />
<ClCompile Include="..\..\..\..\src\tool_hugehelp.c" />
<ClCompile Include="..\..\..\..\src\tool_libinfo.c" />
+ <ClCompile Include="..\..\..\..\src\tool_listhelp.c" />
<ClCompile Include="..\..\..\..\src\tool_main.c" />
<ClCompile Include="..\..\..\..\src\tool_msgs.c" />
<ClCompile Include="..\..\..\..\src\tool_operate.c" />
diff --git a/projects/Windows/VC6/src/curl.dsp b/projects/Windows/VC6/src/curl.dsp
index 0793834b6..b4c3002ca 100644
--- a/projects/Windows/VC6/src/curl.dsp
+++ b/projects/Windows/VC6/src/curl.dsp
@@ -799,6 +799,10 @@ SOURCE=..\..\..\..\src\tool_libinfo.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\src\tool_listhelp.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\src\tool_main.c
# End Source File
# Begin Source File
diff --git a/projects/Windows/VC7.1/src/curl.vcproj b/projects/Windows/VC7.1/src/curl.vcproj
index ecb83dc7b..67adf588d 100644
--- a/projects/Windows/VC7.1/src/curl.vcproj
+++ b/projects/Windows/VC7.1/src/curl.vcproj
@@ -1452,6 +1452,9 @@
RelativePath="..\..\..\..\src\tool_libinfo.c">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_listhelp.c">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_main.c">
</File>
<File
diff --git a/projects/Windows/VC7/src/curl.vcproj b/projects/Windows/VC7/src/curl.vcproj
index 0390ef84b..5d002f41c 100644
--- a/projects/Windows/VC7/src/curl.vcproj
+++ b/projects/Windows/VC7/src/curl.vcproj
@@ -1306,6 +1306,9 @@
RelativePath="..\..\..\..\src\tool_libinfo.c">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_listhelp.c">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_main.c">
</File>
<File
diff --git a/projects/Windows/VC8/src/curl.vcproj b/projects/Windows/VC8/src/curl.vcproj
index 9ae8b22ca..477179b41 100644
--- a/projects/Windows/VC8/src/curl.vcproj
+++ b/projects/Windows/VC8/src/curl.vcproj
@@ -4201,6 +4201,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_listhelp.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_main.c"
>
</File>
diff --git a/projects/Windows/VC9/src/curl.vcproj b/projects/Windows/VC9/src/curl.vcproj
index 294023853..fe388fdcc 100644
--- a/projects/Windows/VC9/src/curl.vcproj
+++ b/projects/Windows/VC9/src/curl.vcproj
@@ -4058,6 +4058,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_listhelp.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_main.c"
>
</File>
diff --git a/projects/build-wolfssl.bat b/projects/build-wolfssl.bat
index 8ee61e67d..fcd9ba1a1 100644
--- a/projects/build-wolfssl.bat
+++ b/projects/build-wolfssl.bat
@@ -1,392 +1,392 @@
-@echo off
-rem ***************************************************************************
-rem * _ _ ____ _
-rem * Project ___| | | | _ \| |
-rem * / __| | | | |_) | |
-rem * | (__| |_| | _ <| |___
-rem * \___|\___/|_| \_\_____|
-rem *
-rem * Copyright (C) 2012 - 2020, Steve Holme, <steve_holme@hotmail.com>.
-rem * Copyright (C) 2015, Jay Satiro, <raysatiro@yahoo.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.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
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem ***************************************************************************
-
-:begin
- rem Check we are running on a Windows NT derived OS
- if not "%OS%" == "Windows_NT" goto nodos
-
- rem Set our variables
- setlocal
- set SUCCESSFUL_BUILDS=
- set VC_VER=
- set BUILD_PLATFORM=
-
- rem Ensure we have the required arguments
- if /i "%~1" == "" goto syntax
-
- rem Calculate the program files directory
- if defined PROGRAMFILES (
- set "PF=%PROGRAMFILES%"
- set OS_PLATFORM=x86
- )
- if defined PROGRAMFILES(x86) (
- set "PF=%PROGRAMFILES(x86)%"
- set OS_PLATFORM=x64
- )
-
-:parseArgs
- if "%~1" == "" goto prerequisites
-
- if /i "%~1" == "vc10" (
- set VC_VER=10.0
- set VC_DESC=VC10
- set VC_TOOLSET=v100
- set "VC_PATH=Microsoft Visual Studio 10.0\VC"
- ) else if /i "%~1" == "vc11" (
- set VC_VER=11.0
- set VC_DESC=VC11
- set VC_TOOLSET=v110
- set "VC_PATH=Microsoft Visual Studio 11.0\VC"
- ) else if /i "%~1" == "vc12" (
- set VC_VER=12.0
- set VC_DESC=VC12
- set VC_TOOLSET=v120
- set "VC_PATH=Microsoft Visual Studio 12.0\VC"
- ) else if /i "%~1" == "vc14" (
- set VC_VER=14.0
- set VC_DESC=VC14
- set VC_TOOLSET=v140
- set "VC_PATH=Microsoft Visual Studio 14.0\VC"
- ) else if /i "%~1" == "vc14.1" (
- set VC_VER=14.1
- set VC_DESC=VC14.1
- set VC_TOOLSET=v141
-
- rem Determine the VC14.1 path based on the installed edition in descending
- rem order (Enterprise, then Professional and finally Community)
- if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
- set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
- ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
- set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
- ) else (
- set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
- )
- ) else if /i "%~1" == "vc14.2" (
- set VC_VER=14.2
- set VC_DESC=VC14.2
- set VC_TOOLSET=v142
-
- rem Determine the VC14.2 path based on the installed edition in descending
- rem order (Enterprise, then Professional and finally Community)
- if exist "%PF%\Microsoft Visual Studio\2019\Enterprise\VC" (
- set "VC_PATH=Microsoft Visual Studio\2019\Enterprise\VC"
- ) else if exist "%PF%\Microsoft Visual Studio\2019\Professional\VC" (
- set "VC_PATH=Microsoft Visual Studio\2019\Professional\VC"
- ) else (
- set "VC_PATH=Microsoft Visual Studio\2019\Community\VC"
- )
- ) else if /i "%~1" == "x86" (
- set BUILD_PLATFORM=x86
- ) else if /i "%~1" == "x64" (
- set BUILD_PLATFORM=x64
- ) else if /i "%~1" == "debug" (
- set BUILD_CONFIG=debug
- ) else if /i "%~1" == "release" (
- set BUILD_CONFIG=release
- ) else if /i "%~1" == "-?" (
- goto syntax
- ) else if /i "%~1" == "-h" (
- goto syntax
- ) else if /i "%~1" == "-help" (
- goto syntax
- ) else (
- if not defined START_DIR (
- set START_DIR=%~1
- ) else (
- goto unknown
- )
- )
-
- shift & goto parseArgs
-
-:prerequisites
- rem Compiler is a required parameter
- if not defined VC_VER goto syntax
-
- rem Default the start directory if one isn't specified
- if not defined START_DIR set START_DIR=..\..\wolfssl
-
- rem Check we have a program files directory
- if not defined PF goto nopf
-
- rem Check we have Visual Studio installed
- if not exist "%PF%\%VC_PATH%" goto novc
-
- rem Check the start directory exists
- if not exist "%START_DIR%" goto nowolfssl
-
-:configure
- if "%BUILD_PLATFORM%" == "" set BUILD_PLATFORM=%OS_PLATFORM%
-
- if "%BUILD_PLATFORM%" == "x86" (
- set VCVARS_PLATFORM=x86
- ) else if "%BUILD_PLATFORM%" == "x64" (
- if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
- if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64
- if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64
- if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64
- if "%VC_VER%" == "14.1" set VCVARS_PLATFORM=amd64
- if "%VC_VER%" == "14.2" set VCVARS_PLATFORM=amd64
- )
-
-:start
- echo.
- set SAVED_PATH=%CD%
-
- if "%VC_VER%" == "14.1" (
- call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
- ) else if "%VC_VER%" == "14.2" (
- call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
- ) else (
- call "%PF%\%VC_PATH%\vcvarsall" %VCVARS_PLATFORM%
- )
-
- echo.
- cd /d %SAVED_PATH%
- if defined START_DIR cd /d %START_DIR%
- goto %BUILD_PLATFORM%
-
-:x64
- rem Calculate our output directory
- set OUTDIR=build\Win64\%VC_DESC%
- if not exist %OUTDIR% md %OUTDIR%
-
- if "%BUILD_CONFIG%" == "release" goto x64release
-
-:x64debug
- rem Perform 64-bit Debug Build
-
- call :build Debug x64
- if errorlevel 1 goto error
-
- call :build "DLL Debug" x64
- if errorlevel 1 goto error
-
- if "%BUILD_CONFIG%" == "debug" goto success
-
-:x64release
- rem Perform 64-bit Release Build
-
- call :build Release x64
- if errorlevel 1 goto error
-
- call :build "DLL Release" x64
- if errorlevel 1 goto error
-
- goto success
-
-:x86
- rem Calculate our output directory
- set OUTDIR=build\Win32\%VC_DESC%
- if not exist %OUTDIR% md %OUTDIR%
-
- if "%BUILD_CONFIG%" == "release" goto x86release
-
-:x86debug
- rem Perform 32-bit Debug Build
-
- call :build Debug Win32
- if errorlevel 1 goto error
-
- call :build "DLL Debug" Win32
- if errorlevel 1 goto error
-
- if "%BUILD_CONFIG%" == "debug" goto success
-
-:x86release
- rem Perform 32-bit Release Build
-
- call :build Release Win32
- if errorlevel 1 goto error
-
- call :build "DLL Release" Win32
- if errorlevel 1 goto error
-
- goto success
-
-:build
- rem This function builds wolfSSL.
- rem Usage: CALL :build <configuration> <platform>
- rem The current directory must be the wolfSSL directory.
- rem VS Configuration: Debug, Release, DLL Debug or DLL Release.
- rem VS Platform: Win32 or x64.
- rem Returns: 1 on fail, 0 on success.
- rem An informational message should be shown before any return.
- setlocal
- set MSBUILD_CONFIG=%~1
- set MSBUILD_PLATFORM=%~2
-
- if not exist wolfssl64.sln (
- echo.
- echo Error: build: wolfssl64.sln not found in "%CD%"
- exit /b 1
- )
-
- rem OUTDIR isn't a full path, only relative. MSBUILD_OUTDIR must be full and
- rem not have trailing backslashes, which are handled later.
- if "%MSBUILD_CONFIG%" == "Debug" (
- set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Debug"
- ) else if "%MSBUILD_CONFIG%" == "Release" (
- set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Release"
- ) else if "%MSBUILD_CONFIG%" == "DLL Debug" (
- set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Debug"
- ) else if "%MSBUILD_CONFIG%" == "DLL Release" (
- set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Release"
- ) else (
- echo.
- echo Error: build: Configuration not recognized.
- exit /b 1
- )
-
- if not "%MSBUILD_PLATFORM%" == "Win32" if not "%MSBUILD_PLATFORM%" == "x64" (
- echo.
- echo Error: build: Platform not recognized.
- exit /b 1
- )
-
- copy /v /y "%~dp0\wolfssl_options.h" .\cyassl\options.h
- if %ERRORLEVEL% neq 0 (
- echo.
- echo Error: build: Couldn't replace .\cyassl\options.h
- exit /b 1
- )
-
- copy /v /y "%~dp0\wolfssl_options.h" .\wolfssl\options.h
- if %ERRORLEVEL% neq 0 (
- echo.
- echo Error: build: Couldn't replace .\wolfssl\options.h
- exit /b 1
- )
-
- rem Extra trailing \ in Dirs because otherwise it thinks a quote is escaped
- msbuild wolfssl64.sln ^
- -p:CustomAfterMicrosoftCommonTargets="%~dp0\wolfssl_override.props" ^
- -p:Configuration="%MSBUILD_CONFIG%" ^
- -p:Platform="%MSBUILD_PLATFORM%" ^
- -p:PlatformToolset="%VC_TOOLSET%" ^
- -p:OutDir="%MSBUILD_OUTDIR%\\" ^
- -p:IntDir="%MSBUILD_OUTDIR%\obj\\"
-
- if %ERRORLEVEL% neq 0 (
- echo.
- echo Error: Failed building wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
- exit /b 1
- )
-
- rem For tests to run properly the wolfSSL directory must remain the current.
- set "PATH=%MSBUILD_OUTDIR%;%PATH%"
- "%MSBUILD_OUTDIR%\testsuite.exe"
-
- if %ERRORLEVEL% neq 0 (
- echo.
- echo Error: Failed testing wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
- exit /b 1
- )
-
- echo.
- echo Success: Built and tested wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
- echo.
- echo.
- rem This is necessary to export our local variables back to the caller.
- endlocal & set SUCCESSFUL_BUILDS="%MSBUILD_CONFIG%|%MSBUILD_PLATFORM%" ^
- %SUCCESSFUL_BUILDS%
- exit /b 0
-
-:syntax
- rem Display the help
- echo.
- echo Usage: build-wolfssl ^<compiler^> [platform] [configuration] [directory]
- echo.
- echo Compiler:
- echo.
- echo vc10 - Use Visual Studio 2010
- echo vc11 - Use Visual Studio 2012
- echo vc12 - Use Visual Studio 2013
- echo vc14 - Use Visual Studio 2015
- echo vc14.1 - Use Visual Studio 2017
- echo vc14.2 - Use Visual Studio 2019
- echo.
- echo Platform:
- echo.
- echo x86 - Perform a 32-bit build
- echo x64 - Perform a 64-bit build
- echo.
- echo Configuration:
- echo.
- echo debug - Perform a debug build
- echo release - Perform a release build
- echo.
- echo Other:
- echo.
- echo directory - Specifies the wolfSSL source directory
- goto error
-
-:unknown
- echo.
- echo Error: Unknown argument '%1'
- goto error
-
-:nodos
- echo.
- echo Error: Only a Windows NT based Operating System is supported
- goto error
-
-:nopf
- echo.
- echo Error: Cannot obtain the directory for Program Files
- goto error
-
-:novc
- echo.
- echo Error: %VC_DESC% is not installed
- goto error
-
-:nox64
- echo.
- echo Error: %VC_DESC% does not support 64-bit builds
- goto error
-
-:nowolfssl
- echo.
- echo Error: Cannot locate wolfSSL source directory, expected "%START_DIR%"
- goto error
-
-:error
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
-
-:success
- if defined SUCCESSFUL_BUILDS (
- echo.
- echo.
- echo Build complete.
- echo.
- echo The following configurations were built and tested successfully:
- echo.
- echo %SUCCESSFUL_BUILDS%
- echo.
- )
- cd /d %SAVED_PATH%
- endlocal
- exit /B 0
+@echo off
+rem ***************************************************************************
+rem * _ _ ____ _
+rem * Project ___| | | | _ \| |
+rem * / __| | | | |_) | |
+rem * | (__| |_| | _ <| |___
+rem * \___|\___/|_| \_\_____|
+rem *
+rem * Copyright (C) 2012 - 2020, Steve Holme, <steve_holme@hotmail.com>.
+rem * Copyright (C) 2015, Jay Satiro, <raysatiro@yahoo.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.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
+rem * furnished to do so, under the terms of the COPYING file.
+rem *
+rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+rem * KIND, either express or implied.
+rem *
+rem ***************************************************************************
+
+:begin
+ rem Check we are running on a Windows NT derived OS
+ if not "%OS%" == "Windows_NT" goto nodos
+
+ rem Set our variables
+ setlocal
+ set SUCCESSFUL_BUILDS=
+ set VC_VER=
+ set BUILD_PLATFORM=
+
+ rem Ensure we have the required arguments
+ if /i "%~1" == "" goto syntax
+
+ rem Calculate the program files directory
+ if defined PROGRAMFILES (
+ set "PF=%PROGRAMFILES%"
+ set OS_PLATFORM=x86
+ )
+ if defined PROGRAMFILES(x86) (
+ set "PF=%PROGRAMFILES(x86)%"
+ set OS_PLATFORM=x64
+ )
+
+:parseArgs
+ if "%~1" == "" goto prerequisites
+
+ if /i "%~1" == "vc10" (
+ set VC_VER=10.0
+ set VC_DESC=VC10
+ set VC_TOOLSET=v100
+ set "VC_PATH=Microsoft Visual Studio 10.0\VC"
+ ) else if /i "%~1" == "vc11" (
+ set VC_VER=11.0
+ set VC_DESC=VC11
+ set VC_TOOLSET=v110
+ set "VC_PATH=Microsoft Visual Studio 11.0\VC"
+ ) else if /i "%~1" == "vc12" (
+ set VC_VER=12.0
+ set VC_DESC=VC12
+ set VC_TOOLSET=v120
+ set "VC_PATH=Microsoft Visual Studio 12.0\VC"
+ ) else if /i "%~1" == "vc14" (
+ set VC_VER=14.0
+ set VC_DESC=VC14
+ set VC_TOOLSET=v140
+ set "VC_PATH=Microsoft Visual Studio 14.0\VC"
+ ) else if /i "%~1" == "vc14.1" (
+ set VC_VER=14.1
+ set VC_DESC=VC14.1
+ set VC_TOOLSET=v141
+
+ rem Determine the VC14.1 path based on the installed edition in descending
+ rem order (Enterprise, then Professional and finally Community)
+ if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
+ ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
+ ) else (
+ set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+ )
+ ) else if /i "%~1" == "vc14.2" (
+ set VC_VER=14.2
+ set VC_DESC=VC14.2
+ set VC_TOOLSET=v142
+
+ rem Determine the VC14.2 path based on the installed edition in descending
+ rem order (Enterprise, then Professional and finally Community)
+ if exist "%PF%\Microsoft Visual Studio\2019\Enterprise\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2019\Enterprise\VC"
+ ) else if exist "%PF%\Microsoft Visual Studio\2019\Professional\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2019\Professional\VC"
+ ) else (
+ set "VC_PATH=Microsoft Visual Studio\2019\Community\VC"
+ )
+ ) else if /i "%~1" == "x86" (
+ set BUILD_PLATFORM=x86
+ ) else if /i "%~1" == "x64" (
+ set BUILD_PLATFORM=x64
+ ) else if /i "%~1" == "debug" (
+ set BUILD_CONFIG=debug
+ ) else if /i "%~1" == "release" (
+ set BUILD_CONFIG=release
+ ) else if /i "%~1" == "-?" (
+ goto syntax
+ ) else if /i "%~1" == "-h" (
+ goto syntax
+ ) else if /i "%~1" == "-help" (
+ goto syntax
+ ) else (
+ if not defined START_DIR (
+ set START_DIR=%~1
+ ) else (
+ goto unknown
+ )
+ )
+
+ shift & goto parseArgs
+
+:prerequisites
+ rem Compiler is a required parameter
+ if not defined VC_VER goto syntax
+
+ rem Default the start directory if one isn't specified
+ if not defined START_DIR set START_DIR=..\..\wolfssl
+
+ rem Check we have a program files directory
+ if not defined PF goto nopf
+
+ rem Check we have Visual Studio installed
+ if not exist "%PF%\%VC_PATH%" goto novc
+
+ rem Check the start directory exists
+ if not exist "%START_DIR%" goto nowolfssl
+
+:configure
+ if "%BUILD_PLATFORM%" == "" set BUILD_PLATFORM=%OS_PLATFORM%
+
+ if "%BUILD_PLATFORM%" == "x86" (
+ set VCVARS_PLATFORM=x86
+ ) else if "%BUILD_PLATFORM%" == "x64" (
+ if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
+ if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64
+ if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64
+ if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64
+ if "%VC_VER%" == "14.1" set VCVARS_PLATFORM=amd64
+ if "%VC_VER%" == "14.2" set VCVARS_PLATFORM=amd64
+ )
+
+:start
+ echo.
+ set SAVED_PATH=%CD%
+
+ if "%VC_VER%" == "14.1" (
+ call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
+ ) else if "%VC_VER%" == "14.2" (
+ call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
+ ) else (
+ call "%PF%\%VC_PATH%\vcvarsall" %VCVARS_PLATFORM%
+ )
+
+ echo.
+ cd /d %SAVED_PATH%
+ if defined START_DIR cd /d %START_DIR%
+ goto %BUILD_PLATFORM%
+
+:x64
+ rem Calculate our output directory
+ set OUTDIR=build\Win64\%VC_DESC%
+ if not exist %OUTDIR% md %OUTDIR%
+
+ if "%BUILD_CONFIG%" == "release" goto x64release
+
+:x64debug
+ rem Perform 64-bit Debug Build
+
+ call :build Debug x64
+ if errorlevel 1 goto error
+
+ call :build "DLL Debug" x64
+ if errorlevel 1 goto error
+
+ if "%BUILD_CONFIG%" == "debug" goto success
+
+:x64release
+ rem Perform 64-bit Release Build
+
+ call :build Release x64
+ if errorlevel 1 goto error
+
+ call :build "DLL Release" x64
+ if errorlevel 1 goto error
+
+ goto success
+
+:x86
+ rem Calculate our output directory
+ set OUTDIR=build\Win32\%VC_DESC%
+ if not exist %OUTDIR% md %OUTDIR%
+
+ if "%BUILD_CONFIG%" == "release" goto x86release
+
+:x86debug
+ rem Perform 32-bit Debug Build
+
+ call :build Debug Win32
+ if errorlevel 1 goto error
+
+ call :build "DLL Debug" Win32
+ if errorlevel 1 goto error
+
+ if "%BUILD_CONFIG%" == "debug" goto success
+
+:x86release
+ rem Perform 32-bit Release Build
+
+ call :build Release Win32
+ if errorlevel 1 goto error
+
+ call :build "DLL Release" Win32
+ if errorlevel 1 goto error
+
+ goto success
+
+:build
+ rem This function builds wolfSSL.
+ rem Usage: CALL :build <configuration> <platform>
+ rem The current directory must be the wolfSSL directory.
+ rem VS Configuration: Debug, Release, DLL Debug or DLL Release.
+ rem VS Platform: Win32 or x64.
+ rem Returns: 1 on fail, 0 on success.
+ rem An informational message should be shown before any return.
+ setlocal
+ set MSBUILD_CONFIG=%~1
+ set MSBUILD_PLATFORM=%~2
+
+ if not exist wolfssl64.sln (
+ echo.
+ echo Error: build: wolfssl64.sln not found in "%CD%"
+ exit /b 1
+ )
+
+ rem OUTDIR isn't a full path, only relative. MSBUILD_OUTDIR must be full and
+ rem not have trailing backslashes, which are handled later.
+ if "%MSBUILD_CONFIG%" == "Debug" (
+ set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Debug"
+ ) else if "%MSBUILD_CONFIG%" == "Release" (
+ set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Release"
+ ) else if "%MSBUILD_CONFIG%" == "DLL Debug" (
+ set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Debug"
+ ) else if "%MSBUILD_CONFIG%" == "DLL Release" (
+ set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Release"
+ ) else (
+ echo.
+ echo Error: build: Configuration not recognized.
+ exit /b 1
+ )
+
+ if not "%MSBUILD_PLATFORM%" == "Win32" if not "%MSBUILD_PLATFORM%" == "x64" (
+ echo.
+ echo Error: build: Platform not recognized.
+ exit /b 1
+ )
+
+ copy /v /y "%~dp0\wolfssl_options.h" .\cyassl\options.h
+ if %ERRORLEVEL% neq 0 (
+ echo.
+ echo Error: build: Couldn't replace .\cyassl\options.h
+ exit /b 1
+ )
+
+ copy /v /y "%~dp0\wolfssl_options.h" .\wolfssl\options.h
+ if %ERRORLEVEL% neq 0 (
+ echo.
+ echo Error: build: Couldn't replace .\wolfssl\options.h
+ exit /b 1
+ )
+
+ rem Extra trailing \ in Dirs because otherwise it thinks a quote is escaped
+ msbuild wolfssl64.sln ^
+ -p:CustomAfterMicrosoftCommonTargets="%~dp0\wolfssl_override.props" ^
+ -p:Configuration="%MSBUILD_CONFIG%" ^
+ -p:Platform="%MSBUILD_PLATFORM%" ^
+ -p:PlatformToolset="%VC_TOOLSET%" ^
+ -p:OutDir="%MSBUILD_OUTDIR%\\" ^
+ -p:IntDir="%MSBUILD_OUTDIR%\obj\\"
+
+ if %ERRORLEVEL% neq 0 (
+ echo.
+ echo Error: Failed building wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+ exit /b 1
+ )
+
+ rem For tests to run properly the wolfSSL directory must remain the current.
+ set "PATH=%MSBUILD_OUTDIR%;%PATH%"
+ "%MSBUILD_OUTDIR%\testsuite.exe"
+
+ if %ERRORLEVEL% neq 0 (
+ echo.
+ echo Error: Failed testing wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+ exit /b 1
+ )
+
+ echo.
+ echo Success: Built and tested wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+ echo.
+ echo.
+ rem This is necessary to export our local variables back to the caller.
+ endlocal & set SUCCESSFUL_BUILDS="%MSBUILD_CONFIG%|%MSBUILD_PLATFORM%" ^
+ %SUCCESSFUL_BUILDS%
+ exit /b 0
+
+:syntax
+ rem Display the help
+ echo.
+ echo Usage: build-wolfssl ^<compiler^> [platform] [configuration] [directory]
+ echo.
+ echo Compiler:
+ echo.
+ echo vc10 - Use Visual Studio 2010
+ echo vc11 - Use Visual Studio 2012
+ echo vc12 - Use Visual Studio 2013
+ echo vc14 - Use Visual Studio 2015
+ echo vc14.1 - Use Visual Studio 2017
+ echo vc14.2 - Use Visual Studio 2019
+ echo.
+ echo Platform:
+ echo.
+ echo x86 - Perform a 32-bit build
+ echo x64 - Perform a 64-bit build
+ echo.
+ echo Configuration:
+ echo.
+ echo debug - Perform a debug build
+ echo release - Perform a release build
+ echo.
+ echo Other:
+ echo.
+ echo directory - Specifies the wolfSSL source directory
+ goto error
+
+:unknown
+ echo.
+ echo Error: Unknown argument '%1'
+ goto error
+
+:nodos
+ echo.
+ echo Error: Only a Windows NT based Operating System is supported
+ goto error
+
+:nopf
+ echo.
+ echo Error: Cannot obtain the directory for Program Files
+ goto error
+
+:novc
+ echo.
+ echo Error: %VC_DESC% is not installed
+ goto error
+
+:nox64
+ echo.
+ echo Error: %VC_DESC% does not support 64-bit builds
+ goto error
+
+:nowolfssl
+ echo.
+ echo Error: Cannot locate wolfSSL source directory, expected "%START_DIR%"
+ goto error
+
+:error
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+
+:success
+ if defined SUCCESSFUL_BUILDS (
+ echo.
+ echo.
+ echo Build complete.
+ echo.
+ echo The following configurations were built and tested successfully:
+ echo.
+ echo %SUCCESSFUL_BUILDS%
+ echo.
+ )
+ cd /d %SAVED_PATH%
+ endlocal
+ exit /B 0
diff --git a/projects/checksrc.bat b/projects/checksrc.bat
index 9b4dc44d3..3f04f0cd6 100644
--- a/projects/checksrc.bat
+++ b/projects/checksrc.bat
@@ -1,223 +1,223 @@
-@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.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
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem ***************************************************************************
-
-:begin
- rem Check we are running on a Windows NT derived OS
- if not "%OS%" == "Windows_NT" goto nodos
-
- 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" (
- goto syntax
- ) else if /i "%~1" == "-help" (
- goto syntax
- ) else if /i "%~1" == "lib" (
- set CHECK_LIB=TRUE
- set CHECK_SRC=FALSE
- set CHECK_TESTS=FALSE
- set CHECK_EXAMPLES=FALSE
- ) else if /i "%~1" == "src" (
- set CHECK_LIB=FALSE
- set CHECK_SRC=TRUE
- set CHECK_TESTS=FALSE
- set CHECK_EXAMPLES=FALSE
- ) else if /i "%~1" == "tests" (
- set CHECK_LIB=FALSE
- set CHECK_SRC=FALSE
- set CHECK_TESTS=TRUE
- set CHECK_EXAMPLES=FALSE
- ) else if /i "%~1" == "examples" (
- set CHECK_LIB=FALSE
- set CHECK_SRC=FALSE
- set CHECK_TESTS=FALSE
- set CHECK_EXAMPLES=TRUE
- ) else (
- if not defined SRC_DIR (
- set SRC_DIR=%~1%
- ) else (
- goto unknown
- )
- )
-
- shift & goto parseArgs
-
-:prerequisites
- rem Check we have Perl in our path
- perl --version <NUL 1>NUL 2>&1
- if errorlevel 1 (
- rem It isn't so check we have it installed and set the path if it is
- if exist "%SystemDrive%\Perl" (
- set "PATH=%SystemDrive%\Perl\bin;%PATH%"
- ) else (
- if exist "%SystemDrive%\Perl64" (
- set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
- ) 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"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" "%%i"
- )
- )
-
- if "%CHECK_LIB%" == "TRUE" (
- rem Check the lib directory
- if exist %SRC_DIR%\lib (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" -Wcurl_config.h.cmake -Wcurl_config.h.in -Wcurl_config.h "%%i"
- )
-
- rem Check the lib\vauth directory
- if exist %SRC_DIR%\lib\vauth (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
- )
-
- rem Check the lib\vquic directory
- if exist %SRC_DIR%\lib\vquic (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
- )
-
- rem Check the lib\vssh directory
- if exist %SRC_DIR%\lib\vssh (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
- )
-
- rem Check the lib\vtls directory
- if exist %SRC_DIR%\lib\vtls (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
- )
- )
-
- if "%CHECK_TESTS%" == "TRUE" (
- rem Check the tests\libtest directory
- if exist %SRC_DIR%\tests\libtest (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
- )
-
- rem Check the tests\unit directory
- if exist %SRC_DIR%\tests\unit (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
- )
-
- rem Check the tests\server directory
- if exist %SRC_DIR%\tests\server (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
- for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
- )
- )
-
- if "%CHECK_EXAMPLES%" == "TRUE" (
- rem Check the docs\examples directory
- if exist %SRC_DIR%\docs\examples (
- for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\docs\examples" -ASNPRINTF "%%i"
- )
- )
-
- goto success
-
-:syntax
- rem Display the help
- echo.
- echo Usage: checksrc [what] [directory]
- echo.
- echo What to scan:
- echo.
- echo lib - Scan the libcurl source
- echo src - Scan the command-line tool source
- echo tests - Scan the library tests and unit tests
- echo examples - Scan the examples
- echo.
- echo directory - Specifies the curl source directory
- goto success
-
-:unknown
- echo.
- echo Error: Unknown argument '%1'
- goto error
-
-:nodos
- echo.
- echo Error: Only a Windows NT based Operating System is supported
- goto error
-
-:noperl
- echo.
- echo Error: Perl is not installed
- goto error
-
-:nosrc
- echo.
- echo Error: "%SRC_DIR%" does not exist
- goto error
-
-:error
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
-
-:success
- endlocal
- exit /B 0
+@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.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
+rem * furnished to do so, under the terms of the COPYING file.
+rem *
+rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+rem * KIND, either express or implied.
+rem *
+rem ***************************************************************************
+
+:begin
+ rem Check we are running on a Windows NT derived OS
+ if not "%OS%" == "Windows_NT" goto nodos
+
+ 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" (
+ goto syntax
+ ) else if /i "%~1" == "-help" (
+ goto syntax
+ ) else if /i "%~1" == "lib" (
+ set CHECK_LIB=TRUE
+ set CHECK_SRC=FALSE
+ set CHECK_TESTS=FALSE
+ set CHECK_EXAMPLES=FALSE
+ ) else if /i "%~1" == "src" (
+ set CHECK_LIB=FALSE
+ set CHECK_SRC=TRUE
+ set CHECK_TESTS=FALSE
+ set CHECK_EXAMPLES=FALSE
+ ) else if /i "%~1" == "tests" (
+ set CHECK_LIB=FALSE
+ set CHECK_SRC=FALSE
+ set CHECK_TESTS=TRUE
+ set CHECK_EXAMPLES=FALSE
+ ) else if /i "%~1" == "examples" (
+ set CHECK_LIB=FALSE
+ set CHECK_SRC=FALSE
+ set CHECK_TESTS=FALSE
+ set CHECK_EXAMPLES=TRUE
+ ) else (
+ if not defined SRC_DIR (
+ set SRC_DIR=%~1%
+ ) else (
+ goto unknown
+ )
+ )
+
+ shift & goto parseArgs
+
+:prerequisites
+ rem Check we have Perl in our path
+ perl --version <NUL 1>NUL 2>&1
+ if errorlevel 1 (
+ rem It isn't so check we have it installed and set the path if it is
+ if exist "%SystemDrive%\Perl" (
+ set "PATH=%SystemDrive%\Perl\bin;%PATH%"
+ ) else (
+ if exist "%SystemDrive%\Perl64" (
+ set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
+ ) 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"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" "%%i"
+ )
+ )
+
+ if "%CHECK_LIB%" == "TRUE" (
+ rem Check the lib directory
+ if exist %SRC_DIR%\lib (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" -Wcurl_config.h.cmake -Wcurl_config.h.in -Wcurl_config.h "%%i"
+ )
+
+ rem Check the lib\vauth directory
+ if exist %SRC_DIR%\lib\vauth (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
+ )
+
+ rem Check the lib\vquic directory
+ if exist %SRC_DIR%\lib\vquic (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
+ )
+
+ rem Check the lib\vssh directory
+ if exist %SRC_DIR%\lib\vssh (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
+ )
+
+ rem Check the lib\vtls directory
+ if exist %SRC_DIR%\lib\vtls (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
+ )
+ )
+
+ if "%CHECK_TESTS%" == "TRUE" (
+ rem Check the tests\libtest directory
+ if exist %SRC_DIR%\tests\libtest (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
+ )
+
+ rem Check the tests\unit directory
+ if exist %SRC_DIR%\tests\unit (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
+ )
+
+ rem Check the tests\server directory
+ if exist %SRC_DIR%\tests\server (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
+ )
+ )
+
+ if "%CHECK_EXAMPLES%" == "TRUE" (
+ rem Check the docs\examples directory
+ if exist %SRC_DIR%\docs\examples (
+ for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\docs\examples" -ASNPRINTF "%%i"
+ )
+ )
+
+ goto success
+
+:syntax
+ rem Display the help
+ echo.
+ echo Usage: checksrc [what] [directory]
+ echo.
+ echo What to scan:
+ echo.
+ echo lib - Scan the libcurl source
+ echo src - Scan the command-line tool source
+ echo tests - Scan the library tests and unit tests
+ echo examples - Scan the examples
+ echo.
+ echo directory - Specifies the curl source directory
+ goto success
+
+:unknown
+ echo.
+ echo Error: Unknown argument '%1'
+ goto error
+
+:nodos
+ echo.
+ echo Error: Only a Windows NT based Operating System is supported
+ goto error
+
+:noperl
+ echo.
+ echo Error: Perl is not installed
+ goto error
+
+:nosrc
+ echo.
+ echo Error: "%SRC_DIR%" does not exist
+ goto error
+
+:error
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+
+:success
+ endlocal
+ exit /B 0
diff --git a/projects/generate.bat b/projects/generate.bat
index 5ef562fae..840094e32 100644
--- a/projects/generate.bat
+++ b/projects/generate.bat
@@ -1,478 +1,478 @@
-@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.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
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem ***************************************************************************
-
-:begin
- rem Check we are running on a Windows NT derived OS
- if not "%OS%" == "Windows_NT" goto nodos
-
- rem Set our variables
- setlocal ENABLEEXTENSIONS
- set VERSION=ALL
- set MODE=GENERATE
-
- rem Check we are not running on a network drive
- if "%~d0."=="\\." goto nonetdrv
-
- rem Switch to this batch file's directory
- cd /d "%~0\.." 1>NUL 2>&1
-
- rem Check we are running from a curl git repository
- if not exist ..\GIT-INFO goto norepo
-
-:parseArgs
- if "%~1" == "" goto start
-
- if /i "%~1" == "pre" (
- set VERSION=PRE
- ) else if /i "%~1" == "vc6" (
- set VERSION=VC6
- ) else if /i "%~1" == "vc7" (
- set VERSION=VC7
- ) else if /i "%~1" == "vc7.1" (
- set VERSION=VC7.1
- ) else if /i "%~1" == "vc8" (
- set VERSION=VC8
- ) else if /i "%~1" == "vc9" (
- set VERSION=VC9
- ) else if /i "%~1" == "vc10" (
- set VERSION=VC10
- ) else if /i "%~1" == "vc11" (
- set VERSION=VC11
- ) else if /i "%~1" == "vc12" (
- set VERSION=VC12
- ) else if /i "%~1" == "vc14" (
- set VERSION=VC14
- ) else if /i "%~1" == "vc15" (
- set VERSION=VC15
- ) else if /i "%~1" == "-clean" (
- set MODE=CLEAN
- ) else if /i "%~1" == "-?" (
- goto syntax
- ) else if /i "%~1" == "-h" (
- goto syntax
- ) else if /i "%~1" == "-help" (
- goto syntax
- ) else (
- goto unknown
- )
-
- shift & goto parseArgs
-
-:start
- if exist ..\buildconf.bat (
- if "%MODE%" == "GENERATE" (
- call ..\buildconf
- ) else if "%VERSION%" == "PRE" (
- call ..\buildconf -clean
- ) else if "%VERSION%" == "ALL" (
- call ..\buildconf -clean
- )
- )
- if "%VERSION%" == "PRE" goto success
- if "%VERSION%" == "VC6" goto vc6
- if "%VERSION%" == "VC7" goto vc7
- if "%VERSION%" == "VC7.1" goto vc71
- if "%VERSION%" == "VC8" goto vc8
- if "%VERSION%" == "VC9" goto vc9
- if "%VERSION%" == "VC10" goto vc10
- if "%VERSION%" == "VC11" goto vc11
- if "%VERSION%" == "VC12" goto vc12
- if "%VERSION%" == "VC14" goto vc14
- if "%VERSION%" == "VC15" goto vc15
-
-:vc6
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC6 project files
- call :generate dsp Windows\VC6\src\curl.tmpl Windows\VC6\src\curl.dsp
- call :generate dsp Windows\VC6\lib\libcurl.tmpl Windows\VC6\lib\libcurl.dsp
- ) else (
- echo Removing VC6 project files
- call :clean Windows\VC6\src\curl.dsp
- call :clean Windows\VC6\lib\libcurl.dsp
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc7
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC7 project files
- call :generate vcproj1 Windows\VC7\src\curl.tmpl Windows\VC7\src\curl.vcproj
- call :generate vcproj1 Windows\VC7\lib\libcurl.tmpl Windows\VC7\lib\libcurl.vcproj
- ) else (
- echo Removing VC7 project files
- call :clean Windows\VC7\src\curl.vcproj
- call :clean Windows\VC7\lib\libcurl.vcproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc71
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC7.1 project files
- call :generate vcproj1 Windows\VC7.1\src\curl.tmpl Windows\VC7.1\src\curl.vcproj
- call :generate vcproj1 Windows\VC7.1\lib\libcurl.tmpl Windows\VC7.1\lib\libcurl.vcproj
- ) else (
- echo Removing VC7.1 project files
- call :clean Windows\VC7.1\src\curl.vcproj
- call :clean Windows\VC7.1\lib\libcurl.vcproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc8
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC8 project files
- call :generate vcproj2 Windows\VC8\src\curl.tmpl Windows\VC8\src\curl.vcproj
- call :generate vcproj2 Windows\VC8\lib\libcurl.tmpl Windows\VC8\lib\libcurl.vcproj
- ) else (
- echo Removing VC8 project files
- call :clean Windows\VC8\src\curl.vcproj
- call :clean Windows\VC8\lib\libcurl.vcproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc9
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC9 project files
- call :generate vcproj2 Windows\VC9\src\curl.tmpl Windows\VC9\src\curl.vcproj
- call :generate vcproj2 Windows\VC9\lib\libcurl.tmpl Windows\VC9\lib\libcurl.vcproj
- ) else (
- echo Removing VC9 project files
- call :clean Windows\VC9\src\curl.vcproj
- call :clean Windows\VC9\lib\libcurl.vcproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc10
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC10 project files
- call :generate vcxproj Windows\VC10\src\curl.tmpl Windows\VC10\src\curl.vcxproj
- call :generate vcxproj Windows\VC10\lib\libcurl.tmpl Windows\VC10\lib\libcurl.vcxproj
- ) else (
- echo Removing VC10 project files
- call :clean Windows\VC10\src\curl.vcxproj
- call :clean Windows\VC10\lib\libcurl.vcxproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc11
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC11 project files
- call :generate vcxproj Windows\VC11\src\curl.tmpl Windows\VC11\src\curl.vcxproj
- call :generate vcxproj Windows\VC11\lib\libcurl.tmpl Windows\VC11\lib\libcurl.vcxproj
- ) else (
- echo Removing VC11 project files
- call :clean Windows\VC11\src\curl.vcxproj
- call :clean Windows\VC11\lib\libcurl.vcxproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc12
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC12 project files
- call :generate vcxproj Windows\VC12\src\curl.tmpl Windows\VC12\src\curl.vcxproj
- call :generate vcxproj Windows\VC12\lib\libcurl.tmpl Windows\VC12\lib\libcurl.vcxproj
- ) else (
- echo Removing VC12 project files
- call :clean Windows\VC12\src\curl.vcxproj
- call :clean Windows\VC12\lib\libcurl.vcxproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc14
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC14 project files
- call :generate vcxproj Windows\VC14\src\curl.tmpl Windows\VC14\src\curl.vcxproj
- call :generate vcxproj Windows\VC14\lib\libcurl.tmpl Windows\VC14\lib\libcurl.vcxproj
- ) else (
- echo Removing VC14 project files
- call :clean Windows\VC14\src\curl.vcxproj
- call :clean Windows\VC14\lib\libcurl.vcxproj
- )
-
- if not "%VERSION%" == "ALL" goto success
-
-:vc15
- echo.
-
- if "%MODE%" == "GENERATE" (
- echo Generating VC15 project files
- call :generate vcxproj Windows\VC15\src\curl.tmpl Windows\VC15\src\curl.vcxproj
- call :generate vcxproj Windows\VC15\lib\libcurl.tmpl Windows\VC15\lib\libcurl.vcxproj
- ) else (
- echo Removing VC15 project files
- call :clean Windows\VC15\src\curl.vcxproj
- call :clean Windows\VC15\lib\libcurl.vcxproj
- )
-
- goto success
-
-rem Main generate function.
-rem
-rem %1 - Project Type (dsp for VC6, vcproj1 for VC7 and VC7.1, vcproj2 for VC8 and VC9
-rem or vcxproj for VC10, VC11, VC12, VC14 and VC15)
-rem %2 - Input template file
-rem %3 - Output project file
-rem
-:generate
- if not exist %2 (
- echo.
- echo Error: Cannot open %2
- exit /B
- )
-
- if exist %3 (
- del %3
- )
-
- echo * %CD%\%3
- for /f "usebackq delims=" %%i in (`"findstr /n ^^ %2"`) do (
- set "var=%%i"
- setlocal enabledelayedexpansion
- set "var=!var:*:=!"
-
- if "!var!" == "CURL_SRC_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\src\*.c') do call :element %1 src "%%c" %3
- ) else if "!var!" == "CURL_SRC_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\src\*.h') do call :element %1 src "%%h" %3
- ) else if "!var!" == "CURL_SRC_RC_FILES" (
- for /f "delims=" %%r in ('dir /b ..\src\*.rc') do call :element %1 src "%%r" %3
- ) else if "!var!" == "CURL_SRC_X_C_FILES" (
- call :element %1 lib "strtoofft.c" %3
- call :element %1 lib "nonblock.c" %3
- call :element %1 lib "warnless.c" %3
- call :element %1 lib "curl_ctype.c" %3
- call :element %1 lib "curl_multibyte.c" %3
- call :element %1 lib "version_win32.c" %3
- call :element %1 lib "dynbuf.c" %3
- ) else if "!var!" == "CURL_SRC_X_H_FILES" (
- call :element %1 lib "config-win32.h" %3
- call :element %1 lib "curl_setup.h" %3
- call :element %1 lib "strtoofft.h" %3
- call :element %1 lib "nonblock.h" %3
- call :element %1 lib "warnless.h" %3
- call :element %1 lib "curl_ctype.h" %3
- call :element %1 lib "curl_multibyte.h" %3
- call :element %1 lib "version_win32.h" %3
- call :element %1 lib "dynbuf.h" %3
- ) else if "!var!" == "CURL_LIB_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\lib\*.c') do call :element %1 lib "%%c" %3
- ) else if "!var!" == "CURL_LIB_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\include\curl\*.h') do call :element %1 include\curl "%%h" %3
- for /f "delims=" %%h in ('dir /b ..\lib\*.h') do call :element %1 lib "%%h" %3
- ) else if "!var!" == "CURL_LIB_RC_FILES" (
- for /f "delims=" %%r in ('dir /b ..\lib\*.rc') do call :element %1 lib "%%r" %3
- ) else if "!var!" == "CURL_LIB_VAUTH_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\lib\vauth\*.c') do call :element %1 lib\vauth "%%c" %3
- ) else if "!var!" == "CURL_LIB_VAUTH_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\lib\vauth\*.h') do call :element %1 lib\vauth "%%h" %3
- ) else if "!var!" == "CURL_LIB_VQUIC_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\lib\vquic\*.c') do call :element %1 lib\vquic "%%c" %3
- ) else if "!var!" == "CURL_LIB_VQUIC_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\lib\vquic\*.h') do call :element %1 lib\vquic "%%h" %3
- ) else if "!var!" == "CURL_LIB_VSSH_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\lib\vssh\*.c') do call :element %1 lib\vssh "%%c" %3
- ) else if "!var!" == "CURL_LIB_VSSH_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\lib\vssh\*.h') do call :element %1 lib\vssh "%%h" %3
- ) else if "!var!" == "CURL_LIB_VTLS_C_FILES" (
- for /f "delims=" %%c in ('dir /b ..\lib\vtls\*.c') do call :element %1 lib\vtls "%%c" %3
- ) else if "!var!" == "CURL_LIB_VTLS_H_FILES" (
- for /f "delims=" %%h in ('dir /b ..\lib\vtls\*.h') do call :element %1 lib\vtls "%%h" %3
- ) else (
- echo.!var!>> %3
- )
-
- endlocal
- )
- exit /B
-
-rem Generates a single file xml element.
-rem
-rem %1 - Project Type (dsp for VC6, vcproj1 for VC7 and VC7.1, vcproj2 for VC8 and VC9
-rem or vcxproj for VC10, VC11, VC12, VC14 and VC15)
-rem %2 - Directory (src, lib, lib\vauth, lib\vquic, lib\vssh, lib\vtls)
-rem %3 - Source filename
-rem %4 - Output project file
-rem
-:element
- set "SPACES= "
- if "%2" == "lib\vauth" (
- set "TABS= "
- ) else if "%2" == "lib\vquic" (
- set "TABS= "
- ) else if "%2" == "lib\vssh" (
- set "TABS= "
- ) else if "%2" == "lib\vtls" (
- set "TABS= "
- ) else (
- set "TABS= "
- )
-
- call :extension %3 ext
-
- if "%1" == "dsp" (
- echo # Begin Source File>> %4
- echo.>> %4
- echo SOURCE=..\..\..\..\%2\%~3>> %4
- echo # End Source File>> %4
- ) else if "%1" == "vcproj1" (
- echo %TABS%^<File>> %4
- echo %TABS% RelativePath="..\..\..\..\%2\%~3"^>>> %4
- echo %TABS%^</File^>>> %4
- ) else if "%1" == "vcproj2" (
- echo %TABS%^<File>> %4
- echo %TABS% RelativePath="..\..\..\..\%2\%~3">> %4
- echo %TABS%^>>> %4
- echo %TABS%^</File^>>> %4
- ) else if "%1" == "vcxproj" (
- if "%ext%" == "c" (
- echo %SPACES%^<ClCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4
- ) else if "%ext%" == "h" (
- echo %SPACES%^<ClInclude Include=^"..\..\..\..\%2\%~3^" /^>>> %4
- ) else if "%ext%" == "rc" (
- echo %SPACES%^<ResourceCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4
- )
- )
-
- exit /B
-
-rem Returns the extension for a given filename.
-rem
-rem %1 - The filename
-rem %2 - The return value
-rem
-:extension
- set fname=%~1
- set ename=
-:loop1
- if "%fname%"=="" (
- set %2=
- exit /B
- )
-
- if not "%fname:~-1%"=="." (
- set ename=%fname:~-1%%ename%
- set fname=%fname:~0,-1%
- goto loop1
- )
-
- set %2=%ename%
- exit /B
-
-rem Removes the given project file.
-rem
-rem %1 - The filename
-rem
-:clean
- echo * %CD%\%1
-
- if exist %1 (
- del %1
- )
-
- exit /B
-
-:syntax
- rem Display the help
- echo.
- echo Usage: generate [what] [-clean]
- echo.
- echo What to generate:
- echo.
- echo pre - Prerequisites only
- echo vc6 - Use Visual Studio 6
- echo vc7 - Use Visual Studio .NET
- echo vc7.1 - Use Visual Studio .NET 2003
- echo vc8 - Use Visual Studio 2005
- echo vc9 - Use Visual Studio 2008
- echo vc10 - Use Visual Studio 2010
- echo vc11 - Use Visual Studio 2012
- echo vc12 - Use Visual Studio 2013
- echo vc14 - Use Visual Studio 2015
- echo vc15 - Use Visual Studio 2017
- echo.
- echo -clean - Removes the project files
- goto error
-
-:unknown
- echo.
- echo Error: Unknown argument '%1'
- goto error
-
-:nodos
- echo.
- echo Error: Only a Windows NT based Operating System is supported
- goto error
-
-:nonetdrv
- echo.
- echo Error: This batch file cannot run from a network drive
- goto error
-
-:norepo
- echo.
- echo Error: This batch file should only be used from a curl git repository
- goto error
-
-:seterr
- rem Set the caller's errorlevel.
- rem %1[opt]: Errorlevel as integer.
- rem If %1 is empty the errorlevel will be set to 0.
- rem If %1 is not empty and not an integer the errorlevel will be set to 1.
- setlocal
- set EXITCODE=%~1
- if not defined EXITCODE set EXITCODE=0
- echo %EXITCODE%|findstr /r "[^0-9\-]" 1>NUL 2>&1
- if %ERRORLEVEL% EQU 0 set EXITCODE=1
- exit /b %EXITCODE%
-
-:error
- if "%OS%" == "Windows_NT" endlocal
- exit /B 1
-
-:success
- endlocal
- exit /B 0
+@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.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
+rem * furnished to do so, under the terms of the COPYING file.
+rem *
+rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+rem * KIND, either express or implied.
+rem *
+rem ***************************************************************************
+
+:begin
+ rem Check we are running on a Windows NT derived OS
+ if not "%OS%" == "Windows_NT" goto nodos
+
+ rem Set our variables
+ setlocal ENABLEEXTENSIONS
+ set VERSION=ALL
+ set MODE=GENERATE
+
+ rem Check we are not running on a network drive
+ if "%~d0."=="\\." goto nonetdrv
+
+ rem Switch to this batch file's directory
+ cd /d "%~0\.." 1>NUL 2>&1
+
+ rem Check we are running from a curl git repository
+ if not exist ..\GIT-INFO goto norepo
+
+:parseArgs
+ if "%~1" == "" goto start
+
+ if /i "%~1" == "pre" (
+ set VERSION=PRE
+ ) else if /i "%~1" == "vc6" (
+ set VERSION=VC6
+ ) else if /i "%~1" == "vc7" (
+ set VERSION=VC7
+ ) else if /i "%~1" == "vc7.1" (
+ set VERSION=VC7.1
+ ) else if /i "%~1" == "vc8" (
+ set VERSION=VC8
+ ) else if /i "%~1" == "vc9" (
+ set VERSION=VC9
+ ) else if /i "%~1" == "vc10" (
+ set VERSION=VC10
+ ) else if /i "%~1" == "vc11" (
+ set VERSION=VC11
+ ) else if /i "%~1" == "vc12" (
+ set VERSION=VC12
+ ) else if /i "%~1" == "vc14" (
+ set VERSION=VC14
+ ) else if /i "%~1" == "vc15" (
+ set VERSION=VC15
+ ) else if /i "%~1" == "-clean" (
+ set MODE=CLEAN
+ ) else if /i "%~1" == "-?" (
+ goto syntax
+ ) else if /i "%~1" == "-h" (
+ goto syntax
+ ) else if /i "%~1" == "-help" (
+ goto syntax
+ ) else (
+ goto unknown
+ )
+
+ shift & goto parseArgs
+
+:start
+ if exist ..\buildconf.bat (
+ if "%MODE%" == "GENERATE" (
+ call ..\buildconf
+ ) else if "%VERSION%" == "PRE" (
+ call ..\buildconf -clean
+ ) else if "%VERSION%" == "ALL" (
+ call ..\buildconf -clean
+ )
+ )
+ if "%VERSION%" == "PRE" goto success
+ if "%VERSION%" == "VC6" goto vc6
+ if "%VERSION%" == "VC7" goto vc7
+ if "%VERSION%" == "VC7.1" goto vc71
+ if "%VERSION%" == "VC8" goto vc8
+ if "%VERSION%" == "VC9" goto vc9
+ if "%VERSION%" == "VC10" goto vc10
+ if "%VERSION%" == "VC11" goto vc11
+ if "%VERSION%" == "VC12" goto vc12
+ if "%VERSION%" == "VC14" goto vc14
+ if "%VERSION%" == "VC15" goto vc15
+
+:vc6
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC6 project files
+ call :generate dsp Windows\VC6\src\curl.tmpl Windows\VC6\src\curl.dsp
+ call :generate dsp Windows\VC6\lib\libcurl.tmpl Windows\VC6\lib\libcurl.dsp
+ ) else (
+ echo Removing VC6 project files
+ call :clean Windows\VC6\src\curl.dsp
+ call :clean Windows\VC6\lib\libcurl.dsp
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc7
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC7 project files
+ call :generate vcproj1 Windows\VC7\src\curl.tmpl Windows\VC7\src\curl.vcproj
+ call :generate vcproj1 Windows\VC7\lib\libcurl.tmpl Windows\VC7\lib\libcurl.vcproj
+ ) else (
+ echo Removing VC7 project files
+ call :clean Windows\VC7\src\curl.vcproj
+ call :clean Windows\VC7\lib\libcurl.vcproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc71
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC7.1 project files
+ call :generate vcproj1 Windows\VC7.1\src\curl.tmpl Windows\VC7.1\src\curl.vcproj
+ call :generate vcproj1 Windows\VC7.1\lib\libcurl.tmpl Windows\VC7.1\lib\libcurl.vcproj
+ ) else (
+ echo Removing VC7.1 project files
+ call :clean Windows\VC7.1\src\curl.vcproj
+ call :clean Windows\VC7.1\lib\libcurl.vcproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc8
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC8 project files
+ call :generate vcproj2 Windows\VC8\src\curl.tmpl Windows\VC8\src\curl.vcproj
+ call :generate vcproj2 Windows\VC8\lib\libcurl.tmpl Windows\VC8\lib\libcurl.vcproj
+ ) else (
+ echo Removing VC8 project files
+ call :clean Windows\VC8\src\curl.vcproj
+ call :clean Windows\VC8\lib\libcurl.vcproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc9
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC9 project files
+ call :generate vcproj2 Windows\VC9\src\curl.tmpl Windows\VC9\src\curl.vcproj
+ call :generate vcproj2 Windows\VC9\lib\libcurl.tmpl Windows\VC9\lib\libcurl.vcproj
+ ) else (
+ echo Removing VC9 project files
+ call :clean Windows\VC9\src\curl.vcproj
+ call :clean Windows\VC9\lib\libcurl.vcproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc10
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC10 project files
+ call :generate vcxproj Windows\VC10\src\curl.tmpl Windows\VC10\src\curl.vcxproj
+ call :generate vcxproj Windows\VC10\lib\libcurl.tmpl Windows\VC10\lib\libcurl.vcxproj
+ ) else (
+ echo Removing VC10 project files
+ call :clean Windows\VC10\src\curl.vcxproj
+ call :clean Windows\VC10\lib\libcurl.vcxproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc11
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC11 project files
+ call :generate vcxproj Windows\VC11\src\curl.tmpl Windows\VC11\src\curl.vcxproj
+ call :generate vcxproj Windows\VC11\lib\libcurl.tmpl Windows\VC11\lib\libcurl.vcxproj
+ ) else (
+ echo Removing VC11 project files
+ call :clean Windows\VC11\src\curl.vcxproj
+ call :clean Windows\VC11\lib\libcurl.vcxproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc12
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC12 project files
+ call :generate vcxproj Windows\VC12\src\curl.tmpl Windows\VC12\src\curl.vcxproj
+ call :generate vcxproj Windows\VC12\lib\libcurl.tmpl Windows\VC12\lib\libcurl.vcxproj
+ ) else (
+ echo Removing VC12 project files
+ call :clean Windows\VC12\src\curl.vcxproj
+ call :clean Windows\VC12\lib\libcurl.vcxproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc14
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC14 project files
+ call :generate vcxproj Windows\VC14\src\curl.tmpl Windows\VC14\src\curl.vcxproj
+ call :generate vcxproj Windows\VC14\lib\libcurl.tmpl Windows\VC14\lib\libcurl.vcxproj
+ ) else (
+ echo Removing VC14 project files
+ call :clean Windows\VC14\src\curl.vcxproj
+ call :clean Windows\VC14\lib\libcurl.vcxproj
+ )
+
+ if not "%VERSION%" == "ALL" goto success
+
+:vc15
+ echo.
+
+ if "%MODE%" == "GENERATE" (
+ echo Generating VC15 project files
+ call :generate vcxproj Windows\VC15\src\curl.tmpl Windows\VC15\src\curl.vcxproj
+ call :generate vcxproj Windows\VC15\lib\libcurl.tmpl Windows\VC15\lib\libcurl.vcxproj
+ ) else (
+ echo Removing VC15 project files
+ call :clean Windows\VC15\src\curl.vcxproj
+ call :clean Windows\VC15\lib\libcurl.vcxproj
+ )
+
+ goto success
+
+rem Main generate function.
+rem
+rem %1 - Project Type (dsp for VC6, vcproj1 for VC7 and VC7.1, vcproj2 for VC8 and VC9
+rem or vcxproj for VC10, VC11, VC12, VC14 and VC15)
+rem %2 - Input template file
+rem %3 - Output project file
+rem
+:generate
+ if not exist %2 (
+ echo.
+ echo Error: Cannot open %2
+ exit /B
+ )
+
+ if exist %3 (
+ del %3
+ )
+
+ echo * %CD%\%3
+ for /f "usebackq delims=" %%i in (`"findstr /n ^^ %2"`) do (
+ set "var=%%i"
+ setlocal enabledelayedexpansion
+ set "var=!var:*:=!"
+
+ if "!var!" == "CURL_SRC_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\src\*.c') do call :element %1 src "%%c" %3
+ ) else if "!var!" == "CURL_SRC_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\src\*.h') do call :element %1 src "%%h" %3
+ ) else if "!var!" == "CURL_SRC_RC_FILES" (
+ for /f "delims=" %%r in ('dir /b ..\src\*.rc') do call :element %1 src "%%r" %3
+ ) else if "!var!" == "CURL_SRC_X_C_FILES" (
+ call :element %1 lib "strtoofft.c" %3
+ call :element %1 lib "nonblock.c" %3
+ call :element %1 lib "warnless.c" %3
+ call :element %1 lib "curl_ctype.c" %3
+ call :element %1 lib "curl_multibyte.c" %3
+ call :element %1 lib "version_win32.c" %3
+ call :element %1 lib "dynbuf.c" %3
+ ) else if "!var!" == "CURL_SRC_X_H_FILES" (
+ call :element %1 lib "config-win32.h" %3
+ call :element %1 lib "curl_setup.h" %3
+ call :element %1 lib "strtoofft.h" %3
+ call :element %1 lib "nonblock.h" %3
+ call :element %1 lib "warnless.h" %3
+ call :element %1 lib "curl_ctype.h" %3
+ call :element %1 lib "curl_multibyte.h" %3
+ call :element %1 lib "version_win32.h" %3
+ call :element %1 lib "dynbuf.h" %3
+ ) else if "!var!" == "CURL_LIB_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\lib\*.c') do call :element %1 lib "%%c" %3
+ ) else if "!var!" == "CURL_LIB_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\include\curl\*.h') do call :element %1 include\curl "%%h" %3
+ for /f "delims=" %%h in ('dir /b ..\lib\*.h') do call :element %1 lib "%%h" %3
+ ) else if "!var!" == "CURL_LIB_RC_FILES" (
+ for /f "delims=" %%r in ('dir /b ..\lib\*.rc') do call :element %1 lib "%%r" %3
+ ) else if "!var!" == "CURL_LIB_VAUTH_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\lib\vauth\*.c') do call :element %1 lib\vauth "%%c" %3
+ ) else if "!var!" == "CURL_LIB_VAUTH_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\lib\vauth\*.h') do call :element %1 lib\vauth "%%h" %3
+ ) else if "!var!" == "CURL_LIB_VQUIC_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\lib\vquic\*.c') do call :element %1 lib\vquic "%%c" %3
+ ) else if "!var!" == "CURL_LIB_VQUIC_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\lib\vquic\*.h') do call :element %1 lib\vquic "%%h" %3
+ ) else if "!var!" == "CURL_LIB_VSSH_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\lib\vssh\*.c') do call :element %1 lib\vssh "%%c" %3
+ ) else if "!var!" == "CURL_LIB_VSSH_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\lib\vssh\*.h') do call :element %1 lib\vssh "%%h" %3
+ ) else if "!var!" == "CURL_LIB_VTLS_C_FILES" (
+ for /f "delims=" %%c in ('dir /b ..\lib\vtls\*.c') do call :element %1 lib\vtls "%%c" %3
+ ) else if "!var!" == "CURL_LIB_VTLS_H_FILES" (
+ for /f "delims=" %%h in ('dir /b ..\lib\vtls\*.h') do call :element %1 lib\vtls "%%h" %3
+ ) else (
+ echo.!var!>> %3
+ )
+
+ endlocal
+ )
+ exit /B
+
+rem Generates a single file xml element.
+rem
+rem %1 - Project Type (dsp for VC6, vcproj1 for VC7 and VC7.1, vcproj2 for VC8 and VC9
+rem or vcxproj for VC10, VC11, VC12, VC14 and VC15)
+rem %2 - Directory (src, lib, lib\vauth, lib\vquic, lib\vssh, lib\vtls)
+rem %3 - Source filename
+rem %4 - Output project file
+rem
+:element
+ set "SPACES= "
+ if "%2" == "lib\vauth" (
+ set "TABS= "
+ ) else if "%2" == "lib\vquic" (
+ set "TABS= "
+ ) else if "%2" == "lib\vssh" (
+ set "TABS= "
+ ) else if "%2" == "lib\vtls" (
+ set "TABS= "
+ ) else (
+ set "TABS= "
+ )
+
+ call :extension %3 ext
+
+ if "%1" == "dsp" (
+ echo # Begin Source File>> %4
+ echo.>> %4
+ echo SOURCE=..\..\..\..\%2\%~3>> %4
+ echo # End Source File>> %4
+ ) else if "%1" == "vcproj1" (
+ echo %TABS%^<File>> %4
+ echo %TABS% RelativePath="..\..\..\..\%2\%~3"^>>> %4
+ echo %TABS%^</File^>>> %4
+ ) else if "%1" == "vcproj2" (
+ echo %TABS%^<File>> %4
+ echo %TABS% RelativePath="..\..\..\..\%2\%~3">> %4
+ echo %TABS%^>>> %4
+ echo %TABS%^</File^>>> %4
+ ) else if "%1" == "vcxproj" (
+ if "%ext%" == "c" (
+ echo %SPACES%^<ClCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4
+ ) else if "%ext%" == "h" (
+ echo %SPACES%^<ClInclude Include=^"..\..\..\..\%2\%~3^" /^>>> %4
+ ) else if "%ext%" == "rc" (
+ echo %SPACES%^<ResourceCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4
+ )
+ )
+
+ exit /B
+
+rem Returns the extension for a given filename.
+rem
+rem %1 - The filename
+rem %2 - The return value
+rem
+:extension
+ set fname=%~1
+ set ename=
+:loop1
+ if "%fname%"=="" (
+ set %2=
+ exit /B
+ )
+
+ if not "%fname:~-1%"=="." (
+ set ename=%fname:~-1%%ename%
+ set fname=%fname:~0,-1%
+ goto loop1
+ )
+
+ set %2=%ename%
+ exit /B
+
+rem Removes the given project file.
+rem
+rem %1 - The filename
+rem
+:clean
+ echo * %CD%\%1
+
+ if exist %1 (
+ del %1
+ )
+
+ exit /B
+
+:syntax
+ rem Display the help
+ echo.
+ echo Usage: generate [what] [-clean]
+ echo.
+ echo What to generate:
+ echo.
+ echo pre - Prerequisites only
+ echo vc6 - Use Visual Studio 6
+ echo vc7 - Use Visual Studio .NET
+ echo vc7.1 - Use Visual Studio .NET 2003
+ echo vc8 - Use Visual Studio 2005
+ echo vc9 - Use Visual Studio 2008
+ echo vc10 - Use Visual Studio 2010
+ echo vc11 - Use Visual Studio 2012
+ echo vc12 - Use Visual Studio 2013
+ echo vc14 - Use Visual Studio 2015
+ echo vc15 - Use Visual Studio 2017
+ echo.
+ echo -clean - Removes the project files
+ goto error
+
+:unknown
+ echo.
+ echo Error: Unknown argument '%1'
+ goto error
+
+:nodos
+ echo.
+ echo Error: Only a Windows NT based Operating System is supported
+ goto error
+
+:nonetdrv
+ echo.
+ echo Error: This batch file cannot run from a network drive
+ goto error
+
+:norepo
+ echo.
+ echo Error: This batch file should only be used from a curl git repository
+ goto error
+
+:seterr
+ rem Set the caller's errorlevel.
+ rem %1[opt]: Errorlevel as integer.
+ rem If %1 is empty the errorlevel will be set to 0.
+ rem If %1 is not empty and not an integer the errorlevel will be set to 1.
+ setlocal
+ set EXITCODE=%~1
+ if not defined EXITCODE set EXITCODE=0
+ echo %EXITCODE%|findstr /r "[^0-9\-]" 1>NUL 2>&1
+ if %ERRORLEVEL% EQU 0 set EXITCODE=1
+ exit /b %EXITCODE%
+
+:error
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+
+:success
+ endlocal
+ exit /B 0
diff --git a/src/Makefile.am b/src/Makefile.am
index 734373187..c8abc93b1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -150,3 +150,6 @@ TIDY:=clang-tidy
tidy:
$(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
+
+listhelp:
+ (cd $(top_srcdir)/docs/cmdline-opts && ./gen.pl listhelp *.d) > tool_listhelp.c
diff --git a/src/Makefile.inc b/src/Makefile.inc
index 9839d4ff3..9fb9946d6 100644
--- a/src/Makefile.inc
+++ b/src/Makefile.inc
@@ -73,6 +73,7 @@ CURL_CFILES = \
tool_homedir.c \
tool_hugehelp.c \
tool_libinfo.c \
+ tool_listhelp.c \
tool_main.c \
tool_msgs.c \
tool_operate.c \
diff --git a/src/Makefile.m32 b/src/Makefile.m32
index 380d264e7..d769bad75 100644
--- a/src/Makefile.m32
+++ b/src/Makefile.m32
@@ -187,12 +187,10 @@ SYNC = 1
endif
ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
RTMP = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
SSH2 = 1
-SSL = 1
ZLIB = 1
endif
ifeq ($(findstring -ssl,$(CFG)),-ssl)
@@ -242,6 +240,13 @@ ifeq ($(findstring -unicode,$(CFG)),-unicode)
UNICODE = 1
endif
+# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
+ifneq ($(SSH2)$(RTMP),)
+ ifeq ($(SSL)$(WINSSL),)
+ SSL = 1
+ endif
+endif
+
INCLUDES = -I. -I../include -I../lib
ifdef SSL
ifdef WINSSL
@@ -309,7 +314,7 @@ ifdef SSL
endif
endif
ifneq "$(wildcard $(OPENSSL_INCLUDE)/openssl/opensslv.h)" "$(OPENSSL_INCLUDE)/openssl/opensslv.h"
- $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
+ $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
endif
ifndef OPENSSL_LIBPATH
OPENSSL_LIBS = -lssl -lcrypto
diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c
index bb93d15f8..2a23fd911 100644
--- a/src/tool_cb_prg.c
+++ b/src/tool_cb_prg.c
@@ -125,9 +125,6 @@ int tool_progress_cb(void *clientp,
curl_off_t dltotal, curl_off_t dlnow,
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;
@@ -135,19 +132,28 @@ int tool_progress_cb(void *clientp,
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 */
- if(bar->initial_size < 0 ||
- ((CURL_OFF_T_MAX - bar->initial_size) < (dltotal + ultotal)))
+ /* Calculate expected transfer size. initial_size can be less than zero when
+ indicating that we are expecting to get the filesize from the remote */
+ if(bar->initial_size < 0) {
+ if(dltotal || ultotal)
+ total = dltotal + ultotal;
+ else
+ total = CURL_OFF_T_MAX;
+ }
+ else if((CURL_OFF_T_MAX - bar->initial_size) < (dltotal + ultotal))
total = CURL_OFF_T_MAX;
else
total = dltotal + ultotal + bar->initial_size;
/* Calculate the current progress. initial_size can be less than zero when
indicating that we are expecting to get the filesize from the remote */
- if(bar->initial_size < 0 ||
- ((CURL_OFF_T_MAX - bar->initial_size) < (dlnow + ulnow)))
+ if(bar->initial_size < 0) {
+ if(dltotal || ultotal)
+ point = dlnow + ulnow;
+ else
+ point = CURL_OFF_T_MAX;
+ }
+ else if((CURL_OFF_T_MAX - bar->initial_size) < (dlnow + ulnow))
point = CURL_OFF_T_MAX;
else
point = dlnow + ulnow + bar->initial_size;
@@ -215,9 +221,8 @@ void progressbarinit(struct ProgressData *bar,
char *colp;
memset(bar, 0, sizeof(struct ProgressData));
- /* pass this through to progress function so
- * it can display progress towards total file
- * not just the part that's left. (21-may-03, dbyron) */
+ /* pass the resume from value through to the progress function so it can
+ * display progress towards total file not just the part that's left. */
if(config->use_resume)
bar->initial_size = config->resume_from;
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index c3f7cecb1..34e17ce55 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -131,6 +131,7 @@ static void free_config_fields(struct OperationConfig *config)
Curl_safefree(config->proxy_key_passwd);
Curl_safefree(config->pubkey);
Curl_safefree(config->hostpubmd5);
+ Curl_safefree(config->hostpubsha256);
Curl_safefree(config->engine);
Curl_safefree(config->etag_save_file);
Curl_safefree(config->etag_compare_file);
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index b00aacb76..eff55f95d 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -158,6 +158,7 @@ struct OperationConfig {
char *proxy_key_passwd;
char *pubkey;
char *hostpubmd5;
+ char *hostpubsha256;
char *engine;
char *etag_save_file;
char *etag_compare_file;
diff --git a/src/tool_doswin.c b/src/tool_doswin.c
index 98e13bc09..1ad9cddc3 100644
--- a/src/tool_doswin.c
+++ b/src/tool_doswin.c
@@ -766,6 +766,8 @@ bool tool_isVistaOrGreater;
CURLcode win32_init(void)
{
+ /* curlx_verify_windows_version must be called during init at least once
+ because it has its own initialization routine. */
if(curlx_verify_windows_version(6, 0, PLATFORM_WINNT,
VERSION_GREATER_THAN_EQUAL))
tool_isVistaOrGreater = true;
diff --git a/src/tool_easysrc.c b/src/tool_easysrc.c
index 246d81469..85a586d9d 100644
--- a/src/tool_easysrc.c
+++ b/src/tool_easysrc.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -63,7 +63,7 @@ static const char *const srchead[]={
/* easysrc_code statements come here */
static const char *const srchard[]={
"/* Here is a list of options the curl code used that cannot get generated",
- " as source easily. You may select to either not use them or implement",
+ " as source easily. You may choose to either not use them or implement",
" them yourself.",
"",
NULL
diff --git a/src/tool_filetime.c b/src/tool_filetime.c
index e31fd5914..57ff0c2d9 100644
--- a/src/tool_filetime.c
+++ b/src/tool_filetime.c
@@ -30,11 +30,6 @@
# include <sys/utime.h>
#endif
-#if defined(__GNUC__) && defined(__MINGW32__)
-/* GCC 10 on mingw has issues with this, disable */
-#pragma GCC diagnostic ignored "-Wformat"
-#endif
-
curl_off_t getfiletime(const char *filename, struct GlobalConfig *global)
{
curl_off_t result = -1;
diff --git a/src/tool_formparse.c b/src/tool_formparse.c
index fa81291a6..3661a979e 100644
--- a/src/tool_formparse.c
+++ b/src/tool_formparse.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -347,7 +347,8 @@ CURLcode tool2curlmime(CURL *curl, struct tool_mime *m, curl_mime **mime)
* after call get_parm_word, str either point to string end
* or point to any of end chars.
*/
-static char *get_param_word(char **str, char **end_pos, char endchar)
+static char *get_param_word(struct OperationConfig *config, char **str,
+ char **end_pos, char endchar)
{
char *ptr = *str;
/* the first non-space char is here */
@@ -369,6 +370,7 @@ static char *get_param_word(char **str, char **end_pos, char endchar)
}
}
if(*ptr == '"') {
+ bool trailing_data = FALSE;
*end_pos = ptr;
if(escape) {
/* has escape, we restore the unescaped string here */
@@ -381,8 +383,14 @@ static char *get_param_word(char **str, char **end_pos, char endchar)
while(ptr < *end_pos);
*end_pos = ptr2;
}
- while(*ptr && *ptr != ';' && *ptr != endchar)
+ ++ptr;
+ while(*ptr && *ptr != ';' && *ptr != endchar) {
+ if(!ISSPACE(*ptr))
+ trailing_data = TRUE;
++ptr;
+ }
+ if(trailing_data)
+ warnf(config->global, "Trailing data after quoted form parameter\n");
*str = ptr;
return word_begin + 1;
}
@@ -501,7 +509,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
while(ISSPACE(*p))
p++;
tp = p;
- *pdata = get_param_word(&p, &endpos, endchar);
+ *pdata = get_param_word(config, &p, &endpos, endchar);
/* If not quoted, strip trailing spaces. */
if(*pdata == tp)
while(endpos > *pdata && ISSPACE(endpos[-1]))
@@ -540,7 +548,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
for(p += 9; ISSPACE(*p); p++)
;
tp = p;
- filename = get_param_word(&p, &endpos, endchar);
+ filename = get_param_word(config, &p, &endpos, endchar);
/* If not quoted, strip trailing spaces. */
if(filename == tp)
while(endpos > filename && ISSPACE(endpos[-1]))
@@ -563,7 +571,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
p++;
} while(ISSPACE(*p));
tp = p;
- hdrfile = get_param_word(&p, &endpos, endchar);
+ hdrfile = get_param_word(config, &p, &endpos, endchar);
/* If not quoted, strip trailing spaces. */
if(hdrfile == tp)
while(endpos > hdrfile && ISSPACE(endpos[-1]))
@@ -590,7 +598,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
while(ISSPACE(*p))
p++;
tp = p;
- hdr = get_param_word(&p, &endpos, endchar);
+ hdr = get_param_word(config, &p, &endpos, endchar);
/* If not quoted, strip trailing spaces. */
if(hdr == tp)
while(endpos > hdr && ISSPACE(endpos[-1]))
@@ -612,7 +620,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
for(p += 8; ISSPACE(*p); p++)
;
tp = p;
- encoder = get_param_word(&p, &endpos, endchar);
+ encoder = get_param_word(config, &p, &endpos, endchar);
/* If not quoted, strip trailing spaces. */
if(encoder == tp)
while(endpos > encoder && ISSPACE(endpos[-1]))
@@ -629,7 +637,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
}
else {
/* unknown prefix, skip to next block */
- char *unknown = get_param_word(&p, &endpos, endchar);
+ char *unknown = get_param_word(config, &p, &endpos, endchar);
sep = *p;
*endpos = '\0';
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index 641cca2e4..1fe7d5d09 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -241,6 +241,7 @@ static const struct LongShort aliases[]= {
{"Eg", "capath", ARG_FILENAME},
{"Eh", "pubkey", ARG_STRING},
{"Ei", "hostpubmd5", ARG_STRING},
+ {"EF", "hostpubsha256", ARG_STRING},
{"Ej", "crlfile", ARG_FILENAME},
{"Ek", "tlsuser", ARG_STRING},
{"El", "tlspassword", ARG_STRING},
@@ -1006,8 +1007,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
config->ftp_filemethod = ftpfilemethod(config, nextarg);
break;
case 's': { /* --local-port */
- char lrange[7]; /* 16bit base 10 is 5 digits, but we allow 6 so that
- this catches overflows, not just truncates */
+ /* 16bit base 10 is 5 digits, but we allow 6 so that this catches
+ overflows, not just truncates */
+ char lrange[7]="";
char *p = nextarg;
while(ISDIGIT(*p))
p++;
@@ -1429,7 +1431,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
char *enc = curl_easy_escape(NULL, postdata, (int)size);
Curl_safefree(postdata); /* no matter if it worked or not */
if(enc) {
- /* replace (in-place) '%20' by '+' acording to RFC1866 */
+ /* replace (in-place) '%20' by '+' according to RFC1866 */
size_t enclen = replace_url_encoded_space_by_plus(enc);
/* now make a string with the name from above and append the
encoded string */
@@ -1601,6 +1603,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
if(!config->hostpubmd5 || strlen(config->hostpubmd5) != 32)
return PARAM_BAD_USE;
break;
+ case 'F': /* --hostpubsha256 sha256 of the host public key */
+ GetStr(&config->hostpubsha256, nextarg);
+ break;
case 'j': /* CRL file */
GetStr(&config->crlfile, nextarg);
break;
@@ -1889,11 +1894,6 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
}
break;
case 'i':
- if(config->content_disposition) {
- warnf(global,
- "--include and --remote-header-name cannot be combined.\n");
- return PARAM_BAD_USE;
- }
config->show_headers = toggle; /* show the headers as well in the
general output stream */
break;
@@ -1909,11 +1909,6 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
return PARAM_BAD_USE;
break;
case 'J': /* --remote-header-name */
- if(config->show_headers) {
- warnf(global,
- "--include and --remote-header-name cannot be combined.\n");
- return PARAM_BAD_USE;
- }
config->content_disposition = toggle;
break;
case 'k': /* allow insecure SSL connects */
@@ -2087,7 +2082,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
if(!config->range)
return PARAM_NO_MEM;
}
- {
+ else {
/* byte range requested */
const char *tmp_range = nextarg;
while(*tmp_range != '\0') {
@@ -2100,7 +2095,6 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
}
tmp_range++;
}
- /* byte range requested */
GetStr(&config->range, nextarg);
}
break;
@@ -2393,6 +2387,13 @@ ParameterError parse_args(struct GlobalConfig *global, int argc,
curlx_unicodefree(orig_opt);
}
+ if(!result && config->content_disposition) {
+ if(config->show_headers)
+ result = PARAM_CONTDISP_SHOW_HEADER;
+ else if(config->resume_from_current)
+ result = PARAM_CONTDISP_RESUME_FROM;
+ }
+
if(result && result != PARAM_HELP_REQUESTED &&
result != PARAM_MANUAL_REQUESTED &&
result != PARAM_VERSION_INFO_REQUESTED &&
diff --git a/src/tool_getparam.h b/src/tool_getparam.h
index 2c24d4835..599a0ac88 100644
--- a/src/tool_getparam.h
+++ b/src/tool_getparam.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -43,6 +43,8 @@ typedef enum {
PARAM_NO_PREFIX,
PARAM_NUMBER_TOO_LARGE,
PARAM_NO_NOT_BOOLEAN,
+ PARAM_CONTDISP_SHOW_HEADER, /* --include and --remote-header-name */
+ PARAM_CONTDISP_RESUME_FROM, /* --continue-at and --remote-header-name */
PARAM_LAST
} ParameterError;
diff --git a/src/tool_help.c b/src/tool_help.c
index b5e37aa9a..d49cccd05 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -38,40 +38,6 @@
# define USE_WATT32
#endif
-/*
- * The bitmask output is generated with the following command
- ------------------------------------------------------------
- cd $srcroot/docs/cmdline-opts
- ./gen.pl listcats *.d
- */
-
-#define CURLHELP_HIDDEN 1u << 0u
-#define CURLHELP_AUTH 1u << 1u
-#define CURLHELP_CONNECTION 1u << 2u
-#define CURLHELP_CURL 1u << 3u
-#define CURLHELP_DNS 1u << 4u
-#define CURLHELP_FILE 1u << 5u
-#define CURLHELP_FTP 1u << 6u
-#define CURLHELP_HTTP 1u << 7u
-#define CURLHELP_IMAP 1u << 8u
-#define CURLHELP_IMPORTANT 1u << 9u
-#define CURLHELP_MISC 1u << 10u
-#define CURLHELP_OUTPUT 1u << 11u
-#define CURLHELP_POP3 1u << 12u
-#define CURLHELP_POST 1u << 13u
-#define CURLHELP_PROXY 1u << 14u
-#define CURLHELP_SCP 1u << 15u
-#define CURLHELP_SFTP 1u << 16u
-#define CURLHELP_SMTP 1u << 17u
-#define CURLHELP_SSH 1u << 18u
-#define CURLHELP_TELNET 1u << 19u
-#define CURLHELP_TFTP 1u << 20u
-#define CURLHELP_TLS 1u << 21u
-#define CURLHELP_UPLOAD 1u << 22u
-#define CURLHELP_VERBOSE 1u << 23u
-
-typedef unsigned int curlhelp_t;
-
struct category_descriptors {
const char *opt;
const char *desc;
@@ -108,750 +74,7 @@ static const struct category_descriptors categories[] = {
{NULL, NULL, CURLHELP_HIDDEN}
};
-/*
- * The help output is generated with the following command
- ---------------------------------------------------------
-
- cd $srcroot/docs/cmdline-opts
- ./gen.pl listhelp *.d
- */
-
-struct helptxt {
- const char *opt;
- const char *desc;
- curlhelp_t categories;
-};
-
-
-static const struct helptxt helptext[] = {
- {" --abstract-unix-socket <path>",
- "Connect via abstract Unix domain socket",
- CURLHELP_CONNECTION},
- {" --alt-svc <file name>",
- "Enable alt-svc with this cache file",
- CURLHELP_HTTP},
- {" --anyauth",
- "Pick any authentication method",
- CURLHELP_HTTP | CURLHELP_PROXY | CURLHELP_AUTH},
- {"-a, --append",
- "Append to target file when uploading",
- CURLHELP_FTP | CURLHELP_SFTP},
- {" --aws-sigv4 <provider1[:provider2[:region[:service]]]>",
- "Use AWS V4 signature authentication",
- CURLHELP_AUTH | CURLHELP_HTTP},
- {" --basic",
- "Use HTTP Basic Authentication",
- CURLHELP_AUTH},
- {" --cacert <file>",
- "CA certificate to verify peer against",
- CURLHELP_TLS},
- {" --capath <dir>",
- "CA directory to verify peer against",
- CURLHELP_TLS},
- {"-E, --cert <certificate[:password]>",
- "Client certificate file and password",
- CURLHELP_TLS},
- {" --cert-status",
- "Verify the status of the server cert via OCSP-staple",
- CURLHELP_TLS},
- {" --cert-type <type>",
- "Certificate type (DER/PEM/ENG)",
- CURLHELP_TLS},
- {" --ciphers <list of ciphers>",
- "SSL ciphers to use",
- CURLHELP_TLS},
- {" --compressed",
- "Request compressed response",
- CURLHELP_HTTP},
- {" --compressed-ssh",
- "Enable SSH compression",
- CURLHELP_SCP | CURLHELP_SSH},
- {"-K, --config <file>",
- "Read config from a file",
- CURLHELP_CURL},
- {" --connect-timeout <seconds>",
- "Maximum time allowed for connection",
- CURLHELP_CONNECTION},
- {" --connect-to <HOST1:PORT1:HOST2:PORT2>",
- "Connect to host",
- CURLHELP_CONNECTION},
- {"-C, --continue-at <offset>",
- "Resumed transfer offset",
- CURLHELP_CONNECTION},
- {"-b, --cookie <data|filename>",
- "Send cookies from string/file",
- CURLHELP_HTTP},
- {"-c, --cookie-jar <filename>",
- "Write cookies to <filename> after operation",
- CURLHELP_HTTP},
- {" --create-dirs",
- "Create necessary local directory hierarchy",
- CURLHELP_CURL},
- {" --create-file-mode <mode>",
- "File mode (octal) for created files",
- CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_FILE | CURLHELP_UPLOAD},
- {" --crlf",
- "Convert LF to CRLF in upload",
- CURLHELP_FTP | CURLHELP_SMTP},
- {" --crlfile <file>",
- "Get a CRL list in PEM format from the given file",
- CURLHELP_TLS},
- {" --curves <algorithm list>",
- "(EC) TLS key exchange algorithm(s) to request",
- CURLHELP_TLS},
- {"-d, --data <data>",
- "HTTP POST data",
- CURLHELP_IMPORTANT | CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
- {" --data-ascii <data>",
- "HTTP POST ASCII data",
- CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
- {" --data-binary <data>",
- "HTTP POST binary data",
- CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
- {" --data-raw <data>",
- "HTTP POST data, '@' allowed",
- CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
- {" --data-urlencode <data>",
- "HTTP POST data url encoded",
- CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
- {" --delegation <LEVEL>",
- "GSS-API delegation permission",
- CURLHELP_AUTH},
- {" --digest",
- "Use HTTP Digest Authentication",
- CURLHELP_PROXY | CURLHELP_AUTH | CURLHELP_HTTP},
- {"-q, --disable",
- "Disable .curlrc",
- CURLHELP_CURL},
- {" --disable-eprt",
- "Inhibit using EPRT or LPRT",
- CURLHELP_FTP},
- {" --disable-epsv",
- "Inhibit using EPSV",
- CURLHELP_FTP},
- {" --disallow-username-in-url",
- "Disallow username in url",
- CURLHELP_CURL | CURLHELP_HTTP},
- {" --dns-interface <interface>",
- "Interface to use for DNS requests",
- CURLHELP_DNS},
- {" --dns-ipv4-addr <address>",
- "IPv4 address to use for DNS requests",
- CURLHELP_DNS},
- {" --dns-ipv6-addr <address>",
- "IPv6 address to use for DNS requests",
- CURLHELP_DNS},
- {" --dns-servers <addresses>",
- "DNS server addrs to use",
- CURLHELP_DNS},
- {" --doh-cert-status",
- "Verify the status of the DoH server cert via OCSP-staple",
- CURLHELP_DNS | CURLHELP_TLS},
- {" --doh-insecure",
- "Allow insecure DoH server connections",
- CURLHELP_DNS | CURLHELP_TLS},
- {" --doh-url <URL>",
- "Resolve host names over DoH",
- CURLHELP_DNS},
- {"-D, --dump-header <filename>",
- "Write the received headers to <filename>",
- CURLHELP_HTTP | CURLHELP_FTP},
- {" --egd-file <file>",
- "EGD socket path for random data",
- CURLHELP_TLS},
- {" --engine <name>",
- "Crypto engine to use",
- CURLHELP_TLS},
- {" --etag-compare <file>",
- "Pass an ETag from a file as a custom header",
- CURLHELP_HTTP},
- {" --etag-save <file>",
- "Parse ETag from a request and save it to a file",
- CURLHELP_HTTP},
- {" --expect100-timeout <seconds>",
- "How long to wait for 100-continue",
- CURLHELP_HTTP},
- {"-f, --fail",
- "Fail silently (no output at all) on HTTP errors",
- CURLHELP_IMPORTANT | CURLHELP_HTTP},
- {" --fail-early",
- "Fail on first transfer error, do not continue",
- CURLHELP_CURL},
- {" --fail-with-body",
- "Fail on HTTP errors but save the body",
- CURLHELP_HTTP | CURLHELP_OUTPUT},
- {" --false-start",
- "Enable TLS False Start",
- CURLHELP_TLS},
- {"-F, --form <name=content>",
- "Specify multipart MIME data",
- CURLHELP_HTTP | CURLHELP_UPLOAD},
- {" --form-string <name=string>",
- "Specify multipart MIME data",
- CURLHELP_HTTP | CURLHELP_UPLOAD},
- {" --ftp-account <data>",
- "Account data string",
- CURLHELP_FTP | CURLHELP_AUTH},
- {" --ftp-alternative-to-user <command>",
- "String to replace USER [name]",
- CURLHELP_FTP},
- {" --ftp-create-dirs",
- "Create the remote dirs if not present",
- CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_CURL},
- {" --ftp-method <method>",
- "Control CWD usage",
- CURLHELP_FTP},
- {" --ftp-pasv",
- "Use PASV/EPSV instead of PORT",
- CURLHELP_FTP},
- {"-P, --ftp-port <address>",
- "Use PORT instead of PASV",
- CURLHELP_FTP},
- {" --ftp-pret",
- "Send PRET before PASV",
- CURLHELP_FTP},
- {" --ftp-skip-pasv-ip",
- "Skip the IP address for PASV",
- CURLHELP_FTP},
- {" --ftp-ssl-ccc",
- "Send CCC after authenticating",
- CURLHELP_FTP | CURLHELP_TLS},
- {" --ftp-ssl-ccc-mode <active/passive>",
- "Set CCC mode",
- CURLHELP_FTP | CURLHELP_TLS},
- {" --ftp-ssl-control",
- "Require SSL/TLS for FTP login, clear for transfer",
- CURLHELP_FTP | CURLHELP_TLS},
- {"-G, --get",
- "Put the post data in the URL and use GET",
- CURLHELP_HTTP | CURLHELP_UPLOAD},
- {"-g, --globoff",
- "Disable URL sequences and ranges using {} and []",
- CURLHELP_CURL},
- {" --happy-eyeballs-timeout-ms <milliseconds>",
- "Time for IPv6 before trying IPv4",
- CURLHELP_CONNECTION},
- {" --haproxy-protocol",
- "Send HAProxy PROXY protocol v1 header",
- CURLHELP_HTTP | CURLHELP_PROXY},
- {"-I, --head",
- "Show document info only",
- CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_FILE},
- {"-H, --header <header/@file>",
- "Pass custom header(s) to server",
- CURLHELP_HTTP},
- {"-h, --help <category>",
- "Get help for commands",
- CURLHELP_IMPORTANT | CURLHELP_CURL},
- {" --hostpubmd5 <md5>",
- "Acceptable MD5 hash of the host public key",
- CURLHELP_SFTP | CURLHELP_SCP},
- {" --hsts <file name>",
- "Enable HSTS with this cache file",
- CURLHELP_HTTP},
- {" --http0.9",
- "Allow HTTP 0.9 responses",
- CURLHELP_HTTP},
- {"-0, --http1.0",
- "Use HTTP 1.0",
- CURLHELP_HTTP},
- {" --http1.1",
- "Use HTTP 1.1",
- CURLHELP_HTTP},
- {" --http2",
- "Use HTTP 2",
- CURLHELP_HTTP},
- {" --http2-prior-knowledge",
- "Use HTTP 2 without HTTP/1.1 Upgrade",
- CURLHELP_HTTP},
- {" --http3",
- "Use HTTP v3",
- CURLHELP_HTTP},
- {" --ignore-content-length",
- "Ignore the size of the remote resource",
- CURLHELP_HTTP | CURLHELP_FTP},
- {"-i, --include",
- "Include protocol response headers in the output",
- CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
- {"-k, --insecure",
- "Allow insecure server connections when using SSL",
- CURLHELP_TLS},
- {" --interface <name>",
- "Use network INTERFACE (or address)",
- CURLHELP_CONNECTION},
- {"-4, --ipv4",
- "Resolve names to IPv4 addresses",
- CURLHELP_CONNECTION | CURLHELP_DNS},
- {"-6, --ipv6",
- "Resolve names to IPv6 addresses",
- CURLHELP_CONNECTION | CURLHELP_DNS},
- {"-j, --junk-session-cookies",
- "Ignore session cookies read from file",
- CURLHELP_HTTP},
- {" --keepalive-time <seconds>",
- "Interval time for keepalive probes",
- CURLHELP_CONNECTION},
- {" --key <key>",
- "Private key file name",
- CURLHELP_TLS | CURLHELP_SSH},
- {" --key-type <type>",
- "Private key file type (DER/PEM/ENG)",
- CURLHELP_TLS},
- {" --krb <level>",
- "Enable Kerberos with security <level>",
- CURLHELP_FTP},
- {" --libcurl <file>",
- "Dump libcurl equivalent code of this command line",
- CURLHELP_CURL},
- {" --limit-rate <speed>",
- "Limit transfer speed to RATE",
- CURLHELP_CONNECTION},
- {"-l, --list-only",
- "List only mode",
- CURLHELP_FTP | CURLHELP_POP3},
- {" --local-port <num/range>",
- "Force use of RANGE for local port numbers",
- CURLHELP_CONNECTION},
- {"-L, --location",
- "Follow redirects",
- CURLHELP_HTTP},
- {" --location-trusted",
- "Like --location, and send auth to other hosts",
- CURLHELP_HTTP | CURLHELP_AUTH},
- {" --login-options <options>",
- "Server login options",
- CURLHELP_IMAP | CURLHELP_POP3 | CURLHELP_SMTP | CURLHELP_AUTH},
- {" --mail-auth <address>",
- "Originator address of the original email",
- CURLHELP_SMTP},
- {" --mail-from <address>",
- "Mail from this address",
- CURLHELP_SMTP},
- {" --mail-rcpt <address>",
- "Mail to this address",
- CURLHELP_SMTP},
- {" --mail-rcpt-allowfails",
- "Allow RCPT TO command to fail for some recipients",
- CURLHELP_SMTP},
- {"-M, --manual",
- "Display the full manual",
- CURLHELP_CURL},
- {" --max-filesize <bytes>",
- "Maximum file size to download",
- CURLHELP_CONNECTION},
- {" --max-redirs <num>",
- "Maximum number of redirects allowed",
- CURLHELP_HTTP},
- {"-m, --max-time <seconds>",
- "Maximum time allowed for the transfer",
- CURLHELP_CONNECTION},
- {" --metalink",
- "Process given URLs as metalink XML file",
- CURLHELP_MISC},
- {" --negotiate",
- "Use HTTP Negotiate (SPNEGO) authentication",
- CURLHELP_AUTH | CURLHELP_HTTP},
- {"-n, --netrc",
- "Must read .netrc for user name and password",
- CURLHELP_CURL},
- {" --netrc-file <filename>",
- "Specify FILE for netrc",
- CURLHELP_CURL},
- {" --netrc-optional",
- "Use either .netrc or URL",
- CURLHELP_CURL},
- {"-:, --next",
- "Make next URL use its separate set of options",
- CURLHELP_CURL},
- {" --no-alpn",
- "Disable the ALPN TLS extension",
- CURLHELP_TLS | CURLHELP_HTTP},
- {"-N, --no-buffer",
- "Disable buffering of the output stream",
- CURLHELP_CURL},
- {" --no-keepalive",
- "Disable TCP keepalive on the connection",
- CURLHELP_CONNECTION},
- {" --no-npn",
- "Disable the NPN TLS extension",
- CURLHELP_TLS | CURLHELP_HTTP},
- {" --no-progress-meter",
- "Do not show the progress meter",
- CURLHELP_VERBOSE},
- {" --no-sessionid",
- "Disable SSL session-ID reusing",
- CURLHELP_TLS},
- {" --noproxy <no-proxy-list>",
- "List of hosts which do not use proxy",
- CURLHELP_PROXY},
- {" --ntlm",
- "Use HTTP NTLM authentication",
- CURLHELP_AUTH | CURLHELP_HTTP},
- {" --ntlm-wb",
- "Use HTTP NTLM authentication with winbind",
- CURLHELP_AUTH | CURLHELP_HTTP},
- {" --oauth2-bearer <token>",
- "OAuth 2 Bearer Token",
- CURLHELP_AUTH},
- {"-o, --output <file>",
- "Write to file instead of stdout",
- CURLHELP_IMPORTANT | CURLHELP_CURL},
- {" --output-dir <dir>",
- "Directory to save files in",
- CURLHELP_CURL},
- {"-Z, --parallel",
- "Perform transfers in parallel",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {" --parallel-immediate",
- "Do not wait for multiplexing (with --parallel)",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {" --parallel-max <num>",
- "Maximum concurrency for parallel transfers",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {" --pass <phrase>",
- "Pass phrase for the private key",
- CURLHELP_SSH | CURLHELP_TLS | CURLHELP_AUTH},
- {" --path-as-is",
- "Do not squash .. sequences in URL path",
- CURLHELP_CURL},
- {" --pinnedpubkey <hashes>",
- "FILE/HASHES Public key to verify peer against",
- CURLHELP_TLS},
- {" --post301",
- "Do not switch to GET after following a 301",
- CURLHELP_HTTP | CURLHELP_POST},
- {" --post302",
- "Do not switch to GET after following a 302",
- CURLHELP_HTTP | CURLHELP_POST},
- {" --post303",
- "Do not switch to GET after following a 303",
- CURLHELP_HTTP | CURLHELP_POST},
- {" --preproxy [protocol://]host[:port]",
- "Use this proxy first",
- CURLHELP_PROXY},
- {"-#, --progress-bar",
- "Display transfer progress as a bar",
- CURLHELP_VERBOSE},
- {" --proto <protocols>",
- "Enable/disable PROTOCOLS",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {" --proto-default <protocol>",
- "Use PROTOCOL for any URL missing a scheme",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {" --proto-redir <protocols>",
- "Enable/disable PROTOCOLS on redirect",
- CURLHELP_CONNECTION | CURLHELP_CURL},
- {"-x, --proxy [protocol://]host[:port]",
- "Use this proxy",
- CURLHELP_PROXY},
- {" --proxy-anyauth",
- "Pick any proxy authentication method",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --proxy-basic",
- "Use Basic authentication on the proxy",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --proxy-cacert <file>",
- "CA certificate to verify peer against for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-capath <dir>",
- "CA directory to verify peer against for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-cert <cert[:passwd]>",
- "Set client certificate for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-cert-type <type>",
- "Client certificate type for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-ciphers <list>",
- "SSL ciphers to use for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-crlfile <file>",
- "Set a CRL list for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-digest",
- "Use Digest authentication on the proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-header <header/@file>",
- "Pass custom header(s) to proxy",
- CURLHELP_PROXY},
- {" --proxy-insecure",
- "Do HTTPS proxy connections without verifying the proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-key <key>",
- "Private key for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-key-type <type>",
- "Private key file type for proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-negotiate",
- "Use HTTP Negotiate (SPNEGO) authentication on the proxy",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --proxy-ntlm",
- "Use NTLM authentication on the proxy",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --proxy-pass <phrase>",
- "Pass phrase for the private key for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
- {" --proxy-pinnedpubkey <hashes>",
- "FILE/HASHES public key to verify proxy with",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-service-name <name>",
- "SPNEGO proxy service name",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-ssl-allow-beast",
- "Allow security flaw for interop for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-ssl-auto-client-cert",
- "Use auto client certificate for proxy (Schannel)",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-tls13-ciphers <ciphersuite list>",
- "TLS 1.3 proxy cipher suites",
- CURLHELP_PROXY | CURLHELP_TLS},
- {" --proxy-tlsauthtype <type>",
- "TLS authentication type for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
- {" --proxy-tlspassword <string>",
- "TLS password for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
- {" --proxy-tlsuser <name>",
- "TLS username for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
- {" --proxy-tlsv1",
- "Use TLSv1 for HTTPS proxy",
- CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
- {"-U, --proxy-user <user:password>",
- "Proxy user and password",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --proxy1.0 <host[:port]>",
- "Use HTTP/1.0 proxy on given port",
- CURLHELP_PROXY},
- {"-p, --proxytunnel",
- "Operate through an HTTP proxy tunnel (using CONNECT)",
- CURLHELP_PROXY},
- {" --pubkey <key>",
- "SSH Public key file name",
- CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_AUTH},
- {"-Q, --quote <command>",
- "Send command(s) to server before transfer",
- CURLHELP_FTP | CURLHELP_SFTP},
- {" --random-file <file>",
- "File for reading random data from",
- CURLHELP_MISC},
- {"-r, --range <range>",
- "Retrieve only the bytes within RANGE",
- CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_FILE},
- {" --raw",
- "Do HTTP \"raw\"; no transfer decoding",
- CURLHELP_HTTP},
- {"-e, --referer <URL>",
- "Referrer URL",
- CURLHELP_HTTP},
- {"-J, --remote-header-name",
- "Use the header-provided filename",
- CURLHELP_OUTPUT},
- {"-O, --remote-name",
- "Write output to a file named as the remote file",
- CURLHELP_IMPORTANT | CURLHELP_OUTPUT},
- {" --remote-name-all",
- "Use the remote file name for all URLs",
- CURLHELP_OUTPUT},
- {"-R, --remote-time",
- "Set the remote file's time on the local output",
- CURLHELP_OUTPUT},
- {"-X, --request <command>",
- "Specify request command to use",
- CURLHELP_CONNECTION},
- {" --request-target <path>",
- "Specify the target for this request",
- CURLHELP_HTTP},
- {" --resolve <[+]host:port:addr[,addr]...>",
- "Resolve the host+port to this address",
- CURLHELP_CONNECTION},
- {" --retry <num>",
- "Retry request if transient problems occur",
- CURLHELP_CURL},
- {" --retry-all-errors",
- "Retry all errors (use with --retry)",
- CURLHELP_CURL},
- {" --retry-connrefused",
- "Retry on connection refused (use with --retry)",
- CURLHELP_CURL},
- {" --retry-delay <seconds>",
- "Wait time between retries",
- CURLHELP_CURL},
- {" --retry-max-time <seconds>",
- "Retry only within this period",
- CURLHELP_CURL},
- {" --sasl-authzid <identity>",
- "Identity for SASL PLAIN authentication",
- CURLHELP_AUTH},
- {" --sasl-ir",
- "Enable initial response in SASL authentication",
- CURLHELP_AUTH},
- {" --service-name <name>",
- "SPNEGO service name",
- CURLHELP_MISC},
- {"-S, --show-error",
- "Show error even when -s is used",
- CURLHELP_CURL},
- {"-s, --silent",
- "Silent mode",
- CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
- {" --socks4 <host[:port]>",
- "SOCKS4 proxy on given host + port",
- CURLHELP_PROXY},
- {" --socks4a <host[:port]>",
- "SOCKS4a proxy on given host + port",
- CURLHELP_PROXY},
- {" --socks5 <host[:port]>",
- "SOCKS5 proxy on given host + port",
- CURLHELP_PROXY},
- {" --socks5-basic",
- "Enable username/password auth for SOCKS5 proxies",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --socks5-gssapi",
- "Enable GSS-API auth for SOCKS5 proxies",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --socks5-gssapi-nec",
- "Compatibility with NEC SOCKS5 server",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --socks5-gssapi-service <name>",
- "SOCKS5 proxy service name for GSS-API",
- CURLHELP_PROXY | CURLHELP_AUTH},
- {" --socks5-hostname <host[:port]>",
- "SOCKS5 proxy, pass host name to proxy",
- CURLHELP_PROXY},
- {"-Y, --speed-limit <speed>",
- "Stop transfers slower than this",
- CURLHELP_CONNECTION},
- {"-y, --speed-time <seconds>",
- "Trigger 'speed-limit' abort after this time",
- CURLHELP_CONNECTION},
- {" --ssl",
- "Try SSL/TLS",
- CURLHELP_TLS},
- {" --ssl-allow-beast",
- "Allow security flaw to improve interop",
- CURLHELP_TLS},
- {" --ssl-auto-client-cert",
- "Use auto client certificate (Schannel)",
- CURLHELP_TLS},
- {" --ssl-no-revoke",
- "Disable cert revocation checks (Schannel)",
- CURLHELP_TLS},
- {" --ssl-reqd",
- "Require SSL/TLS",
- CURLHELP_TLS},
- {" --ssl-revoke-best-effort",
- "Ignore missing/offline cert CRL dist points",
- CURLHELP_TLS},
- {"-2, --sslv2",
- "Use SSLv2",
- CURLHELP_TLS},
- {"-3, --sslv3",
- "Use SSLv3",
- CURLHELP_TLS},
- {" --stderr <file>",
- "Where to redirect stderr",
- CURLHELP_VERBOSE},
- {" --styled-output",
- "Enable styled output for HTTP headers",
- CURLHELP_VERBOSE},
- {" --suppress-connect-headers",
- "Suppress proxy CONNECT response headers",
- CURLHELP_PROXY},
- {" --tcp-fastopen",
- "Use TCP Fast Open",
- CURLHELP_CONNECTION},
- {" --tcp-nodelay",
- "Use the TCP_NODELAY option",
- CURLHELP_CONNECTION},
- {"-t, --telnet-option <opt=val>",
- "Set telnet option",
- CURLHELP_TELNET},
- {" --tftp-blksize <value>",
- "Set TFTP BLKSIZE option",
- CURLHELP_TFTP},
- {" --tftp-no-options",
- "Do not send any TFTP options",
- CURLHELP_TFTP},
- {"-z, --time-cond <time>",
- "Transfer based on a time condition",
- CURLHELP_HTTP | CURLHELP_FTP},
- {" --tls-max <VERSION>",
- "Set maximum allowed TLS version",
- CURLHELP_TLS},
- {" --tls13-ciphers <ciphersuite list>",
- "TLS 1.3 cipher suites to use",
- CURLHELP_TLS},
- {" --tlsauthtype <type>",
- "TLS authentication type",
- CURLHELP_TLS | CURLHELP_AUTH},
- {" --tlspassword <string>",
- "TLS password",
- CURLHELP_TLS | CURLHELP_AUTH},
- {" --tlsuser <name>",
- "TLS user name",
- CURLHELP_TLS | CURLHELP_AUTH},
- {"-1, --tlsv1",
- "Use TLSv1.0 or greater",
- CURLHELP_TLS},
- {" --tlsv1.0",
- "Use TLSv1.0 or greater",
- CURLHELP_TLS},
- {" --tlsv1.1",
- "Use TLSv1.1 or greater",
- CURLHELP_TLS},
- {" --tlsv1.2",
- "Use TLSv1.2 or greater",
- CURLHELP_TLS},
- {" --tlsv1.3",
- "Use TLSv1.3 or greater",
- CURLHELP_TLS},
- {" --tr-encoding",
- "Request compressed transfer encoding",
- CURLHELP_HTTP},
- {" --trace <file>",
- "Write a debug trace to FILE",
- CURLHELP_VERBOSE},
- {" --trace-ascii <file>",
- "Like --trace, but without hex output",
- CURLHELP_VERBOSE},
- {" --trace-time",
- "Add time stamps to trace/verbose output",
- CURLHELP_VERBOSE},
- {" --unix-socket <path>",
- "Connect through this Unix domain socket",
- CURLHELP_CONNECTION},
- {"-T, --upload-file <file>",
- "Transfer local FILE to destination",
- CURLHELP_IMPORTANT | CURLHELP_UPLOAD},
- {" --url <url>",
- "URL to work with",
- CURLHELP_CURL},
- {"-B, --use-ascii",
- "Use ASCII/text transfer",
- CURLHELP_MISC},
- {"-u, --user <user:password>",
- "Server user and password",
- CURLHELP_IMPORTANT | CURLHELP_AUTH},
- {"-A, --user-agent <name>",
- "Send User-Agent <name> to server",
- CURLHELP_IMPORTANT | CURLHELP_HTTP},
- {"-v, --verbose",
- "Make the operation more talkative",
- CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
- {"-V, --version",
- "Show version number and quit",
- CURLHELP_IMPORTANT | CURLHELP_CURL},
- {"-w, --write-out <format>",
- "Use output FORMAT after completion",
- CURLHELP_VERBOSE},
- {" --xattr",
- "Store metadata in extended file attributes",
- CURLHELP_MISC},
- { NULL, NULL, CURLHELP_HIDDEN }
-};
+extern const struct helptxt helptext[];
struct feat {
const char *name;
@@ -892,9 +115,26 @@ static const struct feat feats[] = {
static void print_category(curlhelp_t category)
{
unsigned int i;
+ size_t longopt = 5;
+ size_t longdesc = 5;
+
+ for(i = 0; helptext[i].opt; ++i) {
+ size_t len;
+ if(!(helptext[i].categories & category))
+ continue;
+ len = strlen(helptext[i].opt);
+ if(len > longopt)
+ longopt = len;
+ len = strlen(helptext[i].desc);
+ if(len > longdesc)
+ longdesc = len;
+ }
+ if(longopt + longdesc > 80)
+ longopt = 80 - longdesc;
+
for(i = 0; helptext[i].opt; ++i)
if(helptext[i].categories & category) {
- printf(" %-18s %s\n", helptext[i].opt, helptext[i].desc);
+ printf(" %-*s %s\n", (int)longopt, helptext[i].opt, helptext[i].desc);
}
}
diff --git a/src/tool_help.h b/src/tool_help.h
index 39ea2400d..143466286 100644
--- a/src/tool_help.h
+++ b/src/tool_help.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -27,4 +27,46 @@ void tool_help(char *category);
void tool_list_engines(void);
void tool_version_info(void);
+typedef unsigned int curlhelp_t;
+
+struct helptxt {
+ const char *opt;
+ const char *desc;
+ curlhelp_t categories;
+};
+
+/*
+ * The bitmask output is generated with the following command
+ ------------------------------------------------------------
+ cd $srcroot/docs/cmdline-opts
+ ./gen.pl listcats *.d
+ */
+
+#define CURLHELP_HIDDEN 1u << 0u
+#define CURLHELP_AUTH 1u << 1u
+#define CURLHELP_CONNECTION 1u << 2u
+#define CURLHELP_CURL 1u << 3u
+#define CURLHELP_DNS 1u << 4u
+#define CURLHELP_FILE 1u << 5u
+#define CURLHELP_FTP 1u << 6u
+#define CURLHELP_HTTP 1u << 7u
+#define CURLHELP_IMAP 1u << 8u
+#define CURLHELP_IMPORTANT 1u << 9u
+#define CURLHELP_MISC 1u << 10u
+#define CURLHELP_OUTPUT 1u << 11u
+#define CURLHELP_POP3 1u << 12u
+#define CURLHELP_POST 1u << 13u
+#define CURLHELP_PROXY 1u << 14u
+#define CURLHELP_SCP 1u << 15u
+#define CURLHELP_SFTP 1u << 16u
+#define CURLHELP_SMTP 1u << 17u
+#define CURLHELP_SSH 1u << 18u
+#define CURLHELP_TELNET 1u << 19u
+#define CURLHELP_TFTP 1u << 20u
+#define CURLHELP_TLS 1u << 21u
+#define CURLHELP_UPLOAD 1u << 22u
+#define CURLHELP_VERBOSE 1u << 23u
+
+extern const struct helptxt helptext[];
+
#endif /* HEADER_CURL_TOOL_HELP_H */
diff --git a/src/tool_helpers.c b/src/tool_helpers.c
index 8cd2ac58a..04b0510be 100644
--- a/src/tool_helpers.c
+++ b/src/tool_helpers.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -68,6 +68,10 @@ const char *param2text(int res)
return "too large number";
case PARAM_NO_NOT_BOOLEAN:
return "used '--no-' for option that isn't a boolean";
+ case PARAM_CONTDISP_SHOW_HEADER:
+ return "--include and --remote-header-name cannot be combined";
+ case PARAM_CONTDISP_RESUME_FROM:
+ return "--continue-at and --remote-header-name cannot be combined";
default:
return "unknown error";
}
diff --git a/src/tool_hugehelp.c b/src/tool_hugehelp.c
index f1fb95143..a28da1d46 100644
--- a/src/tool_hugehelp.c
+++ b/src/tool_hugehelp.c
@@ -21,13 +21,13 @@ void hugehelp(void)
" curl [options / URLs]\n"
"\n"
"DESCRIPTION\n"
-" curl is a tool to transfer data from or to a server, using one of the\n"
-" supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,\n"
+" curl is a tool for transferring data from or to a server. It supports\n"
+" these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS,\n"
, stdout);
fputs(
-" IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP,\n"
-" SMB, SMBS, SMTP, SMTPS, TELNET or TFTP). The command is designed to\n"
-" work without user interaction.\n"
+" IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP,\n"
+" SFTP, SMB, SMBS, SMTP, SMTPS, TELNET or TFTP. The command is designed\n"
+" to work without user interaction.\n"
"\n"
" curl offers a busload of useful tricks like proxy support, user authen-\n"
" tication, FTP upload, HTTP post, SSL connections, cookies, file trans-\n"
@@ -40,8 +40,8 @@ void hugehelp(void)
" libcurl(3) for details.\n"
"\n"
"URL\n"
-" The URL syntax is protocol-dependent. You'll find a detailed descrip-\n"
-" tion in RFC 3986.\n"
+" The URL syntax is protocol-dependent. You find a detailed description\n"
+" in RFC 3986.\n"
"\n"
" You can specify multiple URLs or parts of URLs by writing part sets\n"
" within braces and quoting the URL as in:\n"
@@ -139,7 +139,8 @@ void hugehelp(void)
fputs(
" and levers. With or without using TLS.\n"
"\n"
-" GOPHER Retrieve files.\n"
+" GOPHER(S)\n"
+" Retrieve files.\n"
"\n"
" HTTP(S)\n"
" curl supports HTTP with numerous options and variations. It can\n"
@@ -157,17 +158,16 @@ void hugehelp(void)
"\n"
" MQTT curl supports MQTT version 3. Downloading over MQTT equals \"sub-\n"
" scribe\" to a topic while uploading/posting equals \"publish\" on a\n"
-" topic. MQTT support is experimental and TLS based MQTT is not\n"
-" supported (yet).\n"
+" topic. MQTT over TLS is not supported (yet).\n"
"\n"
" POP3(S)\n"
-" Downloading from a pop3 server means getting a mail. With or\n"
+" Downloading from a pop3 server means getting a mail. With or\n"
" without using TLS.\n"
"\n"
" RTMP(S)\n"
, stdout);
fputs(
-" The Realtime Messaging Protocol is primarily used to server\n"
+" The Realtime Messaging Protocol is primarily used to server\n"
" streaming media and curl can download it.\n"
"\n"
" RTSP curl supports RTSP 1.0 downloads.\n"
@@ -179,97 +179,98 @@ void hugehelp(void)
" SMB(S) curl supports SMB version 1 for upload and download.\n"
"\n"
" SMTP(S)\n"
-" Uploading contents to an SMTP server means sending an email.\n"
+" Uploading contents to an SMTP server means sending an email.\n"
, stdout);
fputs(
" With or without TLS.\n"
"\n"
" TELNET Telling curl to fetch a telnet URL starts an interactive session\n"
-" where it sends what it reads on stdin and outputs what the\n"
+" where it sends what it reads on stdin and outputs what the\n"
" server sends it.\n"
"\n"
" TFTP curl can do TFTP downloads and uploads.\n"
"\n"
"PROGRESS METER\n"
-" curl normally displays a progress meter during operations, indicating\n"
-" the amount of transferred data, transfer speeds and estimated time\n"
+" curl normally displays a progress meter during operations, indicating\n"
+" the amount of transferred data, transfer speeds and estimated time\n"
, stdout);
fputs(
-" left, etc. The progress meter displays number of bytes and the speeds\n"
-" are in bytes per second. The suffixes (k, M, G, T, P) are 1024 based.\n"
+" left, etc. The progress meter displays number of bytes and the speeds\n"
+" are in bytes per second. The suffixes (k, M, G, T, P) are 1024 based.\n"
" For example 1k is 1024 bytes. 1M is 1048576 bytes.\n"
"\n"
-" curl displays this data to the terminal by default, so if you invoke\n"
-" curl to do an operation and it is about to write data to the terminal,\n"
+" curl displays this data to the terminal by default, so if you invoke\n"
+" curl to do an operation and it is about to write data to the terminal,\n"
" it disables the progress meter as otherwise it would mess up the output\n"
, stdout);
fputs(
" mixing progress meter and response data.\n"
"\n"
" If you want a progress meter for HTTP POST or PUT requests, you need to\n"
-" redirect the response output to a file, using shell redirect (>), -o,\n"
+" redirect the response output to a file, using shell redirect (>), -o,\n"
" --output or similar.\n"
"\n"
-" This does not apply to FTP upload as that operation does not spit out\n"
+" This does not apply to FTP upload as that operation does not spit out\n"
" any response data to the terminal.\n"
"\n"
-" If you prefer a progress \"bar\" instead of the regular meter, -#,\n"
+" If you prefer a progress \"bar\" instead of the regular meter, -#,\n"
, stdout);
fputs(
-" --progress-bar is your friend. You can also disable the progress meter\n"
+" --progress-bar is your friend. You can also disable the progress meter\n"
" completely with the -s, --silent option.\n"
"\n"
"OPTIONS\n"
-" Options start with one or two dashes. Many of the options require an\n"
+" Options start with one or two dashes. Many of the options require an\n"
" additional value next to them.\n"
"\n"
-" The short \"single-dash\" form of the options, -d for example, may be\n"
+" The short \"single-dash\" form of the options, -d for example, may be\n"
" used with or without a space between it and its value, although a space\n"
" is a recommended separator. The long \"double-dash\" form, -d, --data for\n"
, stdout);
fputs(
" example, requires a space between it and its value.\n"
"\n"
-" Short version options that don't need any additional values can be used\n"
-" immediately next to each other, like for example you can specify all\n"
-" the options -O, -L and -v at once as -OLv.\n"
+" Short version options that do not need any additional values can be\n"
+" used immediately next to each other, like for example you can specify\n"
+" all the options -O, -L and -v at once as -OLv.\n"
"\n"
" In general, all boolean options are enabled with --option and yet again\n"
-" disabled with --no-option. That is, you use the exact same option name\n"
+" disabled with --no-option. That is, you use the exact same option name\n"
, stdout);
fputs(
" but prefix it with \"no-\". However, in this list we mostly only list and\n"
-" show the --option version of them. (This concept with --no options was\n"
-" added in 7.19.0. Previously most options were toggled on/off through\n"
-" repeated use of the same command line option.)\n"
+" show the --option version of them.\n"
"\n"
" --abstract-unix-socket <path>\n"
-" (HTTP) Connect through an abstract Unix domain socket, instead\n"
-" of using the network. Note: netstat shows the path of an ab-\n"
+" (HTTP) Connect through an abstract Unix domain socket, instead\n"
+" of using the network. Note: netstat shows the path of an ab-\n"
+" stract socket prefixed with '@', however the <path> argument\n"
+" should not have this leading character.\n"
+"\n"
+" Example:\n"
, stdout);
fputs(
-" stract socket prefixed with '@', however the <path> argument\n"
-" should not have this leading character.\n"
+" curl --abstract-unix-socket socketpath https://example.com\n"
"\n"
" Added in 7.53.0.\n"
"\n"
" --alt-svc <file name>\n"
-" (HTTPS) WARNING: this option is experimental. Do not use in pro-\n"
-" duction.\n"
+" (HTTPS) This option enables the alt-svc parser in curl. If the\n"
+" file name points to an existing alt-svc cache file, that will be\n"
+" used. After a completed transfer, the cache will be saved to the\n"
+" file name again if it has been modified.\n"
"\n"
-" This option enables the alt-svc parser in curl. If the file name\n"
-" points to an existing alt-svc cache file, that will be used. Af-\n"
, stdout);
fputs(
-" 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"
+" Example:\n"
+" curl --alt-svc svc.txt https://example.com\n"
+"\n"
" Added in 7.64.1.\n"
"\n"
" --anyauth\n"
@@ -292,21 +293,27 @@ void hugehelp(void)
"\n"
" Used together with -u, --user.\n"
"\n"
-" See also --proxy-anyauth, --basic and --digest.\n"
+" Example:\n"
+" curl --anyauth --user me:pwd https://example.com\n"
"\n"
-" -a, --append\n"
, stdout);
fputs(
+" See also --proxy-anyauth, --basic and --digest.\n"
+"\n"
+" -a, --append\n"
" (FTP SFTP) When used in an upload, this makes curl append to the\n"
-" target file instead of overwriting it. If the remote file\n"
-" doesn't exist, it will be created. Note that this flag is ig-\n"
-" nored by some SFTP servers (including OpenSSH).\n"
+" target file instead of overwriting it. If the remote file does\n"
+" not exist, it will be created. Note that this flag is ignored\n"
+" by some SFTP servers (including OpenSSH).\n"
"\n"
-" --aws-sigv4 <provider1[:provider2[:region[:service]]]>\n"
-" Use AWS V4 signature authentication in the transfer.\n"
+" Example:\n"
+" curl --upload-file local --append ftp://example.com/\n"
"\n"
, stdout);
fputs(
+" --aws-sigv4 <provider1[:provider2[:region[:service]]]>\n"
+" Use AWS V4 signature authentication in the transfer.\n"
+"\n"
" The provider argument is a string that is used by the algorithm\n"
" when creating outgoing authentication headers.\n"
"\n"
@@ -314,16 +321,21 @@ void hugehelp(void)
" of a resources collection (region-code) when the region name is\n"
" omitted from the endpoint.\n"
"\n"
-" The service argument is a string that points to a function pro-\n"
-" vided by a cloud (service-code) when the service name is omitted\n"
, stdout);
fputs(
+" The service argument is a string that points to a function pro-\n"
+" vided by a cloud (service-code) when the service name is omitted\n"
" from the endpoint.\n"
"\n"
+" Example:\n"
+" curl --aws-sigv4 \"aws:amz:east-2:es\" --user \"key:secret\" https://example.com\n"
+"\n"
" Added in 7.75.0.\n"
"\n"
" --basic\n"
" (HTTP) Tells curl to use HTTP Basic authentication with the re-\n"
+, stdout);
+ fputs(
" mote host. This is the default and this option is usually point-\n"
" less, unless you use it to override a previously set option that\n"
" sets a different authentication method (such as --ntlm, --di-\n"
@@ -331,11 +343,14 @@ void hugehelp(void)
"\n"
" Used together with -u, --user.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl -u name:password --basic https://example.com\n"
+"\n"
" See also --proxy-basic.\n"
"\n"
" --cacert <file>\n"
+, stdout);
+ fputs(
" (TLS) Tells curl to use the specified certificate file to verify\n"
" the peer. The file may contain multiple CA certificates. The\n"
" certificate(s) must be in PEM format. Normally curl is built to\n"
@@ -378,29 +393,37 @@ void hugehelp(void)
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --cacert CA-file.txt https://example.com\n"
+"\n"
" --capath <dir>\n"
" (TLS) Tells curl to use the specified certificate directory to\n"
" verify the peer. Multiple paths can be provided by separating\n"
" them with \":\" (e.g. \"path1:path2:path3\"). The certificates must\n"
-" be in PEM format, and if curl is built against OpenSSL, the di-\n"
-" rectory must have been processed using the c_rehash utility sup-\n"
, stdout);
fputs(
+" be in PEM format, and if curl is built against OpenSSL, the di-\n"
+" rectory must have been processed using the c_rehash utility sup-\n"
" plied with OpenSSL. Using --capath can allow OpenSSL-powered\n"
" curl to make SSL-connections much more efficiently than using\n"
" --cacert if the --cacert file contains many CA certificates.\n"
"\n"
" If this option is set, the default capath value will be ignored,\n"
+, stdout);
+ fputs(
" and if it is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --capath /local/directory https://example.com\n"
+"\n"
" --cert-status\n"
" (TLS) Tells curl to verify the status of the server certificate\n"
-, stdout);
- fputs(
" by using the Certificate Status Request (aka. OCSP stapling) TLS\n"
" extension.\n"
"\n"
" If this option is enabled and the server sends an invalid (e.g.\n"
+, stdout);
+ fputs(
" expired) response, if the response suggests that the server cer-\n"
" tificate has been revoked, or no response at all is received,\n"
" the verification fails.\n"
@@ -408,17 +431,23 @@ void hugehelp(void)
" This is currently only implemented in the OpenSSL, GnuTLS and\n"
" NSS backends.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --cert-status https://example.com\n"
+"\n"
" Added in 7.41.0.\n"
"\n"
" --cert-type <type>\n"
+, stdout);
+ fputs(
" (TLS) Tells curl what type the provided client certificate is\n"
" using. PEM, DER, ENG and P12 are recognized types. If not spec-\n"
" ified, PEM is assumed.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --cert-type PEM --cert file https://example.com\n"
+"\n"
" See also -E, --cert, --key and --key-type.\n"
"\n"
" -E, --cert <certificate[:password]>\n"
@@ -428,7 +457,7 @@ void hugehelp(void)
" when getting a file with HTTPS, FTPS or another SSL-based proto-\n"
" col. The certificate must be in PKCS#12 format if using Secure\n"
" Transport, or PEM format if using any other engine. If the op-\n"
-" tional password isn't specified, it will be queried for on the\n"
+" tional password is not specified, it will be queried for on the\n"
" terminal. Note that this option assumes a \"certificate\" file\n"
, stdout);
fputs(
@@ -487,6 +516,9 @@ void hugehelp(void)
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --cert certfile --key keyfile https://example.com\n"
+"\n"
" See also --cert-type, --key and --key-type.\n"
"\n"
" --ciphers <list of ciphers>\n"
@@ -494,16 +526,24 @@ void hugehelp(void)
" of ciphers must specify valid ciphers. Read up on SSL cipher\n"
" list details on this URL:\n"
"\n"
-" https://curl.se/docs/ssl-ciphers.html\n"
-"\n"
, stdout);
fputs(
+" https://curl.se/docs/ssl-ciphers.html\n"
+"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com\n"
+"\n"
" --compressed-ssh\n"
" (SCP SFTP) Enables built-in SSH compression. This is a request,\n"
" not an order; the server may or may not do it.\n"
"\n"
+" Example:\n"
+" curl --compressed-ssh sftp://example.com/\n"
+"\n"
+, stdout);
+ fputs(
" Added in 7.56.0.\n"
"\n"
" --compressed\n"
@@ -511,57 +551,61 @@ void hugehelp(void)
" curl supports, and automatically decompress the content. Headers\n"
" are not modified.\n"
"\n"
+" If this option is used and the server sends an unsupported en-\n"
+" coding, curl will report an error. This is a request, not an or-\n"
+" der; the server may or may not deliver data compressed.\n"
+"\n"
+" Example:\n"
, stdout);
fputs(
-" If this option is used and the server sends an unsupported en-\n"
-" coding, curl will report an error.\n"
+" curl --compressed https://example.com\n"
"\n"
" -K, --config <file>\n"
-"\n"
-" Specify a text file to read curl arguments from. The command\n"
-" line arguments found in the text file will be used as if they\n"
+" Specify a text file to read curl arguments from. The command\n"
+" line arguments found in the text file will be used as if they\n"
" were provided on the command line.\n"
"\n"
-" Options and their parameters must be specified on the same line\n"
+" Options and their parameters must be specified on the same line\n"
+" in the file, separated by whitespace, colon, or the equals sign.\n"
, stdout);
fputs(
-" in the file, separated by whitespace, colon, or the equals sign.\n"
-" Long option names can optionally be given in the config file\n"
+" Long option names can optionally be given in the config file\n"
" without the initial double dashes and if so, the colon or equals\n"
" characters can be used as separators. If the option is specified\n"
-" with one or two dashes, there can be no colon or equals charac-\n"
+" with one or two dashes, there can be no colon or equals charac-\n"
" ter between the option and its parameter.\n"
"\n"
+" If the parameter contains whitespace (or starts with : or =),\n"
, stdout);
fputs(
-" If the parameter contains whitespace (or starts with : or =),\n"
-" the parameter must be enclosed within quotes. Within double\n"
-" quotes, the following escape sequences are available: \\\\, \\\",\n"
+" the parameter must be enclosed within quotes. Within double\n"
+" quotes, the following escape sequences are available: \\\\, \\\",\n"
" \\t, \\n, \\r and \\v. A backslash preceding any other letter is ig-\n"
" nored.\n"
"\n"
-" If the first column of a config line is a '#' character, the\n"
+" If the first column of a config line is a '#' character, the\n"
" rest of the line will be treated as a comment.\n"
"\n"
-, stdout);
- fputs(
" Only write one option per physical line in the config file.\n"
"\n"
-" Specify the filename to -K, --config as '-' to make curl read\n"
+, stdout);
+ fputs(
+" Specify the filename to -K, --config as '-' to make curl read\n"
" the file from stdin.\n"
"\n"
-" Note that to be able to specify a URL in the config file, you\n"
-" need to specify it using the --url option, and not by simply\n"
-" writing the URL on its own line. So, it could look similar to\n"
+" Note that to be able to specify a URL in the config file, you\n"
+" need to specify it using the --url option, and not by simply\n"
+" writing the URL on its own line. So, it could look similar to\n"
" this:\n"
"\n"
" url = \"https://curl.se/docs/\"\n"
"\n"
+" When curl is invoked, it (unless -q, --disable is used) checks\n"
, stdout);
fputs(
-" When curl is invoked, it (unless -q, --disable is used) checks\n"
-" for a default config file and uses it if found. The default con-\n"
-" fig file is checked for in the following places in this order:\n"
+" for a default config file and uses it if found, even when this\n"
+" option is used. The default config file is checked for in the\n"
+" following places in this order:\n"
"\n"
" 1) Use the CURL_HOME environment variable if set\n"
"\n"
@@ -570,13 +614,13 @@ void hugehelp(void)
"\n"
" 3) Use the HOME environment variable if set\n"
"\n"
+" 4) Non-windows: use getpwuid to find the home directory\n"
, stdout);
fputs(
-" 4) Non-windows: use getpwuid to find the home directory\n"
"\n"
" 5) Windows: use APPDATA if set\n"
"\n"
-" 6) Windows: use \"USERPROFILE0lication Data\" if set\n"
+" 6) Windows: use \"USERPROFILE\\Application Data\" if set\n"
"\n"
" 7) On windows, if there is no .curlrc file in the home dir, it\n"
" checks for one in the same dir the curl executable is placed. On\n"
@@ -584,10 +628,10 @@ void hugehelp(void)
" determined home dir.\n"
"\n"
" # --- Example file ---\n"
-, stdout);
- fputs(
" # this is a comment\n"
" url = \"example.com\"\n"
+, stdout);
+ fputs(
" output = \"curlhere.html\"\n"
" user-agent = \"superagent/1.0\"\n"
"\n"
@@ -600,166 +644,202 @@ void hugehelp(void)
" This option can be used multiple times to load multiple config\n"
" files.\n"
"\n"
+" Example:\n"
+" curl --config file.txt https://example.com\n"
+"\n"
, stdout);
fputs(
-" --connect-timeout <seconds>\n"
+" --connect-timeout <fractional seconds>\n"
" Maximum time in seconds that you allow curl's connection to\n"
" take. This only limits the connection phase, so if curl con-\n"
" nects within the given period it will continue - if not it will\n"
" exit. Since version 7.32.0, this option accepts decimal values.\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" See also -m, --max-time.\n"
-"\n"
+" Examples:\n"
, stdout);
fputs(
+" curl --connect-timeout 20 https://example.com\n"
+" curl --connect-timeout 3.14 https://example.com\n"
+"\n"
+" See also -m, --max-time.\n"
+"\n"
" --connect-to <HOST1:PORT1:HOST2:PORT2>\n"
"\n"
" For a request to the given HOST1:PORT1 pair, connect to\n"
" HOST2:PORT2 instead. This option is suitable to direct requests\n"
" at a specific server, e.g. at a specific cluster node in a clus-\n"
-" ter of servers. This option is only used to establish the net-\n"
-" work connection. It does NOT affect the hostname/port that is\n"
, stdout);
fputs(
+" ter of servers. This option is only used to establish the net-\n"
+" work connection. It does NOT affect the hostname/port that is\n"
" used for TLS/SSL (e.g. SNI, certificate verification) or for the\n"
" application protocols. \"HOST1\" and \"PORT1\" may be the empty\n"
" string, meaning \"any host/port\". \"HOST2\" and \"PORT2\" may also be\n"
" the empty string, meaning \"use the request's original\n"
" host/port\".\n"
-"\n"
-" A \"host\" specified to this option is compared as a string, so it\n"
, stdout);
fputs(
+"\n"
+" A \"host\" specified to this option is compared as a string, so it\n"
" needs to match the name used in request URL. It can be either\n"
" numerical such as \"127.0.0.1\" or the full host name such as \"ex-\n"
" ample.org\".\n"
"\n"
" This option can be used many times to add many connect rules.\n"
"\n"
+" Example:\n"
+" curl --connect-to example.com:443:example.net:8443 https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" See also --resolve and -H, --header. Added in 7.49.0.\n"
"\n"
" -C, --continue-at <offset>\n"
" Continue/Resume a previous file transfer at the given offset.\n"
-, stdout);
- fputs(
" The given offset is the exact number of bytes that will be\n"
" skipped, counting from the beginning of the source file before\n"
" it is transferred to the destination. If used with uploads, the\n"
" FTP server command SIZE will not be used by curl.\n"
"\n"
+, stdout);
+ fputs(
" Use \"-C -\" to tell curl to automatically find out where/how to\n"
" resume the transfer. It then uses the given output/input files\n"
" to figure that out.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl -C - https://example.com\n"
+" curl -C 400 https://example.com\n"
+"\n"
" See also -r, --range.\n"
"\n"
" -c, --cookie-jar <filename>\n"
+, stdout);
+ fputs(
" (HTTP) Specify to which file you want curl to write all cookies\n"
" after a completed operation. Curl writes all cookies from its\n"
" in-memory cookie storage to the given file at the end of opera-\n"
" tions. If no cookies are known, no data will be written. The\n"
-, stdout);
- fputs(
" file will be written using the Netscape cookie file format. If\n"
" you set the file name to a single dash, \"-\", the cookies will be\n"
+, stdout);
+ fputs(
" written to stdout.\n"
"\n"
" This command line option will activate the cookie engine that\n"
" makes curl record and use cookies. Another way to activate it is\n"
" to use the -b, --cookie option.\n"
"\n"
-" If the cookie jar can't be created or written to, the whole curl\n"
+" If the cookie jar cannot be created or written to, the whole\n"
+" curl operation will not fail or even report an error clearly.\n"
+" Using -v, --verbose will get a warning displayed, but that is\n"
, stdout);
fputs(
-" operation won't fail or even report an error clearly. Using -v,\n"
-" --verbose will get a warning displayed, but that is the only\n"
-" visible feedback you get about this possibly lethal situation.\n"
+" the only visible feedback you get about this possibly lethal\n"
+" situation.\n"
"\n"
-" If this option is used several times, the last specified file\n"
+" If this option is used several times, the last specified file\n"
" name will be used.\n"
"\n"
+" Examples:\n"
+" curl -c store-here.txt https://example.com\n"
+" curl -c store-here.txt -b read-these https://example.com\n"
+"\n"
" -b, --cookie <data|filename>\n"
" (HTTP) Pass the data to the HTTP server in the Cookie header. It\n"
, stdout);
fputs(
-" is supposedly the data previously received from the server in a\n"
-" \"Set-Cookie:\" line. The data should be in the format\n"
+" is supposedly the data previously received from the server in a\n"
+" \"Set-Cookie:\" line. The data should be in the format\n"
" \"NAME1=VALUE1; NAME2=VALUE2\".\n"
"\n"
-" If no '=' symbol is used in the argument, it is instead treated\n"
+" If no '=' symbol is used in the argument, it is instead treated\n"
" as a filename to read previously stored cookie from. This option\n"
" also activates the cookie engine which will make curl record in-\n"
, stdout);
fputs(
-" coming cookies, which may be handy if you're using this in com-\n"
-" bination with the -L, --location option or do multiple URL\n"
-" transfers on the same invoke. If the file name is exactly a mi-\n"
+" coming cookies, which may be handy if you are using this in com-\n"
+" bination with the -L, --location option or do multiple URL\n"
+" transfers on the same invoke. If the file name is exactly a mi-\n"
" nus (\"-\"), curl will instead read the contents from stdin.\n"
"\n"
" The file format of the file to read cookies from should be plain\n"
-" HTTP headers (Set-Cookie style) or the Netscape/Mozilla cookie\n"
+" HTTP headers (Set-Cookie style) or the Netscape/Mozilla cookie\n"
" file format.\n"
"\n"
, stdout);
fputs(
-" The file specified with -b, --cookie is only used as input. No\n"
-" cookies will be written to the file. To store cookies, use the\n"
+" The file specified with -b, --cookie is only used as input. No\n"
+" cookies will be written to the file. To store cookies, use the\n"
" -c, --cookie-jar option.\n"
"\n"
-" If you use the Set-Cookie file format and don't specify a domain\n"
-" then the cookie is not sent since the domain will never match.\n"
-" To address this, set a domain in Set-Cookie line (doing that\n"
+" If you use the Set-Cookie file format and do not specify a do-\n"
+" main then the cookie is not sent since the domain will never\n"
+" match. To address this, set a domain in Set-Cookie line (doing\n"
, stdout);
fputs(
-" will include sub-domains) or preferably: use the Netscape for-\n"
-" mat.\n"
+" that will include sub-domains) or preferably: use the Netscape\n"
+" format.\n"
"\n"
" This option can be used multiple times.\n"
"\n"
-" Users very often want to both read cookies from a file and write\n"
-" updated cookies back to a file, so using both -b, --cookie and\n"
-" -c, --cookie-jar in the same command line is common.\n"
+" Users often want to both read cookies from a file and write up-\n"
+" dated cookies back to a file, so using both -b, --cookie and -c,\n"
+" --cookie-jar in the same command line is common.\n"
+"\n"
+" Examples:\n"
+" curl -b cookiefile https://example.com\n"
+, stdout);
+ fputs(
+" curl -b cookiefile -c cookiefile https://example.com\n"
"\n"
" --create-dirs\n"
" When used in conjunction with the -o, --output option, curl will\n"
+" create the necessary local directory hierarchy as needed. This\n"
+" option creates the directories mentioned with the -o, --output\n"
+" option, nothing else. If the --output file name uses no direc-\n"
+" tory, or if the directories it mentions already exist, no direc-\n"
, stdout);
fputs(
-" create the necessary local directory hierarchy as needed. This\n"
-" option creates the directories mentioned with the -o, --output\n"
-" option, nothing else. If the --output file name uses no direc-\n"
-" tory, or if the directories it mentions already exist, no direc-\n"
" tories will be created.\n"
"\n"
" Created dirs are made with mode 0750 on unix style file systems.\n"
-, stdout);
- fputs(
-" To create remote directories when using FTP or SFTP, try --ftp-\n"
+" To create remote directories when using FTP or SFTP, try --ftp-\n"
" create-dirs.\n"
"\n"
+" Example:\n"
+" curl --create-dirs --output local/dir/file https://example.com\n"
+"\n"
" --create-file-mode <mode>\n"
" (SFTP SCP FILE) When curl is used to create files remotely using\n"
-" one of the supported protocols, this option allows the user to\n"
+, stdout);
+ fputs(
+" one of the supported protocols, this option allows the user to\n"
" set which 'mode' to set on the file at creation time, instead of\n"
" the default 0644.\n"
"\n"
" This option takes an octal number as argument.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --create-file-mode 0777 -T localfile sftp://example.com/new\n"
+"\n"
" See also --ftp-create-dirs. Added in 7.75.0.\n"
"\n"
-" --crlf (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS\n"
+, stdout);
+ fputs(
+" --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"
+" Example:\n"
+" curl --crlf -T file ftp://example.com/\n"
+"\n"
" --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"
@@ -769,149 +849,179 @@ void hugehelp(void)
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.19.7.\n"
+" Example:\n"
+" curl --crlfile rejects.txt https://example.com\n"
"\n"
" --curves <algorithm list>\n"
-" (TLS) Tells curl to request specific curves to use during SSL\n"
-" session establishment according to RFC 8422, 5.1. Multiple al-\n"
-" gorithms can be provided by separating them with \":\" (e.g.\n"
-" \"X25519:P-521\"). The parameter is available identically in the\n"
+" (TLS) Tells curl to request specific curves to use during SSL\n"
+" session establishment according to RFC 8422, 5.1. Multiple al-\n"
+" gorithms can be provided by separating them with \":\" (e.g.\n"
, stdout);
fputs(
+" \"X25519:P-521\"). The parameter is available identically in the\n"
" \"openssl s_client/s_server\" utilities.\n"
"\n"
-" --curves allows a OpenSSL powered curl to make SSL-connections\n"
-" with exactly the (EC) curve requested by the client, avoiding\n"
+" --curves allows a OpenSSL powered curl to make SSL-connections\n"
+" with exactly the (EC) curve requested by the client, avoiding\n"
" intransparent client/server negotiations.\n"
"\n"
-" If this option is set, the default curves list built into\n"
+" If this option is set, the default curves list built into\n"
" openssl will be ignored.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --curves X25519 https://example.com\n"
+"\n"
" Added in 7.73.0.\n"
"\n"
" --data-ascii <data>\n"
-, stdout);
- fputs(
" (HTTP) This is just an alias for -d, --data.\n"
"\n"
+" Example:\n"
+" curl --data-ascii @file https://example.com\n"
+"\n"
" --data-binary <data>\n"
-" (HTTP) This posts data exactly as specified with no extra pro-\n"
+" (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"
+" If you start the data with the letter @, the rest should be a\n"
+, stdout);
+ fputs(
+" 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"
+" 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"
, stdout);
fputs(
-" Like -d, --data the default content-type sent to the server is\n"
-" 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"
+" 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"
+" If this option is used several times, the ones following the\n"
" first will append data as described in -d, --data.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --data-binary @filename https://example.com\n"
+"\n"
" --data-raw <data>\n"
-" (HTTP) This posts data similarly to -d, --data but without the\n"
+" (HTTP) This posts data similarly to -d, --data but without the\n"
" special interpretation of the @ character.\n"
"\n"
+, stdout);
+ fputs(
+" Examples:\n"
+" curl --data-raw \"hello\" https://example.com\n"
+" curl --data-raw \"@at@at@\" https://example.com\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"
+" (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"
+" 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"
+" 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"
+" This will make curl URL-encode the content and pass that\n"
+" on. Just be careful so that the content does not 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" Examples:\n"
+" curl --data-urlencode name=val https://example.com\n"
+" curl --data-urlencode =encodethis https://example.com\n"
+" curl --data-urlencode name@file https://example.com\n"
+" curl --data-urlencode @fileonly https://example.com\n"
+"\n"
+" See also -d, --data and --data-raw.\n"
"\n"
" -d, --data <data>\n"
-" (HTTP MQTT) Sends the specified data in a POST request to the\n"
-" HTTP 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"
+" (HTTP MQTT) Sends the specified data in a POST request to the\n"
, stdout);
fputs(
+" HTTP 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"
" 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"
+" pretation of the @ character. To post data purely binary, you\n"
+, stdout);
+ fputs(
+" 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"
+" If any of these options is used more than once on the same com-\n"
+" 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"
, 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"
+" 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"
+" 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"
, 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"
+" lines will be stripped out. If you do not want the @ character\n"
+" to have a special interpretation use --data-raw instead.\n"
+"\n"
+" Examples:\n"
+" curl -d \"name=curl\" https://example.com\n"
+" curl -d \"name=curl\" -d \"tool=cmdline\" https://example.com\n"
+" curl -d @filename https://example.com\n"
"\n"
-" See also --data-binary, --data-urlencode and --data-raw. This\n"
+" See also --data-binary, --data-urlencode and --data-raw. This\n"
, stdout);
fputs(
-" option overrides -F, --form and -I, --head and -T, --upload-\n"
+" 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"
+" (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"
+" none Do not 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"
+" 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"
@@ -920,105 +1030,139 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\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"
+" Example:\n"
+" curl --delegation \"none\" https://example.com\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"
, stdout);
fputs(
-" If this option is used several times, only the first one is\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"
" used.\n"
"\n"
-" See also -u, --user, --proxy-digest and --anyauth. This option\n"
+" Example:\n"
+" curl -u name:password --digest https://example.com\n"
+"\n"
+" See also -u, --user, --proxy-digest and --anyauth. This option\n"
" 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"
+" when doing active FTP transfers. Curl will normally always first\n"
+" attempt to use EPRT, then LPRT before using PORT, but with this\n"
+" 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"
+, stdout);
+ fputs(
" --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(
+" If the server is accessed using IPv6, this option will have no\n"
" 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"
+" 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) Tell curl to disable the use of the EPSV command when do-\n"
-" ing passive FTP transfers. Curl will normally always first at-\n"
+" Example:\n"
, stdout);
fputs(
+" curl --disable-eprt ftp://example.com/\n"
+"\n"
+" --disable-epsv\n"
+" (FTP) Tell curl to disable the use of the EPSV command when do-\n"
+" ing passive FTP transfers. Curl will normally always first at-\n"
" tempt to use EPSV before PASV, but with this option, it will not\n"
" 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"
+, stdout);
+ fputs(
+" 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"
+" Example:\n"
+" curl --disable-epsv ftp://example.com/\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"
+" If used as the first parameter on the command line, the curlrc\n"
+, stdout);
+ fputs(
+" 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"
+" Example:\n"
+" curl -q https://example.com\n"
"\n"
-" See also --proto. Added in 7.61.0.\n"
+" --disallow-username-in-url\n"
+" (HTTP) This tells curl to exit if passed a url containing a\n"
+" username. This is probably most useful when the URL is being\n"
+" provided at run-time or similar.\n"
"\n"
+" Example:\n"
, stdout);
fputs(
+" curl --disallow-username-in-url https://example.com\n"
+"\n"
+" See also --proto. Added in 7.61.0.\n"
+"\n"
" --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"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --dns-interface eth0 https://example.com\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"
+, stdout);
+ fputs(
" The argument should be a single IPv4 address.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
+"\n"
+" Example:\n"
+" curl --dns-ipv4-addr 10.1.2.3 https://example.com\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"
-, stdout);
- fputs(
" 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"
" If this option is used several times, the last one will be used.\n"
+"\n"
+" Example:\n"
+" curl --dns-ipv6-addr 2a04:4e42::561 https://example.com\n"
+"\n"
" See also --dns-interface and --dns-ipv4-addr. --dns-ipv6-addr\n"
, stdout);
fputs(
@@ -1034,35 +1178,50 @@ void hugehelp(void)
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
+"\n"
+" Example:\n"
+" curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com\n"
+"\n"
" --dns-servers requires that the underlying libcurl was built to\n"
" support c-ares. Added in 7.33.0.\n"
"\n"
" --doh-cert-status\n"
" (all) Same as --cert-status but used for DoH (DNS-over-HTTPS).\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --doh-cert-status --doh-url https://doh.example https://example.com\n"
+"\n"
" Added in 7.76.0.\n"
"\n"
" --doh-insecure\n"
" (all) Same as -k, --insecure but used for DoH (DNS-over-HTTPS).\n"
"\n"
+" Example:\n"
+" curl --doh-insecure --doh-url https://doh.example https://example.com\n"
+"\n"
" Added in 7.76.0.\n"
"\n"
" --doh-url <URL>\n"
+" (all) Specifies which DNS-over-HTTPS (DoH) server to use to re-\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"
" Some SSL options that you set for your transfer will apply to\n"
" DoH since the name lookups take place over SSL. However, the\n"
" certificate verification settings are not inherited and can be\n"
-, stdout);
- fputs(
" controlled separately via --doh-insecure and --doh-cert-status.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --doh-url https://doh.example https://example.com\n"
+"\n"
" Added in 7.62.0.\n"
"\n"
" -D, --dump-header <filename>\n"
@@ -1077,60 +1236,80 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --dump-header store.txt https://example.com\n"
+"\n"
" See also -o, --output.\n"
"\n"
" --egd-file <file>\n"
" (TLS) Specify the path name to the Entropy Gathering Daemon\n"
+, stdout);
+ fputs(
" socket. The socket is used to seed the random engine for SSL\n"
" connections.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --egd-file /random/here https://example.com\n"
+"\n"
" 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 (and possibly none) of the engines\n"
+, stdout);
+ fputs(
" may be available at run-time.\n"
"\n"
+" Example:\n"
+" curl --engine flavor https://example.com\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 stored ETag.\n"
"\n"
" For correct results, make sure that the specified file contains\n"
+, stdout);
+ fputs(
" only a single line with the desired ETag. An empty file is\n"
" parsed as an 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 against the saved\n"
-, stdout);
- fputs(
" ETag in a subsequent request.\n"
"\n"
+" Example:\n"
+" curl --etag-compare etag.txt https://example.com\n"
+"\n"
" Added in 7.68.0.\n"
"\n"
" --etag-save <file>\n"
+, stdout);
+ fputs(
" (HTTP) This option saves an HTTP ETag to the specified file. An\n"
" ETag is a caching related header, usually returned in a re-\n"
" sponse.\n"
"\n"
" If no ETag is sent by the server, an empty file is created.\n"
"\n"
+" Example:\n"
+" curl --etag-save storetag.txt https://example.com\n"
+"\n"
" Added in 7.68.0.\n"
"\n"
" --expect100-timeout <seconds>\n"
+" (HTTP) Maximum time in seconds that you allow curl to wait for a\n"
, stdout);
fputs(
-" (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"
+" Example:\n"
+" curl --expect100-timeout 2.5 -T file https://example.com\n"
+"\n"
" See also --connect-timeout. Added in 7.47.0.\n"
"\n"
" --fail-early\n"
@@ -1162,51 +1341,65 @@ void hugehelp(void)
" two options, however note -f, --fail is not global and is there-\n"
" fore contained by -:, --next.\n"
"\n"
+" Example:\n"
+" curl --fail-early https://example.com https://two.example\n"
+"\n"
" Added in 7.52.0.\n"
" --fail-with-body\n"
" (HTTP) Return an error on server errors where the HTTP response\n"
-" code is 400 or greater). In normal cases when an HTTP server\n"
-" fails to deliver a document, it returns an HTML document stating\n"
, stdout);
fputs(
+" code is 400 or greater). In normal cases when an HTTP server\n"
+" fails to deliver a document, it returns an HTML document stating\n"
" so (which often also describes why and more). This flag will\n"
" still allow curl to output and save that content but also to re-\n"
" turn error 22.\n"
"\n"
" This is an alternative option to -f, --fail which makes curl\n"
+, stdout);
+ fputs(
" fail for the same circumstances but without saving the content.\n"
"\n"
+" Example:\n"
+" curl --fail-with-body https://example.com\n"
+"\n"
" See also -f, --fail. Added in 7.76.0.\n"
"\n"
" -f, --fail\n"
" (HTTP) Fail silently (no output at all) on server errors. This\n"
-, stdout);
- fputs(
" is mostly done to enable scripts etc to better deal with failed\n"
" attempts. In normal cases when an HTTP server fails to deliver a\n"
+, stdout);
+ fputs(
" document, it returns an HTML document stating so (which often\n"
" also describes why and more). This flag will prevent curl from\n"
" outputting that and return error 22.\n"
"\n"
" This method is not fail-safe and there are occasions where non-\n"
-, stdout);
- fputs(
" successful response codes will slip through, especially when au-\n"
" thentication is involved (response codes 401 and 407).\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --fail https://example.com\n"
+"\n"
" See also --fail-with-body.\n"
"\n"
" --false-start\n"
" (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"
-, stdout);
- fputs(
" thus saving a round trip when performing a full handshake.\n"
"\n"
+, stdout);
+ fputs(
" 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"
+" Example:\n"
+" curl --false-start https://example.com\n"
+"\n"
" Added in 7.42.0.\n"
"\n"
" --form-string <name=string>\n"
@@ -1219,12 +1412,15 @@ void hugehelp(void)
" any possibility that the string value may accidentally trigger\n"
" the '@' or '<' features of -F, --form.\n"
"\n"
+" Example:\n"
+" curl --form-string \"data\" https://example.com\n"
+"\n"
" See also -F, --form.\n"
"\n"
" -F, --form <name=content>\n"
-" (HTTP SMTP IMAP) For HTTP protocol family, this lets curl emu-\n"
, stdout);
fputs(
+" (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"
@@ -1232,26 +1428,26 @@ void hugehelp(void)
" For SMTP and IMAP protocols, this is the means to compose a mul-\n"
" tipart mail message to transmit.\n"
"\n"
-" This enables uploading of binary files etc. To force the 'con-\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"
-" field from a file.\n"
-"\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"
-" ilar) is unfortunately not subject to buffering and will be ef-\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"
@@ -1260,10 +1456,10 @@ void hugehelp(void)
" name of the form-field to which the file portrait.jpg will be\n"
" the input:\n"
"\n"
-" curl -F profile=@portrait.jpg https://example.com/upload.cgi\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"
@@ -1275,9 +1471,9 @@ void hugehelp(void)
"\n"
" curl -F \"story=<hugefile.txt\" https://example.com/\n"
"\n"
-" You can also tell curl what Content-Type to use by using\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"
@@ -1291,9 +1487,9 @@ void hugehelp(void)
"\n"
" curl -F \"file=@localfile;filename=nameinpost\" example.com\n"
"\n"
-" If filename/path contains ',' or ';', it must be quoted by dou-\n"
, stdout);
fputs(
+" If filename/path contains ',' or ';', it must be quoted by dou-\n"
" ble-quotes like:\n"
"\n"
" curl -F \"file=@\\\"local,file\\\";filename=\\\"name;in;post\\\"\" exam-\n"
@@ -1306,10 +1502,10 @@ void hugehelp(void)
"\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(
+" backslash.\n"
+"\n"
" Quoting must also be applied to non-file data if it contains\n"
" semicolons, leading/trailing spaces or leading double quotes:\n"
"\n"
@@ -1386,53 +1582,64 @@ void hugehelp(void)
"\n"
" This option can be used multiple times.\n"
"\n"
+" Example:\n"
+" curl --form \"name=curl\" --form \"file=@loadthis\" https://example.com\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(
+" (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"
" 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"
+" Example:\n"
+" curl --ftp-account \"mr.robot\" ftp://example.com/\n"
"\n"
" --ftp-alternative-to-user <command>\n"
" (FTP) If authenticating with the USER and PASS commands fails,\n"
+, stdout);
+ fputs(
" 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"
+" Example:\n"
+" curl --ftp-alternative-to-user \"U53r\" ftp://example.com\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"
+, stdout);
+ fputs(
+" does not 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"
+" Example:\n"
+" curl --ftp-create-dirs -T file ftp://example.com/remote/path/file\n"
+"\n"
" See also --create-dirs.\n"
"\n"
" --ftp-method <method>\n"
+" (FTP) Control what method curl should use to reach a file on an\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"
+" the given URL. For deep hierarchies this means many com-\n"
+" mands. This is how RFC 1738 says it should be done. This\n"
+" is the default but the slowest behavior.\n"
+"\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"
@@ -1440,44 +1647,50 @@ void hugehelp(void)
" singlecwd\n"
" curl does one CWD with the full target directory and then\n"
" operates on the file \"normally\" (like in the multicwd\n"
+" case). This is somewhat more standards compliant than\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"
+" Examples:\n"
+" curl --ftp-method multicwd ftp://example.com/dir1/dir2/file\n"
+" curl --ftp-method nocwd ftp://example.com/dir1/dir2/file\n"
+" curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file\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"
+, stdout);
+ fputs(
" 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"
+" used. Undoing an enforced passive really is not 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"
+" Example:\n"
+" curl --ftp-pasv ftp://example.com/\n"
, stdout);
fputs(
+"\n"
+" See also --disable-epsv.\n"
+" -P, --ftp-port <address>\n"
+" (FTP) Reverses the default initiator/listener roles when con-\n"
" 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"
+, stdout);
+ fputs(
" 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"
@@ -1487,55 +1700,68 @@ void hugehelp(void)
" - 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(
+" 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"
" 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"
+" You can also append \":[start]-[end]\" to the right of the address, to\n"
+" tell curl what TCP port range to use. That means you specify a port\n"
+" range, from a lower to a higher number. A single number works as well,\n"
+, stdout);
+ fputs(
+" but do note that it increases the risk of failure since the port may\n"
+" not be available.\n"
+"\n"
+" Examples:\n"
+" curl -P - ftp:/example.com\n"
+" curl -P eth0 ftp:/example.com\n"
+" curl -P 192.168.0.2 ftp:/example.com\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"
+, stdout);
+ fputs(
" command for directory listings as well as up and downloads in\n"
" PASV mode.\n"
"\n"
-" Added in 7.20.0.\n"
+" Example:\n"
+" curl --ftp-pret ftp://example.com/\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"
+, stdout);
+ fputs(
" Since curl 7.74.0 this option is enabled by default.\n"
"\n"
" This option has no effect if PORT, EPRT or EPSV is used instead\n"
" of PASV.\n"
+" Example:\n"
+" curl --ftp-skip-pasv-ip ftp://example.com/\n"
"\n"
-" See also --ftp-pasv. Added in 7.14.2.\n"
+" See also --ftp-pasv.\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(
-" shutdown, but instead wait for the server to do it, and will not\n"
" 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"
+" Example:\n"
+" curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/\n"
+"\n"
+" See also --ftp-ssl-ccc.\n"
"\n"
" --ftp-ssl-ccc\n"
" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
@@ -1545,50 +1771,63 @@ void hugehelp(void)
" munication will be unencrypted. This allows NAT routers to fol-\n"
" 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"
+" Example:\n"
+" curl --ftp-ssl-ccc ftps://example.com/\n"
+" See also --ssl and --ftp-ssl-ccc-mode.\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"
, stdout);
fputs(
+" for efficiency. Fails the transfer if the server does not sup-\n"
" port SSL/TLS.\n"
"\n"
-" Added in 7.16.0.\n"
+" Example:\n"
+" curl --ftp-ssl-control ftp://example.com\n"
"\n"
" -G, --get\n"
" 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"
, stdout);
fputs(
+" 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"
" 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"
+" used. This is because undoing a GET does not make sense, but you\n"
" should then instead enforce the alternative method you prefer.\n"
"\n"
+" Examples:\n"
+, stdout);
+ fputs(
+" curl --get https://example.com\n"
+" curl --get -d \"tool=curl\" -d \"age=old\" https://example.com\n"
+" curl --get -I -d \"tool=curl\" https://example.com\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 curl itself interpret them. Note that these let-\n"
, stdout);
fputs(
-" without having curl itself interpret them. Note that these let-\n"
" ters are not normal legal URL contents but they should be en-\n"
" coded according to the URI standard.\n"
"\n"
+" Example:\n"
+" curl -g \"https://example.com/{[]}}}}\"\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"
+" Happy Eyeballs is an algorithm that attempts to connect to both\n"
+" IPv4 and IPv6 addresses for dual-stack hosts, giving IPv6 a\n"
+" head-start of the specified number of milliseconds. If the IPv6\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"
+" address cannot be connected to within that time, then a connec-\n"
+" tion attempt is made to the IPv4 address in parallel. The first\n"
+" connection to be 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"
@@ -1600,899 +1839,1143 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --happy-eyeballs-timeout-ms 500 https://example.com\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(
+" 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"
" This option is primarily useful when sending test requests to a\n"
" service that expects this header.\n"
"\n"
+" Example:\n"
+" curl --haproxy-protocol https://example.com\n"
+"\n"
" Added in 7.60.0.\n"
"\n"
" -I, --head\n"
" (HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the\n"
+, stdout);
+ fputs(
" 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(
+" Example:\n"
+" curl -I https://example.com\n"
" -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"
+, stdout);
+ fputs(
" 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"
+" fectly well what you are doing. Remove an internal header by\n"
, stdout);
fputs(
+" giving 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"
" 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"
+, stdout);
+ fputs(
" 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"
" This option can take an argument in @filename style, which then\n"
-, stdout);
- fputs(
" adds a header for each line in the input file. Using @- will\n"
" make curl read the header file from stdin. Added in 7.55.0.\n"
"\n"
" You need --proxy-header to send custom headers intended for a\n"
" HTTP proxy. Added in 7.37.0.\n"
"\n"
+, stdout);
+ fputs(
" Passing on a \"Transfer-Encoding: chunked\" header when doing a\n"
" HTTP request with a request body, will make curl send the data\n"
" using chunked encoding.\n"
"\n"
-" Example:\n"
-"\n"
-, stdout);
- fputs(
-" curl -H \"X-First-Name: Joe\" http://example.com/\n"
-"\n"
" 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"
+, stdout);
+ fputs(
" hosts than the original host, so sensitive headers should be\n"
" used with caution combined with following redirects.\n"
"\n"
-, stdout);
- fputs(
" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
"\n"
+" Examples:\n"
+" curl -H \"X-First-Name: Joe\" https://example.com\n"
+" curl -H \"User-Agent: yes-please/2000\" https://example.com\n"
+" curl -H \"Host:\" https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" See also -A, --user-agent and -e, --referer.\n"
"\n"
" -h, --help <category>\n"
" Usage help. This lists all commands of the <category>. If no\n"
" arg was provided, curl will display the most important command\n"
" line arguments. If the argument \"all\" was provided, curl will\n"
-, stdout);
- fputs(
" display all options available. If the argument \"category\" was\n"
" provided, curl will display all categories and their meanings.\n"
"\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --help all\n"
+"\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"
+" Example:\n"
+" curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/\n"
"\n"
+" --hostpubsha256 <sha256>\n"
, stdout);
fputs(
-" --hsts <file name>\n"
-" (HTTPS) WARNING: this option is experimental. Do not use in pro-\n"
-" duction.\n"
+" (SFTP SCP) Pass a string containing a Base64-encoded SHA256 hash\n"
+" of the remote host's public key. Curl will refuse the connection\n"
+" with the host unless the hashes match.\n"
"\n"
-" This option enables HSTS for the transfer. If the file name\n"
-" points to an existing HSTS cache file, that will be used. After\n"
-" a completed transfer, the cache will be saved to the file name\n"
-" again if it has been modified.\n"
+" Example:\n"
+" curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/\n"
"\n"
-" Specify a \"\" file name (zero length) to avoid loading/saving and\n"
+" Added in 7.80.0.\n"
+"\n"
+" --hsts <file name>\n"
+" (HTTPS) This option enables HSTS for the transfer. If the file\n"
, stdout);
fputs(
+" name points to an existing HSTS cache file, that will be used.\n"
+" After 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 HSTS in memory.\n"
"\n"
-" If this option is used several times, curl will load contents\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"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --hsts cache.txt https://example.com\n"
+"\n"
" Added in 7.74.0.\n"
"\n"
" --http0.9\n"
" (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"
-, stdout);
- fputs(
+" 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"
+, stdout);
+ fputs(
" Since curl 7.66.0, HTTP/0.9 is disabled by default.\n"
"\n"
+" Example:\n"
+" curl --http0.9 https://example.com\n"
+"\n"
+" Added in 7.64.0.\n"
+"\n"
" -0, --http1.0\n"
-" (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n"
+" (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n"
" internally preferred HTTP version.\n"
"\n"
+" Example:\n"
+" curl --http1.0 https://example.com\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"
, stdout);
fputs(
-" This option overrides -0, --http1.0 and --http2. Added in\n"
+" (HTTP) Tells curl to use HTTP version 1.1.\n"
+"\n"
+" Example:\n"
+" curl --http1.1 https://example.com\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"
-" 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"
+" (HTTP) Tells curl to issue its non-TLS HTTP requests using\n"
+" HTTP/2 without HTTP/1.1 Upgrade. It requires prior knowledge\n"
, stdout);
fputs(
+" 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"
+" Example:\n"
+" curl --http2-prior-knowledge https://example.com\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"
+, stdout);
+ fputs(
" --http1.0 and --http2. Added in 7.49.0.\n"
"\n"
" --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"
+" For HTTPS, this means curl will attempt to negotiate HTTP/2 in\n"
+" the TLS handshake. curl does this by default.\n"
+"\n"
+" For HTTP, this means curl will attempt to upgrade the request to\n"
+" HTTP/2 using the Upgrade: request header.\n"
+"\n"
+" Example:\n"
+" curl --http2 https://example.com\n"
+"\n"
, stdout);
fputs(
-" --http1.1 and -0, --http1.0 and --http2-prior-knowledge. Added\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"
+" (HTTP) WARNING: this option is experimental. Do not use in pro-\n"
" duction.\n"
"\n"
-" 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"
+" Tells curl to use HTTP version 3 directly to the host and port\n"
, stdout);
fputs(
-" allows a user to circumvent that when you know that the target\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"
-" established, it cannot fall back to a lower HTTP version on its\n"
+" This option will make curl fail if a QUIC connection cannot be\n"
+" 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"
+" Example:\n"
, stdout);
fputs(
+" curl --http3 https://example.com\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"
-" 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"
+" (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"
-" This option doesn't work if libcurl was built to use hyper for\n"
-" HTTP.\n"
+" This option does not work for HTTP if libcurl was built to use\n"
+" hyper.\n"
"\n"
+" Example:\n"
+" curl --ignore-content-length https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" -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"
+" Include the HTTP response headers in the output. The HTTP re-\n"
+" sponse headers can include things like server name, cookies,\n"
" date of the document, HTTP version and more...\n"
"\n"
" To view the request headers, consider the -v, --verbose option.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl -i https://example.com\n"
+"\n"
" See also -v, --verbose.\n"
"\n"
" -k, --insecure\n"
+, stdout);
+ fputs(
" (TLS) By default, every SSL connection curl makes is verified to\n"
-" be secure. This option allows curl to proceed and operate even\n"
+" be secure. This option allows curl to proceed and operate even\n"
" for server connections otherwise considered insecure.\n"
"\n"
-" The server connection is verified by making sure the server's\n"
-" certificate contains the right name and verifies successfully\n"
+" 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"
, stdout);
fputs(
-" See this online resource for further details:\n"
" https://curl.se/docs/sslcerts.html\n"
"\n"
+" WARNING: this makes the transfer insecure.\n"
+"\n"
+" Example:\n"
+" curl --insecure https://example.com\n"
+"\n"
" See also --proxy-insecure and --cacert.\n"
"\n"
" --interface <name>\n"
-"\n"
-" Perform an operation using a specified interface. You can enter\n"
-" interface name, IP address or host name. An example could look\n"
+" Perform an operation using a specified interface. You can enter\n"
+" 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"
, stdout);
fputs(
+" 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"
+" 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"
" tion/networking/vrf.txt\n"
"\n"
+" Example:\n"
+" curl --interface eth0 https://example.com\n"
+, stdout);
+ fputs(
+"\n"
" See also --dns-interface.\n"
"\n"
" -4, --ipv4\n"
-" This option tells curl to resolve names to IPv4 addresses only,\n"
-, stdout);
- fputs(
+" 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"
+" Example:\n"
+" curl --ipv4 https://example.com\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"
+" This option tells curl to resolve names to IPv6 addresses only,\n"
" and not for example try IPv4.\n"
"\n"
-" See also --http1.1 and --http2. This option overrides -4,\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --ipv6 https://example.com\n"
+"\n"
+" See also --http1.1 and --http2. This option overrides -4,\n"
" --ipv4.\n"
"\n"
" -j, --junk-session-cookies\n"
-, stdout);
- fputs(
" (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"
+" sically have the same effect as if a new session is started.\n"
+, stdout);
+ fputs(
+" Typical browsers always discard session cookies when they are\n"
" closed down.\n"
"\n"
+" Example:\n"
+" curl --junk-session-cookies -b cookies.txt https://example.com\n"
+"\n"
" 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"
, stdout);
fputs(
-" 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"
+" (meaning Linux, recent AIX, HP-UX and more). This option has no\n"
" effect if --no-keepalive is used.\n"
"\n"
-, stdout);
- fputs(
" 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"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --keepalive-time 20 https://example.com\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"
+" (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"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --key-type DER --key here https://example.com\n"
+"\n"
+" --key <key>\n"
, stdout);
fputs(
-" --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"
+" 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"
+" If curl is built against OpenSSL library, and the engine pkcs11\n"
" is available, then a PKCS#11 URI (RFC 7512) can be used to spec-\n"
, stdout);
fputs(
-" 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"
+" 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"
+" \"pkcs11\" if none was provided and the --key-type option will be\n"
" set as \"ENG\" if none was provided.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" --krb <level>\n"
+" Example:\n"
, stdout);
fputs(
-" (FTP) Enable Kerberos authentication and use. The level must be\n"
+" curl --cert certificate --key here https://example.com\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'. 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"
-" --krb requires that the underlying libcurl was built to support\n"
+"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --krb clear ftp://example.com/\n"
+"\n"
+" --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 libcurl-using C source code written to the file that\n"
+" does the equivalent of what your command-line operation does!\n"
+"\n"
+" This option is global and does not need to be specified for each\n"
, stdout);
fputs(
-" Append this option to any ordinary curl command line, and you\n"
-" will get libcurl-using C source code written to the file that\n"
-" does the equivalent of what your command-line operation does!\n"
+" use of -:, --next.\n"
"\n"
" If this option is used several times, the last given file name\n"
" will be used.\n"
"\n"
-" Added in 7.16.1.\n"
+" Example:\n"
+" curl --libcurl client.c https://example.com\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 would like your transfer not to use your\n"
, stdout);
fputs(
-" 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"
+" entire 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"
" 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. The suffixes (k, M, G, T, P) are 1024 based. For ex-\n"
+" ample 1k is 1024. Examples: 200K, 3m and 1G.\n"
+"\n"
, stdout);
fputs(
-" gigabytes. Examples: 200K, 3m and 1G.\n"
+" The rate limiting logic works on averaging the transfer speed to\n"
+" no more than the set threshold over a period of multiple sec-\n"
+" onds.\n"
"\n"
-" If you also use the -Y, --speed-limit option, that option will\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"
" 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"
+" Examples:\n"
, stdout);
fputs(
-" 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 an NLST command to be\n"
-" sent to the server instead of LIST.\n"
+" curl --limit-rate 100K https://example.com\n"
+" curl --limit-rate 1000 https://example.com\n"
+" curl --limit-rate 10M https://example.com\n"
"\n"
-" Note: Some FTP servers list only files in their response to\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"
, stdout);
fputs(
-" NLST; they do not include sub-directories and symbolic links.\n"
+" the normal directory view does not use a standard look or for-\n"
+" mat. When used like this, the option causes an NLST command to\n"
+" be sent to the server instead of LIST.\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"
-" sage-id exists on the server and what size it is.\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"
-" Note: When combined with -X, --request, this option can be used\n"
+" (POP3) When retrieving a specific email from POP3, this switch\n"
, stdout);
fputs(
-" to send a UIDL command instead, so the user may use the email's\n"
-" unique identifier rather than its message-id to make the re-\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"
+" 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 a UIDL command instead, so the user may use the email's\n"
+" unique identifier rather than its message-id to make the re-\n"
" quest.\n"
"\n"
-" Added in 4.0.\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --list-only ftp://example.com/dir/\n"
"\n"
" --local-port <num/range>\n"
-" Set a preferred single number or range (FROM-TO) of local port\n"
+" Set a preferred single number or range (FROM-TO) of local port\n"
" 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"
-, stdout);
- fputs(
-" ting this range to something too narrow might cause unnecessary\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"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --local-port 1000-3000 https://example.com\n"
"\n"
" --location-trusted\n"
-" (HTTP) Like -L, --location, but will allow sending the name +\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"
" 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"
+" a site to which you will send your authentication info (which is\n"
+" plaintext in the case of HTTP Basic authentication).\n"
+"\n"
+" Example:\n"
, stdout);
fputs(
-" plaintext in the case of HTTP Basic authentication).\n"
+" curl --location-trusted -u user:password https://example.com\n"
"\n"
" See also -u, --user.\n"
"\n"
" -L, --location\n"
-" (HTTP) If the server reports that the requested page has moved\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"
-" 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"
+" 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"
, stdout);
fputs(
" --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"
-" tion-trusted on how to change this. You can limit the amount of\n"
-" redirects to follow by using the --max-redirs option.\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"
+" will not be able to intercept the user+password. See also --lo-\n"
+" cation-trusted on how to change this. You can limit the amount\n"
+" of redirects to follow by using the --max-redirs option.\n"
"\n"
, stdout);
fputs(
-" 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"
+" When curl follows a redirect and if the request is a POST, it\n"
+" will send 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"
" You can tell curl to not change POST requests to GET after a 30x\n"
, stdout);
fputs(
-" response by using the dedicated options for that: --post301,\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"
+" The method set with -X, --request overrides the method curl\n"
" would otherwise select to use.\n"
"\n"
+" Example:\n"
+" curl -L https://example.com\n"
+"\n"
" --login-options <options>\n"
-" (IMAP POP3 SMTP) Specify the login options to use during server\n"
+" (IMAP POP3 SMTP) Specify the login options to use during server\n"
" authentication.\n"
"\n"
-" You can use login options to specify protocol specific options\n"
, stdout);
fputs(
-" that may be used during authentication. At present only IMAP,\n"
-" POP3 and SMTP support login options. For more information about\n"
-" login options please see RFC 2384, RFC 5092 and IETF draft\n"
+" You can use login options to specify protocol specific options\n"
+" that may be used during authentication. At present only IMAP,\n"
+" POP3 and SMTP support login options. For more information about\n"
+" login options please see RFC 2384, RFC 5092 and IETF draft\n"
" draft-earhart-url-smtp-00.txt\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --login-options 'AUTH=*' imap://example.com\n"
+"\n"
" Added in 7.34.0.\n"
"\n"
" --mail-auth <address>\n"
-, stdout);
- fputs(
-" (SMTP) Specify a single address. This will be used to specify\n"
-" the authentication address (identity) of a submitted message\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"
+" Example:\n"
+" curl --mail-auth user@example.come -T mail smtp://example.com/\n"
+"\n"
+" See also --mail-rcpt and --mail-from.\n"
"\n"
+, stdout);
+ fputs(
" --mail-from <address>\n"
-" (SMTP) Specify a single address that the given mail should get\n"
+" (SMTP) Specify a single address that the given mail should get\n"
" sent from.\n"
"\n"
-" See also --mail-rcpt and --mail-auth. Added in 7.20.0.\n"
+" Example:\n"
+" curl --mail-from user@example.com -T mail smtp://example.com/\n"
+"\n"
+" See also --mail-rcpt and --mail-auth.\n"
"\n"
-, stdout);
- fputs(
" --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"
+" will abort SMTP conversation if at least one of the recipients\n"
+, stdout);
+ fputs(
" 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"
+" The default behavior can be changed by passing --mail-rcpt-al-\n"
+" lowfails command-line option which will make curl ignore errors\n"
" and proceed with the remaining valid recipients.\n"
"\n"
+" If all recipients trigger RCPT TO failures and this flag is\n"
+" specified, curl will still abort the SMTP conversation and re-\n"
, stdout);
fputs(
-" 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"
+" turn the error received from to the last RCPT TO command.\n"
+"\n"
+" Example:\n"
+" curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com\n"
+"\n"
+" 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"
-" When performing a mail transfer, the recipient should specify a\n"
+" (SMTP) Specify a single e-mail address, user name or mailing\n"
+" list name. Repeat this option several times to send to multiple\n"
+" recipients.\n"
+"\n"
, stdout);
fputs(
-" 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"
+" 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"
-" ient should be specified using the mailing list name, such as\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"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --mail-rcpt user@example.net smtp://example.com\n"
"\n"
" -M, --manual\n"
" Manual. Display the huge help text.\n"
"\n"
+" Example:\n"
+" curl --manual\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"
+" (FTP HTTP MQTT) Specify the maximum size (in bytes) of a file to\n"
+" download. If the file requested is larger than this value, the\n"
+" transfer will 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"
+" 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: For protocols where the size is not known in advance (in-\n"
-" cluding FTP and HTTP) this option has no effect even if the file\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(
-" transfer ends up being larger than the given limit.\n"
+" fer ends up being larger than this given limit. Example:\n"
+" curl --max-filesize 100K https://example.com\n"
"\n"
" See also --limit-rate.\n"
"\n"
" --max-redirs <num>\n"
-" (HTTP) Set maximum number of redirections to follow. When -L,\n"
-" --location is used, to prevent curl from following too many\n"
-" redirects, by default, the limit is set to 50 redirects. Set\n"
+" (HTTP) Set maximum number of redirections to follow. When -L,\n"
+" --location is used, to prevent curl from following too many\n"
+" redirects, by default, the limit is set to 50 redirects. Set\n"
" 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"
+" Example:\n"
+" curl --max-redirs 3 --location https://example.com\n"
+"\n"
+" -m, --max-time <fractional 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"
, stdout);
fputs(
+" 7.32.0, this option accepts decimal values, but the actual time-\n"
" 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"
+" Examples:\n"
+" curl --max-time 10 https://example.com\n"
+" curl --max-time 2.92 https://example.com\n"
+"\n"
" See also --connect-timeout.\n"
"\n"
" --metalink\n"
-" This option was previously used to specify a metalink resource.\n"
-" Metalink support has been disabled in curl since 7.78.0 for se-\n"
+, stdout);
+ fputs(
+" This option was previously used to specify a metalink resource.\n"
+" Metalink support has been disabled in curl since 7.78.0 for se-\n"
" curity reasons.\n"
"\n"
-" Added in 7.27.0.\n"
+" Example:\n"
+" curl --metalink file https://example.com\n"
"\n"
" --negotiate\n"
-, stdout);
- fputs(
" (HTTP) Enables Negotiate (SPNEGO) authentication.\n"
"\n"
-" This option requires a library built with GSS-API or SSPI sup-\n"
-" port. Use -V, --version to see if your curl supports GSS-\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"
+" 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 are not actually used.\n"
+"\n"
+" If this option is used several times, only the first one is\n"
, stdout);
fputs(
-" --user option aren't actually used.\n"
-"\n"
-" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
+" Example:\n"
+" curl --negotiate -u : https://example.com\n"
+"\n"
" See also --basic, --ntlm, --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"
+" 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"
, stdout);
fputs(
-" If several --netrc-file options are provided, the last one will\n"
+" If several --netrc-file options are provided, the last one will\n"
" be used.\n"
"\n"
" It will abide by --netrc-optional if specified.\n"
"\n"
-" This option overrides -n, --netrc. Added in 7.21.5.\n"
+" Example:\n"
+" curl --netrc-file netrc https://example.com\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"
+" This option overrides -n, --netrc.\n"
"\n"
-" See also --netrc-file. This option overrides -n, --netrc.\n"
+" --netrc-optional\n"
+" Similar to -n, --netrc, but this option makes the .netrc usage\n"
+" optional and not mandatory as the -n, --netrc option does.\n"
"\n"
+" Example:\n"
, stdout);
fputs(
+" curl --netrc-optional https://example.com\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"
+" Makes curl scan the .netrc (_netrc on Windows) file in the\n"
" 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) and ftp(1) for details on the\n"
-" file format. Curl will not complain if that file doesn't have\n"
-" the right permissions (it should be neither world- nor group-\n"
+" cally used for FTP on Unix. If used with HTTP, curl will enable\n"
+" user authentication. See netrc(5) and ftp(1) for details on the\n"
, stdout);
fputs(
-" readable). The environment variable \"HOME\" is used to find the\n"
+" file format. Curl will not complain if that file does not have\n"
+" the right permissions (it should be neither world- nor group-\n"
+" readable). The environment variable \"HOME\" is used to find the\n"
" home directory.\n"
"\n"
-" 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"
+" A quick and simple example of how to setup a .netrc to allow\n"
+" curl to FTP to the machine host.domain.com with user name 'my-\n"
+" self' and password 'secret' should look similar to:\n"
"\n"
+, stdout);
+ fputs(
" machine host.domain.com login myself password secret\n"
"\n"
+" Example:\n"
+" curl --netrc https://example.com\n"
+"\n"
" -:, --next\n"
-, stdout);
- fputs(
" Tells curl to use a separate operation for the following URL and\n"
-" associated options. This allows you to send several URL re-\n"
-" quests, each with their own specific options, for example, such\n"
+" associated options. This allows you to send several URL re-\n"
+" 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"
, stdout);
fputs(
-" the -:, --next instruction. Global options include -v, --ver-\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"
-" For example, you can do both a GET and a POST in a single com-\n"
+" 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"
+, stdout);
+ fputs(
+" Examples:\n"
+" curl https://example.com --next -d postthis www2.example.com\n"
+" curl -I https://example.com --next https://example.net/\n"
+"\n"
" Added in 7.36.0.\n"
"\n"
" --no-alpn\n"
-" (HTTPS) Disable the ALPN TLS extension. ALPN is enabled by de-\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(
-" 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"
" 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"
+" Example:\n"
+" curl --no-alpn https://example.com\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"
, stdout);
fputs(
-" 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"
-" necessarily exactly when the data arrives. Using this option\n"
+" 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"
+" Note that this is the negated option name documented. You can\n"
" thus use --buffer to enforce the buffering.\n"
"\n"
+" Example:\n"
+" curl --no-buffer https://example.com\n"
+"\n"
" --no-keepalive\n"
, stdout);
fputs(
-" Disables the use of keepalive messages on the TCP connection.\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"
+" Note that this is the negated option name documented. You can\n"
" thus use --keepalive to enforce keepalive.\n"
"\n"
+" Example:\n"
+" curl --no-keepalive https://example.com\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"
, stdout);
fputs(
-" is used by a libcurl that supports HTTP/2 to negotiate HTTP/2\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"
+" Example:\n"
+" curl --no-npn https://example.com\n"
+"\n"
+" See also --no-alpn and --http2. --no-npn requires that the un-\n"
" 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"
, stdout);
fputs(
+" 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"
+" Note that this is the negated option name documented. You can\n"
" thus use --progress-meter to enable the progress meter again.\n"
"\n"
-" See also -v, --verbose and -s, --silent. Added in 7.67.0.\n"
+" Example:\n"
+" curl --no-progress-meter -o store https://example.com\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"
, stdout);
fputs(
-" should ever get hurt by attempting to reuse SSL session-IDs,\n"
+" 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"
-" Note that this is the negated option name documented. You can\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"
+" Example:\n"
+" curl --no-sessionid https://example.com\n"
"\n"
" --noproxy <no-proxy-list>\n"
+" Comma-separated list of hosts for which not to use a proxy, if\n"
+" one is specified. The only wildcard is a single * character,\n"
+" which matches all hosts, and effectively disables the proxy.\n"
, stdout);
fputs(
-" Comma-separated list of hosts for which not to use a proxy, if\n"
-" one is specified. The only wildcard is a single * character,\n"
-" which matches all hosts, and effectively disables the proxy.\n"
-" Each name in this list is matched as either a domain which con-\n"
-" tains the hostname, or the hostname itself. For example, lo-\n"
-" cal.com would match local.com, local.com:80, and www.local.com,\n"
-, stdout);
- fputs(
+" Each name in this list is matched as either a domain which con-\n"
+" tains the hostname, or the hostname itself. For example, lo-\n"
+" cal.com would match local.com, local.com:80, and www.local.com,\n"
" but not www.notlocal.com.\n"
"\n"
-" Since 7.53.0, This option overrides the environment variables\n"
-" that disable the proxy ('no_proxy' and 'NO_PROXY'). If there's\n"
-" an environment variable disabling a proxy, you can set the no-\n"
+" Since 7.53.0, This option overrides the environment variables\n"
+" that disable the proxy ('no_proxy' and 'NO_PROXY'). If there's\n"
+, stdout);
+ fputs(
+" an environment variable disabling a proxy, you can set the no-\n"
" proxy list to \"\" to override it.\n"
"\n"
-" Added in 7.19.4.\n"
+" Example:\n"
+" curl --noproxy \"www.example\" https://example.com\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"
+" Example:\n"
, stdout);
fputs(
-" the authentication to the separate binary ntlmauth application\n"
-" that is executed when needed.\n"
+" curl --ntlm-wb -u user:password https://example.com\n"
"\n"
" See also --ntlm and --proxy-ntlm.\n"
"\n"
-" --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n"
+" --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n"
" method was designed by Microsoft and is used by IIS web servers.\n"
-" It is a proprietary protocol, reverse-engineered by clever peo-\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"
, stdout);
fputs(
-" behavior should not be endorsed, you should encourage everyone\n"
-" who uses NTLM to switch to a public and documented authentica-\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"
-" If you want to enable NTLM for your proxy authentication, then\n"
+" 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"
+" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
+" Example:\n"
, stdout);
fputs(
-" See also --proxy-ntlm. --ntlm requires that the underlying\n"
-" libcurl was built to support TLS. This option overrides --basic\n"
+" curl --ntlm -u user:password https://example.com\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"
-" (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"
+" (IMAP POP3 SMTP HTTP) Specify the Bearer Token for OAUTH 2.0\n"
+" server authentication. The Bearer Token is used in conjunction\n"
, stdout);
fputs(
+" 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"
+" 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"
-" --output-dir <dir>\n"
+" Example:\n"
+" curl --oauth2-bearer \"mF_9.B5f-4.1JqM\" https://example.com\n"
"\n"
-" This option specifies the directory in which files should be\n"
-" stored, when -O, --remote-name or -o, --output are used.\n"
+" Added in 7.33.0.\n"
+"\n"
+" --output-dir <dir>\n"
"\n"
-" The given output directory is used for all URLs and output op-\n"
, stdout);
fputs(
+" This option specifies the directory in which files should be\n"
+" stored, when -O, --remote-name or -o, --output are used.\n"
+"\n"
+" The given output directory is used for all URLs and output op-\n"
" tions on the command line, up until the first -:, --next.\n"
"\n"
-" If the specified target directory doesn't exist, the operation\n"
+" If the specified target directory does not exist, the operation\n"
" will fail unless --create-dirs is also used.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used multiple times, the last specified direc-\n"
" tory will be used.\n"
"\n"
-" See also -O, --remote-name and -J, --remote-header-name. Added\n"
+" Example:\n"
+" curl --output-dir \"tmp\" -O https://example.com\n"
+"\n"
+" See also -O, --remote-name and -J, --remote-header-name. Added\n"
" in 7.73.0.\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 should quote the URL and you\n"
-" can use '#' followed by a number in the <file> specifier. That\n"
-" variable will be replaced with the current string for the URL\n"
+, stdout);
+ fputs(
+" can use '#' followed by a number in the <file> specifier. That\n"
+" variable will be replaced with the current string for the URL\n"
" 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"
-, stdout);
- fputs(
" curl \"http://{site,host}.host[1-5].com\" -o \"#1_#2\"\n"
"\n"
-" 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"
+" You may use this option as many times as the number of URLs you\n"
+, stdout);
+ fputs(
+" 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"
-, stdout);
- fputs(
+" and the order of the -o options and the URLs does not 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"
" 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"
+, stdout);
+ fputs(
+" 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"
+" To suppress response bodies, you can redirect output to\n"
+" /dev/null:\n"
+"\n"
+" curl example.com -o /dev/null\n"
+"\n"
+" Or for Windows use nul:\n"
+" curl example.com -o nul\n"
+"\n"
+" Examples:\n"
+, stdout);
+ fputs(
+" curl -o file https://example.com\n"
+" curl \"http://{one,two}.example.com\" -o \"file_#1.txt\"\n"
+" curl \"http://{site,host}.host[1-5].com\" -o \"#1_#2\"\n"
+" curl -o file https://example.com -o file2 https://example.net\n"
+"\n"
" See also -O, --remote-name, --remote-name-all and -J, --remote-\n"
" header-name.\n"
"\n"
" --parallel-immediate\n"
+" When doing parallel transfers, this option will instruct curl\n"
, stdout);
fputs(
-" When doing parallel transfers, this option will instruct curl\n"
" 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"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
+" Example:\n"
+" curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2\n"
"\n"
-" --parallel-max <num>\n"
-" When asked to do parallel transfers, using -Z, --parallel, this\n"
, stdout);
fputs(
+" See also -Z, --parallel and --parallel-max. Added in 7.68.0.\n"
+"\n"
+" --parallel-max <num>\n"
+" When asked to do parallel transfers, using -Z, --parallel, this\n"
" option controls the maximum amount of transfers to do simultane-\n"
" ously.\n"
"\n"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
" The default is 50.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --parallel-max 100 -Z https://example.com ftp://example.com/\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"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --parallel https://example.com -o file1 https://example.com -o file2\n"
+"\n"
" Added in 7.66.0.\n"
"\n"
" --pass <phrase>\n"
" (SSH TLS) Passphrase for the private key.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --pass secret --key file https://example.com\n"
+"\n"
" --path-as-is\n"
-" Tell curl to not handle sequences of /../ or /./ in the given\n"
-" URL path. Normally curl will squash or merge them according to\n"
+" Tell curl to not handle sequences of /../ or /./ in the given\n"
+, stdout);
+ fputs(
+" 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"
+" Example:\n"
+" curl --path-as-is https://example.com/../../etc/passwd\n"
+"\n"
" Added in 7.42.0.\n"
"\n"
" --pinnedpubkey <hashes>\n"
-" (TLS) Tells curl to use the specified public key file (or\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(
-" hashes) to verify the peer. This can be a path to a file which\n"
" 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"
+" 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"
+" 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(
-" from this certificate and if it does not exactly match the pub-\n"
-" lic key provided to this option, curl will abort the connection\n"
+" lic key provided to this option, curl will abort the connection\n"
" before sending or receiving any data.\n"
"\n"
" PEM/DER support:\n"
@@ -2508,61 +2991,73 @@ void hugehelp(void)
"\n"
" 7.47.0: mbedtls\n"
"\n"
-, stdout);
- fputs(
" Other SSL backends not supported.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl --pinnedpubkey keyfile https://example.com\n"
+" curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com\n"
+"\n"
+" Added in 7.39.0.\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 behavior is ubiquitous in web browsers, so curl does the\n"
-" conversion by default to maintain consistency. However, a server\n"
, stdout);
fputs(
-" may require a POST to remain a POST after such a redirection.\n"
+" non-RFC behavior is ubiquitous in web browsers, so curl does the\n"
+" conversion by default to maintain consistency. However, a server\n"
+" may require a POST to remain a POST after such a redirection.\n"
" This option is meaningful only when using -L, --location.\n"
"\n"
-" See also --post302, --post303 and -L, --location. Added in\n"
-" 7.17.1.\n"
+" Example:\n"
+" curl --post301 --location -d \"data\" https://example.com\n"
+"\n"
+" See also --post302, --post303 and -L, --location.\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"
, stdout);
fputs(
+" (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 behavior is ubiquitous in web browsers, so curl does the\n"
" conversion by default to maintain consistency. However, a server\n"
" may require a POST to remain a POST after such a redirection.\n"
" This option is meaningful only when using -L, --location.\n"
"\n"
-" See also --post301, --post303 and -L, --location. Added in\n"
-" 7.19.1.\n"
-"\n"
-" --post303\n"
+" Example:\n"
, stdout);
fputs(
+" curl --post302 --location -d \"data\" https://example.com\n"
+"\n"
+" See also --post301, --post303 and -L, --location.\n"
+"\n"
+" --post303\n"
" (HTTP) Tells curl to violate RFC 7231/6.4.4 and not convert POST\n"
-" requests into GET requests when following 303 redirections. A\n"
+" 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, --post301 and -L, --location. Added in\n"
-" 7.26.0.\n"
-"\n"
-" --preproxy [protocol://]host[:port]\n"
+" Example:\n"
, stdout);
fputs(
+" curl --post303 --location -d \"data\" https://example.com\n"
+"\n"
+" See also --post302, --post301 and -L, --location.\n"
+"\n"
+" --preproxy [protocol://]host[:port]\n"
" Use the specified SOCKS proxy before connecting to an HTTP or\n"
" 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"
, stdout);
fputs(
+" 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"
" SOCKS version to be used. No protocol specified will make curl\n"
" default to SOCKS4.\n"
@@ -2570,82 +3065,88 @@ void hugehelp(void)
" 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"
, stdout);
fputs(
+" 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"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --preproxy socks5://proxy.example -x http://http.example https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" -#, --progress-bar\n"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" the screen and shows a percentage if the transfer size is known.\n"
" 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"
+, stdout);
+ fputs(
" 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"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
"\n"
" Example:\n"
+" curl -# -O https://example.com\n"
"\n"
-, stdout);
- fputs(
-" curl --proto-default https ftp.mozilla.org\n"
+" --proto-default <protocol>\n"
+" Tells curl to use protocol for any URL missing a scheme name.\n"
"\n"
-" An unknown or unsupported protocol causes error CURLE_UNSUP-\n"
+" An unknown or unsupported protocol causes error CURLE_UNSUP-\n"
" PORTED_PROTOCOL (1).\n"
"\n"
+, stdout);
+ fputs(
" 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"
+" Without this option set, curl guesses protocol based on the host\n"
+" name, see --url for details.\n"
+"\n"
+" Example:\n"
+" curl --proto-default https ftp.example.com\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(
-" Tells curl to limit what protocols it may use on redirect. Pro-\n"
-" tocols denied by --proto are not overridden by this option. See\n"
+" 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"
+" By default curl will only allow HTTP, HTTPS, FTP and FTPS on re-\n"
+" direct (since 7.65.2). Specifying all or +all enables all proto-\n"
+" cols on redirects, which is not good for security.\n"
+"\n"
, stdout);
fputs(
-" (7.65.2). Older versions of curl allowed all protocols on redi-\n"
-" 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"
+" Example:\n"
+" curl --proto-redir =http,https https://example.com\n"
"\n"
" --proto <protocols>\n"
-, stdout);
- fputs(
" Tells curl to limit what protocols it may use for transfers.\n"
" 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"
, stdout);
fputs(
+" 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"
@@ -2657,9 +3158,9 @@ void hugehelp(void)
"\n"
" --proto -ftps uses the default protocols, but disables ftps\n"
"\n"
-" --proto -all,https,+http\n"
, stdout);
fputs(
+" --proto -all,https,+http\n"
" only enables http and https\n"
"\n"
" --proto =http,https\n"
@@ -2676,194 +3177,283 @@ void hugehelp(void)
" is the same as concatenating the protocols into one instance of\n"
" the option.\n"
"\n"
-" See also --proto-redir and --proto-default. Added in 7.20.2.\n"
+" Example:\n"
+" curl --proto =http,https,sftp https://example.com\n"
+"\n"
+" See also --proto-redir and --proto-default.\n"
"\n"
" --proxy-anyauth\n"
" Tells curl to pick a suitable authentication method when commu-\n"
+, stdout);
+ fputs(
" nicating with the given HTTP proxy. This might cause an extra\n"
" request/response round-trip.\n"
"\n"
-, stdout);
- fputs(
-" See also -x, --proxy, --proxy-basic and --proxy-digest. Added in\n"
-" 7.13.2.\n"
+" Example:\n"
+" curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com\n"
+"\n"
+" See also -x, --proxy, --proxy-basic and --proxy-digest.\n"
"\n"
" --proxy-basic\n"
-" Tells curl to use HTTP Basic authentication when communicating\n"
+" Tells curl to use HTTP Basic authentication when communicating\n"
" with the given proxy. Use --basic for enabling HTTP Basic with a\n"
-" remote host. Basic is the default authentication method curl\n"
+, stdout);
+ fputs(
+" remote host. Basic is the default authentication method curl\n"
" uses with proxies.\n"
"\n"
+" Example:\n"
+" curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com\n"
+"\n"
" See also -x, --proxy, --proxy-anyauth and --proxy-digest.\n"
"\n"
" --proxy-cacert <file>\n"
-, stdout);
- fputs(
" Same as --cacert but used in HTTPS proxy context.\n"
"\n"
-" See also --proxy-capath, --cacert, --capath and -x, --proxy.\n"
+" Example:\n"
+" curl --proxy-cacert CA-file.txt -x https://proxy https://example.com\n"
+"\n"
+, stdout);
+ fputs(
+" See also --proxy-capath, --cacert, --capath and -x, --proxy.\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-capath <dir>\n"
" Same as --capath but used in HTTPS proxy context.\n"
"\n"
-" See also --proxy-cacert, -x, --proxy and --capath. Added in\n"
+" Example:\n"
+" curl --proxy-capath /local/directory -x https://proxy https://example.com\n"
+"\n"
+" See also --proxy-cacert, -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"
, stdout);
fputs(
+" Same as --cert-type but used in HTTPS proxy context.\n"
+"\n"
+" Example:\n"
+" curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com\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"
+" Example:\n"
+" curl --proxy-cert file -x https://proxy https://example.com\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"
+" Example:\n"
+" curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-crlfile <file>\n"
" Same as --crlfile but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-crlfile rejects.txt -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-digest\n"
, stdout);
fputs(
-" Tells curl to use HTTP Digest authentication when communicating\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"
+" Example:\n"
+" curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com\n"
+"\n"
" See also -x, --proxy, --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"
+" (HTTP) Extra header to include in the request when sending HTTP\n"
, stdout);
fputs(
-" the equivalent option to -H, --header but is for proxy communi-\n"
-" cation only like in CONNECT requests when you want a separate\n"
-" header sent to the proxy to what is sent to the actual remote\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"
+" 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"
+" 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"
, stdout);
fputs(
+" 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"
+" Headers specified with this option will not be included in re-\n"
" 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"
+" 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"
, stdout);
fputs(
-" This option can be used multiple times to add/replace/remove\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"
+" Examples:\n"
+" curl --proxy-header \"X-First-Name: Joe\" -x http://proxy https://example.com\n"
+" curl --proxy-header \"User-Agent: surprise\" -x http://proxy https://example.com\n"
+" curl --proxy-header \"Host:\" -x http://proxy https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" Added in 7.37.0.\n"
" --proxy-insecure\n"
" Same as -k, --insecure but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-insecure -x https://proxy https://example.com\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"
+" Example:\n"
+" curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" Added in 7.52.0.\n"
"\n"
" --proxy-key <key>\n"
" Same as --key but used in HTTPS proxy context.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --proxy-key here -x https://proxy https://example.com\n"
+"\n"
+" Added in 7.52.0.\n"
+"\n"
" --proxy-negotiate\n"
-" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n"
+" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n"
" communicating with the given proxy. Use --negotiate for enabling\n"
" HTTP Negotiate (SPNEGO) with a remote host.\n"
"\n"
-" See also --proxy-anyauth and --proxy-basic. Added in 7.17.1.\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com\n"
+"\n"
+" See also --proxy-anyauth and --proxy-basic.\n"
"\n"
" --proxy-ntlm\n"
-" Tells curl to use HTTP NTLM authentication when communicating\n"
+" Tells curl to use HTTP NTLM authentication when communicating\n"
" with the given proxy. Use --ntlm for enabling NTLM with a remote\n"
-, stdout);
- fputs(
" host.\n"
"\n"
+" Example:\n"
+" curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" See also --proxy-negotiate and --proxy-anyauth.\n"
"\n"
" --proxy-pass <phrase>\n"
" Same as --pass but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-pinnedpubkey <hashes>\n"
-" (TLS) Tells curl to use the specified public key file (or\n"
-" hashes) to verify the proxy. This can be a path to a file which\n"
-" contains a single public key in PEM or DER format, or any number\n"
+" (TLS) Tells curl to use the specified public key file (or\n"
+" hashes) to verify the proxy. 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"
-" lic key provided to this option, curl will abort the connection\n"
-" before sending or receiving any data.\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"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl --proxy-pinnedpubkey keyfile https://example.com\n"
+" curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com\n"
+"\n"
+" Added in 7.59.0.\n"
+"\n"
" --proxy-service-name <name>\n"
-" This option allows you to change the service name for proxy ne-\n"
+, stdout);
+ fputs(
+" This option allows you to change the service name for proxy ne-\n"
" gotiation.\n"
"\n"
+" Example:\n"
+" curl --proxy-service-name \"shrubbery\" -x proxy https://example.com\n"
+"\n"
" Added in 7.43.0.\n"
"\n"
" --proxy-ssl-allow-beast\n"
" Same as --ssl-allow-beast but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-ssl-allow-beast -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
-" --proxy-ssl-auto-client-cert\n"
, stdout);
fputs(
+" --proxy-ssl-auto-client-cert\n"
" Same as --ssl-auto-client-cert but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com\n"
+"\n"
" Added in 7.77.0.\n"
"\n"
" --proxy-tls13-ciphers <ciphersuite list>\n"
-" (TLS) Specifies which cipher suites to use in the connection to\n"
+" (TLS) Specifies which cipher suites to use in the connection to\n"
" your HTTPS proxy when it negotiates TLS 1.3. The list of ciphers\n"
-" suites must specify valid ciphers. Read up on TLS 1.3 cipher\n"
+, stdout);
+ fputs(
+" suites must specify valid ciphers. Read up on TLS 1.3 cipher\n"
" suite details on this URL:\n"
"\n"
" https://curl.se/docs/ssl-ciphers.html\n"
"\n"
-, stdout);
- fputs(
-" This option is currently used only when curl is built to use\n"
+" This option is currently used only when curl is built to use\n"
" OpenSSL 1.1.1 or later. If you are using a different SSL backend\n"
-" you can try setting TLS 1.3 cipher suites by using the --proxy-\n"
+" you can try setting TLS 1.3 cipher suites by using the --proxy-\n"
" ciphers option.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com\n"
+"\n"
+" Added in 7.61.0.\n"
+"\n"
" --proxy-tlsauthtype <type>\n"
" Same as --tlsauthtype but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-tlsauthtype SRP -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
, stdout);
@@ -2871,73 +3461,84 @@ void hugehelp(void)
" --proxy-tlspassword <string>\n"
" Same as --tlspassword but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-tlspassword passwd -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-tlsuser <name>\n"
" Same as --tlsuser but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-tlsuser smith -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --proxy-tlsv1\n"
+, stdout);
+ fputs(
" Same as -1, --tlsv1 but used in HTTPS proxy context.\n"
"\n"
+" Example:\n"
+" curl --proxy-tlsv1 -x https://proxy https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" -U, --proxy-user <user:password>\n"
-, stdout);
- fputs(
-" Specify the user name and password to use for proxy authentica-\n"
+" Specify the user name and password to use for proxy authentica-\n"
" tion.\n"
"\n"
-" If you use a Windows SSPI-enabled curl binary and do either Ne-\n"
-" gotiate or NTLM authentication then you can tell curl to select\n"
+" If you use a Windows SSPI-enabled curl binary and do either Ne-\n"
+" gotiate or NTLM authentication then you can tell curl to select\n"
+, stdout);
+ fputs(
" the user name and password from your environment by specifying a\n"
" single colon with this option: \"-U :\".\n"
"\n"
" On systems where it works, curl will hide the given option argu-\n"
+" ment from process listings. This is not enough to protect cre-\n"
+" dentials from possibly getting seen by other users on the same\n"
+" system as they will still be visible for a brief moment before\n"
, stdout);
fputs(
-" ment from process listings. This is not enough to protect cre-\n"
-" dentials from possibly getting seen by other users on the same\n"
-" system as they will still be visible for a brief moment before\n"
" cleared. Such sensitive data should be retrieved from a file in-\n"
" stead or similar and never used in clear text in a command line.\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --proxy-user name:pwd -x proxy https://example.com\n"
+"\n"
" -x, --proxy [protocol://]host[:port]\n"
" Use the specified proxy.\n"
"\n"
-" The proxy string can be specified with a protocol:// prefix. No\n"
+" The proxy string can be specified with a protocol:// prefix. No\n"
+, stdout);
+ fputs(
" protocol specified or http:// will be treated as HTTP proxy. Use\n"
" socks4://, socks4a://, socks5:// or socks5h:// to request a spe-\n"
-" cific SOCKS version to be used. (The protocol support was added\n"
-" in curl 7.21.7)\n"
+" cific SOCKS version to be used.\n"
"\n"
-, stdout);
- fputs(
" HTTPS proxy support via https:// protocol prefix was added in\n"
" 7.52.0 for OpenSSL, GnuTLS and NSS.\n"
"\n"
" Unrecognized and unsupported proxy protocols cause an error\n"
" since 7.52.0. Prior versions may ignore the protocol and use\n"
+, stdout);
+ fputs(
" http:// instead.\n"
"\n"
" If the port number is not specified in the proxy string, it is\n"
" assumed to be 1080.\n"
"\n"
-, stdout);
- fputs(
" This option overrides existing environment variables that set\n"
" the proxy to use. If there's an environment variable setting a\n"
" proxy, you can set proxy to \"\" to override it.\n"
"\n"
" All operations that are performed over an HTTP proxy will trans-\n"
-" parently be converted to HTTP. It means that certain protocol\n"
-" specific operations might not be available. This is not the case\n"
, stdout);
fputs(
+" parently be converted to HTTP. It means that certain protocol\n"
+" specific operations might not be available. This is not the case\n"
" if you can tunnel through the proxy, as one with the -p, --prox-\n"
" ytunnel option.\n"
"\n"
@@ -2945,36 +3546,47 @@ void hugehelp(void)
" 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"
-" The proxy host can be specified the exact same way as the proxy\n"
-" environment variables, including the protocol prefix (http://)\n"
, stdout);
fputs(
+" The proxy host can be specified the exact same way as the proxy\n"
+" environment variables, including the protocol prefix (http://)\n"
" and the embedded user + password.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --proxy http://proxy.example https://example.com\n"
+"\n"
" --proxy1.0 <host[:port]>\n"
" Use the specified HTTP 1.0 proxy. If the port number is not\n"
+, stdout);
+ fputs(
" specified, it is assumed at port 1080.\n"
"\n"
" The only difference between this and the HTTP proxy option -x,\n"
" --proxy, is that attempts to use CONNECT through the proxy will\n"
-, stdout);
- fputs(
" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
"\n"
+" Example:\n"
+" curl --proxy1.0 -x http://proxy https://example.com\n"
+"\n"
" -p, --proxytunnel\n"
" When an HTTP proxy is used -x, --proxy, this option will make\n"
+, stdout);
+ fputs(
" curl tunnel through the proxy. The tunnel approach is made with\n"
" the HTTP proxy CONNECT request and requires that the proxy al-\n"
" lows direct connect to the remote port number curl wants to tun-\n"
" nel through to.\n"
"\n"
-, stdout);
- fputs(
" To suppress proxy CONNECT response headers when curl is set to\n"
" output headers use --suppress-connect-headers.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --proxytunnel -x http://proxy https://example.com\n"
+"\n"
" See also -x, --proxy.\n"
"\n"
" --pubkey <key>\n"
@@ -2983,13 +3595,16 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
" (As of 7.39.0, curl attempts to automatically extract the public\n"
+" key from the private key file, so passing this option is gener-\n"
, stdout);
fputs(
-" key from the private key file, so passing this option is gener-\n"
" ally not required. Note that this public key extraction requires\n"
" libcurl to be linked against a copy of libssh2 1.2.8 or higher\n"
" that is itself linked against OpenSSL.)\n"
"\n"
+" Example:\n"
+" curl --pubkey file.pub sftp://example.com/\n"
+"\n"
" -Q, --quote <command>\n"
" (FTP SFTP) Send an arbitrary command to the remote FTP or SFTP\n"
" server. Quote commands are sent BEFORE the transfer takes place\n"
@@ -3004,14 +3619,14 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
-" If the server returns failure for one of the commands, the en-\n"
-" tire operation will be aborted. You must send syntactically cor-\n"
-" rect FTP commands as RFC 959 defines to FTP servers, or one of\n"
-" the commands listed below to SFTP servers.\n"
+" By default curl will stop at first failure. To make curl con-\n"
+" tinue even if the command fails, prefix the command with an as-\n"
+" terisk (*). Otherwise, if the server returns failure for one of\n"
+" the commands, the entire operation will be aborted.\n"
"\n"
-" Prefix the command with an asterisk (*) to make curl continue\n"
-" even if the command fails as by default curl will stop at first\n"
-" failure.\n"
+" You must send syntactically correct FTP commands as RFC 959 de-\n"
+" fines to FTP servers, or one of the commands listed below to\n"
+" SFTP servers.\n"
"\n"
, stdout);
fputs(
@@ -3090,14 +3705,20 @@ void hugehelp(void)
" symlink source_file target_file\n"
" See ln.\n"
"\n"
+" Example:\n"
+" curl --quote \"DELE file\" ftp://example.com/foo\n"
+"\n"
" --random-file <file>\n"
" Specify the path name to file containing what will be considered\n"
" as random data. The data may be used to seed the random engine\n"
" for SSL connections. See also the --egd-file option.\n"
"\n"
-" -r, --range <range>\n"
+" Example:\n"
, stdout);
fputs(
+" curl --random-file rubbish https://example.com\n"
+"\n"
+" -r, --range <range>\n"
" (HTTP FTP SFTP FILE) Retrieve a byte range (i.e. a partial docu-\n"
" ment) from an HTTP/1.1, FTP or SFTP server or a local FILE.\n"
" Ranges can be specified in a number of ways.\n"
@@ -3108,10 +3729,10 @@ void hugehelp(void)
"\n"
" -500 specifies the last 500 bytes\n"
"\n"
-" 9500- specifies the bytes from offset 9500 and forward\n"
-"\n"
, stdout);
fputs(
+" 9500- specifies the bytes from offset 9500 and forward\n"
+"\n"
" 0-0,-1 specifies the first and last byte only(*)(HTTP)\n"
"\n"
" 100-199,500-599\n"
@@ -3120,10 +3741,10 @@ void hugehelp(void)
" (*) = NOTE that this will cause the server to reply with a mul-\n"
" tipart response, which will be returned as-is by curl! Parsing\n"
" or otherwise transforming this response is the responsibility of\n"
-" the caller.\n"
-"\n"
, stdout);
fputs(
+" the caller.\n"
+"\n"
" Only digit characters (0-9) are valid in the 'start' and 'stop'\n"
" fields of the 'start-stop' range syntax. If a non-digit charac-\n"
" ter is given in the range, the server's response will be unspec-\n"
@@ -3133,7 +3754,7 @@ void hugehelp(void)
" this feature enabled, so that when you attempt to get a range,\n"
, stdout);
fputs(
-" you'll instead get the whole document.\n"
+" you will instead get the whole document.\n"
"\n"
" FTP and SFTP range downloads only support the simple 'start-\n"
" stop' syntax (optionally with one of the numbers omitted). FTP\n"
@@ -3141,51 +3762,65 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n"
+" Example:\n"
+" curl --range 22-44 https://example.com\n"
+"\n"
, stdout);
fputs(
+" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n"
" tent or transfer encodings and instead makes them passed on un-\n"
" altered, raw.\n"
"\n"
-" Added in 7.16.2.\n"
+" Example:\n"
+" curl --raw https://example.com\n"
"\n"
" -e, --referer <URL>\n"
" (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n"
" This can also be set with the -H, --header flag of course. When\n"
-" used with -L, --location you can append \";auto\" to the -e,\n"
-" --referer URL to make curl automatically set the previous URL\n"
, stdout);
fputs(
+" used with -L, --location you can append \";auto\" to the -e,\n"
+" --referer URL to make curl automatically set the previous URL\n"
" when it follows a Location: header. The \";auto\" string can be\n"
-" used alone, even if you don't set an initial -e, --referer.\n"
+" used alone, even if you do not set an initial -e, --referer.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl --referer \"https://fake.example\" https://example.com\n"
+, stdout);
+ fputs(
+" curl --referer \"https://fake.example;auto\" -L https://example.com\n"
+" curl --referer \";auto\" -L https://example.com\n"
+"\n"
" See also -A, --user-agent and -H, --header.\n"
"\n"
" -J, --remote-header-name\n"
" (HTTP) This option tells the -O, --remote-name option to use the\n"
" server-specified Content-Disposition filename instead of ex-\n"
-, stdout);
- fputs(
" tracting a filename from the URL.\n"
"\n"
+, stdout);
+ fputs(
" If the server specifies a file name and a file with that name\n"
" already exists in the current working directory it will not be\n"
-" overwritten and an error will occur. If the server doesn't spec-\n"
-" ify a file name then this option has no effect.\n"
+" overwritten and an error will occur. If the server does not\n"
+" specify a file name then this option has no effect.\n"
"\n"
" There's no attempt to decode %-sequences (yet) in the provided\n"
-, stdout);
- fputs(
" file name, so this option may provide you with rather unexpected\n"
" file names.\n"
"\n"
+, stdout);
+ fputs(
" WARNING: Exercise judicious use of this option, especially on\n"
" Windows. A rogue server could send you the name of a DLL or\n"
" other file that could possibly be loaded automatically by Win-\n"
" dows or some third party software.\n"
"\n"
+" Example:\n"
+" curl -OJ https://example.com/file\n"
+"\n"
" --remote-name-all\n"
" This option changes the default action for all given URLs to be\n"
, stdout);
@@ -3194,71 +3829,83 @@ void hugehelp(void)
" you want to disable that for a specific URL after --remote-name-\n"
" all has been used, you must use \"-o -\" or --no-remote-name.\n"
"\n"
-" Added in 7.19.0.\n"
+" Example:\n"
+" curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2\n"
"\n"
" -O, --remote-name\n"
" Write output to a local file named like the remote file we get.\n"
+, stdout);
+ fputs(
" (Only the file part of the remote file is used, the path is cut\n"
" off.)\n"
"\n"
-, stdout);
- fputs(
" The file will be saved in the current working directory. If you\n"
" want the file saved in a different directory, make sure you\n"
" change the current working directory before invoking curl with\n"
" this option.\n"
"\n"
" The remote file name to use for saving is extracted from the\n"
-" given URL, nothing else, and if it already exists it will be\n"
, stdout);
fputs(
+" given URL, nothing else, and if it already exists it will be\n"
" overwritten. If you want the server to be able to choose the\n"
" file name refer to -J, --remote-header-name which can be used in\n"
" addition to this option. If the server chooses a file name and\n"
" that name already exists it will not be overwritten.\n"
"\n"
" There is no URL decoding done on the file name. If it has %20 or\n"
+, stdout);
+ fputs(
" other URL encoded parts of the name, they will end up as-is as\n"
" file name.\n"
"\n"
-, stdout);
- fputs(
" You may use this option as many times as the number of URLs you\n"
" have.\n"
"\n"
+" Example:\n"
+" curl -O https://example.com/filename\n"
+"\n"
" -R, --remote-time\n"
" When used, this will make curl attempt to figure out the time-\n"
" stamp of the remote file, and if that is available make the lo-\n"
+, stdout);
+ fputs(
" cal file get that same timestamp.\n"
"\n"
+" Example:\n"
+" curl --remote-time -o foo https://example.com\n"
+"\n"
" --request-target <path>\n"
" (HTTP) Tells curl to use an alternative \"target\" (path) instead\n"
-, stdout);
- fputs(
" of using the path as provided in the URL. Particularly useful\n"
" when wanting to issue HTTP requests without leading slash or\n"
-" other data that doesn't follow the regular URL pattern, like\n"
+" other data that does not follow the regular URL pattern, like\n"
+, stdout);
+ fputs(
" \"OPTIONS *\".\n"
"\n"
+" Example:\n"
+" curl --request-target \"*\" -X OPTIONS https://example.com\n"
+"\n"
" Added in 7.55.0.\n"
"\n"
" -X, --request <command>\n"
" (HTTP) Specifies a custom request method to use when communicat-\n"
" ing with the HTTP server. The specified request method will be\n"
+" used instead of the method otherwise used (which defaults to\n"
, stdout);
fputs(
-" used instead of the method otherwise used (which defaults to\n"
" GET). Read the HTTP 1.1 specification for details and explana-\n"
" tions. Common additional HTTP requests include PUT and DELETE,\n"
" but related technologies like WebDAV offers PROPFIND, COPY, MOVE\n"
" and more.\n"
"\n"
-" Normally you don't need this option. All sorts of GET, HEAD,\n"
+" Normally you do not need this option. All sorts of GET, HEAD,\n"
" POST and PUT requests are rather invoked by using dedicated com-\n"
-, stdout);
- fputs(
" mand line options.\n"
"\n"
+, stdout);
+ fputs(
" This option only changes the actual word used in the HTTP re-\n"
" quest, it does not alter the way curl behaves. So for example if\n"
" you want to make a proper HEAD request, using -X HEAD will not\n"
@@ -3268,39 +3915,43 @@ void hugehelp(void)
" all requests, which if you for example use -L, --location may\n"
, stdout);
fputs(
-" cause unintended side-effects when curl doesn't change request\n"
+" cause unintended side-effects when curl does not change request\n"
" method according to the HTTP 30x response codes - and similar.\n"
"\n"
" (FTP) Specifies a custom FTP command to use instead of LIST when\n"
" doing file lists with FTP.\n"
"\n"
" (POP3) Specifies a custom POP3 command to use instead of LIST or\n"
-" RETR. (Added in 7.26.0)\n"
+" RETR.\n"
"\n"
" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
-, stdout);
- fputs(
" (Added in 7.30.0)\n"
"\n"
+, stdout);
+ fputs(
" (SMTP) Specifies a custom SMTP command to use instead of HELP or\n"
" VRFY. (Added in 7.34.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl -X \"DELETE\" https://example.com\n"
+" curl -X NLST ftp://example.com/\n"
+"\n"
" --resolve <[+]host:port:addr[,addr]...>\n"
" Provide a custom address for a specific host and port pair. Us-\n"
-" ing this, you can make the curl requests(s) use a specified ad-\n"
, stdout);
fputs(
+" ing this, you can make the curl requests(s) use a specified ad-\n"
" dress and prevent the otherwise normally resolved address to be\n"
" used. Consider it a sort of /etc/hosts alternative provided on\n"
" the command line. The port number should be the number used for\n"
" the specific protocol the host will be used for. It means you\n"
" need several entries if you want to provide address for the same\n"
-" host but different ports.\n"
-"\n"
, stdout);
fputs(
+" host but different ports.\n"
+"\n"
" By specifying '*' as host you can tell curl to resolve any host\n"
" and specific port pair to the specified address. Wildcard is re-\n"
" solved last so any --resolve with a specific host and port will\n"
@@ -3332,7 +3983,8 @@ void hugehelp(void)
" This option can be used many times to add many host names to re-\n"
" solve.\n"
"\n"
-" Added in 7.21.3.\n"
+" Example:\n"
+" curl --resolve example.com:443:127.0.0.1 https://example.com\n"
"\n"
" --retry-all-errors\n"
, stdout);
@@ -3348,7 +4000,7 @@ void hugehelp(void)
, stdout);
fputs(
"\n"
-" Warning: For server compatibility curl attempts to retry failed\n"
+" WARNING: For server compatibility curl attempts to retry failed\n"
" flaky transfers as close as possible to how they were started,\n"
" but this is not possible with redirected input or output. For\n"
" example, before retrying it removes output data from a failed\n"
@@ -3356,9 +4008,9 @@ void hugehelp(void)
" this is not true of data redirected to a | pipe or > file, which\n"
, stdout);
fputs(
-" are not reset. We strongly suggest don't parse or record output\n"
-" via redirect in combination with this option, since you may re-\n"
-" ceive duplicate data.\n"
+" are not reset. We strongly suggest you do not parse or record\n"
+" output via redirect in combination with this option, since you\n"
+" may receive duplicate data.\n"
"\n"
" By default curl will not error on an HTTP response code that in-\n"
" dicates an HTTP error, if the transfer was successful. For exam-\n"
@@ -3372,102 +4024,122 @@ void hugehelp(void)
" that indicate HTTP errors (4xx and 5xx) then combine with -f,\n"
" --fail.\n"
"\n"
+" Example:\n"
+" curl --retry-all-errors https://example.com\n"
+, stdout);
+ fputs(
+"\n"
" Added in 7.71.0.\n"
"\n"
" --retry-connrefused\n"
-, stdout);
- fputs(
" In addition to the other conditions, consider ECONNREFUSED as a\n"
" transient error too for --retry. This option is used together\n"
" with --retry.\n"
"\n"
+" Example:\n"
+" curl --retry-connrefused --retry https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" --retry-delay <seconds>\n"
" Make curl sleep this amount of time before each retry when a\n"
-" transfer has failed with a transient error (it changes the de-\n"
-" fault backoff time algorithm between retries). This option is\n"
, stdout);
fputs(
+" transfer has failed with a transient error (it changes the de-\n"
+" fault backoff time algorithm between retries). This option is\n"
" only interesting if --retry is also used. Setting this delay to\n"
" zero will make curl use the default backoff time.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.12.3.\n"
+" Example:\n"
+" curl --retry-delay 5 --retry https://example.com\n"
"\n"
+, stdout);
+ fputs(
" --retry-max-time <seconds>\n"
" The retry timer is reset before the first transfer attempt. Re-\n"
" tries will be done as usual (see --retry) as long as the timer\n"
+" has not reached this given limit. Notice that if the timer has\n"
+" not reached the limit, the request will be made and while per-\n"
+" forming, it may take longer than this given time period. To\n"
, stdout);
fputs(
-" hasn't reached this given limit. Notice that if the timer hasn't\n"
-" reached the limit, the request will be made and while perform-\n"
-" ing, it may take longer than this given time period. To limit a\n"
-" single request's maximum time, use -m, --max-time. Set this op-\n"
-" tion to zero to not timeout retries.\n"
+" limit a single request's maximum time, use -m, --max-time. Set\n"
+" this option to zero to not timeout retries.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.12.3.\n"
+" Example:\n"
+" curl --retry-max-time 30 --retry 10 https://example.com\n"
"\n"
-, stdout);
- fputs(
" --retry <num>\n"
" If a transient error is returned when curl tries to perform a\n"
" transfer, it will retry this number of times before giving up.\n"
+, stdout);
+ fputs(
" Setting the number to 0 makes curl do no retries (which is the\n"
" default). Transient error means either: a timeout, an FTP 4xx\n"
" response code or an HTTP 408, 429, 500, 502, 503 or 504 response\n"
" code.\n"
"\n"
-, stdout);
- fputs(
" When curl is about to retry a transfer, it will first wait one\n"
" second and then for all forthcoming retries it will double the\n"
" waiting time until it reaches 10 minutes which then will be the\n"
+, stdout);
+ fputs(
" delay between the rest of the retries. By using --retry-delay\n"
" you disable this exponential backoff algorithm. See also\n"
" --retry-max-time to limit the total time allowed for retries.\n"
"\n"
-, stdout);
- fputs(
" Since curl 7.66.0, curl will comply with the Retry-After: re-\n"
" sponse header if one was present to know when to issue the next\n"
" retry.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.12.3.\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --retry 7 https://example.com\n"
"\n"
" --sasl-authzid <identity>\n"
" Use this authorisation identity (authzid), during SASL PLAIN au-\n"
" thentication, in addition to the authentication identity (auth-\n"
-, stdout);
- fputs(
" cid) as specified by -u, --user.\n"
"\n"
-" If the option isn't specified, the server will derive the au-\n"
+" If the option is not specified, the server will derive the au-\n"
" thzid from the authcid, but if specified, and depending on the\n"
+, stdout);
+ fputs(
" server implementation, it may be used to access another user's\n"
" inbox, that the user has been granted access to, or a shared\n"
" mailbox for example.\n"
"\n"
+" Example:\n"
+" curl --sasl-authzid zid imap://example.com/\n"
+"\n"
" Added in 7.66.0.\n"
"\n"
" --sasl-ir\n"
-, stdout);
- fputs(
" Enable initial response in SASL authentication.\n"
"\n"
+" Example:\n"
+" curl --sasl-ir imap://example.com/\n"
+"\n"
" Added in 7.31.0.\n"
"\n"
+, stdout);
+ fputs(
" --service-name <name>\n"
" This option allows you to change the service name for SPNEGO.\n"
"\n"
" Examples: --negotiate --service-name sockd would use\n"
" sockd/server-name.\n"
"\n"
+" Example:\n"
+" curl --service-name sockd/server https://example.com\n"
+"\n"
" Added in 7.43.0.\n"
" -S, --show-error\n"
" When used with -s, --silent, it makes curl show an error message\n"
@@ -3475,76 +4147,92 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
+" Example:\n"
+" curl --show-error --silent https://example.com\n"
+"\n"
" See also --no-progress-meter.\n"
"\n"
" -s, --silent\n"
-" Silent or quiet mode. Don't show progress meter or error mes-\n"
-" sages. Makes Curl mute. It will still output the data you ask\n"
+" Silent or quiet mode. Do not show progress meter or error mes-\n"
+" sages. Makes Curl mute. It will still output the data you ask\n"
+, stdout);
+ fputs(
" for, potentially even to the terminal/stdout unless you redirect\n"
" it.\n"
"\n"
-" Use -S, --show-error in addition to this option to disable\n"
+" Use -S, --show-error in addition to this option to disable\n"
" progress meter but still show error messages.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl -s https://example.com\n"
+"\n"
" See also -v, --verbose, --stderr and --no-progress-meter.\n"
"\n"
" --socks4 <host[:port]>\n"
" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
-" fied, it is assumed at port 1080. Using this socket type make\n"
-" curl resolve the host name and passing the address on to the\n"
+, stdout);
+ fputs(
+" fied, it is assumed at port 1080. Using this socket type make\n"
+" curl resolve the host name and passing the address on to the\n"
" proxy.\n"
"\n"
-" This option overrides any previous use of -x, --proxy, as they\n"
+" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
+" This option is superfluous since you can specify a socks4 proxy\n"
+" with -x, --proxy using a socks4:// protocol prefix.\n"
+"\n"
, stdout);
fputs(
-" Since 7.21.7, this option is superfluous since you can specify a\n"
-" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
-" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
+" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
" nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.15.2.\n"
+" Example:\n"
+" curl --socks4 hostname:4096 https://example.com\n"
"\n"
" --socks4a <host[:port]>\n"
+, stdout);
+ fputs(
" Use the specified SOCKS4a proxy. If the port number is not spec-\n"
-" ified, it is assumed at port 1080. This asks the proxy to re-\n"
+" ified, it is assumed at port 1080. This asks the proxy to re-\n"
" solve the host name.\n"
"\n"
-" This option overrides any previous use of -x, --proxy, as they\n"
+" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
+" This option is superfluous since you can specify a socks4a proxy\n"
+" with -x, --proxy using a socks4a:// protocol prefix.\n"
+"\n"
, stdout);
fputs(
-" Since 7.21.7, this option is superfluous since you can specify a\n"
-" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n"
-" fix.\n"
-"\n"
" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
" nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.18.0.\n"
+" Example:\n"
+" curl --socks4a hostname:4096 https://example.com\n"
"\n"
" --socks5-basic\n"
+, stdout);
+ fputs(
" Tells curl to use username/password authentication when connect-\n"
" ing to a SOCKS5 proxy. The username/password authentication is\n"
" enabled by default. Use --socks5-gssapi to force GSS-API au-\n"
" thentication to SOCKS5 proxies.\n"
"\n"
+" Example:\n"
+" curl --socks5-basic --socks5 hostname:4096 https://example.com\n"
+"\n"
" Added in 7.55.0.\n"
"\n"
" --socks5-gssapi-nec\n"
@@ -3556,11 +4244,12 @@ void hugehelp(void)
" --socks5-gssapi-nec allows the unprotected exchange of the pro-\n"
" tection mode negotiation.\n"
"\n"
-" Added in 7.19.4.\n"
+" Example:\n"
+" curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com\n"
"\n"
-" --socks5-gssapi-service <name>\n"
, stdout);
fputs(
+" --socks5-gssapi-service <name>\n"
" The default service name for a socks server is rcmd/server-fqdn.\n"
" This option allows you to change it.\n"
"\n"
@@ -3569,185 +4258,226 @@ void hugehelp(void)
" service sockd/real-name would use sockd/real-name for cases\n"
" where the proxy-name does not match the principal name.\n"
"\n"
-" Added in 7.19.4.\n"
-"\n"
-" --socks5-gssapi\n"
+" Example:\n"
, stdout);
fputs(
+" curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com\n"
+"\n"
+" --socks5-gssapi\n"
" Tells curl to use GSS-API authentication when connecting to a\n"
" SOCKS5 proxy. The GSS-API authentication is enabled by default\n"
" (if curl is compiled with GSS-API support). Use --socks5-basic\n"
" to force username/password authentication to SOCKS5 proxies.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --socks5-gssapi --socks5 hostname:4096 https://example.com\n"
+"\n"
" Added in 7.55.0.\n"
"\n"
" --socks5-hostname <host[:port]>\n"
" Use the specified SOCKS5 proxy (and let the proxy resolve the\n"
-, stdout);
- fputs(
" host name). If the port number is not specified, it is assumed\n"
" at port 1080.\n"
"\n"
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
-" Since 7.21.7, this option is superfluous since you can specify a\n"
-" socks5 hostname proxy with -x, --proxy using a socks5h:// proto-\n"
-" col prefix.\n"
-"\n"
-" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
, stdout);
fputs(
-" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
+" This option is superfluous since you can specify a socks5 host-\n"
+" name proxy with -x, --proxy using a socks5h:// protocol prefix.\n"
+"\n"
+" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
+" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
" nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.18.0.\n"
+" Example:\n"
+" curl --socks5-hostname proxy.example:7000 https://example.com\n"
"\n"
" --socks5 <host[:port]>\n"
-" Use the specified SOCKS5 proxy - but resolve the host name lo-\n"
-, stdout);
- fputs(
-" cally. If the port number is not specified, it is assumed at\n"
+" Use the specified SOCKS5 proxy - but resolve the host name lo-\n"
+" cally. If the port number is not specified, it is assumed at\n"
" port 1080.\n"
"\n"
-" This option overrides any previous use of -x, --proxy, as they\n"
+" This option overrides any previous use of -x, --proxy, as they\n"
+, stdout);
+ fputs(
" are mutually exclusive.\n"
"\n"
-" Since 7.21.7, this option is superfluous since you can specify a\n"
-" socks5 proxy with -x, --proxy using a socks5:// protocol prefix.\n"
+" This option is superfluous since you can specify a socks5 proxy\n"
+" with -x, --proxy using a socks5:// protocol prefix.\n"
+"\n"
" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
-, stdout);
- fputs(
-" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
+" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
" nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
-" This option (as well as --socks4) does not work with IPV6, FTPS\n"
+" This option (as well as --socks4) does not work with IPV6, FTPS\n"
" or LDAP.\n"
-"\n"
-" Added in 7.18.0.\n"
+" Example:\n"
+" curl --socks5 proxy.example:7000 https://example.com\n"
"\n"
" -Y, --speed-limit <speed>\n"
+" If a download is slower than this given speed (in bytes per sec-\n"
+" ond) for speed-time seconds it gets aborted. speed-time is set\n"
, stdout);
fputs(
-" If a download is slower than this given speed (in bytes per sec-\n"
-" ond) for speed-time seconds it gets aborted. speed-time is set\n"
" with -y, --speed-time and is 30 if not set.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --speed-limit 300 --speed-time 10 https://example.com\n"
+"\n"
" -y, --speed-time <seconds>\n"
" If a download is slower than speed-limit bytes per second during\n"
" a speed-time period, the download gets aborted. If speed-time is\n"
, stdout);
fputs(
-" used, the default speed-limit will be 1 unless set with -Y,\n"
+" used, the default speed-limit will be 1 unless set with -Y,\n"
" --speed-limit.\n"
"\n"
-" This option controls transfers and thus will not affect slow\n"
-" connects etc. If this is a concern for you, try the --connect-\n"
+" This option controls transfers and thus will not affect slow\n"
+" connects etc. If this is a concern for you, try the --connect-\n"
" timeout option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --speed-limit 300 --speed-time 10 https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" --ssl-allow-beast\n"
" This option tells curl to not work around a security flaw in the\n"
+" SSL3 and TLS1.0 protocols known as BEAST. If this option is not\n"
+" used, the SSL layer may use workarounds known to cause interop-\n"
+" erability problems with some older SSL implementations.\n"
+"\n"
+" WARNING: this option loosens the SSL security, and by using this\n"
+" flag you ask for exactly that.\n"
+"\n"
+" Example:\n"
, stdout);
fputs(
-" SSL3 and TLS1.0 protocols known as BEAST. If this option isn't\n"
-" used, the SSL layer may use workarounds known to cause interop-\n"
-" erability problems with some older SSL implementations. WARNING:\n"
-" this option loosens the SSL security, and by using this flag you\n"
-" ask for exactly that.\n"
-"\n"
-" Added in 7.25.0.\n"
+" curl --ssl-allow-beast https://example.com\n"
"\n"
" --ssl-auto-client-cert\n"
" Tell libcurl to automatically locate and use a client certifi-\n"
-, stdout);
- fputs(
" cate for authentication, when requested by the server. This op-\n"
" tion is only supported for Schannel (the native Windows SSL li-\n"
" brary). Prior to 7.77.0 this was the default behavior in libcurl\n"
" with Schannel. Since the server can request any certificate that\n"
+, stdout);
+ fputs(
" supports client authentication in the OS certificate store it\n"
" could be a privacy violation and unexpected.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --ssl-auto-client-cert https://example.com\n"
+"\n"
" See also --proxy-ssl-auto-client-cert. Added in 7.77.0.\n"
"\n"
" --ssl-no-revoke\n"
" (Schannel) This option tells curl to disable certificate revoca-\n"
" tion checks. WARNING: this option loosens the SSL security, and\n"
+, stdout);
+ fputs(
" by using this flag you ask for exactly that.\n"
"\n"
+" Example:\n"
+" curl --ssl-no-revoke https://example.com\n"
+"\n"
" Added in 7.44.0.\n"
"\n"
" --ssl-reqd\n"
" (FTP IMAP POP3 SMTP) Require SSL/TLS for the connection. Termi-\n"
-, stdout);
- fputs(
-" nates the connection if the server doesn't support SSL/TLS.\n"
+" nates the connection if the server does not support SSL/TLS.\n"
"\n"
" This option was formerly known as --ftp-ssl-reqd.\n"
"\n"
-" Added in 7.20.0.\n"
+" Example:\n"
+" curl --ssl-reqd ftp://example.com\n"
"\n"
+, stdout);
+ fputs(
" --ssl-revoke-best-effort\n"
" (Schannel) This option tells curl to ignore certificate revoca-\n"
" tion checks when they failed due to missing/offline distribution\n"
" points for the revocation check lists.\n"
"\n"
+" Example:\n"
+" curl --ssl-revoke-best-effort https://example.com\n"
+"\n"
" Added in 7.70.0.\n"
"\n"
+" --ssl (FTP IMAP POP3 SMTP) Try to use SSL/TLS for the connection. Re-\n"
, stdout);
fputs(
-" --ssl (FTP IMAP POP3 SMTP) Try to use SSL/TLS for the connection. Re-\n"
-" verts to a non-secure connection if the server doesn't support\n"
+" verts to a non-secure connection if the server does not support\n"
" SSL/TLS. See also --ftp-ssl-control and --ssl-reqd for differ-\n"
" ent levels of encryption required.\n"
"\n"
-" This option was formerly known as --ftp-ssl (Added in 7.11.0).\n"
-" That option name can still be used but will be removed in a fu-\n"
-" ture version.\n"
+" This option was formerly known as --ftp-ssl. That option name\n"
+" can still be used but will be removed in a future version.\n"
"\n"
-, stdout);
- fputs(
-" Added in 7.20.0.\n"
+" Example:\n"
+" curl --ssl pop3://example.com/\n"
"\n"
" -2, --sslv2\n"
+, stdout);
+ fputs(
" (SSL) This option previously asked curl to use SSLv2, but start-\n"
-" ing in curl 7.77.0 this instruction is ignored. SSLv2 is widely\n"
+" ing in curl 7.77.0 this instruction is ignored. SSLv2 is widely\n"
" considered insecure (see RFC 6176).\n"
"\n"
-" See also --http1.1 and --http2. -2, --sslv2 requires that the\n"
-" underlying libcurl was built to support TLS. This option over-\n"
-" rides -3, --sslv3 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+" Example:\n"
+" curl --sslv2 https://example.com\n"
"\n"
+" See also --http1.1 and --http2. -2, --sslv2 requires that the\n"
+" underlying libcurl was built to support TLS. This option over-\n"
, stdout);
fputs(
+" rides -3, --sslv3 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+"\n"
" -3, --sslv3\n"
" (SSL) This option previously asked curl to use SSLv3, but start-\n"
-" ing in curl 7.77.0 this instruction is ignored. SSLv3 is widely\n"
+" ing in curl 7.77.0 this instruction is ignored. SSLv3 is widely\n"
" considered insecure (see RFC 7568).\n"
"\n"
-" See also --http1.1 and --http2. -3, --sslv3 requires that the\n"
-" underlying libcurl was built to support TLS. This option over-\n"
-" rides -2, --sslv2 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+" Example:\n"
+" curl --sslv3 https://example.com\n"
"\n"
-" --stderr <file>\n"
+" See also --http1.1 and --http2. -3, --sslv3 requires that the\n"
, stdout);
fputs(
-" Redirect all writes to stderr to the specified file instead. If\n"
+" underlying libcurl was built to support TLS. This option over-\n"
+" rides -2, --sslv2 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+"\n"
+" --stderr <file>\n"
+" Redirect all writes to stderr to the specified file instead. If\n"
" the file name is a plain '-', it is instead written to stdout.\n"
"\n"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --stderr output.txt https://example.com\n"
+"\n"
" See also -v, --verbose and -s, --silent.\n"
"\n"
" --styled-output\n"
@@ -3755,25 +4485,40 @@ void hugehelp(void)
" headers to the terminal. Use --no-styled-output to switch them\n"
" off.\n"
"\n"
+" This option is global and does not need to be specified for each\n"
, stdout);
fputs(
+" use of -:, --next.\n"
+"\n"
+" Example:\n"
+" curl --styled-output -I https://example.com\n"
+"\n"
" Added in 7.61.0.\n"
"\n"
" --suppress-connect-headers\n"
-" When -p, --proxytunnel is used and a CONNECT request is made\n"
-" don't output proxy CONNECT response headers. This option is\n"
-" meant to be used with -D, --dump-header or -i, --include which\n"
-" are used to show protocol headers in the output. It has no ef-\n"
-" fect on debug options such as -v, --verbose or --trace, or any\n"
-" statistics.\n"
-"\n"
+" When -p, --proxytunnel is used and a CONNECT request is made do\n"
+" not output proxy CONNECT response headers. This option is meant\n"
+" to be used with -D, --dump-header or -i, --include which are\n"
+" used to show protocol headers in the output. It has no effect on\n"
, stdout);
fputs(
+" debug options such as -v, --verbose or --trace, or any statis-\n"
+" tics.\n"
+"\n"
+" Example:\n"
+" curl --suppress-connect-headers --include -x proxy https://example.com\n"
+"\n"
" See also -D, --dump-header, -i, --include and -p, --proxytunnel.\n"
+" Added in 7.54.0.\n"
"\n"
" --tcp-fastopen\n"
" Enable use of TCP Fast Open (RFC7413).\n"
"\n"
+" Example:\n"
+" curl --tcp-fastopen https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" Added in 7.49.0.\n"
"\n"
" --tcp-nodelay\n"
@@ -3781,13 +4526,14 @@ void hugehelp(void)
" page for details about this option.\n"
"\n"
" Since 7.50.2, curl sets this option by default and you need to\n"
-" explicitly switch it off if you don't want it on.\n"
+" explicitly switch it off if you do not want it on.\n"
"\n"
-, stdout);
- fputs(
-" Added in 7.11.2.\n"
+" Example:\n"
+" curl --tcp-nodelay https://example.com\n"
"\n"
" -t, --telnet-option <opt=val>\n"
+, stdout);
+ fputs(
" Pass options to the telnet protocol. Supported options are:\n"
"\n"
" TTYPE=<term> Sets the terminal type.\n"
@@ -3796,6 +4542,9 @@ void hugehelp(void)
"\n"
" NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
+" Example:\n"
+" curl -t TTYPE=vt100 telnet://example.com/\n"
+"\n"
" --tftp-blksize <value>\n"
" (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n"
, stdout);
@@ -3805,7 +4554,8 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" Added in 7.20.0.\n"
+" Example:\n"
+" curl --tftp-blksize 1024 tftp://example.com/file\n"
"\n"
" --tftp-no-options\n"
" (TFTP) Tells curl not to send TFTP options requests.\n"
@@ -3816,29 +4566,39 @@ void hugehelp(void)
" not acknowledge or properly implement TFTP options. When this\n"
" option is used --tftp-blksize is ignored.\n"
"\n"
+" Example:\n"
+" curl --tftp-no-options tftp://192.168.0.1/\n"
+"\n"
" Added in 7.48.0.\n"
"\n"
" -z, --time-cond <time>\n"
" (HTTP FTP) Request a file that has been modified later than the\n"
" given time and date, or one that has been modified before that\n"
-" time. The <date expression> can be all sorts of date strings or\n"
, stdout);
fputs(
-" if it doesn't match any internal ones, it is taken as a filename\n"
-" and tries to get the modification date (mtime) from <file> in-\n"
-" stead. See the curl_getdate(3) man pages for date expression de-\n"
-" tails.\n"
+" time. The <date expression> can be all sorts of date strings or\n"
+" if it does not match any internal ones, it is taken as a file-\n"
+" name and tries to get the modification date (mtime) from <file>\n"
+" instead. See the curl_getdate(3) man pages for date expression\n"
+" details.\n"
"\n"
" Start the date expression with a dash (-) to make it request for\n"
" a document that is older than the given date/time, default is a\n"
-" document that is newer than the specified date/time.\n"
-"\n"
, stdout);
fputs(
+" document that is newer than the specified date/time.\n"
+"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Examples:\n"
+" curl -z \"Wed 01 Sep 2021 12:18:00\" https://example.com\n"
+" curl -z \"-Wed 01 Sep 2021 12:18:00\" https://example.com\n"
+" curl -z file https://example.com\n"
+"\n"
" --tls-max <VERSION>\n"
" (SSL) VERSION defines maximum supported TLS version. The minimum\n"
+, stdout);
+ fputs(
" acceptable version is set by tlsv1.0, tlsv1.1, tlsv1.2 or\n"
" tlsv1.3.\n"
"\n"
@@ -3846,8 +4606,6 @@ void hugehelp(void)
" fect. This includes QUIC-using (HTTP/3) transfers.\n"
"\n"
" default\n"
-, stdout);
- fputs(
" Use up to recommended TLS version.\n"
"\n"
" 1.0 Use up to TLSv1.0.\n"
@@ -3855,15 +4613,21 @@ void hugehelp(void)
" 1.2 Use up to TLSv1.2.\n"
" 1.3 Use up to TLSv1.3.\n"
"\n"
+, stdout);
+ fputs(
+" Examples:\n"
+" curl --tls-max 1.2 https://example.com\n"
+" curl --tls-max 1.3 --tlsv1.2 https://example.com\n"
+"\n"
" See also --tlsv1.0, --tlsv1.1, --tlsv1.2 and --tlsv1.3. --tls-max re-\n"
" quires that the underlying libcurl was built to support TLS. Added in\n"
" 7.54.0.\n"
"\n"
" --tls13-ciphers <ciphersuite list>\n"
-, stdout);
- fputs(
" (TLS) Specifies which cipher suites to use in the connection if\n"
" it negotiates TLS 1.3. The list of ciphers suites must specify\n"
+, stdout);
+ fputs(
" valid ciphers. Read up on TLS 1.3 cipher suite details on this\n"
" URL:\n"
"\n"
@@ -3871,93 +4635,116 @@ void hugehelp(void)
"\n"
" This option is currently used only when curl is built to use\n"
" OpenSSL 1.1.1 or later. If you are using a different SSL backend\n"
-, stdout);
- fputs(
" you can try setting TLS 1.3 cipher suites by using the --ciphers\n"
" option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+, stdout);
+ fputs(
+" Example:\n"
+" curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com\n"
+"\n"
+" Added in 7.61.0.\n"
+"\n"
" --tlsauthtype <type>\n"
" Set TLS authentication type. Currently, the only supported op-\n"
" tion is \"SRP\", for TLS-SRP (RFC 5054). If --tlsuser and\n"
" --tlspassword are specified but --tlsauthtype is not, then this\n"
+" option defaults to \"SRP\". This option works only if the under-\n"
, stdout);
fputs(
-" option defaults to \"SRP\". This option works only if the under-\n"
" lying libcurl is built with TLS-SRP support, which requires\n"
" OpenSSL or GnuTLS with TLS-SRP support.\n"
"\n"
-" Added in 7.21.4.\n"
+" Example:\n"
+" curl --tlsauthtype SRP https://example.com\n"
"\n"
" --tlspassword <string>\n"
" Set password for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
"\n"
-" This doesn't work with TLS 1.3.\n"
+" This option does not work with TLS 1.3.\n"
"\n"
+" Example:\n"
, stdout);
fputs(
-" Added in 7.21.4.\n"
+" curl --tlspassword pwd --tlsuser user https://example.com\n"
+"\n"
" --tlsuser <name>\n"
" Set username for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlspassword also is\n"
" set.\n"
"\n"
-" This doesn't work with TLS 1.3.\n"
+" This option does not work with TLS 1.3.\n"
"\n"
-" Added in 7.21.4.\n"
+" Example:\n"
+" curl --tlspassword pwd --tlsuser user https://example.com\n"
"\n"
" --tlsv1.0\n"
+, stdout);
+ fputs(
" (TLS) Forces curl to use TLS version 1.0 or later when connect-\n"
" ing to a remote TLS server.\n"
"\n"
-, stdout);
- fputs(
" In old versions of curl this option was documented to allow\n"
" _only_ TLS 1.0, but behavior was inconsistent depending on the\n"
" TLS library. Use --tls-max if you want to set a maximum TLS ver-\n"
" sion.\n"
"\n"
+" Example:\n"
+" curl --tlsv1.0 https://example.com\n"
+"\n"
" Added in 7.34.0.\n"
"\n"
+, stdout);
+ fputs(
" --tlsv1.1\n"
" (TLS) Forces curl to use TLS version 1.1 or later when connect-\n"
" ing to a remote TLS server.\n"
"\n"
-, stdout);
- fputs(
" In old versions of curl this option was documented to allow\n"
" _only_ TLS 1.1, but behavior was inconsistent depending on the\n"
" TLS library. Use --tls-max if you want to set a maximum TLS ver-\n"
" sion.\n"
"\n"
+" Example:\n"
+" curl --tlsv1.1 https://example.com\n"
+"\n"
+, stdout);
+ fputs(
" Added in 7.34.0.\n"
"\n"
" --tlsv1.2\n"
" (TLS) Forces curl to use TLS version 1.2 or later when connect-\n"
" ing to a remote TLS server.\n"
"\n"
-, stdout);
- fputs(
" In old versions of curl this option was documented to allow\n"
" _only_ TLS 1.2, but behavior was inconsistent depending on the\n"
" TLS library. Use --tls-max if you want to set a maximum TLS ver-\n"
" sion.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --tlsv1.2 https://example.com\n"
+"\n"
" Added in 7.34.0.\n"
"\n"
" --tlsv1.3\n"
" (TLS) Forces curl to use TLS version 1.3 or later when connect-\n"
" ing to a remote TLS server.\n"
"\n"
-, stdout);
- fputs(
" If the connection is done without TLS, this option has no ef-\n"
" fect. This includes QUIC-using (HTTP/3) transfers.\n"
"\n"
" Note that TLS 1.3 is not supported by all TLS backends.\n"
"\n"
+" Example:\n"
+, stdout);
+ fputs(
+" curl --tlsv1.3 https://example.com\n"
+"\n"
" Added in 7.52.0.\n"
"\n"
" -1, --tlsv1\n"
@@ -3965,9 +4752,12 @@ void hugehelp(void)
" ing with a remote TLS server. That means TLS version 1.0 or\n"
" higher\n"
"\n"
+" Example:\n"
+" curl --tlsv1 https://example.com\n"
+"\n"
+" See also --http1.1 and --http2. -1, --tlsv1 requires that the\n"
, stdout);
fputs(
-" See also --http1.1 and --http2. -1, --tlsv1 requires that the\n"
" underlying libcurl was built to support TLS. This option over-\n"
" rides --tlsv1.1 and --tlsv1.2 and --tlsv1.3.\n"
"\n"
@@ -3976,7 +4766,8 @@ void hugehelp(void)
" of the algorithms curl supports, and uncompress the data while\n"
" receiving it.\n"
"\n"
-" Added in 7.21.6.\n"
+" Example:\n"
+" curl --tr-encoding https://example.com\n"
"\n"
" --trace-ascii <file>\n"
, stdout);
@@ -3985,192 +4776,232 @@ void hugehelp(void)
" cluding descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout.\n"
"\n"
-" This is very similar to --trace, but leaves out the hex part and\n"
-" only shows the ASCII part of the dump. It makes smaller output\n"
-" that might be easier to read for untrained humans.\n"
+" This is similar to --trace, but leaves out the hex part and only\n"
+" shows the ASCII part of the dump. It makes smaller output that\n"
+" might be easier to read for untrained humans.\n"
"\n"
, stdout);
fputs(
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --trace-ascii log.txt https://example.com\n"
+"\n"
" This option overrides --trace and -v, --verbose.\n"
"\n"
" --trace-time\n"
-" Prepends a time stamp to each trace or verbose line that curl\n"
+" Prepends a time stamp to each trace or verbose line that curl\n"
" displays.\n"
"\n"
-" Added in 7.14.0.\n"
+, stdout);
+ fputs(
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
+" Example:\n"
+" curl --trace-time --trace-ascii output https://example.com\n"
"\n"
" --trace <file>\n"
" Enables a full trace dump of all incoming and outgoing data, in-\n"
" cluding descriptive information, to the given output file. Use\n"
+" \"-\" as filename to have the output sent to stdout. Use \"%\" as\n"
, stdout);
fputs(
-" \"-\" as filename to have the output sent to stdout. Use \"%\" as\n"
" filename to have the output sent to stderr.\n"
"\n"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
+"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl --trace log.txt https://example.com\n"
+"\n"
" This option overrides -v, --verbose and --trace-ascii.\n"
"\n"
" --unix-socket <path>\n"
+, stdout);
+ fputs(
" (HTTP) Connect through this Unix domain socket, instead of using\n"
" the network.\n"
"\n"
+" Example:\n"
+" curl --unix-socket socket-path https://example.com\n"
+"\n"
" Added in 7.40.0.\n"
"\n"
" -T, --upload-file <file>\n"
-, stdout);
- fputs(
-" This transfers the specified local file to the remote URL. If\n"
+" This transfers the specified local file to the remote URL. If\n"
" there is no file part in the specified URL, curl will append the\n"
" local file name. NOTE that you must use a trailing / on the last\n"
-" directory to really prove to Curl that there is no file name or\n"
-" curl will think that your last directory name is the remote file\n"
-" name to use. That will most likely cause the upload operation to\n"
, stdout);
fputs(
+" directory to really prove to Curl that there is no file name or\n"
+" curl will think that your last directory name is the remote file\n"
+" name to use. That will most likely cause the upload operation to\n"
" fail. If this is used on an HTTP(S) server, the PUT command will\n"
" be used.\n"
"\n"
-" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
-" given file. Alternately, the file name \".\" (a single period)\n"
-" may be specified instead of \"-\" to use stdin in non-blocking\n"
-" mode to allow reading server output while stdin is being up-\n"
-" loaded.\n"
-"\n"
+" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
+" given file. Alternately, the file name \".\" (a single period)\n"
, stdout);
fputs(
-" You can specify one -T, --upload-file for each URL on the com-\n"
-" mand line. Each -T, --upload-file + URL pair specifies what to\n"
-" upload and to where. curl also supports \"globbing\" of the -T,\n"
-" --upload-file argument, meaning that you can upload multiple\n"
-" files to a single URL by using the same URL globbing style sup-\n"
-" ported in the URL, like this:\n"
+" may be specified instead of \"-\" to use stdin in non-blocking\n"
+" mode to allow reading server output while stdin is being up-\n"
+" loaded.\n"
"\n"
+" You can specify one -T, --upload-file for each URL on the com-\n"
+" mand line. Each -T, --upload-file + URL pair specifies what to\n"
+" upload and to where. curl also supports \"globbing\" of the -T,\n"
+" --upload-file argument, meaning that you can upload multiple\n"
, stdout);
fputs(
-" curl --upload-file \"{file1,file2}\" http://www.example.com\n"
+" files to a single URL by using the same URL globbing style sup-\n"
+" ported in the URL.\n"
"\n"
-" or even\n"
-"\n"
-" curl -T \"img[1-1000].png\" ftp://ftp.example.com/upload/\n"
-"\n"
-" When uploading to an SMTP server: the uploaded data is assumed\n"
+" When uploading to an SMTP server: the uploaded data is assumed\n"
" to be RFC 5322 formatted. It has to feature the necessary set of\n"
-" headers and mail body formatted correctly by the user as curl\n"
+" headers and mail body formatted correctly by the user as curl\n"
" will not transcode nor encode it further in any way.\n"
"\n"
-" --url <url>\n"
+" Examples:\n"
+" curl -T file https://example.com\n"
, stdout);
fputs(
-" Specify a URL to fetch. This option is mostly handy when you\n"
+" curl -T \"img[1-1000].png\" ftp://ftp.example.com/\n"
+" curl --upload-file \"{file1,file2}\" https://example.com\n"
+"\n"
+" --url <url>\n"
+" Specify a URL to fetch. This option is mostly handy when you\n"
" want to specify URL(s) in a config file.\n"
"\n"
-" If the given URL is missing a scheme name (such as \"http://\" or\n"
-" \"ftp://\" etc) then curl will make a guess based on the host. If\n"
-" the outermost sub-domain name matches DICT, FTP, IMAP, LDAP,\n"
-" POP3 or SMTP then that protocol will be used, otherwise HTTP\n"
+" If the given URL is missing a scheme name (such as \"http://\" or\n"
+" \"ftp://\" etc) then curl will make a guess based on the host. If\n"
, stdout);
fputs(
+" the outermost sub-domain name matches DICT, FTP, IMAP, LDAP,\n"
+" POP3 or SMTP then that protocol will be used, otherwise HTTP\n"
" will be used. Since 7.45.0 guessing can be disabled by setting a\n"
" default protocol, see --proto-default for details.\n"
"\n"
-" This option may be used any number of times. To control where\n"
-" this URL is written, use the -o, --output or the -O, --remote-\n"
+" This option may be used any number of times. To control where\n"
+" this URL is written, use the -o, --output or the -O, --remote-\n"
" name options.\n"
"\n"
-" Warning: On Windows, particular file:// accesses can be con-\n"
-" verted to network accesses by the operating system. Beware!\n"
-"\n"
, stdout);
fputs(
+" WARNING: On Windows, particular file:// accesses can be con-\n"
+" verted to network accesses by the operating system. Beware!\n"
+"\n"
+" Example:\n"
+" curl --url https://example.com\n"
+"\n"
" -B, --use-ascii\n"
-" (FTP LDAP) Enable ASCII transfer. For FTP, this can also be en-\n"
-" forced by using a URL that ends with \";type=A\". This option\n"
+" (FTP LDAP) Enable ASCII transfer. For FTP, this can also be en-\n"
+" forced by using a URL that ends with \";type=A\". This option\n"
" causes data sent to stdout to be in text mode for win32 systems.\n"
"\n"
-" -A, --user-agent <name>\n"
-" (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
-" To encode blanks in the string, surround the string with single\n"
, stdout);
fputs(
-" quote marks. This header can also be set with the -H, --header\n"
+" Example:\n"
+" curl -B ftp://example.com/README\n"
+"\n"
+" -A, --user-agent <name>\n"
+" (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
+" To encode blanks in the string, surround the string with single\n"
+" quote marks. This header can also be set with the -H, --header\n"
" or the --proxy-header options.\n"
"\n"
-" If you give an empty argument to -A, --user-agent (\"\"), it will\n"
-" remove the header completely from the request. If you prefer a\n"
+" If you give an empty argument to -A, --user-agent (\"\"), it will\n"
+, stdout);
+ fputs(
+" remove the header completely from the request. If you prefer a\n"
" blank header, you can set it to a single space (\" \").\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl -A \"Agent 007\" https://example.com\n"
+"\n"
" -u, --user <user:password>\n"
-, stdout);
- fputs(
" Specify the user name and password to use for server authentica-\n"
" tion. Overrides -n, --netrc and --netrc-optional.\n"
"\n"
-" If you simply specify the user name, curl will prompt for a\n"
+, stdout);
+ fputs(
+" If you simply specify the user name, curl will prompt for a\n"
" password.\n"
"\n"
-" The user name and passwords are split up on the first colon,\n"
-" which makes it impossible to use a colon in the user name with\n"
+" The user name and passwords are split up on the first colon,\n"
+" which makes it impossible to use a colon in the user name with\n"
" this option. The password can, still.\n"
"\n"
+" On systems where it works, curl will hide the given option argu-\n"
+" ment from process listings. This is not enough to protect cre-\n"
, stdout);
fputs(
-" On systems where it works, curl will hide the given option argu-\n"
-" ment from process listings. This is not enough to protect cre-\n"
-" dentials from possibly getting seen by other users on the same\n"
-" system as they will still be visible for a brief moment before\n"
+" dentials from possibly getting seen by other users on the same\n"
+" system as they will still be visible for a moment before\n"
" cleared. Such sensitive data should be retrieved from a file in-\n"
" stead or similar and never used in clear text in a command line.\n"
+" When using Kerberos V5 with a Windows based server you should\n"
+" include the Windows domain name in the user name, in order for\n"
, stdout);
fputs(
-" When using Kerberos V5 with a Windows based server you should\n"
-" include the Windows domain name in the user name, in order for\n"
-" the server to successfully obtain a Kerberos Ticket. If you\n"
-" don't then the initial authentication handshake may fail.\n"
+" the server to successfully obtain a Kerberos Ticket. If you do\n"
+" not, then the initial authentication handshake may fail.\n"
"\n"
-" When using NTLM, the user name can be specified simply as the\n"
-" user name, without the domain, if there is a single domain and\n"
-, stdout);
- fputs(
+" When using NTLM, the user name can be specified simply as the\n"
+" user name, without the domain, if there is a single domain and\n"
" forest in your setup for example.\n"
"\n"
-" To specify the domain name use either Down-Level Logon Name or\n"
+" To specify the domain name use either Down-Level Logon Name or\n"
+, stdout);
+ fputs(
" UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n"
" user@example.com respectively.\n"
"\n"
-" If you use a Windows SSPI-enabled curl binary and perform Ker-\n"
-" beros V5, Negotiate, NTLM or Digest authentication then you can\n"
-" tell curl to select the user name and password from your envi-\n"
-, stdout);
- fputs(
+" If you use a Windows SSPI-enabled curl binary and perform Ker-\n"
+" beros V5, Negotiate, NTLM or Digest authentication then you can\n"
+" tell curl to select the user name and password from your envi-\n"
" ronment by specifying a single colon with this option: \"-u :\".\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl -u user:secret https://example.com\n"
+"\n"
" -v, --verbose\n"
-" Makes curl verbose during the operation. Useful for debugging\n"
-" and seeing what's going on \"under the hood\". A line starting\n"
-" with '>' means \"header data\" sent by curl, '<' means \"header\n"
-" data\" received by curl that is hidden in normal cases, and a\n"
+" Makes curl verbose during the operation. Useful for debugging\n"
+" and seeing what's going on \"under the hood\". A line starting\n"
+" with '>' means \"header data\" sent by curl, '<' means \"header\n"
+" data\" received by curl that is hidden in normal cases, and a\n"
, stdout);
fputs(
" line starting with '*' means additional info provided by curl.\n"
"\n"
" If you only want HTTP headers in the output, -i, --include might\n"
-" be the option you're looking for.\n"
+" be the option you are looking for.\n"
"\n"
-" If you think this option still doesn't give you enough details,\n"
+" If you think this option still does not give you enough details,\n"
" consider using --trace or --trace-ascii instead.\n"
"\n"
-" Use -s, --silent to make curl really quiet.\n"
+" This option is global and does not need to be specified for each\n"
+" use of -:, --next.\n"
"\n"
-" See also -i, --include. This option overrides --trace and\n"
, stdout);
fputs(
+" Use -s, --silent to make curl really quiet.\n"
+"\n"
+" Example:\n"
+" curl --verbose https://example.com\n"
+"\n"
+" See also -i, --include. This option overrides --trace and\n"
" --trace-ascii.\n"
"\n"
" -V, --version\n"
@@ -4178,12 +5009,12 @@ void hugehelp(void)
" The first line includes the full version of curl, libcurl and\n"
" other 3rd party libraries linked with the executable.\n"
"\n"
+, stdout);
+ fputs(
" The second line (starts with \"Protocols:\") shows all protocols\n"
" that libcurl reports to support.\n"
"\n"
" The third line (starts with \"Features:\") shows specific features\n"
-, stdout);
- fputs(
" libcurl reports to offer. Available features include:\n"
"\n"
" alt-svc\n"
@@ -4191,18 +5022,20 @@ void hugehelp(void)
"\n"
" AsynchDNS\n"
" This curl uses asynchronous name resolves. Asynchronous\n"
+, stdout);
+ fputs(
" name resolves can be done using either the c-ares or the\n"
" threaded resolver backends.\n"
"\n"
" brotli Support for automatic brotli compression over HTTP(S).\n"
"\n"
" CharConv\n"
-, stdout);
- fputs(
" curl was built with support for character set conversions\n"
" (like EBCDIC)\n"
"\n"
" Debug This curl uses a libcurl built with Debug. This enables\n"
+, stdout);
+ fputs(
" more error-tracking and memory debugging etc. For curl-\n"
" developers only!\n"
"\n"
@@ -4210,8 +5043,6 @@ void hugehelp(void)
" support SCRAM because libcurl was built with libgsasl.\n"
"\n"
" GSS-API\n"
-, stdout);
- fputs(
" GSS-API is supported.\n"
"\n"
" HSTS HSTS support is present.\n"
@@ -4219,6 +5050,8 @@ void hugehelp(void)
" HTTP2 HTTP/2 support has been built-in.\n"
" HTTP3 HTTP/3 support has been built-in.\n"
"\n"
+, stdout);
+ fputs(
" HTTPS-proxy\n"
" This curl is built to support HTTPS proxy.\n"
"\n"
@@ -4227,14 +5060,14 @@ void hugehelp(void)
" IPv6 You can use IPv6 with this.\n"
"\n"
" Kerberos\n"
-, stdout);
- fputs(
" Kerberos V5 authentication is supported.\n"
"\n"
" Largefile\n"
" This curl supports transfers of large files, files larger\n"
" than 2GB.\n"
"\n"
+, stdout);
+ fputs(
" libz Automatic decompression (via gzip, deflate) of compressed\n"
" files over HTTP is supported.\n"
"\n"
@@ -4244,11 +5077,11 @@ void hugehelp(void)
" NTLM NTLM authentication is supported.\n"
"\n"
" NTLM_WB\n"
-, stdout);
- fputs(
" NTLM delegation to winbind helper is supported.\n"
"\n"
" PSL PSL is short for Public Suffix List and means that this\n"
+, stdout);
+ fputs(
" curl has been built with knowledge about \"public suf-\n"
" fixes\".\n"
"\n"
@@ -4259,13 +5092,13 @@ void hugehelp(void)
"\n"
" SSPI SSPI is supported.\n"
"\n"
-, stdout);
- fputs(
" TLS-SRP\n"
" SRP (Secure Remote Password) authentication is supported\n"
" for TLS.\n"
"\n"
" TrackMemory\n"
+, stdout);
+ fputs(
" Debug memory tracking is supported.\n"
"\n"
" Unicode\n"
@@ -4277,29 +5110,32 @@ void hugehelp(void)
" zstd Automatic decompression (via zstd) of compressed files\n"
" over HTTP is supported.\n"
"\n"
-, stdout);
- fputs(
+" Example:\n"
+" curl --version\n"
+"\n"
" -w, --write-out <format>\n"
" Make curl display information on stdout after a completed trans-\n"
+, stdout);
+ fputs(
" fer. The format is a string that may contain plain text mixed\n"
" with any number of variables. The format can be specified as a\n"
" literal \"string\", or you can have curl read the format from a\n"
" file with \"@filename\" and to tell curl to read the format from\n"
" stdin you write \"@-\".\n"
"\n"
+" The variables present in the output format will be substituted\n"
, stdout);
fputs(
-" The variables present in the output format will be substituted\n"
" by the value or text that curl thinks fit, as described below.\n"
" All variables are specified as %{variable_name} and to output a\n"
" normal % you just write them as %%. You can output a newline by\n"
" using \\n, a carriage return with \\r and a tab space with \\t.\n"
"\n"
" The output will be written to standard output, but this can be\n"
-, stdout);
- fputs(
" switched to standard error by using %{stderr}.\n"
"\n"
+, stdout);
+ fputs(
" NOTE: The %-symbol is a special symbol in the win32-environment,\n"
" where all occurrences of % must be doubled when using this op-\n"
" tion.\n"
@@ -4311,9 +5147,9 @@ void hugehelp(void)
"\n"
" errormsg The error message. (Added in 7.75.0)\n"
"\n"
+" exitcode The numerical exitcode of the transfer. (Added in\n"
, stdout);
fputs(
-" exitcode The numerical exitcode of the transfer. (Added in\n"
" 7.75.0)\n"
"\n"
" filename_effective\n"
@@ -4321,203 +5157,206 @@ void hugehelp(void)
" This is only meaningful if curl is told to write\n"
" to a file with the -O, --remote-name or -o,\n"
" --output option. It's most useful in combination\n"
+" with the -J, --remote-header-name option.\n"
+"\n"
, stdout);
fputs(
-" with the -J, --remote-header-name option. (Added\n"
-" in 7.26.0)\n"
-"\n"
" ftp_entry_path The initial path curl ended up in when logging on\n"
-" to the remote FTP server. (Added in 7.15.4)\n"
+" to the remote FTP server.\n"
"\n"
" http_code The numerical response code that was found in the\n"
-" last retrieved HTTP(S) or FTP(s) transfer. In\n"
-, stdout);
- fputs(
-" 7.18.2 the alias response_code was added to show\n"
-" the same info.\n"
+" last retrieved HTTP(S) or FTP(s) transfer.\n"
"\n"
" http_connect The numerical code that was found in the last re-\n"
-" sponse (from a proxy) to a curl CONNECT request.\n"
-" (Added in 7.12.4)\n"
+" sponse (from a proxy) to a curl CONNECT request.\n"
"\n"
+, stdout);
+ fputs(
" http_version The http version that was effectively used.\n"
" (Added in 7.50.0)\n"
"\n"
-, stdout);
- fputs(
" json A JSON object with all available keys.\n"
"\n"
" local_ip The IP address of the local end of the most re-\n"
" cently done connection - can be either IPv4 or\n"
-" IPv6. (Added in 7.29.0)\n"
+" IPv6.\n"
"\n"
" local_port The local port number of the most recently done\n"
-" connection. (Added in 7.29.0)\n"
-"\n"
-" method The http method used in the most recent HTTP re-\n"
, stdout);
fputs(
+" connection.\n"
+"\n"
+" method The http method used in the most recent HTTP re-\n"
" quest. (Added in 7.72.0)\n"
"\n"
" num_connects Number of new connects made in the recent trans-\n"
-" fer. (Added in 7.12.3)\n"
+" fer.\n"
"\n"
" num_headers The number of response headers in the most recent\n"
" request (restarted at each\n"
+, stdout);
+ fputs(
" redirect). Note that the status line IS NOT a\n"
" header. (Added in 7.73.0)\n"
"\n"
-, stdout);
- fputs(
" num_redirects Number of redirects that were followed in the re-\n"
-" quest. (Added in 7.12.3)\n"
+" quest.\n"
"\n"
" onerror The rest of the output is only shown if the\n"
" transfer returned a non-zero error (Added in\n"
" 7.75.0)\n"
"\n"
" proxy_ssl_verify_result\n"
-" The result of the HTTPS proxy's SSL peer certifi-\n"
, stdout);
fputs(
+" The result of the HTTPS proxy's SSL peer certifi-\n"
" cate verification that was requested. 0 means the\n"
" verification was successful. (Added in 7.52.0)\n"
"\n"
" redirect_url When an HTTP request was made without -L, --loca-\n"
" tion to follow redirects (or when --max-redirs is\n"
" met), this variable will show the actual URL a\n"
-" redirect would have gone to. (Added in 7.18.2)\n"
-"\n"
, stdout);
fputs(
+" redirect would have gone to.\n"
+"\n"
" referer The Referer: header, if there was any. (Added in\n"
" 7.76.0)\n"
"\n"
" remote_ip The remote IP address of the most recently done\n"
-" connection - can be either IPv4 or IPv6. (Added\n"
-" in 7.29.0)\n"
+" connection - can be either IPv4 or IPv6.\n"
"\n"
-" remote_port The remote port number of the most recently done\n"
-" connection. (Added in 7.29.0)\n"
+" remote_port The remote port number of the most recently done\n"
+" connection.\n"
"\n"
, stdout);
fputs(
" response_code The numerical response code that was found in the\n"
-" last transfer (formerly known as \"http_code\").\n"
-" (Added in 7.18.2)\n"
+" last transfer (formerly known as \"http_code\").\n"
"\n"
" scheme The URL scheme (sometimes called protocol) that\n"
" was effectively used. (Added in 7.52.0)\n"
"\n"
-" size_download The total amount of bytes that were downloaded.\n"
-"\n"
+" size_download The total amount of bytes that were downloaded.\n"
+" This is the size of the body/data that was trans-\n"
, stdout);
fputs(
+" ferred, excluding headers.\n"
+"\n"
" size_header The total amount of bytes of the downloaded head-\n"
" ers.\n"
"\n"
" size_request The total amount of bytes that were sent in the\n"
" HTTP request.\n"
"\n"
-" size_upload The total amount of bytes that were uploaded.\n"
+" size_upload The total amount of bytes that were uploaded.\n"
+" This is the size of the body/data that was trans-\n"
+, stdout);
+ fputs(
+" ferred, excluding headers.\n"
"\n"
" speed_download The average download speed that curl measured for\n"
" the complete download. Bytes per second.\n"
"\n"
-, stdout);
- fputs(
" speed_upload The average upload speed that curl measured for\n"
" the complete upload. Bytes per second.\n"
"\n"
" ssl_verify_result\n"
" The result of the SSL peer certificate verifica-\n"
+, stdout);
+ fputs(
" tion that was requested. 0 means the verification\n"
-" was successful. (Added in 7.19.0)\n"
+" was successful.\n"
"\n"
" stderr From this point on, the -w, --write-out output\n"
-, stdout);
- fputs(
" will be written to standard error. (Added in\n"
" 7.63.0)\n"
"\n"
" stdout From this point on, the -w, --write-out output\n"
" will be written to standard output. This is the\n"
+, stdout);
+ fputs(
" default, but can be used to switch back after\n"
" switching to stderr. (Added in 7.63.0)\n"
"\n"
" time_appconnect\n"
-, stdout);
- fputs(
" The time, in seconds, it took from the start un-\n"
" til the SSL/SSH/etc connect/handshake to the re-\n"
-" mote host was completed. (Added in 7.19.0)\n"
+" mote host was completed.\n"
"\n"
" time_connect The time, in seconds, it took from the start un-\n"
+, stdout);
+ fputs(
" til the TCP connect to the remote host (or proxy)\n"
" was completed.\n"
"\n"
" time_namelookup\n"
-, stdout);
- fputs(
" The time, in seconds, it took from the start un-\n"
" til the name resolving was completed.\n"
"\n"
" time_pretransfer\n"
" The time, in seconds, it took from the start un-\n"
" til the file transfer was just about to begin.\n"
-" This includes all pre-transfer commands and nego-\n"
-" tiations that are specific to the particular pro-\n"
, stdout);
fputs(
+" This includes all pre-transfer commands and nego-\n"
+" tiations that are specific to the particular pro-\n"
" tocol(s) involved.\n"
"\n"
" time_redirect The time, in seconds, it took for all redirection\n"
" steps including name lookup, connect, pretransfer\n"
" and transfer before the final transaction was\n"
+, stdout);
+ fputs(
" started. time_redirect shows the complete execu-\n"
-" tion time for multiple redirections. (Added in\n"
-" 7.12.3)\n"
+" tion time for multiple redirections.\n"
"\n"
+" time_starttransfer\n"
+" The time, in seconds, it took from the start un-\n"
+" til the first byte was just about to be trans-\n"
+" ferred. This includes time_pretransfer and also\n"
+" the time the server needed to calculate the re-\n"
, stdout);
fputs(
-" time_starttransfer\n"
-" The time, in seconds, it took from the start un-\n"
-" til the first byte was just about to be trans-\n"
-" ferred. This includes time_pretransfer and also\n"
-" the time the server needed to calculate the re-\n"
" sult.\n"
"\n"
-" time_total The total time, in seconds, that the full opera-\n"
-, stdout);
- fputs(
+" time_total The total time, in seconds, that the full opera-\n"
" tion lasted.\n"
"\n"
" url The URL that was fetched. (Added in 7.75.0)\n"
"\n"
" urlnum The URL index number of this transfer, 0-indexed.\n"
-" De-globbed URLs share the same index number as\n"
+" De-globbed URLs share the same index number as\n"
" the origin globbed URL. (Added in 7.75.0)\n"
"\n"
-" url_effective The URL that was fetched last. This is most mean-\n"
, stdout);
fputs(
-" ingful if you've told curl to follow location:\n"
+" url_effective The URL that was fetched last. This is most mean-\n"
+" ingful if you have told curl to follow location:\n"
" headers.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+" Example:\n"
+" curl -w '%{http_code}\\n' https://example.com\n"
+"\n"
" --xattr\n"
-" When saving output to a file, this option tells curl to store\n"
-" certain file metadata in extended file attributes. Currently,\n"
-" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
+" When saving output to a file, this option tells curl to store\n"
, stdout);
fputs(
-" the content type is stored in the mime_type attribute. If the\n"
-" file system does not support extended attributes, a warning is\n"
+" certain file metadata in extended file attributes. Currently,\n"
+" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
+" the content type is stored in the mime_type attribute. If the\n"
+" file system does not support extended attributes, a warning is\n"
" issued.\n"
"\n"
+" Example:\n"
+" curl --xattr -o storage https://example.com\n"
+"\n"
"FILES\n"
" ~/.curlrc\n"
+, stdout);
+ fputs(
" Default config file, see -K, --config for details.\n"
"\n"
"ENVIRONMENT\n"
@@ -4525,97 +5364,94 @@ void hugehelp(void)
" The lower case version has precedence. http_proxy is an exception as it\n"
" is only available in lower case.\n"
"\n"
-, stdout);
- fputs(
-" Using an environment variable to set the proxy has the same effect as\n"
+" Using an environment variable to set the proxy has the same effect as\n"
" using the -x, --proxy option.\n"
"\n"
" http_proxy [protocol://]<host>[:port]\n"
" Sets the proxy server to use for HTTP.\n"
+, stdout);
+ fputs(
" HTTPS_PROXY [protocol://]<host>[:port]\n"
" Sets the proxy server to use for HTTPS.\n"
"\n"
" [url-protocol]_PROXY [protocol://]<host>[:port]\n"
-" Sets the proxy server to use for [url-protocol], where the pro-\n"
-, stdout);
- fputs(
-" tocol is a protocol that curl supports and as specified in a\n"
+" Sets the proxy server to use for [url-protocol], where the pro-\n"
+" tocol is a protocol that curl supports and as specified in a\n"
" URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP, etc.\n"
"\n"
" ALL_PROXY [protocol://]<host>[:port]\n"
-" Sets the proxy server to use if no protocol-specific proxy is\n"
+" Sets the proxy server to use if no protocol-specific proxy is\n"
+, stdout);
+ fputs(
" set.\n"
"\n"
" NO_PROXY <comma-separated list of hosts/domains>\n"
-" list of host names that shouldn't go through any proxy. If set\n"
+" list of host names that should not go through any proxy. If set\n"
" to an asterisk '*' only, it matches all hosts. Each name in this\n"
-, stdout);
- fputs(
" list is matched as either a domain name which contains the host-\n"
" name, or the hostname itself.\n"
"\n"
-" This environment variable disables use of the proxy even when\n"
-" specified with the -x, --proxy option. That is NO_PROXY=di-\n"
-" rect.example.com curl -x http://proxy.example.com http://di-\n"
-" rect.example.com accesses the target URL directly, and\n"
+" This environment variable disables use of the proxy even when\n"
, stdout);
fputs(
-" NO_PROXY=direct.example.com curl -x http://proxy.example.com\n"
+" specified with the -x, --proxy option. That is NO_PROXY=di-\n"
+" rect.example.com curl -x http://proxy.example.com http://di-\n"
+" rect.example.com accesses the target URL directly, and\n"
+" NO_PROXY=direct.example.com curl -x http://proxy.example.com\n"
" http://somewhere.example.com accesses the target URL through the\n"
" proxy.\n"
"\n"
-" The list of host names can also be include numerical IP ad-\n"
-" dresses, and IPv6 versions should then be given without enclos-\n"
-" ing brackets.\n"
-"\n"
-" IPv6 numerical addresses are compared as strings, so they will\n"
+" The list of host names can also be include numerical IP ad-\n"
, stdout);
fputs(
-" only match if the representations are the same: \"::1\" is the\n"
-" same as \"::0:1\" but they don't match.\n"
+" dresses, and IPv6 versions should then be given without enclos-\n"
+" ing brackets.\n"
+"\n"
+" IPv6 numerical addresses are compared as strings, so they will\n"
+" only match if the representations are the same: \"::1\" is the\n"
+" same as \"::0:1\" but they do not match.\n"
"\n"
" CURL_SSL_BACKEND <TLS backend>\n"
-" If curl was built with support for \"MultiSSL\", meaning that it\n"
-" has built-in support for more than one TLS backend, this envi-\n"
-" ronment variable can be set to the case insensitive name of the\n"
-" particular backend to use when curl is invoked. Setting a name\n"
+" If curl was built with support for \"MultiSSL\", meaning that it\n"
, stdout);
fputs(
-" that isn't a built-in alternative will make curl stay with the\n"
+" has built-in support for more than one TLS backend, this envi-\n"
+" ronment variable can be set to the case insensitive name of the\n"
+" particular backend to use when curl is invoked. Setting a name\n"
+" that is not a built-in alternative will make curl stay with the\n"
" default.\n"
"\n"
-" SSL backend names (case-insensitive): bearssl, gnutls, gskit,\n"
+" SSL backend names (case-insensitive): bearssl, gnutls, gskit,\n"
" mbedtls, mesalink, nss, openssl, rustls, schannel, secure-trans-\n"
+, stdout);
+ fputs(
" port, wolfssl\n"
"\n"
" QLOGDIR <directory name>\n"
-" If curl was built with HTTP/3 support, setting this environment\n"
-" variable to a local directory will make curl produce qlogs in\n"
-, stdout);
- fputs(
-" that directory, using file names named after the destination\n"
-" connection id (in hex). Do note that these files can become\n"
+" If curl was built with HTTP/3 support, setting this environment\n"
+" variable to a local directory will make curl produce qlogs in\n"
+" that directory, using file names named after the destination\n"
+" connection id (in hex). Do note that these files can become\n"
" rather large. Works with both QUIC backends.\n"
"\n"
" SSLKEYLOGFILE <file name>\n"
-" If you set this environment variable to a file name, curl will\n"
-" store TLS secrets from its connections in that file when invoked\n"
-" to enable you to analyze the TLS traffic in real time using net-\n"
, stdout);
fputs(
+" If you set this environment variable to a file name, curl will\n"
+" store TLS secrets from its connections in that file when invoked\n"
+" to enable you to analyze the TLS traffic in real time using net-\n"
" work analyzing tools such as Wireshark. This works with the fol-\n"
-" lowing TLS backends: OpenSSL, libressl, BoringSSL, GnuTLS, NSS\n"
+" lowing TLS backends: OpenSSL, libressl, BoringSSL, GnuTLS, NSS\n"
" and wolfSSL.\n"
"\n"
"PROXY PROTOCOL PREFIXES\n"
-" Since curl version 7.21.7, the proxy string may be specified with a\n"
-" protocol:// prefix to specify alternative proxy protocols.\n"
-"\n"
-" If no protocol is specified in the proxy string or if the string\n"
, stdout);
fputs(
-" doesn't match a supported one, the proxy will be treated as an HTTP\n"
-" proxy.\n"
+" The proxy string may be specified with a protocol:// prefix to specify\n"
+" alternative proxy protocols.\n"
+"\n"
+" If no protocol is specified in the proxy string or if the string does\n"
+" not match a supported one, the proxy will be treated as an HTTP proxy.\n"
"\n"
" The supported proxy protocol prefixes are as follows:\n"
"\n"
@@ -4624,6 +5460,8 @@ void hugehelp(void)
" fix is used.\n"
"\n"
" https://\n"
+, stdout);
+ fputs(
" Makes it treated as an HTTPS proxy.\n"
"\n"
" socks4://\n"
@@ -4633,8 +5471,6 @@ void hugehelp(void)
" Makes it the equivalent of --socks4a\n"
"\n"
" socks5://\n"
-, stdout);
- fputs(
" Makes it the equivalent of --socks5\n"
"\n"
" socks5h://\n"
@@ -4642,6 +5478,8 @@ void hugehelp(void)
"\n"
"EXIT CODES\n"
" There are a bunch of different error codes and their corresponding er-\n"
+, stdout);
+ fputs(
" ror messages that may appear under error conditions. At the time of\n"
" this writing, the exit codes are:\n"
"\n"
@@ -4650,80 +5488,80 @@ void hugehelp(void)
"\n"
" 2 Failed to initialize.\n"
"\n"
-, stdout);
- fputs(
" 3 URL malformed. The syntax was not correct.\n"
"\n"
" 4 A feature or option that was needed to perform the desired re-\n"
" quest was not enabled or was explicitly disabled at build-time.\n"
+, stdout);
+ fputs(
" To make curl able to do this, you probably need another build of\n"
" libcurl!\n"
"\n"
-" 5 Couldn't resolve proxy. The given proxy host could not be re-\n"
+" 5 Could not resolve proxy. The given proxy host could not be re-\n"
" solved.\n"
"\n"
-" 6 Couldn't resolve host. The given remote host could not be re-\n"
-, stdout);
- fputs(
+" 6 Could not resolve host. The given remote host could not be re-\n"
" solved.\n"
"\n"
" 7 Failed to connect to host.\n"
"\n"
-" 8 Weird server reply. The server sent data curl couldn't parse.\n"
+" 8 Weird server reply. The server sent data curl could not parse.\n"
"\n"
+, stdout);
+ fputs(
" 9 FTP access denied. The server denied login or denied access to\n"
" the particular resource or directory you wanted to reach. Most\n"
-" often you tried to change to a directory that doesn't exist on\n"
+" often you tried to change to a directory that does not exist on\n"
" the server.\n"
"\n"
" 10 FTP accept failed. While waiting for the server to connect back\n"
-, stdout);
- fputs(
" when an active FTP session is used, an error code was sent over\n"
" the control connection or similar.\n"
"\n"
-" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n"
+, stdout);
+ fputs(
+" 11 FTP weird PASS reply. Curl could not parse the reply sent to the\n"
" PASS request.\n"
"\n"
" 12 During an active FTP session while waiting for the server to\n"
" connect back to curl, the timeout expired.\n"
"\n"
-" 13 FTP weird PASV reply, Curl couldn't parse the reply sent to the\n"
+" 13 FTP weird PASV reply, Curl could not parse the reply sent to the\n"
" PASV request.\n"
"\n"
-, stdout);
- fputs(
-" 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n"
+" 14 FTP weird 227 format. Curl could not parse the 227-line the\n"
" server sent.\n"
"\n"
-" 15 FTP can't get host. Couldn't resolve the host IP we got in the\n"
+, stdout);
+ fputs(
+" 15 FTP cannot use host. Could not resolve the host IP we got in the\n"
" 227-line.\n"
"\n"
" 16 HTTP/2 error. A problem was detected in the HTTP2 framing layer.\n"
" This is somewhat generic and can be one out of several problems,\n"
" see the error message for details.\n"
"\n"
-" 17 FTP couldn't set binary. Couldn't change transfer method to bi-\n"
-, stdout);
- fputs(
-" nary.\n"
+" 17 FTP could not set binary. Could not change transfer method to\n"
+" binary.\n"
"\n"
" 18 Partial file. Only a part of the file was transferred.\n"
"\n"
-" 19 FTP couldn't download/access the given file, the RETR (or simi-\n"
+, stdout);
+ fputs(
+" 19 FTP could not download/access the given file, the RETR (or simi-\n"
" lar) command failed.\n"
"\n"
" 21 FTP quote error. A quote command returned error from the server.\n"
" 22 HTTP page not retrieved. The requested url was not found or re-\n"
" turned another error with the HTTP error code being 400 or\n"
-, stdout);
- fputs(
" above. This return code only appears if -f, --fail is used.\n"
"\n"
-" 23 Write error. Curl couldn't write data to a local filesystem or\n"
+, stdout);
+ fputs(
+" 23 Write error. Curl could not write data to a local filesystem or\n"
" similar.\n"
"\n"
-" 25 FTP couldn't STOR file. The server denied the STOR operation,\n"
+" 25 FTP could not STOR file. The server denied the STOR operation,\n"
" used for FTP uploading.\n"
"\n"
" 26 Read error. Various reading problems.\n"
@@ -4731,18 +5569,18 @@ void hugehelp(void)
" 27 Out of memory. A memory allocation request failed.\n"
"\n"
" 28 Operation timeout. The specified time-out period was reached ac-\n"
-, stdout);
- fputs(
" cording to the conditions.\n"
"\n"
+, stdout);
+ fputs(
" 30 FTP PORT failed. The PORT command failed. Not all FTP servers\n"
" support the PORT command, try doing a transfer using PASV in-\n"
" stead!\n"
"\n"
-" 31 FTP couldn't use REST. The REST command failed. This command is\n"
+" 31 FTP could not use REST. The REST command failed. This command is\n"
" used for resumed FTP transfers.\n"
"\n"
-" 33 HTTP range error. The range \"command\" didn't work.\n"
+" 33 HTTP range error. The range \"command\" did not work.\n"
"\n"
" 34 HTTP post error. Internal post-request generation error.\n"
"\n"
@@ -4750,10 +5588,10 @@ void hugehelp(void)
fputs(
" 35 SSL connect error. The SSL handshaking failed.\n"
"\n"
-" 36 Bad download resume. Couldn't continue an earlier aborted down-\n"
+" 36 Bad download resume. Could not continue an earlier aborted down-\n"
" load.\n"
"\n"
-" 37 FILE couldn't read file. Failed to open the file. Permissions?\n"
+" 37 FILE could not read file. Failed to open the file. Permissions?\n"
"\n"
" 38 LDAP cannot bind. LDAP bind operation failed.\n"
"\n"
@@ -4784,7 +5622,7 @@ void hugehelp(void)
"\n"
" 51 The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n"
"\n"
-" 52 The server didn't reply anything, which here is considered an\n"
+" 52 The server did not reply anything, which here is considered an\n"
" error.\n"
"\n"
" 53 SSL crypto engine not found.\n"
@@ -4798,8 +5636,7 @@ void hugehelp(void)
, stdout);
fputs(
" 58 Problem with the local certificate.\n"
-"\n"
-" 59 Couldn't use specified SSL cipher.\n"
+" 59 Could not use specified SSL cipher.\n"
"\n"
" 60 Peer certificate cannot be authenticated with known CA certifi-\n"
" cates.\n"
@@ -4849,15 +5686,14 @@ void hugehelp(void)
"\n"
" 80 Failed to shut down the SSL connection.\n"
"\n"
-" 82 Could not load CRL file, missing or wrong format (added in\n"
-" 7.19.0).\n"
+" 82 Could not load CRL file, missing or wrong format.\n"
"\n"
-" 83 Issuer check failed (added in 7.19.0).\n"
+" 83 Issuer check failed.\n"
"\n"
-, stdout);
- fputs(
" 84 The FTP PRET command failed.\n"
"\n"
+, stdout);
+ fputs(
" 85 Mismatch of RTSP CSeq numbers.\n"
"\n"
" 86 Mismatch of RTSP Session Identifiers.\n"
@@ -4874,26 +5710,26 @@ void hugehelp(void)
"\n"
" 92 Stream error in HTTP/2 framing layer.\n"
"\n"
-, stdout);
- fputs(
" 93 An API function was called from inside a callback.\n"
"\n"
+, stdout);
+ fputs(
" 94 An authentication function returned an error.\n"
"\n"
-" 95 A problem was detected in the HTTP/3 layer. This is somewhat\n"
-" generic and can be one out of several problems, see the error\n"
+" 95 A problem was detected in the HTTP/3 layer. This is somewhat\n"
+" generic and can be one out of several problems, see the error\n"
" message for details.\n"
"\n"
-" 96 QUIC connection error. This error may be caused by an SSL li-\n"
+" 96 QUIC connection error. This error may be caused by an SSL li-\n"
" brary error. QUIC is the protocol used for HTTP/3 transfers.\n"
"\n"
+" XX More error codes will appear here in future releases. The exist-\n"
, stdout);
fputs(
-" XX More error codes will appear here in future releases. The exist-\n"
" ing ones are meant to never change.\n"
"\n"
"AUTHORS / CONTRIBUTORS\n"
-" Daniel Stenberg is the main author, but the whole list of contributors\n"
+" Daniel Stenberg is the main author, but the whole list of contributors\n"
" is found in the separate THANKS file.\n"
"\n"
"WWW\n"
@@ -4919,4388 +5755,4660 @@ void hugehelp(void) {}
#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 188442
- to 52541 bytes. You can disable the use of compressed help
+ Thanks to this operation, the size of this data shrank from 212255
+ to 55802 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,
- 0x7b, 0x77, 0xdb, 0x46, 0x96, 0x2f, 0xfa, 0x7f, 0x3e, 0x05, 0x86, 0xbd,
- 0xfa, 0x4a, 0x9a, 0x26, 0xa9, 0x97, 0x1f, 0xb1, 0xda, 0xc9, 0x89, 0x23,
- 0x2b, 0x89, 0x27, 0xb2, 0xa5, 0x31, 0xe5, 0x24, 0x7d, 0x92, 0x2c, 0x2f,
- 0x88, 0x84, 0x24, 0xb4, 0x49, 0x80, 0x0d, 0x80, 0x7a, 0x64, 0xce, 0xdc,
- 0xcf, 0x7e, 0xeb, 0xb7, 0x1f, 0x55, 0x05, 0x54, 0x81, 0x92, 0xd3, 0x49,
- 0x66, 0xce, 0xb9, 0x27, 0xbd, 0x5a, 0x96, 0x48, 0xa0, 0x9e, 0xbb, 0x76,
- 0xed, 0xe7, 0x6f, 0x27, 0xc9, 0x7d, 0xff, 0xbd, 0xa7, 0xff, 0xbf, 0x37,
- 0xff, 0x99, 0x7f, 0x3f, 0x49, 0x92, 0xd3, 0xaa, 0xfc, 0x7b, 0x36, 0x6d,
- 0xe2, 0xcf, 0xbe, 0x7f, 0xff, 0xbf, 0x12, 0xfe, 0x9f, 0x79, 0xe7, 0x27,
- 0xf3, 0xef, 0x27, 0x6b, 0xdb, 0xde, 0x4e, 0xdc, 0x0b, 0xff, 0xeb, 0xfd,
- 0x56, 0x72, 0xdf, 0x0b, 0xff, 0x2b, 0xd9, 0xa4, 0x17, 0xde, 0x4b, 0x0f,
- 0xcf, 0xf1, 0xfb, 0xfb, 0xf7, 0xeb, 0x3b, 0xf9, 0x09, 0xa3, 0xc2, 0x8f,
- 0x6d, 0xbc, 0xf7, 0xd3, 0x7b, 0xfc, 0x6a, 0x3e, 0xf9, 0xe4, 0x93, 0x37,
- 0x2f, 0x5e, 0x1f, 0xe9, 0xab, 0xd3, 0x55, 0x35, 0x4f, 0x46, 0x49, 0x53,
- 0xa5, 0x45, 0x7d, 0x91, 0x55, 0x49, 0x9a, 0xbc, 0x7b, 0x7b, 0xfc, 0xc9,
- 0x27, 0x93, 0xbf, 0xbd, 0x39, 0x39, 0x9d, 0xbc, 0x9a, 0xb4, 0x1e, 0xfb,
- 0xb1, 0x5c, 0x36, 0x79, 0x59, 0xd4, 0x66, 0xf8, 0xe6, 0xa1, 0xfa, 0xe7,
- 0x4f, 0x3e, 0x79, 0x79, 0x34, 0x39, 0x7c, 0xfb, 0xea, 0xf4, 0xec, 0xd5,
- 0xc9, 0x9b, 0xd6, 0x93, 0x49, 0x5e, 0x27, 0xa6, 0xa9, 0xa6, 0x2c, 0xe7,
- 0xe6, 0x87, 0x6b, 0x7d, 0x96, 0x36, 0x69, 0x72, 0x51, 0x95, 0x8b, 0xa4,
- 0xac, 0xf0, 0x45, 0x9a, 0xd4, 0x59, 0x75, 0x9d, 0x55, 0xc3, 0x64, 0x55,
- 0xe7, 0xc5, 0x65, 0x52, 0x16, 0x59, 0x52, 0x5e, 0x24, 0xcd, 0x55, 0xa6,
- 0xcd, 0xd5, 0xab, 0xe5, 0xb2, 0xac, 0x9a, 0x6c, 0x96, 0x2c, 0xab, 0xb2,
- 0x29, 0xa7, 0xe5, 0xbc, 0x4e, 0x36, 0x5f, 0xbe, 0x3a, 0x3c, 0x1b, 0x26,
- 0x5f, 0xbd, 0x3a, 0x3e, 0x32, 0x3f, 0xcf, 0x4e, 0xe9, 0xc7, 0x64, 0x98,
- 0x7c, 0x7d, 0x72, 0xfa, 0xcd, 0xd1, 0xdb, 0x61, 0xf2, 0xcd, 0x19, 0x3e,
- 0xc3, 0x4f, 0xf3, 0x61, 0xf2, 0xea, 0xf5, 0x8b, 0xd3, 0xa1, 0x36, 0x87,
- 0x3f, 0xf0, 0xe1, 0xf1, 0x4b, 0xf3, 0x21, 0xff, 0x83, 0x3f, 0x5f, 0xff,
- 0xfb, 0x99, 0x69, 0xf0, 0xf4, 0xe4, 0x74, 0x9f, 0x7f, 0x9a, 0xcf, 0xde,
- 0x9e, 0xbd, 0x3e, 0xe5, 0x9f, 0xf4, 0xc7, 0xc4, 0xfc, 0x31, 0x39, 0xc4,
- 0x0f, 0x74, 0xa8, 0xcd, 0x4d, 0x5e, 0x7f, 0x39, 0xc4, 0x8f, 0x09, 0x7e,
- 0xa2, 0x53, 0xfc, 0x34, 0x7f, 0x9c, 0x1d, 0x1d, 0xbf, 0x39, 0x3a, 0xc3,
- 0x24, 0xcf, 0xcc, 0xe3, 0x5b, 0xe3, 0xe4, 0xec, 0x2a, 0x33, 0x4b, 0x53,
- 0x2e, 0x16, 0x69, 0x31, 0xe3, 0xd5, 0x99, 0x65, 0x75, 0x7e, 0x59, 0x98,
- 0x79, 0x99, 0x75, 0xd0, 0xe6, 0x6e, 0xca, 0xea, 0x43, 0x72, 0x93, 0x37,
- 0x57, 0xe5, 0xaa, 0x31, 0x2b, 0x62, 0x16, 0x2c, 0x2f, 0x9a, 0xac, 0x4a,
- 0xa7, 0x58, 0xf6, 0xf1, 0x27, 0xad, 0x25, 0x2e, 0x2f, 0xcc, 0x82, 0xd6,
- 0x66, 0x05, 0xcf, 0x57, 0xf5, 0xbc, 0x4c, 0x67, 0x58, 0x37, 0xf3, 0xca,
- 0xc5, 0xca, 0xac, 0x78, 0x95, 0x4f, 0x3f, 0xd4, 0xc9, 0x3c, 0xff, 0x90,
- 0x61, 0xd5, 0x6e, 0xef, 0x74, 0x15, 0x87, 0xdc, 0x68, 0xba, 0x32, 0x0b,
- 0x5c, 0x8c, 0xb4, 0xb9, 0x26, 0x9f, 0xa6, 0xe8, 0x80, 0x96, 0x31, 0x59,
- 0x2d, 0xd1, 0x1a, 0x2f, 0x5f, 0xb2, 0x2c, 0x6b, 0xf3, 0xd2, 0x64, 0x72,
- 0x6c, 0xc6, 0x5e, 0x14, 0x19, 0x8d, 0xa3, 0x1e, 0x9a, 0x3f, 0xca, 0x0f,
- 0x79, 0x66, 0x7e, 0xb9, 0xc8, 0xe7, 0x66, 0x5e, 0xb4, 0xbd, 0xb6, 0x39,
- 0xec, 0x73, 0x95, 0xd5, 0xab, 0x45, 0x96, 0x60, 0xb2, 0x8b, 0xb2, 0xca,
- 0xc6, 0xc9, 0x8b, 0x3a, 0xb9, 0x2b, 0x57, 0x66, 0x6e, 0xf3, 0xb9, 0xd9,
- 0xf2, 0x2c, 0x39, 0xcf, 0xe6, 0xe5, 0xcd, 0x10, 0x1b, 0x9d, 0x14, 0xab,
- 0xc5, 0xb9, 0x79, 0xc5, 0x0c, 0xff, 0x22, 0x4b, 0x9b, 0x95, 0x79, 0x95,
- 0x1e, 0xd3, 0xe6, 0x16, 0xa9, 0x99, 0x85, 0x79, 0xb7, 0x4a, 0xae, 0x32,
- 0x33, 0xcb, 0x7a, 0x99, 0x17, 0xff, 0xd2, 0x5e, 0x09, 0xb3, 0x9a, 0xcb,
- 0xf2, 0x26, 0xab, 0xcc, 0x5a, 0x9e, 0xdf, 0x25, 0x66, 0xda, 0xe7, 0x4c,
- 0x83, 0x17, 0x66, 0xf9, 0x93, 0xd4, 0x74, 0x68, 0xe9, 0x6f, 0x54, 0x65,
- 0xf3, 0x14, 0xb4, 0x64, 0xbb, 0x1a, 0x9b, 0x3d, 0xcc, 0x2c, 0xb1, 0xc9,
- 0xab, 0x9b, 0xfb, 0x5b, 0xf4, 0xf2, 0x2c, 0x6b, 0xd2, 0x7c, 0x5e, 0x9b,
- 0x85, 0xc7, 0x99, 0x90, 0x67, 0x68, 0x27, 0xcd, 0xdf, 0x86, 0x34, 0xef,
- 0x8a, 0x26, 0xbd, 0xa5, 0xee, 0x85, 0x34, 0x47, 0xb3, 0x6c, 0x99, 0x15,
- 0xb3, 0xac, 0x68, 0xc6, 0xc9, 0xdf, 0xca, 0xd5, 0x86, 0xe9, 0xfb, 0x22,
- 0x37, 0x6b, 0x90, 0x4a, 0x53, 0xa6, 0x67, 0xb3, 0xed, 0xd3, 0x2a, 0x5f,
- 0x7a, 0x8b, 0x5f, 0x16, 0x66, 0x97, 0x93, 0xb7, 0x5f, 0x1d, 0x26, 0xfb,
- 0xcf, 0x3e, 0x7d, 0xe2, 0x76, 0xd9, 0x34, 0x90, 0x4c, 0xd3, 0xc2, 0xcc,
- 0x38, 0x9b, 0xe6, 0x17, 0x77, 0xc9, 0x62, 0x35, 0x6f, 0xf2, 0xa5, 0x59,
- 0x6f, 0x9c, 0x3d, 0x90, 0xd6, 0x32, 0xad, 0x9a, 0x1a, 0xeb, 0x46, 0x1f,
- 0xd0, 0xdc, 0x6f, 0xaa, 0xbc, 0xc1, 0x39, 0xa2, 0xef, 0xcc, 0x08, 0xb3,
- 0xa6, 0xb6, 0xb4, 0x65, 0xc8, 0xca, 0xf4, 0x73, 0x6e, 0xa8, 0xc9, 0xac,
- 0x30, 0x76, 0xe6, 0x1f, 0xab, 0x92, 0x1e, 0xc6, 0x26, 0x60, 0x42, 0x69,
- 0x6d, 0x06, 0x72, 0xf0, 0x89, 0x63, 0x2a, 0x83, 0xab, 0xa6, 0x59, 0x1e,
- 0x6c, 0x6f, 0xd7, 0x79, 0x93, 0x8d, 0xff, 0xc3, 0x9c, 0xcd, 0x61, 0x73,
- 0x53, 0x0e, 0x9b, 0xab, 0x2a, 0xcb, 0xfe, 0x73, 0x6c, 0x88, 0x79, 0x60,
- 0x9f, 0x35, 0xa3, 0xb9, 0x93, 0xe1, 0x5e, 0x66, 0x8d, 0xe9, 0xf7, 0x1f,
- 0xab, 0xac, 0x40, 0x3f, 0x66, 0x74, 0xe9, 0x7c, 0x79, 0x95, 0x9a, 0x4d,
- 0xce, 0x0c, 0x55, 0xe2, 0xb8, 0x1b, 0xc2, 0xc1, 0x58, 0xf9, 0xc0, 0xff,
- 0xf8, 0x73, 0xa4, 0xdb, 0x0b, 0xea, 0xd5, 0xfc, 0x1c, 0x67, 0xb7, 0xe9,
- 0xc2, 0x4c, 0x19, 0x9d, 0x6d, 0x83, 0xd6, 0x7e, 0xdc, 0x1d, 0xed, 0xee,
- 0xec, 0xfc, 0x3c, 0x6e, 0x6e, 0x9b, 0xc1, 0x03, 0xdf, 0xd8, 0xd9, 0xf1,
- 0xde, 0xc1, 0xc3, 0x9b, 0x58, 0x89, 0x64, 0x6e, 0x88, 0x09, 0x03, 0xf8,
- 0x25, 0xab, 0xca, 0x7a, 0xeb, 0x81, 0x6d, 0xa5, 0xa3, 0x5f, 0x3a, 0x7d,
- 0xbf, 0xc9, 0x6a, 0xa2, 0x27, 0x37, 0xe3, 0x24, 0xad, 0x0c, 0x4d, 0x97,
- 0x8d, 0xe3, 0x5c, 0x43, 0x73, 0x44, 0x1b, 0xbb, 0x3e, 0xe6, 0x04, 0x9a,
- 0xa7, 0x0d, 0xcf, 0x4b, 0xe7, 0x60, 0x77, 0x75, 0x52, 0x64, 0xb7, 0x8d,
- 0xa5, 0x86, 0x32, 0xc9, 0xd2, 0xe9, 0x55, 0x52, 0x9a, 0x3d, 0xa9, 0x62,
- 0x5b, 0xe1, 0x0f, 0x29, 0xad, 0xa6, 0x57, 0xf9, 0xb5, 0x59, 0x93, 0x67,
- 0xcf, 0x9e, 0x8c, 0xcc, 0x8f, 0x67, 0x3f, 0x6f, 0x5f, 0x97, 0x73, 0xb3,
- 0x44, 0x8f, 0x7e, 0xde, 0xc6, 0xfe, 0xff, 0x47, 0x3a, 0x3c, 0x1f, 0x4e,
- 0xff, 0x73, 0x7c, 0xd5, 0x2c, 0xe6, 0x83, 0x5e, 0xb2, 0x4a, 0x0b, 0xf3,
- 0xff, 0x45, 0xb9, 0x2a, 0x1a, 0x4b, 0x4a, 0x86, 0x22, 0x41, 0x13, 0xca,
- 0xae, 0xe6, 0x79, 0x61, 0x4e, 0x30, 0x08, 0x1f, 0x14, 0x86, 0x13, 0x6c,
- 0x8e, 0xaf, 0x3b, 0xed, 0xcd, 0xf4, 0x0a, 0x2b, 0x60, 0x68, 0x2b, 0x95,
- 0x65, 0x68, 0x72, 0x33, 0x37, 0xf3, 0x6a, 0x41, 0x0c, 0x8c, 0xda, 0xe2,
- 0xde, 0x72, 0xf3, 0x60, 0x59, 0xcd, 0xb2, 0x6a, 0xdc, 0x1d, 0x86, 0x3d,
- 0xd0, 0x5e, 0x9f, 0x89, 0x5e, 0x37, 0xf8, 0x80, 0x06, 0xb6, 0xc8, 0x6f,
- 0x4d, 0x0b, 0xf8, 0x13, 0xbd, 0x99, 0x81, 0x73, 0x6b, 0x09, 0x46, 0x4c,
- 0xdd, 0xe8, 0xfb, 0xee, 0x40, 0x9b, 0xa1, 0xb7, 0xa6, 0x4e, 0x9d, 0xba,
- 0xc9, 0x27, 0x66, 0xfb, 0x96, 0xe6, 0xad, 0x15, 0xf8, 0x2c, 0x1d, 0x7a,
- 0x34, 0x63, 0xd8, 0xc5, 0xa5, 0xd9, 0x19, 0xb3, 0x1b, 0xa0, 0x66, 0x6c,
- 0xd6, 0x5d, 0xf2, 0xc6, 0x10, 0x0d, 0xb3, 0x2a, 0x8f, 0xe8, 0xe7, 0x59,
- 0xd3, 0xdc, 0xbf, 0x51, 0x8e, 0x72, 0x0f, 0x76, 0x23, 0xc4, 0xdb, 0xf7,
- 0x86, 0xa1, 0xb6, 0x83, 0xbd, 0xce, 0xe3, 0xdf, 0x1b, 0xc6, 0xed, 0x8e,
- 0x8e, 0x19, 0xc1, 0x7f, 0xfc, 0xa7, 0x47, 0x7b, 0x37, 0xf8, 0x36, 0x2f,
- 0xae, 0xcb, 0x0f, 0x66, 0x99, 0xe8, 0x9a, 0x4d, 0xdb, 0x2b, 0x0a, 0x4e,
- 0xb5, 0x58, 0x36, 0xf6, 0xfe, 0x02, 0x51, 0x9a, 0x8f, 0xce, 0xd3, 0xf3,
- 0xf9, 0x5d, 0x72, 0x95, 0x5e, 0x67, 0x98, 0xf3, 0xd2, 0x50, 0x2b, 0x56,
- 0xc1, 0x5c, 0x25, 0x73, 0x62, 0x0c, 0xc2, 0x3a, 0x66, 0xe5, 0xea, 0xdc,
- 0xb0, 0x1f, 0xb0, 0x0d, 0x5e, 0x9c, 0xf4, 0xba, 0xcc, 0x67, 0xad, 0xcb,
- 0xfa, 0x2a, 0x03, 0xcb, 0x43, 0xc7, 0x74, 0x71, 0x19, 0x96, 0x8b, 0x91,
- 0xd2, 0x81, 0xcb, 0x1b, 0xdc, 0x82, 0x86, 0x59, 0xa6, 0xf3, 0xba, 0x4c,
- 0x92, 0xcb, 0x12, 0x67, 0x85, 0x58, 0x34, 0x11, 0xbb, 0xd9, 0x98, 0xab,
- 0x14, 0x37, 0x9d, 0xb9, 0xd4, 0xec, 0x69, 0xa8, 0x32, 0xe2, 0xd6, 0xb4,
- 0x5b, 0xe9, 0x7c, 0xc8, 0x37, 0x1a, 0xde, 0x91, 0xb5, 0x4a, 0x36, 0xfe,
- 0x9f, 0x8d, 0x61, 0xb2, 0xf1, 0x3f, 0x36, 0x88, 0x26, 0x36, 0xfe, 0x75,
- 0xc3, 0xed, 0xb5, 0x91, 0xd6, 0xae, 0xf3, 0x59, 0xc6, 0x64, 0xf1, 0xea,
- 0xf4, 0xfa, 0x49, 0xf2, 0x0b, 0x84, 0x0b, 0xc3, 0x8d, 0xb3, 0x5b, 0x25,
- 0x4a, 0x9d, 0x9b, 0x79, 0x3b, 0x31, 0x6c, 0x39, 0x5d, 0x42, 0xca, 0xc8,
- 0xaa, 0xa9, 0xa1, 0xe0, 0xf4, 0xd2, 0xd0, 0xac, 0xb9, 0x9f, 0xb5, 0x39,
- 0xb4, 0x8f, 0x57, 0x78, 0x5a, 0x86, 0x85, 0x26, 0x45, 0xba, 0x30, 0xa7,
- 0xe2, 0x18, 0x23, 0xca, 0x8b, 0xc8, 0x76, 0xfe, 0x78, 0x91, 0x7d, 0xba,
- 0x73, 0x70, 0xb0, 0xff, 0xe7, 0xbd, 0xc7, 0x59, 0x73, 0xb5, 0xf3, 0xf3,
- 0xb6, 0xdb, 0xc4, 0x57, 0x17, 0xb4, 0xf0, 0x4a, 0x84, 0x3a, 0x0c, 0x5c,
- 0xfa, 0x7a, 0x93, 0x98, 0x06, 0xcc, 0xef, 0xd9, 0x45, 0x7e, 0x3b, 0x54,
- 0x91, 0x8a, 0x4f, 0x5e, 0x6a, 0x08, 0xce, 0xec, 0xa0, 0x2f, 0x35, 0x5c,
- 0xae, 0xb2, 0xda, 0xac, 0xe5, 0xcd, 0x55, 0xda, 0x24, 0xb6, 0x01, 0xde,
- 0xdb, 0x45, 0x7e, 0x79, 0xd5, 0x24, 0x37, 0x29, 0x2e, 0xa4, 0x57, 0x0d,
- 0x37, 0x81, 0xbb, 0xdf, 0x5c, 0x43, 0x17, 0xa9, 0xb9, 0x4f, 0xb0, 0x8b,
- 0x74, 0xd1, 0x1b, 0x0e, 0xe5, 0x56, 0xfd, 0x4e, 0xb6, 0xc4, 0x49, 0x5c,
- 0xe7, 0x69, 0x8d, 0xa3, 0x5b, 0x18, 0x16, 0xd1, 0x18, 0xc9, 0x61, 0x85,
- 0xbf, 0xae, 0x8c, 0x6c, 0x40, 0xab, 0x20, 0x03, 0xa5, 0xcb, 0xf4, 0x2b,
- 0x6c, 0x28, 0x76, 0xc7, 0x5e, 0x70, 0x66, 0x9b, 0x86, 0xb2, 0xd1, 0xf6,
- 0x8d, 0xda, 0x1c, 0x3b, 0xc3, 0xa0, 0x2c, 0x6d, 0x80, 0xe7, 0x8e, 0x07,
- 0x3c, 0x4f, 0x1a, 0x63, 0x5a, 0x93, 0xfc, 0x40, 0x22, 0x83, 0x19, 0xbc,
- 0x37, 0x59, 0xb3, 0x68, 0xe9, 0x07, 0x08, 0x2a, 0x1d, 0x71, 0x88, 0x5e,
- 0x9b, 0x95, 0x86, 0xcc, 0xcc, 0x68, 0x0d, 0x53, 0xc6, 0xcc, 0xc0, 0x6a,
- 0x69, 0x55, 0x88, 0xcc, 0x4d, 0x9b, 0xf8, 0x30, 0x6f, 0x70, 0xe3, 0x90,
- 0x98, 0x6b, 0xc6, 0x6b, 0x16, 0x85, 0xa4, 0x31, 0xc3, 0xb0, 0xbd, 0xf9,
- 0xd3, 0x15, 0x6a, 0x9e, 0x4d, 0xae, 0xd3, 0x79, 0x6e, 0x64, 0xd6, 0xcc,
- 0xbe, 0x45, 0x77, 0xfe, 0x14, 0x12, 0xd3, 0xdc, 0x9c, 0x98, 0x69, 0x59,
- 0x55, 0x50, 0x09, 0xb0, 0x83, 0xe7, 0xcc, 0x4a, 0x17, 0x99, 0x11, 0x35,
- 0xfc, 0xe5, 0xcc, 0x71, 0xbd, 0x19, 0x2e, 0x63, 0x64, 0x17, 0xe2, 0x23,
- 0x46, 0xc6, 0x20, 0xde, 0x4f, 0x13, 0xa7, 0xd1, 0xa1, 0xed, 0xe9, 0x34,
- 0x5b, 0x36, 0x75, 0x6c, 0x4e, 0xba, 0xe1, 0x66, 0x38, 0x55, 0x86, 0x95,
- 0xf7, 0x45, 0x31, 0x5a, 0x57, 0x2b, 0x18, 0x90, 0x34, 0xa6, 0xb2, 0x8e,
- 0x91, 0xce, 0x6a, 0xbb, 0x6a, 0x0d, 0xd1, 0x86, 0x61, 0x66, 0xb4, 0xe6,
- 0x0b, 0x0c, 0x14, 0x0f, 0xd7, 0x7c, 0x56, 0x89, 0x41, 0x63, 0x23, 0x59,
- 0x18, 0xe7, 0x7e, 0x71, 0x85, 0x99, 0xf5, 0xb4, 0x8d, 0x9b, 0x5e, 0xed,
- 0x9e, 0xa2, 0x7b, 0x68, 0x01, 0xe6, 0x5e, 0x9f, 0xd5, 0x57, 0x46, 0x40,
- 0xab, 0xe5, 0x6c, 0xe7, 0x0b, 0x43, 0x33, 0xd7, 0xd8, 0xdf, 0x65, 0x96,
- 0xcd, 0xc6, 0xc9, 0xc9, 0x05, 0x78, 0x6b, 0x65, 0x06, 0xdd, 0xd0, 0xd7,
- 0xb8, 0x5b, 0xcc, 0xba, 0xcd, 0x48, 0xce, 0xb7, 0x87, 0x8b, 0x87, 0xe2,
- 0xdd, 0x11, 0xc4, 0xcf, 0x53, 0xf3, 0x89, 0x19, 0xed, 0xbc, 0x7d, 0x11,
- 0xd1, 0x49, 0x34, 0x3c, 0x1c, 0xc3, 0x3b, 0xcf, 0x12, 0xa2, 0xc4, 0xf3,
- 0xac, 0xb9, 0xc9, 0x32, 0xdb, 0x5c, 0x9d, 0x99, 0xdb, 0x0f, 0x9b, 0xc6,
- 0xd2, 0xa1, 0x61, 0x87, 0x2c, 0xdf, 0x62, 0x79, 0x4f, 0xde, 0x9d, 0x9d,
- 0xbe, 0x3b, 0xf3, 0x0e, 0x22, 0xda, 0x69, 0xca, 0xf9, 0x8c, 0x49, 0xfe,
- 0x26, 0xaf, 0x0d, 0xb5, 0xf2, 0xe2, 0x1b, 0x51, 0x0a, 0x6c, 0x0e, 0xd7,
- 0x41, 0x36, 0xcd, 0xcc, 0x45, 0x3b, 0x63, 0xf5, 0xc5, 0x6c, 0x44, 0xdd,
- 0x18, 0x5e, 0xc8, 0x47, 0x0a, 0x63, 0xd1, 0xe6, 0xcc, 0x78, 0x68, 0xaf,
- 0xab, 0xd5, 0xb4, 0x61, 0xc1, 0x3e, 0xb1, 0x7b, 0x5f, 0x13, 0x73, 0xc5,
- 0x36, 0x50, 0x23, 0x86, 0x8f, 0x40, 0xfb, 0x99, 0x9b, 0xa1, 0xcd, 0x69,
- 0xfe, 0xaa, 0x01, 0x79, 0xdc, 0x74, 0x54, 0x0e, 0x93, 0xd1, 0xc8, 0x74,
- 0x04, 0x86, 0x6c, 0xf6, 0x79, 0x74, 0x82, 0xbf, 0xab, 0x6c, 0x61, 0xf8,
- 0xef, 0x88, 0x0e, 0x9e, 0x5c, 0x90, 0x63, 0x4c, 0xc4, 0xe9, 0x5d, 0x97,
- 0x66, 0xac, 0x66, 0xfd, 0x74, 0xe7, 0xb4, 0x39, 0x96, 0x12, 0x31, 0x26,
- 0xab, 0x8e, 0x45, 0x2e, 0xfa, 0x21, 0xc8, 0xb1, 0xce, 0x17, 0xf9, 0x3c,
- 0xad, 0xcc, 0x4e, 0x15, 0x66, 0x1b, 0x6b, 0x47, 0x04, 0x65, 0x5b, 0x70,
- 0x65, 0xfa, 0x33, 0xb7, 0x4e, 0x45, 0x17, 0x87, 0xcc, 0x31, 0x5b, 0x74,
- 0xe8, 0x78, 0x06, 0x5e, 0x8f, 0x85, 0x36, 0xfb, 0x62, 0x48, 0xc1, 0xbc,
- 0x62, 0x17, 0x3b, 0x19, 0xac, 0x0c, 0x47, 0xae, 0x0c, 0x3b, 0x28, 0x66,
- 0x03, 0x19, 0x8c, 0x61, 0xb1, 0x05, 0x8e, 0x25, 0x53, 0x6c, 0x8d, 0x8b,
- 0xd6, 0x0a, 0xb1, 0xbc, 0x29, 0x38, 0x8b, 0x09, 0x2f, 0x0c, 0x9f, 0x61,
- 0xe9, 0x21, 0x31, 0xd7, 0x60, 0x49, 0x62, 0x1d, 0x49, 0xef, 0xfc, 0xbb,
- 0x59, 0xd9, 0x62, 0x0e, 0x0e, 0x99, 0xdd, 0x2e, 0xe7, 0xf9, 0x34, 0x6f,
- 0xe6, 0x56, 0xda, 0x48, 0x6b, 0x5c, 0x94, 0x66, 0xe4, 0x74, 0x18, 0x67,
- 0xd9, 0x0c, 0x9a, 0x90, 0xf9, 0x24, 0x26, 0x85, 0x98, 0x39, 0x9d, 0xbe,
- 0x3d, 0x39, 0x3b, 0x39, 0x3c, 0x39, 0x6e, 0x6b, 0xc5, 0x22, 0xe7, 0xd5,
- 0x09, 0xc9, 0xb8, 0xe5, 0xca, 0xa9, 0x03, 0xe6, 0x08, 0x42, 0x4c, 0x37,
- 0xbb, 0x67, 0x2e, 0x1c, 0x52, 0x19, 0xcc, 0xe5, 0xb1, 0xa8, 0x0f, 0x0c,
- 0x89, 0x1a, 0x99, 0x69, 0x41, 0x0c, 0xd3, 0xc8, 0x24, 0x76, 0x76, 0x10,
- 0xda, 0xf2, 0xe9, 0xca, 0xac, 0xbc, 0x61, 0x20, 0xb9, 0xa1, 0xc9, 0x45,
- 0x7a, 0xe7, 0x8b, 0x92, 0xb4, 0xb6, 0xd0, 0x68, 0xdc, 0xfa, 0x42, 0x13,
- 0x36, 0xff, 0x1c, 0x63, 0x9d, 0xc0, 0xe5, 0xe6, 0x46, 0x33, 0x5b, 0x2d,
- 0xa1, 0x48, 0x9a, 0x6d, 0x53, 0x9d, 0x9a, 0xa6, 0x61, 0xe6, 0x86, 0x79,
- 0xa4, 0x90, 0xbf, 0xdd, 0xfb, 0xd0, 0xa1, 0xcd, 0x3f, 0x6f, 0x41, 0xa2,
- 0x18, 0x2c, 0xaf, 0x70, 0x22, 0x84, 0xc9, 0x27, 0x73, 0xac, 0x37, 0x90,
- 0xdd, 0x47, 0x1d, 0x0f, 0xd8, 0x56, 0x8d, 0x4e, 0x3a, 0x86, 0x08, 0xbc,
- 0x86, 0x1b, 0x0c, 0x73, 0x66, 0x7a, 0x9d, 0xdf, 0xb1, 0x14, 0x4c, 0x12,
- 0x4a, 0xb5, 0x2a, 0x0a, 0x1e, 0x59, 0xf2, 0x3a, 0x9f, 0x1a, 0xf9, 0xdb,
- 0xdc, 0x2a, 0xc9, 0xf7, 0xe6, 0x6a, 0x2e, 0x6f, 0xcc, 0xbe, 0xae, 0x9c,
- 0x2a, 0xa9, 0x2c, 0x54, 0x94, 0x94, 0xc2, 0x1c, 0x63, 0x43, 0x61, 0xef,
- 0xde, 0x1c, 0x26, 0xe9, 0xd2, 0x2c, 0x32, 0x24, 0x65, 0xe2, 0x55, 0xd0,
- 0x9b, 0xbd, 0x39, 0x9d, 0x9d, 0x6e, 0x4e, 0xb6, 0x64, 0xcc, 0x76, 0x77,
- 0x58, 0x3e, 0xfc, 0x0a, 0x2c, 0xf2, 0x4c, 0xe9, 0xff, 0x54, 0x2f, 0x4b,
- 0x96, 0x02, 0xcc, 0xac, 0x49, 0x08, 0x36, 0xdc, 0x24, 0xfd, 0x50, 0x77,
- 0x06, 0x41, 0xf4, 0x00, 0x51, 0xd0, 0xac, 0xc7, 0xf7, 0x78, 0x1c, 0x94,
- 0x6f, 0x55, 0x75, 0x0c, 0xf1, 0xec, 0x78, 0xe2, 0x06, 0xc1, 0xb6, 0x08,
- 0xb3, 0xb0, 0x46, 0x19, 0x37, 0x6f, 0xc9, 0x4a, 0xda, 0xaf, 0x71, 0xe9,
- 0x9a, 0x41, 0x76, 0xfa, 0x68, 0xd3, 0x13, 0x5d, 0xcc, 0x34, 0x32, 0x4b,
- 0x59, 0xbe, 0x44, 0x7c, 0x6d, 0xb6, 0x32, 0xd5, 0xf3, 0xdf, 0x66, 0x44,
- 0xad, 0xbb, 0x92, 0x9a, 0xc1, 0xb8, 0xa1, 0x69, 0xee, 0x8c, 0x9f, 0x0d,
- 0x93, 0xdd, 0xf1, 0x0e, 0x7e, 0xec, 0x0e, 0x93, 0x3d, 0x6a, 0x69, 0x3f,
- 0x61, 0xbd, 0x55, 0xf6, 0x84, 0x69, 0xcf, 0x3b, 0xea, 0xad, 0x13, 0xaf,
- 0x92, 0x90, 0xde, 0x7d, 0x3d, 0x67, 0xc5, 0xb3, 0xb7, 0x84, 0xf3, 0x7c,
- 0xa7, 0xac, 0xce, 0x50, 0x78, 0x3e, 0x37, 0x24, 0xc2, 0xba, 0x98, 0x9e,
- 0x1b, 0xe1, 0xc0, 0x90, 0xd4, 0x07, 0x86, 0x26, 0x0a, 0x18, 0x24, 0x06,
- 0x49, 0x86, 0x67, 0x59, 0x66, 0xec, 0x34, 0x67, 0x08, 0xff, 0x41, 0x7b,
- 0x02, 0x6b, 0x4f, 0xcf, 0xa2, 0xa3, 0x2f, 0x73, 0xdb, 0xcd, 0x72, 0xcc,
- 0xa9, 0xc4, 0x35, 0x4d, 0x07, 0x89, 0x19, 0x9c, 0x69, 0x7f, 0xc8, 0x1b,
- 0xe1, 0xb5, 0xdf, 0x6a, 0x19, 0xf6, 0xa3, 0x60, 0xff, 0xe8, 0x43, 0x5d,
- 0xf8, 0xfd, 0x71, 0xf2, 0x52, 0xa6, 0x42, 0xcb, 0x8c, 0x7b, 0x96, 0x1e,
- 0x30, 0xc2, 0xbb, 0x91, 0x88, 0x93, 0x41, 0xbd, 0x3a, 0xef, 0x2e, 0x38,
- 0x2c, 0x05, 0xe7, 0xd9, 0x80, 0x0d, 0x65, 0x4d, 0xb9, 0x34, 0xfa, 0xf3,
- 0xcd, 0x15, 0x08, 0x98, 0x6d, 0x34, 0xa6, 0x9d, 0x6d, 0x18, 0x68, 0xd0,
- 0x9e, 0xb6, 0xb2, 0x34, 0x22, 0x7a, 0x5e, 0x5f, 0x0d, 0xb0, 0x8f, 0x69,
- 0x77, 0xff, 0xd0, 0xc2, 0x58, 0x07, 0xab, 0x67, 0x18, 0x57, 0x86, 0xe1,
- 0x8c, 0x46, 0x52, 0x5f, 0x40, 0xee, 0x9d, 0xd3, 0x06, 0x9b, 0xc9, 0x89,
- 0xcc, 0x47, 0x0f, 0xe7, 0xb5, 0x2f, 0x20, 0x05, 0x96, 0xb9, 0xcd, 0xbb,
- 0xac, 0xd9, 0xf2, 0x44, 0xef, 0x93, 0xd3, 0xfd, 0x70, 0x99, 0xfd, 0xd9,
- 0x8b, 0x6a, 0xb2, 0x2c, 0x97, 0xfb, 0x2a, 0x73, 0xb0, 0xdc, 0xa4, 0x12,
- 0x0a, 0x2e, 0x7f, 0x6c, 0xb7, 0x19, 0x2d, 0xed, 0x6b, 0x12, 0xec, 0xf9,
- 0x9a, 0x6d, 0x86, 0xcd, 0x2e, 0xec, 0x9f, 0xec, 0x36, 0x86, 0xcf, 0x99,
- 0x9b, 0xcc, 0xdc, 0x9c, 0xc9, 0x6b, 0xc3, 0xb8, 0xd2, 0x4b, 0xea, 0xcb,
- 0x72, 0x01, 0xba, 0x3d, 0x97, 0x66, 0x21, 0xcc, 0xc9, 0x9a, 0xdf, 0xb1,
- 0x6c, 0x81, 0x6b, 0x8d, 0x46, 0xd8, 0x9d, 0x3d, 0x94, 0x93, 0x05, 0x49,
- 0x53, 0xe6, 0xda, 0x48, 0x59, 0x2c, 0x71, 0x94, 0xc4, 0x73, 0x85, 0xd2,
- 0xe3, 0x0d, 0x6b, 0x72, 0x1a, 0xd0, 0x08, 0x7d, 0x68, 0xce, 0xa3, 0x7d,
- 0xc5, 0x3b, 0x3b, 0x93, 0xc3, 0xd3, 0x90, 0x29, 0x4c, 0x26, 0xdf, 0x58,
- 0x9a, 0xda, 0x33, 0x14, 0xb2, 0x74, 0x02, 0x9f, 0xf7, 0x26, 0x0c, 0x79,
- 0xc1, 0x9b, 0xf8, 0x70, 0x73, 0x56, 0xa5, 0x86, 0xd9, 0x3e, 0xde, 0x12,
- 0x19, 0x0c, 0x4b, 0xdf, 0x6a, 0xd2, 0x6b, 0xe4, 0xf5, 0x97, 0x96, 0x8d,
- 0xba, 0x46, 0x5e, 0x7f, 0x69, 0x9f, 0xdd, 0xa5, 0xc3, 0xc1, 0xb4, 0x48,
- 0xf3, 0xd7, 0x39, 0xf8, 0x6d, 0xc4, 0xd8, 0xdc, 0x3b, 0x25, 0x5f, 0xbd,
- 0xec, 0x59, 0x9b, 0x2c, 0xe8, 0x71, 0x25, 0x08, 0xa1, 0x08, 0xf3, 0x27,
- 0x33, 0x26, 0x7c, 0xcf, 0x3c, 0x60, 0xdc, 0x69, 0xee, 0xfb, 0x75, 0x27,
- 0x53, 0x2c, 0xb1, 0x67, 0x46, 0x31, 0xa5, 0x0e, 0x31, 0x1b, 0xd3, 0x19,
- 0x99, 0x2d, 0x70, 0xaa, 0xb2, 0x79, 0x91, 0xb1, 0x00, 0x4f, 0x2a, 0x09,
- 0xf8, 0x9b, 0x33, 0xba, 0x5e, 0x43, 0x24, 0xae, 0x31, 0xd9, 0x2e, 0xf5,
- 0x91, 0xc8, 0x03, 0x49, 0xc9, 0x8c, 0xae, 0xb6, 0x62, 0x3c, 0x18, 0x59,
- 0xcd, 0xd2, 0xab, 0x11, 0x11, 0xf3, 0x82, 0x6f, 0x0d, 0x91, 0x54, 0xac,
- 0x8a, 0xe6, 0x89, 0x78, 0x56, 0x62, 0xa5, 0x29, 0x73, 0x63, 0x3e, 0xcd,
- 0x9c, 0x79, 0x1b, 0x29, 0x2c, 0x8a, 0x3e, 0xb2, 0xd4, 0x42, 0x1d, 0xf0,
- 0x16, 0x88, 0x84, 0xf2, 0xf5, 0xdb, 0xa3, 0xc9, 0x24, 0x79, 0x7d, 0x74,
- 0x76, 0xf4, 0xb6, 0x6d, 0x92, 0x2f, 0xca, 0x6a, 0x41, 0x5a, 0x8b, 0xe1,
- 0x72, 0xf5, 0x72, 0x9e, 0xde, 0x41, 0x9f, 0x31, 0x2c, 0xf7, 0xb2, 0x82,
- 0x70, 0xb4, 0xc8, 0x60, 0x00, 0x99, 0xad, 0x48, 0x61, 0x2f, 0x0d, 0x3b,
- 0x48, 0xc5, 0xd6, 0x6b, 0xae, 0x65, 0xb2, 0x0f, 0xbb, 0x4b, 0x1e, 0x7c,
- 0xdb, 0x59, 0x8c, 0x94, 0xfc, 0x2a, 0x91, 0x8f, 0x87, 0x9e, 0x7c, 0xc9,
- 0x6a, 0x40, 0x2d, 0xcb, 0x60, 0xb4, 0x32, 0x73, 0xb4, 0x58, 0x32, 0x36,
- 0x67, 0xd0, 0xda, 0x68, 0xb2, 0x8b, 0xc6, 0xbc, 0x64, 0x36, 0x84, 0x8d,
- 0x4c, 0xc1, 0x98, 0x74, 0xb4, 0xce, 0x50, 0x7c, 0x7e, 0xd7, 0x64, 0xee,
- 0x26, 0xe2, 0x4e, 0xac, 0x4c, 0x87, 0x8d, 0x29, 0xe4, 0x91, 0x25, 0xad,
- 0xaa, 0xa1, 0xb2, 0x19, 0x9b, 0xe0, 0xeb, 0xd5, 0x05, 0x69, 0xaa, 0xc9,
- 0xe6, 0x87, 0x61, 0xf2, 0x7a, 0x98, 0x7c, 0x3d, 0x4c, 0x60, 0xf7, 0xdf,
- 0xa2, 0xb7, 0x92, 0xdd, 0x9d, 0xbd, 0x47, 0x09, 0xf3, 0x3d, 0x4b, 0x63,
- 0x5f, 0x79, 0xd6, 0x86, 0xdd, 0x0f, 0xe0, 0x10, 0xf4, 0x14, 0x35, 0x3f,
- 0x4e, 0x76, 0x5f, 0xf3, 0x27, 0x8f, 0x3e, 0x7d, 0xfc, 0xf4, 0x89, 0x7c,
- 0xd8, 0x96, 0x7d, 0xdd, 0xf0, 0x59, 0x05, 0xb2, 0x3a, 0x04, 0x46, 0x0e,
- 0x71, 0x30, 0x2f, 0x0c, 0xcf, 0x35, 0xca, 0xa3, 0x68, 0xe4, 0xd0, 0xda,
- 0x92, 0x9c, 0x0d, 0x04, 0x6c, 0xc9, 0x69, 0x35, 0x67, 0x5e, 0x9c, 0xd1,
- 0x51, 0xb1, 0x5b, 0xc4, 0xe6, 0xb0, 0x06, 0xe3, 0x48, 0xcf, 0x41, 0xfe,
- 0x10, 0x67, 0x49, 0x88, 0xf3, 0x7b, 0xb2, 0x5d, 0x59, 0xd3, 0x8f, 0x79,
- 0xc5, 0x0c, 0x2d, 0x3d, 0x9f, 0x8b, 0x92, 0xd3, 0x59, 0x75, 0x23, 0x61,
- 0x3b, 0x21, 0xdd, 0x3c, 0x7b, 0x53, 0xae, 0x20, 0x90, 0xe2, 0x01, 0x23,
- 0x5f, 0xe2, 0x05, 0xa6, 0x6a, 0x6b, 0xa6, 0xcf, 0x6f, 0xe5, 0x0a, 0x6f,
- 0xb5, 0x62, 0xc6, 0x66, 0xfe, 0x5c, 0x1a, 0x4a, 0xe2, 0xf1, 0x8c, 0xbb,
- 0x46, 0x10, 0x52, 0xef, 0x03, 0x3a, 0x04, 0x63, 0x21, 0xb9, 0xe5, 0xf4,
- 0x64, 0x42, 0x6e, 0x14, 0xa3, 0xb4, 0x99, 0x86, 0xfe, 0xb1, 0x32, 0x34,
- 0x64, 0x68, 0x12, 0x2f, 0x42, 0x33, 0xf1, 0xec, 0x02, 0x86, 0xfc, 0xe8,
- 0xee, 0x16, 0x39, 0xcf, 0x76, 0x2a, 0xea, 0x13, 0x5d, 0xa1, 0xbe, 0x9e,
- 0xc5, 0xa6, 0x2a, 0xfb, 0xd6, 0xe6, 0xe7, 0x5b, 0x43, 0x28, 0x5c, 0x56,
- 0xf7, 0xf2, 0xf4, 0x2e, 0xd1, 0x86, 0xbc, 0x53, 0x89, 0x8d, 0xb4, 0xc2,
- 0xb0, 0x11, 0x45, 0xcd, 0xa1, 0x32, 0x1d, 0x38, 0xef, 0x09, 0x56, 0x8f,
- 0x74, 0x3d, 0xb7, 0x4b, 0xf6, 0x71, 0x78, 0x30, 0x1a, 0xe2, 0x09, 0xce,
- 0xb6, 0x74, 0xd7, 0x5e, 0xa4, 0x2e, 0x79, 0xb4, 0x16, 0x8d, 0x26, 0x4f,
- 0x26, 0x17, 0x1c, 0xb0, 0x34, 0x71, 0x4b, 0x97, 0x0c, 0xce, 0xd3, 0x6a,
- 0xe0, 0x54, 0x4e, 0xf1, 0xa4, 0x99, 0xb6, 0x2f, 0x49, 0xa7, 0xa0, 0xa5,
- 0x35, 0xb3, 0xfc, 0x93, 0x37, 0x4b, 0x7d, 0x79, 0x64, 0x5e, 0x05, 0x09,
- 0x91, 0xa3, 0xe5, 0xc2, 0x88, 0xac, 0x38, 0x31, 0x6a, 0xa3, 0x25, 0x8b,
- 0x9d, 0x10, 0x4b, 0x9b, 0x56, 0xb8, 0x4d, 0xcf, 0x78, 0x6b, 0x8e, 0x09,
- 0x84, 0x7d, 0x96, 0x96, 0xf0, 0xe8, 0xa8, 0x86, 0xd2, 0x5a, 0x9b, 0x95,
- 0x07, 0xbb, 0x58, 0x8a, 0x23, 0xeb, 0x84, 0x5c, 0x86, 0x56, 0x8f, 0x3a,
- 0x11, 0xb1, 0x96, 0x79, 0x30, 0x5f, 0xee, 0x09, 0x3b, 0x03, 0x2b, 0x23,
- 0x8d, 0x9b, 0xce, 0x53, 0xb3, 0x5f, 0xe6, 0xbc, 0xbd, 0xc6, 0x5a, 0xc9,
- 0xb4, 0x54, 0x16, 0x06, 0x59, 0x98, 0x4d, 0x4c, 0x9c, 0xf8, 0x9b, 0xce,
- 0x66, 0x39, 0xe9, 0x3a, 0x73, 0x18, 0x70, 0x56, 0x19, 0x99, 0xd8, 0x65,
- 0x51, 0x17, 0xfe, 0x36, 0x1a, 0x86, 0x70, 0x05, 0x19, 0x68, 0xc0, 0x86,
- 0x86, 0x11, 0xba, 0x19, 0x80, 0xf8, 0x16, 0x9d, 0x4e, 0xcc, 0x1c, 0x66,
- 0x62, 0xc4, 0x12, 0x66, 0x30, 0x4c, 0x48, 0x3b, 0xf3, 0x2c, 0xe1, 0x24,
- 0x2e, 0x74, 0xa5, 0xc4, 0xd4, 0x6c, 0x37, 0xac, 0x85, 0x62, 0xa2, 0x20,
- 0x5b, 0x0f, 0x9d, 0xd7, 0x9a, 0x87, 0x36, 0x34, 0x8b, 0x8b, 0x27, 0x2f,
- 0xaf, 0xf4, 0x51, 0xcf, 0x6e, 0x94, 0xc2, 0xf2, 0x60, 0xc4, 0x6b, 0xb8,
- 0x94, 0x66, 0x6a, 0xd6, 0x28, 0x2b, 0x66, 0x65, 0xf3, 0xd2, 0x50, 0xf1,
- 0x80, 0x6d, 0xb2, 0xde, 0xc0, 0x31, 0x52, 0xac, 0x38, 0x7b, 0x5a, 0x9d,
- 0xd8, 0x64, 0x87, 0x2d, 0xcb, 0x55, 0xdf, 0x3b, 0x34, 0xef, 0x16, 0xa7,
- 0x45, 0xd2, 0x6b, 0x5f, 0xd7, 0x9d, 0x8d, 0x19, 0x65, 0xb1, 0xd1, 0xf0,
- 0x59, 0x24, 0x47, 0x42, 0x67, 0xe5, 0x6b, 0xa2, 0x1f, 0xb1, 0xd3, 0xd8,
- 0x99, 0x2d, 0x48, 0x64, 0x22, 0x3a, 0xd1, 0x9d, 0x71, 0x5e, 0x8f, 0x88,
- 0x95, 0xf7, 0x2e, 0xb0, 0xdb, 0x43, 0x09, 0xf6, 0xaf, 0x23, 0x1d, 0x13,
- 0x99, 0x48, 0x8e, 0x69, 0x1e, 0xa3, 0xeb, 0x04, 0x07, 0xb0, 0x30, 0x33,
- 0x4c, 0xf1, 0xc5, 0xf1, 0xb5, 0x77, 0x8c, 0xe0, 0xa6, 0x2a, 0x60, 0x86,
- 0x1b, 0x92, 0x83, 0xf0, 0xbc, 0x2c, 0xe7, 0x59, 0xea, 0xa6, 0x86, 0xdb,
- 0x20, 0x2b, 0x40, 0xee, 0xb2, 0xa3, 0x86, 0x1d, 0x2c, 0x2d, 0xb3, 0x35,
- 0xd2, 0x6e, 0x92, 0x5e, 0xa6, 0xb9, 0xa5, 0x37, 0x39, 0x1a, 0xf6, 0xd9,
- 0xa2, 0x94, 0xc7, 0xb1, 0x53, 0x90, 0x0c, 0x84, 0x65, 0xad, 0x6a, 0x3e,
- 0x3e, 0x66, 0x5e, 0x86, 0xe5, 0xd4, 0xce, 0x82, 0x93, 0x90, 0x55, 0xd4,
- 0x9a, 0x91, 0xc8, 0x0e, 0x0c, 0x93, 0x2a, 0x31, 0x5e, 0x32, 0x90, 0x9a,
- 0x26, 0x07, 0xe3, 0xe4, 0x9b, 0xf2, 0x26, 0x23, 0x6f, 0x39, 0x19, 0xb0,
- 0x73, 0xb8, 0x78, 0x6b, 0xf3, 0x84, 0x51, 0xa3, 0x8c, 0x1a, 0x60, 0x56,
- 0x93, 0x8c, 0x6b, 0xf4, 0x99, 0xe7, 0x03, 0x31, 0x24, 0x7e, 0xc3, 0x47,
- 0x51, 0x27, 0x61, 0x77, 0xf2, 0x82, 0x4f, 0x44, 0xb2, 0x49, 0x1c, 0x6d,
- 0x8a, 0xc5, 0x5a, 0x36, 0x6e, 0x16, 0x76, 0x3d, 0x0c, 0x97, 0xae, 0xbd,
- 0xc3, 0x25, 0xee, 0x9e, 0xe4, 0xe9, 0x78, 0xf7, 0xd9, 0x78, 0x67, 0x0c,
- 0x09, 0x3a, 0xbb, 0xce, 0x8d, 0x7e, 0x6a, 0x7a, 0xc7, 0x48, 0xec, 0x7b,
- 0x37, 0x6c, 0x18, 0xba, 0xbc, 0x9c, 0x93, 0xf5, 0x78, 0xbb, 0xbc, 0x40,
- 0x8f, 0x15, 0xc8, 0xdd, 0xf1, 0xed, 0x25, 0x1b, 0xf9, 0xb1, 0x38, 0x72,
- 0xe8, 0x68, 0x65, 0x22, 0x7a, 0xe5, 0xd8, 0xf9, 0xe9, 0x46, 0xa3, 0xf4,
- 0xdc, 0x88, 0xe0, 0x66, 0x1d, 0x47, 0xab, 0x22, 0xbf, 0x1d, 0xd5, 0xe5,
- 0xf4, 0x83, 0xd9, 0x96, 0xe7, 0xcb, 0xb4, 0xb9, 0xfa, 0xbc, 0x23, 0x5d,
- 0x6d, 0xe2, 0x26, 0xd9, 0x4a, 0x0e, 0xd9, 0x6c, 0xaa, 0x03, 0xc0, 0x25,
- 0xaa, 0x6d, 0x24, 0xef, 0x4c, 0x1b, 0x86, 0x96, 0x8d, 0x74, 0x09, 0x22,
- 0xa3, 0xb6, 0x86, 0x96, 0x91, 0x76, 0x9a, 0x33, 0x83, 0x94, 0x3b, 0x84,
- 0xaf, 0x1a, 0x23, 0x3f, 0x92, 0xfd, 0x21, 0x49, 0xde, 0x94, 0x4d, 0x76,
- 0x80, 0xbf, 0x0d, 0x1b, 0x6b, 0x68, 0xdd, 0xe5, 0x6a, 0x4d, 0xc1, 0x14,
- 0x2e, 0xb8, 0xc7, 0x51, 0xa8, 0x48, 0x10, 0x35, 0xf0, 0x04, 0xc4, 0x94,
- 0x2e, 0xa4, 0xb4, 0xf1, 0xc5, 0xc6, 0x10, 0x66, 0x73, 0xda, 0x75, 0xe9,
- 0x8e, 0xa7, 0x08, 0x39, 0xe7, 0x72, 0x05, 0x8d, 0xad, 0xdb, 0xdc, 0x15,
- 0x5d, 0xd4, 0xb8, 0x69, 0xd8, 0x9f, 0x43, 0x64, 0x22, 0x0a, 0xb6, 0x75,
- 0xb1, 0x8c, 0x3f, 0xe9, 0xbc, 0xf6, 0x82, 0x76, 0xd5, 0xcc, 0xfe, 0xe9,
- 0xf8, 0xf1, 0xbe, 0xd9, 0x53, 0x7f, 0xa1, 0xe7, 0xcd, 0xa8, 0xbe, 0x9e,
- 0x26, 0xcf, 0xc9, 0xbc, 0x0c, 0x42, 0x8d, 0x2e, 0xb0, 0x51, 0x15, 0xbe,
- 0x7f, 0xf1, 0xf6, 0xcd, 0xab, 0x37, 0x5f, 0x1f, 0x70, 0xa7, 0x42, 0x6c,
- 0x1d, 0xf5, 0x12, 0x6a, 0x30, 0x8d, 0x0e, 0xfb, 0x6d, 0xfa, 0x33, 0x57,
- 0x49, 0x77, 0x45, 0x66, 0xab, 0x4e, 0xbc, 0x83, 0x7f, 0xed, 0x4a, 0xab,
- 0x7c, 0x3a, 0x79, 0x79, 0x75, 0x80, 0x64, 0x5d, 0x24, 0x8f, 0x23, 0x44,
- 0x25, 0x32, 0x8a, 0x92, 0x1b, 0x4b, 0x87, 0xdd, 0x69, 0x6e, 0x59, 0xe6,
- 0x4e, 0xf3, 0xc8, 0x6e, 0x73, 0x56, 0xa4, 0xb5, 0xb1, 0xa9, 0x61, 0x48,
- 0x99, 0x48, 0x0c, 0xc4, 0xe9, 0xc8, 0xd0, 0x24, 0x9c, 0x6c, 0x9c, 0xbc,
- 0xb8, 0x08, 0xac, 0x23, 0x14, 0x3c, 0xa3, 0x57, 0xe0, 0xcc, 0x0a, 0xc1,
- 0x1c, 0xe4, 0xc0, 0xcd, 0x69, 0x1b, 0x30, 0x94, 0x8a, 0x7d, 0x98, 0xf6,
- 0x14, 0xdd, 0x74, 0x9a, 0x23, 0xfb, 0x2e, 0x71, 0x19, 0x48, 0x83, 0x39,
- 0x76, 0x13, 0x8e, 0x0d, 0xc3, 0xa7, 0x17, 0xe5, 0x8c, 0xac, 0xe4, 0xc1,
- 0xfa, 0x4c, 0xac, 0x53, 0x73, 0x30, 0x70, 0xb3, 0x4e, 0x36, 0xe1, 0xe2,
- 0x36, 0x24, 0x50, 0x5c, 0x36, 0x57, 0x5b, 0xce, 0x6d, 0xa7, 0x16, 0x04,
- 0x33, 0x16, 0x9a, 0x77, 0xd1, 0xa5, 0x73, 0x0a, 0xbc, 0x20, 0xa1, 0xf3,
- 0xef, 0xab, 0xba, 0x21, 0x5b, 0xbf, 0x5c, 0xff, 0x3c, 0x19, 0x33, 0xb2,
- 0x45, 0xb6, 0x28, 0xab, 0xbb, 0x60, 0x20, 0xb4, 0xf0, 0x2d, 0x0a, 0xa0,
- 0xbb, 0x51, 0xbd, 0xde, 0x10, 0xfe, 0xeb, 0x61, 0xcb, 0xab, 0x45, 0x42,
- 0x93, 0xd5, 0x06, 0xbb, 0xd6, 0x44, 0xb2, 0x16, 0xb0, 0xe7, 0x4a, 0x7c,
- 0x05, 0xe7, 0xe2, 0xa2, 0x9c, 0xa7, 0xe0, 0x36, 0x45, 0xd6, 0xda, 0x1d,
- 0xba, 0x3b, 0x78, 0x5a, 0xeb, 0xe8, 0xfc, 0xc9, 0xa3, 0xf1, 0x6e, 0x8b,
- 0xce, 0x8b, 0x3b, 0x04, 0xc6, 0xc4, 0x99, 0x07, 0xf4, 0xc7, 0xda, 0x69,
- 0x8f, 0xf9, 0xe5, 0xaa, 0x22, 0xd9, 0x52, 0x62, 0x69, 0x34, 0x84, 0x06,
- 0xf2, 0xd0, 0x55, 0x49, 0x71, 0x28, 0xe6, 0x1e, 0xcd, 0xe6, 0x17, 0xc3,
- 0x88, 0x15, 0x51, 0xaf, 0x01, 0x62, 0x95, 0x46, 0x3b, 0xa1, 0xa6, 0x8a,
- 0x4c, 0x64, 0x35, 0x58, 0x4b, 0x13, 0x44, 0x5c, 0x24, 0xd3, 0x79, 0x9a,
- 0x2f, 0xc4, 0x64, 0x2f, 0x0a, 0xf8, 0x38, 0x76, 0x24, 0x48, 0x18, 0x35,
- 0xef, 0x9f, 0xc3, 0xa9, 0x53, 0xd5, 0xb8, 0x94, 0x69, 0x47, 0x55, 0x60,
- 0x66, 0xdb, 0xc4, 0x55, 0x36, 0xfd, 0xa0, 0x56, 0x37, 0x95, 0x36, 0xbb,
- 0x34, 0x8c, 0x08, 0x1b, 0xf2, 0x1c, 0x35, 0x57, 0x30, 0x63, 0x97, 0x46,
- 0xf5, 0x85, 0x63, 0xd8, 0xa8, 0x80, 0xab, 0xa9, 0xd3, 0xc1, 0x6f, 0x0d,
- 0x69, 0x5b, 0xb6, 0x67, 0x38, 0xb8, 0xd1, 0x04, 0x67, 0xa3, 0xa6, 0xca,
- 0x97, 0xd1, 0xd1, 0x91, 0x51, 0x85, 0xb6, 0xa5, 0x25, 0x98, 0x22, 0x36,
- 0xc5, 0x9a, 0x7a, 0xc4, 0xf3, 0x33, 0xed, 0xac, 0x66, 0x97, 0x20, 0x69,
- 0x6d, 0x87, 0xb0, 0x81, 0x19, 0x61, 0x41, 0xe3, 0x29, 0x66, 0x62, 0xbd,
- 0x37, 0x3b, 0x68, 0x34, 0xb7, 0x7c, 0x3a, 0xc4, 0x6f, 0xb3, 0xfc, 0x32,
- 0x43, 0xe4, 0x12, 0xae, 0xb1, 0x66, 0x6e, 0x84, 0xa2, 0x08, 0x7d, 0x9b,
- 0xaf, 0xb2, 0xcb, 0xb2, 0x81, 0x20, 0x12, 0x90, 0x09, 0x1b, 0x28, 0x2d,
- 0x4d, 0x88, 0x01, 0xac, 0x25, 0x8e, 0x89, 0x8e, 0x66, 0xba, 0x17, 0xf5,
- 0x9b, 0xe9, 0x94, 0xf4, 0xfe, 0xee, 0xae, 0x9b, 0xd6, 0xa6, 0xa4, 0x45,
- 0x41, 0x64, 0x54, 0x79, 0x55, 0x25, 0x7d, 0xf0, 0x03, 0x08, 0xc7, 0xcd,
- 0x4d, 0x3e, 0xcd, 0x54, 0xa9, 0xb5, 0xf1, 0x0c, 0xf3, 0x3c, 0xe4, 0xf1,
- 0x0b, 0x9c, 0x47, 0xbc, 0xc7, 0x02, 0x39, 0x1c, 0x83, 0x37, 0x39, 0x04,
- 0x76, 0xe1, 0x78, 0x24, 0x8e, 0xc9, 0x45, 0x90, 0x56, 0x39, 0x79, 0x41,
- 0x11, 0x36, 0xa0, 0x66, 0x97, 0xd8, 0xf9, 0xe2, 0x71, 0xd3, 0xeb, 0xa2,
- 0xc3, 0x38, 0xdd, 0x85, 0x0e, 0xd7, 0x05, 0x59, 0x5e, 0x82, 0x75, 0x22,
- 0x25, 0xec, 0x32, 0x23, 0x7f, 0x31, 0x0b, 0x0e, 0x2b, 0x88, 0x9f, 0x88,
- 0x33, 0x0b, 0x19, 0x54, 0x96, 0xb1, 0x2e, 0x41, 0x7a, 0xc7, 0xed, 0x9d,
- 0x2e, 0xef, 0x50, 0xf7, 0x8e, 0x05, 0x37, 0xd9, 0x3d, 0xef, 0x6c, 0xa6,
- 0x78, 0xc2, 0xe8, 0x59, 0x59, 0xb0, 0x89, 0x9b, 0x50, 0xba, 0x60, 0xd9,
- 0xda, 0xd2, 0xd0, 0x88, 0x4c, 0x82, 0x43, 0x6c, 0x20, 0x1b, 0xb1, 0x22,
- 0x30, 0x33, 0x39, 0xbf, 0xdc, 0x8e, 0xa8, 0x03, 0x5d, 0x26, 0x6e, 0x6e,
- 0x55, 0x73, 0x0b, 0x4b, 0x5c, 0x5b, 0x8b, 0x5e, 0x61, 0x2a, 0xb3, 0xe1,
- 0x55, 0x39, 0xf9, 0x9d, 0x2e, 0x12, 0xff, 0xcc, 0x46, 0x98, 0x38, 0x94,
- 0x3e, 0xc8, 0xc7, 0x74, 0xbb, 0x0c, 0x59, 0x9a, 0x63, 0x3e, 0x35, 0xe5,
- 0xd0, 0x06, 0x11, 0x1a, 0xf8, 0x86, 0xa1, 0x81, 0x5e, 0xcc, 0xd3, 0x4b,
- 0x3e, 0x33, 0xf9, 0x65, 0xf7, 0x78, 0x16, 0xa5, 0xc4, 0xb8, 0xd5, 0xa5,
- 0xe1, 0xeb, 0x64, 0xcf, 0x63, 0xcb, 0x51, 0x9d, 0x6c, 0x1a, 0x0a, 0x9b,
- 0xaf, 0xe8, 0x92, 0x3f, 0x31, 0xd3, 0x9b, 0x4c, 0xbe, 0xd9, 0x6a, 0xf1,
- 0xb6, 0x9b, 0xda, 0xe8, 0x60, 0x97, 0xd7, 0x8f, 0x8c, 0xf8, 0xc0, 0x81,
- 0x11, 0xd5, 0xee, 0x8f, 0x07, 0xfa, 0xeb, 0xde, 0x8f, 0x07, 0x46, 0x47,
- 0x34, 0x3b, 0xfd, 0xe3, 0x01, 0xda, 0x33, 0x64, 0xf8, 0xf3, 0xcf, 0x3f,
- 0x7f, 0x1e, 0x6e, 0x75, 0xf2, 0xe2, 0xfb, 0x49, 0xf2, 0xdd, 0x23, 0x0a,
- 0x8c, 0xa0, 0xf0, 0xb9, 0x2e, 0xf7, 0x93, 0xb8, 0x0a, 0xbd, 0xfa, 0x22,
- 0x37, 0x38, 0x87, 0xa0, 0x50, 0xaf, 0x56, 0x82, 0x61, 0x55, 0xc7, 0xc8,
- 0x41, 0xcc, 0x9e, 0x48, 0x60, 0x16, 0xc7, 0xee, 0x9d, 0x5c, 0xf0, 0x97,
- 0xa5, 0x59, 0xf9, 0xab, 0x45, 0x68, 0x85, 0x2b, 0x78, 0x25, 0xc9, 0x68,
- 0xb5, 0x6a, 0x2e, 0x99, 0xf1, 0xb5, 0x07, 0x25, 0x4c, 0x2d, 0x3a, 0x18,
- 0x9e, 0xf6, 0x9a, 0x91, 0x78, 0x42, 0x82, 0x51, 0x19, 0x8c, 0xd6, 0x9b,
- 0x2e, 0xaf, 0x40, 0xa7, 0xa6, 0xd3, 0x88, 0x58, 0x08, 0x96, 0x5b, 0x1b,
- 0x0d, 0x1a, 0xb1, 0x38, 0xd3, 0x72, 0x3e, 0x67, 0x2f, 0x7d, 0xb2, 0xc9,
- 0xdd, 0x8c, 0xa6, 0xe5, 0x2c, 0xdb, 0xe2, 0x51, 0x37, 0xae, 0x73, 0xba,
- 0xa4, 0xf3, 0xee, 0xa5, 0x57, 0x2e, 0xf2, 0xa6, 0xd1, 0x28, 0x1e, 0x52,
- 0x1a, 0x8a, 0x19, 0x0d, 0x26, 0x3a, 0x0f, 0xd9, 0xb6, 0x07, 0x4e, 0xe4,
- 0x62, 0x55, 0xf0, 0xc0, 0x62, 0xd2, 0x17, 0xf6, 0x86, 0x56, 0xde, 0x08,
- 0x33, 0xf3, 0x72, 0x35, 0x4b, 0x36, 0xa5, 0xf1, 0xee, 0xf0, 0xb5, 0x4f,
- 0x19, 0xbf, 0x8e, 0x38, 0xc6, 0x5c, 0xd6, 0x8e, 0xdf, 0xbb, 0x92, 0x9f,
- 0x3e, 0x6e, 0x8b, 0x9e, 0xc4, 0x14, 0x1e, 0x72, 0x21, 0xe3, 0x4a, 0x25,
- 0x7b, 0xd1, 0x97, 0xcc, 0x46, 0xda, 0x14, 0x60, 0x8d, 0x11, 0x88, 0xa0,
- 0xe8, 0xf2, 0x52, 0x1c, 0x3f, 0x04, 0xa6, 0x8c, 0xed, 0x65, 0x8a, 0x27,
- 0x35, 0x3e, 0x86, 0xd9, 0x71, 0x47, 0x96, 0x59, 0x91, 0x19, 0x95, 0x66,
- 0xd3, 0x6d, 0x0e, 0x8e, 0x66, 0xeb, 0x70, 0x56, 0x9d, 0x2f, 0x27, 0x15,
- 0x17, 0x0c, 0xa4, 0x42, 0x48, 0x12, 0xac, 0x5d, 0x56, 0x5f, 0x32, 0xd7,
- 0xa0, 0xb6, 0x8d, 0x7d, 0x0a, 0x0c, 0xc3, 0x0d, 0x05, 0x52, 0x1b, 0x15,
- 0x13, 0xe1, 0xbe, 0xe4, 0x17, 0x8f, 0x4b, 0x1c, 0x9b, 0xf5, 0x0a, 0x06,
- 0xed, 0xda, 0xde, 0x78, 0x60, 0xa3, 0xdd, 0xd1, 0xf1, 0xa5, 0x88, 0x50,
- 0x02, 0x77, 0xf7, 0x6d, 0xfd, 0xd6, 0x4c, 0x9d, 0x36, 0xcd, 0xdf, 0x45,
- 0x23, 0x2e, 0x66, 0x55, 0xc3, 0xfa, 0x43, 0xa0, 0x3a, 0x9c, 0x1d, 0x4f,
- 0x62, 0x9b, 0xd9, 0x8e, 0x19, 0xc4, 0xfb, 0x90, 0x0f, 0xd2, 0x46, 0x83,
- 0x5c, 0x4a, 0x28, 0xb1, 0x5e, 0xdc, 0xa0, 0x67, 0x0b, 0x48, 0x96, 0x19,
- 0x02, 0x0c, 0x99, 0xd9, 0x30, 0x23, 0xc7, 0xb5, 0x0b, 0xe1, 0x12, 0xd2,
- 0xb4, 0x8d, 0x65, 0x38, 0x7c, 0xe1, 0xb7, 0x4b, 0x11, 0x2c, 0x5d, 0xfe,
- 0xed, 0x7d, 0xbf, 0x59, 0x6f, 0xf1, 0xbd, 0x7b, 0x4e, 0x92, 0xef, 0xe9,
- 0xd1, 0x6b, 0x32, 0xb7, 0xa4, 0x86, 0x6e, 0xde, 0xa8, 0x61, 0x5d, 0xa3,
- 0x91, 0xe1, 0x40, 0x6d, 0x45, 0x68, 0x39, 0x0b, 0x11, 0x85, 0x02, 0x33,
- 0x69, 0xd1, 0xd0, 0x38, 0xe2, 0x30, 0xa7, 0x60, 0x9d, 0x2e, 0xa1, 0x35,
- 0x77, 0x4b, 0x89, 0x33, 0x12, 0x4f, 0x54, 0x57, 0x96, 0x9c, 0x43, 0xe7,
- 0x60, 0x33, 0x8c, 0xd7, 0x66, 0xb0, 0x43, 0x34, 0x2c, 0x88, 0x2e, 0x97,
- 0x45, 0xfe, 0x8b, 0xe8, 0x4c, 0x59, 0x71, 0x9d, 0x57, 0x65, 0x41, 0xbc,
- 0x82, 0x1c, 0xc9, 0xe7, 0xa2, 0x2e, 0x98, 0xdb, 0x6e, 0xe3, 0xf0, 0xdd,
- 0xdb, 0xe3, 0xf7, 0x87, 0x2f, 0xde, 0x7f, 0xf9, 0xee, 0xcd, 0xcb, 0xe3,
- 0xa3, 0x8d, 0xae, 0x37, 0xfe, 0x82, 0x63, 0x33, 0x72, 0x72, 0xce, 0x34,
- 0x43, 0x2b, 0xd4, 0x72, 0xcb, 0x1c, 0x7d, 0x42, 0x2a, 0x2f, 0x45, 0x4c,
- 0xd1, 0x6f, 0xc4, 0x76, 0x64, 0xc1, 0x3b, 0xcd, 0x9d, 0xaf, 0xa0, 0x57,
- 0x8c, 0x5b, 0xda, 0x9d, 0x1e, 0x15, 0x31, 0x32, 0xe9, 0x00, 0xa3, 0xac,
- 0xef, 0x46, 0xe2, 0x06, 0x3c, 0xa3, 0x86, 0x17, 0x3c, 0xb5, 0x6a, 0x8c,
- 0x52, 0xaf, 0xe1, 0x5a, 0xe4, 0xd4, 0xd5, 0xb8, 0xf0, 0xc4, 0x8c, 0x27,
- 0xb2, 0xdd, 0xb5, 0xd3, 0x9c, 0x66, 0xc9, 0x06, 0x5a, 0x32, 0xf4, 0x3b,
- 0x92, 0x41, 0x4e, 0xab, 0xc6, 0x28, 0xe4, 0x59, 0x4e, 0x07, 0x43, 0x23,
- 0x5b, 0xc1, 0xfe, 0xc8, 0x8a, 0x1c, 0x68, 0x84, 0xf0, 0x23, 0xa7, 0x4c,
- 0xd7, 0xe3, 0xec, 0x36, 0xa3, 0x93, 0x27, 0x6f, 0x1d, 0xae, 0x2a, 0x3a,
- 0xcd, 0xdf, 0x1b, 0x11, 0x1a, 0x3c, 0xfa, 0xa5, 0x3a, 0x9e, 0xf5, 0x21,
- 0x23, 0x1a, 0x75, 0x39, 0x69, 0x39, 0xa7, 0x5b, 0x93, 0x0c, 0x7f, 0x64,
- 0xa7, 0x3d, 0x7d, 0x71, 0xf6, 0x4d, 0x4c, 0xf9, 0xf2, 0x62, 0x81, 0x84,
- 0x14, 0x49, 0x91, 0xac, 0xd5, 0x38, 0xfe, 0x66, 0x32, 0x49, 0x28, 0xa8,
- 0x7f, 0x9e, 0x9f, 0x57, 0x29, 0xfa, 0xc4, 0xc7, 0xf8, 0xd4, 0x90, 0x75,
- 0xa7, 0xb9, 0xd3, 0x6f, 0x0f, 0x27, 0x7f, 0xda, 0xdd, 0x85, 0xd6, 0xb9,
- 0x32, 0xeb, 0xb2, 0x69, 0x5e, 0x29, 0x6a, 0x73, 0x32, 0x17, 0xe3, 0xba,
- 0xdc, 0x92, 0xf0, 0x20, 0x16, 0x62, 0xd3, 0x6b, 0x23, 0x21, 0x12, 0x1d,
- 0x29, 0x51, 0xf7, 0xc4, 0x10, 0x90, 0x87, 0x02, 0xaa, 0x83, 0xe1, 0x17,
- 0x46, 0xc6, 0x9c, 0x87, 0x0a, 0xe4, 0x66, 0x7e, 0x32, 0x61, 0xb2, 0x5a,
- 0xa4, 0x53, 0xf3, 0x2b, 0xec, 0x5a, 0x5b, 0x36, 0xc8, 0xc9, 0x9e, 0x30,
- 0x9d, 0xd5, 0x84, 0x75, 0x28, 0x0a, 0xeb, 0xa0, 0x34, 0x87, 0x90, 0x2b,
- 0x14, 0xdd, 0xc3, 0xe5, 0xbc, 0xd7, 0x44, 0x0e, 0xe7, 0xe9, 0xf4, 0xc3,
- 0x4d, 0x5a, 0xcd, 0xd8, 0x88, 0x6d, 0x28, 0xe6, 0x3c, 0x9f, 0xe7, 0xcd,
- 0x1d, 0x9b, 0xa2, 0xbb, 0x57, 0x33, 0xc7, 0xab, 0x62, 0x01, 0xcd, 0x39,
- 0xba, 0xcc, 0x0b, 0x68, 0xb3, 0xa4, 0x92, 0xe6, 0x8d, 0x6f, 0x7f, 0x21,
- 0xc1, 0xbe, 0xb1, 0x52, 0xb9, 0xed, 0x3b, 0x90, 0xea, 0x1a, 0x3e, 0x47,
- 0x34, 0x4c, 0x47, 0xbb, 0xca, 0x06, 0x7d, 0x26, 0xa5, 0xe4, 0x93, 0xd4,
- 0x77, 0x46, 0x34, 0x5d, 0xc4, 0xd4, 0x1a, 0xca, 0xf0, 0x48, 0xbe, 0xcd,
- 0xee, 0xa6, 0x57, 0x60, 0x77, 0x96, 0x53, 0xb2, 0x25, 0x2a, 0x83, 0x41,
- 0x82, 0x15, 0xa8, 0x5c, 0xfd, 0x3e, 0x99, 0x78, 0xef, 0xf8, 0x26, 0x09,
- 0xc5, 0x1a, 0x7e, 0x5f, 0x75, 0x47, 0x34, 0xb1, 0x51, 0xb7, 0x58, 0x32,
- 0xf5, 0x14, 0x6e, 0xe2, 0xc4, 0x7c, 0x5e, 0x14, 0xd9, 0x5c, 0xb6, 0xef,
- 0x6c, 0xdd, 0x06, 0xd8, 0x67, 0xcd, 0x90, 0x25, 0x12, 0xa8, 0xd3, 0xdc,
- 0x53, 0x0e, 0xb8, 0x4e, 0x1b, 0xbd, 0x93, 0x34, 0xcf, 0xc3, 0x68, 0xf2,
- 0x3b, 0xf6, 0xab, 0x71, 0x6f, 0x37, 0xc1, 0x69, 0xaa, 0xdc, 0xa6, 0xb7,
- 0xf7, 0x9c, 0x6d, 0xf8, 0xb4, 0xc9, 0xd8, 0x63, 0xd9, 0xe2, 0xbf, 0x5a,
- 0x75, 0x80, 0x9c, 0x6d, 0x9d, 0xe6, 0x7c, 0xcd, 0x50, 0xef, 0x30, 0x99,
- 0xc7, 0x86, 0x91, 0xc3, 0xca, 0x8a, 0x8c, 0x9b, 0x55, 0x69, 0xf6, 0xba,
- 0xb5, 0x9f, 0x9b, 0x2c, 0x6c, 0x74, 0x8f, 0x89, 0x70, 0x73, 0x6f, 0x61,
- 0xb6, 0x7e, 0xa5, 0x95, 0xa5, 0xd7, 0x4a, 0xd2, 0xbe, 0xa1, 0x89, 0x4b,
- 0x3f, 0x37, 0x6c, 0xec, 0x9f, 0xbf, 0xa0, 0xbd, 0x20, 0x9a, 0xf0, 0xce,
- 0x12, 0x5a, 0x6c, 0x5d, 0xd4, 0xaf, 0xf5, 0x46, 0xc6, 0x20, 0xac, 0xc7,
- 0x40, 0xd4, 0x04, 0xd6, 0x77, 0xd8, 0xf5, 0x11, 0xaa, 0xae, 0x14, 0x10,
- 0xc7, 0x16, 0xf2, 0x83, 0x41, 0xb2, 0x99, 0x8d, 0x2f, 0x4d, 0x7b, 0x03,
- 0xb4, 0xb3, 0x7b, 0x80, 0x9f, 0x7b, 0xf4, 0x73, 0x7f, 0x20, 0x19, 0x58,
- 0xad, 0xa5, 0xc7, 0x6d, 0xde, 0xbd, 0x8b, 0x48, 0xe9, 0xf3, 0x2e, 0xf7,
- 0x21, 0xbb, 0x44, 0xfa, 0x18, 0x0f, 0xab, 0x5a, 0xc7, 0xbc, 0xca, 0xa1,
- 0xb8, 0xa5, 0xcb, 0xb0, 0x60, 0xfb, 0xd9, 0x75, 0xc6, 0x06, 0x3c, 0x33,
- 0x33, 0x84, 0xcd, 0x91, 0xcd, 0x5b, 0x4f, 0xd5, 0xf4, 0x7d, 0x95, 0x5d,
- 0xa5, 0xf5, 0x55, 0xb2, 0x6a, 0x98, 0x08, 0x0d, 0xdd, 0x76, 0x9b, 0x5b,
- 0xce, 0x29, 0x36, 0x96, 0xad, 0x1d, 0xd2, 0xf5, 0x58, 0x6d, 0x15, 0x6e,
- 0x17, 0xd9, 0x63, 0x37, 0x2f, 0x6f, 0xf4, 0x99, 0x91, 0x64, 0x47, 0xc5,
- 0xc4, 0x02, 0xb3, 0x9b, 0x64, 0xe7, 0xc3, 0x63, 0x7e, 0x5c, 0xf1, 0x02,
- 0xd2, 0x24, 0x52, 0xb7, 0x0c, 0x8b, 0xbb, 0x30, 0x2b, 0x06, 0x2b, 0xc4,
- 0x9c, 0xf6, 0x0d, 0x26, 0xa0, 0x55, 0x24, 0xe6, 0xcf, 0xca, 0x79, 0xf9,
- 0x85, 0x78, 0x1b, 0xe4, 0x6f, 0xba, 0x4f, 0x45, 0xfa, 0xaa, 0x39, 0xf6,
- 0xb8, 0x2b, 0x7a, 0xdd, 0x4f, 0xda, 0xca, 0x20, 0xad, 0xa4, 0x23, 0x93,
- 0x65, 0xff, 0x9e, 0xd2, 0xb5, 0xd1, 0x4b, 0xa1, 0x22, 0xc7, 0x8c, 0x6e,
- 0x6c, 0x44, 0xfd, 0xa7, 0x0e, 0x89, 0x19, 0xf1, 0x08, 0x96, 0xfd, 0x55,
- 0xfd, 0x80, 0x33, 0xe2, 0x31, 0x5d, 0x7e, 0xc7, 0x3a, 0x37, 0x24, 0xbc,
- 0xc5, 0x5b, 0x80, 0x2e, 0x15, 0xde, 0x79, 0x84, 0x71, 0xe8, 0x9d, 0xac,
- 0x09, 0x37, 0xf4, 0x56, 0xcc, 0x7a, 0x9b, 0xe9, 0x87, 0x74, 0x9c, 0x9c,
- 0x1c, 0x4e, 0x4e, 0xd1, 0xc5, 0x12, 0xf1, 0x2d, 0x5b, 0x08, 0x7e, 0xe9,
- 0x34, 0x97, 0xdd, 0x36, 0x59, 0x51, 0xc7, 0x0c, 0xea, 0xe1, 0x32, 0xab,
- 0xd3, 0xcb, 0x86, 0x56, 0xf8, 0x81, 0x29, 0x14, 0x19, 0x43, 0x11, 0xf1,
- 0x09, 0x1f, 0xb5, 0xa0, 0xa3, 0xa5, 0x39, 0xf9, 0xb3, 0x2d, 0x6b, 0x5e,
- 0x1c, 0x2a, 0x2d, 0x58, 0xef, 0x76, 0xbd, 0xba, 0x84, 0x0e, 0x52, 0xab,
- 0xc1, 0xc3, 0xf6, 0x60, 0x56, 0x23, 0x14, 0x15, 0x64, 0xda, 0xd6, 0xf2,
- 0x6d, 0xb4, 0x26, 0x64, 0xb6, 0x90, 0x88, 0x54, 0x94, 0xae, 0x55, 0x04,
- 0xd5, 0x50, 0x9e, 0x1f, 0x24, 0x1e, 0x0d, 0xd6, 0x8e, 0x08, 0x01, 0xbc,
- 0x29, 0xaa, 0x38, 0x5d, 0x48, 0x6e, 0x5f, 0x9f, 0xcd, 0x72, 0xca, 0x22,
- 0x1a, 0xa8, 0x9e, 0xfc, 0x6a, 0x39, 0x2c, 0xfb, 0x10, 0x98, 0x59, 0x5b,
- 0x45, 0x7b, 0xf6, 0xfc, 0x7f, 0x5d, 0xac, 0x10, 0x32, 0x17, 0xde, 0xc6,
- 0x10, 0xaa, 0x70, 0xcd, 0x60, 0x01, 0xd7, 0x69, 0xbe, 0x8f, 0x76, 0xdb,
- 0x9a, 0x2f, 0x11, 0x9b, 0x51, 0x00, 0xb2, 0xe4, 0x39, 0x7e, 0xde, 0xcb,
- 0x95, 0x29, 0xb2, 0x88, 0x9e, 0x17, 0xff, 0x3c, 0xf3, 0x4e, 0xb1, 0x1f,
- 0x26, 0x6d, 0x06, 0x1d, 0xdc, 0x5e, 0x44, 0x6e, 0x63, 0xf0, 0xbd, 0x61,
- 0xf2, 0x12, 0x19, 0xb4, 0x47, 0x6f, 0xbe, 0x26, 0x1a, 0x38, 0xdd, 0xdd,
- 0x23, 0x67, 0xa8, 0xd5, 0x1e, 0x66, 0xd4, 0x49, 0x3d, 0xb6, 0xb1, 0xf3,
- 0xb8, 0x03, 0x82, 0x78, 0x5d, 0xdc, 0x09, 0x43, 0x62, 0xa3, 0xb0, 0x43,
- 0x50, 0x2e, 0xc7, 0xec, 0xf7, 0xbb, 0xbf, 0x02, 0x45, 0xf4, 0x68, 0x28,
- 0x2b, 0x88, 0x7f, 0x3f, 0x64, 0x77, 0x62, 0x56, 0x34, 0xbf, 0xd1, 0x92,
- 0x7a, 0xeb, 0x6c, 0x9f, 0x4c, 0x9e, 0x7b, 0x2b, 0xf4, 0xe3, 0x01, 0x92,
- 0x45, 0x10, 0x43, 0xfd, 0xf3, 0xaf, 0xbb, 0x0e, 0xe3, 0xcb, 0x1e, 0x31,
- 0x10, 0x92, 0x31, 0x45, 0x83, 0x1e, 0x39, 0x40, 0x85, 0xf9, 0xbb, 0x24,
- 0x2f, 0x23, 0xaf, 0x19, 0xd4, 0x9e, 0x16, 0x56, 0x1e, 0x19, 0x71, 0x5c,
- 0x26, 0xc5, 0xca, 0x76, 0x17, 0x7e, 0x5a, 0xce, 0x83, 0x8b, 0xae, 0xa5,
- 0xb5, 0x92, 0x30, 0xbf, 0x27, 0x97, 0x1b, 0x69, 0x72, 0xe2, 0xc9, 0x64,
- 0x11, 0xba, 0x7b, 0x16, 0xac, 0x40, 0x4d, 0xb2, 0x97, 0xbb, 0x16, 0xf1,
- 0x26, 0xbf, 0x48, 0xf1, 0x18, 0x34, 0x34, 0x16, 0x93, 0xc6, 0x89, 0x13,
- 0x77, 0x63, 0xb2, 0xbf, 0xd9, 0x58, 0x5d, 0x5b, 0xb3, 0xe3, 0xb0, 0x8d,
- 0xda, 0x55, 0x6b, 0xd9, 0x47, 0x0d, 0x87, 0xab, 0x72, 0x15, 0xce, 0x25,
- 0xbb, 0x2f, 0x74, 0xb8, 0x71, 0x74, 0x8c, 0xd8, 0x50, 0x25, 0xc9, 0x85,
- 0xa3, 0xac, 0xd4, 0x5d, 0x4f, 0xb4, 0x07, 0x35, 0x74, 0xe0, 0x2d, 0xc9,
- 0x20, 0xb6, 0x15, 0x6a, 0x78, 0xe4, 0xf3, 0x93, 0x5f, 0x63, 0xe9, 0x94,
- 0x76, 0xe8, 0x86, 0xe6, 0x2d, 0x6d, 0xc9, 0xbd, 0x65, 0x81, 0x7f, 0x0b,
- 0x58, 0x72, 0xff, 0x25, 0x42, 0x8d, 0x1e, 0x79, 0x59, 0x0a, 0xa4, 0x80,
- 0x52, 0x71, 0xd4, 0x91, 0xf4, 0x82, 0x8c, 0x34, 0x49, 0x1a, 0x9e, 0xdf,
- 0x3d, 0x48, 0x9b, 0x53, 0xe9, 0x43, 0x95, 0x36, 0x4f, 0x93, 0x0b, 0x54,
- 0x9d, 0x2e, 0x81, 0x18, 0x1e, 0xde, 0x20, 0xf0, 0x89, 0x69, 0x17, 0xbe,
- 0x82, 0x7c, 0xfa, 0x81, 0x73, 0x49, 0x2e, 0xba, 0xda, 0x86, 0x4d, 0xa1,
- 0xe2, 0xf4, 0xbf, 0xc8, 0x16, 0x90, 0x22, 0x09, 0x3f, 0x06, 0x68, 0x12,
- 0x57, 0x73, 0x5e, 0x38, 0xab, 0x6d, 0xd4, 0xc4, 0x60, 0xc6, 0xfa, 0xfe,
- 0xe5, 0xab, 0xb7, 0xc9, 0x26, 0xc4, 0xef, 0xae, 0x86, 0xab, 0x77, 0xfb,
- 0x76, 0xd6, 0x4c, 0xb7, 0x97, 0x1f, 0xf2, 0x6d, 0xa3, 0x69, 0xce, 0xce,
- 0xb7, 0xac, 0x06, 0x45, 0xdd, 0x81, 0x0a, 0xad, 0x56, 0xaa, 0x6a, 0x29,
- 0xe9, 0xa5, 0x81, 0xb9, 0xdc, 0xe9, 0xa9, 0x8c, 0x47, 0x60, 0x15, 0x54,
- 0xf1, 0xb0, 0x10, 0x41, 0x93, 0x3f, 0x11, 0x06, 0xa2, 0xf3, 0x8c, 0xdc,
- 0x90, 0x19, 0xfb, 0x51, 0x8c, 0x82, 0xdd, 0x3d, 0xab, 0x9c, 0x88, 0x26,
- 0x56, 0x1c, 0xb6, 0xde, 0xa8, 0x71, 0x53, 0xee, 0x0a, 0x27, 0xfa, 0x0e,
- 0x91, 0xf7, 0x86, 0x45, 0x59, 0xe2, 0x3e, 0x9a, 0xc1, 0x06, 0x18, 0x09,
- 0x60, 0x36, 0xb2, 0xea, 0x78, 0x7b, 0x90, 0xd8, 0x4c, 0x3f, 0xb3, 0xca,
- 0x9c, 0xd0, 0x6a, 0xbd, 0xb4, 0x86, 0xc4, 0x2e, 0x56, 0xb5, 0x35, 0x62,
- 0xa6, 0x76, 0xbf, 0xc6, 0x31, 0x6e, 0xea, 0x6d, 0xa7, 0x15, 0xb8, 0x8c,
- 0x60, 0x4c, 0x27, 0xcb, 0x57, 0xd5, 0x65, 0x50, 0xb4, 0x55, 0x83, 0x9f,
- 0x06, 0x89, 0x97, 0x29, 0xd6, 0x4a, 0x18, 0x13, 0x33, 0x8f, 0xba, 0xbe,
- 0xe4, 0x06, 0x30, 0xd7, 0xb1, 0x3d, 0xc3, 0xb3, 0x6c, 0x9e, 0x2f, 0x72,
- 0x52, 0xbc, 0xfc, 0x21, 0x8c, 0x62, 0xde, 0x6c, 0x37, 0xa4, 0x9f, 0xc2,
- 0x21, 0x69, 0xfe, 0x65, 0x8a, 0xaf, 0xcd, 0x90, 0xc8, 0x1c, 0xc6, 0x51,
- 0xb5, 0x71, 0x95, 0xb9, 0x3d, 0x20, 0x9b, 0xc1, 0xb9, 0x26, 0xc6, 0xc1,
- 0x9e, 0xa5, 0x3e, 0x39, 0xde, 0xd9, 0x43, 0xf4, 0xd0, 0x33, 0x53, 0x4b,
- 0x96, 0x1f, 0xa6, 0xf5, 0xee, 0x6e, 0xf7, 0x96, 0xab, 0x1d, 0x45, 0x89,
- 0xf2, 0x9e, 0x5a, 0xc2, 0x7c, 0xf7, 0xf6, 0x55, 0xb2, 0x89, 0x9c, 0xfe,
- 0xa7, 0x8f, 0x77, 0xf7, 0xb6, 0xfc, 0x28, 0x28, 0x65, 0x00, 0xe1, 0xa5,
- 0x79, 0x47, 0x56, 0x29, 0xff, 0x00, 0x22, 0x0b, 0x47, 0xc4, 0x0d, 0xd7,
- 0xf4, 0x2c, 0x83, 0xd9, 0x7d, 0x9c, 0xbc, 0x50, 0xfb, 0xfe, 0x79, 0x66,
- 0x06, 0x19, 0xac, 0xb8, 0x4b, 0xae, 0xe4, 0xd1, 0x1b, 0xfd, 0xc8, 0x8a,
- 0xc9, 0x88, 0x6f, 0x36, 0x34, 0xd0, 0xc8, 0xda, 0xf9, 0xa3, 0x16, 0xbf,
- 0x56, 0xda, 0x63, 0x06, 0xc2, 0xbc, 0x18, 0xf0, 0x80, 0x04, 0x8c, 0xa1,
- 0x32, 0x1c, 0xc8, 0xfb, 0xb2, 0x58, 0xc2, 0x7a, 0x6d, 0xac, 0x03, 0xa2,
- 0xa5, 0xba, 0x1b, 0x28, 0x63, 0x1a, 0xe0, 0x22, 0x29, 0xe8, 0x66, 0x4f,
- 0x5d, 0xa3, 0x76, 0xf5, 0x7d, 0x31, 0xa8, 0xdd, 0x6a, 0x68, 0x26, 0x27,
- 0xc2, 0x31, 0x62, 0x4b, 0xbc, 0xc9, 0x3f, 0xc8, 0xc2, 0xd4, 0x66, 0x9f,
- 0xb2, 0x3d, 0xd8, 0x7b, 0x31, 0x19, 0x9e, 0x67, 0x92, 0xc7, 0xc4, 0xfc,
- 0x36, 0xd5, 0xc7, 0x83, 0x7b, 0xdc, 0xbc, 0xbe, 0xad, 0x97, 0x10, 0xdd,
- 0x42, 0x6a, 0x6c, 0x64, 0xb3, 0x0f, 0xc2, 0xee, 0x61, 0xe6, 0xf9, 0x20,
- 0x56, 0x1e, 0x92, 0x88, 0x6d, 0xa4, 0x51, 0x68, 0x28, 0xd6, 0x8b, 0x7f,
- 0x44, 0xf9, 0x71, 0x1d, 0x7d, 0x1d, 0x8b, 0xe0, 0x5d, 0x78, 0x63, 0x17,
- 0x64, 0x4a, 0x1c, 0x2f, 0x6e, 0xc6, 0x06, 0xa5, 0xb2, 0x6d, 0xfd, 0xa3,
- 0x78, 0x60, 0xcc, 0x9c, 0x46, 0x2c, 0xf0, 0x57, 0x71, 0xc0, 0x7b, 0x0c,
- 0x4e, 0x87, 0xc1, 0x8d, 0x5d, 0x5b, 0x61, 0xc8, 0xc9, 0x6a, 0xe4, 0xe9,
- 0xa2, 0x85, 0x0b, 0xd5, 0x99, 0x8a, 0x83, 0xff, 0x39, 0x04, 0xa3, 0x73,
- 0x36, 0xd9, 0xaa, 0x63, 0x8e, 0xcb, 0xe6, 0xb1, 0x24, 0x33, 0x9c, 0x7e,
- 0xf5, 0x83, 0x72, 0xcb, 0x98, 0xf6, 0x4e, 0x56, 0xa8, 0xbf, 0xda, 0xb8,
- 0x05, 0xa3, 0x4e, 0x20, 0xaa, 0x32, 0x97, 0xd8, 0x64, 0xb6, 0x11, 0x51,
- 0xfc, 0xc6, 0x96, 0x8b, 0xbc, 0xc5, 0x52, 0x0f, 0x9e, 0xd3, 0x77, 0x5d,
- 0x47, 0x93, 0x24, 0xb5, 0x7e, 0xfe, 0x13, 0x7f, 0xcd, 0x3c, 0xd6, 0xfc,
- 0xd5, 0x5c, 0xad, 0x16, 0xe7, 0x66, 0x3f, 0x8b, 0xe6, 0xf3, 0x41, 0xc2,
- 0xc1, 0x01, 0x17, 0xb2, 0x9e, 0x6b, 0x74, 0xce, 0x5c, 0x03, 0x0e, 0xd4,
- 0xb0, 0xd8, 0x5a, 0x35, 0x1e, 0x9d, 0xa6, 0x71, 0x7b, 0x21, 0xb0, 0xc9,
- 0x80, 0x0d, 0xd9, 0x81, 0xa8, 0xf7, 0xce, 0x90, 0xe7, 0x4f, 0xaf, 0xff,
- 0xf6, 0xd3, 0xb3, 0xfd, 0x47, 0xe9, 0xd3, 0x74, 0xfa, 0xe4, 0xe2, 0xd3,
- 0xf4, 0xf1, 0xec, 0xf1, 0xd3, 0x67, 0x7b, 0x9f, 0x3e, 0x4e, 0x9f, 0x3e,
- 0xba, 0x48, 0x9f, 0xec, 0x66, 0xbb, 0xcf, 0x2e, 0xf6, 0xf6, 0x67, 0xb3,
- 0x8b, 0xec, 0xd3, 0xd9, 0xd3, 0x74, 0x30, 0x26, 0xdd, 0x4b, 0x87, 0x1e,
- 0xb2, 0x5a, 0xf5, 0xba, 0xa5, 0xc9, 0xe4, 0x9b, 0x17, 0xa3, 0xdd, 0xe4,
- 0x2a, 0xbb, 0xd5, 0x03, 0xd6, 0x8e, 0x07, 0x01, 0xba, 0x0c, 0x4d, 0xa7,
- 0x7f, 0xb2, 0x8a, 0xeb, 0x82, 0xe8, 0x7e, 0x18, 0x4a, 0x48, 0x02, 0xe6,
- 0x55, 0xd4, 0x65, 0xe5, 0x18, 0x50, 0x6b, 0x3c, 0x3c, 0x50, 0x83, 0x3d,
- 0xe6, 0xd5, 0x3d, 0xfc, 0xc7, 0xc8, 0x95, 0x7c, 0x9d, 0x4e, 0xaf, 0x28,
- 0x7d, 0x56, 0x1e, 0x9c, 0xb0, 0x77, 0x74, 0x98, 0xc8, 0x2f, 0x30, 0x11,
- 0x7b, 0x6d, 0x7c, 0x5d, 0x95, 0xab, 0xe5, 0x69, 0x39, 0xcf, 0xa7, 0x77,
- 0xeb, 0x9a, 0xf3, 0x1f, 0x6b, 0x7d, 0x71, 0xc4, 0x2c, 0x3c, 0xaf, 0xb3,
- 0x3f, 0x50, 0xaf, 0x72, 0xec, 0xf8, 0x5e, 0xc5, 0x6a, 0x34, 0xcd, 0x97,
- 0x57, 0x08, 0x4c, 0x78, 0x4e, 0xe1, 0xa8, 0x70, 0xca, 0xf0, 0x07, 0x71,
- 0x85, 0x6a, 0x22, 0xc7, 0xb1, 0x96, 0xcd, 0xd4, 0xb7, 0x45, 0xdc, 0xca,
- 0x35, 0x4f, 0x59, 0x0d, 0x54, 0x12, 0x02, 0x9d, 0x07, 0x16, 0x3c, 0xd7,
- 0x11, 0x1f, 0x75, 0x15, 0xb5, 0xd9, 0x6c, 0x21, 0x5f, 0x8d, 0x25, 0xdf,
- 0x75, 0xb5, 0x64, 0xdd, 0x82, 0x2c, 0xf9, 0xfc, 0x5d, 0xf7, 0x94, 0x61,
- 0xf0, 0x42, 0x2e, 0x9c, 0x2d, 0x6d, 0x96, 0xf3, 0xdd, 0xdb, 0xe3, 0x83,
- 0xee, 0x22, 0x25, 0x40, 0x7d, 0xa8, 0x0f, 0xb6, 0xb7, 0xc9, 0xd9, 0x53,
- 0x67, 0xdb, 0xb3, 0x72, 0x5a, 0x6f, 0xd7, 0xf5, 0x5c, 0x17, 0x82, 0x50,
- 0x58, 0x7e, 0x4f, 0x13, 0x6e, 0xb9, 0x20, 0x76, 0x95, 0xcd, 0x46, 0x75,
- 0x1d, 0x04, 0xb1, 0x21, 0x95, 0x8c, 0xa3, 0x64, 0x8e, 0x24, 0x70, 0x92,
- 0xee, 0xb7, 0x91, 0x59, 0x58, 0x64, 0x7f, 0xe9, 0xcb, 0xb4, 0xb2, 0xd6,
- 0x0f, 0x6e, 0x03, 0xc8, 0x86, 0x11, 0xf1, 0x2b, 0x15, 0x46, 0xfd, 0x57,
- 0xdf, 0x8a, 0x03, 0x31, 0xba, 0xac, 0x6c, 0xda, 0x32, 0xc1, 0x31, 0xac,
- 0x0d, 0x35, 0x7d, 0xd2, 0xb1, 0x7a, 0xd8, 0x49, 0xc4, 0x9d, 0xfe, 0x6a,
- 0xf9, 0x4a, 0x13, 0xf7, 0xa4, 0x33, 0x03, 0x75, 0x21, 0xc4, 0x5c, 0xdc,
- 0x48, 0xbd, 0x2e, 0xcf, 0x96, 0xa5, 0xbd, 0xb6, 0xa7, 0x10, 0xb9, 0xe3,
- 0xdc, 0x81, 0x9f, 0x93, 0x3e, 0x4e, 0xbe, 0xe1, 0x58, 0x92, 0xee, 0xfd,
- 0x2a, 0x88, 0x3f, 0xbd, 0x91, 0x99, 0x3d, 0xfb, 0xdc, 0x67, 0x65, 0x4b,
- 0x56, 0x85, 0xf3, 0x8e, 0x24, 0x21, 0x77, 0xd5, 0xbc, 0x76, 0xe7, 0x2b,
- 0xaa, 0x32, 0xce, 0xc7, 0x36, 0x92, 0x46, 0x55, 0x95, 0x9e, 0xe8, 0x3b,
- 0xfa, 0x96, 0x54, 0x50, 0x73, 0x87, 0xe6, 0x97, 0xea, 0x81, 0xef, 0x09,
- 0x1b, 0xc5, 0x05, 0xd7, 0x20, 0x1c, 0x5f, 0x51, 0xbd, 0x4a, 0xca, 0x67,
- 0x93, 0xa0, 0x29, 0x09, 0x2c, 0xe1, 0x28, 0x37, 0x31, 0x32, 0xb4, 0xb1,
- 0x76, 0x3c, 0xc8, 0x1d, 0xff, 0x71, 0x44, 0x07, 0xda, 0xc0, 0x20, 0x34,
- 0x2f, 0x46, 0x0e, 0x2f, 0x5e, 0x93, 0xd2, 0xf9, 0x73, 0x8e, 0xa6, 0xea,
- 0xea, 0x84, 0x14, 0x42, 0x6e, 0x25, 0xc3, 0x18, 0x32, 0x51, 0x77, 0x3e,
- 0x36, 0x99, 0x44, 0x96, 0x37, 0x27, 0xa4, 0xac, 0x94, 0x32, 0x55, 0x62,
- 0x02, 0x40, 0xe9, 0xf9, 0x71, 0xd1, 0x60, 0x78, 0x33, 0x36, 0x36, 0x12,
- 0x58, 0xa1, 0x25, 0x48, 0x6c, 0x30, 0xac, 0xca, 0x5c, 0x8e, 0xc8, 0xa1,
- 0x00, 0x22, 0xda, 0xbc, 0x74, 0x62, 0x98, 0x64, 0xe3, 0x22, 0x4e, 0x6a,
- 0x1c, 0x70, 0x77, 0x5c, 0x36, 0x7e, 0xd8, 0x7f, 0x2d, 0xb9, 0x0d, 0xfc,
- 0x19, 0x91, 0xdf, 0xb9, 0xba, 0xd1, 0x1d, 0xe3, 0xc3, 0xfe, 0xc5, 0x0c,
- 0x48, 0x92, 0x67, 0xc2, 0xd8, 0x34, 0x39, 0x21, 0x2f, 0x09, 0x4e, 0x0f,
- 0xe7, 0xcc, 0xa8, 0xf1, 0xbb, 0x2e, 0x25, 0x10, 0x19, 0x03, 0xc5, 0x38,
- 0x79, 0x8c, 0x5d, 0xca, 0xb2, 0x18, 0x3c, 0x2d, 0x95, 0x25, 0xad, 0x5d,
- 0xf6, 0x49, 0x1d, 0x3a, 0x34, 0xdd, 0x62, 0xc6, 0x74, 0xdc, 0x20, 0x8d,
- 0x87, 0x06, 0x52, 0x65, 0xda, 0x43, 0x51, 0x76, 0x07, 0xa5, 0xe3, 0x88,
- 0x85, 0x58, 0x6b, 0xb6, 0x8a, 0x37, 0x00, 0xcd, 0x5a, 0xb1, 0xbb, 0x1c,
- 0xd5, 0xfc, 0xd8, 0xe3, 0xa4, 0x8f, 0x24, 0x4e, 0x1b, 0x75, 0xdb, 0x48,
- 0x56, 0x09, 0x49, 0x03, 0xa5, 0xa1, 0x1f, 0x60, 0x4c, 0x9f, 0x6d, 0xc5,
- 0x4c, 0xc9, 0xae, 0x25, 0xa5, 0x28, 0x80, 0x4f, 0xcc, 0xcb, 0x5a, 0x5d,
- 0x34, 0x10, 0x41, 0x18, 0x2a, 0x49, 0x92, 0x98, 0xf1, 0x01, 0x6f, 0x4d,
- 0xa7, 0x39, 0x7e, 0x6a, 0xa8, 0xb1, 0xe0, 0x4e, 0x24, 0x11, 0x8d, 0xd6,
- 0xe1, 0x3b, 0x81, 0xd1, 0x58, 0x9d, 0xf3, 0x20, 0xf9, 0xe9, 0xa7, 0x61,
- 0x62, 0x54, 0xe9, 0x4e, 0x73, 0x3f, 0x35, 0xe6, 0x53, 0x43, 0x8b, 0x3f,
- 0x71, 0xfa, 0xdd, 0x4f, 0xd7, 0x50, 0x15, 0x61, 0x83, 0xae, 0xe7, 0x70,
- 0x30, 0xb1, 0x30, 0xde, 0xb6, 0xdd, 0x31, 0x8c, 0x15, 0x41, 0xd5, 0xc4,
- 0x83, 0x0e, 0xfb, 0x57, 0x94, 0x23, 0x8e, 0xb1, 0x83, 0xab, 0x45, 0x91,
- 0x88, 0x56, 0xc3, 0xe4, 0x4a, 0x9c, 0x80, 0xee, 0x91, 0x8d, 0x3f, 0x6d,
- 0x38, 0xd2, 0x1a, 0x46, 0x0c, 0x49, 0x55, 0xc6, 0x42, 0x02, 0x5d, 0x75,
- 0xb9, 0x77, 0xcd, 0x29, 0x04, 0x14, 0xa9, 0xa9, 0xec, 0x62, 0x0d, 0x6f,
- 0x94, 0x13, 0x98, 0xe7, 0x39, 0xe7, 0xb1, 0x74, 0x0a, 0x28, 0x72, 0x3f,
- 0x97, 0x57, 0x77, 0x35, 0x58, 0xba, 0x8c, 0x25, 0x38, 0x4d, 0xbd, 0x31,
- 0xf4, 0x7a, 0xe4, 0x49, 0x55, 0x33, 0x9c, 0xb0, 0xc5, 0x47, 0xcd, 0x60,
- 0x36, 0x46, 0x1b, 0xa4, 0x14, 0x90, 0xf3, 0x4c, 0x2c, 0x74, 0x55, 0x98,
- 0x2b, 0x62, 0xf3, 0x0f, 0x5c, 0x8c, 0x6d, 0xd0, 0x65, 0xcb, 0x78, 0x59,
- 0xb6, 0xe2, 0x7a, 0x1d, 0x4c, 0x19, 0x12, 0x94, 0xc3, 0xe1, 0x0f, 0x23,
- 0x66, 0x2a, 0xc9, 0x8b, 0xb4, 0xef, 0xe6, 0x8d, 0xe7, 0x4d, 0x1a, 0x8d,
- 0x08, 0x3a, 0x72, 0xc9, 0x70, 0x8f, 0x9c, 0x96, 0x4b, 0x49, 0x89, 0x00,
- 0x0f, 0xac, 0xe1, 0xe1, 0x08, 0xf8, 0xaf, 0x86, 0xbc, 0x36, 0x16, 0xf7,
- 0x10, 0x67, 0x1e, 0xc0, 0x83, 0x37, 0x85, 0x40, 0xc3, 0x4d, 0x4a, 0x32,
- 0xe7, 0x4c, 0x29, 0xf2, 0x81, 0x62, 0x6c, 0x24, 0x65, 0x32, 0xd4, 0x1d,
- 0x71, 0x0d, 0x06, 0xc2, 0x13, 0xc6, 0xf4, 0x19, 0x03, 0x67, 0x05, 0x22,
- 0xd4, 0xa0, 0xfb, 0xf0, 0xf7, 0x36, 0x4a, 0x82, 0x90, 0x95, 0xc4, 0x23,
- 0x64, 0xba, 0xdf, 0x94, 0xa8, 0xbb, 0xd1, 0x3f, 0x38, 0xf8, 0x8d, 0xd3,
- 0x15, 0x35, 0xfa, 0x7c, 0x2b, 0xe1, 0x10, 0xf8, 0x3a, 0x12, 0x07, 0xe0,
- 0x62, 0xb2, 0xbc, 0xb5, 0x75, 0x51, 0x4d, 0x39, 0xd9, 0xbb, 0xe9, 0x22,
- 0xe3, 0x8b, 0xcf, 0x7b, 0x3a, 0x70, 0xdc, 0xeb, 0xdb, 0xc8, 0xa7, 0x42,
- 0x7f, 0x62, 0xc3, 0xd6, 0x5b, 0xc4, 0x1e, 0xee, 0xe5, 0x9c, 0x70, 0x18,
- 0x35, 0x91, 0x8b, 0x64, 0xa9, 0x60, 0x61, 0x76, 0xb7, 0x28, 0xec, 0x96,
- 0xfc, 0x80, 0x88, 0xc9, 0xfa, 0xe6, 0xe4, 0xf5, 0x51, 0xdc, 0xae, 0x0a,
- 0x0e, 0x9f, 0x35, 0xdd, 0xf7, 0xf7, 0xdc, 0xfb, 0x3f, 0xbc, 0xfc, 0xfa,
- 0xfd, 0xe1, 0xc9, 0x9b, 0xaf, 0x5e, 0x7d, 0x7d, 0x6f, 0x2b, 0xc9, 0xa6,
- 0x8a, 0x68, 0xdd, 0x10, 0x8c, 0xf1, 0xd3, 0xfd, 0xf1, 0xce, 0x56, 0xb7,
- 0x97, 0x7d, 0xd7, 0xcb, 0xc7, 0x0e, 0xf0, 0xd1, 0x96, 0x21, 0xff, 0x62,
- 0x24, 0x31, 0x5c, 0x07, 0x24, 0xec, 0x5f, 0x66, 0xcd, 0xf2, 0x66, 0x95,
- 0xcf, 0x38, 0xd1, 0x42, 0x44, 0xa4, 0xab, 0x52, 0xa3, 0xac, 0x60, 0x59,
- 0xe8, 0x36, 0xf3, 0x78, 0x4b, 0x83, 0x2d, 0xb8, 0x89, 0x17, 0xa7, 0xa7,
- 0x2f, 0x5f, 0x9c, 0xbd, 0xe8, 0xe9, 0xf4, 0x49, 0xe7, 0xe9, 0xc1, 0xbb,
- 0xc9, 0xd1, 0xdb, 0xd3, 0xb7, 0x27, 0xc0, 0xc2, 0xd9, 0x99, 0xab, 0x7b,
- 0xf0, 0x65, 0xda, 0xa4, 0x83, 0x9e, 0x16, 0x9e, 0x6e, 0x81, 0xe9, 0x24,
- 0x1a, 0x7b, 0xa6, 0x7e, 0xce, 0x2a, 0x63, 0xfd, 0x3f, 0x19, 0x83, 0x3e,
- 0xab, 0xa9, 0x50, 0x42, 0xd1, 0x9a, 0xc1, 0x30, 0x34, 0x05, 0x33, 0x61,
- 0x12, 0x9d, 0x94, 0x8e, 0x4d, 0x69, 0x60, 0x99, 0x1a, 0x57, 0xe6, 0x46,
- 0xef, 0xce, 0xa6, 0xab, 0x46, 0xc9, 0x9a, 0x28, 0x08, 0x18, 0x5b, 0xdd,
- 0x6d, 0x42, 0x32, 0xdb, 0x88, 0x92, 0x28, 0x45, 0x9b, 0xc7, 0xdd, 0xa2,
- 0xbe, 0x15, 0x3e, 0xe4, 0x04, 0xf2, 0x66, 0xd6, 0x97, 0x02, 0xfd, 0xed,
- 0x68, 0xc5, 0x92, 0x13, 0x6a, 0xcb, 0xe4, 0x69, 0x21, 0xc8, 0x37, 0x1e,
- 0x52, 0xc0, 0xc3, 0xfe, 0x64, 0x4e, 0xdc, 0x28, 0x39, 0x92, 0x7c, 0x4d,
- 0x9a, 0xb6, 0xf9, 0x20, 0x78, 0xa8, 0xb1, 0x9a, 0x85, 0xb0, 0xf2, 0x38,
- 0x23, 0xf0, 0x90, 0x10, 0x07, 0x5d, 0xfd, 0x8e, 0xb3, 0xb2, 0xcd, 0x43,
- 0x18, 0x34, 0x96, 0x5c, 0xe0, 0x2d, 0xc3, 0x20, 0xa8, 0x51, 0x7a, 0x09,
- 0x0a, 0xfc, 0x0c, 0xd0, 0x2a, 0x48, 0x65, 0xc0, 0x5f, 0xdb, 0xbb, 0xe3,
- 0x9d, 0x41, 0x38, 0x78, 0x1c, 0x75, 0x41, 0x84, 0x10, 0x47, 0x1b, 0x18,
- 0x5d, 0x53, 0x96, 0xf7, 0x8e, 0x8f, 0x99, 0x94, 0x11, 0x46, 0x97, 0xa6,
- 0xfd, 0xe8, 0x50, 0x46, 0x27, 0xc1, 0x5d, 0x87, 0x48, 0xde, 0x4a, 0x39,
- 0x9e, 0x61, 0x78, 0x45, 0x49, 0x78, 0x12, 0x86, 0xe0, 0xe6, 0xf3, 0x16,
- 0xe8, 0xe8, 0x20, 0xbe, 0xcc, 0x05, 0x81, 0xfd, 0x66, 0xdd, 0xd5, 0x5e,
- 0x93, 0x2e, 0xe7, 0x0b, 0x73, 0x36, 0x00, 0x96, 0xd4, 0x4b, 0x4b, 0x05,
- 0xee, 0x73, 0xe1, 0x82, 0x11, 0x4c, 0xa7, 0xba, 0xad, 0xac, 0x91, 0x36,
- 0x3e, 0x42, 0x33, 0x10, 0x41, 0x9f, 0x33, 0xd0, 0x42, 0xa0, 0xe1, 0xbf,
- 0x4e, 0x6f, 0xf3, 0xc5, 0x6a, 0xc1, 0xa0, 0x0f, 0x6c, 0x9a, 0x91, 0x27,
- 0xf5, 0xd6, 0x83, 0xe9, 0x86, 0x23, 0x56, 0xb0, 0xa9, 0x1b, 0xb5, 0xa7,
- 0xe8, 0x47, 0x6e, 0x10, 0x73, 0xe3, 0xaa, 0x92, 0x2a, 0xf9, 0xae, 0x8b,
- 0xbc, 0xa9, 0x3b, 0x06, 0x02, 0x73, 0xf3, 0xa7, 0x08, 0x40, 0x00, 0xd4,
- 0x64, 0x6e, 0x7d, 0x68, 0x11, 0x86, 0xcd, 0x50, 0x76, 0x2a, 0xb1, 0x79,
- 0x01, 0xac, 0x59, 0x95, 0x97, 0x33, 0x7b, 0x6c, 0x20, 0x2d, 0xe6, 0xc5,
- 0xca, 0x2c, 0x34, 0xdb, 0x97, 0x1b, 0xfd, 0x26, 0x30, 0x1a, 0x52, 0x6a,
- 0xc8, 0x84, 0x12, 0x7e, 0x34, 0x24, 0xf5, 0xe9, 0x78, 0x7f, 0x0f, 0x90,
- 0x4b, 0xbe, 0x0e, 0x28, 0x88, 0x7f, 0xd0, 0x34, 0xf3, 0x85, 0x4d, 0x97,
- 0x1e, 0xff, 0x61, 0xb6, 0x1c, 0x8a, 0x10, 0x5f, 0xa4, 0xb7, 0xb4, 0x7d,
- 0xd1, 0x6d, 0x2d, 0x93, 0xe7, 0xdf, 0x9c, 0x4c, 0xce, 0x76, 0x0f, 0x4e,
- 0x4f, 0xde, 0x9a, 0x9f, 0xf8, 0x7d, 0x8f, 0x7e, 0xdf, 0x0b, 0x54, 0xc8,
- 0xaf, 0x24, 0xa2, 0x56, 0x13, 0xce, 0x5c, 0x66, 0xa3, 0x60, 0xd1, 0x79,
- 0x0d, 0x41, 0x08, 0x07, 0x17, 0xd4, 0xcd, 0x8a, 0x18, 0x98, 0xbd, 0xae,
- 0x34, 0xe8, 0x6e, 0x9c, 0x84, 0x81, 0x7d, 0x79, 0xa3, 0x72, 0x92, 0x80,
- 0x38, 0x28, 0x40, 0x44, 0x57, 0x3d, 0xe7, 0x34, 0x7c, 0x49, 0x31, 0x53,
- 0xc0, 0x71, 0x8a, 0x15, 0x6b, 0x7f, 0x35, 0x9d, 0x1b, 0x51, 0x3e, 0x43,
- 0x6c, 0xc9, 0x2c, 0x63, 0x9f, 0x0b, 0x3e, 0x89, 0x69, 0x21, 0x92, 0xc1,
- 0x56, 0x31, 0x1c, 0x58, 0x67, 0x64, 0x44, 0x95, 0xea, 0xea, 0x31, 0xe3,
- 0x49, 0x09, 0x92, 0x49, 0x32, 0xb3, 0x82, 0x8c, 0x01, 0x8a, 0x84, 0xf5,
- 0x2d, 0x5b, 0x0a, 0x67, 0xf7, 0xe6, 0xe4, 0x2c, 0x49, 0x2f, 0x2e, 0x38,
- 0x65, 0x39, 0x63, 0xf4, 0x4c, 0x88, 0xa3, 0xdb, 0x0c, 0xdb, 0x24, 0x1e,
- 0xba, 0x30, 0x94, 0x43, 0x24, 0x8e, 0xb3, 0xe3, 0xc9, 0x36, 0x0c, 0x5b,
- 0x1c, 0x14, 0x37, 0x79, 0xf3, 0x6a, 0xd8, 0x32, 0x5f, 0xfb, 0xa1, 0x30,
- 0x5b, 0x50, 0x73, 0x04, 0xfb, 0xb6, 0xbb, 0x76, 0xcb, 0xa5, 0xbd, 0x11,
- 0x2d, 0xac, 0xdd, 0x38, 0x19, 0xd0, 0x86, 0x0e, 0x58, 0x80, 0x1c, 0xd0,
- 0xbe, 0x0e, 0x2c, 0x20, 0x82, 0x6c, 0x3d, 0x50, 0x2b, 0xef, 0xc2, 0x64,
- 0x67, 0xb2, 0x5c, 0x00, 0xdb, 0x07, 0x52, 0xd0, 0x00, 0x3a, 0x08, 0x26,
- 0x46, 0x93, 0x1a, 0x48, 0xc3, 0x7b, 0xdc, 0x30, 0xb5, 0x6b, 0x7e, 0x47,
- 0xb3, 0x44, 0xb4, 0xe7, 0x59, 0x2c, 0xdc, 0x9f, 0xfa, 0x71, 0x4d, 0xdb,
- 0xb6, 0xcd, 0xc0, 0xc8, 0x53, 0xc1, 0x4f, 0x29, 0x71, 0x18, 0xee, 0x82,
- 0x60, 0x86, 0xfc, 0x12, 0xa1, 0x03, 0xdd, 0xf4, 0x47, 0x37, 0x90, 0xc0,
- 0x68, 0x65, 0x98, 0xb5, 0xf9, 0x76, 0xe0, 0xd9, 0x0d, 0x9a, 0x20, 0x60,
- 0x9f, 0xc2, 0x48, 0x2b, 0xd5, 0x56, 0x74, 0x40, 0xc0, 0x73, 0x69, 0x22,
- 0x42, 0x7a, 0xcd, 0xc1, 0x77, 0xb8, 0x75, 0xac, 0x53, 0x48, 0xd3, 0xd7,
- 0xf4, 0x20, 0x11, 0x48, 0xa9, 0x80, 0xbb, 0xf1, 0xd2, 0xb2, 0x27, 0xa9,
- 0xdb, 0x1c, 0xa3, 0x6b, 0xa7, 0x30, 0x6a, 0x71, 0x16, 0xc8, 0x60, 0x77,
- 0xef, 0xe9, 0x78, 0xc7, 0xfc, 0xcf, 0xec, 0x8b, 0x18, 0x25, 0x08, 0xce,
- 0xd7, 0x81, 0xb6, 0xda, 0x27, 0xb3, 0xdb, 0x2e, 0x49, 0xf2, 0x05, 0x54,
- 0x56, 0x97, 0x83, 0xf1, 0x83, 0x2f, 0x15, 0x6c, 0xa4, 0xbd, 0x50, 0xd2,
- 0x99, 0x7c, 0xa2, 0x67, 0xbc, 0x5a, 0xcd, 0x23, 0x61, 0x7e, 0x9e, 0x65,
- 0x19, 0x79, 0x53, 0xf3, 0x6b, 0x16, 0xba, 0x47, 0xdf, 0x80, 0x37, 0x71,
- 0xda, 0xd6, 0xb8, 0x15, 0x24, 0xf5, 0xac, 0x65, 0x2e, 0x3c, 0x14, 0x95,
- 0x8c, 0x18, 0xf3, 0xc8, 0x9c, 0x86, 0xe7, 0xe5, 0xc5, 0x85, 0x91, 0xd6,
- 0xba, 0x17, 0xd0, 0xa1, 0x3c, 0xb2, 0xfd, 0x56, 0x50, 0xe9, 0x6d, 0xfe,
- 0x4d, 0x1b, 0x31, 0x35, 0x49, 0x9b, 0x36, 0xd7, 0xe2, 0xe6, 0xc6, 0xb1,
- 0x24, 0xb6, 0xd6, 0x13, 0x1c, 0x5e, 0xc0, 0xc4, 0x48, 0xd0, 0x0e, 0x01,
- 0x54, 0x91, 0x9f, 0x41, 0xde, 0x3d, 0x12, 0x1f, 0xf2, 0xe5, 0x12, 0x2a,
- 0x0c, 0x81, 0x50, 0x5b, 0x74, 0x34, 0xb4, 0x46, 0x8e, 0x5d, 0x46, 0x4a,
- 0x94, 0xd8, 0x41, 0xca, 0x2d, 0x53, 0x03, 0xdd, 0x79, 0x76, 0x11, 0xfa,
- 0x85, 0x38, 0xc8, 0xd1, 0x07, 0x65, 0x12, 0x30, 0x99, 0x19, 0xe0, 0x97,
- 0x8a, 0x94, 0x79, 0x0c, 0x2e, 0x16, 0x87, 0x57, 0x22, 0x09, 0xac, 0x31,
- 0xc5, 0xdc, 0xe5, 0x18, 0x5a, 0xa3, 0xdb, 0xe4, 0xd5, 0xff, 0x3c, 0x72,
- 0x10, 0xb1, 0x16, 0x83, 0x95, 0xd3, 0x5f, 0x62, 0xc9, 0x44, 0xc9, 0x60,
- 0x74, 0x98, 0x8c, 0x08, 0xc6, 0xce, 0x8b, 0x3d, 0x29, 0x3b, 0x26, 0x57,
- 0x12, 0xf5, 0x21, 0x47, 0x30, 0xb8, 0xd6, 0x36, 0x50, 0x2b, 0xc2, 0xab,
- 0x41, 0x0a, 0x0b, 0x08, 0xa6, 0x91, 0xe6, 0x19, 0xe2, 0x88, 0x34, 0x92,
- 0xfe, 0xe9, 0x67, 0xa1, 0xb0, 0xb4, 0xb8, 0x9d, 0x17, 0x90, 0x19, 0x49,
- 0x80, 0x09, 0x52, 0x34, 0x34, 0x97, 0x9b, 0xe1, 0x7a, 0x56, 0xcd, 0x1f,
- 0xe8, 0x4e, 0xa9, 0x08, 0xce, 0x15, 0x50, 0xe3, 0x1e, 0x51, 0x4f, 0x99,
- 0xa8, 0x51, 0x5f, 0x61, 0xf4, 0x77, 0xa3, 0x41, 0x3f, 0x57, 0x2b, 0x44,
- 0x0f, 0xaa, 0x85, 0x35, 0x58, 0x94, 0xe2, 0x3a, 0x21, 0xda, 0xb0, 0xc8,
- 0x4a, 0xba, 0xd6, 0x6c, 0x1d, 0xa1, 0x20, 0x49, 0x29, 0xde, 0xd0, 0x3d,
- 0xf3, 0x17, 0x8d, 0xe0, 0x09, 0x39, 0x08, 0x03, 0x97, 0x02, 0x3c, 0x86,
- 0xef, 0xca, 0x62, 0xe2, 0xa6, 0x24, 0x10, 0x51, 0x2b, 0x02, 0xf6, 0x1d,
- 0xdc, 0xb9, 0x79, 0x31, 0x62, 0x70, 0x00, 0x79, 0x90, 0xdc, 0x6b, 0x00,
- 0xd5, 0x16, 0x6a, 0xe4, 0xfd, 0x61, 0x3d, 0xbb, 0xd1, 0xfc, 0x40, 0xce,
- 0xb3, 0x45, 0x9f, 0x51, 0xe8, 0x49, 0x09, 0x4d, 0x30, 0xfa, 0x95, 0xed,
- 0x9d, 0x2c, 0x62, 0x1f, 0x8c, 0xfc, 0x5c, 0x0c, 0xf1, 0x39, 0xa5, 0x54,
- 0xeb, 0xea, 0x63, 0xb0, 0x4d, 0x56, 0xc4, 0xf2, 0xba, 0x5a, 0x26, 0x68,
- 0x79, 0xce, 0xb3, 0x92, 0xbc, 0xc9, 0x1a, 0x89, 0x25, 0xe1, 0xb1, 0x8b,
- 0xa3, 0x5b, 0xd2, 0xbd, 0xcc, 0x20, 0x42, 0xfc, 0x49, 0xd2, 0x9b, 0x5b,
- 0x68, 0x13, 0xe2, 0xd6, 0x65, 0x04, 0x63, 0x18, 0x3e, 0x87, 0xe6, 0x1c,
- 0x0c, 0xd4, 0x08, 0xcb, 0xc3, 0x8f, 0x73, 0x04, 0x1d, 0x90, 0x03, 0x1a,
- 0x8e, 0x72, 0xe1, 0x08, 0x40, 0x8a, 0x24, 0x3d, 0x01, 0xb9, 0x8e, 0xe2,
- 0xb7, 0x18, 0x11, 0x9f, 0xe6, 0xa0, 0xa1, 0x2c, 0xb1, 0x2c, 0x43, 0x2f,
- 0x39, 0x1a, 0x51, 0x35, 0xd5, 0xcc, 0xc2, 0x14, 0xc8, 0x40, 0x0d, 0x17,
- 0x16, 0xbd, 0xe8, 0x26, 0x25, 0x52, 0xb3, 0x5d, 0xc4, 0x72, 0x21, 0xbc,
- 0x90, 0xc8, 0xd1, 0xb9, 0x23, 0x67, 0x87, 0xfe, 0x14, 0x8d, 0x5c, 0x92,
- 0x87, 0x40, 0xf3, 0xe6, 0x62, 0xd9, 0x68, 0xbc, 0x2c, 0x69, 0x02, 0x54,
- 0xb2, 0x8b, 0xc2, 0x4b, 0x78, 0x73, 0x55, 0xce, 0x59, 0x2d, 0xee, 0x6a,
- 0x88, 0x36, 0x6d, 0xdd, 0x88, 0x56, 0x68, 0x07, 0x71, 0xbe, 0x64, 0x5b,
- 0xbe, 0xa6, 0x10, 0xe2, 0x96, 0xa3, 0xc4, 0x08, 0x78, 0x19, 0x70, 0x8e,
- 0xc7, 0x9a, 0xf1, 0x7f, 0x3d, 0x0c, 0xc2, 0xda, 0xcd, 0x39, 0x3f, 0x2f,
- 0x6b, 0xa1, 0x17, 0x64, 0x87, 0x1b, 0x12, 0x4b, 0x2b, 0x62, 0xcb, 0x82,
- 0xed, 0xa6, 0x25, 0x1e, 0xac, 0x4c, 0x26, 0xfc, 0x09, 0x82, 0x60, 0x90,
- 0x5d, 0x0b, 0x48, 0x05, 0x43, 0x26, 0x46, 0x00, 0x80, 0x4d, 0x96, 0x68,
- 0x87, 0x1a, 0x65, 0xec, 0xb6, 0xab, 0xdc, 0xc3, 0x5d, 0x30, 0xa7, 0xf0,
- 0x0a, 0x77, 0x7a, 0xde, 0xac, 0xd2, 0xbe, 0xa5, 0x6b, 0xc7, 0x3b, 0xde,
- 0xcb, 0x9e, 0x9c, 0xf8, 0xd2, 0x87, 0x39, 0xd2, 0xe3, 0x60, 0xf4, 0x37,
- 0xf2, 0x39, 0xce, 0xd9, 0xff, 0xba, 0x87, 0x31, 0x9d, 0xa6, 0xe2, 0x3c,
- 0xf3, 0x11, 0xcd, 0x28, 0x47, 0x57, 0xee, 0x13, 0xcd, 0x84, 0xe3, 0x36,
- 0xf5, 0xba, 0x7f, 0x15, 0xf1, 0xfd, 0xb3, 0xab, 0xce, 0x8c, 0x67, 0x7e,
- 0xe7, 0x5a, 0xf4, 0x72, 0x68, 0x2d, 0x3e, 0xb7, 0x43, 0x33, 0xb7, 0x5d,
- 0x74, 0x03, 0x99, 0x06, 0x13, 0x23, 0x82, 0x73, 0x9f, 0x07, 0x83, 0x44,
- 0x6b, 0x5b, 0xf0, 0xa5, 0x4e, 0xed, 0x6a, 0x06, 0x17, 0x49, 0x5b, 0xa4,
- 0xad, 0x8a, 0x00, 0xc9, 0xe7, 0xbf, 0xdb, 0x1c, 0x6a, 0x29, 0xed, 0x7e,
- 0xf6, 0xdd, 0x8b, 0xe3, 0x77, 0x47, 0xbb, 0x7f, 0x4d, 0xf0, 0xd7, 0x1e,
- 0xff, 0xb5, 0x37, 0x88, 0x6e, 0x97, 0xe1, 0x52, 0x1b, 0x9f, 0x6d, 0x24,
- 0xf5, 0xdd, 0xe2, 0xbc, 0x9c, 0xdb, 0xed, 0x92, 0xb5, 0x50, 0xb7, 0xd9,
- 0x50, 0xae, 0x71, 0xcd, 0x38, 0x12, 0x2b, 0x78, 0x97, 0x65, 0xd7, 0x12,
- 0x87, 0xa8, 0xec, 0x86, 0xdc, 0x75, 0x7e, 0x6e, 0x71, 0x43, 0x80, 0x01,
- 0xca, 0xc5, 0xc4, 0x71, 0xd7, 0x17, 0x1b, 0x4a, 0x97, 0x92, 0x1e, 0xec,
- 0xda, 0x3f, 0x93, 0xc2, 0x3a, 0xf8, 0x7e, 0x21, 0xfa, 0x70, 0xd8, 0x30,
- 0xc2, 0x30, 0xf2, 0x88, 0x93, 0x72, 0xc1, 0x08, 0x9f, 0x52, 0x2a, 0x88,
- 0xdf, 0x96, 0x40, 0x4b, 0x80, 0xc9, 0xdc, 0x09, 0x84, 0xc6, 0x46, 0x95,
- 0x59, 0xde, 0x4b, 0x73, 0xa6, 0x77, 0xbb, 0xcd, 0x9d, 0x8b, 0xec, 0xa2,
- 0x81, 0x93, 0xb4, 0x27, 0xa3, 0x63, 0x82, 0xf8, 0xd0, 0xa0, 0x0d, 0x77,
- 0x0c, 0x00, 0xff, 0x5d, 0xb6, 0x2a, 0xe6, 0x74, 0x79, 0x94, 0x82, 0xa6,
- 0xb6, 0xdc, 0x7f, 0x6c, 0x4e, 0x0e, 0x91, 0x83, 0x18, 0xc4, 0xc8, 0xac,
- 0x0d, 0x05, 0xa0, 0x24, 0x8b, 0x20, 0x60, 0xab, 0x30, 0xb2, 0xe4, 0xa6,
- 0x61, 0xef, 0x5b, 0xbe, 0x53, 0x56, 0x77, 0x8f, 0xb6, 0xc5, 0x73, 0x23,
- 0xd7, 0xeb, 0xbc, 0x01, 0x67, 0xd6, 0x63, 0xc0, 0x91, 0xd6, 0xa5, 0x37,
- 0x14, 0xeb, 0x91, 0xf5, 0xef, 0x5e, 0x21, 0x57, 0x44, 0x75, 0xce, 0xd3,
- 0xc0, 0x64, 0x4b, 0x07, 0x4e, 0x10, 0x10, 0x92, 0x4d, 0x47, 0xfb, 0xa6,
- 0xf7, 0xbb, 0x79, 0xb6, 0xa5, 0xba, 0x81, 0xbd, 0xf2, 0xb6, 0x5f, 0x97,
- 0xbf, 0x98, 0xb1, 0xa7, 0x7a, 0x6f, 0xc4, 0x2e, 0x4e, 0xb9, 0x08, 0xa3,
- 0xe0, 0x0e, 0x7c, 0x55, 0x3a, 0x2e, 0xc3, 0xd9, 0xe3, 0x3e, 0xf3, 0x68,
- 0x29, 0xc8, 0x54, 0xfb, 0x87, 0x50, 0xdc, 0xdf, 0x94, 0x01, 0xfd, 0xb4,
- 0xee, 0x48, 0xff, 0x56, 0xd4, 0x05, 0x31, 0xd4, 0x5c, 0x4a, 0xdc, 0x8e,
- 0x25, 0x33, 0x8e, 0x4e, 0x0b, 0x05, 0xd9, 0x40, 0xb0, 0xea, 0xbf, 0x8d,
- 0x7c, 0xa8, 0x36, 0x6f, 0xc5, 0xfc, 0x5d, 0x61, 0xb4, 0x5b, 0x17, 0xbe,
- 0x0e, 0xb2, 0x60, 0xf8, 0xb0, 0xde, 0xc0, 0x40, 0x3b, 0x7b, 0xce, 0xf7,
- 0x2c, 0x1a, 0x41, 0x85, 0x21, 0x86, 0xc6, 0xc8, 0x63, 0x8c, 0x85, 0x54,
- 0x30, 0xd8, 0x17, 0x69, 0x86, 0x81, 0xee, 0x51, 0x12, 0x00, 0x1b, 0x63,
- 0x2f, 0x72, 0xde, 0x38, 0x49, 0x1e, 0xb6, 0x7b, 0x1c, 0x1f, 0x6f, 0xcc,
- 0x24, 0x1b, 0x6c, 0x32, 0x1e, 0x50, 0xe4, 0xe2, 0x17, 0x32, 0x05, 0x72,
- 0x08, 0x14, 0xc2, 0xf3, 0x11, 0x37, 0x52, 0x13, 0x5d, 0x70, 0x62, 0x28,
- 0x2a, 0xc3, 0x1c, 0xd8, 0xe5, 0x70, 0xa2, 0x11, 0x56, 0x22, 0xc0, 0x52,
- 0x48, 0x9b, 0xf1, 0xaf, 0xb3, 0x42, 0xc6, 0xd4, 0x86, 0xaa, 0xe6, 0x82,
- 0x19, 0x54, 0x72, 0xc4, 0x46, 0x5f, 0x9f, 0x1b, 0x39, 0x24, 0x72, 0x0a,
- 0x52, 0xe7, 0xb3, 0x21, 0x21, 0xb5, 0x6b, 0x15, 0x59, 0xce, 0x04, 0xd8,
- 0x9f, 0xdf, 0xa1, 0xab, 0xd7, 0xc3, 0x04, 0xad, 0x4b, 0x61, 0x41, 0xd4,
- 0x3c, 0xe8, 0xd5, 0x11, 0x6c, 0x0c, 0x3a, 0xa8, 0x4b, 0x4c, 0xbe, 0xc9,
- 0xbe, 0x25, 0x97, 0x89, 0x9c, 0xe6, 0x13, 0x9a, 0x79, 0x91, 0xd8, 0xf9,
- 0x68, 0x96, 0x07, 0x91, 0x24, 0x2d, 0x0c, 0x1b, 0xc3, 0x2e, 0xfe, 0xae,
- 0x48, 0x1d, 0x0e, 0x4f, 0xb3, 0x55, 0x14, 0x42, 0x1c, 0x79, 0x96, 0xe7,
- 0x74, 0xcf, 0x10, 0x75, 0x24, 0x96, 0x27, 0xe4, 0x1c, 0xa6, 0x84, 0x6c,
- 0x0e, 0x43, 0x81, 0x4b, 0xd2, 0xbc, 0xca, 0xcd, 0x2e, 0x57, 0xd3, 0x2b,
- 0xca, 0x55, 0x27, 0xcb, 0x44, 0xa6, 0xe6, 0xb6, 0x40, 0xb4, 0x62, 0xee,
- 0xca, 0xcd, 0x8a, 0x94, 0xa3, 0x0d, 0x61, 0x59, 0x71, 0x77, 0x99, 0x27,
- 0xf4, 0xdc, 0x77, 0xc7, 0x1b, 0x6d, 0x0e, 0x82, 0x3b, 0x6c, 0xaf, 0x97,
- 0x49, 0x36, 0xaf, 0x1d, 0xef, 0xb5, 0x73, 0x74, 0x4c, 0x98, 0x94, 0x3b,
- 0x12, 0xff, 0x7b, 0xd3, 0xed, 0x39, 0x7b, 0xfe, 0x22, 0x18, 0x18, 0xa0,
- 0x97, 0x78, 0x6c, 0xd0, 0x5e, 0x40, 0x3e, 0x77, 0x0a, 0xca, 0x53, 0x94,
- 0xbd, 0xcd, 0xf9, 0xec, 0x47, 0x01, 0x7b, 0xba, 0x84, 0x7a, 0x28, 0x22,
- 0x2a, 0x36, 0x93, 0xb4, 0x91, 0x85, 0xe1, 0xb5, 0x3c, 0xfd, 0x05, 0xcc,
- 0x88, 0x3b, 0x4f, 0x1f, 0xef, 0xe0, 0x8e, 0x01, 0x4a, 0x21, 0x33, 0x5d,
- 0x9e, 0x91, 0x78, 0x66, 0x22, 0x07, 0x5c, 0x36, 0x4d, 0x50, 0x85, 0xfc,
- 0x59, 0xdc, 0xb8, 0xe2, 0x4f, 0xd0, 0xcb, 0x91, 0x1d, 0x4c, 0xd5, 0x0f,
- 0xe1, 0xcc, 0x31, 0x0b, 0x76, 0xd1, 0x04, 0x41, 0xa7, 0x1e, 0xa5, 0x45,
- 0x08, 0x10, 0x03, 0x19, 0xd1, 0x28, 0x9f, 0xe3, 0x67, 0x20, 0xc8, 0x11,
- 0xc2, 0x10, 0x42, 0xc7, 0xe0, 0x19, 0xdb, 0x6a, 0x7b, 0x5e, 0xd5, 0xbe,
- 0x29, 0xa3, 0xe5, 0x34, 0x0a, 0xad, 0xf5, 0x10, 0x4d, 0x10, 0xf5, 0x02,
- 0xb3, 0x22, 0x45, 0x1d, 0x3b, 0xd6, 0x71, 0x78, 0x03, 0x58, 0x06, 0x91,
- 0x84, 0xf6, 0xc0, 0x12, 0x00, 0xb6, 0xc7, 0x32, 0xc5, 0x06, 0x06, 0xbf,
- 0xc1, 0x48, 0xed, 0x8d, 0xde, 0xe7, 0xaa, 0x5a, 0x32, 0x3c, 0x10, 0x3e,
- 0x34, 0x7c, 0x66, 0x68, 0xef, 0xe4, 0xf2, 0x22, 0x62, 0x4a, 0x54, 0xbf,
- 0xee, 0xce, 0x93, 0x47, 0x8f, 0xd6, 0x32, 0xb2, 0x86, 0x14, 0x26, 0x84,
- 0xc0, 0x4d, 0x81, 0x98, 0x2f, 0xd6, 0x1e, 0xc8, 0x63, 0x22, 0xc0, 0xfd,
- 0x91, 0x41, 0x99, 0xd8, 0x76, 0x7f, 0x9f, 0xd7, 0x01, 0xea, 0x4c, 0xab,
- 0xf9, 0x85, 0x60, 0x66, 0xbd, 0x86, 0x90, 0x0e, 0xdb, 0xd8, 0x35, 0xf2,
- 0x93, 0x92, 0xe3, 0xaf, 0xd8, 0x6a, 0x7f, 0xf8, 0x16, 0xbf, 0x41, 0x08,
- 0x63, 0xab, 0x10, 0x25, 0x18, 0x53, 0x55, 0x49, 0x0e, 0xfe, 0x7d, 0xfd,
- 0x5d, 0x37, 0xbf, 0x74, 0xf3, 0x64, 0xb2, 0xbd, 0xff, 0x6c, 0x67, 0x2b,
- 0x12, 0x8f, 0x0d, 0x38, 0xf7, 0xd4, 0xb3, 0xdf, 0xed, 0xf8, 0xde, 0x63,
- 0x1e, 0x0d, 0xb6, 0x69, 0x0d, 0x32, 0x8c, 0x96, 0xf1, 0x12, 0xfe, 0xce,
- 0xc4, 0xef, 0x25, 0xa2, 0x49, 0x4c, 0xb8, 0x9f, 0x25, 0xfb, 0x36, 0x43,
- 0xc1, 0x9f, 0x28, 0xf0, 0xc4, 0x71, 0x4e, 0x69, 0x53, 0x29, 0x03, 0xb1,
- 0xe9, 0xd5, 0x8d, 0x34, 0xf4, 0x76, 0xbc, 0x33, 0x3d, 0x92, 0x72, 0x51,
- 0x9b, 0xf3, 0x2c, 0xe6, 0x36, 0xaa, 0x81, 0x60, 0x45, 0xc1, 0x87, 0x14,
- 0x80, 0xf0, 0xbb, 0xef, 0xb7, 0xb7, 0xa7, 0xbb, 0xcf, 0xc6, 0x4f, 0x5b,
- 0x7b, 0xba, 0xaa, 0x50, 0x71, 0xe9, 0xb9, 0x8d, 0x76, 0xa4, 0xa8, 0xd5,
- 0xf8, 0x72, 0x4a, 0xe6, 0xa2, 0xb8, 0xc3, 0x48, 0x9e, 0x64, 0x43, 0xb3,
- 0xf3, 0x81, 0x70, 0x6b, 0xa2, 0xc3, 0x0b, 0x1e, 0xfc, 0x64, 0x72, 0x1c,
- 0x9c, 0x3e, 0x8e, 0x8c, 0xb7, 0xee, 0x0d, 0xf2, 0xf6, 0xa7, 0x53, 0x28,
- 0x03, 0x24, 0x6c, 0x94, 0x54, 0xd1, 0xf2, 0xd3, 0x47, 0x7b, 0x7b, 0xc3,
- 0xe4, 0xf1, 0x78, 0xd7, 0x4f, 0xf3, 0x37, 0x84, 0x1b, 0x00, 0x13, 0x49,
- 0x9c, 0xa6, 0x67, 0xe8, 0x76, 0x39, 0xac, 0x14, 0x9b, 0x62, 0x11, 0x00,
- 0xa2, 0x49, 0xff, 0x5d, 0xad, 0xec, 0x87, 0xbd, 0xc7, 0x8f, 0x77, 0x9f,
- 0x1d, 0x9c, 0x8e, 0x1e, 0xef, 0xed, 0x22, 0xf9, 0x9f, 0x71, 0xe5, 0x6d,
- 0xc8, 0x96, 0x9f, 0xba, 0x93, 0xe4, 0x33, 0x46, 0x53, 0x9a, 0x13, 0xd2,
- 0x61, 0x4c, 0x76, 0x1c, 0x94, 0xcb, 0xac, 0xa8, 0x6b, 0xa3, 0x89, 0xbf,
- 0xe7, 0x2c, 0xc0, 0xed, 0xfa, 0x3d, 0x6b, 0x98, 0x03, 0xc9, 0xd7, 0xcf,
- 0x23, 0x22, 0x8c, 0xdd, 0x19, 0xe5, 0x66, 0x86, 0x4e, 0x35, 0xd1, 0x48,
- 0xeb, 0x95, 0xae, 0xcb, 0xc1, 0x8f, 0xc5, 0xd2, 0xa9, 0x12, 0x02, 0xc2,
- 0xd9, 0x3c, 0x3a, 0xdc, 0xe2, 0xed, 0xd2, 0x5d, 0x94, 0x02, 0xa8, 0x1e,
- 0x70, 0x20, 0x62, 0x7c, 0x90, 0x45, 0x11, 0x72, 0xe3, 0xbc, 0x20, 0x15,
- 0x08, 0xfe, 0x0a, 0x98, 0x09, 0x65, 0x5a, 0xac, 0x36, 0x2b, 0x36, 0x54,
- 0xbb, 0x94, 0xcb, 0x3a, 0x9b, 0x83, 0x00, 0x01, 0x51, 0xcf, 0xca, 0x45,
- 0x95, 0x94, 0x28, 0x86, 0x9a, 0xd3, 0x69, 0x50, 0xf5, 0x2a, 0x34, 0xd7,
- 0xd0, 0xd2, 0x76, 0x52, 0xf8, 0xd7, 0xa2, 0x84, 0x75, 0x00, 0x6a, 0xa1,
- 0xb6, 0x8f, 0xd2, 0x7a, 0x9a, 0xe7, 0x6c, 0x99, 0xe8, 0x31, 0x48, 0x68,
- 0x58, 0x33, 0xa1, 0x99, 0x12, 0x46, 0x42, 0x9e, 0x72, 0xd0, 0x85, 0x43,
- 0xcc, 0x0e, 0x9a, 0x85, 0xda, 0x69, 0x6e, 0xd7, 0x7b, 0xdb, 0x45, 0x1d,
- 0x96, 0x9a, 0x0d, 0x08, 0x56, 0x51, 0xac, 0xbb, 0x7a, 0x10, 0x44, 0x17,
- 0x41, 0xcf, 0x8c, 0x00, 0xaf, 0x49, 0x29, 0x25, 0x4a, 0xe5, 0xae, 0x4b,
- 0x30, 0x8a, 0xe8, 0xda, 0x53, 0x66, 0x8e, 0xe0, 0xa4, 0x5b, 0x63, 0x88,
- 0x15, 0xb7, 0x24, 0x92, 0xef, 0x8b, 0xa1, 0xe6, 0xdd, 0x37, 0x9e, 0x82,
- 0x98, 0x46, 0xb4, 0x39, 0x2e, 0x63, 0x48, 0xd1, 0x2e, 0x89, 0xcc, 0x43,
- 0x13, 0xce, 0x6c, 0x14, 0x97, 0xd6, 0xf2, 0x24, 0x01, 0x11, 0x8b, 0x25,
- 0xab, 0x13, 0x41, 0x3b, 0x44, 0x21, 0x87, 0x5b, 0x42, 0x91, 0x16, 0x63,
- 0x58, 0x91, 0xdd, 0x40, 0x10, 0xae, 0xa5, 0x6e, 0x5b, 0x55, 0xe5, 0xb0,
- 0x02, 0x57, 0x59, 0xb3, 0xaa, 0x24, 0xc9, 0x02, 0x61, 0xd6, 0xa0, 0xbb,
- 0x59, 0x04, 0xb5, 0x61, 0x4a, 0xd7, 0x53, 0x6d, 0x13, 0x32, 0x58, 0x37,
- 0x02, 0xda, 0x69, 0xb0, 0x36, 0x54, 0x89, 0xd1, 0xc3, 0x3e, 0x6f, 0xda,
- 0x81, 0x5a, 0x50, 0xbc, 0x39, 0x93, 0x8c, 0xc1, 0x36, 0xa5, 0x2c, 0x82,
- 0xa2, 0x31, 0x04, 0xb2, 0xae, 0xe7, 0xf8, 0xdc, 0xbe, 0x1d, 0xdd, 0xdc,
- 0xdc, 0x8c, 0x70, 0xe3, 0x20, 0x7c, 0x4e, 0x72, 0xa8, 0xc6, 0x49, 0x27,
- 0x51, 0xca, 0xb7, 0x75, 0x85, 0x9e, 0x4a, 0x2f, 0x8e, 0xb1, 0x3a, 0xcf,
- 0x1b, 0x4a, 0xd6, 0x15, 0xe2, 0xa2, 0x97, 0x24, 0x69, 0x56, 0xc6, 0x43,
- 0x6a, 0xa3, 0x9a, 0x94, 0x23, 0xd7, 0x8f, 0x9b, 0x0d, 0x21, 0xcb, 0x4d,
- 0x9b, 0x0c, 0xd0, 0x14, 0xa8, 0x48, 0x73, 0x90, 0x8c, 0xbe, 0x49, 0x06,
- 0x87, 0x32, 0xe1, 0x33, 0xf3, 0xc8, 0x41, 0x6b, 0x2e, 0xfc, 0x6c, 0xb4,
- 0x98, 0xcd, 0xe0, 0x57, 0xde, 0x62, 0x6a, 0xec, 0xe4, 0x82, 0x9e, 0x36,
- 0x7a, 0xb5, 0x89, 0x98, 0xdd, 0x11, 0x2b, 0xca, 0x36, 0x6a, 0x06, 0xe1,
- 0xa4, 0xa9, 0xa7, 0xb5, 0x54, 0x45, 0x3e, 0x67, 0xca, 0x5b, 0x73, 0x1c,
- 0xab, 0xf4, 0x66, 0xed, 0x59, 0x14, 0xf8, 0x06, 0xef, 0x34, 0xba, 0x52,
- 0x76, 0x88, 0xe2, 0x74, 0xe4, 0x41, 0xc5, 0xc8, 0x5c, 0xf0, 0x74, 0x58,
- 0x39, 0x0b, 0x15, 0x47, 0x5d, 0xa6, 0x24, 0xcb, 0x90, 0x22, 0xbe, 0x7e,
- 0xb1, 0x26, 0xc9, 0xd4, 0x09, 0x66, 0x6e, 0x16, 0x2d, 0x1f, 0x66, 0x8c,
- 0x79, 0x59, 0xaa, 0xfa, 0x18, 0x46, 0x33, 0xf4, 0xa2, 0x2c, 0x39, 0x1c,
- 0x9a, 0x2c, 0xf4, 0xde, 0x1c, 0x15, 0x87, 0x3d, 0x76, 0x93, 0x30, 0x0e,
- 0x3d, 0x4e, 0xaa, 0x42, 0x0f, 0x8a, 0xf1, 0x39, 0xab, 0x40, 0xe8, 0x94,
- 0xe5, 0x32, 0xd2, 0x72, 0x7a, 0xa1, 0x30, 0xcc, 0x71, 0xaa, 0xc9, 0xe1,
- 0xd7, 0xaf, 0x28, 0x69, 0xc3, 0xb0, 0xd2, 0x42, 0x2f, 0x00, 0x9e, 0x02,
- 0x57, 0xa0, 0xb6, 0xbc, 0xe7, 0x32, 0x77, 0xf9, 0x7b, 0x21, 0x14, 0x37,
- 0x53, 0x8d, 0x26, 0xe3, 0xd9, 0x50, 0x73, 0x4e, 0xcc, 0xb0, 0x15, 0x01,
- 0x55, 0x46, 0x49, 0x5d, 0x06, 0x50, 0x7c, 0xbd, 0xa8, 0x6b, 0x85, 0x11,
- 0x4a, 0x6b, 0xd5, 0x54, 0x70, 0xd7, 0x06, 0x39, 0x22, 0x8e, 0x60, 0xb9,
- 0x9c, 0x77, 0x16, 0x86, 0xa7, 0x4a, 0xff, 0xdd, 0x8c, 0x1f, 0x1f, 0x2f,
- 0xa4, 0x63, 0x14, 0xb5, 0x6b, 0x97, 0xb5, 0x4a, 0x1a, 0x52, 0xa6, 0x25,
- 0x9b, 0xc5, 0xd3, 0x9e, 0xe6, 0x30, 0xb1, 0x7f, 0x93, 0x80, 0x72, 0xc3,
- 0x2d, 0x49, 0xf0, 0xd6, 0x54, 0xe8, 0x56, 0x75, 0x44, 0x85, 0x96, 0xd5,
- 0x38, 0xf6, 0x78, 0x73, 0x54, 0x23, 0xf9, 0x33, 0xae, 0xec, 0xf7, 0x45,
- 0x22, 0x56, 0x67, 0x64, 0xbc, 0xf8, 0x2e, 0x69, 0x62, 0x36, 0x34, 0x78,
- 0x4e, 0x31, 0xc5, 0x32, 0xc4, 0x9b, 0xe3, 0x68, 0x05, 0x6f, 0xf5, 0x98,
- 0xe4, 0xa6, 0x29, 0x34, 0x73, 0x2a, 0xe9, 0xfe, 0x2f, 0xdd, 0xc5, 0xfb,
- 0xec, 0xfe, 0xd5, 0xfb, 0xc8, 0xc5, 0xbb, 0x67, 0xf5, 0xb8, 0x82, 0x90,
- 0xc6, 0xb8, 0x7f, 0xe6, 0x59, 0xda, 0x29, 0x6a, 0x8b, 0x8d, 0x5d, 0xd6,
- 0xe2, 0xde, 0xe6, 0x32, 0x9e, 0x1f, 0xe4, 0xb3, 0xdf, 0x6c, 0xd7, 0x89,
- 0x1a, 0x75, 0xf4, 0xf1, 0xe6, 0xd8, 0xf9, 0x5c, 0x8c, 0x5b, 0x60, 0xc0,
- 0x62, 0xf5, 0xa0, 0xd7, 0x05, 0x44, 0x9f, 0xca, 0x8a, 0x4a, 0x8c, 0x38,
- 0x75, 0x17, 0x6f, 0x4e, 0xb3, 0x7c, 0xc5, 0xd2, 0x11, 0xcc, 0xef, 0x0b,
- 0xbd, 0xf8, 0xef, 0x9d, 0x9c, 0x1f, 0xdf, 0x4e, 0x51, 0x82, 0x5c, 0x56,
- 0x44, 0xdd, 0x2c, 0x9e, 0x17, 0x77, 0x33, 0xf4, 0x00, 0xe8, 0xf1, 0x11,
- 0x5c, 0x62, 0xd0, 0xa2, 0x4a, 0x03, 0x5b, 0xc3, 0xf6, 0x6a, 0x69, 0x59,
- 0x54, 0x8a, 0x27, 0xe2, 0x5d, 0xce, 0x7b, 0xf7, 0x58, 0xf7, 0x0e, 0xb5,
- 0x81, 0xa2, 0x7b, 0xf7, 0xbf, 0xfb, 0xfc, 0x5c, 0x36, 0x2e, 0x4d, 0x51,
- 0x4c, 0xeb, 0x8e, 0x1a, 0xa8, 0x2a, 0x2a, 0x5c, 0x98, 0xc8, 0x96, 0xa1,
- 0x2c, 0x23, 0x73, 0x9f, 0xf6, 0x8c, 0x8e, 0xa0, 0x45, 0x66, 0x43, 0x0a,
- 0x9c, 0x98, 0x93, 0xfe, 0x94, 0x4b, 0xde, 0xd1, 0x67, 0x4e, 0x96, 0x61,
- 0x4b, 0x90, 0xcd, 0x72, 0x23, 0x32, 0x5c, 0x43, 0xa9, 0x96, 0x36, 0x3b,
- 0x64, 0x79, 0x9e, 0x79, 0xb3, 0xf6, 0xc8, 0xaf, 0xff, 0x6a, 0x54, 0xc0,
- 0x6f, 0xb9, 0xdb, 0x5b, 0x37, 0xe5, 0xee, 0xa7, 0xad, 0x9b, 0xd2, 0xbd,
- 0xd3, 0x7f, 0x47, 0x72, 0x6d, 0xc3, 0x2d, 0x74, 0x25, 0xe1, 0xa5, 0x7e,
- 0xa2, 0x97, 0x14, 0xde, 0x45, 0x3a, 0x3c, 0xaa, 0x4a, 0xa9, 0xea, 0x1b,
- 0x05, 0x02, 0xf7, 0x1c, 0x95, 0xc3, 0x96, 0x75, 0x97, 0x1c, 0xe0, 0x64,
- 0x1e, 0x48, 0xce, 0x2b, 0xa3, 0xd5, 0x91, 0x38, 0xaa, 0xb6, 0xb9, 0x94,
- 0x8d, 0x55, 0x57, 0x01, 0xde, 0x81, 0x59, 0xdf, 0xb9, 0x54, 0x4d, 0x31,
- 0xfb, 0xf6, 0xcd, 0xd9, 0xeb, 0x63, 0xae, 0x32, 0xc4, 0xb9, 0xf7, 0xc8,
- 0x63, 0xac, 0xc5, 0x30, 0x76, 0xbe, 0xc8, 0xa1, 0x2d, 0x35, 0x0d, 0xf3,
- 0x32, 0x61, 0x8f, 0x01, 0x3e, 0x00, 0x39, 0xe7, 0x45, 0x79, 0x5c, 0xc6,
- 0x3c, 0xad, 0x22, 0x48, 0x7a, 0x08, 0x73, 0x9e, 0x0c, 0xfc, 0x2b, 0x64,
- 0xdd, 0x43, 0x8e, 0x6d, 0x23, 0x29, 0xea, 0x2b, 0x6c, 0x05, 0x1e, 0x89,
- 0xe8, 0xbc, 0x56, 0x4c, 0xa3, 0x4a, 0xef, 0x54, 0xe2, 0xc0, 0xae, 0x1d,
- 0x64, 0x2e, 0x5b, 0x07, 0x8b, 0xf0, 0xf0, 0xd2, 0xb6, 0xa4, 0x15, 0xe4,
- 0xcc, 0xaf, 0x93, 0xbc, 0x20, 0x84, 0x40, 0x1a, 0x12, 0xb7, 0xed, 0x72,
- 0x55, 0xc1, 0xf2, 0x28, 0x42, 0xf5, 0x30, 0x89, 0xa4, 0xc6, 0xa8, 0x67,
- 0x57, 0x8d, 0x80, 0x36, 0x4a, 0xa1, 0xa5, 0xeb, 0x69, 0xe9, 0x1e, 0xb4,
- 0xdf, 0x66, 0xe9, 0x5d, 0x5f, 0x3e, 0x61, 0xcf, 0x51, 0xc6, 0x13, 0x6d,
- 0xa6, 0x21, 0x32, 0xd3, 0x3a, 0x95, 0x5d, 0x4f, 0xc9, 0xbf, 0x15, 0x88,
- 0x77, 0x31, 0x01, 0xdb, 0x55, 0xb4, 0xaa, 0x5d, 0x1d, 0x23, 0x95, 0xb4,
- 0x09, 0x81, 0x8f, 0x30, 0xf7, 0xa8, 0x90, 0x91, 0xef, 0xab, 0x8c, 0x39,
- 0x49, 0xc9, 0xef, 0x20, 0x65, 0x9c, 0x45, 0x19, 0xe7, 0xb5, 0xc9, 0x61,
- 0xfd, 0x6f, 0xa9, 0xa3, 0xac, 0x6d, 0x2f, 0xb2, 0xea, 0xd2, 0x03, 0x7b,
- 0x8e, 0x09, 0x8a, 0x69, 0xcb, 0xf6, 0xf2, 0xff, 0x8c, 0xf8, 0x3e, 0x25,
- 0xa6, 0xb4, 0x62, 0x7f, 0x1b, 0x7d, 0xb1, 0x81, 0x02, 0x59, 0xc4, 0x56,
- 0x66, 0x69, 0x61, 0x16, 0x02, 0x27, 0x36, 0x8c, 0x74, 0x9b, 0xcf, 0x3f,
- 0x9b, 0x97, 0xab, 0xfa, 0x6e, 0x23, 0x91, 0x82, 0x72, 0x52, 0x87, 0xa9,
- 0x61, 0x44, 0x09, 0xda, 0x4e, 0xb3, 0xc5, 0xab, 0xe2, 0x83, 0xea, 0x8f,
- 0x48, 0x27, 0xaa, 0x13, 0xaa, 0x09, 0xd5, 0x69, 0x6e, 0xc3, 0xeb, 0xed,
- 0xff, 0xf1, 0xdb, 0xee, 0xf3, 0xe9, 0xb1, 0xd2, 0xfc, 0x20, 0x9d, 0xb9,
- 0x15, 0x04, 0x10, 0x53, 0x9b, 0x85, 0x1d, 0x5b, 0x97, 0xac, 0x6d, 0x15,
- 0x77, 0x07, 0x43, 0x6c, 0x6b, 0x85, 0x88, 0x56, 0x1c, 0x56, 0x4f, 0x8e,
- 0x98, 0xbb, 0x76, 0xd8, 0x2b, 0x9c, 0x9c, 0x4a, 0x5d, 0x57, 0xf7, 0x85,
- 0x43, 0xdc, 0x50, 0x98, 0xe6, 0x8b, 0xb2, 0x3c, 0x4f, 0xab, 0x8d, 0x20,
- 0x9e, 0x98, 0x06, 0x4e, 0x15, 0x3c, 0x30, 0xfc, 0x19, 0xdb, 0x16, 0xe1,
- 0xd6, 0x72, 0x2c, 0xf4, 0x0b, 0x7e, 0x77, 0xcc, 0x36, 0x7d, 0xef, 0x8b,
- 0x48, 0x30, 0xcf, 0x7c, 0x66, 0x67, 0xe9, 0xbb, 0xda, 0x28, 0xc1, 0x04,
- 0x7b, 0x34, 0x74, 0x6a, 0xbd, 0xd5, 0xeb, 0x25, 0xb3, 0x2c, 0xbb, 0x19,
- 0x45, 0xb2, 0x83, 0x9d, 0x53, 0x05, 0x21, 0xb2, 0x08, 0x7e, 0x4c, 0xb8,
- 0x9a, 0xba, 0x56, 0xd4, 0x80, 0x5c, 0x6b, 0x55, 0x6a, 0xef, 0xc8, 0x87,
- 0x4e, 0x80, 0x18, 0x13, 0x71, 0x4c, 0xc3, 0x3b, 0x82, 0xc4, 0x91, 0x24,
- 0x94, 0x7c, 0x8d, 0x2d, 0xdd, 0xe3, 0x03, 0xc3, 0x50, 0x39, 0xe3, 0x59,
- 0xf9, 0xd7, 0xd5, 0x3a, 0x2f, 0x99, 0x03, 0xb1, 0x26, 0x8e, 0x29, 0x2c,
- 0x93, 0x1b, 0x19, 0xbd, 0xd2, 0x10, 0x57, 0xfe, 0xf3, 0x8c, 0xe0, 0xd5,
- 0xc9, 0xe0, 0x3e, 0x8a, 0x50, 0x5b, 0x4b, 0x61, 0xcc, 0xe6, 0xd9, 0x25,
- 0xcf, 0xef, 0xf9, 0xf1, 0xd1, 0x77, 0x47, 0xc7, 0xc1, 0x4d, 0xf8, 0xf5,
- 0x64, 0xb2, 0xfd, 0x21, 0xab, 0xce, 0xb3, 0xaa, 0xac, 0xb7, 0xe0, 0x0d,
- 0x4e, 0xe8, 0x39, 0x1b, 0x7f, 0xe9, 0x5d, 0x0f, 0x37, 0x0e, 0x62, 0x49,
- 0xcc, 0x94, 0x81, 0x19, 0x06, 0xe1, 0xf5, 0xdc, 0xa5, 0x94, 0x11, 0xa1,
- 0x4c, 0xbf, 0x85, 0xb5, 0x11, 0x57, 0x70, 0xb1, 0x90, 0x09, 0x35, 0x8d,
- 0xc0, 0x29, 0x12, 0x12, 0x0f, 0x8a, 0xff, 0x62, 0x4f, 0x39, 0xc7, 0x03,
- 0x0c, 0xcf, 0x4d, 0x22, 0x78, 0x63, 0x49, 0x68, 0x17, 0xc9, 0x4b, 0xe9,
- 0x53, 0x32, 0xc3, 0xb1, 0x4a, 0x8c, 0xc2, 0xc8, 0x17, 0xc1, 0xc9, 0xb7,
- 0xa3, 0x17, 0x93, 0xd1, 0xcb, 0xa3, 0xe3, 0xa3, 0xaf, 0x5f, 0x9c, 0x1d,
- 0x71, 0xd5, 0x0c, 0x86, 0x09, 0x8d, 0xcb, 0x2d, 0x72, 0x85, 0x7f, 0x2b,
- 0xcb, 0x62, 0x8b, 0x17, 0x34, 0xb9, 0xd4, 0xfa, 0x62, 0x57, 0x12, 0xaf,
- 0x03, 0x29, 0x3a, 0x12, 0xe6, 0x1f, 0x6f, 0xce, 0x9c, 0x86, 0xf9, 0x42,
- 0x86, 0x1a, 0xcc, 0x20, 0x9d, 0xdf, 0xa0, 0xde, 0xe7, 0xbb, 0x02, 0x49,
- 0x2e, 0xb9, 0x4d, 0xea, 0xe6, 0xd9, 0xfb, 0x46, 0x1e, 0xb7, 0xb2, 0xad,
- 0x0a, 0x8f, 0xbf, 0x15, 0x24, 0x04, 0x97, 0x51, 0xe9, 0x31, 0x94, 0x28,
- 0x0e, 0x04, 0x09, 0x3a, 0x2f, 0xe9, 0xc9, 0x4e, 0x65, 0x01, 0x57, 0x10,
- 0x01, 0xc6, 0x52, 0xf9, 0x2a, 0x82, 0x54, 0x84, 0x61, 0x72, 0x3d, 0x7b,
- 0xa9, 0x34, 0x51, 0x21, 0xd2, 0xae, 0xd1, 0xd2, 0x67, 0x02, 0x14, 0xc6,
- 0x3c, 0xec, 0x3c, 0x63, 0xac, 0x15, 0x52, 0x61, 0xcb, 0xb0, 0xaa, 0x32,
- 0xdd, 0x59, 0x37, 0x39, 0x97, 0x70, 0xa5, 0xd8, 0x3c, 0xc2, 0x0c, 0x18,
- 0x4b, 0x82, 0x21, 0x87, 0x07, 0x19, 0xea, 0xb3, 0xd1, 0x40, 0x96, 0x89,
- 0x73, 0x75, 0xdb, 0xae, 0x38, 0x62, 0xcb, 0x16, 0x58, 0xcf, 0x1d, 0x3b,
- 0x09, 0xe9, 0x23, 0x2e, 0xb1, 0x25, 0x8a, 0x19, 0x06, 0xf9, 0x6b, 0xed,
- 0x5f, 0x44, 0x98, 0xad, 0x74, 0x68, 0xa2, 0xfa, 0x68, 0x6e, 0x46, 0x94,
- 0xfb, 0x30, 0xfb, 0xf1, 0x86, 0x3b, 0xb4, 0xd5, 0x14, 0x66, 0xb2, 0x35,
- 0x24, 0x27, 0x4b, 0xbd, 0x9c, 0x75, 0x51, 0x5c, 0x8e, 0xeb, 0xb4, 0x6b,
- 0xea, 0xa0, 0x28, 0x84, 0xfe, 0x1a, 0x96, 0x3d, 0xb2, 0xf9, 0xb2, 0xa3,
- 0x6c, 0x19, 0x20, 0xf4, 0x6f, 0x7e, 0xa5, 0x05, 0x37, 0x5c, 0x0d, 0x5a,
- 0xaf, 0x18, 0xa8, 0x57, 0xb8, 0xef, 0xe8, 0xf4, 0xed, 0x19, 0x75, 0x72,
- 0x8c, 0x5f, 0x24, 0x10, 0xa2, 0x8e, 0x61, 0x5e, 0x4a, 0x89, 0x2a, 0xae,
- 0xb1, 0x0c, 0x7f, 0xa4, 0xab, 0x62, 0x2d, 0xa1, 0xc6, 0x1c, 0x60, 0x2e,
- 0x95, 0x15, 0xe4, 0x48, 0xd1, 0xea, 0x06, 0xd9, 0x3d, 0x0d, 0x32, 0x40,
- 0xd4, 0x63, 0x85, 0x21, 0x08, 0x2a, 0x19, 0x0d, 0x82, 0x83, 0xe4, 0xd5,
- 0x71, 0x78, 0x82, 0x2f, 0xd5, 0xf4, 0xc7, 0x7e, 0x8c, 0x9e, 0xa0, 0x04,
- 0xe2, 0x8a, 0xac, 0x23, 0xa2, 0x59, 0xbc, 0x99, 0x54, 0xf9, 0xe5, 0x95,
- 0xd9, 0x0a, 0x33, 0x94, 0x71, 0x67, 0xaa, 0x54, 0x30, 0x12, 0x38, 0xbb,
- 0xa1, 0x9f, 0x90, 0x4a, 0x65, 0x8a, 0x81, 0x4e, 0xd2, 0x4e, 0x68, 0xc2,
- 0xae, 0xd8, 0x3d, 0xdd, 0x2a, 0x94, 0x3b, 0x43, 0xa9, 0xd8, 0x5c, 0x55,
- 0x0b, 0x37, 0x48, 0x1a, 0x08, 0xfe, 0x92, 0x72, 0x34, 0xd4, 0x02, 0x68,
- 0x77, 0x82, 0xd8, 0xcb, 0x82, 0xa2, 0xd6, 0x75, 0x49, 0x09, 0x41, 0x9a,
- 0x34, 0x9d, 0x73, 0x96, 0x6d, 0x44, 0x6b, 0x89, 0x44, 0x27, 0x61, 0xe1,
- 0x6d, 0xcd, 0x4e, 0x9a, 0xa5, 0x6c, 0x5b, 0x44, 0xb6, 0x07, 0x6d, 0x74,
- 0xa1, 0xec, 0x8c, 0xfe, 0x67, 0x98, 0x60, 0x0e, 0x87, 0x87, 0x0c, 0x85,
- 0x57, 0x86, 0x2a, 0xd7, 0x09, 0xbd, 0x95, 0x31, 0xaa, 0x12, 0xbe, 0xe2,
- 0x9c, 0x30, 0x2d, 0x12, 0xec, 0x07, 0x1c, 0xd0, 0xd0, 0xce, 0x9a, 0x52,
- 0xe8, 0x3c, 0x18, 0xed, 0x57, 0xa7, 0xd7, 0x4f, 0xda, 0x51, 0x04, 0xb4,
- 0x7d, 0x24, 0x22, 0x14, 0x5d, 0xc1, 0x21, 0xe3, 0xc4, 0x2a, 0xd3, 0x37,
- 0x0d, 0x17, 0xd6, 0x21, 0x1b, 0x20, 0x03, 0xe2, 0x09, 0xfa, 0x7f, 0x49,
- 0x83, 0x43, 0x3f, 0xf4, 0x02, 0x1d, 0x79, 0xc0, 0x8d, 0x5d, 0x6a, 0x11,
- 0x42, 0x26, 0xe5, 0xf3, 0xcc, 0xf4, 0x97, 0xa3, 0x46, 0xab, 0x5f, 0xdf,
- 0x38, 0x12, 0xbd, 0x60, 0x08, 0x10, 0xf7, 0x0d, 0x8c, 0x39, 0x60, 0x3f,
- 0x78, 0x97, 0x03, 0x46, 0xfc, 0xe2, 0xc6, 0xb6, 0x50, 0xe2, 0xe8, 0x74,
- 0x28, 0x9e, 0x7e, 0x0a, 0x5f, 0x2e, 0xab, 0x30, 0x8b, 0x7d, 0x6a, 0xf1,
- 0xd5, 0xf4, 0xc9, 0xb4, 0xbe, 0x8e, 0x9f, 0xf0, 0xfa, 0xfa, 0x9f, 0x38,
- 0xe1, 0x93, 0xef, 0x6c, 0x84, 0x13, 0x9d, 0x64, 0x73, 0x94, 0x03, 0x28,
- 0x43, 0xf0, 0x78, 0x3b, 0xab, 0x8f, 0x3b, 0xdd, 0xe6, 0x3c, 0x87, 0xce,
- 0x8e, 0xd6, 0xf9, 0x36, 0x03, 0x90, 0x43, 0x7d, 0xfa, 0x62, 0xf2, 0x9d,
- 0x77, 0x9c, 0xbd, 0xad, 0x77, 0x58, 0xb2, 0x66, 0x05, 0x03, 0x57, 0x8c,
- 0xe2, 0x6b, 0xa3, 0xad, 0x28, 0x99, 0xd7, 0xd7, 0x0f, 0x21, 0x73, 0x33,
- 0x90, 0x80, 0xcc, 0x83, 0xa5, 0x5d, 0x47, 0xe6, 0xfe, 0xfe, 0xb4, 0x83,
- 0xe1, 0x3d, 0x22, 0x2f, 0x88, 0xb0, 0x29, 0x71, 0xab, 0x8f, 0xba, 0xd9,
- 0xb1, 0x48, 0x14, 0x1d, 0x86, 0x08, 0xd3, 0x38, 0x3f, 0x8e, 0xbe, 0xcd,
- 0x0b, 0x01, 0x7d, 0xeb, 0x76, 0xc6, 0x09, 0xbc, 0x8f, 0xbe, 0x35, 0x55,
- 0x20, 0x63, 0xda, 0xf6, 0x49, 0x3b, 0x24, 0x6b, 0x8f, 0x58, 0x7d, 0x08,
- 0x87, 0x70, 0x85, 0x34, 0x74, 0x94, 0xe3, 0x7c, 0x40, 0x34, 0xce, 0xb5,
- 0x1f, 0x41, 0x08, 0x52, 0x5d, 0x98, 0xd3, 0xdc, 0x43, 0xe3, 0x3e, 0x30,
- 0x1b, 0xbc, 0x94, 0x10, 0xc9, 0x6a, 0xaa, 0x54, 0x38, 0xe7, 0x82, 0x9f,
- 0xb8, 0xa6, 0xc9, 0x56, 0xe0, 0x03, 0x81, 0x5c, 0x04, 0x07, 0xb1, 0x85,
- 0x15, 0x96, 0x45, 0x71, 0x25, 0xea, 0x0c, 0xd1, 0x76, 0x84, 0x38, 0xd8,
- 0x3d, 0x9e, 0x90, 0x10, 0xe9, 0xfe, 0x87, 0x68, 0x32, 0xca, 0x8b, 0x51,
- 0x98, 0xde, 0xe0, 0xfb, 0x82, 0x9a, 0x16, 0x0c, 0x35, 0x52, 0x8f, 0x49,
- 0x56, 0x16, 0x97, 0x07, 0xe4, 0x58, 0xcd, 0x7a, 0x86, 0x87, 0x80, 0x8b,
- 0x2d, 0x46, 0x12, 0xe5, 0xa3, 0x60, 0x8a, 0xed, 0xb2, 0x4e, 0x4d, 0xd9,
- 0x32, 0xcd, 0x3d, 0xe9, 0xa0, 0x95, 0xcf, 0x8a, 0x7a, 0x44, 0xba, 0xd7,
- 0x05, 0x50, 0x74, 0x9e, 0xdb, 0x5f, 0x03, 0xd5, 0xe4, 0xe5, 0x1b, 0x0d,
- 0x42, 0xf1, 0x62, 0x50, 0xea, 0x8c, 0x33, 0xbf, 0xb8, 0x7a, 0x9b, 0x79,
- 0xc4, 0x26, 0xf2, 0xda, 0x5a, 0xbd, 0xcf, 0xa3, 0xe6, 0x21, 0xea, 0x22,
- 0x48, 0xbf, 0x4d, 0x39, 0x93, 0xce, 0x28, 0x82, 0xa4, 0xee, 0x63, 0x06,
- 0x6e, 0x6c, 0xc9, 0xa6, 0x08, 0xfa, 0xb0, 0x43, 0x45, 0x60, 0xcd, 0x34,
- 0xe3, 0x16, 0xc3, 0x90, 0xa2, 0x11, 0x08, 0x56, 0xa3, 0xca, 0x0b, 0x02,
- 0x37, 0xa8, 0x78, 0x3f, 0x04, 0x87, 0xaf, 0xed, 0x46, 0xac, 0xcd, 0x9b,
- 0x02, 0x93, 0x26, 0xf1, 0xba, 0x5b, 0x6b, 0xf5, 0x4e, 0x2c, 0xe0, 0xf2,
- 0xfa, 0xd1, 0x08, 0x0f, 0x3b, 0x3d, 0x93, 0x3f, 0x7d, 0x42, 0x9f, 0x8e,
- 0x83, 0x85, 0x0e, 0x52, 0xe3, 0xa4, 0xb0, 0xb7, 0x05, 0xc2, 0x46, 0xf0,
- 0x5c, 0x31, 0x43, 0x85, 0x1d, 0xda, 0x7b, 0x2d, 0x98, 0x02, 0x60, 0x54,
- 0x8e, 0xc7, 0xc0, 0xe2, 0x73, 0x28, 0x5e, 0x12, 0xc4, 0x3f, 0x1a, 0x91,
- 0xa6, 0x1d, 0x4b, 0xb6, 0xbf, 0x1f, 0xd9, 0x74, 0x3b, 0xe6, 0xe7, 0x32,
- 0xcd, 0xf8, 0x96, 0xb7, 0xae, 0x96, 0xf3, 0x9c, 0xcb, 0x2f, 0x3e, 0xcf,
- 0x97, 0x23, 0x7d, 0x8b, 0xef, 0x92, 0x45, 0xfa, 0x41, 0x6e, 0xf2, 0x47,
- 0x42, 0x07, 0xa3, 0x00, 0x2b, 0x09, 0x74, 0x81, 0xa8, 0xe7, 0xd2, 0x9f,
- 0x67, 0x8b, 0x68, 0x44, 0xcc, 0x6a, 0x2c, 0x3e, 0x33, 0x88, 0x82, 0xfb,
- 0x89, 0xe5, 0x72, 0xda, 0x9a, 0x79, 0x5e, 0xa0, 0x84, 0xe6, 0x6d, 0xd1,
- 0x48, 0xec, 0xbb, 0xbf, 0x75, 0x8c, 0xd7, 0x7a, 0x72, 0x70, 0x34, 0xbb,
- 0x9e, 0x1c, 0x74, 0x0b, 0xfe, 0x7b, 0x90, 0xc3, 0x93, 0xdf, 0x85, 0x1c,
- 0x9e, 0xfc, 0xb7, 0x21, 0x87, 0x27, 0xff, 0xdd, 0xc8, 0xe1, 0x51, 0x40,
- 0x0e, 0x4f, 0xfe, 0xbb, 0x90, 0x83, 0x16, 0x27, 0x55, 0x62, 0xc8, 0x02,
- 0x72, 0x98, 0x48, 0x88, 0x8b, 0x82, 0x84, 0x62, 0xe3, 0xf4, 0x2d, 0x76,
- 0x28, 0x49, 0x30, 0xbc, 0x46, 0xed, 0xfa, 0x28, 0xc8, 0x3d, 0x65, 0x93,
- 0x6c, 0x3a, 0x97, 0x36, 0xfa, 0xea, 0x34, 0xb1, 0x03, 0xf0, 0x76, 0xd5,
- 0x61, 0xf9, 0x91, 0xf4, 0x18, 0x35, 0xa7, 0xd7, 0xb0, 0xc4, 0x9a, 0xf9,
- 0x73, 0x84, 0x6f, 0xed, 0xa0, 0x08, 0x62, 0x60, 0x7d, 0x66, 0xe1, 0x0e,
- 0x9e, 0x63, 0xb9, 0x46, 0xfc, 0xf8, 0xe7, 0xd1, 0x14, 0xdb, 0x2c, 0x35,
- 0xd7, 0x8f, 0x1b, 0xd2, 0xef, 0x4d, 0x46, 0xed, 0x9d, 0x70, 0x64, 0x60,
- 0x1d, 0x79, 0x1e, 0x0d, 0xc4, 0x48, 0xa0, 0x2b, 0xd7, 0x59, 0x82, 0xb8,
- 0x9f, 0x02, 0xca, 0xab, 0x75, 0x35, 0x73, 0xcc, 0xda, 0x6d, 0x25, 0x13,
- 0x32, 0xc1, 0xd4, 0xed, 0xea, 0x3a, 0x24, 0xd1, 0x5b, 0x1c, 0x8b, 0x97,
- 0xe5, 0x37, 0xc4, 0x35, 0x46, 0xb0, 0x6c, 0x8c, 0xb8, 0xd2, 0xfc, 0xda,
- 0xe8, 0xc0, 0x27, 0xe1, 0x30, 0x0c, 0xfd, 0xc4, 0xea, 0x5b, 0x74, 0xc6,
- 0xf0, 0x61, 0x48, 0xa2, 0x82, 0x54, 0xe4, 0xfe, 0xcd, 0x07, 0x81, 0x95,
- 0x7d, 0xfe, 0xee, 0x6d, 0x68, 0xaf, 0xe5, 0x51, 0x74, 0x10, 0x70, 0xdb,
- 0x9d, 0x99, 0xce, 0xcb, 0x6f, 0xb6, 0x3c, 0xc3, 0x21, 0xb9, 0xae, 0xca,
- 0x58, 0x41, 0x53, 0xc6, 0x51, 0xb0, 0x68, 0x21, 0x84, 0xfd, 0xe4, 0xd7,
- 0x31, 0x16, 0x7f, 0x8d, 0x2f, 0x9d, 0x92, 0x21, 0x4c, 0x10, 0x18, 0xaa,
- 0xa0, 0xe8, 0x36, 0xb4, 0x80, 0xbc, 0x16, 0xcc, 0x4f, 0xe0, 0x22, 0xa9,
- 0x00, 0x44, 0x23, 0x0b, 0xa5, 0x1a, 0xaa, 0x4d, 0x3c, 0x39, 0xb6, 0xbe,
- 0x2c, 0xa2, 0x34, 0x4d, 0x91, 0xc6, 0x62, 0x52, 0xed, 0x42, 0x0b, 0xba,
- 0x20, 0x46, 0x16, 0xf8, 0x20, 0x63, 0x05, 0xc3, 0xb0, 0xf2, 0x92, 0x29,
- 0xc5, 0x3c, 0x8b, 0xfd, 0x2e, 0x70, 0x0b, 0xad, 0x96, 0x35, 0x45, 0xe2,
- 0x33, 0x12, 0x16, 0x59, 0xbe, 0x12, 0x2a, 0x89, 0xf5, 0x4d, 0x79, 0x93,
- 0x5d, 0xc7, 0x81, 0x06, 0xfb, 0x20, 0x50, 0xb4, 0x1c, 0x79, 0x6d, 0xc1,
- 0x5c, 0xf3, 0xe2, 0x2a, 0x43, 0x26, 0x11, 0x2b, 0x01, 0x1a, 0x97, 0x1c,
- 0x09, 0x0d, 0xaa, 0x4a, 0xf2, 0xed, 0x2a, 0x3b, 0x31, 0xb3, 0xb8, 0xce,
- 0xd3, 0x0e, 0xe1, 0xa9, 0x9f, 0xbb, 0x7d, 0x24, 0xfe, 0xc8, 0xa8, 0xf1,
- 0x27, 0x7b, 0x2d, 0x8a, 0x7c, 0x49, 0x0a, 0xd6, 0x6a, 0xb1, 0x14, 0x9c,
- 0x8d, 0x7b, 0x70, 0x06, 0x48, 0x8b, 0xdf, 0x4a, 0xbe, 0x27, 0x14, 0x01,
- 0xf6, 0x92, 0x49, 0xca, 0xad, 0x9a, 0xb1, 0x6c, 0x92, 0xa1, 0xfa, 0x9f,
- 0x7b, 0x20, 0x41, 0x39, 0x6f, 0x8f, 0x8a, 0x07, 0xd9, 0x57, 0xa4, 0xc2,
- 0x10, 0x97, 0x6d, 0xf2, 0x2d, 0x0e, 0x9d, 0x40, 0xe3, 0xfe, 0x0c, 0x27,
- 0x04, 0x43, 0x10, 0x0c, 0x4c, 0x14, 0xd4, 0x91, 0x9c, 0x5c, 0xb6, 0x06,
- 0x7d, 0xc2, 0x39, 0x33, 0x57, 0x99, 0x0f, 0x6e, 0x61, 0x41, 0x84, 0x25,
- 0x58, 0x95, 0x52, 0x0a, 0x0b, 0x89, 0xf2, 0x0f, 0xaa, 0xc4, 0x11, 0x74,
- 0x8d, 0x8c, 0x7e, 0x20, 0x38, 0xb3, 0x2b, 0x81, 0x0c, 0x4f, 0xb1, 0x2a,
- 0x04, 0x06, 0xf7, 0x07, 0x26, 0x81, 0x78, 0x49, 0x56, 0x3e, 0xdb, 0xc9,
- 0x2e, 0x39, 0xb4, 0x63, 0x5d, 0x86, 0x85, 0x8f, 0x78, 0x49, 0xe5, 0x03,
- 0xac, 0x63, 0x93, 0xcf, 0xdb, 0x11, 0x28, 0x7c, 0x69, 0x8e, 0xe6, 0xd7,
- 0x29, 0x66, 0x45, 0xcc, 0xe3, 0x65, 0x9a, 0x2d, 0x02, 0xcb, 0x73, 0x5d,
- 0xc2, 0x95, 0xa2, 0xd1, 0x2a, 0xfc, 0x57, 0x62, 0xf1, 0x17, 0x59, 0xd1,
- 0xe3, 0xa5, 0x49, 0xcc, 0xd9, 0x9f, 0x19, 0x51, 0x4c, 0xf2, 0x8a, 0xa9,
- 0xcc, 0x61, 0x90, 0x61, 0xe0, 0x45, 0xc2, 0xaf, 0x05, 0x8e, 0xa1, 0xa6,
- 0x46, 0x5d, 0x2f, 0x99, 0x34, 0xfd, 0x3c, 0x4a, 0xd1, 0x3c, 0xef, 0x6c,
- 0xae, 0xd0, 0x4a, 0x1a, 0x95, 0x3f, 0xad, 0xee, 0x96, 0x50, 0xa4, 0xf9,
- 0x5d, 0xe1, 0xb2, 0x18, 0x1d, 0x63, 0x78, 0xaf, 0xc7, 0xa6, 0x78, 0x57,
- 0x7b, 0x35, 0x30, 0x48, 0xf4, 0x40, 0x68, 0x06, 0xc0, 0xec, 0x8d, 0xfc,
- 0xa8, 0xa2, 0x08, 0x6e, 0xd5, 0x19, 0x41, 0x6e, 0xf5, 0x16, 0xa6, 0x94,
- 0x72, 0x93, 0x7e, 0x2c, 0x18, 0x29, 0x92, 0x86, 0x0e, 0x36, 0xc9, 0x59,
- 0xa1, 0xe8, 0x00, 0x70, 0xad, 0x6d, 0x25, 0x72, 0x4c, 0x2c, 0xc0, 0x43,
- 0x1d, 0xc8, 0x30, 0x77, 0xed, 0xe2, 0xac, 0x29, 0xd0, 0x78, 0x8a, 0x00,
- 0xf6, 0x2b, 0x6b, 0xd2, 0xcb, 0x91, 0x00, 0x18, 0xf5, 0x90, 0x8b, 0x67,
- 0x79, 0x10, 0x0a, 0x66, 0xe0, 0x08, 0x8a, 0xd0, 0xb4, 0x36, 0x64, 0x62,
- 0x17, 0x1a, 0x5b, 0x23, 0xa0, 0x52, 0xe0, 0x06, 0x81, 0xe7, 0x88, 0xd2,
- 0x4d, 0x8e, 0xce, 0xd2, 0x4b, 0xcf, 0xb7, 0xdc, 0x09, 0xba, 0xa2, 0xd2,
- 0x8f, 0x05, 0x47, 0x57, 0x19, 0x7d, 0xa1, 0x6e, 0xcc, 0x23, 0xaf, 0x2e,
- 0x46, 0x6f, 0xcc, 0xcc, 0x47, 0x01, 0xca, 0x1c, 0xec, 0x4d, 0xc2, 0xcc,
- 0x5c, 0xd4, 0x8b, 0xa4, 0xc0, 0xa3, 0x9b, 0x71, 0x14, 0xb5, 0x6c, 0x5a,
- 0x56, 0x82, 0x1d, 0x86, 0xf8, 0x28, 0x73, 0xfc, 0x28, 0x22, 0xac, 0xb6,
- 0x90, 0x30, 0xed, 0x10, 0xa2, 0x56, 0x2d, 0xc3, 0x20, 0xbf, 0x8d, 0xb2,
- 0xc3, 0x45, 0x55, 0x10, 0x14, 0x5b, 0x2d, 0x3c, 0x3e, 0xcb, 0x6a, 0xd4,
- 0xc6, 0x4b, 0x78, 0x24, 0x86, 0x33, 0x17, 0x16, 0xb8, 0x8a, 0x9d, 0xfa,
- 0x81, 0x23, 0xc2, 0x6c, 0x44, 0xed, 0x6a, 0xdb, 0xd0, 0xa3, 0xd1, 0x59,
- 0xbc, 0xab, 0xf5, 0x66, 0x54, 0x36, 0x29, 0x9b, 0x59, 0x93, 0x69, 0x90,
- 0x10, 0x6e, 0x60, 0x22, 0xa3, 0x3f, 0xc9, 0x84, 0x8b, 0x25, 0x17, 0x4f,
- 0x7e, 0x44, 0x7c, 0x90, 0xca, 0x7d, 0x02, 0x9e, 0x5d, 0x48, 0x90, 0x8c,
- 0x97, 0xfb, 0x56, 0x2a, 0xce, 0x55, 0xb7, 0xac, 0x30, 0xb1, 0xbe, 0x4e,
- 0x73, 0xd4, 0x19, 0x79, 0x22, 0xea, 0xd5, 0x39, 0x03, 0x19, 0x5b, 0x9c,
- 0xb6, 0xb5, 0xd7, 0x55, 0x3b, 0xf8, 0xcb, 0x9b, 0xd1, 0x3a, 0xda, 0x6c,
- 0x11, 0x27, 0x9e, 0xae, 0x39, 0xdc, 0xca, 0x50, 0x24, 0x0d, 0xa4, 0x7b,
- 0x37, 0xc9, 0x6d, 0xf4, 0xa2, 0x88, 0x8e, 0x9a, 0x28, 0x9b, 0xca, 0x2d,
- 0x80, 0x44, 0xe7, 0xa4, 0x2a, 0x30, 0x81, 0x51, 0xd8, 0x0b, 0xd7, 0xa3,
- 0x90, 0x90, 0x07, 0xb9, 0x5a, 0x18, 0x04, 0x2f, 0xbe, 0xa6, 0xb1, 0xeb,
- 0xc0, 0x5c, 0x82, 0xda, 0x17, 0xf9, 0x44, 0x5b, 0x59, 0x00, 0xc3, 0xf6,
- 0xb5, 0x46, 0xb9, 0xc4, 0x3d, 0x59, 0xa8, 0xeb, 0x56, 0x8e, 0x02, 0xf4,
- 0x76, 0x77, 0x76, 0xee, 0x05, 0x6a, 0x94, 0x45, 0x54, 0xbc, 0x46, 0xe2,
- 0x52, 0x79, 0x61, 0xc1, 0x1a, 0xad, 0x1c, 0xe7, 0xa0, 0x1a, 0x09, 0x59,
- 0x28, 0xcd, 0xf9, 0x9c, 0x77, 0x4d, 0x8b, 0xe8, 0xd2, 0xc2, 0x26, 0xda,
- 0xfb, 0xf5, 0xc6, 0x26, 0x91, 0x66, 0x04, 0xdb, 0x08, 0xb1, 0xea, 0x88,
- 0x86, 0x58, 0x1f, 0xb4, 0xdf, 0xe9, 0x86, 0x7a, 0xf0, 0xd1, 0xa6, 0x55,
- 0xc6, 0x8b, 0x96, 0x8a, 0x92, 0xe4, 0xcb, 0x3b, 0x67, 0x68, 0xb5, 0xde,
- 0x05, 0x1a, 0x17, 0xae, 0x50, 0x1e, 0xff, 0x78, 0x4d, 0x3a, 0x67, 0x1c,
- 0x8b, 0xf1, 0x5f, 0xbc, 0x84, 0x57, 0xc3, 0x46, 0x8c, 0xb0, 0x89, 0x26,
- 0x19, 0x63, 0x2e, 0x8f, 0x66, 0xd2, 0xdb, 0xd9, 0x02, 0xd6, 0xa0, 0x53,
- 0xf9, 0xd2, 0x2b, 0x62, 0xc9, 0x82, 0xce, 0xda, 0x3a, 0x1b, 0x6d, 0x68,
- 0xcd, 0x76, 0x02, 0xc1, 0xd3, 0xf6, 0xfe, 0x02, 0xde, 0x66, 0x44, 0x20,
- 0x36, 0x5d, 0xf6, 0x06, 0xdc, 0x1b, 0x1c, 0x63, 0x32, 0x0c, 0xdb, 0xb4,
- 0xd8, 0x8a, 0x2b, 0x5a, 0x48, 0xd0, 0xa6, 0x4a, 0xe1, 0x9d, 0xb2, 0x01,
- 0x2d, 0xc1, 0xa9, 0x9b, 0xf2, 0xeb, 0x23, 0x6b, 0x04, 0x38, 0x1a, 0x2d,
- 0xc3, 0x7b, 0x88, 0x4d, 0xc6, 0xc9, 0x1f, 0xce, 0x65, 0xcb, 0x68, 0x3d,
- 0x14, 0xd9, 0x46, 0x8a, 0x31, 0x33, 0x7f, 0xa3, 0x65, 0x0c, 0x69, 0xef,
- 0xcc, 0x79, 0x40, 0xae, 0x0f, 0xef, 0x70, 0x54, 0xdb, 0x6f, 0x79, 0x6a,
- 0x39, 0x79, 0x8c, 0x27, 0x53, 0x3b, 0x50, 0x5e, 0x4a, 0xcb, 0xc6, 0x17,
- 0xa6, 0xdd, 0x5a, 0x95, 0xf5, 0x22, 0x16, 0x87, 0x45, 0x72, 0x97, 0x79,
- 0x6a, 0x03, 0xf8, 0x92, 0xe4, 0x5e, 0xe4, 0x96, 0x2d, 0x06, 0x2e, 0xe7,
- 0x4d, 0x10, 0x74, 0x50, 0xc2, 0x31, 0x41, 0x8a, 0xfd, 0x1d, 0x88, 0x05,
- 0x08, 0x84, 0x02, 0x36, 0x76, 0x42, 0x9b, 0x43, 0x30, 0x44, 0xab, 0xca,
- 0x0b, 0x7e, 0x1a, 0x5c, 0xe5, 0x66, 0x57, 0x8b, 0x01, 0xdd, 0x72, 0x8e,
- 0x39, 0x4a, 0xbf, 0xc1, 0x64, 0x57, 0x73, 0xcf, 0x8b, 0x16, 0x5e, 0x02,
- 0x16, 0x3f, 0x25, 0xc0, 0x04, 0x70, 0xea, 0x1f, 0xb3, 0xaa, 0x84, 0xce,
- 0x9c, 0xcc, 0x21, 0x5e, 0x5a, 0x51, 0xa2, 0x18, 0x9c, 0x8e, 0xc6, 0x36,
- 0x23, 0xaa, 0x98, 0x4a, 0xfa, 0xa4, 0x2d, 0x59, 0x68, 0x4b, 0x6d, 0x2c,
- 0x60, 0x73, 0xc7, 0x5f, 0x58, 0xe3, 0x58, 0x31, 0x39, 0x6c, 0x82, 0xa0,
- 0xb2, 0x45, 0x8a, 0x38, 0x48, 0xa8, 0x6b, 0x7a, 0x47, 0x09, 0xf9, 0xae,
- 0x63, 0xa2, 0xee, 0x00, 0x85, 0xd7, 0xac, 0xe2, 0x65, 0x49, 0x96, 0x0b,
- 0xa1, 0x63, 0x2c, 0xe1, 0xb4, 0xca, 0x97, 0x0d, 0xe7, 0x99, 0x49, 0x62,
- 0xcc, 0xda, 0x1c, 0x6e, 0xf3, 0xdb, 0xe5, 0xbc, 0x3c, 0x4f, 0xe7, 0x02,
- 0xe6, 0x21, 0x61, 0xa9, 0xea, 0x9e, 0x6a, 0x95, 0x88, 0x00, 0x7b, 0x03,
- 0x79, 0x46, 0x0a, 0x61, 0x99, 0x19, 0x8f, 0x0e, 0x86, 0x14, 0x55, 0x71,
- 0xbb, 0x1e, 0xfd, 0xc2, 0x76, 0xc1, 0x08, 0xcc, 0xa3, 0x8b, 0xa1, 0x9c,
- 0x5e, 0xc5, 0xc6, 0xa1, 0xa8, 0xde, 0xda, 0x3b, 0x52, 0x81, 0x32, 0x4c,
- 0x50, 0x56, 0xc9, 0x6c, 0xc5, 0xf7, 0xba, 0xbb, 0x29, 0x36, 0x24, 0x8e,
- 0x47, 0xec, 0x27, 0x14, 0x6a, 0x6a, 0x6b, 0x48, 0x71, 0xb8, 0x4c, 0x2c,
- 0x80, 0x15, 0x25, 0x19, 0x44, 0x4b, 0x1f, 0x26, 0x57, 0xac, 0x34, 0x63,
- 0x84, 0x99, 0x37, 0x38, 0x4d, 0x9c, 0xf0, 0xd6, 0x8a, 0x8b, 0x64, 0x86,
- 0x14, 0x7f, 0xc1, 0x40, 0x2c, 0x24, 0x1c, 0xf1, 0x9e, 0xac, 0x59, 0x19,
- 0xbf, 0x0a, 0x0c, 0xa9, 0xa6, 0x6d, 0x86, 0x06, 0xc9, 0x69, 0x74, 0x5e,
- 0xce, 0xee, 0x7a, 0x2e, 0xfa, 0xb7, 0x4c, 0xca, 0x16, 0xc7, 0x8b, 0x34,
- 0x78, 0xd2, 0xe4, 0xe4, 0xf0, 0x13, 0x88, 0xa0, 0xc3, 0x9c, 0x52, 0x3e,
- 0x1c, 0x56, 0x52, 0xa1, 0x7b, 0xf5, 0xd1, 0x0e, 0x95, 0x90, 0xbf, 0xa4,
- 0xeb, 0xb5, 0x42, 0xc5, 0xc9, 0x42, 0xdc, 0xd3, 0x92, 0xdc, 0x22, 0xbe,
- 0x6e, 0x9c, 0x1c, 0xd6, 0x87, 0xb9, 0xb7, 0xc8, 0xfe, 0xd4, 0x12, 0xd7,
- 0x95, 0x63, 0x30, 0x80, 0x65, 0x99, 0x3a, 0x48, 0x27, 0x9b, 0xf6, 0x28,
- 0x31, 0xe0, 0xfa, 0x25, 0x6d, 0x5c, 0x98, 0xa3, 0x6b, 0xee, 0x02, 0x71,
- 0x57, 0x31, 0x06, 0x0a, 0xdd, 0x0e, 0x9a, 0x2a, 0x87, 0x29, 0xde, 0x49,
- 0xec, 0x88, 0x59, 0xf8, 0x2d, 0x45, 0xc8, 0xe5, 0x58, 0xb8, 0x98, 0xae,
- 0x5c, 0x37, 0xc4, 0x7c, 0x5b, 0xb7, 0xb7, 0x80, 0x6c, 0xd0, 0xa1, 0x61,
- 0x01, 0x31, 0xb5, 0xe9, 0x92, 0x64, 0x02, 0xa3, 0x3e, 0x29, 0xfe, 0x33,
- 0xc6, 0xe0, 0x64, 0xf5, 0xf7, 0xf6, 0xe2, 0x94, 0xaf, 0xce, 0xef, 0x06,
- 0x4e, 0x46, 0x72, 0x03, 0x3b, 0x21, 0x12, 0x24, 0xa6, 0x34, 0xa6, 0xd1,
- 0x77, 0xac, 0x4f, 0xc4, 0x50, 0xdd, 0xe8, 0x31, 0xab, 0x4d, 0x10, 0xcc,
- 0x4a, 0x5e, 0x99, 0xc5, 0x33, 0x0b, 0x47, 0x95, 0x31, 0xfc, 0x74, 0x3e,
- 0x33, 0x91, 0x4e, 0xd0, 0xfb, 0x9a, 0xbb, 0xd6, 0x12, 0xfa, 0x78, 0x8d,
- 0xfd, 0xce, 0x3e, 0xd4, 0x43, 0x8d, 0x74, 0xd5, 0x1a, 0xae, 0x33, 0xe7,
- 0x7a, 0xd1, 0x9b, 0x85, 0x5b, 0x58, 0xd2, 0xdc, 0xb6, 0x02, 0xfa, 0x1c,
- 0xc7, 0x22, 0x47, 0xcd, 0x72, 0x21, 0x60, 0x1e, 0xf5, 0x87, 0x4a, 0x56,
- 0x40, 0x25, 0xd6, 0x40, 0x79, 0x5b, 0xd6, 0x4c, 0x99, 0x37, 0x51, 0x50,
- 0xcf, 0x2c, 0x4b, 0xe7, 0x12, 0xc8, 0x84, 0xb1, 0x85, 0x09, 0xb4, 0x7c,
- 0xcd, 0xd6, 0x21, 0x35, 0x73, 0xb2, 0x42, 0xd1, 0x82, 0x63, 0x0b, 0x69,
- 0x37, 0x48, 0xef, 0xfd, 0x08, 0x4a, 0x66, 0x8f, 0x8c, 0x3a, 0x5b, 0x89,
- 0x7c, 0x63, 0x70, 0x63, 0x1e, 0x35, 0x5b, 0x72, 0x16, 0x6a, 0x26, 0x02,
- 0x22, 0x5a, 0xa6, 0x4b, 0x4c, 0xa2, 0x0a, 0x99, 0x70, 0xa1, 0xbd, 0x44,
- 0x81, 0xe1, 0x1b, 0x05, 0x3a, 0xa2, 0x96, 0xe4, 0xbe, 0x5b, 0x4f, 0xa3,
- 0x8b, 0xcc, 0x50, 0xcd, 0x4c, 0xd9, 0x1c, 0x31, 0x9f, 0x3a, 0xbd, 0xc8,
- 0x54, 0x01, 0x12, 0xf1, 0xa1, 0x9c, 0x9a, 0x95, 0x23, 0x73, 0x26, 0x33,
- 0x16, 0x68, 0xdf, 0x81, 0x98, 0xcf, 0x37, 0x37, 0x6e, 0x6a, 0x2b, 0xf6,
- 0x81, 0xc1, 0xc8, 0x95, 0x5f, 0xcf, 0xf3, 0xa5, 0x3a, 0xb4, 0x87, 0x49,
- 0x26, 0x31, 0xcb, 0xa8, 0x5c, 0x42, 0xbb, 0xb1, 0x1a, 0x45, 0xa0, 0xa3,
- 0x34, 0x16, 0x53, 0x6b, 0x5d, 0xcc, 0x61, 0x5c, 0xda, 0xec, 0xb4, 0xfe,
- 0x68, 0x67, 0x97, 0x46, 0xfb, 0x68, 0xe7, 0xe9, 0x5a, 0x27, 0x73, 0x9b,
- 0xb1, 0xb6, 0x65, 0xc8, 0x79, 0x9d, 0x8d, 0x28, 0x3e, 0xfe, 0x81, 0xf5,
- 0xae, 0xe9, 0x0d, 0x89, 0xa8, 0x17, 0x90, 0x08, 0x56, 0x02, 0x51, 0x06,
- 0x9d, 0xe0, 0xdd, 0xea, 0x2b, 0x00, 0xb5, 0x07, 0x32, 0x29, 0x5e, 0x93,
- 0xf7, 0x48, 0xc1, 0xa2, 0xb8, 0x10, 0x5e, 0xd3, 0x94, 0x5e, 0x96, 0x3a,
- 0xcb, 0xbc, 0x64, 0xf4, 0x9c, 0x35, 0x01, 0x84, 0x35, 0x15, 0x2d, 0x36,
- 0x35, 0xe7, 0xf4, 0x72, 0x58, 0x10, 0xd9, 0x75, 0xef, 0xac, 0x05, 0x40,
- 0x6f, 0xc8, 0xe4, 0xab, 0xbc, 0xc8, 0xeb, 0x2b, 0x68, 0x6a, 0x0b, 0x44,
- 0xc2, 0x5c, 0x66, 0x61, 0x5d, 0x1f, 0x73, 0x79, 0x0a, 0xf7, 0x30, 0xba,
- 0x31, 0x55, 0xae, 0x42, 0x84, 0x3a, 0xef, 0x90, 0x64, 0xc6, 0x4a, 0xa5,
- 0x6e, 0x02, 0x53, 0x76, 0xd3, 0xec, 0xab, 0x22, 0xef, 0x8a, 0xc8, 0xf7,
- 0xd5, 0x90, 0x47, 0x51, 0x63, 0x82, 0xd5, 0xf5, 0x4a, 0x8c, 0xc6, 0x6a,
- 0x47, 0x26, 0x9b, 0x20, 0x83, 0x93, 0x89, 0xe1, 0x4e, 0x74, 0x57, 0x41,
- 0x1f, 0xad, 0x28, 0xd3, 0xc0, 0x7c, 0xf6, 0x83, 0xd1, 0x9c, 0xc6, 0xcf,
- 0xec, 0xc7, 0x5b, 0x0f, 0xab, 0x39, 0xbf, 0xd7, 0xd1, 0x24, 0x90, 0xf4,
- 0x23, 0x41, 0x0e, 0x64, 0x38, 0xfb, 0x8c, 0xff, 0x88, 0x5b, 0x84, 0x09,
- 0xdc, 0xe5, 0xd5, 0xeb, 0x17, 0xc0, 0xa0, 0x75, 0x79, 0xc8, 0x2e, 0x37,
- 0xa8, 0x0b, 0x04, 0x40, 0xd4, 0x41, 0x9a, 0x55, 0x14, 0x13, 0x5c, 0xe0,
- 0x65, 0xac, 0x89, 0x7f, 0xd6, 0x86, 0xeb, 0x20, 0xdd, 0x63, 0x8e, 0x42,
- 0xc3, 0x38, 0x32, 0xe3, 0xe4, 0x38, 0xe3, 0x9a, 0x9b, 0x1b, 0x5f, 0x6c,
- 0x44, 0x60, 0x03, 0x36, 0x9e, 0x7b, 0xf5, 0x86, 0x6a, 0x57, 0xce, 0x77,
- 0xe3, 0xaf, 0xc8, 0x7e, 0x02, 0xfc, 0x22, 0xf7, 0x29, 0x5b, 0xc0, 0x89,
- 0x3c, 0xf1, 0x40, 0x41, 0x4d, 0x2d, 0x10, 0x54, 0xf1, 0x76, 0x24, 0x32,
- 0x43, 0xa4, 0x65, 0x04, 0xe3, 0xd6, 0x9a, 0xbb, 0xaa, 0x1e, 0x1b, 0x01,
- 0xac, 0x40, 0x71, 0x27, 0x16, 0xbc, 0x9c, 0x82, 0x34, 0x9d, 0x8d, 0x89,
- 0x47, 0xc4, 0x43, 0xa1, 0x60, 0x50, 0xa3, 0x95, 0x12, 0x34, 0x09, 0x9b,
- 0x19, 0xcc, 0xd7, 0x97, 0x97, 0xd1, 0x78, 0x69, 0xb3, 0x04, 0xd8, 0x78,
- 0xcc, 0xf9, 0xc2, 0x88, 0x2f, 0x24, 0x1d, 0x43, 0x2a, 0xed, 0xcf, 0xd2,
- 0x72, 0x3c, 0x21, 0xf2, 0x8c, 0x37, 0x8b, 0xe7, 0x7e, 0x22, 0x6c, 0x8f,
- 0x5f, 0x80, 0xc8, 0x40, 0xe8, 0x00, 0x06, 0x35, 0xfa, 0xd4, 0x3a, 0x05,
- 0x2e, 0x52, 0x43, 0x19, 0x77, 0x12, 0xb7, 0x36, 0x47, 0xda, 0xa2, 0xa8,
- 0xfe, 0x01, 0xb7, 0x9b, 0x93, 0x19, 0x5f, 0x12, 0xe5, 0x50, 0x97, 0x90,
- 0xd7, 0xb1, 0x10, 0xd1, 0x40, 0x32, 0xeb, 0x48, 0x8d, 0x4e, 0xb4, 0xf2,
- 0x9f, 0x98, 0x9d, 0x28, 0x67, 0xae, 0x6b, 0xa3, 0x97, 0x0c, 0x3a, 0x39,
- 0x89, 0x22, 0x5a, 0xbb, 0x98, 0x23, 0xca, 0x00, 0x24, 0xa6, 0xe1, 0x6c,
- 0x85, 0x3e, 0x68, 0x42, 0xd7, 0x8a, 0x4a, 0xfa, 0xae, 0x61, 0x46, 0xdb,
- 0x74, 0x48, 0x38, 0x75, 0xb1, 0x0b, 0x76, 0xb3, 0xb7, 0xff, 0xe9, 0xa7,
- 0x51, 0x23, 0x23, 0xe3, 0x20, 0x19, 0x1a, 0xc4, 0x32, 0x05, 0x90, 0x57,
- 0x52, 0x73, 0x1e, 0x04, 0x56, 0xab, 0x75, 0xad, 0xa4, 0x1a, 0xe3, 0xa6,
- 0xd7, 0xd0, 0xd8, 0x4c, 0x51, 0x4d, 0x0b, 0x08, 0x1c, 0xc2, 0xc5, 0x48,
- 0x15, 0x00, 0xd7, 0x58, 0xe4, 0x3d, 0x0a, 0x88, 0x88, 0x11, 0xb5, 0x62,
- 0x3a, 0x09, 0xa2, 0xb8, 0xe4, 0xbb, 0x31, 0x74, 0x97, 0x11, 0x2d, 0x28,
- 0xa3, 0x8e, 0x23, 0x49, 0x89, 0xae, 0x7a, 0x70, 0x27, 0x36, 0x12, 0x0d,
- 0xac, 0x3a, 0xcf, 0x2c, 0x80, 0x1e, 0xd7, 0xef, 0xed, 0xa0, 0x66, 0x72,
- 0xfe, 0x58, 0x91, 0x7c, 0xc1, 0x95, 0xf0, 0x4c, 0xf3, 0x9d, 0xe6, 0x08,
- 0x8a, 0xe5, 0x32, 0x6b, 0xc2, 0x7c, 0x69, 0x2f, 0xd3, 0x68, 0x4d, 0xe3,
- 0x91, 0xd3, 0x20, 0xe9, 0xde, 0xcf, 0xa5, 0x52, 0x53, 0x7e, 0xa1, 0x07,
- 0x54, 0x0b, 0xc7, 0x7d, 0xc1, 0x32, 0xf3, 0x73, 0x8b, 0xd3, 0x5b, 0x28,
- 0x87, 0xfa, 0x22, 0x0a, 0x8b, 0xec, 0xf2, 0xae, 0x08, 0xa6, 0xb7, 0x69,
- 0x8c, 0x1e, 0xe8, 0xb8, 0x37, 0x65, 0xac, 0x59, 0x20, 0x56, 0x59, 0x5f,
- 0x52, 0xe8, 0xe6, 0xb1, 0x62, 0x05, 0xcf, 0xad, 0xc9, 0x5c, 0x4a, 0x21,
- 0x22, 0x63, 0x10, 0xe3, 0x89, 0xad, 0x44, 0x2d, 0x02, 0x2f, 0x38, 0x84,
- 0x79, 0x3a, 0xd0, 0xd1, 0xf1, 0xae, 0xb7, 0x4e, 0xe1, 0xde, 0xbb, 0x30,
- 0x3b, 0x87, 0x1c, 0xca, 0x6b, 0xec, 0x52, 0xcd, 0xfc, 0xd8, 0x8a, 0xd4,
- 0x5a, 0xdd, 0x63, 0xf8, 0x6d, 0x23, 0xcc, 0xd3, 0x41, 0xc6, 0x10, 0x65,
- 0x5d, 0x42, 0xa7, 0xc5, 0x28, 0x09, 0x37, 0x91, 0x97, 0xf6, 0x39, 0x79,
- 0xce, 0x9a, 0x6a, 0x35, 0x85, 0xe8, 0x49, 0x26, 0x24, 0xea, 0x29, 0x56,
- 0xd3, 0x57, 0xfd, 0x7d, 0x76, 0xc6, 0x54, 0x79, 0x9b, 0xf6, 0x8c, 0x96,
- 0x58, 0x30, 0xc4, 0xd9, 0x1e, 0x21, 0x10, 0xf3, 0x2c, 0xa3, 0x46, 0xaa,
- 0x72, 0x90, 0x7d, 0x06, 0xa6, 0xc1, 0x3a, 0xff, 0x85, 0xe5, 0x37, 0x49,
- 0x38, 0x52, 0x9f, 0x09, 0x99, 0xe3, 0x32, 0x54, 0xf1, 0x4a, 0x5e, 0x1a,
- 0x8a, 0x2a, 0xf8, 0x2a, 0x07, 0xbd, 0x05, 0x7c, 0xda, 0xe5, 0xdd, 0xa5,
- 0x72, 0x1d, 0x41, 0xe0, 0xab, 0xb2, 0xcb, 0x15, 0x2e, 0x3a, 0xce, 0x08,
- 0xd7, 0x0a, 0x0a, 0xfa, 0xc4, 0x32, 0x5f, 0x52, 0xa5, 0xc3, 0x3a, 0x0f,
- 0x22, 0x49, 0x70, 0x3d, 0x6e, 0xd1, 0x94, 0x0b, 0xb3, 0x5a, 0xcd, 0xaa,
- 0x60, 0x47, 0x31, 0x97, 0x8a, 0x3e, 0xff, 0x3b, 0x39, 0xa2, 0x4a, 0x99,
- 0x39, 0xe7, 0x92, 0xbb, 0x1c, 0xcd, 0x24, 0xbb, 0x08, 0x34, 0xed, 0x8c,
- 0x82, 0x6a, 0xd9, 0xfc, 0x8c, 0x30, 0xd5, 0x46, 0x39, 0x00, 0xa3, 0x72,
- 0xc1, 0x6e, 0xf8, 0x57, 0x0f, 0x5f, 0x94, 0xa4, 0x15, 0x5a, 0x15, 0x1a,
- 0x42, 0xb7, 0x39, 0x02, 0x50, 0x57, 0xe9, 0x49, 0x72, 0x02, 0xd8, 0xfe,
- 0xc2, 0xc5, 0x10, 0x87, 0x5c, 0x2c, 0x42, 0x12, 0x04, 0xd9, 0x52, 0x9d,
- 0xd6, 0x9c, 0xa7, 0x69, 0xf6, 0xeb, 0x2e, 0x96, 0x3b, 0xcd, 0xf2, 0xf7,
- 0xdf, 0xad, 0x79, 0x06, 0xac, 0x2f, 0xa0, 0x50, 0x29, 0x18, 0x75, 0xc0,
- 0x21, 0xa0, 0x54, 0x14, 0x5b, 0x18, 0x5a, 0x5b, 0x39, 0x19, 0x8a, 0x84,
- 0xb8, 0x61, 0x78, 0x27, 0xd6, 0x7e, 0x43, 0x98, 0x66, 0x0c, 0xbf, 0xda,
- 0xe2, 0x7a, 0x54, 0xf0, 0x0a, 0x66, 0x9c, 0xbd, 0xc8, 0x97, 0x88, 0x65,
- 0x20, 0x24, 0x50, 0x55, 0xa9, 0xe1, 0x97, 0x7f, 0x5f, 0x5e, 0xaa, 0xf1,
- 0x30, 0x5a, 0x5d, 0x84, 0xd0, 0x69, 0xc3, 0x6a, 0xbf, 0x44, 0x87, 0xa3,
- 0xaf, 0x12, 0x19, 0xcf, 0x67, 0x5f, 0xb4, 0x1a, 0xd4, 0x42, 0x76, 0x7e,
- 0x29, 0x27, 0x41, 0xd3, 0x9b, 0x5e, 0xe6, 0xbd, 0x8b, 0xc0, 0xab, 0x40,
- 0xd1, 0x11, 0x36, 0x35, 0xa9, 0xbe, 0x2a, 0x33, 0xd9, 0xb9, 0x82, 0xec,
- 0x35, 0x8e, 0x6f, 0xd4, 0xf1, 0xcc, 0x75, 0x5e, 0xb1, 0xfe, 0x21, 0xd3,
- 0x9d, 0xfe, 0x6f, 0xe5, 0x55, 0x81, 0x3f, 0xd0, 0x3c, 0x5a, 0xff, 0x6c,
- 0x77, 0x37, 0x3a, 0xea, 0xf5, 0x1b, 0x46, 0x43, 0xc5, 0x25, 0x24, 0xc9,
- 0x26, 0x1e, 0x4f, 0x6b, 0x99, 0xa7, 0xc6, 0x94, 0x8f, 0x1f, 0xb1, 0x9a,
- 0xa7, 0xc4, 0x5e, 0x09, 0xb7, 0xd8, 0x7b, 0x99, 0x43, 0xfa, 0xa3, 0xcc,
- 0x30, 0xb7, 0x37, 0x03, 0xa1, 0x98, 0x46, 0x62, 0x0b, 0xfa, 0x27, 0x3e,
- 0x80, 0x2f, 0xf0, 0xee, 0xb3, 0xe7, 0x57, 0xab, 0xcb, 0x8c, 0xf8, 0x65,
- 0x73, 0xdb, 0x0c, 0x1e, 0x34, 0x6b, 0xb5, 0xa4, 0xb1, 0xca, 0xda, 0x78,
- 0xd1, 0xcb, 0x94, 0x3f, 0xd9, 0x12, 0x1c, 0xd8, 0x73, 0x4e, 0x20, 0xc4,
- 0xc0, 0x62, 0x8b, 0x31, 0xd2, 0x0d, 0x16, 0x42, 0x87, 0xbc, 0x68, 0x82,
- 0xad, 0xe5, 0xb0, 0x7c, 0xd6, 0xcc, 0xe0, 0x26, 0x3b, 0xff, 0xec, 0x0b,
- 0x58, 0x5f, 0x6f, 0xa9, 0xd4, 0x18, 0x4b, 0xb3, 0x58, 0xb8, 0x6d, 0xaa,
- 0x3c, 0x96, 0x78, 0x93, 0xe8, 0x36, 0x52, 0x56, 0xfd, 0xcd, 0x7a, 0x89,
- 0xd4, 0x5e, 0x93, 0x17, 0x65, 0xb9, 0xb6, 0x45, 0xac, 0x0a, 0x87, 0xc5,
- 0xd0, 0xba, 0x78, 0x19, 0x12, 0x9c, 0x37, 0xe0, 0x60, 0x22, 0x98, 0x24,
- 0xdc, 0x05, 0xc3, 0x67, 0x21, 0x06, 0xda, 0x43, 0x0e, 0x5f, 0xd6, 0xe2,
- 0xf5, 0xa6, 0xf9, 0x6c, 0xa8, 0xa9, 0xc6, 0x91, 0xca, 0x91, 0x6e, 0x0e,
- 0x7c, 0x0c, 0x89, 0x2a, 0xf0, 0xeb, 0x5f, 0xed, 0xeb, 0xf8, 0x61, 0x4e,
- 0x31, 0x15, 0xef, 0x59, 0x33, 0x9b, 0x57, 0x17, 0xb6, 0xc7, 0x6d, 0x0a,
- 0x83, 0xb0, 0xf5, 0x61, 0x37, 0x86, 0x2c, 0x5f, 0xff, 0x75, 0x83, 0x2c,
- 0x1f, 0x1a, 0xfd, 0x44, 0x55, 0x5b, 0x19, 0x70, 0x6f, 0x56, 0x06, 0xe2,
- 0x2c, 0x12, 0x3c, 0xb8, 0xae, 0x2b, 0x8d, 0xbe, 0x67, 0xe0, 0xde, 0xc8,
- 0x7f, 0x1a, 0xd0, 0xd8, 0x87, 0xf8, 0xeb, 0xa7, 0x81, 0x1b, 0xfe, 0x4f,
- 0xb4, 0x3b, 0x7f, 0xcd, 0x8b, 0xbf, 0x62, 0x0a, 0x3f, 0x0d, 0x78, 0x12,
- 0xa1, 0x22, 0xfc, 0x51, 0x9b, 0x8e, 0x7e, 0x91, 0x40, 0x4e, 0x3d, 0x7b,
- 0x1d, 0x7b, 0xfd, 0xb6, 0xba, 0x1d, 0x6c, 0x24, 0xc9, 0xc7, 0xf4, 0xeb,
- 0x97, 0x34, 0xa5, 0xec, 0xdd, 0xa4, 0xb3, 0xb8, 0x86, 0x7d, 0xbb, 0xf5,
- 0xe3, 0xa2, 0xb8, 0x23, 0x2d, 0x83, 0x6b, 0x54, 0xa4, 0xc0, 0xf2, 0xe4,
- 0x1e, 0xc0, 0x56, 0xb8, 0x62, 0xb6, 0x5e, 0xd9, 0x36, 0x0b, 0x84, 0xaf,
- 0x1b, 0xc4, 0xd5, 0x73, 0x67, 0xe1, 0xfd, 0x64, 0x5f, 0x0f, 0xee, 0xa3,
- 0x7f, 0x37, 0x3d, 0x90, 0x2e, 0x4a, 0x6d, 0xc8, 0x79, 0x27, 0x08, 0x00,
- 0x49, 0x01, 0xa0, 0x94, 0xac, 0x82, 0x63, 0x6a, 0xf8, 0x3a, 0xbc, 0xe0,
- 0x7c, 0xe8, 0x68, 0x44, 0x40, 0x9d, 0x2d, 0x72, 0x2a, 0x6d, 0x6c, 0x66,
- 0x35, 0x67, 0x85, 0x75, 0x1b, 0xb7, 0x04, 0xa5, 0xd9, 0x50, 0xc5, 0xe1,
- 0x9a, 0x54, 0x76, 0xd1, 0x65, 0xa5, 0x6e, 0x33, 0xaf, 0x43, 0x3f, 0xa9,
- 0x43, 0x30, 0x9f, 0x97, 0x55, 0xfd, 0xd9, 0xc0, 0x08, 0x49, 0x7f, 0x4d,
- 0x60, 0xb4, 0xce, 0x8a, 0xbf, 0x82, 0xe4, 0x56, 0x66, 0x03, 0xdd, 0xf9,
- 0xbd, 0x1d, 0x2d, 0xee, 0xcc, 0xb8, 0x37, 0x3e, 0x6a, 0xe7, 0xbc, 0x43,
- 0x3d, 0x43, 0xd4, 0x1b, 0xc7, 0x5c, 0x74, 0x83, 0xbb, 0xf8, 0x40, 0x7b,
- 0x87, 0x55, 0xbe, 0xff, 0x6c, 0x18, 0xa4, 0xfb, 0x7f, 0xc8, 0x82, 0x89,
- 0x78, 0x1c, 0x99, 0x54, 0xb7, 0xcf, 0x4e, 0xbe, 0xfd, 0xab, 0x36, 0xf0,
- 0xd3, 0xe0, 0x87, 0x11, 0x7f, 0x4a, 0x40, 0x25, 0x07, 0xc9, 0xc9, 0xb7,
- 0x4a, 0xf3, 0x0f, 0xa7, 0xf1, 0x75, 0x1d, 0x7c, 0xc1, 0xbf, 0x10, 0xb5,
- 0xaf, 0x6b, 0x16, 0xda, 0x83, 0xbe, 0x93, 0x7c, 0xc8, 0xee, 0x28, 0x89,
- 0x99, 0xc2, 0x7f, 0x97, 0x4b, 0xa4, 0x25, 0x2b, 0x32, 0x47, 0xc3, 0xc8,
- 0x1c, 0xa4, 0x53, 0xa4, 0xe7, 0x25, 0x67, 0x63, 0x35, 0x61, 0x79, 0x1d,
- 0x2a, 0xef, 0x41, 0x7b, 0xcb, 0x79, 0x38, 0x08, 0x77, 0x1c, 0x8b, 0x87,
- 0xb5, 0x1d, 0x07, 0xd7, 0xc6, 0x59, 0x18, 0x26, 0x47, 0x91, 0x3a, 0x6a,
- 0x0e, 0x52, 0x91, 0x7f, 0x23, 0x39, 0x8d, 0xc0, 0x23, 0xa1, 0x72, 0xa1,
- 0xdc, 0x32, 0x47, 0xb0, 0x2d, 0xb8, 0x08, 0x3b, 0x79, 0x6d, 0x18, 0x58,
- 0xf3, 0xaf, 0x31, 0x47, 0x96, 0xf8, 0xd6, 0x25, 0xe7, 0xed, 0xa2, 0x9c,
- 0xcf, 0xc4, 0xa7, 0x66, 0xa8, 0x9e, 0x37, 0xd8, 0x96, 0xdd, 0x36, 0x22,
- 0x08, 0x96, 0x42, 0xfc, 0x6c, 0xd2, 0x6d, 0x44, 0x70, 0x12, 0x5f, 0x38,
- 0x5b, 0xe7, 0x5c, 0x30, 0x0c, 0x50, 0x25, 0x41, 0xf8, 0x7f, 0x45, 0xf8,
- 0xcb, 0x79, 0x46, 0xc6, 0x28, 0x8b, 0x1f, 0x31, 0x12, 0xab, 0x72, 0xc4,
- 0xa2, 0x93, 0xd8, 0x73, 0xa3, 0x07, 0x87, 0x66, 0x68, 0x11, 0x24, 0x10,
- 0xf4, 0xfd, 0x0d, 0x19, 0x66, 0xd9, 0xe7, 0xa0, 0xc5, 0x31, 0x71, 0xe9,
- 0xc4, 0x27, 0x6b, 0x43, 0x79, 0xb0, 0x42, 0xe1, 0x69, 0x4b, 0xfe, 0x24,
- 0x16, 0x68, 0x2f, 0xe2, 0x87, 0x66, 0x2f, 0x9b, 0x35, 0x0e, 0x5e, 0xf8,
- 0x41, 0x42, 0x29, 0x47, 0xbb, 0x07, 0x5e, 0xa1, 0x53, 0xfe, 0x2c, 0xde,
- 0xbc, 0x8f, 0x3e, 0x27, 0xa3, 0x42, 0x8f, 0xb4, 0xfc, 0x6b, 0xda, 0xdf,
- 0xb3, 0xed, 0x7f, 0x12, 0x01, 0x7c, 0x63, 0x48, 0xb6, 0x78, 0xb7, 0x67,
- 0x2e, 0xa2, 0x5f, 0x8d, 0xaa, 0xd6, 0xb2, 0xd1, 0xb2, 0x29, 0x48, 0x18,
- 0xa2, 0x80, 0xc1, 0xb1, 0xaa, 0x1c, 0xd6, 0x89, 0x6b, 0x08, 0x5b, 0x8a,
- 0xd4, 0x42, 0x9a, 0x87, 0x59, 0xc6, 0xae, 0xca, 0xc8, 0x02, 0x80, 0x10,
- 0x56, 0xb9, 0x40, 0x09, 0x87, 0xd9, 0x01, 0x3b, 0xd1, 0x1d, 0x78, 0x55,
- 0xee, 0xa7, 0xf2, 0x39, 0xb4, 0x8f, 0x28, 0x46, 0xb7, 0x2d, 0x91, 0x12,
- 0x74, 0x65, 0x58, 0x31, 0x23, 0x3e, 0x7a, 0x05, 0xdc, 0x37, 0x36, 0x37,
- 0xc4, 0xca, 0x82, 0x8e, 0x52, 0x76, 0x70, 0x08, 0x78, 0x6a, 0x4a, 0x00,
- 0x25, 0x62, 0xdb, 0x19, 0x45, 0xa4, 0x91, 0x03, 0x62, 0xed, 0xf6, 0x4c,
- 0x78, 0x08, 0x85, 0xaa, 0x46, 0x33, 0x9e, 0x68, 0x0b, 0x96, 0x30, 0x54,
- 0x9a, 0xbd, 0x25, 0x96, 0xc6, 0x58, 0x57, 0x75, 0xa9, 0x07, 0x69, 0xb2,
- 0xf1, 0xd9, 0xd6, 0x46, 0x3f, 0x78, 0xb8, 0xd3, 0x10, 0xba, 0x15, 0xe2,
- 0xd5, 0x87, 0x5e, 0x13, 0xde, 0x95, 0x69, 0x9d, 0x4c, 0x4d, 0x0b, 0x44,
- 0xee, 0x64, 0x23, 0xda, 0xd0, 0x28, 0x76, 0x75, 0xad, 0x40, 0x60, 0x94,
- 0xc3, 0x46, 0xa7, 0x93, 0x61, 0xe6, 0x98, 0xc4, 0x7d, 0x87, 0x1d, 0xe3,
- 0x6c, 0xd7, 0x07, 0x9e, 0x94, 0x1e, 0x39, 0x9e, 0xf0, 0x01, 0x51, 0x15,
- 0x36, 0xb1, 0x8f, 0x78, 0x16, 0x8e, 0x75, 0x22, 0xf9, 0xc6, 0x67, 0x9b,
- 0x7c, 0x61, 0x39, 0xfb, 0x9a, 0xd7, 0xf7, 0x46, 0xf2, 0x53, 0x1c, 0x7d,
- 0x23, 0xe1, 0x77, 0x3d, 0xbd, 0x41, 0xc8, 0xf6, 0xbe, 0x37, 0x92, 0xe7,
- 0xf0, 0x7c, 0x7c, 0x4e, 0x1e, 0x2b, 0x79, 0xe5, 0xf9, 0x36, 0x7d, 0xd4,
- 0x11, 0xa5, 0xfb, 0x1a, 0xa2, 0x56, 0xcc, 0x56, 0xd1, 0xbf, 0x5f, 0xe0,
- 0x71, 0xd5, 0x24, 0x36, 0x92, 0xf1, 0xd8, 0x30, 0xa1, 0x7a, 0x41, 0x15,
- 0x7d, 0xd7, 0x5c, 0x2c, 0x84, 0xb4, 0x6b, 0x61, 0xae, 0x15, 0x2b, 0x8d,
- 0x2c, 0x3d, 0xaa, 0x75, 0xb3, 0x49, 0x92, 0xbf, 0xaa, 0x3e, 0x1b, 0x27,
- 0x2f, 0x6c, 0xf0, 0x66, 0x16, 0x29, 0xb3, 0x33, 0xb3, 0x61, 0xeb, 0x62,
- 0xd0, 0xc3, 0x86, 0x7c, 0x7a, 0x9e, 0x0b, 0xd2, 0xf9, 0xac, 0x6c, 0x15,
- 0x58, 0x60, 0x34, 0x29, 0x73, 0xb9, 0x8b, 0xd5, 0x33, 0x68, 0xae, 0x62,
- 0xef, 0x12, 0x7d, 0xef, 0x34, 0x1b, 0x19, 0xda, 0xe8, 0x48, 0x10, 0x41,
- 0x13, 0x1b, 0x09, 0xf7, 0xd4, 0xf6, 0x14, 0x29, 0x77, 0xc5, 0x16, 0x80,
- 0x3a, 0xf9, 0x74, 0x84, 0xa7, 0x9c, 0x49, 0x5e, 0xe9, 0xbe, 0x1d, 0x7f,
- 0x34, 0x14, 0xa1, 0x70, 0x44, 0x61, 0xb3, 0x91, 0xdc, 0x5f, 0xba, 0x09,
- 0xce, 0xd3, 0x3a, 0x7b, 0xf2, 0x48, 0xc5, 0x4b, 0x5e, 0xa5, 0x5a, 0x91,
- 0xae, 0x5a, 0x46, 0x59, 0xbe, 0x87, 0xbc, 0x09, 0x75, 0x0f, 0x02, 0xa1,
- 0x96, 0x40, 0x38, 0x43, 0x09, 0x61, 0xce, 0x80, 0xc1, 0x6d, 0x6a, 0x04,
- 0xc9, 0xcb, 0x86, 0x92, 0x97, 0x9f, 0x3e, 0xf1, 0x06, 0x7d, 0x8f, 0xf9,
- 0xa2, 0xc3, 0x49, 0x65, 0x86, 0xdd, 0x19, 0x25, 0x4c, 0xb0, 0x20, 0xbf,
- 0xe0, 0x5c, 0xc2, 0xf6, 0xc1, 0x90, 0xa7, 0x32, 0x47, 0x6b, 0x6d, 0xbc,
- 0xef, 0x18, 0xf9, 0x87, 0xe0, 0xaf, 0x4a, 0x38, 0xdd, 0xae, 0xd7, 0x12,
- 0xb5, 0xa7, 0x3a, 0xe9, 0xfb, 0x3c, 0x08, 0x26, 0xec, 0xfb, 0xe9, 0x1a,
- 0x4e, 0x85, 0x8b, 0x55, 0x45, 0xb7, 0x8f, 0x3c, 0xc6, 0x42, 0x82, 0xa6,
- 0x44, 0x8b, 0x9c, 0xfe, 0xfa, 0xc5, 0x9b, 0x77, 0x2f, 0x8e, 0x7f, 0xab,
- 0x3a, 0x31, 0x67, 0xad, 0x04, 0x01, 0x1f, 0x72, 0xa9, 0x83, 0x31, 0x18,
- 0x07, 0x5c, 0x0a, 0xbc, 0x10, 0x00, 0x60, 0xea, 0xc6, 0x92, 0x23, 0x3f,
- 0x1d, 0x74, 0x85, 0x00, 0xa7, 0x38, 0xf6, 0x20, 0x27, 0x47, 0x88, 0x53,
- 0xdd, 0xcb, 0x2a, 0x48, 0x6b, 0x29, 0xeb, 0x3e, 0xd0, 0xf7, 0x67, 0x54,
- 0x55, 0x9e, 0x33, 0xc1, 0x2c, 0x08, 0x4d, 0x8c, 0xca, 0x2d, 0x70, 0x8e,
- 0x0d, 0x1c, 0x54, 0x40, 0x7c, 0xb9, 0xd0, 0x5a, 0xd6, 0xb8, 0xf2, 0xe2,
- 0xc2, 0x39, 0x32, 0xba, 0x1e, 0xbf, 0xc3, 0xc3, 0x7e, 0x50, 0x8f, 0xdf,
- 0xb3, 0x4e, 0x41, 0x27, 0x1f, 0x8c, 0x96, 0xd1, 0x71, 0xf7, 0x51, 0x53,
- 0x32, 0x32, 0xcf, 0x73, 0x19, 0x5b, 0x7c, 0x55, 0x81, 0x90, 0xe7, 0xc1,
- 0x12, 0xa9, 0x88, 0x8b, 0x11, 0xbd, 0x9b, 0x1c, 0xbd, 0xa5, 0xc5, 0x3a,
- 0x7d, 0x31, 0x99, 0xd8, 0xbb, 0xb0, 0xd6, 0x38, 0xb5, 0x40, 0x19, 0x23,
- 0x31, 0x92, 0xdd, 0x41, 0xb2, 0x1a, 0x2e, 0xc4, 0x51, 0x92, 0x0d, 0xc8,
- 0x8d, 0x6d, 0x74, 0xbe, 0xb3, 0xd5, 0xc2, 0x1c, 0x18, 0x23, 0xf1, 0xce,
- 0x36, 0x6a, 0xf1, 0xcc, 0x76, 0x09, 0x8f, 0xd0, 0xf3, 0x59, 0x92, 0xa2,
- 0xbd, 0xa6, 0xf4, 0xa3, 0xaf, 0x90, 0xab, 0x25, 0x19, 0x56, 0xa9, 0x82,
- 0xf0, 0xb7, 0xb2, 0x8e, 0x86, 0x71, 0x9b, 0xd0, 0x60, 0xf2, 0xea, 0xec,
- 0xc8, 0x2c, 0xdf, 0xbb, 0xb3, 0x6f, 0x06, 0x62, 0x90, 0xec, 0x62, 0x75,
- 0x91, 0x0d, 0xdf, 0x88, 0xbb, 0xd9, 0xb5, 0x45, 0xe5, 0xa8, 0xd8, 0xbc,
- 0x12, 0x46, 0x43, 0x10, 0xe7, 0x73, 0x9d, 0x8e, 0xd7, 0xec, 0xd2, 0xe3,
- 0xf1, 0xe3, 0xee, 0x2e, 0xf5, 0xd7, 0x27, 0xe2, 0xd2, 0x21, 0x01, 0xb9,
- 0x4b, 0x25, 0x1a, 0xc4, 0xfe, 0x6d, 0xbb, 0xfa, 0x8b, 0xec, 0x72, 0x03,
- 0xac, 0x5f, 0xca, 0x60, 0x3b, 0x01, 0x6c, 0xaf, 0x03, 0x31, 0xb6, 0x6e,
- 0x72, 0xaa, 0xca, 0x63, 0x81, 0x0e, 0xc5, 0xfa, 0xcb, 0x0e, 0x52, 0xb3,
- 0x63, 0x69, 0x35, 0xb3, 0x08, 0x14, 0xa1, 0x7c, 0xa8, 0x81, 0xaa, 0x88,
- 0x79, 0xa7, 0x88, 0x9e, 0x07, 0x85, 0x45, 0xba, 0x68, 0xd4, 0x78, 0x6e,
- 0x11, 0x19, 0xd5, 0xa9, 0xd8, 0xa3, 0xad, 0xc4, 0xb3, 0x36, 0x76, 0x37,
- 0x5e, 0x72, 0x07, 0xeb, 0x2a, 0xa1, 0x26, 0xcf, 0xf9, 0xdf, 0x38, 0xbd,
- 0xd3, 0x95, 0x5b, 0x95, 0x73, 0x36, 0x2d, 0xca, 0x1b, 0x1c, 0x83, 0xcc,
- 0x99, 0xab, 0x92, 0xf9, 0x57, 0x51, 0xb8, 0xac, 0x18, 0xd4, 0x10, 0xc3,
- 0x5c, 0x84, 0x95, 0x7b, 0x37, 0x27, 0x5b, 0xd6, 0x02, 0x7b, 0x46, 0x2e,
- 0x46, 0x6a, 0x2d, 0x92, 0xe1, 0xec, 0x41, 0x3a, 0x8b, 0x78, 0x19, 0xc3,
- 0x74, 0xf1, 0x4e, 0x6f, 0xa8, 0x31, 0x11, 0xa3, 0x9e, 0xde, 0xcc, 0x7a,
- 0x40, 0x72, 0xc9, 0xec, 0x44, 0x21, 0x90, 0x5c, 0x59, 0x80, 0x92, 0x24,
- 0x0e, 0xbf, 0x7f, 0xe9, 0xd5, 0xeb, 0xd4, 0x28, 0x4b, 0xa6, 0x17, 0x11,
- 0x48, 0xfb, 0x60, 0x68, 0x33, 0x17, 0x2a, 0x3c, 0x26, 0x27, 0xeb, 0x2c,
- 0xcb, 0x96, 0xb6, 0x96, 0x55, 0x4e, 0x19, 0xae, 0x14, 0xdd, 0x03, 0xaf,
- 0x2a, 0xd5, 0x11, 0xa3, 0x8a, 0xd4, 0x3d, 0xa3, 0x13, 0xd6, 0x31, 0xf6,
- 0x22, 0x37, 0x10, 0x10, 0x49, 0x6e, 0xdd, 0xdd, 0xa7, 0xfb, 0x9f, 0x9a,
- 0xbb, 0xf9, 0x8e, 0xaa, 0x48, 0xb9, 0x25, 0xe3, 0x22, 0x04, 0xd1, 0xe6,
- 0xce, 0x3c, 0xb7, 0xae, 0x06, 0xa6, 0x0b, 0x60, 0x53, 0x52, 0x43, 0x8d,
- 0x20, 0x03, 0x95, 0xe0, 0xa8, 0x84, 0x88, 0x79, 0x66, 0x11, 0x65, 0xc1,
- 0x24, 0x64, 0x94, 0xd6, 0x89, 0x23, 0xc9, 0xc6, 0x1e, 0x01, 0x1b, 0xc9,
- 0x8e, 0x8a, 0x31, 0x1b, 0x96, 0xf2, 0xf6, 0xe8, 0xec, 0xad, 0xf9, 0x67,
- 0x72, 0x76, 0xf2, 0xb6, 0x07, 0x12, 0xba, 0x61, 0x20, 0x30, 0x2c, 0x9a,
- 0x86, 0xaf, 0xd0, 0x32, 0xb7, 0xe1, 0x62, 0x29, 0x8e, 0x9f, 0xd9, 0x0e,
- 0x85, 0x17, 0x2d, 0x46, 0x7d, 0x40, 0xe0, 0xb4, 0x5a, 0xfe, 0x44, 0x2f,
- 0xcc, 0xfd, 0xb0, 0x76, 0x62, 0xbc, 0xe7, 0xeb, 0x29, 0x84, 0x26, 0x0c,
- 0x62, 0xc4, 0x8c, 0x2d, 0xa3, 0xa7, 0xd1, 0x1a, 0xa5, 0x0d, 0x2e, 0x01,
- 0x57, 0xb7, 0x4c, 0x33, 0x54, 0x7a, 0x60, 0x94, 0x39, 0xb0, 0xbc, 0xb6,
- 0x21, 0xce, 0xea, 0xc5, 0x1d, 0x28, 0xec, 0xd0, 0x20, 0xd9, 0x24, 0xc3,
- 0xb2, 0xc8, 0x25, 0xf7, 0xd0, 0xaf, 0x91, 0x85, 0xb6, 0xdc, 0x84, 0xeb,
- 0x72, 0x91, 0xb1, 0xed, 0x9f, 0xec, 0x40, 0x96, 0x39, 0xd5, 0x52, 0x3e,
- 0x39, 0x67, 0xd4, 0xa7, 0x10, 0x71, 0xcb, 0x62, 0x97, 0x62, 0x97, 0x37,
- 0xba, 0x55, 0x08, 0x64, 0x5f, 0x32, 0xa3, 0xa9, 0x36, 0x84, 0x0a, 0xbb,
- 0xa1, 0xa3, 0xf2, 0x40, 0x4d, 0xdb, 0xcc, 0x7b, 0xb7, 0xcb, 0x64, 0x00,
- 0xfb, 0x14, 0xe7, 0x2c, 0x94, 0x29, 0xa4, 0x38, 0x3e, 0x14, 0x77, 0xa5,
- 0x01, 0x95, 0x24, 0x4b, 0xb8, 0x84, 0xbb, 0x31, 0x15, 0x6f, 0xc5, 0x53,
- 0x51, 0x37, 0x1b, 0x41, 0x11, 0x20, 0xd5, 0xcb, 0xd2, 0xb6, 0x6c, 0xf9,
- 0x50, 0x92, 0xa6, 0x3b, 0x4c, 0xb7, 0x25, 0xcf, 0x85, 0x6c, 0x56, 0x85,
- 0x36, 0xbf, 0x2e, 0x7b, 0x17, 0xef, 0x6a, 0xf9, 0xf0, 0xf2, 0xb7, 0xd2,
- 0x4d, 0x47, 0x82, 0xa1, 0xe8, 0x2b, 0x67, 0x64, 0x28, 0xa9, 0x34, 0x5f,
- 0x0c, 0x9e, 0x2f, 0x79, 0x57, 0x08, 0x36, 0x5d, 0x61, 0x74, 0x0b, 0x8a,
- 0x86, 0x98, 0xd9, 0x45, 0x03, 0xec, 0x23, 0xa2, 0xb8, 0xf8, 0xd2, 0x9a,
- 0x95, 0x2c, 0xd0, 0x53, 0xe9, 0xdf, 0x10, 0x6d, 0x98, 0x6c, 0xc8, 0x14,
- 0x5f, 0xa0, 0x37, 0x8d, 0xb4, 0xe7, 0xf4, 0x92, 0x69, 0xd3, 0x9d, 0x29,
- 0x65, 0x54, 0x05, 0x13, 0x3d, 0xf5, 0x37, 0x4d, 0x02, 0x45, 0x28, 0x50,
- 0xd7, 0xf2, 0x82, 0x86, 0x71, 0x9d, 0xda, 0xf8, 0x5c, 0x02, 0xa8, 0x15,
- 0xcb, 0x74, 0x28, 0x04, 0x3c, 0x6b, 0x55, 0xcc, 0x91, 0xe4, 0xd0, 0x46,
- 0xa5, 0x52, 0x31, 0x70, 0x1d, 0x24, 0x85, 0x0f, 0x62, 0xd5, 0x22, 0xc9,
- 0x36, 0x34, 0x50, 0x7b, 0x76, 0xbd, 0xa8, 0x20, 0x44, 0xa0, 0x6f, 0xb1,
- 0x65, 0x8a, 0x84, 0xad, 0xb4, 0x95, 0x17, 0x39, 0xb0, 0x0a, 0xcb, 0x6a,
- 0x1b, 0x39, 0x94, 0x19, 0x95, 0xa1, 0x31, 0xd7, 0xa3, 0x0b, 0xc9, 0x8e,
- 0x18, 0x38, 0xac, 0x28, 0xc7, 0xc1, 0xb1, 0xa6, 0xf1, 0x71, 0x24, 0x6d,
- 0x51, 0xea, 0x41, 0x64, 0x3e, 0x42, 0xd5, 0x38, 0x16, 0x7b, 0xcc, 0x35,
- 0x3c, 0x29, 0x04, 0xb2, 0x2d, 0x8e, 0xc9, 0x89, 0xb1, 0xd5, 0x24, 0x69,
- 0x5f, 0x49, 0xe4, 0x43, 0xb8, 0x61, 0x5f, 0x06, 0xb4, 0xd6, 0xef, 0xe4,
- 0x64, 0xce, 0xaa, 0x91, 0x68, 0x91, 0xf6, 0xc9, 0x24, 0xcd, 0xa1, 0xdd,
- 0x5b, 0x9d, 0x35, 0xab, 0x65, 0x78, 0xcf, 0x3b, 0x28, 0x09, 0xdb, 0xa2,
- 0xba, 0x4a, 0xbd, 0x21, 0x02, 0xc0, 0xc9, 0x2d, 0xbf, 0x8f, 0x6f, 0x1c,
- 0xad, 0xd2, 0x17, 0xdc, 0xee, 0x7d, 0xa0, 0x43, 0x7a, 0xbd, 0x8c, 0x91,
- 0xd4, 0x38, 0x30, 0xf2, 0xc5, 0xce, 0x80, 0x31, 0x9d, 0x24, 0xab, 0x98,
- 0x1d, 0xef, 0xf6, 0x6d, 0xb3, 0x2e, 0xde, 0x78, 0xc3, 0x33, 0xa3, 0xd9,
- 0x54, 0x52, 0xec, 0x13, 0xbb, 0xb3, 0xf9, 0x0e, 0x95, 0x13, 0x71, 0x7e,
- 0xb7, 0x3e, 0xe9, 0x9d, 0xfa, 0x9a, 0x51, 0x0d, 0x76, 0x9f, 0xed, 0x8d,
- 0x77, 0x9f, 0x7c, 0x3a, 0xde, 0xdd, 0x19, 0xef, 0x0e, 0xfc, 0xb1, 0x71,
- 0x09, 0x14, 0xb3, 0xfb, 0x7e, 0x43, 0x5d, 0x63, 0x31, 0xe2, 0x7b, 0xfa,
- 0x4b, 0x09, 0x70, 0x0f, 0x8b, 0xbb, 0x31, 0x9e, 0x1b, 0x73, 0xf5, 0xd4,
- 0xa0, 0x8f, 0x05, 0xe5, 0x10, 0x06, 0x7e, 0x90, 0x91, 0x8b, 0x32, 0x62,
- 0x5a, 0x5c, 0xe6, 0x20, 0x23, 0x8d, 0x6f, 0xf7, 0xd6, 0x89, 0xce, 0x3a,
- 0x23, 0xf4, 0x72, 0xe9, 0x4a, 0x3a, 0x9d, 0xf1, 0x11, 0x29, 0x4b, 0x17,
- 0x64, 0x02, 0x8f, 0xab, 0xfb, 0x10, 0xb3, 0x6d, 0xb6, 0xf9, 0xd1, 0x5a,
- 0x1f, 0xd0, 0xe2, 0xec, 0xa1, 0xeb, 0xc2, 0x04, 0x12, 0x88, 0x64, 0x17,
- 0x87, 0x50, 0xf0, 0xe5, 0xf8, 0x41, 0x95, 0xb8, 0x9d, 0xab, 0xdc, 0xbb,
- 0x64, 0x08, 0x5e, 0xd1, 0xb2, 0xb0, 0x16, 0x76, 0x05, 0xb5, 0xac, 0xd1,
- 0x49, 0x5d, 0xc0, 0x48, 0x0b, 0xe4, 0xc8, 0x4c, 0x5a, 0x9b, 0xc3, 0x3b,
- 0x7f, 0xf9, 0x8b, 0xe3, 0x48, 0x13, 0x0a, 0x8a, 0xa1, 0x2a, 0x7a, 0x8f,
- 0x87, 0x94, 0xce, 0x48, 0x9e, 0x7d, 0x2e, 0x47, 0x34, 0x38, 0xf8, 0x91,
- 0x8c, 0xc3, 0x3f, 0x8f, 0x7e, 0x34, 0x7f, 0xfe, 0x3c, 0xd0, 0x43, 0xcd,
- 0xc0, 0x9f, 0x36, 0xd3, 0xda, 0x03, 0x69, 0xa6, 0x0d, 0x1a, 0x26, 0x16,
- 0x5b, 0x99, 0x39, 0x32, 0xf6, 0xeb, 0xec, 0xf0, 0x94, 0x0f, 0x63, 0xc5,
- 0xce, 0x70, 0xa2, 0x66, 0xf0, 0x21, 0x12, 0xeb, 0xc1, 0xc2, 0x09, 0x13,
- 0x83, 0xe9, 0xc4, 0xae, 0xa5, 0xf7, 0xca, 0xd0, 0x85, 0x3a, 0xdc, 0x30,
- 0x07, 0x48, 0x8d, 0x7c, 0x7b, 0x09, 0xfb, 0x0a, 0xe3, 0xcb, 0x18, 0xbe,
- 0xab, 0x82, 0xb4, 0x54, 0xa0, 0x04, 0x74, 0xa8, 0x61, 0x03, 0xf6, 0x38,
- 0xdc, 0x98, 0x21, 0x0d, 0x13, 0xc1, 0xdd, 0xe7, 0xcc, 0x9e, 0x46, 0x10,
- 0x9f, 0xcd, 0x32, 0x98, 0x85, 0x52, 0x6e, 0x5b, 0xe5, 0xf5, 0x07, 0xcc,
- 0x4f, 0x92, 0xd4, 0xbc, 0xd0, 0x21, 0x8c, 0xe7, 0x13, 0x2f, 0x97, 0x5c,
- 0xd0, 0xf1, 0x6c, 0x3e, 0xb9, 0xb7, 0xb2, 0xed, 0x92, 0x94, 0xd8, 0x76,
- 0x85, 0xbd, 0x88, 0x02, 0x7b, 0xca, 0x63, 0x55, 0xf6, 0x00, 0xbc, 0x59,
- 0x8e, 0x0f, 0x4a, 0x4e, 0x8d, 0x9c, 0x6b, 0x49, 0xc3, 0x03, 0x81, 0x4c,
- 0x38, 0x35, 0x9e, 0x6e, 0xbf, 0xad, 0xee, 0xad, 0x85, 0xda, 0x90, 0x30,
- 0x14, 0x93, 0xa6, 0xea, 0x10, 0x54, 0x61, 0xa5, 0x83, 0x50, 0x30, 0xab,
- 0xcc, 0x30, 0xa8, 0x40, 0x06, 0x21, 0xe3, 0xf0, 0xc9, 0x80, 0x93, 0x57,
- 0x65, 0xba, 0x4f, 0xa2, 0xba, 0x02, 0x1d, 0x34, 0x27, 0x8c, 0xce, 0xd9,
- 0xa6, 0x8e, 0xc5, 0xa7, 0x55, 0xc7, 0xbf, 0x86, 0x5b, 0xb3, 0x2d, 0x67,
- 0x56, 0xde, 0x14, 0xb0, 0x2c, 0x41, 0xb1, 0xe8, 0xb2, 0x6f, 0x1a, 0xfe,
- 0x22, 0x56, 0x1b, 0xc0, 0xbb, 0x54, 0xf7, 0x76, 0x42, 0x53, 0x4a, 0xfd,
- 0x21, 0xe7, 0x45, 0x1e, 0xe5, 0xcb, 0xfb, 0x17, 0x50, 0x81, 0x44, 0xb1,
- 0xa5, 0x2d, 0xce, 0x62, 0x6f, 0x98, 0x7a, 0x75, 0x79, 0x49, 0x78, 0x59,
- 0x61, 0xa4, 0x5e, 0x53, 0xbb, 0x84, 0x06, 0x29, 0xa4, 0x64, 0x18, 0x39,
- 0x8d, 0xbc, 0x05, 0x05, 0x4a, 0x9d, 0x09, 0xc3, 0xa9, 0x5d, 0xfd, 0x81,
- 0x5e, 0x60, 0x07, 0x94, 0x50, 0x93, 0xe3, 0xed, 0x24, 0x99, 0x2a, 0x1b,
- 0xe9, 0x40, 0xbb, 0x7c, 0x30, 0x6f, 0x22, 0xa5, 0x23, 0x99, 0x23, 0x92,
- 0xad, 0xa1, 0x9f, 0xf7, 0x85, 0x0a, 0x3b, 0x11, 0x38, 0xf5, 0xfa, 0x74,
- 0xfc, 0xf4, 0xd1, 0x78, 0xa7, 0x6b, 0x06, 0xe3, 0x90, 0x59, 0x8e, 0x4f,
- 0x60, 0x51, 0x64, 0xad, 0xc9, 0x12, 0x56, 0x3a, 0xa3, 0xa8, 0x09, 0xac,
- 0x6c, 0x7e, 0x21, 0x50, 0xc3, 0x8c, 0x15, 0x5b, 0x59, 0x10, 0x4e, 0xc5,
- 0x20, 0xa1, 0x49, 0x77, 0x6f, 0xde, 0x0b, 0x5a, 0xd2, 0xfb, 0x4a, 0xbd,
- 0x32, 0x3b, 0xf5, 0x25, 0xae, 0x47, 0xe3, 0xbd, 0x80, 0x38, 0xea, 0xf9,
- 0x68, 0x3a, 0x9d, 0x4a, 0x71, 0x5f, 0x16, 0x70, 0xb6, 0x45, 0xc0, 0xe8,
- 0xb1, 0x3b, 0x4c, 0x32, 0xd9, 0xb3, 0xc3, 0xc3, 0x43, 0x91, 0x85, 0xce,
- 0xae, 0x3a, 0x52, 0x89, 0xc5, 0xc7, 0x14, 0xa9, 0x2c, 0x96, 0x54, 0x58,
- 0x5f, 0xad, 0x1a, 0x10, 0x3c, 0x2b, 0x03, 0xca, 0xbe, 0x6d, 0x96, 0x78,
- 0x07, 0xff, 0xbc, 0x34, 0x9b, 0x3a, 0x74, 0xe1, 0x8e, 0x21, 0x5a, 0x6b,
- 0x95, 0x2d, 0xb9, 0x76, 0x1b, 0xbd, 0x28, 0x6d, 0x3b, 0xb0, 0x08, 0xdf,
- 0xbc, 0xe1, 0x23, 0x8d, 0xea, 0x00, 0xeb, 0x58, 0x88, 0xb0, 0xb6, 0x42,
- 0xdd, 0xa6, 0xb9, 0xc4, 0x96, 0xa5, 0xd2, 0x57, 0xb7, 0xed, 0x7b, 0xf6,
- 0x43, 0x96, 0xba, 0xbd, 0x25, 0x4f, 0x7a, 0xb7, 0x24, 0xba, 0xf8, 0xd0,
- 0xcc, 0xb0, 0xec, 0x9b, 0x87, 0x04, 0x79, 0x7e, 0x28, 0x87, 0xea, 0xf0,
- 0x0a, 0xb1, 0x61, 0x73, 0x6c, 0x8e, 0x19, 0x72, 0xcd, 0x8c, 0x44, 0xee,
- 0xa0, 0xc9, 0xe4, 0x78, 0xfb, 0xec, 0x78, 0x12, 0x44, 0xd1, 0xdf, 0xc1,
- 0xec, 0x4c, 0xe6, 0xe5, 0xb6, 0xd9, 0x94, 0x97, 0x88, 0x8a, 0x5b, 0x88,
- 0xa1, 0xc7, 0x9e, 0x12, 0xee, 0x25, 0x0a, 0x80, 0xb6, 0x2a, 0x34, 0xc1,
- 0xc6, 0xde, 0xff, 0x45, 0x56, 0x10, 0x4e, 0x0a, 0xc4, 0x00, 0x3a, 0x01,
- 0x52, 0xdd, 0xf4, 0xcd, 0x8b, 0x33, 0xa4, 0xcc, 0x34, 0x12, 0x26, 0x02,
- 0x33, 0x52, 0x68, 0x5d, 0xbf, 0xb1, 0xb8, 0x3b, 0xe4, 0xf9, 0x49, 0xa7,
- 0xae, 0x94, 0x9b, 0x0a, 0xfc, 0x0b, 0x49, 0xc9, 0x14, 0xc2, 0x5b, 0xb7,
- 0xfc, 0xa8, 0x1b, 0xca, 0x37, 0x4c, 0x97, 0xe6, 0xbb, 0xbb, 0xb1, 0x1b,
- 0xdd, 0x0d, 0x5e, 0x80, 0xf8, 0x71, 0x78, 0x2b, 0xd7, 0x81, 0x2e, 0xb4,
- 0x97, 0x9f, 0x82, 0xe1, 0xcf, 0xcb, 0xcb, 0x1c, 0xd6, 0x44, 0xda, 0x2f,
- 0xdf, 0x79, 0x17, 0x98, 0x5a, 0x79, 0x75, 0x14, 0x06, 0xaa, 0x85, 0xb0,
- 0xcf, 0x47, 0x04, 0x77, 0x8d, 0x5d, 0x53, 0xf5, 0x63, 0xd9, 0x24, 0xe0,
- 0x30, 0xc7, 0x96, 0xa0, 0x7e, 0xf3, 0xa9, 0x51, 0x33, 0xa6, 0x88, 0x20,
- 0xa1, 0xe4, 0xc3, 0xba, 0x1d, 0xb6, 0x9b, 0xb7, 0x50, 0x84, 0xd5, 0xca,
- 0x5a, 0x87, 0xfe, 0x0e, 0x92, 0x36, 0x64, 0x86, 0x6b, 0x6d, 0xf9, 0xed,
- 0x7c, 0xc8, 0xaf, 0xa1, 0xd5, 0x5d, 0x06, 0x17, 0xb7, 0xad, 0x5e, 0x1f,
- 0x01, 0x2a, 0x26, 0x31, 0x17, 0xa6, 0x25, 0x99, 0xa0, 0x4b, 0xae, 0x16,
- 0x2d, 0x6d, 0x34, 0x1b, 0x46, 0x8b, 0x09, 0x0d, 0xbb, 0xb5, 0x58, 0x19,
- 0x44, 0xb9, 0x5d, 0x99, 0xa3, 0x85, 0x15, 0xa8, 0xc1, 0xc3, 0x9d, 0xe6,
- 0xbe, 0x3e, 0x72, 0x35, 0x9f, 0x3a, 0x80, 0x82, 0xed, 0x7a, 0x50, 0xe4,
- 0xcb, 0x84, 0x1f, 0xeb, 0x26, 0x07, 0x60, 0x45, 0x8f, 0xa2, 0xc4, 0x82,
- 0xf0, 0x99, 0xab, 0x26, 0xc3, 0xe7, 0x83, 0x25, 0xc9, 0xcc, 0x46, 0xc0,
- 0x02, 0x30, 0x4d, 0x9d, 0xfc, 0xff, 0x63, 0xc3, 0xd5, 0x36, 0x1c, 0x47,
- 0x6c, 0x19, 0x16, 0xa1, 0x2a, 0xa8, 0x70, 0xe0, 0xdc, 0x57, 0x43, 0x37,
- 0x60, 0xd7, 0x6f, 0x58, 0x9b, 0x8c, 0xa7, 0xb7, 0x7e, 0x3c, 0xdf, 0x1c,
- 0xbd, 0x78, 0xd9, 0x8b, 0xc5, 0xf2, 0x7b, 0x94, 0x3e, 0x70, 0x96, 0xd1,
- 0xf3, 0x8c, 0x4b, 0x58, 0xad, 0xd4, 0xd8, 0x42, 0xbb, 0xa3, 0x84, 0xca,
- 0x10, 0x3c, 0x19, 0xe1, 0xd0, 0xe0, 0x84, 0xf4, 0x56, 0x72, 0xea, 0xb5,
- 0xae, 0xf8, 0x11, 0x0c, 0x62, 0xf5, 0x86, 0xb4, 0xcd, 0xf9, 0x5a, 0x1e,
- 0x21, 0x5f, 0x12, 0x21, 0xcf, 0xcb, 0xf3, 0xf2, 0xe2, 0x62, 0xcd, 0xed,
- 0xce, 0x68, 0xd6, 0x94, 0x57, 0xc5, 0x04, 0x33, 0xc0, 0x32, 0xe2, 0xbd,
- 0x73, 0x8c, 0x9e, 0xa0, 0x7a, 0xaa, 0x81, 0x24, 0x3b, 0x08, 0xd4, 0x5d,
- 0x70, 0xf1, 0x38, 0x85, 0xcb, 0xe9, 0x1d, 0xaa, 0x26, 0x12, 0x30, 0x85,
- 0xcd, 0xbd, 0x4e, 0xc5, 0x24, 0xc9, 0x85, 0x89, 0xea, 0xe4, 0x3f, 0xfe,
- 0xf3, 0xc7, 0x9f, 0x23, 0xa5, 0x99, 0x60, 0x34, 0xbc, 0xe2, 0x6c, 0x45,
- 0xf6, 0x7c, 0x34, 0x75, 0x36, 0xbf, 0x70, 0x45, 0x70, 0xa8, 0x50, 0x76,
- 0xa7, 0xa6, 0x20, 0x94, 0xad, 0x79, 0x16, 0x81, 0x58, 0xaf, 0x34, 0xa2,
- 0x8a, 0x50, 0x90, 0x25, 0x5b, 0x18, 0xc5, 0x49, 0xa8, 0xae, 0xa1, 0x8b,
- 0xc2, 0xb6, 0x85, 0x07, 0x9c, 0x25, 0x3c, 0x1a, 0x94, 0x80, 0xb8, 0xa0,
- 0xae, 0x2f, 0xfe, 0xdd, 0xdb, 0x57, 0xd6, 0x52, 0xea, 0x33, 0xe4, 0x2b,
- 0x43, 0xa4, 0x77, 0xa3, 0xec, 0x2e, 0x3b, 0x37, 0x0c, 0xa2, 0x56, 0xd4,
- 0x93, 0xd1, 0xa2, 0x4e, 0x9e, 0x2f, 0x0c, 0x79, 0xe7, 0x3d, 0x78, 0x35,
- 0xdf, 0xe0, 0xb5, 0x44, 0x5f, 0xb3, 0xc9, 0xe6, 0x5a, 0x05, 0x9d, 0xd3,
- 0x80, 0x25, 0x07, 0xba, 0x6d, 0x0b, 0x49, 0x28, 0x5f, 0x25, 0xb0, 0x26,
- 0x5c, 0x3f, 0x12, 0x81, 0x9d, 0x70, 0x5e, 0x3d, 0xd0, 0x50, 0x92, 0xf5,
- 0x57, 0x46, 0xf6, 0x34, 0xa3, 0x37, 0x3a, 0x3a, 0x94, 0xfd, 0x7a, 0x28,
- 0xd4, 0x54, 0x29, 0x44, 0x6d, 0x14, 0x43, 0x43, 0x45, 0x1e, 0x51, 0xd0,
- 0x0c, 0xbf, 0xf1, 0x67, 0x34, 0x56, 0xbc, 0x77, 0x1f, 0x58, 0x16, 0x84,
- 0x11, 0xca, 0x41, 0xe7, 0x99, 0x95, 0x9c, 0xd9, 0x8a, 0x9a, 0xb8, 0xe0,
- 0x57, 0x6c, 0x6d, 0x4e, 0xe5, 0x57, 0xa8, 0x06, 0x9d, 0x13, 0x7b, 0xad,
- 0xa6, 0x9d, 0x87, 0xb0, 0x60, 0xcc, 0x35, 0xa5, 0xf3, 0x47, 0x4e, 0xc6,
- 0x2e, 0x28, 0xf1, 0x72, 0x3e, 0xcf, 0xe6, 0xcc, 0xdd, 0x24, 0x2a, 0xcb,
- 0xb5, 0x19, 0x2b, 0x6f, 0x6c, 0xcb, 0xc0, 0x67, 0x0a, 0x0f, 0x41, 0x7c,
- 0x40, 0x0d, 0x17, 0x51, 0x57, 0x31, 0xc1, 0xc4, 0xb1, 0x72, 0x6c, 0x96,
- 0x45, 0xd4, 0x0f, 0xaa, 0xe6, 0x40, 0x55, 0x4f, 0x19, 0x84, 0x07, 0x6f,
- 0x53, 0x74, 0x06, 0xd8, 0x07, 0x6f, 0xf8, 0x91, 0x6c, 0x78, 0xa7, 0x39,
- 0xb8, 0x6a, 0x9e, 0x3c, 0x7e, 0xfc, 0x98, 0x5d, 0x35, 0x83, 0x57, 0xd4,
- 0xf1, 0xdb, 0xa3, 0xc3, 0x93, 0xd7, 0xaf, 0x8f, 0xde, 0xbc, 0x3c, 0x7a,
- 0xa9, 0x01, 0x23, 0xde, 0x4c, 0x1c, 0x75, 0x84, 0x33, 0x42, 0x90, 0xa1,
- 0x59, 0xe7, 0xdd, 0xc7, 0x3b, 0xa3, 0xbd, 0xc7, 0x3b, 0x89, 0xa1, 0xc5,
- 0xd4, 0xa6, 0xbd, 0xa5, 0x73, 0x80, 0x0e, 0x24, 0x57, 0x2b, 0x23, 0xa5,
- 0x01, 0x84, 0xbc, 0x01, 0xe0, 0x84, 0x62, 0x61, 0x15, 0x59, 0x03, 0x35,
- 0x3c, 0x12, 0x58, 0x30, 0x1e, 0x58, 0x84, 0x55, 0xe7, 0xef, 0x14, 0xb1,
- 0x87, 0x08, 0x74, 0x6f, 0x07, 0x1d, 0x8d, 0x93, 0xaf, 0x8c, 0xe0, 0x71,
- 0x51, 0xde, 0x32, 0x2d, 0x1e, 0x5e, 0x19, 0x79, 0x34, 0x0b, 0x3d, 0x9d,
- 0xed, 0xf7, 0xf1, 0xfa, 0x3e, 0xbf, 0xfe, 0x07, 0xba, 0xf8, 0x1f, 0x3f,
- 0x6b, 0xeb, 0xa5, 0xe6, 0x20, 0x53, 0xd1, 0x1a, 0x4d, 0x71, 0xec, 0x81,
- 0x4b, 0x98, 0xb0, 0x36, 0xff, 0xcd, 0x8b, 0x53, 0x3c, 0x6d, 0xb4, 0xfa,
- 0x93, 0x1f, 0xfe, 0xe6, 0x72, 0x46, 0xaf, 0x77, 0x35, 0x18, 0x52, 0x52,
- 0x63, 0xa9, 0x7a, 0x70, 0x11, 0xfa, 0xcc, 0x9d, 0x1c, 0x6b, 0xf5, 0x49,
- 0xbd, 0x5f, 0x68, 0x86, 0x08, 0x60, 0x05, 0x18, 0x29, 0x15, 0xf6, 0x94,
- 0x4d, 0xab, 0xb4, 0x36, 0x59, 0x88, 0x67, 0x41, 0xc6, 0x67, 0x0c, 0xe3,
- 0x36, 0xe7, 0xe2, 0x56, 0x79, 0x31, 0x63, 0xa0, 0xd0, 0x96, 0x5d, 0xb7,
- 0xa9, 0x56, 0x59, 0xcc, 0xe8, 0x3a, 0x5e, 0x17, 0x99, 0x02, 0x79, 0xb6,
- 0xca, 0x17, 0x69, 0x95, 0xcf, 0xef, 0x94, 0xc0, 0x6f, 0xb8, 0xc6, 0x37,
- 0x47, 0x5a, 0x91, 0xeb, 0xcc, 0xc1, 0xde, 0x97, 0x41, 0xd4, 0xaa, 0x2d,
- 0x58, 0x05, 0x22, 0x66, 0x4c, 0x2f, 0x71, 0x71, 0xf2, 0x62, 0xad, 0x85,
- 0x04, 0x6b, 0x9b, 0x0f, 0xac, 0x2c, 0x11, 0xcd, 0xe8, 0x85, 0x74, 0xfb,
- 0xd5, 0xab, 0xe3, 0xa3, 0xad, 0xe4, 0xab, 0xac, 0x91, 0xa4, 0x29, 0x0d,
- 0x50, 0xc6, 0x6d, 0xff, 0x2f, 0x24, 0x5b, 0x59, 0x44, 0x61, 0x49, 0x39,
- 0x8e, 0x86, 0x92, 0x89, 0x09, 0x8f, 0xe4, 0x0c, 0xcd, 0xc0, 0xe2, 0xcd,
- 0xa1, 0x29, 0xc2, 0x9d, 0xa7, 0xa1, 0x69, 0xea, 0x1e, 0x95, 0x9d, 0x8f,
- 0x84, 0xed, 0x2a, 0xc2, 0xc4, 0xd8, 0x89, 0x99, 0xec, 0xf7, 0xd6, 0x08,
- 0x04, 0x0c, 0x5a, 0x42, 0xa6, 0xd5, 0xdd, 0x9c, 0xd7, 0xcb, 0x39, 0xb8,
- 0x41, 0x14, 0xe2, 0x68, 0x9e, 0xb9, 0x44, 0x41, 0xa2, 0x7c, 0xa3, 0x38,
- 0x38, 0x3c, 0x58, 0x62, 0xa8, 0x98, 0xaf, 0xb7, 0x70, 0xdf, 0xe8, 0xc2,
- 0x21, 0x6a, 0x85, 0xff, 0xdd, 0xfe, 0x62, 0x1d, 0x1c, 0xdd, 0xd1, 0xad,
- 0x11, 0xc9, 0x75, 0x4e, 0x44, 0x51, 0x54, 0x7d, 0x58, 0x5d, 0x8e, 0x2a,
- 0x71, 0xb6, 0x28, 0x21, 0x22, 0xb9, 0x92, 0xe9, 0x4f, 0x35, 0xdd, 0xbf,
- 0x49, 0x7d, 0x49, 0x15, 0x1d, 0xa8, 0xec, 0xac, 0xbd, 0x5d, 0x32, 0xea,
- 0xd1, 0x06, 0x29, 0x47, 0x4b, 0xb9, 0x32, 0x57, 0x96, 0x9a, 0x88, 0x7c,
- 0x8b, 0x23, 0xd8, 0xdf, 0x22, 0x2c, 0xea, 0x78, 0xf1, 0xd8, 0x95, 0x94,
- 0xd9, 0x20, 0x53, 0x0c, 0x67, 0xa5, 0xd5, 0x51, 0x8f, 0x81, 0x64, 0xcb,
- 0x89, 0x67, 0x90, 0x8a, 0xc1, 0xb3, 0x4d, 0x87, 0xc5, 0xe7, 0x15, 0x64,
- 0x39, 0x4e, 0x18, 0xa3, 0x42, 0x49, 0x15, 0x63, 0x67, 0x47, 0x04, 0x25,
- 0xe9, 0xdd, 0x67, 0x41, 0x5d, 0x71, 0xdd, 0xef, 0xa6, 0xad, 0x84, 0x86,
- 0x92, 0xa2, 0x59, 0x3b, 0x12, 0x27, 0x81, 0x1e, 0x82, 0x24, 0xfa, 0xe9,
- 0x87, 0x9c, 0xf2, 0x1a, 0x57, 0x24, 0xc9, 0xa5, 0x85, 0x26, 0x72, 0xf1,
- 0x30, 0x6d, 0x49, 0x1a, 0x43, 0x6e, 0x63, 0xca, 0x86, 0xe8, 0x29, 0x21,
- 0x4a, 0x52, 0x12, 0xec, 0x05, 0x40, 0x1e, 0xd6, 0xf1, 0xcc, 0x29, 0x21,
- 0xc2, 0x9e, 0x16, 0x95, 0xd1, 0x90, 0x5e, 0x49, 0x62, 0x62, 0xa4, 0x82,
- 0x85, 0x39, 0xc6, 0x40, 0x00, 0x81, 0xa9, 0xee, 0x46, 0xf0, 0xf5, 0x36,
- 0xaa, 0x8c, 0xcb, 0x63, 0x8d, 0x8d, 0x12, 0xba, 0x40, 0x46, 0x81, 0x56,
- 0x9a, 0xc0, 0x94, 0x65, 0x79, 0x0c, 0x6f, 0xbb, 0xcc, 0xaf, 0xa3, 0x85,
- 0x77, 0x52, 0x3b, 0x30, 0x0a, 0xf2, 0xb0, 0xc3, 0x70, 0xb5, 0xc3, 0xd5,
- 0x23, 0xce, 0x66, 0x6d, 0x80, 0xdc, 0xca, 0xca, 0x06, 0x27, 0x78, 0x0e,
- 0x61, 0x15, 0x68, 0x76, 0xc5, 0x81, 0x21, 0xff, 0x64, 0xf0, 0x8d, 0x91,
- 0x7c, 0x0e, 0x06, 0xb6, 0xf6, 0x0b, 0x99, 0x65, 0x89, 0x3b, 0xb6, 0x28,
- 0x87, 0xf4, 0x8b, 0x22, 0x28, 0x0b, 0xc4, 0xd8, 0x06, 0x22, 0xb4, 0x37,
- 0xca, 0xb8, 0x6c, 0xbe, 0x4e, 0x18, 0x15, 0x6d, 0xf3, 0x67, 0x38, 0x01,
- 0x35, 0x4c, 0x1e, 0xc4, 0x90, 0x7e, 0x18, 0x1d, 0x52, 0xe7, 0xa3, 0x6f,
- 0xa8, 0xb9, 0xbf, 0x0e, 0xac, 0xbd, 0xb8, 0xfb, 0x95, 0x19, 0xf8, 0x27,
- 0xb1, 0x88, 0x21, 0xa7, 0x9f, 0x3a, 0xd8, 0x4f, 0x8a, 0x43, 0x51, 0xc8,
- 0x41, 0x4c, 0x15, 0x47, 0x64, 0x5b, 0x37, 0x9c, 0x9c, 0x31, 0x75, 0x58,
- 0x1d, 0xdc, 0x46, 0x2c, 0x98, 0x5b, 0x64, 0x89, 0x38, 0xc8, 0x62, 0x36,
- 0x2a, 0x2f, 0x46, 0x14, 0x60, 0x6d, 0x98, 0xff, 0x07, 0xc4, 0x32, 0x79,
- 0xa7, 0x8e, 0xf0, 0x46, 0x08, 0xdc, 0x75, 0x36, 0x8b, 0x85, 0x47, 0x51,
- 0x6e, 0x31, 0x49, 0x1d, 0x42, 0xf8, 0x9a, 0xa7, 0xc1, 0x1b, 0x79, 0x20,
- 0x46, 0x7d, 0x7a, 0x5d, 0x2b, 0x4f, 0x83, 0x13, 0x6a, 0x3e, 0x45, 0x60,
- 0x4a, 0xa3, 0xec, 0x8a, 0x21, 0xcb, 0xef, 0x34, 0x6b, 0x52, 0xdf, 0x16,
- 0x6c, 0x09, 0x26, 0xf3, 0xf5, 0x6a, 0xa9, 0x10, 0xdd, 0xeb, 0x43, 0x2d,
- 0xa1, 0xbc, 0x10, 0xf6, 0x36, 0x44, 0x6e, 0x8d, 0x27, 0x32, 0x6c, 0xcd,
- 0x96, 0xde, 0x36, 0x47, 0xec, 0x0e, 0xac, 0xd8, 0x66, 0xde, 0x16, 0xa1,
- 0x1b, 0xd4, 0xe5, 0x47, 0xb8, 0xd8, 0x1f, 0x5a, 0x2b, 0xe1, 0x8f, 0x94,
- 0x7c, 0xab, 0x90, 0xd1, 0x12, 0xcc, 0x95, 0x7c, 0x31, 0x8a, 0x82, 0x5b,
- 0x39, 0x37, 0x9a, 0xad, 0xc7, 0xea, 0x27, 0x7a, 0xf8, 0xb5, 0x55, 0x7d,
- 0x01, 0xe6, 0xb1, 0x7f, 0x33, 0xfa, 0x39, 0x50, 0x84, 0x03, 0x67, 0xab,
- 0xf0, 0x29, 0x25, 0x28, 0x69, 0xb5, 0xe8, 0xbd, 0xa6, 0xd3, 0x59, 0x68,
- 0x18, 0x77, 0x1a, 0x4b, 0x87, 0xa6, 0x66, 0xda, 0x70, 0xf9, 0x4f, 0x23,
- 0x5d, 0x93, 0xa3, 0x1f, 0xe8, 0x0c, 0x90, 0xe3, 0x07, 0x41, 0xd4, 0xf5,
- 0x01, 0xe7, 0x5c, 0x67, 0xb3, 0x81, 0xa5, 0x4d, 0xad, 0xc1, 0x15, 0xad,
- 0xee, 0xc3, 0x10, 0x1d, 0x7a, 0xcd, 0xe8, 0xb1, 0xd2, 0xbf, 0x11, 0xf8,
- 0x3e, 0xec, 0x16, 0xb1, 0xb7, 0x47, 0x3a, 0x62, 0xb9, 0x67, 0xbf, 0x9b,
- 0x0c, 0x81, 0x23, 0xaf, 0xc1, 0xa6, 0xfa, 0xc2, 0xa2, 0x7b, 0xe2, 0x95,
- 0xe9, 0xcc, 0x7e, 0x05, 0xad, 0x62, 0xf4, 0xc6, 0x10, 0xca, 0x41, 0xf2,
- 0x6f, 0x65, 0xc6, 0x79, 0xb8, 0xf7, 0xa4, 0xe1, 0x7e, 0xff, 0xe2, 0xed,
- 0x9b, 0x57, 0x6f, 0xbe, 0x3e, 0xb0, 0xcb, 0x0e, 0x66, 0xdb, 0xad, 0xfc,
- 0xe5, 0xd2, 0xe6, 0x6b, 0x82, 0x9f, 0xe6, 0x32, 0x7a, 0x49, 0x6f, 0xed,
- 0x10, 0xf8, 0x61, 0xe9, 0x6e, 0x60, 0xa3, 0x69, 0x95, 0xb1, 0x4f, 0x87,
- 0x03, 0xea, 0x35, 0xeb, 0x43, 0x52, 0x50, 0x69, 0xad, 0xa9, 0x20, 0x6e,
- 0x04, 0x7c, 0x62, 0x74, 0x0c, 0xe9, 0x00, 0x51, 0xd4, 0x9e, 0x28, 0x8a,
- 0x63, 0x32, 0x27, 0x7a, 0x2c, 0x7d, 0x92, 0x64, 0x04, 0x71, 0x8a, 0xdc,
- 0x85, 0x22, 0x57, 0x46, 0x6a, 0x2f, 0x93, 0x8e, 0xc9, 0x21, 0x44, 0x0a,
- 0xef, 0xab, 0xd5, 0x03, 0xa5, 0x16, 0x58, 0x4d, 0xb4, 0x58, 0xe7, 0x64,
- 0xe4, 0xb0, 0x4b, 0xa2, 0x5a, 0x79, 0xc4, 0xfe, 0x22, 0x75, 0x2e, 0xd2,
- 0x15, 0x9f, 0x60, 0x86, 0x05, 0x94, 0x4f, 0x5d, 0x4e, 0x89, 0x5d, 0x81,
- 0x07, 0x87, 0x68, 0xbb, 0x18, 0x6d, 0x56, 0x26, 0x58, 0x3b, 0xf5, 0xf8,
- 0xa5, 0xf9, 0x17, 0xf7, 0x58, 0x14, 0x53, 0x65, 0x9e, 0xb9, 0x8c, 0xaa,
- 0x5e, 0x4b, 0xef, 0x0b, 0xad, 0x8b, 0x39, 0x32, 0x5c, 0xad, 0x90, 0x6a,
- 0x98, 0x19, 0x3e, 0x64, 0x00, 0x1e, 0xdf, 0xa4, 0x73, 0xc5, 0x42, 0xda,
- 0x7c, 0x99, 0x3c, 0x87, 0xf0, 0x7e, 0x59, 0x56, 0x77, 0x9f, 0x07, 0x68,
- 0x99, 0x54, 0xac, 0x18, 0x0f, 0xd9, 0x88, 0x3f, 0x38, 0xf0, 0x48, 0x8c,
- 0x70, 0x71, 0xc4, 0xc2, 0x74, 0x5d, 0x33, 0x63, 0xc1, 0xec, 0x0d, 0x6a,
- 0xa1, 0x5c, 0x52, 0xc9, 0x0c, 0x17, 0xa0, 0xed, 0xc5, 0xe8, 0xb1, 0x08,
- 0xca, 0x71, 0x00, 0x54, 0xdd, 0x3a, 0x5f, 0x40, 0x5b, 0xa0, 0xf8, 0x30,
- 0xe9, 0x29, 0x92, 0xdb, 0x97, 0x58, 0xa6, 0x0a, 0x19, 0x4e, 0xad, 0x04,
- 0x96, 0xd1, 0x0e, 0xcc, 0x38, 0x07, 0x7d, 0x7d, 0x76, 0xe5, 0x66, 0x19,
- 0x01, 0xa6, 0xa6, 0x25, 0x19, 0x9c, 0xf7, 0x36, 0x6c, 0x3b, 0x19, 0xe8,
- 0x7c, 0x11, 0x88, 0x1c, 0x48, 0x7b, 0xeb, 0x26, 0x49, 0xab, 0xc7, 0x2f,
- 0xe7, 0x12, 0xfc, 0x6f, 0x9a, 0xce, 0x2b, 0x05, 0x4f, 0x6a, 0x05, 0xc4,
- 0x82, 0x88, 0x97, 0xab, 0xf3, 0xc5, 0xec, 0x71, 0xf2, 0xdc, 0xfc, 0x08,
- 0x44, 0x68, 0x0a, 0x28, 0x4e, 0x26, 0x87, 0x90, 0xa3, 0xc1, 0x16, 0x21,
- 0x0f, 0x30, 0x46, 0x92, 0x57, 0xcf, 0x6c, 0x7f, 0xcf, 0xec, 0xe2, 0x6d,
- 0xaa, 0xc0, 0xbd, 0x33, 0x73, 0x42, 0x1a, 0x8a, 0x4b, 0xec, 0x01, 0x99,
- 0x72, 0x46, 0x2b, 0xcc, 0x79, 0x77, 0xef, 0xd3, 0x04, 0x79, 0x29, 0xaf,
- 0x5f, 0x3e, 0x36, 0x5c, 0x2d, 0x9b, 0x7e, 0xa8, 0x57, 0x0b, 0x1b, 0x06,
- 0x0b, 0x9a, 0x6d, 0xa4, 0x90, 0x46, 0x00, 0x0f, 0x62, 0x06, 0x3e, 0xcf,
- 0xa7, 0xc8, 0x0b, 0x1d, 0xb6, 0x5c, 0x97, 0x17, 0xea, 0xba, 0xf4, 0xac,
- 0x0c, 0x56, 0x28, 0xa0, 0x58, 0x12, 0x0e, 0xb8, 0x8a, 0x78, 0xa5, 0xcc,
- 0x1a, 0x98, 0xee, 0x51, 0x62, 0xc6, 0x68, 0x5d, 0x6b, 0x6d, 0xf1, 0x4f,
- 0xdb, 0xee, 0x8c, 0x2b, 0x10, 0xee, 0x73, 0x0b, 0x8c, 0x13, 0xd5, 0x45,
- 0x26, 0x5b, 0x8e, 0x7b, 0x76, 0x1d, 0x9d, 0x46, 0x97, 0x34, 0xaa, 0x29,
- 0x01, 0x4d, 0x8d, 0x93, 0x97, 0xce, 0x55, 0x4c, 0xf8, 0x56, 0x81, 0x10,
- 0x37, 0x5b, 0xc5, 0x1d, 0xaa, 0xed, 0x44, 0x0c, 0x0b, 0x38, 0xf4, 0xcd,
- 0xe4, 0xcc, 0x77, 0x9d, 0x58, 0x2f, 0x89, 0x92, 0x9d, 0x1d, 0x76, 0xe0,
- 0x98, 0xc8, 0x0b, 0x51, 0x84, 0x0b, 0x8e, 0x09, 0x27, 0xdd, 0x08, 0xad,
- 0x01, 0x92, 0x3b, 0x13, 0x45, 0x8f, 0x64, 0xb5, 0x76, 0x68, 0x4a, 0xf2,
- 0x02, 0x8c, 0xbc, 0x7b, 0x44, 0x25, 0x2e, 0x33, 0x63, 0xe3, 0x99, 0x8c,
- 0x42, 0xb0, 0x67, 0xa8, 0x3d, 0x5b, 0x92, 0x9c, 0xeb, 0x37, 0x94, 0x6b,
- 0x47, 0xc7, 0x65, 0x1f, 0x39, 0xf7, 0xdb, 0xe6, 0x67, 0xb0, 0xfa, 0x18,
- 0x03, 0x76, 0x56, 0x4d, 0x2d, 0x19, 0x0c, 0x3c, 0x00, 0xa3, 0xcd, 0x5f,
- 0xb2, 0xaa, 0x94, 0x5c, 0xa3, 0x2d, 0x9a, 0xe9, 0x75, 0x99, 0xcf, 0x12,
- 0x01, 0x68, 0xda, 0x56, 0x1c, 0xba, 0x80, 0x3f, 0xb8, 0xbb, 0x9a, 0x40,
- 0x83, 0x00, 0x42, 0x67, 0x9a, 0xa4, 0xa5, 0xb1, 0x88, 0x39, 0x0f, 0x0b,
- 0x95, 0x8c, 0xd9, 0x81, 0x1c, 0x35, 0x93, 0xd9, 0x44, 0xed, 0xbe, 0x5d,
- 0xbd, 0x85, 0x22, 0x53, 0x24, 0x3f, 0x81, 0x01, 0xa4, 0x54, 0x83, 0x8f,
- 0x1a, 0x91, 0x88, 0x02, 0x78, 0x46, 0x6b, 0xcb, 0xe6, 0x3c, 0xea, 0xd8,
- 0x93, 0x8c, 0x50, 0xb0, 0x33, 0x7e, 0xd6, 0x53, 0x88, 0xa0, 0x05, 0x4a,
- 0x88, 0x1c, 0x4d, 0x9b, 0x65, 0x4c, 0x72, 0x0f, 0xcc, 0x13, 0x98, 0x29,
- 0x80, 0xf1, 0x34, 0x7c, 0x21, 0xe8, 0x1c, 0x4f, 0x6e, 0xe3, 0x09, 0x29,
- 0x1c, 0xc8, 0x34, 0x62, 0x84, 0x62, 0xbe, 0x94, 0x28, 0x38, 0xd2, 0xc6,
- 0x3e, 0x70, 0x22, 0x32, 0x90, 0x68, 0x28, 0xf2, 0x24, 0xa2, 0x6d, 0x3a,
- 0x38, 0x0c, 0x6b, 0x6d, 0x76, 0x02, 0x8a, 0x80, 0x07, 0x78, 0xb8, 0x36,
- 0x9a, 0x45, 0x8d, 0x95, 0x22, 0x74, 0xa9, 0x40, 0x62, 0x97, 0x9e, 0x6b,
- 0x17, 0xae, 0xc0, 0xc0, 0x88, 0x8c, 0x21, 0x4c, 0x84, 0x0c, 0x28, 0x7e,
- 0x36, 0x05, 0x96, 0x37, 0xc5, 0x65, 0x05, 0xc3, 0x2e, 0x25, 0xc3, 0xa6,
- 0x31, 0xff, 0x6b, 0x8c, 0x3c, 0xfd, 0x50, 0x88, 0x27, 0x4f, 0xc6, 0x3b,
- 0xc3, 0xd6, 0xaa, 0x48, 0xf0, 0x4e, 0x3c, 0x12, 0x62, 0xb4, 0x33, 0x94,
- 0x6d, 0xda, 0x1d, 0xef, 0xf4, 0x61, 0xf2, 0xd3, 0x3e, 0xb5, 0xd0, 0x23,
- 0x5b, 0xfb, 0x63, 0xde, 0xf4, 0x15, 0x7c, 0x16, 0x32, 0xf3, 0x80, 0xe4,
- 0x3c, 0x25, 0x5b, 0x0c, 0xef, 0xd9, 0xac, 0xd5, 0xd0, 0x5a, 0x79, 0xc5,
- 0x2f, 0x8b, 0xcd, 0xc3, 0xdd, 0x15, 0xd7, 0x31, 0xfe, 0xda, 0xeb, 0x12,
- 0x9d, 0xf9, 0xfa, 0x21, 0x44, 0x17, 0x99, 0xcb, 0xee, 0xda, 0x61, 0xb4,
- 0x32, 0xd4, 0x76, 0x86, 0xae, 0xbb, 0x1d, 0x5b, 0xd6, 0x8d, 0xc7, 0xa3,
- 0xc7, 0x22, 0x8c, 0xc6, 0x09, 0x0b, 0x6d, 0xd1, 0x1b, 0x48, 0xf3, 0x2b,
- 0xab, 0x11, 0x6c, 0x0d, 0x66, 0xb3, 0x02, 0xdd, 0x2f, 0xb6, 0x19, 0x24,
- 0xa6, 0xe5, 0x75, 0x0d, 0xa5, 0x9c, 0x10, 0xf5, 0x41, 0x9d, 0x70, 0x75,
- 0xfb, 0x25, 0x3c, 0xea, 0x68, 0xba, 0x12, 0x11, 0xc8, 0x9e, 0x35, 0x2d,
- 0xd0, 0x9f, 0x58, 0xd2, 0x77, 0x4b, 0x22, 0x40, 0x88, 0x15, 0x8d, 0x5f,
- 0x73, 0x8e, 0x06, 0xc7, 0x40, 0x53, 0xb1, 0xd1, 0x79, 0x08, 0x91, 0xe2,
- 0xb3, 0xd6, 0x3c, 0xf5, 0x5a, 0xbb, 0xaa, 0x01, 0x00, 0xe0, 0xca, 0x6f,
- 0x73, 0x55, 0x2c, 0x1d, 0x63, 0x0c, 0x8c, 0x9f, 0x4f, 0x95, 0xd1, 0x90,
- 0xa5, 0x81, 0x56, 0x0e, 0x11, 0xea, 0x61, 0xb3, 0xdb, 0xd9, 0x16, 0x43,
- 0x9f, 0x25, 0x49, 0x8f, 0xd9, 0x5a, 0x37, 0x57, 0xb4, 0x52, 0xac, 0x50,
- 0x3f, 0xf2, 0x67, 0xcf, 0x76, 0x3c, 0xb8, 0xf0, 0x5a, 0x80, 0x63, 0xd8,
- 0xa9, 0xc4, 0xc7, 0xb3, 0x19, 0x3f, 0x8c, 0xb8, 0x77, 0x86, 0xd1, 0xd1,
- 0x81, 0xdc, 0x7c, 0xe2, 0x6f, 0x81, 0x82, 0x3e, 0x8b, 0x10, 0xd7, 0xaf,
- 0x3a, 0x0b, 0x7b, 0xeb, 0x42, 0x37, 0xc2, 0x33, 0xb8, 0x3f, 0xd6, 0xde,
- 0xfa, 0xd6, 0x2a, 0x60, 0x67, 0xbd, 0x45, 0xeb, 0x1e, 0xb6, 0x5a, 0x3d,
- 0x6b, 0xb3, 0xab, 0x47, 0xd1, 0xe7, 0x6d, 0xfe, 0x7a, 0x75, 0xf7, 0x56,
- 0xd6, 0x2f, 0xe0, 0x57, 0x3d, 0x47, 0x75, 0x3f, 0xbe, 0x9a, 0xbf, 0x46,
- 0x3e, 0xfb, 0x28, 0x01, 0xad, 0x73, 0xf2, 0x83, 0xfd, 0xda, 0x97, 0x70,
- 0x46, 0x17, 0x6e, 0x45, 0x02, 0xab, 0xfa, 0x37, 0xba, 0x31, 0xf6, 0x6c,
- 0x72, 0xd6, 0x90, 0x0b, 0x09, 0x2d, 0x40, 0x48, 0xaa, 0xf8, 0x8e, 0x69,
- 0xe9, 0xf7, 0xfd, 0x38, 0x1f, 0x2b, 0x11, 0x20, 0x75, 0x2a, 0x34, 0xd3,
- 0x42, 0x48, 0xb3, 0x3d, 0x92, 0x91, 0x10, 0x57, 0xa2, 0xaa, 0xa3, 0xa6,
- 0x1b, 0x94, 0x55, 0x7b, 0x31, 0x6f, 0x46, 0x93, 0xeb, 0xe9, 0x50, 0xc4,
- 0x0d, 0xbb, 0x52, 0x01, 0xb8, 0x34, 0x99, 0x83, 0x05, 0x35, 0x14, 0xbe,
- 0x5f, 0x42, 0x0b, 0x27, 0x04, 0x69, 0x96, 0x19, 0xd5, 0x53, 0x8f, 0x5d,
- 0xf4, 0xf9, 0x0f, 0xa7, 0x19, 0x85, 0x20, 0xb0, 0xe9, 0x87, 0x5a, 0xa7,
- 0x24, 0xc9, 0x89, 0x9c, 0x7f, 0xd6, 0x5a, 0xa3, 0x7b, 0xa4, 0xe2, 0x8e,
- 0xa9, 0x85, 0xe1, 0xf5, 0x81, 0x8a, 0xf5, 0xef, 0xef, 0x5e, 0x1d, 0xfa,
- 0x2a, 0x03, 0x7b, 0x80, 0xd7, 0xba, 0x59, 0x87, 0x02, 0x4e, 0xc1, 0xa0,
- 0xd5, 0x58, 0x57, 0x49, 0x42, 0xd0, 0x78, 0xe1, 0xd6, 0xde, 0x96, 0x5c,
- 0x34, 0xa5, 0x6b, 0xb9, 0xbf, 0x29, 0x3e, 0xee, 0x8c, 0xee, 0xe9, 0x19,
- 0xdd, 0xff, 0xad, 0xcf, 0xe8, 0xfe, 0xc7, 0x9e, 0x51, 0xe1, 0x6f, 0xf1,
- 0x13, 0xda, 0x77, 0x5a, 0xbb, 0xa3, 0xf3, 0x4e, 0xaf, 0x78, 0xca, 0x3a,
- 0x75, 0x1b, 0x19, 0x34, 0x67, 0x24, 0x52, 0xf0, 0x88, 0x85, 0xf5, 0x58,
- 0x4e, 0x2c, 0x9f, 0x61, 0x05, 0xc0, 0x1d, 0x26, 0xaf, 0xb8, 0x12, 0x89,
- 0x0f, 0x2b, 0x7b, 0xcc, 0xa8, 0x02, 0xe2, 0xae, 0x73, 0x99, 0x86, 0x11,
- 0xe4, 0x91, 0x7c, 0x0a, 0x98, 0xc9, 0x39, 0x07, 0xfa, 0xc3, 0x57, 0xc8,
- 0xf2, 0xb3, 0xc8, 0x8c, 0xd5, 0x8a, 0xbc, 0xa1, 0xc9, 0x8b, 0x25, 0x69,
- 0x2e, 0xbb, 0xe3, 0x5b, 0x35, 0xb3, 0x46, 0xd4, 0xff, 0x2a, 0xa3, 0x45,
- 0x36, 0x32, 0x9e, 0x24, 0x1c, 0x75, 0x86, 0x83, 0x86, 0x59, 0x80, 0x9f,
- 0x83, 0xf2, 0x2b, 0x35, 0x39, 0xed, 0x25, 0x86, 0xc0, 0x2f, 0x83, 0x62,
- 0x67, 0xe7, 0x77, 0x4d, 0x24, 0xfd, 0x95, 0x2a, 0x69, 0x61, 0x19, 0x36,
- 0x6b, 0x09, 0xaf, 0x7f, 0x64, 0x16, 0x72, 0x6b, 0x98, 0x20, 0x48, 0x99,
- 0x16, 0x01, 0x09, 0x8a, 0xd6, 0x23, 0x48, 0x35, 0xa9, 0x2e, 0x61, 0x6b,
- 0x97, 0xbc, 0xb7, 0x20, 0x53, 0xf0, 0x97, 0x4c, 0xc3, 0xbb, 0x35, 0x76,
- 0x5a, 0x60, 0xb7, 0xa3, 0x38, 0xa7, 0x9d, 0x22, 0x1b, 0x08, 0x21, 0x82,
- 0x0b, 0x1e, 0x67, 0x2b, 0x4a, 0x79, 0x94, 0x72, 0x70, 0x75, 0xb7, 0xa4,
- 0x02, 0x23, 0x41, 0x09, 0x77, 0x6c, 0xa0, 0x47, 0x03, 0x39, 0x57, 0x05,
- 0x25, 0xc7, 0x5d, 0x57, 0xa9, 0x12, 0x77, 0x1e, 0x73, 0x0e, 0x35, 0xb6,
- 0x6a, 0xc1, 0x1f, 0x6b, 0x1b, 0xe6, 0x70, 0x08, 0x2e, 0xce, 0x47, 0x51,
- 0x0f, 0x22, 0x5f, 0xc5, 0xcb, 0x44, 0xd9, 0x17, 0xa7, 0xe4, 0xf6, 0xe1,
- 0x1e, 0xc4, 0x3a, 0xcf, 0x66, 0x48, 0x2b, 0x23, 0x41, 0x8d, 0x84, 0xb3,
- 0xb3, 0x2c, 0x3f, 0xe4, 0x59, 0x90, 0xf0, 0x3e, 0xa3, 0xba, 0x3a, 0xac,
- 0x66, 0x3b, 0xec, 0xfe, 0x16, 0x5b, 0x50, 0xb8, 0xfd, 0xf1, 0x78, 0x1c,
- 0x81, 0x0a, 0xba, 0xce, 0xb3, 0x9b, 0x96, 0x9f, 0x52, 0x46, 0x36, 0xb4,
- 0xa5, 0x11, 0xe9, 0xdb, 0xd1, 0x35, 0x56, 0xc8, 0x34, 0x79, 0x0e, 0xd4,
- 0xe2, 0x9e, 0x54, 0x3d, 0xc7, 0x56, 0xfc, 0xa7, 0xbd, 0x65, 0x6e, 0x15,
- 0x5f, 0x8d, 0x82, 0xd0, 0xbb, 0x2a, 0x4f, 0x43, 0x58, 0x6c, 0xab, 0x3b,
- 0xaa, 0x32, 0xea, 0x73, 0x4d, 0x6c, 0x34, 0xe7, 0x76, 0xe5, 0xb5, 0x54,
- 0xf7, 0x24, 0x5d, 0x3e, 0x0c, 0xa5, 0xe1, 0x6e, 0xda, 0x3c, 0x47, 0xee,
- 0x0c, 0x95, 0x67, 0xcc, 0xd5, 0x3a, 0xcd, 0xb4, 0xfa, 0xa7, 0x96, 0x29,
- 0x22, 0x53, 0x71, 0x24, 0x24, 0x53, 0x76, 0xc4, 0xab, 0x59, 0xe8, 0x45,
- 0x10, 0xba, 0x42, 0x92, 0x89, 0x4e, 0x30, 0x1e, 0x0c, 0xa3, 0xfb, 0xea,
- 0x87, 0xa8, 0xf8, 0x33, 0x31, 0x1a, 0x98, 0x94, 0xc4, 0x16, 0x47, 0x95,
- 0x43, 0xb7, 0x5f, 0x53, 0xe6, 0xd4, 0x02, 0x19, 0x3a, 0x97, 0x1f, 0x97,
- 0x78, 0xa4, 0x99, 0x49, 0xe3, 0xb5, 0x5f, 0xbe, 0x20, 0x80, 0x71, 0x71,
- 0x18, 0xd9, 0x68, 0x98, 0x8b, 0xea, 0x45, 0xb7, 0x98, 0x6f, 0x64, 0x46,
- 0x14, 0x42, 0x41, 0xd9, 0x15, 0x02, 0xf2, 0x88, 0xc5, 0x08, 0x32, 0x88,
- 0x80, 0x81, 0x74, 0x81, 0xa2, 0x2c, 0x0c, 0x27, 0x56, 0x7f, 0x5c, 0x67,
- 0xdb, 0x86, 0x60, 0xeb, 0xed, 0xba, 0x9e, 0xa3, 0xbf, 0x9a, 0xc0, 0x2e,
- 0xd7, 0x5c, 0x54, 0xec, 0xa3, 0xe9, 0xd4, 0x5a, 0x9d, 0xa6, 0x78, 0xb7,
- 0xc5, 0xcc, 0x6d, 0x09, 0x6d, 0x29, 0x0b, 0xd9, 0x75, 0xbe, 0x30, 0xc0,
- 0x3f, 0x55, 0x79, 0xf1, 0x51, 0x0c, 0x98, 0xf5, 0xb8, 0x80, 0x55, 0xdb,
- 0x8e, 0xab, 0xb1, 0x03, 0x44, 0xff, 0xaa, 0x2f, 0x65, 0x4e, 0xce, 0xa9,
- 0x17, 0x33, 0x62, 0x16, 0xc4, 0x26, 0x96, 0xa1, 0xfc, 0x9c, 0x85, 0x2b,
- 0x33, 0x9b, 0x45, 0xee, 0x65, 0x94, 0xb7, 0x8d, 0x40, 0xe9, 0xf5, 0xb9,
- 0x54, 0xbc, 0xa9, 0x21, 0x05, 0xef, 0xc0, 0x81, 0xb9, 0xde, 0xdc, 0xdc,
- 0x8c, 0xd7, 0xf9, 0x54, 0x7e, 0xe3, 0x6a, 0xd3, 0x27, 0x86, 0x62, 0x8f,
- 0xf3, 0x62, 0x75, 0x9b, 0x78, 0xd8, 0x59, 0xb6, 0xfc, 0xa7, 0xb5, 0x83,
- 0x7d, 0xf7, 0xf6, 0xab, 0xa1, 0x35, 0x18, 0x49, 0x58, 0x2f, 0x1c, 0x6e,
- 0x75, 0x28, 0x15, 0x66, 0x39, 0xe3, 0x99, 0x01, 0x9c, 0xff, 0xf0, 0xc5,
- 0xe9, 0xfb, 0x37, 0x47, 0x67, 0xef, 0xdf, 0xbe, 0xf8, 0x1e, 0x4b, 0xc8,
- 0x56, 0x1f, 0x73, 0x1b, 0xc2, 0x51, 0x5a, 0x95, 0x25, 0x4a, 0xc1, 0xbd,
- 0x26, 0xc3, 0x4c, 0x5e, 0x10, 0x6c, 0x55, 0xac, 0x52, 0xa7, 0xc3, 0xe2,
- 0x93, 0x71, 0x9a, 0xb1, 0x1c, 0x24, 0xad, 0xf5, 0xfa, 0x90, 0x55, 0x45,
- 0x36, 0x1f, 0x97, 0xd5, 0x25, 0xc8, 0x70, 0xfb, 0xa5, 0xf0, 0xce, 0x68,
- 0x73, 0xdb, 0x12, 0xee, 0x05, 0x8b, 0xdd, 0x75, 0x75, 0x01, 0x24, 0xa8,
- 0x4f, 0x1e, 0x58, 0xc8, 0xdd, 0x23, 0xcd, 0x47, 0xc4, 0xfc, 0x96, 0xd7,
- 0x8f, 0xd6, 0xdc, 0x6c, 0x4d, 0x4b, 0xdb, 0x92, 0x6a, 0xcd, 0x44, 0x41,
- 0x64, 0x59, 0xf2, 0x83, 0xf8, 0x38, 0xeb, 0x7d, 0x7e, 0x37, 0x8c, 0x00,
- 0xcb, 0x90, 0xbc, 0x58, 0x5a, 0x88, 0x1e, 0x4a, 0x1c, 0x46, 0xf4, 0x61,
- 0xf4, 0x38, 0x8b, 0x29, 0x2b, 0xd0, 0x8c, 0xac, 0x91, 0xa2, 0x0f, 0x7e,
- 0x67, 0xf4, 0x24, 0xd4, 0x3c, 0x51, 0x99, 0xde, 0x9b, 0xf3, 0x13, 0x99,
- 0xf3, 0x93, 0x7f, 0x6a, 0xce, 0x4f, 0xfe, 0x89, 0x39, 0x3f, 0xfa, 0x8d,
- 0xe7, 0xfc, 0x28, 0x3a, 0x67, 0xaf, 0x97, 0xd1, 0xdf, 0x31, 0xe7, 0xbf,
- 0xaf, 0x8a, 0x0f, 0x23, 0x33, 0x5e, 0xdc, 0xc0, 0x23, 0xb9, 0xbb, 0x7b,
- 0x54, 0x42, 0x9b, 0x54, 0x45, 0xd6, 0x43, 0x86, 0x55, 0x16, 0x1c, 0x77,
- 0x7a, 0x4d, 0x33, 0x04, 0x5d, 0xc9, 0x54, 0x8e, 0xbc, 0xef, 0xca, 0xf9,
- 0xdd, 0x38, 0xfc, 0x1c, 0x38, 0x0a, 0xf5, 0x14, 0x96, 0x10, 0xa8, 0x0e,
- 0x03, 0x19, 0x8d, 0x36, 0x3b, 0xd0, 0x72, 0x6c, 0x74, 0xd2, 0xd3, 0x10,
- 0x3f, 0x6e, 0x4a, 0x66, 0xb8, 0x2b, 0xad, 0x28, 0x4a, 0xc1, 0x41, 0x92,
- 0xfa, 0xc4, 0xa5, 0x0f, 0x15, 0x5b, 0x4f, 0x1b, 0xe6, 0x80, 0x09, 0xa4,
- 0x56, 0x86, 0x3c, 0xe3, 0xec, 0x6e, 0x89, 0x06, 0xcd, 0xbd, 0x5c, 0x99,
- 0xfb, 0x97, 0x23, 0xf4, 0xe6, 0x37, 0x14, 0xb6, 0xa5, 0x83, 0x4c, 0x3a,
- 0x03, 0x14, 0x4f, 0xec, 0x55, 0x76, 0xb7, 0x11, 0x08, 0x0b, 0xd3, 0x79,
- 0x09, 0x7e, 0x33, 0x5b, 0xaf, 0xdc, 0x9c, 0x0f, 0xa9, 0xcc, 0x22, 0x5a,
- 0xe3, 0xfb, 0x62, 0xea, 0x3e, 0x18, 0xfd, 0xdd, 0x2f, 0x1d, 0x37, 0x1a,
- 0x7d, 0xc8, 0xb2, 0x65, 0x3a, 0x27, 0xc8, 0x22, 0x04, 0x85, 0xf5, 0x95,
- 0xcf, 0x6c, 0x05, 0x8c, 0x6b, 0x32, 0x15, 0xbd, 0xd1, 0x0a, 0xc9, 0x25,
- 0x3e, 0xc7, 0x1b, 0xb9, 0x20, 0x2f, 0xc2, 0x8c, 0x30, 0x04, 0xe2, 0xd5,
- 0xd4, 0x6c, 0x54, 0x58, 0x62, 0x07, 0x41, 0x4a, 0xff, 0xb9, 0x73, 0xaf,
- 0x71, 0x17, 0x8a, 0xcf, 0x89, 0x98, 0xc5, 0xeb, 0x1c, 0xb1, 0xca, 0x5d,
- 0x8c, 0x77, 0xfb, 0x3e, 0xbf, 0x4e, 0x68, 0x7d, 0xad, 0x02, 0x35, 0xbc,
- 0x81, 0x54, 0xa4, 0xcb, 0xde, 0x7f, 0x10, 0x35, 0xee, 0xea, 0x26, 0x5b,
- 0x04, 0x24, 0xa5, 0x48, 0xf5, 0x52, 0xf5, 0xe7, 0xf0, 0xf4, 0xfd, 0xb7,
- 0x47, 0x47, 0xa7, 0xaf, 0x5e, 0x1e, 0x1f, 0xc9, 0x81, 0xb1, 0x1f, 0xbd,
- 0x39, 0xfb, 0xee, 0xd8, 0xd5, 0x83, 0x16, 0x17, 0x64, 0x97, 0xe0, 0xc5,
- 0x43, 0xc8, 0x4c, 0x79, 0x48, 0x45, 0x32, 0x8d, 0xaa, 0xfe, 0xe2, 0xd5,
- 0x0f, 0x46, 0x62, 0x3d, 0x1d, 0xbd, 0xfb, 0x21, 0xa8, 0x0c, 0xe5, 0xe5,
- 0xdd, 0x85, 0x1e, 0x59, 0x97, 0x86, 0x37, 0x1a, 0x15, 0xa5, 0xdb, 0xc0,
- 0xde, 0x58, 0xe4, 0xdf, 0xf8, 0x1a, 0x34, 0xcd, 0xad, 0x0a, 0x2b, 0x30,
- 0xf0, 0x8b, 0xaa, 0xa0, 0x78, 0xf1, 0xbe, 0x4f, 0x76, 0xb4, 0xb8, 0xea,
- 0x5a, 0x7f, 0x5f, 0xa7, 0xa0, 0xeb, 0x87, 0xec, 0x8e, 0xb0, 0x71, 0x93,
- 0xe7, 0xf8, 0x19, 0x2f, 0x6e, 0x7d, 0x5a, 0xe5, 0xd7, 0x90, 0xfd, 0xcc,
- 0xb3, 0xec, 0x71, 0xc2, 0xa3, 0x63, 0xeb, 0x89, 0x92, 0xa0, 0x1c, 0x34,
- 0x42, 0x21, 0x79, 0xd4, 0x68, 0xd4, 0x9a, 0x44, 0xbe, 0x5e, 0xb2, 0xdf,
- 0x52, 0x7b, 0xd4, 0xa0, 0x59, 0x9e, 0x71, 0xf2, 0xf2, 0xe8, 0xed, 0x30,
- 0x39, 0x3d, 0x7a, 0xcd, 0xc9, 0x7b, 0x47, 0x6f, 0xbe, 0xe6, 0xea, 0xe7,
- 0x5a, 0xd4, 0x5a, 0x4a, 0xbc, 0x37, 0xb1, 0x6a, 0x3a, 0xbc, 0x26, 0xe6,
- 0x5d, 0x72, 0xba, 0xd4, 0xb5, 0xb9, 0x5d, 0x7f, 0x47, 0x60, 0x32, 0x9e,
- 0xdb, 0x73, 0xf3, 0x23, 0xb6, 0x54, 0x46, 0x87, 0xf8, 0x26, 0xb2, 0x5c,
- 0x22, 0x98, 0xd9, 0xa0, 0x42, 0x51, 0x08, 0xb0, 0x1a, 0xbc, 0x62, 0x66,
- 0x41, 0xc2, 0xf0, 0x36, 0x5d, 0x20, 0x52, 0xf9, 0x08, 0x9a, 0x8d, 0x92,
- 0x7d, 0x32, 0x89, 0x60, 0xa2, 0x52, 0x30, 0x93, 0x6f, 0x86, 0xa0, 0x4b,
- 0xaa, 0xfc, 0xe0, 0x16, 0x23, 0x86, 0x3a, 0x41, 0x3e, 0xf4, 0x10, 0xf1,
- 0xd3, 0x2c, 0x77, 0x3e, 0x63, 0x64, 0x1b, 0x58, 0x00, 0xcb, 0x0a, 0x91,
- 0x6d, 0x80, 0x94, 0xf9, 0x7f, 0xb7, 0xc7, 0x75, 0x7d, 0xb5, 0x9d, 0xcf,
- 0xde, 0x57, 0x75, 0xba, 0xd1, 0xbd, 0x8b, 0xbc, 0xaf, 0x67, 0xf8, 0x3a,
- 0xd9, 0x18, 0xdb, 0x47, 0xe5, 0x77, 0x7c, 0x1e, 0x75, 0x1c, 0xea, 0x15,
- 0xc4, 0x0a, 0xb4, 0x06, 0xba, 0x6b, 0xd5, 0x74, 0xa3, 0x62, 0x57, 0x46,
- 0x80, 0x73, 0x55, 0x96, 0xa4, 0x06, 0xfa, 0xf2, 0xc3, 0xb4, 0xde, 0xdd,
- 0x0d, 0xab, 0x7e, 0xd8, 0xe0, 0x83, 0xa1, 0x26, 0x2c, 0x9c, 0x7e, 0x7b,
- 0x38, 0xf9, 0xd3, 0xee, 0x2e, 0xe5, 0x87, 0x6c, 0x22, 0x8e, 0xff, 0xe9,
- 0xe3, 0xdd, 0xbd, 0xad, 0x98, 0xf8, 0x18, 0x04, 0x3c, 0x5e, 0xdc, 0x31,
- 0xc2, 0x98, 0xb7, 0x81, 0x14, 0x82, 0x23, 0x89, 0x60, 0xb6, 0xe9, 0x59,
- 0x86, 0xe8, 0x69, 0xca, 0x98, 0xe7, 0x48, 0x00, 0x0a, 0x2a, 0x0f, 0x80,
- 0x43, 0x2c, 0xbe, 0xdc, 0x80, 0x47, 0x7f, 0x30, 0xb0, 0x54, 0x65, 0xd3,
- 0x6a, 0xa4, 0x28, 0xb7, 0x3f, 0x6a, 0x0e, 0xa3, 0x08, 0xdc, 0x77, 0xfe,
- 0xbc, 0xf2, 0xba, 0x05, 0xe0, 0xc7, 0xd7, 0x97, 0x2b, 0x18, 0xdf, 0x09,
- 0x5e, 0x42, 0xec, 0x52, 0xe0, 0x0b, 0x90, 0x31, 0x0d, 0x98, 0x7e, 0x40,
- 0xf0, 0x5e, 0x00, 0x88, 0x5d, 0x7d, 0x8f, 0x41, 0xf8, 0x8d, 0x86, 0xc6,
- 0x44, 0xee, 0x23, 0x19, 0x98, 0xb3, 0x1b, 0x6f, 0xf2, 0x77, 0x3d, 0x93,
- 0xd5, 0x79, 0xf2, 0x7c, 0x6e, 0x5e, 0x9c, 0xf7, 0xa4, 0x23, 0x1f, 0x71,
- 0xe5, 0xc3, 0x6f, 0xb3, 0xea, 0x3c, 0xab, 0xca, 0xba, 0x93, 0x39, 0x49,
- 0xb3, 0x15, 0x3c, 0x05, 0xe4, 0x49, 0x99, 0x76, 0x34, 0x8e, 0xb4, 0x7b,
- 0x15, 0x60, 0xdb, 0x64, 0x79, 0x02, 0xbc, 0xb3, 0x0d, 0xca, 0xdf, 0xc4,
- 0x01, 0x40, 0xc9, 0x3f, 0xfc, 0x6b, 0xb8, 0xf1, 0x05, 0x55, 0xdd, 0xca,
- 0xd3, 0xf9, 0x06, 0xaa, 0xab, 0x75, 0x8f, 0x91, 0x50, 0xda, 0xc6, 0x18,
- 0x49, 0xb9, 0xac, 0xac, 0x51, 0x78, 0x28, 0xd9, 0x94, 0xd2, 0x44, 0xc6,
- 0xa2, 0x89, 0x2f, 0x38, 0xe6, 0x2e, 0x3e, 0xba, 0x0e, 0x2a, 0xce, 0xd9,
- 0xe6, 0xda, 0x90, 0x74, 0x7d, 0xa9, 0x17, 0xbf, 0xf1, 0x35, 0xc5, 0xdb,
- 0xf0, 0x50, 0xcf, 0x94, 0xb3, 0x9f, 0x29, 0x9b, 0xef, 0x34, 0xa7, 0x7b,
- 0xe5, 0xef, 0xb3, 0xbe, 0x1f, 0xad, 0xda, 0xfe, 0x82, 0x51, 0x37, 0x3a,
- 0x81, 0x09, 0x14, 0xf3, 0x81, 0x34, 0xcf, 0x19, 0x2b, 0x86, 0x82, 0x2a,
- 0xe0, 0x95, 0x95, 0xa6, 0xcd, 0x0c, 0x9d, 0xef, 0x37, 0xea, 0x46, 0x97,
- 0x4e, 0x47, 0xac, 0xba, 0x1f, 0x26, 0x62, 0x87, 0xa0, 0x4c, 0xd1, 0x9b,
- 0x0a, 0x18, 0xd4, 0x94, 0xc5, 0xe4, 0xa3, 0x82, 0xf5, 0x80, 0x13, 0x2a,
- 0x52, 0xb5, 0xd9, 0xa4, 0xb9, 0x54, 0x3b, 0xd6, 0x30, 0xed, 0x4a, 0xc7,
- 0xc4, 0xe1, 0xbd, 0xce, 0x60, 0x80, 0xf7, 0xfe, 0xe5, 0xde, 0xf8, 0x8b,
- 0xfb, 0xf6, 0xce, 0x89, 0xf4, 0xb1, 0x00, 0x94, 0x07, 0x63, 0x70, 0x76,
- 0x52, 0x9f, 0x29, 0x95, 0x6a, 0x44, 0x77, 0xd2, 0x73, 0xc3, 0x4f, 0xb3,
- 0x00, 0x84, 0x70, 0xd2, 0xc2, 0xad, 0x91, 0x42, 0xf0, 0x9a, 0x56, 0x4c,
- 0xef, 0x81, 0xda, 0x09, 0x9f, 0xc7, 0xf9, 0x90, 0x89, 0xf6, 0x47, 0x31,
- 0x5b, 0x2a, 0x95, 0x85, 0x72, 0xf0, 0x17, 0x74, 0x6a, 0xa9, 0xf8, 0x87,
- 0x82, 0xc7, 0x69, 0xfa, 0x08, 0x2f, 0x07, 0x4c, 0xdd, 0x92, 0x98, 0x40,
- 0xca, 0x45, 0x1a, 0xd8, 0x40, 0x28, 0x13, 0x8c, 0x2b, 0x2d, 0x09, 0x11,
- 0x6c, 0xcc, 0xd8, 0x2a, 0x4a, 0x5b, 0x62, 0x87, 0x8a, 0x83, 0x27, 0x96,
- 0x5e, 0xae, 0x52, 0x63, 0x4e, 0x74, 0xa0, 0x2a, 0x9c, 0x9b, 0x26, 0x6e,
- 0xf2, 0x59, 0x73, 0x45, 0x95, 0xcf, 0x54, 0x33, 0xaa, 0x05, 0x6f, 0x05,
- 0x66, 0xf0, 0x3c, 0xcc, 0x04, 0x3e, 0xef, 0x31, 0xde, 0xf1, 0x86, 0xd1,
- 0xa2, 0x26, 0x0c, 0x3c, 0x08, 0x23, 0x1d, 0xed, 0x03, 0x19, 0xcd, 0xb7,
- 0x59, 0xd4, 0xb3, 0x90, 0x5b, 0xa9, 0x39, 0x45, 0x17, 0x28, 0x6b, 0x16,
- 0xa8, 0x6b, 0x9a, 0xb2, 0x3b, 0xd6, 0x13, 0x42, 0x85, 0x0e, 0x3f, 0x70,
- 0x15, 0x92, 0x6f, 0x37, 0xb4, 0xd6, 0xfc, 0xaa, 0x68, 0xfc, 0xd4, 0x42,
- 0x2a, 0xa6, 0xf3, 0x21, 0x9f, 0x97, 0x51, 0x93, 0xfd, 0xd0, 0xf0, 0x9a,
- 0x05, 0xb7, 0xf0, 0x7a, 0x43, 0x8d, 0xa4, 0x00, 0xa2, 0xb9, 0x4c, 0xe5,
- 0x7b, 0x06, 0xa1, 0xda, 0xb8, 0xe4, 0x87, 0xbe, 0x76, 0x0f, 0x75, 0x9a,
- 0x83, 0x57, 0x80, 0xbd, 0x00, 0x1a, 0xe8, 0x5b, 0x1f, 0x20, 0x73, 0xed,
- 0xdb, 0x61, 0xb2, 0xbf, 0xa0, 0x4d, 0xd9, 0xfd, 0x3a, 0xc6, 0xb8, 0xb0,
- 0xa9, 0xa4, 0x7b, 0x69, 0x88, 0xdc, 0xe8, 0x6f, 0x50, 0xb9, 0x68, 0xc1,
- 0x98, 0x2e, 0x6d, 0x76, 0x2c, 0xbb, 0xe3, 0x7c, 0xaf, 0x59, 0x57, 0x36,
- 0xc2, 0x56, 0x2d, 0xa1, 0x24, 0xcc, 0x32, 0xad, 0xbe, 0xb0, 0x20, 0xcb,
- 0x26, 0x0a, 0xe5, 0x2e, 0x05, 0x66, 0x08, 0xe4, 0x3a, 0xb2, 0xd0, 0xce,
- 0xf5, 0x1c, 0x0f, 0x50, 0x31, 0xc2, 0x32, 0x48, 0x39, 0x99, 0x2f, 0x49,
- 0x41, 0xb2, 0x35, 0x43, 0xbd, 0x41, 0x21, 0xd3, 0x7f, 0x9a, 0x88, 0x8d,
- 0xe7, 0x77, 0xbc, 0x12, 0xe7, 0x14, 0x3e, 0x9c, 0xd7, 0xcd, 0x28, 0x82,
- 0xa3, 0x4d, 0x3e, 0xa6, 0xd3, 0x93, 0xd3, 0xfd, 0x2d, 0x1f, 0x6c, 0x58,
- 0x40, 0x67, 0xb8, 0x2c, 0x35, 0x85, 0x4b, 0x5a, 0x40, 0x9a, 0xa1, 0xb2,
- 0x1b, 0x4e, 0x5d, 0x0e, 0x75, 0xcb, 0xa9, 0x20, 0x71, 0x82, 0xb9, 0x50,
- 0x8f, 0x64, 0xee, 0x77, 0x19, 0x74, 0x5e, 0x7d, 0x5a, 0x77, 0x30, 0x15,
- 0x76, 0xf6, 0x93, 0x10, 0xae, 0xab, 0xe6, 0x4c, 0x1b, 0x42, 0xba, 0x1a,
- 0x51, 0x42, 0x74, 0xbb, 0x7a, 0x13, 0x32, 0xba, 0x82, 0x51, 0x26, 0x1c,
- 0xd8, 0x14, 0x89, 0x86, 0x14, 0x27, 0xb2, 0x7b, 0x92, 0x9c, 0x11, 0xea,
- 0xdd, 0x21, 0xd4, 0x36, 0x17, 0xcd, 0x01, 0x6b, 0x29, 0xa8, 0x96, 0xb1,
- 0xea, 0xc7, 0x7d, 0xa8, 0x04, 0xae, 0x8e, 0x50, 0x4b, 0x23, 0x93, 0xda,
- 0x90, 0x18, 0xdd, 0x9b, 0xe3, 0x89, 0x8f, 0x3d, 0x45, 0x89, 0xc2, 0xa1,
- 0xd8, 0xc4, 0x51, 0xdb, 0x1e, 0xc0, 0x82, 0x17, 0xbd, 0x74, 0xfc, 0x6a,
- 0x72, 0x36, 0x8e, 0x95, 0xc3, 0x31, 0x22, 0xfa, 0x04, 0xc9, 0x88, 0x2d,
- 0x14, 0x22, 0x0e, 0x3b, 0x96, 0x2c, 0x7a, 0xf6, 0xc2, 0xb1, 0xbb, 0x28,
- 0xaf, 0x7c, 0xc4, 0x9d, 0x6e, 0x73, 0x66, 0x94, 0x7f, 0xe5, 0x24, 0x0e,
- 0x49, 0x00, 0x51, 0x37, 0x51, 0xbd, 0x3a, 0x1f, 0x79, 0x30, 0xb5, 0x2c,
- 0xf4, 0x50, 0x41, 0x44, 0x43, 0xc2, 0xe6, 0x9a, 0xfa, 0x10, 0x2a, 0x9a,
- 0x9b, 0x4c, 0x55, 0xb4, 0x48, 0x02, 0x2f, 0xdc, 0xb2, 0x77, 0x4f, 0x93,
- 0x8c, 0xe0, 0xcc, 0xc9, 0xd2, 0x84, 0x67, 0x1f, 0x4c, 0x59, 0x58, 0x0a,
- 0xdf, 0xe5, 0x67, 0x48, 0x5e, 0x4a, 0xe8, 0xb6, 0x33, 0xba, 0xe0, 0x1a,
- 0xb4, 0x74, 0xb7, 0xce, 0x19, 0x1a, 0xd2, 0xa1, 0xa3, 0xbc, 0x3a, 0xcb,
- 0xd8, 0xee, 0x64, 0x87, 0xdd, 0x87, 0xb0, 0x3e, 0xca, 0x67, 0x1c, 0x50,
- 0x5a, 0xb7, 0x51, 0x86, 0x19, 0x0d, 0x06, 0x9c, 0x87, 0xcb, 0xad, 0x41,
- 0x7e, 0xeb, 0xdb, 0x49, 0x36, 0xcc, 0xb5, 0x02, 0xe8, 0x47, 0x3f, 0x70,
- 0x38, 0x3a, 0x79, 0xca, 0x86, 0x7d, 0xf0, 0x97, 0xa1, 0x7d, 0x5b, 0x90,
- 0xad, 0xde, 0xbd, 0x7a, 0x79, 0x6c, 0x17, 0x4b, 0x16, 0x87, 0x42, 0xfc,
- 0xed, 0x54, 0x91, 0xf3, 0xa7, 0xac, 0x93, 0xf7, 0x24, 0xf0, 0xfa, 0xac,
- 0x8a, 0xfc, 0x1f, 0x14, 0xcc, 0x45, 0x02, 0xec, 0x45, 0x4e, 0x58, 0x89,
- 0x29, 0xd9, 0xcf, 0xc5, 0xab, 0x8b, 0x30, 0x2f, 0x81, 0x89, 0xc7, 0x3a,
- 0x68, 0x72, 0x1c, 0x3b, 0xf9, 0xa2, 0x09, 0x12, 0xfd, 0xd2, 0x45, 0x27,
- 0x56, 0x93, 0xf0, 0xe3, 0x05, 0xe6, 0xd1, 0x5c, 0x49, 0xdb, 0x94, 0xd9,
- 0x1d, 0x88, 0x17, 0xd0, 0x39, 0xbc, 0xf8, 0xbd, 0x36, 0x7c, 0x59, 0x59,
- 0x49, 0x3e, 0xf8, 0xe6, 0x57, 0x6f, 0x4f, 0x5e, 0x8f, 0xce, 0x4e, 0xb6,
- 0x08, 0x73, 0x8d, 0x5a, 0x4e, 0xfa, 0x83, 0x50, 0x6a, 0x5b, 0x94, 0xda,
- 0xe1, 0x3f, 0x89, 0xb5, 0x6d, 0xb3, 0xde, 0x92, 0x1c, 0x48, 0xbe, 0x54,
- 0x68, 0x78, 0xfa, 0x56, 0x50, 0x18, 0xaa, 0x60, 0x59, 0x24, 0xa5, 0x5a,
- 0xd4, 0xb0, 0x3c, 0x4e, 0x3d, 0x2f, 0x56, 0x2b, 0xd4, 0xf8, 0x7c, 0x55,
- 0xdf, 0x25, 0x92, 0x76, 0x5f, 0x53, 0xa9, 0xf3, 0x3a, 0x02, 0xaa, 0x20,
- 0xf6, 0x31, 0x60, 0xd2, 0x29, 0x06, 0x1c, 0x12, 0x92, 0x39, 0xe3, 0xb5,
- 0x29, 0xcd, 0xd9, 0x4d, 0xab, 0xaa, 0xbc, 0xd1, 0xab, 0x4b, 0x10, 0x31,
- 0xcc, 0xd0, 0xb1, 0x43, 0xd5, 0x5d, 0x2f, 0x6e, 0x96, 0x40, 0x41, 0x0a,
- 0x58, 0xdb, 0x7a, 0xe3, 0xd1, 0xe3, 0x36, 0x12, 0x91, 0xe6, 0xa7, 0x8c,
- 0x9a, 0x6a, 0x85, 0x6c, 0xfb, 0xb8, 0xe1, 0xf9, 0x18, 0x8c, 0xb2, 0x9d,
- 0xd0, 0x32, 0x14, 0xac, 0x5a, 0x40, 0x9b, 0x51, 0x55, 0x4d, 0x6b, 0x99,
- 0xb4, 0x25, 0x9b, 0x93, 0xe4, 0x2f, 0xc1, 0xf1, 0x15, 0x10, 0x7b, 0xc8,
- 0xf4, 0x28, 0x98, 0x4d, 0x49, 0x2d, 0xae, 0xe6, 0x71, 0xde, 0x70, 0xad,
- 0x63, 0x0d, 0xf2, 0x21, 0x98, 0x4a, 0xae, 0xca, 0x9e, 0xde, 0x85, 0xca,
- 0x97, 0xe2, 0xcf, 0xe5, 0xc0, 0xed, 0x99, 0xad, 0xa6, 0xb4, 0x4d, 0xf0,
- 0xf9, 0xa1, 0x92, 0xf2, 0x39, 0x23, 0x62, 0x2b, 0xf4, 0x0d, 0x9a, 0x76,
- 0xc9, 0x3c, 0x6c, 0xc2, 0x09, 0x83, 0xc2, 0xe9, 0x31, 0x57, 0x20, 0x12,
- 0xe2, 0xe4, 0x7c, 0xee, 0x15, 0x37, 0xec, 0x68, 0x9d, 0xf0, 0x2b, 0x69,
- 0x51, 0xfb, 0x90, 0x57, 0xa1, 0x1c, 0x09, 0x15, 0x62, 0x10, 0x97, 0x3f,
- 0x30, 0x83, 0x41, 0xc0, 0xe4, 0x72, 0xff, 0x32, 0xad, 0x0d, 0x53, 0x6a,
- 0xb7, 0xb7, 0xae, 0x5a, 0xfb, 0x4a, 0x53, 0x5e, 0xbc, 0xdd, 0x6b, 0x6d,
- 0x48, 0x7c, 0xe7, 0x5e, 0xb5, 0x90, 0x7f, 0x38, 0xf8, 0xc3, 0x5b, 0x71,
- 0xe1, 0x4f, 0x04, 0x69, 0x4b, 0x29, 0x30, 0x10, 0x1a, 0x91, 0x9b, 0x33,
- 0x8b, 0xa5, 0x1c, 0x6b, 0xf5, 0xdc, 0x26, 0xd1, 0x4e, 0x93, 0x4d, 0x4d,
- 0x8a, 0xb7, 0x49, 0x9a, 0xc7, 0xf2, 0xd5, 0x81, 0xcd, 0xda, 0x07, 0x43,
- 0xeb, 0x34, 0xb7, 0xff, 0xc3, 0x0f, 0x49, 0xab, 0x6a, 0xfd, 0x56, 0x1f,
- 0x44, 0x90, 0xa4, 0xf0, 0xcd, 0x4a, 0xcd, 0xc2, 0xa0, 0x01, 0x07, 0x29,
- 0xc7, 0x4a, 0x76, 0x70, 0x32, 0x50, 0x8e, 0x11, 0x9b, 0x60, 0xc4, 0x56,
- 0x64, 0x94, 0xc0, 0x2b, 0xcd, 0x43, 0x6d, 0x05, 0x70, 0x10, 0x78, 0xd0,
- 0xab, 0x48, 0x54, 0x24, 0xb1, 0x5b, 0x8d, 0xbc, 0xb0, 0xd1, 0xed, 0xed,
- 0xe5, 0xaa, 0x9d, 0x79, 0xe6, 0x0a, 0xde, 0x05, 0x81, 0xc0, 0x0f, 0x6a,
- 0xff, 0xb5, 0x48, 0xc6, 0x42, 0x12, 0xdb, 0xac, 0x74, 0xba, 0xec, 0xb9,
- 0x60, 0x0f, 0xd8, 0xf1, 0xb4, 0xca, 0xc4, 0xde, 0xd0, 0x53, 0xd0, 0x93,
- 0xa1, 0xcc, 0xf8, 0xf0, 0x90, 0x59, 0x35, 0xf5, 0xce, 0x8b, 0x43, 0xb2,
- 0xed, 0xec, 0x98, 0x24, 0x89, 0x85, 0xf2, 0xfb, 0x4d, 0x49, 0xe0, 0xc5,
- 0x54, 0xd5, 0x8e, 0x00, 0x39, 0x4b, 0x36, 0x6d, 0x51, 0xad, 0x76, 0xbd,
- 0x6d, 0xfe, 0xa2, 0x27, 0x77, 0xec, 0xbb, 0x2f, 0x41, 0x05, 0x31, 0x27,
- 0xa8, 0x32, 0x13, 0xec, 0x0b, 0x50, 0xd3, 0x11, 0x6f, 0xa7, 0x25, 0x20,
- 0x61, 0x2b, 0x56, 0x2f, 0x39, 0x0b, 0xd4, 0x94, 0x6d, 0xb4, 0x20, 0xf5,
- 0x25, 0x84, 0xf0, 0x77, 0x47, 0x16, 0x41, 0x42, 0x64, 0xf6, 0x74, 0x88,
- 0x9f, 0x6c, 0xde, 0x32, 0x6a, 0xe9, 0x88, 0x1e, 0xab, 0xfb, 0x82, 0x4d,
- 0xa4, 0xa6, 0x03, 0xad, 0xb6, 0x54, 0xa6, 0x4a, 0xfc, 0x55, 0xa3, 0x3b,
- 0xf6, 0xa2, 0x15, 0xda, 0x42, 0xe1, 0xff, 0x40, 0x55, 0x1a, 0x46, 0x56,
- 0x4c, 0x02, 0x89, 0x9b, 0x56, 0xc1, 0x2e, 0x9b, 0xbc, 0xcf, 0xc7, 0x00,
- 0xf8, 0x45, 0xf9, 0x45, 0x34, 0x14, 0x28, 0x90, 0x96, 0xcd, 0x68, 0xf6,
- 0x77, 0x76, 0x87, 0xf8, 0xb9, 0x07, 0x0c, 0xa5, 0x0a, 0xbf, 0xed, 0xdb,
- 0x9c, 0x98, 0xd6, 0x41, 0xa1, 0xc7, 0xc9, 0x1e, 0x42, 0x24, 0xbd, 0x7f,
- 0x7b, 0x1b, 0xc1, 0xda, 0x69, 0x27, 0x21, 0x8d, 0x6c, 0x0e, 0x67, 0x38,
- 0x5a, 0xb7, 0x90, 0xe4, 0xb4, 0x0b, 0x6b, 0x01, 0x6b, 0x16, 0x8b, 0xc0,
- 0x26, 0x8d, 0xfb, 0x6a, 0xa1, 0x36, 0x5d, 0x74, 0x49, 0xd9, 0x71, 0x1f,
- 0x4a, 0x8b, 0x36, 0x11, 0x0b, 0x23, 0x80, 0x74, 0x66, 0x96, 0xb7, 0x7d,
- 0x19, 0x0e, 0xad, 0x4d, 0x36, 0xd7, 0x97, 0x30, 0x19, 0x9b, 0xb2, 0xa6,
- 0x39, 0x44, 0x69, 0x73, 0x40, 0x69, 0xb9, 0x86, 0xba, 0xb1, 0x86, 0xc1,
- 0x49, 0xe6, 0x2f, 0x34, 0x02, 0x90, 0xff, 0xda, 0x8f, 0x6b, 0xec, 0x02,
- 0x0c, 0xc5, 0x89, 0xa2, 0x02, 0x42, 0xf6, 0x03, 0xc5, 0xe4, 0xeb, 0x6a,
- 0x39, 0xe7, 0x6e, 0xe3, 0xca, 0x27, 0x44, 0x6c, 0xf5, 0x6c, 0x19, 0x70,
- 0x96, 0x82, 0x3a, 0x9b, 0x0b, 0xd0, 0xd0, 0xaa, 0x15, 0xe4, 0x34, 0x22,
- 0xd8, 0xb8, 0x91, 0xce, 0xe9, 0xb9, 0xfc, 0x12, 0x98, 0x40, 0xa9, 0x4e,
- 0x3c, 0x84, 0x6d, 0xaa, 0xe7, 0xb5, 0xd5, 0xb2, 0xca, 0x50, 0x13, 0x76,
- 0x59, 0x44, 0xf2, 0x99, 0xad, 0xd8, 0x19, 0xc7, 0x7c, 0xbf, 0x7b, 0xcf,
- 0xb5, 0x2e, 0x9d, 0x71, 0x7f, 0xc9, 0x47, 0xb4, 0x14, 0x34, 0xaf, 0x51,
- 0x1b, 0x16, 0x9f, 0xc5, 0x4a, 0xd8, 0x71, 0x57, 0x1e, 0xdd, 0x35, 0xb8,
- 0xa9, 0xd5, 0x74, 0x2f, 0x63, 0xeb, 0x8c, 0x22, 0x79, 0xd1, 0xc0, 0x6c,
- 0x9f, 0xd5, 0x82, 0x48, 0x80, 0x60, 0x47, 0x4c, 0xbb, 0xbb, 0xa3, 0xb4,
- 0x0a, 0xb4, 0x9b, 0x54, 0xda, 0x4c, 0x83, 0x46, 0x5b, 0xc3, 0x64, 0xd7,
- 0x0a, 0x21, 0xf1, 0x4b, 0xe4, 0x07, 0xdb, 0x88, 0x11, 0xe7, 0x11, 0xa4,
- 0xc0, 0xf8, 0xd3, 0x5b, 0xce, 0x01, 0x81, 0x4b, 0xca, 0x03, 0xdc, 0x0e,
- 0xc9, 0xde, 0xfe, 0xa7, 0x8f, 0x86, 0x0c, 0x25, 0x94, 0x3c, 0xde, 0x79,
- 0xb6, 0xa7, 0x70, 0x50, 0x47, 0x67, 0x5f, 0x01, 0xea, 0xd7, 0x90, 0x71,
- 0xd7, 0x46, 0x88, 0xcf, 0x46, 0x59, 0x5a, 0x5d, 0x19, 0x45, 0x05, 0x78,
- 0x74, 0x23, 0x14, 0x4a, 0x1a, 0xed, 0xec, 0xc4, 0x02, 0x41, 0x7e, 0x47,
- 0x20, 0x9e, 0xfd, 0x8e, 0x30, 0x0e, 0xf5, 0x60, 0x84, 0x15, 0xef, 0x87,
- 0x5c, 0x67, 0xca, 0xb2, 0xa4, 0xe5, 0x55, 0xe5, 0x90, 0x37, 0x5a, 0x41,
- 0x00, 0x41, 0x14, 0x4f, 0xac, 0x34, 0x5f, 0xc7, 0x44, 0x2f, 0xc1, 0x4e,
- 0x9b, 0xac, 0x8e, 0x34, 0x77, 0x5b, 0x04, 0xd9, 0x43, 0x1d, 0x51, 0x59,
- 0x4e, 0x3a, 0xdf, 0xa2, 0x8d, 0x44, 0x21, 0x4a, 0x6a, 0x49, 0x94, 0xae,
- 0x32, 0xe0, 0x5a, 0xb2, 0x14, 0x29, 0xf5, 0x0d, 0xef, 0xc7, 0xe6, 0xa4,
- 0x25, 0xa8, 0xa6, 0x4b, 0xc9, 0x16, 0xe6, 0xbf, 0x71, 0xb3, 0xb7, 0x02,
- 0x7e, 0xf7, 0x1e, 0x47, 0x16, 0x8e, 0xee, 0xff, 0x8f, 0x58, 0xb8, 0xf6,
- 0xba, 0x39, 0x69, 0x8b, 0x4d, 0x82, 0xa4, 0x3e, 0x8b, 0xeb, 0x21, 0x12,
- 0x5a, 0x0e, 0xfa, 0xa7, 0x61, 0x7d, 0xec, 0x5c, 0xb0, 0xdc, 0xe3, 0x75,
- 0x28, 0xc1, 0xf6, 0xad, 0x11, 0x49, 0xec, 0x54, 0x15, 0x29, 0x3e, 0x99,
- 0xef, 0x7d, 0x00, 0x1a, 0x82, 0x15, 0x84, 0x66, 0xa8, 0xf9, 0xd9, 0xe6,
- 0xce, 0xcc, 0x97, 0x40, 0x3f, 0x32, 0xd4, 0xe9, 0x92, 0xc0, 0xa2, 0x7c,
- 0x90, 0x3c, 0x4d, 0xe6, 0xdc, 0xa1, 0xbe, 0x22, 0x9d, 0x57, 0xa3, 0xb4,
- 0xc0, 0xd0, 0x21, 0xe2, 0xf3, 0x05, 0x74, 0x26, 0x9c, 0x39, 0xdf, 0x2b,
- 0xe2, 0xb5, 0x1f, 0x64, 0xd3, 0x91, 0x65, 0xe6, 0xed, 0xe1, 0xe9, 0x59,
- 0x72, 0x76, 0xe2, 0xdb, 0x12, 0x18, 0xca, 0x82, 0x72, 0x43, 0x51, 0x38,
- 0x2e, 0xca, 0xdf, 0xbb, 0xd5, 0x29, 0x54, 0x0f, 0xe7, 0x8b, 0x8a, 0x2b,
- 0x37, 0x2f, 0x05, 0x6f, 0xa1, 0xb3, 0x5a, 0x91, 0xc4, 0x39, 0x5a, 0xbd,
- 0xa4, 0x6b, 0xf3, 0x67, 0xe1, 0xd5, 0xc6, 0x5e, 0x7b, 0x22, 0x2c, 0x47,
- 0x8e, 0xf3, 0xf0, 0x62, 0x05, 0x4d, 0x35, 0xbc, 0xd4, 0x66, 0x07, 0x73,
- 0x38, 0x08, 0x06, 0x73, 0x9d, 0xce, 0x8d, 0x6e, 0xee, 0x56, 0x25, 0x34,
- 0x3a, 0x16, 0xac, 0x5b, 0x50, 0x14, 0x0c, 0xcb, 0xa9, 0xfa, 0xac, 0x68,
- 0x91, 0x91, 0x25, 0xc3, 0x04, 0x44, 0x06, 0x5d, 0xb3, 0x6b, 0xe1, 0xa6,
- 0xe1, 0x75, 0x59, 0x6e, 0x72, 0x86, 0x60, 0x42, 0x14, 0x9f, 0x91, 0x23,
- 0x51, 0x36, 0x56, 0x7b, 0xaa, 0x74, 0x3c, 0xac, 0x33, 0x8e, 0x71, 0x1b,
- 0x96, 0xea, 0x59, 0x0f, 0xbd, 0xde, 0x77, 0xf6, 0x5c, 0x42, 0x6d, 0xfb,
- 0xe4, 0x0d, 0x5d, 0x49, 0x35, 0x08, 0x55, 0x0b, 0xa9, 0x18, 0x4b, 0x36,
- 0x36, 0xf2, 0xe8, 0x77, 0x21, 0xe3, 0xb2, 0x65, 0x96, 0xb6, 0xd2, 0x48,
- 0xda, 0xcc, 0xd8, 0xda, 0x67, 0xe2, 0xa7, 0x21, 0x6a, 0x68, 0x54, 0x1b,
- 0x17, 0x1b, 0xd1, 0xe8, 0xec, 0xb7, 0xd3, 0x8d, 0xed, 0xfb, 0xca, 0x13,
- 0x6c, 0x58, 0x64, 0x08, 0x97, 0x03, 0x53, 0x15, 0x35, 0x61, 0x59, 0x4b,
- 0xe9, 0x00, 0x3a, 0xb8, 0xed, 0x32, 0x2e, 0xfd, 0xfa, 0xa3, 0x70, 0xac,
- 0x98, 0x83, 0x7d, 0x55, 0x95, 0xfb, 0xee, 0xed, 0x57, 0x7f, 0xd3, 0x9d,
- 0xd9, 0x1a, 0xaa, 0xbe, 0x15, 0x60, 0x39, 0xca, 0x68, 0xbd, 0x92, 0x11,
- 0x3e, 0x7a, 0xab, 0xe0, 0x43, 0xb5, 0x16, 0xde, 0xfd, 0x11, 0x66, 0x2f,
- 0x73, 0x8d, 0x84, 0x64, 0x13, 0x7e, 0x66, 0xf3, 0xd4, 0x44, 0x2c, 0x1a,
- 0xfb, 0xe3, 0xc7, 0x64, 0x0b, 0xfc, 0xea, 0xf0, 0xf1, 0xfe, 0xde, 0xee,
- 0xd6, 0x38, 0xd9, 0xec, 0xdc, 0x6e, 0x5b, 0xf7, 0x4e, 0xb3, 0xbd, 0xdf,
- 0xd9, 0xed, 0x12, 0x94, 0xbb, 0x79, 0xf4, 0xc3, 0xe9, 0x9b, 0xce, 0x24,
- 0x69, 0x07, 0x82, 0x48, 0x82, 0x35, 0x73, 0x74, 0x82, 0x69, 0x40, 0x52,
- 0x8c, 0x4c, 0x14, 0xf1, 0xd5, 0x7f, 0x55, 0xe5, 0x50, 0xf1, 0x06, 0x58,
- 0x8f, 0xc1, 0x71, 0x59, 0xcc, 0x8c, 0x9a, 0x74, 0x02, 0xdc, 0xde, 0x6c,
- 0x60, 0x4e, 0xc1, 0xbd, 0xb3, 0xeb, 0x67, 0xeb, 0xaf, 0x87, 0x74, 0x54,
- 0x8a, 0x30, 0xc4, 0xeb, 0x35, 0x7d, 0x48, 0xa5, 0x16, 0x2c, 0xe6, 0xc4,
- 0xd5, 0xea, 0x32, 0x63, 0xff, 0x06, 0x2c, 0x13, 0xed, 0xd3, 0x76, 0x4b,
- 0x95, 0x0e, 0xc9, 0xda, 0xf9, 0x9c, 0x3c, 0x3a, 0x0f, 0x71, 0x06, 0xd2,
- 0xe3, 0x9b, 0xea, 0xd4, 0x22, 0x03, 0x5d, 0xaa, 0x3e, 0xd4, 0xd2, 0x41,
- 0xdd, 0x93, 0x3a, 0x1e, 0x91, 0x11, 0xf8, 0x51, 0xa7, 0x57, 0xe7, 0x36,
- 0xef, 0x84, 0x0c, 0x94, 0x74, 0x14, 0x09, 0x27, 0x6a, 0xd8, 0x46, 0x34,
- 0x8e, 0x38, 0x81, 0x28, 0x84, 0x86, 0x4a, 0xf9, 0xa6, 0x45, 0x1b, 0x40,
- 0x9e, 0x98, 0x15, 0x31, 0xd6, 0xec, 0x96, 0xaa, 0xb3, 0x1b, 0x35, 0xea,
- 0x49, 0xa8, 0x04, 0xbc, 0xe0, 0xc9, 0x88, 0xc6, 0x53, 0xf9, 0x42, 0x2b,
- 0x4b, 0x94, 0x12, 0x2f, 0x3a, 0xec, 0xb8, 0xe1, 0x48, 0x61, 0xdb, 0xf8,
- 0x76, 0x23, 0xca, 0x46, 0xd9, 0x2f, 0x27, 0xd6, 0x89, 0x8e, 0x67, 0xce,
- 0xf7, 0xc4, 0x71, 0x23, 0xaf, 0x37, 0x92, 0x3e, 0x3f, 0xdb, 0x43, 0x5c,
- 0x73, 0x71, 0x67, 0x1c, 0x7b, 0xe3, 0xba, 0x16, 0x18, 0xeb, 0x9b, 0x6b,
- 0x11, 0xdf, 0xe3, 0x4f, 0x23, 0xc4, 0xf7, 0xe6, 0xe4, 0xec, 0xe8, 0x80,
- 0xb3, 0x7a, 0x54, 0xea, 0xa7, 0x90, 0x4b, 0xcd, 0x39, 0x20, 0xfb, 0x38,
- 0x07, 0x37, 0x20, 0xad, 0x8a, 0x32, 0x63, 0xd3, 0xd9, 0x35, 0x81, 0x62,
- 0x6e, 0x86, 0x51, 0x35, 0xb0, 0xbc, 0x60, 0xed, 0xe0, 0xf9, 0xe0, 0x62,
- 0xc1, 0x60, 0xe2, 0x4d, 0x2f, 0x7a, 0x3e, 0xc1, 0xf1, 0xe4, 0x0e, 0x1f,
- 0x22, 0x08, 0x8c, 0xd2, 0x9a, 0xb1, 0x30, 0xa1, 0xac, 0x96, 0x22, 0x24,
- 0xb6, 0xc9, 0x48, 0x85, 0x2f, 0x32, 0x39, 0xac, 0x13, 0xad, 0x9c, 0x47,
- 0xbc, 0x7b, 0x38, 0xc4, 0xc6, 0x00, 0x63, 0xf6, 0xe7, 0xbd, 0x40, 0x96,
- 0xa8, 0x00, 0x26, 0x27, 0xc3, 0x43, 0xe1, 0x53, 0x4b, 0x83, 0xea, 0x50,
- 0xac, 0x87, 0x8b, 0xc1, 0x68, 0x74, 0x1c, 0x6a, 0xad, 0xd6, 0xbe, 0x26,
- 0x4a, 0xc1, 0x90, 0x03, 0xce, 0xb2, 0x6b, 0x2e, 0x1f, 0xc9, 0x96, 0x0c,
- 0x48, 0xa5, 0x7e, 0x28, 0x18, 0x2c, 0xc8, 0xb1, 0xa2, 0x76, 0xd6, 0x86,
- 0x82, 0xd2, 0x1f, 0x80, 0xb2, 0xd3, 0xac, 0x19, 0xa6, 0x4a, 0xb6, 0xc2,
- 0xe4, 0x0c, 0x9f, 0x64, 0xba, 0x79, 0xbc, 0xe3, 0x61, 0xfe, 0x60, 0x4a,
- 0x31, 0xe4, 0x62, 0x0d, 0xc8, 0x36, 0x4b, 0xb6, 0x6b, 0xdd, 0x06, 0x39,
- 0xc1, 0x99, 0x08, 0x3a, 0xeb, 0xef, 0xe7, 0x19, 0x5d, 0x0c, 0x65, 0x47,
- 0xd6, 0x86, 0xdf, 0xbe, 0xd6, 0x68, 0x05, 0x3c, 0x94, 0x17, 0x1a, 0x59,
- 0xc9, 0xd2, 0x38, 0x3b, 0x9f, 0x15, 0x7f, 0xde, 0xd0, 0x72, 0x09, 0x86,
- 0xe5, 0x62, 0x36, 0x42, 0xe3, 0x30, 0x2c, 0x6b, 0xe3, 0x24, 0xf1, 0x11,
- 0x45, 0xe1, 0x7c, 0xba, 0xa0, 0x33, 0x41, 0xfb, 0x82, 0x3d, 0x20, 0x23,
- 0xf1, 0x39, 0x10, 0x5b, 0x92, 0xbf, 0x97, 0xe7, 0x62, 0x39, 0x84, 0x7c,
- 0x19, 0x43, 0xe6, 0xbb, 0xa0, 0xb4, 0x8f, 0x95, 0xa1, 0xa9, 0xd9, 0x8a,
- 0x9d, 0x01, 0x18, 0x90, 0x24, 0x10, 0x50, 0x52, 0x08, 0xb9, 0xe8, 0x92,
- 0x4b, 0x06, 0xf3, 0xa2, 0x08, 0x66, 0xc5, 0x67, 0x08, 0x41, 0x00, 0xf6,
- 0x00, 0xd4, 0xe0, 0xaf, 0x70, 0x3a, 0x85, 0x09, 0xcf, 0x34, 0x2e, 0x60,
- 0x38, 0x0c, 0xa0, 0xeb, 0xf2, 0x2c, 0xd2, 0x69, 0xb3, 0x92, 0x85, 0xef,
- 0x8e, 0xae, 0x54, 0xd3, 0xbe, 0x79, 0x97, 0xaa, 0xc2, 0xd0, 0x89, 0x9e,
- 0x1a, 0xba, 0x4b, 0xa7, 0x77, 0x7a, 0xc5, 0xbb, 0xfb, 0x50, 0x00, 0x9a,
- 0x5d, 0x0d, 0x99, 0x30, 0xf5, 0x59, 0x07, 0x01, 0x27, 0x7d, 0x5e, 0xf7,
- 0x14, 0x6f, 0xfb, 0x4d, 0xb5, 0x61, 0xbf, 0x04, 0x27, 0x7b, 0x4a, 0x14,
- 0x48, 0xba, 0x75, 0xb0, 0xb3, 0x26, 0xc5, 0x2a, 0xaf, 0xcb, 0xd3, 0xe5,
- 0x18, 0x38, 0xae, 0x44, 0xc7, 0x6e, 0xc7, 0x4e, 0xfa, 0x8a, 0x36, 0x62,
- 0x9d, 0x43, 0x5d, 0x49, 0xf0, 0xb5, 0x3e, 0xa0, 0xe6, 0x0a, 0x0b, 0x12,
- 0x63, 0xd1, 0x34, 0x72, 0x89, 0xec, 0xd7, 0x84, 0xc9, 0xa7, 0x86, 0x11,
- 0xb3, 0x8d, 0xab, 0x0e, 0x45, 0x30, 0xf6, 0x70, 0x60, 0xad, 0x61, 0xed,
- 0x58, 0x27, 0x2b, 0x3c, 0x6d, 0x8b, 0xd4, 0x16, 0xdd, 0x20, 0xce, 0xc0,
- 0x8e, 0x04, 0xa6, 0xe7, 0x8d, 0x3e, 0x66, 0x24, 0xec, 0xd3, 0x37, 0x47,
- 0x5f, 0x9f, 0x6c, 0xdd, 0x67, 0x34, 0x6a, 0x27, 0x41, 0xd8, 0x10, 0xb2,
- 0x54, 0xa3, 0x41, 0x25, 0x58, 0x8c, 0x2e, 0xe1, 0xaf, 0x27, 0x93, 0xd1,
- 0x8b, 0xd3, 0x57, 0x54, 0x25, 0x76, 0x62, 0xfe, 0xed, 0xa9, 0x43, 0x30,
- 0xa6, 0x32, 0x18, 0xa3, 0xef, 0x24, 0x3f, 0xb0, 0xd6, 0x60, 0x30, 0x32,
- 0xcf, 0x90, 0x6d, 0x95, 0xe1, 0x43, 0x99, 0x1b, 0x5a, 0x7c, 0x08, 0x6a,
- 0xbe, 0xbb, 0x22, 0xa7, 0xaf, 0xb6, 0xa9, 0x2b, 0x74, 0x49, 0x13, 0xea,
- 0xb1, 0x11, 0xaf, 0xc2, 0x02, 0xb1, 0x60, 0x15, 0x14, 0x4a, 0x48, 0xc4,
- 0xa4, 0x41, 0xbf, 0x46, 0xc6, 0x01, 0xc7, 0x73, 0x6e, 0x99, 0x78, 0x8a,
- 0x05, 0x2c, 0x14, 0x88, 0xa1, 0x57, 0xd4, 0xe0, 0x8e, 0x49, 0x84, 0x24,
- 0x11, 0xc6, 0x86, 0x9c, 0xa3, 0x76, 0xc3, 0x44, 0x7d, 0x68, 0x5d, 0xd9,
- 0x7f, 0x63, 0xb4, 0x4a, 0x92, 0x83, 0x0d, 0xf6, 0x1e, 0x64, 0x45, 0xb9,
- 0xba, 0xbc, 0x62, 0x31, 0xa2, 0x2d, 0x6b, 0x93, 0x22, 0xa9, 0x3e, 0x36,
- 0x5b, 0xb7, 0xc4, 0x0c, 0x32, 0xb8, 0x60, 0xe8, 0x1d, 0x65, 0x14, 0x55,
- 0x06, 0x17, 0x00, 0xf3, 0x03, 0x21, 0xf0, 0x3f, 0x04, 0xff, 0x7f, 0xcd,
- 0x91, 0x3d, 0x87, 0x7b, 0x0c, 0x6b, 0x5b, 0x34, 0x73, 0xe2, 0xf7, 0xe6,
- 0x5a, 0x23, 0xfb, 0x95, 0xd8, 0x71, 0x29, 0xc3, 0xcf, 0x52, 0x73, 0x9b,
- 0xc4, 0x9b, 0x6a, 0x4a, 0x92, 0x2c, 0x07, 0x19, 0xc6, 0x30, 0xb0, 0xce,
- 0xba, 0xc8, 0x47, 0xb5, 0xb9, 0xb4, 0x8c, 0xc0, 0x40, 0xf7, 0x59, 0x31,
- 0xd4, 0x56, 0x86, 0x46, 0xe2, 0x13, 0x37, 0x88, 0xdc, 0x19, 0xb2, 0xfd,
- 0x11, 0x41, 0x96, 0x8a, 0xa7, 0x6e, 0xa6, 0xe7, 0x75, 0x39, 0x5f, 0x35,
- 0xa4, 0xf5, 0xc0, 0x4a, 0x85, 0xf4, 0x89, 0x2d, 0x17, 0x5b, 0x48, 0xad,
- 0xfa, 0x21, 0x86, 0x51, 0xfd, 0xdb, 0x15, 0xf6, 0x1d, 0x3b, 0xfb, 0x3a,
- 0x7b, 0x89, 0x84, 0xe5, 0x60, 0x4d, 0xb9, 0x2d, 0x6a, 0x6a, 0x49, 0x31,
- 0x27, 0xd7, 0x0a, 0x35, 0x18, 0xee, 0x9c, 0xee, 0x52, 0x6b, 0x75, 0x2c,
- 0xf8, 0x5b, 0x95, 0xb5, 0x43, 0x91, 0x1d, 0x83, 0x8d, 0x89, 0xd9, 0xbd,
- 0xb1, 0xa8, 0xea, 0x0d, 0x3e, 0xc7, 0xf9, 0x30, 0x72, 0x86, 0x76, 0xc6,
- 0xfd, 0xa4, 0x14, 0xa8, 0x61, 0xef, 0x8c, 0x87, 0x82, 0xf3, 0xb8, 0xcd,
- 0x68, 0x9b, 0xb6, 0x76, 0xdb, 0x55, 0xaa, 0xdb, 0x3d, 0x75, 0x9a, 0xfe,
- 0x2e, 0xe3, 0xc8, 0x22, 0xde, 0x62, 0xda, 0x8d, 0xd6, 0x26, 0x77, 0xa0,
- 0x23, 0x44, 0x9a, 0xc6, 0x42, 0x8c, 0xe9, 0x89, 0x80, 0x74, 0xe1, 0x2a,
- 0xb5, 0xb3, 0xd2, 0x84, 0x32, 0x28, 0x94, 0x29, 0x17, 0xa2, 0xe5, 0x97,
- 0xbd, 0x3e, 0xfc, 0x6c, 0xf4, 0x75, 0x54, 0xef, 0x76, 0x67, 0xfc, 0x80,
- 0x05, 0x71, 0xf3, 0x77, 0x1f, 0x06, 0x42, 0x90, 0xf5, 0x07, 0xd6, 0x53,
- 0x11, 0x84, 0xc7, 0x42, 0x85, 0x9b, 0xef, 0xe5, 0x17, 0x9c, 0x81, 0xef,
- 0x73, 0xa3, 0x91, 0xde, 0x18, 0xfd, 0x4d, 0x88, 0x33, 0x2f, 0x62, 0x20,
- 0xd9, 0xe0, 0x1a, 0x1b, 0xb5, 0x11, 0x5a, 0x0c, 0xaf, 0x71, 0xa1, 0x58,
- 0xb8, 0xa5, 0xd8, 0x8e, 0x1e, 0x30, 0x21, 0xaf, 0x24, 0xf0, 0xdd, 0x32,
- 0xc8, 0x90, 0x98, 0x5a, 0x76, 0x43, 0x6d, 0x10, 0x6e, 0x77, 0x91, 0xa0,
- 0xbe, 0xe3, 0xd8, 0x3a, 0x6f, 0x2d, 0x7e, 0x97, 0xef, 0xd3, 0x12, 0x3c,
- 0xb9, 0xc8, 0xe8, 0x02, 0xef, 0x06, 0x2d, 0x2f, 0x4d, 0x74, 0xf3, 0xf1,
- 0x16, 0x8d, 0xed, 0xa2, 0x59, 0x6e, 0xee, 0x6e, 0x71, 0x0d, 0x07, 0xce,
- 0x3e, 0x96, 0xc0, 0x9f, 0x18, 0x22, 0xb8, 0x84, 0x90, 0x25, 0x87, 0xb6,
- 0x6f, 0xf2, 0x6d, 0x01, 0x17, 0x4c, 0x20, 0xdf, 0xf8, 0x18, 0xf3, 0xaa,
- 0xd9, 0xfa, 0xe5, 0x88, 0x56, 0x8d, 0x69, 0xbb, 0x9c, 0x6e, 0x8d, 0x03,
- 0x4b, 0x55, 0xc4, 0xc9, 0x91, 0xb5, 0xd9, 0x2a, 0x23, 0x5d, 0x48, 0x82,
- 0xab, 0x59, 0xbd, 0xf9, 0x6c, 0x84, 0xb8, 0xb7, 0xe4, 0xb2, 0x2a, 0xc3,
- 0x1b, 0x12, 0x69, 0x7f, 0x58, 0x83, 0x2d, 0x0e, 0x79, 0xcf, 0x8a, 0xeb,
- 0xbc, 0x2a, 0x0b, 0x42, 0x6c, 0xbc, 0x4e, 0xab, 0x9c, 0x5c, 0xb9, 0x83,
- 0x6f, 0x4e, 0x5e, 0x1f, 0x0d, 0x2c, 0xaf, 0xa6, 0x2a, 0x4c, 0xb9, 0x60,
- 0x96, 0x05, 0xf0, 0xa2, 0xfe, 0x96, 0x46, 0x54, 0xe3, 0xc4, 0xdc, 0xe8,
- 0xd3, 0x0f, 0xb4, 0x80, 0x94, 0x6b, 0x4f, 0x88, 0x63, 0x99, 0x4d, 0xa1,
- 0x34, 0x4a, 0x8e, 0x78, 0x7a, 0xa5, 0x2c, 0xa9, 0x92, 0x19, 0x45, 0x7a,
- 0xc4, 0x0a, 0x3f, 0xa9, 0xaf, 0x90, 0x8a, 0x3f, 0x95, 0x7e, 0x61, 0xcc,
- 0xc4, 0x2b, 0x9e, 0x89, 0x24, 0x65, 0x75, 0xc6, 0xf1, 0xfe, 0x46, 0xa2,
- 0x9f, 0x37, 0x16, 0x77, 0xa8, 0x74, 0xb2, 0xd1, 0xbe, 0xff, 0x36, 0x6a,
- 0x08, 0xaf, 0xcd, 0x86, 0x2e, 0x2e, 0x45, 0x05, 0x3a, 0x46, 0x1f, 0x16,
- 0x2c, 0xef, 0xe9, 0x9d, 0x49, 0x9b, 0xbb, 0x70, 0xad, 0x73, 0xe3, 0xee,
- 0x08, 0x1e, 0xf0, 0x11, 0xbc, 0x6d, 0xa2, 0x30, 0x3b, 0x3e, 0x28, 0x52,
- 0xea, 0xf2, 0x80, 0xda, 0xb5, 0xce, 0xdb, 0x1e, 0x5a, 0x54, 0x59, 0x09,
- 0xcd, 0x65, 0xa6, 0xfb, 0x72, 0xca, 0xf0, 0x54, 0xd6, 0xd9, 0xd5, 0x01,
- 0x3c, 0x57, 0x21, 0xa9, 0xf0, 0xaa, 0x1e, 0x53, 0x6b, 0xbd, 0x98, 0xb7,
- 0xe6, 0xde, 0xa6, 0x58, 0x19, 0xb5, 0x3d, 0xe7, 0x15, 0xa0, 0x60, 0x02,
- 0xc7, 0xde, 0xd0, 0x4f, 0x9a, 0xed, 0x83, 0xe0, 0x76, 0x11, 0x07, 0x56,
- 0x2c, 0x61, 0x0c, 0x6a, 0x46, 0x48, 0xb6, 0x9e, 0x60, 0x05, 0x78, 0x0e,
- 0x01, 0xb3, 0xec, 0x4a, 0xaa, 0xf9, 0x86, 0x12, 0x53, 0x08, 0x80, 0x10,
- 0x71, 0x5f, 0xd6, 0x01, 0xcc, 0x40, 0x0c, 0x24, 0x6f, 0xa0, 0xf2, 0x4e,
- 0x4a, 0xa1, 0x14, 0x59, 0x14, 0xfb, 0x8b, 0xa3, 0xc7, 0x65, 0x6a, 0x52,
- 0x48, 0xa4, 0x5e, 0x55, 0xd7, 0x94, 0xdc, 0x28, 0xa5, 0xe7, 0x38, 0x02,
- 0xd4, 0xed, 0x87, 0xec, 0x43, 0xe4, 0x14, 0x7b, 0x23, 0x44, 0x64, 0x5e,
- 0x25, 0x00, 0x4b, 0xc9, 0xd7, 0x3c, 0x0a, 0x3b, 0x40, 0x8d, 0x31, 0x21,
- 0x8c, 0x0b, 0x16, 0x62, 0x83, 0x58, 0xec, 0xb2, 0x26, 0xd8, 0xda, 0xc6,
- 0x28, 0x56, 0xee, 0x97, 0x51, 0x5a, 0x4f, 0xf3, 0x5c, 0x4b, 0x99, 0xc1,
- 0x0a, 0x9e, 0x21, 0xe0, 0x31, 0x0e, 0xb3, 0x62, 0xf7, 0xc3, 0x16, 0x11,
- 0x9a, 0x95, 0x1c, 0x67, 0xcf, 0x41, 0x08, 0x29, 0x57, 0xca, 0x84, 0x1b,
- 0x9e, 0x32, 0xa0, 0xc4, 0x44, 0x1e, 0xab, 0xee, 0xa6, 0x09, 0x15, 0x3d,
- 0xb0, 0x02, 0x37, 0x37, 0x37, 0xbb, 0x3e, 0x78, 0x80, 0x2e, 0xc2, 0x08,
- 0x60, 0x47, 0x75, 0x43, 0x57, 0xa8, 0x79, 0x66, 0xcf, 0x7f, 0x66, 0x9d,
- 0x8f, 0xb2, 0x83, 0xad, 0x53, 0x94, 0xa3, 0x74, 0xbe, 0x2c, 0x7a, 0xe0,
- 0x4a, 0xfd, 0x7a, 0xb1, 0x2f, 0x8e, 0x4f, 0xdf, 0x10, 0xec, 0x1a, 0x2a,
- 0x07, 0x14, 0x35, 0xbb, 0x8f, 0xf1, 0x99, 0x57, 0xa7, 0x51, 0x2c, 0x1d,
- 0x41, 0x16, 0x2d, 0xb9, 0x80, 0x48, 0x7b, 0xd0, 0x54, 0x14, 0x0e, 0xc0,
- 0xf0, 0xf4, 0x13, 0xb3, 0x84, 0x5e, 0x1e, 0x1b, 0x33, 0x78, 0x55, 0x2f,
- 0xba, 0xd3, 0x31, 0xbd, 0xba, 0xbe, 0xb5, 0xca, 0x48, 0x6a, 0xdb, 0x6e,
- 0xbd, 0x6b, 0x91, 0xe7, 0x4a, 0x85, 0x99, 0xeb, 0x8e, 0x0e, 0x3c, 0x41,
- 0xf1, 0xed, 0x44, 0x53, 0xb4, 0xfe, 0x20, 0x2d, 0xde, 0xc6, 0xde, 0x73,
- 0xc2, 0x27, 0xd0, 0x34, 0xe8, 0x7a, 0x7d, 0xe2, 0xba, 0x59, 0xd8, 0x62,
- 0x59, 0x74, 0x61, 0x9b, 0x64, 0xb9, 0xa3, 0xe9, 0x3e, 0x01, 0x86, 0xd8,
- 0xda, 0xf4, 0x1f, 0x1d, 0x2a, 0x6a, 0xc6, 0xad, 0xd9, 0xe0, 0x37, 0x43,
- 0xee, 0xf5, 0x7c, 0x05, 0x0e, 0xd1, 0xe9, 0x41, 0xb6, 0x97, 0x25, 0x27,
- 0x7e, 0x82, 0x70, 0xcf, 0x2f, 0x3c, 0xb0, 0x1c, 0xa4, 0xea, 0x65, 0xe9,
- 0x62, 0x0c, 0x7f, 0x97, 0xc4, 0x83, 0x13, 0xac, 0x4f, 0x9d, 0x07, 0xa1,
- 0x96, 0xab, 0x54, 0x38, 0x96, 0x96, 0x73, 0x20, 0x2e, 0xd0, 0x09, 0x13,
- 0xe7, 0x6e, 0xc0, 0x49, 0xfd, 0xe6, 0x63, 0xa9, 0x3f, 0xf4, 0xba, 0x4d,
- 0x6f, 0x17, 0xb3, 0xa4, 0x56, 0xce, 0x65, 0xe0, 0x7c, 0x6e, 0x42, 0x81,
- 0xd2, 0x49, 0x9d, 0x07, 0x2e, 0xba, 0x19, 0x42, 0x98, 0xf5, 0xaa, 0x11,
- 0x9d, 0x28, 0xfe, 0xc2, 0x15, 0xa7, 0xf1, 0x0b, 0x23, 0xb7, 0xdb, 0x16,
- 0x80, 0xd9, 0x7f, 0x0d, 0x43, 0xae, 0x00, 0xdd, 0xf7, 0x83, 0x9b, 0x29,
- 0xe6, 0xb2, 0x9c, 0x0f, 0x33, 0x2a, 0xbb, 0x80, 0xd1, 0x80, 0x65, 0xdd,
- 0x69, 0x11, 0xcc, 0x10, 0x5d, 0x9f, 0x5d, 0x7a, 0x57, 0x8a, 0x04, 0x6f,
- 0x2a, 0x46, 0x10, 0x25, 0x9e, 0x68, 0x50, 0x48, 0xc0, 0x0e, 0x57, 0x44,
- 0xf6, 0xd0, 0xd8, 0xa8, 0x4f, 0x82, 0xe8, 0xf0, 0x0a, 0xaf, 0x45, 0x46,
- 0xd2, 0x4e, 0xc1, 0xee, 0xa3, 0x03, 0x96, 0x97, 0x28, 0x93, 0xc8, 0x10,
- 0x81, 0xcb, 0xd8, 0x96, 0xf8, 0x00, 0x1b, 0xac, 0x8d, 0xb2, 0xca, 0x7e,
- 0x5d, 0xd7, 0x08, 0xdf, 0x72, 0x71, 0x38, 0x0a, 0x43, 0x8c, 0x42, 0x68,
- 0xeb, 0x2a, 0xb9, 0xfe, 0x7e, 0xab, 0xe4, 0x26, 0xe2, 0x2d, 0x94, 0xfd,
- 0xb0, 0xb3, 0x48, 0xc5, 0x83, 0xb8, 0xe1, 0x9b, 0x90, 0x19, 0xbe, 0x69,
- 0xf3, 0x42, 0x37, 0xd3, 0x20, 0x5d, 0x36, 0x72, 0xa2, 0xef, 0xe5, 0x81,
- 0x68, 0x1e, 0x51, 0xd4, 0xa7, 0x6f, 0xc2, 0x64, 0x5e, 0x41, 0x80, 0x3f,
- 0xa7, 0x38, 0x88, 0xfb, 0xb8, 0xa0, 0xd5, 0xdf, 0xe5, 0xb3, 0xae, 0x1e,
- 0xfc, 0x4f, 0xb3, 0x40, 0x55, 0xab, 0x84, 0xd5, 0x85, 0x1c, 0xb0, 0x08,
- 0x18, 0xa0, 0xd0, 0xdd, 0xef, 0xc3, 0x02, 0xd1, 0xa5, 0x51, 0xb5, 0x2f,
- 0xe1, 0x7c, 0x85, 0xe9, 0x31, 0x60, 0x83, 0x27, 0xd6, 0x6c, 0xc4, 0xd9,
- 0x14, 0xb6, 0xc0, 0xa0, 0xbe, 0x95, 0xd0, 0x5b, 0xca, 0x6e, 0x14, 0x6f,
- 0x75, 0xb1, 0x22, 0xeb, 0x73, 0x10, 0x20, 0xed, 0x28, 0x3f, 0x65, 0x30,
- 0x07, 0xa4, 0x33, 0xa7, 0x55, 0x21, 0x40, 0xd2, 0x7e, 0x74, 0x94, 0x61,
- 0xa6, 0xf6, 0x68, 0x31, 0xaa, 0xd8, 0xa8, 0x0e, 0xcd, 0x46, 0x75, 0x4e,
- 0x69, 0x8f, 0x51, 0x3d, 0x96, 0x0e, 0x8d, 0x5d, 0x44, 0xc6, 0xb2, 0xeb,
- 0x3d, 0x37, 0xfe, 0xb1, 0x11, 0x13, 0x47, 0xff, 0xa1, 0x69, 0x2f, 0x19,
- 0x9f, 0x1c, 0x4b, 0xfe, 0x9d, 0x95, 0xa1, 0x6c, 0xf4, 0x07, 0xc2, 0x8d,
- 0x31, 0x41, 0xd4, 0x43, 0x3b, 0xb1, 0x36, 0xf6, 0xdf, 0xd3, 0x60, 0xef,
- 0x84, 0xd8, 0xf2, 0x59, 0x14, 0x64, 0x41, 0x0f, 0xa5, 0xd4, 0xc3, 0x5e,
- 0x71, 0xb4, 0x37, 0x8e, 0x91, 0xa2, 0xbb, 0xbc, 0x7a, 0x49, 0xe8, 0xe2,
- 0x54, 0xcb, 0x07, 0xf8, 0x65, 0x3d, 0xc7, 0x92, 0x0a, 0x54, 0xd8, 0x8a,
- 0xaf, 0x64, 0xa0, 0x01, 0x44, 0xa6, 0x0f, 0xbb, 0x05, 0xa4, 0x3f, 0xbf,
- 0x94, 0x23, 0xbb, 0x04, 0xa5, 0x7a, 0x56, 0xdc, 0x9e, 0x04, 0x55, 0x80,
- 0xd2, 0x61, 0xaf, 0x56, 0x86, 0x52, 0x21, 0xa6, 0x70, 0xb5, 0x3b, 0xf1,
- 0x1d, 0x41, 0x3d, 0x20, 0x76, 0x8b, 0x01, 0x7b, 0x23, 0x0e, 0xa8, 0x80,
- 0x00, 0xaf, 0x61, 0x84, 0x5d, 0x48, 0x16, 0xcf, 0x79, 0x55, 0x7e, 0xc8,
- 0x98, 0x5f, 0x90, 0x52, 0x48, 0xe0, 0x48, 0x2c, 0x03, 0x4b, 0xe4, 0xbb,
- 0xb9, 0xa1, 0x66, 0x36, 0x10, 0x30, 0x50, 0x64, 0xb9, 0xb0, 0xae, 0xa0,
- 0x2a, 0xb8, 0x7b, 0x2c, 0xa7, 0xd7, 0x09, 0xcf, 0x40, 0x6b, 0xd0, 0xf0,
- 0x51, 0x9b, 0x22, 0x50, 0xe6, 0x0f, 0xe4, 0xd9, 0x76, 0xd7, 0x7d, 0x9e,
- 0x1d, 0xd9, 0xd2, 0x87, 0xd7, 0xcb, 0x35, 0xb4, 0x44, 0x16, 0xcc, 0xe4,
- 0x39, 0x33, 0x84, 0xdb, 0x3b, 0xca, 0xf4, 0xeb, 0x9a, 0x29, 0xa9, 0xee,
- 0xf3, 0x48, 0xb5, 0xc5, 0x99, 0xcd, 0x0e, 0xbb, 0x90, 0xc4, 0x09, 0xac,
- 0x0a, 0x07, 0x1b, 0x79, 0xe9, 0xad, 0x29, 0xd7, 0x96, 0x01, 0xaa, 0x44,
- 0xa4, 0x30, 0x17, 0x6c, 0x9d, 0xd6, 0x06, 0x47, 0x96, 0x03, 0xd2, 0xa0,
- 0xb0, 0x41, 0x84, 0xac, 0x93, 0xd7, 0x7e, 0xe4, 0x5f, 0xf2, 0xaf, 0x09,
- 0xc2, 0xa3, 0x8c, 0x4e, 0x62, 0x8e, 0x56, 0x97, 0x0e, 0xb8, 0x67, 0xae,
- 0x4f, 0x40, 0x29, 0x5e, 0x73, 0x29, 0x45, 0x02, 0xb1, 0x0b, 0x27, 0xcb,
- 0x02, 0xc8, 0x00, 0x8b, 0xdc, 0x97, 0xef, 0xb8, 0xf8, 0x4d, 0xb7, 0x4a,
- 0x0c, 0x34, 0x50, 0xda, 0x1f, 0x85, 0xcb, 0xa0, 0xd9, 0xe6, 0x52, 0x01,
- 0x81, 0x43, 0x4b, 0xc4, 0x38, 0x92, 0x6a, 0xd8, 0x88, 0x8c, 0xc1, 0x08,
- 0x00, 0x41, 0x1c, 0x3a, 0x41, 0xdc, 0x31, 0x37, 0xc7, 0xa0, 0x04, 0x1b,
- 0x51, 0x0b, 0x0f, 0xe8, 0x47, 0x52, 0x24, 0xb5, 0xe3, 0xdf, 0x0f, 0x93,
- 0x66, 0x8d, 0xe6, 0x49, 0x2a, 0x0f, 0x47, 0xf6, 0xd2, 0x88, 0x58, 0x1f,
- 0xc5, 0xa7, 0x43, 0xf7, 0xeb, 0xc1, 0xa7, 0x3b, 0x9c, 0x8e, 0x0e, 0x4d,
- 0x68, 0xec, 0x9e, 0x08, 0x60, 0x9c, 0xa9, 0xd4, 0x1d, 0x3d, 0x64, 0xfe,
- 0xb5, 0xcf, 0xf5, 0x80, 0xb1, 0xc3, 0x31, 0xbf, 0x0f, 0xff, 0x5e, 0xdb,
- 0x72, 0xdd, 0x0e, 0x47, 0x8e, 0x99, 0x80, 0xa2, 0xc1, 0xb8, 0x33, 0x4f,
- 0x78, 0x60, 0x32, 0xdc, 0xdc, 0x28, 0xca, 0xf7, 0xf4, 0x2b, 0xdb, 0x50,
- 0x36, 0xde, 0x9c, 0xbc, 0xa7, 0x2a, 0x8c, 0x1b, 0x5b, 0x63, 0xcd, 0x55,
- 0x37, 0x87, 0x7e, 0x23, 0x0c, 0x5c, 0x4b, 0x5a, 0xdd, 0x3a, 0xd3, 0x13,
- 0xf7, 0xc1, 0x71, 0x38, 0x42, 0x8f, 0xb6, 0xc6, 0x6d, 0x26, 0x79, 0xca,
- 0xc1, 0x22, 0xf3, 0x60, 0x68, 0xdb, 0x0d, 0x31, 0x0f, 0xa8, 0x72, 0x97,
- 0xce, 0x31, 0xc9, 0x9b, 0xb5, 0x07, 0xec, 0xd9, 0xf8, 0x51, 0xeb, 0x80,
- 0x35, 0xf3, 0xc5, 0xe8, 0xe6, 0xfc, 0x1e, 0x37, 0xd7, 0xd9, 0xf1, 0x6b,
- 0x73, 0x77, 0x22, 0x79, 0x47, 0x32, 0xff, 0x50, 0xa3, 0x4a, 0xde, 0xa6,
- 0x4b, 0x8e, 0x8d, 0xc3, 0x40, 0xf7, 0xa6, 0x81, 0xc4, 0x4c, 0x7a, 0x1d,
- 0x97, 0x8e, 0x4b, 0x05, 0x15, 0x1b, 0x8f, 0xc2, 0xd9, 0x99, 0x26, 0xd9,
- 0x81, 0xb1, 0x5c, 0xce, 0xf3, 0x68, 0xca, 0x8e, 0x06, 0xb9, 0x66, 0xb7,
- 0xd9, 0x74, 0x45, 0x19, 0x35, 0xd0, 0x08, 0x80, 0x0f, 0xb5, 0xde, 0x57,
- 0x42, 0xa3, 0x6d, 0xf9, 0x45, 0xcc, 0x07, 0xdd, 0xc5, 0xe8, 0xce, 0x9d,
- 0x27, 0x1f, 0x58, 0x4b, 0x39, 0x12, 0x3e, 0xf6, 0x5d, 0x10, 0x8e, 0x42,
- 0xc1, 0xef, 0x90, 0x82, 0x0c, 0x01, 0xe6, 0x97, 0x05, 0xcb, 0x99, 0xaf,
- 0xf3, 0x69, 0x55, 0xd6, 0xe5, 0x85, 0x24, 0x55, 0x38, 0x9d, 0xf8, 0xd5,
- 0xab, 0x49, 0x72, 0x93, 0x9d, 0x6b, 0xa6, 0xeb, 0x38, 0xf4, 0x1e, 0x50,
- 0xca, 0x05, 0x9c, 0x61, 0x55, 0x9e, 0x35, 0x58, 0x32, 0x8d, 0x35, 0x01,
- 0xfc, 0x13, 0x15, 0xe3, 0x14, 0x70, 0x14, 0xd2, 0xd9, 0x4c, 0x93, 0xd3,
- 0x39, 0x5d, 0x69, 0xc9, 0x32, 0x0b, 0x29, 0x69, 0xce, 0x97, 0xbb, 0xbd,
- 0x8f, 0x3c, 0x0f, 0xeb, 0x79, 0x2a, 0xa5, 0x22, 0xd9, 0x1c, 0x64, 0xb8,
- 0x14, 0xc4, 0x52, 0x31, 0xa3, 0x7d, 0x80, 0x7d, 0x34, 0xc8, 0x42, 0xb1,
- 0x21, 0xa3, 0x72, 0x95, 0x32, 0x18, 0x33, 0x02, 0x4e, 0xca, 0x8a, 0xa2,
- 0x33, 0xbc, 0x22, 0x6e, 0x54, 0x07, 0x6b, 0x55, 0x51, 0x3a, 0x15, 0xc1,
- 0x92, 0x86, 0xe0, 0xd6, 0x37, 0x57, 0x0c, 0x92, 0xa0, 0xbb, 0xe0, 0xc4,
- 0x3d, 0x4a, 0xda, 0x91, 0x62, 0x32, 0x18, 0xbf, 0xbb, 0xa9, 0xbc, 0xdd,
- 0x88, 0xc2, 0x18, 0xca, 0x7e, 0xb8, 0x54, 0x51, 0x0e, 0x43, 0x33, 0x42,
- 0xc9, 0x65, 0x4f, 0x39, 0x6f, 0x0b, 0xdc, 0xe0, 0xe4, 0x29, 0x1a, 0x8d,
- 0xdc, 0xb5, 0x95, 0x1c, 0xc7, 0xa0, 0x46, 0x7d, 0xac, 0x78, 0x9b, 0x95,
- 0xd3, 0x02, 0xea, 0xeb, 0xc3, 0xbb, 0xf0, 0x94, 0x85, 0x8e, 0x0f, 0x91,
- 0x2e, 0xa4, 0xc6, 0x56, 0x1a, 0xe6, 0x5b, 0xeb, 0xa3, 0xdc, 0x87, 0xed,
- 0xa1, 0xd8, 0x13, 0xe0, 0xd5, 0x1f, 0x68, 0x89, 0xfa, 0x2a, 0xda, 0x07,
- 0xe0, 0x12, 0x9e, 0x7d, 0x28, 0x2e, 0xe9, 0xf7, 0x81, 0xee, 0x93, 0xf7,
- 0x32, 0x12, 0xe4, 0xeb, 0x39, 0xe0, 0xe5, 0xef, 0x19, 0x6d, 0x8f, 0xfc,
- 0x21, 0x3e, 0x4e, 0xff, 0xe8, 0x96, 0xf8, 0x60, 0x6f, 0x74, 0x9e, 0x19,
- 0x21, 0xb0, 0x4a, 0x9e, 0x37, 0x90, 0xb4, 0xee, 0x49, 0x0f, 0x91, 0x78,
- 0x2a, 0x3f, 0x58, 0xef, 0x4b, 0x7e, 0x3d, 0x39, 0x23, 0x41, 0x8d, 0xc3,
- 0x0a, 0x4e, 0x5e, 0xbc, 0x3b, 0xfb, 0x26, 0x49, 0xf6, 0x82, 0x3a, 0x1d,
- 0x8a, 0x3a, 0x1b, 0x65, 0x0d, 0xd2, 0x12, 0x37, 0xa4, 0xc7, 0x9b, 0x2a,
- 0xd4, 0x17, 0x7f, 0x5f, 0x15, 0xd3, 0xa8, 0x75, 0x42, 0xb4, 0x37, 0xe7,
- 0xa6, 0xe6, 0x5b, 0x5b, 0xc2, 0xaf, 0x5b, 0xa1, 0xa3, 0x5a, 0xdc, 0x90,
- 0xb7, 0x66, 0x34, 0x0a, 0x9d, 0xa3, 0x48, 0xd8, 0xb3, 0x4e, 0x77, 0x6b,
- 0x03, 0x8f, 0xe6, 0xf3, 0x74, 0x66, 0x2d, 0x10, 0x41, 0xea, 0x2a, 0xaf,
- 0xd4, 0xb9, 0xd3, 0x74, 0x4b, 0x93, 0xbf, 0xfd, 0xea, 0xb0, 0xd3, 0xdc,
- 0x93, 0xa7, 0x8f, 0x77, 0x7e, 0x4f, 0xf4, 0x23, 0x56, 0xe7, 0x90, 0xaa,
- 0x9f, 0x3c, 0x37, 0x3f, 0x3e, 0x5f, 0xe7, 0x1c, 0xd5, 0xf5, 0xe2, 0x4b,
- 0xdf, 0x79, 0xe1, 0xe0, 0xb1, 0x13, 0x71, 0x88, 0x91, 0x03, 0xbc, 0xe0,
- 0xd5, 0xa0, 0xf8, 0x55, 0x59, 0x81, 0x6b, 0xd1, 0xfd, 0x32, 0x3a, 0xe1,
- 0x44, 0x75, 0x54, 0xb7, 0x1a, 0x69, 0xc4, 0xee, 0xa8, 0x1c, 0xda, 0x61,
- 0xd1, 0x52, 0xf5, 0x57, 0xec, 0xe6, 0xb8, 0x3a, 0xd5, 0x48, 0xbd, 0xf1,
- 0xd4, 0xce, 0xb3, 0x07, 0xd1, 0x90, 0x4a, 0xda, 0xd3, 0x45, 0xca, 0x4f,
- 0x96, 0xcb, 0x18, 0x1f, 0xb3, 0x76, 0x9d, 0x36, 0xc0, 0xcf, 0x6a, 0x69,
- 0xce, 0x69, 0x93, 0xcf, 0x3d, 0xbe, 0xe0, 0xac, 0xf0, 0xf1, 0x9d, 0x69,
- 0x05, 0x28, 0x11, 0x88, 0xbf, 0x37, 0x38, 0x75, 0xd4, 0x51, 0xe2, 0xbf,
- 0x06, 0xc2, 0x59, 0xeb, 0x7f, 0xcc, 0xbe, 0x46, 0xe0, 0xfc, 0x02, 0xd5,
- 0x32, 0x1a, 0x21, 0xce, 0xc9, 0x2c, 0x17, 0x05, 0x04, 0x92, 0xf3, 0x85,
- 0x71, 0x4c, 0x1e, 0x1c, 0x36, 0x61, 0xa3, 0xc7, 0xbb, 0x54, 0xe2, 0xc6,
- 0x4c, 0x83, 0x0d, 0x96, 0x08, 0x83, 0x7f, 0x60, 0xd8, 0x53, 0xb0, 0xaf,
- 0xc4, 0x64, 0xfe, 0x4d, 0x12, 0xda, 0xe8, 0x63, 0x4e, 0x70, 0x1d, 0x31,
- 0xba, 0x5d, 0x7f, 0xd5, 0x8a, 0xa7, 0xed, 0xaa, 0x15, 0x3e, 0x6d, 0x44,
- 0x71, 0x9c, 0xbe, 0xaf, 0x90, 0x46, 0xad, 0x26, 0xd1, 0x52, 0x1e, 0xf2,
- 0x31, 0x1e, 0xea, 0x66, 0x86, 0x40, 0x2c, 0x8b, 0x03, 0x53, 0xa9, 0x72,
- 0xfb, 0x1f, 0xff, 0x19, 0x5a, 0x31, 0x7e, 0xfc, 0x99, 0x62, 0x26, 0xa9,
- 0xfa, 0xb4, 0x5d, 0x38, 0xbd, 0x19, 0xeb, 0xd6, 0xe5, 0xfb, 0x8f, 0x55,
- 0x29, 0x91, 0x36, 0xe2, 0x3e, 0xeb, 0xab, 0xc9, 0x44, 0x9a, 0xee, 0xc6,
- 0x9f, 0x36, 0x6c, 0x49, 0x47, 0xb6, 0xdb, 0x4b, 0xc8, 0xa6, 0x88, 0x83,
- 0x32, 0x6e, 0xdd, 0x93, 0x0a, 0x0c, 0x3f, 0xb0, 0x0d, 0x5b, 0x91, 0x57,
- 0xb7, 0x45, 0x8a, 0x1c, 0x7a, 0xa9, 0x1c, 0x82, 0xa9, 0xa9, 0x50, 0x73,
- 0xae, 0xfc, 0x19, 0x46, 0x19, 0x88, 0x1a, 0x14, 0x1a, 0x98, 0x91, 0xca,
- 0x33, 0xe6, 0xcc, 0xfb, 0xbc, 0xe8, 0xf1, 0xc8, 0x0c, 0xa4, 0x4a, 0xe6,
- 0x7f, 0x18, 0xe6, 0x32, 0x6c, 0x6e, 0xca, 0xff, 0xf4, 0x5d, 0x2f, 0x03,
- 0xb3, 0x53, 0xc9, 0x00, 0x53, 0x78, 0xff, 0xa7, 0x5d, 0xe4, 0x9f, 0x0d,
- 0x3e, 0x09, 0x79, 0xe9, 0x8a, 0xd2, 0xdd, 0x98, 0x63, 0x59, 0xa5, 0x61,
- 0x1d, 0xb6, 0xb4, 0xed, 0x12, 0xa9, 0xf2, 0x43, 0xa8, 0x51, 0xff, 0x39,
- 0xc6, 0xcf, 0x1f, 0x77, 0x47, 0x8f, 0x7f, 0x76, 0xdd, 0xfe, 0x69, 0xf7,
- 0xfd, 0x9f, 0xf6, 0x06, 0xd1, 0xd4, 0x42, 0x07, 0x5c, 0xe1, 0xc5, 0x2a,
- 0xd6, 0x14, 0xb8, 0x2a, 0x69, 0x16, 0x12, 0x40, 0xe1, 0xe2, 0x67, 0x89,
- 0x77, 0x84, 0x3b, 0x09, 0x8b, 0x7c, 0x47, 0x73, 0xd3, 0x32, 0xd6, 0x7a,
- 0xf9, 0xdd, 0x94, 0xfc, 0xb2, 0x70, 0x15, 0xce, 0x72, 0x5d, 0x53, 0x68,
- 0xd1, 0xa9, 0x29, 0x54, 0x52, 0xa5, 0x71, 0x18, 0x31, 0xe1, 0x7a, 0x08,
- 0xd8, 0xb6, 0x11, 0xd9, 0xd2, 0xa4, 0xe5, 0x16, 0x2b, 0x93, 0xf3, 0x73,
- 0xfb, 0x49, 0x91, 0x05, 0x89, 0x7f, 0x5a, 0x37, 0x4c, 0xd0, 0x1a, 0x13,
- 0x7b, 0xe3, 0x99, 0x37, 0x6d, 0x54, 0x8e, 0x64, 0x75, 0xd0, 0xe8, 0x95,
- 0x5d, 0xd1, 0x6d, 0x15, 0x28, 0xe2, 0x54, 0xf6, 0xcd, 0x7a, 0x6f, 0x84,
- 0x3b, 0x96, 0xe0, 0x35, 0xd6, 0xab, 0x4c, 0x9f, 0xe9, 0x91, 0x80, 0x84,
- 0x44, 0x82, 0x5c, 0x5d, 0xc6, 0x42, 0x01, 0xd2, 0x73, 0xd4, 0x98, 0xf6,
- 0xf9, 0x2f, 0xad, 0x07, 0x31, 0x95, 0x73, 0x07, 0x98, 0x96, 0xd6, 0x3d,
- 0x0b, 0xe2, 0x2f, 0x85, 0xb7, 0x08, 0xb2, 0x50, 0xb4, 0x38, 0x6b, 0xdc,
- 0x55, 0x9c, 0xd3, 0xed, 0xf3, 0x57, 0x17, 0x4a, 0xc7, 0x9f, 0x4a, 0xd6,
- 0xeb, 0xd4, 0xc1, 0x01, 0x05, 0xb1, 0x11, 0xb8, 0x1d, 0x67, 0x77, 0x86,
- 0xad, 0x31, 0x32, 0xb1, 0x05, 0x3a, 0x55, 0xf3, 0x99, 0x5e, 0x6c, 0x75,
- 0xb2, 0x31, 0xda, 0x48, 0x36, 0x3d, 0x83, 0xc7, 0x2c, 0xad, 0xaf, 0xb6,
- 0xa2, 0xfc, 0xdf, 0xba, 0x34, 0x1c, 0x5f, 0x93, 0xd2, 0x35, 0x24, 0x16,
- 0x32, 0x43, 0xeb, 0x9f, 0x58, 0xc0, 0x8e, 0x3b, 0x7f, 0x22, 0x27, 0xcf,
- 0x72, 0x68, 0xfb, 0x4d, 0xb4, 0x16, 0x3a, 0xf3, 0x6b, 0x4f, 0x7c, 0x80,
- 0xa6, 0x39, 0x9f, 0x67, 0xf3, 0x51, 0xbe, 0x58, 0x64, 0xb3, 0x48, 0x78,
- 0x27, 0x05, 0x37, 0x72, 0x4d, 0x60, 0x7d, 0xd6, 0xd9, 0x17, 0xdb, 0x51,
- 0xc3, 0xe2, 0x2a, 0x53, 0xc7, 0x76, 0x34, 0x40, 0x4d, 0x3d, 0x5f, 0xc2,
- 0x74, 0x05, 0x52, 0x86, 0x51, 0x5c, 0x70, 0x8b, 0x92, 0x7d, 0xd9, 0x5c,
- 0xd9, 0x94, 0x81, 0xeb, 0xd7, 0x40, 0x40, 0x09, 0xc9, 0x34, 0x70, 0x82,
- 0xf3, 0x78, 0x52, 0x88, 0x48, 0xd3, 0x4c, 0x5b, 0xa3, 0xb8, 0xfd, 0x9b,
- 0x94, 0xb1, 0xba, 0x1c, 0xa0, 0x0f, 0x00, 0x1e, 0x9c, 0x65, 0x94, 0x45,
- 0xc8, 0xb0, 0x90, 0x34, 0x0b, 0x93, 0x7a, 0x57, 0xdc, 0x42, 0x2a, 0x23,
- 0xdf, 0x1e, 0xf1, 0x01, 0x4d, 0x19, 0xf5, 0xbd, 0x46, 0xbd, 0x97, 0xe8,
- 0xff, 0x1c, 0x7a, 0xeb, 0xab, 0x4a, 0xb6, 0x2e, 0xf7, 0x22, 0xbd, 0x6d,
- 0x5b, 0x8c, 0x3b, 0xc8, 0xbc, 0xfe, 0x83, 0xd1, 0xbc, 0x01, 0x0e, 0x3a,
- 0x4d, 0xeb, 0x0f, 0x1c, 0x9d, 0x33, 0x2b, 0xa3, 0xdb, 0xc3, 0x37, 0x63,
- 0x7b, 0x28, 0xeb, 0x70, 0xbd, 0x81, 0xb1, 0x55, 0x21, 0x45, 0xc3, 0xcf,
- 0xd3, 0x11, 0x84, 0x05, 0x38, 0x54, 0xed, 0xf2, 0x71, 0x97, 0x75, 0x8e,
- 0x85, 0x4a, 0x8b, 0x48, 0x14, 0x78, 0x1d, 0x09, 0x3a, 0xf0, 0x53, 0x29,
- 0x0d, 0xd9, 0x44, 0x04, 0xe3, 0x9e, 0xd5, 0x5b, 0x57, 0x58, 0xa7, 0xf5,
- 0x60, 0x34, 0x86, 0x8d, 0x79, 0x8b, 0xe4, 0x77, 0x11, 0x50, 0x86, 0x9b,
- 0x07, 0x93, 0x95, 0x6c, 0x51, 0x4d, 0xd1, 0x59, 0x69, 0x65, 0xab, 0x76,
- 0x06, 0xf6, 0xe6, 0x4b, 0xe0, 0x47, 0x41, 0xcd, 0x01, 0x8a, 0x86, 0x61,
- 0x72, 0x45, 0x24, 0x71, 0x78, 0x4d, 0x0d, 0x20, 0x84, 0x00, 0x25, 0xcf,
- 0x97, 0x57, 0x55, 0x5a, 0x87, 0x68, 0xcb, 0x93, 0xc9, 0x37, 0x09, 0x23,
- 0x2e, 0x9b, 0xa7, 0xf8, 0x19, 0xcb, 0x85, 0x3d, 0x50, 0xda, 0xdf, 0x53,
- 0x99, 0x40, 0x24, 0xea, 0x28, 0xad, 0x47, 0x01, 0x79, 0x9c, 0x75, 0x21,
- 0x1a, 0xa4, 0x54, 0x68, 0x8d, 0x98, 0x9c, 0x02, 0x30, 0x5d, 0x86, 0x3a,
- 0xb6, 0xc7, 0xe3, 0x6d, 0x08, 0x06, 0xdb, 0xe6, 0x1f, 0x8d, 0x02, 0x14,
- 0x21, 0xbf, 0x5b, 0x35, 0x19, 0x21, 0x45, 0xe8, 0x8c, 0x10, 0x95, 0xe0,
- 0x8e, 0x9f, 0xdf, 0xf9, 0x25, 0x29, 0xff, 0xb1, 0x32, 0xbc, 0x94, 0xf2,
- 0x2e, 0xb3, 0x8a, 0xa0, 0x3f, 0xb2, 0x45, 0x4b, 0xcf, 0x0a, 0x94, 0x12,
- 0x76, 0xcb, 0xd7, 0x02, 0x2c, 0xd4, 0x29, 0xe3, 0x0d, 0xab, 0x21, 0x79,
- 0x00, 0x30, 0x89, 0xbc, 0x51, 0x8b, 0x37, 0xc1, 0x70, 0xa4, 0x6b, 0x4d,
- 0x83, 0x8f, 0xf6, 0x3a, 0xfb, 0x97, 0x9b, 0x1d, 0x9f, 0x2d, 0x57, 0xe7,
- 0x84, 0x03, 0x7d, 0x65, 0x06, 0x19, 0x66, 0xba, 0xb1, 0x43, 0xa7, 0x1d,
- 0xbb, 0xc5, 0x32, 0x23, 0x4b, 0x11, 0x56, 0x4a, 0x57, 0x63, 0x0d, 0x03,
- 0x61, 0x73, 0x14, 0xe0, 0x66, 0x20, 0xc1, 0x72, 0x27, 0x5b, 0xec, 0x66,
- 0xa1, 0xa4, 0x4b, 0xd6, 0xcb, 0x97, 0x19, 0x0b, 0x95, 0xb9, 0xb2, 0x32,
- 0x58, 0x7f, 0x10, 0x48, 0x4c, 0x76, 0x20, 0x6a, 0x8d, 0x54, 0xba, 0x10,
- 0xf9, 0x89, 0xcd, 0xdb, 0x36, 0x9a, 0xc7, 0xd5, 0x1f, 0xc6, 0x9c, 0x01,
- 0xa5, 0x6d, 0xd6, 0xfd, 0xe5, 0xd1, 0x5b, 0x51, 0x71, 0x01, 0x5c, 0x4b,
- 0xa0, 0x21, 0x2c, 0x52, 0x05, 0xd8, 0xed, 0x64, 0x13, 0x7b, 0xf2, 0x88,
- 0x4b, 0xb8, 0x83, 0xec, 0xae, 0xd2, 0xbd, 0xc7, 0x4f, 0x64, 0xd8, 0x0a,
- 0xac, 0x48, 0x22, 0xf2, 0x06, 0x7f, 0xb5, 0xbd, 0xcd, 0x86, 0x62, 0x58,
- 0x39, 0x83, 0xdb, 0x97, 0x7c, 0x15, 0x78, 0xf6, 0xaf, 0x1b, 0xd1, 0x28,
- 0x7b, 0xb5, 0x81, 0xb0, 0x75, 0x18, 0xae, 0x6b, 0xca, 0x04, 0xf0, 0x6b,
- 0xf7, 0x0c, 0xbb, 0xd5, 0x1f, 0x29, 0xb7, 0x2b, 0x08, 0x8b, 0xf7, 0xcb,
- 0xda, 0x24, 0x82, 0x44, 0x44, 0x12, 0x36, 0xf8, 0x83, 0xc2, 0x0c, 0x00,
- 0xe4, 0xd9, 0x5f, 0x1f, 0x18, 0x58, 0x1b, 0x72, 0x69, 0xcc, 0x62, 0x55,
- 0x6c, 0x89, 0xe8, 0xfc, 0x86, 0x05, 0x1d, 0x26, 0x67, 0xb7, 0x27, 0x11,
- 0x9e, 0xc6, 0x6c, 0xb0, 0x1f, 0x80, 0x46, 0x6a, 0x7a, 0x08, 0xa2, 0x1c,
- 0x95, 0x2e, 0x2c, 0x26, 0x33, 0x31, 0x24, 0x2f, 0xb7, 0xc0, 0x9d, 0x16,
- 0xce, 0xb6, 0x6e, 0x83, 0x95, 0x05, 0x9a, 0x01, 0x95, 0x00, 0xd0, 0xb4,
- 0x7c, 0x9b, 0x75, 0xcd, 0xce, 0xdc, 0x3b, 0x8a, 0x1a, 0x09, 0xce, 0x81,
- 0x21, 0x85, 0x6d, 0xd0, 0x81, 0x98, 0xad, 0x02, 0x21, 0xf6, 0xe9, 0x78,
- 0xff, 0xd9, 0x78, 0xe7, 0x40, 0xc1, 0xbb, 0x87, 0xc9, 0xd7, 0xc5, 0x0a,
- 0x3b, 0x82, 0x49, 0x7f, 0x3d, 0xf9, 0x36, 0x6f, 0xc2, 0x17, 0x1e, 0xed,
- 0xe3, 0x85, 0x37, 0x13, 0x7e, 0xe8, 0xa6, 0x9c, 0x5f, 0x98, 0x17, 0x23,
- 0x8f, 0x3d, 0xc5, 0x63, 0x86, 0xdc, 0x66, 0x4d, 0x00, 0x33, 0x20, 0xf4,
- 0xd5, 0x3f, 0xa8, 0x47, 0x8f, 0x22, 0x83, 0x1a, 0x7e, 0x6c, 0xa7, 0x5d,
- 0xe7, 0x3a, 0x5d, 0xfb, 0x20, 0x34, 0xd4, 0xc6, 0x23, 0x8a, 0xa2, 0x9c,
- 0x51, 0x8b, 0x51, 0xff, 0x7b, 0x32, 0x65, 0xc6, 0xa7, 0x79, 0x48, 0xe1,
- 0xcc, 0x8a, 0xa0, 0x36, 0x1b, 0x42, 0x1d, 0x79, 0xba, 0xb7, 0xbf, 0xbb,
- 0xfd, 0x64, 0xfc, 0x68, 0xbc, 0x67, 0xe3, 0xcc, 0x39, 0x19, 0xbf, 0xa1,
- 0x88, 0xbe, 0x88, 0x2b, 0x95, 0x82, 0x2b, 0xf3, 0x42, 0x80, 0x76, 0xec,
- 0x27, 0x64, 0xea, 0x71, 0xc1, 0xa5, 0x80, 0xde, 0xd9, 0xf5, 0xd3, 0x12,
- 0x63, 0x35, 0xd2, 0x51, 0xfe, 0x15, 0x83, 0xb0, 0xd6, 0x6f, 0x2c, 0xc0,
- 0x79, 0xfe, 0x8f, 0x55, 0xde, 0x18, 0xd1, 0x00, 0x8c, 0x06, 0x06, 0x7d,
- 0xad, 0xd2, 0x41, 0xe8, 0x84, 0x34, 0x07, 0x05, 0x4a, 0x0e, 0xb9, 0x96,
- 0xa6, 0xf1, 0x78, 0xa8, 0x11, 0x94, 0x3b, 0x98, 0x13, 0x3f, 0xe3, 0xc2,
- 0x58, 0xb5, 0x51, 0x2e, 0xa6, 0xa8, 0xe8, 0x6a, 0xb4, 0xf2, 0x6b, 0x24,
- 0xc9, 0xa7, 0x71, 0x14, 0x1b, 0xc6, 0x89, 0x63, 0xdf, 0xb1, 0xc4, 0x37,
- 0xba, 0x22, 0x1a, 0xf2, 0x01, 0xe3, 0x0c, 0xb1, 0x2d, 0x1c, 0x6e, 0x4d,
- 0x7f, 0xc2, 0x6b, 0x4c, 0x6c, 0x0c, 0xd7, 0x0b, 0x29, 0x16, 0x29, 0x7e,
- 0xec, 0x20, 0x65, 0xd0, 0x50, 0x12, 0xc4, 0x5a, 0xb0, 0x6b, 0xeb, 0x43,
- 0xef, 0x04, 0x7d, 0x68, 0xe8, 0x7e, 0xdf, 0xd7, 0xfa, 0x31, 0xc7, 0x43,
- 0x3f, 0xd1, 0xd3, 0x09, 0x47, 0x01, 0x4d, 0x77, 0xeb, 0xbb, 0x4b, 0x9b,
- 0xbf, 0x9a, 0x94, 0xf6, 0x7f, 0x7b, 0x52, 0xda, 0xfb, 0xbf, 0xa4, 0xf4,
- 0x07, 0x91, 0xd2, 0xee, 0x3f, 0x47, 0x4a, 0xcf, 0x62, 0xa4, 0xb4, 0xff,
- 0x10, 0x52, 0x32, 0xbb, 0x36, 0xc7, 0x6d, 0xd8, 0x22, 0xa5, 0x47, 0x1f,
- 0x45, 0x4a, 0x4c, 0x4b, 0x44, 0x4c, 0xbd, 0xd4, 0x84, 0x59, 0xf9, 0xd9,
- 0xd2, 0x66, 0x32, 0x71, 0xf7, 0xc4, 0xc3, 0xf7, 0x2c, 0x6d, 0x35, 0x1a,
- 0x24, 0xe2, 0x32, 0xc1, 0xfe, 0x31, 0x87, 0x7f, 0xf7, 0xa3, 0x77, 0x6c,
- 0xaf, 0xab, 0x7c, 0x54, 0x19, 0xbb, 0xe5, 0x7e, 0x54, 0xef, 0xe8, 0xc1,
- 0xf6, 0xf6, 0xcf, 0x64, 0x80, 0x3b, 0xc0, 0x2d, 0xf6, 0x73, 0x57, 0x48,
- 0x17, 0x84, 0x58, 0x27, 0xb1, 0x4e, 0x4e, 0x0e, 0xbf, 0x9d, 0x88, 0x6f,
- 0x4f, 0x44, 0x0a, 0x15, 0x39, 0x58, 0xd3, 0x26, 0xaf, 0x3e, 0x23, 0xd6,
- 0x45, 0x6b, 0x61, 0x4e, 0xcc, 0x38, 0x6e, 0x87, 0xd6, 0xc9, 0x36, 0x26,
- 0xfc, 0x19, 0xf1, 0x37, 0x32, 0x0e, 0x0d, 0x57, 0xb3, 0x25, 0x9b, 0x93,
- 0x34, 0xdd, 0x03, 0x65, 0xe8, 0x8f, 0xc5, 0x56, 0xf9, 0xb5, 0xaf, 0x6c,
- 0x36, 0x57, 0x15, 0x65, 0x3a, 0xd2, 0x63, 0x22, 0x3d, 0x7b, 0x78, 0x7a,
- 0x3d, 0xa3, 0x93, 0x51, 0x7d, 0x43, 0x48, 0xe0, 0xcb, 0xca, 0x86, 0x9b,
- 0x44, 0xf4, 0x58, 0xfb, 0xad, 0x9a, 0x66, 0x5d, 0x1e, 0x8e, 0x5b, 0x30,
- 0x01, 0xf4, 0xf3, 0xd6, 0x1b, 0xef, 0x05, 0x81, 0xe5, 0xf9, 0x2d, 0xe7,
- 0x5d, 0x58, 0x18, 0xa8, 0x39, 0xd5, 0xa7, 0x6f, 0xb4, 0x44, 0xd3, 0xed,
- 0x9d, 0x2b, 0x28, 0xce, 0x51, 0xbd, 0x19, 0x57, 0x41, 0xaa, 0x1f, 0x99,
- 0x26, 0xbb, 0x36, 0x3d, 0xfe, 0x22, 0xc5, 0x37, 0xf2, 0xc7, 0x63, 0x74,
- 0x4c, 0xf1, 0x2b, 0xfc, 0xe7, 0x15, 0xfd, 0xcd, 0x71, 0x5b, 0x8c, 0x4e,
- 0xe7, 0xed, 0xf3, 0x34, 0xba, 0xd0, 0xca, 0x33, 0xd9, 0x74, 0xc5, 0xb8,
- 0x16, 0x6f, 0xca, 0x00, 0xc9, 0x8d, 0xe6, 0x0c, 0x23, 0x10, 0x25, 0xf5,
- 0xc7, 0x0c, 0x40, 0x1e, 0xc7, 0xa5, 0x96, 0x1f, 0xf5, 0xf8, 0x7b, 0xb3,
- 0xc4, 0x47, 0xd8, 0x55, 0x8c, 0x08, 0xbf, 0x72, 0xa2, 0x17, 0x84, 0xc2,
- 0x5b, 0x30, 0x64, 0xa4, 0xe5, 0x30, 0xed, 0x05, 0x55, 0x81, 0x64, 0xe4,
- 0xbb, 0x3b, 0x9f, 0x86, 0x56, 0x87, 0x77, 0xb5, 0x60, 0x8d, 0x3a, 0x90,
- 0x59, 0x0a, 0x38, 0xa3, 0x8c, 0xab, 0x73, 0x97, 0xe2, 0x18, 0xeb, 0x14,
- 0x0e, 0x88, 0x98, 0x76, 0x3b, 0xcb, 0x58, 0x1f, 0x3a, 0x67, 0xc5, 0x36,
- 0x4c, 0xb5, 0x01, 0x2a, 0x03, 0xcc, 0x01, 0xb9, 0xf8, 0xe5, 0x8c, 0x54,
- 0xc8, 0xf1, 0x52, 0x81, 0xe3, 0x06, 0x76, 0x0a, 0xf5, 0xc9, 0x7f, 0xe1,
- 0xd0, 0x0d, 0xff, 0xfc, 0x68, 0x07, 0x7b, 0xaa, 0x8d, 0xa0, 0x32, 0xd8,
- 0xbc, 0x14, 0xb0, 0x92, 0x3f, 0xef, 0xa7, 0xe3, 0x3f, 0x10, 0x33, 0xee,
- 0x71, 0x5b, 0x4f, 0xfe, 0xd3, 0xd0, 0x8f, 0xbc, 0x3c, 0x4f, 0xab, 0x88,
- 0x59, 0x46, 0x2e, 0x69, 0xc5, 0x97, 0x51, 0x20, 0x0e, 0x1b, 0x92, 0x99,
- 0xb2, 0x8a, 0x4a, 0x19, 0x62, 0xf6, 0x43, 0xd3, 0x54, 0x12, 0x82, 0x82,
- 0x58, 0xd7, 0x10, 0xc7, 0xe1, 0xb0, 0x2d, 0x60, 0x18, 0x80, 0xf8, 0xa5,
- 0xf3, 0x21, 0x07, 0x7a, 0xf6, 0x64, 0xa0, 0xdb, 0x5e, 0xa8, 0x9b, 0x59,
- 0x95, 0xde, 0x78, 0x5a, 0x32, 0x83, 0x74, 0x5d, 0x90, 0xdf, 0xc7, 0x86,
- 0xb5, 0x99, 0xef, 0x11, 0xb2, 0x52, 0x47, 0x62, 0x7b, 0xea, 0x69, 0x85,
- 0x1c, 0x7d, 0x29, 0x15, 0x43, 0x2d, 0x2d, 0x01, 0x8c, 0x6a, 0x44, 0x8c,
- 0xcb, 0x4c, 0x11, 0x49, 0xec, 0xac, 0x15, 0x06, 0x85, 0x20, 0x50, 0xc6,
- 0xb1, 0x54, 0x1d, 0x67, 0xb1, 0xb2, 0x91, 0xbb, 0x10, 0x25, 0x18, 0x33,
- 0x05, 0xaf, 0x0f, 0x25, 0xb8, 0xd2, 0xe2, 0xca, 0x2e, 0x51, 0xc2, 0xb3,
- 0xbe, 0xca, 0x97, 0xdd, 0x2b, 0x7a, 0xf4, 0x59, 0xf9, 0xd9, 0x68, 0x4b,
- 0x48, 0xbc, 0xbc, 0xce, 0x6a, 0xae, 0xf7, 0x4d, 0xf9, 0x8d, 0xe6, 0xc4,
- 0x5d, 0x91, 0x11, 0x45, 0x2e, 0x2f, 0x98, 0x11, 0x28, 0xa5, 0x80, 0x62,
- 0x2e, 0xc8, 0xc1, 0xd4, 0x03, 0xa1, 0xc2, 0x5e, 0x61, 0xe6, 0x77, 0x30,
- 0xb8, 0x98, 0xb5, 0xba, 0xe0, 0xa8, 0x67, 0x98, 0x02, 0x12, 0x84, 0xf9,
- 0x08, 0x7e, 0x3c, 0x7b, 0x54, 0xca, 0x65, 0xfb, 0x6e, 0x32, 0x7c, 0x64,
- 0xa4, 0xbc, 0xe1, 0xb9, 0xb2, 0x95, 0xcf, 0xef, 0xcd, 0x88, 0xb3, 0x0c,
- 0xe8, 0x42, 0xcc, 0x14, 0x38, 0x7c, 0x94, 0x20, 0xc9, 0xc8, 0xf3, 0xd3,
- 0xab, 0x6c, 0x21, 0x35, 0xb8, 0xba, 0xbb, 0x2e, 0x28, 0x37, 0xbd, 0x85,
- 0x50, 0xdb, 0x63, 0xe2, 0x90, 0xf1, 0x8b, 0x66, 0x39, 0x5e, 0x94, 0xbf,
- 0x98, 0x35, 0x4e, 0x51, 0xd4, 0x33, 0x38, 0x12, 0x70, 0x0f, 0x16, 0xbc,
- 0x29, 0xc4, 0x6f, 0x57, 0x85, 0x55, 0x11, 0x1d, 0x0b, 0x57, 0x30, 0x3a,
- 0xc6, 0x3f, 0x3b, 0x34, 0x23, 0x3e, 0x7a, 0xff, 0xee, 0xcd, 0xe4, 0xdd,
- 0xe9, 0x28, 0x00, 0xac, 0x7c, 0x7b, 0x76, 0xf4, 0x12, 0xe1, 0x74, 0x67,
- 0x27, 0x87, 0x27, 0xc7, 0xc9, 0xe6, 0xee, 0xd6, 0xbd, 0x15, 0xab, 0x7d,
- 0x00, 0xd5, 0xc6, 0xb3, 0xb7, 0x32, 0xcf, 0xb2, 0x43, 0xd8, 0xc4, 0x7c,
- 0xc2, 0xd6, 0xbe, 0x17, 0xda, 0x6a, 0x61, 0xce, 0x93, 0xa5, 0x41, 0x82,
- 0x17, 0x3f, 0x40, 0x64, 0xba, 0x5c, 0xf1, 0x61, 0x94, 0x60, 0x28, 0x17,
- 0x29, 0x19, 0x5c, 0x45, 0x59, 0xc6, 0x91, 0x18, 0x7e, 0xca, 0xec, 0x5a,
- 0x83, 0xdb, 0xe3, 0xae, 0xcc, 0x82, 0x3d, 0x20, 0x01, 0xcc, 0x51, 0x45,
- 0x1d, 0x27, 0x0b, 0x4b, 0x17, 0x8c, 0x4a, 0x43, 0xf8, 0xfb, 0x0e, 0x73,
- 0x28, 0x6f, 0xac, 0xf7, 0xb0, 0x2c, 0xac, 0x48, 0x37, 0x4e, 0x4e, 0xc3,
- 0x42, 0x75, 0xf2, 0xc6, 0x2c, 0x2b, 0xa4, 0x52, 0xb2, 0x8c, 0x83, 0x7c,
- 0xcd, 0x54, 0x86, 0x89, 0xe3, 0x75, 0xcc, 0x03, 0xf8, 0xd6, 0x5b, 0x2b,
- 0xc2, 0x61, 0xc8, 0x42, 0x20, 0x59, 0x7a, 0x9b, 0x31, 0x5b, 0x6e, 0xbc,
- 0x31, 0xa1, 0x3d, 0x08, 0x65, 0x84, 0x5c, 0x1a, 0xe1, 0xb0, 0x47, 0xea,
- 0x9a, 0x64, 0xbc, 0x19, 0x3a, 0x93, 0x24, 0xbf, 0x28, 0xf4, 0xd1, 0xc4,
- 0x9f, 0xcb, 0x3d, 0x84, 0xcc, 0x8b, 0x08, 0x5f, 0xd1, 0x10, 0x7b, 0x3f,
- 0x64, 0x82, 0x16, 0x97, 0xec, 0x9a, 0xb4, 0xbb, 0x2f, 0xdb, 0x30, 0x8d,
- 0x3e, 0x6e, 0x3b, 0xe7, 0x56, 0xd3, 0x40, 0x86, 0x16, 0x92, 0xe9, 0xab,
- 0xce, 0xb0, 0xba, 0xec, 0xe7, 0xe9, 0xf8, 0xc9, 0xe3, 0xf1, 0x1e, 0x82,
- 0x43, 0x4f, 0xe6, 0xf0, 0x60, 0x8a, 0x64, 0x41, 0x16, 0x64, 0xea, 0x20,
- 0x15, 0xaf, 0x3a, 0xbc, 0x5a, 0x6e, 0xad, 0xa4, 0xc5, 0x30, 0x97, 0x19,
- 0x8e, 0x26, 0xc1, 0x5a, 0xd0, 0xab, 0xcc, 0x22, 0xa3, 0x70, 0x3d, 0xed,
- 0x36, 0xe6, 0xc9, 0x81, 0x04, 0xc6, 0x72, 0xe0, 0x67, 0x97, 0xd7, 0xbe,
- 0x3a, 0x3e, 0x62, 0x84, 0xd8, 0xc3, 0x53, 0x0e, 0x9e, 0x97, 0xa6, 0x38,
- 0x32, 0xd7, 0x96, 0xa4, 0xdf, 0x19, 0xef, 0x00, 0x95, 0xf2, 0x4b, 0x11,
- 0xca, 0xcd, 0x6f, 0x46, 0xb4, 0x0d, 0x25, 0x01, 0x16, 0xe7, 0xb5, 0x8d,
- 0x71, 0xe2, 0x3b, 0x13, 0x31, 0x3d, 0x33, 0xbc, 0xbf, 0xe0, 0x5f, 0x4d,
- 0x2e, 0xea, 0x4e, 0xb9, 0x07, 0x8d, 0x69, 0x28, 0xf9, 0xa1, 0xec, 0x93,
- 0x44, 0x36, 0x42, 0x74, 0xc6, 0xe3, 0xf5, 0x48, 0x70, 0x7b, 0xc1, 0x41,
- 0xbb, 0xf7, 0x88, 0xdd, 0x77, 0xc2, 0xe8, 0x88, 0xb1, 0xb1, 0xfb, 0xa2,
- 0x75, 0x6b, 0x75, 0xef, 0xb4, 0x53, 0xfb, 0x16, 0xad, 0x72, 0x86, 0xc4,
- 0x5a, 0xb2, 0xfd, 0xce, 0xb3, 0x0b, 0x92, 0x0d, 0x29, 0xdb, 0x7d, 0x48,
- 0x5f, 0x92, 0x3b, 0xd9, 0x06, 0xc5, 0xf2, 0x4e, 0x74, 0xd7, 0x19, 0x6d,
- 0xa4, 0x53, 0x5f, 0xd6, 0xb6, 0x08, 0x82, 0x1b, 0x66, 0x51, 0x51, 0x7e,
- 0x4d, 0x40, 0x17, 0xe6, 0x77, 0xe4, 0x6d, 0xcc, 0x6f, 0x35, 0xd7, 0xe8,
- 0x97, 0xac, 0x2a, 0xc3, 0xe0, 0x06, 0x12, 0x1e, 0x14, 0xce, 0x0d, 0xaa,
- 0xa4, 0x56, 0x1a, 0x74, 0x1f, 0xa2, 0xd7, 0xe0, 0xcc, 0xfd, 0x85, 0x6a,
- 0x7f, 0x33, 0x36, 0x39, 0xd7, 0xe9, 0xe3, 0xd1, 0x10, 0xac, 0xd9, 0x2c,
- 0x57, 0x77, 0xb4, 0xc7, 0x03, 0xe6, 0x48, 0xc7, 0xbf, 0xe3, 0xbc, 0xfe,
- 0x40, 0xc5, 0x24, 0xf1, 0x6f, 0x06, 0x75, 0xc6, 0xe5, 0x25, 0x58, 0x0f,
- 0x1a, 0xea, 0xec, 0x39, 0xc8, 0x39, 0x91, 0xe7, 0x42, 0x9e, 0x3e, 0x4a,
- 0x92, 0x97, 0x59, 0x71, 0xd7, 0x1e, 0x10, 0x02, 0x63, 0xcd, 0xe5, 0x0f,
- 0x0a, 0xca, 0x1b, 0x87, 0xf7, 0xe2, 0xd2, 0x04, 0xdc, 0x10, 0xc3, 0x21,
- 0xb5, 0xc7, 0x1c, 0xe3, 0x5c, 0x9f, 0xd9, 0x65, 0xd0, 0x98, 0x4c, 0x7f,
- 0x31, 0x36, 0x09, 0xd1, 0x54, 0x3d, 0xea, 0xd4, 0xe5, 0x43, 0x96, 0x81,
- 0x30, 0x17, 0x49, 0xab, 0xab, 0x57, 0xe7, 0x7f, 0x17, 0x54, 0x6c, 0x58,
- 0x16, 0x2a, 0x59, 0x05, 0x89, 0xa3, 0x36, 0xbb, 0x6a, 0x1e, 0x60, 0xd7,
- 0x14, 0x98, 0x43, 0x11, 0x6b, 0x8e, 0x1c, 0xfd, 0xb9, 0x17, 0x30, 0xe6,
- 0x28, 0x8c, 0x46, 0x14, 0xcd, 0x98, 0xce, 0x7a, 0x44, 0x06, 0x3d, 0x3f,
- 0xa3, 0x0b, 0xf0, 0x54, 0x8e, 0xcf, 0xed, 0x5c, 0xbe, 0xbc, 0x96, 0x1c,
- 0x14, 0x6e, 0x33, 0x1a, 0xf0, 0x78, 0x6f, 0x5b, 0xca, 0xa9, 0xeb, 0xe1,
- 0x5f, 0xf0, 0x4f, 0x38, 0x87, 0x76, 0x82, 0x06, 0xca, 0xee, 0x0a, 0x1b,
- 0xc1, 0xe3, 0xc4, 0x98, 0xe8, 0xf5, 0xbe, 0x0e, 0x3e, 0x73, 0xd7, 0xc0,
- 0xfa, 0xb6, 0x89, 0x8b, 0x7d, 0x44, 0x07, 0xef, 0x54, 0x02, 0x72, 0x54,
- 0x8e, 0x5f, 0xa9, 0xca, 0x06, 0x84, 0x56, 0x49, 0x23, 0xd3, 0xfa, 0xd7,
- 0xa2, 0x13, 0xd5, 0xa8, 0xb7, 0x45, 0xda, 0x7e, 0x50, 0x69, 0xe7, 0x02,
- 0x69, 0x20, 0x15, 0x7e, 0x60, 0x77, 0x29, 0xca, 0x49, 0xeb, 0x0d, 0x68,
- 0x42, 0xc2, 0xb2, 0x6c, 0xb8, 0xf2, 0x01, 0x12, 0x46, 0x20, 0xfc, 0x54,
- 0x30, 0x0e, 0xc6, 0xca, 0xd0, 0xea, 0x46, 0x38, 0x39, 0x1a, 0x2d, 0x93,
- 0xeb, 0x67, 0xb5, 0x2c, 0x0b, 0x97, 0x3b, 0xc8, 0xbe, 0x57, 0x8f, 0xc5,
- 0x45, 0xe5, 0x5f, 0x8e, 0xee, 0x25, 0xf3, 0x94, 0xad, 0x9d, 0x70, 0x5d,
- 0xe6, 0xb3, 0x75, 0x80, 0xc2, 0xd1, 0x7a, 0x3e, 0x41, 0x60, 0x9f, 0xcd,
- 0x51, 0x21, 0xc3, 0x88, 0xcb, 0x1e, 0x8e, 0x64, 0x4e, 0x5a, 0x10, 0x7e,
- 0x72, 0x61, 0x17, 0xf0, 0x3d, 0x15, 0xec, 0xce, 0x12, 0x75, 0x55, 0x59,
- 0x34, 0x86, 0x49, 0x51, 0xd1, 0x05, 0xf4, 0xa4, 0x69, 0x16, 0xc6, 0xab,
- 0xbb, 0x6a, 0x56, 0xeb, 0xf2, 0x06, 0x7c, 0x91, 0xc2, 0xa6, 0x0f, 0x38,
- 0x69, 0x79, 0x7c, 0xcf, 0x55, 0x73, 0x7b, 0xa7, 0x01, 0xcb, 0x6b, 0xaf,
- 0x99, 0x25, 0xc1, 0x86, 0x98, 0x0d, 0xc9, 0x1b, 0xda, 0xe4, 0x4e, 0xbe,
- 0x84, 0xe6, 0x11, 0x70, 0x89, 0x06, 0x73, 0x86, 0x57, 0x61, 0x11, 0x56,
- 0xf5, 0xea, 0x31, 0x0c, 0x88, 0x73, 0x48, 0xb3, 0x1c, 0x25, 0xf6, 0x1e,
- 0x2e, 0x13, 0xe3, 0x55, 0xce, 0xc1, 0xde, 0xc1, 0xd1, 0x17, 0x37, 0x47,
- 0x6e, 0xdb, 0x4a, 0x03, 0x86, 0xc8, 0x8a, 0xd9, 0xc8, 0xf0, 0x92, 0xe5,
- 0x9a, 0xc5, 0xba, 0x1d, 0xea, 0xa4, 0xed, 0x2f, 0x1c, 0xe5, 0xdd, 0x4a,
- 0xbc, 0xe0, 0x68, 0xee, 0x75, 0x06, 0xd8, 0xfd, 0xd8, 0x32, 0xc6, 0xc2,
- 0xc5, 0x7d, 0x71, 0x58, 0xf5, 0xa4, 0xde, 0xc2, 0x31, 0xbc, 0x7c, 0xb4,
- 0x7a, 0xba, 0x5a, 0x7d, 0x51, 0xd8, 0xbc, 0x70, 0xb2, 0x66, 0xef, 0x38,
- 0x73, 0x9b, 0x5a, 0x24, 0x40, 0x8e, 0x42, 0x92, 0x76, 0xbc, 0x9e, 0x58,
- 0x1d, 0x0c, 0x16, 0x71, 0x41, 0xd9, 0x9e, 0x5c, 0x83, 0x44, 0x9e, 0xb4,
- 0x54, 0xac, 0x1c, 0x33, 0xbe, 0xd5, 0x11, 0x7b, 0x12, 0xf1, 0x5a, 0xea,
- 0x08, 0x03, 0xcb, 0xd7, 0x82, 0x24, 0xc5, 0x76, 0x22, 0x06, 0x0e, 0x36,
- 0xeb, 0x24, 0x3e, 0xe8, 0xe7, 0xd3, 0x14, 0xce, 0xdd, 0x78, 0xe0, 0xea,
- 0x44, 0x8e, 0xdf, 0x48, 0x9f, 0x02, 0xa3, 0xd7, 0x10, 0x77, 0xcf, 0xba,
- 0xc8, 0x65, 0xec, 0x6e, 0x9b, 0x7b, 0x4e, 0x17, 0xf5, 0x06, 0x7f, 0xfe,
- 0xd0, 0xb6, 0x48, 0x76, 0x53, 0xfe, 0x50, 0x6d, 0xc1, 0xbe, 0x2d, 0xf5,
- 0xc1, 0xd6, 0x99, 0x56, 0xf3, 0x12, 0x34, 0xde, 0x3f, 0x17, 0x7a, 0xe8,
- 0xd7, 0xcc, 0xa5, 0x93, 0x4f, 0xe1, 0xe6, 0xe0, 0x0d, 0x5a, 0x53, 0x1b,
- 0xb8, 0x9b, 0x35, 0xc4, 0xdf, 0x33, 0x05, 0xd3, 0xe2, 0x9a, 0xfa, 0xe5,
- 0xde, 0x34, 0xec, 0x83, 0x1f, 0x3b, 0x93, 0xfb, 0x97, 0x91, 0x28, 0x02,
- 0x3f, 0x7f, 0x3c, 0x20, 0xf3, 0xe1, 0xec, 0xe7, 0xde, 0x71, 0x1c, 0x0d,
- 0x65, 0x2c, 0xbf, 0xc3, 0x30, 0xf2, 0xe5, 0x15, 0x64, 0xd2, 0xe7, 0xb1,
- 0x64, 0x50, 0x6f, 0x21, 0xe4, 0xb1, 0xdf, 0xbe, 0xff, 0x6a, 0xee, 0x70,
- 0xf3, 0xd6, 0xf4, 0x2f, 0x8f, 0xfd, 0xe6, 0xfd, 0xf3, 0x91, 0xbd, 0xd7,
- 0x5c, 0x44, 0xcc, 0xe9, 0xa5, 0x24, 0xce, 0x44, 0xf8, 0xe0, 0xaf, 0x66,
- 0x84, 0x92, 0x8c, 0x13, 0x72, 0x42, 0xe9, 0x0c, 0xef, 0x06, 0x35, 0xc3,
- 0x84, 0x15, 0x12, 0x27, 0xfc, 0xe7, 0xb9, 0x16, 0xf1, 0xe2, 0x70, 0x65,
- 0xa4, 0x94, 0xd6, 0x73, 0xfe, 0x77, 0xfb, 0x8b, 0xd8, 0x06, 0x69, 0x82,
- 0x1f, 0xee, 0x3c, 0xad, 0xbd, 0x45, 0xc5, 0x9c, 0x18, 0x85, 0x48, 0xc4,
- 0x64, 0x5b, 0xa6, 0xc8, 0x2f, 0xf1, 0x40, 0xb3, 0x8c, 0x55, 0xfc, 0x92,
- 0xe5, 0x41, 0xdc, 0x36, 0xb4, 0x42, 0x0b, 0x79, 0x6a, 0x43, 0x89, 0xa0,
- 0x65, 0x64, 0x5e, 0x8f, 0x75, 0x5f, 0xe5, 0xc6, 0x6e, 0xe1, 0x64, 0x87,
- 0x1f, 0xfc, 0xcd, 0x50, 0x0a, 0x6e, 0x99, 0xd6, 0x40, 0x52, 0x12, 0xb7,
- 0x2c, 0xbc, 0x45, 0xf6, 0x32, 0xcc, 0xc7, 0xe5, 0x68, 0x55, 0xc6, 0x7f,
- 0x62, 0xc0, 0x02, 0x33, 0xc3, 0xc3, 0x93, 0x37, 0x6f, 0x8e, 0x0e, 0xbb,
- 0xce, 0x6a, 0x9b, 0xe9, 0xe6, 0xf4, 0x83, 0x68, 0x60, 0x6d, 0xab, 0x96,
- 0x27, 0xf7, 0x4f, 0xa5, 0xe0, 0x52, 0x81, 0x47, 0xe6, 0x2f, 0x25, 0xed,
- 0x93, 0xd1, 0x73, 0x65, 0xfb, 0x03, 0x34, 0xb5, 0x08, 0x31, 0xf8, 0x48,
- 0x34, 0xec, 0x59, 0x41, 0x41, 0x60, 0x89, 0xa6, 0x25, 0xc5, 0x57, 0x46,
- 0x41, 0x19, 0x11, 0xb3, 0xd9, 0xb6, 0x24, 0x12, 0x68, 0xdf, 0x7d, 0x84,
- 0xcc, 0xf8, 0xa1, 0x48, 0x46, 0x1c, 0x95, 0x17, 0x5c, 0x88, 0x62, 0x91,
- 0x56, 0x1f, 0xe0, 0xef, 0xf6, 0x32, 0x23, 0x28, 0x9f, 0x1d, 0x76, 0x2f,
- 0xd3, 0x72, 0x0c, 0xe2, 0x86, 0x4c, 0xf5, 0x9a, 0x7e, 0x45, 0x19, 0xd2,
- 0x3c, 0x18, 0x29, 0xd8, 0x7a, 0xa0, 0xa5, 0x45, 0xf1, 0x7a, 0x91, 0xdd,
- 0xa0, 0x1b, 0xc6, 0xf5, 0x02, 0x4e, 0x4d, 0x58, 0xb0, 0x85, 0x41, 0xd7,
- 0xd9, 0x15, 0x21, 0x19, 0x2b, 0xb4, 0x55, 0x0b, 0x2e, 0x88, 0x62, 0x88,
- 0x8e, 0xa0, 0xba, 0x25, 0xd7, 0x30, 0x58, 0xab, 0x6f, 0xa4, 0xf2, 0x5a,
- 0xc7, 0x0b, 0x17, 0x94, 0x88, 0x93, 0x44, 0x4c, 0xa1, 0xf1, 0x19, 0x47,
- 0x2c, 0xf6, 0xc1, 0x9c, 0xf1, 0x4a, 0xd3, 0x36, 0x40, 0xb7, 0xa9, 0x5b,
- 0x4d, 0xe8, 0xee, 0xa6, 0x3d, 0xee, 0xc2, 0x09, 0x90, 0xe5, 0x39, 0xb6,
- 0xac, 0xa0, 0xcb, 0xec, 0x71, 0x17, 0x6f, 0x99, 0xf0, 0x15, 0xc9, 0xb6,
- 0x0a, 0x48, 0xd5, 0x4b, 0xca, 0x4e, 0xc1, 0xc3, 0x74, 0x58, 0x03, 0xa1,
- 0x16, 0xdc, 0x94, 0xd2, 0x8d, 0x87, 0xa2, 0x20, 0x90, 0xef, 0xd3, 0xac,
- 0x2e, 0xf6, 0x41, 0xd6, 0x5e, 0x31, 0xd2, 0xd8, 0x71, 0x21, 0x07, 0xd8,
- 0xfc, 0xbb, 0x0c, 0xca, 0x18, 0x31, 0x64, 0x24, 0x03, 0x05, 0x7d, 0x31,
- 0x0a, 0xcb, 0xe7, 0xa5, 0x33, 0x7f, 0x4f, 0x19, 0xd9, 0x10, 0xe6, 0x82,
- 0xba, 0x99, 0xe5, 0xf7, 0x81, 0xf9, 0x52, 0xbe, 0xcc, 0x79, 0x96, 0xc4,
- 0x14, 0x1c, 0x5a, 0x31, 0x47, 0xaa, 0xdb, 0x64, 0x8f, 0xe8, 0xd2, 0x82,
- 0x7d, 0x45, 0x59, 0xc4, 0x3a, 0x50, 0x30, 0x02, 0xdd, 0xe8, 0x70, 0x3f,
- 0xa3, 0xe8, 0xc0, 0x1a, 0x96, 0xf5, 0xdd, 0x48, 0x1f, 0xb8, 0xa2, 0x1f,
- 0x3f, 0xf4, 0xdb, 0x5f, 0x4b, 0x1f, 0xb2, 0xbb, 0x07, 0x09, 0x28, 0xf6,
- 0xb9, 0xdf, 0x63, 0x04, 0xc9, 0x73, 0xf3, 0x63, 0x6d, 0xdf, 0x0f, 0xef,
- 0x36, 0xc0, 0xcf, 0x7d, 0xd8, 0x95, 0xeb, 0x50, 0xa1, 0x1d, 0x2c, 0x74,
- 0x90, 0xfe, 0x7e, 0x13, 0x26, 0x07, 0xb7, 0xae, 0xe3, 0xb5, 0x17, 0xb0,
- 0xcb, 0x8e, 0xf5, 0xef, 0xe0, 0x88, 0x97, 0x3f, 0x86, 0x50, 0x2d, 0x7e,
- 0xab, 0x87, 0xdd, 0xc7, 0xf7, 0x5e, 0xc1, 0x2d, 0x70, 0x81, 0x6e, 0x04,
- 0x96, 0x4d, 0x2e, 0x7e, 0xe0, 0xc2, 0x45, 0xd2, 0xe9, 0x93, 0x7f, 0x52,
- 0x56, 0xa1, 0x8c, 0xe6, 0x96, 0xa4, 0x42, 0xbd, 0xb4, 0x16, 0xe1, 0x21,
- 0xb7, 0x52, 0xb0, 0x24, 0xdd, 0x0c, 0xe5, 0xd6, 0x42, 0x85, 0xab, 0xb0,
- 0x2e, 0x1a, 0xde, 0x91, 0x27, 0x3d, 0xf5, 0x9b, 0x1f, 0x8b, 0xff, 0xe2,
- 0x48, 0x6e, 0x3f, 0x90, 0xdb, 0xb3, 0x41, 0xfc, 0xdf, 0x48, 0xee, 0xff,
- 0x1b, 0xc9, 0xfd, 0x3b, 0x44, 0x72, 0xff, 0x96, 0xc1, 0xc8, 0x74, 0x7a,
- 0xb0, 0x23, 0xf9, 0x54, 0x72, 0x83, 0x9f, 0xf7, 0xc2, 0xa4, 0x6b, 0x86,
- 0x66, 0x2b, 0xe8, 0xc5, 0xf3, 0x4d, 0x4b, 0x33, 0x2c, 0xd1, 0x78, 0x82,
- 0x7b, 0x98, 0x4f, 0x24, 0xb4, 0x12, 0x31, 0x4a, 0xfa, 0xce, 0xe3, 0xfd,
- 0xd8, 0x49, 0xaf, 0xeb, 0x39, 0x17, 0xad, 0x03, 0x12, 0x42, 0xa0, 0x22,
- 0x3a, 0x3e, 0xd3, 0x79, 0xee, 0xb7, 0x67, 0x39, 0xd4, 0xc1, 0xaa, 0x29,
- 0x47, 0xd3, 0x39, 0x2a, 0x44, 0x91, 0x21, 0x60, 0xfd, 0x68, 0x3a, 0x0f,
- 0xff, 0x33, 0x43, 0x7a, 0xfa, 0x34, 0x36, 0xa4, 0x66, 0x5e, 0xef, 0xee,
- 0x3b, 0xdb, 0x81, 0xfc, 0xb2, 0x42, 0x0a, 0x76, 0xcc, 0x8e, 0xc0, 0x0c,
- 0x51, 0x9c, 0x98, 0xf0, 0x9f, 0x88, 0x7d, 0x9a, 0x5e, 0x23, 0x33, 0x6d,
- 0x66, 0xcb, 0x88, 0x5a, 0xd7, 0x8a, 0xad, 0x34, 0x1e, 0x18, 0xf6, 0x09,
- 0x29, 0xc4, 0x9f, 0x07, 0x5d, 0x6b, 0x48, 0xd0, 0xd1, 0x7b, 0xa4, 0x26,
- 0xc6, 0xb0, 0x3b, 0xde, 0x67, 0xbc, 0x29, 0xf2, 0x14, 0xc1, 0x4d, 0xcc,
- 0xe3, 0x0c, 0x30, 0xff, 0xa8, 0x7f, 0xae, 0xb8, 0xe0, 0x82, 0xe9, 0xb8,
- 0xf6, 0x99, 0xbe, 0x33, 0x4e, 0xde, 0x42, 0xa2, 0x35, 0xfa, 0x83, 0x19,
- 0x91, 0x34, 0x2e, 0xdf, 0xc5, 0x9a, 0x6b, 0xc3, 0x7c, 0x1b, 0x92, 0x7e,
- 0xf7, 0xf6, 0x38, 0xf4, 0xb3, 0x93, 0x17, 0xe4, 0x60, 0x7b, 0x9b, 0x02,
- 0xbd, 0xea, 0x6c, 0x7b, 0x56, 0x4e, 0xeb, 0x6d, 0xec, 0xa0, 0x76, 0x7a,
- 0xd5, 0x2c, 0xe6, 0x9f, 0xac, 0x0f, 0xf5, 0x95, 0x44, 0x6f, 0x05, 0x35,
- 0x77, 0xc1, 0xa3, 0xac, 0xfb, 0xe5, 0x16, 0x67, 0x56, 0x6f, 0xa1, 0x00,
- 0xfe, 0x8f, 0x12, 0x1e, 0xcc, 0x7c, 0xcc, 0xff, 0xa8, 0x00, 0x0c, 0x1c,
- 0x63, 0x91, 0x34, 0x79, 0xbf, 0xb2, 0xb3, 0x97, 0xd0, 0x10, 0xee, 0x0d,
- 0x6b, 0x25, 0xc0, 0xeb, 0xce, 0x1a, 0x62, 0xa8, 0xed, 0xe5, 0xd2, 0xf5,
- 0x6e, 0x55, 0xdb, 0xb5, 0x94, 0x15, 0x56, 0x7e, 0x23, 0x12, 0xeb, 0xf1,
- 0x2c, 0xfc, 0xe6, 0x0c, 0xca, 0x10, 0x36, 0x64, 0x8e, 0x87, 0x88, 0xde,
- 0xfe, 0xa3, 0xbf, 0xf9, 0x99, 0x37, 0x8d, 0xdb, 0x98, 0xc2, 0xe7, 0x1c,
- 0x30, 0xb8, 0x76, 0x24, 0xf6, 0xe1, 0xdf, 0x63, 0x24, 0x84, 0x60, 0x12,
- 0xe5, 0xd6, 0xad, 0x31, 0xd0, 0x63, 0xbf, 0x47, 0xff, 0xd7, 0xbb, 0x7d,
- 0xdd, 0xee, 0x0e, 0xb9, 0xeb, 0xeb, 0xdd, 0xdf, 0xb0, 0xe3, 0x77, 0xce,
- 0x5c, 0xc6, 0x33, 0xc7, 0xcf, 0x03, 0x5d, 0xe1, 0xbe, 0x02, 0x75, 0xeb,
- 0xca, 0xa2, 0x08, 0x6b, 0x73, 0x37, 0xd5, 0x7a, 0x60, 0xa5, 0x3e, 0xe4,
- 0x24, 0x86, 0xda, 0x93, 0xb2, 0x09, 0x54, 0xc7, 0x66, 0xa4, 0x70, 0xab,
- 0x8c, 0x32, 0xc5, 0xb0, 0x5f, 0x0c, 0xe2, 0xa4, 0xb8, 0x75, 0x46, 0x6d,
- 0x89, 0x5f, 0x8a, 0x04, 0x05, 0xc0, 0x12, 0x7c, 0x47, 0x4d, 0x68, 0xd4,
- 0x80, 0x15, 0x14, 0xd9, 0xe6, 0xa2, 0xd2, 0x11, 0x33, 0xdb, 0xba, 0x7a,
- 0x30, 0xc4, 0xae, 0x7d, 0xc8, 0xb6, 0x73, 0x6b, 0xd5, 0x23, 0xbe, 0xd2,
- 0xe5, 0x9f, 0x0a, 0x16, 0x6e, 0x83, 0x52, 0xbd, 0x23, 0x7e, 0x90, 0x0c,
- 0x46, 0xef, 0x92, 0x83, 0x41, 0xb0, 0x44, 0x27, 0x88, 0x12, 0xac, 0x9b,
- 0x6c, 0xa1, 0x55, 0xe2, 0x10, 0x67, 0x82, 0x9a, 0x56, 0xbe, 0x9c, 0x74,
- 0x05, 0x50, 0x37, 0xa7, 0xdc, 0xd8, 0x5a, 0x34, 0x97, 0x81, 0x03, 0x70,
- 0xa1, 0x25, 0x71, 0xb9, 0x48, 0x6a, 0xcd, 0xc8, 0x80, 0x30, 0x21, 0xb9,
- 0xf2, 0x12, 0x24, 0xcb, 0x71, 0x5d, 0x1c, 0xb0, 0x56, 0x38, 0x32, 0x29,
- 0xa8, 0x68, 0x1a, 0x1a, 0x83, 0x66, 0xec, 0x63, 0xae, 0xb5, 0x82, 0xda,
- 0xb2, 0xac, 0xeb, 0xfc, 0xdc, 0x70, 0xea, 0x4b, 0x61, 0x91, 0x75, 0xc6,
- 0x31, 0x61, 0x9c, 0x26, 0x8e, 0xd5, 0xb4, 0xf8, 0x11, 0x75, 0x58, 0x7c,
- 0x80, 0x67, 0x2a, 0x98, 0x15, 0x62, 0xea, 0x32, 0xa3, 0x63, 0xc6, 0x76,
- 0x9d, 0xa3, 0x69, 0xa6, 0xb6, 0x34, 0x39, 0xaf, 0xf2, 0xec, 0x02, 0x25,
- 0xd5, 0x19, 0x2c, 0x8f, 0xc5, 0xc0, 0xa0, 0x38, 0x1e, 0x50, 0x8b, 0x66,
- 0xe3, 0x64, 0x82, 0x60, 0xe1, 0x1a, 0x88, 0xbe, 0x14, 0x42, 0x4e, 0x01,
- 0x9c, 0x2e, 0x3c, 0xbd, 0xca, 0x10, 0xfc, 0xa0, 0x15, 0x57, 0x55, 0xc5,
- 0xe8, 0x0d, 0xab, 0xad, 0x6c, 0xe1, 0x03, 0x4a, 0xd8, 0x20, 0xdc, 0x34,
- 0x0b, 0xdd, 0x84, 0x1e, 0xa9, 0x1c, 0xa4, 0x46, 0x20, 0x3b, 0xe4, 0x87,
- 0xf1, 0xef, 0xc6, 0xe3, 0x9d, 0x41, 0xfc, 0xd7, 0xa7, 0x32, 0xac, 0x0b,
- 0xec, 0xf7, 0x82, 0xbb, 0x03, 0xa0, 0xa9, 0x78, 0x44, 0xff, 0x05, 0xca,
- 0x8e, 0x24, 0x6f, 0xca, 0x10, 0x94, 0xb0, 0x1b, 0x1d, 0x8f, 0x18, 0x40,
- 0x0e, 0xb9, 0xb3, 0xb3, 0x6b, 0x08, 0x9a, 0x82, 0x60, 0x07, 0x7c, 0xa7,
- 0xf4, 0xbb, 0xe0, 0x8a, 0x77, 0x11, 0xff, 0xad, 0x18, 0x7f, 0x17, 0xe2,
- 0x8f, 0xbd, 0x72, 0x01, 0xfe, 0x94, 0xd3, 0xc2, 0x16, 0xfb, 0x14, 0x23,
- 0x08, 0xef, 0x64, 0x14, 0x68, 0xe8, 0x0f, 0xef, 0x37, 0xe2, 0x9e, 0x17,
- 0x3c, 0xe0, 0x20, 0x95, 0x61, 0xee, 0x8d, 0xc3, 0xfd, 0xd0, 0x09, 0xa5,
- 0x0a, 0x3b, 0x4f, 0x83, 0x42, 0x90, 0x3e, 0x2f, 0xd7, 0xa6, 0xae, 0xf3,
- 0xd4, 0xca, 0x4e, 0xae, 0x23, 0x5e, 0x4f, 0xc1, 0xd6, 0x67, 0x44, 0x86,
- 0x3e, 0x97, 0x20, 0x1d, 0x8e, 0x58, 0xfe, 0xe9, 0x9b, 0xc9, 0x24, 0x8c,
- 0xf2, 0x2f, 0x8c, 0xaa, 0x54, 0x5e, 0x16, 0xf9, 0x2f, 0x68, 0x91, 0x1c,
- 0xa8, 0xdd, 0xf0, 0xdc, 0x56, 0xa2, 0x45, 0xe2, 0x05, 0x03, 0x20, 0x90,
- 0x23, 0xe4, 0x6f, 0x14, 0x0b, 0x48, 0xb7, 0x0e, 0x22, 0xda, 0x90, 0x9b,
- 0x66, 0x83, 0x19, 0xe1, 0xf2, 0x90, 0xba, 0xcd, 0xac, 0x19, 0xea, 0xec,
- 0xa4, 0xe3, 0x60, 0x73, 0x95, 0x2a, 0x04, 0xe9, 0xe8, 0xbf, 0x41, 0x56,
- 0x44, 0x1c, 0xa1, 0x8e, 0x60, 0xaf, 0x70, 0x34, 0xa2, 0xe0, 0x9d, 0x16,
- 0x1f, 0xaf, 0xce, 0x62, 0xd7, 0x8b, 0xae, 0x31, 0x5f, 0xa4, 0x63, 0x41,
- 0xdb, 0x02, 0x3a, 0x28, 0xad, 0x72, 0xac, 0x10, 0x8d, 0x0a, 0x9f, 0x69,
- 0x0c, 0xf0, 0xb3, 0x8d, 0x0c, 0x6a, 0xdd, 0x2e, 0x0f, 0x80, 0xff, 0x84,
- 0x53, 0x41, 0x31, 0xbb, 0xc4, 0xba, 0x4f, 0xc5, 0xac, 0x18, 0x24, 0x22,
- 0x63, 0xcc, 0x4e, 0x0c, 0xca, 0x1d, 0x49, 0x3e, 0xb0, 0x14, 0xd2, 0x18,
- 0x60, 0x46, 0xa6, 0x22, 0xbb, 0x93, 0xb1, 0x5b, 0x12, 0xda, 0x40, 0x53,
- 0x66, 0x18, 0x68, 0x60, 0x0c, 0x90, 0x4a, 0xa4, 0x86, 0xa9, 0x23, 0xc1,
- 0x7c, 0x8d, 0x64, 0x33, 0xa5, 0x8a, 0x2e, 0x69, 0xb9, 0xea, 0x29, 0x76,
- 0x88, 0x1c, 0x9e, 0x22, 0x1e, 0x87, 0x54, 0xa3, 0x11, 0xdb, 0xb7, 0x18,
- 0xc3, 0x3b, 0x07, 0xa4, 0x25, 0xc0, 0x46, 0x24, 0x05, 0xac, 0x8c, 0x3a,
- 0x06, 0x28, 0x34, 0xce, 0x8e, 0xb2, 0xb4, 0x32, 0x04, 0xf7, 0x61, 0x96,
- 0x2b, 0x76, 0xc3, 0xd1, 0x52, 0xb9, 0x6c, 0x77, 0xb2, 0x77, 0xd2, 0x48,
- 0x8f, 0x2c, 0xff, 0xff, 0x8f, 0x64, 0x1a, 0x77, 0x53, 0xe0, 0xd6, 0x09,
- 0xef, 0x09, 0xf2, 0x59, 0xc2, 0x40, 0xc4, 0x71, 0x59, 0x37, 0xa9, 0xad,
- 0xed, 0xc5, 0xaf, 0x75, 0x9a, 0x8b, 0x1f, 0xa6, 0x61, 0xd2, 0x0a, 0xf4,
- 0xcd, 0x02, 0x1e, 0xb9, 0x29, 0x5c, 0x63, 0x2b, 0x82, 0x12, 0x45, 0x23,
- 0x40, 0x3a, 0xfb, 0x2c, 0x13, 0xf0, 0xc2, 0xbf, 0xb8, 0xda, 0x5a, 0xbf,
- 0xb7, 0x02, 0xb6, 0x6b, 0x78, 0xf3, 0x73, 0xef, 0x3e, 0xfe, 0xfc, 0xde,
- 0x0b, 0x99, 0xce, 0x19, 0x5e, 0x93, 0xeb, 0xaf, 0xcd, 0xef, 0x6c, 0xfd,
- 0x63, 0xe8, 0xc1, 0x61, 0x55, 0x0c, 0xdb, 0x8c, 0x30, 0x3b, 0xcb, 0xde,
- 0x10, 0xbd, 0x87, 0xf7, 0x7b, 0x18, 0x5c, 0xa6, 0x5e, 0x60, 0x55, 0x89,
- 0x0d, 0x47, 0x3f, 0xcf, 0x9a, 0x1b, 0x48, 0x71, 0xb4, 0x1e, 0xba, 0x90,
- 0x1e, 0x17, 0x90, 0x25, 0x32, 0x52, 0x48, 0x2c, 0xae, 0x92, 0xd0, 0xb3,
- 0x95, 0xa1, 0x30, 0x48, 0xba, 0x35, 0x89, 0xa8, 0x87, 0x39, 0x38, 0x7d,
- 0xd1, 0x62, 0x79, 0xce, 0x61, 0xde, 0x5a, 0x1b, 0x0d, 0x27, 0x6e, 0x25,
- 0x3d, 0x69, 0xd4, 0x94, 0x3c, 0xe8, 0x7b, 0x1c, 0xec, 0x31, 0x96, 0x63,
- 0x1b, 0x87, 0x11, 0xb2, 0x69, 0x9b, 0x3c, 0x1e, 0xdd, 0xff, 0x56, 0xec,
- 0x41, 0xe0, 0x41, 0x85, 0x97, 0x30, 0xe6, 0xa8, 0xee, 0x63, 0x32, 0x6c,
- 0xc4, 0x91, 0x6f, 0xd3, 0xa5, 0xf9, 0x0c, 0x0e, 0x4a, 0x42, 0xe9, 0x9e,
- 0x65, 0x49, 0x2c, 0x44, 0xc2, 0xcb, 0xd8, 0xe4, 0x81, 0x75, 0x9c, 0xf4,
- 0xb4, 0x3f, 0x61, 0x15, 0x1a, 0x51, 0xce, 0x62, 0xb5, 0xc3, 0x6a, 0x01,
- 0xfe, 0x52, 0xc3, 0x94, 0xba, 0xec, 0xc5, 0xf5, 0xe3, 0x5f, 0xae, 0x52,
- 0xaa, 0xa1, 0x90, 0x0c, 0xd4, 0xb0, 0xae, 0x43, 0x6b, 0x92, 0x65, 0x48,
- 0x5e, 0x25, 0xc7, 0x92, 0x72, 0x4e, 0x59, 0x77, 0xfc, 0x12, 0x41, 0x28,
- 0x7e, 0x4d, 0xcf, 0xd4, 0x63, 0xab, 0x29, 0x87, 0x85, 0x75, 0x81, 0x1d,
- 0xa6, 0x2f, 0x08, 0xbe, 0xbc, 0xb4, 0x6f, 0xeb, 0xd4, 0xf6, 0xf9, 0x49,
- 0x63, 0xe1, 0x24, 0xad, 0x53, 0x2b, 0x9e, 0x90, 0x88, 0xa7, 0x70, 0x73,
- 0x82, 0xd4, 0x8e, 0xc9, 0xe1, 0xe9, 0x56, 0x72, 0xea, 0x2c, 0xe8, 0xa4,
- 0x34, 0x30, 0xfa, 0xe3, 0x8b, 0x36, 0x1f, 0x96, 0x32, 0xa7, 0x8c, 0x03,
- 0x1c, 0x37, 0x88, 0x8b, 0x8b, 0x82, 0x28, 0xca, 0xa2, 0x5d, 0x93, 0x23,
- 0xfa, 0x37, 0x67, 0x4c, 0x9d, 0xb9, 0xbc, 0xa0, 0x3c, 0x13, 0x86, 0x2e,
- 0x11, 0x95, 0xd2, 0x3f, 0xa6, 0x30, 0xb9, 0x22, 0x5b, 0x90, 0xcb, 0x0b,
- 0x8a, 0x8b, 0x80, 0x69, 0x8a, 0xa6, 0xde, 0x69, 0x8e, 0x16, 0x42, 0x63,
- 0xe7, 0x3d, 0x8c, 0x26, 0x9a, 0x0b, 0x41, 0x11, 0x80, 0xe3, 0x76, 0x4a,
- 0xf0, 0x10, 0x0f, 0xbb, 0xcc, 0x8a, 0x2c, 0x86, 0x66, 0x76, 0x47, 0x17,
- 0xb9, 0x90, 0xf4, 0x6c, 0xdc, 0x2d, 0x4d, 0xe0, 0xb9, 0x30, 0x64, 0x70,
- 0x79, 0xe9, 0xca, 0x90, 0xf4, 0xa0, 0x10, 0xb3, 0x8c, 0x87, 0x22, 0xc2,
- 0xe0, 0x88, 0x28, 0x72, 0x41, 0x2a, 0xc1, 0xb4, 0x5c, 0xde, 0x61, 0x31,
- 0xcc, 0x63, 0x75, 0x7d, 0xb5, 0x67, 0xf8, 0xc6, 0xde, 0xf8, 0x53, 0x4e,
- 0x5b, 0xbb, 0x32, 0x97, 0x75, 0x04, 0xb2, 0x9c, 0x83, 0x59, 0x18, 0xf6,
- 0xbe, 0xdb, 0x9e, 0x48, 0xe1, 0x63, 0x27, 0xf8, 0x8f, 0xfe, 0x1d, 0x94,
- 0xc6, 0xb0, 0x9a, 0xcf, 0x45, 0x33, 0x0c, 0x68, 0x0b, 0xa4, 0x95, 0x80,
- 0xc0, 0xb6, 0xb8, 0x84, 0x2d, 0x47, 0x40, 0x9c, 0xe7, 0x0d, 0xd5, 0x8e,
- 0x51, 0x7d, 0xb2, 0x7d, 0x48, 0xa9, 0xd8, 0x63, 0x45, 0x6f, 0x45, 0x13,
- 0xfc, 0xc7, 0xc9, 0xbf, 0x53, 0xa7, 0xf2, 0x36, 0xe7, 0x59, 0x51, 0x90,
- 0xc6, 0x97, 0x47, 0x5f, 0x9d, 0xbc, 0x3d, 0x6a, 0xe7, 0x5e, 0x36, 0x8c,
- 0x11, 0x46, 0x41, 0x08, 0xdd, 0xd1, 0x11, 0x3c, 0xa2, 0xe2, 0x37, 0x48,
- 0x04, 0x45, 0x0e, 0x0b, 0x40, 0x72, 0xfa, 0xfd, 0x4b, 0x3b, 0x3a, 0xc8,
- 0x0b, 0x05, 0x17, 0x23, 0x94, 0x46, 0x87, 0xbc, 0xe6, 0xdd, 0x4b, 0x1e,
- 0xf2, 0x00, 0x8a, 0x2e, 0x4a, 0xcd, 0x73, 0x3b, 0x3e, 0x0a, 0xfd, 0xe0,
- 0x80, 0x1d, 0xc5, 0x1d, 0xa0, 0x52, 0x15, 0x75, 0x0d, 0x1c, 0x01, 0xdb,
- 0x68, 0x20, 0x01, 0xb3, 0x9e, 0x44, 0xe8, 0x58, 0x12, 0xe0, 0x9c, 0x32,
- 0x0c, 0x21, 0xb0, 0x09, 0xc7, 0x49, 0xd8, 0x91, 0x06, 0xab, 0x50, 0x2f,
- 0x31, 0xd6, 0x8d, 0xe2, 0xd2, 0xec, 0xa0, 0xe1, 0x7b, 0x0f, 0xa6, 0x17,
- 0x90, 0xaf, 0x85, 0xbf, 0x1d, 0x32, 0x64, 0xa4, 0xb8, 0xa1, 0xfc, 0x85,
- 0x8c, 0x78, 0xee, 0x4d, 0x9f, 0x9b, 0xf5, 0xd6, 0xb0, 0x35, 0x54, 0xfb,
- 0x4d, 0xa2, 0xba, 0xf4, 0xc6, 0x5f, 0x36, 0x5c, 0x82, 0x0b, 0xd7, 0xaa,
- 0x8d, 0x57, 0x75, 0x76, 0xb5, 0x3e, 0xb7, 0xee, 0x8b, 0x2b, 0xd3, 0x19,
- 0xf7, 0xe2, 0xfb, 0xb2, 0x4b, 0x51, 0x42, 0x8d, 0x08, 0xa1, 0x77, 0xc5,
- 0xa8, 0xce, 0xc4, 0x42, 0xe4, 0x5a, 0xd5, 0x56, 0xd4, 0x11, 0x19, 0x66,
- 0x92, 0x34, 0xc0, 0x90, 0x70, 0xa5, 0xff, 0x94, 0xf5, 0x90, 0x23, 0x4f,
- 0xeb, 0xd3, 0x90, 0x3f, 0x82, 0x6a, 0x2a, 0xd6, 0x77, 0x45, 0x83, 0x23,
- 0xcb, 0xdc, 0x65, 0x5a, 0x56, 0xd1, 0x6c, 0x36, 0x10, 0x92, 0x23, 0xdd,
- 0x9a, 0x60, 0x33, 0x9e, 0x3d, 0x7e, 0x86, 0x4b, 0x9e, 0x22, 0xa7, 0xa4,
- 0xf0, 0xa5, 0xa0, 0xe1, 0x93, 0x57, 0x97, 0x2b, 0xee, 0x46, 0x63, 0xf9,
- 0x6d, 0x4b, 0x30, 0x7c, 0x41, 0x84, 0xce, 0xe6, 0x5c, 0x6c, 0x73, 0xe2,
- 0x35, 0x12, 0x62, 0x3f, 0xad, 0xd9, 0x30, 0xe0, 0x77, 0x1a, 0xf2, 0xc9,
- 0xeb, 0x0f, 0xc9, 0xe6, 0xbf, 0x6e, 0x31, 0x74, 0x8a, 0x86, 0x0b, 0xc1,
- 0x4a, 0x9b, 0x17, 0xab, 0x80, 0xf2, 0x61, 0xa6, 0xcb, 0x5b, 0x8b, 0x4a,
- 0x6b, 0x4e, 0xf3, 0x3b, 0x8f, 0x25, 0x18, 0xd6, 0x4d, 0xb9, 0x4c, 0xb8,
- 0x3a, 0x6a, 0x15, 0x38, 0xed, 0x64, 0xbb, 0x7e, 0x65, 0x66, 0x45, 0x78,
- 0x37, 0x12, 0x13, 0xa2, 0x1a, 0x02, 0x62, 0x7a, 0x55, 0x39, 0x6b, 0x9c,
- 0xbc, 0x2b, 0x28, 0x40, 0x50, 0xe8, 0x4e, 0x6e, 0x8c, 0xbc, 0x30, 0xf3,
- 0x37, 0x34, 0x6d, 0xee, 0x8c, 0x08, 0x13, 0xfa, 0x47, 0x9b, 0xf9, 0x08,
- 0xbb, 0xec, 0x38, 0x6e, 0xe9, 0xd0, 0x0a, 0x5b, 0xb3, 0x6c, 0x2b, 0x49,
- 0xbe, 0xca, 0x83, 0xd2, 0xb4, 0x5c, 0x06, 0x13, 0xa4, 0x6e, 0xa6, 0x43,
- 0x6d, 0xc3, 0x35, 0x9f, 0xcd, 0xe7, 0x23, 0x2e, 0x39, 0x01, 0x08, 0x7e,
- 0x88, 0xf9, 0x9c, 0xf1, 0x4d, 0x81, 0x75, 0xbe, 0x0a, 0x14, 0xdc, 0x31,
- 0x94, 0xb8, 0x3e, 0x46, 0x3e, 0x93, 0x02, 0xa7, 0x48, 0x5e, 0x99, 0x7a,
- 0xd7, 0x90, 0x84, 0xe8, 0xcc, 0x22, 0xb4, 0x38, 0x3c, 0xa5, 0xbe, 0xc2,
- 0x8f, 0x21, 0xbe, 0x6d, 0x8a, 0x85, 0x86, 0xdd, 0x91, 0x6f, 0xf5, 0x78,
- 0x7a, 0x11, 0x89, 0xdf, 0xfc, 0xa4, 0x25, 0x8a, 0x3a, 0x6b, 0x6a, 0x77,
- 0x9b, 0xa7, 0xc4, 0x03, 0x69, 0xd7, 0xf4, 0x48, 0xf6, 0x37, 0x87, 0x75,
- 0x9a, 0x71, 0x3e, 0x2e, 0x3f, 0xc6, 0xe7, 0xb2, 0x90, 0x5a, 0x35, 0xcf,
- 0x69, 0x34, 0xd9, 0x2d, 0x89, 0x4b, 0x86, 0x40, 0x3e, 0xb7, 0xd1, 0x69,
- 0x9f, 0xf4, 0x24, 0x3d, 0xa1, 0x32, 0x3c, 0x97, 0x85, 0x47, 0x3a, 0x1c,
- 0xbd, 0xce, 0x5a, 0x2a, 0x40, 0x86, 0xb2, 0x4c, 0xe1, 0x99, 0xe7, 0xef,
- 0x2f, 0xb3, 0x06, 0xdf, 0x6e, 0xee, 0x6f, 0x61, 0x39, 0xe2, 0xcd, 0x2d,
- 0x91, 0xf6, 0x4f, 0x49, 0xd0, 0xed, 0x61, 0xd8, 0xa4, 0x68, 0x23, 0x9a,
- 0x78, 0xde, 0xda, 0xfd, 0xf1, 0x4e, 0x60, 0x41, 0x9b, 0x5e, 0x5d, 0x56,
- 0x4b, 0xae, 0xe8, 0x7b, 0xcf, 0xaa, 0xf2, 0x93, 0xc1, 0x9a, 0xf2, 0xab,
- 0xaf, 0x5e, 0xfa, 0x6b, 0x29, 0xcb, 0x66, 0xd6, 0x2d, 0xde, 0x9c, 0x94,
- 0x63, 0x9f, 0x2b, 0xc6, 0xb9, 0xbb, 0x8c, 0x6d, 0x6b, 0x4e, 0x87, 0x93,
- 0xc5, 0xa7, 0x6f, 0xe2, 0xcd, 0xb5, 0xb6, 0x84, 0x5b, 0xd0, 0x66, 0xe9,
- 0xfc, 0x19, 0x45, 0x3f, 0x47, 0x71, 0x46, 0x9c, 0xb0, 0xcb, 0xac, 0xb2,
- 0x9d, 0x84, 0x11, 0xb1, 0x57, 0x8b, 0x72, 0x86, 0xb4, 0xbf, 0xec, 0xde,
- 0xb5, 0xc0, 0x83, 0xba, 0x16, 0x92, 0x2d, 0x59, 0xfb, 0xf3, 0xa2, 0x46,
- 0xcc, 0xc9, 0xd7, 0x9d, 0x0e, 0xb1, 0x66, 0xba, 0x5a, 0x66, 0xa2, 0x65,
- 0xb6, 0x33, 0x7e, 0xd9, 0x9f, 0x42, 0x91, 0x94, 0xd3, 0xc6, 0x9b, 0x01,
- 0x1e, 0xe8, 0x21, 0x58, 0xba, 0xad, 0x22, 0x33, 0x43, 0xee, 0x1c, 0x29,
- 0xec, 0xf7, 0xcd, 0x0c, 0x0f, 0x06, 0xbb, 0x6c, 0x3e, 0xe4, 0x3b, 0xb0,
- 0xb3, 0xc5, 0xbc, 0x39, 0xf1, 0xe6, 0xda, 0x1b, 0xac, 0x3b, 0x4c, 0x63,
- 0x88, 0x6d, 0xb0, 0xd4, 0x4f, 0x08, 0x05, 0x58, 0x67, 0x7e, 0xe0, 0xd5,
- 0xb1, 0x0f, 0xf6, 0x6e, 0xb0, 0xf4, 0x11, 0xac, 0xc2, 0xbc, 0x30, 0x87,
- 0x6f, 0x55, 0x4d, 0xb3, 0xf7, 0x34, 0x36, 0x46, 0xe1, 0x7f, 0xbf, 0x7e,
- 0x41, 0xe6, 0x82, 0xb7, 0x71, 0xb7, 0x80, 0x6c, 0xea, 0x38, 0xb0, 0x60,
- 0x3f, 0xa7, 0x82, 0x3f, 0x61, 0xe4, 0x67, 0xfa, 0x9e, 0x95, 0xc5, 0x1e,
- 0xb2, 0x77, 0xfd, 0x25, 0x89, 0x62, 0x2d, 0x41, 0x0a, 0xc9, 0x0b, 0x5b,
- 0xf4, 0x8c, 0xe4, 0x08, 0x6f, 0x8c, 0x78, 0xac, 0x67, 0x41, 0xa2, 0x86,
- 0xb2, 0xc5, 0x07, 0x64, 0xcf, 0x59, 0xc9, 0xea, 0x7d, 0xa4, 0x3a, 0xb5,
- 0x37, 0x39, 0x7e, 0x5a, 0x77, 0x9b, 0xa7, 0xd4, 0xad, 0xe3, 0xd0, 0x62,
- 0x81, 0x49, 0x98, 0x2c, 0xef, 0x49, 0x19, 0xda, 0xa1, 0x3d, 0x91, 0xc1,
- 0xe8, 0x1e, 0xcc, 0xc2, 0xf9, 0xc9, 0x38, 0x07, 0x6f, 0xe5, 0xe5, 0x7a,
- 0x7c, 0x7c, 0x0d, 0x19, 0x7e, 0x34, 0x1f, 0x9f, 0xf6, 0xf1, 0x5c, 0x08,
- 0x62, 0xb8, 0xcb, 0x88, 0x89, 0x9b, 0x7e, 0xff, 0xeb, 0x59, 0xf8, 0xf2,
- 0x66, 0x66, 0x8d, 0x87, 0x37, 0x8e, 0x2b, 0xa9, 0x18, 0x8a, 0xe1, 0xa4,
- 0xe7, 0x75, 0x39, 0x5f, 0xc1, 0x14, 0x91, 0x36, 0x57, 0xbc, 0x43, 0x17,
- 0x3a, 0xce, 0xde, 0xfd, 0x2c, 0x9a, 0x50, 0x52, 0x0f, 0x76, 0xd4, 0x3c,
- 0x46, 0x91, 0xe3, 0x44, 0xb2, 0x42, 0xe1, 0xfd, 0xdb, 0x2a, 0x4f, 0xbb,
- 0x21, 0xb2, 0x1c, 0xe2, 0x36, 0xa5, 0x8a, 0x10, 0x5e, 0xff, 0x1d, 0x22,
- 0xbd, 0x76, 0xee, 0x90, 0x59, 0x06, 0x5f, 0x02, 0x53, 0x07, 0x85, 0x3c,
- 0xda, 0xdb, 0x28, 0xb9, 0xef, 0x6c, 0xf6, 0x12, 0x6e, 0xb5, 0xb8, 0x87,
- 0x60, 0xcd, 0x03, 0x6e, 0x56, 0x0c, 0x80, 0x63, 0x67, 0x15, 0xb0, 0x3a,
- 0x21, 0xc0, 0x9e, 0x95, 0xef, 0x1b, 0x41, 0xeb, 0x60, 0xaf, 0x1b, 0x89,
- 0x7f, 0xa6, 0xfd, 0xc1, 0xb8, 0xa5, 0x35, 0x4a, 0x07, 0x62, 0x70, 0xdc,
- 0xc8, 0x7a, 0x68, 0xfd, 0xae, 0xf3, 0x9e, 0x2c, 0xcf, 0xd0, 0xb3, 0xb7,
- 0x73, 0x85, 0xb0, 0xc5, 0x32, 0x82, 0x0c, 0xa1, 0x3c, 0xf3, 0xa3, 0x78,
- 0x2e, 0x6c, 0x4a, 0xf3, 0xc2, 0xb7, 0x22, 0xa1, 0x47, 0x23, 0x23, 0xae,
- 0xc9, 0x04, 0xf3, 0x2a, 0x0b, 0xd9, 0x0d, 0xa7, 0x12, 0x1d, 0x39, 0xc5,
- 0x0a, 0x50, 0x48, 0x2b, 0x85, 0x7a, 0x53, 0x65, 0x4a, 0x51, 0xa7, 0x08,
- 0x91, 0x71, 0x86, 0xda, 0x5d, 0x61, 0xe6, 0x09, 0x77, 0xc9, 0x71, 0x8f,
- 0x0c, 0x30, 0x0e, 0x6f, 0xb7, 0x88, 0xcb, 0x24, 0xfd, 0x33, 0x02, 0x3c,
- 0xeb, 0xb3, 0xfa, 0x78, 0xc2, 0xe5, 0xc0, 0xba, 0x7a, 0x45, 0x10, 0x82,
- 0x5a, 0x8f, 0x3d, 0xd3, 0x19, 0xd7, 0x17, 0xc8, 0x2e, 0x67, 0x23, 0xa1,
- 0x8a, 0x36, 0x5b, 0x1f, 0x55, 0x43, 0x5e, 0x02, 0xc3, 0x26, 0x9e, 0xd3,
- 0x3f, 0xd1, 0x34, 0x2b, 0x52, 0xde, 0x48, 0xaa, 0x06, 0xd8, 0xc8, 0x56,
- 0xf2, 0x56, 0xdc, 0xf1, 0xd0, 0x3e, 0xee, 0x1a, 0x80, 0xd8, 0xa3, 0x81,
- 0xcd, 0x7c, 0x6c, 0x24, 0x0c, 0x4e, 0xab, 0x81, 0x28, 0x8f, 0x9a, 0x25,
- 0xb1, 0xe0, 0x86, 0x2d, 0x71, 0xe2, 0xb3, 0x91, 0x78, 0x7b, 0x77, 0xbc,
- 0x3b, 0xf4, 0xed, 0x23, 0x2e, 0x78, 0x16, 0x5a, 0x62, 0x9a, 0x48, 0xf1,
- 0x03, 0xea, 0xba, 0x6b, 0x1b, 0x7b, 0x8b, 0x8e, 0xeb, 0xd0, 0x95, 0x41,
- 0xee, 0x10, 0xa7, 0x5a, 0xdf, 0xa4, 0x77, 0xa1, 0x0a, 0xb5, 0x33, 0x7a,
- 0xf4, 0xec, 0x59, 0x4b, 0x48, 0xaa, 0xbd, 0xea, 0x11, 0x8f, 0x77, 0x76,
- 0x68, 0x6e, 0x01, 0x52, 0x80, 0xf9, 0x62, 0xf4, 0x8c, 0x5e, 0x6c, 0xbf,
- 0x56, 0x67, 0x66, 0x0b, 0x66, 0xfd, 0xef, 0x8d, 0xf0, 0x4d, 0xa4, 0x3b,
- 0xba, 0x73, 0x7a, 0xdf, 0x7a, 0x86, 0xee, 0x22, 0x6f, 0xd1, 0xc3, 0xbc,
- 0x8e, 0xe5, 0xc5, 0x05, 0x8c, 0xaf, 0x78, 0x52, 0x01, 0xb1, 0x6e, 0xd2,
- 0x6a, 0x16, 0x4e, 0x77, 0x67, 0x38, 0xda, 0xed, 0x9b, 0x2e, 0x45, 0x40,
- 0x50, 0x08, 0x29, 0xf6, 0x13, 0x16, 0x0d, 0xa3, 0x27, 0x73, 0x8a, 0x5d,
- 0xb7, 0xa1, 0x5d, 0x33, 0xa2, 0xdd, 0x67, 0xcf, 0x86, 0x18, 0xd9, 0xe3,
- 0x67, 0xcf, 0x7a, 0x71, 0x18, 0xbc, 0x6e, 0x6e, 0x4a, 0x67, 0x32, 0xc5,
- 0xeb, 0x8e, 0x68, 0x6a, 0xa8, 0xe3, 0xf1, 0x7e, 0xf0, 0x4d, 0xf2, 0x59,
- 0xf2, 0xe6, 0xe4, 0xec, 0xc8, 0xb3, 0x26, 0xd2, 0xf9, 0x62, 0x27, 0xb7,
- 0x67, 0x14, 0xa1, 0xb8, 0x81, 0x25, 0x55, 0xf6, 0x24, 0xfb, 0x8c, 0xd1,
- 0x9e, 0x43, 0xb3, 0x07, 0xa5, 0x7b, 0xa9, 0x15, 0x5b, 0xf3, 0x90, 0x5c,
- 0x19, 0x1b, 0xdc, 0x67, 0x14, 0xd2, 0x30, 0xca, 0x49, 0xc1, 0xa7, 0x5b,
- 0xf6, 0x5f, 0x92, 0xe4, 0x34, 0xad, 0xea, 0x30, 0x59, 0x01, 0x56, 0x17,
- 0x5b, 0x6e, 0x98, 0xed, 0x49, 0x65, 0xb5, 0xb0, 0x66, 0x53, 0x6b, 0x2c,
- 0x17, 0x45, 0x55, 0xfe, 0xce, 0xcf, 0xf3, 0x39, 0x70, 0x7d, 0xe2, 0x66,
- 0x0f, 0x40, 0xfa, 0x57, 0x91, 0xf0, 0x22, 0x2a, 0x28, 0x7a, 0x99, 0x37,
- 0x3e, 0x8a, 0xdb, 0xa6, 0xa1, 0xc2, 0x2d, 0xb2, 0x12, 0x72, 0xb0, 0xa8,
- 0x78, 0x26, 0x37, 0x6a, 0x24, 0x6e, 0x71, 0x8c, 0x3b, 0xfe, 0x28, 0x97,
- 0x1b, 0x41, 0xee, 0x54, 0x36, 0x9f, 0xb1, 0xda, 0xe0, 0x5e, 0x18, 0xd1,
- 0x93, 0x72, 0x8e, 0xc9, 0xe4, 0x73, 0x4b, 0xee, 0xac, 0x94, 0xa0, 0x6c,
- 0xfd, 0xce, 0x23, 0xce, 0x49, 0xcc, 0x91, 0xa3, 0x9a, 0x34, 0xe9, 0x12,
- 0xcd, 0x0c, 0xbd, 0xfd, 0xd9, 0xf0, 0x16, 0xc4, 0x9a, 0xba, 0x0b, 0x10,
- 0x48, 0x80, 0x4f, 0xca, 0x1e, 0xb1, 0x59, 0xb6, 0xd4, 0x68, 0xf1, 0xa2,
- 0xdd, 0x8e, 0x39, 0x64, 0x17, 0xf9, 0xe5, 0xaa, 0x8a, 0x47, 0x56, 0x53,
- 0xc5, 0x1d, 0x09, 0x1b, 0xd2, 0x0a, 0x2e, 0xe9, 0x4d, 0x5a, 0x65, 0x5a,
- 0x8e, 0xb7, 0xb8, 0xb3, 0x4c, 0x47, 0x0d, 0x49, 0x9a, 0xea, 0x87, 0xf2,
- 0x3a, 0xc1, 0xae, 0x20, 0x3b, 0xd3, 0x88, 0xad, 0x30, 0xb4, 0x49, 0xbc,
- 0x1b, 0x99, 0xc8, 0xa5, 0x08, 0xb1, 0xc4, 0xaa, 0x89, 0x35, 0x1e, 0x54,
- 0x88, 0x5b, 0x9e, 0xf0, 0x72, 0x69, 0x09, 0xc2, 0x00, 0xd5, 0x8d, 0xb9,
- 0x73, 0x84, 0x5d, 0x4a, 0x65, 0xd0, 0x9b, 0xab, 0xd2, 0xab, 0xf0, 0x14,
- 0x82, 0xb8, 0x80, 0x25, 0x32, 0x64, 0x13, 0xfd, 0xca, 0x9b, 0x64, 0x9e,
- 0xbf, 0x29, 0xe6, 0x65, 0x3a, 0x73, 0xf6, 0xc7, 0xa5, 0x46, 0xe2, 0x0b,
- 0x04, 0xa1, 0x6c, 0x6d, 0x58, 0x0d, 0xcd, 0xec, 0x34, 0xef, 0x71, 0xb2,
- 0xe9, 0x41, 0x0c, 0xd1, 0xd1, 0xf1, 0x2c, 0x89, 0xcc, 0x3e, 0x41, 0x29,
- 0x0c, 0x98, 0x03, 0xf8, 0xab, 0xd0, 0x72, 0x84, 0x83, 0xc8, 0xbb, 0x65,
- 0xa3, 0xc6, 0xa8, 0x32, 0x3b, 0x6e, 0x6f, 0xcf, 0x2a, 0x98, 0x4c, 0x5e,
- 0xfd, 0xcf, 0xa3, 0xdf, 0xd3, 0x85, 0x5b, 0xa5, 0x37, 0x36, 0x27, 0xf8,
- 0x7b, 0x06, 0xb0, 0x15, 0xd7, 0xaa, 0x45, 0xae, 0x49, 0xe7, 0x62, 0x06,
- 0x43, 0xf5, 0x6f, 0xba, 0xd6, 0xc8, 0x47, 0x4f, 0x54, 0x76, 0x11, 0x2d,
- 0xaa, 0x4b, 0xa9, 0xbb, 0x95, 0xb3, 0xbb, 0x53, 0x9a, 0x09, 0x25, 0x73,
- 0xb2, 0x0d, 0x9d, 0xf7, 0x71, 0x41, 0xd6, 0x78, 0xb2, 0x8e, 0xc1, 0x75,
- 0x22, 0x00, 0x73, 0xa1, 0xef, 0x8d, 0x20, 0x52, 0x31, 0x28, 0x33, 0xd6,
- 0x7b, 0xaa, 0x27, 0xfb, 0xa8, 0x19, 0x52, 0x3a, 0x07, 0xbe, 0xde, 0x2a,
- 0x79, 0xfe, 0xee, 0xed, 0x71, 0x4f, 0x26, 0xf4, 0x84, 0xf6, 0x00, 0x8b,
- 0x35, 0x78, 0x9b, 0x11, 0xba, 0x61, 0x65, 0x78, 0xd7, 0x65, 0x36, 0xf0,
- 0x01, 0x25, 0x55, 0x8a, 0xa5, 0xe9, 0x8b, 0x0d, 0x2f, 0x66, 0x91, 0xf4,
- 0x4b, 0x20, 0xe1, 0x76, 0x71, 0x31, 0x16, 0x7e, 0xfe, 0xf2, 0xc5, 0x3c,
- 0x95, 0xb5, 0x5b, 0x55, 0x88, 0x8d, 0xa1, 0x95, 0x8f, 0xd4, 0xae, 0x54,
- 0x53, 0x7f, 0x07, 0x08, 0x98, 0x43, 0xb6, 0xd9, 0xa6, 0x95, 0x2e, 0x41,
- 0x43, 0xc9, 0xe0, 0xaf, 0x70, 0x67, 0x0d, 0x74, 0x98, 0xa3, 0x2c, 0xf4,
- 0x58, 0xeb, 0x52, 0x20, 0xca, 0xa2, 0x65, 0xc8, 0x6d, 0x3b, 0xc2, 0x30,
- 0x6a, 0x0d, 0x5e, 0xc8, 0xae, 0x73, 0x82, 0xd6, 0x09, 0xeb, 0x8f, 0x71,
- 0x56, 0x1a, 0x30, 0x9f, 0x18, 0x94, 0x99, 0xea, 0x41, 0x1f, 0xcb, 0xf8,
- 0x0e, 0xc4, 0x73, 0xc9, 0x42, 0x9a, 0x0e, 0xad, 0x15, 0x66, 0x17, 0x9b,
- 0x6c, 0x3a, 0x47, 0x7d, 0x32, 0x6b, 0x40, 0xc6, 0x1c, 0x67, 0x25, 0xea,
- 0x59, 0x61, 0x48, 0x69, 0x61, 0xfd, 0x31, 0xad, 0x9d, 0xfd, 0xdd, 0xa1,
- 0x4f, 0x9d, 0x37, 0xf5, 0x85, 0xd6, 0x93, 0x1c, 0x19, 0xea, 0x28, 0xa4,
- 0x1a, 0xa7, 0xb7, 0xad, 0x1e, 0xed, 0xf9, 0xc5, 0x99, 0xbc, 0x6a, 0x4c,
- 0x3d, 0x08, 0xda, 0xde, 0x70, 0x1b, 0xca, 0x40, 0xa3, 0x2d, 0x0c, 0x0b,
- 0x2e, 0xda, 0x64, 0x78, 0xb9, 0xc5, 0xa3, 0x1e, 0xb1, 0x91, 0x97, 0xab,
- 0x76, 0xc8, 0x59, 0xd9, 0xa3, 0x97, 0xb9, 0xb9, 0x44, 0x6a, 0x46, 0x24,
- 0x23, 0xf1, 0x9b, 0x0b, 0x9c, 0xeb, 0x41, 0xe4, 0xec, 0xfc, 0x51, 0x88,
- 0xf6, 0x39, 0x95, 0x94, 0x2d, 0xfb, 0x8a, 0x75, 0x80, 0x1a, 0x8a, 0xb8,
- 0xc7, 0xdf, 0xe2, 0xc4, 0x98, 0xd4, 0x29, 0xfb, 0xb4, 0x66, 0xf2, 0xb7,
- 0xc5, 0xe9, 0x81, 0xe9, 0x3f, 0xb2, 0x3a, 0x0a, 0x13, 0xc6, 0x61, 0x68,
- 0x84, 0x0b, 0xde, 0x2a, 0x93, 0x17, 0x68, 0xc1, 0x14, 0x3f, 0xec, 0x72,
- 0xb5, 0xbb, 0x82, 0x87, 0x19, 0x94, 0x2d, 0x4a, 0x56, 0x38, 0xcc, 0x26,
- 0xc9, 0x3a, 0x9f, 0x9a, 0x66, 0xc7, 0x9d, 0x29, 0x68, 0x3d, 0xb5, 0xf8,
- 0x85, 0x7b, 0xd7, 0x9a, 0x18, 0x05, 0x60, 0xfb, 0x84, 0x07, 0xf7, 0x5a,
- 0x51, 0x0a, 0x8e, 0x53, 0x2c, 0x1e, 0x85, 0x42, 0xe1, 0xf0, 0x88, 0x7f,
- 0x0f, 0x72, 0xf4, 0x53, 0xf2, 0xe7, 0x91, 0xab, 0xb6, 0xb3, 0x79, 0x97,
- 0x19, 0xd1, 0xdf, 0x45, 0x50, 0x91, 0x86, 0xf7, 0x49, 0x8f, 0x35, 0x45,
- 0x6e, 0x59, 0x37, 0x0c, 0x68, 0x47, 0x9e, 0x9b, 0x9e, 0x17, 0x5d, 0x8a,
- 0x67, 0xad, 0x8a, 0xec, 0x16, 0xc0, 0xff, 0xfd, 0xcd, 0x85, 0xd2, 0xff,
- 0xf7, 0x2f, 0xde, 0xbe, 0x79, 0xf5, 0xe6, 0xeb, 0x03, 0x20, 0x56, 0x66,
- 0xd5, 0x14, 0x52, 0x5c, 0xf2, 0xf7, 0xd5, 0x2c, 0x9f, 0x32, 0xa7, 0x20,
- 0xcc, 0xcd, 0x8b, 0x76, 0xd2, 0x5b, 0x26, 0x3e, 0x0a, 0xc2, 0xf4, 0x0a,
- 0x40, 0x48, 0x29, 0x32, 0x1e, 0x29, 0x7b, 0x55, 0x79, 0xb9, 0xb2, 0x4b,
- 0x3f, 0x25, 0x51, 0x84, 0x3c, 0x69, 0x14, 0x6b, 0x00, 0x7e, 0xc4, 0x44,
- 0x0b, 0xb3, 0xad, 0x11, 0x14, 0x5e, 0x1e, 0x1f, 0x47, 0xa0, 0xbd, 0x39,
- 0x16, 0x5b, 0xe8, 0x8b, 0xc3, 0xef, 0xa8, 0x21, 0x1b, 0xbc, 0x0d, 0xe7,
- 0xb8, 0xb9, 0xfc, 0xb9, 0x50, 0xb2, 0xc7, 0xf5, 0x8c, 0xdc, 0xfa, 0x7d,
- 0x18, 0x16, 0x4d, 0x41, 0xfb, 0x14, 0x69, 0x4b, 0x3b, 0x9c, 0x57, 0x33,
- 0x52, 0xd2, 0x0c, 0x93, 0x2c, 0x2f, 0x1a, 0x88, 0x47, 0xad, 0x9b, 0xb4,
- 0x5d, 0xa5, 0x6d, 0x9d, 0xbf, 0xea, 0x8a, 0xd5, 0xaf, 0x16, 0x08, 0x12,
- 0xbb, 0xf7, 0xb5, 0x0c, 0x2a, 0xcb, 0x85, 0x54, 0xd5, 0x0f, 0x81, 0xea,
- 0x01, 0x35, 0xcf, 0x32, 0x73, 0x2b, 0x8a, 0xd4, 0x5e, 0x83, 0x5b, 0x86,
- 0xec, 0xe2, 0x26, 0x93, 0x82, 0xac, 0x0e, 0x20, 0xc0, 0x30, 0xbb, 0x71,
- 0x32, 0x29, 0xcd, 0xf3, 0x91, 0x14, 0x20, 0x2d, 0xf2, 0xec, 0xea, 0xbe,
- 0xa7, 0x8d, 0x44, 0xa4, 0xdb, 0x20, 0x45, 0xaa, 0x0d, 0x48, 0x6e, 0xeb,
- 0xf6, 0x7c, 0xc3, 0xe0, 0x06, 0xa2, 0xff, 0xf3, 0xcc, 0x0a, 0x14, 0x77,
- 0xea, 0x1d, 0x05, 0x85, 0x0c, 0x46, 0x86, 0x9d, 0x0e, 0xa8, 0x82, 0xec,
- 0xa8, 0x28, 0xfd, 0x96, 0xee, 0x29, 0xde, 0xee, 0xe7, 0x7c, 0x74, 0x27,
- 0x1c, 0xad, 0x2e, 0xea, 0x95, 0xe1, 0x4b, 0x45, 0x21, 0xf6, 0x2c, 0x8f,
- 0x52, 0xb5, 0xd1, 0x46, 0x1b, 0x70, 0x02, 0x6e, 0x06, 0x09, 0x33, 0x88,
- 0x26, 0x39, 0x71, 0xf5, 0xa6, 0x91, 0x7f, 0xeb, 0x41, 0x60, 0xf8, 0x2f,
- 0xcb, 0x75, 0x33, 0x74, 0x56, 0x8f, 0x9c, 0xe0, 0xb9, 0x9a, 0x20, 0x05,
- 0xf7, 0x62, 0xbc, 0x15, 0x0d, 0x52, 0xe3, 0x31, 0x28, 0xb2, 0x73, 0x7a,
- 0xed, 0xa2, 0x27, 0x7b, 0x19, 0x9f, 0x66, 0x7e, 0x75, 0xef, 0x68, 0xda,
- 0x50, 0x6b, 0xee, 0xd2, 0xa6, 0xd2, 0xc4, 0xcb, 0x0a, 0xf3, 0xbd, 0xfd,
- 0x2d, 0xb8, 0x91, 0x48, 0x41, 0x54, 0x4e, 0xe6, 0x14, 0x3f, 0x71, 0x2f,
- 0x13, 0x16, 0xe7, 0x67, 0x5e, 0x5c, 0x97, 0xf4, 0x8d, 0xf8, 0x79, 0x23,
- 0xf1, 0x5e, 0x79, 0x6f, 0x8e, 0xd8, 0x59, 0x67, 0x55, 0xd5, 0x72, 0xa4,
- 0x19, 0x39, 0x66, 0x2e, 0x9c, 0xf5, 0x5b, 0x27, 0x2e, 0xb7, 0x57, 0x13,
- 0x35, 0xc2, 0x8b, 0x51, 0x6a, 0x0f, 0x1b, 0xe2, 0x1d, 0x52, 0x44, 0xe1,
- 0x15, 0xbd, 0x9c, 0xcd, 0xa1, 0xcd, 0x7a, 0xd9, 0xbe, 0x7a, 0xe1, 0xc8,
- 0x7d, 0x93, 0x5b, 0xa3, 0x54, 0xff, 0x4d, 0x32, 0x6e, 0x57, 0x48, 0x6f,
- 0x29, 0xd6, 0x08, 0x0f, 0xa6, 0x83, 0x44, 0x27, 0x78, 0x7a, 0x55, 0x96,
- 0x92, 0x4e, 0xde, 0xc7, 0x6c, 0x13, 0xae, 0x8c, 0x08, 0xb0, 0x9b, 0x1e,
- 0xf9, 0xa1, 0x5d, 0x12, 0x5b, 0x32, 0x33, 0xc2, 0xba, 0x86, 0xb9, 0x93,
- 0x58, 0x3d, 0xb8, 0xe2, 0xf6, 0xdd, 0xc6, 0xe3, 0xb1, 0x97, 0xb3, 0x30,
- 0xd7, 0x10, 0x6e, 0x95, 0xb8, 0x00, 0x5f, 0xdd, 0xf1, 0xe5, 0x91, 0x30,
- 0x65, 0x7f, 0x51, 0xa2, 0x97, 0x1d, 0x07, 0x2e, 0x13, 0x07, 0xb1, 0xea,
- 0x03, 0x95, 0xc5, 0x14, 0xed, 0xc7, 0x0b, 0x32, 0x7b, 0x45, 0xdb, 0x01,
- 0x06, 0xf2, 0xe7, 0xbd, 0x9d, 0x3e, 0x26, 0x8f, 0x86, 0x34, 0x7d, 0x1d,
- 0xa7, 0xb1, 0xb6, 0xfa, 0x17, 0x5d, 0x83, 0x2e, 0xcb, 0x06, 0x77, 0xc8,
- 0x6a, 0x99, 0x88, 0x81, 0x02, 0x05, 0x49, 0x7b, 0xd6, 0x7f, 0xfc, 0x47,
- 0xd4, 0xa1, 0x75, 0xfc, 0xeb, 0xad, 0xb7, 0xc7, 0x68, 0x28, 0x16, 0xad,
- 0xa9, 0xbc, 0x44, 0x0d, 0x38, 0x9e, 0xd0, 0xee, 0x64, 0x06, 0xd2, 0xeb,
- 0xa9, 0xe0, 0xa8, 0x1c, 0x4e, 0xb4, 0x16, 0xaa, 0xaf, 0xe9, 0x62, 0x99,
- 0x44, 0x58, 0xd6, 0x50, 0x4f, 0x80, 0xc6, 0x7c, 0xa5, 0x0e, 0xfe, 0x36,
- 0xfd, 0xa0, 0x65, 0x54, 0x43, 0x60, 0x25, 0x61, 0xa4, 0xac, 0x8c, 0xa7,
- 0x12, 0xfb, 0x4c, 0x0b, 0x82, 0x9e, 0xda, 0x17, 0x23, 0x05, 0x70, 0x8e,
- 0xc4, 0x98, 0xff, 0x1c, 0x6c, 0xf1, 0xf3, 0x87, 0x14, 0x93, 0x91, 0x8c,
- 0x0c, 0xbf, 0x44, 0xc6, 0x80, 0x1b, 0x19, 0x24, 0x9b, 0x68, 0x65, 0xcb,
- 0xca, 0xb0, 0x21, 0xc2, 0x81, 0x04, 0x7b, 0x8b, 0x2a, 0x93, 0xf2, 0x45,
- 0xd9, 0x0d, 0x48, 0x87, 0x18, 0x0b, 0x43, 0x95, 0x11, 0x03, 0x50, 0xed,
- 0x91, 0x33, 0x72, 0x2f, 0x56, 0xf3, 0x98, 0xb6, 0x83, 0x23, 0x2e, 0xb5,
- 0x4f, 0xf2, 0xba, 0x5e, 0x89, 0x2e, 0xe8, 0xca, 0xd6, 0x58, 0x8c, 0xd1,
- 0xb9, 0x19, 0x0f, 0x75, 0x5d, 0xcf, 0x11, 0x9f, 0xd5, 0x2b, 0xa5, 0x30,
- 0xd8, 0x3e, 0xcb, 0xbf, 0x2a, 0x6a, 0x8a, 0x3a, 0x25, 0x9b, 0xc4, 0x25,
- 0x28, 0x41, 0xe9, 0x4b, 0x2a, 0xe9, 0x6b, 0x84, 0x29, 0x5c, 0x59, 0x9d,
- 0xe6, 0x06, 0x27, 0xa7, 0x67, 0xaf, 0x4e, 0xde, 0x4c, 0x92, 0x7f, 0x1d,
- 0xac, 0x4d, 0x99, 0x6c, 0xe3, 0xad, 0xff, 0x30, 0x74, 0x5b, 0xd3, 0x1f,
- 0xb3, 0x27, 0x2a, 0xb2, 0x27, 0xcb, 0x4f, 0xcd, 0x25, 0x6e, 0xd8, 0xac,
- 0xbe, 0x29, 0x68, 0x8d, 0xb2, 0x5b, 0x1d, 0x80, 0xc9, 0x40, 0x68, 0xb6,
- 0xf0, 0x9c, 0x5d, 0x5d, 0x9a, 0x79, 0xbe, 0x53, 0x5d, 0x3a, 0xcd, 0xc7,
- 0x19, 0xb1, 0x30, 0xc0, 0x56, 0x78, 0xb4, 0xbc, 0xe0, 0x6c, 0x8c, 0xa2,
- 0x48, 0x6f, 0x4a, 0xd1, 0x7b, 0x91, 0xb7, 0x90, 0xbc, 0xd2, 0x8d, 0xba,
- 0xfd, 0xfa, 0xe8, 0x0c, 0xb6, 0x1a, 0x4a, 0x1a, 0x77, 0x03, 0x24, 0x8b,
- 0x97, 0xc8, 0x3f, 0xa9, 0x95, 0xd1, 0x34, 0x57, 0x1c, 0x67, 0xc7, 0x08,
- 0xd1, 0xf3, 0xb4, 0x88, 0xa6, 0x85, 0x1a, 0xc1, 0xf6, 0xd0, 0xac, 0x46,
- 0xe9, 0x10, 0xa1, 0xd5, 0x84, 0xe2, 0x55, 0xce, 0x62, 0xe0, 0xb5, 0xd3,
- 0x77, 0x67, 0x62, 0xae, 0x7a, 0x79, 0x74, 0x7c, 0x74, 0x76, 0x34, 0x0c,
- 0xc0, 0x67, 0x61, 0x84, 0x9d, 0x53, 0xfa, 0x58, 0x93, 0x4d, 0xaf, 0x8a,
- 0x72, 0x5e, 0x5e, 0xe6, 0x52, 0x85, 0x3b, 0xf9, 0x3e, 0x3b, 0x7f, 0xf9,
- 0xe2, 0x3b, 0x88, 0x15, 0x30, 0x3d, 0x9d, 0xbe, 0x3d, 0x39, 0xfd, 0xea,
- 0xd5, 0x9b, 0x97, 0xc3, 0xe4, 0xf0, 0xe4, 0xf4, 0x6f, 0xc3, 0xe4, 0xf5,
- 0xc9, 0x77, 0x47, 0x91, 0xb4, 0x01, 0x00, 0x5f, 0x07, 0x14, 0x63, 0x6b,
- 0x74, 0x3a, 0xfd, 0xbb, 0x60, 0x97, 0x8a, 0x77, 0x97, 0xbc, 0xe8, 0x44,
- 0xcc, 0x98, 0xa5, 0x33, 0x57, 0xe9, 0x37, 0x47, 0x2f, 0x5e, 0x0e, 0x83,
- 0xba, 0x06, 0xa8, 0xb0, 0x64, 0x3a, 0xc3, 0xfc, 0xec, 0xa4, 0x09, 0x0d,
- 0x9f, 0x95, 0x10, 0x12, 0x14, 0xd8, 0x09, 0xc7, 0x27, 0xd6, 0x10, 0x2c,
- 0xe1, 0x70, 0xcc, 0xfa, 0x62, 0x90, 0xa4, 0x40, 0x07, 0x57, 0xc0, 0x5e,
- 0x9f, 0xca, 0x04, 0x99, 0xcd, 0x97, 0xb6, 0x05, 0x8e, 0x8d, 0x52, 0x55,
- 0x34, 0xb1, 0xd1, 0x8f, 0x3c, 0xef, 0xc1, 0x04, 0x1b, 0xb6, 0xc0, 0x40,
- 0x88, 0x1f, 0xb1, 0x05, 0x32, 0x95, 0x52, 0xa6, 0x54, 0xb0, 0xcc, 0x68,
- 0x4b, 0x10, 0xae, 0x2f, 0x1c, 0x78, 0xf4, 0x7a, 0x41, 0x5b, 0x2a, 0x2c,
- 0x08, 0x30, 0x1b, 0x16, 0x4f, 0x17, 0xc8, 0x16, 0xf3, 0xfd, 0x81, 0x3f,
- 0x16, 0x38, 0xb8, 0x48, 0x32, 0xc4, 0xea, 0xc2, 0x90, 0x65, 0xc6, 0xc1,
- 0x87, 0xbc, 0x4d, 0xd6, 0x3a, 0x90, 0x8c, 0x5e, 0xa9, 0x6d, 0x62, 0x9d,
- 0x9c, 0xa5, 0x27, 0xc6, 0x96, 0x9d, 0x27, 0x34, 0x38, 0x35, 0x5d, 0xb5,
- 0xd9, 0x84, 0x6f, 0x28, 0xc1, 0x3c, 0x23, 0x62, 0xbf, 0x6e, 0xb1, 0xfa,
- 0x09, 0xc4, 0x90, 0xe3, 0x2f, 0x0a, 0xc1, 0xea, 0x04, 0x26, 0x2d, 0x73,
- 0xcf, 0x06, 0x77, 0x0c, 0x3d, 0x69, 0x58, 0x49, 0x21, 0x86, 0xd1, 0x04,
- 0xae, 0xc1, 0x11, 0xab, 0xd4, 0x7e, 0x1c, 0xbd, 0x72, 0x4f, 0x11, 0x51,
- 0x65, 0x0c, 0x81, 0x0b, 0x8d, 0xe6, 0xe9, 0xd7, 0x96, 0x75, 0xa7, 0x7c,
- 0x7f, 0xe7, 0xd6, 0x99, 0xda, 0x21, 0x54, 0xd4, 0xc9, 0x48, 0xca, 0x00,
- 0x50, 0x42, 0x6c, 0xb0, 0x74, 0x9b, 0x5f, 0xf5, 0x30, 0x46, 0xdf, 0x78,
- 0x6b, 0xf1, 0x31, 0x2c, 0x8b, 0x3a, 0x7e, 0x65, 0x8e, 0x43, 0x04, 0xfc,
- 0x8a, 0xab, 0x6e, 0x73, 0x6c, 0x09, 0x89, 0x57, 0xb4, 0xfa, 0xa6, 0xad,
- 0xb0, 0xe3, 0xd3, 0x93, 0xd3, 0xfd, 0x68, 0xcf, 0xf8, 0xe2, 0xbe, 0xae,
- 0x83, 0x3d, 0x7b, 0x7b, 0x74, 0xf6, 0xb6, 0x1d, 0xcd, 0x80, 0x5a, 0x62,
- 0xa1, 0x53, 0xe9, 0xd5, 0xeb, 0x17, 0xf1, 0xf9, 0xe2, 0x8b, 0xbe, 0x5e,
- 0x89, 0x37, 0xa0, 0xdf, 0x30, 0x36, 0xdf, 0xc3, 0x72, 0xdb, 0x89, 0xf5,
- 0x37, 0x79, 0xdd, 0xb3, 0xbe, 0xf8, 0x62, 0xcd, 0x2c, 0xbf, 0x39, 0x3a,
- 0x3e, 0x0d, 0x67, 0xf9, 0xdd, 0xdb, 0xaf, 0xfe, 0xd6, 0x9e, 0xe5, 0xfe,
- 0xa3, 0x48, 0xaf, 0xbf, 0xa5, 0x5d, 0x3d, 0xab, 0xcb, 0xb9, 0x11, 0x58,
- 0x9e, 0xff, 0xf8, 0x17, 0x4a, 0x56, 0xa6, 0xdc, 0xa8, 0x03, 0x73, 0x0b,
- 0x54, 0x3f, 0x0e, 0xf1, 0xf3, 0xe7, 0xf1, 0x78, 0xfc, 0x79, 0x58, 0x29,
- 0x81, 0xec, 0x34, 0x76, 0xae, 0x78, 0x10, 0x51, 0x91, 0x1d, 0x2d, 0x9c,
- 0xd2, 0xd0, 0x28, 0xed, 0x0e, 0x9e, 0x8b, 0x65, 0x9a, 0x57, 0x54, 0x28,
- 0x2c, 0x7a, 0xdb, 0x62, 0x3e, 0x2e, 0x75, 0xd2, 0x4a, 0x74, 0x02, 0xf8,
- 0xc7, 0x67, 0x75, 0xb3, 0xde, 0x12, 0xa0, 0x02, 0x77, 0x01, 0xa7, 0xb3,
- 0xc0, 0x18, 0xc2, 0xb5, 0x9a, 0xd0, 0x6d, 0x05, 0x1b, 0x2d, 0xeb, 0x3b,
- 0xee, 0xa2, 0x2d, 0xf4, 0xe2, 0x90, 0xa9, 0xcf, 0xec, 0xf0, 0xa3, 0x16,
- 0x0c, 0x49, 0x3c, 0x3e, 0x14, 0x7f, 0x3f, 0x19, 0x93, 0x53, 0xba, 0x53,
- 0xa8, 0xbe, 0x74, 0xd6, 0x4c, 0xb7, 0x31, 0xcf, 0xba, 0x25, 0xfe, 0x59,
- 0xf9, 0x2d, 0x30, 0x24, 0xf9, 0xe1, 0xc6, 0x94, 0x92, 0xce, 0x91, 0x37,
- 0x5e, 0x8e, 0x8f, 0xcb, 0x8a, 0xf7, 0xa4, 0x75, 0x16, 0x0e, 0x42, 0x56,
- 0xe6, 0xa3, 0x7e, 0x4d, 0xfd, 0x94, 0x5e, 0xc2, 0x47, 0x2c, 0x23, 0xbc,
- 0xd0, 0xcb, 0xfb, 0x0c, 0x45, 0x7f, 0x62, 0xcd, 0x4a, 0x46, 0x88, 0xf2,
- 0xa0, 0x8a, 0x04, 0x17, 0xad, 0xeb, 0x40, 0xad, 0x74, 0xfe, 0xa6, 0xf7,
- 0x80, 0x09, 0xd0, 0x00, 0xb8, 0xba, 0x80, 0x2a, 0xf2, 0x98, 0x69, 0x78,
- 0x19, 0x7e, 0x69, 0xa3, 0x49, 0x08, 0xb7, 0x61, 0xe3, 0x5f, 0x37, 0x20,
- 0x05, 0xd3, 0xeb, 0x51, 0xb0, 0x08, 0xa5, 0x5a, 0x28, 0x37, 0x78, 0x2a,
- 0x22, 0x34, 0xd8, 0x45, 0xb1, 0xc4, 0x67, 0x03, 0xe4, 0x3c, 0xe2, 0xa1,
- 0x29, 0x8c, 0x93, 0xef, 0xf3, 0xf9, 0x6c, 0x9a, 0x56, 0x14, 0x10, 0x18,
- 0xde, 0xad, 0x42, 0x26, 0x7c, 0x98, 0xea, 0x92, 0x7a, 0x75, 0x27, 0x47,
- 0x0b, 0x4c, 0xc5, 0xa9, 0x3e, 0x92, 0x45, 0x67, 0x37, 0x03, 0x9e, 0xf9,
- 0xbe, 0x2c, 0x4e, 0x26, 0x1f, 0x5d, 0x63, 0xdc, 0x73, 0xed, 0xb2, 0x3e,
- 0xed, 0x7d, 0x55, 0x5f, 0xc4, 0xe8, 0x51, 0xe8, 0x4f, 0xc9, 0x97, 0xd7,
- 0x8f, 0xc8, 0x84, 0xf5, 0x64, 0xc8, 0x7f, 0x3d, 0x71, 0xf9, 0x5c, 0x9e,
- 0xa2, 0xc6, 0x4a, 0x0c, 0x8b, 0xfc, 0xaf, 0x4e, 0x35, 0x6b, 0x7c, 0x1c,
- 0x6e, 0x14, 0x27, 0x4e, 0x68, 0xfa, 0xa7, 0xd0, 0x98, 0xcd, 0x9a, 0x08,
- 0x4e, 0x30, 0xc7, 0x0a, 0x71, 0x9c, 0x5d, 0x60, 0x5e, 0x62, 0x1b, 0x1d,
- 0xfa, 0xdf, 0xa8, 0x5d, 0x19, 0x3e, 0xf3, 0x2c, 0x14, 0x94, 0xcd, 0xdd,
- 0x64, 0x91, 0x17, 0xab, 0x26, 0xdb, 0x22, 0x20, 0x83, 0x46, 0x4d, 0xa5,
- 0xbc, 0x0c, 0xb1, 0x95, 0xe5, 0xc4, 0x49, 0x31, 0x0f, 0x65, 0x85, 0x58,
- 0x61, 0xe6, 0xa5, 0x19, 0x6b, 0xb5, 0x2a, 0x28, 0x88, 0x07, 0x51, 0x0a,
- 0xf3, 0x79, 0x36, 0xf7, 0xaa, 0x97, 0xc9, 0xe8, 0xe7, 0x65, 0x68, 0xfc,
- 0xa2, 0x9b, 0xce, 0xd0, 0xc7, 0xab, 0x82, 0x13, 0x74, 0x91, 0xc9, 0x8c,
- 0x32, 0x08, 0x71, 0xfe, 0xeb, 0x52, 0x05, 0x68, 0xca, 0x65, 0x10, 0xec,
- 0xc6, 0x04, 0xe3, 0x6a, 0x53, 0x91, 0x4d, 0xb4, 0x71, 0x1c, 0x89, 0x2b,
- 0x5a, 0x95, 0x48, 0xf9, 0xa4, 0x34, 0x16, 0x59, 0x08, 0x58, 0x18, 0x42,
- 0xbf, 0xc7, 0x92, 0xb2, 0xb1, 0x02, 0x37, 0x90, 0x57, 0x29, 0x82, 0xc9,
- 0x48, 0x77, 0xca, 0x6c, 0xaa, 0x92, 0x13, 0x66, 0x6c, 0x6e, 0x97, 0x1f,
- 0xcf, 0x2b, 0x00, 0x2d, 0x35, 0xf5, 0xcf, 0xeb, 0x10, 0x14, 0x8c, 0x46,
- 0xd6, 0x02, 0xea, 0xea, 0x74, 0xd4, 0xe9, 0xc9, 0xe6, 0x35, 0xb8, 0xee,
- 0x80, 0xd4, 0x47, 0xce, 0x55, 0xac, 0xca, 0xfa, 0x8e, 0x9e, 0xad, 0xe9,
- 0xe8, 0x82, 0x80, 0xe5, 0xb0, 0x84, 0x16, 0x77, 0xf3, 0x46, 0x8f, 0xad,
- 0x6d, 0x95, 0xdb, 0x79, 0xf2, 0xe8, 0x9e, 0x76, 0x28, 0x32, 0xc2, 0x50,
- 0xab, 0x24, 0x01, 0xe1, 0xf5, 0x4e, 0x13, 0x4f, 0x1f, 0x8f, 0x77, 0x1e,
- 0x9e, 0xcc, 0xe1, 0x8c, 0x2c, 0x8c, 0x20, 0xcb, 0x9f, 0xd0, 0x16, 0x4b,
- 0x8c, 0x62, 0xd9, 0xc7, 0x57, 0xd6, 0x56, 0x44, 0x02, 0xcc, 0x58, 0xeb,
- 0xb2, 0x36, 0x4b, 0x08, 0xa3, 0xfd, 0x88, 0x5c, 0x42, 0x5d, 0x0b, 0x11,
- 0xc2, 0xb6, 0xa8, 0x1e, 0x09, 0x3a, 0xe7, 0x42, 0x1f, 0x5d, 0x48, 0x2f,
- 0x89, 0x3e, 0xbb, 0xcc, 0xe8, 0x9c, 0xb3, 0xe8, 0xcc, 0xcd, 0xde, 0x03,
- 0x9b, 0x2b, 0x71, 0x2e, 0x83, 0x7a, 0x9e, 0xcd, 0x2e, 0x8d, 0x16, 0xb1,
- 0x58, 0x64, 0xd5, 0x00, 0x27, 0x84, 0x5e, 0xa6, 0xd2, 0x29, 0x2f, 0x39,
- 0xce, 0x42, 0x8d, 0x50, 0xdd, 0xc3, 0xb4, 0x6c, 0x3a, 0x05, 0x8e, 0x37,
- 0xb3, 0x4b, 0x45, 0xe8, 0xa8, 0xa6, 0x5b, 0x5a, 0x2c, 0x50, 0xc3, 0xe4,
- 0x9c, 0x34, 0x8d, 0x50, 0xbb, 0x98, 0xbe, 0x43, 0x5e, 0x27, 0x9b, 0x38,
- 0x1f, 0x85, 0x1f, 0x9c, 0xad, 0x96, 0x73, 0x06, 0x4b, 0xe4, 0x60, 0x3c,
- 0x37, 0xc4, 0x18, 0x36, 0xa9, 0xd6, 0xb2, 0xa2, 0xe5, 0x87, 0x35, 0x1e,
- 0x41, 0x40, 0x64, 0x97, 0x27, 0xc5, 0x65, 0x83, 0x2e, 0xe5, 0x05, 0xfa,
- 0x3b, 0xcf, 0x1a, 0xca, 0xbf, 0x33, 0x7a, 0x2c, 0xec, 0x65, 0xa1, 0x43,
- 0x66, 0xae, 0x2a, 0x0a, 0xbc, 0x57, 0xb9, 0x19, 0x2c, 0x8e, 0xc8, 0xf9,
- 0x1c, 0x18, 0x42, 0xc0, 0x03, 0x40, 0xae, 0x8c, 0x54, 0x97, 0x19, 0x27,
- 0xa7, 0xf3, 0x0c, 0xd5, 0x54, 0x2c, 0xac, 0x71, 0x78, 0xd4, 0x59, 0x1f,
- 0xa1, 0x34, 0xa9, 0xd0, 0xd1, 0xc5, 0x95, 0x6b, 0x0e, 0xa8, 0x18, 0x90,
- 0xf5, 0x4a, 0x2d, 0x96, 0x46, 0x10, 0x91, 0x60, 0xa4, 0x20, 0xa3, 0x94,
- 0xb6, 0x8c, 0x53, 0x96, 0x42, 0x97, 0xda, 0x3c, 0xfd, 0x70, 0xd7, 0xaa,
- 0xed, 0x88, 0xf4, 0xbb, 0x39, 0x6c, 0xc2, 0xb0, 0x4b, 0xb1, 0x7f, 0x8a,
- 0x8c, 0xdc, 0x57, 0x6c, 0xfe, 0xb9, 0x63, 0x07, 0x0e, 0xc5, 0xa2, 0x64,
- 0xb3, 0x98, 0x35, 0xa0, 0xf1, 0xe0, 0x20, 0x6c, 0x03, 0xf1, 0x05, 0xe7,
- 0xc4, 0x31, 0x59, 0x72, 0xcc, 0x28, 0x4c, 0x57, 0xe4, 0xea, 0x73, 0x6a,
- 0xbe, 0xb7, 0xe4, 0x47, 0x72, 0x99, 0x86, 0xab, 0x8a, 0x33, 0x85, 0x0c,
- 0x57, 0x0a, 0x28, 0x14, 0x9b, 0xac, 0x46, 0x32, 0xba, 0xc4, 0x4b, 0x8a,
- 0xfb, 0x01, 0x37, 0x10, 0x0f, 0xac, 0x16, 0x10, 0x96, 0x16, 0x25, 0xcb,
- 0x42, 0x4b, 0x70, 0xc7, 0x5c, 0x05, 0x8a, 0x7b, 0x51, 0xad, 0x32, 0x09,
- 0xf0, 0x4e, 0xfd, 0x79, 0x92, 0x83, 0xe7, 0x7f, 0x19, 0xe6, 0xbd, 0xa4,
- 0x78, 0xe5, 0xcf, 0xc5, 0xb6, 0x19, 0x43, 0x53, 0xd5, 0xd2, 0x7e, 0xa8,
- 0xc5, 0x67, 0x96, 0xe3, 0x7b, 0x0a, 0x14, 0x37, 0x77, 0x19, 0x45, 0x03,
- 0x5d, 0x12, 0x84, 0x3f, 0xdb, 0x3d, 0xcc, 0x34, 0xea, 0x4c, 0x08, 0x1f,
- 0x16, 0x03, 0x19, 0x6d, 0xa7, 0x39, 0x20, 0xdb, 0xd8, 0x91, 0xd0, 0xc1,
- 0x2b, 0x17, 0xe7, 0x1a, 0xe9, 0xdc, 0x05, 0xc3, 0x1a, 0x0a, 0x96, 0xcc,
- 0x9d, 0xa4, 0x34, 0x86, 0xcc, 0x0b, 0x47, 0x2c, 0xeb, 0x1e, 0xb0, 0x07,
- 0x15, 0xea, 0x23, 0x70, 0x2b, 0x72, 0x69, 0x13, 0xab, 0x52, 0x3b, 0x93,
- 0xa7, 0xd4, 0x8a, 0x8d, 0x37, 0x3c, 0x56, 0xd4, 0x55, 0x6d, 0x5f, 0xa2,
- 0x56, 0x86, 0x41, 0xe9, 0x52, 0x6c, 0xa0, 0x4b, 0x56, 0x1d, 0xdb, 0x32,
- 0x59, 0xc1, 0x0d, 0x8a, 0x95, 0xcf, 0x2f, 0x6c, 0x1d, 0x75, 0x8a, 0x31,
- 0x84, 0xc4, 0xfb, 0x68, 0xe7, 0x11, 0x04, 0x0e, 0xf3, 0xe2, 0x8a, 0x3c,
- 0xf0, 0x1a, 0xa8, 0x4b, 0x21, 0x88, 0xe4, 0xcd, 0x31, 0xed, 0xce, 0xef,
- 0xc2, 0x4c, 0x49, 0xac, 0x09, 0x1b, 0xe5, 0x0a, 0x15, 0x56, 0x84, 0x1e,
- 0x6c, 0xe9, 0x25, 0x36, 0x98, 0x0b, 0xd3, 0x75, 0x2c, 0x39, 0x82, 0x33,
- 0x6d, 0x17, 0xac, 0x52, 0xbe, 0x4e, 0xfe, 0xdd, 0x70, 0xb9, 0x6a, 0x5d,
- 0xaf, 0x99, 0x20, 0xce, 0x62, 0x25, 0x82, 0xcb, 0x26, 0x27, 0x3f, 0x1a,
- 0xdb, 0x8f, 0xf8, 0xfa, 0x18, 0xca, 0xf1, 0x4c, 0x3d, 0xa3, 0x91, 0x9a,
- 0xf9, 0x16, 0xb8, 0xbb, 0x1e, 0xdd, 0x3a, 0x6b, 0x43, 0x90, 0x4b, 0x8b,
- 0x7e, 0x95, 0xf9, 0x9a, 0x05, 0xeb, 0xb8, 0x98, 0x4a, 0x37, 0x6a, 0xce,
- 0x5b, 0xb3, 0x23, 0xe6, 0x57, 0x63, 0xee, 0x1b, 0x6f, 0x06, 0xfe, 0x30,
- 0x93, 0x4d, 0x8c, 0x03, 0xbb, 0xf0, 0xf8, 0xf6, 0x76, 0x4b, 0xab, 0x6a,
- 0x83, 0x76, 0x85, 0x8d, 0x8c, 0x2e, 0x42, 0xa9, 0x17, 0xe7, 0x7d, 0x2d,
- 0xf8, 0xe8, 0x6e, 0x1b, 0x11, 0x90, 0xaf, 0x56, 0x44, 0x59, 0x1b, 0x91,
- 0x00, 0x5b, 0xd2, 0x55, 0xb9, 0x8b, 0x8e, 0xc7, 0x4a, 0x54, 0x4a, 0xdc,
- 0x4e, 0xfc, 0x31, 0xe0, 0xe0, 0x54, 0x49, 0x3c, 0x02, 0xa8, 0xc2, 0xdb,
- 0xa3, 0xaf, 0xde, 0x4d, 0x8e, 0x5e, 0x26, 0x69, 0x04, 0x20, 0x98, 0x68,
- 0x95, 0x77, 0x84, 0x8f, 0x82, 0x69, 0xb4, 0x64, 0x59, 0x4a, 0xef, 0xe3,
- 0xb5, 0x57, 0x77, 0xec, 0xfa, 0xea, 0xbb, 0xc8, 0xd7, 0xe0, 0x20, 0xf2,
- 0xac, 0x67, 0x19, 0xea, 0x1d, 0x3f, 0xe7, 0x08, 0xe7, 0x00, 0x72, 0xda,
- 0x55, 0x46, 0x36, 0x77, 0x7f, 0xb6, 0x14, 0x10, 0x92, 0x85, 0x39, 0x1a,
- 0xec, 0x59, 0x86, 0x64, 0xaf, 0xdc, 0x98, 0xbc, 0xf7, 0x7a, 0xbf, 0x70,
- 0xec, 0x55, 0xda, 0x53, 0x9c, 0x97, 0xc0, 0xa7, 0xf5, 0x12, 0x52, 0x19,
- 0xdc, 0x2d, 0x0b, 0xaf, 0xca, 0x66, 0xde, 0x74, 0xa2, 0x10, 0x82, 0x42,
- 0xe5, 0xc4, 0x5c, 0x00, 0x18, 0x8a, 0xbb, 0x98, 0x06, 0x93, 0xce, 0x2f,
- 0x4b, 0xc3, 0xbe, 0xaf, 0x16, 0x16, 0x37, 0x85, 0xe1, 0xe5, 0xea, 0xad,
- 0x71, 0x28, 0xd5, 0x44, 0x35, 0x08, 0x8a, 0x22, 0xcc, 0x18, 0x53, 0x0a,
- 0x5a, 0x95, 0x3b, 0xac, 0x14, 0x61, 0xc5, 0x26, 0x81, 0x89, 0xa0, 0x40,
- 0xd1, 0x7a, 0xf0, 0x12, 0x06, 0x22, 0x3f, 0x0a, 0x39, 0x76, 0x3d, 0x62,
- 0x6a, 0xf6, 0x54, 0xc6, 0xe8, 0x8f, 0xfd, 0x8f, 0x2c, 0x90, 0xbd, 0xbb,
- 0x17, 0x13, 0x2e, 0x17, 0xe9, 0x2d, 0x79, 0xf9, 0x7a, 0xc9, 0x81, 0x7d,
- 0xde, 0xaa, 0xd3, 0x55, 0xac, 0x31, 0x93, 0x7e, 0xea, 0xf2, 0xef, 0x39,
- 0xe6, 0xdc, 0xee, 0xb4, 0xc8, 0x1e, 0xe4, 0xb3, 0x08, 0xa3, 0xb7, 0xc0,
- 0x70, 0xc5, 0x70, 0x7c, 0x9e, 0xb1, 0xab, 0x35, 0xc5, 0x34, 0x61, 0x00,
- 0xdf, 0xe4, 0x6a, 0xbd, 0xd4, 0xdf, 0x16, 0x3e, 0x26, 0x5d, 0x4e, 0x1c,
- 0x99, 0xd4, 0x7f, 0x08, 0x68, 0x8e, 0x1b, 0xb1, 0x02, 0x21, 0xaa, 0x33,
- 0x80, 0xdd, 0xea, 0x54, 0x1f, 0x94, 0xc0, 0x2b, 0xf2, 0xa9, 0x5e, 0x30,
- 0x17, 0xae, 0x1d, 0x79, 0x33, 0x60, 0xe9, 0xdc, 0x8e, 0x16, 0xa2, 0x34,
- 0x4d, 0x0c, 0xdb, 0x75, 0x67, 0x64, 0xb1, 0x09, 0x2e, 0x06, 0x2c, 0x8a,
- 0xeb, 0x53, 0x0b, 0x66, 0x57, 0xc4, 0xd2, 0x35, 0xd4, 0xaa, 0xbf, 0x04,
- 0xb0, 0x80, 0xe9, 0xb0, 0xd8, 0x51, 0xf8, 0x63, 0xa5, 0x0d, 0x30, 0x6d,
- 0xe4, 0xe5, 0x8c, 0xa0, 0x19, 0xb8, 0xb6, 0x69, 0x1f, 0x9c, 0xa5, 0x8c,
- 0x65, 0x03, 0xce, 0xde, 0xdb, 0x7c, 0xb1, 0x5a, 0xd0, 0xfb, 0x43, 0x86,
- 0x63, 0x59, 0x40, 0xe9, 0xd7, 0x4d, 0xa5, 0xcc, 0x11, 0x5b, 0x49, 0x39,
- 0xe6, 0x08, 0x02, 0x6f, 0x23, 0xa2, 0x6d, 0x58, 0x52, 0x56, 0x15, 0x54,
- 0x4e, 0xd0, 0x7f, 0x39, 0x7d, 0x26, 0xcf, 0x8b, 0xd5, 0xe2, 0xf3, 0x70,
- 0x10, 0x21, 0xeb, 0x20, 0xba, 0x94, 0x98, 0x7f, 0x67, 0x81, 0x17, 0x72,
- 0x23, 0x50, 0x4d, 0xde, 0xa3, 0x7e, 0x0e, 0x35, 0xe4, 0xc0, 0x51, 0xef,
- 0x0a, 0xa6, 0xa9, 0x3a, 0xff, 0x39, 0x6b, 0x7c, 0x42, 0xf7, 0x97, 0xac,
- 0x71, 0xac, 0x96, 0xe3, 0x20, 0x30, 0xb3, 0xb1, 0x65, 0x0f, 0xe5, 0x5d,
- 0xd3, 0xfd, 0x8e, 0x84, 0x15, 0x8b, 0x5f, 0x00, 0x21, 0x07, 0xb2, 0xc6,
- 0xd6, 0x05, 0x28, 0xf5, 0xe7, 0x82, 0x88, 0x2a, 0x62, 0x1b, 0xc4, 0xcb,
- 0x82, 0x4b, 0x84, 0xed, 0x7a, 0x0c, 0xcf, 0x7a, 0x80, 0x45, 0xe1, 0xed,
- 0x1b, 0x2a, 0x18, 0x88, 0xb9, 0x48, 0x43, 0xa3, 0x84, 0x27, 0x77, 0x95,
- 0x0e, 0x5f, 0xee, 0xd1, 0xce, 0xa7, 0xc3, 0xe4, 0xd1, 0xde, 0xb3, 0x21,
- 0x92, 0x57, 0xf0, 0x63, 0x0f, 0x3f, 0xf6, 0xf1, 0xc8, 0x63, 0x23, 0x1e,
- 0xad, 0x11, 0x0b, 0xc6, 0x51, 0x70, 0x7d, 0x07, 0x1a, 0x9d, 0x9e, 0x97,
- 0x2b, 0x4f, 0x42, 0x48, 0xbd, 0x05, 0xd7, 0x60, 0x0d, 0x66, 0x20, 0x37,
- 0x69, 0x4e, 0x24, 0x13, 0xc4, 0x8f, 0x52, 0x26, 0x8e, 0x88, 0x65, 0x2e,
- 0x16, 0x8d, 0x2a, 0xc5, 0x1b, 0xc1, 0x00, 0x8b, 0xad, 0x6b, 0xa9, 0x0d,
- 0x9a, 0x25, 0x5e, 0x71, 0x8c, 0x4b, 0xb0, 0xa0, 0xe8, 0x85, 0x4d, 0xd0,
- 0x38, 0x75, 0xe6, 0x56, 0xcb, 0xe7, 0xac, 0x4b, 0xe0, 0xe8, 0xd7, 0xc9,
- 0xee, 0x8e, 0x58, 0xa1, 0x6a, 0xbf, 0xb2, 0x8d, 0x05, 0xca, 0x8c, 0xec,
- 0xcf, 0x9c, 0x34, 0x58, 0x45, 0xec, 0xa2, 0xdc, 0x10, 0x2f, 0x06, 0x8b,
- 0xcf, 0x11, 0x9b, 0x3c, 0xc5, 0xf5, 0xdf, 0xba, 0x87, 0x23, 0x8e, 0x38,
- 0x5b, 0xae, 0x59, 0x4d, 0x5f, 0xd9, 0xad, 0x59, 0x7b, 0xc6, 0x7d, 0x4d,
- 0xec, 0xfd, 0xe1, 0xee, 0xbd, 0xb1, 0x57, 0xed, 0x2e, 0x12, 0x5e, 0xdd,
- 0x62, 0xf3, 0xb6, 0x72, 0x32, 0x71, 0xc2, 0xb2, 0x91, 0x43, 0x6b, 0x2b,
- 0x5e, 0xb3, 0xd5, 0x25, 0x7e, 0xf8, 0xb9, 0x68, 0xb5, 0x20, 0x6c, 0x3e,
- 0x79, 0x62, 0xd1, 0x8b, 0x38, 0x87, 0xc7, 0xe8, 0xa0, 0x9a, 0x75, 0xc0,
- 0xec, 0x93, 0xcc, 0x13, 0xa3, 0x17, 0x30, 0xf9, 0x1d, 0xc4, 0x5c, 0x98,
- 0x2a, 0x1f, 0x4a, 0xf0, 0xb9, 0xe1, 0xce, 0xc4, 0x2e, 0x28, 0x1c, 0x22,
- 0xd3, 0x82, 0x46, 0x28, 0x75, 0xc4, 0xe7, 0xd9, 0xc6, 0x37, 0xd0, 0xc1,
- 0xca, 0x6e, 0x43, 0xde, 0x1d, 0x13, 0x86, 0xfe, 0x40, 0x86, 0x55, 0xa7,
- 0x0c, 0x98, 0x7f, 0xf5, 0x4b, 0x3e, 0x4b, 0x9e, 0x6b, 0xd5, 0x87, 0x38,
- 0xec, 0x1c, 0x8e, 0x85, 0x79, 0xd2, 0xec, 0x5f, 0xcd, 0x0a, 0x99, 0x3e,
- 0x9e, 0x6c, 0x4a, 0x0b, 0x5b, 0x43, 0xa3, 0x6c, 0x91, 0xe7, 0x73, 0xf2,
- 0x62, 0x72, 0x9c, 0x9c, 0x1e, 0xbf, 0x78, 0xf5, 0xc6, 0xbc, 0x33, 0x0a,
- 0x1d, 0x02, 0x16, 0x6d, 0x99, 0xb0, 0xfa, 0x02, 0xb1, 0xb5, 0x83, 0xc8,
- 0xdc, 0xee, 0x28, 0x04, 0x64, 0x9d, 0xd1, 0xbd, 0xdb, 0x4a, 0x42, 0x1d,
- 0xad, 0x34, 0xc2, 0xbc, 0x2f, 0xb6, 0xda, 0xae, 0xae, 0x86, 0x25, 0x4b,
- 0xde, 0x8f, 0x17, 0xd8, 0x25, 0xc7, 0xd2, 0x5c, 0x72, 0xd6, 0x24, 0x1a,
- 0x9b, 0x0d, 0xd6, 0xce, 0x05, 0xcc, 0xd1, 0xe0, 0xcd, 0x98, 0x58, 0x73,
- 0x31, 0x14, 0xe2, 0xb5, 0x4d, 0xd8, 0xd4, 0x9d, 0xbc, 0xa2, 0x68, 0xe4,
- 0x79, 0x42, 0xe9, 0x33, 0xc8, 0xc5, 0x91, 0x55, 0x92, 0x1b, 0xd9, 0x4b,
- 0xce, 0x14, 0x94, 0x0f, 0x6b, 0x10, 0x27, 0x4c, 0x80, 0x8d, 0x3a, 0xb8,
- 0xce, 0xcf, 0xcb, 0xdb, 0xa1, 0xb3, 0x4a, 0x73, 0x10, 0x87, 0x48, 0xb6,
- 0x14, 0x53, 0x7a, 0x69, 0x38, 0x1b, 0xe1, 0xe8, 0x0a, 0x6a, 0x48, 0xc9,
- 0x05, 0x4f, 0x50, 0xc7, 0x24, 0xcc, 0x1c, 0x5d, 0x18, 0x51, 0xd8, 0x34,
- 0xe8, 0xfb, 0xa0, 0xd7, 0x91, 0x1b, 0x0e, 0x5c, 0x40, 0x6e, 0x79, 0x57,
- 0x20, 0x3a, 0xa2, 0xac, 0x26, 0x9b, 0x93, 0xe0, 0xf2, 0xd6, 0x0a, 0xa6,
- 0xa3, 0x36, 0x35, 0xac, 0xad, 0x65, 0xd5, 0xd1, 0x98, 0x7e, 0xaf, 0x82,
- 0x1b, 0x5c, 0x00, 0x29, 0x18, 0xc9, 0x11, 0xaf, 0x48, 0x7d, 0x40, 0x9d,
- 0xbb, 0xb2, 0x3e, 0xc1, 0x50, 0x18, 0x94, 0x98, 0x92, 0xda, 0xd9, 0x9e,
- 0x9e, 0xc4, 0xb0, 0x6d, 0xe9, 0x99, 0x6d, 0x49, 0x45, 0xb8, 0x2f, 0xa2,
- 0x97, 0xab, 0x78, 0xe8, 0xcc, 0x27, 0xa0, 0xfe, 0xfa, 0xaa, 0xbc, 0x19,
- 0xc5, 0x30, 0x78, 0x6d, 0x3c, 0x9c, 0x28, 0x65, 0x35, 0x3d, 0x8d, 0xc4,
- 0x84, 0x46, 0x28, 0xcd, 0x5e, 0xfb, 0x68, 0xc3, 0xc5, 0xf7, 0xa3, 0x96,
- 0x5c, 0x58, 0x79, 0x8e, 0x43, 0x3e, 0x09, 0x98, 0x68, 0x5d, 0xb1, 0xa3,
- 0xa2, 0x04, 0x7e, 0xde, 0x25, 0xe1, 0xee, 0x2d, 0xb2, 0xa6, 0x95, 0xe4,
- 0xe1, 0x8d, 0x20, 0x60, 0xe0, 0x73, 0x49, 0x81, 0xfa, 0xc7, 0x2a, 0xcf,
- 0x08, 0x1a, 0x21, 0x83, 0x91, 0x94, 0x4e, 0x2d, 0x06, 0xa7, 0x6d, 0x26,
- 0xd4, 0x26, 0x9b, 0xe7, 0xac, 0xa8, 0x11, 0x38, 0x72, 0x31, 0x7c, 0x5c,
- 0x6d, 0xa4, 0x32, 0x9a, 0xd3, 0x73, 0x88, 0x49, 0x2e, 0xcc, 0xd5, 0x49,
- 0x3e, 0x47, 0x0f, 0x4a, 0x5c, 0x83, 0x9d, 0x35, 0x35, 0x9a, 0x92, 0xec,
- 0xea, 0x0f, 0x61, 0xea, 0xf3, 0xb0, 0x55, 0x44, 0x9b, 0xbc, 0x5c, 0xc2,
- 0xc5, 0x1a, 0x14, 0x65, 0x2f, 0xd2, 0xf9, 0x76, 0xdd, 0xcc, 0x20, 0x4e,
- 0xac, 0x8a, 0x39, 0xc6, 0x89, 0x96, 0xd4, 0xc6, 0xd5, 0x5d, 0xc9, 0x26,
- 0x86, 0x0b, 0xcb, 0xfb, 0xd9, 0xda, 0x50, 0xae, 0x89, 0x67, 0xd9, 0xa6,
- 0x14, 0x49, 0xf4, 0x72, 0x5f, 0x6c, 0xec, 0x79, 0x88, 0xff, 0xeb, 0xaf,
- 0x16, 0x58, 0x14, 0xcf, 0x97, 0xd6, 0xb2, 0xb5, 0xcb, 0xeb, 0x36, 0xf3,
- 0x1a, 0xfb, 0x65, 0xc8, 0xf2, 0xbc, 0xac, 0x29, 0x83, 0xc8, 0xcc, 0xd0,
- 0xbc, 0x2b, 0xf5, 0xab, 0xd6, 0x6d, 0xf4, 0x88, 0x21, 0xb8, 0x3f, 0x12,
- 0xe5, 0x94, 0xd0, 0xb6, 0x1f, 0x79, 0x18, 0xa7, 0x4d, 0xc7, 0x21, 0xed,
- 0x23, 0x3a, 0x8f, 0xc2, 0x6c, 0xd3, 0x99, 0xc8, 0xc9, 0x1c, 0xb4, 0x1a,
- 0xc1, 0x38, 0x95, 0x42, 0x7e, 0x8c, 0xac, 0x58, 0xc2, 0xe1, 0x94, 0x50,
- 0x65, 0x8b, 0x3e, 0xac, 0x4e, 0xf5, 0x93, 0x59, 0xf7, 0x62, 0x0b, 0xfc,
- 0xdf, 0x96, 0xf5, 0x50, 0x67, 0x56, 0xe2, 0xf6, 0x28, 0x8b, 0x01, 0x32,
- 0xdf, 0xe3, 0xd8, 0x70, 0x30, 0xd2, 0xf0, 0x9a, 0xd8, 0x5c, 0x32, 0x49,
- 0x10, 0x69, 0xa1, 0x8d, 0x0a, 0x28, 0x7e, 0xc4, 0x4c, 0x6b, 0x88, 0x7c,
- 0x25, 0xf0, 0x8c, 0xd3, 0xb9, 0x91, 0xea, 0x22, 0x6e, 0x9d, 0x89, 0x60,
- 0x73, 0x03, 0x89, 0x7c, 0xd8, 0x95, 0x41, 0xea, 0x15, 0xb4, 0x91, 0xf9,
- 0x0a, 0x3d, 0x3b, 0xc3, 0x2b, 0x81, 0x48, 0x2b, 0x96, 0x5c, 0x14, 0x78,
- 0xdd, 0xa2, 0x40, 0x83, 0xd3, 0x78, 0x18, 0xf4, 0x5a, 0x56, 0xc5, 0xc2,
- 0xb3, 0x77, 0x61, 0x7a, 0xc7, 0x3d, 0xa3, 0x83, 0x81, 0x88, 0x9b, 0xc9,
- 0xa4, 0xc6, 0x85, 0xe7, 0xe6, 0x02, 0x6a, 0x81, 0x0e, 0x47, 0x40, 0xda,
- 0x05, 0xd6, 0x34, 0x06, 0xac, 0x6d, 0x03, 0x6d, 0x5b, 0x23, 0x53, 0x81,
- 0x4b, 0x71, 0xdb, 0x28, 0x5b, 0x97, 0x81, 0xd8, 0x95, 0x04, 0x93, 0x57,
- 0x45, 0x10, 0x3e, 0x06, 0x33, 0x23, 0x17, 0x9d, 0x27, 0x12, 0x61, 0xfd,
- 0x40, 0x30, 0x11, 0x6a, 0xe5, 0x09, 0xad, 0x21, 0xa9, 0x76, 0x10, 0xc9,
- 0xfb, 0xe4, 0x97, 0x36, 0x15, 0x27, 0x95, 0x5e, 0xdb, 0x6a, 0x85, 0x59,
- 0x95, 0xad, 0x22, 0x40, 0x7f, 0xa8, 0x10, 0xf9, 0xb8, 0x5d, 0x52, 0x5d,
- 0x50, 0xf5, 0x7f, 0xd5, 0x99, 0x4e, 0x1f, 0x76, 0xa8, 0x7b, 0x72, 0xb4,
- 0xef, 0x39, 0xd4, 0x0c, 0x77, 0x5d, 0x7f, 0xa8, 0xdb, 0xe5, 0x65, 0x7b,
- 0xbc, 0x9c, 0xed, 0xc3, 0xfc, 0x40, 0x5c, 0xf7, 0x7b, 0x0f, 0x24, 0x99,
- 0x56, 0xff, 0x9b, 0x1d, 0xc9, 0xf4, 0x61, 0x67, 0x32, 0x6d, 0x1d, 0x4a,
- 0x4c, 0x33, 0x64, 0xad, 0xb7, 0xbd, 0x23, 0xfe, 0xbf, 0xc7, 0xf4, 0xbf,
- 0xfa, 0x98, 0x7e, 0xda, 0x11, 0x86, 0xa9, 0xc6, 0x05, 0x17, 0xdb, 0xbc,
- 0xb7, 0x8a, 0x26, 0x94, 0x04, 0x1c, 0x83, 0x6d, 0x0b, 0x47, 0x1f, 0xab,
- 0xfb, 0xad, 0xf0, 0xc9, 0xd1, 0x68, 0xb9, 0x52, 0xb7, 0xf6, 0xb1, 0xdd,
- 0x0e, 0x05, 0x37, 0x5b, 0xdb, 0x72, 0x60, 0xf0, 0xd6, 0x2a, 0x3f, 0xce,
- 0x2f, 0x3f, 0x4e, 0xa4, 0x26, 0xa7, 0xcc, 0xe9, 0xd2, 0x08, 0x2c, 0xcb,
- 0x9c, 0x6e, 0x58, 0x23, 0x91, 0x19, 0xf2, 0x4b, 0xbe, 0x9e, 0x4c, 0x46,
- 0x2f, 0x4e, 0x5f, 0x25, 0xf7, 0xa8, 0x9f, 0x84, 0xe8, 0xe9, 0xc6, 0x18,
- 0xb3, 0x20, 0xf4, 0x87, 0xfd, 0xb7, 0x7b, 0x37, 0xf2, 0x7e, 0x77, 0x59,
- 0x5f, 0xd4, 0x49, 0x2b, 0xbb, 0x4d, 0x07, 0x65, 0x8b, 0x38, 0x42, 0xe9,
- 0xd0, 0xca, 0x39, 0x94, 0x61, 0x0a, 0x03, 0x17, 0xd8, 0x1e, 0x3d, 0x10,
- 0xb8, 0xd8, 0x09, 0x1b, 0x15, 0xb8, 0xa6, 0xbb, 0xcf, 0x9e, 0xec, 0x9a,
- 0x53, 0x71, 0xc7, 0x9e, 0x7a, 0x79, 0xf9, 0xd1, 0x78, 0x7f, 0xfb, 0xd1,
- 0xf8, 0x11, 0x78, 0xa2, 0xc4, 0xe7, 0x51, 0xde, 0x94, 0x34, 0x1f, 0xf7,
- 0x7b, 0xb3, 0x98, 0xf2, 0xe6, 0xe8, 0x30, 0xe1, 0x8c, 0x29, 0x82, 0x72,
- 0xef, 0x28, 0x9f, 0x9c, 0x51, 0x41, 0x21, 0xd3, 0xb2, 0x85, 0x4c, 0xac,
- 0x81, 0xd9, 0x26, 0x58, 0x0e, 0xd5, 0xa8, 0x08, 0xfc, 0xae, 0xb0, 0x03,
- 0x01, 0xbb, 0x63, 0xe5, 0x4a, 0xd6, 0x05, 0x63, 0x0c, 0x81, 0x0f, 0xbc,
- 0x25, 0xf1, 0x16, 0xec, 0x9e, 0xac, 0xc6, 0x47, 0xfd, 0xfb, 0xa3, 0x5a,
- 0x5c, 0x8f, 0x1e, 0xe8, 0xbc, 0x1d, 0x81, 0xba, 0x27, 0x0c, 0xd1, 0xea,
- 0xe6, 0x75, 0x52, 0x4d, 0x17, 0x56, 0x33, 0xbb, 0xf8, 0xc7, 0xac, 0x18,
- 0x7f, 0xac, 0x5a, 0x19, 0x91, 0xf4, 0x3d, 0xed, 0x51, 0x87, 0x2e, 0x8c,
- 0x4c, 0x94, 0xc6, 0xbe, 0x09, 0x89, 0xa6, 0xd8, 0xb5, 0x19, 0x32, 0x09,
- 0xe0, 0x30, 0xb3, 0x22, 0xe9, 0x35, 0x65, 0xdb, 0x8f, 0x7c, 0xa6, 0xad,
- 0x47, 0xec, 0x12, 0xe8, 0x8c, 0xdb, 0xaa, 0xb2, 0x74, 0x2e, 0xa3, 0xf2,
- 0xfa, 0x09, 0xbf, 0xc4, 0xea, 0x71, 0x44, 0x5a, 0x98, 0x06, 0x24, 0x8e,
- 0x18, 0x6f, 0x08, 0xd6, 0xc3, 0xeb, 0x6a, 0x83, 0x2e, 0x2b, 0x73, 0x9d,
- 0xe4, 0x4b, 0xc3, 0x0a, 0x1f, 0x90, 0xd2, 0xda, 0xbf, 0xf9, 0x51, 0x7e,
- 0x27, 0xe6, 0x5e, 0x2d, 0x4f, 0xab, 0xa7, 0x73, 0x0d, 0xa3, 0x93, 0x50,
- 0xf7, 0xee, 0xad, 0x1a, 0xe1, 0x72, 0x3d, 0x8d, 0x01, 0x49, 0xcc, 0x71,
- 0x33, 0xa5, 0xb8, 0x6e, 0xc0, 0xb6, 0x51, 0xa8, 0x2d, 0xa8, 0x3d, 0x6c,
- 0x94, 0xce, 0xfd, 0xa8, 0xcd, 0x0a, 0xd4, 0xca, 0x56, 0x97, 0x11, 0xc6,
- 0x98, 0x7b, 0x53, 0x0a, 0x53, 0xbc, 0x97, 0xf3, 0xfe, 0x16, 0xcc, 0x10,
- 0x02, 0x14, 0x9b, 0x5b, 0x3e, 0x5e, 0x1a, 0x94, 0x25, 0x4c, 0x36, 0x29,
- 0xf2, 0x58, 0xa0, 0x69, 0xb4, 0xd6, 0x83, 0x1f, 0x9a, 0x18, 0x8b, 0xe1,
- 0x25, 0x02, 0xc1, 0x82, 0xdc, 0xa3, 0x1e, 0x46, 0xea, 0x5d, 0x04, 0x7c,
- 0x76, 0x6d, 0xf5, 0x8b, 0xff, 0x53, 0xc4, 0xc0, 0xc7, 0x89, 0xdd, 0xab,
- 0x87, 0x88, 0x83, 0x5c, 0x1d, 0x8b, 0xc4, 0xc1, 0xc0, 0x02, 0xeb, 0xe9,
- 0x6c, 0xff, 0x57, 0x1a, 0xfc, 0xdf, 0x49, 0x1a, 0xfc, 0x67, 0x4e, 0xe9,
- 0x48, 0xf2, 0xe8, 0x3a, 0xca, 0x93, 0xa4, 0x3f, 0x47, 0xf3, 0x5c, 0xe7,
- 0x77, 0xe3, 0xa4, 0xa7, 0x44, 0xcd, 0x3d, 0x47, 0x34, 0x24, 0x85, 0xff,
- 0x7f, 0x1c, 0xd1, 0x07, 0x9d, 0xcc, 0xff, 0x1a, 0xe3, 0x09, 0x1f, 0xc4,
- 0x8f, 0x3a, 0x89, 0xaa, 0xeb, 0xff, 0x1f, 0x7f, 0x0e, 0xd7, 0x58, 0xf3,
- 0x36, 0x11, 0xba, 0x89, 0xd8, 0x5a, 0x2e, 0x58, 0x4d, 0x9a, 0xf6, 0x96,
- 0x13, 0x7d, 0x80, 0x02, 0xc1, 0x4b, 0xf7, 0xea, 0xf4, 0xbb, 0x27, 0x84,
- 0x4a, 0x39, 0x09, 0x71, 0xff, 0x8e, 0x5f, 0xbe, 0x38, 0xfd, 0x88, 0xd3,
- 0xfe, 0x37, 0xb2, 0xd1, 0x2e, 0xb3, 0x6c, 0x36, 0x62, 0x4f, 0xea, 0x73,
- 0xfa, 0x23, 0x1a, 0xa4, 0xa0, 0xa0, 0x6e, 0x44, 0xb6, 0x70, 0xb0, 0x86,
- 0xb1, 0x1f, 0xf4, 0xb2, 0x11, 0x53, 0x0a, 0xc1, 0x80, 0x44, 0xe8, 0x7c,
- 0x1d, 0x1a, 0x69, 0xca, 0x62, 0xb6, 0x25, 0x22, 0x20, 0xf7, 0x4d, 0xa4,
- 0x22, 0x31, 0x3b, 0x38, 0xde, 0x97, 0x00, 0x3d, 0xb6, 0x45, 0x1f, 0xbc,
- 0x67, 0x38, 0xf9, 0x23, 0x1a, 0x40, 0x76, 0xe7, 0xa6, 0xc2, 0x4e, 0x60,
- 0x86, 0xc8, 0xde, 0xdf, 0x81, 0x1b, 0x82, 0x38, 0x48, 0xd6, 0xfc, 0x8e,
- 0x20, 0x6f, 0xdd, 0xee, 0xfb, 0x42, 0x90, 0xd6, 0x2e, 0xa5, 0xbf, 0x13,
- 0xad, 0x15, 0x44, 0xcc, 0x00, 0x7b, 0x50, 0xbb, 0x3c, 0xc8, 0x5f, 0x1d,
- 0x8e, 0xba, 0xe1, 0xf1, 0xda, 0x2e, 0xda, 0x6b, 0xf9, 0xea, 0xa2, 0xbd,
- 0x9c, 0x91, 0x84, 0xb1, 0x61, 0x2b, 0xc2, 0xcb, 0x1f, 0x92, 0x4e, 0x3d,
- 0xd9, 0x4d, 0xd4, 0x67, 0xc1, 0x50, 0x66, 0x82, 0xa0, 0xf6, 0xb7, 0x30,
- 0x94, 0xd1, 0x7b, 0xfd, 0x1e, 0x5b, 0x36, 0xc0, 0x6a, 0x2b, 0x2a, 0x13,
- 0xe9, 0xc7, 0x6f, 0xd3, 0x61, 0x5e, 0xd5, 0x2e, 0xf8, 0x36, 0xa5, 0xc4,
- 0x54, 0x5a, 0xb5, 0x40, 0xd8, 0x10, 0xa6, 0x90, 0x35, 0xd3, 0xb1, 0xdd,
- 0x59, 0x42, 0x49, 0x9f, 0x22, 0x2d, 0xa5, 0xe2, 0x68, 0x0b, 0xc3, 0x5f,
- 0x87, 0x94, 0xe3, 0xa2, 0x05, 0xb6, 0x7b, 0x6c, 0x15, 0x1a, 0x3d, 0xf4,
- 0xfb, 0x97, 0xd8, 0xa6, 0xda, 0xf4, 0xd0, 0x05, 0x47, 0xe7, 0x59, 0x1a,
- 0xe4, 0x83, 0x85, 0xc8, 0x65, 0x6a, 0x8e, 0xb1, 0x5c, 0x21, 0xad, 0x38,
- 0xd6, 0x17, 0x94, 0x62, 0x88, 0xa4, 0xb9, 0x43, 0x24, 0xfc, 0x8d, 0xe0,
- 0x2f, 0x74, 0xf9, 0xfd, 0xe4, 0x78, 0x9f, 0x96, 0xf5, 0xec, 0x78, 0xe2,
- 0x97, 0x40, 0xab, 0x29, 0x3a, 0x81, 0x60, 0x37, 0xbe, 0x3c, 0x7a, 0x31,
- 0x39, 0x1b, 0x07, 0x53, 0x64, 0x8f, 0x78, 0x94, 0x60, 0x98, 0x09, 0x4f,
- 0x8e, 0xcd, 0x5c, 0xef, 0x80, 0xd1, 0x2f, 0x70, 0x1e, 0x18, 0x1c, 0x8f,
- 0x4d, 0x5b, 0x87, 0x9e, 0x9b, 0x72, 0x36, 0x69, 0x93, 0x55, 0x61, 0x18,
- 0x97, 0x59, 0x3b, 0x09, 0xfc, 0xb7, 0x29, 0x07, 0x44, 0x5b, 0x14, 0x3c,
- 0x5c, 0xce, 0x11, 0x5a, 0x81, 0x6e, 0xda, 0x76, 0x08, 0xe4, 0xc0, 0x09,
- 0x62, 0x56, 0x3f, 0xfe, 0x8d, 0x91, 0x3b, 0x4a, 0xa4, 0x55, 0xd9, 0xa1,
- 0xea, 0x5a, 0xb1, 0xf3, 0xdd, 0xab, 0xba, 0x0e, 0x58, 0x4d, 0x60, 0x07,
- 0x86, 0x19, 0x86, 0x69, 0xfd, 0x41, 0x1d, 0xdc, 0xd3, 0x86, 0x90, 0x8a,
- 0xd2, 0xb5, 0x05, 0xb4, 0xf7, 0xba, 0x9a, 0x10, 0xc7, 0x54, 0x94, 0xa3,
- 0xe9, 0x1c, 0x91, 0x4f, 0x23, 0x94, 0xad, 0x8c, 0x28, 0xa0, 0x7e, 0xa1,
- 0xa9, 0x36, 0x82, 0x16, 0x65, 0x72, 0x33, 0x6b, 0xe3, 0x5c, 0xd2, 0x84,
- 0x5b, 0x4a, 0xa8, 0x02, 0xa6, 0x11, 0x8f, 0x42, 0xd1, 0xaa, 0x11, 0x65,
- 0xbb, 0xad, 0xd1, 0x0d, 0x59, 0x7b, 0x95, 0xe8, 0x3b, 0x07, 0xcf, 0xad,
- 0x48, 0x11, 0x67, 0x6b, 0xa2, 0xec, 0xf2, 0x36, 0xaa, 0xa7, 0xc4, 0xd9,
- 0x4c, 0x60, 0xbf, 0x40, 0x05, 0xb7, 0x4d, 0xc6, 0x87, 0xa1, 0x54, 0x52,
- 0x57, 0x93, 0xfb, 0x18, 0x11, 0x88, 0xdd, 0xe6, 0xce, 0x51, 0x94, 0xca,
- 0x68, 0x66, 0x5c, 0xeb, 0xd5, 0xcc, 0xf6, 0xe9, 0xf8, 0xe9, 0x53, 0x43,
- 0x93, 0x8c, 0xc5, 0x92, 0xb6, 0xc1, 0xbb, 0x28, 0xfd, 0x1f, 0xcf, 0xe5,
- 0x85, 0x2e, 0x50, 0xec, 0x1e, 0xd0, 0x71, 0x8c, 0x45, 0xb2, 0xf1, 0xe1,
- 0x78, 0xd2, 0xc2, 0x2b, 0x74, 0x77, 0xa7, 0x6b, 0x46, 0x6b, 0x84, 0xad,
- 0x0c, 0x64, 0x0f, 0x9a, 0x5f, 0xed, 0x16, 0xb9, 0xa3, 0x15, 0x2b, 0xc0,
- 0xc9, 0xc9, 0xa4, 0xd5, 0x54, 0xdd, 0x10, 0x36, 0x53, 0x13, 0xb0, 0x27,
- 0xc9, 0x8c, 0x4d, 0xb9, 0xb2, 0xd9, 0xf4, 0x2e, 0x31, 0xd3, 0x99, 0x8b,
- 0xb1, 0x0f, 0x3b, 0x6a, 0x91, 0xe2, 0xd6, 0x39, 0xcb, 0xd9, 0x2a, 0x12,
- 0xa3, 0xa4, 0x71, 0x2b, 0x44, 0xfc, 0x69, 0x48, 0x7a, 0x84, 0x02, 0x06,
- 0x20, 0x88, 0x20, 0x0f, 0x5c, 0xd6, 0x6c, 0x6b, 0x0d, 0xb3, 0xd1, 0x28,
- 0x2e, 0x7f, 0xa6, 0x68, 0x2d, 0x5e, 0xaa, 0x3d, 0x99, 0x5e, 0x65, 0x46,
- 0x7e, 0x19, 0x7b, 0x58, 0x76, 0x0f, 0x3e, 0x8b, 0x5d, 0x22, 0x89, 0x9e,
- 0xcc, 0x8f, 0x3e, 0x8b, 0x8f, 0x1e, 0x85, 0x0b, 0x62, 0x88, 0x61, 0x16,
- 0x2b, 0xa0, 0x46, 0xe9, 0xf6, 0x94, 0xe9, 0xcf, 0x19, 0xf2, 0x6f, 0xb9,
- 0x1e, 0x1c, 0x86, 0xba, 0x8d, 0x8a, 0xc8, 0x9a, 0x85, 0xe7, 0x70, 0xcd,
- 0x61, 0xdc, 0x81, 0x53, 0x3f, 0x10, 0x38, 0x6d, 0x55, 0x09, 0xf7, 0xac,
- 0x86, 0xee, 0x76, 0x01, 0x10, 0x25, 0xc5, 0x4f, 0x3a, 0x59, 0xab, 0xbc,
- 0xe0, 0x6c, 0x50, 0x5d, 0x5d, 0xa0, 0xe9, 0x58, 0xbe, 0x3d, 0x1a, 0x5d,
- 0x34, 0x4b, 0x3b, 0xb1, 0xb5, 0x8c, 0x69, 0x27, 0xb6, 0x18, 0x20, 0x0d,
- 0x73, 0x05, 0xd5, 0x0d, 0xd0, 0x1f, 0xca, 0x80, 0x35, 0x79, 0x64, 0xb2,
- 0x86, 0x4e, 0xa4, 0x48, 0xf3, 0x47, 0x91, 0x89, 0xc4, 0xc4, 0x21, 0x1f,
- 0x4b, 0x42, 0xea, 0x67, 0x2b, 0x8a, 0xee, 0x5b, 0xe4, 0xe4, 0x33, 0xdf,
- 0x2e, 0x2f, 0x2e, 0x08, 0x8f, 0xc4, 0x10, 0x61, 0x53, 0xe5, 0x46, 0xbb,
- 0x0c, 0xad, 0xcc, 0x54, 0x4a, 0xc4, 0x25, 0x74, 0x73, 0x9f, 0xae, 0x0f,
- 0x46, 0x7c, 0x58, 0x9b, 0x54, 0x11, 0xae, 0x49, 0x0f, 0x39, 0x9c, 0x51,
- 0x82, 0x2c, 0x71, 0xe0, 0xb5, 0x14, 0x11, 0x06, 0x8c, 0xa3, 0x8c, 0x31,
- 0xa7, 0x59, 0x12, 0x76, 0x35, 0x91, 0xfd, 0x1a, 0xd2, 0x70, 0x88, 0x45,
- 0x42, 0x1c, 0xe1, 0x5d, 0x4e, 0xa4, 0xd2, 0xe6, 0x10, 0x4a, 0x04, 0x22,
- 0x50, 0x49, 0xec, 0x85, 0x92, 0x05, 0x23, 0xeb, 0x50, 0x4a, 0x7b, 0x70,
- 0xf9, 0x1a, 0x1e, 0x37, 0x37, 0xf2, 0xcb, 0x9c, 0x60, 0xbe, 0xb2, 0x62,
- 0x5a, 0xdd, 0x2d, 0xfd, 0x7a, 0x88, 0xb3, 0x7f, 0x86, 0x26, 0x15, 0x18,
- 0x82, 0xe2, 0x53, 0x8c, 0x1e, 0x62, 0x64, 0x8f, 0xad, 0x50, 0x1d, 0x42,
- 0x2c, 0x9a, 0xb4, 0xc7, 0xe5, 0x32, 0x20, 0x14, 0x37, 0x7e, 0xb6, 0x38,
- 0x4c, 0x0b, 0x0e, 0x17, 0x1d, 0x29, 0x73, 0x02, 0xb8, 0x77, 0x11, 0xfa,
- 0x73, 0xb0, 0xb8, 0x36, 0x17, 0xfc, 0xc1, 0xa7, 0x61, 0x6f, 0xc8, 0xcb,
- 0x75, 0xbd, 0x17, 0x1c, 0x80, 0xc9, 0x71, 0x9b, 0x45, 0xaa, 0xd9, 0x60,
- 0x8e, 0x6a, 0xc4, 0x1f, 0x34, 0x8b, 0xda, 0xd1, 0xc6, 0xf5, 0xde, 0x50,
- 0x22, 0x69, 0x22, 0x60, 0xd7, 0x9c, 0xf8, 0x67, 0xab, 0xbc, 0xbb, 0x9b,
- 0x0f, 0x48, 0x1b, 0xd5, 0x6a, 0xaa, 0x97, 0x2d, 0x9f, 0x28, 0x24, 0x6d,
- 0xa0, 0xc1, 0x84, 0x60, 0xca, 0x66, 0x59, 0x90, 0xc1, 0xe5, 0x8a, 0x3a,
- 0xa0, 0x01, 0xa6, 0x2c, 0x4a, 0x41, 0x80, 0x5f, 0xe8, 0xc9, 0xee, 0xd3,
- 0x27, 0x5b, 0xeb, 0xae, 0x15, 0x14, 0x3e, 0x06, 0x0a, 0x13, 0x13, 0x0b,
- 0xfe, 0xda, 0x1b, 0xfb, 0x4b, 0x91, 0xb8, 0xb2, 0xb0, 0x2e, 0x64, 0xb0,
- 0x2b, 0x0b, 0x16, 0x33, 0x6c, 0x3e, 0xcd, 0x4b, 0x45, 0x18, 0x22, 0x8b,
- 0xf3, 0x55, 0x3e, 0xa7, 0x00, 0x58, 0xe5, 0x71, 0x44, 0xb4, 0x5d, 0x6b,
- 0x4c, 0x50, 0xbc, 0x8f, 0xac, 0x33, 0xa3, 0x7d, 0x1d, 0x03, 0x8b, 0xad,
- 0xa3, 0x5d, 0xfc, 0xdd, 0xcc, 0xeb, 0x6b, 0x1d, 0x2c, 0xfd, 0x3e, 0x6e,
- 0xff, 0xe5, 0x87, 0x21, 0xb8, 0x06, 0xfe, 0xf9, 0xfd, 0xdc, 0xff, 0xad,
- 0xf7, 0x73, 0xff, 0xd7, 0xed, 0xe7, 0xd3, 0xc7, 0x4f, 0x3e, 0xfd, 0x15,
- 0xfb, 0xe9, 0xad, 0xe5, 0x7f, 0xd9, 0x7e, 0x7a, 0x34, 0xf5, 0xeb, 0xf6,
- 0x53, 0x63, 0xca, 0xa2, 0x05, 0x51, 0xde, 0x6a, 0x8e, 0x28, 0x82, 0xea,
- 0x91, 0x08, 0xcb, 0xf9, 0xeb, 0xf2, 0x4a, 0x00, 0xa2, 0xc1, 0x78, 0xa2,
- 0x8c, 0x6c, 0x43, 0x1a, 0x4f, 0xc4, 0x9c, 0xe5, 0xb0, 0x23, 0x49, 0x97,
- 0x5c, 0xce, 0x51, 0x69, 0x7e, 0x63, 0xb4, 0xa1, 0x86, 0x48, 0x05, 0xc6,
- 0xf1, 0xd2, 0x6e, 0x39, 0xae, 0xef, 0x0f, 0x84, 0xcd, 0xf6, 0xc3, 0xee,
- 0x78, 0xe1, 0xbc, 0xc0, 0xc9, 0xf6, 0xda, 0xdd, 0x99, 0xfb, 0x75, 0x14,
- 0x4d, 0xb2, 0xe5, 0x70, 0xdb, 0xda, 0x06, 0x2b, 0xb3, 0xe2, 0xa1, 0x26,
- 0xd1, 0x73, 0xa3, 0x7e, 0x19, 0x06, 0x5f, 0x80, 0xfa, 0xef, 0xe6, 0x99,
- 0x5c, 0xda, 0x98, 0x34, 0x08, 0x04, 0x46, 0xb3, 0xae, 0xf3, 0x45, 0x2a,
- 0x2b, 0x77, 0x82, 0x1e, 0xc7, 0xe2, 0x98, 0x32, 0xd2, 0x68, 0x6b, 0x30,
- 0xe4, 0x6e, 0xab, 0x8d, 0x0c, 0x3f, 0xe5, 0x98, 0xfb, 0x45, 0x04, 0xcd,
- 0x75, 0x5d, 0x44, 0x71, 0x37, 0xc2, 0xb7, 0xa7, 0x92, 0x73, 0x34, 0xbd,
- 0x03, 0x55, 0xbd, 0xdb, 0x65, 0xbd, 0x39, 0x7a, 0x88, 0x21, 0xd3, 0x49,
- 0xb5, 0xee, 0x56, 0xca, 0x96, 0x32, 0xdb, 0x01, 0xc4, 0x14, 0xae, 0x6b,
- 0x99, 0x50, 0xbb, 0x44, 0xb5, 0x97, 0x44, 0xaa, 0x45, 0xa5, 0xef, 0xcd,
- 0xe8, 0x43, 0x4a, 0x4c, 0x93, 0x08, 0xb6, 0x8f, 0x1f, 0x98, 0xfb, 0x12,
- 0xbb, 0x3b, 0x5b, 0x2d, 0x96, 0x8a, 0x76, 0x8f, 0xdc, 0xcb, 0x9c, 0x30,
- 0x52, 0x24, 0x07, 0xb6, 0x2f, 0x29, 0xdb, 0xda, 0x73, 0x25, 0x44, 0x96,
- 0x6d, 0xc3, 0xba, 0x57, 0xa2, 0xd1, 0x68, 0x16, 0xfb, 0x2b, 0xc6, 0xef,
- 0x20, 0x00, 0xed, 0xec, 0x22, 0x08, 0xf2, 0xc1, 0x39, 0xa3, 0x08, 0xc6,
- 0x59, 0x76, 0xbe, 0xba, 0x54, 0xb4, 0x38, 0x9b, 0x58, 0xdb, 0xa6, 0x4a,
- 0xca, 0x0e, 0x05, 0x8c, 0x6c, 0xc6, 0x71, 0xe4, 0xc5, 0x5d, 0x88, 0x9e,
- 0xd9, 0x18, 0x21, 0x2d, 0x9f, 0xae, 0x8b, 0x2f, 0xed, 0x4e, 0x7c, 0xd8,
- 0x99, 0x36, 0xd1, 0x7e, 0xb7, 0x46, 0xbb, 0x4f, 0x17, 0xcd, 0x74, 0x39,
- 0xba, 0x48, 0x51, 0x68, 0x22, 0x48, 0x5a, 0x96, 0x70, 0x73, 0xa1, 0xf7,
- 0xb3, 0xc3, 0xd3, 0xe4, 0xab, 0x54, 0x2a, 0x31, 0x27, 0x9b, 0x86, 0xeb,
- 0x3e, 0x7d, 0xb4, 0xbb, 0xbf, 0xb5, 0x56, 0xc7, 0x68, 0x83, 0x27, 0x53,
- 0x5f, 0x45, 0x19, 0xcb, 0x8c, 0x39, 0x5b, 0x55, 0x85, 0x82, 0xb2, 0x9a,
- 0x8e, 0xde, 0xbf, 0x39, 0x79, 0x79, 0x74, 0xfc, 0xe2, 0x6f, 0x16, 0xfb,
- 0x6f, 0xe2, 0x17, 0x53, 0xcb, 0xd2, 0xfa, 0xee, 0x7d, 0x9d, 0x99, 0x21,
- 0x37, 0x28, 0xa8, 0x16, 0xa9, 0xa8, 0xe6, 0x4a, 0xa9, 0x29, 0x64, 0x22,
- 0xa7, 0x29, 0xad, 0x81, 0xff, 0x65, 0xed, 0x18, 0x86, 0xff, 0x9d, 0xb1,
- 0x61, 0xc9, 0x12, 0xd4, 0xcd, 0xc5, 0xe6, 0x1c, 0x8b, 0xf2, 0x10, 0x2f,
- 0x52, 0x81, 0x09, 0x17, 0x04, 0xbc, 0x00, 0xdc, 0x00, 0xb9, 0xf4, 0x39,
- 0x34, 0x31, 0x39, 0xc3, 0x48, 0x7f, 0xba, 0xb8, 0x68, 0x17, 0x19, 0xa0,
- 0xf4, 0x6a, 0xca, 0x8b, 0x5a, 0x6b, 0xa3, 0x6e, 0xf3, 0xfb, 0x86, 0x2e,
- 0x88, 0x6c, 0x5e, 0x64, 0xcd, 0x48, 0x86, 0xf5, 0xdc, 0xfc, 0xfb, 0xd9,
- 0x75, 0x3a, 0x0f, 0xc0, 0xbd, 0xd2, 0xba, 0xb6, 0x64, 0x68, 0xf9, 0x0e,
- 0xde, 0xf4, 0x4a, 0xd0, 0x4e, 0xac, 0xdd, 0x42, 0x9f, 0x34, 0xe7, 0x22,
- 0x28, 0xb9, 0x7a, 0x76, 0xf6, 0xb7, 0xd3, 0xa3, 0xcf, 0x9e, 0x83, 0x6b,
- 0x7d, 0x8e, 0x34, 0xb8, 0xba, 0xc5, 0xc4, 0x28, 0x08, 0x38, 0x98, 0xc3,
- 0x0f, 0x2f, 0x5f, 0x4d, 0x4e, 0x8f, 0x4f, 0x0e, 0x3f, 0x7b, 0xfe, 0x03,
- 0x54, 0x15, 0x73, 0x53, 0xdc, 0x79, 0xef, 0xda, 0xcf, 0x6c, 0x01, 0xc4,
- 0x10, 0x17, 0xf2, 0xe8, 0xfb, 0xf7, 0x47, 0x6f, 0xbe, 0xfb, 0xec, 0xf9,
- 0x75, 0x5a, 0x0d, 0x31, 0x3f, 0x7e, 0x1b, 0x61, 0xf6, 0xc5, 0x75, 0x5e,
- 0x95, 0x05, 0x6c, 0x5e, 0x89, 0xf9, 0x32, 0x07, 0xa5, 0xb6, 0x48, 0x0d,
- 0x62, 0xf6, 0xf9, 0xfc, 0x43, 0x9d, 0xff, 0x92, 0x25, 0xe6, 0xf5, 0xf9,
- 0x2a, 0xac, 0x96, 0x75, 0xc6, 0x70, 0x7a, 0x66, 0x31, 0xf0, 0x5b, 0xf2,
- 0xe5, 0xf1, 0xb7, 0x28, 0x7c, 0x62, 0xdd, 0x0f, 0x0b, 0x2e, 0x44, 0x9d,
- 0x7c, 0xfe, 0x78, 0x77, 0x6f, 0x4b, 0xae, 0x73, 0x41, 0x4e, 0x39, 0x37,
- 0x23, 0xfe, 0x10, 0x24, 0x70, 0xfe, 0x22, 0xa9, 0xa8, 0x5d, 0xe8, 0x20,
- 0x87, 0x52, 0xaa, 0x96, 0x5c, 0x4a, 0xfd, 0xa1, 0x68, 0x79, 0xf3, 0xad,
- 0x21, 0x53, 0xe4, 0xc4, 0x04, 0x86, 0xec, 0xb3, 0xaf, 0x3c, 0xa8, 0x52,
- 0x0f, 0x7c, 0xc1, 0x0c, 0x47, 0x8c, 0xe1, 0x6b, 0x2f, 0xc3, 0xdf, 0xd1,
- 0x45, 0xda, 0x55, 0x97, 0x69, 0xb1, 0xcd, 0xfd, 0x25, 0xf4, 0x13, 0x5f,
- 0x67, 0x2f, 0x74, 0x8e, 0x92, 0x51, 0x4b, 0x46, 0xda, 0xa7, 0x59, 0x2a,
- 0xe1, 0x29, 0x38, 0xdc, 0x5a, 0xc5, 0x2a, 0x5f, 0x00, 0xa1, 0x08, 0xf9,
- 0x80, 0x6c, 0x33, 0xf5, 0x2c, 0xa2, 0xf3, 0xec, 0x12, 0x76, 0x24, 0x5b,
- 0x2d, 0xc8, 0x02, 0xdd, 0x76, 0xcd, 0x10, 0x25, 0xac, 0x57, 0x53, 0x68,
- 0x65, 0x04, 0x81, 0xc3, 0xc9, 0x10, 0x0c, 0x8a, 0x69, 0x4e, 0xac, 0x35,
- 0xa7, 0xb6, 0x46, 0x27, 0x68, 0x0f, 0xfd, 0x70, 0x38, 0xba, 0xc4, 0x1d,
- 0xea, 0xf3, 0x44, 0xdc, 0x75, 0xbc, 0xb2, 0xed, 0x88, 0xfa, 0x85, 0x0e,
- 0x39, 0x30, 0x95, 0xc9, 0xd7, 0xf1, 0x1c, 0xbf, 0xf6, 0x96, 0x7b, 0x63,
- 0x8b, 0x0c, 0x99, 0xf1, 0x58, 0x3a, 0xa3, 0x69, 0xdb, 0xc4, 0x25, 0x29,
- 0x4a, 0x8b, 0xa2, 0x61, 0x8d, 0x7a, 0x56, 0xfa, 0x11, 0xcb, 0xb9, 0x60,
- 0x32, 0x25, 0x60, 0x99, 0xc7, 0xe9, 0x6e, 0x02, 0x6d, 0xf4, 0x34, 0x69,
- 0x13, 0xc5, 0x43, 0xcf, 0x27, 0xe5, 0x28, 0xf7, 0x96, 0xd4, 0x5c, 0x5b,
- 0x3d, 0x33, 0x82, 0x5f, 0xcc, 0xb9, 0x33, 0x6a, 0x00, 0xe0, 0xb8, 0x27,
- 0x18, 0x2d, 0x6d, 0x91, 0x20, 0x33, 0xc8, 0x5a, 0x45, 0x50, 0xe4, 0x63,
- 0x93, 0xba, 0xed, 0xca, 0x88, 0x44, 0x50, 0xe5, 0x38, 0xab, 0x54, 0x0a,
- 0x41, 0x35, 0x5c, 0x6c, 0xd7, 0x21, 0xee, 0xd2, 0x78, 0x36, 0xa9, 0xf8,
- 0xa8, 0x14, 0xc1, 0x13, 0x09, 0x3b, 0x89, 0x80, 0x99, 0x88, 0xc0, 0x3c,
- 0xe9, 0xaf, 0xf9, 0x49, 0x77, 0x52, 0xdd, 0x53, 0xdf, 0x33, 0xd0, 0xd4,
- 0xe3, 0x29, 0x42, 0xd0, 0xb2, 0x34, 0xd1, 0xa6, 0xd5, 0x82, 0x20, 0x2e,
- 0xcc, 0x00, 0xfd, 0xbc, 0x39, 0x72, 0x35, 0xd3, 0x29, 0xf5, 0x95, 0x29,
- 0x23, 0x82, 0x9c, 0x9a, 0xd8, 0x3a, 0x56, 0x16, 0x87, 0x9b, 0x5d, 0x0a,
- 0xe2, 0xc6, 0xcc, 0x84, 0x24, 0xd0, 0xdb, 0x36, 0xa7, 0xa1, 0x2b, 0x0f,
- 0x82, 0xe4, 0x1f, 0x88, 0x7a, 0x9d, 0xb6, 0x8a, 0xec, 0xc6, 0x6f, 0xcb,
- 0x29, 0x19, 0xb6, 0xbd, 0xdf, 0xd3, 0x89, 0x64, 0xf4, 0x24, 0x24, 0xc6,
- 0x26, 0xcf, 0xbf, 0x3b, 0x7a, 0x3b, 0x79, 0x75, 0xf2, 0xe6, 0xf3, 0xa8,
- 0xb2, 0x2b, 0x5f, 0x62, 0x5e, 0x79, 0x91, 0xb9, 0xa4, 0x7b, 0x67, 0xcb,
- 0x87, 0x35, 0x4b, 0x6d, 0x26, 0x5c, 0x28, 0x37, 0x2f, 0xf0, 0x48, 0x50,
- 0xf6, 0x7c, 0x9a, 0x2d, 0x1b, 0xce, 0xeb, 0x95, 0xc7, 0x59, 0x64, 0x26,
- 0x7f, 0x20, 0xd5, 0x1b, 0x25, 0xc5, 0x6d, 0x67, 0xa8, 0xbf, 0xed, 0xda,
- 0xdf, 0xf6, 0x42, 0x6a, 0xe7, 0x2f, 0xf6, 0xfb, 0x52, 0x32, 0x7d, 0x0b,
- 0x59, 0xcd, 0x30, 0x0b, 0x8a, 0x04, 0x6e, 0xc6, 0xdb, 0x0e, 0xaa, 0xb8,
- 0x4f, 0x62, 0xd5, 0x9b, 0x8d, 0x05, 0xc6, 0x3a, 0xf9, 0xf7, 0x77, 0xaf,
- 0x0e, 0x47, 0x6c, 0x61, 0x26, 0x06, 0xb3, 0x6d, 0xe8, 0xd7, 0x7a, 0x20,
- 0x83, 0x01, 0xc5, 0x03, 0xf3, 0xbc, 0xb8, 0x98, 0xd5, 0x92, 0x33, 0x09,
- 0x80, 0x93, 0xc9, 0x10, 0x60, 0xfe, 0x8a, 0x06, 0xf5, 0x0a, 0xc7, 0x3b,
- 0xed, 0x17, 0xcd, 0xc3, 0xd7, 0xbb, 0x5e, 0xc2, 0x9e, 0x7d, 0x6e, 0x37,
- 0xf6, 0xdc, 0x6e, 0xf8, 0xdc, 0x5e, 0xec, 0xb9, 0xbd, 0xf0, 0xb9, 0xfd,
- 0xd8, 0x73, 0xde, 0x06, 0xd8, 0x24, 0xec, 0xc4, 0x2a, 0xe1, 0x3b, 0x43,
- 0xa7, 0x9d, 0xbb, 0x5f, 0xf7, 0x5a, 0x8a, 0xfa, 0xfe, 0xd8, 0xa3, 0x45,
- 0x2f, 0x2f, 0x40, 0x6c, 0x0d, 0x52, 0x2b, 0x31, 0xf3, 0x6d, 0x0b, 0x6a,
- 0x5a, 0xe8, 0xb7, 0x2c, 0x24, 0xd6, 0x74, 0xa8, 0xcd, 0x19, 0xb1, 0xb5,
- 0x63, 0xcf, 0x37, 0x7d, 0xee, 0xee, 0x8f, 0xa6, 0xf9, 0xf2, 0x0a, 0x17,
- 0xe1, 0x73, 0xf9, 0x65, 0x85, 0xfa, 0x24, 0x30, 0xfd, 0x86, 0xc2, 0xd0,
- 0xf1, 0x64, 0x2b, 0xf1, 0xb0, 0x6f, 0xa5, 0xea, 0x03, 0xbd, 0x96, 0xd0,
- 0x7b, 0xb5, 0x43, 0xbe, 0x0d, 0x2d, 0xf8, 0x41, 0x7e, 0x9e, 0x0d, 0x45,
- 0x36, 0xef, 0x61, 0xc7, 0x69, 0x29, 0xa8, 0x8a, 0x76, 0xce, 0x19, 0xf4,
- 0x3a, 0x34, 0x69, 0x9b, 0x0b, 0xb5, 0x68, 0x58, 0x4d, 0xd7, 0x4e, 0x4c,
- 0x65, 0x13, 0xf5, 0x15, 0xc5, 0x4b, 0x47, 0x71, 0xf7, 0x42, 0x1b, 0x6f,
- 0x0d, 0xd5, 0xca, 0xfd, 0x65, 0xf4, 0xbe, 0x7e, 0xf7, 0xf6, 0x38, 0x90,
- 0x6f, 0x13, 0xd8, 0x84, 0xea, 0x83, 0xed, 0x6d, 0xac, 0xfd, 0xb8, 0xce,
- 0xb6, 0x0d, 0x3f, 0xab, 0xb7, 0xc9, 0x6e, 0x2c, 0xbd, 0x5e, 0x35, 0x8b,
- 0xf9, 0x5a, 0xb9, 0xa4, 0xd6, 0x0a, 0x25, 0x0c, 0xe9, 0x3f, 0x63, 0xb7,
- 0xa0, 0xc3, 0xab, 0x20, 0x7e, 0xc0, 0x3b, 0xaa, 0xb1, 0xb4, 0xdd, 0xf2,
- 0x91, 0x46, 0xb5, 0x82, 0xff, 0x07, 0x94, 0xbc, 0x8b, 0x9b, 0x97, 0x6e,
- 0x6c, 0x8b, 0xc6, 0xc4, 0xfa, 0x2a, 0x07, 0x34, 0x39, 0x14, 0x56, 0xbc,
- 0x00, 0xdc, 0x80, 0x2c, 0x70, 0x15, 0x59, 0xb8, 0xd5, 0x8a, 0x4a, 0xac,
- 0x91, 0x61, 0x22, 0xb6, 0x5c, 0xb5, 0xef, 0x54, 0x82, 0x2d, 0x42, 0xa6,
- 0x1c, 0x15, 0x73, 0x7e, 0x67, 0xa6, 0x0d, 0x9f, 0x22, 0x65, 0x14, 0x3e,
- 0xc7, 0xcf, 0xcf, 0x43, 0xfc, 0x8d, 0x84, 0xa6, 0x10, 0x44, 0xe4, 0x42,
- 0xff, 0x40, 0x92, 0x2a, 0xaf, 0x3f, 0xf7, 0xd7, 0x71, 0xcb, 0xf6, 0xf8,
- 0x6f, 0x69, 0x5b, 0x06, 0x93, 0xb7, 0xa7, 0x83, 0xa1, 0x04, 0xe1, 0x98,
- 0x0e, 0x46, 0xe6, 0xef, 0x84, 0xb4, 0x5c, 0x54, 0x91, 0x7d, 0xfc, 0x48,
- 0xe2, 0x65, 0x79, 0x8c, 0x9c, 0x18, 0x1e, 0xba, 0xe6, 0xe8, 0x4b, 0x1b,
- 0x33, 0x4c, 0xdb, 0xe5, 0xe5, 0xda, 0x1b, 0xe6, 0xdc, 0x9e, 0x21, 0x47,
- 0xf2, 0x0d, 0x5d, 0x19, 0xaf, 0xb8, 0x58, 0x69, 0xab, 0x07, 0x18, 0x9a,
- 0xa1, 0x61, 0x8e, 0x3b, 0x8e, 0x86, 0xb2, 0xfa, 0x20, 0x2e, 0x68, 0x71,
- 0x97, 0x30, 0x37, 0xe9, 0x4e, 0xb6, 0x6b, 0xb9, 0xf4, 0xa8, 0x91, 0xe3,
- 0x55, 0x74, 0xda, 0xb2, 0x62, 0x8a, 0xa6, 0xae, 0x86, 0xd1, 0x1e, 0x5a,
- 0x35, 0x0b, 0xf6, 0x75, 0xb1, 0xc2, 0x9e, 0x50, 0x2b, 0x9d, 0x46, 0xee,
- 0x41, 0xc4, 0x7c, 0xd4, 0xd9, 0x7d, 0xbb, 0x78, 0xcf, 0x59, 0x12, 0x8c,
- 0xed, 0xbf, 0x7d, 0x06, 0x7b, 0x45, 0xaa, 0x95, 0x16, 0x77, 0xc0, 0x20,
- 0xba, 0x3e, 0x69, 0x8b, 0x34, 0xdf, 0x97, 0xf1, 0xaa, 0x78, 0x5b, 0xde,
- 0xce, 0x8c, 0xd5, 0xc3, 0x29, 0x0c, 0xda, 0x6d, 0xba, 0x57, 0x66, 0x31,
- 0xae, 0xa3, 0xa8, 0x80, 0xea, 0xa2, 0xd3, 0x94, 0xf9, 0xdd, 0xbb, 0x10,
- 0xfe, 0x3a, 0x50, 0x67, 0xd1, 0xfc, 0x0b, 0x3a, 0x01, 0x1a, 0xa0, 0x9e,
- 0x3c, 0x68, 0x0d, 0x64, 0x09, 0x7e, 0xe5, 0x0a, 0x88, 0x0e, 0xd5, 0xa5,
- 0x6d, 0xba, 0x09, 0x03, 0x92, 0xfd, 0x3d, 0xd6, 0xa5, 0xb5, 0x30, 0xb8,
- 0x76, 0xe3, 0x57, 0xd7, 0x57, 0x08, 0xdd, 0x6f, 0xe7, 0x66, 0x79, 0x92,
- 0x06, 0x49, 0x16, 0xca, 0x50, 0xef, 0xcd, 0xc9, 0x22, 0x8f, 0xa4, 0xd4,
- 0xab, 0x41, 0x23, 0x5a, 0x7c, 0x33, 0xc4, 0x91, 0x83, 0x11, 0x58, 0xba,
- 0x20, 0x2d, 0x86, 0xbb, 0x6f, 0x59, 0x31, 0x71, 0x8f, 0x5b, 0xe9, 0x98,
- 0xf0, 0xa7, 0xca, 0x84, 0x73, 0x5d, 0x3a, 0xcd, 0xbd, 0xc7, 0x19, 0x7e,
- 0x2f, 0xfc, 0x8d, 0xc4, 0x0b, 0xf0, 0x0c, 0x1b, 0xe7, 0x81, 0x76, 0x8c,
- 0x94, 0x06, 0x37, 0x48, 0x4d, 0xd5, 0x4e, 0xef, 0x01, 0xc8, 0x40, 0x33,
- 0xe6, 0xb0, 0x23, 0xa6, 0x44, 0x6d, 0xcc, 0x2a, 0x88, 0x74, 0x50, 0xc0,
- 0xa9, 0xd6, 0xa5, 0x95, 0x7d, 0x65, 0xd5, 0x42, 0xcc, 0xc1, 0x7b, 0x20,
- 0x25, 0x42, 0x01, 0x04, 0x82, 0xd1, 0xaf, 0xdc, 0xac, 0xdd, 0xff, 0xcd,
- 0x36, 0x6b, 0xf7, 0xff, 0x84, 0xcd, 0xda, 0xfb, 0x95, 0x9b, 0xb5, 0xf7,
- 0xbf, 0xd9, 0x66, 0xed, 0xfd, 0x9f, 0xb0, 0x59, 0xfb, 0xbf, 0x72, 0xb3,
- 0xf6, 0x7f, 0xfb, 0xcd, 0xfa, 0xef, 0xa6, 0x94, 0x12, 0xbe, 0x3c, 0x5d,
- 0x5b, 0x2a, 0xed, 0x6a, 0xd2, 0x84, 0x95, 0x05, 0x8d, 0xc0, 0x0b, 0xeb,
- 0x13, 0xbe, 0x17, 0xd9, 0xb9, 0xfe, 0x08, 0xac, 0x4d, 0xa7, 0xee, 0x45,
- 0xad, 0x0a, 0xb1, 0x92, 0x62, 0x08, 0x25, 0x81, 0xf8, 0xdb, 0xde, 0x8c,
- 0x5b, 0xde, 0x03, 0xd5, 0x95, 0x62, 0x9b, 0x20, 0xb6, 0x9d, 0x70, 0x1b,
- 0x24, 0x3c, 0x84, 0x61, 0xe2, 0x98, 0xb4, 0xad, 0xe5, 0x81, 0xf4, 0xe8,
- 0xc0, 0xaa, 0x70, 0x95, 0x5f, 0x02, 0x6e, 0x34, 0xe2, 0x4c, 0xb2, 0x9a,
- 0xad, 0xfa, 0xc9, 0x3b, 0x8e, 0x72, 0xcf, 0x29, 0x5d, 0x65, 0x1d, 0xdd,
- 0xb5, 0xdf, 0x4b, 0x7e, 0xbf, 0x26, 0x1b, 0xc2, 0x77, 0xf4, 0x78, 0xc9,
- 0xe3, 0x5e, 0xf0, 0x8e, 0xaa, 0xed, 0x9f, 0x91, 0x6a, 0xa4, 0x05, 0xc0,
- 0xe3, 0xe5, 0xc5, 0x9c, 0xc5, 0x14, 0x89, 0x83, 0x04, 0x6d, 0x3f, 0x63,
- 0x10, 0x3e, 0x44, 0x02, 0x1d, 0xc9, 0xbb, 0xce, 0x49, 0xc9, 0xc4, 0x17,
- 0x02, 0xd8, 0x49, 0x66, 0xae, 0xc5, 0x6b, 0x53, 0x38, 0x20, 0x09, 0x96,
- 0x1c, 0x4a, 0x28, 0xa3, 0x76, 0xc2, 0xf2, 0x39, 0x57, 0x61, 0x23, 0x78,
- 0xc9, 0x28, 0xee, 0x30, 0x61, 0x95, 0xde, 0x27, 0x3b, 0x3f, 0x69, 0xcf,
- 0x37, 0x9d, 0x66, 0xa3, 0xb4, 0x9e, 0xe6, 0x79, 0x3c, 0x10, 0x40, 0x9d,
- 0xd9, 0x29, 0xc1, 0x1d, 0x53, 0xa1, 0x65, 0x20, 0x3e, 0x2f, 0x96, 0x98,
- 0x01, 0x57, 0x5b, 0x17, 0xb8, 0x3d, 0x0c, 0xd8, 0x1c, 0xda, 0xcb, 0x52,
- 0x9d, 0x14, 0xc3, 0x88, 0xc1, 0x13, 0xe7, 0x92, 0x0b, 0x67, 0x31, 0xf2,
- 0x39, 0xa2, 0x5b, 0xbd, 0xd2, 0xe5, 0x43, 0xf5, 0x36, 0xb1, 0x05, 0xb1,
- 0x83, 0xb8, 0xfd, 0x2e, 0x50, 0x7c, 0x07, 0xa3, 0x01, 0xcc, 0xb5, 0xb6,
- 0xe6, 0x33, 0x20, 0xc9, 0x53, 0x49, 0x96, 0x92, 0x97, 0x15, 0x34, 0xae,
- 0x27, 0x96, 0x40, 0xdd, 0x33, 0x86, 0x84, 0xee, 0xb4, 0x80, 0x12, 0x95,
- 0xb5, 0x54, 0x1f, 0x2b, 0x38, 0xbe, 0x39, 0x82, 0x02, 0x29, 0xce, 0x69,
- 0x58, 0xd9, 0x2d, 0xa7, 0x9d, 0x87, 0xaa, 0x1c, 0xab, 0x8e, 0x57, 0x9a,
- 0x94, 0xfd, 0x62, 0x72, 0xf8, 0xea, 0x55, 0x2b, 0x45, 0x1d, 0x4b, 0xc7,
- 0xe5, 0x57, 0x18, 0x1f, 0xa9, 0x46, 0xd5, 0x87, 0xac, 0xea, 0xc1, 0xeb,
- 0xa6, 0xb3, 0xb2, 0x30, 0xc7, 0x8f, 0x3c, 0x4a, 0x86, 0x11, 0xe4, 0x8c,
- 0x1c, 0x49, 0x38, 0xf1, 0x24, 0xc3, 0x17, 0x66, 0x98, 0x39, 0xf0, 0x2d,
- 0xaf, 0x56, 0x8b, 0xb4, 0xf8, 0xfd, 0xc1, 0x39, 0xe3, 0xb9, 0x5f, 0xb2,
- 0x5a, 0x7c, 0xae, 0x7c, 0x77, 0x75, 0x48, 0x6b, 0x91, 0xf2, 0x91, 0xa7,
- 0x15, 0xdd, 0x9b, 0x54, 0x97, 0x5d, 0xfc, 0x08, 0x5c, 0x02, 0xd2, 0xcc,
- 0x94, 0xd0, 0x84, 0xb9, 0x71, 0x33, 0x5d, 0x75, 0x82, 0x53, 0x14, 0xa3,
- 0x75, 0x9a, 0x05, 0x08, 0xe1, 0xe4, 0x1e, 0x5c, 0xcb, 0x98, 0x77, 0xbb,
- 0x77, 0x23, 0xf5, 0xf0, 0x47, 0x9e, 0x80, 0xd6, 0x11, 0xb8, 0xff, 0x0c,
- 0xf0, 0x11, 0xf8, 0x2d, 0x4e, 0x80, 0x40, 0x5e, 0x0d, 0xfe, 0x3c, 0xe8,
- 0x29, 0x30, 0xfa, 0x80, 0x76, 0xcc, 0xbe, 0xff, 0x57, 0x51, 0x5a, 0x18,
- 0xa2, 0xe3, 0x33, 0x31, 0x7f, 0x4f, 0x57, 0x45, 0x7e, 0x3b, 0x12, 0xb0,
- 0xa9, 0x75, 0x85, 0x3c, 0x0f, 0x59, 0x00, 0x49, 0x34, 0x9d, 0x8d, 0x66,
- 0xf1, 0xce, 0xbc, 0x6c, 0x84, 0x91, 0x05, 0x82, 0x94, 0xb8, 0x8d, 0xa1,
- 0x5f, 0xba, 0x8b, 0xd8, 0x7a, 0x24, 0xc8, 0xa9, 0xc8, 0x1a, 0xa8, 0xaa,
- 0x6b, 0x3d, 0x76, 0x6d, 0x2f, 0xe8, 0x19, 0xe1, 0x28, 0x2e, 0x91, 0x63,
- 0x34, 0x22, 0x27, 0x5c, 0x94, 0x08, 0x69, 0x31, 0x5c, 0x42, 0x4f, 0xdb,
- 0x31, 0xe2, 0xd5, 0x8a, 0x16, 0xd2, 0xd1, 0x6b, 0x9f, 0x8b, 0x86, 0x46,
- 0xe3, 0xb1, 0x6c, 0x95, 0x5b, 0x57, 0x23, 0x3a, 0xef, 0x7a, 0x5c, 0xa8,
- 0x0a, 0xb1, 0x73, 0x4b, 0xa7, 0x4b, 0x1c, 0xd3, 0xc8, 0xdd, 0xdd, 0x29,
- 0x56, 0x3d, 0x4e, 0xde, 0x9c, 0x9c, 0x1d, 0xf1, 0xf9, 0x6c, 0xd5, 0xd2,
- 0x26, 0x98, 0xd7, 0x9c, 0xea, 0x62, 0x6c, 0x6b, 0xd8, 0xc6, 0x3c, 0x4c,
- 0xd5, 0x71, 0x05, 0x9a, 0x85, 0xd7, 0x21, 0x67, 0x83, 0x9c, 0xb7, 0xf8,
- 0xfb, 0x90, 0x05, 0x7a, 0x16, 0x22, 0xda, 0xb3, 0x20, 0xca, 0x0d, 0xc4,
- 0x17, 0xcf, 0xaf, 0x7e, 0x95, 0x17, 0x1f, 0xec, 0xb8, 0x2a, 0x26, 0x44,
- 0xd7, 0x9b, 0x06, 0xa7, 0x75, 0xaa, 0xce, 0x06, 0xb1, 0xe8, 0xb6, 0xc0,
- 0xb3, 0xc8, 0x52, 0x0c, 0xee, 0x8d, 0xdc, 0x5c, 0xd4, 0xb7, 0x44, 0x19,
- 0xc7, 0x54, 0x01, 0xbe, 0x79, 0x63, 0x13, 0x38, 0x88, 0x15, 0x02, 0x20,
- 0x00, 0x2f, 0xcf, 0xe7, 0xad, 0x34, 0x2b, 0x31, 0x01, 0x6b, 0x66, 0xe7,
- 0xa6, 0x91, 0xce, 0x59, 0x72, 0xe3, 0xc3, 0x83, 0xda, 0x94, 0x5a, 0x3c,
- 0xac, 0xbf, 0xb0, 0x54, 0x1c, 0xe6, 0xae, 0x1d, 0x86, 0x07, 0xd6, 0xb1,
- 0x99, 0x2a, 0x82, 0x34, 0x9c, 0x80, 0x5b, 0x2a, 0x76, 0x9a, 0x23, 0x6e,
- 0x88, 0xc1, 0xa3, 0xf7, 0x34, 0xea, 0xf4, 0x95, 0x7b, 0xf9, 0x85, 0x54,
- 0x3d, 0xcb, 0xd4, 0x80, 0xea, 0xf5, 0x31, 0x36, 0x5c, 0xc6, 0x74, 0xa2,
- 0xbd, 0x48, 0x6e, 0xdd, 0x56, 0x00, 0x7b, 0x79, 0xc7, 0x60, 0x2a, 0x8e,
- 0xf6, 0x5a, 0x85, 0xf9, 0x30, 0xd4, 0xce, 0xd0, 0x28, 0xf2, 0x9b, 0x02,
- 0x2a, 0xc2, 0x93, 0x48, 0x98, 0x26, 0xd0, 0x42, 0xa8, 0x3e, 0x6d, 0x25,
- 0x35, 0x6e, 0x25, 0x1a, 0x5c, 0xb8, 0x19, 0x83, 0x74, 0x4b, 0x73, 0x6c,
- 0xd4, 0xcc, 0x88, 0x2f, 0xaf, 0x02, 0x73, 0x2f, 0xb6, 0x30, 0xb2, 0xa4,
- 0x54, 0x72, 0x19, 0x76, 0x72, 0x9b, 0xd4, 0x0b, 0x9e, 0x16, 0x1e, 0x68,
- 0x5b, 0xd2, 0x1e, 0xc5, 0x71, 0x4b, 0x75, 0x82, 0xf4, 0x97, 0x0b, 0x1d,
- 0x27, 0x47, 0x78, 0x3a, 0x6c, 0xe8, 0x2f, 0x52, 0x5e, 0x37, 0xaf, 0xec,
- 0x3a, 0x01, 0x36, 0x9d, 0xc3, 0x4e, 0xbb, 0x74, 0x25, 0x94, 0xc7, 0x65,
- 0x5a, 0xa1, 0xe0, 0x12, 0x22, 0xc8, 0x58, 0x2a, 0xc1, 0x40, 0x6c, 0xb7,
- 0x89, 0x39, 0x83, 0xcb, 0x79, 0x79, 0x7e, 0x6e, 0x26, 0x3f, 0x50, 0x29,
- 0xc5, 0xf4, 0x1d, 0xd8, 0xa8, 0xfd, 0x91, 0xa4, 0xd5, 0x25, 0x29, 0xcf,
- 0x43, 0x52, 0x23, 0xd8, 0x01, 0x80, 0x51, 0xdc, 0xd9, 0x25, 0xd1, 0xee,
- 0xb5, 0x16, 0x54, 0xe4, 0x9e, 0xa9, 0x05, 0xc3, 0x48, 0x48, 0x03, 0x73,
- 0x6b, 0xf9, 0x13, 0x28, 0xfd, 0x19, 0x9f, 0xea, 0xf0, 0x38, 0x62, 0x12,
- 0xe3, 0x1e, 0x45, 0x72, 0xd5, 0x5b, 0x95, 0x92, 0xb9, 0xf8, 0x30, 0x9d,
- 0xa9, 0xd0, 0x65, 0x43, 0x4b, 0xd0, 0x9e, 0xd0, 0xe0, 0x3f, 0xf0, 0xcf,
- 0xee, 0x10, 0x3f, 0xf7, 0xfe, 0x73, 0x40, 0x5e, 0x9d, 0x83, 0xed, 0xed,
- 0x9b, 0x9b, 0x9b, 0xb1, 0xc2, 0xb0, 0x9a, 0x2d, 0xfb, 0x24, 0x4c, 0x14,
- 0x06, 0x1e, 0x65, 0x4f, 0x07, 0x67, 0xc9, 0x20, 0x5f, 0x5c, 0xfe, 0xb8,
- 0x3b, 0xda, 0xdd, 0xd9, 0xd9, 0xf9, 0x79, 0xbc, 0xc4, 0xfa, 0x5e, 0x50,
- 0xb3, 0xe6, 0xa7, 0xdf, 0xec, 0x36, 0x8f, 0x64, 0x3b, 0x8a, 0x99, 0xcd,
- 0xdf, 0xa9, 0x5a, 0x5d, 0x70, 0x4d, 0x49, 0x26, 0xe5, 0x03, 0x8f, 0xc5,
- 0xb0, 0x7f, 0x3c, 0x6d, 0xa1, 0xb5, 0x85, 0x38, 0x25, 0xe7, 0x1c, 0xf6,
- 0xfc, 0x78, 0x7f, 0x6f, 0x2f, 0x61, 0x81, 0x83, 0xb3, 0x59, 0x39, 0x44,
- 0x03, 0x40, 0x26, 0x59, 0x4a, 0xe1, 0xfe, 0x7c, 0x97, 0x01, 0xb0, 0x36,
- 0x65, 0x27, 0x90, 0xa1, 0x8c, 0x9e, 0xb8, 0x54, 0xaa, 0xce, 0x6b, 0x98,
- 0x58, 0x72, 0x5e, 0xce, 0xee, 0x5c, 0xab, 0x86, 0xc4, 0x2b, 0x30, 0x56,
- 0xc3, 0x0e, 0x25, 0x29, 0x4e, 0x80, 0x71, 0x53, 0x01, 0x86, 0x09, 0xb2,
- 0xce, 0x24, 0x33, 0x95, 0x6e, 0x39, 0x42, 0x22, 0x2f, 0xb0, 0xbe, 0x54,
- 0x36, 0x9d, 0xf0, 0x4f, 0x57, 0x95, 0x14, 0xe1, 0xa5, 0x00, 0x8e, 0x9b,
- 0xf4, 0xae, 0x75, 0xd9, 0x9b, 0x15, 0x7f, 0x6e, 0x7e, 0x04, 0x76, 0x6f,
- 0x39, 0x9a, 0x10, 0x2d, 0x41, 0x4b, 0x8c, 0x61, 0x95, 0x35, 0xd3, 0xab,
- 0xa0, 0xb8, 0x06, 0x38, 0xb8, 0x19, 0xed, 0x95, 0x99, 0x90, 0xb8, 0xdf,
- 0xc2, 0xd4, 0x45, 0x6b, 0xa0, 0x91, 0x66, 0x4d, 0x93, 0xa8, 0x48, 0x49,
- 0x99, 0x13, 0xd3, 0xb2, 0xb8, 0xc8, 0xb9, 0x30, 0x6a, 0x9f, 0xad, 0x83,
- 0xd9, 0x26, 0xc6, 0x81, 0xfe, 0x38, 0x2b, 0x07, 0x27, 0x60, 0x7a, 0x95,
- 0x2d, 0x84, 0x63, 0x6e, 0x6a, 0xd8, 0xe7, 0x40, 0x68, 0x70, 0x10, 0xd1,
- 0xc8, 0x07, 0x17, 0xfa, 0x95, 0x99, 0x89, 0x96, 0x43, 0xb1, 0xd7, 0x9c,
- 0x14, 0xeb, 0xbd, 0x5c, 0x41, 0x71, 0x3c, 0x4f, 0xe5, 0x3e, 0x51, 0x00,
- 0x89, 0x71, 0x3c, 0x3c, 0xdb, 0xb0, 0xc5, 0xac, 0xa2, 0x4b, 0xac, 0x5e,
- 0x9d, 0x8f, 0x44, 0xf2, 0xa1, 0x11, 0x51, 0xd0, 0x0c, 0x4e, 0xeb, 0xcb,
- 0x57, 0x87, 0x28, 0x9d, 0xfc, 0xd5, 0xd9, 0xa9, 0xf9, 0x89, 0x6c, 0x1e,
- 0xf3, 0x0f, 0x12, 0xe5, 0xc3, 0x3a, 0xca, 0xa7, 0xfb, 0x1c, 0x1a, 0x45,
- 0xc4, 0xea, 0x97, 0xc2, 0xb1, 0x91, 0xb2, 0xbe, 0xe8, 0x37, 0xf4, 0x2a,
- 0x73, 0x46, 0x02, 0xa0, 0x5b, 0x52, 0xa2, 0x05, 0x5a, 0x78, 0xf4, 0x78,
- 0xbc, 0xc3, 0x53, 0xc4, 0x1a, 0x4a, 0x64, 0x90, 0x64, 0xd7, 0x91, 0x9d,
- 0x46, 0x3d, 0x97, 0x69, 0x3c, 0xf4, 0xc0, 0x0e, 0x65, 0x98, 0x70, 0x81,
- 0x09, 0x46, 0x5e, 0xd1, 0x6f, 0xbd, 0x28, 0xd0, 0x7b, 0x12, 0xae, 0xf5,
- 0xee, 0x92, 0x20, 0xe7, 0xbb, 0x6e, 0x71, 0x00, 0xaa, 0xde, 0xa0, 0x49,
- 0x44, 0xc4, 0x84, 0x63, 0xd9, 0xb5, 0x42, 0x13, 0x12, 0xfc, 0x3e, 0x74,
- 0x85, 0x91, 0x4b, 0xdc, 0x02, 0x72, 0x67, 0x49, 0x76, 0x54, 0x32, 0x3a,
- 0x19, 0x32, 0x8c, 0x3b, 0x64, 0x94, 0x51, 0x4c, 0x3e, 0xe9, 0xab, 0x38,
- 0x6d, 0x2b, 0x85, 0x25, 0x27, 0x66, 0xe8, 0x92, 0x57, 0x3a, 0x94, 0x2a,
- 0x58, 0x54, 0x57, 0x9e, 0x79, 0x33, 0x10, 0x2f, 0x18, 0xb0, 0x1a, 0x46,
- 0x41, 0x5e, 0xdc, 0x08, 0x10, 0x04, 0x12, 0xb1, 0x38, 0x0e, 0x5a, 0x04,
- 0x5f, 0xf7, 0x92, 0x1c, 0x7a, 0x91, 0x7c, 0xc0, 0xbc, 0xef, 0xcc, 0x7d,
- 0xbe, 0x18, 0x27, 0x5f, 0x66, 0x37, 0x69, 0x95, 0xfd, 0x8b, 0x3b, 0xbb,
- 0x5f, 0x0a, 0x92, 0x38, 0x4b, 0xf0, 0xb1, 0x44, 0x42, 0x10, 0xd9, 0x96,
- 0xc6, 0x15, 0xb3, 0x4e, 0xad, 0xb2, 0x30, 0x57, 0x76, 0x22, 0x92, 0xa4,
- 0x75, 0xc4, 0x58, 0xd5, 0xdb, 0x66, 0x98, 0xc7, 0x28, 0xc4, 0x13, 0x9e,
- 0x42, 0xb8, 0x38, 0x77, 0xc8, 0xfb, 0x96, 0x31, 0x80, 0x3e, 0x49, 0x0d,
- 0x25, 0xd3, 0xd9, 0xe0, 0xaf, 0x70, 0x68, 0x7d, 0xf6, 0x62, 0xd0, 0xe2,
- 0x13, 0xb1, 0xb2, 0xcf, 0x35, 0x73, 0xde, 0xb6, 0x9a, 0x25, 0xdc, 0x16,
- 0x37, 0x52, 0x76, 0xcb, 0xa8, 0xca, 0x44, 0x53, 0x37, 0x79, 0xb1, 0xbf,
- 0x27, 0x6b, 0xe1, 0x6d, 0xcf, 0xe8, 0x85, 0xc2, 0xa9, 0x8f, 0xd2, 0x4b,
- 0x34, 0x14, 0x75, 0xe2, 0xb5, 0x4a, 0xdc, 0xf3, 0xfa, 0xbe, 0xc3, 0x2b,
- 0x2f, 0xe8, 0x15, 0x29, 0x8a, 0xad, 0x11, 0x92, 0x3e, 0x1c, 0x87, 0x5a,
- 0x60, 0x3b, 0x74, 0x0c, 0x3b, 0x2a, 0xf3, 0xd7, 0xf3, 0x79, 0x5a, 0x7c,
- 0xb0, 0x71, 0xeb, 0xdc, 0x92, 0x39, 0x18, 0xab, 0x8a, 0x53, 0xe2, 0xdd,
- 0x87, 0x12, 0x35, 0x49, 0x57, 0x76, 0x50, 0x8e, 0x0f, 0x12, 0xf3, 0x22,
- 0xad, 0x90, 0xb0, 0x4a, 0x6b, 0x26, 0x41, 0xf5, 0xfe, 0x9e, 0xd8, 0x6a,
- 0xdd, 0x4c, 0xc8, 0xdf, 0x10, 0x21, 0xf3, 0x73, 0xe1, 0xe5, 0xca, 0x51,
- 0x05, 0x9c, 0xaa, 0xab, 0x01, 0xfa, 0x3d, 0x84, 0x0d, 0x27, 0x3b, 0xa4,
- 0x0f, 0x70, 0x58, 0x0a, 0xf4, 0x5d, 0x2c, 0x9b, 0x3b, 0x2b, 0xa7, 0x90,
- 0x45, 0xa7, 0xbb, 0xc4, 0x9b, 0x83, 0xc1, 0x96, 0x2d, 0x37, 0x11, 0xd8,
- 0xd3, 0x16, 0xa5, 0x82, 0xee, 0xc8, 0x24, 0x50, 0xcb, 0x20, 0x83, 0x8c,
- 0xcb, 0x51, 0x7d, 0x5e, 0x05, 0x18, 0x1b, 0x68, 0x41, 0xd8, 0x30, 0x74,
- 0xc7, 0x75, 0xa5, 0x72, 0x2c, 0x6f, 0xa2, 0xa1, 0xf6, 0x16, 0x9a, 0x26,
- 0xa3, 0x28, 0x6e, 0x5f, 0x08, 0xaa, 0x97, 0xb0, 0x2e, 0x6c, 0x0e, 0x92,
- 0xc1, 0xd6, 0xef, 0x18, 0x30, 0x61, 0xb1, 0xfb, 0xcd, 0x95, 0x69, 0x7e,
- 0x1e, 0xa8, 0x7f, 0xb6, 0xef, 0xf2, 0x6c, 0x04, 0x56, 0xb2, 0x8d, 0xc2,
- 0x4c, 0x1e, 0x5d, 0x91, 0xca, 0x2f, 0x5c, 0xe1, 0x41, 0xe7, 0x45, 0x8e,
- 0x85, 0x4d, 0x8c, 0x93, 0x13, 0xa7, 0xcb, 0x17, 0x43, 0x82, 0x71, 0x6f,
- 0xaa, 0xa9, 0x22, 0x5b, 0xe3, 0x77, 0x89, 0x07, 0x4e, 0xe7, 0xb1, 0x15,
- 0xa0, 0x8a, 0xef, 0x39, 0x95, 0x95, 0xa8, 0x63, 0xa3, 0xd3, 0x10, 0x7c,
- 0xa9, 0x2d, 0x60, 0x68, 0xc7, 0x10, 0x82, 0xc4, 0x67, 0xa4, 0x41, 0xb8,
- 0x3f, 0x4f, 0x22, 0x5e, 0x6b, 0x9e, 0xa5, 0x15, 0x76, 0x97, 0x93, 0x10,
- 0xad, 0x8f, 0xd7, 0x12, 0xa1, 0x31, 0x37, 0x7b, 0xc7, 0xb1, 0x44, 0xae,
- 0xde, 0x91, 0xb9, 0x4f, 0xca, 0x62, 0x18, 0x60, 0xf1, 0x21, 0x1e, 0x82,
- 0x0d, 0x7e, 0x08, 0x34, 0x5d, 0xf8, 0x25, 0x14, 0x59, 0x2f, 0xa6, 0xf7,
- 0xf4, 0xf8, 0xf9, 0x3d, 0xe3, 0xac, 0xf4, 0xa3, 0x31, 0x48, 0xe5, 0x68,
- 0xdd, 0x0c, 0x43, 0x54, 0x43, 0xce, 0xf3, 0x0c, 0xa6, 0x64, 0xd8, 0xbd,
- 0x30, 0x1d, 0x81, 0x06, 0xcc, 0xd9, 0xa9, 0x5e, 0xfb, 0x0a, 0xfe, 0x55,
- 0x3e, 0xcb, 0x7c, 0xd3, 0x93, 0xe0, 0x2b, 0x9a, 0x43, 0x14, 0x28, 0x2b,
- 0x38, 0x40, 0x74, 0x0e, 0xcc, 0x0a, 0x53, 0x5d, 0x03, 0xc4, 0x67, 0x21,
- 0x06, 0xd7, 0x45, 0xbc, 0x53, 0x8d, 0xbf, 0x82, 0x4d, 0x2a, 0xa5, 0xc5,
- 0xc9, 0x34, 0xfb, 0x13, 0xe2, 0xdc, 0xce, 0x18, 0xdf, 0xbd, 0xd6, 0x32,
- 0x0f, 0xb2, 0x40, 0x77, 0x08, 0xb1, 0xe5, 0xcb, 0x03, 0xd1, 0xc3, 0x86,
- 0x69, 0x73, 0x29, 0x06, 0x2c, 0x50, 0xad, 0x0b, 0x1f, 0xa9, 0x39, 0xcd,
- 0x33, 0x55, 0xac, 0x6e, 0x1f, 0x75, 0xde, 0x9c, 0x85, 0xeb, 0x9c, 0xd7,
- 0x9e, 0x81, 0x27, 0xcf, 0xab, 0x3c, 0xbb, 0x80, 0xc6, 0x48, 0x33, 0x92,
- 0xb8, 0xe4, 0xc0, 0x64, 0x97, 0xa5, 0x9c, 0x69, 0x08, 0xd1, 0x0c, 0x19,
- 0xf7, 0x39, 0x59, 0xed, 0x98, 0xed, 0xdb, 0x52, 0xdd, 0x5c, 0x22, 0x05,
- 0x89, 0xb4, 0x5a, 0x6f, 0x92, 0xb3, 0xe2, 0xa2, 0x41, 0xbf, 0x60, 0x6f,
- 0x6a, 0x6e, 0x06, 0x75, 0x15, 0x38, 0xc5, 0x7c, 0xa0, 0x91, 0xfb, 0x88,
- 0x1e, 0xf9, 0xe6, 0x10, 0xd1, 0xd2, 0xab, 0x16, 0x1e, 0x2f, 0x36, 0x80,
- 0x55, 0xfa, 0x36, 0xab, 0x8c, 0xe4, 0x51, 0xd6, 0xc9, 0x77, 0x8f, 0xd5,
- 0xff, 0xa3, 0xd0, 0x11, 0x2c, 0x06, 0xda, 0x8c, 0x68, 0xe2, 0x56, 0x3c,
- 0xf4, 0xc0, 0x77, 0xc4, 0x19, 0x40, 0xcc, 0xa0, 0xf5, 0x75, 0x5f, 0x1e,
- 0xf4, 0xa9, 0x94, 0x8f, 0x9c, 0xf9, 0xc4, 0x90, 0x9f, 0xf9, 0x33, 0x5e,
- 0x9c, 0x5c, 0x3a, 0x25, 0x27, 0x8e, 0x56, 0x64, 0x34, 0x7b, 0x5b, 0x9e,
- 0x37, 0x29, 0xa1, 0xec, 0x27, 0x6e, 0xe0, 0xc9, 0x59, 0x0e, 0x5b, 0xdb,
- 0xd8, 0x32, 0xf4, 0x68, 0x62, 0x98, 0x44, 0x3e, 0xb9, 0x92, 0x16, 0x9d,
- 0xc8, 0x15, 0x88, 0xf0, 0xf5, 0x15, 0xa4, 0x60, 0x08, 0x67, 0xd1, 0x32,
- 0x80, 0x9c, 0xb0, 0x26, 0x22, 0xc0, 0x9b, 0xb3, 0xe3, 0xd7, 0x82, 0xbe,
- 0xe2, 0xd8, 0x9c, 0x48, 0x3d, 0xce, 0x22, 0x21, 0x6c, 0x87, 0xa9, 0x2a,
- 0xc4, 0x6f, 0xd1, 0xc5, 0x50, 0xe7, 0x25, 0xa3, 0x07, 0x61, 0xd9, 0xb4,
- 0x3a, 0x65, 0x25, 0xa9, 0x8f, 0x6a, 0x0b, 0x91, 0x45, 0x8d, 0xb8, 0x11,
- 0x40, 0x84, 0x35, 0xed, 0x3d, 0xd9, 0xa9, 0xcc, 0x45, 0x61, 0x18, 0xcd,
- 0xba, 0x9a, 0x20, 0xb8, 0xca, 0x95, 0x1f, 0x7a, 0x3d, 0xf3, 0x4c, 0xc0,
- 0x62, 0xb8, 0x1e, 0x54, 0xf2, 0xb2, 0xbc, 0x29, 0x46, 0xc7, 0x48, 0x4e,
- 0x4f, 0x8e, 0xcb, 0x4b, 0xb3, 0x54, 0x6f, 0xa2, 0x26, 0xb3, 0x77, 0xa7,
- 0x6f, 0x92, 0x4d, 0x88, 0x16, 0xc0, 0x14, 0x11, 0x7c, 0x50, 0x3c, 0xb9,
- 0x25, 0xfa, 0x5d, 0xed, 0x0a, 0x6a, 0x52, 0x01, 0xcd, 0xa3, 0x1f, 0x5e,
- 0xbc, 0x3e, 0x3d, 0x3e, 0xfa, 0x89, 0x83, 0x9d, 0x82, 0xe9, 0xe0, 0xe3,
- 0x2f, 0x3c, 0x85, 0x97, 0xdc, 0x63, 0xf0, 0xf9, 0x9a, 0x71, 0xdc, 0xf5,
- 0x5e, 0xe5, 0xc2, 0x1a, 0x1d, 0xf8, 0xc9, 0xe9, 0xab, 0x91, 0x82, 0x7b,
- 0x12, 0xcf, 0x42, 0xe5, 0xd2, 0x8a, 0x91, 0xca, 0xb4, 0x90, 0xd7, 0xb7,
- 0xa1, 0x27, 0x50, 0x4f, 0xc4, 0x30, 0x79, 0xa3, 0xa1, 0xa5, 0x43, 0xda,
- 0x71, 0x1c, 0xc1, 0x97, 0x39, 0xd5, 0x50, 0xed, 0x46, 0x05, 0x8a, 0xf2,
- 0x47, 0xb6, 0x8c, 0x00, 0x37, 0x17, 0xf7, 0x8a, 0x45, 0x36, 0xad, 0xb3,
- 0x39, 0xdb, 0x8e, 0x7b, 0x6f, 0x48, 0x62, 0x06, 0xb4, 0x8d, 0x48, 0x3e,
- 0x0a, 0xfc, 0x94, 0x92, 0x8c, 0x74, 0x6e, 0xef, 0x33, 0x51, 0x09, 0x99,
- 0x46, 0xf8, 0x5e, 0xe8, 0x56, 0x66, 0x3d, 0x48, 0x06, 0xa3, 0x55, 0x72,
- 0x30, 0xf8, 0x1d, 0x45, 0x04, 0xdf, 0xcc, 0x1e, 0x29, 0x06, 0x29, 0xee,
- 0x4a, 0xb5, 0xc3, 0x4b, 0x55, 0x22, 0x4f, 0xe0, 0x27, 0xe4, 0x06, 0x43,
- 0x41, 0xe6, 0xa8, 0xcb, 0xed, 0x4b, 0xc9, 0x8d, 0x97, 0x11, 0xe8, 0xad,
- 0x82, 0xf8, 0x12, 0x1b, 0xdf, 0x60, 0xcc, 0xda, 0x30, 0x6c, 0x80, 0x7d,
- 0x28, 0x60, 0xf1, 0x03, 0x72, 0x0c, 0x8b, 0xf6, 0x5a, 0xce, 0x8c, 0x38,
- 0xfe, 0x82, 0xdd, 0x3f, 0x94, 0x3c, 0x1e, 0x36, 0x47, 0x6b, 0xb5, 0xf1,
- 0xf9, 0x86, 0x38, 0xb8, 0x07, 0x22, 0xbe, 0x81, 0x57, 0x0f, 0x58, 0x46,
- 0x87, 0xec, 0x8f, 0xd1, 0x9b, 0x13, 0xbf, 0xf1, 0x7c, 0xc3, 0x7a, 0xc2,
- 0x07, 0x51, 0x29, 0x94, 0xdf, 0xf3, 0xea, 0xba, 0xea, 0xdb, 0x89, 0x4d,
- 0x58, 0x30, 0xb7, 0xa6, 0xb9, 0xbf, 0xd8, 0x24, 0x89, 0x22, 0xee, 0x5a,
- 0x21, 0x9e, 0x12, 0x5e, 0xbb, 0xa6, 0x44, 0x7f, 0xe4, 0x32, 0xd6, 0x7f,
- 0xd5, 0xb1, 0x6a, 0xb9, 0x91, 0x74, 0x4e, 0xfe, 0x20, 0xa9, 0xa8, 0xce,
- 0xda, 0x2c, 0x85, 0x17, 0xf7, 0xc8, 0x43, 0x1c, 0x2f, 0x0c, 0xcb, 0x04,
- 0x09, 0xfb, 0xd1, 0x24, 0xd4, 0x6e, 0x82, 0x27, 0x39, 0x15, 0x43, 0xdb,
- 0xb1, 0x57, 0xb8, 0xc9, 0xb4, 0xbc, 0x51, 0xa1, 0x3c, 0x61, 0x09, 0x0b,
- 0x2b, 0xf6, 0xb0, 0xf7, 0xa4, 0xaa, 0x5d, 0xdd, 0x51, 0x1e, 0xdf, 0xb6,
- 0x1a, 0xbd, 0x47, 0x42, 0x39, 0x1e, 0x14, 0x71, 0x40, 0x14, 0xeb, 0x61,
- 0x4f, 0xaa, 0xbe, 0xb0, 0x65, 0xf5, 0xca, 0xb9, 0x8c, 0x57, 0x71, 0x54,
- 0x6b, 0xa2, 0x79, 0xcc, 0xc6, 0xed, 0x27, 0x6c, 0xdb, 0x7c, 0x16, 0x29,
- 0x29, 0x42, 0x7e, 0x04, 0xaa, 0x72, 0xd3, 0x9f, 0x19, 0x4b, 0xcb, 0xe4,
- 0xd6, 0x69, 0xdc, 0x5f, 0x2a, 0xc4, 0x8e, 0x2f, 0x1e, 0xd1, 0x1b, 0xf5,
- 0x49, 0x7d, 0x27, 0xa7, 0xaa, 0x0e, 0x55, 0xc9, 0x97, 0xe2, 0xb5, 0xf4,
- 0x5d, 0x81, 0x92, 0x7f, 0xca, 0x26, 0x5b, 0x51, 0xc3, 0x34, 0x38, 0x42,
- 0x63, 0x36, 0x72, 0x72, 0xad, 0xd4, 0xe3, 0x98, 0x08, 0xcb, 0x32, 0x29,
- 0x13, 0x9d, 0x0b, 0x8a, 0x21, 0x69, 0x15, 0xae, 0x4c, 0x6d, 0x42, 0xa2,
- 0xa4, 0x86, 0xb6, 0xed, 0x88, 0x5f, 0x9b, 0x6e, 0x8f, 0xfd, 0x6a, 0x46,
- 0x96, 0x82, 0x3b, 0x09, 0x63, 0x82, 0xfd, 0xd9, 0x34, 0xfe, 0x41, 0x63,
- 0x41, 0xb9, 0x72, 0x79, 0x36, 0x5d, 0x35, 0xed, 0xbc, 0x4a, 0x6f, 0x4c,
- 0x02, 0xc2, 0x47, 0x43, 0xda, 0xa4, 0x83, 0xa0, 0xfa, 0xf6, 0xa9, 0x22,
- 0xa8, 0x1d, 0x0c, 0xb6, 0xc4, 0x85, 0xce, 0x55, 0x83, 0x2d, 0xb4, 0x5a,
- 0xcc, 0x39, 0xae, 0x43, 0xae, 0x32, 0xb6, 0x65, 0xbb, 0x48, 0x91, 0x68,
- 0xf7, 0x86, 0x46, 0xab, 0x68, 0xef, 0x5f, 0xb1, 0xe1, 0xd3, 0xeb, 0x5c,
- 0x2e, 0xfe, 0xa9, 0xda, 0x44, 0xeb, 0xe0, 0x28, 0x07, 0x3d, 0x97, 0x17,
- 0x64, 0x91, 0x78, 0x71, 0x6d, 0xa8, 0x9b, 0x6c, 0x15, 0xfa, 0xaa, 0x2e,
- 0x7e, 0x60, 0x8b, 0x4e, 0xe7, 0xcd, 0xa8, 0xbe, 0x9e, 0xc6, 0xf3, 0x60,
- 0x24, 0xc3, 0xd6, 0xa2, 0xe2, 0xbc, 0x30, 0x0f, 0x4f, 0xae, 0xa7, 0x07,
- 0xb6, 0x3a, 0x5e, 0x6d, 0x59, 0x44, 0xe8, 0x70, 0xac, 0xef, 0x8a, 0xe9,
- 0xd5, 0xcb, 0x37, 0x93, 0x78, 0xd3, 0x44, 0xd4, 0x5a, 0x8a, 0x16, 0x20,
- 0xb0, 0x78, 0xda, 0xdc, 0x45, 0xc0, 0x4f, 0x65, 0xc5, 0x43, 0x70, 0x67,
- 0x91, 0x35, 0xf1, 0xc2, 0xfb, 0x36, 0xde, 0x5c, 0xfb, 0x15, 0x6b, 0x8d,
- 0xc3, 0xfd, 0xc2, 0x67, 0x59, 0xc4, 0x0f, 0x72, 0x7d, 0x8c, 0x52, 0xac,
- 0x08, 0xcf, 0x29, 0xde, 0x5c, 0x73, 0x05, 0x9f, 0x8d, 0xa1, 0x2a, 0x69,
- 0xb1, 0xea, 0x0f, 0xb6, 0x3a, 0x37, 0xc4, 0x31, 0xcf, 0x5b, 0x4b, 0xe5,
- 0x20, 0x17, 0xe4, 0x4b, 0x0d, 0xa2, 0x51, 0x4f, 0xb2, 0xfa, 0xd5, 0x82,
- 0xc6, 0x0e, 0xaf, 0xd2, 0xea, 0xb0, 0x2c, 0xae, 0xe3, 0xa3, 0xea, 0xc4,
- 0x24, 0xb1, 0x21, 0xc4, 0xeb, 0x77, 0x6a, 0xde, 0x4e, 0xa7, 0x0d, 0x21,
- 0x4d, 0x12, 0xb6, 0xaa, 0x86, 0x21, 0xc6, 0x9b, 0xdb, 0x24, 0x0f, 0xc5,
- 0xd1, 0x97, 0x87, 0x2f, 0x5f, 0x1d, 0x6e, 0x75, 0x47, 0xf2, 0x92, 0x90,
- 0x00, 0x84, 0xf7, 0xf0, 0x75, 0xc3, 0x1b, 0x65, 0xc9, 0xce, 0x1b, 0x04,
- 0x3d, 0x2c, 0x7a, 0x17, 0x0b, 0x48, 0x3d, 0x5d, 0x2e, 0x90, 0x73, 0x49,
- 0x35, 0xa8, 0x88, 0x3f, 0x7d, 0xd0, 0xa0, 0x85, 0x45, 0xb6, 0x80, 0xff,
- 0xd3, 0xde, 0xd0, 0x0c, 0xfd, 0x48, 0x22, 0x1e, 0x75, 0x3e, 0x8a, 0x37,
- 0x37, 0x83, 0x1c, 0x89, 0xfb, 0x9e, 0xd3, 0x08, 0xfe, 0xa5, 0x3b, 0x89,
- 0x4b, 0x94, 0xa3, 0x13, 0x56, 0x44, 0xc3, 0x1d, 0x41, 0xda, 0x8d, 0x94,
- 0x9c, 0x73, 0xbc, 0xc9, 0x68, 0x3c, 0x50, 0xaf, 0x38, 0xef, 0x3c, 0xde,
- 0xab, 0x05, 0xf8, 0x3a, 0x7c, 0xfb, 0xe2, 0xb5, 0x21, 0x33, 0x76, 0xb6,
- 0x86, 0x31, 0x63, 0xb4, 0x34, 0xe6, 0x63, 0x1a, 0x45, 0xb0, 0xd5, 0x02,
- 0xf4, 0x1e, 0xef, 0x42, 0x51, 0xe0, 0x19, 0x58, 0x98, 0x9d, 0x4b, 0x41,
- 0x0b, 0xdf, 0x4c, 0xce, 0x26, 0xfa, 0x8f, 0x8e, 0x29, 0xb7, 0x75, 0x2a,
- 0xc3, 0xc7, 0x0d, 0xcd, 0xed, 0xf1, 0x3f, 0xdb, 0x7b, 0xf6, 0x05, 0x9b,
- 0x19, 0xab, 0xeb, 0x33, 0x8e, 0xbc, 0xb6, 0x2f, 0xaf, 0xed, 0xaf, 0x7b,
- 0x2d, 0xf2, 0xde, 0x84, 0x4d, 0x67, 0xf7, 0x71, 0x80, 0x3c, 0x12, 0x65,
- 0xb7, 0x16, 0xbc, 0xf7, 0xe5, 0x9b, 0x76, 0x03, 0xd6, 0x91, 0x88, 0x6f,
- 0x46, 0x9a, 0x5a, 0x2b, 0x92, 0x8c, 0xa7, 0x88, 0x44, 0xac, 0x76, 0xa7,
- 0xd7, 0x4f, 0xc4, 0x93, 0x0a, 0x9e, 0x81, 0x8d, 0xa4, 0x8f, 0xac, 0xc0,
- 0x1b, 0xbc, 0xa1, 0x9a, 0x62, 0x7c, 0x52, 0xbe, 0x02, 0x1c, 0x56, 0x06,
- 0xe8, 0xdf, 0xcb, 0xe3, 0xb4, 0xba, 0xcc, 0x22, 0xbe, 0xfe, 0x60, 0xad,
- 0xec, 0x54, 0x5d, 0x2c, 0x86, 0xb9, 0x3d, 0xe7, 0x78, 0x9d, 0x7d, 0x9a,
- 0x43, 0x71, 0x6d, 0xd2, 0x47, 0x55, 0x1f, 0x7b, 0x33, 0x73, 0xdd, 0xfb,
- 0xfa, 0xcb, 0x60, 0x18, 0x86, 0x5a, 0x7f, 0x01, 0xef, 0xb6, 0x0c, 0x6c,
- 0x96, 0xf9, 0xbc, 0x6b, 0xf3, 0x3a, 0x4f, 0x93, 0xcb, 0x5f, 0xf2, 0x25,
- 0x25, 0xd4, 0x22, 0x16, 0x77, 0x8b, 0xee, 0x6e, 0x1b, 0x88, 0x18, 0xef,
- 0x8e, 0x07, 0x64, 0x19, 0xdf, 0xfa, 0x95, 0x78, 0x0d, 0x7f, 0xed, 0x64,
- 0x72, 0xfc, 0xe0, 0x85, 0x50, 0x07, 0xef, 0xfa, 0x98, 0x58, 0xd2, 0xb7,
- 0xe4, 0x9f, 0x8f, 0xd9, 0x18, 0xbc, 0xf0, 0xfe, 0xfb, 0x2f, 0xe3, 0xa3,
- 0xa1, 0xd6, 0x66, 0x19, 0xb2, 0xf7, 0xb5, 0xbc, 0xc2, 0x4d, 0x5e, 0x18,
- 0xad, 0x70, 0x66, 0x6e, 0xc8, 0xf9, 0x92, 0x6f, 0xc8, 0xfe, 0xb6, 0x4f,
- 0x81, 0xa6, 0xc9, 0xff, 0xe0, 0xb9, 0x2b, 0xe5, 0xe3, 0xa7, 0xab, 0xf3,
- 0xb9, 0x59, 0xfb, 0xc9, 0xea, 0xe2, 0x22, 0xbf, 0x4d, 0x8e, 0xf3, 0xba,
- 0x11, 0x26, 0x49, 0x6a, 0x82, 0xa2, 0x3c, 0xe5, 0xf5, 0x9a, 0x5b, 0x82,
- 0xe3, 0x94, 0xe9, 0x84, 0xb6, 0x72, 0xa5, 0x1c, 0x72, 0x00, 0x4b, 0x76,
- 0x83, 0x25, 0xf7, 0x55, 0xaf, 0x2e, 0x46, 0x7d, 0x9b, 0x77, 0x9b, 0xd5,
- 0xa1, 0xa2, 0xc7, 0x05, 0x32, 0xf5, 0x9f, 0x8f, 0x59, 0xd1, 0x09, 0xcf,
- 0x1a, 0xff, 0xf8, 0x61, 0xf2, 0x00, 0xc3, 0xc0, 0xe5, 0xef, 0x70, 0x6c,
- 0xc9, 0xc8, 0xa9, 0xcd, 0x0c, 0x19, 0x8d, 0x26, 0x0c, 0x18, 0xf3, 0xd9,
- 0x0d, 0x83, 0x69, 0x0f, 0xc9, 0xff, 0x37, 0xa1, 0x35, 0x33, 0x02, 0x75,
- 0x0c, 0x33, 0x65, 0x82, 0xc2, 0x41, 0xfc, 0xcf, 0xda, 0xb1, 0x4a, 0x52,
- 0x58, 0x8f, 0x74, 0x44, 0x99, 0x76, 0x13, 0x46, 0xf4, 0x7a, 0xcb, 0xe1,
- 0x3a, 0xa7, 0xa2, 0x74, 0x6f, 0xad, 0x5b, 0x92, 0x9e, 0x85, 0x36, 0x3b,
- 0x1f, 0xc5, 0x8b, 0xc4, 0x45, 0xf9, 0x9a, 0x2e, 0xc8, 0xf8, 0x8b, 0x7c,
- 0x55, 0xcb, 0x15, 0x6a, 0xaf, 0xd5, 0xb5, 0xf3, 0x7a, 0x57, 0xe4, 0xf0,
- 0xba, 0xf4, 0x64, 0x3f, 0xf3, 0x97, 0x96, 0x15, 0x9b, 0xd1, 0x8b, 0x09,
- 0x24, 0xd6, 0xce, 0xed, 0x84, 0x82, 0xd3, 0xea, 0xde, 0xb6, 0x6e, 0x25,
- 0x7c, 0xad, 0x6e, 0x5f, 0x52, 0x3d, 0x62, 0xe3, 0x2f, 0x75, 0x33, 0xbb,
- 0x8f, 0x03, 0xe1, 0x99, 0x2d, 0x0a, 0xcb, 0xf1, 0x63, 0xa0, 0x99, 0xcd,
- 0xc4, 0x87, 0x71, 0x1f, 0xef, 0x19, 0xdd, 0x40, 0x2f, 0x22, 0x98, 0x31,
- 0xb8, 0x3a, 0x93, 0xe7, 0xac, 0x01, 0x7d, 0x1e, 0x31, 0x3c, 0x48, 0xb1,
- 0x74, 0x41, 0x80, 0xf1, 0x75, 0x25, 0xd2, 0x3a, 0xc9, 0xf5, 0x96, 0xa2,
- 0xbc, 0xb4, 0x44, 0x68, 0xc3, 0x65, 0x33, 0x63, 0x6e, 0x1d, 0x26, 0x0c,
- 0x54, 0x6c, 0x3f, 0xe7, 0x36, 0xc4, 0x36, 0x27, 0x4e, 0x34, 0x0a, 0xbc,
- 0x35, 0x3d, 0xc0, 0x71, 0x4b, 0x46, 0x3a, 0xc6, 0x2b, 0x63, 0x9b, 0xac,
- 0xd1, 0x9e, 0x6f, 0x03, 0x3a, 0xe2, 0x64, 0x48, 0x38, 0x80, 0x3d, 0x0f,
- 0xb0, 0x62, 0xcc, 0xd4, 0xad, 0x9e, 0x02, 0xd3, 0x62, 0x5a, 0x47, 0x2c,
- 0x05, 0x0d, 0xd9, 0x6c, 0x06, 0x3c, 0xa2, 0x01, 0x21, 0x6a, 0xa8, 0xe7,
- 0x88, 0x42, 0x33, 0x55, 0xab, 0x65, 0xbd, 0x50, 0xdb, 0x16, 0x0b, 0x7a,
- 0x1a, 0x09, 0xb8, 0xd1, 0x31, 0x0e, 0xbe, 0xd0, 0x30, 0xcf, 0x01, 0xab,
- 0x95, 0x25, 0x5b, 0xb5, 0x34, 0xf1, 0xc0, 0xb6, 0x29, 0x4d, 0x46, 0x60,
- 0x66, 0x38, 0x6c, 0x8a, 0x52, 0x56, 0xb0, 0x6b, 0xa6, 0xc9, 0xd1, 0x20,
- 0xaa, 0x70, 0xd9, 0x05, 0xb0, 0x05, 0xbc, 0x5b, 0x66, 0x09, 0xed, 0x82,
- 0xbd, 0x35, 0x14, 0x01, 0xb6, 0x3a, 0xaf, 0x9b, 0xbc, 0x59, 0x85, 0x07,
- 0xf5, 0x5c, 0xb1, 0xc6, 0x09, 0x96, 0x87, 0x14, 0x08, 0x6c, 0x86, 0xc3,
- 0xce, 0x21, 0x33, 0x04, 0x62, 0x61, 0x1b, 0xaa, 0xd3, 0xc9, 0x01, 0xb6,
- 0xe7, 0x84, 0x36, 0x32, 0x2f, 0x6f, 0xba, 0x92, 0xd5, 0x0b, 0x68, 0xc0,
- 0x76, 0x74, 0xed, 0xa4, 0x5b, 0xf3, 0xf6, 0x9f, 0xff, 0x43, 0xbf, 0x7c,
- 0x8f, 0x95, 0xfa, 0x4f, 0x5d, 0x29, 0x8d, 0x49, 0x4f, 0x03, 0x6c, 0x18,
- 0xb2, 0xfd, 0x24, 0x7f, 0xa6, 0x55, 0xf9, 0x3b, 0x42, 0x1e, 0x79, 0x69,
- 0x80, 0xc1, 0x46, 0x0d, 0xfe, 0x79, 0x6c, 0x05, 0x1d, 0x69, 0x24, 0x05,
- 0xd8, 0x05, 0x29, 0xa3, 0xe7, 0x77, 0x81, 0xc9, 0x14, 0x64, 0xf8, 0x53,
- 0x31, 0xa4, 0xb2, 0x0d, 0x95, 0x19, 0xc9, 0x25, 0x79, 0x18, 0x00, 0x78,
- 0x45, 0xbb, 0xf8, 0x53, 0x25, 0x88, 0x6a, 0x46, 0xd7, 0x16, 0xb7, 0x21,
- 0x7f, 0x1e, 0x57, 0x7c, 0x35, 0xea, 0x4d, 0xac, 0x7d, 0x2d, 0x90, 0x3d,
- 0xd3, 0x4e, 0x5a, 0xcd, 0xac, 0xa1, 0xe8, 0x5c, 0x21, 0xaf, 0x38, 0x92,
- 0xeb, 0x3c, 0xf0, 0xae, 0x10, 0x30, 0x95, 0xc0, 0x9f, 0xe9, 0xcb, 0x5c,
- 0xd9, 0xd6, 0xc6, 0x6f, 0xfd, 0xf9, 0x3f, 0x38, 0x4a, 0xf8, 0x3f, 0xc3,
- 0x1b, 0xfd, 0xe4, 0xec, 0xe8, 0x80, 0x86, 0xf4, 0xe7, 0x51, 0x7d, 0xb7,
- 0x38, 0x2f, 0xe7, 0x72, 0xf0, 0xb0, 0xf8, 0x66, 0x01, 0xf5, 0x33, 0xa6,
- 0x12, 0x72, 0x97, 0x8f, 0x3c, 0xd4, 0xa6, 0x61, 0xb4, 0xce, 0x15, 0xec,
- 0x04, 0xe5, 0x94, 0xd3, 0xe8, 0x91, 0xc6, 0x64, 0x4e, 0xde, 0x9f, 0x13,
- 0x05, 0x62, 0x32, 0x3c, 0x81, 0x6c, 0xc6, 0x37, 0xce, 0x51, 0x62, 0x13,
- 0xc2, 0xa2, 0x2e, 0xca, 0xf5, 0x74, 0x9c, 0x5a, 0xed, 0x3e, 0x86, 0x77,
- 0x05, 0x7e, 0x61, 0x86, 0xf9, 0x9e, 0x32, 0xb5, 0x45, 0xf7, 0x39, 0xe4,
- 0xcf, 0x46, 0x67, 0xf4, 0x59, 0x29, 0xe5, 0x59, 0x1c, 0x68, 0xb8, 0xa6,
- 0xa2, 0x0d, 0x43, 0x40, 0x84, 0x24, 0x16, 0xb7, 0x0b, 0x1d, 0xc7, 0xf0,
- 0x99, 0x60, 0x9c, 0xb4, 0x07, 0x8b, 0xfa, 0xd2, 0x1b, 0x76, 0xab, 0xe0,
- 0xf0, 0x58, 0xc1, 0x63, 0x19, 0xa8, 0xf7, 0xf1, 0x78, 0x27, 0xd0, 0x3b,
- 0xb3, 0x5b, 0xb3, 0xb7, 0xb8, 0x7d, 0x5c, 0x13, 0x86, 0x99, 0x65, 0x15,
- 0x80, 0xd3, 0xdd, 0x97, 0x12, 0x25, 0xe8, 0x62, 0x30, 0x6c, 0xbb, 0xeb,
- 0x87, 0xdf, 0xd3, 0xa9, 0x72, 0xa3, 0xf7, 0x19, 0x15, 0x25, 0xc8, 0xaf,
- 0xb3, 0xf5, 0xcd, 0xb0, 0x7b, 0xd6, 0x88, 0x9d, 0x0b, 0x86, 0x65, 0xd7,
- 0x98, 0x75, 0x1f, 0x46, 0x8b, 0x21, 0x2b, 0x39, 0x10, 0x63, 0x7c, 0x5f,
- 0x73, 0xec, 0xaf, 0x24, 0x33, 0xaa, 0xc4, 0x33, 0xc2, 0x6c, 0x9d, 0x5f,
- 0x58, 0xfd, 0xa8, 0x41, 0x56, 0x21, 0x05, 0x51, 0xa2, 0xdd, 0x7b, 0xf6,
- 0xa8, 0x24, 0x97, 0x96, 0xcf, 0x70, 0x23, 0x41, 0x3b, 0x12, 0xaa, 0x8c,
- 0xf8, 0x9e, 0xf5, 0xcd, 0xb9, 0xe0, 0x1f, 0xf1, 0xf8, 0xbe, 0x82, 0x81,
- 0x9c, 0x02, 0xb5, 0x56, 0x6c, 0x5e, 0xcf, 0xa9, 0xea, 0xc3, 0x02, 0xde,
- 0x90, 0x48, 0x88, 0x4a, 0x12, 0xbb, 0xa5, 0x28, 0xb0, 0xe2, 0xdf, 0x86,
- 0x6e, 0x38, 0x6c, 0x51, 0x1a, 0x79, 0xb1, 0x43, 0xba, 0xa9, 0xeb, 0x9b,
- 0xe3, 0xa4, 0xa2, 0x27, 0xb1, 0x4d, 0x6d, 0x96, 0xef, 0x0d, 0x4d, 0x57,
- 0x77, 0xef, 0x11, 0x7a, 0x4f, 0x7b, 0xa6, 0xde, 0x3a, 0xfa, 0x80, 0x96,
- 0x96, 0x91, 0x5d, 0x56, 0x4b, 0xb4, 0x43, 0xc7, 0x73, 0x5e, 0xb2, 0x01,
- 0xe2, 0xbe, 0x69, 0x48, 0x70, 0x8b, 0x44, 0x69, 0xfb, 0x88, 0x67, 0x9b,
- 0xed, 0x42, 0xba, 0x8f, 0x82, 0x81, 0x21, 0xac, 0xee, 0xbd, 0xa3, 0xf1,
- 0x36, 0x89, 0xdb, 0xbc, 0x2d, 0x7a, 0x80, 0xe8, 0x89, 0x01, 0x99, 0x11,
- 0x05, 0x13, 0x2d, 0x04, 0xd1, 0xf9, 0x8f, 0xfc, 0x2a, 0xce, 0x13, 0xac,
- 0x11, 0xdc, 0x14, 0x0d, 0x67, 0x86, 0x89, 0x60, 0x41, 0xef, 0xdc, 0x84,
- 0x95, 0x7a, 0x82, 0x13, 0xb3, 0xfb, 0x29, 0xb0, 0x68, 0x38, 0x57, 0x2c,
- 0x4f, 0x6b, 0x3b, 0x42, 0x9e, 0x02, 0xb1, 0x02, 0x9a, 0xb0, 0x60, 0x51,
- 0xde, 0xcb, 0x3f, 0x38, 0xac, 0x16, 0x82, 0xd3, 0xb8, 0x67, 0x65, 0x38,
- 0x1b, 0xa2, 0xbb, 0x32, 0xfd, 0x0b, 0xa2, 0x73, 0x1e, 0xad, 0xef, 0x5b,
- 0x51, 0x3b, 0x37, 0xc5, 0x3b, 0x4e, 0xc6, 0x85, 0x2d, 0x8e, 0x7e, 0x21,
- 0x62, 0xe8, 0x40, 0x83, 0xde, 0x73, 0x6a, 0x5b, 0xfb, 0xbc, 0xd7, 0xb7,
- 0xcf, 0x36, 0xb3, 0x91, 0x99, 0x06, 0x3e, 0xf3, 0xd2, 0x1d, 0x59, 0x97,
- 0xa3, 0x74, 0x60, 0xcb, 0x7a, 0xe6, 0x77, 0x49, 0xb4, 0xc6, 0xd0, 0x9a,
- 0xee, 0x1f, 0xef, 0x44, 0xe8, 0xff, 0xef, 0x35, 0x75, 0x6b, 0xa5, 0x8d,
- 0xe4, 0xdf, 0x26, 0x27, 0x6f, 0x92, 0xf2, 0xfc, 0xef, 0x58, 0x5c, 0x76,
- 0xce, 0x23, 0xa5, 0xc2, 0x5e, 0x26, 0x1f, 0xb2, 0x48, 0xc6, 0x12, 0x25,
- 0x56, 0xbc, 0xcf, 0x97, 0x3e, 0xe3, 0x7b, 0x75, 0xea, 0xea, 0x9e, 0x0b,
- 0x23, 0xe6, 0xfc, 0x0b, 0x04, 0x7d, 0xc9, 0x07, 0xc4, 0x1e, 0xee, 0xdd,
- 0x91, 0x29, 0x63, 0xce, 0x90, 0x99, 0xd6, 0xcb, 0xc2, 0x1d, 0xa9, 0x7c,
- 0xaa, 0x56, 0x5b, 0xd8, 0x64, 0x1e, 0x45, 0xa2, 0x50, 0x93, 0xd0, 0x98,
- 0xd3, 0x3e, 0x7f, 0x7b, 0xcf, 0x22, 0x0b, 0xc3, 0x73, 0xe2, 0xda, 0x64,
- 0x3a, 0x27, 0x9e, 0x40, 0xab, 0xa4, 0x60, 0x7b, 0x26, 0xde, 0x50, 0xef,
- 0x99, 0x93, 0x87, 0x1c, 0x7f, 0xef, 0x50, 0x14, 0xe4, 0xc3, 0x5b, 0x5e,
- 0xa2, 0x10, 0xf9, 0x5c, 0xa3, 0x31, 0x3a, 0xe3, 0x60, 0x4d, 0xe6, 0xfe,
- 0xe5, 0x95, 0xd8, 0xb0, 0xd6, 0x9d, 0xbb, 0x17, 0x19, 0x85, 0x99, 0xf0,
- 0x7b, 0x5b, 0x74, 0xc7, 0x08, 0x48, 0x3c, 0x7f, 0x2c, 0x80, 0x91, 0x0e,
- 0x5d, 0x39, 0x1e, 0xc0, 0xe4, 0xea, 0x68, 0x64, 0x20, 0x51, 0xb5, 0x26,
- 0x89, 0x68, 0x39, 0x9d, 0xc3, 0xb2, 0x1f, 0x1d, 0x83, 0xfa, 0x0d, 0xdd,
- 0xd1, 0x97, 0x7d, 0xb0, 0x4c, 0xb1, 0xe3, 0x59, 0xf4, 0xd6, 0x64, 0xfd,
- 0x18, 0x14, 0x4c, 0x6e, 0x13, 0x51, 0x0d, 0x29, 0x85, 0x8c, 0x22, 0xd6,
- 0x32, 0x0d, 0x90, 0x75, 0xc3, 0x17, 0x39, 0x3b, 0x07, 0x30, 0x3a, 0x94,
- 0x9d, 0xed, 0x40, 0xb6, 0x09, 0xe7, 0x76, 0x55, 0xb3, 0x2f, 0xe7, 0xd5,
- 0x04, 0x72, 0x65, 0x20, 0x93, 0x27, 0xb1, 0x88, 0xf5, 0xce, 0x8e, 0xec,
- 0xf7, 0xec, 0x88, 0x76, 0x5d, 0xdb, 0x1d, 0xa1, 0x95, 0xd0, 0x0f, 0x99,
- 0x13, 0x42, 0x1a, 0xbb, 0x28, 0x91, 0x65, 0xe2, 0x28, 0xe5, 0xd7, 0xd0,
- 0x45, 0x74, 0x4f, 0x0c, 0xad, 0x93, 0xf4, 0xe6, 0x1f, 0x7e, 0x0a, 0x0b,
- 0xb1, 0x22, 0xa4, 0x55, 0x46, 0x48, 0x98, 0xd5, 0xd4, 0x53, 0x2d, 0x7f,
- 0x70, 0xcf, 0x55, 0x20, 0x97, 0x90, 0x28, 0x15, 0xd0, 0xe0, 0xd3, 0x84,
- 0x92, 0x6a, 0x7e, 0xc9, 0xaa, 0x52, 0x84, 0xc9, 0xc4, 0x2b, 0x37, 0xf0,
- 0xab, 0x44, 0x3b, 0x62, 0xf2, 0xef, 0xeb, 0x7a, 0x0e, 0x4e, 0x9c, 0x5f,
- 0xdc, 0x99, 0x65, 0xad, 0x7b, 0x71, 0xdf, 0xfc, 0x99, 0xf2, 0x73, 0xca,
- 0x05, 0x3c, 0x73, 0xf4, 0x06, 0x97, 0xc1, 0x59, 0x66, 0x88, 0xc9, 0x8c,
- 0x57, 0xeb, 0xe9, 0xb2, 0x04, 0x48, 0x89, 0xd4, 0xbd, 0x8b, 0xef, 0x90,
- 0x6b, 0xcc, 0xca, 0xe0, 0xe3, 0x64, 0x47, 0x0c, 0x7c, 0xf7, 0x2e, 0x5c,
- 0xab, 0x25, 0x34, 0xe2, 0x82, 0x9a, 0xda, 0x9b, 0xfa, 0x38, 0x76, 0xd8,
- 0x95, 0x82, 0xde, 0x93, 0x99, 0x90, 0xc3, 0x90, 0x24, 0xd3, 0xcb, 0x1e,
- 0x13, 0x34, 0x4a, 0xa7, 0x5d, 0x43, 0x89, 0x46, 0xc7, 0x10, 0xd5, 0xe6,
- 0x91, 0xea, 0x1f, 0x49, 0xa8, 0xbe, 0x70, 0x3d, 0x5a, 0xc9, 0x7c, 0x52,
- 0x72, 0xdd, 0x2c, 0x05, 0xb6, 0x61, 0x04, 0xb8, 0x89, 0x11, 0x7d, 0x51,
- 0x27, 0x7d, 0x36, 0x4c, 0x8f, 0x3f, 0x6e, 0x0d, 0x55, 0x59, 0x52, 0x0d,
- 0x48, 0x42, 0x2b, 0x09, 0xf8, 0x9a, 0xc4, 0x92, 0x29, 0x4a, 0x37, 0x52,
- 0x0c, 0x75, 0xfa, 0xc9, 0x83, 0x4e, 0xb3, 0x94, 0x34, 0x26, 0x23, 0xc6,
- 0x25, 0x81, 0x84, 0x96, 0x9d, 0xe3, 0x60, 0x64, 0x9e, 0xc8, 0xca, 0x01,
- 0xb8, 0xac, 0x75, 0x1c, 0xde, 0xf2, 0x47, 0x07, 0x36, 0xb2, 0xd6, 0xc6,
- 0x59, 0xa9, 0x8a, 0xf4, 0x31, 0xf4, 0xfb, 0x24, 0xba, 0x5d, 0x10, 0x30,
- 0xed, 0x0d, 0x7c, 0xe6, 0xe7, 0x56, 0x9a, 0x8b, 0xb8, 0x73, 0x0f, 0xff,
- 0xfa, 0xcb, 0xca, 0x5d, 0xba, 0x72, 0xe7, 0xd2, 0x95, 0x5b, 0x56, 0x7a,
- 0xab, 0x7e, 0x84, 0x30, 0xfe, 0xac, 0x7f, 0x1a, 0x7a, 0xe9, 0xfa, 0xd3,
- 0xf8, 0xa3, 0xef, 0xdc, 0xb6, 0xfc, 0xfa, 0xbb, 0x88, 0xdf, 0x8e, 0xb7,
- 0x19, 0x61, 0x53, 0x4b, 0xa9, 0xb8, 0x5a, 0x2a, 0x03, 0xab, 0x01, 0x0c,
- 0xb6, 0x3e, 0x46, 0xc8, 0x8c, 0x11, 0xa5, 0x64, 0xee, 0xf8, 0x44, 0x89,
- 0x83, 0x20, 0x1f, 0x6f, 0x02, 0x5d, 0x98, 0x82, 0xae, 0xa8, 0x38, 0x2b,
- 0xe8, 0x50, 0xed, 0xeb, 0x5b, 0x49, 0x0c, 0xfc, 0xb6, 0xab, 0xac, 0x99,
- 0xd1, 0xfa, 0x82, 0x29, 0x67, 0xc0, 0xdc, 0xcb, 0x63, 0x00, 0x1f, 0xfc,
- 0xde, 0x16, 0x2e, 0xe4, 0xb8, 0x87, 0xb2, 0x41, 0x98, 0xe4, 0xc2, 0x2c,
- 0x24, 0x31, 0x55, 0x06, 0x82, 0x76, 0x97, 0x98, 0x3e, 0x1d, 0x31, 0x09,
- 0x53, 0x6b, 0x12, 0x71, 0x90, 0xac, 0x6b, 0x4d, 0x11, 0x0e, 0x6c, 0x53,
- 0x74, 0x2c, 0xef, 0xe1, 0x58, 0x31, 0x1c, 0x16, 0xea, 0x51, 0x99, 0xe1,
- 0xc3, 0xc6, 0x4f, 0x96, 0x45, 0xd2, 0x84, 0xef, 0x25, 0x11, 0x9f, 0xd5,
- 0xc6, 0xbb, 0xd6, 0xdc, 0xc5, 0x87, 0x75, 0xad, 0xf9, 0x77, 0x61, 0x5b,
- 0xa8, 0xd9, 0xe8, 0xf6, 0x01, 0x6d, 0xa5, 0x88, 0xc3, 0xbb, 0xf4, 0xaa,
- 0x4a, 0x72, 0xa5, 0x4f, 0x67, 0xb7, 0x30, 0x77, 0x50, 0xbd, 0xaa, 0xb8,
- 0x16, 0xdc, 0xfd, 0xaa, 0x9c, 0x1a, 0xb8, 0x6d, 0x7b, 0x00, 0xfc, 0x6e,
- 0x97, 0xbb, 0xec, 0x19, 0x95, 0x9d, 0xa2, 0x3f, 0x2a, 0xf9, 0xb0, 0x3b,
- 0x26, 0x37, 0xa8, 0x8f, 0x1c, 0x15, 0xb7, 0xf7, 0x90, 0x31, 0x7d, 0xbc,
- 0x7c, 0xd0, 0x11, 0x10, 0xba, 0x22, 0x41, 0xeb, 0xce, 0x7f, 0xd0, 0xa5,
- 0xb9, 0x5e, 0x24, 0x68, 0xdd, 0xfa, 0xf7, 0x1f, 0xda, 0x3e, 0x91, 0x60,
- 0x37, 0xc6, 0x11, 0xa5, 0xa8, 0x8a, 0xfe, 0xf7, 0x15, 0xd9, 0xef, 0xf9,
- 0xce, 0xa5, 0x6a, 0x5c, 0x10, 0xed, 0x38, 0x68, 0xb3, 0xeb, 0x27, 0x89,
- 0x62, 0x86, 0x24, 0xf1, 0xec, 0x39, 0xb5, 0xf8, 0x72, 0x7d, 0x10, 0x35,
- 0xdb, 0xb2, 0x98, 0x37, 0xfe, 0x18, 0x39, 0xef, 0xc9, 0x7e, 0x7c, 0x0e,
- 0x18, 0xd0, 0x1f, 0x34, 0x87, 0xd0, 0x6a, 0x3d, 0x76, 0x66, 0xbc, 0xfb,
- 0x39, 0x80, 0xe4, 0xf8, 0x0d, 0x13, 0x32, 0x75, 0xab, 0x95, 0x3b, 0x71,
- 0x35, 0x3d, 0xb8, 0xf2, 0x02, 0x9c, 0xd9, 0xec, 0x4b, 0xba, 0xc7, 0xb0,
- 0x41, 0x8f, 0x6b, 0xea, 0x15, 0x83, 0x63, 0xb4, 0xaf, 0x8e, 0xe8, 0x92,
- 0xe1, 0x5e, 0x78, 0x9f, 0x2e, 0x97, 0x72, 0x7b, 0xde, 0x4f, 0xf2, 0x0c,
- 0xa5, 0x0d, 0x3c, 0x0a, 0x2e, 0x89, 0x3b, 0xe4, 0xe4, 0xa1, 0xf2, 0x83,
- 0x4b, 0x48, 0x22, 0xed, 0x0a, 0x58, 0x4a, 0xf7, 0x92, 0xfc, 0xdc, 0x16,
- 0x1b, 0xdd, 0x9e, 0x4c, 0xbe, 0xd9, 0xce, 0x9a, 0xa9, 0x5e, 0xe3, 0xdb,
- 0x2e, 0x7a, 0xde, 0x5a, 0xd9, 0xee, 0x69, 0x8e, 0x04, 0x09, 0x2a, 0x4e,
- 0x0e, 0xe2, 0xb7, 0x6e, 0xb7, 0x07, 0xd0, 0x3e, 0x2d, 0x42, 0xdb, 0xe4,
- 0xf4, 0x1b, 0x4f, 0x53, 0x4a, 0x83, 0xe8, 0xec, 0x3a, 0x96, 0x43, 0x1a,
- 0x34, 0x84, 0x63, 0xb6, 0x46, 0xdd, 0x7f, 0xb2, 0xdd, 0xe4, 0xa2, 0x53,
- 0x81, 0x01, 0x15, 0x11, 0xb3, 0xab, 0xe5, 0x1f, 0xbe, 0x9f, 0x5c, 0x2f,
- 0x74, 0x91, 0x49, 0xd0, 0x1c, 0xc5, 0x17, 0xdf, 0x3f, 0xe0, 0x25, 0x6c,
- 0x95, 0x2c, 0x2d, 0x3d, 0x80, 0xe9, 0x3e, 0x78, 0xc8, 0x0f, 0x1e, 0x31,
- 0xa3, 0x96, 0xa8, 0xbc, 0x86, 0x01, 0x93, 0xeb, 0x4c, 0xe2, 0x23, 0xa4,
- 0x64, 0xcf, 0x65, 0x18, 0x17, 0x15, 0xb5, 0xe1, 0x6b, 0x14, 0x19, 0x2c,
- 0x6b, 0x66, 0x62, 0x23, 0xdb, 0xae, 0xe4, 0xcf, 0xd4, 0x92, 0x6a, 0x73,
- 0x59, 0xde, 0x3b, 0xba, 0x54, 0x8a, 0x9f, 0xe0, 0x5a, 0xf0, 0x7c, 0x83,
- 0x53, 0xa5, 0x1f, 0x2f, 0x61, 0xd6, 0x90, 0xce, 0x7d, 0xcd, 0x41, 0xe2,
- 0xe3, 0x3c, 0xf1, 0x6b, 0xc4, 0x33, 0xf6, 0xec, 0x85, 0xd5, 0x8f, 0xee,
- 0x23, 0x0f, 0x04, 0x39, 0xce, 0xe7, 0x56, 0x9f, 0xba, 0xf7, 0x4a, 0x32,
- 0xd7, 0xd9, 0x52, 0x97, 0x07, 0x74, 0x41, 0x64, 0xc2, 0x64, 0x3a, 0xd4,
- 0x83, 0x31, 0x4c, 0x1e, 0x4c, 0x0a, 0x0c, 0x29, 0x61, 0x65, 0x6c, 0xa9,
- 0xe5, 0x20, 0x5e, 0x68, 0x2e, 0xeb, 0x82, 0x2f, 0xd3, 0xa9, 0xaa, 0xc8,
- 0xf7, 0x8d, 0x2e, 0xe5, 0xa2, 0xda, 0xed, 0x45, 0x70, 0x28, 0x5a, 0x56,
- 0xa0, 0xe0, 0xe0, 0xe2, 0x87, 0x5c, 0xe7, 0x02, 0x23, 0x45, 0x89, 0x07,
- 0x36, 0x42, 0xc9, 0x5b, 0xaf, 0xfa, 0x23, 0x7c, 0x56, 0x51, 0xe3, 0x0c,
- 0x8d, 0x95, 0x46, 0xfe, 0xf0, 0xe3, 0xf3, 0x7b, 0x30, 0x70, 0x8d, 0xf1,
- 0x86, 0x54, 0xea, 0x8e, 0x8f, 0xd4, 0x2d, 0xa2, 0x8c, 0xdb, 0x07, 0x1a,
- 0x09, 0x29, 0xc1, 0xad, 0x7d, 0x8c, 0xba, 0x0c, 0x42, 0x76, 0x1e, 0x71,
- 0xf2, 0xf7, 0x4b, 0x81, 0xb2, 0x03, 0x5e, 0xfe, 0x17, 0x2a, 0x1e, 0xf1,
- 0x05, 0x6b, 0x94, 0x21, 0x1c, 0x1d, 0x76, 0x8e, 0x3f, 0xc0, 0x73, 0x60,
- 0x36, 0x30, 0x7e, 0x62, 0x58, 0x36, 0x6f, 0x4b, 0xea, 0xe1, 0x2a, 0x5b,
- 0xb4, 0x7c, 0x8a, 0x7a, 0xe7, 0x0c, 0x95, 0x87, 0x10, 0x11, 0x94, 0xc9,
- 0xc8, 0x59, 0x65, 0xcb, 0x4d, 0xa0, 0xf3, 0x39, 0x6d, 0x35, 0x23, 0xf7,
- 0xf8, 0x03, 0xbc, 0xad, 0xa6, 0x25, 0xa3, 0xfb, 0x06, 0x2d, 0xe5, 0xc5,
- 0x2c, 0xbb, 0x6d, 0xe9, 0xe4, 0x1e, 0xf8, 0xd3, 0x30, 0xd9, 0x19, 0xd1,
- 0x03, 0xf7, 0xba, 0x28, 0x5e, 0x66, 0x23, 0x42, 0x4e, 0x61, 0x20, 0x27,
- 0x44, 0xb8, 0xa5, 0x82, 0xec, 0x41, 0x2e, 0x20, 0xe9, 0x46, 0xfb, 0x49,
- 0xee, 0x3b, 0xa6, 0x14, 0xb4, 0x51, 0xe5, 0x86, 0x17, 0x27, 0x5e, 0xb3,
- 0x0f, 0x9b, 0xa5, 0xf3, 0xec, 0xf6, 0xaf, 0x17, 0x2d, 0xb7, 0xcb, 0x1e,
- 0x25, 0x23, 0x04, 0xe4, 0xef, 0xd1, 0x7d, 0x46, 0x0f, 0x75, 0xd6, 0x22,
- 0x61, 0x85, 0x20, 0xa2, 0xe6, 0x33, 0x97, 0x9f, 0xa5, 0xa6, 0x30, 0x5b,
- 0x2c, 0xea, 0xe0, 0x21, 0x36, 0xe2, 0xfa, 0xf7, 0x44, 0xab, 0xbf, 0x4d,
- 0x0d, 0xcf, 0x88, 0xa6, 0x23, 0xd6, 0xe9, 0x35, 0xa7, 0x3d, 0x89, 0x59,
- 0x97, 0x7c, 0x63, 0xb8, 0x21, 0xdb, 0x28, 0xa8, 0xed, 0x4a, 0xc1, 0x54,
- 0x27, 0xbb, 0x1b, 0x85, 0x60, 0xb4, 0x20, 0x84, 0x2b, 0xd1, 0xed, 0xba,
- 0xc8, 0x9a, 0x94, 0x52, 0x55, 0xcd, 0x07, 0x14, 0x5f, 0x3d, 0xd3, 0x70,
- 0x2d, 0xb3, 0xe9, 0x0d, 0x17, 0x02, 0xa6, 0x38, 0x7f, 0x07, 0x83, 0x1f,
- 0x49, 0xe2, 0x14, 0x80, 0x0a, 0xea, 0xcd, 0xda, 0xba, 0x6f, 0x67, 0x97,
- 0x63, 0xa6, 0x89, 0x31, 0xe5, 0x8d, 0x68, 0x6b, 0x60, 0x14, 0x43, 0xe2,
- 0xbe, 0xd0, 0xb6, 0x63, 0xcd, 0x49, 0x9c, 0x44, 0xa2, 0x88, 0xf6, 0xed,
- 0x76, 0x17, 0x74, 0xb8, 0x29, 0x5c, 0xc2, 0xb6, 0x29, 0x39, 0xa1, 0xa1,
- 0x74, 0xcf, 0x33, 0x91, 0x9c, 0x5f, 0xca, 0x39, 0xf2, 0x41, 0x5b, 0xdd,
- 0x94, 0xdd, 0x5c, 0x11, 0x54, 0x73, 0xc3, 0x48, 0x18, 0xa1, 0x0d, 0x34,
- 0xaf, 0xeb, 0x15, 0x6d, 0xd8, 0x57, 0xaf, 0x8e, 0x8f, 0x6c, 0xfa, 0xc4,
- 0xff, 0xbb, 0x3d, 0xc6, 0x82, 0x57, 0xd3, 0x20, 0x50, 0x9f, 0xf1, 0x42,
- 0x3c, 0xf0, 0x17, 0x01, 0x14, 0xf9, 0x16, 0x7a, 0x8e, 0x7e, 0xdc, 0x42,
- 0x13, 0x39, 0x7a, 0xf3, 0xdd, 0xab, 0xb7, 0x27, 0x6f, 0x5e, 0x1f, 0xbd,
- 0x39, 0xfb, 0xc4, 0x8f, 0xd5, 0x88, 0xd4, 0x26, 0xab, 0xc3, 0x58, 0x31,
- 0xd4, 0x6d, 0x2f, 0x6f, 0x08, 0x56, 0x81, 0xcb, 0x01, 0x9a, 0x79, 0xca,
- 0x5f, 0x63, 0xbf, 0x39, 0xef, 0x21, 0x75, 0x78, 0x22, 0x2a, 0x75, 0x09,
- 0xc3, 0xde, 0x0c, 0x61, 0x32, 0x63, 0x76, 0x91, 0x72, 0x79, 0xc5, 0x9c,
- 0xcb, 0xa3, 0xdd, 0xa2, 0x1c, 0x0d, 0x65, 0x1e, 0xd5, 0x5e, 0xe9, 0x75,
- 0x0d, 0x8e, 0x70, 0xde, 0xca, 0xd6, 0x20, 0x1c, 0x71, 0xbf, 0x63, 0x40,
- 0x9b, 0x78, 0x9d, 0x35, 0x05, 0x36, 0x26, 0xf1, 0x89, 0x3a, 0xbd, 0x92,
- 0xda, 0xf4, 0xcc, 0x8f, 0x98, 0x47, 0xf8, 0x8c, 0xc8, 0xab, 0x2d, 0x71,
- 0x6b, 0x6b, 0x11, 0x06, 0xf5, 0x24, 0xbc, 0x59, 0xfc, 0xa8, 0xe6, 0xb5,
- 0x83, 0xed, 0xed, 0x9f, 0x9f, 0x43, 0xb8, 0xff, 0xfc, 0xc7, 0x03, 0x50,
- 0xc1, 0xcf, 0x21, 0x1c, 0x7e, 0xed, 0x0d, 0xc4, 0x65, 0x28, 0x2b, 0x98,
- 0x01, 0xe8, 0xd6, 0x2e, 0x27, 0xb9, 0x1f, 0xde, 0x9f, 0xbe, 0x3d, 0xf9,
- 0xe1, 0x6f, 0xbf, 0x71, 0x17, 0x5e, 0xbc, 0xe9, 0x8f, 0x48, 0xb4, 0xd0,
- 0xc6, 0x7f, 0xfe, 0x55, 0xbd, 0xad, 0xed, 0xae, 0xdd, 0xfe, 0x50, 0x22,
- 0xa7, 0xe4, 0x8d, 0x20, 0x0e, 0x8a, 0x40, 0x7a, 0xb8, 0x50, 0xab, 0x42,
- 0xf6, 0x38, 0x8b, 0x90, 0x0d, 0xfe, 0x66, 0x79, 0xa0, 0xee, 0xe0, 0xb6,
- 0x85, 0xc1, 0x71, 0x74, 0x51, 0x10, 0x48, 0x8b, 0x8b, 0x10, 0x1e, 0x0a,
- 0x84, 0x10, 0x30, 0x82, 0x86, 0x8c, 0x23, 0x44, 0x79, 0x27, 0x76, 0x41,
- 0x5e, 0x1c, 0x1f, 0xff, 0xfa, 0x55, 0x90, 0x65, 0xe8, 0xac, 0x83, 0xb9,
- 0x25, 0x8a, 0xd2, 0xce, 0x68, 0x64, 0x85, 0x7a, 0x3d, 0x03, 0xeb, 0xca,
- 0x12, 0xbc, 0x39, 0x91, 0xd1, 0x3c, 0x27, 0x6d, 0x62, 0x54, 0x67, 0x46,
- 0x07, 0x48, 0xe1, 0xcb, 0xd4, 0xd2, 0x34, 0x18, 0x58, 0xbd, 0xcd, 0x09,
- 0x0f, 0xf5, 0xe7, 0x41, 0x3c, 0xa7, 0x7b, 0x88, 0xb3, 0x21, 0x78, 0x41,
- 0x39, 0x09, 0x9f, 0xb2, 0x24, 0x4b, 0x0b, 0x41, 0x89, 0x28, 0x52, 0x4e,
- 0xbe, 0x60, 0xa6, 0x67, 0x06, 0x12, 0x82, 0x79, 0x01, 0x55, 0xc5, 0xf0,
- 0xbc, 0x2a, 0xaf, 0x3f, 0x50, 0x12, 0x29, 0x8e, 0x28, 0x89, 0x94, 0x0a,
- 0xd8, 0x04, 0x1d, 0x81, 0xc6, 0x24, 0x88, 0x72, 0x2e, 0x7b, 0x3f, 0xaf,
- 0x63, 0xa3, 0xa3, 0x5a, 0xac, 0x7c, 0x17, 0xc3, 0xf0, 0xcc, 0x8e, 0x88,
- 0xb4, 0x95, 0x4a, 0x2e, 0xe5, 0x7d, 0x38, 0x28, 0xb6, 0xb6, 0x98, 0x52,
- 0x31, 0x0c, 0xa2, 0xa1, 0x22, 0xb8, 0xe0, 0x01, 0xee, 0xba, 0xa9, 0xb3,
- 0xf9, 0x45, 0x0f, 0x9c, 0x92, 0xcf, 0x31, 0x3c, 0x5f, 0x93, 0x20, 0x3a,
- 0xd5, 0x5a, 0x4e, 0xd4, 0x51, 0x38, 0x90, 0xd7, 0xc8, 0xa7, 0x15, 0x1a,
- 0x38, 0x85, 0x14, 0x6d, 0x4e, 0x22, 0xb8, 0x87, 0x65, 0x1f, 0x36, 0xbe,
- 0x49, 0x80, 0xb0, 0xd1, 0xb9, 0xee, 0xed, 0x67, 0xb3, 0x30, 0x41, 0x1b,
- 0xb0, 0xe2, 0x7e, 0xee, 0xba, 0xc8, 0x16, 0xa3, 0xdb, 0x44, 0x51, 0xe2,
- 0x78, 0xa7, 0x5a, 0xcf, 0xc8, 0x37, 0x0f, 0x69, 0xce, 0x22, 0x26, 0x31,
- 0xdd, 0x26, 0x0d, 0x32, 0x47, 0x9a, 0x44, 0x50, 0x89, 0x04, 0x9e, 0x12,
- 0x3b, 0x1b, 0x4b, 0x34, 0xf5, 0x06, 0x1e, 0xb6, 0xfc, 0x80, 0x91, 0x46,
- 0x62, 0x66, 0xcc, 0x63, 0x70, 0x5b, 0x30, 0x5c, 0xa0, 0xdf, 0x9e, 0x1d,
- 0x28, 0xc5, 0xfe, 0xf1, 0x28, 0x59, 0x90, 0x53, 0xdc, 0xd4, 0x2c, 0xe6,
- 0xfd, 0x8d, 0xa3, 0xab, 0x10, 0xc1, 0x91, 0x23, 0x9b, 0x0e, 0x84, 0x9c,
- 0x88, 0x16, 0x54, 0x90, 0xa6, 0x2a, 0x3b, 0xf7, 0x10, 0x79, 0xdc, 0x02,
- 0xec, 0x10, 0x0a, 0x40, 0x97, 0x7c, 0x6b, 0xca, 0x1e, 0xb2, 0x79, 0x0d,
- 0x82, 0xcd, 0x41, 0xe9, 0xfc, 0xe7, 0x8a, 0x6a, 0xa2, 0x4e, 0x55, 0x40,
- 0x1f, 0xcd, 0xcb, 0x3a, 0x86, 0x9d, 0x7e, 0x8e, 0x28, 0xfe, 0xac, 0xe9,
- 0xcb, 0x57, 0x72, 0x03, 0x52, 0x07, 0xa0, 0x04, 0x10, 0x43, 0x51, 0x05,
- 0x52, 0x08, 0x8e, 0x8f, 0x94, 0x24, 0x1c, 0x22, 0x07, 0xc2, 0xa2, 0x90,
- 0xc4, 0xd0, 0xa2, 0xb9, 0x26, 0xa1, 0x94, 0xe0, 0xa9, 0x32, 0x09, 0x93,
- 0x4e, 0x6d, 0x49, 0x55, 0x26, 0x0b, 0x5c, 0x91, 0x07, 0x49, 0x32, 0x38,
- 0x38, 0xd8, 0x1d, 0x24, 0x3d, 0x66, 0x4e, 0xba, 0x46, 0xe1, 0xe0, 0x3a,
- 0x38, 0xd8, 0xc1, 0x63, 0x1c, 0xc8, 0x9b, 0xdd, 0x09, 0x6a, 0x06, 0x75,
- 0xe4, 0xa6, 0x74, 0x68, 0xf6, 0xee, 0xfd, 0x64, 0x72, 0xfc, 0xfe, 0xcb,
- 0x17, 0x87, 0xdf, 0x1e, 0xbd, 0x79, 0x99, 0x3c, 0xf7, 0x32, 0x78, 0x3e,
- 0x8f, 0x64, 0x7a, 0x77, 0x0b, 0x97, 0x07, 0x09, 0x90, 0x03, 0x4d, 0x1e,
- 0x1a, 0x74, 0x70, 0x21, 0xf3, 0x2e, 0xf7, 0xba, 0xd2, 0x46, 0x90, 0x11,
- 0xe8, 0x37, 0xb1, 0x90, 0xaa, 0x90, 0x05, 0x49, 0xd0, 0xde, 0x80, 0xac,
- 0x1b, 0x7a, 0x1d, 0x88, 0x82, 0xe3, 0x1b, 0x2a, 0x35, 0x65, 0xd6, 0xe0,
- 0x47, 0x82, 0x10, 0x2a, 0xc0, 0x2b, 0x7a, 0x0b, 0xc7, 0x3a, 0xc6, 0x22,
- 0x25, 0x3c, 0xdb, 0x8e, 0xf4, 0xde, 0xaa, 0xc6, 0xaa, 0x41, 0xa1, 0x30,
- 0xe6, 0x7c, 0x20, 0x58, 0x18, 0x01, 0xa9, 0xa1, 0x00, 0x8a, 0x10, 0x8d,
- 0xa6, 0x11, 0x36, 0x83, 0x3d, 0x00, 0xe2, 0x8c, 0xce, 0x3b, 0x15, 0xd8,
- 0x54, 0x0c, 0xc6, 0xe1, 0xf6, 0xf1, 0x05, 0xdb, 0xa4, 0x77, 0x96, 0x7d,
- 0xc5, 0xf1, 0xeb, 0xa2, 0x89, 0x3d, 0x3a, 0x5c, 0x3e, 0x4d, 0x9b, 0x98,
- 0xf3, 0xc8, 0x9b, 0xf3, 0xd6, 0x01, 0xac, 0x35, 0x69, 0x55, 0xd7, 0x00,
- 0x3f, 0xb8, 0x2c, 0x56, 0xcd, 0x1c, 0xe0, 0x6f, 0x97, 0xf5, 0x87, 0x3c,
- 0x08, 0xac, 0x36, 0x4a, 0xe1, 0x8c, 0xbe, 0x36, 0x2d, 0xa5, 0x48, 0xf2,
- 0x1e, 0x26, 0x45, 0x6d, 0xfe, 0x44, 0xc1, 0x67, 0x7a, 0xbf, 0x5a, 0xd5,
- 0xf4, 0x7d, 0x3d, 0x35, 0xdb, 0x55, 0x64, 0x84, 0xa3, 0x87, 0x5c, 0x9c,
- 0x51, 0xd4, 0xe0, 0x20, 0x95, 0xa1, 0xca, 0xf9, 0x85, 0x79, 0xd9, 0x0e,
- 0xfd, 0xdf, 0x8f, 0x4f, 0xbe, 0x7e, 0xf9, 0xea, 0x6d, 0xf2, 0xbc, 0x0d,
- 0xc2, 0x1b, 0xa1, 0xbe, 0x58, 0x72, 0x67, 0x3b, 0x29, 0x72, 0x68, 0x11,
- 0xff, 0x9a, 0xee, 0x85, 0x12, 0x94, 0x85, 0xd3, 0xdb, 0x45, 0x62, 0x75,
- 0x39, 0xfc, 0xcc, 0x8d, 0xa1, 0xb3, 0x1b, 0x86, 0x8d, 0xcd, 0x56, 0xd3,
- 0x2c, 0xf9, 0xc7, 0xbc, 0xbc, 0xac, 0x43, 0x83, 0x11, 0xed, 0xaf, 0x7d,
- 0x79, 0x28, 0x52, 0xab, 0xc5, 0xc0, 0xad, 0x99, 0x28, 0x20, 0x28, 0x51,
- 0x5e, 0x8a, 0x40, 0xf9, 0x67, 0x80, 0x4b, 0x8a, 0xb9, 0x93, 0xbc, 0xa0,
- 0x80, 0x04, 0xd5, 0xeb, 0x36, 0x21, 0x50, 0x5d, 0x65, 0xb7, 0x88, 0x81,
- 0x7a, 0x59, 0x52, 0x11, 0xda, 0xcc, 0x9a, 0x34, 0x6a, 0x49, 0x3b, 0x14,
- 0x82, 0x37, 0x0c, 0x28, 0xa8, 0x0c, 0x90, 0xd2, 0x35, 0x4e, 0xf9, 0x88,
- 0xe3, 0xe4, 0x7b, 0x2a, 0xfa, 0x45, 0xab, 0x77, 0x5e, 0x9a, 0x1f, 0x28,
- 0x90, 0x11, 0xc9, 0xda, 0x33, 0xb4, 0xf4, 0xed, 0xd1, 0xdf, 0xcc, 0xe6,
- 0x40, 0x07, 0x62, 0x44, 0xea, 0xbe, 0x8d, 0x21, 0x40, 0xae, 0x4c, 0x32,
- 0x06, 0xfa, 0xc4, 0xfe, 0xd4, 0x2d, 0x47, 0x0b, 0xa0, 0x2b, 0xf0, 0x22,
- 0xe1, 0xf8, 0x73, 0xad, 0x8a, 0x69, 0x05, 0x59, 0x8e, 0x0c, 0x63, 0x46,
- 0x6e, 0xf0, 0x56, 0x45, 0xc2, 0xcf, 0x52, 0xc6, 0x44, 0xe7, 0x23, 0x29,
- 0x47, 0x31, 0x94, 0x91, 0x38, 0x1d, 0x9a, 0x41, 0x2a, 0x20, 0x31, 0xa5,
- 0xf3, 0xbb, 0x5f, 0x32, 0x5b, 0xf0, 0xca, 0x50, 0xea, 0x05, 0xc4, 0x3f,
- 0xd3, 0x20, 0xd0, 0x21, 0xd8, 0x64, 0xc5, 0xdb, 0x87, 0x2a, 0xd9, 0xdd,
- 0x54, 0x03, 0xc2, 0x37, 0xa4, 0x26, 0xd8, 0xd9, 0x83, 0x2c, 0x39, 0x45,
- 0xeb, 0xfc, 0x1e, 0xb5, 0x2d, 0xae, 0xd2, 0xea, 0x83, 0x58, 0x30, 0x6e,
- 0xdc, 0x42, 0x73, 0x26, 0xcd, 0x3c, 0x44, 0x15, 0xbe, 0xd1, 0xc2, 0x7a,
- 0xba, 0x01, 0x07, 0x5a, 0x1d, 0x8d, 0xa0, 0x18, 0x70, 0xb1, 0x98, 0x53,
- 0xf5, 0x65, 0x89, 0x8b, 0x84, 0x3e, 0x94, 0x8a, 0x69, 0xe6, 0x97, 0x37,
- 0x93, 0x49, 0x04, 0x46, 0x05, 0xc7, 0xcb, 0x3c, 0x68, 0xf6, 0x91, 0x25,
- 0x55, 0xf3, 0xf3, 0xec, 0xe4, 0xf0, 0xe4, 0xd8, 0xfc, 0x72, 0xf4, 0xd5,
- 0xab, 0x1f, 0x9c, 0x36, 0x2b, 0x55, 0xcb, 0x79, 0x23, 0x6c, 0x38, 0x2c,
- 0x95, 0x87, 0x78, 0x3a, 0x6c, 0xa9, 0x11, 0x9c, 0x0e, 0x85, 0x4c, 0xa8,
- 0x96, 0x12, 0xca, 0x01, 0xac, 0x9f, 0xb8, 0x7b, 0x5e, 0xc5, 0x73, 0x82,
- 0xc0, 0xcb, 0x6f, 0x7d, 0x8c, 0x54, 0x9f, 0xcf, 0x71, 0xab, 0x36, 0xc9,
- 0xd0, 0x51, 0xdc, 0xab, 0x96, 0x64, 0x4e, 0x16, 0x01, 0x5f, 0xe3, 0x6d,
- 0xcb, 0xf4, 0x3c, 0x28, 0x0a, 0x8f, 0xc9, 0x35, 0x14, 0x8e, 0x3f, 0xd4,
- 0xe6, 0x14, 0x79, 0x44, 0x6e, 0x57, 0x1c, 0x72, 0x57, 0xc4, 0x05, 0x77,
- 0xcb, 0xd0, 0x9b, 0xa4, 0x1a, 0x6a, 0x1a, 0x43, 0x04, 0x8d, 0x64, 0x63,
- 0x15, 0x2d, 0x24, 0xd2, 0x8e, 0x20, 0x43, 0x40, 0x16, 0xb6, 0xb9, 0xf6,
- 0x9c, 0x64, 0x01, 0x44, 0x22, 0xa0, 0xe0, 0x15, 0x18, 0xa0, 0x3c, 0x18,
- 0x62, 0x11, 0xb2, 0xa2, 0xa8, 0x3a, 0x8c, 0xe6, 0x81, 0x7f, 0xdc, 0x20,
- 0x54, 0x13, 0x40, 0xaf, 0xb6, 0x90, 0x2e, 0x2d, 0x97, 0x46, 0x9f, 0x2c,
- 0x43, 0x13, 0x2a, 0xf6, 0x40, 0x8c, 0x54, 0x6d, 0x4d, 0xb9, 0x5e, 0xd3,
- 0x75, 0xb8, 0x00, 0x41, 0x0e, 0x38, 0x92, 0x09, 0xeb, 0x47, 0xeb, 0xda,
- 0x80, 0x25, 0xe3, 0x1f, 0xab, 0xfc, 0x3a, 0x25, 0x08, 0x16, 0x73, 0xc1,
- 0x8e, 0x46, 0xfc, 0x52, 0xa7, 0x8d, 0xf4, 0x57, 0x35, 0x92, 0xb6, 0x5b,
- 0x79, 0xfc, 0x6b, 0x1a, 0x79, 0xdc, 0x69, 0xe3, 0xea, 0x57, 0x35, 0x32,
- 0x52, 0xbd, 0xe6, 0x93, 0x4f, 0x8e, 0x7e, 0x78, 0x75, 0x96, 0x1c, 0x9e,
- 0xbc, 0x74, 0x07, 0xec, 0x8c, 0x94, 0x6b, 0x26, 0x01, 0x73, 0x65, 0x15,
- 0x86, 0x06, 0x51, 0xab, 0xda, 0x16, 0xdf, 0xe4, 0xe8, 0x4a, 0xc4, 0x20,
- 0xd5, 0x8a, 0xec, 0x92, 0x57, 0x0c, 0x99, 0x8c, 0x08, 0x28, 0xf2, 0xd2,
- 0x78, 0x50, 0x56, 0x5e, 0x12, 0x4f, 0xed, 0x72, 0x13, 0x81, 0xc7, 0x9f,
- 0x56, 0x5c, 0x39, 0xc7, 0xb6, 0x58, 0x30, 0x86, 0x10, 0xe1, 0x76, 0x34,
- 0x2d, 0x53, 0xbc, 0x43, 0x70, 0x26, 0x5e, 0x0d, 0x67, 0x3a, 0xa1, 0x7c,
- 0x32, 0x6a, 0x4b, 0xde, 0xe8, 0x70, 0xfc, 0xac, 0xa6, 0x5d, 0xcd, 0x23,
- 0x6d, 0x91, 0x3b, 0x11, 0xba, 0x30, 0x3a, 0xdc, 0xc7, 0x33, 0x5b, 0x68,
- 0x0b, 0x82, 0x5d, 0x51, 0xb6, 0x44, 0xba, 0x88, 0xb6, 0x69, 0x9b, 0xb0,
- 0xfd, 0xec, 0x49, 0xdc, 0x40, 0x9a, 0xcf, 0xd9, 0x45, 0x20, 0xb9, 0x22,
- 0xf9, 0x2f, 0x9e, 0x75, 0x69, 0xdf, 0x1a, 0x13, 0xcc, 0xf4, 0xe7, 0x14,
- 0xd9, 0x35, 0xe3, 0x63, 0x51, 0xdf, 0x19, 0x89, 0xf9, 0x96, 0xe4, 0x03,
- 0x98, 0xfe, 0x04, 0x7a, 0xda, 0xbd, 0xf9, 0x48, 0x83, 0xf0, 0x15, 0xdf,
- 0xba, 0xac, 0xac, 0x31, 0x55, 0xcd, 0xd0, 0xce, 0x3d, 0xa1, 0x60, 0x62,
- 0x7a, 0x51, 0xe7, 0x14, 0xfb, 0x12, 0x9e, 0x31, 0x09, 0x50, 0xd2, 0x5e,
- 0x15, 0x9b, 0x4c, 0x2a, 0x83, 0x65, 0xb7, 0xcb, 0x79, 0x3e, 0xcd, 0x29,
- 0x84, 0x4e, 0x61, 0x89, 0x4d, 0x57, 0xb4, 0x5e, 0x23, 0x2e, 0x63, 0xdd,
- 0xd1, 0x8b, 0x7c, 0xb4, 0x22, 0xbd, 0x39, 0x67, 0x25, 0x2d, 0x20, 0x83,
- 0x86, 0x9a, 0x75, 0x3b, 0x4f, 0x01, 0x8b, 0x88, 0xb1, 0x1a, 0xba, 0x61,
- 0x54, 0x1e, 0xdd, 0x81, 0x38, 0x3e, 0x8d, 0x43, 0xe5, 0x78, 0x2c, 0x72,
- 0xbf, 0xda, 0x1b, 0x14, 0x5d, 0x25, 0xb1, 0xa6, 0x86, 0x33, 0x0b, 0xfd,
- 0x28, 0xf6, 0xb9, 0x92, 0x20, 0x2d, 0xa1, 0x43, 0x61, 0x82, 0xe7, 0x31,
- 0x5f, 0x4d, 0xdd, 0x71, 0x68, 0x3e, 0xe9, 0xf4, 0xa2, 0x9d, 0x30, 0xf4,
- 0xb4, 0xeb, 0xc1, 0x77, 0xc0, 0x73, 0x17, 0xd4, 0x07, 0x05, 0x62, 0xdc,
- 0xdf, 0xcb, 0xd3, 0x2e, 0xbd, 0x78, 0xee, 0x7d, 0xea, 0xc9, 0x3e, 0xf9,
- 0xa9, 0x18, 0xd8, 0x33, 0x00, 0xff, 0x88, 0x35, 0xc8, 0x68, 0x59, 0x73,
- 0x61, 0xa8, 0xf2, 0x09, 0xc5, 0x8f, 0x91, 0x91, 0x9c, 0x56, 0x7f, 0xaa,
- 0xa3, 0x37, 0xaa, 0x80, 0x6f, 0xdf, 0x7c, 0x26, 0xdd, 0x22, 0xfe, 0x9f,
- 0xd5, 0x61, 0xc2, 0xae, 0xcc, 0x2d, 0x1d, 0x72, 0x6b, 0xfc, 0x11, 0x92,
- 0x99, 0x08, 0x19, 0x51, 0xff, 0x96, 0x37, 0x02, 0x60, 0x93, 0x8e, 0x3f,
- 0x19, 0x2b, 0xb6, 0xaa, 0x18, 0xf8, 0xca, 0xc9, 0xa4, 0x5a, 0x1e, 0x8e,
- 0xa7, 0x0b, 0x79, 0x05, 0x10, 0xe6, 0xc9, 0xeb, 0x32, 0x28, 0x9f, 0x51,
- 0x5e, 0x50, 0x9c, 0x0f, 0xe1, 0xd7, 0x21, 0x0f, 0x89, 0xd7, 0xc7, 0x08,
- 0xe9, 0x97, 0x22, 0x8b, 0xb9, 0x46, 0x59, 0x74, 0x95, 0xbb, 0xd2, 0xf0,
- 0x00, 0xf2, 0x5c, 0xf4, 0x22, 0x38, 0xba, 0x75, 0xd8, 0xdd, 0xb1, 0xeb,
- 0xc0, 0x15, 0xcc, 0x09, 0x64, 0x11, 0xab, 0xf0, 0x3d, 0x95, 0x55, 0xb8,
- 0x49, 0x89, 0xb7, 0x58, 0xe4, 0x22, 0x67, 0x85, 0xb3, 0xb1, 0x1e, 0x90,
- 0x79, 0xc2, 0x5c, 0x4e, 0x42, 0x43, 0x44, 0x48, 0x31, 0x84, 0x05, 0x4e,
- 0xeb, 0xe2, 0xcc, 0x73, 0xb9, 0xcb, 0x86, 0x64, 0x5c, 0xb6, 0xcc, 0x93,
- 0x83, 0xad, 0x88, 0x31, 0x5f, 0x67, 0x55, 0x8f, 0x9b, 0x01, 0xb8, 0xdb,
- 0x9e, 0x50, 0xed, 0x80, 0x37, 0xbd, 0xf9, 0xec, 0xda, 0xf9, 0xdc, 0x10,
- 0xa1, 0x9c, 0xbe, 0x98, 0x4c, 0x94, 0x4c, 0x0e, 0x43, 0x8a, 0x50, 0x5d,
- 0x1d, 0x11, 0xf7, 0x02, 0x34, 0x16, 0xd1, 0xd4, 0xa4, 0x91, 0x4e, 0xa4,
- 0xe1, 0x2e, 0xf3, 0xba, 0x97, 0x0c, 0x99, 0x87, 0xf9, 0xe8, 0x7c, 0x99,
- 0xae, 0x74, 0xc6, 0x37, 0xeb, 0x57, 0x32, 0xae, 0x35, 0x70, 0xd0, 0x12,
- 0xd6, 0x99, 0x00, 0xbd, 0x1a, 0xf1, 0x3a, 0xc3, 0xde, 0x61, 0xf8, 0x11,
- 0x18, 0x99, 0x37, 0x90, 0xfd, 0x70, 0xd2, 0xdf, 0xf1, 0xac, 0x86, 0xff,
- 0xd4, 0xa4, 0xbf, 0x8b, 0x4c, 0xfa, 0x91, 0x3b, 0x38, 0xdc, 0x59, 0xb2,
- 0xb7, 0xf7, 0x54, 0x93, 0xd6, 0xd9, 0xf7, 0x04, 0x58, 0x45, 0xcb, 0x9b,
- 0x5c, 0x8f, 0xe6, 0xb9, 0x91, 0xd4, 0x7b, 0x0a, 0x0c, 0x1e, 0xee, 0xf0,
- 0x7a, 0x5d, 0x3d, 0xb6, 0x5d, 0x19, 0xa5, 0x08, 0x76, 0x55, 0xa3, 0x9d,
- 0x30, 0xf7, 0x09, 0x98, 0x92, 0x9a, 0x27, 0x61, 0x59, 0xba, 0x41, 0x30,
- 0x7a, 0x6f, 0x10, 0xa9, 0x8e, 0xc2, 0xeb, 0xe7, 0x89, 0xf5, 0x0d, 0x6c,
- 0xef, 0x69, 0x1c, 0xdd, 0x0b, 0xe2, 0xd1, 0xf3, 0x6c, 0x41, 0x94, 0x39,
- 0xcb, 0x80, 0x78, 0xeb, 0xdc, 0x5a, 0x8c, 0x01, 0x74, 0x51, 0xa5, 0x54,
- 0x2e, 0x6a, 0x9e, 0xde, 0x45, 0x30, 0xb9, 0xc5, 0xfd, 0xc9, 0x26, 0xb8,
- 0x14, 0xa3, 0x2f, 0x60, 0x6c, 0x22, 0x29, 0x41, 0xac, 0x1a, 0x30, 0x8d,
- 0x50, 0xe8, 0xdc, 0x85, 0xf5, 0x3f, 0x4a, 0xaf, 0x01, 0xa4, 0x1e, 0x3c,
- 0x51, 0x4d, 0x37, 0x0f, 0x38, 0x0e, 0x6e, 0xbf, 0xfb, 0xd4, 0x6d, 0x91,
- 0xdd, 0x07, 0x68, 0x76, 0x0c, 0xb3, 0xe9, 0xad, 0x9e, 0xf2, 0x12, 0x0d,
- 0x0b, 0x90, 0x74, 0x29, 0x84, 0x1b, 0xe4, 0xa1, 0x25, 0xb8, 0xf2, 0xa4,
- 0xc7, 0x5d, 0xe6, 0xc6, 0xa7, 0x60, 0x76, 0x52, 0x31, 0x68, 0x9c, 0x9c,
- 0x90, 0x6b, 0xa9, 0x55, 0x25, 0x8d, 0x35, 0xbb, 0xd4, 0x79, 0xbd, 0xdb,
- 0x84, 0xfb, 0xcc, 0xed, 0xb0, 0x8e, 0x49, 0x23, 0x60, 0xb7, 0x95, 0xc9,
- 0xda, 0x8b, 0x46, 0xfd, 0xa7, 0x59, 0xf2, 0xf6, 0xe8, 0xec, 0x2d, 0x05,
- 0x7b, 0x11, 0x03, 0x08, 0xf4, 0xb1, 0xb4, 0xda, 0xb2, 0x40, 0xbb, 0xc2,
- 0xce, 0x9c, 0x7c, 0xe2, 0x18, 0x04, 0xc3, 0x9c, 0xdb, 0xfd, 0xe6, 0x3f,
- 0xf5, 0x3d, 0x9b, 0x4c, 0xc3, 0x0b, 0xee, 0xe2, 0x3a, 0xda, 0x00, 0xec,
- 0x7b, 0x7b, 0x2e, 0x14, 0xd9, 0x4c, 0xfc, 0x32, 0xa3, 0xbb, 0xcf, 0xa6,
- 0x8d, 0x8e, 0x25, 0x05, 0x46, 0x13, 0xc4, 0xd5, 0xf6, 0x81, 0x87, 0x38,
- 0x16, 0xbe, 0xac, 0x22, 0x97, 0xa4, 0x74, 0xad, 0x72, 0x01, 0x0f, 0xc1,
- 0x81, 0xad, 0x73, 0x6f, 0x92, 0xd7, 0xc3, 0xd1, 0xf7, 0x52, 0xf2, 0xe6,
- 0xd1, 0xce, 0x4e, 0x24, 0xbd, 0x2f, 0x3d, 0x37, 0x4c, 0x55, 0xa4, 0x3c,
- 0x41, 0x1e, 0xe0, 0xec, 0x6f, 0xda, 0x2f, 0x92, 0x3d, 0x6b, 0x28, 0x22,
- 0xa3, 0x0b, 0xf8, 0xe6, 0xb0, 0x62, 0xa1, 0xc6, 0xb1, 0xc7, 0x3c, 0xe6,
- 0x7b, 0x42, 0x42, 0xb0, 0xc1, 0xa6, 0x6d, 0xe6, 0xc2, 0x30, 0x09, 0x74,
- 0xf9, 0xd2, 0xf5, 0xe4, 0xaa, 0x49, 0x89, 0x4f, 0x37, 0x18, 0x59, 0xc0,
- 0xbf, 0xf7, 0x1e, 0x87, 0x14, 0x31, 0x39, 0x3b, 0x79, 0x2b, 0x14, 0x16,
- 0x5e, 0xcd, 0xbc, 0x22, 0xf4, 0x88, 0x43, 0x2c, 0x1d, 0x86, 0xb0, 0xb5,
- 0x5c, 0x65, 0x0f, 0xed, 0xda, 0x3a, 0x2c, 0x5e, 0xaf, 0xcc, 0x01, 0xde,
- 0x02, 0x2e, 0x43, 0xa6, 0xf6, 0x9d, 0xc0, 0xe8, 0x68, 0xcd, 0x21, 0x3d,
- 0x97, 0xde, 0x4b, 0x7c, 0xcc, 0x4e, 0xf8, 0xfc, 0x32, 0x6c, 0x0c, 0xe8,
- 0x48, 0x00, 0x64, 0x50, 0xb2, 0x48, 0x72, 0x8b, 0x34, 0x02, 0x3e, 0xa0,
- 0x45, 0x3e, 0x44, 0x27, 0xae, 0xa6, 0x14, 0x73, 0x78, 0x99, 0xa7, 0x55,
- 0x9b, 0xf1, 0x31, 0x85, 0xd8, 0x72, 0xcd, 0x25, 0x89, 0x6e, 0x4e, 0xd9,
- 0xbf, 0x33, 0x0d, 0xea, 0xd2, 0x95, 0x95, 0x56, 0x99, 0x91, 0x8b, 0x53,
- 0x15, 0x09, 0x27, 0x7f, 0xbb, 0x5b, 0xff, 0xf4, 0xe4, 0xed, 0x99, 0xbd,
- 0xf3, 0xd1, 0x2d, 0x7d, 0xd0, 0x39, 0x3d, 0x48, 0xd9, 0x13, 0x0c, 0x47,
- 0xb9, 0xd9, 0xb0, 0x05, 0x81, 0x93, 0x4d, 0x74, 0x05, 0xde, 0x12, 0x6a,
- 0x47, 0x1b, 0x32, 0xc7, 0x16, 0xb0, 0x74, 0x25, 0x43, 0xe2, 0x5a, 0x7e,
- 0xc3, 0x16, 0x1a, 0xba, 0x68, 0x7a, 0xd0, 0xb5, 0x9d, 0xd0, 0xbb, 0xbf,
- 0x1b, 0x52, 0x06, 0x34, 0xec, 0xb7, 0x47, 0x93, 0x33, 0x1e, 0x39, 0x7e,
- 0x0b, 0x46, 0xce, 0x40, 0x57, 0xf2, 0x61, 0xe8, 0x18, 0xb4, 0x94, 0x81,
- 0x28, 0x74, 0xd8, 0xf6, 0xd0, 0x7e, 0xa4, 0xb0, 0xec, 0xfe, 0xbe, 0x97,
- 0x72, 0x40, 0x4c, 0x53, 0xe8, 0x84, 0xce, 0x37, 0x7d, 0x30, 0x90, 0x5e,
- 0x06, 0x46, 0x2c, 0x9b, 0x69, 0xa9, 0x73, 0xaf, 0x85, 0x47, 0xae, 0x85,
- 0x25, 0x6e, 0x2a, 0x69, 0xe0, 0x15, 0x83, 0xac, 0xcd, 0xe9, 0xc3, 0x91,
- 0x92, 0x0a, 0x5d, 0x16, 0x4c, 0x14, 0xfc, 0x9c, 0x6b, 0xe7, 0xb1, 0x35,
- 0x12, 0xab, 0xa8, 0xe0, 0x0d, 0x05, 0x1f, 0x6b, 0xd8, 0x2f, 0x49, 0x1b,
- 0x1d, 0x92, 0xdb, 0x67, 0x4a, 0xff, 0x12, 0x29, 0x03, 0x36, 0x77, 0x81,
- 0xe7, 0xee, 0xdf, 0x0b, 0x46, 0xd8, 0xca, 0x8b, 0x15, 0xd7, 0x5f, 0x48,
- 0xab, 0x39, 0x8a, 0x55, 0x1a, 0x26, 0x52, 0x31, 0xc6, 0xc5, 0x4d, 0x11,
- 0xab, 0xab, 0xe5, 0xf5, 0x21, 0xf7, 0x0f, 0x2c, 0x8e, 0x53, 0x77, 0x51,
- 0xa3, 0xd0, 0x25, 0x1d, 0x62, 0x27, 0xeb, 0xc3, 0x04, 0x6d, 0xaf, 0x89,
- 0x71, 0x72, 0x9a, 0x55, 0x54, 0x4a, 0xc7, 0xd0, 0xea, 0xff, 0x70, 0xad,
- 0xf1, 0x21, 0x81, 0x5b, 0x19, 0xd7, 0x26, 0xa9, 0x2f, 0x79, 0x61, 0x76,
- 0x96, 0x3e, 0x21, 0x8c, 0x30, 0x57, 0x94, 0x2d, 0x98, 0xee, 0x33, 0xf7,
- 0x72, 0x6d, 0x66, 0x62, 0xb4, 0xf7, 0xee, 0x23, 0x8f, 0x84, 0xae, 0x8c,
- 0x6a, 0x4f, 0x4d, 0x58, 0xd6, 0x8c, 0xb3, 0x2c, 0xb5, 0x6e, 0x67, 0xdc,
- 0xc2, 0x85, 0x3e, 0xd3, 0x62, 0xe1, 0x5e, 0x53, 0x7c, 0x19, 0xbc, 0x38,
- 0xb7, 0x25, 0x86, 0x91, 0x2c, 0x04, 0x41, 0xce, 0xb4, 0x55, 0x80, 0xd3,
- 0xce, 0x6d, 0xe2, 0xa2, 0x8d, 0x6d, 0x02, 0xa7, 0xc4, 0x0b, 0x16, 0x73,
- 0xb9, 0xbb, 0xb8, 0x69, 0x3b, 0x48, 0xe2, 0x11, 0x53, 0xa2, 0x25, 0x1b,
- 0x7b, 0x7f, 0xb5, 0x46, 0x27, 0x59, 0x4a, 0x82, 0x1d, 0x7f, 0x9e, 0x12,
- 0xdc, 0x6b, 0x6a, 0xee, 0x77, 0x5f, 0xf8, 0x7f, 0xf4, 0xd8, 0x35, 0x75,
- 0x41, 0x00, 0xb8, 0xca, 0xd7, 0x5f, 0xb4, 0x02, 0x01, 0x6c, 0x29, 0xcc,
- 0xdc, 0x3e, 0xe9, 0xeb, 0x92, 0x91, 0x23, 0xe5, 0xf5, 0xf1, 0x54, 0x54,
- 0x62, 0xe8, 0xc4, 0xc5, 0x9d, 0xcb, 0x64, 0x1c, 0x73, 0xa8, 0x14, 0x1b,
- 0xd5, 0xb8, 0xd2, 0xae, 0x7c, 0x23, 0x85, 0x0c, 0xae, 0xc4, 0x68, 0x83,
- 0xe2, 0xd9, 0x41, 0xd5, 0x82, 0xd5, 0x42, 0x12, 0x79, 0xbc, 0x9e, 0x3e,
- 0x15, 0x0b, 0x07, 0xe7, 0x87, 0x59, 0xa0, 0x5f, 0x6f, 0x22, 0x10, 0x74,
- 0x45, 0x9b, 0xb6, 0x21, 0x92, 0x33, 0x4a, 0x31, 0xa9, 0x6d, 0x31, 0xc1,
- 0x48, 0x69, 0x09, 0xb0, 0x59, 0x11, 0x76, 0xd5, 0xd6, 0x50, 0x2a, 0x50,
- 0x91, 0xd8, 0x1c, 0xe4, 0x31, 0xfe, 0x4a, 0x21, 0x2c, 0x23, 0x6e, 0xde,
- 0x2a, 0xfb, 0x3b, 0x09, 0x92, 0x63, 0xbe, 0x6c, 0x18, 0x30, 0x83, 0x67,
- 0x59, 0xac, 0x52, 0x4f, 0xc7, 0x7f, 0xf4, 0x4c, 0xcc, 0x57, 0x62, 0x1e,
- 0x41, 0xac, 0x58, 0x91, 0x35, 0x41, 0xcc, 0xcc, 0xe3, 0x5d, 0x6b, 0xc8,
- 0x44, 0xda, 0x8c, 0x24, 0xd5, 0xfa, 0xc9, 0x33, 0x86, 0xb9, 0x4d, 0x26,
- 0xdf, 0x24, 0xaf, 0x5f, 0x3e, 0x46, 0x4c, 0xef, 0x65, 0x56, 0x2d, 0x2b,
- 0xe4, 0x71, 0x28, 0x0d, 0x9f, 0x7c, 0xeb, 0x35, 0xb6, 0xe7, 0xfc, 0xba,
- 0x5a, 0x60, 0x40, 0x98, 0x99, 0xe8, 0x0b, 0x66, 0x0b, 0x01, 0xce, 0x74,
- 0x39, 0x94, 0x00, 0x02, 0xc5, 0xc2, 0x57, 0xc4, 0x67, 0x92, 0x5a, 0x62,
- 0x68, 0x36, 0x5e, 0x27, 0xfb, 0x8e, 0x81, 0x55, 0x77, 0x4b, 0xb2, 0xed,
- 0x5f, 0x42, 0x2d, 0x88, 0x9c, 0xa8, 0xc7, 0xcc, 0x34, 0x0f, 0xf9, 0xdc,
- 0x43, 0x86, 0x0d, 0x5f, 0x23, 0xf1, 0xbc, 0xe3, 0x49, 0x7b, 0xfc, 0xd8,
- 0xb7, 0x2a, 0xd4, 0x52, 0xcb, 0x5d, 0x4b, 0x1b, 0x41, 0x42, 0xf1, 0x9e,
- 0x7d, 0x62, 0x9f, 0x85, 0x41, 0x89, 0x5c, 0x08, 0x5a, 0x83, 0xb9, 0xe7,
- 0x0d, 0x11, 0x7e, 0x55, 0x41, 0x50, 0xc1, 0x8c, 0xe5, 0x1d, 0x6f, 0xed,
- 0xbd, 0x57, 0x9e, 0xb5, 0x8d, 0x29, 0x54, 0x00, 0xd1, 0x12, 0x26, 0x4d,
- 0x2a, 0x5f, 0x5e, 0xf9, 0x87, 0xf3, 0x09, 0xdf, 0xd1, 0xa7, 0xdd, 0x5c,
- 0x28, 0xe5, 0x81, 0x99, 0x8f, 0x8c, 0xa7, 0x47, 0x9d, 0x49, 0xff, 0xf0,
- 0x45, 0xd2, 0x97, 0x51, 0x4d, 0xb4, 0xee, 0x75, 0xb2, 0x2b, 0x67, 0xc6,
- 0x4c, 0xb9, 0xbc, 0x2c, 0xf2, 0x5f, 0x14, 0x62, 0x0d, 0xb7, 0xb3, 0xd6,
- 0xcf, 0xf6, 0x1e, 0xdf, 0x13, 0x86, 0x71, 0x9d, 0xce, 0x73, 0x61, 0x8a,
- 0x88, 0x08, 0x72, 0x0f, 0xec, 0x0b, 0xd5, 0x72, 0xbd, 0x7b, 0x92, 0xfe,
- 0x91, 0x89, 0x47, 0xf1, 0x68, 0x59, 0x2b, 0xb7, 0xee, 0xc9, 0x23, 0x91,
- 0xb9, 0x54, 0x36, 0xc6, 0xcd, 0x8b, 0x85, 0x98, 0x53, 0x51, 0x83, 0x2e,
- 0x9b, 0x7e, 0x22, 0xd7, 0x9e, 0x6c, 0x25, 0xe5, 0x27, 0x42, 0xd0, 0xb4,
- 0xd5, 0xc8, 0xf1, 0xeb, 0x4d, 0x5e, 0x48, 0xbe, 0x5b, 0xf0, 0xfa, 0x93,
- 0x1e, 0xb3, 0x64, 0xcd, 0x77, 0xe6, 0x11, 0xd1, 0x92, 0xf7, 0xfc, 0x53,
- 0x77, 0x12, 0x5c, 0x15, 0x97, 0xa1, 0xab, 0x1d, 0x33, 0xf4, 0xeb, 0x7e,
- 0xe8, 0x59, 0x62, 0x13, 0x0a, 0x9d, 0x81, 0x59, 0xac, 0x34, 0xde, 0x85,
- 0xed, 0x7e, 0x5e, 0x82, 0x9b, 0x7a, 0xfd, 0x31, 0x49, 0x7d, 0x45, 0xce,
- 0x35, 0xa7, 0x1c, 0x14, 0xc9, 0x99, 0x07, 0x89, 0xe3, 0x9e, 0x7e, 0x26,
- 0xb4, 0xa1, 0xf7, 0xa5, 0x55, 0x56, 0xfb, 0xde, 0x78, 0xba, 0xe3, 0x0b,
- 0xab, 0x33, 0x44, 0x1a, 0x31, 0xd4, 0x58, 0xef, 0x0b, 0x4c, 0x19, 0xaf,
- 0xe6, 0x00, 0xe5, 0x9c, 0xf3, 0x33, 0xae, 0x22, 0x80, 0x7b, 0x6c, 0xaf,
- 0xc5, 0x74, 0xcf, 0x7c, 0xf1, 0x29, 0x79, 0xf5, 0xd2, 0x7b, 0x70, 0xdf,
- 0x4d, 0x30, 0x9d, 0x43, 0x1a, 0xb8, 0x63, 0x3b, 0x55, 0x9d, 0x6c, 0xe2,
- 0x2d, 0x0f, 0xc3, 0xf9, 0x29, 0x53, 0xc6, 0x9b, 0x92, 0x7d, 0x72, 0xb4,
- 0xfc, 0xc1, 0x33, 0x4c, 0x0e, 0x87, 0x16, 0xa9, 0xd9, 0xa1, 0x34, 0x07,
- 0x7b, 0xff, 0xf4, 0xc9, 0x9a, 0x67, 0xe5, 0xd2, 0xac, 0xed, 0x55, 0xef,
- 0xbd, 0xf7, 0xb4, 0x75, 0xcc, 0x55, 0x13, 0xd0, 0x2c, 0x45, 0x73, 0xca,
- 0x70, 0xc8, 0x92, 0x4d, 0xa0, 0x20, 0xfd, 0x0f, 0xb5, 0x09, 0x56, 0x80,
- 0xe3, 0xaf, 0xff, 0x87, 0x3f, 0xd4, 0x4f, 0x7d, 0x2c, 0x04, 0x36, 0x08,
- 0x72, 0x0a, 0x7c, 0x31, 0x6d, 0x95, 0xba, 0x74, 0x11, 0xaf, 0xb4, 0x30,
- 0x5e, 0x0b, 0xbc, 0xdd, 0x46, 0x84, 0x58, 0x15, 0x8e, 0x69, 0xb0, 0xfe,
- 0x27, 0x60, 0x69, 0x33, 0xbf, 0x72, 0x03, 0xd8, 0xbd, 0x18, 0x9f, 0x3c,
- 0xf3, 0xe9, 0x4e, 0xe7, 0x04, 0xd4, 0x57, 0x2b, 0xd6, 0xb6, 0xed, 0x8c,
- 0xbc, 0xf4, 0x6f, 0xf7, 0xda, 0x9e, 0x63, 0x5c, 0x34, 0x36, 0x92, 0x18,
- 0x0f, 0xcd, 0x68, 0x59, 0x1d, 0xb7, 0xc5, 0x0f, 0xc9, 0x89, 0x77, 0x53,
- 0x95, 0xf8, 0x55, 0x11, 0x0c, 0x37, 0xd3, 0x9e, 0x5c, 0x44, 0x49, 0x22,
- 0xf3, 0xba, 0x11, 0xa9, 0x06, 0x21, 0xbb, 0x00, 0xe0, 0xce, 0xa6, 0x1f,
- 0xf4, 0xb4, 0x48, 0x23, 0x2e, 0xf5, 0xcc, 0x7b, 0xeb, 0x91, 0x5d, 0x5a,
- 0xd2, 0x65, 0xde, 0x1e, 0x9d, 0xf5, 0x2a, 0xfe, 0x9f, 0x32, 0xc5, 0xbc,
- 0xce, 0x6b, 0xf6, 0x24, 0x9a, 0x63, 0xf0, 0xf6, 0x6c, 0x72, 0x9a, 0x1c,
- 0x4e, 0xb2, 0x7f, 0x48, 0xe8, 0xbc, 0xc7, 0x18, 0x3f, 0x7d, 0x12, 0x7f,
- 0x7a, 0x22, 0x36, 0xbd, 0x57, 0x54, 0xe8, 0xc8, 0xec, 0x43, 0xeb, 0xa5,
- 0xa7, 0x72, 0x18, 0xd4, 0xe6, 0xcf, 0xb6, 0x2f, 0x0c, 0x8d, 0x38, 0xe1,
- 0xbc, 0xb5, 0xab, 0x9f, 0x7e, 0xea, 0x14, 0x9a, 0xab, 0x55, 0xf1, 0xc1,
- 0x0a, 0x8b, 0x02, 0x44, 0xaf, 0x5b, 0xec, 0xbd, 0xf1, 0x4c, 0x0f, 0x86,
- 0x67, 0x05, 0xb5, 0xa1, 0xbc, 0x43, 0xb1, 0x4f, 0x88, 0xd1, 0x51, 0x5c,
- 0xa1, 0x86, 0xbb, 0xae, 0xfc, 0x65, 0x78, 0xb6, 0x63, 0x6f, 0x5f, 0x81,
- 0xac, 0xfd, 0x40, 0x71, 0x45, 0x42, 0x79, 0x1a, 0x36, 0xb8, 0xcc, 0x0b,
- 0x58, 0x20, 0xdc, 0x23, 0x5e, 0x0b, 0xbb, 0xad, 0x4b, 0xa0, 0x2b, 0x6e,
- 0x30, 0x9a, 0x8b, 0xf7, 0x38, 0x13, 0xd0, 0x04, 0x2e, 0xc9, 0x85, 0x10,
- 0x6d, 0x5e, 0xa8, 0xb5, 0xad, 0x63, 0x42, 0xb3, 0x2f, 0xed, 0x2b, 0xc5,
- 0x03, 0xbd, 0x3b, 0x26, 0xd9, 0x72, 0x3c, 0x01, 0x09, 0x1d, 0x04, 0xac,
- 0x28, 0x72, 0xb6, 0x6b, 0xe1, 0x91, 0xb6, 0xd0, 0x01, 0x90, 0xb5, 0x8d,
- 0x59, 0x0b, 0x4f, 0x1a, 0xe8, 0x58, 0xcf, 0x1e, 0x8b, 0x97, 0xc9, 0xf2,
- 0x55, 0xc6, 0x96, 0xb2, 0x66, 0x40, 0xdf, 0x0e, 0xb8, 0xbd, 0x2f, 0xa3,
- 0x0f, 0x4c, 0x7e, 0x5d, 0x14, 0xf5, 0x8f, 0x33, 0x00, 0xb2, 0xcd, 0x8f,
- 0x95, 0x69, 0x1a, 0x5f, 0x80, 0x79, 0xb4, 0xc6, 0x06, 0xf8, 0x8c, 0xe9,
- 0x97, 0xa2, 0x42, 0x5a, 0x81, 0x28, 0x2a, 0xe1, 0x33, 0xc6, 0x3c, 0x1b,
- 0x13, 0x39, 0x26, 0x80, 0xe0, 0xd7, 0x49, 0x6b, 0x41, 0x71, 0x5a, 0x5c,
- 0xc4, 0x81, 0xf4, 0x80, 0x52, 0x11, 0x77, 0xda, 0x04, 0xb5, 0x9d, 0xdb,
- 0xc8, 0x68, 0xf6, 0x99, 0x5b, 0x7d, 0x5a, 0x56, 0x26, 0xa2, 0x4a, 0xff,
- 0xf0, 0x03, 0x1f, 0x2d, 0x0b, 0x61, 0x2f, 0xee, 0x4a, 0x5b, 0x99, 0xdc,
- 0x5c, 0xa8, 0x2c, 0x56, 0x62, 0xb3, 0xc8, 0xc9, 0x57, 0x65, 0xf3, 0x0c,
- 0xa5, 0x58, 0x58, 0xc7, 0x25, 0xee, 0x18, 0x8b, 0xf6, 0x33, 0xab, 0xc9,
- 0xce, 0x7a, 0xc4, 0xac, 0x35, 0x5c, 0xcc, 0xf2, 0x9a, 0xd8, 0x09, 0x14,
- 0x74, 0x33, 0x82, 0x17, 0xef, 0xce, 0xbe, 0x39, 0x79, 0x3b, 0x49, 0xb6,
- 0x01, 0x51, 0x76, 0xf6, 0xf6, 0xd5, 0x97, 0xef, 0xce, 0xcc, 0x9f, 0xda,
- 0xd2, 0xcb, 0xb4, 0xc8, 0x8d, 0xe4, 0x61, 0x48, 0x35, 0x2b, 0x0c, 0x37,
- 0xb8, 0xd4, 0xc9, 0x51, 0xd0, 0x2c, 0xa8, 0xa8, 0xac, 0x14, 0x53, 0x13,
- 0xd1, 0x2a, 0xa5, 0x9c, 0x68, 0x46, 0xee, 0x2e, 0x38, 0x25, 0xa1, 0x74,
- 0x56, 0x91, 0xbc, 0x03, 0xae, 0xa6, 0x61, 0xc6, 0xc9, 0xd9, 0x37, 0x2f,
- 0xde, 0x7c, 0x3b, 0xd1, 0xf2, 0xb2, 0xdf, 0x7f, 0xff, 0x7d, 0xd7, 0xab,
- 0x4f, 0xfa, 0x49, 0x9d, 0x7d, 0xf2, 0xc9, 0xe4, 0xe8, 0x28, 0x79, 0x71,
- 0x3c, 0x39, 0xd1, 0x07, 0x2e, 0x9a, 0xe5, 0xe6, 0xee, 0x96, 0x91, 0xbd,
- 0x2f, 0xb3, 0xc6, 0xfc, 0xf2, 0xc9, 0x27, 0xff, 0x1f, 0xf9, 0xd8, 0xca,
- 0x25, 0x1a, 0xe0, 0x02, 0x00,
+ 0x79, 0x7b, 0xdb, 0x46, 0x96, 0x2f, 0xfc, 0x7f, 0x3e, 0x05, 0x86, 0xfd,
+ 0xf4, 0x95, 0x34, 0x4d, 0x50, 0xbb, 0x17, 0x45, 0xc9, 0x44, 0x91, 0xe5,
+ 0x58, 0x13, 0xd9, 0x52, 0x9b, 0x72, 0x92, 0x9e, 0x24, 0x8f, 0x1f, 0x90,
+ 0x84, 0x24, 0x44, 0x24, 0xc0, 0x06, 0x40, 0x2d, 0xe9, 0xe9, 0xf7, 0xb3,
+ 0xbf, 0x67, 0xad, 0x2a, 0xa0, 0x8a, 0x94, 0xa8, 0x6c, 0x3d, 0xf7, 0xce,
+ 0xdc, 0xdb, 0x8e, 0x2d, 0x01, 0x85, 0xaa, 0x53, 0xa7, 0x4e, 0x9d, 0xf5,
+ 0x77, 0xa2, 0xe8, 0xa1, 0xff, 0xfb, 0x48, 0xff, 0xfb, 0x08, 0xff, 0x07,
+ 0xff, 0xfd, 0x24, 0x8a, 0xce, 0xca, 0xe2, 0xa7, 0x74, 0x58, 0x87, 0x9f,
+ 0xfd, 0xf8, 0xf1, 0xbf, 0x23, 0xfe, 0x7f, 0xf0, 0xce, 0x0f, 0xf0, 0xdf,
+ 0x4f, 0x16, 0x8e, 0xbd, 0x1e, 0xd9, 0x17, 0xfe, 0xfb, 0xe3, 0x5a, 0xf4,
+ 0xd0, 0x0b, 0xff, 0x1d, 0xad, 0xd2, 0x0b, 0x1f, 0xe5, 0x0b, 0xfb, 0xf8,
+ 0xf7, 0x8f, 0x1f, 0x17, 0x7f, 0xe4, 0x07, 0x9c, 0x15, 0xfe, 0xb1, 0x8e,
+ 0xef, 0xfd, 0xf0, 0x11, 0xff, 0x0a, 0x3f, 0xf9, 0xe4, 0x93, 0x77, 0x07,
+ 0x6f, 0x8f, 0xf4, 0xd5, 0xe1, 0xac, 0x1c, 0x47, 0x71, 0x54, 0x97, 0x49,
+ 0x5e, 0x5d, 0xa4, 0x65, 0x94, 0x44, 0x1f, 0xde, 0x9f, 0x7c, 0xf2, 0x49,
+ 0xff, 0x6f, 0xef, 0x4e, 0xcf, 0xfa, 0xc7, 0xfd, 0xc6, 0x63, 0xdf, 0x17,
+ 0xd3, 0x3a, 0x2b, 0xf2, 0x0a, 0xa6, 0x0f, 0x0f, 0x55, 0x3f, 0x7e, 0xf2,
+ 0xc9, 0xab, 0xa3, 0xfe, 0xe1, 0xfb, 0xe3, 0xb3, 0xf3, 0xe3, 0xd3, 0x77,
+ 0x8d, 0x27, 0xa3, 0xac, 0x8a, 0x60, 0xa8, 0xba, 0x28, 0xc6, 0xd1, 0x45,
+ 0x51, 0x9a, 0xe1, 0xcb, 0x2c, 0xbf, 0x8c, 0x46, 0x49, 0x9d, 0x44, 0x17,
+ 0x65, 0x31, 0x89, 0xf0, 0x37, 0x05, 0x3c, 0x57, 0xa5, 0xe5, 0x4d, 0x5a,
+ 0xf6, 0xa2, 0xe3, 0x3a, 0xaa, 0x66, 0xd3, 0x69, 0x51, 0xd6, 0x95, 0x0e,
+ 0x57, 0x5f, 0xa5, 0x55, 0x1a, 0x4d, 0xcb, 0xa2, 0x2e, 0x86, 0xc5, 0xb8,
+ 0xda, 0x8b, 0x5e, 0x1d, 0x1f, 0x9e, 0x77, 0xa3, 0xd7, 0xc7, 0x27, 0x47,
+ 0xf0, 0xe7, 0xf9, 0x19, 0xfd, 0xd1, 0xef, 0x46, 0x5f, 0x9d, 0x9e, 0xbd,
+ 0x39, 0x7a, 0xaf, 0xff, 0x85, 0x1f, 0x44, 0x6f, 0xce, 0xf1, 0xb7, 0xf4,
+ 0x9f, 0x7e, 0x57, 0x87, 0x3b, 0x7e, 0x7b, 0x80, 0x3f, 0xc4, 0xff, 0xe0,
+ 0x33, 0x27, 0xaf, 0xe8, 0x9f, 0xf8, 0x1f, 0xf8, 0xe7, 0xdb, 0xbf, 0x9e,
+ 0xc3, 0xd0, 0x67, 0xa7, 0x67, 0xdb, 0xfc, 0x27, 0xfc, 0xe8, 0xfd, 0xf9,
+ 0xdb, 0x33, 0xfe, 0x93, 0xfe, 0xd1, 0x87, 0x7f, 0xf4, 0x0f, 0xcf, 0xcc,
+ 0x70, 0x7d, 0x9a, 0x41, 0xff, 0xed, 0x97, 0xf4, 0x47, 0x1f, 0xff, 0xe4,
+ 0x1f, 0xd0, 0x9c, 0xce, 0x8f, 0x4e, 0xde, 0x1d, 0x9d, 0xe3, 0x2a, 0xcf,
+ 0xe1, 0xb9, 0x5e, 0x74, 0x7e, 0x95, 0x46, 0xc3, 0x62, 0x32, 0x49, 0xf2,
+ 0x11, 0x53, 0x68, 0x94, 0x56, 0xd9, 0x65, 0x9e, 0x8e, 0xcc, 0x62, 0x8b,
+ 0xe8, 0xb6, 0x28, 0xaf, 0xa3, 0xdb, 0xac, 0xbe, 0x2a, 0x66, 0x75, 0x34,
+ 0x03, 0xc2, 0x44, 0x59, 0x5e, 0xa7, 0x65, 0x32, 0x44, 0xca, 0xf7, 0x3e,
+ 0x69, 0x50, 0xb9, 0xb8, 0x00, 0x92, 0x56, 0x40, 0xbf, 0xc1, 0xac, 0x1a,
+ 0x17, 0xc9, 0x08, 0x7e, 0x80, 0xaf, 0x5c, 0xcc, 0xc6, 0x40, 0xf0, 0x6c,
+ 0x78, 0x5d, 0x45, 0xe3, 0xec, 0x9a, 0x88, 0x77, 0x77, 0xaf, 0x84, 0xed,
+ 0xf2, 0xa0, 0xc9, 0x0c, 0x08, 0x9b, 0xc7, 0xe6, 0xc3, 0xd9, 0x30, 0xc1,
+ 0x0f, 0x10, 0x35, 0xa3, 0xd9, 0x14, 0x47, 0xeb, 0x12, 0xe9, 0xa2, 0x69,
+ 0x51, 0xc1, 0x4b, 0xfd, 0xfe, 0x09, 0x4c, 0x3d, 0xcf, 0x53, 0x9a, 0x47,
+ 0xd5, 0x85, 0x7f, 0x14, 0xd7, 0x59, 0x0a, 0x7f, 0xb9, 0xc8, 0xc6, 0x69,
+ 0xc4, 0x1b, 0x6c, 0x86, 0x43, 0x46, 0x2a, 0xd3, 0x6a, 0x36, 0x49, 0x23,
+ 0x5c, 0xeb, 0xa4, 0x28, 0xd3, 0x5e, 0x74, 0x50, 0x45, 0xf7, 0xc5, 0x0c,
+ 0xd6, 0x36, 0x1e, 0xc3, 0x86, 0xa7, 0xd1, 0x20, 0x1d, 0x17, 0xb7, 0x5d,
+ 0xdc, 0xe0, 0x28, 0x9f, 0x4d, 0x06, 0xf0, 0x0a, 0x4c, 0xff, 0x22, 0x4d,
+ 0xea, 0x19, 0xbc, 0x4a, 0x8f, 0xe9, 0x70, 0x93, 0x04, 0x56, 0x01, 0xef,
+ 0x96, 0xd1, 0x55, 0x0a, 0xab, 0xac, 0xa6, 0x59, 0xfe, 0x6f, 0x4d, 0x4a,
+ 0x00, 0x31, 0xa7, 0xc5, 0x6d, 0x5a, 0xa6, 0xa3, 0x68, 0x70, 0x1f, 0xc1,
+ 0xb2, 0x07, 0xcc, 0x86, 0xc8, 0x7b, 0x51, 0x02, 0x1f, 0x34, 0x1c, 0x18,
+ 0x97, 0xe9, 0x38, 0xa9, 0xe1, 0x39, 0xf3, 0xa9, 0x1e, 0x6c, 0x63, 0x9a,
+ 0xea, 0x70, 0xf2, 0xea, 0xea, 0xf6, 0x1a, 0xbd, 0x3c, 0x4a, 0xeb, 0x24,
+ 0x1b, 0x57, 0x40, 0x78, 0x3c, 0x16, 0xf2, 0x0c, 0xee, 0x23, 0x9e, 0x80,
+ 0x28, 0xaa, 0xee, 0xf3, 0x3a, 0xb9, 0xa3, 0xcf, 0x0b, 0x87, 0xc6, 0xa3,
+ 0x74, 0x9a, 0xe6, 0xa3, 0x34, 0xaf, 0x7b, 0xd1, 0xdf, 0x60, 0xb9, 0x17,
+ 0x19, 0x10, 0x20, 0x91, 0x71, 0xe0, 0xb3, 0xb0, 0xe5, 0xc3, 0x32, 0xa3,
+ 0x73, 0xa4, 0xc3, 0x65, 0x79, 0xf4, 0xfe, 0xf5, 0x61, 0xb4, 0xfd, 0xf2,
+ 0xc5, 0x33, 0xbb, 0xc1, 0xf8, 0xee, 0x30, 0xc9, 0x61, 0xb1, 0xe9, 0x30,
+ 0xbb, 0xb8, 0x8f, 0x26, 0xb3, 0x71, 0x9d, 0x4d, 0x81, 0xd4, 0x78, 0xf2,
+ 0x90, 0xa5, 0xa6, 0x09, 0x9c, 0x12, 0x24, 0x19, 0xfd, 0x80, 0x96, 0x7d,
+ 0x5b, 0x66, 0x35, 0x1e, 0x30, 0xfa, 0x1d, 0x4c, 0x2e, 0xb5, 0xc7, 0x08,
+ 0x39, 0x0a, 0xbe, 0x33, 0x00, 0x46, 0x02, 0xe2, 0xe2, 0xa6, 0xfc, 0x7d,
+ 0x56, 0xd0, 0xc3, 0x48, 0x7f, 0x5c, 0x4b, 0x52, 0xc1, 0x44, 0xf6, 0x3e,
+ 0xb1, 0x22, 0xa5, 0x73, 0x55, 0xd7, 0xd3, 0xbd, 0xf5, 0xf5, 0x2a, 0xab,
+ 0xd3, 0xde, 0x3f, 0x8a, 0x3c, 0xed, 0xd6, 0xb7, 0x45, 0xb7, 0xbe, 0x2a,
+ 0xd3, 0xf4, 0x9f, 0x3d, 0x60, 0xe3, 0x8e, 0x79, 0x16, 0x66, 0x73, 0x2f,
+ 0xd3, 0xbd, 0x4c, 0xe1, 0x08, 0xa7, 0x7f, 0x9f, 0xa5, 0x39, 0x7e, 0x07,
+ 0x66, 0x97, 0x8c, 0xa7, 0x57, 0x09, 0xec, 0x6f, 0x0a, 0x0c, 0x89, 0xe7,
+ 0x1c, 0x78, 0x06, 0xe7, 0x3a, 0xab, 0xf0, 0xdb, 0xdf, 0xff, 0x18, 0xf8,
+ 0xec, 0x05, 0x7d, 0x15, 0xfe, 0xec, 0xa5, 0x77, 0xc9, 0x04, 0x96, 0x8c,
+ 0x1f, 0x5b, 0x47, 0x36, 0xfb, 0x7e, 0x33, 0xde, 0xdc, 0xd8, 0xf8, 0xb1,
+ 0x57, 0xdf, 0xd5, 0x9d, 0x47, 0xbe, 0xb1, 0xb1, 0xe1, 0xbc, 0x83, 0x0f,
+ 0xaf, 0x22, 0x25, 0xa2, 0x31, 0xf0, 0x11, 0x4e, 0xe0, 0xe7, 0xb4, 0x2c,
+ 0xaa, 0xb5, 0x47, 0x8e, 0x95, 0xc4, 0x3f, 0xb7, 0xbe, 0xfd, 0x2e, 0xad,
+ 0x88, 0x95, 0xec, 0x8a, 0xa3, 0xa4, 0x04, 0x76, 0x2e, 0x8c, 0x1c, 0x4b,
+ 0xe1, 0x18, 0x0d, 0xe0, 0x24, 0x2b, 0x7d, 0xe0, 0xf0, 0xc1, 0xd3, 0x20,
+ 0xec, 0x12, 0x38, 0xbe, 0x39, 0xbc, 0x90, 0xa7, 0x77, 0xb5, 0x73, 0xfc,
+ 0xd3, 0x64, 0x78, 0x15, 0x15, 0xb0, 0x27, 0x65, 0x68, 0x2b, 0xdc, 0x29,
+ 0x25, 0xe5, 0xf0, 0x2a, 0xbb, 0x01, 0x9a, 0xbc, 0x7c, 0xf9, 0x2c, 0x86,
+ 0x3f, 0x5e, 0xfe, 0xb8, 0x7e, 0x53, 0x8c, 0x81, 0x44, 0x3b, 0x3f, 0xae,
+ 0xe3, 0xfe, 0xff, 0x23, 0xe9, 0x0e, 0xba, 0xc3, 0x7f, 0xf6, 0xae, 0xea,
+ 0xc9, 0xb8, 0x33, 0x97, 0xad, 0x92, 0x1c, 0xfe, 0x37, 0x29, 0x66, 0x79,
+ 0x6d, 0x58, 0xa9, 0xc8, 0x89, 0x27, 0x54, 0x50, 0x8d, 0xb3, 0x1c, 0x0e,
+ 0x2f, 0xf2, 0x3c, 0x72, 0x18, 0x1e, 0x5e, 0x38, 0xb9, 0xf6, 0xa0, 0xd7,
+ 0xc3, 0x2b, 0xa4, 0x00, 0xf0, 0x56, 0x22, 0x64, 0xa8, 0x33, 0x58, 0x1b,
+ 0xbc, 0x9a, 0x93, 0xec, 0xa2, 0xb1, 0xf8, 0x6b, 0x19, 0x3c, 0x58, 0x94,
+ 0x23, 0x14, 0xf4, 0xad, 0x69, 0x98, 0xb3, 0xec, 0x7c, 0x33, 0xd2, 0xcb,
+ 0x06, 0x7f, 0x40, 0x13, 0x9b, 0x64, 0x77, 0x30, 0x02, 0xfe, 0x13, 0xbf,
+ 0x06, 0x13, 0xe7, 0xd1, 0x22, 0x9c, 0x31, 0x7d, 0x46, 0xdf, 0xb7, 0x67,
+ 0x19, 0xa6, 0xde, 0x58, 0x3a, 0x7d, 0xd4, 0x2e, 0x3e, 0x82, 0xed, 0x9b,
+ 0xc2, 0x5b, 0x33, 0x14, 0xb1, 0x7c, 0x51, 0xc1, 0x30, 0x20, 0x29, 0x2e,
+ 0x61, 0x67, 0x60, 0x37, 0x90, 0x9b, 0x71, 0xb3, 0xee, 0xa3, 0x77, 0xc0,
+ 0x34, 0x2c, 0xa5, 0x1c, 0xa6, 0x1f, 0xa7, 0x75, 0xfd, 0xf0, 0x46, 0x59,
+ 0xce, 0xdd, 0xdb, 0x0c, 0x30, 0xef, 0xbc, 0x37, 0x80, 0xdb, 0xf6, 0xb6,
+ 0x5a, 0x8f, 0x7f, 0x0b, 0x32, 0xdb, 0x1e, 0x1d, 0x98, 0xc1, 0x3f, 0xfe,
+ 0xe9, 0xf0, 0xde, 0x2d, 0xfe, 0x36, 0xcb, 0x6f, 0x8a, 0x6b, 0x20, 0x13,
+ 0xdd, 0xaf, 0x49, 0x93, 0xa2, 0x28, 0xa4, 0x26, 0xd3, 0xda, 0xdc, 0x5e,
+ 0xc8, 0x94, 0xf0, 0xa3, 0x41, 0x32, 0x18, 0xdf, 0x47, 0x57, 0xc9, 0x4d,
+ 0x8a, 0x6b, 0x9e, 0x02, 0xb7, 0x22, 0x15, 0xe0, 0x16, 0x19, 0x93, 0x60,
+ 0x10, 0xd1, 0x31, 0x2a, 0x66, 0x03, 0x10, 0x3f, 0x28, 0x36, 0x98, 0x38,
+ 0xc9, 0x4d, 0x91, 0x8d, 0xf0, 0x51, 0x1d, 0xae, 0xba, 0x4a, 0xe1, 0x15,
+ 0xfa, 0x30, 0xdd, 0x59, 0x20, 0x6d, 0x71, 0xa6, 0x74, 0xe0, 0xb2, 0x1a,
+ 0xaf, 0x3f, 0x90, 0x93, 0xc9, 0xb8, 0x2a, 0xa2, 0xe8, 0xb2, 0xc0, 0xb3,
+ 0x42, 0xd2, 0x99, 0x98, 0x1d, 0x36, 0xe6, 0x2a, 0xc1, 0x4b, 0x0e, 0xee,
+ 0x33, 0x73, 0x1a, 0xca, 0x94, 0x04, 0x35, 0xed, 0x56, 0x32, 0xee, 0xf2,
+ 0x65, 0x86, 0xef, 0x08, 0xad, 0xa2, 0x95, 0xff, 0xb3, 0xd2, 0x8d, 0x56,
+ 0xfe, 0x63, 0x85, 0x78, 0x62, 0xe5, 0xdf, 0x57, 0xec, 0x5e, 0x83, 0xae,
+ 0x76, 0x93, 0x8d, 0x52, 0x66, 0x8b, 0xe3, 0xb3, 0x9b, 0x67, 0xd1, 0xcf,
+ 0x70, 0xda, 0x60, 0x5a, 0xa3, 0xf4, 0x4e, 0x99, 0x52, 0xd7, 0x06, 0x6f,
+ 0x47, 0x20, 0x94, 0x93, 0x29, 0x7c, 0x6b, 0x9a, 0x96, 0x43, 0xe0, 0xe0,
+ 0xe4, 0x12, 0x78, 0x16, 0x6e, 0x66, 0x1d, 0x0e, 0xc7, 0xc7, 0x57, 0x78,
+ 0x59, 0x20, 0x42, 0xa3, 0x3c, 0x99, 0xc0, 0xa9, 0x38, 0xc1, 0x19, 0x65,
+ 0x79, 0x60, 0x3b, 0xbf, 0xbf, 0x48, 0x5f, 0x6c, 0xec, 0xed, 0x6d, 0xff,
+ 0x79, 0x6b, 0x37, 0xad, 0xaf, 0x36, 0x7e, 0x5c, 0xb7, 0x9b, 0x78, 0x7c,
+ 0x41, 0x84, 0x57, 0x26, 0xd4, 0x69, 0xe0, 0x7d, 0xaf, 0x97, 0x08, 0x0c,
+ 0x00, 0x7f, 0x4f, 0x2f, 0xb2, 0xbb, 0xae, 0x2a, 0x54, 0x7c, 0xf2, 0x12,
+ 0x60, 0x38, 0xd8, 0x41, 0x14, 0x15, 0x3a, 0xdc, 0xe5, 0x2c, 0xad, 0x80,
+ 0x96, 0xb7, 0x57, 0x49, 0x1d, 0x99, 0x01, 0x78, 0x6f, 0x27, 0xd9, 0xe5,
+ 0x55, 0x1d, 0xdd, 0x26, 0x78, 0x17, 0x81, 0x6a, 0x45, 0x43, 0xe0, 0xb5,
+ 0x0f, 0x97, 0xd0, 0x45, 0x02, 0xf7, 0x09, 0xee, 0x22, 0xdd, 0xf1, 0x20,
+ 0xa1, 0x2c, 0xd5, 0xef, 0x65, 0x4b, 0x8c, 0xce, 0x15, 0x0d, 0x92, 0x0a,
+ 0x8f, 0x6e, 0x0e, 0x22, 0xa2, 0x06, 0xa5, 0x61, 0x86, 0xff, 0xba, 0x02,
+ 0xb5, 0x80, 0xa8, 0x20, 0x13, 0xa5, 0x7b, 0xf4, 0x35, 0x6e, 0x28, 0xee,
+ 0x8e, 0xd1, 0x04, 0x60, 0x9b, 0xba, 0xb2, 0xd1, 0xe6, 0x8d, 0x0a, 0x8e,
+ 0x1d, 0x08, 0x28, 0xc3, 0x1b, 0x28, 0x73, 0x7b, 0x1d, 0x5e, 0x27, 0xcd,
+ 0x31, 0xa9, 0x48, 0x75, 0x20, 0x6d, 0x01, 0x26, 0xef, 0x2c, 0x16, 0x88,
+ 0x96, 0x5c, 0xa3, 0x8e, 0xd2, 0xd2, 0x84, 0xe8, 0xb5, 0x51, 0x01, 0x6c,
+ 0x06, 0xb3, 0x05, 0xa1, 0x8c, 0x2b, 0x43, 0x51, 0x4b, 0x54, 0x21, 0x36,
+ 0x87, 0x31, 0xf1, 0x87, 0x59, 0x8d, 0x37, 0x0e, 0x29, 0xb9, 0x30, 0x5f,
+ 0x20, 0x0a, 0xe9, 0x61, 0x20, 0xb0, 0x9d, 0xf5, 0xd3, 0x15, 0x0a, 0xcf,
+ 0x46, 0x37, 0xc9, 0x38, 0x03, 0x65, 0x35, 0x35, 0x6f, 0xd1, 0x75, 0x3f,
+ 0x44, 0x65, 0x69, 0x0c, 0x27, 0x66, 0x58, 0x94, 0x25, 0x1a, 0x04, 0xb8,
+ 0x83, 0x03, 0x16, 0xa5, 0x93, 0x14, 0xb4, 0x0c, 0x97, 0x9c, 0x19, 0x5e,
+ 0x6f, 0x20, 0x65, 0x40, 0x6d, 0x21, 0x39, 0x02, 0xea, 0x05, 0xc9, 0x7e,
+ 0x5a, 0x38, 0xcd, 0x0e, 0xc7, 0x1e, 0x0e, 0xd3, 0x69, 0x5d, 0x85, 0xd6,
+ 0xa4, 0x1b, 0x0e, 0xd3, 0x29, 0x53, 0xa4, 0xbc, 0xab, 0x85, 0x11, 0x5d,
+ 0x8d, 0x62, 0x40, 0x8a, 0x98, 0xaa, 0x39, 0xa0, 0x98, 0x55, 0x85, 0xd5,
+ 0xa1, 0x91, 0x37, 0x40, 0x98, 0x11, 0xcd, 0x27, 0x38, 0x51, 0x7c, 0xb8,
+ 0xe2, 0xb3, 0x4a, 0x02, 0x1a, 0x37, 0x92, 0xb5, 0x70, 0xfe, 0x2e, 0x5e,
+ 0x61, 0x40, 0x4f, 0x33, 0x38, 0x7c, 0xd5, 0xec, 0x29, 0x7e, 0x1e, 0x6d,
+ 0x00, 0xb8, 0xd7, 0x47, 0xd5, 0x15, 0xe8, 0x66, 0x95, 0x9c, 0xed, 0x6c,
+ 0x02, 0x3c, 0x73, 0x83, 0xfb, 0x3b, 0x4d, 0xd3, 0x51, 0x2f, 0x3a, 0xbd,
+ 0x40, 0xd9, 0x5a, 0xc2, 0xa4, 0x6b, 0xfa, 0x35, 0xde, 0x2d, 0x40, 0xb7,
+ 0x11, 0x1e, 0x45, 0xab, 0xfe, 0xf0, 0x54, 0x9c, 0x3b, 0x82, 0xe4, 0x79,
+ 0x02, 0x3f, 0x81, 0xd9, 0x8e, 0x9b, 0x17, 0x11, 0x9d, 0x44, 0x90, 0xe1,
+ 0x38, 0xbd, 0x41, 0x1a, 0x11, 0x27, 0x0e, 0xd2, 0xfa, 0x36, 0x4d, 0xcd,
+ 0x70, 0x55, 0x0a, 0xb7, 0x1f, 0x6e, 0x1a, 0x2b, 0x86, 0x20, 0x0e, 0x59,
+ 0xb5, 0x45, 0xf2, 0x9e, 0x7e, 0x38, 0x3f, 0xfb, 0x70, 0xee, 0x1c, 0x44,
+ 0x1c, 0xa7, 0x2e, 0xc6, 0x23, 0x66, 0xf9, 0xdb, 0xac, 0x02, 0x6e, 0x65,
+ 0xe2, 0x83, 0x2a, 0x85, 0x62, 0x0e, 0xaf, 0x83, 0x74, 0x98, 0xc2, 0x45,
+ 0x3b, 0x62, 0xbb, 0x05, 0x36, 0xa2, 0xaa, 0x41, 0x16, 0xf2, 0x91, 0xc2,
+ 0xb9, 0xe8, 0x70, 0x30, 0x1f, 0xda, 0xeb, 0x72, 0x36, 0x24, 0xa5, 0x00,
+ 0x39, 0x48, 0xf7, 0xbe, 0x22, 0xe1, 0x8a, 0xdb, 0x40, 0x83, 0x80, 0x1c,
+ 0x41, 0xb3, 0x67, 0x0c, 0x53, 0x1b, 0xd3, 0xfa, 0xbb, 0x22, 0xd5, 0x1d,
+ 0x69, 0x1a, 0x17, 0xdd, 0x28, 0x8e, 0xe1, 0x43, 0x28, 0x90, 0x61, 0x9f,
+ 0xe3, 0x53, 0xfc, 0x77, 0x99, 0x4e, 0x40, 0xfe, 0xc6, 0x74, 0xf0, 0xe4,
+ 0x82, 0xec, 0xe1, 0x42, 0xac, 0xd5, 0x75, 0x09, 0x73, 0x05, 0xfa, 0xe9,
+ 0xce, 0xe9, 0x70, 0xac, 0x25, 0xe2, 0x9c, 0x8c, 0xa9, 0x17, 0xb8, 0xe8,
+ 0xbb, 0xc8, 0x8e, 0x55, 0x36, 0xc9, 0xc6, 0x49, 0x09, 0x3b, 0x95, 0xc3,
+ 0x36, 0x56, 0x96, 0x09, 0x8a, 0xa9, 0x63, 0x30, 0x28, 0xff, 0xc1, 0xad,
+ 0x53, 0xd2, 0xc5, 0x21, 0x6b, 0x4c, 0x27, 0x2d, 0x3e, 0x1e, 0xa1, 0xac,
+ 0x47, 0x42, 0xc3, 0xbe, 0x00, 0x2b, 0xc0, 0x2b, 0x86, 0xd8, 0x51, 0x67,
+ 0x06, 0x12, 0xb9, 0x04, 0x71, 0x90, 0x8f, 0x3a, 0x32, 0x19, 0x10, 0xb1,
+ 0x39, 0x1e, 0x4b, 0xe6, 0xd8, 0x0a, 0x2f, 0x5a, 0xa3, 0xc4, 0xf2, 0xa6,
+ 0xe0, 0x59, 0x8c, 0x98, 0x30, 0x7c, 0x86, 0xe5, 0x0b, 0x11, 0x5c, 0x83,
+ 0x05, 0xa9, 0x75, 0xa4, 0xb8, 0xf3, 0xdf, 0x81, 0xb2, 0xf9, 0x18, 0x25,
+ 0x64, 0x7a, 0x37, 0x1d, 0x67, 0xc3, 0xac, 0x1e, 0x1b, 0x6d, 0x23, 0xa9,
+ 0xf0, 0xa2, 0x44, 0x9b, 0x0b, 0x0f, 0xe3, 0x28, 0x1d, 0xa1, 0x11, 0x04,
+ 0x3f, 0x09, 0x69, 0x21, 0xb0, 0xa6, 0xb3, 0xf7, 0xa7, 0xe7, 0xa7, 0x87,
+ 0xa7, 0x27, 0x4d, 0x9b, 0x58, 0xed, 0xd5, 0x88, 0x74, 0xdc, 0x62, 0x66,
+ 0x2d, 0x01, 0x38, 0x82, 0xa8, 0xa6, 0xc3, 0xee, 0xc1, 0x85, 0x43, 0xd6,
+ 0x02, 0x5c, 0x1e, 0x13, 0xb0, 0x60, 0xa3, 0x0a, 0x74, 0xa6, 0x09, 0x09,
+ 0x4c, 0xd0, 0x49, 0xcc, 0xea, 0x50, 0x69, 0xcb, 0x86, 0x33, 0xa0, 0x3c,
+ 0x08, 0x90, 0x0c, 0x78, 0x72, 0x92, 0xdc, 0xbb, 0xaa, 0x24, 0xd1, 0x16,
+ 0x8d, 0x19, 0x4b, 0x5f, 0xb4, 0x85, 0xe1, 0x3f, 0x27, 0x48, 0x27, 0x94,
+ 0x72, 0x63, 0x30, 0xca, 0x66, 0x53, 0xb4, 0x21, 0x61, 0xdb, 0x98, 0xa3,
+ 0xe0, 0xc4, 0xe1, 0x32, 0x60, 0x6d, 0xb8, 0x8e, 0x04, 0xf5, 0x6f, 0xfb,
+ 0x3e, 0x5a, 0xd1, 0xf0, 0x9f, 0xf7, 0xc8, 0xa2, 0x38, 0x59, 0xa6, 0x70,
+ 0x24, 0x8c, 0xc9, 0x27, 0xb3, 0xa7, 0x37, 0x90, 0xd9, 0x47, 0x9d, 0x0f,
+ 0x8a, 0xad, 0x0a, 0x3f, 0xd2, 0x72, 0x43, 0xe0, 0x6b, 0x78, 0x83, 0xe1,
+ 0x9a, 0x99, 0x5f, 0xc7, 0xf7, 0xac, 0x05, 0x93, 0x86, 0x52, 0xce, 0xf2,
+ 0x9c, 0x67, 0x16, 0xbd, 0xcd, 0x86, 0xa0, 0x7f, 0xc3, 0xad, 0x12, 0x7d,
+ 0x0b, 0x57, 0x73, 0x71, 0x0b, 0xfb, 0x3a, 0xb3, 0x56, 0xa4, 0x31, 0x8f,
+ 0xd8, 0x48, 0xc9, 0xe1, 0x18, 0x03, 0x87, 0x7d, 0x78, 0x77, 0x18, 0x25,
+ 0x53, 0x20, 0x32, 0x6a, 0xca, 0x24, 0xab, 0xd0, 0x64, 0x76, 0xd6, 0x74,
+ 0x7e, 0xb6, 0xda, 0x5f, 0x93, 0x39, 0x9b, 0xdd, 0x61, 0xfd, 0xf0, 0x35,
+ 0x8a, 0xc8, 0x73, 0xe5, 0xff, 0x33, 0xbd, 0x2c, 0x59, 0x0b, 0x80, 0x55,
+ 0x93, 0x12, 0x0c, 0xd2, 0x24, 0xb9, 0xae, 0x5a, 0x93, 0x20, 0x7e, 0x40,
+ 0x55, 0x10, 0xe8, 0xf1, 0x2d, 0x3e, 0x8e, 0x9c, 0x6f, 0xac, 0x74, 0x9c,
+ 0xe2, 0xf9, 0x49, 0xdf, 0x4e, 0x82, 0xbd, 0x10, 0x30, 0x8f, 0xd6, 0x30,
+ 0xef, 0x53, 0x30, 0xcc, 0x61, 0x18, 0x21, 0xad, 0x79, 0x1e, 0x6f, 0x61,
+ 0xff, 0xe9, 0x26, 0x83, 0xd1, 0x4d, 0x4d, 0x53, 0x35, 0xac, 0xe6, 0xaa,
+ 0xc8, 0x37, 0xb0, 0xb7, 0x89, 0x0a, 0x84, 0xa6, 0x64, 0x6a, 0x5c, 0x9e,
+ 0x34, 0x0c, 0x2e, 0x04, 0x1e, 0x8d, 0x36, 0x7a, 0x2f, 0xbb, 0xd1, 0x66,
+ 0x6f, 0x03, 0xff, 0xd8, 0xec, 0x46, 0x5b, 0x34, 0xd2, 0x76, 0xc4, 0x36,
+ 0xac, 0x6c, 0x12, 0x33, 0xa3, 0x73, 0xf6, 0x1b, 0x22, 0x40, 0x55, 0x23,
+ 0xbd, 0x0c, 0xe7, 0x1c, 0x1e, 0xc7, 0xfd, 0xe2, 0xaf, 0xf3, 0x83, 0xca,
+ 0x3e, 0x60, 0xf9, 0x6c, 0x0c, 0x3c, 0xc3, 0xc6, 0x99, 0x1e, 0x24, 0x11,
+ 0xc9, 0xa8, 0xba, 0x77, 0x80, 0x49, 0x72, 0x74, 0x4e, 0x74, 0xa2, 0x14,
+ 0x9f, 0x65, 0x25, 0xb2, 0x35, 0x1c, 0x9c, 0x84, 0x47, 0x6d, 0x12, 0x7a,
+ 0x7d, 0xe6, 0x10, 0x1d, 0xbf, 0x05, 0xd7, 0xdf, 0x28, 0xc3, 0x35, 0x15,
+ 0x78, 0x6f, 0xd3, 0xc9, 0x62, 0x89, 0x07, 0xe3, 0x77, 0x79, 0x23, 0x9c,
+ 0xf1, 0x1b, 0x23, 0xa3, 0x23, 0xc9, 0xdb, 0x3f, 0xfa, 0xa1, 0x12, 0x7e,
+ 0xbb, 0x17, 0xbd, 0x92, 0xa5, 0x10, 0x99, 0xf1, 0xe2, 0xa5, 0x07, 0x40,
+ 0x9b, 0x07, 0x15, 0x39, 0xea, 0x54, 0xb3, 0x41, 0x9b, 0xe0, 0xe8, 0x38,
+ 0x18, 0xa4, 0x1d, 0x76, 0x99, 0xd5, 0xc5, 0x14, 0x0c, 0xea, 0xdb, 0x2b,
+ 0xe4, 0x68, 0xf6, 0xd7, 0xc0, 0x38, 0xeb, 0xe8, 0xac, 0xc1, 0xf1, 0x74,
+ 0x94, 0x29, 0xe8, 0xec, 0x59, 0x75, 0xd5, 0xc1, 0x7d, 0x4c, 0xda, 0xfb,
+ 0x87, 0x23, 0xf4, 0xf8, 0xab, 0xf4, 0x7d, 0x58, 0x02, 0xde, 0x20, 0x0d,
+ 0xeb, 0x35, 0x5a, 0xbd, 0x4f, 0xeb, 0x35, 0x47, 0xb1, 0x3e, 0x3d, 0xdb,
+ 0xf6, 0x69, 0xe6, 0x2e, 0x85, 0x95, 0x0a, 0xbc, 0xbf, 0xa7, 0xc5, 0x74,
+ 0x3b, 0x52, 0xad, 0x82, 0x35, 0x23, 0xd5, 0x41, 0x12, 0xda, 0x69, 0xb3,
+ 0x4b, 0xad, 0xe1, 0x16, 0xec, 0x19, 0x7a, 0xe2, 0xfc, 0xef, 0xa3, 0x43,
+ 0x06, 0x84, 0x18, 0x5c, 0x53, 0x70, 0x2d, 0xbe, 0x05, 0xa1, 0x94, 0x5c,
+ 0xe2, 0x9b, 0xe6, 0x80, 0xd3, 0xc5, 0x38, 0x2d, 0xb3, 0x09, 0x9c, 0x11,
+ 0xb8, 0xd6, 0x58, 0x6f, 0xa0, 0xcb, 0x90, 0x67, 0xd7, 0x26, 0x34, 0x9a,
+ 0x1e, 0x13, 0xd2, 0x95, 0xe0, 0x52, 0x48, 0x58, 0xe9, 0xb0, 0x6c, 0xc1,
+ 0x6b, 0x45, 0x93, 0xc6, 0x99, 0x56, 0xff, 0xcc, 0xdb, 0x70, 0xfa, 0x21,
+ 0x1c, 0x2e, 0xf3, 0x8a, 0x73, 0x10, 0xfa, 0x87, 0x67, 0xfe, 0x09, 0xef,
+ 0xf7, 0xdf, 0x18, 0x06, 0xd9, 0x82, 0xed, 0x9e, 0x5a, 0x75, 0xce, 0x79,
+ 0x13, 0x3d, 0x74, 0xde, 0x9b, 0xf8, 0xc3, 0xd5, 0x51, 0x99, 0x80, 0x28,
+ 0xdd, 0x5d, 0x13, 0x0d, 0x0b, 0xc9, 0xde, 0x18, 0xd2, 0x19, 0xe4, 0xed,
+ 0x97, 0x46, 0x48, 0xda, 0x41, 0xde, 0x7e, 0x69, 0x9e, 0xdd, 0x24, 0x4e,
+ 0x67, 0xc6, 0xa2, 0xf5, 0xeb, 0x1a, 0xdc, 0x31, 0x42, 0x32, 0xeb, 0xc3,
+ 0xd4, 0x30, 0x82, 0xdc, 0xe5, 0xa2, 0x76, 0xa0, 0xe1, 0x8d, 0xaf, 0x34,
+ 0x19, 0xa2, 0x12, 0x39, 0x83, 0x36, 0x18, 0xb1, 0x44, 0x6b, 0xb8, 0x6f,
+ 0x17, 0x1d, 0x33, 0xf1, 0xaf, 0x9e, 0x83, 0xd9, 0x89, 0x63, 0xd0, 0x6a,
+ 0xe0, 0x53, 0xe4, 0x94, 0xc0, 0x23, 0x92, 0x8e, 0xf3, 0x94, 0xd5, 0x73,
+ 0x32, 0x38, 0x50, 0x58, 0x59, 0x6f, 0xea, 0x0d, 0x2a, 0xbc, 0x55, 0xe5,
+ 0xf8, 0xe1, 0x94, 0xfb, 0x48, 0xa1, 0x21, 0x05, 0x04, 0x67, 0x67, 0x6c,
+ 0x2b, 0xfc, 0x01, 0x8a, 0xa6, 0x8a, 0x14, 0x54, 0x50, 0x02, 0xc9, 0x0b,
+ 0x31, 0x12, 0x4d, 0xa4, 0xe2, 0xa7, 0x1c, 0x05, 0xce, 0xe8, 0xa3, 0xb4,
+ 0x5c, 0x1e, 0xca, 0xe5, 0x99, 0x73, 0x67, 0x23, 0x45, 0xde, 0xd0, 0x8f,
+ 0x0c, 0xb7, 0xd0, 0xe8, 0xbc, 0x05, 0xa2, 0x7f, 0x7c, 0xf5, 0xfe, 0xa8,
+ 0xdf, 0x8f, 0xde, 0x1e, 0x9d, 0x1f, 0xbd, 0x6f, 0x28, 0x21, 0x79, 0x51,
+ 0x4e, 0xc8, 0x24, 0x19, 0x65, 0xd5, 0x74, 0x9c, 0xdc, 0xa3, 0xad, 0x02,
+ 0xd2, 0xf3, 0xb2, 0x44, 0xc5, 0x67, 0x92, 0xa2, 0x73, 0x63, 0x34, 0x23,
+ 0x63, 0x1c, 0x44, 0x32, 0x2c, 0x5f, 0x7c, 0xb8, 0x68, 0x0f, 0x93, 0xe3,
+ 0xd7, 0x5e, 0xe1, 0x74, 0x4d, 0x8a, 0x43, 0x08, 0x2f, 0x43, 0xeb, 0xb9,
+ 0xc7, 0x13, 0x83, 0xca, 0x6b, 0xd7, 0xd1, 0x20, 0x49, 0xcf, 0xe7, 0x79,
+ 0x82, 0xd1, 0x05, 0xc7, 0x0b, 0x25, 0x06, 0x1e, 0x42, 0xe3, 0x81, 0x49,
+ 0x2f, 0xea, 0x6e, 0x04, 0xfb, 0xc1, 0xce, 0xef, 0xf6, 0x9c, 0x74, 0xb6,
+ 0xd6, 0xff, 0x3b, 0xb8, 0xaf, 0xc5, 0x3f, 0xc9, 0x53, 0xe1, 0x2f, 0x18,
+ 0x8d, 0x8d, 0x36, 0x26, 0x8f, 0xe4, 0xb1, 0x29, 0xd1, 0x15, 0xd8, 0x6c,
+ 0xc4, 0xc3, 0x57, 0xb3, 0x0b, 0xb2, 0x44, 0xa3, 0xd5, 0xeb, 0x6e, 0xf4,
+ 0xb6, 0x1b, 0x7d, 0xd5, 0x8d, 0xd0, 0x9f, 0xbf, 0x46, 0xef, 0x6d, 0x6e,
+ 0x6c, 0xed, 0xb0, 0x25, 0x6b, 0x78, 0xec, 0xb5, 0xe3, 0x4b, 0xd8, 0xbc,
+ 0x46, 0x21, 0xc1, 0x0f, 0xe1, 0xe0, 0xbd, 0x68, 0xf3, 0x2d, 0xff, 0x64,
+ 0xe7, 0xc5, 0xee, 0xf3, 0x67, 0xf2, 0xc3, 0x96, 0x66, 0xab, 0xf3, 0x27,
+ 0xf3, 0x46, 0xcd, 0x03, 0x9c, 0x37, 0x6a, 0x7a, 0x59, 0x0e, 0x3a, 0x14,
+ 0xd8, 0x85, 0x62, 0x6c, 0xa3, 0x41, 0x06, 0x93, 0xbf, 0x60, 0xd3, 0x5c,
+ 0xfc, 0x34, 0xcd, 0xa0, 0x09, 0xbc, 0x0c, 0x4c, 0x00, 0xac, 0x60, 0x36,
+ 0x89, 0xbd, 0x5d, 0x35, 0x4e, 0x24, 0x19, 0x20, 0xff, 0xa3, 0xb6, 0x4a,
+ 0x3a, 0x5a, 0xe8, 0x6b, 0xc6, 0xb1, 0x03, 0x6f, 0xc0, 0xdc, 0x92, 0xc1,
+ 0x58, 0x4c, 0x98, 0x16, 0xdd, 0x41, 0x7f, 0xb6, 0x2a, 0x38, 0x3c, 0x7b,
+ 0x5b, 0xcc, 0x50, 0xdd, 0xc4, 0x07, 0x40, 0x7b, 0xc4, 0x17, 0x98, 0xa7,
+ 0x8d, 0xff, 0x3d, 0xbb, 0x93, 0xfb, 0xb8, 0x31, 0x0a, 0x4c, 0x0d, 0xfe,
+ 0x39, 0x05, 0x56, 0xe2, 0xe9, 0xf4, 0xda, 0x2e, 0x0e, 0x32, 0xde, 0x3d,
+ 0x4e, 0x44, 0xc1, 0x42, 0x4a, 0xc8, 0xd9, 0x69, 0x9f, 0x82, 0x23, 0x60,
+ 0x92, 0xc1, 0x40, 0x7f, 0x9f, 0x01, 0x0b, 0x01, 0x53, 0xe2, 0x8b, 0x68,
+ 0x77, 0x38, 0x56, 0x3f, 0xf0, 0x1e, 0x5d, 0xc4, 0x62, 0x8e, 0xc9, 0x27,
+ 0xc5, 0x34, 0xa2, 0xdb, 0xd0, 0xb5, 0xa1, 0xd8, 0x0d, 0x65, 0xde, 0x89,
+ 0x56, 0x3f, 0x5f, 0xeb, 0x92, 0x39, 0x65, 0x2c, 0x2b, 0xc7, 0xaa, 0x12,
+ 0x5b, 0xc7, 0x39, 0x95, 0x57, 0x14, 0x98, 0x21, 0xff, 0x14, 0xde, 0x84,
+ 0xa0, 0x6a, 0xc2, 0xb9, 0x82, 0x8f, 0xd8, 0xc0, 0x08, 0xd2, 0x8f, 0x6c,
+ 0x39, 0xbb, 0x4d, 0x56, 0x37, 0x9e, 0x02, 0x3d, 0x0b, 0x4b, 0x3a, 0xb4,
+ 0xb5, 0x1b, 0x44, 0x6a, 0xef, 0x99, 0x47, 0x34, 0x74, 0xa7, 0x50, 0x1c,
+ 0xce, 0x90, 0x2d, 0xea, 0x0c, 0x92, 0xb2, 0x63, 0x8d, 0x49, 0x3e, 0x97,
+ 0x78, 0x3a, 0xca, 0xf4, 0x92, 0xec, 0x05, 0xa6, 0x2c, 0xae, 0xf2, 0x4f,
+ 0xce, 0x2a, 0x75, 0x80, 0x78, 0x80, 0x8f, 0x64, 0x15, 0x87, 0x50, 0x2e,
+ 0x40, 0x01, 0xc5, 0x03, 0xa3, 0x2e, 0x58, 0x72, 0xc8, 0x09, 0xb7, 0x04,
+ 0x98, 0xc5, 0x71, 0xcd, 0xc2, 0x31, 0x41, 0x55, 0x9e, 0x55, 0x1f, 0x7c,
+ 0x32, 0xae, 0xd0, 0x24, 0xad, 0x80, 0xf6, 0xe8, 0x3e, 0x9e, 0x4a, 0x84,
+ 0xea, 0x94, 0xc2, 0x81, 0xc6, 0x4a, 0x3a, 0x15, 0x1d, 0x95, 0x44, 0xb0,
+ 0xa8, 0x4d, 0x39, 0x99, 0x81, 0xf5, 0x2d, 0x7c, 0x38, 0x81, 0xed, 0x82,
+ 0xc3, 0xf6, 0x16, 0x09, 0x85, 0xca, 0x37, 0x2e, 0x4b, 0xd5, 0x5a, 0xe2,
+ 0x8a, 0x0c, 0xcf, 0xbc, 0xd5, 0x65, 0x93, 0xd1, 0x28, 0x23, 0x4b, 0x66,
+ 0x8c, 0xee, 0x99, 0x59, 0x4a, 0x0e, 0x74, 0x21, 0xea, 0xc4, 0xdd, 0x46,
+ 0x14, 0x1e, 0x57, 0x68, 0xa6, 0x80, 0x2e, 0x45, 0x8e, 0x84, 0x18, 0xbf,
+ 0xd5, 0x21, 0x85, 0x71, 0x12, 0xe9, 0xb7, 0xe4, 0x53, 0xb0, 0x8e, 0x91,
+ 0xeb, 0x5a, 0xec, 0x92, 0xf1, 0x65, 0xfd, 0xdc, 0xa4, 0x30, 0xb4, 0x55,
+ 0xbe, 0x04, 0x76, 0x1b, 0x7d, 0x81, 0xe2, 0x80, 0x20, 0x4f, 0x0e, 0x1d,
+ 0xd7, 0x8a, 0xa7, 0xd6, 0x05, 0xda, 0xe2, 0x93, 0x97, 0x57, 0xfa, 0xa8,
+ 0xe3, 0x15, 0x4a, 0xd0, 0xaf, 0x00, 0xba, 0x32, 0xc6, 0x8a, 0x46, 0xea,
+ 0xb4, 0x28, 0x4a, 0x16, 0x64, 0xe3, 0x02, 0xf8, 0xb8, 0xc3, 0x1e, 0x57,
+ 0x99, 0x36, 0xce, 0x1a, 0x67, 0x89, 0x14, 0xe7, 0x00, 0xaa, 0x55, 0x9b,
+ 0xcc, 0xa4, 0x85, 0x5e, 0xd5, 0x83, 0x53, 0x73, 0x6e, 0x71, 0xa2, 0x91,
+ 0x5e, 0xfb, 0x4a, 0x79, 0x76, 0x55, 0x14, 0xc4, 0xd2, 0x74, 0x18, 0xc9,
+ 0xdd, 0xee, 0xd0, 0x9e, 0x87, 0xa9, 0xc4, 0xa1, 0xde, 0x22, 0x54, 0x94,
+ 0x4d, 0x48, 0x71, 0x22, 0x6e, 0x31, 0x1b, 0x64, 0x43, 0x1b, 0x01, 0x57,
+ 0xee, 0x7d, 0x38, 0x20, 0x90, 0xb0, 0xc7, 0xd2, 0xcc, 0x8b, 0x9c, 0x20,
+ 0x27, 0xb4, 0x96, 0xf8, 0x26, 0xc2, 0x23, 0x98, 0xc3, 0x2a, 0x13, 0xfc,
+ 0xc5, 0xc9, 0x8d, 0x73, 0x94, 0x30, 0x10, 0x95, 0xa3, 0xa3, 0xad, 0x4b,
+ 0x43, 0x0c, 0x8a, 0x62, 0x9c, 0x26, 0x76, 0x79, 0x78, 0x1f, 0xa4, 0x39,
+ 0x72, 0xbc, 0xec, 0x2a, 0x88, 0x84, 0xa9, 0x91, 0xb7, 0xa0, 0xf1, 0x46,
+ 0xc9, 0x65, 0x92, 0x19, 0x9e, 0x93, 0xd3, 0x31, 0x8a, 0xf4, 0xe1, 0xbc,
+ 0x90, 0xe7, 0x71, 0xbb, 0xd0, 0x87, 0x27, 0x72, 0x6b, 0x56, 0xf1, 0x11,
+ 0x82, 0x55, 0x81, 0xe4, 0xa9, 0xac, 0x93, 0x86, 0xfc, 0x9e, 0xc6, 0x51,
+ 0x44, 0x9e, 0x5e, 0x74, 0x9a, 0x92, 0xf0, 0x25, 0x17, 0x28, 0x8c, 0xd8,
+ 0xe9, 0x45, 0x6f, 0x8a, 0x5b, 0xb4, 0x31, 0xbb, 0xec, 0xa2, 0xce, 0x30,
+ 0x7e, 0x5b, 0xc1, 0x13, 0x60, 0x17, 0x81, 0x5e, 0x0f, 0xb4, 0x24, 0xf7,
+ 0x19, 0xfd, 0xcc, 0x89, 0x72, 0x00, 0x97, 0xdf, 0xf2, 0x71, 0xd4, 0x45,
+ 0x98, 0xdd, 0xbc, 0x68, 0x9d, 0x8a, 0x38, 0x4e, 0x06, 0xa0, 0xdc, 0xc2,
+ 0xe4, 0xe2, 0x59, 0x9e, 0xdd, 0xc5, 0x55, 0x31, 0xbc, 0x86, 0xc5, 0xee,
+ 0x4f, 0x93, 0xfa, 0xea, 0xf3, 0x96, 0xde, 0xb2, 0x8a, 0x32, 0x7a, 0x2d,
+ 0x8a, 0x0e, 0xd9, 0xdf, 0x88, 0x12, 0xa7, 0x64, 0x5e, 0x06, 0x2a, 0xc9,
+ 0x28, 0xd1, 0x07, 0x18, 0x05, 0xf8, 0x04, 0x34, 0x37, 0xd8, 0x3a, 0x1a,
+ 0xac, 0xab, 0x62, 0xaa, 0x35, 0x1c, 0x85, 0xa6, 0x8d, 0x29, 0x0f, 0x6c,
+ 0x89, 0x46, 0x7b, 0x14, 0xbd, 0x2b, 0xea, 0x74, 0x0f, 0xff, 0x0d, 0xe2,
+ 0xa1, 0xa6, 0xa5, 0xc8, 0x8d, 0x05, 0x33, 0x62, 0x41, 0x87, 0xfc, 0x95,
+ 0xf8, 0xb6, 0x10, 0x7f, 0x5f, 0x3e, 0x1a, 0xa9, 0x13, 0x5a, 0xb7, 0x28,
+ 0x5a, 0xf9, 0x62, 0xa5, 0x1b, 0x5d, 0x31, 0x39, 0x69, 0x40, 0x5e, 0x23,
+ 0xec, 0xfc, 0x25, 0x18, 0xcf, 0x79, 0xdd, 0x1e, 0xee, 0x8a, 0xae, 0x40,
+ 0x64, 0x77, 0x8e, 0x83, 0x10, 0xf1, 0xc5, 0x0e, 0x35, 0xa1, 0x89, 0xde,
+ 0x27, 0xad, 0xd7, 0x8e, 0x98, 0x7b, 0xf7, 0xda, 0x79, 0x18, 0x9c, 0x54,
+ 0x11, 0x26, 0x36, 0xff, 0x87, 0xd6, 0x87, 0xb1, 0x82, 0xaa, 0x19, 0xfb,
+ 0x69, 0x7f, 0xe1, 0x60, 0x84, 0xe2, 0x01, 0xa8, 0xfb, 0xbc, 0xb7, 0xbb,
+ 0xdd, 0xdb, 0x68, 0x6c, 0xe5, 0xb8, 0x8e, 0xab, 0x9b, 0x61, 0xb4, 0x4f,
+ 0x8e, 0x5f, 0x64, 0xb0, 0xe0, 0x16, 0x82, 0x9a, 0x4f, 0x77, 0x9a, 0xf0,
+ 0x06, 0xb3, 0x3d, 0x13, 0x59, 0x47, 0x20, 0xc7, 0x1c, 0x05, 0xeb, 0x70,
+ 0xe2, 0x3d, 0xba, 0x8a, 0x02, 0x9a, 0xac, 0xf9, 0x0e, 0x58, 0x76, 0x19,
+ 0xea, 0xf5, 0x35, 0x29, 0x2b, 0xe9, 0x5d, 0xc6, 0x46, 0xa7, 0x0e, 0x37,
+ 0x84, 0x83, 0x9e, 0xca, 0x95, 0x4c, 0x82, 0x84, 0xbc, 0x34, 0x83, 0xf6,
+ 0x70, 0x28, 0x2a, 0x7a, 0xd1, 0xc1, 0x05, 0xe9, 0x12, 0xe6, 0x7e, 0x19,
+ 0x19, 0xed, 0x92, 0x53, 0x03, 0x78, 0x30, 0x19, 0x81, 0x7c, 0x8c, 0x23,
+ 0x91, 0xf6, 0x73, 0x67, 0x47, 0x67, 0x17, 0x35, 0xad, 0x0c, 0x77, 0x13,
+ 0x03, 0x02, 0x20, 0x01, 0x27, 0xc5, 0x88, 0xbc, 0xcb, 0xde, 0x1e, 0xf6,
+ 0x4d, 0x30, 0xb0, 0xd3, 0x71, 0x06, 0x59, 0xc5, 0xd0, 0x30, 0xb0, 0x40,
+ 0x7e, 0x59, 0x5f, 0xad, 0xd9, 0x70, 0x97, 0x1a, 0xda, 0x30, 0x11, 0x36,
+ 0x5b, 0xda, 0x7c, 0x4e, 0xb9, 0x0a, 0xb4, 0xff, 0x3f, 0xcd, 0xaa, 0x9a,
+ 0x7c, 0xe4, 0x72, 0xaf, 0xf2, 0x4a, 0x60, 0x66, 0x93, 0x74, 0x52, 0x94,
+ 0xf7, 0xde, 0x44, 0x8e, 0x2f, 0x98, 0xed, 0x64, 0xa3, 0xb2, 0x8a, 0x85,
+ 0xa9, 0x46, 0x8b, 0x51, 0xad, 0xae, 0xba, 0x8d, 0x68, 0x10, 0x29, 0x23,
+ 0xc6, 0xcc, 0x6a, 0xd3, 0x83, 0x02, 0x80, 0x22, 0x3f, 0xd9, 0xc7, 0x3e,
+ 0x90, 0xd0, 0xde, 0x38, 0xa9, 0x6a, 0xba, 0x84, 0x95, 0xac, 0xf4, 0x21,
+ 0x14, 0xc7, 0xbc, 0xac, 0xa5, 0xf9, 0x5c, 0x36, 0x1e, 0xfe, 0x87, 0xf1,
+ 0xca, 0x25, 0xf9, 0xfa, 0xd9, 0x4e, 0x6f, 0xb3, 0xc1, 0xd7, 0xf9, 0x3d,
+ 0x66, 0xa7, 0x84, 0xc5, 0x11, 0xda, 0x7a, 0x95, 0xb5, 0xf4, 0xb2, 0xcb,
+ 0x59, 0x49, 0x9a, 0xa0, 0x24, 0xb4, 0x68, 0x1e, 0x0b, 0xea, 0x2e, 0x57,
+ 0x05, 0x25, 0x83, 0xc0, 0x9d, 0x97, 0x8e, 0x2f, 0xba, 0x01, 0x7f, 0x9e,
+ 0x4a, 0x6b, 0x14, 0xae, 0x68, 0x47, 0xd0, 0x50, 0x79, 0x2a, 0x5a, 0x26,
+ 0xfa, 0x2d, 0x23, 0xcc, 0x7d, 0x88, 0x86, 0xe3, 0x24, 0x9b, 0x88, 0x15,
+ 0x2b, 0xc6, 0x72, 0xcf, 0x73, 0x40, 0x70, 0x7c, 0x83, 0x0c, 0xef, 0x01,
+ 0x86, 0x57, 0xca, 0x0a, 0x2f, 0x50, 0xf6, 0x75, 0x88, 0x72, 0xcb, 0x7e,
+ 0x84, 0xab, 0x74, 0x78, 0xad, 0x72, 0x50, 0x35, 0xc3, 0xb6, 0x74, 0xc3,
+ 0x34, 0x17, 0x8a, 0xe1, 0xd4, 0x57, 0xe8, 0x50, 0x2e, 0xc0, 0x4c, 0xc5,
+ 0x10, 0x2d, 0x98, 0x6b, 0xb3, 0x21, 0x59, 0x71, 0x28, 0x14, 0xe1, 0x5a,
+ 0x2d, 0x93, 0x48, 0x65, 0x29, 0x28, 0x4b, 0x60, 0xb4, 0x8d, 0xe2, 0xba,
+ 0xcc, 0xa6, 0xc1, 0xd9, 0x91, 0x0f, 0x44, 0xae, 0x67, 0x57, 0x91, 0xac,
+ 0xc4, 0x25, 0x43, 0x11, 0x17, 0x8e, 0xc1, 0x0c, 0x5b, 0xd4, 0x6c, 0xb3,
+ 0x38, 0xd1, 0xb6, 0x8b, 0xce, 0x27, 0xb8, 0xd1, 0xf5, 0xe6, 0x1e, 0x89,
+ 0x1f, 0x1d, 0x76, 0x10, 0xac, 0xac, 0x6c, 0x88, 0xda, 0x68, 0x3c, 0xca,
+ 0x2e, 0x53, 0x4c, 0x1f, 0xc2, 0x3b, 0xb3, 0x1e, 0x83, 0x02, 0x13, 0x38,
+ 0x31, 0xf0, 0xab, 0xf4, 0xb2, 0xa8, 0x51, 0x5d, 0xf0, 0x18, 0x8f, 0x3d,
+ 0x83, 0x86, 0x27, 0xd4, 0x3d, 0xe5, 0xaa, 0x4e, 0x19, 0xab, 0xcd, 0xf0,
+ 0x79, 0x31, 0x95, 0x99, 0xf3, 0xc9, 0x3e, 0x6f, 0xef, 0x3a, 0x8c, 0x36,
+ 0x24, 0x8b, 0x07, 0xb5, 0x3b, 0x55, 0x2e, 0x55, 0x2b, 0x47, 0xf1, 0x82,
+ 0x8a, 0x6c, 0x7d, 0x9b, 0x0d, 0x53, 0xf5, 0x6b, 0x9a, 0xcc, 0x82, 0x71,
+ 0xe6, 0xdf, 0x1a, 0x13, 0x3c, 0xe1, 0xf8, 0x1e, 0xeb, 0xce, 0x18, 0xa2,
+ 0xbb, 0xcd, 0x50, 0xb7, 0x3e, 0xbe, 0x90, 0x6b, 0x0e, 0xcf, 0x2f, 0x5f,
+ 0x2d, 0x49, 0x99, 0x51, 0x3c, 0x12, 0x03, 0xf8, 0xea, 0x22, 0x09, 0x9d,
+ 0x58, 0x9e, 0x37, 0xbd, 0x2e, 0xd6, 0x86, 0xb5, 0x32, 0xe8, 0xb8, 0x5e,
+ 0x90, 0x97, 0xc4, 0xa3, 0x13, 0x89, 0xc5, 0xcb, 0x94, 0x22, 0xb7, 0xac,
+ 0xa5, 0xcc, 0x50, 0x55, 0xc4, 0x64, 0xaf, 0xa5, 0x8f, 0xb3, 0x10, 0x9b,
+ 0xdf, 0x86, 0xed, 0xde, 0x9b, 0xde, 0x8e, 0x1e, 0x73, 0xa8, 0xfb, 0x69,
+ 0xca, 0xe6, 0x04, 0xd9, 0x1e, 0x77, 0xf7, 0x3a, 0x52, 0x57, 0x79, 0x82,
+ 0x15, 0x37, 0xe1, 0x0a, 0xe7, 0xcc, 0x27, 0xf8, 0x04, 0x58, 0x5a, 0xa9,
+ 0xc7, 0x1c, 0xab, 0x68, 0x76, 0xa1, 0x77, 0x6b, 0x4d, 0x93, 0x1f, 0x52,
+ 0x49, 0xff, 0x30, 0x59, 0x6a, 0x24, 0x34, 0x51, 0xec, 0x8a, 0x5c, 0xe0,
+ 0x71, 0xc2, 0x97, 0x04, 0xd8, 0x20, 0x98, 0xd3, 0x21, 0x49, 0x6b, 0x7a,
+ 0x0e, 0xe0, 0x18, 0xa0, 0xb3, 0x4c, 0xd3, 0xa7, 0x30, 0x57, 0x41, 0x76,
+ 0x50, 0xc4, 0x00, 0x3d, 0x8e, 0x36, 0x5e, 0x6b, 0x38, 0xe4, 0x45, 0xba,
+ 0xfe, 0xba, 0xac, 0xc9, 0xb1, 0x34, 0x1d, 0x72, 0xe2, 0x82, 0x68, 0x37,
+ 0x7c, 0x05, 0xd2, 0x24, 0x2f, 0xc6, 0xc9, 0x25, 0x9f, 0xc3, 0xec, 0x32,
+ 0x2f, 0xca, 0xb4, 0xbd, 0x58, 0x10, 0x1c, 0x55, 0x01, 0x77, 0x0f, 0x79,
+ 0xf3, 0xd8, 0x6f, 0x54, 0x45, 0xab, 0xc0, 0xb3, 0xe3, 0x19, 0x29, 0x22,
+ 0xa7, 0xb0, 0xb0, 0x7e, 0xff, 0xcd, 0xda, 0xb2, 0x1b, 0xca, 0x94, 0x8a,
+ 0x69, 0x15, 0x1c, 0xda, 0x51, 0x6a, 0x47, 0x17, 0x5e, 0xf2, 0x89, 0x2b,
+ 0x89, 0x6f, 0x2b, 0xb0, 0xee, 0x2e, 0x6f, 0x76, 0x40, 0x7b, 0xe2, 0x84,
+ 0x8a, 0x72, 0xf3, 0xfb, 0x3d, 0xfd, 0xeb, 0xd6, 0xf7, 0x7b, 0x60, 0x7f,
+ 0x02, 0x5f, 0x7e, 0xbf, 0x87, 0x73, 0x85, 0x43, 0xf3, 0xe3, 0x8f, 0x3f,
+ 0x7e, 0xee, 0x33, 0x66, 0x74, 0xf0, 0x6d, 0x3f, 0xfa, 0x66, 0x87, 0x12,
+ 0x2a, 0x28, 0xe3, 0xae, 0x2d, 0xab, 0x25, 0x1f, 0x43, 0xef, 0x7d, 0x6f,
+ 0x75, 0x64, 0xcb, 0xe9, 0x57, 0x8d, 0x06, 0xc7, 0x46, 0x14, 0x28, 0x58,
+ 0x2c, 0x4c, 0x49, 0x0b, 0x97, 0x80, 0xf0, 0xbd, 0x68, 0x37, 0x97, 0x05,
+ 0xec, 0xe8, 0xd5, 0xc4, 0xf7, 0xef, 0xe5, 0xbc, 0x47, 0xe4, 0x79, 0x9f,
+ 0xd5, 0x97, 0x2c, 0xa6, 0x9b, 0x93, 0x12, 0x11, 0x1c, 0x9c, 0x0c, 0x2f,
+ 0x7b, 0xc1, 0x4c, 0x1c, 0xfd, 0x08, 0x0c, 0x11, 0x30, 0xa7, 0x93, 0xe9,
+ 0x15, 0x72, 0x3f, 0x7c, 0xd4, 0x57, 0x8b, 0xe9, 0x82, 0xa8, 0xc0, 0x34,
+ 0xc7, 0x1c, 0x9e, 0x61, 0x31, 0x1e, 0x73, 0x74, 0x3f, 0x5a, 0xe5, 0xcf,
+ 0xc4, 0xc3, 0x62, 0x94, 0xae, 0xf1, 0xac, 0x6b, 0xfb, 0x71, 0x52, 0x52,
+ 0xb2, 0x36, 0x43, 0x16, 0x93, 0xac, 0xae, 0x35, 0xfb, 0x87, 0x2c, 0x91,
+ 0x7c, 0x44, 0x93, 0x09, 0xae, 0x43, 0xb6, 0xed, 0x91, 0x0b, 0xb9, 0x98,
+ 0xe5, 0x3c, 0x31, 0xdc, 0x8b, 0xf6, 0x8d, 0x85, 0x7b, 0x43, 0x94, 0x07,
+ 0x4d, 0x6e, 0x5c, 0xcc, 0x46, 0xd1, 0xaa, 0x0c, 0xde, 0x9e, 0xbe, 0x7e,
+ 0x53, 0xe6, 0xaf, 0x33, 0x0e, 0x89, 0xc2, 0x85, 0xf3, 0x7f, 0x48, 0x86,
+ 0x19, 0xd6, 0xed, 0xc0, 0x5f, 0xf7, 0x92, 0xc9, 0xcf, 0x7b, 0x29, 0x68,
+ 0x3d, 0xf1, 0xd6, 0x5e, 0x5a, 0x75, 0x54, 0xb2, 0x75, 0xae, 0xd3, 0x7b,
+ 0xe0, 0x5d, 0xe0, 0x85, 0xba, 0xb3, 0xa4, 0xd2, 0xf2, 0x7c, 0xb7, 0xa9,
+ 0x8c, 0x93, 0x78, 0x7b, 0x8c, 0xca, 0x82, 0x4a, 0x07, 0x79, 0xbf, 0xbe,
+ 0x64, 0x81, 0xd8, 0xe4, 0x3a, 0xe3, 0x5a, 0xc1, 0x6c, 0x8f, 0xf6, 0x6d,
+ 0x83, 0xc2, 0x04, 0x93, 0x68, 0x7a, 0x46, 0xdd, 0xc0, 0x27, 0x35, 0x97,
+ 0x87, 0x2f, 0xac, 0x96, 0xfe, 0x38, 0x23, 0xaf, 0x30, 0x51, 0xb0, 0x3d,
+ 0x1c, 0x06, 0xc5, 0x4d, 0x70, 0x5c, 0x8d, 0xd7, 0x8c, 0x2c, 0x75, 0x14,
+ 0x86, 0x25, 0xa6, 0x4f, 0xa1, 0x13, 0x2a, 0xbd, 0xc9, 0x8a, 0x59, 0x05,
+ 0xa3, 0x80, 0xa2, 0xa0, 0x63, 0x23, 0x6f, 0x78, 0x6e, 0xee, 0x9a, 0x52,
+ 0xbe, 0xc1, 0x58, 0xc6, 0xac, 0x64, 0x8a, 0xe1, 0x87, 0x75, 0xb2, 0xd5,
+ 0x6a, 0x86, 0xee, 0xf9, 0xca, 0xe8, 0x04, 0x78, 0x21, 0xb4, 0x67, 0xc7,
+ 0x6a, 0x03, 0xa6, 0x3d, 0x58, 0xed, 0x60, 0xed, 0x37, 0xbd, 0xf6, 0x66,
+ 0xc4, 0x92, 0x7b, 0x98, 0x28, 0x84, 0xf1, 0x73, 0x73, 0x65, 0x3d, 0xe5,
+ 0xde, 0xa3, 0x37, 0x5d, 0xf6, 0x00, 0xdd, 0x3f, 0x2d, 0x6b, 0x36, 0xd5,
+ 0x3c, 0x2b, 0xed, 0xfc, 0xa4, 0x1f, 0xe2, 0x92, 0x66, 0xe2, 0x24, 0xbe,
+ 0x8f, 0xaa, 0x59, 0xa2, 0xd7, 0x11, 0x3c, 0x05, 0xdb, 0xe4, 0xf8, 0x4a,
+ 0x5c, 0x0f, 0xfe, 0x34, 0xc5, 0x2c, 0x4b, 0x96, 0x9c, 0x7c, 0xd7, 0xa1,
+ 0xc6, 0x83, 0x96, 0x02, 0x9a, 0x46, 0x26, 0xa1, 0xe3, 0xf0, 0xc0, 0x1d,
+ 0x97, 0xd2, 0x78, 0xda, 0x37, 0xa6, 0xf3, 0xfb, 0xd5, 0x6a, 0x8d, 0x55,
+ 0x9e, 0x01, 0x99, 0x31, 0x67, 0x47, 0x6f, 0xc9, 0x2b, 0x95, 0x00, 0x43,
+ 0xbe, 0xd3, 0x00, 0x84, 0x66, 0x63, 0x63, 0xd0, 0xb8, 0x91, 0xa6, 0x66,
+ 0x8d, 0x3e, 0xca, 0x86, 0x66, 0x9e, 0xa5, 0xa9, 0x71, 0xda, 0x65, 0x46,
+ 0x19, 0x4b, 0x6d, 0x0e, 0xae, 0xef, 0xa7, 0x92, 0x6c, 0x35, 0xab, 0x1a,
+ 0x2e, 0x61, 0xe3, 0x1f, 0xaa, 0xc9, 0xbe, 0x47, 0x6f, 0x95, 0x33, 0xa6,
+ 0xb7, 0xf5, 0x34, 0x2d, 0xd4, 0x1a, 0x2f, 0xf3, 0xec, 0x67, 0xb1, 0x7e,
+ 0xd3, 0xfc, 0x26, 0x2b, 0x8b, 0x9c, 0x04, 0x1f, 0x05, 0xcf, 0x07, 0x62,
+ 0xfb, 0x81, 0x62, 0xbc, 0x72, 0xf8, 0xe1, 0xfd, 0xc9, 0xc7, 0xc3, 0x83,
+ 0x8f, 0x5f, 0x7e, 0x78, 0xf7, 0xea, 0xe4, 0x68, 0xa5, 0x9d, 0x92, 0x70,
+ 0xc1, 0xe1, 0x20, 0xbc, 0xca, 0x2b, 0xf4, 0x79, 0xa8, 0x3d, 0xc1, 0x23,
+ 0x73, 0x0a, 0x0e, 0x99, 0xf8, 0x94, 0x36, 0x46, 0x7f, 0x23, 0x19, 0x2a,
+ 0x04, 0x6f, 0xdf, 0xfb, 0x33, 0x34, 0x12, 0x7b, 0x0d, 0x3b, 0x5d, 0xcf,
+ 0xa0, 0xf8, 0xe2, 0x74, 0x82, 0x41, 0x39, 0x7e, 0x2b, 0xc9, 0x13, 0x8e,
+ 0xdf, 0xc7, 0xc9, 0x20, 0x9b, 0xd5, 0x05, 0xec, 0x91, 0x90, 0x91, 0x02,
+ 0xd9, 0x9a, 0x17, 0x1f, 0xc1, 0x7c, 0x02, 0xdb, 0x5d, 0x59, 0x33, 0x78,
+ 0x14, 0xad, 0xe0, 0x48, 0xc0, 0xbf, 0xb1, 0x4c, 0x72, 0x58, 0xd6, 0x2b,
+ 0xdd, 0x28, 0xcd, 0xe8, 0xc4, 0x69, 0x7a, 0x2f, 0xca, 0x72, 0x72, 0xb7,
+ 0x7b, 0x39, 0x02, 0x18, 0x3b, 0x4f, 0x98, 0xaf, 0x7b, 0xe9, 0x5d, 0x4a,
+ 0x47, 0x5a, 0xde, 0x3a, 0x9c, 0x95, 0x24, 0x26, 0xbe, 0x05, 0xeb, 0x05,
+ 0x2f, 0x9c, 0x57, 0x1a, 0x6c, 0xd7, 0x87, 0x40, 0x7b, 0x6c, 0x5f, 0x0b,
+ 0xc5, 0x98, 0x54, 0x00, 0xf2, 0x8f, 0x92, 0x37, 0xfb, 0xec, 0xe0, 0xfc,
+ 0x4d, 0xc8, 0x92, 0x76, 0x12, 0xa2, 0x84, 0x15, 0xc9, 0x2b, 0x50, 0xd5,
+ 0x72, 0x40, 0xde, 0xf5, 0xfb, 0x11, 0x15, 0x35, 0x8c, 0xb3, 0x41, 0x99,
+ 0xe0, 0x37, 0xf1, 0xc7, 0xf8, 0x53, 0x60, 0xeb, 0xd6, 0x70, 0x67, 0x5f,
+ 0x1f, 0xf6, 0xff, 0xb4, 0xb9, 0x89, 0x2e, 0x84, 0x19, 0xd0, 0x65, 0x15,
+ 0x5e, 0xc9, 0x2b, 0x38, 0x99, 0x93, 0x5e, 0x55, 0xac, 0x49, 0x8e, 0x14,
+ 0xdb, 0x0f, 0xc9, 0x0d, 0x28, 0xe7, 0xc4, 0x47, 0xca, 0xd4, 0x73, 0xf2,
+ 0x26, 0x4c, 0xa5, 0x07, 0xc8, 0x0b, 0x50, 0xef, 0xc7, 0xbe, 0x37, 0x60,
+ 0x35, 0x3b, 0xed, 0x33, 0x5b, 0x4d, 0x92, 0x21, 0xfc, 0x15, 0x5d, 0x7f,
+ 0x6b, 0x26, 0xd3, 0xcb, 0x9c, 0x30, 0x5d, 0x55, 0x9f, 0xcd, 0x57, 0xca,
+ 0x6d, 0xa1, 0x32, 0x0f, 0x5f, 0x2a, 0xe4, 0xed, 0xc3, 0x65, 0x83, 0xfc,
+ 0xc4, 0x0e, 0x83, 0x64, 0x78, 0x7d, 0x9b, 0x94, 0x23, 0xf6, 0xf5, 0x03,
+ 0xc7, 0x0c, 0xb2, 0x71, 0x56, 0xdf, 0xb3, 0x47, 0xad, 0xad, 0x67, 0x70,
+ 0xd2, 0x2e, 0x12, 0x10, 0xce, 0xd1, 0x65, 0x96, 0xa3, 0x6b, 0x82, 0xfc,
+ 0x0b, 0x59, 0xed, 0x3a, 0xd3, 0xc8, 0xa6, 0xb2, 0xea, 0xb4, 0xf9, 0x76,
+ 0x40, 0x8f, 0xa6, 0x73, 0x44, 0xd3, 0xb4, 0xbc, 0xab, 0x62, 0xd0, 0x15,
+ 0x52, 0xca, 0x3e, 0x51, 0x75, 0x0f, 0xda, 0xfb, 0x24, 0x64, 0x51, 0xd2,
+ 0xe5, 0x1e, 0x7d, 0x9d, 0xde, 0x0f, 0xaf, 0x50, 0xdc, 0x19, 0x49, 0xc9,
+ 0x9e, 0xc5, 0x14, 0x5d, 0x4b, 0x6c, 0xbb, 0x66, 0x1a, 0x1e, 0x4b, 0x25,
+ 0xc2, 0xc9, 0x57, 0x94, 0xaf, 0xa3, 0xf1, 0xfb, 0x6a, 0xb6, 0xe3, 0x10,
+ 0x2b, 0x55, 0x43, 0x24, 0xd3, 0x97, 0xfc, 0x4d, 0xec, 0xc3, 0xcf, 0xf3,
+ 0x3c, 0x1d, 0xcb, 0xf6, 0x9d, 0x2f, 0xda, 0x00, 0xf3, 0x2c, 0x4c, 0x59,
+ 0xd2, 0xa1, 0x5a, 0xc3, 0x3d, 0xe7, 0xac, 0xf3, 0xa4, 0xd6, 0xcb, 0x4e,
+ 0xeb, 0x5c, 0x9e, 0xf7, 0x9e, 0x6d, 0x98, 0x5f, 0xf5, 0xe6, 0x7e, 0xc6,
+ 0x3b, 0x4d, 0xa5, 0xdd, 0xf4, 0xe6, 0x9e, 0x73, 0xa8, 0x83, 0x36, 0x19,
+ 0xf7, 0x58, 0xb6, 0xf8, 0x53, 0x63, 0x31, 0x51, 0x48, 0xb2, 0x35, 0x9c,
+ 0x6b, 0x94, 0xeb, 0x1d, 0x26, 0xeb, 0x58, 0x01, 0xa5, 0xb2, 0x40, 0xef,
+ 0xca, 0x45, 0x54, 0x16, 0xb0, 0xd7, 0x8d, 0xfd, 0x5c, 0x65, 0x2d, 0xa6,
+ 0x7d, 0x4c, 0x44, 0x9a, 0x3b, 0x84, 0x59, 0x7b, 0xa2, 0xcb, 0x6c, 0xae,
+ 0xcb, 0x6b, 0x59, 0xa5, 0x52, 0x6e, 0xf1, 0xc3, 0x03, 0x32, 0xa5, 0x1e,
+ 0x74, 0x75, 0xe1, 0x0b, 0x24, 0xfa, 0xf7, 0x41, 0x36, 0xfe, 0xf2, 0x5b,
+ 0xdf, 0xc9, 0x46, 0xf2, 0x2f, 0x42, 0x61, 0xf0, 0xc6, 0xed, 0xff, 0x56,
+ 0xaf, 0x79, 0x9c, 0x44, 0x45, 0x4e, 0x9a, 0x41, 0xaa, 0x86, 0x14, 0x29,
+ 0xeb, 0x12, 0x76, 0xf2, 0x5d, 0x11, 0x94, 0x6a, 0xc8, 0x91, 0x89, 0xbd,
+ 0x4e, 0xb4, 0x9a, 0xf6, 0x2e, 0x61, 0xbc, 0x0e, 0x8e, 0xb3, 0xb9, 0x87,
+ 0x7f, 0x6e, 0xd1, 0x9f, 0xdb, 0x9d, 0x35, 0x29, 0x6a, 0x73, 0xf7, 0x13,
+ 0x55, 0x84, 0xf6, 0x05, 0xc7, 0x61, 0x7b, 0xab, 0x31, 0x74, 0x39, 0x1c,
+ 0x35, 0x4f, 0x9a, 0xb1, 0xa1, 0x7b, 0xc2, 0x5b, 0xe7, 0x2b, 0x87, 0x4a,
+ 0x86, 0x09, 0x7b, 0x58, 0x6f, 0x52, 0x76, 0xf1, 0xc2, 0xca, 0x30, 0x21,
+ 0x31, 0x1d, 0x39, 0x91, 0x86, 0xe1, 0xc7, 0x32, 0xbd, 0x4a, 0xaa, 0xab,
+ 0x68, 0x56, 0x33, 0x67, 0xc3, 0x61, 0x68, 0x0f, 0x37, 0x1d, 0x67, 0x36,
+ 0x70, 0x20, 0x9f, 0xee, 0xa9, 0xef, 0xc9, 0xee, 0x22, 0x07, 0x4b, 0xc7,
+ 0xc5, 0xad, 0x3e, 0x13, 0x4b, 0xc9, 0x59, 0x48, 0xd7, 0x80, 0xdd, 0x24,
+ 0x4f, 0x30, 0x3e, 0xe6, 0x66, 0x6c, 0x4f, 0x50, 0xf7, 0xc5, 0x7a, 0x38,
+ 0x90, 0x9b, 0x17, 0x40, 0x31, 0xf4, 0x2a, 0x8d, 0x69, 0xdf, 0xd0, 0xa5,
+ 0x37, 0x0b, 0x64, 0x53, 0x1a, 0xb6, 0xcb, 0x2e, 0x24, 0xca, 0x23, 0xff,
+ 0xa6, 0x4b, 0x5a, 0x54, 0xba, 0x8a, 0xb3, 0xba, 0xdb, 0xfa, 0xdc, 0xc3,
+ 0xe7, 0x45, 0xa5, 0xae, 0x51, 0x9f, 0x64, 0xb1, 0x1c, 0x5b, 0xd5, 0xc3,
+ 0x22, 0xee, 0x8a, 0x90, 0x13, 0x95, 0xdd, 0xec, 0xbf, 0xfd, 0xc9, 0xa3,
+ 0x59, 0xad, 0x93, 0xf7, 0x62, 0xdd, 0x1e, 0x84, 0x07, 0x8e, 0x1f, 0xd0,
+ 0x22, 0xc6, 0xc0, 0xd2, 0xac, 0x7a, 0xc4, 0xe9, 0x73, 0xee, 0x08, 0x7e,
+ 0x47, 0x63, 0xc4, 0x92, 0xc1, 0xe3, 0x92, 0xd6, 0x77, 0xdc, 0x58, 0x96,
+ 0x3b, 0x74, 0xce, 0x6c, 0x9f, 0x07, 0x7a, 0x2f, 0x0e, 0xe0, 0xd5, 0xe4,
+ 0x3a, 0xe9, 0x45, 0xa7, 0x87, 0xfd, 0x33, 0xfc, 0xc4, 0x14, 0xb3, 0x96,
+ 0xd6, 0x30, 0xa5, 0xa9, 0x35, 0x5c, 0x7a, 0x57, 0xa7, 0x79, 0xd5, 0xa8,
+ 0xf7, 0x9c, 0xbb, 0x81, 0x1a, 0xc6, 0xd4, 0x3c, 0xcc, 0x46, 0xba, 0x11,
+ 0xe5, 0x3b, 0x51, 0x15, 0x43, 0xc4, 0x87, 0xd8, 0xfb, 0xd0, 0x14, 0x48,
+ 0x39, 0x5a, 0x33, 0x8e, 0xe8, 0xae, 0x72, 0x99, 0xc9, 0x59, 0xa8, 0x66,
+ 0x97, 0x68, 0x8b, 0x55, 0xea, 0xc6, 0x32, 0x5f, 0x00, 0x6a, 0xf8, 0x9a,
+ 0x8d, 0x2c, 0xdb, 0x44, 0x5d, 0xc0, 0x7a, 0xc4, 0x6a, 0x24, 0xd2, 0xe8,
+ 0xf2, 0xc2, 0x8e, 0x8a, 0xf9, 0x54, 0x54, 0x96, 0x99, 0x51, 0x94, 0x9f,
+ 0x13, 0xec, 0x03, 0x3a, 0x0b, 0x6f, 0x8a, 0x1a, 0x90, 0x17, 0x52, 0x8a,
+ 0x39, 0xcf, 0xbb, 0x3d, 0x64, 0x8d, 0x12, 0xcf, 0x13, 0x45, 0x4a, 0x33,
+ 0xe4, 0x09, 0xd4, 0xef, 0xd9, 0x6a, 0xc7, 0xf1, 0x8c, 0x64, 0xf9, 0x2a,
+ 0x9f, 0x61, 0xbe, 0xa3, 0xaf, 0x3c, 0xa0, 0x0e, 0x88, 0xb7, 0x22, 0x12,
+ 0x70, 0x69, 0x36, 0xb5, 0x0c, 0xb7, 0xa4, 0x3f, 0x61, 0x67, 0xb3, 0xe9,
+ 0x4f, 0xa0, 0x91, 0xc0, 0xfa, 0x49, 0xa3, 0x7d, 0xfc, 0xf3, 0xc1, 0xdb,
+ 0x83, 0x93, 0xcf, 0xf0, 0x79, 0x49, 0xe1, 0x60, 0x19, 0x2f, 0x7e, 0xeb,
+ 0xa8, 0x79, 0x91, 0x78, 0x57, 0x37, 0x31, 0x6f, 0x0f, 0xe5, 0x73, 0x37,
+ 0x7a, 0x85, 0x55, 0xd4, 0x47, 0xef, 0xbe, 0x22, 0x8e, 0x3a, 0xdb, 0xdc,
+ 0xa2, 0x60, 0xb9, 0x31, 0x9d, 0x46, 0xf4, 0x91, 0xaa, 0x67, 0xaa, 0x27,
+ 0xf0, 0xae, 0xf2, 0x32, 0xb6, 0xf1, 0xee, 0xea, 0x92, 0xb8, 0x47, 0x8f,
+ 0x12, 0x55, 0xf3, 0x8c, 0xfe, 0xf0, 0xcb, 0xdb, 0x50, 0x14, 0xe7, 0xc5,
+ 0xff, 0x66, 0x19, 0xba, 0x94, 0x85, 0x7f, 0xd4, 0x95, 0x77, 0xf1, 0xbf,
+ 0xd7, 0xe9, 0xbd, 0xb8, 0xb4, 0xe1, 0x6f, 0x34, 0xb8, 0xb3, 0x87, 0xe6,
+ 0xc9, 0x68, 0xdf, 0xa1, 0xfe, 0xf7, 0xc6, 0xc3, 0xf0, 0xe3, 0xd3, 0x54,
+ 0x82, 0xf0, 0x96, 0xe2, 0x42, 0x42, 0x7e, 0x4e, 0x9b, 0x70, 0x4b, 0x4b,
+ 0xa5, 0x3b, 0x8e, 0x2b, 0xe2, 0xa9, 0x6e, 0x1e, 0xcf, 0x65, 0x92, 0x1b,
+ 0x45, 0x2f, 0xe6, 0x4a, 0x2f, 0x4a, 0xbc, 0x6e, 0x6f, 0xea, 0xb0, 0x18,
+ 0x7b, 0x97, 0x7d, 0xc3, 0x1d, 0x40, 0x56, 0xd2, 0x96, 0x5c, 0xf0, 0x64,
+ 0x22, 0xb3, 0x4c, 0x14, 0xdb, 0xa4, 0x7d, 0x6a, 0x8d, 0xa5, 0x42, 0x4a,
+ 0xad, 0x55, 0x0d, 0xf0, 0x4d, 0x7e, 0x91, 0x52, 0x82, 0x68, 0x6a, 0xac,
+ 0x7f, 0xf6, 0x22, 0x6b, 0x47, 0x84, 0x8c, 0x2a, 0x60, 0x1a, 0xe3, 0xbd,
+ 0xd1, 0x3c, 0x66, 0x25, 0x5b, 0xc3, 0x41, 0x0f, 0xc2, 0xb8, 0xcc, 0x44,
+ 0xeb, 0x96, 0xda, 0xd1, 0xf6, 0x70, 0x9a, 0x9d, 0x25, 0x3e, 0x7c, 0x29,
+ 0xa1, 0x22, 0x7e, 0x55, 0x86, 0x65, 0xbe, 0x46, 0xfb, 0xbe, 0xe3, 0x90,
+ 0xa4, 0x13, 0xda, 0x0a, 0x75, 0x4f, 0xf3, 0xd9, 0xcc, 0x6e, 0x90, 0x74,
+ 0xca, 0x3b, 0xa4, 0xa5, 0xf0, 0x96, 0x36, 0x0c, 0x8a, 0x22, 0xc7, 0xff,
+ 0xe6, 0x18, 0x49, 0xf8, 0xb7, 0x00, 0x37, 0x3a, 0xec, 0x65, 0x38, 0x90,
+ 0xaa, 0x70, 0x24, 0x9c, 0x4d, 0x1a, 0x1c, 0xd6, 0x3b, 0x4a, 0x35, 0xfa,
+ 0xf8, 0xfe, 0x51, 0x66, 0xb2, 0x6a, 0x60, 0x6a, 0x0d, 0x3b, 0x26, 0xb2,
+ 0x67, 0x43, 0xb6, 0x19, 0x04, 0x6e, 0x9b, 0x1a, 0x53, 0xef, 0x98, 0x77,
+ 0x31, 0xfe, 0x95, 0x0d, 0xaf, 0xb9, 0x52, 0xe9, 0xa2, 0x6d, 0xc6, 0x99,
+ 0x02, 0x3d, 0x2e, 0x2e, 0x0d, 0x6c, 0x01, 0x59, 0xe8, 0x18, 0x9b, 0x43,
+ 0x9e, 0x44, 0xf5, 0x04, 0x38, 0xc0, 0xf8, 0xf6, 0x83, 0xbe, 0x1b, 0x98,
+ 0xeb, 0xc7, 0x57, 0xc7, 0xef, 0xa3, 0x55, 0xb4, 0x6b, 0xda, 0xae, 0x03,
+ 0xd5, 0x6f, 0xd6, 0xd3, 0x7a, 0xb8, 0x3e, 0xbd, 0xce, 0xd6, 0xc1, 0x84,
+ 0x1f, 0x0d, 0xd6, 0x8c, 0x69, 0x4a, 0x9f, 0x43, 0x2e, 0x34, 0xe6, 0xbe,
+ 0xda, 0xfb, 0x64, 0xf0, 0xb7, 0xf9, 0xcd, 0x71, 0x00, 0x30, 0xd6, 0x85,
+ 0xb1, 0xfc, 0x25, 0x6a, 0x48, 0x0c, 0x4d, 0x51, 0x77, 0xce, 0x24, 0xa3,
+ 0x60, 0x7d, 0xca, 0xb1, 0xc1, 0xfb, 0x62, 0xd6, 0x3e, 0xab, 0x5c, 0xe6,
+ 0x28, 0xee, 0x31, 0x76, 0x8b, 0xa9, 0x0b, 0x5c, 0x6e, 0x35, 0xab, 0xfe,
+ 0x77, 0xb1, 0xaa, 0x32, 0x21, 0x54, 0x0c, 0xb8, 0x39, 0x47, 0xe8, 0xb5,
+ 0x0d, 0x24, 0xd0, 0x83, 0xbe, 0xde, 0x5b, 0xef, 0x44, 0xa6, 0x8e, 0x14,
+ 0xa8, 0xcc, 0xe5, 0xd2, 0x26, 0x97, 0x01, 0x58, 0xec, 0x62, 0x56, 0x19,
+ 0xb7, 0x73, 0x62, 0xf6, 0xab, 0x17, 0x92, 0xd4, 0xce, 0x76, 0x1a, 0xa5,
+ 0x13, 0x8c, 0x03, 0x3a, 0x58, 0xae, 0x0f, 0x44, 0x26, 0x45, 0x5b, 0xd5,
+ 0xf9, 0xa1, 0x13, 0x39, 0x75, 0x88, 0x8d, 0x72, 0x44, 0xf1, 0x9f, 0x69,
+ 0x38, 0x57, 0x6e, 0x17, 0x50, 0x1c, 0xcc, 0x19, 0x1e, 0xa5, 0xe3, 0x6c,
+ 0x92, 0x91, 0x45, 0xeb, 0x4e, 0xc1, 0xdb, 0x8a, 0xe6, 0x94, 0x7e, 0xf0,
+ 0xa7, 0xa4, 0xd5, 0xbd, 0x09, 0xfe, 0x1a, 0xa6, 0x44, 0x7e, 0x46, 0x2e,
+ 0xbd, 0x0c, 0xfb, 0x22, 0x9a, 0x13, 0x32, 0xf5, 0xc1, 0x0b, 0x32, 0x81,
+ 0xcc, 0x59, 0x9a, 0x67, 0xcb, 0x58, 0x47, 0x93, 0x1e, 0x7a, 0x16, 0x6a,
+ 0xd1, 0xf4, 0x7a, 0x58, 0x6d, 0x6e, 0xb6, 0x6f, 0xd0, 0xca, 0x72, 0x94,
+ 0x78, 0x45, 0x12, 0xc3, 0x98, 0x1f, 0xde, 0x1f, 0x47, 0xab, 0x88, 0x18,
+ 0xf1, 0x7c, 0x77, 0x73, 0x6b, 0x4d, 0xed, 0x3a, 0x71, 0x90, 0xce, 0xb9,
+ 0x90, 0xef, 0xc9, 0xdd, 0xe7, 0x1e, 0x40, 0x54, 0xa5, 0x45, 0x31, 0xb2,
+ 0x43, 0x8f, 0x52, 0x0c, 0xce, 0xf4, 0xa2, 0x03, 0x8d, 0x02, 0x0d, 0x52,
+ 0x98, 0xa4, 0x47, 0x71, 0x5b, 0xba, 0xcb, 0xb3, 0x07, 0x1b, 0xd1, 0x98,
+ 0x0a, 0x98, 0x5f, 0x0f, 0x3c, 0x50, 0x0b, 0xed, 0xdc, 0x59, 0x4b, 0x66,
+ 0x51, 0x32, 0xc7, 0xbf, 0x86, 0xeb, 0x62, 0x24, 0x0d, 0x52, 0x5e, 0xba,
+ 0x2a, 0x70, 0xd0, 0xe6, 0x11, 0x62, 0x89, 0xe8, 0x35, 0xe9, 0x40, 0x98,
+ 0xa9, 0xd7, 0xde, 0x40, 0x99, 0x53, 0x07, 0x2f, 0x92, 0x9c, 0xb4, 0x86,
+ 0xc4, 0x0e, 0x6a, 0xa8, 0xef, 0x2a, 0x04, 0xcd, 0x51, 0xfd, 0xc0, 0x06,
+ 0x31, 0x0e, 0xa8, 0x44, 0xe1, 0x21, 0x7f, 0x27, 0xd7, 0x5d, 0x53, 0x7c,
+ 0xca, 0xf6, 0xe0, 0xde, 0x8b, 0x2f, 0x76, 0x90, 0x4a, 0x95, 0x1c, 0xcb,
+ 0xdb, 0x44, 0x1f, 0xf7, 0xee, 0x71, 0x78, 0x7d, 0x5d, 0x2f, 0x21, 0xba,
+ 0x85, 0xd4, 0x8b, 0xcb, 0xfe, 0x34, 0x2c, 0xfb, 0x40, 0xff, 0xd9, 0xb5,
+ 0xb8, 0xcf, 0x48, 0x77, 0x37, 0x29, 0x79, 0xbe, 0x07, 0x5e, 0x2f, 0xfe,
+ 0x98, 0xaa, 0x2f, 0x5b, 0x3e, 0x0b, 0x24, 0x82, 0x73, 0xe1, 0x91, 0xf4,
+ 0xe3, 0xfc, 0x77, 0x92, 0x78, 0xe1, 0xf8, 0x00, 0x72, 0x2a, 0x07, 0x2d,
+ 0x96, 0x92, 0x81, 0x21, 0x3f, 0x25, 0x89, 0xc0, 0x27, 0x49, 0xc0, 0x07,
+ 0x3c, 0x79, 0x87, 0xde, 0x8d, 0x5d, 0x19, 0x65, 0xc8, 0xea, 0x6a, 0x14,
+ 0x0f, 0x25, 0xc2, 0xf9, 0x86, 0x57, 0xc9, 0xc5, 0x27, 0x52, 0x1c, 0xd3,
+ 0x52, 0xe7, 0xc8, 0x5d, 0x06, 0xc7, 0x65, 0xf5, 0x44, 0x8a, 0x69, 0xce,
+ 0x5e, 0x7f, 0xe7, 0xd4, 0x66, 0x79, 0x1e, 0x0c, 0x72, 0xef, 0x7d, 0x6a,
+ 0x72, 0x71, 0xc0, 0xf0, 0xc1, 0xac, 0xde, 0x4c, 0xb2, 0xe3, 0xd9, 0xf9,
+ 0x46, 0x39, 0x49, 0x6b, 0x36, 0xf1, 0x1b, 0x49, 0xdd, 0xd9, 0xa7, 0xdf,
+ 0xb5, 0x43, 0x83, 0x52, 0x32, 0xfd, 0xf9, 0x0f, 0xfc, 0x6b, 0x96, 0xb1,
+ 0xf0, 0xaf, 0xfa, 0x6a, 0x36, 0x19, 0xc0, 0x7e, 0xe6, 0xf5, 0xe7, 0x9d,
+ 0x88, 0x13, 0x5e, 0x2e, 0x84, 0x9e, 0x0b, 0xac, 0xe3, 0x4c, 0x93, 0x68,
+ 0xd4, 0x63, 0xdb, 0xa0, 0x1a, 0xcf, 0x4e, 0x41, 0x02, 0x6c, 0x2e, 0x33,
+ 0x6c, 0x1e, 0x47, 0x08, 0x3c, 0x55, 0xef, 0x03, 0xb0, 0xe7, 0x0f, 0x6f,
+ 0xff, 0xf6, 0xc3, 0xcb, 0xed, 0x9d, 0xe4, 0x79, 0x32, 0x7c, 0x76, 0xf1,
+ 0x22, 0xd9, 0x1d, 0xed, 0x3e, 0x7f, 0xb9, 0xf5, 0x62, 0x37, 0x79, 0xbe,
+ 0x73, 0x91, 0x3c, 0xdb, 0x4c, 0x37, 0x5f, 0x5e, 0x6c, 0x6d, 0x8f, 0x46,
+ 0x17, 0xe9, 0x8b, 0xd1, 0xf3, 0xa4, 0xd3, 0x23, 0x2b, 0x51, 0xa7, 0xee,
+ 0x8b, 0x5a, 0x8d, 0x93, 0x26, 0x51, 0xff, 0xcd, 0x41, 0xbc, 0x19, 0x5d,
+ 0xa5, 0x77, 0x7a, 0xc0, 0x9a, 0x39, 0x4e, 0x08, 0x5b, 0x44, 0xcb, 0x99,
+ 0xbf, 0x58, 0x05, 0x0c, 0xc2, 0xea, 0x12, 0x74, 0x16, 0x91, 0x06, 0xcc,
+ 0x54, 0x54, 0xb2, 0x72, 0xfe, 0xb1, 0xf1, 0xca, 0xee, 0x69, 0x24, 0x04,
+ 0xd7, 0xd5, 0x3e, 0xfc, 0x27, 0xe8, 0xf0, 0x78, 0x9b, 0x0c, 0xaf, 0xa8,
+ 0x38, 0x5b, 0x1e, 0xec, 0x73, 0x0c, 0xbd, 0x1b, 0xc9, 0x5f, 0xd0, 0xf7,
+ 0xee, 0x8c, 0xf1, 0x55, 0x59, 0xcc, 0xa6, 0x67, 0xc5, 0x38, 0x1b, 0xde,
+ 0x2f, 0x1a, 0xce, 0x7d, 0xac, 0xf1, 0x8b, 0x23, 0x16, 0xe1, 0x59, 0x95,
+ 0xfe, 0x2b, 0xd8, 0x6c, 0x44, 0x6b, 0x12, 0x07, 0xac, 0xe3, 0xc2, 0xff,
+ 0x96, 0xb7, 0xda, 0xac, 0xb0, 0x7f, 0xd0, 0x6c, 0x8b, 0x87, 0xd9, 0xf4,
+ 0x0a, 0x13, 0x6f, 0xf6, 0x29, 0xd1, 0x1a, 0x63, 0x69, 0xfc, 0x83, 0xb0,
+ 0xb9, 0xd6, 0x97, 0xc3, 0x5e, 0x09, 0xab, 0xe8, 0xdb, 0xa2, 0xcc, 0x65,
+ 0x5a, 0x63, 0xaf, 0x2e, 0x40, 0x49, 0xf0, 0xcf, 0x3c, 0x1f, 0xa9, 0xfd,
+ 0x10, 0x0b, 0x12, 0x55, 0xe4, 0xd9, 0x7d, 0x23, 0xbf, 0xea, 0x49, 0xad,
+ 0xf6, 0x6c, 0xca, 0x28, 0x09, 0x14, 0x80, 0xe1, 0xdf, 0xb5, 0xcf, 0x30,
+ 0x4e, 0x5e, 0x98, 0x91, 0x2b, 0xfd, 0x61, 0xb3, 0x3e, 0xbc, 0x3f, 0xd9,
+ 0x6b, 0x13, 0xc9, 0x10, 0x92, 0x62, 0x74, 0x55, 0xba, 0x3e, 0x2a, 0x86,
+ 0xd5, 0x7a, 0x55, 0x8d, 0x95, 0x10, 0x84, 0x20, 0xf4, 0x47, 0x33, 0x82,
+ 0x50, 0xe6, 0xe8, 0xf0, 0xd5, 0x9b, 0xa3, 0x18, 0xfe, 0xec, 0x1f, 0xc4,
+ 0x07, 0x47, 0xfd, 0xad, 0xdd, 0x67, 0xf1, 0xe1, 0xe1, 0xdb, 0x17, 0x0f,
+ 0xf9, 0x01, 0x8b, 0x09, 0x89, 0xdb, 0x74, 0x14, 0x57, 0x95, 0x97, 0x58,
+ 0x8a, 0xa5, 0x98, 0x9c, 0x61, 0x76, 0x24, 0xb9, 0xd1, 0x74, 0x3f, 0xc7,
+ 0xb0, 0x75, 0x58, 0x3d, 0xa9, 0x2f, 0xd3, 0xde, 0x99, 0xcc, 0x0b, 0x93,
+ 0xd4, 0xd9, 0x0d, 0xa8, 0x8f, 0x89, 0x5c, 0x34, 0x9f, 0xba, 0xfe, 0x32,
+ 0x34, 0x03, 0x8a, 0xd2, 0x14, 0xf5, 0x13, 0x58, 0xc9, 0xd2, 0x64, 0x68,
+ 0x2c, 0x24, 0xaa, 0x16, 0x64, 0x6f, 0x05, 0xf2, 0xc7, 0x9f, 0xb5, 0x5c,
+ 0x4c, 0x66, 0xb0, 0x70, 0xde, 0x8a, 0x3a, 0x2d, 0x93, 0xc8, 0x3e, 0x69,
+ 0x3d, 0x78, 0x8a, 0x2e, 0x60, 0x8c, 0x3b, 0x93, 0x6e, 0x55, 0x2d, 0xaa,
+ 0x62, 0x67, 0xf5, 0xb7, 0x19, 0x93, 0x46, 0xa8, 0x06, 0xfe, 0x80, 0x0b,
+ 0x01, 0xd1, 0x8b, 0xde, 0x70, 0x0a, 0x56, 0x5b, 0xe1, 0x10, 0x80, 0xad,
+ 0xb9, 0x09, 0xdd, 0x73, 0x58, 0x73, 0x9e, 0x83, 0x34, 0x9a, 0xe5, 0x36,
+ 0x0e, 0x17, 0xf9, 0xd7, 0x8d, 0xc2, 0x48, 0xd8, 0xa8, 0x64, 0x99, 0x32,
+ 0xfc, 0x01, 0xa8, 0x5e, 0x65, 0x59, 0x94, 0xbd, 0x00, 0x53, 0x58, 0x36,
+ 0x88, 0xbd, 0xfb, 0x61, 0x31, 0x5b, 0x80, 0xcd, 0x83, 0x3f, 0xa6, 0xa4,
+ 0x54, 0x4b, 0xf7, 0xa7, 0x33, 0xca, 0xe2, 0xa3, 0xf1, 0x35, 0x39, 0x11,
+ 0x40, 0x0b, 0xca, 0x2e, 0xc3, 0xc9, 0x29, 0x36, 0x3b, 0xbe, 0xc6, 0x32,
+ 0x1e, 0xcd, 0x3c, 0xc1, 0x3a, 0x58, 0xf1, 0x1d, 0x68, 0xf2, 0x58, 0xc5,
+ 0xea, 0x9a, 0x66, 0x9d, 0xb4, 0xa0, 0xb8, 0x1c, 0x44, 0xae, 0xe6, 0x2b,
+ 0x98, 0xb4, 0x1c, 0x99, 0x14, 0x40, 0xf3, 0x8d, 0x46, 0x66, 0x3a, 0x62,
+ 0xc4, 0x11, 0x93, 0xb5, 0x8d, 0x7a, 0x0c, 0xbf, 0x58, 0xd5, 0x3e, 0x04,
+ 0x5c, 0xd6, 0xa6, 0xdb, 0xe9, 0xb4, 0x01, 0x5b, 0x90, 0x11, 0x8e, 0x5e,
+ 0x42, 0x95, 0x6e, 0x21, 0x05, 0xae, 0x70, 0x12, 0x1c, 0x68, 0x40, 0x5f,
+ 0xb5, 0xa9, 0x4d, 0xad, 0x83, 0x22, 0xcf, 0x90, 0xde, 0x07, 0xb7, 0x01,
+ 0x68, 0x37, 0x58, 0x84, 0x85, 0x58, 0x89, 0xe3, 0xc2, 0xea, 0xd1, 0x52,
+ 0x9b, 0x8f, 0xe9, 0x90, 0x3d, 0xef, 0x7a, 0xc6, 0x33, 0x65, 0x2b, 0x86,
+ 0x38, 0x68, 0xc7, 0x3f, 0xa0, 0xa3, 0x32, 0xd0, 0xe4, 0x12, 0xab, 0x54,
+ 0xc9, 0xee, 0x05, 0x3d, 0x80, 0x52, 0xa8, 0xc6, 0xd0, 0x55, 0x19, 0x01,
+ 0xb3, 0x09, 0x8c, 0x17, 0xd7, 0xdd, 0x69, 0x04, 0xa7, 0x2a, 0xa4, 0xd8,
+ 0x02, 0x27, 0x8a, 0xf3, 0xe4, 0x39, 0xb6, 0x4f, 0x82, 0x81, 0xe8, 0x6a,
+ 0xd8, 0x9c, 0x49, 0x65, 0xcb, 0xd7, 0x2a, 0x3f, 0xd4, 0x6f, 0xa9, 0x19,
+ 0x74, 0x52, 0x78, 0xb5, 0x80, 0x34, 0x93, 0x32, 0xd5, 0x4f, 0xe4, 0x45,
+ 0x7b, 0x56, 0x32, 0x8f, 0xd8, 0x77, 0xd9, 0x99, 0x72, 0x37, 0x67, 0x02,
+ 0x5a, 0xf6, 0x66, 0xb6, 0x39, 0x2c, 0x2f, 0x52, 0xfb, 0x80, 0xf5, 0x25,
+ 0xd8, 0x3d, 0x24, 0x9f, 0x92, 0x14, 0x91, 0xf3, 0xbc, 0xf7, 0x18, 0x30,
+ 0xe5, 0xb3, 0xb5, 0x6e, 0x30, 0xff, 0xca, 0x0c, 0x66, 0x93, 0xc4, 0x11,
+ 0x9e, 0x66, 0x5c, 0x54, 0x1a, 0x6a, 0x84, 0x0d, 0x64, 0x2c, 0x35, 0x46,
+ 0x41, 0x30, 0x08, 0x6b, 0xad, 0xe1, 0xf8, 0x19, 0xde, 0x9e, 0x0b, 0xa3,
+ 0x51, 0x8a, 0x3f, 0xc2, 0x62, 0xbf, 0x51, 0x65, 0xb4, 0x71, 0x19, 0xc0,
+ 0xe4, 0x7e, 0xf8, 0x01, 0x94, 0xc2, 0x1f, 0x3a, 0xed, 0xd9, 0xfd, 0x00,
+ 0xb2, 0xe9, 0x07, 0xe0, 0xc5, 0x1f, 0xb8, 0x7e, 0xf7, 0x87, 0x1b, 0xb4,
+ 0xf5, 0x31, 0xdc, 0x51, 0x8d, 0x31, 0x4a, 0xca, 0xd6, 0x54, 0xd3, 0xf9,
+ 0xca, 0x28, 0x77, 0x84, 0x64, 0x75, 0xe9, 0x79, 0x02, 0x30, 0x2c, 0x38,
+ 0x8f, 0xa2, 0x5c, 0x04, 0x01, 0xbb, 0x37, 0x9b, 0xe4, 0x62, 0x92, 0x32,
+ 0xaf, 0x92, 0x14, 0x60, 0x84, 0xd8, 0x68, 0xe5, 0x4f, 0x2b, 0x0e, 0x67,
+ 0x75, 0x43, 0x9e, 0xc0, 0x32, 0x65, 0x3d, 0x8c, 0xb4, 0x89, 0xcc, 0xd1,
+ 0x24, 0x14, 0x21, 0x8e, 0xfc, 0x0c, 0x9c, 0x7c, 0xe0, 0x5f, 0xa9, 0xa7,
+ 0x18, 0x09, 0xe2, 0x9a, 0xe9, 0xc2, 0x7a, 0x10, 0xb0, 0x74, 0x7c, 0x7a,
+ 0x75, 0x5f, 0xe1, 0x15, 0x24, 0xf3, 0x31, 0x9a, 0x1a, 0x4e, 0x31, 0x98,
+ 0x45, 0xa6, 0xc2, 0x90, 0xf7, 0x18, 0x1f, 0x21, 0x6b, 0x1b, 0x05, 0x62,
+ 0x43, 0x92, 0xc2, 0x7c, 0x56, 0xe2, 0x15, 0x13, 0x03, 0x96, 0xe4, 0x33,
+ 0xaf, 0x24, 0x4e, 0x25, 0x87, 0x93, 0xf8, 0xef, 0x7d, 0xd2, 0xc9, 0x20,
+ 0x2f, 0xdc, 0x4a, 0x03, 0x0b, 0x61, 0x88, 0xf0, 0x06, 0x9a, 0x12, 0xe3,
+ 0xca, 0x82, 0x6e, 0x14, 0xf0, 0x33, 0x52, 0x45, 0x02, 0x17, 0xb2, 0xe8,
+ 0x5a, 0xd0, 0x09, 0x66, 0x83, 0x97, 0x71, 0x4c, 0xc0, 0xb2, 0x53, 0x06,
+ 0x83, 0x45, 0x16, 0xa1, 0x34, 0x9e, 0x7b, 0x2c, 0x94, 0x9e, 0x8e, 0x3d,
+ 0xf9, 0x2b, 0x19, 0xf3, 0x0a, 0xa7, 0x87, 0x07, 0x1e, 0x41, 0x49, 0x6f,
+ 0x73, 0x81, 0x8d, 0xec, 0x17, 0xe4, 0x8c, 0x1b, 0x52, 0x42, 0x90, 0xe4,
+ 0x9e, 0x49, 0xc9, 0x75, 0xc0, 0xf8, 0xc7, 0x6b, 0xdb, 0xd3, 0x4f, 0x71,
+ 0x3e, 0x9f, 0x31, 0xae, 0x9e, 0xa7, 0xa5, 0x76, 0xda, 0x0f, 0x53, 0x8d,
+ 0x80, 0x75, 0x6a, 0x0b, 0x18, 0x22, 0xcd, 0x61, 0x55, 0x52, 0x5d, 0xe3,
+ 0xbf, 0x73, 0xc6, 0x29, 0x17, 0x3c, 0x8b, 0x76, 0xb0, 0xc6, 0x75, 0x39,
+ 0x55, 0x20, 0x43, 0xc6, 0x66, 0x2b, 0x3a, 0xac, 0x61, 0xf3, 0xfd, 0x32,
+ 0x0a, 0x58, 0xd0, 0x35, 0xd6, 0x45, 0xac, 0xc8, 0x5c, 0x02, 0x2f, 0xb4,
+ 0x98, 0xb6, 0x8a, 0xcf, 0xbc, 0x67, 0x2a, 0x71, 0xe4, 0xae, 0x0c, 0x8d,
+ 0x9f, 0x55, 0x3c, 0x23, 0x89, 0x52, 0xf0, 0x06, 0xfb, 0xd9, 0x70, 0x22,
+ 0x0e, 0xa6, 0x63, 0x82, 0x75, 0xd5, 0xaa, 0x51, 0x52, 0x3e, 0x3d, 0x42,
+ 0x6e, 0xae, 0x51, 0x36, 0x3e, 0x85, 0xa8, 0x31, 0xbb, 0xf1, 0xcd, 0xe9,
+ 0xdb, 0xa3, 0xb0, 0x23, 0x1d, 0x6f, 0x84, 0xb4, 0x6e, 0xbf, 0xbf, 0x65,
+ 0xdf, 0xff, 0xee, 0xd5, 0x57, 0x1f, 0x0f, 0x4f, 0xdf, 0xbd, 0x3e, 0xfe,
+ 0xea, 0xc1, 0x51, 0xa2, 0x55, 0x55, 0x41, 0xdb, 0xc9, 0x4c, 0xbd, 0xe7,
+ 0xdb, 0xbd, 0x8d, 0xb5, 0xf6, 0x57, 0xb6, 0xed, 0x57, 0x96, 0x9d, 0xe0,
+ 0xce, 0x1a, 0x1c, 0x97, 0x3c, 0x96, 0x6c, 0xc8, 0x3d, 0xb2, 0xbf, 0x2e,
+ 0xd3, 0x7a, 0x7a, 0x3b, 0xcb, 0x46, 0x5c, 0x2d, 0x26, 0x2a, 0xe0, 0x55,
+ 0xa1, 0xf9, 0x8a, 0xe8, 0x4a, 0x6a, 0x0f, 0xb3, 0xbb, 0xa6, 0x69, 0x4b,
+ 0x3c, 0xc4, 0xc1, 0xd9, 0xd9, 0xab, 0x83, 0xf3, 0x83, 0x39, 0x1f, 0x7d,
+ 0xd6, 0x7a, 0xba, 0xf3, 0xa1, 0x7f, 0xf4, 0xfe, 0xec, 0xfd, 0x29, 0x42,
+ 0x6b, 0xfd, 0x70, 0x30, 0x45, 0xcc, 0x31, 0x0e, 0x5e, 0xbf, 0x02, 0x8d,
+ 0xae, 0x33, 0x67, 0x90, 0xe7, 0x6b, 0x28, 0xa7, 0x22, 0x4d, 0xe4, 0xd4,
+ 0x28, 0x7c, 0x99, 0xb2, 0xcf, 0x27, 0xea, 0x21, 0x47, 0x97, 0x43, 0x61,
+ 0x8d, 0xbc, 0xb1, 0x88, 0xae, 0xef, 0xfe, 0x67, 0x5e, 0x96, 0xf0, 0x56,
+ 0xda, 0xce, 0xd2, 0x54, 0x87, 0xda, 0x38, 0x4a, 0xef, 0xd2, 0xe1, 0xac,
+ 0xd6, 0x73, 0x40, 0x4c, 0x84, 0xa8, 0x7d, 0xed, 0x9d, 0xc2, 0x22, 0xdf,
+ 0x98, 0x2a, 0xb6, 0xc5, 0x83, 0x43, 0xd0, 0x21, 0x12, 0x4e, 0x63, 0xb9,
+ 0x40, 0xb0, 0x91, 0x40, 0x62, 0x2a, 0x58, 0x32, 0xb3, 0x15, 0xef, 0x9d,
+ 0xef, 0x21, 0xa1, 0xe8, 0x1a, 0x81, 0x48, 0xf2, 0x94, 0x3c, 0xb1, 0xf7,
+ 0x27, 0x38, 0xa2, 0xb1, 0x2a, 0xb9, 0x91, 0x58, 0xff, 0xb1, 0xf7, 0x50,
+ 0x6d, 0x14, 0x6f, 0x91, 0xfe, 0x61, 0xd9, 0xe1, 0xa8, 0xbe, 0x9d, 0xf6,
+ 0x91, 0x64, 0x24, 0x08, 0x78, 0x08, 0x27, 0x8d, 0x24, 0x17, 0xc0, 0x5c,
+ 0x3f, 0xa3, 0x30, 0x4e, 0x2e, 0x91, 0x09, 0x3f, 0x43, 0x6c, 0x26, 0x2c,
+ 0xc9, 0xc2, 0x7f, 0xad, 0x6f, 0xf6, 0x36, 0x3a, 0xfe, 0xe4, 0x51, 0x3a,
+ 0x08, 0x0a, 0x8d, 0x04, 0x57, 0x51, 0x3a, 0xd6, 0x45, 0xf1, 0xe0, 0xfc,
+ 0x58, 0xae, 0x81, 0xfe, 0x3a, 0x85, 0xf1, 0x83, 0x53, 0x89, 0x4f, 0xbd,
+ 0xeb, 0x11, 0xf3, 0xed, 0x4b, 0x15, 0x92, 0x20, 0x23, 0xf3, 0x82, 0x30,
+ 0x6c, 0x80, 0xe1, 0xc6, 0xe3, 0x06, 0x8c, 0x71, 0x27, 0x4c, 0xe6, 0x9c,
+ 0x4a, 0xa0, 0xd2, 0x36, 0xb5, 0x43, 0x79, 0x16, 0x22, 0xc2, 0x5c, 0xfd,
+ 0xcf, 0x64, 0x93, 0x93, 0xd1, 0x6f, 0xb8, 0xc0, 0xfe, 0x5c, 0x04, 0x5b,
+ 0xa0, 0x5e, 0x77, 0xf9, 0x04, 0x0b, 0xe7, 0x76, 0x7e, 0x44, 0xfa, 0x1d,
+ 0x7b, 0x5d, 0x62, 0x9c, 0x18, 0xea, 0xc1, 0xfb, 0x17, 0x82, 0xa3, 0x9e,
+ 0x8c, 0x05, 0x37, 0xc6, 0x73, 0xea, 0xbc, 0x4d, 0xee, 0xb2, 0xc9, 0x6c,
+ 0x12, 0xd1, 0x62, 0x58, 0xcb, 0x96, 0x27, 0x35, 0x6e, 0x85, 0xbe, 0x40,
+ 0x4e, 0x03, 0xc3, 0x39, 0x61, 0x1a, 0xa8, 0xf1, 0xed, 0x04, 0x6e, 0x34,
+ 0xb8, 0xff, 0xd5, 0x6b, 0x20, 0xc5, 0xfb, 0x93, 0xac, 0xae, 0x5a, 0x3e,
+ 0x21, 0xd0, 0x44, 0x12, 0xcc, 0xbd, 0x51, 0x80, 0x18, 0xbe, 0xbf, 0x5c,
+ 0xc8, 0xcd, 0x06, 0xf2, 0xa6, 0xaa, 0x8f, 0x4e, 0xaa, 0x79, 0x5a, 0x66,
+ 0xc5, 0xc8, 0x9c, 0x49, 0x54, 0x60, 0xb3, 0x7c, 0x06, 0xbb, 0xc8, 0x01,
+ 0x8b, 0x5a, 0x7f, 0xe3, 0x79, 0xa1, 0xb1, 0xd4, 0x2d, 0xea, 0x53, 0x55,
+ 0xa4, 0x26, 0x8f, 0x3f, 0xef, 0x6d, 0x6f, 0x21, 0x20, 0x9c, 0x6b, 0x43,
+ 0x0b, 0x40, 0x29, 0x5a, 0xea, 0xd9, 0x44, 0x91, 0x37, 0xaa, 0xde, 0xef,
+ 0xe3, 0x13, 0xaa, 0x16, 0x30, 0x43, 0x63, 0x7b, 0xb7, 0x36, 0x82, 0xfc,
+ 0xf0, 0xb8, 0x97, 0xb7, 0x7b, 0x9b, 0x3b, 0xcb, 0xf9, 0x14, 0xa9, 0x72,
+ 0x65, 0x92, 0xdc, 0xd1, 0x10, 0xbd, 0x10, 0xdb, 0x15, 0xd1, 0xfe, 0x9b,
+ 0xd3, 0xfe, 0xf9, 0xe6, 0xde, 0xd9, 0xe9, 0x7b, 0xf8, 0x13, 0xff, 0xbe,
+ 0x45, 0x7f, 0xdf, 0xfa, 0xbc, 0x3d, 0xec, 0x6b, 0x49, 0xc8, 0xd7, 0x52,
+ 0x61, 0x46, 0xea, 0x44, 0x9d, 0x4e, 0xec, 0x3d, 0x67, 0x20, 0x34, 0x2f,
+ 0x50, 0xee, 0x2b, 0x07, 0x05, 0x34, 0x29, 0xe7, 0x53, 0x9a, 0xb3, 0xdb,
+ 0x8b, 0xfc, 0xbc, 0xe0, 0xac, 0x56, 0x7d, 0x52, 0xc0, 0x72, 0x14, 0x86,
+ 0xa7, 0xed, 0x73, 0x61, 0xb0, 0x13, 0x29, 0x0e, 0x66, 0xcf, 0x05, 0x68,
+ 0x3b, 0x98, 0x15, 0xda, 0xfc, 0xd5, 0x70, 0x0c, 0xd6, 0x4e, 0x8a, 0xb9,
+ 0x5e, 0xa3, 0x94, 0x23, 0x8b, 0xf8, 0x93, 0x90, 0xa9, 0x26, 0xb5, 0xc7,
+ 0x25, 0x43, 0x2a, 0xb6, 0x66, 0x46, 0x47, 0x45, 0x03, 0x9a, 0x30, 0x9f,
+ 0x84, 0x50, 0xec, 0x14, 0x3a, 0xa2, 0x3d, 0x1c, 0x25, 0xd2, 0xbb, 0x1e,
+ 0x56, 0x85, 0x04, 0x7d, 0x77, 0x7a, 0x1e, 0x25, 0x17, 0x17, 0x8a, 0x1c,
+ 0x44, 0xc5, 0x53, 0xa8, 0xb1, 0xaf, 0x93, 0xff, 0x46, 0xe3, 0xd0, 0x55,
+ 0x00, 0x97, 0x80, 0xee, 0xce, 0xf3, 0x93, 0xfe, 0x3a, 0x3a, 0x58, 0x39,
+ 0xfd, 0xb5, 0xff, 0xee, 0xb8, 0xdb, 0x08, 0xd2, 0xb8, 0xa9, 0x69, 0x6b,
+ 0x68, 0x0c, 0x0a, 0x7e, 0x78, 0x9b, 0x76, 0x8e, 0x0e, 0x60, 0xa0, 0x41,
+ 0x7b, 0x51, 0x87, 0x36, 0xb4, 0xc3, 0x50, 0x57, 0x1d, 0xda, 0xd7, 0x0e,
+ 0x57, 0xe9, 0x90, 0xad, 0x48, 0xf3, 0x45, 0xe4, 0xdf, 0x7b, 0x1f, 0xf8,
+ 0x82, 0xdc, 0x51, 0x08, 0x9f, 0x86, 0xaa, 0x5f, 0x07, 0x0d, 0x35, 0x5c,
+ 0x18, 0x2d, 0xaa, 0x23, 0x03, 0x6f, 0xf1, 0xc0, 0x34, 0x2e, 0xfc, 0x1d,
+ 0x87, 0x25, 0xa6, 0x1d, 0xa4, 0x21, 0x6b, 0x95, 0xbe, 0x63, 0x87, 0x36,
+ 0x63, 0xc3, 0xc4, 0x28, 0x1e, 0xc7, 0x4f, 0x29, 0x73, 0x80, 0xc8, 0x43,
+ 0xdb, 0x37, 0xbb, 0xc4, 0x04, 0x99, 0x76, 0xe1, 0xba, 0x9d, 0x88, 0xe7,
+ 0x89, 0x84, 0xeb, 0x09, 0x7e, 0xdb, 0x71, 0xbc, 0x2b, 0xb5, 0x57, 0xef,
+ 0x43, 0x59, 0xe8, 0xa5, 0x9a, 0x74, 0x3a, 0xa1, 0xaa, 0xf0, 0x75, 0x1c,
+ 0x13, 0xdf, 0x9f, 0x24, 0x78, 0xcf, 0x9a, 0xd0, 0xa7, 0x16, 0x08, 0xeb,
+ 0x41, 0x22, 0xa0, 0x67, 0xc1, 0xc3, 0x14, 0x33, 0x9c, 0xe2, 0xa5, 0xed,
+ 0xe1, 0xb8, 0x43, 0x01, 0x5e, 0x0c, 0x52, 0x9d, 0xd6, 0xd9, 0xdc, 0x7a,
+ 0xde, 0xdb, 0x80, 0xff, 0x07, 0xfb, 0x22, 0x9e, 0x1b, 0x82, 0x44, 0xb7,
+ 0xc0, 0xd7, 0xe6, 0xc9, 0xf4, 0xae, 0xcd, 0x92, 0x2c, 0x3e, 0x8a, 0xf2,
+ 0xb2, 0xd3, 0x7b, 0xf4, 0x35, 0x8a, 0x1b, 0x69, 0xae, 0xd0, 0x64, 0x24,
+ 0x3f, 0xd1, 0x33, 0x5e, 0xce, 0x9e, 0x76, 0x5d, 0xaa, 0x24, 0x72, 0x44,
+ 0xda, 0xde, 0xce, 0xce, 0xf6, 0x9e, 0xfe, 0x1b, 0xce, 0xd3, 0xde, 0x0b,
+ 0xf8, 0xc1, 0x92, 0xf1, 0x14, 0xac, 0x58, 0x1d, 0xdf, 0xb0, 0x1d, 0x14,
+ 0xbf, 0x41, 0x49, 0xc8, 0x05, 0xb3, 0xbd, 0x46, 0x52, 0xe3, 0xcb, 0x86,
+ 0xc7, 0xf9, 0x50, 0x4c, 0x64, 0xba, 0x9b, 0x62, 0x38, 0x7b, 0xfb, 0xc5,
+ 0xc5, 0x05, 0x68, 0xc3, 0xed, 0x3b, 0xf8, 0x50, 0x1e, 0x59, 0x7f, 0x2f,
+ 0x2d, 0x44, 0x4c, 0x15, 0x62, 0x13, 0xe3, 0x3a, 0x4a, 0xea, 0xa6, 0x8c,
+ 0xe4, 0xe1, 0x7a, 0xa1, 0xf2, 0xe1, 0xc6, 0x13, 0x6c, 0x81, 0x31, 0xeb,
+ 0x13, 0x52, 0x8f, 0x07, 0x40, 0xb7, 0x00, 0xb6, 0xa4, 0xba, 0xce, 0xa6,
+ 0x53, 0xb4, 0x29, 0xa9, 0x6d, 0x00, 0x1e, 0x13, 0x13, 0xa5, 0xa6, 0x64,
+ 0x09, 0xc6, 0xb6, 0x95, 0xcc, 0x61, 0xaa, 0xea, 0xd5, 0x68, 0xf6, 0x20,
+ 0xbd, 0xf0, 0x63, 0xad, 0x9c, 0x3c, 0xed, 0xa2, 0xec, 0x09, 0x40, 0xd8,
+ 0x08, 0x11, 0xf5, 0xf2, 0x84, 0x25, 0x1a, 0xde, 0xad, 0x16, 0x83, 0x4a,
+ 0x80, 0x0e, 0xba, 0x01, 0x69, 0x63, 0x2b, 0xc7, 0x8d, 0x1f, 0xb4, 0x7f,
+ 0xfc, 0x5f, 0x47, 0x16, 0xd4, 0xdb, 0xa0, 0x66, 0x73, 0xad, 0x5e, 0xa8,
+ 0xa4, 0x32, 0xea, 0xc4, 0x87, 0x51, 0x4c, 0x38, 0xa3, 0x4e, 0x3e, 0x57,
+ 0xd1, 0xf2, 0xda, 0x93, 0x35, 0x85, 0x37, 0x27, 0x03, 0x26, 0xae, 0x23,
+ 0x0a, 0x91, 0x7f, 0x11, 0x49, 0x17, 0x18, 0x26, 0xb6, 0xa9, 0xf0, 0xc6,
+ 0x03, 0x59, 0x4b, 0x39, 0xbf, 0x5b, 0x32, 0xc7, 0xda, 0xf8, 0x7a, 0x96,
+ 0xa3, 0x4e, 0x4e, 0x0a, 0xa2, 0x57, 0x4f, 0xa6, 0x98, 0x1f, 0x0c, 0xc0,
+ 0x36, 0xab, 0x7f, 0xaf, 0x10, 0xe5, 0x3c, 0x2d, 0x04, 0x28, 0xf5, 0x78,
+ 0xad, 0xe3, 0x30, 0xda, 0xd9, 0xd8, 0x58, 0xee, 0xa4, 0x95, 0x84, 0xfa,
+ 0x8d, 0x1d, 0x29, 0x9c, 0x93, 0x34, 0xe4, 0x93, 0x84, 0x1d, 0x78, 0xe2,
+ 0x9f, 0x92, 0x92, 0x5d, 0xf7, 0x73, 0x11, 0x80, 0xd6, 0x8c, 0xe3, 0x0a,
+ 0xab, 0xce, 0x28, 0x4a, 0x49, 0x0c, 0x69, 0x20, 0xfa, 0x74, 0x83, 0xd9,
+ 0x4b, 0x46, 0x79, 0xd9, 0xd2, 0xde, 0xa7, 0x2d, 0xd6, 0x08, 0xac, 0x87,
+ 0xb2, 0x15, 0x0c, 0x5c, 0x8f, 0xc5, 0xa7, 0xe8, 0x61, 0x10, 0xda, 0x40,
+ 0xa7, 0x27, 0xa4, 0x88, 0xd2, 0x28, 0xd2, 0x13, 0xc2, 0x53, 0x2b, 0xb2,
+ 0x3c, 0x66, 0x2c, 0x1c, 0x79, 0x90, 0xe2, 0xe4, 0xd8, 0x7b, 0x41, 0x8e,
+ 0x00, 0x33, 0x05, 0xfb, 0x5b, 0x6a, 0x2d, 0x07, 0x27, 0xc5, 0x81, 0xbe,
+ 0x19, 0x04, 0x24, 0x96, 0x1c, 0x23, 0x30, 0x9a, 0xcd, 0xd7, 0xc9, 0x39,
+ 0x7a, 0x0d, 0x46, 0x51, 0x8e, 0x71, 0x19, 0x0e, 0xad, 0xe8, 0x96, 0xe3,
+ 0x64, 0xeb, 0x34, 0x0f, 0x55, 0xbe, 0x36, 0xe2, 0x10, 0xf2, 0x9c, 0xe3,
+ 0x29, 0x7b, 0x97, 0xd6, 0x92, 0x14, 0xc6, 0x73, 0x97, 0x8c, 0x15, 0x29,
+ 0x88, 0x85, 0x49, 0xf8, 0xa8, 0xc4, 0xe4, 0x0f, 0x31, 0x5e, 0x3f, 0xba,
+ 0x43, 0x38, 0x3f, 0x83, 0x81, 0xee, 0xd1, 0xff, 0xdd, 0x85, 0xc3, 0xd7,
+ 0x51, 0x67, 0x3c, 0x4f, 0x3f, 0x2c, 0x86, 0x74, 0x42, 0x16, 0x8f, 0x3e,
+ 0x78, 0xd1, 0x04, 0xe0, 0x98, 0xa5, 0x2c, 0x14, 0x21, 0x50, 0x29, 0x11,
+ 0x93, 0x1d, 0x87, 0xb4, 0x06, 0xcd, 0x49, 0x0b, 0x15, 0x78, 0x3b, 0x08,
+ 0x1b, 0x98, 0x1e, 0x57, 0x8e, 0x0c, 0x86, 0x8e, 0x4c, 0x14, 0x44, 0xbf,
+ 0x18, 0xbb, 0xb7, 0x09, 0xb1, 0x9a, 0xf9, 0x44, 0xa8, 0x5a, 0xcc, 0xc9,
+ 0x6d, 0x8e, 0x07, 0x96, 0x9d, 0x2d, 0x8c, 0x60, 0xd0, 0xa5, 0x2c, 0x0f,
+ 0x21, 0xcf, 0xdb, 0x2e, 0x00, 0x82, 0xb7, 0x61, 0x00, 0xcc, 0x6b, 0x72,
+ 0xbf, 0x15, 0x5d, 0x91, 0x3a, 0xb7, 0x57, 0x85, 0xe7, 0x55, 0x67, 0x0b,
+ 0xcb, 0x22, 0xab, 0x08, 0xa0, 0x12, 0x0e, 0x88, 0x45, 0x06, 0x14, 0x6c,
+ 0xb8, 0xa1, 0xfa, 0x85, 0x46, 0xa8, 0x0f, 0xb4, 0xd9, 0x34, 0xa1, 0x6a,
+ 0xcd, 0x20, 0x4c, 0xcd, 0x0d, 0xae, 0x03, 0xc4, 0xcc, 0xa0, 0xa8, 0x84,
+ 0x73, 0x10, 0x6c, 0x04, 0x98, 0x2d, 0x29, 0xe9, 0x56, 0x10, 0xbc, 0x50,
+ 0xbc, 0x3c, 0xa8, 0x56, 0x72, 0x9e, 0x06, 0xca, 0x20, 0x88, 0xa8, 0x03,
+ 0x47, 0x37, 0x19, 0x42, 0xff, 0x20, 0x63, 0x81, 0xbe, 0x83, 0x7e, 0x7a,
+ 0x66, 0x24, 0x1a, 0x97, 0x01, 0x41, 0xaf, 0x32, 0x07, 0x21, 0x08, 0x8e,
+ 0xe4, 0x95, 0xa7, 0x94, 0x55, 0x59, 0x3d, 0x4b, 0xea, 0xc7, 0x95, 0x93,
+ 0xcc, 0x93, 0x95, 0x2c, 0x2c, 0xdd, 0x34, 0xf4, 0x40, 0xbc, 0x89, 0x38,
+ 0xfa, 0x97, 0x08, 0xd3, 0x21, 0x67, 0xca, 0xc4, 0xe4, 0x87, 0x99, 0x67,
+ 0xdf, 0x3f, 0xee, 0xcd, 0x78, 0x40, 0x2e, 0xf7, 0x98, 0xfb, 0xc7, 0x2d,
+ 0xf4, 0x13, 0xb8, 0xec, 0xb7, 0x8f, 0xd2, 0xe1, 0xbf, 0x1f, 0x10, 0xa7,
+ 0x67, 0x89, 0x84, 0xaa, 0x5d, 0x40, 0x4f, 0x02, 0x75, 0x90, 0xab, 0x57,
+ 0x2b, 0x9c, 0x79, 0x4c, 0xd5, 0x8c, 0x8e, 0x03, 0xa9, 0x47, 0x14, 0x7a,
+ 0x06, 0x4a, 0x8d, 0xef, 0xed, 0x80, 0x0e, 0xe6, 0x82, 0xe9, 0x3d, 0x61,
+ 0x3b, 0x75, 0x98, 0x2f, 0x78, 0x79, 0x94, 0x9d, 0x3e, 0xd8, 0x46, 0xfc,
+ 0xcd, 0xbd, 0x8e, 0x04, 0x5b, 0x7b, 0x46, 0x03, 0xe2, 0xb1, 0xb5, 0x38,
+ 0x57, 0x4b, 0xf2, 0x24, 0x94, 0x41, 0x52, 0xab, 0x3d, 0x1c, 0xb6, 0x09,
+ 0xdc, 0xfc, 0xec, 0x9b, 0x83, 0x93, 0x0f, 0x47, 0x9b, 0x9f, 0x46, 0xf8,
+ 0xaf, 0x2d, 0xfe, 0xd7, 0x56, 0x27, 0xc4, 0x49, 0x20, 0x5a, 0x57, 0x3e,
+ 0x5b, 0x89, 0xaa, 0xfb, 0xc9, 0xa0, 0x18, 0x1b, 0x5e, 0x12, 0x52, 0x68,
+ 0xc8, 0xb7, 0x2b, 0x0a, 0x8f, 0x81, 0xa0, 0x92, 0x18, 0x4e, 0xfb, 0xa2,
+ 0xa9, 0x24, 0x0d, 0x5a, 0x85, 0x24, 0x05, 0x9c, 0x5d, 0x30, 0x0a, 0xdc,
+ 0xed, 0x91, 0x91, 0xbd, 0x14, 0x78, 0x3e, 0x9f, 0x9b, 0x9a, 0x4e, 0x57,
+ 0xa9, 0x8a, 0xa3, 0xca, 0x95, 0x24, 0x22, 0xf0, 0xf8, 0x56, 0x24, 0xd6,
+ 0x75, 0x43, 0x36, 0x24, 0xe6, 0xb2, 0x40, 0x4a, 0x00, 0x81, 0x83, 0x9b,
+ 0x16, 0x78, 0xfc, 0xb6, 0xe4, 0x79, 0x23, 0xe2, 0xdb, 0xbd, 0xa2, 0x52,
+ 0xe1, 0xcd, 0xa3, 0x57, 0x06, 0xad, 0x1a, 0xdf, 0x6d, 0x0f, 0x37, 0x10,
+ 0x35, 0xcf, 0x01, 0x56, 0x3d, 0x21, 0xc8, 0x2c, 0x4d, 0x18, 0xb3, 0x91,
+ 0x03, 0x14, 0x71, 0xa3, 0xc2, 0xf5, 0xad, 0x39, 0x6d, 0xe9, 0x54, 0x7a,
+ 0x28, 0x66, 0x78, 0xd4, 0x08, 0x5f, 0x73, 0x2c, 0xa4, 0x67, 0x83, 0x73,
+ 0x63, 0x0b, 0xc2, 0x42, 0x5a, 0x30, 0x25, 0xc0, 0x4d, 0xbc, 0x7c, 0xd1,
+ 0x1c, 0xd4, 0xee, 0x55, 0xb8, 0x94, 0xd6, 0xdc, 0x14, 0x08, 0xdd, 0x3e,
+ 0xda, 0x16, 0x27, 0x69, 0xa3, 0x5a, 0x14, 0xcb, 0x3a, 0x37, 0xf1, 0x2e,
+ 0x2e, 0xf4, 0x28, 0x9c, 0x99, 0x98, 0x9c, 0x02, 0x57, 0x63, 0x10, 0x5e,
+ 0xc5, 0xa4, 0xf2, 0x71, 0xe2, 0x05, 0x10, 0xe8, 0xc0, 0x29, 0x4e, 0x0f,
+ 0xe6, 0xf1, 0x18, 0xee, 0x87, 0xef, 0xdf, 0x8f, 0xd3, 0x35, 0x35, 0xdb,
+ 0xf4, 0xa6, 0x5e, 0x7f, 0x5b, 0xfc, 0x0c, 0x93, 0x4f, 0xe4, 0x23, 0xa1,
+ 0xeb, 0x5e, 0xae, 0xef, 0xb9, 0x33, 0xb7, 0xf2, 0x8f, 0xc1, 0x46, 0x5c,
+ 0xd1, 0xd1, 0xf0, 0x5b, 0x60, 0x8b, 0x12, 0x52, 0x63, 0xa9, 0x82, 0xc4,
+ 0xe3, 0x1f, 0x51, 0x4c, 0xb4, 0x9d, 0x9a, 0x7b, 0x9b, 0x2b, 0x49, 0x80,
+ 0x9f, 0x0b, 0x49, 0x1c, 0x34, 0x8c, 0x26, 0x37, 0x66, 0xdb, 0x23, 0xdc,
+ 0x56, 0x07, 0xe7, 0xdf, 0xa1, 0x2e, 0x48, 0xa9, 0x43, 0x2f, 0x77, 0x57,
+ 0x18, 0xec, 0xdd, 0xa9, 0x9e, 0xe1, 0xd4, 0xf1, 0x91, 0x57, 0x10, 0x44,
+ 0xa0, 0x9f, 0x0d, 0x8c, 0x34, 0x51, 0x22, 0x34, 0x4f, 0x15, 0xbd, 0xe5,
+ 0x8c, 0xb8, 0x46, 0xa2, 0x8d, 0x51, 0x42, 0xd9, 0x10, 0x49, 0x7d, 0xd0,
+ 0x7d, 0xb2, 0xe3, 0x69, 0xd1, 0x60, 0xfb, 0x4a, 0x32, 0x10, 0x81, 0x82,
+ 0xd0, 0x15, 0x2a, 0x6f, 0x63, 0x4e, 0x96, 0x9d, 0xb6, 0xa4, 0x93, 0xac,
+ 0x12, 0xce, 0x5e, 0xb0, 0xc8, 0x80, 0x09, 0xcc, 0x08, 0x5a, 0x68, 0xb0,
+ 0x0f, 0x62, 0x1e, 0xa8, 0x22, 0xe6, 0xe0, 0xba, 0x7f, 0xec, 0x7e, 0xb6,
+ 0x67, 0xa8, 0xa2, 0xcc, 0xe2, 0x47, 0x02, 0xc3, 0x8c, 0xf1, 0x18, 0x9f,
+ 0x78, 0xc8, 0xc8, 0x2a, 0x2b, 0xee, 0xa6, 0x65, 0x4a, 0x3f, 0x06, 0xa0,
+ 0x3b, 0x05, 0xce, 0x40, 0x62, 0xe3, 0x8d, 0xd2, 0x9c, 0xc5, 0x4f, 0xff,
+ 0x1d, 0x49, 0xdb, 0x1a, 0x7e, 0x8d, 0xb4, 0x04, 0x07, 0x15, 0xbb, 0x2a,
+ 0x44, 0x04, 0xd1, 0x17, 0x1a, 0x2c, 0x4b, 0xd6, 0xfb, 0xb0, 0xeb, 0x57,
+ 0x1c, 0x5b, 0x5e, 0x72, 0x83, 0x47, 0x0d, 0x65, 0x52, 0x94, 0xcb, 0x00,
+ 0x9f, 0x3d, 0x70, 0xc9, 0x0f, 0x64, 0xa6, 0x73, 0xb3, 0x38, 0x1f, 0x7e,
+ 0x0b, 0xae, 0xfb, 0x07, 0xc6, 0x70, 0xbc, 0xb1, 0x74, 0xc1, 0xc4, 0xa3,
+ 0xcc, 0xcb, 0x24, 0x6b, 0x00, 0xca, 0x81, 0x00, 0xfb, 0x49, 0x01, 0xae,
+ 0xac, 0x1c, 0x6e, 0xf4, 0x60, 0x92, 0xa0, 0xb8, 0x91, 0x82, 0xed, 0x53,
+ 0x4d, 0x1f, 0x92, 0xb3, 0x90, 0xa7, 0x58, 0x8a, 0x9e, 0x50, 0xe7, 0x10,
+ 0xf4, 0x2a, 0x39, 0x25, 0xcb, 0x19, 0xb0, 0x5c, 0x39, 0xbc, 0x22, 0x5c,
+ 0x14, 0xf4, 0x62, 0xa5, 0x23, 0xbe, 0xba, 0xc2, 0xc1, 0x62, 0x1e, 0x55,
+ 0xd4, 0x0d, 0x19, 0x04, 0x77, 0x19, 0x2f, 0x53, 0xf8, 0xbd, 0x4a, 0x22,
+ 0xfa, 0x28, 0x4e, 0xd7, 0xcc, 0x37, 0x38, 0x5c, 0x97, 0x74, 0xdc, 0x2b,
+ 0x72, 0xee, 0xa5, 0xe3, 0xca, 0x5e, 0x07, 0x66, 0x95, 0xf6, 0x5e, 0x20,
+ 0xdb, 0x3c, 0x2f, 0xe6, 0x03, 0xbb, 0x30, 0x4e, 0xcb, 0x85, 0x37, 0x35,
+ 0xc4, 0x57, 0xe4, 0xd9, 0xa1, 0x15, 0x88, 0x2c, 0x7d, 0xaf, 0x28, 0x79,
+ 0x0b, 0x86, 0x73, 0x4c, 0x1d, 0x83, 0xa0, 0xd7, 0xe6, 0xac, 0x43, 0xd1,
+ 0xf4, 0x71, 0x33, 0xe9, 0x6e, 0x9d, 0x80, 0xf0, 0x67, 0x02, 0x4c, 0xd0,
+ 0xe3, 0xbc, 0xf1, 0x7c, 0x77, 0x03, 0x2f, 0x3d, 0xc4, 0xdb, 0xe5, 0x4b,
+ 0x40, 0xc4, 0x36, 0x87, 0x2d, 0x3d, 0xcf, 0x50, 0x61, 0x76, 0x4d, 0x80,
+ 0xfe, 0xdc, 0x65, 0xdc, 0xda, 0x66, 0x8b, 0xe8, 0x55, 0x41, 0x20, 0x0a,
+ 0xea, 0xf6, 0x8b, 0xa1, 0xce, 0x38, 0xbe, 0xa8, 0xbd, 0x63, 0xe8, 0x70,
+ 0xda, 0xd2, 0x8e, 0x3a, 0xfb, 0xaa, 0xdd, 0x0a, 0x53, 0xec, 0xbe, 0xfe,
+ 0x78, 0x36, 0xc7, 0x27, 0x63, 0xa2, 0xc5, 0x3e, 0xfe, 0xe9, 0x29, 0xb0,
+ 0x04, 0x2d, 0x88, 0x19, 0xaf, 0x18, 0x9f, 0x16, 0x4c, 0x45, 0x2d, 0x4b,
+ 0x51, 0x87, 0xbb, 0x90, 0x84, 0xab, 0xd7, 0xb4, 0x81, 0x53, 0x10, 0x9b,
+ 0x00, 0x9d, 0x27, 0x06, 0x8d, 0xde, 0x66, 0x51, 0x3a, 0x1d, 0xb0, 0x1a,
+ 0x51, 0x24, 0x8c, 0x9a, 0x31, 0x27, 0x53, 0x85, 0x89, 0xe7, 0x2c, 0x42,
+ 0x51, 0xcf, 0xba, 0xd4, 0x0a, 0x4e, 0x9e, 0x32, 0x68, 0x08, 0x75, 0xcc,
+ 0x66, 0xd9, 0xa1, 0x23, 0x80, 0xb1, 0xfb, 0xf0, 0x87, 0x20, 0x5c, 0xbb,
+ 0x0e, 0x8a, 0x63, 0xc0, 0x8c, 0xd2, 0xdc, 0x8a, 0x8d, 0x67, 0x3b, 0x3b,
+ 0x0b, 0xa5, 0x77, 0x4d, 0xe6, 0x2d, 0x66, 0xdb, 0x0d, 0x6b, 0x38, 0xaf,
+ 0xe2, 0x10, 0x44, 0x3d, 0x54, 0x34, 0xd7, 0x3f, 0x3c, 0x17, 0xbe, 0xbd,
+ 0xc1, 0x1b, 0xcf, 0x9f, 0x3f, 0x8f, 0xe2, 0x73, 0x66, 0x13, 0x66, 0x73,
+ 0x3f, 0x1f, 0x38, 0x4f, 0x6f, 0x17, 0x78, 0x71, 0x91, 0x89, 0x5d, 0xae,
+ 0x5d, 0x84, 0x70, 0x37, 0x2c, 0xc7, 0x17, 0x0c, 0xc7, 0x49, 0x6d, 0x5c,
+ 0x18, 0x19, 0xfc, 0x06, 0x13, 0xf4, 0xa3, 0x93, 0xd7, 0x1c, 0xaf, 0x3a,
+ 0x7c, 0x8f, 0x7f, 0x43, 0xad, 0x80, 0x3d, 0x94, 0x04, 0xa2, 0x41, 0xed,
+ 0xa8, 0x29, 0x36, 0xf2, 0xf6, 0x9b, 0x36, 0xd0, 0xc1, 0xea, 0x69, 0x7f,
+ 0x7d, 0xfb, 0xe5, 0xc6, 0x5a, 0xa0, 0xdc, 0x06, 0x3b, 0xc5, 0x24, 0x8e,
+ 0x2b, 0x79, 0x23, 0x90, 0x2b, 0xf2, 0x20, 0xc5, 0x60, 0xc6, 0x40, 0x20,
+ 0xd6, 0x6e, 0x16, 0x01, 0x5d, 0xe2, 0x93, 0xf8, 0xd0, 0x02, 0x7c, 0x36,
+ 0xed, 0x28, 0x2a, 0xf7, 0x31, 0xcb, 0x05, 0xa7, 0x6a, 0x59, 0x0a, 0x88,
+ 0x5c, 0xf0, 0x87, 0xf7, 0x29, 0xf6, 0x1e, 0x0c, 0xc2, 0x3f, 0x9d, 0x64,
+ 0x54, 0x63, 0x9b, 0x30, 0x12, 0xad, 0xea, 0x59, 0x88, 0xdb, 0xd2, 0x2c,
+ 0x8e, 0xa1, 0x47, 0x12, 0xee, 0xaf, 0x37, 0x48, 0x43, 0x21, 0xe1, 0x0a,
+ 0x41, 0x31, 0x29, 0x31, 0x9b, 0x52, 0x9d, 0xfe, 0x78, 0x2e, 0x65, 0x4a,
+ 0x96, 0xe9, 0x4f, 0x18, 0xab, 0x7e, 0x4c, 0x90, 0x7e, 0x56, 0x62, 0xcb,
+ 0xc8, 0x7d, 0x93, 0x3f, 0x4e, 0xa5, 0x0b, 0x8f, 0xa9, 0x8d, 0xd7, 0x10,
+ 0x8f, 0x8d, 0x3e, 0xf2, 0x50, 0xc8, 0x8a, 0x14, 0xb7, 0xd2, 0x9e, 0x37,
+ 0xfd, 0xfe, 0x89, 0x27, 0x69, 0xa4, 0xf8, 0xca, 0x04, 0x17, 0x29, 0xc1,
+ 0x28, 0x19, 0xa2, 0xc5, 0x47, 0xe6, 0x5a, 0x41, 0x3d, 0xb9, 0x5f, 0xec,
+ 0x6c, 0x6d, 0x75, 0xa3, 0xdd, 0xde, 0xa6, 0x0b, 0xa7, 0x93, 0x8c, 0x3d,
+ 0xb4, 0x42, 0xc9, 0x7c, 0xf7, 0x30, 0x76, 0xa8, 0x2d, 0xb7, 0x45, 0xd9,
+ 0x11, 0x60, 0x1d, 0xad, 0xcf, 0x45, 0x2b, 0x3d, 0x04, 0xcb, 0xd1, 0xf9,
+ 0x6e, 0x6b, 0x77, 0x77, 0xf3, 0xe5, 0xde, 0x59, 0xbc, 0xbb, 0xb5, 0x89,
+ 0x18, 0x3b, 0x6c, 0x81, 0xd8, 0xa4, 0x52, 0xb7, 0x3c, 0x34, 0xca, 0x46,
+ 0x8c, 0xb1, 0x38, 0x1e, 0xdf, 0x87, 0xf3, 0xc4, 0x3a, 0xc5, 0x34, 0xcd,
+ 0xab, 0x6a, 0x1c, 0x55, 0x1f, 0xb9, 0xd0, 0x7c, 0xbd, 0xfa, 0xc8, 0x6e,
+ 0x84, 0x8e, 0xc0, 0xe2, 0x64, 0x01, 0x1d, 0xd5, 0xec, 0x8c, 0x88, 0xed,
+ 0xc4, 0x54, 0xb2, 0x6a, 0xa7, 0x75, 0xdd, 0x07, 0x36, 0x99, 0xdb, 0x50,
+ 0x37, 0xc1, 0x6c, 0x5f, 0x35, 0x34, 0x59, 0x5f, 0x59, 0x3d, 0x3a, 0x5c,
+ 0xe3, 0x4d, 0xd3, 0xbd, 0xb4, 0x15, 0xde, 0x3c, 0xd3, 0x2e, 0x17, 0xea,
+ 0xf9, 0x37, 0x4f, 0x96, 0x93, 0x99, 0x8b, 0xc1, 0x42, 0x74, 0x60, 0xcb,
+ 0xb2, 0xd8, 0x37, 0xa2, 0x80, 0x91, 0xcd, 0xd6, 0x73, 0x73, 0xcf, 0x83,
+ 0x20, 0xf8, 0xd1, 0x8c, 0xf4, 0xba, 0x50, 0x56, 0xe2, 0x32, 0x1a, 0x85,
+ 0x90, 0xc3, 0xb6, 0x9d, 0x9e, 0x5a, 0xc5, 0xa4, 0x6d, 0x21, 0xe5, 0x2c,
+ 0x7d, 0x6c, 0xf8, 0x73, 0xbc, 0xef, 0xcb, 0x42, 0x91, 0xb6, 0xfa, 0x02,
+ 0xa0, 0x9f, 0x27, 0x4e, 0xaa, 0x61, 0x96, 0xb1, 0x37, 0x6b, 0x8e, 0x13,
+ 0x4b, 0x8b, 0x16, 0x08, 0xa6, 0x9e, 0xa0, 0x8d, 0xb2, 0x84, 0x73, 0xc6,
+ 0x6c, 0x93, 0x91, 0x65, 0x97, 0xe1, 0x7c, 0xfa, 0x8b, 0x47, 0xe8, 0x2c,
+ 0xf4, 0x38, 0x7a, 0x3f, 0x40, 0xa3, 0x5a, 0x34, 0x55, 0x81, 0x78, 0xc1,
+ 0xe6, 0x76, 0xd2, 0x66, 0xc9, 0x38, 0x2c, 0xaa, 0xb6, 0x49, 0x8e, 0x6d,
+ 0x40, 0x09, 0x18, 0x3d, 0x00, 0x52, 0x2b, 0xed, 0x2a, 0x09, 0x2c, 0xa5,
+ 0x2a, 0x50, 0x02, 0xce, 0xb3, 0x91, 0xb9, 0x59, 0x8d, 0xf1, 0xc8, 0x19,
+ 0x15, 0x5b, 0x72, 0xa1, 0xbf, 0xe8, 0x2a, 0x48, 0x4e, 0xdd, 0xf4, 0xa8,
+ 0x25, 0x01, 0xa7, 0x02, 0xb7, 0x8a, 0x8e, 0x28, 0x01, 0x50, 0x3a, 0xd1,
+ 0x15, 0xdc, 0x36, 0x9e, 0x9c, 0x78, 0x26, 0x1f, 0x56, 0x5a, 0xa6, 0x23,
+ 0x30, 0xaa, 0xd9, 0x80, 0xb6, 0xa1, 0x57, 0xa0, 0xb0, 0x4e, 0xef, 0x30,
+ 0x1b, 0x87, 0xef, 0x06, 0xb8, 0xdf, 0xd1, 0x1a, 0xab, 0xa4, 0x31, 0x6e,
+ 0x59, 0x66, 0x18, 0x3f, 0x81, 0x99, 0xd5, 0xb3, 0x32, 0x97, 0xd0, 0x07,
+ 0xda, 0xb9, 0x74, 0x34, 0x46, 0x01, 0xfc, 0xa6, 0x21, 0x5d, 0xe2, 0x95,
+ 0x29, 0x4b, 0x24, 0xd3, 0x9c, 0x70, 0xec, 0x3d, 0xda, 0x50, 0xb7, 0x6b,
+ 0x9a, 0x9c, 0xf6, 0xa0, 0xa9, 0x9b, 0xd9, 0xab, 0xe8, 0x01, 0xe2, 0x8a,
+ 0x6a, 0x06, 0x52, 0x2f, 0x1a, 0x1e, 0xcb, 0x6a, 0x7e, 0x62, 0xc4, 0xfa,
+ 0x5d, 0x7c, 0x7b, 0x7b, 0x1b, 0xe3, 0x55, 0x8a, 0xf9, 0xc7, 0x52, 0x49,
+ 0xdc, 0x6b, 0xf4, 0x91, 0xe2, 0xf3, 0x49, 0x34, 0x44, 0x99, 0xe3, 0x67,
+ 0x32, 0x38, 0xc9, 0xe0, 0xe5, 0x20, 0xab, 0x09, 0xb2, 0x42, 0x98, 0x8b,
+ 0x5e, 0x13, 0xc1, 0x22, 0xd3, 0x21, 0xbf, 0x85, 0xc6, 0x63, 0x02, 0xf7,
+ 0xaa, 0x5d, 0x0b, 0x02, 0xe2, 0x0e, 0xeb, 0x14, 0x81, 0x7d, 0xb0, 0x2d,
+ 0xe0, 0x5e, 0x14, 0xbf, 0x89, 0x3a, 0x87, 0xb2, 0xda, 0x73, 0x78, 0x62,
+ 0xaf, 0xb9, 0x16, 0x7e, 0x38, 0xd8, 0x52, 0x30, 0xe8, 0x37, 0x6d, 0xa2,
+ 0x8a, 0x58, 0x98, 0xfe, 0xc0, 0x15, 0x5d, 0xe0, 0x4e, 0xdb, 0xb4, 0xdf,
+ 0x50, 0x13, 0x0c, 0x4c, 0xb9, 0xe7, 0x00, 0x0f, 0x03, 0x7c, 0xd3, 0xd2,
+ 0x13, 0x4c, 0xdd, 0xe2, 0xf6, 0x91, 0x24, 0x34, 0x7e, 0xe1, 0x09, 0x17,
+ 0xaa, 0x7e, 0x61, 0x1c, 0xb4, 0x8f, 0x38, 0xe6, 0x65, 0x72, 0xfb, 0xb0,
+ 0x38, 0x72, 0x4e, 0xb8, 0x6d, 0x42, 0x8c, 0xd9, 0xf5, 0xb6, 0xed, 0x11,
+ 0xc5, 0x4d, 0xb4, 0xb0, 0x25, 0xd4, 0x6e, 0x8f, 0xbb, 0xc5, 0x5b, 0x1c,
+ 0x02, 0x36, 0x15, 0xc4, 0xd7, 0xf8, 0xc5, 0xc3, 0xcd, 0x5c, 0xaa, 0x85,
+ 0x4b, 0xc7, 0x65, 0x74, 0xb0, 0xc1, 0x58, 0xd1, 0x59, 0x22, 0xd9, 0xcc,
+ 0xbe, 0xfa, 0x45, 0x52, 0xe3, 0xff, 0xef, 0x2c, 0x17, 0x04, 0xb6, 0xdb,
+ 0xd5, 0x48, 0xaf, 0x08, 0x09, 0x7e, 0x73, 0x7c, 0x1e, 0x21, 0x51, 0x2d,
+ 0xb9, 0xbb, 0x46, 0x0a, 0xc9, 0xa1, 0xe5, 0x40, 0x9e, 0x43, 0x77, 0x69,
+ 0x9d, 0x14, 0xba, 0xd5, 0xb9, 0xe3, 0x11, 0xca, 0x24, 0xc5, 0x86, 0x96,
+ 0xa8, 0x54, 0x5a, 0xe2, 0x89, 0xa6, 0xb2, 0xd3, 0x58, 0x7b, 0x33, 0xfb,
+ 0x46, 0x18, 0x69, 0xb6, 0x87, 0x5f, 0x1d, 0x53, 0xd1, 0x1a, 0x5c, 0x42,
+ 0xb9, 0x20, 0xd2, 0xf1, 0xfc, 0xa9, 0x2d, 0xb2, 0xf5, 0x04, 0x5f, 0x66,
+ 0xb9, 0xea, 0x12, 0x49, 0xd4, 0xe8, 0xaa, 0xd4, 0x48, 0x8a, 0x17, 0xd5,
+ 0x2b, 0xb1, 0x95, 0x49, 0x5c, 0x77, 0x68, 0xfa, 0x4b, 0xab, 0xce, 0x98,
+ 0xd8, 0x9a, 0xdc, 0x20, 0xbd, 0xe8, 0xeb, 0xaa, 0xd5, 0x25, 0x95, 0x5a,
+ 0xc8, 0xb8, 0xad, 0x5e, 0x05, 0xa4, 0x3d, 0x98, 0xd4, 0x27, 0xfe, 0x2e,
+ 0xf5, 0x8b, 0x19, 0xe4, 0xf3, 0x6d, 0x36, 0x71, 0xcc, 0xd1, 0x56, 0x0c,
+ 0xc2, 0x90, 0x2e, 0x6d, 0xb4, 0xc7, 0x26, 0x5c, 0x05, 0x8c, 0x42, 0x85,
+ 0x22, 0xb5, 0xc6, 0x38, 0x87, 0x5b, 0xe7, 0x3f, 0xa5, 0xa4, 0x0d, 0xae,
+ 0x06, 0x32, 0xc4, 0x14, 0xfa, 0xc4, 0x1d, 0xcc, 0x34, 0xaf, 0x93, 0xc2,
+ 0xa7, 0xf0, 0x70, 0x98, 0x8c, 0xf4, 0x19, 0x7a, 0x41, 0xbe, 0x90, 0x10,
+ 0x0f, 0xd6, 0x72, 0xba, 0x99, 0x32, 0xe2, 0x0a, 0x66, 0x65, 0x50, 0xea,
+ 0xfd, 0x91, 0x0c, 0xe1, 0xe1, 0x38, 0x6d, 0xcb, 0xa1, 0x1e, 0x73, 0xdc,
+ 0x30, 0x41, 0xaf, 0xd3, 0x20, 0x05, 0x42, 0xfe, 0x5b, 0x9b, 0x78, 0x9f,
+ 0x3d, 0x4c, 0xbd, 0x65, 0xc9, 0xb7, 0x98, 0x7a, 0xdc, 0xb2, 0x52, 0x2b,
+ 0xa2, 0x3e, 0x73, 0x42, 0x5b, 0x94, 0x53, 0xcb, 0x5e, 0x65, 0x13, 0xe2,
+ 0x0a, 0x8a, 0x53, 0xe4, 0xd0, 0xcf, 0x7e, 0xad, 0x5d, 0x27, 0x66, 0xa4,
+ 0x84, 0x41, 0x9c, 0x7c, 0x78, 0x38, 0xf6, 0x7b, 0xd3, 0xde, 0xbb, 0xdd,
+ 0x27, 0xb4, 0x71, 0x13, 0x8e, 0x40, 0x01, 0x1f, 0xe0, 0xff, 0x9a, 0x99,
+ 0x79, 0x40, 0xb5, 0x3b, 0x71, 0x78, 0x38, 0x05, 0xf5, 0x10, 0x3f, 0x9e,
+ 0xb7, 0x3e, 0x73, 0x07, 0x3c, 0x7e, 0x71, 0x94, 0x1d, 0xce, 0x2d, 0xec,
+ 0x34, 0xa8, 0xa9, 0xe9, 0x59, 0x9c, 0x43, 0xb1, 0xea, 0x47, 0xdc, 0xf4,
+ 0xf8, 0x48, 0x23, 0x0c, 0x6e, 0x47, 0xa7, 0xba, 0xcf, 0x5a, 0xb7, 0x49,
+ 0x30, 0x04, 0x03, 0xa7, 0x5b, 0x4f, 0x77, 0x39, 0x9b, 0xbb, 0xc7, 0xba,
+ 0x77, 0xd8, 0x8a, 0x32, 0xb8, 0x77, 0xff, 0x37, 0xad, 0x8f, 0xf8, 0xd9,
+ 0xb2, 0x01, 0x26, 0x11, 0x54, 0xd2, 0x4a, 0x08, 0x0b, 0x2b, 0x23, 0x2a,
+ 0x49, 0x45, 0x5d, 0x66, 0xce, 0xec, 0x08, 0x49, 0x0c, 0xb5, 0x3f, 0x4c,
+ 0xea, 0x1a, 0xb3, 0x3d, 0x9b, 0x71, 0xa1, 0xea, 0x67, 0x56, 0x6b, 0x63,
+ 0x0f, 0x95, 0x29, 0xe2, 0x46, 0x26, 0x5c, 0xc0, 0xa9, 0x86, 0x33, 0xc3,
+ 0x4c, 0x39, 0x97, 0xfd, 0xfc, 0xcb, 0xda, 0xbd, 0x6a, 0xed, 0x25, 0x48,
+ 0x93, 0xbb, 0x81, 0xc5, 0x2d, 0xba, 0xac, 0xc3, 0xaf, 0x7e, 0xc6, 0xff,
+ 0xa5, 0xab, 0x6c, 0xf9, 0xb7, 0x0d, 0xf3, 0x3c, 0xe1, 0x5d, 0x7a, 0x8f,
+ 0x62, 0x89, 0x8b, 0xb4, 0x84, 0x80, 0x7a, 0xa0, 0xfd, 0x75, 0x44, 0xdd,
+ 0x70, 0x94, 0x03, 0xfb, 0xc8, 0x7c, 0xb5, 0x80, 0x5a, 0x81, 0xaf, 0xc1,
+ 0xb8, 0x58, 0xed, 0xd0, 0x04, 0x1d, 0xa4, 0x37, 0x19, 0x29, 0x0a, 0x9b,
+ 0xb6, 0x7a, 0x69, 0xea, 0xa1, 0xd0, 0xac, 0xa6, 0x89, 0xbb, 0x11, 0x24,
+ 0xca, 0x0c, 0x22, 0x9f, 0x56, 0x34, 0x28, 0x8b, 0xdb, 0x8a, 0x4c, 0x0d,
+ 0xf5, 0xb5, 0x27, 0xec, 0x16, 0xbe, 0xf2, 0x10, 0x9d, 0x80, 0x1c, 0x63,
+ 0xd3, 0xf6, 0xe7, 0xcd, 0xf9, 0xdb, 0x13, 0xee, 0xe1, 0xc9, 0xe0, 0x42,
+ 0x58, 0xe5, 0x2e, 0xd3, 0x9d, 0x0d, 0x26, 0x59, 0x8d, 0x1a, 0x62, 0xcd,
+ 0xd2, 0x5b, 0x2f, 0x04, 0x0f, 0x01, 0x89, 0xb2, 0x96, 0xc4, 0x7b, 0x31,
+ 0x0d, 0x25, 0x73, 0x88, 0x91, 0xe0, 0xe0, 0x08, 0x3b, 0xd6, 0xcd, 0xf2,
+ 0x76, 0x4c, 0x74, 0xc8, 0x79, 0xcd, 0xa4, 0xcb, 0xbe, 0xc6, 0xad, 0xc0,
+ 0x47, 0x02, 0x2e, 0x17, 0xa3, 0x28, 0xa2, 0x87, 0x67, 0x4c, 0x8d, 0xc9,
+ 0x0c, 0xed, 0x50, 0xf3, 0x35, 0x57, 0x35, 0xa1, 0x1e, 0x27, 0x4d, 0x6d,
+ 0xd7, 0x43, 0x05, 0x32, 0xda, 0xaf, 0xed, 0x18, 0xeb, 0x2a, 0xc0, 0xa8,
+ 0x7a, 0xa1, 0x0a, 0x28, 0x59, 0x27, 0xb3, 0x12, 0xdd, 0xfc, 0xac, 0xdb,
+ 0x77, 0x03, 0xb5, 0xa3, 0xa2, 0x83, 0xa9, 0xbb, 0xdd, 0x64, 0x6f, 0x35,
+ 0x6c, 0x02, 0x6d, 0x8b, 0x89, 0x63, 0x3b, 0x42, 0x2b, 0xc0, 0x23, 0x8c,
+ 0x30, 0x4c, 0x65, 0xc1, 0xb4, 0x9b, 0xc0, 0x67, 0x30, 0x3a, 0x9a, 0x7b,
+ 0xe8, 0x12, 0xc5, 0xd1, 0xdb, 0xe7, 0x22, 0x68, 0x3c, 0xd9, 0xbe, 0xb1,
+ 0x95, 0x6d, 0x13, 0xaa, 0x5e, 0x4e, 0x02, 0x5a, 0x26, 0x68, 0x65, 0xea,
+ 0x13, 0x5a, 0x34, 0x63, 0x99, 0x7e, 0x40, 0x5b, 0x62, 0x9b, 0x5d, 0x27,
+ 0x17, 0x27, 0xc3, 0x40, 0x9e, 0x9b, 0xf7, 0x64, 0x62, 0xf6, 0xd1, 0x24,
+ 0x2d, 0x2f, 0xb9, 0x9c, 0x96, 0x1b, 0x90, 0x04, 0x3d, 0x5e, 0x49, 0xd3,
+ 0xff, 0xf7, 0x7f, 0x62, 0x56, 0x22, 0xa8, 0x1a, 0x63, 0x86, 0x85, 0x74,
+ 0x02, 0x92, 0xb9, 0x12, 0x8f, 0x58, 0x58, 0x8d, 0x92, 0x1c, 0x28, 0x01,
+ 0x27, 0xd6, 0xcf, 0x3b, 0x1e, 0x8f, 0x3f, 0x1b, 0x17, 0xb3, 0xea, 0x7e,
+ 0x25, 0x92, 0x96, 0xcd, 0xd2, 0xe5, 0xb4, 0x66, 0xcc, 0x2c, 0xda, 0x4b,
+ 0xd8, 0xdf, 0x59, 0x7e, 0xad, 0x7a, 0x00, 0x56, 0xdc, 0x92, 0x17, 0xeb,
+ 0xba, 0x4d, 0xfe, 0x15, 0xe7, 0x63, 0xff, 0xc7, 0x1d, 0x3b, 0x48, 0x65,
+ 0x82, 0xec, 0x62, 0xa7, 0xc8, 0xe3, 0xbc, 0x22, 0x36, 0x75, 0x23, 0x99,
+ 0xdb, 0xa7, 0x51, 0x73, 0x3e, 0xcc, 0x80, 0x78, 0x5f, 0x72, 0xd3, 0x17,
+ 0xcd, 0x9f, 0xb1, 0xe9, 0xa9, 0x24, 0x69, 0xe6, 0x14, 0x51, 0x8b, 0x5b,
+ 0x80, 0xae, 0x5b, 0xc9, 0x3d, 0x89, 0xa2, 0xb3, 0x82, 0xbb, 0x52, 0xda,
+ 0x9b, 0x38, 0x69, 0xf4, 0xb5, 0xb8, 0x28, 0x8a, 0x41, 0x52, 0xae, 0x78,
+ 0xb5, 0x24, 0x38, 0x6d, 0x6a, 0xbb, 0x37, 0x48, 0xb9, 0x9d, 0x1f, 0x67,
+ 0x7a, 0x58, 0x01, 0xfa, 0x05, 0xbf, 0xd9, 0xe3, 0xe0, 0x99, 0xeb, 0x0e,
+ 0x09, 0x65, 0x39, 0x8e, 0x47, 0x76, 0xea, 0x51, 0x63, 0x1e, 0x54, 0x51,
+ 0x89, 0xdb, 0xd4, 0xb5, 0x8e, 0x1b, 0xf5, 0xdb, 0x50, 0xe1, 0x75, 0x7a,
+ 0x1b, 0x07, 0xe0, 0x33, 0x6c, 0x94, 0x14, 0xcb, 0x23, 0x30, 0x15, 0x9d,
+ 0xd2, 0xa0, 0xd5, 0x57, 0x22, 0xa9, 0x1b, 0xd6, 0x65, 0xf2, 0x85, 0x53,
+ 0x5e, 0xef, 0xe7, 0x60, 0x86, 0xe4, 0x88, 0x95, 0x1b, 0xce, 0x29, 0x24,
+ 0xa1, 0x24, 0x95, 0x44, 0x4b, 0x5a, 0xce, 0xa3, 0xa8, 0xc3, 0x6a, 0x30,
+ 0xfc, 0x6b, 0x09, 0xab, 0xb9, 0xf9, 0x1a, 0xfe, 0xb3, 0x2e, 0x8a, 0xf1,
+ 0x67, 0xc3, 0xc9, 0x08, 0xc9, 0xb0, 0xd4, 0x40, 0x8f, 0xf3, 0x54, 0x38,
+ 0xf7, 0x2a, 0x5f, 0xac, 0x4d, 0xd9, 0xd6, 0x0d, 0xd8, 0xd8, 0xad, 0xfb,
+ 0x76, 0x41, 0x1c, 0xdf, 0xf6, 0x73, 0xb1, 0x17, 0x00, 0xbf, 0x7e, 0x4c,
+ 0x03, 0x5f, 0x11, 0x7f, 0x90, 0x72, 0x1f, 0x9f, 0xd3, 0x4f, 0xa4, 0x6b,
+ 0x5b, 0xe0, 0xf8, 0x34, 0x8c, 0xfe, 0x74, 0x9c, 0x5e, 0xf2, 0x6e, 0xed,
+ 0x9f, 0x1c, 0x7d, 0x73, 0x74, 0xe2, 0x5d, 0xed, 0x5f, 0xf5, 0xfb, 0xeb,
+ 0xd7, 0x69, 0x39, 0x48, 0xcb, 0xa2, 0x5a, 0xc3, 0xe5, 0x61, 0xc4, 0x0e,
+ 0x9f, 0x34, 0x09, 0xfe, 0xce, 0x8d, 0x77, 0x2b, 0xb8, 0x98, 0x99, 0xf8,
+ 0xfd, 0x3d, 0x9f, 0x21, 0xd6, 0x8a, 0xf1, 0x27, 0xa5, 0x9b, 0x21, 0x95,
+ 0xf7, 0x4b, 0xd5, 0x0a, 0xdd, 0xdf, 0xc3, 0x32, 0xa5, 0x88, 0x44, 0x12,
+ 0xc0, 0xea, 0x26, 0xf0, 0xc4, 0x28, 0x7a, 0xc5, 0x4c, 0xca, 0x65, 0x94,
+ 0x28, 0xc1, 0xed, 0x2a, 0xbc, 0x57, 0xa6, 0x84, 0x50, 0x16, 0xbd, 0x92,
+ 0x8f, 0x12, 0x14, 0x0c, 0x92, 0x89, 0x11, 0xbe, 0xd9, 0x76, 0x3c, 0xfd,
+ 0x3a, 0x3e, 0xe8, 0xc7, 0xaf, 0x8e, 0x4e, 0x8e, 0xbe, 0x3a, 0x38, 0x3f,
+ 0x72, 0xfa, 0xec, 0x61, 0xad, 0x75, 0x50, 0xf9, 0x34, 0xa9, 0x8f, 0x5f,
+ 0x0b, 0x65, 0x22, 0xd3, 0x99, 0x2c, 0xaa, 0x33, 0x6e, 0x64, 0x6c, 0x9b,
+ 0x84, 0x24, 0x68, 0xae, 0xd6, 0x54, 0x20, 0x12, 0x1e, 0x0e, 0x4e, 0xf7,
+ 0x78, 0x22, 0x53, 0xf5, 0x56, 0x90, 0x8c, 0x41, 0xed, 0xa9, 0xa2, 0x0f,
+ 0x39, 0xd6, 0x91, 0x66, 0x06, 0xcb, 0x85, 0x57, 0xef, 0xba, 0x24, 0x2d,
+ 0x69, 0x1b, 0x5d, 0xe1, 0x7f, 0x9d, 0xf8, 0x9d, 0xe7, 0xd8, 0x53, 0xdd,
+ 0xd3, 0x32, 0x50, 0x07, 0xb7, 0xa7, 0xf3, 0x90, 0x37, 0x8f, 0x9a, 0x37,
+ 0x86, 0xdd, 0x4a, 0x0a, 0xa0, 0x45, 0xfa, 0xdf, 0x2b, 0x7a, 0xb0, 0xd5,
+ 0x04, 0xcc, 0x01, 0x4b, 0xca, 0x6d, 0x83, 0xb0, 0x00, 0x46, 0x25, 0xa9,
+ 0x2d, 0xd5, 0xf0, 0x2a, 0x9d, 0x18, 0xf4, 0x65, 0x4c, 0xff, 0xa4, 0x1c,
+ 0x43, 0x86, 0x6b, 0x11, 0x94, 0x58, 0x12, 0xa9, 0x83, 0x94, 0xdc, 0x2e,
+ 0xd4, 0x87, 0xde, 0x4f, 0x2d, 0xab, 0xa9, 0x47, 0x52, 0x49, 0x15, 0x89,
+ 0x94, 0xc1, 0x4d, 0x40, 0x43, 0x3d, 0x01, 0x1a, 0x30, 0x79, 0x99, 0x7e,
+ 0x1e, 0x26, 0xe2, 0x9b, 0x4c, 0xbc, 0x7c, 0x6a, 0xdb, 0x62, 0xcc, 0x24,
+ 0x0f, 0x70, 0x9e, 0x02, 0xfd, 0x88, 0x5b, 0x10, 0x8b, 0x69, 0x86, 0x33,
+ 0x5c, 0xc6, 0xe7, 0xdb, 0xde, 0x57, 0x62, 0x72, 0x8b, 0xa5, 0x42, 0xd5,
+ 0xfc, 0xa1, 0x7a, 0xc5, 0x5f, 0xdc, 0xeb, 0x8c, 0x77, 0x75, 0x39, 0xaf,
+ 0xa4, 0x21, 0x43, 0xd7, 0x34, 0x3e, 0x93, 0x61, 0x58, 0x2c, 0x4a, 0xf7,
+ 0x4f, 0x2d, 0x3c, 0x0d, 0xa7, 0xe6, 0x3a, 0x72, 0xb1, 0xd1, 0x23, 0x14,
+ 0x5b, 0xc3, 0xe9, 0x5f, 0xfd, 0xf6, 0xb0, 0x06, 0xc0, 0x23, 0x4e, 0xa7,
+ 0x5e, 0x3b, 0xad, 0xd5, 0xd7, 0xda, 0x76, 0xcf, 0x28, 0xf9, 0x0a, 0xf7,
+ 0x21, 0xb9, 0x27, 0xea, 0x73, 0x3a, 0x3a, 0x7b, 0x7f, 0x4e, 0x1f, 0x39,
+ 0xc1, 0xbf, 0x48, 0x7a, 0x5b, 0x15, 0xc2, 0x51, 0x97, 0x56, 0xbe, 0x98,
+ 0x42, 0x9c, 0x52, 0x3a, 0x90, 0xc9, 0xb2, 0xd5, 0xaa, 0x17, 0x2e, 0xb0,
+ 0x92, 0x36, 0x68, 0x72, 0xe4, 0x69, 0xd7, 0xbc, 0x5a, 0xda, 0x1a, 0xeb,
+ 0x2d, 0x4d, 0x05, 0x04, 0xce, 0x41, 0xa0, 0x6e, 0x69, 0x16, 0x5c, 0x25,
+ 0xa6, 0x09, 0x06, 0xa7, 0xf8, 0x4b, 0xd4, 0xfc, 0x85, 0x27, 0xe7, 0x5c,
+ 0x2f, 0x16, 0xde, 0x1c, 0x87, 0xc4, 0xb7, 0xa2, 0x32, 0xbb, 0xbc, 0x82,
+ 0x9d, 0x80, 0x79, 0xf4, 0xec, 0x3a, 0xf9, 0x13, 0x1c, 0x15, 0xa2, 0x2e,
+ 0x13, 0x7e, 0x3a, 0x01, 0xea, 0xcf, 0xb6, 0xfa, 0x58, 0xeb, 0x3c, 0xb9,
+ 0xb2, 0xcc, 0x64, 0xf6, 0x74, 0x05, 0xde, 0x96, 0x41, 0xcb, 0xa8, 0x00,
+ 0x97, 0x13, 0x7c, 0xbc, 0x38, 0x3b, 0x15, 0xf8, 0x76, 0xb5, 0xf5, 0xf4,
+ 0xbd, 0xf4, 0xab, 0x60, 0xcd, 0x5c, 0x3b, 0x4a, 0x26, 0xd4, 0x99, 0x85,
+ 0xcc, 0xcb, 0x01, 0xab, 0x92, 0x62, 0x27, 0xe6, 0x81, 0x83, 0x0c, 0x84,
+ 0x57, 0x21, 0xca, 0x0b, 0x95, 0x6d, 0x0b, 0x58, 0x53, 0xc8, 0x1b, 0x6d,
+ 0x78, 0xe4, 0xf4, 0x0e, 0xad, 0xb5, 0x0c, 0x83, 0x87, 0x32, 0x15, 0x26,
+ 0x0e, 0xf5, 0x0c, 0x17, 0x7e, 0x2b, 0x42, 0x5c, 0xc5, 0x22, 0xcb, 0x89,
+ 0x92, 0x36, 0x58, 0x70, 0x5e, 0xc1, 0x8a, 0x09, 0x7e, 0x51, 0x0d, 0xbd,
+ 0xd3, 0x9c, 0xe6, 0xf8, 0xec, 0xe6, 0x59, 0x33, 0x3d, 0x8a, 0x0d, 0x0b,
+ 0x52, 0xc8, 0x80, 0xaa, 0xed, 0x52, 0x7d, 0x2e, 0x63, 0x86, 0x6f, 0xd3,
+ 0x74, 0xd1, 0x05, 0x69, 0x32, 0x0c, 0x91, 0x77, 0xbc, 0xef, 0xbf, 0xa2,
+ 0xc9, 0x91, 0x69, 0x41, 0x6f, 0x90, 0x24, 0x41, 0x0c, 0xdb, 0x4b, 0x6d,
+ 0xfe, 0xce, 0xbc, 0x3c, 0x48, 0xe1, 0x8b, 0x19, 0xa2, 0xd8, 0x35, 0x82,
+ 0x6d, 0x5e, 0x6a, 0x16, 0xf0, 0xdf, 0xf0, 0x4a, 0xed, 0x65, 0x7c, 0x91,
+ 0x72, 0x90, 0xf0, 0x05, 0xc2, 0x14, 0xaa, 0xf9, 0x46, 0xe7, 0xbc, 0x8b,
+ 0xf8, 0x8c, 0x14, 0x18, 0xcc, 0x2e, 0xe2, 0x4a, 0xeb, 0xa2, 0xf4, 0xd3,
+ 0x69, 0x87, 0x06, 0xb3, 0x57, 0x1f, 0x4d, 0xaa, 0x9b, 0xa5, 0xc3, 0x51,
+ 0xce, 0x16, 0x2c, 0x4e, 0xf1, 0xb1, 0x4f, 0x56, 0x37, 0x41, 0x79, 0xf1,
+ 0x48, 0x81, 0xd1, 0xff, 0xc6, 0xa4, 0xc1, 0x8a, 0x60, 0xf0, 0xc0, 0xb6,
+ 0x11, 0x90, 0x47, 0x88, 0xf4, 0x68, 0x49, 0x21, 0x02, 0x1e, 0xa4, 0x83,
+ 0x1f, 0x88, 0x44, 0x69, 0x61, 0x84, 0x05, 0x7c, 0x5f, 0x24, 0xc4, 0xd9,
+ 0x41, 0xff, 0x9b, 0x96, 0x6c, 0xf0, 0xa4, 0x01, 0xec, 0x89, 0x17, 0x26,
+ 0xd5, 0x5e, 0x35, 0x38, 0x56, 0xf0, 0xd0, 0x54, 0x37, 0x8f, 0x39, 0x34,
+ 0x30, 0x11, 0xef, 0xd0, 0x78, 0xa4, 0x5d, 0x74, 0x68, 0x02, 0xbb, 0x7d,
+ 0xac, 0x6e, 0x0a, 0xe7, 0xd8, 0xe4, 0x74, 0x54, 0xa8, 0xec, 0x3a, 0x70,
+ 0x5e, 0xe8, 0xb8, 0x60, 0xcc, 0x9f, 0xce, 0x87, 0x5f, 0x45, 0x42, 0xf3,
+ 0x5c, 0xe6, 0xb4, 0xd0, 0x0b, 0xde, 0x61, 0xd1, 0xfd, 0x5c, 0xfa, 0xb4,
+ 0xc8, 0x29, 0xf3, 0x0e, 0x0b, 0x59, 0x56, 0x67, 0x5d, 0xe7, 0x94, 0x3c,
+ 0x9d, 0xf5, 0x61, 0xbf, 0x16, 0xb1, 0xbe, 0x8b, 0x77, 0x15, 0xa0, 0x37,
+ 0xeb, 0x1d, 0x49, 0xe5, 0xa8, 0x19, 0x36, 0xd1, 0x28, 0x00, 0xa9, 0xd8,
+ 0x35, 0xf8, 0x41, 0xe5, 0xd0, 0x8f, 0x6e, 0x19, 0x00, 0x2b, 0xb7, 0xe0,
+ 0x98, 0x6c, 0x5f, 0xa9, 0x16, 0x1c, 0xf5, 0x48, 0x83, 0x20, 0xcf, 0x91,
+ 0x8b, 0x99, 0x86, 0xec, 0x11, 0x86, 0x52, 0xd6, 0x49, 0x84, 0x60, 0xb2,
+ 0xaa, 0x14, 0x53, 0xa9, 0x09, 0x61, 0x7b, 0x49, 0xfa, 0xfd, 0xfd, 0x41,
+ 0x35, 0xb7, 0x22, 0x05, 0x9d, 0x14, 0x1c, 0xd4, 0x96, 0xe2, 0x2c, 0x47,
+ 0xc3, 0x6f, 0x61, 0x86, 0x4a, 0x4d, 0xf9, 0x69, 0x8e, 0xc3, 0x02, 0x11,
+ 0x56, 0xd0, 0x48, 0x91, 0xd0, 0x61, 0x42, 0x88, 0x3f, 0x12, 0x66, 0x23,
+ 0x85, 0x22, 0x80, 0x33, 0xc4, 0xf9, 0x22, 0xaa, 0x26, 0xc3, 0x8d, 0x3b,
+ 0xc0, 0x0a, 0x85, 0x88, 0x9c, 0x81, 0x33, 0x4e, 0xa7, 0xbc, 0xb5, 0x45,
+ 0x17, 0x08, 0x2c, 0xc4, 0xfd, 0x3b, 0x52, 0x3f, 0x4b, 0xca, 0xa2, 0xde,
+ 0x23, 0x80, 0x40, 0x4e, 0x48, 0x25, 0xe8, 0x5f, 0x91, 0x60, 0xef, 0x53,
+ 0x58, 0x2e, 0x44, 0x93, 0xe5, 0x7b, 0xe4, 0xd6, 0x45, 0x23, 0x92, 0xfd,
+ 0xac, 0xd5, 0xfd, 0x68, 0x94, 0x57, 0x31, 0xb9, 0x22, 0x2e, 0x10, 0x7b,
+ 0x71, 0xdf, 0xfc, 0xd5, 0xb3, 0x6d, 0x5f, 0xbd, 0xeb, 0xab, 0xe4, 0xb6,
+ 0x54, 0xaf, 0x52, 0xae, 0x4c, 0xe7, 0xbe, 0xde, 0xf0, 0x88, 0x81, 0x35,
+ 0x01, 0x92, 0x95, 0xc5, 0xec, 0xf2, 0x4a, 0x86, 0xf4, 0x5b, 0x0e, 0xc2,
+ 0x27, 0x3c, 0x30, 0x92, 0x84, 0x2b, 0xfd, 0xd3, 0x92, 0xa2, 0x26, 0xe8,
+ 0xc1, 0x75, 0xe6, 0x16, 0xad, 0xb2, 0x91, 0x38, 0xaf, 0x3b, 0xbc, 0xe2,
+ 0x8f, 0xe0, 0x34, 0xa4, 0x59, 0x1e, 0xe6, 0x49, 0x53, 0xc7, 0x39, 0x81,
+ 0x18, 0x57, 0xd4, 0x51, 0x6a, 0xd6, 0xa5, 0xe3, 0x06, 0x42, 0x4e, 0xab,
+ 0x82, 0x29, 0x2b, 0xe5, 0x31, 0x4b, 0x77, 0x81, 0x6f, 0x12, 0x35, 0xad,
+ 0xaf, 0x96, 0xac, 0x44, 0xe7, 0x01, 0xa6, 0x37, 0x3b, 0x31, 0xce, 0x40,
+ 0x7d, 0x15, 0xfa, 0xd3, 0x67, 0xf4, 0xd3, 0x9e, 0xb7, 0x7b, 0x1e, 0x1e,
+ 0xc0, 0xdf, 0x67, 0x60, 0x89, 0x55, 0xb6, 0xa3, 0x0e, 0x56, 0xb4, 0xe4,
+ 0x23, 0xec, 0x81, 0x4a, 0xca, 0x8a, 0xb6, 0xb4, 0xc4, 0x0e, 0x0b, 0x9c,
+ 0x76, 0x87, 0x3b, 0xca, 0xa9, 0xe5, 0x91, 0x57, 0x37, 0x00, 0x8a, 0x6c,
+ 0x33, 0x6b, 0x79, 0x7b, 0x3b, 0xc0, 0x49, 0x66, 0xce, 0xfb, 0x42, 0xbb,
+ 0x30, 0x1f, 0x35, 0x14, 0x80, 0x01, 0x81, 0xc5, 0x15, 0xc0, 0x29, 0xd3,
+ 0x58, 0xdf, 0xe2, 0x73, 0x37, 0x49, 0xae, 0x45, 0x81, 0xdb, 0x11, 0xe6,
+ 0x8a, 0x3d, 0xcc, 0x4e, 0x64, 0xb6, 0x6e, 0x44, 0x80, 0x4e, 0x76, 0x9d,
+ 0x0d, 0x4e, 0x14, 0xc5, 0xba, 0x36, 0x8d, 0x5e, 0x90, 0xd3, 0xf8, 0x3b,
+ 0x21, 0x00, 0x0b, 0xd3, 0xa2, 0xdd, 0x71, 0xac, 0x6a, 0xdd, 0x38, 0xcd,
+ 0xc4, 0xbc, 0xfb, 0xc7, 0xe6, 0xff, 0x36, 0xe9, 0xbd, 0xb9, 0xd1, 0xdb,
+ 0xec, 0x6d, 0xf5, 0xb6, 0x9f, 0xc2, 0x68, 0xf6, 0x88, 0x2d, 0x66, 0x34,
+ 0xfd, 0xd8, 0xbf, 0x06, 0xa3, 0x3d, 0xfb, 0x4d, 0x18, 0xed, 0xd9, 0xbf,
+ 0x0c, 0xa3, 0x3d, 0xfb, 0x17, 0x63, 0x34, 0xa1, 0xf7, 0x56, 0xb2, 0xb1,
+ 0xb3, 0xb7, 0x93, 0xee, 0x6c, 0xed, 0xed, 0xed, 0x3e, 0xdb, 0xfc, 0x35,
+ 0xd9, 0x6d, 0xc7, 0x63, 0xb7, 0x67, 0xff, 0x2a, 0xec, 0x26, 0xc6, 0xb5,
+ 0x61, 0xb6, 0xd4, 0x63, 0xb7, 0xbe, 0xe4, 0x37, 0x6a, 0x27, 0x03, 0x64,
+ 0x0c, 0x7d, 0x8b, 0x83, 0xec, 0x52, 0xfe, 0xa6, 0x15, 0x34, 0x6e, 0x23,
+ 0x98, 0x39, 0x2d, 0x79, 0x35, 0x1b, 0xdd, 0x0c, 0x7a, 0x7c, 0x16, 0x99,
+ 0x09, 0x38, 0x5c, 0x63, 0xd1, 0xb0, 0xc9, 0x3c, 0x09, 0xc6, 0xdb, 0x60,
+ 0x8d, 0x67, 0xb8, 0x7e, 0xae, 0xb6, 0xa9, 0x2c, 0x4e, 0x55, 0x08, 0xf2,
+ 0x1a, 0x08, 0xb7, 0xb7, 0x8f, 0xe4, 0x8a, 0xf9, 0xf1, 0xcf, 0x83, 0xe0,
+ 0x24, 0x69, 0x02, 0xb7, 0xb1, 0x9d, 0xd2, 0xbf, 0x02, 0x9b, 0x2a, 0xc5,
+ 0x37, 0x5f, 0x6e, 0xf5, 0x36, 0x9f, 0xbd, 0x40, 0x48, 0xa9, 0xae, 0xfd,
+ 0xfb, 0xd6, 0x63, 0xb8, 0xb5, 0x39, 0x90, 0xe5, 0x36, 0x93, 0x43, 0xe1,
+ 0xb0, 0x5a, 0x88, 0xd3, 0xda, 0xf6, 0x89, 0xe1, 0xbb, 0x87, 0x19, 0xad,
+ 0xb8, 0x5a, 0xd4, 0x47, 0x15, 0xb6, 0x68, 0x2d, 0xea, 0x93, 0xcb, 0xb3,
+ 0x6a, 0x35, 0xc0, 0x44, 0xcb, 0xd4, 0x60, 0xa9, 0xbd, 0x2a, 0xde, 0x90,
+ 0xf0, 0x8b, 0xd1, 0xdf, 0x17, 0x53, 0x07, 0xc2, 0xe5, 0x15, 0x98, 0xe6,
+ 0x54, 0xe4, 0x27, 0xae, 0xfe, 0x09, 0xff, 0x56, 0xbc, 0xcb, 0x65, 0x93,
+ 0xe8, 0x9f, 0xf9, 0xcb, 0x86, 0x63, 0x11, 0xea, 0x5c, 0xd8, 0x5a, 0xf3,
+ 0x75, 0x97, 0x14, 0x42, 0x7e, 0xf4, 0xb7, 0x59, 0xb4, 0x19, 0xfd, 0xb7,
+ 0x5e, 0x31, 0x8e, 0xbc, 0x0f, 0x16, 0xc5, 0xe7, 0xe1, 0x25, 0xb7, 0x5a,
+ 0x9d, 0x34, 0x57, 0x06, 0x2b, 0x2d, 0xde, 0xac, 0x39, 0xb1, 0x0c, 0x4a,
+ 0x10, 0xa0, 0xc8, 0xa7, 0xe7, 0x64, 0x24, 0xe8, 0x30, 0x03, 0xc7, 0x47,
+ 0x70, 0xb2, 0x8a, 0x07, 0x51, 0xd8, 0xbe, 0x91, 0xae, 0xd1, 0x47, 0x5e,
+ 0x75, 0x01, 0x1d, 0xf3, 0x2a, 0xc7, 0x53, 0x34, 0xd5, 0xb3, 0x6a, 0xc2,
+ 0xfa, 0x35, 0x5a, 0x44, 0xaa, 0x53, 0xd3, 0xcc, 0x7c, 0x1c, 0x6f, 0x84,
+ 0x9d, 0xc5, 0x4a, 0x16, 0xcd, 0x17, 0xa0, 0x63, 0xa4, 0x00, 0x3d, 0xb8,
+ 0x73, 0xf0, 0xf7, 0xd2, 0xe2, 0x8c, 0x89, 0x6b, 0x0e, 0x13, 0x3d, 0x42,
+ 0xbd, 0xb7, 0x71, 0x9b, 0xa5, 0xd0, 0x5d, 0xa2, 0x06, 0xdc, 0x2e, 0xa0,
+ 0x28, 0xae, 0x67, 0xd3, 0x8a, 0x2a, 0x0b, 0x19, 0x5c, 0x97, 0x9c, 0xdd,
+ 0x11, 0x75, 0x97, 0x7e, 0x53, 0xdc, 0xa6, 0x94, 0x1d, 0xe3, 0x27, 0x46,
+ 0xcc, 0xc3, 0x18, 0xc4, 0xc9, 0x61, 0x44, 0xbb, 0x32, 0x2d, 0x30, 0xb2,
+ 0xfc, 0x2a, 0xc5, 0x9a, 0x70, 0x36, 0xae, 0x15, 0xe1, 0x2e, 0x90, 0x72,
+ 0x5a, 0x16, 0x94, 0x40, 0xa3, 0x22, 0x19, 0x56, 0x71, 0x93, 0x25, 0x6d,
+ 0xe6, 0x92, 0x58, 0x66, 0xf3, 0x90, 0xfd, 0xe1, 0xf2, 0xf3, 0x57, 0xe3,
+ 0xf7, 0x67, 0x5b, 0x0d, 0x7e, 0x7f, 0x45, 0x5e, 0x91, 0xd9, 0x64, 0x2a,
+ 0xc0, 0x75, 0x0f, 0x60, 0x68, 0x91, 0xff, 0x7b, 0x2d, 0xfa, 0x96, 0x4a,
+ 0xf0, 0x39, 0xcb, 0x41, 0x90, 0x59, 0xd4, 0x25, 0x6e, 0x90, 0x28, 0x34,
+ 0x85, 0x68, 0x4e, 0xdb, 0x03, 0xc6, 0x76, 0x60, 0xbc, 0x14, 0x7d, 0x45,
+ 0x5a, 0xec, 0x72, 0x17, 0x64, 0xd7, 0xe7, 0xd8, 0x8a, 0x13, 0xcd, 0xaf,
+ 0x3a, 0x47, 0x84, 0x22, 0x42, 0x71, 0x0c, 0x02, 0xd7, 0x33, 0x2c, 0x3a,
+ 0x7b, 0x7a, 0x80, 0x18, 0x5c, 0xc6, 0x7c, 0x95, 0xba, 0x68, 0x71, 0xa6,
+ 0xb1, 0x8b, 0x94, 0x93, 0x10, 0xec, 0x44, 0x2e, 0xd5, 0x85, 0x5e, 0x3b,
+ 0x77, 0x42, 0x9e, 0x94, 0xd9, 0x77, 0xa4, 0x99, 0xc6, 0x4c, 0xfa, 0x5a,
+ 0x25, 0x48, 0x15, 0x42, 0xaf, 0xfe, 0xc3, 0x99, 0xc7, 0xd9, 0x5e, 0xee,
+ 0xa8, 0xf6, 0x50, 0x39, 0xa2, 0xa7, 0x1c, 0x3a, 0x00, 0x00, 0xae, 0xb0,
+ 0x4c, 0x2f, 0x39, 0xcf, 0x71, 0x51, 0xc5, 0x68, 0xdf, 0x76, 0x62, 0xe5,
+ 0xde, 0x79, 0xa6, 0x59, 0x00, 0x4b, 0x89, 0x23, 0x3c, 0x97, 0x53, 0x10,
+ 0x28, 0x5f, 0x25, 0x48, 0x2d, 0x12, 0x79, 0xaf, 0x92, 0x74, 0xe2, 0x85,
+ 0xc8, 0xaa, 0x02, 0xe3, 0xd1, 0xda, 0x58, 0x85, 0xff, 0xe5, 0xc4, 0x0c,
+ 0xc9, 0xe3, 0xc1, 0x24, 0x8f, 0x40, 0x62, 0x8d, 0x40, 0xc9, 0x17, 0x54,
+ 0x1b, 0x94, 0x64, 0x7e, 0xed, 0xa3, 0x53, 0xa3, 0xb7, 0x2c, 0x41, 0xcd,
+ 0xb2, 0xd7, 0xf9, 0x43, 0xeb, 0x84, 0x51, 0xbe, 0x24, 0x72, 0x24, 0xbd,
+ 0x19, 0xb7, 0xf3, 0x18, 0x64, 0xca, 0xfb, 0xc1, 0x13, 0xc8, 0xf4, 0x4c,
+ 0xc7, 0x8a, 0xe4, 0xaa, 0x95, 0x88, 0xc3, 0xf2, 0x7e, 0x8a, 0xee, 0x69,
+ 0x7e, 0x57, 0xee, 0x1c, 0x5c, 0x35, 0xf7, 0x8b, 0x5a, 0x8c, 0x13, 0xf7,
+ 0xa1, 0x72, 0x1a, 0x4b, 0x92, 0x32, 0x8b, 0xd1, 0x0d, 0xec, 0x10, 0x07,
+ 0x16, 0x8f, 0x2a, 0xb7, 0xa8, 0x40, 0x8d, 0xd8, 0x6f, 0x66, 0xea, 0xdb,
+ 0xdb, 0xa1, 0x19, 0x1a, 0xa1, 0xea, 0x39, 0xf9, 0xd6, 0x92, 0xdc, 0x00,
+ 0xf7, 0x26, 0xc6, 0x81, 0x15, 0x9c, 0x0b, 0xa3, 0xeb, 0x6b, 0x4e, 0x2e,
+ 0x9e, 0xbc, 0xe8, 0x69, 0xc5, 0xa4, 0xf3, 0xda, 0xfa, 0x4e, 0xc7, 0x77,
+ 0xb7, 0xf4, 0x7e, 0x09, 0x1f, 0x8c, 0x93, 0x1b, 0x20, 0xca, 0x62, 0x87,
+ 0x67, 0x5a, 0x27, 0x97, 0xb1, 0xe0, 0xaf, 0xce, 0x61, 0x6b, 0xa7, 0x52,
+ 0x47, 0x4e, 0x30, 0x83, 0xc2, 0x51, 0x59, 0x85, 0x09, 0xca, 0x91, 0xb8,
+ 0xd4, 0x04, 0x51, 0xc1, 0xc4, 0x45, 0x69, 0xe8, 0x05, 0xf9, 0xa9, 0x66,
+ 0xf7, 0xe8, 0x3c, 0xb9, 0x64, 0x07, 0xb1, 0xc9, 0x96, 0x76, 0x60, 0xff,
+ 0xb0, 0xf1, 0x44, 0x9a, 0x73, 0x43, 0x12, 0x58, 0x14, 0x1c, 0xe2, 0x09,
+ 0x08, 0x91, 0xf8, 0x1d, 0x50, 0x32, 0xf6, 0x90, 0xbb, 0xd1, 0xe5, 0x2e,
+ 0xa7, 0xdd, 0x26, 0x6e, 0x0a, 0x50, 0x14, 0x7e, 0xa6, 0x17, 0x04, 0x5d,
+ 0x1e, 0x16, 0xa5, 0x40, 0x1f, 0x63, 0x52, 0x33, 0x88, 0x1f, 0xca, 0xe4,
+ 0xae, 0x0c, 0xc6, 0x64, 0x33, 0x11, 0x96, 0x66, 0xa5, 0x0d, 0x62, 0x3c,
+ 0x34, 0x04, 0x82, 0x50, 0x12, 0x63, 0x59, 0x3a, 0x95, 0x68, 0x26, 0xc1,
+ 0x28, 0xad, 0x32, 0x9c, 0x08, 0xcf, 0x04, 0x6e, 0xa6, 0xdc, 0xe0, 0xee,
+ 0x72, 0x56, 0xb8, 0x17, 0xd9, 0x85, 0x8d, 0xa8, 0x6c, 0x03, 0x5a, 0x7a,
+ 0x34, 0xb8, 0x0a, 0xe4, 0x63, 0x09, 0xd6, 0xca, 0x35, 0x21, 0x9b, 0x59,
+ 0x51, 0x28, 0x91, 0x20, 0x33, 0xd1, 0xab, 0x4f, 0xff, 0xa4, 0x20, 0x16,
+ 0x92, 0x5c, 0x32, 0xd1, 0x02, 0xca, 0x19, 0x5d, 0x03, 0xa6, 0x4d, 0x6d,
+ 0x2e, 0x89, 0x9e, 0x0e, 0x52, 0x42, 0xa1, 0x30, 0xbd, 0x91, 0xe9, 0x61,
+ 0x2a, 0x51, 0x9b, 0xc4, 0xaf, 0x31, 0xa4, 0x8f, 0x51, 0x68, 0xb7, 0x9a,
+ 0x0d, 0xb8, 0x5f, 0x8d, 0x81, 0x99, 0x5e, 0x9a, 0x9d, 0x5d, 0x16, 0xc5,
+ 0x7f, 0x3c, 0x56, 0x9e, 0xbb, 0x6a, 0xc0, 0x8b, 0xa6, 0xda, 0x6b, 0x29,
+ 0xb5, 0x88, 0xe7, 0x1b, 0x4c, 0x8f, 0x4f, 0x57, 0x9c, 0x8a, 0x0c, 0x9c,
+ 0x4e, 0x0b, 0x6c, 0xdf, 0xf9, 0x72, 0xcb, 0x1f, 0xe4, 0x41, 0x6a, 0xd0,
+ 0x89, 0xa1, 0x5e, 0x8b, 0xc8, 0xfa, 0x63, 0x32, 0x92, 0x99, 0x71, 0x29,
+ 0x1f, 0x94, 0x9b, 0x51, 0x4a, 0x2e, 0xa0, 0xad, 0x13, 0x9d, 0xbb, 0x57,
+ 0x73, 0xc0, 0xd8, 0xf4, 0x5b, 0x94, 0x15, 0xd3, 0x28, 0x7e, 0xec, 0x36,
+ 0xd5, 0x05, 0x82, 0xf2, 0x99, 0x83, 0xb8, 0xf2, 0x98, 0x1d, 0x21, 0xea,
+ 0xd1, 0x39, 0xfb, 0x95, 0xb6, 0x84, 0xea, 0x00, 0x36, 0x37, 0x36, 0x2c,
+ 0x70, 0xff, 0x1c, 0xb4, 0x7e, 0xd9, 0x1d, 0x05, 0xed, 0x27, 0x31, 0x9d,
+ 0xe5, 0x06, 0xb1, 0xdf, 0xa8, 0xf5, 0x16, 0xaf, 0x9f, 0x60, 0x4e, 0x93,
+ 0x8c, 0x05, 0x53, 0x3b, 0xfa, 0x82, 0x9f, 0x34, 0xd8, 0xf9, 0x46, 0x21,
+ 0xba, 0x35, 0x18, 0x29, 0x29, 0x61, 0xf7, 0xa3, 0x96, 0x7d, 0x44, 0x53,
+ 0xac, 0xf6, 0x9a, 0xef, 0xb4, 0xc1, 0xb0, 0x59, 0x16, 0xd1, 0xf6, 0xe1,
+ 0x8b, 0x86, 0xed, 0xa3, 0xe8, 0xcb, 0x7b, 0x1b, 0xce, 0x32, 0x31, 0x61,
+ 0x9a, 0x17, 0xea, 0x3c, 0x3c, 0xff, 0xde, 0x02, 0xb4, 0x92, 0x30, 0x20,
+ 0xff, 0xbf, 0x39, 0x78, 0x2e, 0xb0, 0x1f, 0x60, 0x7b, 0xe0, 0x90, 0x8c,
+ 0xe9, 0x1d, 0xe8, 0x11, 0xee, 0x76, 0x0a, 0x30, 0x2d, 0xd6, 0xec, 0xba,
+ 0xaf, 0xd0, 0x7f, 0x90, 0x12, 0x08, 0x26, 0x6b, 0xa6, 0x4b, 0x33, 0x87,
+ 0xb7, 0x8f, 0x5b, 0xbd, 0x5d, 0x03, 0xc8, 0xb1, 0x64, 0xff, 0xce, 0x26,
+ 0x5c, 0x7f, 0xb3, 0x0e, 0xf2, 0x79, 0x93, 0x7f, 0x10, 0xc1, 0x33, 0x26,
+ 0x9c, 0xce, 0xb6, 0xbc, 0x47, 0x68, 0x4f, 0x94, 0x6b, 0x14, 0x96, 0x33,
+ 0xa8, 0x32, 0x25, 0x77, 0xca, 0x94, 0xda, 0x13, 0x35, 0xfa, 0xb8, 0xb7,
+ 0xdf, 0x82, 0x06, 0x43, 0x0e, 0x62, 0xce, 0xa8, 0x70, 0x10, 0xbf, 0x0c,
+ 0xfc, 0x5e, 0x28, 0x78, 0xea, 0xa3, 0x3f, 0x73, 0xb1, 0x6e, 0x6d, 0xc2,
+ 0xfc, 0x0c, 0x4a, 0x4a, 0xc9, 0xea, 0xe4, 0xcb, 0xe2, 0xdb, 0x10, 0x8c,
+ 0xda, 0x2e, 0xf1, 0x06, 0x1c, 0x64, 0xac, 0xcd, 0x66, 0x0e, 0x0a, 0x3a,
+ 0xe8, 0xb8, 0x39, 0x8b, 0x42, 0x9f, 0x11, 0x1e, 0x01, 0x2f, 0xa6, 0xb2,
+ 0x6d, 0x65, 0x08, 0x3b, 0x09, 0x7f, 0x01, 0xe3, 0x56, 0xea, 0x5f, 0xcb,
+ 0x43, 0xb9, 0xd5, 0xa4, 0x88, 0xc3, 0x53, 0x2b, 0x88, 0x55, 0x49, 0x29,
+ 0x2c, 0x3c, 0xb2, 0xe9, 0xe2, 0xc2, 0xe5, 0x9f, 0x84, 0x8e, 0x1a, 0x71,
+ 0xae, 0x3f, 0x07, 0xe2, 0x7c, 0x69, 0x45, 0xa9, 0xcd, 0xd8, 0x13, 0x2a,
+ 0xa2, 0xcd, 0x21, 0xa4, 0xd5, 0x59, 0xe9, 0x24, 0x34, 0x77, 0xae, 0x32,
+ 0xd8, 0xd5, 0xbc, 0x43, 0xd7, 0xbe, 0xbd, 0x2d, 0xe4, 0xbb, 0xde, 0x62,
+ 0x67, 0x63, 0x27, 0xb7, 0xe2, 0x93, 0x20, 0x24, 0x6b, 0x23, 0x29, 0xc2,
+ 0x87, 0x2f, 0x14, 0x19, 0x2b, 0x45, 0x50, 0xbc, 0x86, 0x22, 0x8f, 0xe6,
+ 0x16, 0x56, 0x3b, 0x2e, 0x01, 0x76, 0xf3, 0xe2, 0x12, 0xd8, 0x7d, 0x31,
+ 0x4a, 0xa9, 0x3c, 0x2a, 0x37, 0xb0, 0x86, 0xc9, 0x04, 0xa3, 0x86, 0xf8,
+ 0x2f, 0xa4, 0x71, 0x08, 0x9d, 0x0e, 0x37, 0x41, 0x70, 0xaf, 0x03, 0x9d,
+ 0x0b, 0xa5, 0xb6, 0x2c, 0xb9, 0x27, 0xd4, 0x2c, 0xfb, 0x61, 0xe2, 0x6e,
+ 0xaf, 0x8f, 0x0c, 0x50, 0xf1, 0xb2, 0x20, 0x2f, 0xa0, 0xf0, 0x31, 0x92,
+ 0x70, 0x58, 0x66, 0xd3, 0x9a, 0x93, 0xc9, 0xe7, 0x45, 0x7c, 0x5b, 0xb1,
+ 0xce, 0xcb, 0x71, 0x31, 0x48, 0xc6, 0x82, 0x01, 0x28, 0xa5, 0x26, 0x9a,
+ 0xb2, 0xd0, 0x68, 0x8c, 0x88, 0xe2, 0x13, 0xd9, 0x33, 0xd0, 0xbe, 0x1b,
+ 0x56, 0x1c, 0xef, 0x75, 0x29, 0x6f, 0xef, 0x6e, 0x31, 0x62, 0x9e, 0xf9,
+ 0x04, 0xf7, 0x10, 0x8a, 0x2f, 0xba, 0x72, 0x7a, 0x15, 0x52, 0x93, 0x2a,
+ 0x75, 0x2a, 0xe7, 0x48, 0x79, 0xbe, 0x17, 0x42, 0xeb, 0x8d, 0x46, 0x33,
+ 0x56, 0x74, 0xec, 0x15, 0xb7, 0x22, 0x49, 0xa8, 0xe2, 0x2a, 0xa4, 0xf2,
+ 0x11, 0xd3, 0xf9, 0x9a, 0x73, 0x3d, 0x43, 0x50, 0x8a, 0xd8, 0x86, 0x50,
+ 0x9c, 0x42, 0xdd, 0xe8, 0x8a, 0x7d, 0x34, 0x38, 0xc3, 0xd4, 0x99, 0x9c,
+ 0xd6, 0x7f, 0x3a, 0xb4, 0xca, 0x2a, 0x3e, 0x57, 0xb1, 0x9f, 0xe6, 0x64,
+ 0xb4, 0x45, 0xde, 0x93, 0x05, 0x94, 0x79, 0x40, 0x9a, 0x5a, 0xa9, 0x16,
+ 0x12, 0x9d, 0xe6, 0x67, 0xb0, 0x02, 0x75, 0x90, 0x2c, 0xea, 0x05, 0x4b,
+ 0xce, 0x90, 0xa6, 0xc4, 0x44, 0x5d, 0x35, 0x1e, 0x14, 0xa3, 0xfb, 0x39,
+ 0x2a, 0xd0, 0x7b, 0x3e, 0x2b, 0x06, 0x0b, 0x99, 0x3c, 0x52, 0xe4, 0x3b,
+ 0x10, 0xe9, 0x42, 0x38, 0xf0, 0x16, 0x0b, 0x57, 0x2f, 0x12, 0xbf, 0x9f,
+ 0x2a, 0x69, 0x1c, 0x88, 0x84, 0x0e, 0xa3, 0x5c, 0x92, 0xe2, 0x51, 0xae,
+ 0xf5, 0xa2, 0xe3, 0x5c, 0xb2, 0xa2, 0xa4, 0x08, 0x58, 0xb2, 0x1c, 0xf0,
+ 0x68, 0xb2, 0x07, 0x86, 0xbf, 0x16, 0x60, 0x80, 0x4a, 0x52, 0xa7, 0xa9,
+ 0x73, 0x2a, 0x62, 0x45, 0x0e, 0x2d, 0xd6, 0xac, 0xad, 0xa8, 0xe0, 0xca,
+ 0x31, 0xfd, 0x25, 0x71, 0x86, 0x9f, 0x31, 0x01, 0x97, 0x8d, 0x44, 0xf4,
+ 0x19, 0x9d, 0x91, 0xae, 0x1f, 0xc5, 0x4e, 0xc0, 0x25, 0x72, 0xe7, 0x68,
+ 0x12, 0x9e, 0x6b, 0x26, 0xb3, 0x95, 0x13, 0xce, 0x03, 0xde, 0x99, 0xaa,
+ 0x26, 0xe9, 0xde, 0x50, 0x3f, 0x04, 0xdd, 0x8d, 0x4e, 0x25, 0xab, 0xe4,
+ 0x89, 0x41, 0xcf, 0x20, 0xff, 0x31, 0x7d, 0x93, 0x8a, 0x63, 0x42, 0x12,
+ 0x54, 0xa8, 0xbf, 0xb5, 0x15, 0x3e, 0x5a, 0x9a, 0x71, 0x55, 0x63, 0x86,
+ 0x06, 0xe5, 0x1e, 0x59, 0xb5, 0x1d, 0x79, 0x58, 0x99, 0x58, 0x4e, 0x98,
+ 0x58, 0x70, 0x34, 0xb9, 0xd0, 0xd1, 0x32, 0xf6, 0x1b, 0xd5, 0x4c, 0x65,
+ 0x25, 0x10, 0x0f, 0x08, 0x47, 0x2d, 0x27, 0x35, 0xf3, 0x0c, 0x2f, 0x76,
+ 0x58, 0x48, 0xab, 0x52, 0xee, 0x49, 0xec, 0x6d, 0x58, 0x70, 0x39, 0xed,
+ 0xc0, 0x1c, 0xcd, 0xde, 0x02, 0x07, 0xb7, 0x79, 0x68, 0x0e, 0x7b, 0x93,
+ 0x72, 0x00, 0x72, 0x72, 0x0c, 0x93, 0x87, 0x33, 0xb6, 0x9a, 0xdb, 0x9d,
+ 0x22, 0x63, 0x7e, 0xcd, 0x63, 0xf8, 0x60, 0xb9, 0x07, 0xd0, 0x1f, 0x33,
+ 0x75, 0xb0, 0xad, 0x71, 0xc1, 0x3e, 0x09, 0xc9, 0x98, 0x53, 0x69, 0x9c,
+ 0xd6, 0x43, 0x96, 0xa6, 0x94, 0xe8, 0x3a, 0x4a, 0x93, 0xb1, 0x54, 0x8a,
+ 0xe1, 0xdc, 0x7c, 0x88, 0x16, 0x56, 0x0c, 0x2a, 0xff, 0x78, 0x70, 0xc9,
+ 0x64, 0xde, 0xc0, 0x9d, 0xf6, 0x0f, 0x83, 0x07, 0x20, 0xb3, 0xc4, 0xd1,
+ 0xe0, 0xb0, 0xb2, 0x26, 0xb8, 0xd0, 0x79, 0x08, 0xe1, 0x2a, 0x3b, 0xc7,
+ 0xc3, 0x9c, 0x0f, 0x39, 0x1e, 0xc4, 0x91, 0x74, 0x38, 0xe8, 0xda, 0x95,
+ 0x04, 0x7e, 0xde, 0x72, 0x34, 0x40, 0x83, 0xcd, 0xd8, 0xa4, 0xa3, 0xa4,
+ 0x40, 0xd1, 0xca, 0x0d, 0xbd, 0x98, 0xe9, 0x27, 0x29, 0xb0, 0xe1, 0x48,
+ 0x05, 0x33, 0xb1, 0x52, 0x95, 0x5c, 0xa4, 0x6a, 0xc3, 0x8a, 0xc2, 0x53,
+ 0x0c, 0x81, 0x72, 0xe4, 0xef, 0x67, 0x49, 0x85, 0x0e, 0x19, 0xcf, 0xa2,
+ 0x62, 0x5d, 0x03, 0x75, 0x0b, 0xa3, 0x08, 0xa3, 0xc4, 0x12, 0x25, 0xa5,
+ 0x1a, 0x67, 0x53, 0x4d, 0x22, 0xea, 0x46, 0xa9, 0x94, 0x4d, 0x61, 0x83,
+ 0x51, 0xda, 0x8d, 0x59, 0xec, 0x6b, 0x50, 0xa6, 0xf4, 0x41, 0x1b, 0x52,
+ 0x8e, 0xd1, 0x3f, 0xba, 0xda, 0x1a, 0x7d, 0x67, 0x63, 0x93, 0x66, 0xbb,
+ 0xb3, 0xf1, 0x7c, 0xed, 0x29, 0x47, 0x67, 0x49, 0x75, 0xba, 0x79, 0xda,
+ 0x9a, 0xca, 0xf3, 0xb8, 0x4a, 0x63, 0x2a, 0xf5, 0x7b, 0x04, 0x04, 0x1b,
+ 0xf9, 0xdb, 0xf0, 0x0d, 0x29, 0x0e, 0x54, 0xc4, 0x35, 0x72, 0x07, 0xc0,
+ 0xf3, 0x11, 0xc1, 0x61, 0x57, 0x57, 0xd8, 0x06, 0xcd, 0x53, 0xc6, 0xf1,
+ 0x35, 0x79, 0x8f, 0x6b, 0x6c, 0xf0, 0x66, 0xe0, 0xad, 0x49, 0xe8, 0x65,
+ 0x86, 0xf5, 0x12, 0xca, 0xd3, 0x73, 0xc6, 0x19, 0xe4, 0xd5, 0xa8, 0xdb,
+ 0x26, 0x4b, 0x0c, 0x13, 0xc3, 0x39, 0xb2, 0x14, 0x3f, 0xb9, 0x37, 0xbe,
+ 0x20, 0x55, 0x0d, 0xa2, 0xd7, 0x59, 0x9e, 0x55, 0x57, 0x68, 0x5b, 0x4f,
+ 0x30, 0x2d, 0xf4, 0x32, 0xf5, 0xbb, 0xf8, 0x82, 0xd6, 0x20, 0x52, 0x2d,
+ 0x89, 0x4a, 0xea, 0x52, 0x8d, 0xe5, 0x76, 0xbc, 0xd1, 0x82, 0x6c, 0xc2,
+ 0xbf, 0xe4, 0xae, 0x40, 0x76, 0x99, 0x21, 0x06, 0x25, 0x13, 0x7b, 0x56,
+ 0x96, 0x2c, 0x5b, 0xb8, 0x74, 0x09, 0xb7, 0x09, 0x8f, 0x9b, 0x45, 0x90,
+ 0x78, 0xd7, 0xef, 0x13, 0x13, 0xf4, 0x39, 0x20, 0x73, 0x8e, 0x6a, 0x8f,
+ 0xb7, 0x4e, 0x8c, 0xdb, 0xae, 0x22, 0x37, 0x9d, 0xf6, 0x41, 0xc8, 0xd1,
+ 0x1d, 0x8a, 0x1e, 0x84, 0x92, 0x0a, 0x27, 0xe1, 0x67, 0xdf, 0x61, 0xd6,
+ 0xcd, 0x4b, 0xf3, 0xe3, 0x35, 0xc2, 0x03, 0xc6, 0x92, 0xee, 0xe5, 0xd9,
+ 0xca, 0x70, 0xc2, 0x92, 0x06, 0xfd, 0xce, 0x56, 0xcb, 0x20, 0xc3, 0x7a,
+ 0x68, 0xc9, 0x76, 0x23, 0x07, 0xef, 0x67, 0xfc, 0x8f, 0x70, 0xa4, 0x85,
+ 0xa0, 0x1f, 0x8f, 0xdf, 0x1e, 0x60, 0xdf, 0x12, 0x0b, 0x4a, 0xe3, 0x54,
+ 0xcd, 0x29, 0x00, 0x96, 0x9b, 0x6a, 0x41, 0x06, 0x70, 0xb0, 0x55, 0x16,
+ 0x63, 0x4f, 0xda, 0xc0, 0xdc, 0xa8, 0x89, 0xa3, 0x47, 0x26, 0xdc, 0x38,
+ 0xab, 0x31, 0x00, 0x31, 0xbe, 0xef, 0x45, 0x27, 0x60, 0x17, 0xe0, 0x5b,
+ 0x2b, 0x5f, 0xac, 0x04, 0xd0, 0xb2, 0x56, 0xf6, 0x57, 0x9c, 0x36, 0xd8,
+ 0xc6, 0x49, 0x16, 0xad, 0x7c, 0x8a, 0x85, 0xe1, 0x88, 0x7e, 0xcf, 0xdf,
+ 0x94, 0x0d, 0xe5, 0x1a, 0x67, 0xc9, 0x51, 0x9e, 0x03, 0x54, 0x24, 0xcd,
+ 0xb6, 0x9a, 0xd5, 0x48, 0x8c, 0x4c, 0x9d, 0x12, 0x76, 0x76, 0x63, 0xed,
+ 0x6a, 0xc1, 0xad, 0x78, 0x68, 0x5a, 0xf9, 0xbd, 0x78, 0x9a, 0x33, 0xaa,
+ 0xa6, 0xb0, 0xbe, 0x4b, 0x9e, 0x11, 0x4f, 0x85, 0xfa, 0x8b, 0x25, 0xc3,
+ 0x21, 0x61, 0x06, 0xb2, 0x9b, 0x09, 0x7e, 0x7d, 0x79, 0x19, 0x2c, 0x99,
+ 0x02, 0x12, 0x20, 0x1b, 0xe1, 0x9a, 0x2f, 0x40, 0x49, 0x23, 0x23, 0x03,
+ 0x95, 0xfb, 0xf9, 0x05, 0xec, 0x0f, 0x71, 0x94, 0xc3, 0x07, 0x9d, 0x11,
+ 0xf5, 0x43, 0x5d, 0x4a, 0x6c, 0x05, 0x3e, 0xec, 0x90, 0x66, 0xdf, 0xc5,
+ 0x5a, 0x99, 0x13, 0xc4, 0x23, 0xde, 0x12, 0xe6, 0x42, 0xef, 0x2f, 0xfd,
+ 0xd4, 0x44, 0xf0, 0x2e, 0x12, 0x60, 0xb7, 0x7b, 0xc9, 0x32, 0x1f, 0x23,
+ 0x3a, 0x86, 0xb8, 0x7d, 0x3c, 0xb9, 0x3e, 0xa6, 0x98, 0x9b, 0x00, 0x13,
+ 0xc4, 0xb0, 0x61, 0xbc, 0x39, 0xb9, 0x68, 0x55, 0x82, 0x64, 0x40, 0x2e,
+ 0x14, 0x81, 0x28, 0x18, 0xa9, 0x8f, 0x94, 0x40, 0x0a, 0xda, 0x01, 0x35,
+ 0x81, 0x2c, 0x10, 0x61, 0x21, 0x66, 0x8f, 0xcd, 0x68, 0x25, 0xd0, 0x05,
+ 0x92, 0x6b, 0xd6, 0xb1, 0xed, 0x22, 0x90, 0xb5, 0x43, 0x08, 0xe4, 0x8b,
+ 0x80, 0x73, 0xbb, 0x4e, 0x14, 0x67, 0x64, 0x88, 0x36, 0xb4, 0xe5, 0xd6,
+ 0xf6, 0x8b, 0x17, 0x41, 0x8f, 0x38, 0x43, 0xaf, 0x02, 0x63, 0x23, 0x99,
+ 0x3c, 0x2c, 0x5f, 0x36, 0x75, 0x88, 0x6b, 0x2b, 0x75, 0x05, 0x63, 0xbb,
+ 0x93, 0x04, 0xbf, 0xea, 0x47, 0x5a, 0x28, 0x67, 0x76, 0x82, 0x17, 0x94,
+ 0x08, 0x5a, 0x32, 0xd3, 0x50, 0xb0, 0x01, 0x15, 0xe6, 0xc8, 0xca, 0x54,
+ 0xaa, 0x08, 0x05, 0x45, 0x56, 0xfa, 0x69, 0x09, 0xc0, 0x00, 0xa3, 0x12,
+ 0x83, 0x12, 0x45, 0xf0, 0x05, 0x5c, 0x47, 0x42, 0xcc, 0x3a, 0x07, 0xc3,
+ 0x6d, 0x25, 0xd2, 0xb4, 0xdd, 0x41, 0x6a, 0x20, 0xd1, 0xf1, 0x78, 0x65,
+ 0x77, 0xad, 0x3e, 0x08, 0x8c, 0xe0, 0x9a, 0x23, 0xbe, 0x51, 0x76, 0x89,
+ 0x85, 0x8a, 0xed, 0x13, 0x4b, 0x48, 0x89, 0x97, 0x69, 0xed, 0x63, 0xf2,
+ 0x38, 0x65, 0xdd, 0x0b, 0x06, 0x0f, 0x1c, 0x31, 0x41, 0x14, 0xda, 0xe7,
+ 0xcc, 0x85, 0x51, 0x76, 0xa1, 0xa7, 0x5e, 0x3b, 0xd9, 0x7f, 0xc1, 0xe6,
+ 0xc6, 0xbe, 0x69, 0x59, 0x96, 0xab, 0xd8, 0xfb, 0x22, 0xd8, 0x9f, 0x07,
+ 0xfd, 0xc4, 0x1c, 0x4f, 0xa0, 0x16, 0x31, 0x75, 0x0d, 0x36, 0xba, 0xbd,
+ 0x60, 0x08, 0x21, 0xc0, 0xf4, 0xd6, 0x10, 0xfa, 0x92, 0xb1, 0x3d, 0x0e,
+ 0x35, 0x06, 0xdc, 0x37, 0xf1, 0x1d, 0xac, 0x97, 0x14, 0x84, 0x06, 0x9c,
+ 0x4f, 0x88, 0x12, 0x95, 0xd8, 0x0a, 0x28, 0x76, 0xe0, 0x69, 0xcf, 0x7f,
+ 0x82, 0xef, 0x3a, 0x74, 0xf2, 0xf7, 0xde, 0x26, 0x71, 0xdb, 0x66, 0x10,
+ 0x4c, 0x63, 0xdb, 0x53, 0xc2, 0x4d, 0x55, 0x4b, 0x4c, 0x88, 0x28, 0x04,
+ 0x4d, 0x1d, 0xe3, 0x3a, 0x2d, 0xfc, 0x22, 0x71, 0xd6, 0x65, 0x91, 0xf2,
+ 0x2c, 0x09, 0x09, 0x9f, 0x49, 0xbb, 0x4f, 0x61, 0xee, 0xba, 0x9c, 0x21,
+ 0x5a, 0x2d, 0xbb, 0xf7, 0xe8, 0x4b, 0xbe, 0x5a, 0x8f, 0x37, 0x45, 0xb7,
+ 0xb9, 0xe2, 0x0c, 0xad, 0x20, 0xda, 0x33, 0x22, 0xb1, 0x34, 0xb3, 0x62,
+ 0x5f, 0x91, 0x34, 0x58, 0x63, 0x6d, 0x3c, 0xd0, 0x01, 0x93, 0x7c, 0x67,
+ 0xe8, 0x16, 0xae, 0xb2, 0x9f, 0x59, 0x53, 0x95, 0x72, 0x68, 0x0d, 0x18,
+ 0x92, 0x2b, 0x16, 0x2e, 0x6e, 0x10, 0x0b, 0xaf, 0x80, 0xa3, 0xb8, 0x5e,
+ 0x80, 0xf8, 0xcd, 0x13, 0xfe, 0x2e, 0xc6, 0x01, 0xdf, 0x71, 0xa8, 0xda,
+ 0x96, 0xe9, 0xe5, 0x0c, 0x6f, 0x4f, 0x22, 0xd3, 0xaa, 0x76, 0x2b, 0xd4,
+ 0x27, 0xa6, 0xd9, 0x54, 0x6b, 0x01, 0xbc, 0x0a, 0x26, 0x78, 0x6b, 0x8d,
+ 0x96, 0x9c, 0x03, 0xb5, 0xea, 0x59, 0xce, 0x39, 0x23, 0xd4, 0xd4, 0x61,
+ 0x36, 0xf8, 0x89, 0xa2, 0xb0, 0x85, 0xac, 0x9c, 0x66, 0x85, 0xc5, 0x50,
+ 0xe2, 0xc3, 0x8b, 0xd2, 0x0b, 0xcf, 0x0b, 0x92, 0x52, 0x11, 0x0c, 0xc7,
+ 0x34, 0x12, 0x2a, 0x46, 0x10, 0x09, 0xc0, 0x20, 0xbc, 0xe8, 0xd3, 0xfd,
+ 0xd4, 0xe9, 0x14, 0x41, 0x0a, 0x15, 0x51, 0x85, 0xa6, 0xd0, 0x1e, 0x8e,
+ 0x3a, 0x79, 0xa9, 0x82, 0x27, 0x15, 0x81, 0xec, 0x1b, 0x23, 0x5d, 0x05,
+ 0x5b, 0x46, 0xe0, 0x52, 0x19, 0xb2, 0x46, 0xc2, 0x1f, 0x49, 0xc5, 0xb8,
+ 0x18, 0xb0, 0x5f, 0xf7, 0x21, 0xac, 0x1a, 0xb6, 0x34, 0x7e, 0x32, 0xae,
+ 0x33, 0x14, 0x7d, 0x73, 0x6f, 0x37, 0x2e, 0x30, 0xc0, 0x74, 0xfd, 0x89,
+ 0x08, 0xb4, 0xa6, 0x19, 0xd6, 0x15, 0x25, 0x76, 0x05, 0x64, 0x27, 0xd2,
+ 0x7e, 0x45, 0x84, 0x66, 0xa8, 0x5b, 0x92, 0x81, 0x8e, 0x2b, 0x31, 0x24,
+ 0x8e, 0x67, 0xc4, 0xf4, 0x68, 0x33, 0x02, 0x84, 0x74, 0xbe, 0x32, 0x01,
+ 0x79, 0xf9, 0xd3, 0xf4, 0xd2, 0x02, 0x90, 0x04, 0x0e, 0x2c, 0x75, 0x1c,
+ 0xf1, 0x40, 0xe7, 0xe4, 0xfa, 0x7d, 0x1d, 0xc9, 0x7c, 0x3e, 0xfb, 0xa2,
+ 0x31, 0x60, 0xe0, 0x0a, 0x5e, 0x17, 0xfc, 0xee, 0xe1, 0x65, 0x36, 0x97,
+ 0x08, 0x4c, 0x05, 0x4a, 0x94, 0x32, 0x25, 0xcf, 0xd5, 0x55, 0x91, 0xca,
+ 0xce, 0xe5, 0xe4, 0x4b, 0xb3, 0x72, 0x43, 0xf3, 0x62, 0x82, 0x05, 0xa2,
+ 0xf3, 0xa7, 0x4c, 0x77, 0xfa, 0x7f, 0x16, 0x57, 0x39, 0xfe, 0x03, 0x87,
+ 0xc7, 0xd1, 0x3f, 0xdb, 0x0c, 0xa6, 0xf8, 0xae, 0x2f, 0xde, 0x30, 0x9a,
+ 0x2a, 0x5e, 0x42, 0x52, 0x6a, 0xea, 0xc8, 0xb4, 0x86, 0xeb, 0xb0, 0x47,
+ 0x08, 0x48, 0x81, 0x88, 0x49, 0x42, 0xe2, 0x95, 0x5a, 0xd1, 0x38, 0x2f,
+ 0x73, 0x09, 0x5e, 0x50, 0x18, 0x66, 0xe6, 0x66, 0x20, 0x8c, 0xf6, 0x40,
+ 0x22, 0xd0, 0xfc, 0x85, 0x77, 0x30, 0xa0, 0x76, 0xff, 0xd9, 0xfe, 0xd5,
+ 0xec, 0x32, 0xd5, 0x76, 0xd7, 0x9d, 0x47, 0xad, 0x5a, 0xbd, 0x9c, 0x6c,
+ 0x9c, 0xd7, 0x4e, 0x6d, 0x0c, 0x81, 0x3b, 0x34, 0x14, 0x87, 0xc8, 0x82,
+ 0x65, 0x23, 0x52, 0x75, 0x48, 0x90, 0xae, 0xb0, 0x66, 0xdb, 0x65, 0xa2,
+ 0x09, 0x48, 0xad, 0x45, 0x8b, 0x5c, 0xb0, 0x82, 0xdb, 0x74, 0xf0, 0xd9,
+ 0x17, 0xe8, 0x19, 0xbf, 0xa3, 0x46, 0xe6, 0xac, 0x22, 0x23, 0xe1, 0xd6,
+ 0xa9, 0xaf, 0x79, 0xb4, 0x40, 0xe7, 0x2b, 0xca, 0xf9, 0xc3, 0x3a, 0xc0,
+ 0x35, 0xce, 0x90, 0x17, 0x45, 0xb1, 0x70, 0x44, 0xa4, 0x0a, 0x67, 0xc8,
+ 0x11, 0x5d, 0x9c, 0x8a, 0x46, 0xae, 0xf3, 0xb3, 0x48, 0x64, 0xcc, 0x12,
+ 0xf6, 0x82, 0xe1, 0xb3, 0x10, 0xc2, 0x85, 0xa4, 0xec, 0x04, 0xf6, 0x57,
+ 0xe8, 0x4d, 0xf3, 0x59, 0x57, 0x71, 0x5d, 0xb2, 0x6a, 0x01, 0x69, 0xf8,
+ 0x18, 0x1a, 0xe4, 0xfe, 0x4f, 0xcd, 0xeb, 0xf8, 0x07, 0x9c, 0x62, 0x6a,
+ 0x94, 0xbb, 0x60, 0x35, 0xc7, 0x17, 0xe6, 0x8b, 0xeb, 0x94, 0x5b, 0xa4,
+ 0x29, 0x09, 0xd1, 0x4a, 0x97, 0x95, 0xf6, 0x4f, 0x57, 0xc8, 0xc7, 0xa3,
+ 0x89, 0x90, 0x7f, 0x9f, 0x15, 0x22, 0xda, 0xa2, 0x51, 0xe1, 0xa9, 0xb3,
+ 0x58, 0x47, 0x48, 0x4f, 0x54, 0x34, 0xfb, 0x39, 0x13, 0x77, 0x66, 0xfe,
+ 0x43, 0x87, 0xe6, 0xde, 0xc5, 0x7f, 0xfd, 0xd0, 0xb1, 0xd3, 0xff, 0x81,
+ 0x76, 0xe7, 0xd3, 0x2c, 0xff, 0x14, 0x97, 0xf0, 0x43, 0x87, 0x17, 0xe1,
+ 0xdb, 0xea, 0x4b, 0x6d, 0x3a, 0x7e, 0x17, 0xf8, 0x90, 0xbf, 0xec, 0x7c,
+ 0xd8, 0xf9, 0x6e, 0xe3, 0xb3, 0x9d, 0x95, 0x28, 0x5a, 0xe6, 0xbb, 0x94,
+ 0xb7, 0xa3, 0xbd, 0xf8, 0x2e, 0x8c, 0x0a, 0x65, 0x89, 0x0b, 0xe2, 0xdb,
+ 0xd2, 0x0f, 0xc8, 0x67, 0xc9, 0x85, 0x16, 0xe0, 0xbd, 0xe7, 0x63, 0xb3,
+ 0x0f, 0xe0, 0x56, 0xa0, 0xfd, 0x5d, 0x8d, 0x93, 0xea, 0xca, 0xed, 0xdb,
+ 0x6e, 0x00, 0x69, 0x74, 0x83, 0x52, 0xea, 0x3a, 0x34, 0xf2, 0xef, 0x27,
+ 0xf3, 0xba, 0x77, 0x1f, 0xfd, 0x15, 0xbe, 0x40, 0x06, 0x2e, 0x8d, 0x21,
+ 0xe7, 0x9d, 0x50, 0xa8, 0xa5, 0xc0, 0x8c, 0x8a, 0xb2, 0x73, 0xce, 0xd8,
+ 0xe2, 0xeb, 0xf0, 0x82, 0xe1, 0x5a, 0x82, 0xe9, 0x2b, 0x55, 0x3a, 0xc9,
+ 0x40, 0xd1, 0xa7, 0xd0, 0xc7, 0x98, 0xad, 0xe0, 0x75, 0xbc, 0x25, 0xa8,
+ 0x2c, 0xb6, 0x9a, 0x26, 0xe8, 0xf3, 0x45, 0xaf, 0x82, 0x18, 0xc8, 0xbc,
+ 0x4c, 0x26, 0xcc, 0x02, 0x56, 0x47, 0xc5, 0x7c, 0x5c, 0x94, 0xd5, 0x67,
+ 0x1d, 0x50, 0x92, 0x3e, 0x8d, 0xd0, 0xdf, 0x9f, 0xe6, 0x9f, 0x22, 0xcb,
+ 0xcd, 0x60, 0x03, 0xed, 0xf9, 0xbd, 0x8b, 0x27, 0xf7, 0x30, 0xef, 0x95,
+ 0xa5, 0x76, 0xce, 0x39, 0xd4, 0x23, 0x4c, 0x80, 0xe5, 0x04, 0xa1, 0x76,
+ 0x26, 0x26, 0x1f, 0x68, 0xe7, 0xb0, 0xca, 0xef, 0x3f, 0xeb, 0x7a, 0xf0,
+ 0x4a, 0xd7, 0x5e, 0xd0, 0xc4, 0x95, 0xc8, 0x64, 0xba, 0x7d, 0x76, 0xfa,
+ 0xf5, 0xa7, 0x3a, 0xc0, 0x0f, 0x9d, 0xef, 0x62, 0xfe, 0x29, 0x01, 0xc3,
+ 0xed, 0x45, 0xa7, 0x5f, 0x2b, 0xcf, 0x3f, 0x9e, 0xc7, 0x17, 0x7d, 0xe0,
+ 0x0b, 0xfe, 0x0b, 0x71, 0xfb, 0xa2, 0x61, 0xd1, 0x7a, 0xd0, 0x77, 0xa2,
+ 0xeb, 0xf4, 0x9e, 0x50, 0x3d, 0xa8, 0x9a, 0x62, 0x3a, 0x45, 0xbc, 0x13,
+ 0x05, 0x42, 0xab, 0x19, 0x08, 0x8d, 0x6c, 0x8a, 0x64, 0x50, 0x30, 0xd4,
+ 0x40, 0xed, 0xf7, 0x79, 0xa5, 0xd6, 0x92, 0xb4, 0xb7, 0x0c, 0x47, 0x89,
+ 0x99, 0xcf, 0x3d, 0x89, 0x7e, 0x37, 0x93, 0x56, 0x93, 0x51, 0xd3, 0xfa,
+ 0x39, 0x0a, 0xf4, 0x2c, 0xb7, 0x08, 0xe5, 0xfc, 0x37, 0xd2, 0xd3, 0x08,
+ 0x88, 0x1d, 0x4d, 0xae, 0x95, 0x3f, 0xad, 0x48, 0xba, 0xe9, 0x64, 0x42,
+ 0x57, 0x27, 0x45, 0xd4, 0x18, 0x47, 0xff, 0xd3, 0x50, 0x90, 0x51, 0xf2,
+ 0x2a, 0xa4, 0x46, 0xfd, 0xa2, 0x18, 0x8f, 0x24, 0xde, 0x09, 0x5c, 0xcf,
+ 0x1b, 0xac, 0xd6, 0x13, 0xaa, 0x20, 0x48, 0x0a, 0x89, 0x81, 0xca, 0x67,
+ 0x03, 0x8a, 0x93, 0xe4, 0x41, 0xb0, 0x03, 0xd1, 0x66, 0x6e, 0x21, 0x78,
+ 0x1b, 0x32, 0xfe, 0xa7, 0x98, 0xab, 0x35, 0x48, 0xc9, 0xc3, 0x65, 0xc0,
+ 0xba, 0x62, 0xf1, 0x9f, 0x07, 0xdc, 0x44, 0x91, 0x39, 0x37, 0x7a, 0x70,
+ 0x18, 0x72, 0x43, 0x11, 0xbb, 0xb0, 0x86, 0xe6, 0x0d, 0xb9, 0xa0, 0x39,
+ 0x5c, 0xa3, 0x19, 0xcd, 0x78, 0xe9, 0x84, 0x17, 0x6b, 0xf2, 0xce, 0x90,
+ 0x42, 0xfe, 0x69, 0x8b, 0xfe, 0x24, 0xbe, 0x76, 0x27, 0x3d, 0x8d, 0x56,
+ 0x2f, 0x9b, 0xd5, 0xf3, 0x5e, 0xf8, 0x4e, 0x12, 0x63, 0xe3, 0xcd, 0x3d,
+ 0x63, 0xd8, 0x27, 0xf2, 0x78, 0x78, 0x78, 0x17, 0xe0, 0x58, 0x66, 0x95,
+ 0x55, 0x42, 0xfe, 0x05, 0xe3, 0x6f, 0x99, 0xf1, 0x7d, 0xe8, 0xa4, 0x44,
+ 0x1a, 0xc6, 0x86, 0x3f, 0x7b, 0x6e, 0x0b, 0xa4, 0xd4, 0xef, 0x6b, 0x3c,
+ 0x1b, 0x0d, 0x9f, 0x82, 0xf6, 0x28, 0x65, 0xbc, 0x61, 0x36, 0x95, 0xfd,
+ 0x9e, 0xec, 0x35, 0xc1, 0x97, 0x92, 0x59, 0x48, 0xeb, 0xf0, 0xe0, 0xca,
+ 0x62, 0xd1, 0xc9, 0x85, 0xb1, 0x8a, 0x09, 0xf6, 0xe4, 0x1b, 0xed, 0x71,
+ 0x82, 0x03, 0x21, 0xa4, 0x12, 0x40, 0x6a, 0xe6, 0x96, 0xca, 0x1b, 0x67,
+ 0x60, 0xb8, 0xfd, 0x90, 0x69, 0x7b, 0xe9, 0x7d, 0x0a, 0x44, 0x31, 0xe3,
+ 0x9c, 0x93, 0xcd, 0x22, 0x27, 0x61, 0x75, 0x45, 0xbc, 0x2c, 0xf8, 0xa1,
+ 0x84, 0x43, 0x39, 0x82, 0xba, 0x97, 0x10, 0x1e, 0xac, 0xf8, 0x76, 0xe2,
+ 0x80, 0x36, 0xb2, 0x47, 0xa2, 0xdd, 0x9c, 0x09, 0x06, 0xc1, 0x26, 0x0c,
+ 0x6c, 0x35, 0xa3, 0x19, 0x99, 0xbf, 0x01, 0x7c, 0xed, 0x1b, 0xcd, 0x0e,
+ 0x89, 0x65, 0x30, 0xb6, 0x55, 0x6d, 0x25, 0x57, 0x12, 0xad, 0x7c, 0xb6,
+ 0xb6, 0x32, 0xbf, 0x2f, 0x92, 0xb5, 0x10, 0xa4, 0xb7, 0xa8, 0x32, 0x8d,
+ 0xc9, 0x6f, 0xa8, 0x08, 0x61, 0x14, 0x46, 0x27, 0x57, 0xd3, 0x04, 0xb3,
+ 0xb6, 0xd2, 0x98, 0x36, 0x34, 0xd8, 0xe0, 0x86, 0x71, 0xfc, 0x18, 0xfd,
+ 0x33, 0xcb, 0xe9, 0x74, 0x32, 0x8e, 0x31, 0xb3, 0xb8, 0x1b, 0xeb, 0xe4,
+ 0x66, 0x3c, 0xd5, 0x9e, 0xa3, 0xa5, 0x07, 0x8e, 0x27, 0x46, 0xbb, 0xa8,
+ 0x07, 0xb9, 0xf8, 0x47, 0x1c, 0x0f, 0xc7, 0x22, 0x95, 0x7c, 0xe5, 0xb3,
+ 0x55, 0xbe, 0xb0, 0xac, 0x7f, 0xcd, 0xf9, 0xf6, 0x4a, 0xf4, 0x43, 0x18,
+ 0x1b, 0x2c, 0xe2, 0x77, 0x1d, 0xbb, 0x41, 0xd8, 0xf6, 0xa1, 0x37, 0xa2,
+ 0x7d, 0x0c, 0xce, 0x7c, 0x4e, 0xb1, 0x39, 0x79, 0x65, 0x7f, 0x9d, 0x7e,
+ 0xd4, 0x52, 0xa5, 0xe7, 0x0d, 0x44, 0xa3, 0xc0, 0x56, 0xd1, 0x7f, 0xbf,
+ 0xc0, 0xc7, 0xd5, 0x92, 0x58, 0x89, 0x7a, 0x3d, 0x10, 0x42, 0xd5, 0xa4,
+ 0x8d, 0x1b, 0xe1, 0x01, 0x63, 0x10, 0xae, 0xa1, 0x54, 0x96, 0x18, 0x34,
+ 0x68, 0xf2, 0xf4, 0xa8, 0xd5, 0xcd, 0x2e, 0x49, 0xfe, 0x55, 0xf9, 0x59,
+ 0x2f, 0x3a, 0x30, 0x99, 0xcb, 0x69, 0xa0, 0x73, 0xea, 0xc8, 0x54, 0xb0,
+ 0x88, 0x43, 0x0f, 0x37, 0xe4, 0xc5, 0x20, 0x93, 0x7e, 0x16, 0x0c, 0x5f,
+ 0x48, 0x99, 0x91, 0xd8, 0x9f, 0x8e, 0xc1, 0x3b, 0xe1, 0x72, 0x0f, 0xb7,
+ 0x3b, 0xa0, 0xdc, 0x5d, 0x8c, 0xa3, 0x31, 0x6a, 0xb2, 0xb1, 0x6c, 0x64,
+ 0x6a, 0xf1, 0x91, 0x80, 0xce, 0x47, 0x26, 0xbd, 0xf2, 0xb9, 0xf9, 0x12,
+ 0x06, 0x61, 0xbc, 0x22, 0x4e, 0x6a, 0x5a, 0x14, 0xbd, 0x88, 0xf1, 0x29,
+ 0xeb, 0xe7, 0x57, 0xbe, 0x6f, 0xe6, 0x86, 0x75, 0x45, 0x29, 0x8c, 0x29,
+ 0x67, 0x3c, 0x80, 0xae, 0x41, 0x37, 0xc1, 0x20, 0xa9, 0xd2, 0x67, 0x3b,
+ 0xaa, 0x5e, 0x32, 0x95, 0x2a, 0x45, 0xac, 0x6c, 0x38, 0x65, 0xf9, 0x1e,
+ 0x72, 0x16, 0xd4, 0x3e, 0x08, 0x04, 0x86, 0x86, 0xca, 0x19, 0x18, 0x5f,
+ 0x35, 0x57, 0xfa, 0xe1, 0x6d, 0x0a, 0x8a, 0xe4, 0x65, 0x4d, 0x60, 0x23,
+ 0xcf, 0x9f, 0x39, 0x93, 0x7e, 0xc0, 0x7d, 0xd1, 0x92, 0xa4, 0xb2, 0xc2,
+ 0xf6, 0x8a, 0x22, 0x66, 0x58, 0x64, 0x3f, 0xef, 0x5c, 0xa2, 0xef, 0x83,
+ 0x41, 0xf5, 0x65, 0x8d, 0xc6, 0xdb, 0xf8, 0xd0, 0x31, 0x72, 0x0f, 0xc1,
+ 0xa7, 0xca, 0x38, 0xed, 0x4f, 0x2f, 0x64, 0x6a, 0xc7, 0x74, 0xd2, 0xf7,
+ 0x79, 0x12, 0xcc, 0xd8, 0x0f, 0xf3, 0x35, 0x06, 0x15, 0x2e, 0x66, 0x25,
+ 0xdd, 0x3e, 0xf2, 0x18, 0x2b, 0x09, 0x0a, 0x3a, 0x22, 0x7a, 0xfa, 0xdb,
+ 0x83, 0x77, 0x1f, 0x0e, 0x4e, 0x7e, 0xad, 0xbe, 0x9f, 0x8f, 0x88, 0x8f,
+ 0x34, 0x41, 0x2f, 0xe5, 0x47, 0x6a, 0x2e, 0x26, 0x23, 0xbc, 0x1d, 0x1e,
+ 0x15, 0x35, 0x39, 0x6f, 0x14, 0x0e, 0x59, 0x94, 0x35, 0x0f, 0x2d, 0xfa,
+ 0xb8, 0xab, 0xe8, 0x93, 0xf4, 0xcf, 0x73, 0x02, 0x75, 0xf3, 0xc2, 0xab,
+ 0x04, 0x45, 0xd9, 0xae, 0xd9, 0x40, 0xe8, 0x1a, 0x64, 0x61, 0xcc, 0x73,
+ 0x0b, 0xc3, 0x4a, 0x73, 0xd1, 0x94, 0x64, 0x2a, 0x38, 0xd5, 0x46, 0x49,
+ 0x75, 0xcd, 0x2e, 0x92, 0x8e, 0xbe, 0xcf, 0xe1, 0x20, 0xae, 0xe1, 0x35,
+ 0x38, 0x7a, 0xa1, 0x03, 0x65, 0x40, 0xeb, 0x4c, 0x7e, 0xaa, 0xa2, 0x9c,
+ 0xc8, 0xdd, 0xd9, 0x70, 0xfc, 0x15, 0x17, 0x17, 0x36, 0x66, 0xd2, 0x8e,
+ 0x58, 0x1e, 0x1e, 0xce, 0x47, 0x0f, 0xfb, 0x9d, 0x4b, 0x95, 0x5c, 0x52,
+ 0x76, 0x26, 0x65, 0xaf, 0x2c, 0x06, 0x45, 0xdd, 0x59, 0x0c, 0x69, 0x45,
+ 0xef, 0xd8, 0x0b, 0x28, 0xae, 0x0b, 0x06, 0x25, 0xdc, 0x97, 0x35, 0x85,
+ 0x77, 0x03, 0x16, 0xe6, 0x42, 0x32, 0xaa, 0x16, 0x8e, 0x2b, 0xf9, 0xd0,
+ 0x3f, 0x7a, 0x4f, 0x44, 0x3e, 0x3b, 0xe8, 0xf7, 0xcd, 0x75, 0x5d, 0x69,
+ 0x9a, 0xa3, 0x67, 0x2f, 0x92, 0xa6, 0xcb, 0x11, 0x2b, 0xa1, 0xa2, 0xcd,
+ 0x90, 0x95, 0x22, 0x23, 0x4a, 0x06, 0x00, 0xb3, 0xf4, 0x7c, 0x36, 0x81,
+ 0x33, 0x0d, 0x4a, 0xf9, 0x68, 0xa5, 0x92, 0xf8, 0x76, 0x9b, 0x61, 0xa9,
+ 0x9f, 0x17, 0x2b, 0x7b, 0xc4, 0x23, 0x54, 0x2c, 0xf9, 0x1a, 0x2b, 0x4b,
+ 0xa5, 0x1e, 0x14, 0x2f, 0x22, 0xce, 0x08, 0x70, 0x6b, 0x24, 0xbb, 0x61,
+ 0xb7, 0x55, 0xa7, 0x7f, 0x7c, 0x7e, 0x04, 0x7b, 0xfc, 0xe1, 0xfc, 0x4d,
+ 0x47, 0x7c, 0xa6, 0x6d, 0xac, 0x53, 0x0a, 0x33, 0x80, 0x46, 0x9e, 0xde,
+ 0x18, 0x9c, 0xaf, 0x92, 0x3d, 0x40, 0x7e, 0x6a, 0x0a, 0x09, 0x67, 0xfb,
+ 0xd1, 0x27, 0x6d, 0x6f, 0x60, 0xab, 0x3a, 0x1f, 0x76, 0xb7, 0xcb, 0xc0,
+ 0x36, 0xb7, 0x76, 0x79, 0x7e, 0x0f, 0x5b, 0x6a, 0xc8, 0xd8, 0xf7, 0x8e,
+ 0x99, 0x34, 0x2b, 0xc5, 0xd4, 0xd3, 0x75, 0x4e, 0x28, 0x16, 0x38, 0x5f,
+ 0x8e, 0x10, 0x91, 0x57, 0x23, 0xd4, 0xfc, 0xc2, 0xb6, 0x02, 0x31, 0xc9,
+ 0x0a, 0xd4, 0xb9, 0xd5, 0x40, 0x67, 0x8b, 0x83, 0x9b, 0x03, 0xcb, 0xb0,
+ 0xe3, 0x49, 0x39, 0x32, 0xa0, 0x58, 0xbe, 0x0a, 0xac, 0x79, 0xd2, 0x58,
+ 0x83, 0x42, 0xe9, 0x59, 0x8f, 0xca, 0xca, 0xb5, 0xc9, 0xd0, 0xe1, 0x5a,
+ 0x47, 0x8a, 0x1b, 0xa0, 0x07, 0xc2, 0x36, 0x6b, 0x7d, 0xca, 0x7e, 0x34,
+ 0x7a, 0xae, 0xce, 0xed, 0x12, 0xc9, 0xfd, 0x4f, 0xc9, 0x0f, 0x44, 0x6d,
+ 0x58, 0x17, 0xe5, 0xa8, 0x87, 0xfa, 0xbf, 0xf2, 0xb7, 0x24, 0x41, 0x69,
+ 0x9f, 0xff, 0x1b, 0x3e, 0x98, 0xa4, 0xbe, 0x94, 0xc5, 0x98, 0xdd, 0xb4,
+ 0xf2, 0x06, 0xe7, 0xf2, 0x33, 0xa8, 0x82, 0x14, 0x54, 0x97, 0x94, 0x16,
+ 0x2e, 0xce, 0x49, 0xac, 0x05, 0x68, 0xc7, 0xaa, 0x60, 0xb4, 0xd5, 0xfe,
+ 0x9a, 0xf1, 0x66, 0x9f, 0x53, 0xb8, 0x96, 0x46, 0x0b, 0x80, 0x7b, 0x38,
+ 0x1d, 0x58, 0x44, 0x55, 0x0f, 0xe1, 0xd9, 0x39, 0xbc, 0xeb, 0x5b, 0x9f,
+ 0x74, 0xe9, 0x0d, 0x6f, 0x47, 0x73, 0x7a, 0x5a, 0x90, 0x0b, 0x8f, 0x18,
+ 0x8b, 0xec, 0x69, 0xae, 0x8e, 0x3a, 0xfc, 0xf6, 0x55, 0x64, 0x19, 0x53,
+ 0xb3, 0x89, 0x99, 0x31, 0x45, 0xb9, 0x9f, 0xd7, 0x35, 0x22, 0xb5, 0x29,
+ 0xf1, 0x3d, 0x0a, 0x58, 0x8f, 0xd2, 0x74, 0x6a, 0xda, 0x2a, 0x67, 0x29,
+ 0x37, 0x0e, 0x97, 0x08, 0xf5, 0x84, 0x3a, 0x69, 0x04, 0xc0, 0x27, 0x4c,
+ 0xd4, 0x14, 0x33, 0x63, 0x6c, 0xee, 0xe4, 0x55, 0x71, 0x4b, 0xd1, 0xf1,
+ 0xcd, 0xe7, 0xdb, 0x2f, 0x40, 0xc5, 0xb9, 0xa7, 0x6e, 0xc6, 0x96, 0x5a,
+ 0xd4, 0x17, 0x2d, 0x94, 0xf6, 0x67, 0xc3, 0x84, 0x6e, 0xd5, 0xba, 0xa0,
+ 0x5e, 0x46, 0x15, 0x5a, 0x63, 0xe4, 0xe7, 0x13, 0xf8, 0x38, 0x1f, 0x17,
+ 0x19, 0xe8, 0x27, 0xb4, 0x92, 0x33, 0x48, 0x24, 0xe2, 0xd4, 0xc3, 0x9e,
+ 0x73, 0x48, 0x40, 0x41, 0x8e, 0xfa, 0xc7, 0xff, 0x75, 0x04, 0x62, 0xef,
+ 0xfd, 0xd1, 0xf9, 0x7b, 0xf8, 0x4f, 0xff, 0xfc, 0xf4, 0xfd, 0x9c, 0xe6,
+ 0x2d, 0x35, 0xa3, 0xa9, 0x22, 0xbd, 0x34, 0x51, 0x89, 0x28, 0xdc, 0xec,
+ 0x72, 0x40, 0xa5, 0x30, 0x2c, 0x1a, 0xab, 0xf4, 0x61, 0x5a, 0x9d, 0x3b,
+ 0x69, 0x00, 0x17, 0x70, 0xf7, 0x2d, 0x5c, 0x18, 0x6f, 0xf7, 0x62, 0xe6,
+ 0xa0, 0x05, 0x23, 0x1f, 0xe2, 0x8a, 0xcd, 0x65, 0x44, 0xb3, 0x05, 0xdb,
+ 0x17, 0x23, 0x2b, 0xb6, 0x7b, 0xb6, 0x56, 0xa5, 0xcd, 0x69, 0x78, 0xc2,
+ 0xb5, 0x13, 0x95, 0xc9, 0xe2, 0xd7, 0x60, 0x78, 0x47, 0xf1, 0x16, 0x3b,
+ 0xd1, 0x2a, 0xf9, 0xe7, 0x45, 0xbd, 0x7b, 0x80, 0x75, 0x41, 0xa5, 0x5c,
+ 0xb3, 0x0b, 0xae, 0x8a, 0x49, 0xca, 0x21, 0x14, 0x72, 0xa7, 0x19, 0x01,
+ 0xc8, 0xf7, 0x1f, 0xb7, 0xae, 0x8a, 0x42, 0xb0, 0xa5, 0x1a, 0x49, 0xa1,
+ 0x5d, 0x5e, 0x69, 0x24, 0xce, 0x9a, 0x95, 0x4e, 0x53, 0x30, 0xf8, 0x6b,
+ 0xea, 0x65, 0xb0, 0xa2, 0xb3, 0x5a, 0x79, 0x44, 0xbf, 0x13, 0x47, 0xba,
+ 0xe8, 0x6b, 0x01, 0x29, 0x06, 0x04, 0xdc, 0xc4, 0x3f, 0xb6, 0x58, 0x86,
+ 0xcd, 0x1f, 0x83, 0x19, 0xf1, 0x17, 0x0c, 0x60, 0x36, 0xfc, 0xe1, 0x41,
+ 0x9a, 0x22, 0x12, 0xe1, 0x3f, 0xc3, 0x72, 0x91, 0x0a, 0x1c, 0x1b, 0xb0,
+ 0xa3, 0x9a, 0x95, 0x4c, 0xaa, 0x9e, 0xad, 0x67, 0xee, 0x45, 0x67, 0xf2,
+ 0x54, 0x30, 0xe0, 0x4a, 0x18, 0x3f, 0x58, 0xa1, 0x6a, 0x8e, 0xa7, 0x70,
+ 0x6d, 0x57, 0x60, 0x3b, 0x5a, 0x77, 0x53, 0x43, 0xb3, 0xf7, 0x6f, 0x23,
+ 0xd5, 0xa9, 0x31, 0x26, 0x58, 0xa6, 0x30, 0x0e, 0x42, 0x92, 0x34, 0x20,
+ 0x1d, 0xb5, 0x1b, 0xc6, 0xef, 0x01, 0x00, 0x1d, 0x7d, 0xc8, 0x05, 0xa3,
+ 0x38, 0x07, 0x2b, 0x93, 0xf2, 0x62, 0x46, 0x86, 0x68, 0x08, 0x4f, 0x8e,
+ 0x29, 0x87, 0x7c, 0xb7, 0x8f, 0x0a, 0x36, 0xed, 0xa8, 0x95, 0x9e, 0xdf,
+ 0xe7, 0x83, 0xa2, 0x09, 0x94, 0x69, 0xa2, 0x17, 0xb2, 0x8c, 0x67, 0x2d,
+ 0xd4, 0x61, 0xdd, 0x5e, 0x29, 0x15, 0x82, 0x7a, 0x0b, 0x3d, 0x73, 0x37,
+ 0x4d, 0x52, 0x86, 0x28, 0xdb, 0xdd, 0x88, 0xb3, 0x9a, 0x11, 0x39, 0x9b,
+ 0xc0, 0xaa, 0xbc, 0xd6, 0x60, 0x3d, 0x52, 0x2e, 0xb0, 0xa7, 0xb3, 0x7c,
+ 0x8c, 0xa5, 0x48, 0x2d, 0x18, 0x4c, 0xd1, 0xd2, 0x9f, 0xa2, 0x0d, 0x20,
+ 0xfb, 0x2d, 0x52, 0xb7, 0x03, 0xb0, 0x51, 0x0d, 0x24, 0x53, 0xe5, 0xe5,
+ 0x26, 0x59, 0xe6, 0xe2, 0x80, 0x11, 0x67, 0xbf, 0xc7, 0xbd, 0xd6, 0xee,
+ 0x35, 0xca, 0x94, 0x59, 0x9e, 0x21, 0xd8, 0x75, 0x51, 0xae, 0x63, 0x0d,
+ 0x3a, 0xf6, 0xf7, 0x88, 0x22, 0xd0, 0x0a, 0x6c, 0x41, 0x44, 0xc0, 0x47,
+ 0x66, 0x54, 0x6d, 0xce, 0x24, 0x87, 0xc1, 0x7b, 0x81, 0x32, 0x6d, 0xe9,
+ 0x5a, 0x97, 0xba, 0xa0, 0xa4, 0xbd, 0x50, 0xe6, 0x3f, 0xd1, 0x99, 0xb1,
+ 0x2c, 0x9b, 0xea, 0xb2, 0x1c, 0x35, 0x8a, 0x49, 0x19, 0x97, 0x05, 0xa9,
+ 0xe4, 0x98, 0x54, 0x3b, 0x0f, 0xf1, 0x42, 0x68, 0xc0, 0xa0, 0xe8, 0x40,
+ 0x15, 0x49, 0x38, 0x6a, 0x1e, 0x69, 0xb2, 0x08, 0x9b, 0x5f, 0xab, 0xd2,
+ 0x7a, 0x36, 0xf5, 0xd5, 0x1b, 0x0b, 0xee, 0x64, 0x46, 0xd4, 0x68, 0xbb,
+ 0x33, 0x45, 0x44, 0x98, 0xb4, 0xe4, 0x77, 0xbb, 0xb4, 0x06, 0x7a, 0xd8,
+ 0x17, 0x17, 0x9e, 0x52, 0x33, 0x0f, 0xc0, 0x50, 0xaf, 0xd6, 0x1e, 0x16,
+ 0x71, 0x77, 0x10, 0x45, 0xb1, 0xc3, 0xa0, 0x93, 0x82, 0xf6, 0x20, 0x3d,
+ 0x03, 0xf4, 0x6d, 0xa0, 0x8b, 0x33, 0x5f, 0xff, 0xb0, 0x69, 0x31, 0x26,
+ 0xc3, 0xc8, 0xd2, 0xee, 0xac, 0x7e, 0xc8, 0xb3, 0x3b, 0x3a, 0xf8, 0x5e,
+ 0xc3, 0x73, 0x3b, 0xd4, 0x82, 0x59, 0x75, 0x14, 0x5b, 0x0a, 0xd1, 0xf7,
+ 0x3a, 0xee, 0xdc, 0xb8, 0x51, 0x23, 0xec, 0xbe, 0x3b, 0x50, 0x3b, 0xde,
+ 0x80, 0x29, 0x62, 0xf3, 0x1b, 0x9e, 0xf1, 0x17, 0x26, 0xf7, 0x3d, 0x7c,
+ 0xae, 0x37, 0x2a, 0x26, 0x70, 0xec, 0xbd, 0x6f, 0x4c, 0xa8, 0xb6, 0xd9,
+ 0x53, 0x95, 0x63, 0x9b, 0xa8, 0xc6, 0xbc, 0x38, 0xcd, 0x90, 0x8d, 0xb4,
+ 0xba, 0xc4, 0xa1, 0x13, 0x09, 0x09, 0x94, 0x89, 0xd2, 0xf7, 0x8b, 0x65,
+ 0x5c, 0x78, 0x46, 0x7a, 0x17, 0x08, 0xce, 0x8d, 0x73, 0x1d, 0xb8, 0x3d,
+ 0x14, 0x9a, 0xf2, 0x76, 0x69, 0x6b, 0x1e, 0x01, 0x82, 0xcd, 0xa1, 0x6b,
+ 0x03, 0x43, 0x13, 0x0a, 0x79, 0x1b, 0xc8, 0x5a, 0x20, 0x85, 0xf9, 0x41,
+ 0x17, 0xf3, 0x9d, 0xb3, 0x2d, 0x9c, 0xdb, 0x89, 0xe0, 0xb9, 0x8d, 0xec,
+ 0x6b, 0x20, 0x21, 0xd1, 0xc8, 0x9a, 0xe0, 0xd6, 0x46, 0x1c, 0x37, 0x48,
+ 0xe0, 0x2c, 0xdd, 0x75, 0x38, 0x7c, 0xe7, 0x2f, 0x7f, 0xb1, 0x22, 0xb0,
+ 0x91, 0x0e, 0x22, 0x4d, 0x61, 0x3b, 0x7b, 0xdf, 0x53, 0x58, 0xe1, 0xc7,
+ 0xf8, 0x7b, 0xf8, 0xe7, 0x8f, 0x1d, 0x3d, 0xcb, 0x8c, 0x19, 0x6f, 0x00,
+ 0x2a, 0x64, 0x3b, 0xba, 0xee, 0xe5, 0xe7, 0xe7, 0x93, 0x9c, 0x1f, 0x9e,
+ 0x49, 0x5a, 0x7a, 0xc9, 0x89, 0x14, 0xc4, 0xc6, 0x28, 0x80, 0xc8, 0x8c,
+ 0x41, 0xa1, 0x4f, 0xd0, 0x4a, 0xc2, 0x20, 0x09, 0x3d, 0xab, 0xc3, 0xd1,
+ 0x2b, 0x5d, 0x9b, 0x26, 0x73, 0xcb, 0x47, 0x3f, 0x01, 0x7d, 0xfe, 0x12,
+ 0x7d, 0x73, 0x0c, 0xf5, 0xd6, 0x8b, 0x0e, 0xd4, 0x70, 0xe0, 0x1f, 0x10,
+ 0xe4, 0x7c, 0x45, 0x19, 0x39, 0xb7, 0x30, 0x21, 0xe3, 0x9a, 0xa0, 0x2b,
+ 0x0d, 0x55, 0xe4, 0xdc, 0xc6, 0xf4, 0x33, 0x6a, 0xd5, 0x08, 0x44, 0x52,
+ 0x49, 0x5b, 0x66, 0xd5, 0x35, 0x2e, 0x52, 0xea, 0x4f, 0x9d, 0xcc, 0x33,
+ 0x5a, 0xc5, 0x24, 0x31, 0xb4, 0x14, 0xfc, 0x62, 0x83, 0xc5, 0xf1, 0xb0,
+ 0x3e, 0x76, 0x06, 0x5c, 0x4e, 0xb7, 0xc8, 0xfc, 0x6e, 0x6f, 0x67, 0x8c,
+ 0xbd, 0xfa, 0xe0, 0x53, 0x2e, 0x44, 0x9c, 0xf7, 0xf0, 0x27, 0x81, 0x9a,
+ 0x0e, 0xbd, 0xc5, 0x04, 0xc8, 0x29, 0x88, 0x4e, 0x2f, 0x8f, 0x95, 0xe9,
+ 0x23, 0x9a, 0x26, 0x70, 0x9a, 0x5b, 0x74, 0x06, 0x76, 0x86, 0x61, 0x4f,
+ 0x07, 0x7b, 0x3c, 0x62, 0x78, 0x13, 0xba, 0xba, 0xd7, 0xda, 0x91, 0xa4,
+ 0xc3, 0xb4, 0xa4, 0x18, 0x24, 0xb7, 0x0d, 0x30, 0x6d, 0x00, 0xd0, 0xd9,
+ 0x8c, 0x1a, 0xcd, 0xa8, 0x84, 0x69, 0x8c, 0xba, 0x0a, 0x64, 0xc7, 0xa7,
+ 0x13, 0x73, 0x15, 0x54, 0xa7, 0xf6, 0x1c, 0xfd, 0xa2, 0x19, 0xa0, 0xb9,
+ 0x67, 0x8c, 0x81, 0x31, 0x87, 0x86, 0x88, 0x0f, 0x90, 0x0d, 0xf0, 0xbf,
+ 0x70, 0x63, 0xb0, 0x9f, 0x70, 0x54, 0xdc, 0xe6, 0xe8, 0xb5, 0xc4, 0xe2,
+ 0x8b, 0xf6, 0x15, 0x42, 0xd3, 0x9f, 0x84, 0x5a, 0x8a, 0x3d, 0x46, 0x53,
+ 0x28, 0xd3, 0xfa, 0x61, 0xc7, 0x5c, 0x75, 0x9d, 0xf1, 0x76, 0xc4, 0xd9,
+ 0xf4, 0x61, 0x52, 0x23, 0xa3, 0x69, 0x43, 0xb5, 0x86, 0x1c, 0x34, 0xf7,
+ 0x61, 0x35, 0xbb, 0xbc, 0x24, 0x3c, 0x4f, 0x3f, 0x35, 0xb5, 0xae, 0x6c,
+ 0xad, 0x92, 0x34, 0xa7, 0x85, 0x6b, 0x87, 0xd6, 0xd8, 0x80, 0xaa, 0x1f,
+ 0x0a, 0xf8, 0x74, 0x4e, 0x41, 0x0e, 0xd3, 0x38, 0x6b, 0x2e, 0x3c, 0x10,
+ 0x5c, 0x70, 0xc7, 0x22, 0x8c, 0xac, 0xc2, 0x56, 0xa6, 0xb1, 0x4e, 0xb4,
+ 0x2d, 0xb5, 0x33, 0x34, 0x56, 0x63, 0x2f, 0xa6, 0x82, 0xf2, 0x9b, 0x3c,
+ 0x4f, 0xf3, 0x25, 0xb5, 0x8f, 0xd0, 0x46, 0x47, 0x92, 0xbe, 0xfa, 0xbc,
+ 0xf7, 0x7c, 0xa7, 0xb7, 0xd1, 0x76, 0xc6, 0x72, 0x8e, 0x38, 0x27, 0xe4,
+ 0xb0, 0xe2, 0xb4, 0xd0, 0x47, 0x8f, 0xbe, 0x62, 0x83, 0x12, 0x8f, 0xb1,
+ 0x57, 0x6e, 0xac, 0xc1, 0x9d, 0x11, 0x4a, 0x83, 0x12, 0xaf, 0x08, 0x59,
+ 0xb4, 0xe8, 0xb6, 0x9e, 0x70, 0x41, 0x24, 0xed, 0x2d, 0xcf, 0x30, 0x2e,
+ 0x2b, 0x2c, 0xa7, 0x62, 0xfa, 0x6d, 0x11, 0x64, 0xc4, 0x6a, 0x1c, 0x0f,
+ 0x87, 0xc3, 0x98, 0x34, 0xa7, 0x7d, 0x56, 0xe7, 0xd6, 0x45, 0x9d, 0x9a,
+ 0xe3, 0x5c, 0xea, 0xa7, 0xb2, 0xe7, 0x87, 0x87, 0x87, 0xa2, 0xf9, 0x9d,
+ 0x5f, 0xb5, 0x74, 0x30, 0x83, 0xd9, 0x2e, 0x3a, 0x68, 0xa8, 0x42, 0xba,
+ 0xba, 0x9a, 0xd5, 0x78, 0xb4, 0xd8, 0x66, 0xd2, 0xcb, 0xca, 0x40, 0x6a,
+ 0xb4, 0xda, 0x19, 0x15, 0xc0, 0x14, 0x5d, 0x9b, 0x1f, 0xec, 0xb7, 0x23,
+ 0x28, 0xd3, 0x29, 0xb7, 0xf8, 0xa6, 0x17, 0x65, 0x6c, 0x0b, 0x05, 0xe4,
+ 0xfa, 0xb0, 0x5c, 0x28, 0x7d, 0x9d, 0x60, 0x15, 0xca, 0xa9, 0xd7, 0x51,
+ 0xe8, 0xb3, 0x49, 0x26, 0xc9, 0x98, 0x89, 0x7c, 0xab, 0x3d, 0xf6, 0x13,
+ 0x24, 0x40, 0x83, 0xfc, 0x32, 0xad, 0xc6, 0x6f, 0x70, 0x97, 0xab, 0xe5,
+ 0xb6, 0x59, 0xde, 0x9c, 0xb3, 0xd3, 0xc1, 0x3d, 0x45, 0xbb, 0x18, 0x77,
+ 0x73, 0xf5, 0x90, 0x7a, 0x1a, 0x1d, 0xca, 0x59, 0x3f, 0xbc, 0xc2, 0x1c,
+ 0xcd, 0x31, 0xee, 0x39, 0x50, 0xa2, 0x62, 0x49, 0x28, 0x37, 0x7a, 0xbf,
+ 0x7f, 0xb2, 0x7e, 0x7e, 0xd2, 0xf7, 0xaa, 0x59, 0xee, 0x31, 0x26, 0x43,
+ 0xb1, 0x97, 0x66, 0x6c, 0x80, 0x29, 0x4f, 0x1d, 0xfd, 0xc4, 0x49, 0x68,
+ 0x0e, 0x2f, 0x7f, 0x25, 0x88, 0xeb, 0x3a, 0xcb, 0xb5, 0x16, 0xcf, 0x28,
+ 0x51, 0x79, 0x9a, 0x13, 0x58, 0x17, 0xea, 0x52, 0x74, 0x30, 0x29, 0xd9,
+ 0xbd, 0x8a, 0xde, 0x1d, 0x9c, 0x63, 0x75, 0x5d, 0x2d, 0xe9, 0x5a, 0xe8,
+ 0x82, 0xf4, 0x43, 0x4f, 0xb7, 0x06, 0xac, 0x8e, 0x22, 0xb0, 0xc9, 0xd0,
+ 0x36, 0xed, 0x56, 0xab, 0x69, 0x22, 0x55, 0xe5, 0xc2, 0xcf, 0xbf, 0x60,
+ 0x57, 0x83, 0x7b, 0x37, 0x77, 0xeb, 0xe0, 0x25, 0xb9, 0x6f, 0xdb, 0x8c,
+ 0x11, 0xdc, 0x49, 0x26, 0x5e, 0xf8, 0x84, 0xbe, 0x97, 0xbb, 0x50, 0x37,
+ 0xc9, 0x29, 0x5c, 0xc3, 0xa5, 0x8f, 0x8b, 0xcb, 0x0c, 0xdd, 0xe5, 0xb4,
+ 0xd7, 0x6e, 0x00, 0xbe, 0x2d, 0x91, 0x0e, 0x98, 0xb2, 0x8a, 0xea, 0xd8,
+ 0x68, 0xbf, 0xc5, 0xa7, 0x16, 0x2f, 0x5a, 0xb3, 0x1f, 0x1a, 0x8b, 0x36,
+ 0x20, 0x0b, 0x3e, 0x86, 0x01, 0xb5, 0x9f, 0xc9, 0x86, 0x60, 0xe7, 0x0d,
+ 0x31, 0x0b, 0xec, 0x35, 0x57, 0x19, 0xbb, 0x99, 0xf7, 0x59, 0xa3, 0xdb,
+ 0x8d, 0x89, 0x22, 0x54, 0x7e, 0x20, 0x91, 0x54, 0x2c, 0x59, 0xe1, 0x93,
+ 0x77, 0x49, 0x78, 0x70, 0x41, 0xd8, 0xe4, 0x2b, 0x34, 0xc3, 0x2f, 0x3d,
+ 0x2d, 0xe7, 0x5b, 0x01, 0xb4, 0x1a, 0x05, 0x5a, 0x89, 0x90, 0x5d, 0x82,
+ 0x7e, 0x50, 0x21, 0x48, 0xa3, 0xe7, 0x27, 0x9a, 0xd5, 0xf1, 0xa8, 0x1b,
+ 0x6c, 0xd8, 0xda, 0x8d, 0xda, 0x4d, 0x50, 0x4b, 0xbf, 0x53, 0x60, 0x03,
+ 0x6e, 0x59, 0x0b, 0x06, 0x5a, 0xc3, 0x7d, 0x05, 0x8a, 0x96, 0x02, 0xa7,
+ 0xb5, 0x30, 0x99, 0xa9, 0x02, 0x4c, 0x7f, 0xc7, 0xf9, 0x0b, 0x18, 0xbb,
+ 0xbe, 0xcd, 0x10, 0xa0, 0x68, 0x8e, 0x65, 0xcb, 0x96, 0xcb, 0xb9, 0x6d,
+ 0xd7, 0xc9, 0x67, 0x91, 0x6d, 0x80, 0xd4, 0x64, 0xbd, 0x23, 0x5e, 0xaa,
+ 0x26, 0xf6, 0xfc, 0xc7, 0x8a, 0x82, 0x84, 0x16, 0x1e, 0x5f, 0xd9, 0x66,
+ 0x21, 0xa1, 0x76, 0x69, 0x36, 0x8e, 0xdc, 0xb5, 0x13, 0xb6, 0xdf, 0xf5,
+ 0x5b, 0x5e, 0xf3, 0xf2, 0x16, 0xcf, 0xe7, 0xcd, 0xd1, 0xc1, 0xab, 0xb9,
+ 0x60, 0x61, 0x8f, 0x8b, 0xd0, 0xb2, 0x07, 0x4d, 0x7d, 0xc1, 0x04, 0xe2,
+ 0x42, 0x3d, 0x08, 0xe7, 0x78, 0xd1, 0xd4, 0xd7, 0x3b, 0x48, 0xb9, 0x4b,
+ 0xf0, 0x4c, 0xbd, 0x6a, 0xb4, 0x39, 0x86, 0xb1, 0x19, 0x23, 0x2e, 0x25,
+ 0xa0, 0x34, 0x3c, 0x51, 0x73, 0xbb, 0xe5, 0xce, 0xf5, 0xa3, 0xb9, 0x59,
+ 0x4b, 0xe2, 0x3a, 0x45, 0x2b, 0x89, 0x0b, 0x3f, 0x97, 0xed, 0xb0, 0x89,
+ 0x9c, 0xfe, 0xf8, 0x7e, 0x98, 0xf4, 0xb4, 0xed, 0xa7, 0x69, 0xda, 0x6b,
+ 0x26, 0x97, 0xe9, 0x67, 0xc5, 0x78, 0xd4, 0x59, 0x76, 0xa4, 0xe3, 0xf6,
+ 0x60, 0x0b, 0x81, 0x06, 0x2f, 0xe9, 0x64, 0x8e, 0x8b, 0x41, 0x71, 0x71,
+ 0xb1, 0x40, 0x63, 0xe3, 0x16, 0x3a, 0x54, 0x71, 0xca, 0x27, 0xa0, 0x83,
+ 0x7c, 0x81, 0xef, 0x0d, 0xb8, 0xc1, 0x52, 0x09, 0xc2, 0xa6, 0x23, 0x15,
+ 0x5b, 0x02, 0xdd, 0xeb, 0x29, 0x03, 0xd6, 0xe4, 0xa7, 0x86, 0xc6, 0x64,
+ 0x07, 0xab, 0x1d, 0x4a, 0xc8, 0x47, 0x06, 0x7b, 0x23, 0x91, 0x80, 0x00,
+ 0xb7, 0xb2, 0xad, 0xa2, 0x7f, 0xfc, 0xf3, 0xfb, 0x1f, 0x03, 0xfd, 0x7c,
+ 0xd1, 0x65, 0x7f, 0xc5, 0x55, 0xe1, 0x1c, 0xdb, 0xac, 0xab, 0x74, 0x7c,
+ 0x61, 0xdb, 0xa6, 0xe2, 0x18, 0x13, 0x17, 0x09, 0x92, 0x63, 0x2a, 0x38,
+ 0x6c, 0xa0, 0x04, 0x4c, 0xd3, 0x42, 0xa9, 0x51, 0x88, 0x80, 0x3b, 0x60,
+ 0x33, 0xc6, 0x31, 0x9d, 0x01, 0x53, 0x4a, 0x62, 0x7a, 0xa7, 0xd9, 0x38,
+ 0x54, 0x30, 0xb3, 0x0a, 0x93, 0x1b, 0xdb, 0x09, 0x45, 0x1f, 0xde, 0x1f,
+ 0x9b, 0x38, 0xc5, 0x92, 0xe2, 0x16, 0x11, 0x5e, 0x03, 0xe5, 0x26, 0xff,
+ 0xf8, 0xfe, 0xc7, 0x7f, 0xc2, 0xff, 0x75, 0x9c, 0xeb, 0xed, 0x0a, 0x8e,
+ 0xf0, 0x7d, 0x9c, 0xde, 0xa7, 0x03, 0x10, 0x9f, 0x95, 0x62, 0x74, 0xc5,
+ 0x93, 0x2a, 0xda, 0x9f, 0xc0, 0xe1, 0xcf, 0xe6, 0xa0, 0xb7, 0xbd, 0xc1,
+ 0xd7, 0xa2, 0x23, 0x79, 0xcd, 0x20, 0x97, 0x5c, 0x16, 0x25, 0x50, 0x7a,
+ 0x22, 0x10, 0x10, 0x82, 0x7f, 0xd1, 0x74, 0xed, 0x45, 0x54, 0xc1, 0xe7,
+ 0x39, 0xc7, 0x6e, 0x76, 0xc4, 0xf6, 0xa3, 0x46, 0x05, 0x0e, 0x2a, 0x3d,
+ 0x5f, 0x62, 0xa3, 0x19, 0x98, 0x27, 0x40, 0x8c, 0xe1, 0x35, 0x79, 0xb9,
+ 0x40, 0x38, 0x5c, 0x66, 0x37, 0xa6, 0xc3, 0x42, 0x28, 0xf1, 0x56, 0xaa,
+ 0xdf, 0x15, 0x17, 0xdf, 0x5c, 0x08, 0xe2, 0x84, 0x80, 0x9f, 0xbb, 0xeb,
+ 0xeb, 0x69, 0xd3, 0x37, 0x1a, 0x70, 0x8e, 0x13, 0x14, 0x79, 0x50, 0xdc,
+ 0x0a, 0xb2, 0x1e, 0x96, 0x7c, 0xa6, 0x36, 0x00, 0x99, 0x06, 0x08, 0x28,
+ 0x2d, 0x01, 0x35, 0xbc, 0x11, 0xc2, 0x30, 0x35, 0x6e, 0x25, 0x8c, 0x76,
+ 0x26, 0x7c, 0xc7, 0xb0, 0x01, 0x69, 0xfb, 0x81, 0x50, 0x31, 0x79, 0x82,
+ 0xb5, 0xed, 0xe9, 0x98, 0xef, 0x82, 0x60, 0x53, 0x42, 0x6b, 0x8a, 0xc9,
+ 0x45, 0x05, 0x02, 0x17, 0x1b, 0x62, 0x11, 0x46, 0x82, 0xc4, 0xfa, 0x08,
+ 0xce, 0x44, 0x1c, 0x73, 0x41, 0x2f, 0x3b, 0x8d, 0xce, 0x3e, 0x20, 0xa0,
+ 0x8c, 0x18, 0xac, 0xd4, 0xf0, 0x8e, 0x9a, 0x16, 0x31, 0x46, 0x1d, 0xbe,
+ 0x4d, 0x09, 0x6c, 0x28, 0x6d, 0x9b, 0x1c, 0xd0, 0x1a, 0x0e, 0xc3, 0xb0,
+ 0xcf, 0x76, 0x77, 0x77, 0x39, 0x0c, 0xdb, 0x39, 0xa6, 0x0f, 0xbf, 0x3f,
+ 0x3a, 0x3c, 0x7d, 0xfb, 0xf6, 0xe8, 0xdd, 0xab, 0xa3, 0x57, 0x9a, 0x53,
+ 0xe7, 0xcc, 0xdd, 0xb2, 0x8b, 0x7f, 0x1b, 0x62, 0x1e, 0x36, 0xb0, 0xc6,
+ 0xe6, 0xee, 0x46, 0xbc, 0xb5, 0xbb, 0x11, 0x01, 0x73, 0x26, 0xa6, 0x32,
+ 0x38, 0x19, 0x23, 0xa4, 0x4d, 0x74, 0x35, 0x03, 0x05, 0x1a, 0xbb, 0x00,
+ 0xd5, 0x08, 0x67, 0xa4, 0xd8, 0x96, 0x79, 0x5a, 0xa3, 0xb7, 0x29, 0x90,
+ 0x10, 0xd5, 0xeb, 0x18, 0xb0, 0x7d, 0x9b, 0x2f, 0x21, 0x1a, 0x29, 0x71,
+ 0xec, 0xd6, 0x06, 0x7e, 0xa8, 0x17, 0xbd, 0x06, 0xbd, 0xee, 0xa2, 0xb8,
+ 0x63, 0xe6, 0x3c, 0xbc, 0x02, 0x0b, 0x24, 0xf5, 0x33, 0x25, 0x9a, 0xef,
+ 0xe3, 0xeb, 0xdb, 0xfc, 0xfa, 0x1f, 0x9c, 0x9a, 0x34, 0xff, 0x74, 0xef,
+ 0x6e, 0x6c, 0x2c, 0x89, 0x0c, 0xb1, 0xfb, 0xb2, 0x89, 0x0c, 0x01, 0x63,
+ 0x53, 0xdf, 0x50, 0xad, 0x32, 0x9f, 0x83, 0xcd, 0xd3, 0x67, 0x4f, 0xd4,
+ 0x9b, 0x83, 0x33, 0x7c, 0x3a, 0x3a, 0x7b, 0x7f, 0xfa, 0xdd, 0xdf, 0x6c,
+ 0xd9, 0xfe, 0xcd, 0xa6, 0xe6, 0xa3, 0x0b, 0xe4, 0xc1, 0x20, 0x05, 0x55,
+ 0x39, 0xf7, 0x73, 0x82, 0xac, 0x09, 0x63, 0x3c, 0x1c, 0x7a, 0xdf, 0x13,
+ 0x05, 0xb1, 0x86, 0x00, 0xa1, 0xe1, 0x71, 0x6f, 0x95, 0x29, 0x48, 0x48,
+ 0xe7, 0xa3, 0x10, 0x9e, 0x1d, 0x05, 0x6f, 0x70, 0x1a, 0x77, 0x19, 0xb7,
+ 0x3f, 0xce, 0xf2, 0x11, 0xc3, 0xb6, 0x37, 0xe2, 0x22, 0x75, 0x39, 0x4b,
+ 0x43, 0x41, 0x8b, 0xde, 0xa2, 0x8c, 0x3d, 0xea, 0xfc, 0x95, 0x4d, 0x92,
+ 0x32, 0x1b, 0xdf, 0x37, 0xba, 0x7e, 0x69, 0x26, 0x3c, 0x85, 0xdd, 0x6d,
+ 0x5f, 0xab, 0xc2, 0x93, 0x5f, 0xda, 0xce, 0x98, 0x0e, 0x09, 0x43, 0x31,
+ 0x4a, 0x66, 0x04, 0x13, 0xeb, 0x09, 0x6c, 0xd0, 0xd8, 0xaa, 0x65, 0x41,
+ 0x3e, 0x37, 0x1a, 0x3b, 0x6f, 0xb4, 0xc5, 0x20, 0x4e, 0x03, 0xda, 0x3b,
+ 0xaf, 0x8f, 0x4f, 0x8e, 0xd6, 0xa2, 0xd7, 0x69, 0x2d, 0xa5, 0xb0, 0x5a,
+ 0x76, 0x82, 0xfa, 0xdc, 0xbf, 0x91, 0xf6, 0x6c, 0xfa, 0x61, 0x08, 0x3a,
+ 0x45, 0x30, 0x41, 0x58, 0xbc, 0xea, 0xa4, 0x49, 0x6a, 0x5d, 0x2d, 0xef,
+ 0x37, 0x51, 0x0d, 0x15, 0x18, 0x4d, 0x38, 0xd6, 0x6c, 0x0d, 0x61, 0xa6,
+ 0x40, 0x31, 0x86, 0x22, 0x24, 0xf5, 0xac, 0x21, 0xc1, 0x19, 0x38, 0x9a,
+ 0x74, 0x85, 0x93, 0x96, 0x42, 0x18, 0x4d, 0x7c, 0xc9, 0xaa, 0xe9, 0x98,
+ 0x3a, 0x3c, 0x86, 0x40, 0x05, 0xc7, 0xa9, 0x2d, 0xff, 0xa6, 0xc3, 0x0a,
+ 0x96, 0xa3, 0x05, 0xfc, 0xe7, 0x76, 0x6d, 0xb0, 0xde, 0x25, 0xf7, 0xea,
+ 0x78, 0x91, 0x06, 0x17, 0xbf, 0x51, 0xd2, 0x63, 0xaa, 0x20, 0xff, 0x77,
+ 0xfd, 0x8b, 0x45, 0xd8, 0xb7, 0x47, 0x77, 0x60, 0xe7, 0x29, 0x55, 0x88,
+ 0xcd, 0x87, 0xe3, 0xd9, 0xc8, 0xe4, 0x50, 0xa8, 0x55, 0xd2, 0x60, 0xcf,
+ 0x80, 0x75, 0x43, 0x6e, 0x7d, 0x75, 0xe8, 0x60, 0x54, 0x02, 0xeb, 0x93,
+ 0x4c, 0x54, 0x20, 0xbf, 0x77, 0x6e, 0xd5, 0x94, 0xbe, 0x68, 0x8a, 0x57,
+ 0xb8, 0x44, 0x2f, 0x04, 0xa1, 0x98, 0x71, 0x17, 0x46, 0x51, 0x8c, 0xb0,
+ 0x08, 0xcc, 0xc0, 0x44, 0xeb, 0x7c, 0xf1, 0xb1, 0x2b, 0x69, 0x6f, 0x48,
+ 0x1e, 0x4b, 0xae, 0x56, 0xae, 0x82, 0x61, 0x40, 0xa9, 0xa2, 0x96, 0x3c,
+ 0x81, 0x22, 0xd7, 0xa8, 0xa9, 0x98, 0x58, 0x33, 0xd4, 0xf7, 0xb9, 0x90,
+ 0x98, 0xda, 0xe7, 0x96, 0xdc, 0xa2, 0x26, 0xa0, 0x7b, 0xca, 0xd7, 0x5d,
+ 0xb9, 0xdb, 0x36, 0xe9, 0xdc, 0xcf, 0x34, 0x9d, 0x22, 0xbe, 0x35, 0x01,
+ 0xb4, 0x23, 0x93, 0x03, 0xf1, 0xb3, 0x10, 0xb1, 0x65, 0x78, 0x9d, 0x51,
+ 0xbd, 0xfb, 0x8c, 0x94, 0xe3, 0x24, 0xd7, 0x80, 0x0c, 0x4f, 0xd3, 0x34,
+ 0x17, 0x05, 0x86, 0xed, 0x51, 0x04, 0x28, 0x6c, 0x9c, 0xb0, 0xe2, 0x89,
+ 0x6e, 0x31, 0x6c, 0x4e, 0xa1, 0xf3, 0x19, 0x53, 0xa1, 0x9c, 0x39, 0x6f,
+ 0xaa, 0xf6, 0x62, 0xd9, 0x3d, 0x69, 0xde, 0x81, 0xbe, 0x79, 0x20, 0x5b,
+ 0x10, 0x03, 0x0b, 0x3d, 0xda, 0xb7, 0x06, 0x73, 0xb7, 0x4c, 0xb9, 0x6b,
+ 0x72, 0x2f, 0x7a, 0x9f, 0x4e, 0xa8, 0xd4, 0x0c, 0xab, 0x08, 0xcc, 0xaa,
+ 0x0d, 0x3c, 0xae, 0x57, 0xf1, 0x28, 0x5a, 0x19, 0x43, 0x1e, 0xd3, 0xdc,
+ 0x28, 0x67, 0xcd, 0xcc, 0x44, 0xeb, 0x59, 0x24, 0x27, 0x91, 0x83, 0x56,
+ 0xd8, 0xa9, 0x40, 0x28, 0xeb, 0xc9, 0x80, 0x31, 0xea, 0xff, 0x88, 0x70,
+ 0x9b, 0xef, 0x01, 0xfb, 0x47, 0x9d, 0x37, 0xa0, 0xfd, 0xed, 0x75, 0x4c,
+ 0x0f, 0x4f, 0x8a, 0x73, 0x70, 0x53, 0x4b, 0x97, 0x73, 0xc8, 0x06, 0xcd,
+ 0xbd, 0xf6, 0xae, 0x0c, 0xa4, 0x23, 0x86, 0x5d, 0xad, 0xd2, 0xd4, 0xd4,
+ 0x71, 0xfa, 0xd5, 0x32, 0xa6, 0xae, 0x92, 0x81, 0x09, 0xfc, 0xa2, 0x72,
+ 0x9c, 0xd2, 0x77, 0xf1, 0x21, 0x7d, 0x3c, 0x7e, 0x43, 0xc3, 0x7d, 0xda,
+ 0x31, 0x01, 0x98, 0xf6, 0xaf, 0x60, 0xe2, 0x9f, 0x84, 0xd2, 0x2c, 0xad,
+ 0x0f, 0xc3, 0x62, 0x97, 0x53, 0x4e, 0x9d, 0xd2, 0x19, 0x97, 0x8a, 0x47,
+ 0x64, 0x5d, 0x37, 0x9c, 0x22, 0xac, 0x98, 0x25, 0x1d, 0x30, 0x74, 0x38,
+ 0x1c, 0x56, 0x62, 0x42, 0x15, 0x18, 0x1b, 0xa3, 0xb8, 0xb8, 0x88, 0xa9,
+ 0xf0, 0x06, 0x6e, 0xa4, 0x6b, 0x4c, 0x00, 0x75, 0x4e, 0x1d, 0x41, 0x65,
+ 0x11, 0xe2, 0xfd, 0x68, 0x14, 0xca, 0x29, 0x25, 0xcc, 0x89, 0xa9, 0xa3,
+ 0x47, 0x6b, 0xfd, 0x1e, 0x6f, 0xe3, 0x9e, 0xd4, 0x7c, 0xd0, 0xeb, 0x79,
+ 0x7a, 0xcb, 0x45, 0x0d, 0x88, 0xe1, 0x2f, 0x75, 0x76, 0x9e, 0xc7, 0x98,
+ 0xaa, 0xee, 0xba, 0x6c, 0x12, 0xd1, 0xaa, 0xc9, 0xc4, 0x9f, 0x70, 0xc0,
+ 0x84, 0xe2, 0x41, 0xb3, 0xa9, 0x76, 0x71, 0xe9, 0x2d, 0xcc, 0x8b, 0x47,
+ 0x7b, 0x90, 0xda, 0xb3, 0xa0, 0xe1, 0xa1, 0xb9, 0x91, 0x20, 0xd6, 0xbe,
+ 0x30, 0xe5, 0xb9, 0x55, 0x7d, 0x8f, 0xc2, 0xdc, 0x20, 0x32, 0xe4, 0xbe,
+ 0x5a, 0x6f, 0xeb, 0xe6, 0x6c, 0x1e, 0x23, 0xd1, 0x4a, 0xe4, 0x23, 0x81,
+ 0x32, 0x68, 0xdf, 0x0f, 0xc9, 0x80, 0x8d, 0xbe, 0x88, 0x83, 0x78, 0x91,
+ 0x36, 0x36, 0x4e, 0x95, 0x95, 0x0e, 0xb5, 0x38, 0x3d, 0xd5, 0x00, 0xa1,
+ 0x34, 0x90, 0x0e, 0x77, 0x77, 0xdd, 0xbb, 0xd5, 0xad, 0x8d, 0x25, 0xec,
+ 0x56, 0xd3, 0x9d, 0x5d, 0x39, 0x41, 0x59, 0xab, 0xc1, 0xef, 0x15, 0x1d,
+ 0xcd, 0x5c, 0xcb, 0x7b, 0x92, 0x10, 0x4c, 0x06, 0x0d, 0xd3, 0x6c, 0x17,
+ 0xf5, 0x3c, 0xf0, 0x69, 0x4a, 0xfb, 0x41, 0xd4, 0x1e, 0xb4, 0x5f, 0x3a,
+ 0x5e, 0x35, 0xce, 0x1e, 0x63, 0x71, 0xa4, 0xe8, 0x69, 0x90, 0x19, 0x71,
+ 0x66, 0x0b, 0xbb, 0x5a, 0xc2, 0x9f, 0x36, 0xd7, 0x8c, 0x1e, 0x2b, 0xfd,
+ 0x37, 0x16, 0x44, 0x75, 0x1d, 0xee, 0xe7, 0x8c, 0x59, 0x3d, 0xd2, 0x81,
+ 0x00, 0x17, 0x07, 0xd3, 0x65, 0x0a, 0x5c, 0x91, 0x83, 0x52, 0xca, 0x43,
+ 0x7a, 0x3e, 0x78, 0xff, 0xee, 0xf8, 0xdd, 0x57, 0x7b, 0x86, 0x3c, 0x28,
+ 0x14, 0xdb, 0x9d, 0x96, 0x2d, 0xec, 0x49, 0x45, 0x3d, 0x39, 0x08, 0x5e,
+ 0x20, 0x08, 0x7e, 0x2c, 0x8a, 0x5a, 0x14, 0xb3, 0x0c, 0x67, 0x67, 0x7b,
+ 0x99, 0x72, 0x30, 0x93, 0x0b, 0xa2, 0xb4, 0x6a, 0x4f, 0x20, 0x04, 0x88,
+ 0x26, 0x75, 0x31, 0x1e, 0x85, 0xc0, 0x83, 0xe2, 0x13, 0xbc, 0xc5, 0xb1,
+ 0x0a, 0xc6, 0xd1, 0x63, 0x91, 0x9d, 0xc7, 0xc4, 0x37, 0x85, 0xcb, 0x3a,
+ 0xdc, 0xae, 0x85, 0xca, 0x21, 0xd0, 0x74, 0x26, 0xc7, 0x61, 0x20, 0xeb,
+ 0x83, 0x7b, 0xd7, 0xe5, 0x5e, 0xe3, 0x77, 0xee, 0xbc, 0x5c, 0x11, 0xcf,
+ 0x54, 0x19, 0x39, 0xac, 0x0c, 0x49, 0xd4, 0x21, 0x11, 0xf0, 0xa5, 0x49,
+ 0xdb, 0xb7, 0x64, 0xc6, 0x27, 0x8d, 0x21, 0x77, 0xe5, 0xa7, 0xb6, 0x26,
+ 0xd0, 0x50, 0xe0, 0xd1, 0x25, 0x36, 0xb6, 0xc6, 0x86, 0x2d, 0x1d, 0x4e,
+ 0xaa, 0x70, 0xe4, 0x1a, 0xa5, 0x6c, 0xdf, 0x84, 0x31, 0xb1, 0xc6, 0xa9,
+ 0xad, 0x88, 0x5d, 0xce, 0xc5, 0x46, 0x32, 0xfa, 0x35, 0x9a, 0xce, 0xf1,
+ 0x3b, 0x10, 0x0c, 0x7b, 0xd1, 0x7f, 0x16, 0xe9, 0x12, 0x9e, 0x32, 0x78,
+ 0xfd, 0x03, 0xe8, 0x3e, 0xf1, 0xc1, 0x25, 0x89, 0xbc, 0xfb, 0xb4, 0x8a,
+ 0xe1, 0xf9, 0xa4, 0x4a, 0xd7, 0xc1, 0x46, 0xdc, 0x58, 0x6e, 0x20, 0xbe,
+ 0xbe, 0x96, 0x83, 0x4e, 0x3b, 0xa0, 0xb2, 0x1e, 0x9c, 0x41, 0x72, 0x49,
+ 0x80, 0x38, 0x18, 0xb3, 0x48, 0xf1, 0x87, 0x8c, 0x34, 0xe7, 0x98, 0x03,
+ 0xf1, 0x15, 0x2b, 0x88, 0xe3, 0x69, 0xb4, 0x8f, 0xd6, 0xcc, 0x65, 0x51,
+ 0xde, 0x7f, 0xee, 0xa1, 0x6b, 0x63, 0xf5, 0x57, 0x84, 0x0f, 0x19, 0xd4,
+ 0x32, 0x8c, 0xc6, 0x93, 0x0a, 0x63, 0x0b, 0x47, 0x44, 0xe0, 0xdb, 0x61,
+ 0x7a, 0xd2, 0x9c, 0xc0, 0x6b, 0x77, 0x78, 0x49, 0xed, 0xea, 0x6c, 0x25,
+ 0x8f, 0x93, 0xf0, 0xcc, 0x0a, 0x34, 0x27, 0x16, 0x61, 0x72, 0x12, 0x22,
+ 0x27, 0x82, 0xf9, 0x44, 0xc9, 0xb6, 0xf2, 0xa5, 0x40, 0xbd, 0x79, 0x64,
+ 0x04, 0x3a, 0xea, 0x8f, 0xea, 0x99, 0x31, 0x42, 0xbe, 0x03, 0xf3, 0xec,
+ 0xcc, 0xfb, 0x66, 0x5b, 0xeb, 0x97, 0x19, 0xe0, 0xd2, 0xb4, 0x63, 0x98,
+ 0x4d, 0x09, 0xf1, 0xc7, 0x8e, 0x3a, 0xba, 0x5e, 0xac, 0x3c, 0xf1, 0x34,
+ 0xcd, 0x45, 0x8b, 0x24, 0xea, 0xf1, 0xcb, 0x99, 0x14, 0xa4, 0xc1, 0xd0,
+ 0x59, 0xa9, 0x28, 0x81, 0x4b, 0x17, 0x3a, 0xd0, 0x36, 0xc2, 0xa8, 0xae,
+ 0xcd, 0x0d, 0x44, 0x9c, 0xce, 0x06, 0x93, 0xd1, 0x6e, 0xb4, 0x0f, 0x7f,
+ 0x78, 0x5a, 0x3f, 0x15, 0x8e, 0x44, 0xfd, 0x43, 0x54, 0xfd, 0x51, 0x92,
+ 0xa3, 0x0a, 0xc3, 0x98, 0x7d, 0x4e, 0xe3, 0xea, 0xed, 0x2d, 0xd8, 0xfc,
+ 0xbb, 0x44, 0xfb, 0x0f, 0x8c, 0x40, 0x58, 0xd4, 0x94, 0x1b, 0x3e, 0x07,
+ 0x84, 0xd1, 0xba, 0x2e, 0x91, 0x54, 0x9b, 0x5b, 0x2f, 0x22, 0x2c, 0xb1,
+ 0x7c, 0xfb, 0x6a, 0x17, 0x04, 0x71, 0x3a, 0xbc, 0xae, 0x66, 0x13, 0x53,
+ 0x85, 0xc0, 0x15, 0x17, 0x2c, 0x77, 0x3c, 0xa4, 0x2b, 0x98, 0xf8, 0x38,
+ 0x1b, 0x22, 0xc4, 0x41, 0xb7, 0x91, 0x94, 0x70, 0xa1, 0x49, 0x09, 0x8e,
+ 0x37, 0xc8, 0xe8, 0x31, 0x94, 0xd3, 0xc6, 0x19, 0xa3, 0x81, 0x78, 0x31,
+ 0xd0, 0x00, 0x3e, 0x8f, 0x2e, 0x34, 0x30, 0x35, 0x97, 0xa6, 0xaf, 0x25,
+ 0x66, 0xba, 0x3b, 0xdc, 0x1c, 0xee, 0xbc, 0xdc, 0xd8, 0xda, 0x78, 0xb6,
+ 0xb3, 0x91, 0xec, 0x26, 0x83, 0x8d, 0x8b, 0xad, 0x8d, 0xed, 0x9d, 0x17,
+ 0xbb, 0x3b, 0xc3, 0xed, 0xad, 0xcd, 0xe4, 0x45, 0x54, 0x2d, 0x4c, 0x1a,
+ 0x91, 0x91, 0xaa, 0xab, 0x64, 0x6b, 0xf7, 0x59, 0xb4, 0xcf, 0xff, 0x0d,
+ 0x6f, 0x0e, 0xed, 0xcd, 0xdc, 0xad, 0x49, 0xa2, 0x2f, 0xa9, 0x14, 0x32,
+ 0xd6, 0x6a, 0xdd, 0xfe, 0x9b, 0x03, 0x1c, 0x12, 0x8c, 0xa0, 0xab, 0xb0,
+ 0x43, 0x44, 0x28, 0xce, 0x04, 0x77, 0x48, 0xdc, 0x8b, 0x0e, 0x17, 0x93,
+ 0x78, 0x9e, 0xe2, 0xe8, 0x10, 0x9c, 0xff, 0x0d, 0x9f, 0x4e, 0x7f, 0x19,
+ 0x85, 0x85, 0x2e, 0xef, 0x5e, 0x7d, 0x73, 0xfd, 0xf6, 0xfc, 0xaf, 0x77,
+ 0x6f, 0xbf, 0xfa, 0xeb, 0xe6, 0xe9, 0xab, 0xd1, 0xe4, 0xed, 0x4f, 0x7f,
+ 0xdd, 0x7e, 0xfb, 0xd3, 0xf0, 0xe7, 0xbf, 0xfd, 0x74, 0x70, 0x7f, 0x7a,
+ 0xfe, 0xb7, 0xdd, 0xb7, 0x93, 0xf7, 0xd7, 0x6f, 0x7f, 0xfa, 0x66, 0xf2,
+ 0xee, 0xd5, 0x5f, 0x3f, 0x5b, 0x48, 0x70, 0xdf, 0x43, 0xf1, 0x62, 0xa3,
+ 0xe5, 0x9b, 0x42, 0x71, 0xb6, 0x6f, 0x20, 0xfc, 0x82, 0xd6, 0x71, 0xbf,
+ 0xd9, 0x0e, 0x49, 0x91, 0x0b, 0xdf, 0xf4, 0xcf, 0xfb, 0x26, 0x1d, 0xc2,
+ 0xc4, 0x69, 0x25, 0x0f, 0x51, 0x8a, 0x12, 0x42, 0x68, 0x60, 0xd1, 0x14,
+ 0x34, 0xa0, 0x9a, 0xaf, 0x34, 0x82, 0x85, 0x90, 0xda, 0x77, 0x1a, 0x0f,
+ 0x3b, 0xc6, 0xa4, 0xe2, 0x5c, 0x20, 0xed, 0xbe, 0xe9, 0xd4, 0x6b, 0xad,
+ 0x8b, 0x83, 0xf9, 0x5c, 0x98, 0x90, 0xba, 0x8d, 0x2d, 0x04, 0xc2, 0x8e,
+ 0x06, 0xd3, 0x11, 0xa4, 0x67, 0x5b, 0xb1, 0x78, 0x76, 0xe4, 0x10, 0x15,
+ 0x0c, 0x19, 0x53, 0x7c, 0xc9, 0x0e, 0x8b, 0x80, 0x57, 0xb1, 0x6f, 0xf2,
+ 0xfd, 0x3a, 0x1d, 0x07, 0x08, 0x71, 0xf5, 0xe7, 0xb4, 0x2c, 0xa4, 0x66,
+ 0x79, 0x8d, 0xd6, 0x79, 0x53, 0x64, 0xa3, 0x48, 0x80, 0x1e, 0xd7, 0x15,
+ 0x72, 0xd7, 0x93, 0xe9, 0x56, 0xb7, 0x23, 0xf0, 0x41, 0xc4, 0xdb, 0x85,
+ 0x21, 0x89, 0x30, 0x06, 0x79, 0xef, 0x89, 0x9e, 0x52, 0xb1, 0x9d, 0x09,
+ 0x56, 0x8d, 0x5c, 0x7f, 0x26, 0xf4, 0xd2, 0xb6, 0x73, 0x29, 0x4b, 0x51,
+ 0x8a, 0x08, 0x19, 0x88, 0x52, 0x7d, 0x46, 0x41, 0x4f, 0x2b, 0xb1, 0x00,
+ 0xaf, 0x68, 0x69, 0xae, 0x47, 0xe6, 0xa3, 0x4d, 0x7a, 0x42, 0x43, 0x1d,
+ 0x4c, 0x98, 0x6a, 0x70, 0x32, 0xbc, 0xbd, 0xd1, 0x7b, 0x39, 0xa7, 0x9d,
+ 0x57, 0x03, 0xd0, 0x19, 0xc1, 0x23, 0x0c, 0xfc, 0x09, 0x29, 0xde, 0xe8,
+ 0x61, 0x43, 0xe2, 0x21, 0xa8, 0xb0, 0xa6, 0x99, 0x79, 0xab, 0xc1, 0x27,
+ 0xd7, 0xf1, 0x09, 0xce, 0xda, 0x35, 0x6c, 0x87, 0xcd, 0x0a, 0x48, 0xdf,
+ 0x22, 0x51, 0x60, 0xb2, 0xd4, 0x0c, 0x2e, 0x37, 0x25, 0x13, 0xfa, 0xee,
+ 0x0e, 0x93, 0xaf, 0xaa, 0x21, 0x1f, 0xab, 0x77, 0x0b, 0xa6, 0x91, 0x03,
+ 0xb7, 0xa7, 0xe0, 0x2e, 0xb4, 0x7f, 0xe8, 0xcf, 0xf3, 0x0c, 0x08, 0xf3,
+ 0xdd, 0xca, 0xa6, 0x95, 0x31, 0xa8, 0x34, 0x37, 0x9e, 0xa0, 0xa3, 0x81,
+ 0x4d, 0xa5, 0xd8, 0x01, 0x5f, 0xdc, 0xe6, 0x97, 0x25, 0xc6, 0x53, 0x08,
+ 0xa5, 0x23, 0x09, 0x25, 0xa4, 0x84, 0xf8, 0xdd, 0x4d, 0x59, 0x7b, 0xf6,
+ 0xac, 0xb7, 0xd1, 0xb5, 0x54, 0xc1, 0xaa, 0x64, 0x4e, 0xc7, 0x5c, 0x98,
+ 0xb1, 0xf6, 0x10, 0x4f, 0xf0, 0x36, 0x2e, 0xeb, 0x78, 0x6d, 0x32, 0xc3,
+ 0x46, 0x57, 0x46, 0xda, 0xec, 0x6d, 0x3c, 0x86, 0x21, 0x50, 0xe8, 0x37,
+ 0xf8, 0x00, 0xde, 0x73, 0x3d, 0x59, 0x5a, 0x9c, 0x9b, 0x79, 0xa7, 0xc5,
+ 0xf1, 0x27, 0x71, 0x54, 0x1b, 0x51, 0x32, 0xdd, 0xa1, 0x9e, 0xb2, 0x7e,
+ 0xfc, 0xfa, 0x63, 0xab, 0xdf, 0xe5, 0xd4, 0xdb, 0xda, 0x77, 0x1d, 0x62,
+ 0x53, 0x52, 0x76, 0xf0, 0x5f, 0x5b, 0xed, 0x83, 0x02, 0xbf, 0x7e, 0x22,
+ 0x5d, 0x36, 0x9f, 0xb6, 0xa0, 0xcd, 0x5f, 0x56, 0xce, 0xbf, 0xd1, 0x8d,
+ 0x1c, 0xda, 0x68, 0xf7, 0x72, 0x5e, 0x9a, 0x65, 0x84, 0xd6, 0x70, 0x7e,
+ 0x9f, 0x67, 0x7a, 0x01, 0xd1, 0x17, 0x8a, 0x32, 0x46, 0x57, 0x1f, 0xb0,
+ 0xaa, 0xe7, 0x7a, 0x09, 0x12, 0x02, 0x98, 0xbb, 0x42, 0x87, 0x18, 0x75,
+ 0xb8, 0xc2, 0xa3, 0x49, 0xa9, 0x4b, 0x0d, 0x9b, 0xbd, 0x0a, 0x97, 0x68,
+ 0xd3, 0xf1, 0xd8, 0xb2, 0x7e, 0x3d, 0xfe, 0x01, 0x12, 0x24, 0xfa, 0x30,
+ 0xa5, 0x13, 0x88, 0xca, 0x75, 0x6d, 0xbb, 0x5d, 0xd3, 0xec, 0xa2, 0x79,
+ 0xb3, 0xb3, 0x88, 0xd7, 0x9a, 0x31, 0x4b, 0xd8, 0x41, 0x95, 0x7e, 0xa7,
+ 0x42, 0x50, 0x26, 0x74, 0x15, 0x46, 0xc9, 0x6d, 0x82, 0x79, 0x4c, 0xdc,
+ 0xb6, 0xd8, 0x4c, 0x32, 0xd4, 0x1f, 0x4b, 0xc5, 0xca, 0xa8, 0xd0, 0x51,
+ 0x1a, 0x95, 0xcf, 0x30, 0x8e, 0xb8, 0x09, 0x41, 0x63, 0xa7, 0x84, 0x44,
+ 0xdb, 0x0f, 0x36, 0x10, 0x2c, 0xa2, 0x3b, 0x88, 0x9d, 0x42, 0x48, 0xa4,
+ 0xf9, 0x98, 0xf1, 0x8f, 0xe0, 0x1b, 0x6f, 0xaf, 0x1e, 0xd7, 0x46, 0x3c,
+ 0xfc, 0xea, 0x63, 0xfb, 0x89, 0x7b, 0xb0, 0xd5, 0xad, 0x3e, 0xf6, 0x4c,
+ 0xa3, 0xde, 0xe3, 0x8e, 0xdf, 0x46, 0x37, 0x38, 0x3b, 0xe4, 0x62, 0xf7,
+ 0x78, 0x36, 0x80, 0xe5, 0x5f, 0x06, 0x98, 0xf6, 0x49, 0xa7, 0x75, 0x2b,
+ 0x08, 0x7d, 0x4d, 0x1c, 0xd1, 0x75, 0xeb, 0x87, 0xed, 0x5d, 0xe1, 0xb4,
+ 0xe8, 0x32, 0xbb, 0x6d, 0x79, 0xd8, 0x3b, 0x61, 0xfe, 0x26, 0x3b, 0xc5,
+ 0xae, 0xf4, 0x81, 0x05, 0x17, 0x81, 0xce, 0xe5, 0xe1, 0xa9, 0xcc, 0xf8,
+ 0xa0, 0x34, 0x02, 0x31, 0x5e, 0xa5, 0xa2, 0x4c, 0xd2, 0x62, 0x87, 0xcb,
+ 0xf1, 0xda, 0x33, 0xaf, 0x3c, 0x31, 0x24, 0x88, 0xe4, 0x5f, 0xb2, 0xf3,
+ 0x84, 0x2f, 0x81, 0xb7, 0x7b, 0x66, 0xa8, 0x39, 0x7c, 0xe8, 0x5d, 0xc0,
+ 0x73, 0xfb, 0xdc, 0x3f, 0x8e, 0x13, 0xe7, 0xf0, 0x9d, 0xe1, 0xcb, 0x16,
+ 0x27, 0xce, 0x3b, 0x36, 0x2a, 0x5e, 0xbd, 0x7b, 0x6f, 0x8e, 0x78, 0xdd,
+ 0x9e, 0x13, 0x5f, 0x33, 0x9e, 0xc6, 0x76, 0x8e, 0xfb, 0xdd, 0x34, 0x2d,
+ 0xb3, 0x09, 0x21, 0xf5, 0xf7, 0xa2, 0x57, 0xb6, 0x4a, 0x80, 0x1a, 0x04,
+ 0x78, 0x81, 0x89, 0xd1, 0x2c, 0x9c, 0x4b, 0xff, 0xc0, 0x49, 0xd8, 0x96,
+ 0x82, 0x0a, 0x9b, 0x86, 0x4d, 0xd6, 0x9b, 0x80, 0xad, 0x14, 0x5e, 0x1b,
+ 0x10, 0x89, 0xd2, 0x69, 0x26, 0xa3, 0x64, 0xec, 0x61, 0x85, 0x8e, 0x64,
+ 0x30, 0x11, 0xe9, 0xb7, 0xdd, 0x54, 0x5d, 0xa3, 0x14, 0x63, 0xf9, 0x7c,
+ 0x28, 0x2a, 0x48, 0x5f, 0x34, 0x0d, 0x47, 0x51, 0x87, 0x53, 0xbf, 0x20,
+ 0x7c, 0x04, 0x5b, 0x95, 0x1f, 0x8c, 0xeb, 0xb8, 0x7f, 0x33, 0xe4, 0x64,
+ 0xbb, 0x46, 0x62, 0x97, 0xd7, 0x91, 0x86, 0x22, 0x68, 0x18, 0x3b, 0x22,
+ 0x80, 0x0d, 0x4c, 0x1b, 0xa2, 0xae, 0x45, 0xd4, 0x78, 0x86, 0xcd, 0x26,
+ 0xcd, 0x18, 0xc3, 0x8d, 0xb4, 0x9c, 0xc6, 0xa5, 0xe6, 0x7e, 0x93, 0x86,
+ 0xe4, 0xba, 0xd2, 0x25, 0x49, 0xc0, 0x89, 0xe1, 0x07, 0xcc, 0x9c, 0x39,
+ 0x96, 0xbf, 0x40, 0x01, 0x69, 0xf9, 0xa6, 0xb9, 0x87, 0x18, 0xc2, 0xcb,
+ 0xfe, 0xf5, 0xc3, 0xf1, 0x61, 0x23, 0x7d, 0x45, 0x72, 0x83, 0x7c, 0x87,
+ 0xaa, 0x93, 0x8e, 0xc3, 0xed, 0xfd, 0xe4, 0xc9, 0x0b, 0xb4, 0x46, 0xb4,
+ 0x1a, 0x53, 0xeb, 0xa7, 0x1a, 0xdb, 0x5b, 0xe4, 0x01, 0xd5, 0x0c, 0x34,
+ 0xdc, 0xa7, 0x9c, 0xf5, 0xed, 0x5f, 0x7c, 0xd6, 0xb7, 0x7a, 0x66, 0xa8,
+ 0x5f, 0xf9, 0xac, 0x6f, 0xff, 0x3a, 0x67, 0x5d, 0x25, 0x91, 0xf3, 0x77,
+ 0xf7, 0xd8, 0xb7, 0x67, 0xc7, 0x62, 0xc0, 0xd5, 0xb6, 0x9b, 0x4d, 0xa7,
+ 0x62, 0xc6, 0xb1, 0x8c, 0xc5, 0xa0, 0x8c, 0xd9, 0xee, 0x0d, 0x61, 0xb8,
+ 0x44, 0xda, 0x86, 0xca, 0x88, 0xfe, 0x63, 0x6e, 0xdd, 0xe8, 0xf6, 0x7a,
+ 0x38, 0x61, 0xa8, 0x2f, 0x91, 0xd6, 0x9a, 0xbc, 0x12, 0x00, 0x03, 0xcc,
+ 0x86, 0x88, 0xfc, 0x6e, 0x53, 0x47, 0xc8, 0x10, 0x15, 0x6b, 0xa9, 0x9c,
+ 0x51, 0x6e, 0x4c, 0x74, 0x30, 0x25, 0x1f, 0xc0, 0x66, 0xef, 0xae, 0x6b,
+ 0xba, 0x81, 0x05, 0xbc, 0x9f, 0x65, 0x4a, 0x44, 0xc6, 0xa8, 0xbf, 0x94,
+ 0x7e, 0xb7, 0xa7, 0x43, 0xa3, 0xb3, 0x39, 0x3c, 0xc6, 0x43, 0x54, 0x72,
+ 0x1c, 0x61, 0x0b, 0x0e, 0xca, 0xa5, 0xd7, 0x7c, 0x7b, 0x70, 0x5f, 0x07,
+ 0xe0, 0x5a, 0x70, 0xd5, 0x48, 0x85, 0x55, 0xb6, 0xd0, 0xe0, 0xa6, 0x07,
+ 0x3a, 0xae, 0x75, 0x23, 0x2c, 0x9d, 0x21, 0x0a, 0x20, 0xd6, 0x85, 0xc9,
+ 0xe6, 0xa0, 0x96, 0xc6, 0x97, 0x18, 0xe5, 0x2c, 0x58, 0x1c, 0x78, 0x4e,
+ 0x47, 0xcc, 0xa9, 0x90, 0x52, 0x35, 0xad, 0x03, 0x93, 0x66, 0x3d, 0xc1,
+ 0xd6, 0x03, 0x0d, 0xe5, 0xda, 0x24, 0xf9, 0x62, 0xd6, 0x17, 0xad, 0x8d,
+ 0x0e, 0x14, 0x9c, 0xd8, 0x20, 0x17, 0xce, 0xbc, 0x0e, 0x77, 0x57, 0xf7,
+ 0xd3, 0xe5, 0xef, 0xd2, 0x20, 0xa3, 0x2c, 0xce, 0xa4, 0xcd, 0x90, 0x79,
+ 0x25, 0x19, 0xa3, 0xed, 0xf8, 0x90, 0x14, 0x0d, 0xaf, 0x19, 0x9f, 0x13,
+ 0xec, 0xe3, 0xa4, 0x3e, 0x6e, 0x6d, 0x2f, 0xc9, 0x7b, 0xaa, 0xb5, 0x87,
+ 0xfb, 0x0c, 0x5b, 0x60, 0x5d, 0x06, 0x04, 0xd4, 0x3c, 0x10, 0x8d, 0xba,
+ 0x52, 0xd4, 0x4a, 0x94, 0x6f, 0xf4, 0xf5, 0x74, 0x61, 0xc3, 0x8a, 0xeb,
+ 0x2c, 0xf5, 0x90, 0xa3, 0x46, 0xd4, 0xdf, 0x94, 0x7d, 0x8f, 0xb6, 0x23,
+ 0x59, 0x43, 0x6c, 0x69, 0x13, 0xb1, 0x5e, 0xaf, 0x17, 0x80, 0x05, 0xbd,
+ 0xc9, 0xd2, 0xdb, 0x86, 0xca, 0x23, 0x13, 0xeb, 0x52, 0x33, 0x87, 0x8c,
+ 0xf3, 0x3e, 0xc0, 0x7e, 0xbf, 0x41, 0x0a, 0xc1, 0x90, 0x03, 0xec, 0x50,
+ 0x32, 0x07, 0x8c, 0x61, 0xf1, 0xbe, 0x64, 0xcb, 0x89, 0x3c, 0xf7, 0x83,
+ 0x8e, 0x18, 0xb8, 0xe6, 0x9d, 0xaa, 0x42, 0xb8, 0x57, 0xdc, 0x56, 0xcb,
+ 0x36, 0x04, 0xee, 0x62, 0x80, 0xb0, 0xbc, 0x8f, 0xa8, 0xbf, 0xbd, 0xbd,
+ 0x1b, 0x68, 0x3a, 0x5c, 0xc7, 0x0f, 0xcc, 0x4a, 0x7d, 0xad, 0x18, 0xe2,
+ 0xb9, 0x7d, 0xbe, 0x28, 0x16, 0x89, 0xdf, 0xe9, 0xb5, 0x5a, 0x06, 0xf3,
+ 0xcd, 0xa8, 0x7a, 0x00, 0x28, 0x10, 0x43, 0x0c, 0x0e, 0x23, 0xa1, 0xb5,
+ 0xe5, 0x2c, 0x46, 0x26, 0x03, 0xd5, 0x1f, 0xb2, 0xa5, 0x76, 0x32, 0x95,
+ 0x53, 0x7c, 0xa0, 0x04, 0xe7, 0xfc, 0x16, 0xfe, 0x70, 0x28, 0x31, 0xd4,
+ 0x1b, 0xa4, 0xb1, 0x0c, 0xd0, 0x85, 0x61, 0x6d, 0x0c, 0x98, 0x8b, 0xe7,
+ 0x5a, 0xf0, 0x5c, 0xa5, 0x5f, 0x57, 0xdb, 0x3b, 0x64, 0x71, 0xb8, 0x22,
+ 0x0b, 0x7c, 0x2e, 0xc1, 0x03, 0xb2, 0xf0, 0x4c, 0x43, 0x02, 0xf9, 0x40,
+ 0xe5, 0xf4, 0x75, 0xf3, 0x50, 0x1f, 0xad, 0x5a, 0x8c, 0x03, 0x73, 0x23,
+ 0xeb, 0x5e, 0x68, 0x8b, 0x59, 0x3d, 0x63, 0x00, 0x52, 0x38, 0x4f, 0xc5,
+ 0x0c, 0x73, 0xf9, 0x49, 0xf6, 0x09, 0x90, 0xa0, 0x60, 0x07, 0x7a, 0xac,
+ 0xa4, 0x2c, 0x84, 0xb4, 0xef, 0x55, 0xe9, 0x3a, 0xf0, 0x7c, 0xb5, 0x5e,
+ 0x55, 0x63, 0xfc, 0x5e, 0x45, 0xd8, 0xf8, 0x73, 0x83, 0xcf, 0xac, 0xff,
+ 0xd3, 0xb6, 0x37, 0x0b, 0x6e, 0xe6, 0xd1, 0xfa, 0x21, 0x31, 0x23, 0xef,
+ 0x2d, 0x79, 0x93, 0x73, 0xfe, 0x80, 0x79, 0x99, 0x6f, 0xc7, 0x61, 0x82,
+ 0x0b, 0x68, 0xdc, 0x76, 0x0a, 0x7b, 0xc0, 0xcd, 0x98, 0xda, 0x2e, 0xf3,
+ 0x33, 0x6e, 0x9b, 0x86, 0xae, 0x6d, 0x17, 0x94, 0x8c, 0x25, 0xb3, 0xcd,
+ 0xae, 0x36, 0xa3, 0xd8, 0x8e, 0xad, 0x11, 0xf6, 0x49, 0x2b, 0xe7, 0x41,
+ 0x34, 0x44, 0x22, 0x6e, 0xdc, 0x2c, 0x4b, 0xd8, 0x16, 0x03, 0x65, 0x80,
+ 0x8d, 0xd8, 0x0d, 0xc6, 0xf2, 0x90, 0x02, 0x51, 0x63, 0x90, 0x4c, 0x01,
+ 0xf4, 0xef, 0x79, 0xa8, 0x95, 0xce, 0xca, 0xb0, 0x78, 0x7b, 0xcf, 0xfa,
+ 0x6c, 0x6e, 0x6f, 0x6f, 0x7b, 0x8b, 0x02, 0x0c, 0xbf, 0x38, 0x59, 0xb7,
+ 0x39, 0xdc, 0x69, 0x1e, 0x9d, 0x64, 0xf9, 0xec, 0xce, 0x01, 0xfb, 0xd5,
+ 0x26, 0xd4, 0xb6, 0xc0, 0xfe, 0x9b, 0xf7, 0xaf, 0xbb, 0xc6, 0x33, 0xad,
+ 0x38, 0xab, 0x94, 0x0b, 0x52, 0xf9, 0xda, 0x77, 0x94, 0x66, 0xc4, 0xbc,
+ 0xdc, 0xa6, 0xec, 0xf0, 0xe0, 0xec, 0xe3, 0xbb, 0xa3, 0xf3, 0x8f, 0xef,
+ 0x0f, 0xbe, 0x45, 0x12, 0xb2, 0x47, 0x18, 0x34, 0x06, 0xcc, 0xe2, 0x29,
+ 0x8b, 0x02, 0x6e, 0x8a, 0xb7, 0x78, 0xa9, 0x66, 0x39, 0x21, 0xed, 0x06,
+ 0xb3, 0xd2, 0x15, 0x3d, 0x9c, 0xe7, 0x89, 0x93, 0xd9, 0x73, 0xce, 0x00,
+ 0xd2, 0xeb, 0x3a, 0x2d, 0xf3, 0x74, 0xdc, 0x2b, 0xca, 0x4b, 0x3c, 0x0a,
+ 0xeb, 0xaf, 0xe4, 0x0a, 0x08, 0x0e, 0xb7, 0x2e, 0xe9, 0xd7, 0x18, 0x1c,
+ 0xb8, 0x29, 0x2f, 0xd0, 0x1b, 0xbe, 0x34, 0xcb, 0xbb, 0x5b, 0xb7, 0x24,
+ 0xe3, 0x8f, 0xf2, 0xca, 0x0e, 0xe0, 0xb0, 0xfa, 0x0e, 0x49, 0xf4, 0xe9,
+ 0xcd, 0xce, 0x22, 0x55, 0xa2, 0x6e, 0x58, 0x5e, 0x28, 0x32, 0xc6, 0x37,
+ 0x1c, 0x06, 0x21, 0x3f, 0xb6, 0x9b, 0xa7, 0x9f, 0x72, 0x62, 0x6b, 0x37,
+ 0x80, 0x78, 0x49, 0x7a, 0x7e, 0x61, 0x60, 0x4a, 0x09, 0x32, 0x07, 0x0b,
+ 0x0c, 0x96, 0x3e, 0xfa, 0x30, 0xdb, 0xa5, 0x56, 0xef, 0x28, 0xcb, 0x6d,
+ 0xb7, 0xe2, 0x7c, 0x77, 0xe4, 0x33, 0xdf, 0xab, 0x03, 0x1f, 0x76, 0x26,
+ 0x0b, 0x4f, 0xc8, 0xcf, 0x7e, 0x19, 0xe9, 0x9e, 0x3d, 0x9d, 0x74, 0x3b,
+ 0x4f, 0x20, 0xdd, 0xb3, 0xdf, 0x9e, 0x74, 0x3b, 0x41, 0xd2, 0x39, 0x93,
+ 0x8d, 0x7f, 0x42, 0xd2, 0xfd, 0x34, 0xcb, 0xaf, 0x63, 0x58, 0x35, 0xea,
+ 0x49, 0xb1, 0x68, 0x58, 0x61, 0xcf, 0xc2, 0xb7, 0xa6, 0xea, 0x9f, 0x02,
+ 0x27, 0xdc, 0xe8, 0x46, 0x3a, 0x6b, 0xd1, 0x6b, 0x8a, 0xbb, 0xc1, 0x16,
+ 0xad, 0x86, 0x16, 0x3d, 0x8b, 0xc2, 0xb3, 0x63, 0x33, 0x84, 0x64, 0xab,
+ 0x86, 0xe8, 0x02, 0x45, 0x03, 0xb4, 0x23, 0xb3, 0xd1, 0x61, 0x3b, 0xda,
+ 0xbc, 0x9c, 0x04, 0x59, 0xe2, 0x23, 0x7a, 0x0f, 0x39, 0x3b, 0x95, 0x24,
+ 0x8e, 0x5c, 0xf5, 0x14, 0xfe, 0x94, 0xfa, 0xfc, 0xa4, 0x62, 0xfb, 0x18,
+ 0x01, 0xcf, 0x75, 0xe8, 0x4c, 0xda, 0x06, 0xf8, 0x22, 0xf1, 0xfc, 0x7e,
+ 0x8a, 0x03, 0x46, 0x83, 0x12, 0xf4, 0x1b, 0x0a, 0x07, 0x8d, 0x6f, 0x31,
+ 0xe1, 0x5a, 0x67, 0xd8, 0x9a, 0x9c, 0x26, 0x9b, 0x51, 0xfa, 0x20, 0xe6,
+ 0x5d, 0xb5, 0xb5, 0x8b, 0x71, 0x81, 0x02, 0x75, 0xf4, 0x04, 0x1b, 0x39,
+ 0xb4, 0x33, 0x51, 0x3c, 0xd0, 0x2f, 0x3f, 0x36, 0x92, 0x67, 0xc5, 0xcf,
+ 0x00, 0xf7, 0x9b, 0xdf, 0xe6, 0x3b, 0x77, 0x68, 0x7f, 0x10, 0xff, 0xe4,
+ 0xb6, 0x73, 0x8f, 0xe3, 0xeb, 0x34, 0x9d, 0x26, 0x63, 0x02, 0x17, 0xc5,
+ 0xb4, 0xf1, 0xfd, 0x39, 0x45, 0x57, 0x0d, 0xf6, 0xab, 0x14, 0x14, 0x80,
+ 0x5e, 0x71, 0xa1, 0xd4, 0xf8, 0xb6, 0x60, 0x7e, 0x99, 0x50, 0xd8, 0x17,
+ 0xc3, 0xad, 0x83, 0x70, 0x87, 0x73, 0x4d, 0xfa, 0x36, 0x53, 0x40, 0xed,
+ 0x72, 0x60, 0xf3, 0x57, 0x38, 0x53, 0x2b, 0x32, 0x6d, 0x19, 0xa8, 0x50,
+ 0xe2, 0x26, 0xc3, 0x7a, 0xac, 0x76, 0x6f, 0xaf, 0xd6, 0x08, 0x84, 0xd2,
+ 0xde, 0xe8, 0x9d, 0xca, 0x2c, 0x42, 0x7d, 0xad, 0x8d, 0x16, 0x81, 0xf9,
+ 0x25, 0xf7, 0x55, 0x9d, 0x4e, 0x3c, 0xc6, 0xd5, 0x0e, 0x65, 0xd2, 0x90,
+ 0xf6, 0xf0, 0xec, 0xe3, 0xd7, 0x47, 0x47, 0x67, 0xc7, 0xaf, 0x4e, 0x8e,
+ 0xe4, 0x5c, 0x9a, 0x1f, 0xbd, 0x3b, 0xff, 0xe6, 0x04, 0x1b, 0x1e, 0x0f,
+ 0xaf, 0x31, 0x82, 0x28, 0x69, 0x3e, 0xed, 0x63, 0x25, 0x59, 0x38, 0x72,
+ 0xb7, 0x21, 0x7c, 0xc9, 0x10, 0xdd, 0x4a, 0x07, 0xc7, 0xdf, 0x81, 0xf9,
+ 0x72, 0x16, 0x7f, 0xf8, 0xce, 0x6b, 0x7e, 0xdc, 0xc0, 0x9f, 0x68, 0x3b,
+ 0x0f, 0x0c, 0x1a, 0x45, 0x1c, 0xe7, 0x85, 0xdd, 0xc0, 0xb9, 0x05, 0x56,
+ 0xbf, 0xb2, 0x2e, 0x01, 0xc3, 0xcd, 0x72, 0xa3, 0x76, 0xf1, 0x8b, 0x32,
+ 0xb4, 0x5b, 0xc4, 0xf4, 0x6c, 0x23, 0xd2, 0x02, 0xb7, 0x25, 0xcf, 0x43,
+ 0x8b, 0x25, 0xb7, 0x16, 0x5f, 0xbe, 0xf8, 0xfc, 0x3d, 0xf5, 0x51, 0x89,
+ 0xf6, 0xf1, 0xcf, 0xcf, 0x83, 0x86, 0x52, 0x74, 0x56, 0x66, 0x37, 0xa8,
+ 0xf9, 0xc3, 0xc3, 0x9c, 0x56, 0x80, 0xcf, 0xf6, 0x4c, 0xba, 0x81, 0x64,
+ 0xea, 0xe2, 0x28, 0x94, 0xa7, 0x4f, 0xa3, 0x86, 0xdc, 0xa5, 0x94, 0x83,
+ 0x85, 0x21, 0x25, 0x33, 0x5a, 0x06, 0xec, 0xf6, 0xea, 0xe8, 0x7d, 0x37,
+ 0x3a, 0x3b, 0x7a, 0xcb, 0xa0, 0x15, 0x47, 0xef, 0xbe, 0x92, 0xc6, 0x1d,
+ 0xec, 0x6a, 0xa2, 0xce, 0x1d, 0x98, 0xc5, 0xe1, 0x03, 0x59, 0x38, 0x74,
+ 0x84, 0xd7, 0xa9, 0x98, 0xb1, 0xaa, 0x40, 0xad, 0xf9, 0xc3, 0x91, 0xa5,
+ 0x0d, 0x51, 0x61, 0x69, 0x42, 0x0d, 0xea, 0x4e, 0xf7, 0xe0, 0x56, 0x44,
+ 0xfb, 0xf0, 0x47, 0x68, 0x13, 0xc0, 0x34, 0x7d, 0xb3, 0xe6, 0xef, 0x83,
+ 0x68, 0xda, 0xa6, 0x84, 0x41, 0xac, 0x4c, 0xa4, 0x33, 0x6f, 0x05, 0xd0,
+ 0xda, 0x4f, 0xa6, 0x57, 0xda, 0xe7, 0xd2, 0xf8, 0x82, 0xab, 0xcf, 0x53,
+ 0x49, 0x97, 0xa6, 0x7e, 0xa4, 0xfd, 0x37, 0x5d, 0x3c, 0x24, 0x04, 0x28,
+ 0x60, 0xa9, 0x1c, 0x04, 0xae, 0xa3, 0xac, 0xb9, 0x40, 0xe3, 0x09, 0xd8,
+ 0xcc, 0x6c, 0xc4, 0xc8, 0xa0, 0x98, 0xa3, 0x5b, 0x94, 0x98, 0x48, 0x1f,
+ 0x45, 0x2b, 0xff, 0xdf, 0x7a, 0xaf, 0xaa, 0xae, 0xd6, 0xb3, 0xd1, 0xc7,
+ 0xb2, 0x4a, 0x56, 0xda, 0xf7, 0xaf, 0xf3, 0xeb, 0x11, 0xfe, 0x3a, 0x5a,
+ 0xe9, 0x99, 0x47, 0xe5, 0xef, 0xf8, 0xf3, 0xd0, 0x0e, 0xeb, 0xad, 0xcb,
+ 0x6e, 0x22, 0x2d, 0x25, 0x3c, 0x9d, 0xa6, 0x39, 0xda, 0xf5, 0xe3, 0x6c,
+ 0x50, 0x82, 0x4e, 0x6e, 0xfb, 0x07, 0xa7, 0xf9, 0x25, 0xe5, 0x2c, 0x4e,
+ 0xaf, 0x87, 0xd5, 0xe6, 0xa6, 0xdf, 0x7b, 0xd2, 0xa4, 0x1b, 0x9a, 0xb2,
+ 0xd0, 0xb3, 0xaf, 0x0f, 0xfb, 0x7f, 0xda, 0xdc, 0xa4, 0x02, 0xdf, 0x55,
+ 0x2c, 0x95, 0x7c, 0xbe, 0xbb, 0xb9, 0xb5, 0x16, 0xb2, 0x09, 0x3c, 0x3c,
+ 0x5f, 0x06, 0xe1, 0x72, 0xb6, 0x8f, 0xd2, 0x88, 0x05, 0x98, 0xc0, 0x0c,
+ 0x3c, 0x4a, 0xb1, 0x7c, 0x0c, 0xfd, 0xfa, 0xa6, 0x91, 0x32, 0xd5, 0xd5,
+ 0x79, 0xd8, 0x83, 0x0e, 0xf0, 0x60, 0x87, 0xe7, 0xbf, 0xd7, 0x31, 0x1c,
+ 0x6b, 0x2a, 0xa3, 0xb9, 0xf3, 0x4a, 0x63, 0xde, 0x94, 0x10, 0xd5, 0xce,
+ 0xd5, 0x70, 0xd7, 0x95, 0x55, 0x0d, 0x6c, 0xf7, 0x94, 0x5d, 0x56, 0x71,
+ 0x2c, 0xd4, 0x6a, 0xa5, 0x60, 0x63, 0x06, 0xb6, 0x17, 0xa2, 0x94, 0x19,
+ 0x75, 0x22, 0xe6, 0x20, 0x3c, 0x4b, 0x4e, 0xce, 0xa7, 0xa1, 0xbf, 0x73,
+ 0x4c, 0x9a, 0xa3, 0x7a, 0x45, 0x75, 0xa4, 0x9d, 0x74, 0x40, 0x30, 0x74,
+ 0x82, 0x23, 0xfe, 0xd1, 0xa7, 0x9d, 0x5c, 0x18, 0xae, 0x83, 0xe4, 0xf1,
+ 0x27, 0xbe, 0x1c, 0x44, 0xfb, 0x63, 0x98, 0xd6, 0x38, 0x8c, 0x20, 0x74,
+ 0x44, 0xb9, 0x6d, 0xd1, 0xd7, 0x69, 0x39, 0x48, 0xcb, 0xa2, 0x6a, 0x01,
+ 0x8b, 0x10, 0x25, 0x05, 0xf6, 0x0d, 0xab, 0xe8, 0x61, 0x18, 0x69, 0x4b,
+ 0xe6, 0xc7, 0x32, 0x90, 0x25, 0x84, 0xf6, 0x1e, 0x0e, 0xf5, 0x0a, 0xe1,
+ 0x9b, 0xe0, 0xf1, 0xaa, 0x92, 0x8b, 0x14, 0xff, 0x0b, 0x37, 0xcf, 0x05,
+ 0xb5, 0xab, 0xce, 0x92, 0xf1, 0x0a, 0x36, 0x39, 0x6f, 0x1f, 0x52, 0xe1,
+ 0xe4, 0x15, 0xb8, 0x03, 0x78, 0x34, 0x94, 0x3d, 0x04, 0x73, 0x29, 0xf3,
+ 0x90, 0xce, 0x6e, 0x95, 0xd4, 0x3b, 0x11, 0xfc, 0x83, 0x60, 0xdc, 0x55,
+ 0x5e, 0xe3, 0x77, 0x33, 0x5c, 0x13, 0x93, 0x7c, 0xde, 0x76, 0xfc, 0xde,
+ 0xc2, 0x1c, 0x36, 0x49, 0x10, 0x60, 0x1e, 0x4c, 0x6d, 0xe4, 0xa7, 0x1f,
+ 0x1d, 0xdb, 0xf7, 0xe2, 0x2a, 0xad, 0xe1, 0x74, 0xe3, 0x5d, 0x9d, 0x53,
+ 0x5f, 0xdf, 0x0f, 0x95, 0x0f, 0x1e, 0x30, 0xd6, 0xa0, 0x4b, 0x1e, 0x4a,
+ 0x6b, 0x44, 0x7c, 0x94, 0x11, 0xfb, 0x24, 0x04, 0x91, 0x4c, 0x6a, 0x34,
+ 0xd1, 0xb1, 0xd6, 0x15, 0xbd, 0xcc, 0xcf, 0x09, 0xbb, 0xb5, 0xf9, 0x5d,
+ 0xf2, 0xd9, 0x58, 0x52, 0x8f, 0x0e, 0x23, 0xf1, 0xc5, 0x11, 0xd0, 0xca,
+ 0x6d, 0x89, 0x6d, 0x9b, 0x72, 0xdb, 0xfc, 0x6d, 0x9c, 0xce, 0x45, 0xba,
+ 0x97, 0xce, 0x4e, 0xb0, 0xe1, 0x63, 0x6e, 0x16, 0x61, 0xca, 0xd7, 0x4a,
+ 0x9d, 0x16, 0x97, 0x3d, 0x59, 0x77, 0x15, 0xbe, 0xf7, 0x6f, 0x8b, 0xa2,
+ 0x7d, 0xd8, 0x67, 0x78, 0x5c, 0x0c, 0x12, 0xc6, 0x05, 0x32, 0xc1, 0x04,
+ 0xaa, 0xc4, 0x61, 0x77, 0x8a, 0xf5, 0x74, 0x69, 0xbd, 0x90, 0x5f, 0x3e,
+ 0x41, 0x8d, 0xd6, 0xf7, 0x50, 0xdb, 0xcf, 0xd3, 0xbb, 0xfa, 0x61, 0x04,
+ 0xe1, 0x87, 0x18, 0xcf, 0x5a, 0x78, 0x21, 0x70, 0xcf, 0x5f, 0xc2, 0x92,
+ 0xa6, 0x02, 0x9e, 0xea, 0x9d, 0x7b, 0xc3, 0x07, 0xc4, 0x0c, 0xd5, 0xfe,
+ 0xc7, 0x74, 0xc5, 0xef, 0x03, 0x21, 0x52, 0x0f, 0x0c, 0xbf, 0xdf, 0x00,
+ 0x12, 0xbd, 0xcb, 0x26, 0xb3, 0x89, 0x75, 0x7b, 0xd2, 0x7b, 0x78, 0xbe,
+ 0x09, 0x30, 0xd5, 0xf4, 0x47, 0x67, 0x4c, 0xcd, 0x98, 0xcc, 0x91, 0xb6,
+ 0x3f, 0x1c, 0x5b, 0x3d, 0x5b, 0x2c, 0x40, 0x12, 0x53, 0xd4, 0xd0, 0x53,
+ 0x91, 0xcc, 0xb5, 0x78, 0x98, 0x29, 0x88, 0xc1, 0x32, 0x29, 0x2a, 0x25,
+ 0xeb, 0x34, 0xf1, 0x9c, 0x84, 0x04, 0x5d, 0xc0, 0xdd, 0x93, 0x13, 0xee,
+ 0x2a, 0x2b, 0x65, 0x97, 0x14, 0xfe, 0x20, 0xd6, 0x31, 0xd3, 0x25, 0x79,
+ 0x63, 0xe6, 0x87, 0xbf, 0xf3, 0x65, 0x21, 0x42, 0x3e, 0x0d, 0x60, 0xa4,
+ 0xdb, 0x6c, 0x54, 0x5f, 0x51, 0x53, 0x73, 0x35, 0xb1, 0x2b, 0x81, 0xc3,
+ 0xc4, 0x60, 0x5a, 0xe6, 0x03, 0xfe, 0x0c, 0xc2, 0x8e, 0x76, 0xd9, 0x6a,
+ 0xa2, 0x6d, 0xc4, 0xc9, 0x23, 0xe8, 0x52, 0xa7, 0xdb, 0x9d, 0x82, 0x6f,
+ 0xeb, 0xac, 0xcd, 0x1b, 0x0c, 0xe5, 0x04, 0x0e, 0xfc, 0x05, 0x76, 0x2c,
+ 0xf7, 0xec, 0x7e, 0x45, 0xe6, 0xe9, 0xe9, 0x61, 0xc6, 0xe3, 0xb6, 0x72,
+ 0xcd, 0x0d, 0x46, 0xbf, 0x16, 0x09, 0xc9, 0x3d, 0x4b, 0xa8, 0x7b, 0x2a,
+ 0x67, 0x06, 0x10, 0x2a, 0xe7, 0x75, 0x36, 0x2e, 0x82, 0xa1, 0x3f, 0x38,
+ 0xe0, 0x2b, 0x13, 0x1e, 0xe1, 0xed, 0x8a, 0x06, 0x34, 0x10, 0x27, 0xf4,
+ 0x32, 0x91, 0xdf, 0x33, 0x38, 0xf0, 0xca, 0x25, 0x3f, 0xf4, 0x95, 0x7d,
+ 0xc8, 0x2b, 0x13, 0x95, 0x57, 0xf8, 0xce, 0xe1, 0x45, 0xc0, 0x83, 0xab,
+ 0xd7, 0xdd, 0x08, 0xf4, 0xf7, 0xaf, 0xba, 0xd1, 0x39, 0xe8, 0xe2, 0x6b,
+ 0xa4, 0xc0, 0x6f, 0x6e, 0x6c, 0xed, 0x50, 0x9b, 0xa2, 0x11, 0xeb, 0x94,
+ 0x81, 0xf6, 0x70, 0xec, 0x21, 0xda, 0xbc, 0x46, 0x9a, 0xe1, 0xe3, 0x3d,
+ 0x5b, 0x11, 0x84, 0x38, 0x0e, 0x5f, 0x77, 0xa3, 0xed, 0x09, 0xed, 0xf8,
+ 0xe6, 0x57, 0x41, 0xba, 0x13, 0x6b, 0xda, 0xd6, 0x4c, 0xc5, 0x65, 0x36,
+ 0x14, 0x94, 0x52, 0xbc, 0x1d, 0xf1, 0x54, 0x5e, 0x6a, 0x9c, 0xc1, 0x36,
+ 0xac, 0x9e, 0xa6, 0xa1, 0x18, 0x4e, 0x5e, 0x98, 0x86, 0x8d, 0xda, 0x76,
+ 0x03, 0x29, 0x0c, 0x42, 0xfc, 0x0a, 0x9d, 0x38, 0xd4, 0x18, 0x25, 0xc1,
+ 0x42, 0xdc, 0xac, 0x60, 0x9c, 0x58, 0xa7, 0x26, 0xaa, 0xf2, 0x15, 0xbe,
+ 0xa0, 0xe9, 0x86, 0x12, 0x84, 0x2b, 0x42, 0xd1, 0xd3, 0xa0, 0xa9, 0xfd,
+ 0xf1, 0xdf, 0x50, 0xe4, 0xd0, 0xb4, 0xf8, 0xa4, 0x1a, 0xf8, 0x1c, 0xc6,
+ 0x9c, 0xb2, 0xba, 0x51, 0x5b, 0xf3, 0x46, 0x9e, 0x9d, 0xa2, 0x3d, 0x3c,
+ 0x4a, 0xb5, 0xc3, 0xe4, 0x84, 0x62, 0x31, 0x43, 0x6c, 0x79, 0x28, 0x38,
+ 0xb8, 0x48, 0xa3, 0xd8, 0xd0, 0xa8, 0x1a, 0xe3, 0x03, 0x63, 0x50, 0x83,
+ 0x3d, 0x0a, 0x50, 0xd9, 0x0a, 0x9a, 0x8f, 0x4a, 0x32, 0x77, 0x4a, 0x96,
+ 0xb6, 0xa1, 0xc4, 0xea, 0xdf, 0xe8, 0x46, 0xae, 0xe6, 0xcb, 0x3f, 0x23,
+ 0xd0, 0x36, 0x81, 0x4d, 0x96, 0x00, 0x4f, 0x6a, 0xbe, 0xb9, 0xf1, 0xd4,
+ 0x37, 0xdf, 0x2e, 0x96, 0xb8, 0x63, 0x2a, 0x14, 0xcc, 0xaa, 0x3a, 0x0e,
+ 0x74, 0x3c, 0xe3, 0xd4, 0x83, 0xb3, 0xd3, 0xb3, 0xed, 0x35, 0x83, 0x43,
+ 0xc7, 0x0d, 0x7c, 0x04, 0x5b, 0x35, 0x52, 0x70, 0x03, 0x83, 0xba, 0xaa,
+ 0x1d, 0x0a, 0x09, 0x9f, 0xc9, 0xf7, 0x06, 0x0d, 0x53, 0x6d, 0x31, 0x4f,
+ 0xdf, 0xa3, 0x50, 0xad, 0x85, 0xd9, 0x48, 0xe9, 0xee, 0x23, 0xef, 0x9f,
+ 0x15, 0xb6, 0x6c, 0xae, 0x61, 0xba, 0x4e, 0xfb, 0x5a, 0x4a, 0xb4, 0x18,
+ 0x42, 0x21, 0xa5, 0x63, 0xc2, 0x7d, 0x8a, 0x9a, 0xad, 0xb6, 0x11, 0xa8,
+ 0xa1, 0x35, 0x49, 0xce, 0xf4, 0x0e, 0xa4, 0xe4, 0x49, 0x8e, 0x92, 0x7d,
+ 0x90, 0x42, 0xc9, 0xe6, 0x96, 0x66, 0xb5, 0xd1, 0xe4, 0x77, 0x62, 0x94,
+ 0x08, 0xad, 0x45, 0x5a, 0x99, 0x07, 0x73, 0x98, 0xd4, 0xda, 0x12, 0x95,
+ 0x59, 0xcc, 0x34, 0x7e, 0x6e, 0xb8, 0x52, 0x08, 0x47, 0x8c, 0xa0, 0x8d,
+ 0xde, 0x9d, 0xf4, 0xcf, 0x9d, 0x1c, 0x06, 0x3f, 0x70, 0xab, 0x25, 0x9a,
+ 0x4e, 0x12, 0xab, 0x93, 0x69, 0x7d, 0x72, 0xdc, 0x3f, 0xef, 0x85, 0x7a,
+ 0x17, 0xef, 0x45, 0x7d, 0x44, 0x2d, 0x79, 0xed, 0x64, 0xc4, 0x8f, 0xb9,
+ 0x67, 0x0f, 0x3a, 0x59, 0x39, 0x31, 0x83, 0xcc, 0x5e, 0x2e, 0x25, 0xb3,
+ 0xb9, 0x00, 0xfe, 0x24, 0x70, 0x8a, 0x9f, 0xb2, 0x6b, 0x54, 0xaa, 0xb2,
+ 0x35, 0xc8, 0x5f, 0xcd, 0x06, 0xb1, 0xd3, 0x70, 0x87, 0xb5, 0xf7, 0xfb,
+ 0xc9, 0xa0, 0xc0, 0x5a, 0x21, 0xd0, 0x91, 0xae, 0x7d, 0x11, 0xb3, 0x2a,
+ 0x7c, 0xc5, 0x24, 0x92, 0x56, 0x4b, 0x8d, 0x60, 0xdf, 0x30, 0x4a, 0xa9,
+ 0xfb, 0x1c, 0xb9, 0xa1, 0xf1, 0xe9, 0x47, 0x31, 0x17, 0x12, 0xc2, 0xcd,
+ 0x05, 0x01, 0xca, 0x4d, 0x39, 0xb2, 0xd8, 0x04, 0x59, 0xc0, 0x9c, 0x11,
+ 0xe3, 0x70, 0x5f, 0x9c, 0x26, 0xe3, 0x70, 0xa3, 0x76, 0x82, 0x12, 0xee,
+ 0xa3, 0x5a, 0xe9, 0x94, 0xfd, 0xd1, 0x66, 0xd6, 0x73, 0xda, 0xe1, 0xc5,
+ 0xd9, 0x88, 0x6b, 0x76, 0xaa, 0x66, 0xbf, 0x24, 0x46, 0x22, 0x45, 0x01,
+ 0x4a, 0x89, 0x29, 0x08, 0x48, 0x5d, 0xcd, 0xd9, 0x49, 0x76, 0xd9, 0x37,
+ 0x8a, 0x65, 0xe3, 0xef, 0xb8, 0x4c, 0x93, 0x32, 0x1d, 0xba, 0xa1, 0x06,
+ 0x15, 0x21, 0x74, 0x74, 0x3c, 0x34, 0x02, 0xe0, 0xfc, 0xe1, 0xf8, 0xd5,
+ 0x89, 0xa1, 0x97, 0xd0, 0x87, 0x0a, 0x7a, 0xcd, 0x52, 0x11, 0x89, 0x43,
+ 0xaf, 0x00, 0xda, 0x11, 0x2f, 0xe6, 0x3e, 0xcb, 0x33, 0xf8, 0x7e, 0xc4,
+ 0x86, 0xd8, 0x45, 0xc6, 0xaa, 0xd8, 0x95, 0xd5, 0x4e, 0x2a, 0xed, 0xe7,
+ 0x87, 0x34, 0x90, 0x13, 0x7b, 0xad, 0xce, 0xfd, 0x39, 0xd5, 0xd0, 0xcb,
+ 0x6b, 0x9a, 0x22, 0xc4, 0xc2, 0xad, 0x45, 0xdc, 0x62, 0x3a, 0x6a, 0x0f,
+ 0x28, 0x2d, 0x18, 0x40, 0x2d, 0x59, 0x27, 0x54, 0x2a, 0x4f, 0xd3, 0x4c,
+ 0xb9, 0xaf, 0xaa, 0xad, 0x4e, 0x68, 0x62, 0x8c, 0x17, 0xa5, 0xa0, 0x59,
+ 0xad, 0xbe, 0x7e, 0x7f, 0xfa, 0x36, 0x3e, 0x3f, 0x5d, 0x43, 0xae, 0xa2,
+ 0xa1, 0xe7, 0x27, 0x46, 0x56, 0x9a, 0x64, 0xe9, 0xa0, 0x1d, 0x8b, 0x4f,
+ 0x7d, 0xb5, 0x5a, 0x13, 0x28, 0x13, 0xbe, 0x4d, 0x69, 0x7a, 0xfa, 0x96,
+ 0x87, 0x82, 0x91, 0xb3, 0x5a, 0x4a, 0xea, 0x0b, 0xb0, 0xde, 0x30, 0x41,
+ 0x0b, 0xc7, 0xa4, 0x1d, 0x34, 0x0a, 0xc0, 0x06, 0xb3, 0xea, 0x3e, 0x12,
+ 0xdc, 0xb0, 0x8a, 0x2b, 0xb5, 0x7d, 0xb8, 0x39, 0xd3, 0xdc, 0xc4, 0xa0,
+ 0xb4, 0x23, 0xd6, 0x11, 0x23, 0xdf, 0xd4, 0x05, 0x1c, 0xf6, 0xa4, 0x2c,
+ 0x8b, 0x5b, 0xbd, 0xb4, 0x09, 0xfc, 0x10, 0x76, 0x1d, 0xa6, 0x8e, 0xfb,
+ 0x5a, 0xde, 0xcf, 0x07, 0x0c, 0xe3, 0x36, 0x0d, 0x02, 0xa6, 0xbe, 0xb4,
+ 0x8f, 0xd8, 0xd9, 0x29, 0xbc, 0x04, 0xe3, 0xed, 0x8d, 0x8d, 0x87, 0xdc,
+ 0xc4, 0x5a, 0xf5, 0x1e, 0xd7, 0xe5, 0x0c, 0x01, 0xc6, 0xe6, 0xa4, 0xd5,
+ 0x9e, 0xa0, 0x38, 0xa6, 0x42, 0x79, 0xe7, 0x9d, 0xae, 0x74, 0xdf, 0xc1,
+ 0x2c, 0x6a, 0x74, 0x0f, 0x5a, 0x3c, 0xa5, 0x2b, 0x29, 0x50, 0xfb, 0x8b,
+ 0x27, 0x27, 0xa4, 0xdf, 0x20, 0x1a, 0xaf, 0xf0, 0x1a, 0x97, 0xca, 0xdb,
+ 0x62, 0x83, 0x0c, 0x3b, 0x92, 0xc1, 0xf9, 0xd1, 0x8c, 0x55, 0xea, 0x3c,
+ 0x71, 0xce, 0x69, 0x1b, 0xf7, 0xbe, 0xbb, 0x02, 0x7f, 0xc8, 0x72, 0xb5,
+ 0x2e, 0x8b, 0xd1, 0x6c, 0x48, 0x9b, 0x8b, 0x59, 0x15, 0x59, 0x7d, 0x1f,
+ 0x0d, 0xb8, 0xb7, 0x97, 0xa2, 0xa9, 0xe2, 0xd0, 0x16, 0x22, 0x80, 0x5d,
+ 0xaa, 0x6d, 0xad, 0x95, 0x9f, 0x42, 0x00, 0x39, 0x72, 0x7c, 0x93, 0x39,
+ 0x42, 0xa5, 0x4d, 0x29, 0x1b, 0x27, 0x65, 0xdb, 0x51, 0x83, 0xa1, 0xfb,
+ 0x68, 0x55, 0xda, 0x54, 0x78, 0x42, 0x11, 0x9b, 0xd4, 0x52, 0x7b, 0x4e,
+ 0xc9, 0x0f, 0xc3, 0x16, 0x48, 0xc8, 0xf5, 0x94, 0x9c, 0xf5, 0x65, 0x52,
+ 0x81, 0xf0, 0x6b, 0x8e, 0xb7, 0xf6, 0x94, 0x0d, 0x77, 0x77, 0x2f, 0x8a,
+ 0xc9, 0x5b, 0x53, 0xee, 0xd9, 0xc6, 0x8e, 0xcb, 0x84, 0xc8, 0x66, 0x5a,
+ 0xd8, 0xee, 0xf8, 0x25, 0x1a, 0xd8, 0x08, 0x73, 0xb8, 0x43, 0x6b, 0x31,
+ 0x45, 0x42, 0x73, 0x96, 0xa3, 0xb3, 0xaf, 0x22, 0x6f, 0xa9, 0x89, 0xce,
+ 0x25, 0x55, 0xb0, 0x46, 0x88, 0x2a, 0x30, 0x0a, 0xa5, 0x2f, 0x8f, 0x32,
+ 0x8c, 0x33, 0xe1, 0xe5, 0xad, 0x1f, 0x8d, 0x56, 0x15, 0x0b, 0xcc, 0xc0,
+ 0xc0, 0x9c, 0xc8, 0xaf, 0xf6, 0x0c, 0x58, 0x19, 0x0a, 0xe7, 0xd6, 0x70,
+ 0xdb, 0xdf, 0x7d, 0xe7, 0xdc, 0xcf, 0xe8, 0xcf, 0x58, 0x9b, 0x87, 0x54,
+ 0x2b, 0x28, 0x21, 0xa3, 0xc2, 0x9d, 0xae, 0xa7, 0xf9, 0x33, 0x5f, 0x83,
+ 0x8a, 0x43, 0xd0, 0x08, 0xe4, 0x71, 0x15, 0xdf, 0xf0, 0x65, 0x4a, 0xf2,
+ 0x5b, 0xa0, 0x6d, 0xb3, 0x6e, 0x64, 0x93, 0x09, 0x59, 0xe5, 0x89, 0x8f,
+ 0x03, 0x05, 0x1a, 0x74, 0x75, 0x68, 0x1a, 0xa0, 0xa9, 0x87, 0x6c, 0x12,
+ 0xab, 0xb2, 0x2e, 0xd9, 0x2b, 0x8c, 0xa2, 0x4a, 0x67, 0xc2, 0x59, 0x1c,
+ 0x68, 0x33, 0x63, 0xd9, 0xb2, 0x12, 0x5c, 0x5e, 0x5a, 0x17, 0x49, 0x79,
+ 0x6e, 0x13, 0xcd, 0x85, 0x45, 0xc3, 0x32, 0x15, 0x1f, 0xa0, 0x28, 0x84,
+ 0xa1, 0xf6, 0x4e, 0x88, 0x09, 0x2e, 0x80, 0x15, 0x1c, 0xa7, 0x49, 0x9c,
+ 0x53, 0x69, 0x5b, 0xe0, 0xb4, 0xf6, 0x8c, 0xf1, 0x2d, 0xb2, 0x3a, 0xe4,
+ 0x13, 0xd1, 0x06, 0x10, 0xd4, 0xc8, 0xa3, 0x60, 0x6f, 0xf6, 0x30, 0x9d,
+ 0xd6, 0xe6, 0xea, 0xfc, 0x8b, 0x72, 0x6d, 0xaf, 0x11, 0xfc, 0xf7, 0x8d,
+ 0xdf, 0x16, 0xd3, 0x53, 0x83, 0x32, 0x6c, 0x36, 0x87, 0x09, 0xea, 0x57,
+ 0x2c, 0x91, 0xaf, 0x30, 0x00, 0xa5, 0x19, 0x4f, 0x6c, 0xea, 0x10, 0xae,
+ 0xc0, 0x04, 0x2d, 0x6c, 0xbf, 0x72, 0xdb, 0x4a, 0x06, 0xcc, 0x87, 0xa5,
+ 0x60, 0x87, 0xed, 0x15, 0xc2, 0x4e, 0xed, 0x49, 0x72, 0x17, 0xd3, 0x63,
+ 0xd5, 0xbc, 0xec, 0x47, 0x9b, 0x22, 0x20, 0x4d, 0xd1, 0x5d, 0x9a, 0x91,
+ 0xbe, 0x70, 0xd1, 0x48, 0xb4, 0xe4, 0xf2, 0x4e, 0x42, 0xf7, 0xa5, 0x44,
+ 0xf4, 0x70, 0xd1, 0x94, 0xa2, 0xaf, 0xb8, 0x38, 0x1f, 0x02, 0x12, 0xc6,
+ 0x87, 0x01, 0xc1, 0x74, 0x65, 0xe4, 0x46, 0x7a, 0xaa, 0x67, 0x00, 0x54,
+ 0xd1, 0xf6, 0xc6, 0x26, 0x98, 0xde, 0x1b, 0x5b, 0xe8, 0xfa, 0x85, 0xff,
+ 0x6e, 0x1b, 0x94, 0xcd, 0xc6, 0x31, 0xe1, 0x67, 0xc9, 0xbb, 0xc8, 0x8e,
+ 0x12, 0x38, 0x4b, 0x77, 0x77, 0x01, 0x8c, 0xd4, 0x26, 0x6c, 0x40, 0xbc,
+ 0x60, 0xaa, 0x96, 0x90, 0x94, 0x9c, 0x30, 0xf3, 0x22, 0x1f, 0x5a, 0xfa,
+ 0x2c, 0xf8, 0xbd, 0x41, 0x04, 0x1e, 0x42, 0x18, 0x6a, 0x77, 0x7a, 0x90,
+ 0x0d, 0x77, 0x31, 0x9d, 0x69, 0x13, 0x91, 0x2a, 0x82, 0xc2, 0x0e, 0x2b,
+ 0xbd, 0x9b, 0x57, 0xc5, 0x8a, 0xbb, 0xac, 0x65, 0x97, 0xdc, 0xc5, 0x21,
+ 0x55, 0x59, 0xa3, 0xf0, 0x14, 0xac, 0x7c, 0x24, 0xf5, 0x1e, 0xe6, 0xee,
+ 0x01, 0x7f, 0x23, 0x11, 0xbd, 0xc3, 0xcc, 0xbf, 0xd0, 0x5c, 0x77, 0xfe,
+ 0xd7, 0x76, 0xd0, 0xb7, 0xa1, 0xbd, 0xdd, 0x14, 0x01, 0x07, 0x55, 0x52,
+ 0xab, 0x93, 0x36, 0xb2, 0x58, 0x68, 0x42, 0xf2, 0x7c, 0x28, 0x44, 0xc7,
+ 0xbe, 0x2b, 0xeb, 0xcb, 0xaa, 0xd2, 0xb1, 0x60, 0xba, 0xce, 0xaa, 0x65,
+ 0xb3, 0x19, 0x4f, 0x1e, 0x54, 0x14, 0x30, 0x5e, 0xa5, 0x34, 0xd9, 0x97,
+ 0xbf, 0x78, 0xe1, 0x8d, 0xe3, 0xb7, 0x07, 0x62, 0x04, 0x53, 0x43, 0xfa,
+ 0xb5, 0x86, 0x0b, 0x92, 0xc6, 0x30, 0x74, 0x15, 0xdd, 0x6e, 0x34, 0x63,
+ 0x50, 0x0b, 0xba, 0x3b, 0xda, 0x37, 0x72, 0xe3, 0x7a, 0x9c, 0xcb, 0x14,
+ 0x38, 0x8c, 0x37, 0xb6, 0xa6, 0xf0, 0x19, 0x8c, 0x45, 0x6b, 0x72, 0xcc,
+ 0x49, 0x49, 0xe0, 0xd8, 0x06, 0x2a, 0x15, 0xc6, 0x10, 0xd0, 0xd9, 0xb5,
+ 0x26, 0x12, 0x1d, 0xd4, 0xa8, 0xe9, 0x72, 0x57, 0x64, 0x14, 0xaf, 0xb8,
+ 0xec, 0x36, 0x53, 0x10, 0x11, 0x90, 0x1f, 0x90, 0x10, 0xa6, 0xc0, 0xa2,
+ 0x31, 0x4f, 0x76, 0xa0, 0x4d, 0x9c, 0x2c, 0x40, 0x27, 0xeb, 0xcf, 0xab,
+ 0x94, 0xbe, 0xa4, 0x70, 0xab, 0xac, 0x30, 0x62, 0xc8, 0x9b, 0x88, 0x2c,
+ 0x2a, 0xc2, 0x77, 0x8d, 0xb6, 0xb6, 0x5f, 0xec, 0x74, 0xf9, 0xef, 0xbb,
+ 0x1b, 0x2f, 0x99, 0x17, 0x8f, 0x8f, 0xce, 0x5f, 0x47, 0xa3, 0x12, 0x4e,
+ 0x42, 0xdb, 0x67, 0x8f, 0x3f, 0x8b, 0xd3, 0xa4, 0xbc, 0x02, 0xdb, 0x0d,
+ 0xb1, 0xd5, 0x63, 0x6c, 0xf4, 0x1d, 0x6f, 0x6c, 0x84, 0xb2, 0x02, 0x7f,
+ 0xe7, 0xc8, 0x4c, 0x93, 0xd7, 0x56, 0xb0, 0xef, 0xf0, 0x67, 0xff, 0xbe,
+ 0x12, 0x65, 0x93, 0x64, 0xfa, 0xe8, 0x52, 0xed, 0xed, 0x56, 0xdd, 0x3e,
+ 0x5a, 0x62, 0x31, 0x6e, 0xe3, 0xfc, 0x3e, 0x72, 0x4d, 0x86, 0x4d, 0xd4,
+ 0x82, 0x91, 0xc7, 0x1b, 0x79, 0x58, 0xca, 0x1e, 0x6c, 0x1a, 0xf2, 0x1b,
+ 0x01, 0x0f, 0x49, 0x5b, 0x5f, 0xb4, 0xc8, 0xc5, 0xab, 0x6c, 0xfd, 0xd5,
+ 0xf7, 0x6b, 0x74, 0xff, 0xa0, 0xdf, 0x78, 0x30, 0xc1, 0x60, 0xcb, 0x48,
+ 0x8d, 0xbf, 0x20, 0x44, 0x63, 0x25, 0x00, 0x54, 0x65, 0x8a, 0x7d, 0x26,
+ 0x58, 0x8f, 0xce, 0x59, 0x46, 0x3f, 0xad, 0x05, 0x87, 0x25, 0x0b, 0xde,
+ 0xc0, 0x5f, 0x38, 0xb4, 0x4d, 0xb1, 0x91, 0x2f, 0x79, 0x14, 0xfc, 0x0e,
+ 0xf0, 0x8b, 0x1a, 0x70, 0xd0, 0x88, 0xe5, 0x70, 0x2a, 0xb8, 0x48, 0xfc,
+ 0x6f, 0xd4, 0x6e, 0xbc, 0xdd, 0x20, 0x95, 0xe7, 0x89, 0xbb, 0x61, 0x95,
+ 0x4b, 0x76, 0xd1, 0xd3, 0x44, 0x0d, 0x16, 0x63, 0xa0, 0xf8, 0x0c, 0x8f,
+ 0x6a, 0x73, 0x16, 0x4b, 0x10, 0x88, 0x66, 0xda, 0x26, 0xd0, 0xaf, 0x49,
+ 0x1f, 0xdc, 0x01, 0x8f, 0x3e, 0xf8, 0x50, 0x4c, 0x96, 0x15, 0xf5, 0x0c,
+ 0x0f, 0x13, 0xe8, 0x5b, 0x17, 0x29, 0x94, 0x7a, 0x04, 0x20, 0xbe, 0xa5,
+ 0xba, 0xb0, 0x41, 0xf5, 0xc8, 0xa6, 0x18, 0x4b, 0x82, 0xe3, 0x69, 0x6b,
+ 0x64, 0x83, 0x77, 0x09, 0x99, 0x71, 0x03, 0xea, 0x28, 0x81, 0xf2, 0x0a,
+ 0x8c, 0x52, 0xf4, 0x7e, 0x89, 0x42, 0x79, 0x81, 0x26, 0x31, 0x0a, 0x9c,
+ 0x5a, 0x83, 0xcb, 0xea, 0x8d, 0xd0, 0xf1, 0x3d, 0x15, 0x8d, 0x3c, 0x75,
+ 0xef, 0x0f, 0xcf, 0xce, 0xa3, 0xf3, 0x53, 0xd7, 0xc3, 0xc4, 0x98, 0x83,
+ 0x04, 0xc9, 0x02, 0x46, 0x72, 0x19, 0x8e, 0xbb, 0xe8, 0x44, 0x6d, 0x3f,
+ 0x6c, 0x71, 0xcf, 0xf0, 0x75, 0x4f, 0x45, 0x0e, 0x53, 0x41, 0xc6, 0x6b,
+ 0x52, 0x2b, 0x00, 0x30, 0x41, 0xd4, 0x6b, 0xc7, 0x20, 0xd9, 0x02, 0x20,
+ 0xcb, 0xad, 0x65, 0x07, 0x70, 0xf5, 0x50, 0xc4, 0xd3, 0xab, 0x02, 0x99,
+ 0xb0, 0x5a, 0xee, 0x61, 0x20, 0x7a, 0x38, 0xad, 0x0f, 0xe7, 0x72, 0x93,
+ 0x8c, 0xb3, 0x91, 0x43, 0x95, 0x60, 0xa8, 0x40, 0x50, 0xed, 0xf4, 0x19,
+ 0x4a, 0xb5, 0xb9, 0xc4, 0x52, 0x2f, 0x26, 0x17, 0xd2, 0x4b, 0x3d, 0x00,
+ 0x92, 0x54, 0x81, 0xa1, 0xb5, 0x71, 0x72, 0xe9, 0xdb, 0x98, 0x4e, 0x0e,
+ 0x8f, 0x83, 0xc4, 0x51, 0xdb, 0xbd, 0xc4, 0xe9, 0xf9, 0xfb, 0x39, 0x0f,
+ 0x85, 0x99, 0x76, 0x86, 0x1c, 0x57, 0xb8, 0x76, 0x4a, 0xc9, 0xcb, 0x10,
+ 0xcd, 0x86, 0xfb, 0xfc, 0x14, 0x56, 0xc2, 0xb7, 0xf6, 0xf5, 0x49, 0x87,
+ 0xaa, 0xc5, 0xde, 0x8d, 0xa3, 0x01, 0xea, 0x4f, 0xdd, 0x38, 0x6b, 0xfe,
+ 0x19, 0x5b, 0x04, 0xd3, 0xf1, 0x32, 0x20, 0xfb, 0x69, 0xdc, 0x07, 0xa4,
+ 0x8d, 0x11, 0x37, 0x4e, 0x77, 0xed, 0x28, 0xa5, 0xf7, 0x6d, 0x03, 0x3f,
+ 0xf2, 0xf2, 0x91, 0x7b, 0x03, 0xef, 0x6e, 0xf8, 0x95, 0x8f, 0xc6, 0x40,
+ 0x2e, 0x63, 0xce, 0xe1, 0x7a, 0x9f, 0x4e, 0x53, 0x92, 0x54, 0x4e, 0x3b,
+ 0x06, 0xf7, 0xda, 0x34, 0x00, 0x92, 0xe4, 0xe7, 0x93, 0x73, 0xeb, 0x69,
+ 0xab, 0x73, 0xf9, 0x89, 0xfd, 0xc1, 0xe2, 0xb2, 0x95, 0x96, 0xb5, 0x2a,
+ 0x22, 0xb9, 0x60, 0x47, 0x8d, 0xe8, 0x6f, 0xde, 0xbf, 0xfe, 0x9b, 0xee,
+ 0xd7, 0x5a, 0x57, 0xf8, 0xd6, 0xb3, 0xac, 0xf8, 0x3b, 0x4e, 0x2e, 0x89,
+ 0x0d, 0xb0, 0x0b, 0xee, 0x6f, 0x63, 0xf9, 0xfc, 0x2f, 0x01, 0x5c, 0xf2,
+ 0x81, 0x86, 0xb8, 0xa7, 0x65, 0xb4, 0x8a, 0x49, 0x3d, 0xf0, 0x5c, 0x5f,
+ 0xbc, 0x5c, 0xdb, 0xbd, 0x5d, 0xf2, 0x29, 0xbf, 0x3e, 0xdc, 0xdd, 0xde,
+ 0xda, 0x5c, 0xeb, 0x45, 0xab, 0xad, 0x8b, 0x7b, 0x2d, 0xb8, 0x4c, 0x77,
+ 0x95, 0x4a, 0x78, 0x26, 0x75, 0x7a, 0x37, 0x45, 0x8e, 0x5e, 0x3d, 0xfa,
+ 0xee, 0xec, 0x9d, 0xb7, 0x46, 0x58, 0x93, 0x97, 0xb6, 0x35, 0x6f, 0x8d,
+ 0xd6, 0x4e, 0x69, 0x8c, 0xaf, 0x35, 0x31, 0x88, 0x39, 0x1b, 0x05, 0x12,
+ 0xa3, 0x5e, 0x97, 0x19, 0xda, 0xd7, 0x1d, 0x24, 0x49, 0xe7, 0xa4, 0xc8,
+ 0x47, 0x60, 0x9d, 0x9e, 0x62, 0x9b, 0x9f, 0xb4, 0x03, 0xc6, 0xf3, 0x83,
+ 0xab, 0x7b, 0xec, 0x69, 0x69, 0x5e, 0x41, 0x39, 0x58, 0x10, 0x0b, 0x8e,
+ 0x45, 0xfc, 0xb6, 0x4b, 0xef, 0xe6, 0x7e, 0x66, 0xf0, 0x5b, 0xfa, 0x21,
+ 0xb5, 0xd5, 0x34, 0x70, 0x80, 0x57, 0x33, 0xf4, 0xcc, 0x60, 0xa8, 0xb0,
+ 0x0e, 0x25, 0x49, 0x3c, 0x38, 0x45, 0xfa, 0x8c, 0x7b, 0xe4, 0xee, 0x62,
+ 0x8a, 0x96, 0xa0, 0x93, 0x7e, 0x9f, 0x42, 0xcb, 0xa1, 0x54, 0x28, 0xb6,
+ 0x58, 0xdf, 0xfe, 0xf5, 0xfc, 0x7c, 0x2d, 0x98, 0xac, 0x40, 0xaf, 0xaf,
+ 0x6a, 0xb4, 0x7d, 0x8d, 0x55, 0x25, 0x4e, 0x43, 0x29, 0x3c, 0x5e, 0xe3,
+ 0xbc, 0x04, 0x63, 0xd3, 0xd2, 0x63, 0xd6, 0x9b, 0x92, 0x35, 0x2b, 0x6a,
+ 0x39, 0xe3, 0x83, 0x00, 0x88, 0xbb, 0x21, 0x0f, 0x88, 0x89, 0x2b, 0x1b,
+ 0xdf, 0x05, 0xf7, 0xaf, 0x48, 0xf2, 0x66, 0x07, 0x3f, 0x12, 0x99, 0x74,
+ 0x13, 0xa4, 0x77, 0x58, 0x47, 0x84, 0xf6, 0xf3, 0x33, 0xdf, 0xf2, 0x3b,
+ 0x90, 0x42, 0x5a, 0x35, 0x74, 0x39, 0x4e, 0x60, 0x5a, 0xa2, 0xbe, 0xb6,
+ 0x85, 0x15, 0xdd, 0x60, 0x7e, 0x40, 0xe8, 0xb6, 0xe6, 0x6c, 0x01, 0xbe,
+ 0x88, 0xdb, 0xf9, 0x02, 0x6e, 0x7e, 0x00, 0x1d, 0x54, 0xcc, 0x10, 0x90,
+ 0xe8, 0xbf, 0xef, 0x6a, 0x70, 0x32, 0x06, 0xe6, 0xa7, 0x0c, 0xb8, 0x49,
+ 0x02, 0xad, 0x70, 0x7e, 0xdb, 0xf3, 0x66, 0x82, 0xfb, 0x0d, 0xde, 0xdf,
+ 0x7d, 0x11, 0xe0, 0xfd, 0x77, 0xa7, 0xe7, 0x47, 0x7b, 0x74, 0xe9, 0x5b,
+ 0x04, 0x77, 0xe9, 0xad, 0x2d, 0xb5, 0x07, 0x58, 0x2c, 0x9e, 0x0b, 0x5e,
+ 0x0d, 0x0a, 0x49, 0xdd, 0xe8, 0x6e, 0x48, 0xe2, 0x50, 0x8d, 0x25, 0x9e,
+ 0x52, 0x0e, 0xd5, 0xd5, 0x73, 0xfb, 0x16, 0x12, 0x72, 0x6c, 0xe6, 0x70,
+ 0x0a, 0x6d, 0xb8, 0x8f, 0xc6, 0x4d, 0x90, 0xcd, 0x84, 0x82, 0xcc, 0x9a,
+ 0xb7, 0xc7, 0x43, 0xac, 0x7f, 0x92, 0x8b, 0xa9, 0xf7, 0x88, 0x73, 0xe2,
+ 0x1c, 0x8b, 0xb9, 0x21, 0xee, 0xf9, 0xca, 0xa3, 0x0d, 0x56, 0xf7, 0x5a,
+ 0x87, 0x4d, 0x5c, 0x53, 0x18, 0xa1, 0x99, 0x83, 0x3d, 0x8f, 0x21, 0x1a,
+ 0x3d, 0x57, 0x16, 0x1e, 0x5e, 0x1d, 0x54, 0x6a, 0x36, 0x8b, 0xf3, 0xc6,
+ 0x44, 0x63, 0xe3, 0x13, 0xdf, 0xd9, 0x61, 0x3c, 0xb3, 0xa6, 0xd7, 0x7a,
+ 0x97, 0x2d, 0x21, 0xec, 0xdd, 0x4e, 0xa8, 0x9d, 0xec, 0x05, 0x43, 0xad,
+ 0xc1, 0xfa, 0x82, 0x30, 0x30, 0x02, 0x72, 0xe2, 0xde, 0xbb, 0xdc, 0xc4,
+ 0xf5, 0xe6, 0x6a, 0xa8, 0x62, 0x4c, 0x92, 0xdf, 0x2e, 0x63, 0xb8, 0x60,
+ 0xfa, 0xc0, 0xee, 0x86, 0xf3, 0x42, 0x8f, 0xc2, 0x4e, 0xa1, 0x46, 0x45,
+ 0x36, 0x45, 0x2e, 0xde, 0x34, 0x78, 0xef, 0x19, 0xc1, 0x28, 0x4a, 0xbb,
+ 0x94, 0x3f, 0xd8, 0xc2, 0x75, 0x76, 0x6c, 0xdb, 0x25, 0xe8, 0x42, 0x1f,
+ 0xcc, 0xa4, 0x2b, 0x6f, 0x72, 0x51, 0xca, 0x45, 0xc9, 0x88, 0x20, 0xc9,
+ 0x38, 0x9a, 0x53, 0x9f, 0xf2, 0x56, 0x76, 0x5b, 0x4a, 0x46, 0xd0, 0x7d,
+ 0x20, 0x4f, 0xb2, 0xf9, 0x44, 0xd0, 0xf2, 0x63, 0xed, 0x09, 0x78, 0x7b,
+ 0x55, 0x8c, 0xdd, 0xec, 0x3c, 0x4f, 0xc2, 0xd6, 0x84, 0xbc, 0xe3, 0xb6,
+ 0xf9, 0x50, 0x38, 0x04, 0xd9, 0x77, 0xdc, 0x65, 0x0a, 0x93, 0x0c, 0x10,
+ 0x9c, 0x32, 0xfa, 0xa9, 0x18, 0x88, 0x5f, 0x1b, 0x91, 0x7b, 0x2e, 0xbd,
+ 0x4b, 0x18, 0x7d, 0x6e, 0xd4, 0x4c, 0x08, 0x2e, 0x62, 0x20, 0xc4, 0x68,
+ 0xc6, 0x91, 0x34, 0x9c, 0x8f, 0x14, 0x2a, 0x52, 0xe9, 0x29, 0x05, 0xc4,
+ 0xa3, 0x4b, 0xc2, 0xb3, 0xa6, 0x4a, 0x22, 0xc1, 0x87, 0xf3, 0x61, 0xb8,
+ 0xb6, 0x10, 0x28, 0xce, 0xdd, 0xc6, 0x64, 0x88, 0x0e, 0x66, 0x18, 0x5a,
+ 0xa0, 0x55, 0xb9, 0x6d, 0x8e, 0xad, 0xe7, 0x04, 0x02, 0xce, 0x64, 0x77,
+ 0xbd, 0x44, 0x1f, 0x0d, 0x6d, 0xc1, 0xbb, 0xd4, 0xef, 0x98, 0x32, 0xba,
+ 0x87, 0xb0, 0x7f, 0xc9, 0xf0, 0x5e, 0x75, 0x21, 0xab, 0x38, 0x48, 0x27,
+ 0x17, 0xdb, 0x1d, 0xd9, 0x07, 0xb2, 0xd1, 0x49, 0x60, 0x66, 0x4f, 0x16,
+ 0xc4, 0x6c, 0xfb, 0xbd, 0xd3, 0x6d, 0x0c, 0x2f, 0x6d, 0x2e, 0x93, 0x30,
+ 0x63, 0xde, 0xda, 0xea, 0xbd, 0x5c, 0x16, 0xb1, 0x48, 0x42, 0x9d, 0xda,
+ 0xf8, 0xa6, 0x21, 0xc4, 0xd2, 0x3a, 0xc1, 0xad, 0x5e, 0x04, 0xfe, 0x42,
+ 0xc9, 0xe1, 0x29, 0xd8, 0x83, 0xb3, 0x8a, 0xb3, 0x5e, 0x5a, 0xc5, 0xba,
+ 0x3a, 0x46, 0x64, 0x82, 0xbb, 0xed, 0x3a, 0x9d, 0xb7, 0xe6, 0x09, 0x75,
+ 0xc8, 0x19, 0xf4, 0x4d, 0x83, 0x2a, 0x98, 0x89, 0x17, 0x5f, 0xf1, 0x33,
+ 0x9e, 0xc3, 0xbd, 0x25, 0xc5, 0xfb, 0xb1, 0xdf, 0x2d, 0x00, 0x63, 0x8d,
+ 0xb8, 0xe5, 0xe8, 0xce, 0x5b, 0x56, 0x0a, 0xe8, 0x64, 0xe8, 0x02, 0x5a,
+ 0xec, 0x7f, 0x35, 0x38, 0x59, 0x61, 0xe1, 0x7e, 0x24, 0x68, 0xa9, 0xef,
+ 0x0c, 0x9c, 0xd6, 0x6a, 0xff, 0xec, 0xdd, 0xd1, 0x57, 0xa7, 0x6b, 0x0f,
+ 0x39, 0x51, 0x5d, 0x02, 0x9b, 0xfc, 0xe6, 0x44, 0xcb, 0x2a, 0x24, 0x93,
+ 0x99, 0x14, 0x9c, 0xaf, 0xfa, 0xfd, 0xf8, 0xe0, 0xec, 0x98, 0xd4, 0x89,
+ 0x7e, 0x1f, 0xfe, 0x32, 0xaf, 0x27, 0x25, 0x41, 0xf3, 0x63, 0xbc, 0xf8,
+ 0x1b, 0x72, 0x6d, 0x2b, 0x0e, 0x85, 0xe4, 0x51, 0xa4, 0x54, 0x3f, 0x20,
+ 0x89, 0xc1, 0x44, 0x67, 0x05, 0x97, 0xc3, 0x0f, 0xb4, 0xf5, 0xa6, 0xb3,
+ 0xe3, 0x75, 0xfa, 0x16, 0x16, 0xaf, 0xd0, 0x82, 0xc2, 0x26, 0x90, 0x2a,
+ 0xee, 0x66, 0x2d, 0xdc, 0x56, 0x81, 0xd2, 0xe6, 0x89, 0xf7, 0xb4, 0x7a,
+ 0x06, 0xd4, 0x47, 0xbc, 0x0c, 0x30, 0xd6, 0x29, 0xc1, 0xce, 0x70, 0x81,
+ 0x26, 0x23, 0xa1, 0x63, 0x75, 0x9c, 0x36, 0x21, 0x6a, 0xf9, 0xf2, 0x48,
+ 0xd3, 0xe3, 0xae, 0x0e, 0xe3, 0xfb, 0x1e, 0xb5, 0x55, 0x22, 0xcb, 0xa4,
+ 0x9d, 0x03, 0x1f, 0xcf, 0xa2, 0xbd, 0x15, 0x6e, 0xb3, 0x5c, 0xcc, 0x2e,
+ 0xaf, 0x7c, 0x33, 0x4a, 0xd0, 0xa1, 0x34, 0x62, 0x2b, 0x12, 0x93, 0xb4,
+ 0x3a, 0x98, 0xa5, 0x77, 0xf9, 0xd2, 0x8b, 0x2a, 0xdf, 0xca, 0x94, 0x35,
+ 0x25, 0x92, 0x63, 0x72, 0x24, 0x1e, 0x4e, 0x70, 0x36, 0xd7, 0x76, 0xd4,
+ 0x96, 0x2d, 0xe4, 0xcc, 0x66, 0x95, 0xa8, 0x14, 0x09, 0x13, 0x6e, 0xee,
+ 0xb8, 0x24, 0xa7, 0x5b, 0x94, 0x37, 0x24, 0xc7, 0x92, 0x42, 0x63, 0x80,
+ 0xa1, 0x72, 0x4a, 0xdf, 0xae, 0xc7, 0x74, 0x07, 0x82, 0x12, 0x41, 0x2e,
+ 0x4b, 0x09, 0xb6, 0x10, 0x9e, 0x82, 0xf9, 0x42, 0xaf, 0x71, 0x68, 0xea,
+ 0x72, 0x48, 0x0a, 0x17, 0xa7, 0xd5, 0x87, 0x80, 0x14, 0x5a, 0xf9, 0xe6,
+ 0x15, 0x28, 0x08, 0xa0, 0xe3, 0x91, 0xee, 0x90, 0x77, 0x75, 0x8c, 0x2e,
+ 0x68, 0xe7, 0x12, 0xab, 0xc4, 0x18, 0x01, 0x25, 0x7b, 0x0a, 0x47, 0x85,
+ 0xdc, 0xbe, 0xd3, 0x04, 0x03, 0xc1, 0xab, 0xc9, 0xa0, 0x2a, 0xc6, 0xb3,
+ 0x5a, 0x62, 0xc0, 0xe8, 0xb3, 0xc5, 0x62, 0xcb, 0xb5, 0x48, 0x5d, 0x29,
+ 0x34, 0xb4, 0xcd, 0xaa, 0x0f, 0xb9, 0xe5, 0xc4, 0x48, 0xa5, 0x6a, 0x10,
+ 0x13, 0xef, 0xe0, 0x88, 0xae, 0x48, 0x3d, 0xdc, 0x23, 0x67, 0xa0, 0x29,
+ 0x25, 0xba, 0xdd, 0x68, 0x33, 0x83, 0x00, 0x2b, 0xe8, 0x96, 0x37, 0xc8,
+ 0x63, 0xb0, 0xd8, 0xcb, 0xb4, 0x59, 0x27, 0xd4, 0xbc, 0x6a, 0xfc, 0x3c,
+ 0xbb, 0x30, 0xc7, 0x69, 0x5a, 0xc8, 0x00, 0x8f, 0x1c, 0xa8, 0x75, 0xfa,
+ 0x2d, 0xfe, 0x4c, 0x42, 0xc9, 0x61, 0xe6, 0xf2, 0x5c, 0x9e, 0x99, 0xcc,
+ 0xb4, 0x79, 0xe1, 0x4f, 0x07, 0x31, 0xb5, 0x3b, 0xec, 0xb3, 0x8d, 0xce,
+ 0xd5, 0xc3, 0xa6, 0x0d, 0x33, 0x08, 0xeb, 0x14, 0xf6, 0x2b, 0x16, 0x68,
+ 0x24, 0xea, 0xf1, 0x34, 0x81, 0x56, 0xbe, 0x5f, 0xdf, 0x50, 0x44, 0x6b,
+ 0xec, 0xd1, 0x77, 0x91, 0x50, 0x3a, 0xa5, 0x48, 0x0a, 0xe7, 0x2b, 0xa6,
+ 0xa4, 0xb4, 0x58, 0x3e, 0x39, 0xa8, 0xb5, 0x01, 0xcb, 0x1d, 0x41, 0x4b,
+ 0xf2, 0xde, 0x52, 0xa4, 0xb4, 0x3f, 0xf4, 0x54, 0x53, 0xb2, 0x44, 0xb9,
+ 0xea, 0xa0, 0x1a, 0x9a, 0x56, 0x19, 0x4a, 0xaa, 0xd5, 0x8f, 0xf2, 0x17,
+ 0xf8, 0xc8, 0xb7, 0x59, 0x0e, 0x7a, 0x1f, 0x58, 0xff, 0xb4, 0xe5, 0x9c,
+ 0x4c, 0xe3, 0xcb, 0xa4, 0x72, 0xa5, 0x02, 0x45, 0x12, 0xe4, 0xa9, 0xcd,
+ 0x47, 0xc5, 0x3b, 0x9b, 0xc3, 0x66, 0x06, 0xc4, 0xc6, 0xa6, 0x18, 0xa8,
+ 0x1a, 0x5b, 0xdf, 0x4f, 0x33, 0x3f, 0xc1, 0x60, 0x2c, 0x89, 0x8c, 0x5c,
+ 0x57, 0x42, 0x1d, 0xc9, 0xf2, 0xe8, 0x43, 0x9e, 0xdd, 0xd9, 0xb4, 0x0f,
+ 0x03, 0xeb, 0xec, 0xfa, 0x5e, 0x19, 0xb5, 0x3c, 0x30, 0x3b, 0x2f, 0x84,
+ 0x88, 0xd4, 0xa5, 0x35, 0xae, 0xee, 0xae, 0xd1, 0xd4, 0x2e, 0xea, 0xe9,
+ 0xea, 0xe6, 0x1a, 0x7d, 0x4f, 0xc0, 0x6f, 0x28, 0xb1, 0x61, 0x4e, 0xab,
+ 0xb3, 0x88, 0xc3, 0x85, 0x20, 0x15, 0x2c, 0xae, 0x3c, 0xc5, 0xc3, 0x11,
+ 0x2d, 0x5a, 0xb0, 0xc5, 0x49, 0xa8, 0xd0, 0xd3, 0x26, 0x29, 0x17, 0x0b,
+ 0x31, 0x02, 0x12, 0x8b, 0xa1, 0x7e, 0xa6, 0xd8, 0x6f, 0x89, 0x2a, 0xee,
+ 0xab, 0x68, 0x35, 0x73, 0x3d, 0x64, 0xb9, 0x02, 0x9b, 0x00, 0xed, 0xc6,
+ 0xa3, 0x98, 0xda, 0x62, 0x45, 0xd1, 0x65, 0x59, 0xf8, 0x0a, 0x00, 0x62,
+ 0x22, 0x20, 0x0d, 0xd6, 0x14, 0x08, 0x2b, 0xcd, 0x6f, 0xb2, 0xb2, 0xc8,
+ 0xa9, 0x9d, 0xc3, 0x4d, 0x52, 0x66, 0x94, 0x00, 0xd2, 0x79, 0x73, 0xfa,
+ 0xf6, 0xa8, 0x63, 0x54, 0x5c, 0x42, 0x21, 0xe3, 0xec, 0x01, 0xaf, 0x9b,
+ 0x8a, 0xbb, 0xa5, 0x01, 0xbf, 0x0a, 0x68, 0x2c, 0xc3, 0x6b, 0x4e, 0xa1,
+ 0xcd, 0xa8, 0xec, 0x40, 0x01, 0x2a, 0xc0, 0xb8, 0x95, 0xa4, 0x10, 0xce,
+ 0xaa, 0x43, 0x9f, 0xae, 0xb2, 0x17, 0x5d, 0xee, 0x68, 0xf9, 0x84, 0xba,
+ 0x3f, 0xd1, 0x6f, 0xa9, 0x43, 0x7a, 0x21, 0xce, 0x28, 0xca, 0x97, 0xe6,
+ 0x5c, 0x18, 0x76, 0x69, 0x92, 0x4f, 0x9a, 0x18, 0xc0, 0xde, 0xe3, 0x2b,
+ 0x93, 0x7b, 0x2f, 0x91, 0x35, 0x1d, 0x5f, 0xac, 0x34, 0xf8, 0x2e, 0x5a,
+ 0xa9, 0xd0, 0x9e, 0xa8, 0x57, 0x94, 0xb8, 0x94, 0x16, 0x6d, 0x2f, 0x1d,
+ 0x0f, 0x34, 0x67, 0xde, 0xc7, 0x99, 0xaf, 0x27, 0xf7, 0xd4, 0x33, 0xd7,
+ 0x8c, 0xce, 0x83, 0x3f, 0x45, 0x32, 0x2c, 0x56, 0x3f, 0x4d, 0xf5, 0xd4,
+ 0x83, 0x78, 0x98, 0x89, 0x2d, 0x3b, 0xb6, 0xa6, 0xa4, 0xe6, 0x6f, 0x5a,
+ 0x67, 0x00, 0x36, 0xe5, 0xf5, 0xbd, 0x37, 0xb0, 0x8c, 0x62, 0xc8, 0xd0,
+ 0xbf, 0x36, 0x44, 0x2e, 0x49, 0xc7, 0x8a, 0x46, 0x49, 0x77, 0xaf, 0x3a,
+ 0xcd, 0xf5, 0x2e, 0xc3, 0xe1, 0xe6, 0xf5, 0x09, 0xea, 0x72, 0x1b, 0x29,
+ 0x8d, 0xd6, 0x64, 0x25, 0x42, 0x36, 0xda, 0x64, 0x00, 0xf9, 0x4e, 0xd7,
+ 0x05, 0x37, 0x11, 0x57, 0xaf, 0xdf, 0x7c, 0xcb, 0x66, 0x3a, 0x99, 0x7d,
+ 0xe7, 0xfe, 0x5a, 0xdc, 0xfd, 0xc9, 0x24, 0xa0, 0x68, 0x31, 0x9a, 0xc7,
+ 0xaf, 0x48, 0x49, 0x21, 0xa5, 0x66, 0xf8, 0x60, 0x1e, 0x41, 0xcd, 0x51,
+ 0x21, 0xce, 0x87, 0x35, 0x77, 0x31, 0xc2, 0x89, 0xe1, 0x55, 0x2f, 0x35,
+ 0x70, 0xd8, 0x42, 0x2f, 0xe4, 0x07, 0xa4, 0xe2, 0x2a, 0x5e, 0x99, 0xf4,
+ 0x85, 0xad, 0x66, 0xe5, 0x0d, 0xc1, 0x3a, 0xdc, 0x30, 0x6c, 0x27, 0x77,
+ 0x21, 0x32, 0xdb, 0x61, 0xf7, 0x21, 0xa4, 0xbc, 0x34, 0xa6, 0x88, 0x29,
+ 0xce, 0xa5, 0x80, 0xa1, 0x46, 0x5f, 0xc9, 0x3c, 0x64, 0x7e, 0x9a, 0xe1,
+ 0x66, 0x90, 0xda, 0xbc, 0x22, 0xa5, 0xa2, 0xa2, 0xb6, 0x38, 0x35, 0xd8,
+ 0xcc, 0xf6, 0x2f, 0x71, 0x52, 0x0d, 0xb3, 0x4c, 0x94, 0x37, 0x0c, 0xfd,
+ 0x60, 0x16, 0x42, 0xa0, 0x2f, 0x63, 0xc3, 0x27, 0xaa, 0x1d, 0xa7, 0x47,
+ 0x05, 0x57, 0xa1, 0x71, 0xda, 0x13, 0xa5, 0xfd, 0x71, 0xee, 0x0f, 0xd5,
+ 0x5b, 0x9b, 0x98, 0x0d, 0x30, 0xaf, 0x5f, 0x62, 0x80, 0x7d, 0x21, 0xe1,
+ 0x28, 0xcd, 0xc1, 0xa5, 0xba, 0xbd, 0xbd, 0xdd, 0xec, 0x35, 0xc2, 0xbb,
+ 0x4c, 0x82, 0x18, 0x51, 0x49, 0xab, 0x9a, 0xae, 0x76, 0x78, 0x66, 0xab,
+ 0xb7, 0xe0, 0xc6, 0x5c, 0x6c, 0x70, 0x07, 0x4e, 0xd8, 0xa3, 0x3e, 0x12,
+ 0x3c, 0xb5, 0xc7, 0x8b, 0x86, 0x6b, 0xff, 0x0a, 0x4e, 0xf8, 0xa2, 0x6e,
+ 0x1d, 0xdb, 0x2d, 0xa0, 0xcd, 0xbc, 0x88, 0x93, 0xf1, 0x34, 0x9f, 0xd3,
+ 0xa4, 0x03, 0xc3, 0x06, 0x24, 0xc3, 0x89, 0x5d, 0x0e, 0x4e, 0xce, 0xde,
+ 0x11, 0x38, 0x33, 0xf6, 0x70, 0xcc, 0x2b, 0xce, 0x8e, 0xc1, 0x9f, 0x91,
+ 0xc5, 0xe3, 0xc0, 0xf4, 0x7b, 0xae, 0x55, 0x0a, 0xf0, 0x06, 0x91, 0x20,
+ 0x39, 0xb1, 0x2d, 0x8f, 0x08, 0xb7, 0xcf, 0x58, 0xa2, 0xa2, 0x7b, 0xab,
+ 0xb5, 0xd8, 0x5e, 0x0e, 0x7c, 0xb3, 0x17, 0x99, 0x4f, 0x6b, 0x0f, 0xda,
+ 0xc4, 0x0c, 0x4f, 0x6f, 0xb7, 0x71, 0xcc, 0x0d, 0x00, 0xb5, 0x57, 0xc1,
+ 0x56, 0xa7, 0x06, 0xeb, 0x5c, 0x1c, 0x05, 0x26, 0xdc, 0x2b, 0x69, 0xae,
+ 0x92, 0x1a, 0x44, 0xb4, 0x56, 0x60, 0x9c, 0xe5, 0xb5, 0x32, 0x26, 0xf5,
+ 0xb2, 0xea, 0x58, 0x11, 0xe7, 0xd3, 0xbc, 0x8d, 0x05, 0xab, 0x63, 0x35,
+ 0xab, 0x94, 0xa5, 0x22, 0xc8, 0xcb, 0xb8, 0x7b, 0x54, 0xdd, 0x32, 0xee,
+ 0x6c, 0x6f, 0x01, 0xab, 0xbc, 0xeb, 0xf2, 0x77, 0x07, 0x33, 0x94, 0x8b,
+ 0xad, 0x2f, 0x08, 0x9f, 0xb0, 0x16, 0xcb, 0x4f, 0x50, 0x27, 0xbb, 0x0b,
+ 0x07, 0x2d, 0x13, 0xf1, 0x10, 0xd2, 0x64, 0x02, 0x5a, 0x55, 0xae, 0xf5,
+ 0x44, 0x04, 0x15, 0x5a, 0x65, 0x5e, 0xd6, 0xfd, 0x2c, 0x11, 0x41, 0x6d,
+ 0xb5, 0xad, 0x56, 0x89, 0x11, 0x7f, 0x83, 0x2e, 0x0f, 0x1e, 0x5c, 0x46,
+ 0x8f, 0x42, 0x45, 0xcb, 0x0d, 0xd1, 0xa9, 0x51, 0x01, 0xce, 0xb2, 0x11,
+ 0xeb, 0x45, 0x06, 0xd1, 0xd6, 0x77, 0xe4, 0x17, 0xc2, 0x4e, 0x77, 0x30,
+ 0x05, 0x1f, 0xb3, 0x44, 0x93, 0xfb, 0xb1, 0xc7, 0x30, 0x6c, 0x22, 0x37,
+ 0xf1, 0x54, 0x98, 0x05, 0x7a, 0x1d, 0x5b, 0x30, 0xde, 0xa4, 0xd4, 0x41,
+ 0xeb, 0x83, 0x26, 0x1c, 0xce, 0xc5, 0x5e, 0xd6, 0x4e, 0x56, 0x9c, 0x2d,
+ 0x8b, 0xb3, 0x32, 0x04, 0x0c, 0x56, 0xbb, 0x44, 0x66, 0xb3, 0xb9, 0x40,
+ 0x47, 0xec, 0xcb, 0x4b, 0x27, 0x93, 0x91, 0xb5, 0x14, 0xc5, 0x08, 0xc5,
+ 0xa8, 0x93, 0xd8, 0x93, 0xde, 0x25, 0x30, 0xa3, 0xf3, 0x83, 0x96, 0x37,
+ 0x7d, 0x13, 0xf9, 0x21, 0xcd, 0xa9, 0x64, 0xa8, 0xb9, 0x95, 0x4f, 0x60,
+ 0x76, 0x19, 0xf1, 0x01, 0x5f, 0x97, 0x03, 0xe0, 0xb3, 0x88, 0xa7, 0xa4,
+ 0xb6, 0xdb, 0x82, 0xfd, 0x48, 0xea, 0x94, 0x51, 0x9c, 0x09, 0x93, 0xc8,
+ 0x2d, 0xb0, 0xe8, 0x85, 0xf4, 0x3d, 0x9b, 0x40, 0xa9, 0x3d, 0x87, 0xe0,
+ 0x07, 0x93, 0x45, 0x98, 0xf2, 0xbf, 0x1d, 0xc5, 0xed, 0x5a, 0x1c, 0xa2,
+ 0x9b, 0x1f, 0x3e, 0x81, 0xe0, 0x76, 0xc0, 0x07, 0x69, 0x9e, 0xcf, 0x15,
+ 0xf9, 0xaf, 0x0c, 0x23, 0xa6, 0xd1, 0x3b, 0x5f, 0xde, 0xbf, 0x0b, 0x88,
+ 0x7b, 0x22, 0x9c, 0x87, 0x96, 0x12, 0x2d, 0x90, 0xf6, 0x0e, 0x98, 0x4b,
+ 0x4b, 0x58, 0xbf, 0x43, 0xd1, 0x0e, 0x7f, 0xf8, 0x58, 0x2e, 0x8f, 0x14,
+ 0xf3, 0xa4, 0xd1, 0x7b, 0x9d, 0x06, 0xda, 0xca, 0xfa, 0x6f, 0x2c, 0xe7,
+ 0xf3, 0xc7, 0x8b, 0x79, 0x93, 0xfb, 0xae, 0x22, 0xdd, 0x97, 0xf4, 0xb9,
+ 0x27, 0xe8, 0x19, 0x8e, 0xe2, 0x37, 0x11, 0xf3, 0xf8, 0xc1, 0x69, 0x59,
+ 0x5c, 0x62, 0x5a, 0x09, 0x7a, 0xad, 0x3d, 0x51, 0x7f, 0x6a, 0x02, 0x6e,
+ 0x5c, 0x6e, 0x88, 0x68, 0x61, 0xda, 0xf6, 0x96, 0xde, 0x8a, 0xe8, 0x2d,
+ 0x15, 0xa9, 0xda, 0xa5, 0x64, 0x32, 0xa3, 0x98, 0x91, 0x57, 0xd8, 0x63,
+ 0x4f, 0x64, 0x94, 0x30, 0x46, 0x59, 0x8e, 0x4d, 0x0d, 0xcb, 0x5c, 0xfa,
+ 0x59, 0xb9, 0xd9, 0xb2, 0x70, 0x63, 0x98, 0x63, 0x4f, 0x55, 0xa3, 0x71,
+ 0xe5, 0x3b, 0x4d, 0xab, 0x8c, 0x40, 0x29, 0x82, 0x7e, 0x13, 0x5b, 0x44,
+ 0x56, 0xab, 0x4b, 0x60, 0xce, 0x49, 0x6e, 0x1c, 0x65, 0x6e, 0x0a, 0xbb,
+ 0xf0, 0x30, 0x37, 0x49, 0xc6, 0x27, 0xda, 0x9c, 0xa3, 0x16, 0x65, 0x08,
+ 0xd6, 0xe8, 0x09, 0x5c, 0xd5, 0xfa, 0x46, 0x5c, 0x30, 0xe8, 0xee, 0xd3,
+ 0xa1, 0x96, 0x99, 0xd7, 0xaa, 0xae, 0xa1, 0x5a, 0x13, 0x93, 0xfd, 0xb9,
+ 0xc7, 0x18, 0x72, 0x24, 0xb2, 0x51, 0x18, 0x63, 0x4c, 0x65, 0x07, 0x4e,
+ 0x79, 0xa5, 0x52, 0x99, 0x8d, 0x87, 0x5d, 0xd1, 0xfd, 0x8e, 0x5f, 0x51,
+ 0x77, 0x2e, 0x6a, 0x6f, 0xed, 0x80, 0x37, 0xfb, 0xdd, 0x08, 0x4c, 0x52,
+ 0x46, 0x25, 0x1d, 0xb1, 0xf3, 0xd4, 0x45, 0x1c, 0xa6, 0x0e, 0x5f, 0xce,
+ 0x76, 0x72, 0x26, 0x83, 0xb6, 0xa4, 0x9f, 0xd3, 0xb6, 0x1b, 0x0d, 0x48,
+ 0x81, 0x42, 0xb9, 0x9a, 0x21, 0x36, 0x3b, 0x4a, 0x13, 0xee, 0x09, 0xc2,
+ 0x41, 0x6b, 0x38, 0x65, 0x38, 0xe7, 0xe6, 0x84, 0x3d, 0x16, 0xa3, 0x0e,
+ 0x5c, 0x18, 0xdc, 0x98, 0x48, 0x15, 0xed, 0xa0, 0x2c, 0xae, 0x53, 0x16,
+ 0x6a, 0xe4, 0x96, 0x20, 0x50, 0x56, 0xb5, 0x9b, 0x38, 0xde, 0x9a, 0x8d,
+ 0xb9, 0xc7, 0x33, 0xa6, 0x82, 0x78, 0x4e, 0x14, 0x3a, 0xd9, 0x0a, 0xfd,
+ 0x65, 0x15, 0x81, 0x8c, 0x5e, 0x27, 0xcc, 0x2d, 0x6d, 0xcb, 0xcc, 0xe7,
+ 0x78, 0x88, 0x29, 0x89, 0xbf, 0xe3, 0x45, 0x65, 0x76, 0xdd, 0xbd, 0xa8,
+ 0x02, 0x3b, 0xba, 0x3c, 0x47, 0xdb, 0x91, 0x1f, 0xba, 0xb1, 0xc8, 0xf3,
+ 0x1f, 0xed, 0xf3, 0x29, 0xb8, 0xbb, 0xa7, 0xa2, 0xd6, 0xb6, 0x7b, 0xff,
+ 0x10, 0xb3, 0xc1, 0x62, 0xf5, 0x49, 0x8c, 0xa4, 0x9a, 0xfb, 0x42, 0x4a,
+ 0x0f, 0x91, 0x84, 0x9c, 0x04, 0x8a, 0xce, 0x31, 0xe3, 0xc2, 0xe0, 0xe6,
+ 0xcc, 0x58, 0x94, 0x73, 0x11, 0x68, 0x6d, 0xcf, 0xbd, 0xbe, 0x8d, 0xf7,
+ 0x5a, 0xdc, 0x5c, 0x64, 0xa9, 0xe3, 0x9e, 0x12, 0x50, 0x66, 0x56, 0xd9,
+ 0x94, 0xe5, 0x7f, 0xc7, 0xac, 0x55, 0x0c, 0xd6, 0xa7, 0x65, 0x9b, 0x6d,
+ 0xf8, 0xdb, 0xd4, 0xcb, 0x31, 0xad, 0x6c, 0x49, 0x24, 0x83, 0x99, 0x59,
+ 0x7c, 0x46, 0x6a, 0x3f, 0xaf, 0x9a, 0x8f, 0x84, 0x18, 0xa8, 0x7d, 0x74,
+ 0x9b, 0xb8, 0xe8, 0xe8, 0xe0, 0xcd, 0x54, 0x10, 0x38, 0x5a, 0x6f, 0x26,
+ 0xfd, 0x22, 0x39, 0x8b, 0x4f, 0x7c, 0x79, 0x89, 0xa6, 0xe7, 0xf1, 0x24,
+ 0x40, 0x49, 0xf2, 0xd2, 0x41, 0x09, 0x0c, 0x5c, 0xdb, 0x98, 0x70, 0x0e,
+ 0x9c, 0x78, 0x72, 0xf4, 0x07, 0x54, 0x52, 0x96, 0x8e, 0x2f, 0x7a, 0x91,
+ 0x62, 0x81, 0xa8, 0x03, 0x25, 0x54, 0xb6, 0x35, 0x26, 0x23, 0x55, 0xea,
+ 0x56, 0x68, 0x46, 0xec, 0xf2, 0xc0, 0x1f, 0x77, 0xed, 0x5f, 0xf7, 0x5e,
+ 0x6c, 0x30, 0x05, 0x10, 0xe0, 0xd8, 0x3e, 0xe0, 0x75, 0x4c, 0xaa, 0xb9,
+ 0xb5, 0x00, 0x3c, 0x04, 0xff, 0x35, 0xcf, 0xcd, 0xe9, 0x26, 0xf7, 0xbc,
+ 0xb7, 0xbb, 0x8d, 0xf9, 0x01, 0x61, 0xf7, 0x35, 0x13, 0xd5, 0x75, 0x55,
+ 0x1a, 0x5f, 0x65, 0xb8, 0x4c, 0x64, 0xe4, 0x1a, 0xc1, 0xcc, 0x88, 0xab,
+ 0x2b, 0x79, 0xf1, 0x91, 0xfe, 0xca, 0x3e, 0xbf, 0x95, 0x77, 0xa7, 0x1f,
+ 0xcf, 0xde, 0x9f, 0x7e, 0xf7, 0xb7, 0x95, 0x35, 0x4d, 0x4a, 0x2b, 0xd3,
+ 0x15, 0x3f, 0xa3, 0x38, 0xec, 0x21, 0xe5, 0x0f, 0x70, 0xb2, 0xa3, 0xb0,
+ 0xa3, 0x3a, 0x41, 0x38, 0x1d, 0x86, 0xd2, 0xbe, 0x3c, 0x22, 0xf3, 0x54,
+ 0x68, 0xd7, 0x81, 0x9d, 0x3b, 0x1d, 0xfc, 0x53, 0x97, 0x09, 0x7b, 0xb5,
+ 0xfc, 0x79, 0xe4, 0x01, 0x3b, 0x0e, 0x36, 0x77, 0xe7, 0xa1, 0x83, 0x59,
+ 0x8f, 0x27, 0xf1, 0xed, 0xe0, 0x81, 0x40, 0xf5, 0xf9, 0xc9, 0x5b, 0xb8,
+ 0xff, 0xb1, 0x70, 0x56, 0xca, 0xfb, 0xb1, 0x3b, 0xbc, 0xbc, 0x4d, 0x17,
+ 0x35, 0x87, 0x54, 0xae, 0xc8, 0x0b, 0xe6, 0x97, 0x06, 0x05, 0x22, 0xb2,
+ 0x06, 0xed, 0x41, 0xfc, 0x8f, 0x06, 0xac, 0x1b, 0x46, 0xa4, 0x78, 0x21,
+ 0x82, 0xf0, 0x8c, 0xb3, 0x60, 0x29, 0xab, 0x96, 0x57, 0xa4, 0x77, 0xe9,
+ 0x70, 0x46, 0x95, 0xa6, 0x68, 0xbb, 0x21, 0xd0, 0xd4, 0x13, 0xe2, 0x53,
+ 0xbc, 0xfe, 0x5f, 0x58, 0x8c, 0xcb, 0x84, 0x68, 0x84, 0x38, 0xe1, 0x07,
+ 0xbd, 0x16, 0x9d, 0x4d, 0x0d, 0xae, 0xd2, 0x95, 0x09, 0xeb, 0x45, 0x1b,
+ 0x58, 0x46, 0xd1, 0xef, 0x9a, 0xbf, 0xf2, 0x32, 0x01, 0xa9, 0xda, 0x0c,
+ 0x95, 0x44, 0x38, 0x16, 0xd9, 0x65, 0xce, 0xfa, 0xf5, 0xdb, 0x6c, 0x58,
+ 0x16, 0x55, 0x71, 0x21, 0x75, 0x8c, 0x56, 0xf1, 0x3e, 0x3e, 0xee, 0x47,
+ 0xb7, 0xe9, 0x40, 0xc1, 0x32, 0x7a, 0x7e, 0x20, 0x90, 0x45, 0x21, 0x06,
+ 0xca, 0xcb, 0x2c, 0xad, 0x71, 0x43, 0xb4, 0x22, 0x0b, 0x31, 0x5f, 0xf1,
+ 0xa5, 0x54, 0x40, 0x08, 0xc9, 0x74, 0x87, 0x31, 0x87, 0x63, 0xba, 0x94,
+ 0xa7, 0xa9, 0xcf, 0xdc, 0x63, 0x56, 0x4f, 0xcc, 0x8d, 0xea, 0x64, 0x6b,
+ 0x10, 0x22, 0x91, 0x54, 0xe9, 0x66, 0x25, 0xca, 0x4e, 0xb4, 0x00, 0x24,
+ 0xce, 0x73, 0x8d, 0xc1, 0x85, 0xe2, 0xc2, 0x0b, 0x5f, 0x4a, 0x71, 0x81,
+ 0xd1, 0x06, 0xa4, 0x46, 0x35, 0xcd, 0x47, 0x45, 0x49, 0x69, 0x6d, 0x78,
+ 0xe4, 0xe4, 0x97, 0xd8, 0x02, 0x78, 0x56, 0x62, 0x01, 0x33, 0x35, 0x95,
+ 0xf0, 0xdb, 0x2f, 0xdd, 0x5e, 0xd1, 0xfd, 0x21, 0xbc, 0x6d, 0x75, 0x61,
+ 0xaa, 0x91, 0x95, 0x4e, 0xc0, 0x24, 0xd7, 0xed, 0x45, 0xeb, 0x6e, 0x54,
+ 0x10, 0x00, 0x5e, 0xf6, 0xc3, 0x22, 0x4d, 0xe0, 0x89, 0x81, 0xcd, 0x79,
+ 0x95, 0x5d, 0x86, 0x50, 0x1f, 0x0c, 0x12, 0x11, 0x61, 0x7a, 0x59, 0x85,
+ 0x93, 0x66, 0x24, 0xfa, 0x42, 0x29, 0x32, 0xa2, 0xc9, 0x07, 0x0c, 0x0a,
+ 0x19, 0x00, 0x4f, 0x0b, 0x73, 0xdf, 0x52, 0x19, 0x4b, 0x82, 0x9e, 0x22,
+ 0x0d, 0x71, 0xcb, 0xaa, 0x36, 0xf7, 0xe8, 0xaf, 0x91, 0x5a, 0x80, 0xa7,
+ 0xe0, 0xa9, 0x47, 0xcd, 0x18, 0x5a, 0xce, 0x1a, 0xcd, 0xd1, 0xb2, 0xf6,
+ 0x95, 0xe3, 0x49, 0xb3, 0x80, 0x7f, 0x5e, 0xce, 0xff, 0x43, 0xf6, 0xd5,
+ 0x9c, 0x9b, 0x47, 0x12, 0x1c, 0x02, 0x85, 0x26, 0x6e, 0xde, 0x04, 0xff,
+ 0x7b, 0x44, 0xdb, 0x2e, 0xff, 0x90, 0x34, 0x08, 0x57, 0x24, 0x14, 0xf8,
+ 0x83, 0xad, 0x78, 0x90, 0x82, 0x7e, 0x5c, 0x46, 0xfb, 0x35, 0xea, 0xa0,
+ 0x8b, 0x6a, 0x34, 0xb9, 0x36, 0x44, 0xfb, 0x25, 0xb9, 0x19, 0xd8, 0x5f,
+ 0xf2, 0x10, 0xe7, 0xa4, 0xc5, 0x22, 0xe7, 0x9c, 0x62, 0x19, 0x5e, 0xb4,
+ 0xe5, 0x75, 0x3a, 0x55, 0x58, 0x96, 0x96, 0xc0, 0x39, 0x6f, 0x8f, 0xa1,
+ 0xbc, 0x41, 0x69, 0x88, 0xa0, 0x6c, 0xfc, 0x34, 0xcb, 0xe7, 0xf6, 0xbd,
+ 0xb6, 0x28, 0x46, 0xac, 0xcc, 0x88, 0x86, 0xc2, 0x25, 0x40, 0x8d, 0x8a,
+ 0x04, 0x44, 0x9e, 0x51, 0x8f, 0x62, 0x1c, 0xfb, 0xf9, 0x13, 0x30, 0x71,
+ 0x0b, 0x6b, 0x60, 0x62, 0x4a, 0xa1, 0x9a, 0xa3, 0xc6, 0x64, 0x05, 0x81,
+ 0x53, 0x3e, 0x8f, 0xc6, 0x06, 0xdb, 0x9b, 0x7c, 0x64, 0x87, 0x43, 0x42,
+ 0x5d, 0xbc, 0x64, 0xbf, 0xc2, 0xfb, 0xd7, 0x87, 0xad, 0xe1, 0x9e, 0x3d,
+ 0xdf, 0xdd, 0xf8, 0xa3, 0x33, 0x4c, 0x9b, 0x9c, 0xd0, 0x99, 0xbc, 0xfe,
+ 0xf8, 0xb2, 0xf7, 0xe5, 0xee, 0x45, 0xbc, 0xd3, 0xdb, 0xfc, 0xcf, 0xbf,
+ 0xbf, 0xed, 0x2c, 0xd9, 0xf8, 0xb6, 0xdd, 0x82, 0x8f, 0xed, 0x78, 0x04,
+ 0x31, 0x8a, 0xf6, 0xe1, 0x8f, 0xcf, 0x17, 0x77, 0x81, 0xd2, 0x1d, 0x53,
+ 0x35, 0xcb, 0x46, 0xe8, 0x8d, 0xf6, 0xc9, 0xe9, 0xda, 0x26, 0xe0, 0xec,
+ 0x35, 0xbe, 0x07, 0x93, 0x76, 0xd4, 0xe5, 0x4b, 0x39, 0x3e, 0x65, 0x0c,
+ 0x1f, 0xec, 0xb3, 0x1e, 0x6b, 0x21, 0x4a, 0x5c, 0x74, 0xcd, 0xb4, 0x68,
+ 0xbf, 0x82, 0x34, 0x3b, 0x37, 0xf5, 0x82, 0xf2, 0xa4, 0x33, 0x93, 0xca,
+ 0x86, 0xfb, 0x51, 0x0f, 0xff, 0xf0, 0xfe, 0x84, 0x23, 0x70, 0xc6, 0x97,
+ 0x5c, 0x4c, 0x43, 0x12, 0xda, 0xc0, 0x13, 0x69, 0x89, 0x1b, 0x23, 0x6f,
+ 0xce, 0xa6, 0x20, 0x29, 0xea, 0x6c, 0xec, 0x24, 0x53, 0x3d, 0x08, 0x41,
+ 0xd9, 0xc8, 0x27, 0xa5, 0x0e, 0x7a, 0xce, 0xfc, 0x4c, 0x04, 0x9f, 0x40,
+ 0x91, 0x14, 0x15, 0x4b, 0x22, 0x7a, 0x21, 0xe7, 0x31, 0xb5, 0xc6, 0x13,
+ 0x58, 0xc2, 0x38, 0xc6, 0xac, 0x54, 0x20, 0x17, 0x65, 0x1c, 0xe3, 0x85,
+ 0x2c, 0x40, 0x75, 0x8f, 0x4e, 0x84, 0x36, 0x15, 0x85, 0x6d, 0x3e, 0xb5,
+ 0x53, 0xa6, 0xb9, 0x7a, 0x24, 0xc2, 0xb9, 0xff, 0x22, 0x3e, 0xb6, 0x9c,
+ 0xd6, 0xa9, 0x27, 0xd3, 0x0e, 0x6c, 0xff, 0xb2, 0xc2, 0xdd, 0xe3, 0x17,
+ 0x12, 0x9f, 0xff, 0xe9, 0xfc, 0x94, 0x41, 0x38, 0x62, 0x41, 0xdd, 0x9e,
+ 0xd7, 0x87, 0xf2, 0x79, 0xf3, 0x10, 0xb8, 0x1c, 0x17, 0x04, 0x6d, 0xfd,
+ 0xb6, 0x44, 0x38, 0x19, 0x8d, 0x22, 0x14, 0xf2, 0x90, 0x8b, 0xaa, 0x55,
+ 0xd5, 0x23, 0xcc, 0x82, 0x45, 0xa2, 0x53, 0x2e, 0x76, 0xa9, 0xfe, 0x8c,
+ 0x7f, 0xfc, 0xd3, 0x77, 0x8a, 0x7d, 0xff, 0x23, 0xa5, 0x49, 0xa4, 0xa8,
+ 0x52, 0x98, 0xed, 0x50, 0x55, 0xa2, 0x6a, 0xa8, 0x2a, 0x7f, 0x9f, 0x15,
+ 0x92, 0xb4, 0x28, 0x71, 0xf6, 0x39, 0x7d, 0xc1, 0xf1, 0x7e, 0x5f, 0xf9,
+ 0xd3, 0x8a, 0xc4, 0x83, 0xd5, 0x95, 0x2a, 0xc5, 0x01, 0xa2, 0x97, 0xcb,
+ 0xac, 0xcd, 0x46, 0x97, 0xa4, 0x4c, 0x7a, 0xe1, 0x14, 0x63, 0xb7, 0x48,
+ 0x54, 0x7b, 0x40, 0xd5, 0xa1, 0x84, 0x94, 0xe2, 0x54, 0x4a, 0x4a, 0xef,
+ 0x01, 0x45, 0xc1, 0xd6, 0xbc, 0x00, 0x98, 0xa5, 0xa7, 0x9a, 0xd1, 0xef,
+ 0x53, 0x32, 0x5a, 0x7b, 0x8c, 0x3f, 0x94, 0xe5, 0x73, 0x42, 0xb7, 0x1d,
+ 0x64, 0x08, 0xe0, 0x87, 0x7f, 0x80, 0xd0, 0xec, 0xd6, 0xb7, 0xc5, 0x3f,
+ 0xdd, 0xf0, 0x69, 0x07, 0x7d, 0x62, 0x1d, 0x5c, 0xc4, 0xc7, 0x3f, 0x6d,
+ 0x62, 0x71, 0x7b, 0xe7, 0x13, 0xff, 0x8e, 0x98, 0x11, 0x7a, 0x02, 0x4b,
+ 0x62, 0x63, 0xf7, 0x2d, 0xea, 0x62, 0x64, 0x3e, 0x89, 0x90, 0x41, 0x5d,
+ 0xb4, 0x86, 0xff, 0xd9, 0xc3, 0x3f, 0xbf, 0xdf, 0x8c, 0x77, 0x7f, 0xb4,
+ 0x9f, 0xfd, 0xd3, 0xe6, 0xc7, 0x3f, 0x6d, 0x75, 0x42, 0xb8, 0x05, 0x16,
+ 0x26, 0xcc, 0x49, 0x57, 0xaf, 0xa8, 0x40, 0x42, 0x0a, 0x03, 0x25, 0xfd,
+ 0xcb, 0x96, 0x6a, 0x90, 0x48, 0x0a, 0xec, 0x24, 0x06, 0xb1, 0x3c, 0xfb,
+ 0x5b, 0x80, 0x57, 0x35, 0x4b, 0x10, 0xa8, 0xc2, 0xef, 0x2b, 0x98, 0x1a,
+ 0x9e, 0x03, 0x11, 0x59, 0x9e, 0x22, 0x93, 0x3b, 0x01, 0x77, 0xea, 0x91,
+ 0x5a, 0x5b, 0x3c, 0x3e, 0x9f, 0x1e, 0x72, 0x52, 0x41, 0xc9, 0x4d, 0xa2,
+ 0x46, 0x2c, 0xba, 0x88, 0x06, 0x83, 0xc8, 0x09, 0x41, 0x7f, 0x12, 0x50,
+ 0x71, 0x48, 0x8c, 0x91, 0x37, 0x4b, 0x2f, 0xf1, 0xa2, 0x91, 0xff, 0x20,
+ 0xdc, 0x51, 0x09, 0xc8, 0x30, 0xa3, 0xc0, 0xd2, 0x45, 0xec, 0xf9, 0x52,
+ 0x7e, 0x22, 0x88, 0x6c, 0x27, 0xe6, 0x29, 0x62, 0xb7, 0x40, 0x21, 0x66,
+ 0x32, 0x50, 0xe8, 0x67, 0x7a, 0x2a, 0x40, 0x3c, 0xa0, 0xe6, 0xcb, 0xf0,
+ 0x6d, 0xed, 0xd9, 0x0d, 0x40, 0x47, 0x6b, 0x48, 0x75, 0xa2, 0x07, 0xc9,
+ 0x94, 0x81, 0x85, 0x46, 0x4e, 0xaa, 0x39, 0x04, 0x71, 0x49, 0xe1, 0x96,
+ 0xec, 0x31, 0xa1, 0x88, 0x38, 0x73, 0x8d, 0x3f, 0xd6, 0x66, 0x5c, 0x99,
+ 0x6d, 0x2b, 0x5a, 0xf8, 0xa7, 0xbc, 0x42, 0xce, 0x17, 0xd1, 0x5b, 0xc2,
+ 0xcb, 0xc4, 0xa2, 0x1b, 0x77, 0x74, 0x0f, 0x62, 0x8d, 0xbb, 0xc4, 0xf4,
+ 0x8c, 0x8a, 0xa7, 0x3e, 0x53, 0xbd, 0x30, 0xab, 0x68, 0x25, 0x5e, 0x89,
+ 0x56, 0x8d, 0xcb, 0x6a, 0x94, 0x54, 0x57, 0x6b, 0xc1, 0x5b, 0xc5, 0x44,
+ 0x01, 0xad, 0x5c, 0x93, 0x66, 0xb4, 0xa4, 0xef, 0xb2, 0x40, 0x0b, 0xb4,
+ 0x19, 0x24, 0x55, 0x98, 0xb1, 0x0f, 0x1c, 0xf0, 0x95, 0x62, 0x94, 0x91,
+ 0x81, 0x70, 0x2f, 0xbe, 0x74, 0x5b, 0xdd, 0x63, 0xef, 0x5d, 0xbf, 0x10,
+ 0x65, 0x7d, 0x94, 0xde, 0xac, 0xe7, 0xb3, 0xf1, 0x78, 0xef, 0x11, 0xb4,
+ 0x07, 0x4a, 0x9b, 0xe7, 0xdb, 0x8f, 0x9f, 0xb2, 0x13, 0x55, 0x12, 0x0c,
+ 0x89, 0xd7, 0xe1, 0xb1, 0xbd, 0x47, 0x0d, 0x0a, 0x0f, 0x2e, 0x59, 0x6f,
+ 0x51, 0xcc, 0xcf, 0xf3, 0xff, 0x35, 0xa4, 0xda, 0x2f, 0x17, 0x53, 0x4b,
+ 0xce, 0x5a, 0x7f, 0xb7, 0x15, 0xca, 0x37, 0x99, 0x7f, 0x21, 0x7b, 0xf7,
+ 0x71, 0xeb, 0x9f, 0x58, 0x13, 0xee, 0x5f, 0xd1, 0x1e, 0xa8, 0xad, 0xbd,
+ 0xb1, 0x1d, 0xbd, 0x14, 0x3d, 0x3f, 0xe3, 0x71, 0x3a, 0x8e, 0xb3, 0xc9,
+ 0x04, 0x18, 0xc9, 0x2f, 0x97, 0xa0, 0x62, 0x81, 0x11, 0xd5, 0x12, 0xe9,
+ 0xb3, 0x36, 0xaa, 0xd0, 0x2c, 0x1e, 0x92, 0x8b, 0x4c, 0x33, 0xa0, 0xc2,
+ 0x4d, 0x32, 0x24, 0x5f, 0x40, 0xee, 0x5d, 0xc1, 0x71, 0x64, 0x10, 0x44,
+ 0x54, 0xcf, 0x28, 0x60, 0x05, 0xba, 0x20, 0x41, 0xbc, 0xb8, 0x4d, 0x1f,
+ 0xb1, 0xed, 0x74, 0xe2, 0x25, 0x4c, 0xf1, 0x7c, 0x10, 0x1c, 0x18, 0x3d,
+ 0x96, 0x2e, 0x2a, 0xe4, 0x6d, 0x92, 0x69, 0x3c, 0x42, 0x20, 0x34, 0x11,
+ 0x88, 0xcc, 0xc6, 0x43, 0xd8, 0x36, 0x6a, 0x0f, 0x47, 0x0a, 0x3c, 0xde,
+ 0x2a, 0xa2, 0x2e, 0xdc, 0xa1, 0xc1, 0x41, 0x29, 0x11, 0x8c, 0xa4, 0x2c,
+ 0xd0, 0x21, 0x6e, 0x7c, 0xfc, 0x8f, 0x46, 0x63, 0x7f, 0x40, 0x1d, 0xf4,
+ 0x37, 0x38, 0x8a, 0xff, 0x6b, 0x11, 0x73, 0x6e, 0x2e, 0xe4, 0xdc, 0xf9,
+ 0xee, 0xb7, 0xff, 0xea, 0x3a, 0x5f, 0x53, 0x37, 0x9c, 0x7e, 0x7c, 0x92,
+ 0xdc, 0x35, 0xa3, 0x62, 0x2f, 0x9a, 0xe6, 0x91, 0xfb, 0x60, 0xb0, 0x24,
+ 0x93, 0x51, 0xdc, 0xaa, 0x6b, 0xa6, 0xdc, 0xa8, 0x08, 0x32, 0x23, 0xab,
+ 0x82, 0xcd, 0x99, 0x74, 0xa3, 0x05, 0x4d, 0xc5, 0x10, 0xc5, 0xb7, 0x2c,
+ 0xc6, 0x55, 0xa3, 0x84, 0x9a, 0x21, 0xcf, 0xe8, 0x7a, 0x35, 0xdc, 0xc2,
+ 0xdf, 0xac, 0x32, 0xe4, 0x8b, 0x24, 0x0f, 0xd4, 0xbe, 0x55, 0x81, 0x7c,
+ 0xbc, 0xdf, 0x9e, 0x15, 0x7c, 0x63, 0x4d, 0x71, 0x40, 0xe0, 0x7b, 0x01,
+ 0x93, 0xfa, 0xb1, 0xbc, 0x82, 0xbb, 0xb0, 0xb9, 0xb1, 0x31, 0x8f, 0x53,
+ 0x2e, 0x96, 0x80, 0x6f, 0x69, 0x6c, 0xc6, 0xa2, 0x6e, 0xd5, 0x8d, 0x07,
+ 0x17, 0x24, 0xbf, 0x0b, 0xa8, 0x01, 0x21, 0xf3, 0xd9, 0x0d, 0x62, 0xf1,
+ 0x20, 0xbc, 0x47, 0xd8, 0x25, 0xf0, 0x4f, 0xa6, 0xad, 0xaf, 0xa9, 0x94,
+ 0xe9, 0x25, 0x42, 0xef, 0xa2, 0x27, 0x06, 0x31, 0xfb, 0x40, 0x5f, 0xc9,
+ 0xd3, 0xf2, 0x7f, 0xcc, 0x49, 0xfe, 0xf5, 0x0e, 0xef, 0x82, 0xd6, 0xe1,
+ 0xe8, 0x17, 0x8c, 0xf6, 0xa7, 0x57, 0x65, 0x52, 0xf9, 0xbd, 0xb0, 0xfa,
+ 0xfd, 0x37, 0x11, 0xc5, 0xaa, 0xcf, 0xe0, 0x29, 0x7e, 0xc6, 0xe8, 0x8b,
+ 0x4e, 0x6b, 0x9f, 0x3f, 0xda, 0xa3, 0x43, 0x6b, 0xe0, 0x04, 0x6f, 0xe9,
+ 0x44, 0xf3, 0x88, 0xb2, 0x41, 0xac, 0x44, 0x8a, 0x93, 0x2a, 0xf6, 0x44,
+ 0x06, 0x66, 0x6e, 0xbb, 0xf9, 0xee, 0x5c, 0x1c, 0x90, 0x63, 0x67, 0xba,
+ 0x0a, 0xb3, 0x98, 0x73, 0xc4, 0x87, 0x86, 0x0d, 0x5e, 0xef, 0xf5, 0xd6,
+ 0xd1, 0x42, 0x5a, 0x87, 0xff, 0x88, 0x45, 0x48, 0x1e, 0x94, 0xd6, 0x70,
+ 0xa8, 0x51, 0xe3, 0xb7, 0x30, 0xfe, 0x8e, 0x59, 0x7c, 0xe3, 0x7b, 0x17,
+ 0x90, 0xe6, 0xef, 0x33, 0xd0, 0x27, 0x09, 0x2e, 0x25, 0x2d, 0x09, 0x9d,
+ 0x31, 0x9d, 0xb4, 0xdc, 0x68, 0x9e, 0xc3, 0x87, 0x53, 0xfa, 0x2a, 0x81,
+ 0x98, 0x25, 0xf3, 0xd1, 0x45, 0x50, 0xe1, 0xe2, 0x65, 0x42, 0x03, 0xcc,
+ 0x6a, 0x0d, 0xde, 0x12, 0x7e, 0x67, 0xf2, 0x04, 0x4e, 0x54, 0x1a, 0x85,
+ 0x88, 0x89, 0x04, 0x80, 0xff, 0x0f, 0x96, 0xe8, 0x3a, 0x79, 0x97, 0x47,
+ 0x0b, 0xd8, 0x6e, 0x67, 0xab, 0xc5, 0x76, 0x19, 0x1c, 0xc5, 0xd1, 0x74,
+ 0x36, 0xa0, 0x16, 0x60, 0x57, 0x40, 0x84, 0x00, 0x0c, 0x06, 0xa7, 0x49,
+ 0x70, 0x26, 0x7d, 0xbb, 0x0d, 0x07, 0xf7, 0x73, 0x34, 0x67, 0x51, 0xa3,
+ 0x08, 0x66, 0xf3, 0x57, 0x3d, 0x2f, 0x01, 0x7f, 0x64, 0x0d, 0x87, 0x20,
+ 0xfc, 0x17, 0xf6, 0xe6, 0x4e, 0x53, 0xd3, 0xe3, 0x5e, 0xbc, 0xa8, 0x09,
+ 0x17, 0xa9, 0x51, 0x6c, 0x42, 0x2a, 0x4a, 0xc8, 0x13, 0xe7, 0x63, 0x13,
+ 0x73, 0x14, 0xd8, 0x98, 0x06, 0xce, 0x14, 0x60, 0xcd, 0xd8, 0x9f, 0x0d,
+ 0xf6, 0x15, 0xfb, 0xa1, 0xb1, 0x87, 0x94, 0x22, 0xc4, 0x68, 0xc4, 0xb2,
+ 0xdd, 0xea, 0x43, 0x6d, 0x62, 0x9c, 0xe6, 0xd9, 0x0e, 0x45, 0x53, 0x90,
+ 0x6e, 0xd5, 0x55, 0xb2, 0xb5, 0xfb, 0x4c, 0xa6, 0xad, 0x5d, 0x0f, 0xc8,
+ 0x11, 0xb1, 0xc2, 0xbf, 0x5a, 0x5f, 0xe7, 0x68, 0x2a, 0x86, 0xf5, 0x3c,
+ 0x0b, 0x87, 0x42, 0xfa, 0xf8, 0xec, 0xa7, 0x2b, 0x73, 0xa0, 0x71, 0xd4,
+ 0x83, 0xce, 0xf8, 0xfb, 0x11, 0xa5, 0xae, 0x51, 0x31, 0x69, 0xa3, 0x25,
+ 0x78, 0xd7, 0x4d, 0xf8, 0x62, 0xac, 0xd4, 0x64, 0x41, 0xa7, 0x6c, 0x01,
+ 0xa4, 0xc5, 0x31, 0x51, 0x6e, 0x2b, 0x96, 0x1b, 0x36, 0xf8, 0x72, 0xc8,
+ 0x43, 0x79, 0x02, 0x20, 0x19, 0x29, 0xf4, 0xef, 0x01, 0x55, 0x48, 0x95,
+ 0x27, 0xee, 0x88, 0x33, 0xb2, 0xc0, 0x84, 0x66, 0xb5, 0xeb, 0xf0, 0xe3,
+ 0x6c, 0x52, 0x8e, 0x97, 0xd3, 0x6e, 0xce, 0x06, 0x1e, 0xcc, 0x95, 0x7c,
+ 0xd3, 0x74, 0xe3, 0xa2, 0x9b, 0xc2, 0xa9, 0x86, 0xb5, 0xa7, 0xd1, 0x02,
+ 0x43, 0x39, 0x04, 0xf0, 0xdc, 0x2f, 0x8d, 0x66, 0x94, 0x06, 0x0b, 0x8a,
+ 0xf3, 0xaf, 0xee, 0x29, 0xa1, 0xd5, 0x23, 0x38, 0xf0, 0xc2, 0x3a, 0x32,
+ 0x82, 0x04, 0x3d, 0x3c, 0xe3, 0xec, 0x79, 0x6f, 0xfb, 0x65, 0x6f, 0x63,
+ 0x4f, 0x3b, 0xb7, 0x75, 0xa3, 0xaf, 0xf2, 0x19, 0x6e, 0x07, 0xae, 0xf9,
+ 0xab, 0xfe, 0xd7, 0x59, 0xed, 0xbf, 0xb0, 0xb3, 0x8d, 0x2f, 0xbc, 0xeb,
+ 0xf3, 0x43, 0xb7, 0xc5, 0xf8, 0x02, 0x5e, 0x0c, 0x3c, 0xf6, 0x1c, 0x1f,
+ 0x03, 0x7e, 0x1b, 0xd5, 0x1e, 0x4e, 0x9a, 0x30, 0xd8, 0xfc, 0x49, 0xed,
+ 0xec, 0x04, 0x26, 0xd5, 0x5d, 0xf6, 0xa3, 0x6d, 0xcb, 0x92, 0x14, 0x6b,
+ 0x64, 0xb2, 0x41, 0x32, 0xbc, 0x26, 0x86, 0x22, 0x0c, 0x19, 0xd3, 0xfb,
+ 0xf0, 0x8f, 0xae, 0xfd, 0x6f, 0x88, 0x26, 0xf8, 0xdf, 0x52, 0xa6, 0x69,
+ 0xeb, 0x75, 0x73, 0x52, 0x87, 0xe9, 0xe6, 0xe6, 0x8b, 0xc1, 0xee, 0xe6,
+ 0x8b, 0x97, 0xcf, 0x2f, 0x76, 0x76, 0x76, 0xb7, 0x46, 0xc3, 0x95, 0x65,
+ 0x03, 0x0d, 0x2d, 0xe8, 0x2e, 0x01, 0x5c, 0x0d, 0xe7, 0x12, 0x9c, 0xb7,
+ 0x1b, 0x1b, 0x4f, 0xd1, 0x71, 0x40, 0x0d, 0xfc, 0xb6, 0xb6, 0x37, 0xd7,
+ 0x9f, 0xf5, 0x76, 0x7a, 0x5b, 0xa6, 0xae, 0x92, 0x01, 0xd0, 0x6a, 0xaa,
+ 0x16, 0x09, 0x64, 0x5b, 0x51, 0xd9, 0x4e, 0x96, 0x0b, 0x72, 0xac, 0xf9,
+ 0x09, 0x45, 0x1c, 0x6c, 0xd9, 0x12, 0x62, 0xc9, 0x6e, 0xba, 0x98, 0x29,
+ 0x14, 0xe8, 0xf2, 0x5a, 0xce, 0xe4, 0x31, 0x4e, 0xc2, 0x84, 0x97, 0x71,
+ 0x33, 0x07, 0xd9, 0xdf, 0x67, 0x59, 0x0d, 0x9a, 0x35, 0xc5, 0x3c, 0xd2,
+ 0x81, 0x69, 0xb1, 0x4b, 0xee, 0x27, 0x5a, 0x83, 0xb6, 0xd1, 0xf2, 0x45,
+ 0xb0, 0x56, 0xd0, 0x3b, 0x10, 0x7e, 0x84, 0x6a, 0x92, 0x91, 0x70, 0xc6,
+ 0x27, 0xaa, 0xac, 0xaa, 0x41, 0xa4, 0x82, 0x08, 0x7a, 0x53, 0xdc, 0x22,
+ 0xcf, 0x74, 0xa9, 0x12, 0x2b, 0x80, 0xa9, 0x4a, 0xf8, 0xa6, 0x9a, 0x5f,
+ 0xa6, 0xf8, 0xc3, 0x4e, 0x73, 0x5a, 0xa9, 0xa7, 0x61, 0xec, 0x5c, 0x0e,
+ 0x37, 0x37, 0x16, 0xbc, 0x58, 0xad, 0x94, 0xae, 0xae, 0x08, 0x0c, 0xc2,
+ 0x09, 0x51, 0xb6, 0x38, 0xbf, 0x09, 0x25, 0xbe, 0xf4, 0x25, 0xcd, 0x8c,
+ 0xe0, 0x82, 0xa5, 0xc4, 0xa3, 0xa8, 0x83, 0x82, 0xa8, 0xb3, 0x64, 0x62,
+ 0x85, 0x60, 0xf5, 0x76, 0x2d, 0x50, 0x2f, 0xdb, 0x77, 0x73, 0xe6, 0x67,
+ 0x5e, 0x78, 0x32, 0x13, 0x6e, 0xff, 0xfa, 0x4c, 0xb8, 0xf5, 0x3f, 0x9f,
+ 0x09, 0x95, 0x07, 0x93, 0x85, 0x1c, 0xa8, 0x98, 0x6b, 0xd1, 0xbf, 0x0e,
+ 0x13, 0x6e, 0xfd, 0x7a, 0x4c, 0xb8, 0xb9, 0x2c, 0x13, 0x6e, 0x3f, 0x86,
+ 0x09, 0x61, 0xbf, 0xc7, 0xa8, 0x4c, 0x34, 0x98, 0x70, 0xe7, 0xd7, 0x65,
+ 0x42, 0x84, 0x0f, 0x6f, 0xec, 0x09, 0x16, 0xb6, 0x1c, 0x84, 0x73, 0x03,
+ 0x1e, 0xbf, 0xdb, 0x09, 0x0d, 0xab, 0xa3, 0x7a, 0x88, 0x41, 0xcc, 0xea,
+ 0xbf, 0xe7, 0x5e, 0x6f, 0xff, 0x26, 0x02, 0x67, 0xf3, 0xa1, 0xbd, 0x2e,
+ 0x53, 0xce, 0xd1, 0xf9, 0x5e, 0x73, 0xa5, 0xe0, 0x5b, 0x3f, 0x92, 0xe3,
+ 0x76, 0x0f, 0xf5, 0x87, 0x1f, 0xdb, 0xd6, 0x97, 0xf4, 0x9b, 0xb1, 0x96,
+ 0x42, 0xff, 0xf4, 0xf0, 0xeb, 0xbe, 0x24, 0xfa, 0x88, 0x32, 0xa7, 0xca,
+ 0x1e, 0x7b, 0x11, 0xa9, 0xbe, 0x8e, 0xd0, 0xf7, 0xfc, 0x48, 0x23, 0x55,
+ 0x7d, 0xc0, 0x3c, 0xee, 0xba, 0x26, 0x35, 0x06, 0x7b, 0x00, 0xe4, 0x91,
+ 0xde, 0x07, 0xd4, 0xc9, 0x82, 0x31, 0xbe, 0x28, 0x9e, 0x22, 0x43, 0x57,
+ 0x61, 0xff, 0x84, 0x3b, 0x17, 0x89, 0xe9, 0xe4, 0xf6, 0x95, 0xd5, 0xfa,
+ 0xaa, 0x24, 0x60, 0x14, 0x7a, 0x6c, 0xcd, 0x74, 0x24, 0x78, 0x60, 0x76,
+ 0x32, 0xab, 0x37, 0xd4, 0x21, 0x6d, 0x5a, 0xa6, 0x9a, 0x10, 0x1b, 0x70,
+ 0x22, 0x99, 0xdf, 0x6a, 0xd8, 0x31, 0x84, 0xfc, 0x28, 0x60, 0xfa, 0x0e,
+ 0xbd, 0xf1, 0x3d, 0xaf, 0x68, 0x31, 0xbb, 0x73, 0x21, 0x9f, 0xd1, 0x63,
+ 0x0b, 0x6c, 0x9b, 0x13, 0xae, 0x87, 0xe6, 0x5e, 0x9a, 0x31, 0x2a, 0xc5,
+ 0xc1, 0xc1, 0x4e, 0xe8, 0xd5, 0x0e, 0x0c, 0xd9, 0x0e, 0x59, 0xf1, 0x2f,
+ 0x12, 0xfc, 0x8d, 0xfc, 0x63, 0x17, 0x3f, 0x4c, 0x70, 0x21, 0xfc, 0xcf,
+ 0x2b, 0xfa, 0x37, 0x7e, 0x52, 0x01, 0xe2, 0x9d, 0x7d, 0x1e, 0x06, 0x09,
+ 0xad, 0x72, 0x9a, 0x1d, 0x39, 0x8c, 0x2f, 0xf8, 0xae, 0xb0, 0x38, 0xe8,
+ 0xee, 0x9a, 0xd1, 0x07, 0xc0, 0xcd, 0x85, 0x02, 0xce, 0x6d, 0x47, 0xca,
+ 0xd3, 0xc8, 0x3b, 0x73, 0xf3, 0x16, 0xdc, 0xf6, 0x3b, 0x8a, 0xde, 0x67,
+ 0x3f, 0x23, 0x6e, 0x03, 0x77, 0x0b, 0xba, 0xdc, 0xb8, 0xc9, 0x2f, 0xff,
+ 0xc6, 0x2e, 0xdf, 0x32, 0xf3, 0xcd, 0x8d, 0x17, 0xbe, 0xcb, 0xef, 0x43,
+ 0x25, 0xdd, 0x3e, 0x6c, 0x2b, 0x19, 0xca, 0xa0, 0x27, 0xfc, 0x82, 0x81,
+ 0xc5, 0x2e, 0x09, 0x7d, 0x14, 0xe3, 0xeb, 0x01, 0xb7, 0x05, 0x02, 0x73,
+ 0x15, 0x62, 0x73, 0x22, 0x15, 0x44, 0xc4, 0x24, 0xcd, 0xe6, 0xdb, 0xe8,
+ 0x7c, 0xc9, 0xa4, 0x6c, 0x1c, 0xf4, 0x71, 0xce, 0xe8, 0xf6, 0xb2, 0x1d,
+ 0xd0, 0x77, 0xa7, 0x29, 0x7a, 0x5f, 0xd8, 0x0e, 0x12, 0x7f, 0xde, 0xd9,
+ 0xc0, 0x3d, 0xd5, 0x41, 0xe0, 0x00, 0x15, 0xe3, 0x42, 0x60, 0x23, 0xff,
+ 0xbc, 0x9d, 0xfc, 0xe1, 0x9e, 0x25, 0x15, 0x37, 0x86, 0x05, 0xf9, 0x30,
+ 0x29, 0x92, 0x42, 0x7c, 0x17, 0x49, 0x1c, 0x09, 0xff, 0x63, 0x7e, 0xbc,
+ 0x9c, 0x66, 0xbf, 0xdb, 0xf4, 0x8d, 0xfc, 0xa9, 0xeb, 0x16, 0xc8, 0x0c,
+ 0x92, 0x32, 0xe0, 0x23, 0x15, 0x8d, 0x44, 0x51, 0x4a, 0x15, 0x91, 0xd3,
+ 0x54, 0xce, 0x24, 0xec, 0x96, 0xa0, 0xc9, 0x98, 0x1f, 0xc2, 0x50, 0x91,
+ 0xdf, 0x59, 0xdb, 0xa4, 0x5c, 0x70, 0xaa, 0x31, 0x7b, 0x97, 0xba, 0x1e,
+ 0xf4, 0x7e, 0x32, 0xee, 0x72, 0x3d, 0x4e, 0xd8, 0x7d, 0x6a, 0xbf, 0x42,
+ 0x9f, 0x19, 0x95, 0xc9, 0xad, 0xe3, 0x19, 0x61, 0x64, 0xe9, 0x0b, 0xca,
+ 0xa8, 0x30, 0x19, 0xff, 0xf0, 0x7b, 0x4c, 0x9d, 0xad, 0x02, 0xe9, 0xcb,
+ 0xd5, 0xb0, 0x4c, 0x25, 0xd7, 0x0c, 0x9b, 0xbb, 0x54, 0xdc, 0x87, 0x72,
+ 0x88, 0x85, 0x22, 0x97, 0xa9, 0x62, 0x53, 0xda, 0xfe, 0x96, 0x82, 0x8c,
+ 0x49, 0x70, 0x98, 0xbd, 0x40, 0xad, 0xbc, 0xe3, 0x3e, 0x36, 0x05, 0x56,
+ 0xa8, 0x37, 0x31, 0x7e, 0x26, 0xbe, 0xde, 0x95, 0x32, 0x15, 0xd3, 0x52,
+ 0x66, 0x9a, 0x60, 0xd1, 0xc6, 0x55, 0x36, 0x6d, 0x6b, 0x15, 0xf1, 0x67,
+ 0xc5, 0x67, 0xf1, 0x9a, 0x9c, 0xad, 0xe2, 0x26, 0xad, 0xc8, 0x8c, 0x65,
+ 0x98, 0x12, 0x38, 0xea, 0x57, 0xe4, 0x96, 0x93, 0xfb, 0x96, 0xf0, 0x45,
+ 0xb0, 0xc0, 0x95, 0xfc, 0x1d, 0x94, 0xb8, 0x31, 0x07, 0x4b, 0x95, 0x73,
+ 0xb8, 0x58, 0xd0, 0xa2, 0x0b, 0x0f, 0x68, 0x75, 0xc1, 0xc5, 0x69, 0xe8,
+ 0xfe, 0x89, 0x30, 0xdd, 0x58, 0xfa, 0xe0, 0x71, 0x9e, 0x42, 0x31, 0xfd,
+ 0x57, 0xf7, 0x62, 0xff, 0xe9, 0xa1, 0x74, 0x24, 0xe2, 0xf1, 0xba, 0x88,
+ 0x55, 0x96, 0xee, 0xab, 0x18, 0xfe, 0xfc, 0x41, 0x24, 0x0d, 0x23, 0xb0,
+ 0x2f, 0xc4, 0xa3, 0x86, 0xc2, 0x8a, 0xf0, 0x59, 0xb8, 0xed, 0xdf, 0xf0,
+ 0x2a, 0x9d, 0x70, 0x9f, 0x2d, 0x1f, 0x15, 0x05, 0x54, 0xa0, 0x9c, 0xf7,
+ 0x1d, 0x93, 0x5b, 0x72, 0xe3, 0x76, 0x88, 0x9c, 0x76, 0x18, 0x02, 0xd1,
+ 0x2e, 0x58, 0xdf, 0xd1, 0x21, 0x0c, 0x7f, 0xf4, 0xf1, 0xc3, 0xbb, 0xfe,
+ 0x87, 0xb3, 0xd8, 0xeb, 0x64, 0xf1, 0xfe, 0xfc, 0xe8, 0x15, 0xd6, 0x32,
+ 0x9c, 0x9f, 0x1e, 0x9e, 0x9e, 0x44, 0xab, 0x9b, 0x6b, 0x0b, 0x37, 0xc6,
+ 0x6c, 0x85, 0xe9, 0xc6, 0x63, 0x23, 0x39, 0x2c, 0x68, 0xcc, 0x2c, 0x56,
+ 0x91, 0x78, 0xfe, 0x68, 0xdf, 0x0a, 0xff, 0xb6, 0x9c, 0xbe, 0xe2, 0xc6,
+ 0xba, 0x84, 0x8b, 0xb0, 0x22, 0x6f, 0xa1, 0x8c, 0xe2, 0xe6, 0x7e, 0x53,
+ 0x69, 0x8a, 0xd7, 0xff, 0x0d, 0xa3, 0xcc, 0x18, 0x38, 0xa5, 0x1c, 0x51,
+ 0x17, 0x63, 0x67, 0x79, 0x59, 0xe9, 0x6e, 0x27, 0x17, 0x85, 0x5e, 0x58,
+ 0xa1, 0xf8, 0x80, 0x10, 0xdc, 0xd9, 0x6d, 0xb9, 0x37, 0x68, 0x34, 0xd2,
+ 0x77, 0x2d, 0x6b, 0x54, 0x8b, 0x79, 0x83, 0x51, 0x51, 0xa9, 0x05, 0xa2,
+ 0x79, 0x83, 0xda, 0xfe, 0x4a, 0x46, 0x11, 0xe1, 0xf8, 0xb1, 0x02, 0x0d,
+ 0x0a, 0xc8, 0x59, 0x59, 0xf8, 0x39, 0x79, 0xf4, 0x0a, 0x50, 0x20, 0xcf,
+ 0xf8, 0xda, 0x93, 0x89, 0x18, 0x3c, 0x39, 0xc9, 0x4e, 0x86, 0x07, 0xf0,
+ 0xb7, 0xce, 0x26, 0x10, 0x6c, 0x91, 0xdf, 0xfc, 0x86, 0x5e, 0x46, 0xa2,
+ 0x22, 0xe0, 0x8e, 0x9d, 0x14, 0x0e, 0x87, 0x57, 0x0b, 0x35, 0x4a, 0x99,
+ 0x7f, 0x2d, 0x75, 0x05, 0x84, 0x94, 0xe4, 0x09, 0x29, 0x7d, 0x78, 0x9e,
+ 0x59, 0xcd, 0x73, 0x16, 0x33, 0x27, 0x13, 0xab, 0x49, 0x44, 0x4c, 0x1e,
+ 0xe8, 0xe2, 0xae, 0x74, 0x79, 0x6b, 0xe4, 0xde, 0x5a, 0xb0, 0x3b, 0x5f,
+ 0x36, 0xdb, 0x22, 0x48, 0xe9, 0x3f, 0x4e, 0x85, 0x67, 0xc5, 0x08, 0x4f,
+ 0x34, 0x9b, 0x2e, 0xa1, 0x02, 0xe1, 0xe4, 0x5e, 0x9b, 0xb9, 0x79, 0xf5,
+ 0xb6, 0x9c, 0xbd, 0xb2, 0xaa, 0xe0, 0x91, 0xcf, 0x76, 0x7b, 0x5b, 0x6b,
+ 0x3d, 0x37, 0xef, 0x06, 0xd3, 0x1b, 0x80, 0x54, 0x7f, 0x49, 0x0c, 0x5c,
+ 0x14, 0x57, 0x7e, 0xf1, 0x32, 0x3c, 0xbb, 0x9b, 0x65, 0xa1, 0x83, 0x92,
+ 0xab, 0xed, 0xe6, 0x68, 0xa7, 0x2e, 0x8b, 0x62, 0x24, 0xd8, 0x94, 0x8c,
+ 0x45, 0xf9, 0x34, 0x7e, 0x66, 0xe2, 0x7d, 0xd6, 0x22, 0xdc, 0x03, 0x42,
+ 0xed, 0x17, 0x73, 0x2c, 0xfb, 0xa2, 0x28, 0xd0, 0x71, 0xd1, 0xb8, 0xc0,
+ 0xda, 0xd7, 0xdb, 0x99, 0x79, 0x8b, 0x78, 0x2a, 0x45, 0x98, 0x1b, 0xae,
+ 0xe6, 0x4b, 0x2f, 0x48, 0x3f, 0x25, 0xfc, 0xaa, 0x2e, 0xfd, 0x92, 0x32,
+ 0xb6, 0x4c, 0x11, 0xd0, 0xa8, 0x1b, 0x82, 0x19, 0xc2, 0x31, 0x92, 0xa1,
+ 0xab, 0xef, 0x1b, 0x44, 0xfb, 0x15, 0xd8, 0x8a, 0x95, 0xae, 0x81, 0x65,
+ 0x1b, 0xdf, 0x53, 0x36, 0x47, 0x86, 0x99, 0x13, 0xd4, 0x2b, 0xea, 0xe7,
+ 0xb4, 0x2c, 0xfc, 0xfc, 0x41, 0xd2, 0x23, 0x14, 0xda, 0x1b, 0xf4, 0xfe,
+ 0x83, 0x1b, 0x90, 0x2d, 0x94, 0x0e, 0x69, 0x7e, 0x88, 0x5f, 0xf5, 0x58,
+ 0xf8, 0x2f, 0xb0, 0x36, 0x04, 0xdd, 0x12, 0x49, 0x67, 0x66, 0x93, 0x11,
+ 0x8a, 0x7f, 0xa6, 0x39, 0x5f, 0xce, 0x91, 0x1a, 0x23, 0xbe, 0xd6, 0x3d,
+ 0x43, 0x75, 0x79, 0x06, 0x32, 0xa9, 0xa0, 0x23, 0x34, 0xa9, 0x6c, 0x21,
+ 0xb3, 0x09, 0xa1, 0x5f, 0x70, 0x2f, 0x6c, 0x81, 0x1f, 0x17, 0x9d, 0xd2,
+ 0x17, 0xbd, 0x71, 0x14, 0xbd, 0x4a, 0xf3, 0xfb, 0xe6, 0x84, 0xb0, 0x54,
+ 0x07, 0xf4, 0x00, 0x0e, 0x78, 0x48, 0x3b, 0x08, 0x4a, 0x40, 0x23, 0x74,
+ 0x7c, 0x6c, 0x07, 0x62, 0xa6, 0xe8, 0x4f, 0xa9, 0x39, 0xe7, 0x90, 0x20,
+ 0xf8, 0xcc, 0x90, 0x41, 0x11, 0x28, 0x5d, 0x62, 0xac, 0x52, 0x47, 0x0e,
+ 0x4d, 0x59, 0xa3, 0x4f, 0x3e, 0x86, 0x0c, 0xd4, 0x00, 0x80, 0x2c, 0xcb,
+ 0x6a, 0x36, 0xf8, 0x49, 0x1a, 0x63, 0xa1, 0x5f, 0xa4, 0x14, 0x2a, 0x88,
+ 0x55, 0x0f, 0xbb, 0x0a, 0x0f, 0x70, 0xd0, 0xb3, 0xc6, 0x1a, 0xc0, 0xd0,
+ 0x70, 0x94, 0x4b, 0x97, 0x39, 0x99, 0xde, 0x51, 0xb3, 0xa4, 0x74, 0x11,
+ 0x7a, 0x91, 0xb7, 0xeb, 0x7a, 0x7e, 0xe2, 0x0b, 0x3c, 0x69, 0x5c, 0x33,
+ 0xd4, 0xba, 0x23, 0x99, 0x96, 0x5c, 0x02, 0x67, 0x2a, 0x3f, 0xf1, 0xf1,
+ 0xb9, 0x63, 0xa9, 0xe0, 0xab, 0xba, 0x7f, 0xc1, 0xff, 0xf8, 0x6b, 0x68,
+ 0x96, 0xb1, 0x22, 0x4c, 0x89, 0x08, 0x1f, 0x7c, 0x9c, 0xa4, 0x1a, 0xbd,
+ 0x3e, 0xef, 0x03, 0x8e, 0x70, 0x58, 0x3c, 0x36, 0x39, 0x3d, 0x96, 0xf8,
+ 0xc0, 0x07, 0xd1, 0x54, 0x1c, 0x2e, 0xc7, 0xbf, 0x52, 0x3f, 0x4f, 0xd4,
+ 0x5f, 0xa5, 0xee, 0x5f, 0x81, 0xc0, 0xc4, 0x2e, 0xab, 0xb0, 0x17, 0x3a,
+ 0x79, 0x1c, 0xbc, 0xe6, 0xc1, 0x17, 0x58, 0x2f, 0x5b, 0xe2, 0x1f, 0xb8,
+ 0xbb, 0x94, 0x48, 0xac, 0x4d, 0x07, 0xb5, 0x6a, 0x73, 0x5a, 0xd4, 0xdc,
+ 0x01, 0x71, 0x8c, 0xb1, 0x2c, 0xd0, 0x51, 0x4a, 0x74, 0x8a, 0xe2, 0x67,
+ 0xc3, 0x97, 0x65, 0xd7, 0x51, 0xa9, 0x71, 0x64, 0xf2, 0x80, 0xcd, 0xa6,
+ 0x54, 0xdc, 0x20, 0x25, 0x3e, 0xda, 0x26, 0xce, 0xd1, 0x4a, 0x02, 0xaa,
+ 0x30, 0x57, 0x06, 0x91, 0x77, 0xcd, 0xf4, 0x4f, 0xbc, 0x29, 0xb2, 0xd1,
+ 0xa2, 0x7e, 0x38, 0x5e, 0x8f, 0xe2, 0x60, 0x46, 0xbe, 0x2d, 0xe4, 0x4d,
+ 0x2a, 0x17, 0xd3, 0xc6, 0x07, 0xcd, 0xb0, 0x09, 0xc0, 0x94, 0x5a, 0x92,
+ 0x63, 0xe0, 0x31, 0x4f, 0x6a, 0x3d, 0x60, 0x8e, 0x88, 0xc6, 0x69, 0x12,
+ 0x06, 0x6c, 0x8e, 0x26, 0xd3, 0x30, 0xf5, 0x4b, 0xe8, 0x6c, 0x73, 0xee,
+ 0x27, 0x5d, 0x3c, 0x2e, 0x57, 0x75, 0x2b, 0xe0, 0xef, 0x65, 0x3d, 0x6b,
+ 0xce, 0xed, 0x65, 0x4a, 0x25, 0xad, 0x7e, 0xd6, 0x52, 0xb5, 0xee, 0xee,
+ 0xb5, 0x66, 0x6a, 0xe1, 0x75, 0x35, 0x25, 0x40, 0x41, 0xd8, 0xd8, 0xac,
+ 0x26, 0x66, 0x69, 0x95, 0x99, 0x6a, 0x89, 0x24, 0x85, 0x97, 0x51, 0x16,
+ 0x78, 0xcd, 0x38, 0x73, 0x0d, 0x0e, 0xbb, 0xd5, 0x4c, 0x5c, 0x77, 0x42,
+ 0xea, 0x8d, 0xf8, 0xae, 0xb8, 0xb1, 0xad, 0xd3, 0x23, 0x18, 0x79, 0x00,
+ 0xc3, 0xc5, 0x61, 0xa7, 0xec, 0xba, 0xc9, 0x9b, 0x05, 0x66, 0xcd, 0x47,
+ 0x31, 0xc8, 0xa4, 0xe9, 0x13, 0x88, 0x6e, 0x89, 0x60, 0xfe, 0x4d, 0x95,
+ 0x4e, 0xb6, 0x7e, 0x6e, 0x84, 0x06, 0x3f, 0xeb, 0xe9, 0x4b, 0xed, 0xc6,
+ 0x5d, 0x57, 0x47, 0x34, 0x7f, 0xe1, 0xd2, 0xb6, 0x46, 0x15, 0xeb, 0xa8,
+ 0x55, 0xb9, 0xd8, 0x78, 0xf2, 0x41, 0xa3, 0x68, 0x6e, 0xef, 0xdc, 0xc8,
+ 0xdd, 0x10, 0xdd, 0x80, 0x50, 0x6d, 0x99, 0xed, 0x19, 0x26, 0xdb, 0xf0,
+ 0x81, 0xa1, 0x8e, 0x68, 0x4c, 0x32, 0x13, 0x73, 0xa9, 0xbb, 0x76, 0xbe,
+ 0xc5, 0x46, 0xab, 0xb7, 0x2f, 0x98, 0x99, 0x2a, 0x2d, 0x52, 0xf9, 0x39,
+ 0xb9, 0x73, 0x6d, 0xff, 0xaa, 0xf6, 0x24, 0x17, 0x74, 0x73, 0xa4, 0x6b,
+ 0x80, 0x3e, 0x84, 0x13, 0xcb, 0xd2, 0xea, 0x69, 0x9b, 0xcb, 0x0b, 0xf9,
+ 0x1d, 0xb6, 0x36, 0x84, 0xc2, 0x3c, 0x6f, 0x73, 0x87, 0x09, 0x26, 0x39,
+ 0x84, 0xcb, 0x64, 0xfa, 0x22, 0x89, 0x62, 0x7d, 0x0a, 0xef, 0x3c, 0x12,
+ 0x71, 0x59, 0xee, 0x3a, 0x7b, 0x29, 0x17, 0xe5, 0x29, 0x89, 0x66, 0xee,
+ 0x0c, 0x0e, 0x0f, 0x18, 0xc5, 0xb6, 0x46, 0xd0, 0xbd, 0x3b, 0x43, 0x84,
+ 0xa5, 0x48, 0xd2, 0x2a, 0x1a, 0x1d, 0x26, 0x98, 0x49, 0x43, 0xae, 0x72,
+ 0xfe, 0x88, 0xfc, 0x95, 0xf2, 0x6b, 0x88, 0x38, 0x96, 0x7a, 0xbd, 0x47,
+ 0xfb, 0xc7, 0x1a, 0x83, 0x4b, 0x91, 0xdd, 0x7c, 0xba, 0xd1, 0x43, 0xbf,
+ 0x11, 0xdd, 0x68, 0xec, 0x75, 0x2a, 0x35, 0x58, 0xb7, 0xf5, 0x68, 0x4f,
+ 0x25, 0x9e, 0x15, 0xdc, 0x66, 0x53, 0xba, 0x8d, 0x48, 0x83, 0xe0, 0xa1,
+ 0xeb, 0xaa, 0x7a, 0x4a, 0x24, 0x58, 0x95, 0x97, 0x82, 0x31, 0x87, 0x66,
+ 0x30, 0x66, 0x5c, 0xdf, 0x4f, 0xd3, 0x68, 0x1f, 0xff, 0x5c, 0x40, 0x37,
+ 0xf3, 0xe0, 0x6f, 0x43, 0x3a, 0x33, 0x3c, 0x66, 0x49, 0xb9, 0x3f, 0xe5,
+ 0x84, 0xab, 0xa7, 0x90, 0xf0, 0x61, 0x86, 0xa1, 0x73, 0x86, 0x7f, 0x7e,
+ 0x2f, 0x47, 0xfe, 0xc7, 0xb9, 0x04, 0x38, 0xea, 0x0a, 0x11, 0x7e, 0xbb,
+ 0xf5, 0xff, 0x96, 0x2b, 0xcd, 0xa6, 0x57, 0x68, 0x57, 0xed, 0x87, 0x60,
+ 0x5f, 0x9c, 0x4d, 0x96, 0xc7, 0x7e, 0x9b, 0x25, 0xca, 0xe0, 0x47, 0x87,
+ 0xaf, 0xde, 0x1c, 0xc5, 0xf0, 0x67, 0xff, 0x20, 0x3e, 0x38, 0xea, 0x6f,
+ 0xed, 0x3e, 0x8b, 0x0f, 0x0f, 0xdf, 0xbe, 0xf8, 0x8d, 0x16, 0x5e, 0x8e,
+ 0x2d, 0xa4, 0xfd, 0x82, 0x85, 0xcb, 0x63, 0xbf, 0xcd, 0xc2, 0x65, 0xf0,
+ 0x32, 0xfd, 0x89, 0x5a, 0xf1, 0x3c, 0x55, 0x9e, 0x3e, 0xb8, 0x58, 0xbe,
+ 0x51, 0x82, 0x7a, 0x81, 0xaf, 0x18, 0xbc, 0x92, 0xf2, 0xf8, 0xe6, 0xa5,
+ 0x7b, 0xcb, 0xf1, 0xc6, 0xa7, 0xe9, 0x05, 0x52, 0x71, 0xef, 0x2b, 0x06,
+ 0xf2, 0x2d, 0x7c, 0xb7, 0xed, 0x5e, 0x68, 0x68, 0x06, 0x4f, 0x22, 0xaf,
+ 0x7c, 0xf5, 0x0f, 0xba, 0xc5, 0x49, 0x85, 0xf0, 0xb7, 0x82, 0x6b, 0x6e,
+ 0xa2, 0x7d, 0xfe, 0xef, 0xfa, 0x17, 0x21, 0xf6, 0x33, 0x70, 0x24, 0xa8,
+ 0xc7, 0x4a, 0x95, 0x0e, 0x77, 0x7b, 0x67, 0xac, 0x60, 0x31, 0xa1, 0x4d,
+ 0x0b, 0x73, 0xb7, 0x7b, 0x29, 0xbe, 0xea, 0x59, 0x5f, 0x8a, 0x7e, 0xd3,
+ 0x33, 0x55, 0x93, 0xa6, 0xdd, 0x8b, 0x49, 0x32, 0x45, 0x07, 0x44, 0xea,
+ 0x7c, 0xb0, 0x32, 0xe8, 0xee, 0x21, 0x7c, 0x63, 0x4c, 0x44, 0xb8, 0x49,
+ 0x08, 0x0f, 0xce, 0xe9, 0x13, 0xf5, 0x06, 0x49, 0x22, 0xf3, 0xc5, 0x13,
+ 0x23, 0x35, 0x83, 0x7a, 0x54, 0x88, 0x79, 0xc2, 0x7d, 0xe8, 0xd9, 0xd6,
+ 0x1d, 0x73, 0x85, 0x6a, 0x74, 0x78, 0xfa, 0xee, 0xdd, 0xd1, 0x61, 0x3b,
+ 0x6f, 0xc2, 0x62, 0x72, 0x10, 0x4a, 0xb1, 0xb8, 0x0e, 0x82, 0x35, 0x4d,
+ 0xd2, 0xab, 0xd6, 0x84, 0xc1, 0x79, 0x06, 0xf0, 0xaf, 0x5b, 0x81, 0xa8,
+ 0xa1, 0x5f, 0x0b, 0xd6, 0x8d, 0x34, 0x30, 0x62, 0x7e, 0xf3, 0x90, 0xd3,
+ 0x03, 0xdc, 0x67, 0x5d, 0x9c, 0x14, 0xf6, 0xad, 0x66, 0xa5, 0x80, 0xa5,
+ 0x91, 0x3f, 0x4c, 0x67, 0x40, 0xd3, 0x4d, 0x46, 0xa3, 0x75, 0xa9, 0xe0,
+ 0x15, 0xc8, 0x2b, 0xf8, 0xf0, 0xbc, 0x93, 0xc3, 0x8d, 0x50, 0x10, 0x38,
+ 0x25, 0x2e, 0x2e, 0xb8, 0xc7, 0xea, 0x24, 0x29, 0xaf, 0x31, 0x05, 0xc8,
+ 0xa9, 0x4b, 0x26, 0xfc, 0x30, 0x6a, 0x58, 0x32, 0x1a, 0x85, 0x30, 0x59,
+ 0x29, 0xa0, 0xe7, 0x42, 0x3a, 0xc8, 0x84, 0x48, 0x54, 0xe5, 0xf5, 0x1e,
+ 0x66, 0x78, 0xeb, 0xeb, 0x79, 0x7a, 0x8b, 0x9f, 0x61, 0xf8, 0x6d, 0xc4,
+ 0x56, 0xf5, 0x7b, 0x2b, 0x70, 0x77, 0x3e, 0x8e, 0x94, 0xde, 0x3b, 0x8e,
+ 0xdd, 0x09, 0x37, 0x10, 0x06, 0x9e, 0xa3, 0xc6, 0x6e, 0x82, 0x8b, 0xe2,
+ 0xd1, 0xea, 0x0d, 0x33, 0x53, 0x23, 0x01, 0xdb, 0x4b, 0x45, 0x37, 0xc0,
+ 0xfb, 0x83, 0x54, 0x99, 0x9c, 0xe4, 0xd9, 0x3c, 0x34, 0x72, 0xdb, 0xe9,
+ 0x83, 0x02, 0x73, 0x55, 0x63, 0x00, 0xdd, 0xda, 0x64, 0x4e, 0x36, 0x43,
+ 0x1f, 0x5b, 0x10, 0x92, 0x13, 0x8e, 0x04, 0xe6, 0x6e, 0xbb, 0xdf, 0x15,
+ 0xfa, 0x07, 0xb0, 0x4b, 0x17, 0x75, 0x01, 0x2d, 0x2f, 0x67, 0x0c, 0x64,
+ 0x85, 0x80, 0x1b, 0x74, 0x58, 0xe3, 0x40, 0x58, 0x24, 0x62, 0xe0, 0x25,
+ 0x75, 0x2b, 0x53, 0x6e, 0x06, 0x90, 0x17, 0x37, 0x42, 0x88, 0xaf, 0xa1,
+ 0x33, 0x8e, 0x6f, 0xca, 0x01, 0xce, 0xf2, 0xa9, 0xd7, 0xa1, 0x9c, 0xdb,
+ 0x43, 0x30, 0xb6, 0xed, 0x17, 0x71, 0xbb, 0xad, 0x2e, 0x3a, 0xec, 0xdc,
+ 0x3d, 0xa5, 0xeb, 0x83, 0x3c, 0x89, 0x55, 0x3d, 0xca, 0xf2, 0x47, 0xfb,
+ 0x3d, 0xac, 0xe3, 0x43, 0xea, 0xa4, 0x39, 0x9b, 0xc5, 0x32, 0xeb, 0x3a,
+ 0xb9, 0x2a, 0xdb, 0xbc, 0x60, 0xde, 0x52, 0x11, 0xb1, 0x74, 0xc2, 0xac,
+ 0x2b, 0x03, 0x3b, 0xdf, 0xc5, 0xaf, 0x31, 0xf3, 0x25, 0x7e, 0x07, 0x24,
+ 0xdc, 0x8b, 0xfe, 0xb3, 0x48, 0x3b, 0x4e, 0x94, 0x7c, 0xbe, 0x68, 0x7e,
+ 0xcc, 0xd0, 0x98, 0xe2, 0x10, 0x1f, 0x5c, 0x12, 0xbf, 0xc3, 0xf9, 0x9c,
+ 0x96, 0x59, 0xf5, 0x2b, 0x8e, 0xfe, 0x06, 0xa4, 0xc2, 0xde, 0xe3, 0x86,
+ 0x5b, 0x90, 0xa5, 0x4b, 0x28, 0x90, 0xad, 0xeb, 0x21, 0xcb, 0x29, 0x06,
+ 0x91, 0xce, 0x53, 0x48, 0xae, 0x51, 0xc2, 0xea, 0x43, 0xbf, 0x8d, 0x56,
+ 0x62, 0x46, 0xff, 0x4d, 0x54, 0x91, 0xeb, 0xf4, 0xfe, 0x51, 0x66, 0x85,
+ 0x79, 0xee, 0x37, 0x59, 0xa3, 0x19, 0x1d, 0x53, 0xed, 0x9d, 0x1f, 0x46,
+ 0x14, 0xda, 0xff, 0xad, 0x16, 0x1e, 0xed, 0xc3, 0x1f, 0x0b, 0x97, 0xfc,
+ 0x9b, 0xad, 0xf6, 0x37, 0x5c, 0xd8, 0xbc, 0xa6, 0x6a, 0xc1, 0x62, 0x1c,
+ 0xd2, 0xfa, 0x1e, 0xec, 0xaf, 0x46, 0xf7, 0xbd, 0x17, 0xc4, 0x73, 0x74,
+ 0xcf, 0x85, 0xda, 0xa6, 0xc5, 0x7b, 0x72, 0x15, 0xce, 0x40, 0x02, 0x5c,
+ 0x68, 0x22, 0x92, 0x59, 0xf1, 0x8b, 0x95, 0x4f, 0xa7, 0x59, 0xd7, 0xaf,
+ 0xab, 0x7f, 0x2e, 0xaf, 0x72, 0x22, 0x0e, 0xd7, 0xe3, 0xf7, 0xc6, 0x47,
+ 0xb7, 0xfb, 0x65, 0xba, 0x3f, 0xa1, 0x80, 0x35, 0x34, 0x7f, 0xfa, 0x44,
+ 0x83, 0xce, 0x8f, 0x51, 0xba, 0x1e, 0x47, 0x75, 0xc2, 0x31, 0x5b, 0x40,
+ 0xf0, 0x65, 0xe5, 0xb5, 0x47, 0xf7, 0x36, 0x98, 0x58, 0x63, 0x37, 0x7c,
+ 0xda, 0x2f, 0xaa, 0x99, 0xb4, 0x27, 0x9f, 0x9e, 0xfa, 0x4d, 0x8e, 0x7e,
+ 0xb3, 0xde, 0xf1, 0xf7, 0x10, 0x07, 0xff, 0x3a, 0xe5, 0x7a, 0x4e, 0x80,
+ 0x20, 0x50, 0xaf, 0xf7, 0xbf, 0xe5, 0x7a, 0xff, 0x5b, 0xae, 0xf7, 0xcb,
+ 0xcb, 0xf5, 0x7e, 0xf7, 0x8a, 0x33, 0xff, 0x8c, 0x3d, 0xa1, 0xee, 0xcc,
+ 0x1f, 0xe4, 0x57, 0xac, 0x3e, 0xdb, 0x7d, 0x19, 0x12, 0x0b, 0xc8, 0x67,
+ 0xd9, 0x50, 0xb0, 0xc3, 0xf6, 0xe7, 0xf6, 0x90, 0x34, 0x28, 0x4e, 0x8d,
+ 0xc4, 0x61, 0x27, 0x05, 0x4e, 0xc6, 0x61, 0xb3, 0xcb, 0x3a, 0x17, 0x7c,
+ 0xfc, 0x05, 0x39, 0x02, 0x4f, 0x8a, 0xa9, 0xb6, 0xe7, 0xdb, 0xa9, 0xae,
+ 0xca, 0xd9, 0x00, 0x8e, 0xf6, 0x7d, 0x67, 0xa9, 0x5b, 0xdb, 0x4d, 0x5a,
+ 0xdb, 0x0e, 0x52, 0xa5, 0x1a, 0xc7, 0xb4, 0x54, 0xc4, 0x18, 0xf4, 0x3c,
+ 0x74, 0xf6, 0x82, 0x68, 0x3d, 0xf7, 0xdb, 0xdc, 0x15, 0xed, 0x8f, 0xfc,
+ 0x26, 0xd7, 0x03, 0x7d, 0x64, 0x56, 0x17, 0xf1, 0x70, 0x9c, 0x81, 0x04,
+ 0x21, 0xff, 0xf6, 0xe2, 0x65, 0xb7, 0x1e, 0xfe, 0x0d, 0xd7, 0xde, 0xfe,
+ 0xd2, 0x2f, 0x24, 0xc0, 0xf3, 0xe7, 0x21, 0x02, 0xd4, 0xe3, 0x6a, 0x73,
+ 0xdb, 0xfa, 0xdd, 0xe5, 0x2f, 0x33, 0x44, 0xb9, 0x0b, 0xf9, 0xe0, 0xf9,
+ 0xaa, 0xec, 0x1b, 0xf0, 0x47, 0x49, 0x4f, 0xa0, 0xb7, 0x28, 0xba, 0x9e,
+ 0x56, 0xea, 0xbd, 0x35, 0x99, 0x35, 0x2a, 0xe0, 0x02, 0x98, 0x00, 0x04,
+ 0x5d, 0xeb, 0x52, 0x8d, 0x74, 0x3b, 0xac, 0xfe, 0x57, 0xbd, 0xa6, 0xa2,
+ 0xeb, 0x62, 0xb3, 0xb7, 0xcd, 0xf0, 0xa3, 0x0a, 0xf5, 0x2e, 0xf3, 0xf4,
+ 0xda, 0x7d, 0xd0, 0x04, 0xa8, 0x43, 0xb0, 0xba, 0x14, 0x6f, 0x92, 0x71,
+ 0x36, 0xd2, 0xe7, 0x7b, 0xd1, 0x7b, 0x74, 0x59, 0x60, 0xe7, 0x40, 0x9c,
+ 0x0f, 0xdd, 0x44, 0x30, 0x76, 0x24, 0xbf, 0x0f, 0x0d, 0xe7, 0x36, 0x6e,
+ 0x24, 0xd9, 0xfa, 0xe1, 0xfd, 0x89, 0x9f, 0xb6, 0xa8, 0x5b, 0x41, 0xc5,
+ 0x06, 0x55, 0xba, 0x3e, 0x2a, 0x86, 0xd5, 0x3a, 0xee, 0xa2, 0x7e, 0xf8,
+ 0xaa, 0x9e, 0x8c, 0x17, 0x23, 0x6a, 0x66, 0xac, 0x7b, 0x20, 0x96, 0x9e,
+ 0x69, 0x54, 0x69, 0xcb, 0x9f, 0x88, 0x3d, 0x32, 0x07, 0x86, 0x16, 0x7e,
+ 0xef, 0x35, 0xec, 0xa0, 0x72, 0x67, 0x58, 0x10, 0xfc, 0x3f, 0xea, 0xb2,
+ 0x8e, 0x89, 0x51, 0x01, 0x24, 0xc2, 0xc4, 0xe9, 0x79, 0xe7, 0x94, 0x33,
+ 0xfb, 0x7b, 0xc3, 0xf8, 0x5d, 0x75, 0x79, 0x8f, 0x89, 0xba, 0x74, 0xd7,
+ 0xca, 0x66, 0xb4, 0x76, 0xdc, 0x14, 0x45, 0x30, 0xc8, 0x19, 0x73, 0x56,
+ 0xfb, 0xf2, 0x16, 0x16, 0x9b, 0x93, 0x59, 0xf2, 0xbb, 0x97, 0x47, 0xf8,
+ 0xcc, 0x0f, 0x6b, 0xfb, 0x78, 0x70, 0xd4, 0xff, 0xb8, 0xb9, 0xf5, 0xe2,
+ 0xe3, 0x57, 0x87, 0x6f, 0x3f, 0xf6, 0xdf, 0x1c, 0xa0, 0x5e, 0xf4, 0x44,
+ 0x09, 0xfb, 0x6c, 0x73, 0xce, 0x71, 0x43, 0xcd, 0xfc, 0x31, 0x2e, 0x07,
+ 0xf7, 0xd1, 0xdf, 0x44, 0xc8, 0xb8, 0x1f, 0xe8, 0xbf, 0x3f, 0xfb, 0x6d,
+ 0x04, 0x2c, 0x7c, 0xc4, 0x94, 0xf5, 0xec, 0x73, 0xcd, 0xce, 0xc2, 0x25,
+ 0x9b, 0x87, 0x7f, 0xab, 0x25, 0x9b, 0x0f, 0x34, 0xad, 0xb0, 0x5f, 0x7d,
+ 0xd5, 0x64, 0xee, 0x05, 0x35, 0x8b, 0xc6, 0x7a, 0xe9, 0xb1, 0xdf, 0x6a,
+ 0xad, 0x34, 0x78, 0x35, 0x41, 0xdb, 0xf6, 0xb7, 0x5a, 0xe6, 0xcd, 0xe6,
+ 0xbc, 0xd5, 0x51, 0x1d, 0x2c, 0x3d, 0xf1, 0x9b, 0xad, 0x0f, 0x86, 0xfe,
+ 0x75, 0xd7, 0xf5, 0xa1, 0xdb, 0x34, 0xd7, 0xf7, 0x1b, 0x08, 0xe4, 0xde,
+ 0x46, 0x3a, 0xd8, 0xda, 0x0e, 0xb2, 0x74, 0xa3, 0x92, 0x8d, 0xef, 0x42,
+ 0xab, 0x19, 0x3e, 0x00, 0x0e, 0x3f, 0x17, 0xfd, 0x9d, 0x9b, 0x98, 0x28,
+ 0xaa, 0x61, 0xbf, 0x7f, 0x76, 0x1c, 0x6b, 0x6f, 0x2e, 0x86, 0xca, 0xe7,
+ 0xc6, 0x08, 0x5c, 0x35, 0xa3, 0xed, 0x40, 0xde, 0xcd, 0x51, 0x43, 0x29,
+ 0x2b, 0x3a, 0xe4, 0x5a, 0xa9, 0x35, 0xb0, 0x45, 0x72, 0x1f, 0x91, 0x78,
+ 0x34, 0x1e, 0x8b, 0x7d, 0x6f, 0xfd, 0xcc, 0xc3, 0x05, 0x2b, 0x27, 0xeb,
+ 0x8a, 0xee, 0x77, 0xb7, 0x15, 0xc6, 0xc0, 0xc4, 0xfa, 0xe8, 0x22, 0x6a,
+ 0x5f, 0xb8, 0x6c, 0xdf, 0x3a, 0x95, 0x74, 0xce, 0x9d, 0xb0, 0x17, 0x75,
+ 0xe2, 0x0f, 0xd1, 0x5e, 0xc7, 0x23, 0xd1, 0x29, 0x56, 0x18, 0x55, 0x75,
+ 0x3a, 0xa1, 0xc0, 0x5c, 0x49, 0xd8, 0xa6, 0xd8, 0x70, 0xb0, 0xd1, 0x56,
+ 0xf0, 0x0a, 0x7b, 0x65, 0x58, 0x9f, 0x90, 0xea, 0xf5, 0xe5, 0xa5, 0x97,
+ 0xe9, 0xc7, 0x01, 0x16, 0x36, 0x0e, 0x61, 0xcf, 0xb0, 0x05, 0x20, 0xa9,
+ 0x1d, 0x18, 0x5a, 0xb2, 0x2d, 0xa6, 0xc9, 0x2c, 0xcc, 0x29, 0x15, 0x59,
+ 0x92, 0xb9, 0x31, 0x1b, 0x79, 0x18, 0x28, 0x1e, 0xe0, 0xa4, 0xd4, 0x8a,
+ 0x47, 0x9c, 0x16, 0x55, 0x95, 0x0d, 0xb0, 0xff, 0xab, 0x5c, 0xa8, 0x55,
+ 0xca, 0x05, 0x19, 0x8c, 0xda, 0x87, 0xb4, 0x74, 0x3a, 0xdd, 0x61, 0x42,
+ 0x67, 0x9b, 0x44, 0xb4, 0x52, 0x0a, 0xab, 0x39, 0x21, 0x30, 0x98, 0x1d,
+ 0xdf, 0x85, 0x37, 0x19, 0x0e, 0xcf, 0x0c, 0x97, 0x44, 0x83, 0x32, 0x4b,
+ 0x2f, 0xa2, 0x49, 0xc1, 0xa4, 0x27, 0x83, 0xb2, 0x7d, 0x2b, 0x8f, 0x11,
+ 0x4c, 0x7c, 0xd4, 0x8b, 0xfa, 0x58, 0xe1, 0x58, 0x61, 0xf7, 0x37, 0xaa,
+ 0x7b, 0xa5, 0xe2, 0x2f, 0x5b, 0x53, 0x5b, 0xa6, 0x98, 0x2d, 0x7d, 0x93,
+ 0xca, 0xb6, 0x26, 0xda, 0xb6, 0x7b, 0x4e, 0x49, 0x5e, 0x69, 0xba, 0x1f,
+ 0x53, 0x7d, 0x3a, 0xb5, 0x7e, 0xd0, 0xf3, 0x4f, 0x5f, 0x8c, 0xf0, 0xd8,
+ 0x6b, 0xd9, 0xa4, 0x45, 0x63, 0xed, 0xfd, 0x2b, 0x28, 0x05, 0x86, 0x9f,
+ 0xf7, 0xa6, 0x8f, 0xf5, 0x8a, 0x3a, 0x51, 0xf8, 0xa7, 0x97, 0x77, 0xcf,
+ 0x2f, 0x76, 0x6e, 0x56, 0xbc, 0x7a, 0x90, 0xf9, 0xe1, 0x32, 0xe7, 0x0b,
+ 0xec, 0x6b, 0xfe, 0xae, 0xf0, 0x5b, 0xc9, 0xb4, 0x2b, 0x86, 0x8b, 0x52,
+ 0xdd, 0x90, 0x86, 0x78, 0x35, 0xe1, 0xd1, 0x12, 0xcc, 0xa4, 0x9b, 0xdc,
+ 0xfa, 0xc1, 0x53, 0x39, 0x6d, 0x15, 0x74, 0xa3, 0xee, 0xd9, 0x96, 0x3d,
+ 0x23, 0x2b, 0xd8, 0xa2, 0x67, 0x42, 0x08, 0xe0, 0x2c, 0x81, 0x04, 0x67,
+ 0xe0, 0xeb, 0x88, 0xd8, 0xbd, 0x79, 0x6e, 0xc9, 0xf3, 0x27, 0xf3, 0xab,
+ 0xc6, 0x4d, 0xca, 0xf6, 0x4d, 0x96, 0x98, 0xad, 0xb2, 0xab, 0x65, 0x7a,
+ 0x44, 0xd4, 0xc8, 0x41, 0x20, 0x34, 0xe7, 0xe5, 0x9e, 0x71, 0x63, 0x84,
+ 0x00, 0x9c, 0xd1, 0xbb, 0x7e, 0xdf, 0x2f, 0x5d, 0xce, 0xcb, 0x74, 0x58,
+ 0x5c, 0xe6, 0xd9, 0xcf, 0xd4, 0x44, 0x00, 0x93, 0xdc, 0xda, 0x95, 0x79,
+ 0x8d, 0xea, 0xf1, 0xc8, 0xc9, 0x0a, 0xc6, 0xcc, 0x70, 0x5f, 0xfe, 0x71,
+ 0x57, 0x23, 0xbc, 0x95, 0xb0, 0x44, 0x06, 0x41, 0x3e, 0x84, 0x10, 0x15,
+ 0x25, 0x4a, 0x50, 0xd9, 0x44, 0x6a, 0xda, 0x45, 0x49, 0xd9, 0x1f, 0x7f,
+ 0xd8, 0xdb, 0x1d, 0xdd, 0x56, 0x41, 0x27, 0xff, 0x17, 0x28, 0xf5, 0x0e,
+ 0xb7, 0xcb, 0x20, 0xf8, 0x7b, 0x64, 0xed, 0x70, 0xaf, 0x26, 0xd3, 0x25,
+ 0x38, 0x0d, 0x5d, 0x3f, 0x4a, 0x63, 0xbe, 0x69, 0xdd, 0xa6, 0x4c, 0x73,
+ 0xdb, 0x30, 0xa9, 0x31, 0x93, 0x84, 0xfa, 0x2c, 0x35, 0x5b, 0x32, 0x99,
+ 0x4c, 0x8d, 0x87, 0xbb, 0x2e, 0x1d, 0x60, 0x2a, 0x82, 0xa2, 0xf7, 0x4b,
+ 0x4e, 0x00, 0xda, 0x5c, 0x82, 0x06, 0x99, 0x72, 0xcb, 0x23, 0x9c, 0x94,
+ 0x3d, 0x53, 0x7c, 0xe2, 0xa8, 0x46, 0xca, 0xeb, 0x8b, 0x93, 0xa8, 0x25,
+ 0x38, 0x48, 0x15, 0xab, 0x85, 0x78, 0x0a, 0xa6, 0x81, 0x03, 0xf4, 0xb0,
+ 0x11, 0x0f, 0x22, 0x65, 0x68, 0xfa, 0x01, 0xfc, 0x1a, 0xb1, 0x37, 0x94,
+ 0x2b, 0xda, 0xac, 0x65, 0x7b, 0xa3, 0x9b, 0x29, 0x72, 0x9e, 0xba, 0xe4,
+ 0x29, 0x24, 0x5a, 0xde, 0xd4, 0xbc, 0xe3, 0xb8, 0x0b, 0x9f, 0xc7, 0x5a,
+ 0x02, 0x45, 0x4e, 0x6a, 0xc2, 0x0c, 0x0c, 0x7c, 0x6c, 0x8a, 0xc0, 0x90,
+ 0x0f, 0x86, 0x57, 0xba, 0x28, 0x3e, 0x58, 0x24, 0x4b, 0x38, 0x26, 0x9e,
+ 0xaa, 0x98, 0x6c, 0x2f, 0xf6, 0x5e, 0x06, 0x99, 0x63, 0x1c, 0xfe, 0xbf,
+ 0x81, 0x10, 0x70, 0x6e, 0x66, 0x8e, 0xd7, 0x86, 0x2f, 0xe7, 0xa9, 0xfe,
+ 0x03, 0x3d, 0xd1, 0x5c, 0xe8, 0x71, 0x0b, 0xe2, 0x40, 0xf0, 0xe4, 0xf9,
+ 0xb5, 0xd6, 0x70, 0xe1, 0xc3, 0x84, 0x0d, 0xf0, 0x28, 0xa5, 0xa5, 0x5d,
+ 0x1a, 0xa2, 0x32, 0x72, 0x55, 0xa4, 0xc6, 0xda, 0x1c, 0x64, 0xf7, 0x14,
+ 0xd1, 0xd1, 0x90, 0x70, 0x74, 0x4f, 0xfe, 0xc5, 0x6c, 0xc9, 0xbf, 0x84,
+ 0x45, 0xdf, 0x08, 0xa8, 0x3d, 0x0a, 0xd4, 0x40, 0x5e, 0x04, 0x63, 0x3d,
+ 0xda, 0x77, 0x6e, 0xeb, 0xcf, 0x1f, 0xbc, 0xae, 0xe9, 0x10, 0xe3, 0x6b,
+ 0x72, 0x39, 0x36, 0x85, 0xa9, 0x4a, 0x53, 0xf2, 0xea, 0xf8, 0x9d, 0xa5,
+ 0xcd, 0x30, 0x22, 0x49, 0x8d, 0xec, 0xc4, 0x5a, 0x23, 0x7c, 0x7f, 0x8e,
+ 0xf4, 0xd4, 0x9e, 0x84, 0xc6, 0x81, 0x03, 0xd7, 0xc5, 0x20, 0xad, 0x6f,
+ 0xd3, 0x54, 0x9c, 0x53, 0xba, 0x4b, 0x8e, 0x88, 0x11, 0xfa, 0x83, 0x8e,
+ 0x12, 0xaa, 0x02, 0xc3, 0x73, 0x9a, 0xa9, 0xb4, 0xe2, 0x1e, 0x99, 0xc6,
+ 0x83, 0xa7, 0x79, 0x6f, 0xde, 0xd1, 0x66, 0x1c, 0xed, 0xe0, 0x9a, 0xee,
+ 0x8d, 0x80, 0x13, 0xda, 0x68, 0xf1, 0x63, 0x03, 0xad, 0x41, 0x6b, 0x29,
+ 0xe4, 0xc1, 0xcd, 0x27, 0x6d, 0x36, 0x7e, 0x60, 0x99, 0x18, 0xaa, 0x15,
+ 0x3f, 0x22, 0x6e, 0x82, 0xd1, 0x2a, 0x8b, 0xa1, 0xc3, 0x23, 0x2a, 0xdf,
+ 0x36, 0x32, 0x2d, 0xbd, 0x6c, 0x31, 0xcc, 0x89, 0x0a, 0xa5, 0xe5, 0xcd,
+ 0x13, 0x8e, 0xec, 0xcd, 0x94, 0xdf, 0x26, 0x53, 0xf8, 0x59, 0xc2, 0x05,
+ 0xc0, 0x93, 0x64, 0x94, 0x46, 0xa1, 0x0c, 0x54, 0x07, 0x3e, 0x87, 0x27,
+ 0xd6, 0xca, 0x4a, 0xa4, 0xad, 0xf7, 0xbb, 0x07, 0x0b, 0x44, 0xcf, 0xd8,
+ 0x8b, 0x56, 0xa1, 0x98, 0x93, 0xc2, 0x66, 0x71, 0xd1, 0x6a, 0x02, 0xa2,
+ 0x24, 0x1b, 0xb8, 0x4a, 0x81, 0x74, 0xc1, 0xca, 0x05, 0x0e, 0xc8, 0x6f,
+ 0x49, 0xdc, 0x58, 0x64, 0xf1, 0x40, 0xb3, 0x80, 0xf6, 0xfc, 0xa5, 0x04,
+ 0x4a, 0xb2, 0xb8, 0x9a, 0xfe, 0x4e, 0xbc, 0x84, 0x3d, 0xb7, 0xb1, 0xb4,
+ 0x11, 0xd0, 0x17, 0xa4, 0x7b, 0xa9, 0x8c, 0x1f, 0xcb, 0x72, 0xe2, 0x07,
+ 0xb2, 0xc2, 0x16, 0xf2, 0x96, 0xec, 0xcc, 0x2f, 0x0a, 0xd1, 0xbb, 0x25,
+ 0x22, 0x8e, 0xb8, 0x91, 0x50, 0x74, 0x20, 0xf7, 0x66, 0xb5, 0x8f, 0xb5,
+ 0xe8, 0xfd, 0xc3, 0xb3, 0xb5, 0xe8, 0xac, 0x15, 0x65, 0x96, 0x36, 0x36,
+ 0xcd, 0xdb, 0x89, 0x6f, 0x3d, 0xe9, 0xff, 0x36, 0x3f, 0x20, 0xa9, 0x6d,
+ 0x43, 0x4d, 0x13, 0x45, 0x4a, 0xea, 0xfb, 0xd5, 0xc5, 0x75, 0x6b, 0x2d,
+ 0x07, 0x04, 0x35, 0xcc, 0xe8, 0x8f, 0x62, 0x88, 0xbb, 0xf2, 0x05, 0xa3,
+ 0x1b, 0x88, 0xcf, 0x42, 0x4d, 0x2c, 0x34, 0x44, 0xab, 0xa1, 0xd5, 0xb1,
+ 0x57, 0x35, 0x46, 0x84, 0xd0, 0x12, 0x65, 0x07, 0xc0, 0x99, 0xd6, 0x42,
+ 0x48, 0x77, 0x78, 0x0f, 0xf1, 0x9d, 0xd6, 0x58, 0x04, 0x18, 0xda, 0x79,
+ 0x1a, 0x02, 0xe5, 0xbf, 0x27, 0xf5, 0x46, 0x0e, 0xcc, 0xa8, 0xd7, 0x6e,
+ 0x19, 0xed, 0x04, 0x91, 0x65, 0x72, 0x59, 0x61, 0xbb, 0x73, 0xcf, 0xe9,
+ 0x13, 0xc7, 0x9a, 0x2f, 0x58, 0xb2, 0x08, 0x02, 0x4f, 0xdd, 0x9f, 0xc9,
+ 0xd2, 0x19, 0x16, 0xd3, 0x7b, 0x24, 0x06, 0x3c, 0x56, 0x55, 0x57, 0x5b,
+ 0x20, 0xf0, 0xb6, 0x7a, 0x2f, 0x18, 0x11, 0xea, 0x0a, 0x54, 0x98, 0x40,
+ 0x1f, 0x4c, 0xce, 0x0a, 0xe6, 0x36, 0xac, 0xed, 0xf1, 0xc4, 0x36, 0xe9,
+ 0xad, 0x2d, 0xcb, 0xd7, 0xcc, 0x78, 0xb4, 0xf9, 0xf0, 0xf7, 0xa8, 0x5a,
+ 0x80, 0x91, 0x1e, 0xff, 0x15, 0x79, 0x97, 0x5b, 0x0e, 0xed, 0x8b, 0x85,
+ 0xee, 0x71, 0x2b, 0x32, 0x6b, 0x84, 0x2c, 0x8b, 0x6d, 0xe6, 0xd2, 0x7c,
+ 0xc4, 0x19, 0xaa, 0x83, 0xac, 0xa6, 0x76, 0xef, 0x6a, 0xd7, 0x37, 0x85,
+ 0x0a, 0xbe, 0x83, 0xa1, 0xff, 0xd7, 0x5e, 0x5a, 0x38, 0x47, 0xfe, 0x7b,
+ 0xd1, 0x5f, 0xe9, 0xa3, 0xf2, 0x36, 0xe3, 0x4d, 0x50, 0x0a, 0xed, 0x97,
+ 0x47, 0xaf, 0x4f, 0xdf, 0x1f, 0x35, 0xf1, 0x73, 0x6a, 0x06, 0x5d, 0xa7,
+ 0x14, 0xd1, 0xf6, 0xec, 0xb8, 0x75, 0x8c, 0x00, 0x0e, 0x92, 0xf0, 0xcc,
+ 0xf2, 0x0c, 0x3d, 0x31, 0xd1, 0xd9, 0xb7, 0xaf, 0xcc, 0xec, 0x50, 0x2f,
+ 0xcb, 0x69, 0x56, 0x3a, 0x68, 0x97, 0x77, 0xb1, 0xad, 0x4c, 0xa1, 0xde,
+ 0xb5, 0xd6, 0x43, 0x41, 0xc6, 0xe9, 0xaf, 0x3a, 0x3f, 0x4a, 0xcd, 0xe5,
+ 0x84, 0x6a, 0x85, 0xbb, 0xa3, 0xc6, 0xcd, 0x55, 0x85, 0xf0, 0x75, 0x66,
+ 0x50, 0xcf, 0xd2, 0x60, 0x7b, 0x94, 0x51, 0xb3, 0xb9, 0xa2, 0x34, 0x89,
+ 0xa8, 0x45, 0x0b, 0x76, 0x6d, 0xe9, 0x45, 0xfe, 0x87, 0x34, 0x95, 0x98,
+ 0xbe, 0x12, 0xba, 0x6a, 0xae, 0xb0, 0xf2, 0x97, 0x22, 0xd3, 0xac, 0x02,
+ 0xa0, 0x0b, 0x0c, 0x0f, 0x84, 0xa9, 0xef, 0xea, 0x72, 0x3b, 0x1d, 0x49,
+ 0x2c, 0x70, 0x09, 0x19, 0xc8, 0x6d, 0x83, 0x6f, 0xae, 0x56, 0x6b, 0xdd,
+ 0xc6, 0x54, 0xcd, 0x6f, 0x22, 0xf5, 0x39, 0xac, 0xfc, 0x65, 0xc5, 0x22,
+ 0x13, 0x90, 0x66, 0x02, 0x52, 0xd8, 0xb3, 0x64, 0xd8, 0x18, 0x46, 0xbb,
+ 0x1a, 0x99, 0xe5, 0xa1, 0xac, 0x7f, 0x5d, 0x71, 0xef, 0x51, 0xa8, 0x1e,
+ 0x55, 0x5d, 0x4c, 0x51, 0x6b, 0x62, 0xd0, 0x3a, 0x6c, 0x90, 0x36, 0x2b,
+ 0x53, 0xda, 0x27, 0x07, 0x04, 0x2d, 0x0a, 0x76, 0x42, 0xce, 0xf2, 0x59,
+ 0x4a, 0xcd, 0xc2, 0x73, 0x05, 0x66, 0xd2, 0xe5, 0xe1, 0x30, 0x20, 0xec,
+ 0x64, 0xe9, 0xee, 0x6f, 0x78, 0xdd, 0xd8, 0xe7, 0x21, 0x60, 0x05, 0x64,
+ 0xd5, 0x75, 0xb4, 0xfa, 0xef, 0xb0, 0xc0, 0x53, 0xed, 0x75, 0xdf, 0xd5,
+ 0x91, 0x25, 0xaf, 0x45, 0xb2, 0xd7, 0x75, 0x9e, 0x44, 0x13, 0x6a, 0x9b,
+ 0x19, 0x2c, 0xc2, 0x56, 0x4a, 0xb0, 0xd8, 0x45, 0x3f, 0x62, 0xe9, 0x34,
+ 0x88, 0x33, 0xe2, 0x97, 0xb2, 0x49, 0x02, 0x0a, 0x33, 0x35, 0xb3, 0xe7,
+ 0x58, 0x28, 0x9e, 0xce, 0xea, 0x3e, 0xaf, 0x51, 0x8c, 0xb1, 0xc4, 0x1d,
+ 0x16, 0x25, 0xdd, 0xfd, 0xc8, 0xfa, 0xf6, 0xb0, 0x55, 0x84, 0x2f, 0xf9,
+ 0x72, 0xf7, 0x25, 0x50, 0xda, 0xc7, 0xc9, 0xcb, 0x39, 0xb8, 0x8b, 0xaf,
+ 0x48, 0x6f, 0x58, 0x4a, 0x35, 0x2a, 0x18, 0x22, 0xcb, 0x65, 0x90, 0x8a,
+ 0x61, 0x24, 0x08, 0x60, 0x23, 0x45, 0xc4, 0x15, 0xff, 0x0e, 0xef, 0x3b,
+ 0xc3, 0x3c, 0xb1, 0x40, 0xde, 0xcf, 0xa5, 0x27, 0x91, 0x44, 0xcd, 0x69,
+ 0xc5, 0x1f, 0xae, 0x0a, 0x68, 0x2f, 0xfa, 0x90, 0x53, 0x39, 0x87, 0x70,
+ 0xa1, 0xdc, 0x48, 0x59, 0x0e, 0xdb, 0x06, 0xdb, 0x0c, 0x77, 0x52, 0x40,
+ 0x24, 0xfd, 0xbd, 0x29, 0x8a, 0x44, 0x1c, 0xb7, 0x12, 0x73, 0xe8, 0x08,
+ 0x8b, 0x90, 0x33, 0x42, 0x2c, 0x8a, 0x5e, 0x83, 0x98, 0x0d, 0xa4, 0xe6,
+ 0xb3, 0x17, 0x07, 0x96, 0x43, 0x63, 0x63, 0xee, 0x55, 0x3a, 0x1e, 0xc7,
+ 0xdc, 0x27, 0x19, 0x5b, 0xbb, 0xa2, 0x71, 0xc5, 0x18, 0x5e, 0x54, 0x04,
+ 0xe1, 0x1a, 0x9e, 0xde, 0x1d, 0x46, 0x50, 0x64, 0xd4, 0x24, 0x4c, 0x01,
+ 0x3c, 0xa5, 0x54, 0x59, 0x83, 0xe4, 0x88, 0x40, 0x63, 0x9d, 0x51, 0x44,
+ 0x1c, 0x5e, 0x12, 0xae, 0xc9, 0x73, 0x7b, 0xe3, 0x1a, 0xbd, 0xc0, 0x76,
+ 0x82, 0x84, 0x46, 0x6f, 0x30, 0x6b, 0x0d, 0x61, 0x94, 0x08, 0xb2, 0x4b,
+ 0xf8, 0x49, 0x73, 0x50, 0xaa, 0xb4, 0xae, 0xac, 0xb6, 0x90, 0x90, 0x44,
+ 0xa4, 0x5d, 0x53, 0x56, 0x99, 0x3f, 0x1c, 0xd2, 0x69, 0xc4, 0x20, 0x45,
+ 0xfc, 0x18, 0xf3, 0x7c, 0x3e, 0x62, 0xa5, 0x79, 0x9f, 0x66, 0x93, 0xde,
+ 0x91, 0xb2, 0x07, 0x0c, 0xf2, 0xb9, 0x74, 0x99, 0x1a, 0xcc, 0x19, 0x0e,
+ 0xa9, 0x00, 0x0a, 0x42, 0x59, 0x57, 0x8c, 0x6a, 0x42, 0xaf, 0xb3, 0x6f,
+ 0xa0, 0x62, 0x00, 0x29, 0xe9, 0x62, 0x37, 0xfe, 0x78, 0x99, 0xd6, 0xf8,
+ 0xdb, 0xd5, 0xed, 0x35, 0x24, 0x47, 0x78, 0xb8, 0x29, 0x02, 0xb9, 0x11,
+ 0xd8, 0x54, 0x73, 0x1a, 0x06, 0x7c, 0x0a, 0x54, 0x1f, 0x27, 0xe9, 0x62,
+ 0xbb, 0xb7, 0xe1, 0x5d, 0xd4, 0xc3, 0xab, 0xcb, 0x72, 0x1a, 0x5d, 0x82,
+ 0xb6, 0x3c, 0x7d, 0x80, 0xaa, 0xfc, 0xa4, 0x47, 0x53, 0x7e, 0xf5, 0xf8,
+ 0x95, 0x4b, 0x4b, 0x21, 0x1b, 0xd0, 0x2d, 0x3c, 0x9c, 0xb4, 0x4f, 0xc3,
+ 0x2c, 0x43, 0x21, 0xa7, 0x72, 0xad, 0x19, 0xcd, 0x1a, 0xb7, 0x42, 0x7c,
+ 0xfa, 0x4d, 0x78, 0xb8, 0xc6, 0x96, 0xf0, 0x08, 0x3a, 0x2c, 0x9d, 0xbf,
+ 0x11, 0x0c, 0x35, 0x49, 0xf8, 0x84, 0x5d, 0x82, 0xe4, 0xd3, 0x8f, 0xf8,
+ 0xd5, 0x4b, 0x57, 0x93, 0x62, 0x84, 0xe8, 0x2d, 0xe9, 0x83, 0xb4, 0xc0,
+ 0x07, 0x95, 0x16, 0x02, 0x7a, 0x53, 0xb9, 0xeb, 0xa2, 0x41, 0xe0, 0xe4,
+ 0xeb, 0x4e, 0xfb, 0xb0, 0xa5, 0x6d, 0xf3, 0x5b, 0xea, 0x5b, 0x70, 0x78,
+ 0x7a, 0xd9, 0x5d, 0x42, 0x1e, 0x15, 0xc3, 0xda, 0x59, 0x01, 0x3e, 0x30,
+ 0x87, 0x61, 0xe9, 0xee, 0x0a, 0xac, 0x0c, 0x21, 0x50, 0xc8, 0x4d, 0xf2,
+ 0xd0, 0xca, 0xf0, 0x41, 0x6f, 0x97, 0xe1, 0x87, 0xb6, 0x87, 0x9e, 0xb3,
+ 0xc5, 0xbc, 0x39, 0xe1, 0xe1, 0x9a, 0x1b, 0xac, 0x3b, 0x4c, 0x73, 0x08,
+ 0x6d, 0xb0, 0x74, 0xd0, 0xf5, 0x15, 0x64, 0xeb, 0xf4, 0x61, 0xea, 0x98,
+ 0x07, 0xe7, 0x6e, 0xb0, 0x7c, 0xc3, 0xa3, 0xc2, 0x38, 0x87, 0xc3, 0x37,
+ 0x2b, 0x87, 0xe9, 0x47, 0x9a, 0x1b, 0x37, 0x41, 0xfd, 0xb8, 0x98, 0x20,
+ 0x63, 0x41, 0x50, 0xbc, 0x9f, 0xa0, 0xee, 0x6b, 0x25, 0xb0, 0xf4, 0xc9,
+ 0x4b, 0x04, 0x51, 0x10, 0xf4, 0x73, 0xfa, 0x3d, 0x9b, 0xba, 0x73, 0xd8,
+ 0xde, 0x7e, 0x8f, 0x7b, 0xeb, 0x71, 0xb2, 0xcd, 0xb4, 0x80, 0x79, 0x6b,
+ 0xbb, 0x5f, 0xba, 0xa0, 0x9d, 0x39, 0xe2, 0x63, 0x73, 0x08, 0x12, 0x74,
+ 0x4f, 0x4e, 0xae, 0x11, 0xab, 0xc4, 0xe8, 0x59, 0x1f, 0x73, 0x3f, 0x6c,
+ 0xe7, 0x2c, 0x8e, 0x9f, 0xd6, 0xdd, 0xe6, 0x25, 0x09, 0x56, 0x90, 0xa9,
+ 0xc4, 0x6f, 0x88, 0x40, 0xf8, 0xf9, 0x9c, 0xd9, 0xb8, 0x1f, 0x34, 0x27,
+ 0xd2, 0x9b, 0xdd, 0xa3, 0x45, 0x38, 0x3f, 0x19, 0x96, 0xe0, 0x0d, 0x78,
+ 0x25, 0x47, 0x8e, 0x2f, 0x60, 0xc3, 0xa5, 0xe5, 0xf8, 0x70, 0x9e, 0xcc,
+ 0x45, 0x25, 0x07, 0xef, 0x32, 0x12, 0xe2, 0xf0, 0xdd, 0x3f, 0x5e, 0x84,
+ 0x63, 0x68, 0x50, 0x5d, 0xb6, 0xb7, 0x56, 0x2a, 0xa9, 0x7e, 0x47, 0x75,
+ 0x9c, 0x83, 0xaa, 0x18, 0xcf, 0xd0, 0x91, 0x92, 0xd4, 0x57, 0xbc, 0x43,
+ 0x17, 0x3a, 0xcf, 0xb9, 0xfb, 0x99, 0xd7, 0xbe, 0xde, 0xee, 0xed, 0x28,
+ 0x3c, 0x86, 0xc3, 0x31, 0xcb, 0x0a, 0x87, 0xcf, 0xdf, 0x56, 0x79, 0xda,
+ 0x4e, 0x91, 0xf5, 0x10, 0xbb, 0x29, 0x65, 0x80, 0xf1, 0xe6, 0xdf, 0x21,
+ 0xf2, 0xd5, 0xd6, 0x1d, 0x32, 0x4a, 0x31, 0x82, 0xc3, 0xdc, 0x41, 0x49,
+ 0xed, 0xe6, 0x36, 0x8a, 0x1e, 0x3a, 0x9b, 0x73, 0x19, 0xb7, 0x9c, 0x3c,
+ 0xc0, 0xb0, 0xf0, 0x80, 0x5d, 0x15, 0x43, 0x9a, 0x9a, 0x55, 0x79, 0xa2,
+ 0x4e, 0x18, 0x70, 0x0e, 0xe5, 0xe7, 0xcd, 0xa0, 0x71, 0xb0, 0x17, 0xcd,
+ 0xc4, 0x3d, 0xd3, 0xee, 0x64, 0x2c, 0x69, 0x51, 0x81, 0xc7, 0xff, 0x98,
+ 0x99, 0xcd, 0xe1, 0xf5, 0xfb, 0xd6, 0x7b, 0x42, 0x9e, 0xae, 0x13, 0xe5,
+ 0x20, 0xef, 0x00, 0xba, 0x52, 0x7c, 0xde, 0x50, 0x99, 0xb9, 0x94, 0xcc,
+ 0x45, 0x9f, 0xd5, 0xd8, 0x91, 0x6b, 0x9e, 0x27, 0x41, 0x5c, 0x08, 0xac,
+ 0x3d, 0x76, 0x5e, 0x1d, 0x9d, 0x1c, 0x11, 0x3d, 0x3b, 0x81, 0x3e, 0x6b,
+ 0x17, 0x45, 0xe1, 0x78, 0xbb, 0x70, 0xe6, 0xa0, 0x6b, 0x2e, 0xc0, 0x36,
+ 0x70, 0x72, 0x68, 0x0c, 0xe3, 0x50, 0x53, 0xe4, 0x8c, 0x32, 0x41, 0xa8,
+ 0xf6, 0x81, 0x4a, 0xac, 0xd0, 0x29, 0xa2, 0x26, 0x0f, 0x35, 0x26, 0x18,
+ 0xa5, 0xa5, 0x47, 0x44, 0xb0, 0x60, 0xf8, 0x93, 0x9c, 0x1f, 0xcf, 0x0d,
+ 0xe7, 0x30, 0x97, 0x41, 0xd4, 0x6e, 0xb2, 0x22, 0xb8, 0xe1, 0x22, 0x5b,
+ 0xc9, 0xfa, 0x38, 0xec, 0xce, 0x25, 0x18, 0x38, 0x6d, 0x9b, 0xc7, 0x2b,
+ 0x53, 0x40, 0x85, 0xbb, 0xd5, 0xd3, 0x35, 0xbd, 0x1c, 0xc5, 0xc2, 0x5d,
+ 0x4f, 0x49, 0xf0, 0x76, 0x49, 0x84, 0x69, 0xdd, 0x59, 0x75, 0xb5, 0xd8,
+ 0x8d, 0x5d, 0x76, 0xf9, 0x2d, 0x10, 0x62, 0xfb, 0xf4, 0x9f, 0x60, 0xc1,
+ 0x3e, 0x99, 0x69, 0xa4, 0xf3, 0xbf, 0x3e, 0x3e, 0x39, 0x5a, 0x8b, 0xde,
+ 0x4b, 0x0a, 0x07, 0xda, 0x46, 0xf7, 0x35, 0x76, 0xa2, 0xc4, 0x01, 0x56,
+ 0xb3, 0x1e, 0xe8, 0x3f, 0x5c, 0xa0, 0x8d, 0x86, 0x06, 0xf6, 0x9e, 0x0e,
+ 0x25, 0xc4, 0xac, 0x49, 0xe2, 0x07, 0xfb, 0xf6, 0xd7, 0x37, 0x7b, 0x9b,
+ 0x5d, 0xd7, 0x97, 0x63, 0xda, 0x02, 0x90, 0x53, 0x2b, 0x31, 0x5d, 0x6c,
+ 0xf1, 0xd3, 0x6d, 0xcf, 0xe0, 0x7b, 0xfc, 0x70, 0xe5, 0x87, 0xb7, 0x28,
+ 0x44, 0x66, 0xdd, 0x00, 0xb7, 0xc9, 0xbd, 0x6f, 0xe0, 0x6d, 0xc4, 0x3b,
+ 0x2f, 0x5f, 0x36, 0x54, 0xb8, 0xca, 0x69, 0x01, 0xbc, 0xbb, 0xb1, 0x41,
+ 0x6b, 0xf3, 0xe0, 0xe8, 0xe0, 0x17, 0xf1, 0x4b, 0x7a, 0xb1, 0xf9, 0x5a,
+ 0x95, 0xc2, 0xc6, 0x8e, 0xe6, 0xbf, 0x17, 0xe3, 0x6f, 0x02, 0x9f, 0xa3,
+ 0x1b, 0x71, 0xee, 0x5b, 0x2f, 0xf1, 0x73, 0x81, 0xb7, 0xe8, 0x61, 0xa6,
+ 0x63, 0x71, 0x71, 0x81, 0x8e, 0x6d, 0x7c, 0x52, 0x01, 0x98, 0x6f, 0x93,
+ 0x72, 0xe4, 0x2f, 0x77, 0xa3, 0x1b, 0x6f, 0xce, 0x5b, 0x2e, 0x65, 0xcd,
+ 0x50, 0xfa, 0x3d, 0xee, 0x27, 0x7a, 0x5f, 0x56, 0xff, 0x7d, 0x8d, 0xc1,
+ 0x1a, 0xda, 0x03, 0x6d, 0xc2, 0x8c, 0x36, 0x5f, 0xbe, 0xec, 0xe2, 0xcc,
+ 0x76, 0x5f, 0xbe, 0x9c, 0x0b, 0xf6, 0xe7, 0x7c, 0xe6, 0xb6, 0xb0, 0x0e,
+ 0x63, 0x7c, 0xdd, 0x32, 0x4d, 0x05, 0x9f, 0x89, 0xc2, 0xdf, 0xc1, 0xdf,
+ 0x44, 0x9f, 0x45, 0xef, 0x4e, 0xcf, 0x8f, 0x1c, 0x5f, 0x2a, 0x9d, 0x5a,
+ 0x4e, 0x7c, 0x70, 0x7c, 0x21, 0x94, 0x0c, 0x32, 0xc5, 0xfc, 0x66, 0xf6,
+ 0x25, 0x81, 0x6d, 0xef, 0xbb, 0x68, 0x08, 0x38, 0x40, 0x23, 0x04, 0x5a,
+ 0xd0, 0xae, 0x52, 0x80, 0x6f, 0x5b, 0xca, 0x53, 0xc1, 0x46, 0x6f, 0x78,
+ 0xd7, 0xe0, 0x99, 0xfa, 0xb7, 0x28, 0x3a, 0x4b, 0xca, 0xca, 0xaf, 0x0b,
+ 0x44, 0x5f, 0x85, 0x7a, 0x66, 0xc4, 0xf7, 0x55, 0x94, 0x13, 0xe3, 0x34,
+ 0x36, 0x81, 0x08, 0x31, 0xa3, 0xe5, 0xdf, 0xd9, 0x20, 0x1b, 0x67, 0xf5,
+ 0xfd, 0x1c, 0x17, 0x0d, 0xf6, 0x3b, 0x2c, 0x03, 0x29, 0x69, 0x08, 0x42,
+ 0x98, 0x5d, 0x66, 0xb5, 0x8b, 0x1a, 0xbe, 0x0a, 0x5c, 0xb8, 0x46, 0x1e,
+ 0x4d, 0x4e, 0x4a, 0x97, 0x68, 0xf5, 0x4a, 0x85, 0x10, 0x00, 0x5c, 0x62,
+ 0x85, 0xff, 0x28, 0xa6, 0x2b, 0x9e, 0xeb, 0x25, 0x1d, 0x8f, 0xd8, 0xa8,
+ 0xb1, 0x2f, 0xc4, 0xf4, 0xa4, 0x9c, 0x63, 0x72, 0xee, 0xdc, 0x51, 0x14,
+ 0x32, 0xa1, 0x3e, 0x31, 0xee, 0xc7, 0x03, 0xae, 0x2a, 0x02, 0xda, 0xa6,
+ 0x4c, 0x38, 0x45, 0xef, 0xc0, 0x61, 0xdc, 0x1a, 0xac, 0x15, 0x87, 0x20,
+ 0xc6, 0xd1, 0x9f, 0x23, 0x83, 0x78, 0x2d, 0x3c, 0x38, 0x90, 0x39, 0x4a,
+ 0xa7, 0x5a, 0xab, 0x94, 0x37, 0xc7, 0x81, 0x43, 0x76, 0x91, 0x5d, 0xce,
+ 0xca, 0x70, 0xfd, 0x0b, 0xb9, 0xa9, 0x24, 0xd5, 0x4c, 0x3b, 0x71, 0x27,
+ 0xb7, 0x89, 0x82, 0x58, 0x50, 0xf7, 0x74, 0x15, 0x3a, 0xea, 0x30, 0x52,
+ 0xd0, 0x08, 0x6c, 0x93, 0xee, 0xed, 0x0a, 0xc2, 0x7c, 0x80, 0x52, 0x8d,
+ 0xfe, 0x35, 0x49, 0x91, 0x94, 0x76, 0xe0, 0x49, 0x6d, 0x91, 0x3b, 0x24,
+ 0x16, 0x81, 0x5c, 0x88, 0x3a, 0x08, 0x35, 0xa3, 0x21, 0x12, 0x04, 0xb2,
+ 0xe0, 0x69, 0xf9, 0x1a, 0xc1, 0xc4, 0xa7, 0xc9, 0xbd, 0x7a, 0x55, 0x20,
+ 0x48, 0x3a, 0xc8, 0x4b, 0x94, 0x8f, 0x3e, 0x56, 0x28, 0x0a, 0x45, 0xda,
+ 0x51, 0x96, 0x8f, 0xbc, 0x4d, 0xf0, 0xfc, 0x6d, 0x3e, 0x2e, 0x92, 0x91,
+ 0xf5, 0x96, 0x4e, 0xb5, 0x14, 0x4c, 0x40, 0xef, 0x65, 0x73, 0xbd, 0xc4,
+ 0x3a, 0xdc, 0x6b, 0xde, 0xe5, 0x68, 0xd5, 0x41, 0xb2, 0xa5, 0xc3, 0xe3,
+ 0x78, 0xe0, 0x58, 0x80, 0x22, 0xaf, 0x30, 0x2e, 0xeb, 0x5a, 0x8f, 0xe6,
+ 0x12, 0xc0, 0x48, 0xe7, 0xfd, 0x32, 0xdd, 0xe3, 0xd3, 0xbb, 0x1a, 0xfe,
+ 0x99, 0x8e, 0x5c, 0x8f, 0x60, 0xd4, 0x3f, 0xfe, 0xaf, 0xa3, 0x3f, 0x3a,
+ 0xb0, 0xcf, 0x94, 0xdb, 0xda, 0x8a, 0x77, 0x76, 0x1e, 0x88, 0xe4, 0x97,
+ 0xc9, 0xad, 0x41, 0xab, 0xf9, 0x96, 0x7b, 0xc6, 0x48, 0x84, 0xdd, 0xc0,
+ 0xad, 0x26, 0x63, 0x71, 0xfa, 0x01, 0xf5, 0x38, 0x9a, 0x4a, 0x79, 0x20,
+ 0xc4, 0xb5, 0x17, 0x41, 0x2f, 0x31, 0x61, 0xca, 0x94, 0x36, 0xe6, 0x40,
+ 0x55, 0x93, 0x04, 0x33, 0xc2, 0xf1, 0x03, 0xe6, 0x8a, 0x09, 0x45, 0x22,
+ 0xc8, 0x17, 0x88, 0x81, 0x28, 0x46, 0x2e, 0x8f, 0xfc, 0x38, 0x29, 0xf5,
+ 0x16, 0xc1, 0x49, 0xc1, 0x5c, 0x97, 0x27, 0xc4, 0xed, 0x62, 0x02, 0x48,
+ 0xd7, 0x6d, 0x4c, 0x0c, 0x28, 0xa3, 0xfd, 0x0f, 0xef, 0x4f, 0xe6, 0x20,
+ 0xf9, 0xf4, 0x69, 0xdf, 0x71, 0x83, 0x3a, 0xef, 0x53, 0xc2, 0xf0, 0x2f,
+ 0x41, 0x62, 0x5e, 0x82, 0x3a, 0xe7, 0xb4, 0x4d, 0x50, 0xcd, 0x9e, 0x88,
+ 0x24, 0x7e, 0xcd, 0x90, 0x97, 0x16, 0xef, 0x71, 0x3d, 0xb6, 0x78, 0xa7,
+ 0xd9, 0x6c, 0x1f, 0x17, 0x7e, 0xe7, 0x62, 0x9c, 0x08, 0x85, 0x67, 0x25,
+ 0x66, 0x69, 0xd1, 0xfe, 0xf8, 0x4c, 0xa9, 0x91, 0x05, 0xea, 0xa3, 0xe3,
+ 0xb6, 0xe9, 0x71, 0xba, 0xc9, 0x27, 0x53, 0xe4, 0xdb, 0xa8, 0xf3, 0x29,
+ 0x86, 0x10, 0x3b, 0x3a, 0xcd, 0x38, 0xf5, 0xd3, 0x1b, 0x94, 0x14, 0x98,
+ 0xef, 0x53, 0x17, 0x0e, 0x6e, 0x49, 0x33, 0xf8, 0x88, 0xb3, 0xd6, 0x34,
+ 0x9a, 0xf4, 0x26, 0x23, 0xd4, 0x58, 0x78, 0xa5, 0x5d, 0x54, 0x4e, 0xd9,
+ 0x01, 0x08, 0x67, 0xcc, 0x0d, 0x93, 0x30, 0x91, 0x30, 0x3a, 0x91, 0xf9,
+ 0xed, 0x49, 0x2c, 0x9a, 0x15, 0x4e, 0x9d, 0x5a, 0x23, 0x61, 0x33, 0xb4,
+ 0xd8, 0x64, 0x8c, 0x7d, 0xe0, 0x4d, 0x08, 0x02, 0xd7, 0x28, 0x82, 0x0d,
+ 0xe7, 0x94, 0xe4, 0x26, 0x64, 0xd5, 0xd8, 0xda, 0x3f, 0xbc, 0xea, 0x53,
+ 0xe9, 0xda, 0x51, 0x6e, 0xbc, 0x00, 0xca, 0x6a, 0xb6, 0x4d, 0x67, 0x89,
+ 0xca, 0xcf, 0x85, 0x03, 0x09, 0x11, 0xe3, 0x93, 0xa7, 0x0c, 0xb8, 0xf8,
+ 0xe5, 0xb9, 0x21, 0xfb, 0x03, 0x24, 0x33, 0x7a, 0xb2, 0xe2, 0xe4, 0x92,
+ 0x82, 0x6d, 0x58, 0x54, 0xef, 0xf0, 0xb1, 0x13, 0xc8, 0x77, 0x1b, 0xd9,
+ 0x3b, 0x9d, 0xeb, 0xe7, 0xf4, 0xf2, 0x72, 0xb6, 0xa7, 0xa6, 0x32, 0x73,
+ 0xe2, 0xd9, 0x53, 0x67, 0x0c, 0xf1, 0xe1, 0xe8, 0xd1, 0x13, 0x65, 0x29,
+ 0x18, 0x24, 0x8d, 0x9d, 0x72, 0xf4, 0x43, 0x86, 0x51, 0x8a, 0x5f, 0x65,
+ 0x70, 0x57, 0x57, 0x8c, 0x2e, 0x4e, 0xb6, 0x13, 0x03, 0x01, 0xa9, 0x7c,
+ 0x62, 0x38, 0xad, 0xd8, 0x6f, 0xe2, 0xc1, 0xcd, 0xa3, 0x12, 0xfb, 0x8a,
+ 0x89, 0xb2, 0xc3, 0x11, 0x08, 0x73, 0x9a, 0xad, 0xd2, 0x36, 0xda, 0x62,
+ 0x62, 0x3d, 0x3e, 0x44, 0x33, 0x53, 0xcf, 0x2e, 0x58, 0xb9, 0x98, 0xbe,
+ 0x19, 0xa0, 0x8e, 0x42, 0x7e, 0x73, 0x06, 0x68, 0x15, 0x99, 0x9a, 0x41,
+ 0x2e, 0x83, 0xf3, 0x5d, 0x21, 0x94, 0xda, 0x6f, 0xc1, 0x95, 0xda, 0xfa,
+ 0x1d, 0x4c, 0xea, 0xb6, 0xc4, 0x6b, 0x8f, 0xfd, 0x87, 0x9a, 0x65, 0x2b,
+ 0x30, 0x51, 0x43, 0x18, 0xb6, 0xe7, 0x64, 0xbd, 0xaa, 0xc9, 0x42, 0x65,
+ 0xde, 0x73, 0x93, 0xb4, 0xee, 0x1b, 0x8b, 0xa3, 0x02, 0x09, 0xf7, 0xb0,
+ 0x61, 0xd4, 0x35, 0x2f, 0x04, 0x97, 0x39, 0x94, 0xb1, 0x45, 0x99, 0xa8,
+ 0xf8, 0x88, 0xab, 0x72, 0x70, 0xf2, 0x61, 0xf4, 0xe7, 0xd8, 0xf6, 0x65,
+ 0x5e, 0xbd, 0x4f, 0xc1, 0xca, 0xb2, 0x09, 0x8c, 0x64, 0xea, 0x7f, 0x32,
+ 0xc7, 0xad, 0x26, 0x0a, 0x8d, 0x9d, 0x06, 0x9a, 0xb7, 0x4e, 0x3e, 0x08,
+ 0x13, 0x1e, 0x14, 0x2e, 0x2a, 0x2a, 0xc8, 0xd3, 0x3b, 0x6c, 0x60, 0x38,
+ 0x7f, 0x38, 0xdf, 0xd0, 0xfa, 0xf6, 0xe0, 0xfd, 0xbb, 0xe3, 0x77, 0x5f,
+ 0xed, 0xa1, 0x30, 0x48, 0xcb, 0x21, 0x2a, 0xcc, 0xd1, 0x4f, 0xb3, 0x51,
+ 0x36, 0x64, 0xf1, 0x28, 0x3d, 0x56, 0x1a, 0xe5, 0xed, 0xa9, 0x04, 0xab,
+ 0x08, 0xa3, 0xdb, 0xeb, 0xfd, 0x41, 0x75, 0x2b, 0x58, 0x9d, 0x5f, 0x16,
+ 0x97, 0x33, 0xc3, 0x41, 0x43, 0xd2, 0xfa, 0x28, 0x3c, 0x49, 0x49, 0x2d,
+ 0xb8, 0x2d, 0xcc, 0xb8, 0xe8, 0xbf, 0x07, 0x9d, 0xec, 0xd5, 0xc9, 0x49,
+ 0xa0, 0x5d, 0x18, 0x17, 0x4b, 0x08, 0x8f, 0x71, 0xf6, 0x2b, 0x0d, 0x64,
+ 0xaa, 0x2b, 0x30, 0x0b, 0x03, 0xb4, 0x2c, 0x14, 0xb1, 0x0d, 0x51, 0x0f,
+ 0x26, 0xc2, 0xb7, 0x7e, 0xd5, 0x02, 0x95, 0xd4, 0x50, 0xa6, 0x3a, 0xed,
+ 0x70, 0x46, 0xc5, 0x61, 0x65, 0x8d, 0xbd, 0x93, 0x2e, 0x6a, 0xd4, 0x44,
+ 0x97, 0xbc, 0xa9, 0x4f, 0xff, 0x33, 0xd8, 0x74, 0x9a, 0xfc, 0x2f, 0x8e,
+ 0xb6, 0x62, 0xcf, 0x3d, 0xd6, 0x39, 0x2f, 0x8a, 0x80, 0x5e, 0xb1, 0xc9,
+ 0xec, 0x66, 0xce, 0x49, 0x42, 0x0a, 0xd5, 0x79, 0x00, 0x73, 0xb3, 0x2e,
+ 0x0f, 0x47, 0x96, 0x22, 0xb4, 0xfe, 0xd1, 0x18, 0xa5, 0xa0, 0x79, 0x88,
+ 0xa5, 0x55, 0xe1, 0x5d, 0xe3, 0xcb, 0x9e, 0xdb, 0xb4, 0x14, 0xff, 0x88,
+ 0x41, 0x07, 0x83, 0x9b, 0xa2, 0x17, 0xf5, 0x0b, 0x78, 0x3e, 0xa4, 0x15,
+ 0x27, 0x0c, 0x6c, 0xa6, 0xf8, 0xeb, 0xb4, 0x0f, 0x5c, 0x77, 0x62, 0x92,
+ 0x8d, 0xf1, 0xe6, 0xe5, 0xb4, 0x88, 0xe6, 0x7a, 0xfd, 0x74, 0x1c, 0x3a,
+ 0x48, 0x83, 0xd4, 0x28, 0x6d, 0xf8, 0x05, 0x8a, 0x5d, 0x23, 0xab, 0x75,
+ 0x62, 0x90, 0xcd, 0x1d, 0xdc, 0xa2, 0x38, 0xce, 0x0b, 0x77, 0xa4, 0xa5,
+ 0x75, 0xa8, 0x26, 0xd1, 0x43, 0xfe, 0x2b, 0xea, 0x51, 0x1f, 0xfe, 0xb9,
+ 0x6d, 0x4f, 0xef, 0x91, 0xaf, 0xcd, 0xf0, 0x25, 0x96, 0x0e, 0x6b, 0xa2,
+ 0x1a, 0x21, 0x7c, 0xb0, 0x4b, 0xc4, 0xf1, 0x8c, 0x53, 0x3c, 0xda, 0xc9,
+ 0x8d, 0xa1, 0x5f, 0xdd, 0xa6, 0x68, 0x61, 0x78, 0xd9, 0x54, 0xa7, 0xdc,
+ 0x42, 0x41, 0x1e, 0x72, 0xe1, 0xf4, 0xdc, 0x97, 0xe5, 0xe6, 0xef, 0x5a,
+ 0x6f, 0x1a, 0x17, 0x15, 0xd7, 0x1e, 0x06, 0xc8, 0x85, 0x9f, 0x3e, 0x74,
+ 0x6e, 0x02, 0x69, 0xa6, 0x97, 0x54, 0x72, 0x63, 0x73, 0xaa, 0xe7, 0xca,
+ 0x64, 0x2d, 0x30, 0x6e, 0xeb, 0x4b, 0xc4, 0x1e, 0xc6, 0x1d, 0xab, 0x43,
+ 0x25, 0x91, 0x53, 0x7c, 0xec, 0xe6, 0xa6, 0x48, 0xba, 0x06, 0xa1, 0x17,
+ 0x06, 0x86, 0x13, 0xcc, 0x05, 0xc9, 0x32, 0x98, 0x7b, 0x3f, 0x48, 0x70,
+ 0x3e, 0xcb, 0x6f, 0x0a, 0xfa, 0x8d, 0x24, 0x8a, 0x04, 0xb2, 0x29, 0xb3,
+ 0xb9, 0xa5, 0xc8, 0xe7, 0x2d, 0xaa, 0xaa, 0x47, 0x52, 0x0b, 0xf9, 0x60,
+ 0x2d, 0x14, 0x39, 0x6a, 0x60, 0x8b, 0x58, 0x38, 0x91, 0x36, 0x2b, 0xf0,
+ 0xd1, 0xc4, 0xa3, 0xd0, 0xa5, 0x5b, 0xe6, 0x8a, 0x5e, 0x4e, 0xc7, 0xe8,
+ 0xcf, 0x70, 0xc0, 0x46, 0xf4, 0x2e, 0x94, 0xab, 0x30, 0x33, 0xce, 0xce,
+ 0xf9, 0x97, 0x9c, 0x29, 0xed, 0x36, 0xb4, 0xb6, 0xae, 0x15, 0x2c, 0x1a,
+ 0xa0, 0x63, 0x49, 0xf2, 0x60, 0x78, 0x55, 0x14, 0x02, 0x66, 0x33, 0xef,
+ 0x0e, 0x88, 0x48, 0x77, 0x22, 0xdc, 0xcc, 0x39, 0xaa, 0x8d, 0xe9, 0x45,
+ 0x60, 0xf3, 0x31, 0xbc, 0x1a, 0x1a, 0xb7, 0xc3, 0x49, 0xa3, 0xc7, 0x50,
+ 0x53, 0x73, 0xe0, 0xf9, 0x18, 0xbd, 0x41, 0x64, 0xbe, 0xdf, 0xd5, 0x85,
+ 0x64, 0x0a, 0x6b, 0x15, 0x61, 0xf2, 0x48, 0xf1, 0x82, 0x4b, 0x94, 0xe0,
+ 0x1d, 0xcc, 0xe5, 0x0c, 0x24, 0x8f, 0x8c, 0xc1, 0x37, 0x22, 0xb3, 0x39,
+ 0x6f, 0x86, 0x57, 0x69, 0xa6, 0x59, 0x4d, 0xe2, 0xe8, 0xcf, 0x5b, 0x1b,
+ 0xf3, 0xee, 0x1e, 0x1c, 0x48, 0xf1, 0x73, 0xf0, 0x34, 0x56, 0xc6, 0xfe,
+ 0xa6, 0xdb, 0xd9, 0x56, 0xe6, 0xe1, 0xd5, 0x86, 0x70, 0x03, 0xec, 0xa2,
+ 0x82, 0xff, 0xcc, 0xa3, 0xff, 0x9c, 0xf4, 0x1d, 0x69, 0x00, 0xe5, 0xde,
+ 0xf5, 0x49, 0xc5, 0x4e, 0x11, 0x86, 0x4a, 0x94, 0x12, 0x00, 0xeb, 0x38,
+ 0xa5, 0x4b, 0xc0, 0x3f, 0x40, 0xe8, 0x2a, 0x59, 0xf6, 0x1e, 0x9b, 0x7b,
+ 0x8d, 0x91, 0xc4, 0x33, 0xb2, 0xf0, 0xbd, 0xc3, 0x2f, 0x38, 0xa9, 0x50,
+ 0x5e, 0xb5, 0xca, 0x25, 0x75, 0x07, 0x3a, 0xc6, 0x98, 0x55, 0x8b, 0xc8,
+ 0x4b, 0x94, 0x46, 0xd4, 0x92, 0x83, 0x0e, 0x3a, 0x8e, 0xe6, 0xbb, 0x42,
+ 0x60, 0x2e, 0x51, 0x40, 0xfc, 0x75, 0xf5, 0x34, 0x69, 0xfe, 0x64, 0x62,
+ 0x3b, 0xf6, 0x24, 0x22, 0x6a, 0xc7, 0x7e, 0x37, 0x26, 0x15, 0xca, 0xec,
+ 0xd8, 0x49, 0xa4, 0xba, 0x82, 0x88, 0x8b, 0x5f, 0x7a, 0xe2, 0x0d, 0x43,
+ 0x21, 0xd2, 0x18, 0x3b, 0x68, 0x15, 0x0f, 0x79, 0x2d, 0x38, 0x7f, 0x3b,
+ 0x96, 0x68, 0xd8, 0x3e, 0xca, 0xed, 0xcf, 0x1f, 0xd3, 0x12, 0x58, 0x0a,
+ 0xc9, 0xdc, 0x76, 0xa5, 0x1d, 0x1e, 0xa4, 0x13, 0xad, 0xe2, 0x28, 0x6b,
+ 0x46, 0xff, 0xf7, 0x31, 0xa0, 0xa4, 0x46, 0x45, 0xec, 0xde, 0x84, 0xf5,
+ 0x82, 0x76, 0x1d, 0x0d, 0x9a, 0x00, 0xe8, 0x4b, 0x05, 0xf5, 0x69, 0x36,
+ 0x4e, 0xca, 0x31, 0xf1, 0xe2, 0xc5, 0x6c, 0x1c, 0x32, 0x8d, 0x51, 0x06,
+ 0x49, 0x1f, 0xda, 0xac, 0xaa, 0x66, 0xe2, 0x38, 0x30, 0x90, 0xb9, 0xb6,
+ 0xd7, 0xca, 0x18, 0xe6, 0x43, 0x9f, 0xae, 0xc6, 0x98, 0xee, 0x38, 0x57,
+ 0xbb, 0xe3, 0xfe, 0x83, 0x6c, 0x3b, 0x18, 0x24, 0x26, 0xb6, 0xbd, 0x65,
+ 0xe7, 0x2f, 0x71, 0x52, 0x74, 0x14, 0xa7, 0xc8, 0x44, 0x25, 0x28, 0xa1,
+ 0x78, 0xa7, 0xb6, 0x86, 0xeb, 0x9c, 0x9e, 0x9d, 0x1f, 0x9f, 0xbe, 0xeb,
+ 0x47, 0xff, 0xde, 0x59, 0x7e, 0x2f, 0x1b, 0x5b, 0xd3, 0xf9, 0x77, 0xb0,
+ 0x28, 0xbf, 0x8b, 0x74, 0xbc, 0x25, 0x2b, 0xcd, 0x9b, 0x6d, 0xe2, 0xbe,
+ 0xeb, 0xda, 0xf1, 0xe7, 0xa7, 0xd8, 0x8a, 0xbf, 0xc6, 0xb1, 0xb3, 0x86,
+ 0xa0, 0x13, 0xc1, 0x3d, 0xa3, 0x6f, 0x4a, 0xef, 0x09, 0xe1, 0x86, 0x16,
+ 0x32, 0x9e, 0xe7, 0xa8, 0x35, 0xed, 0x4b, 0xda, 0x8e, 0x1d, 0xbe, 0xf4,
+ 0xac, 0x59, 0xd9, 0x1a, 0x3e, 0x7c, 0x13, 0xc9, 0x0d, 0xd0, 0x28, 0xec,
+ 0x90, 0x17, 0xac, 0x9b, 0x5d, 0xbc, 0x3a, 0xab, 0x7c, 0x77, 0xa8, 0xfa,
+ 0x5a, 0x05, 0x12, 0x02, 0xbf, 0x3a, 0x3a, 0x47, 0x67, 0x25, 0x01, 0xb4,
+ 0xd8, 0x09, 0x92, 0xd3, 0x57, 0xd4, 0xc9, 0xc4, 0xa8, 0xbc, 0x8a, 0xc9,
+ 0x82, 0x07, 0x1e, 0x8c, 0x9b, 0x71, 0x92, 0x07, 0xab, 0xe9, 0xc1, 0xe0,
+ 0x38, 0x04, 0x6a, 0x14, 0xb6, 0xf3, 0x96, 0x7a, 0xfd, 0x9c, 0xa6, 0xd8,
+ 0x0c, 0x62, 0x7d, 0xf6, 0xe1, 0x5c, 0xfc, 0xb5, 0x18, 0xdd, 0x3c, 0x3f,
+ 0xea, 0x7a, 0x4d, 0x7e, 0x30, 0x0e, 0x31, 0xa6, 0xb2, 0xd8, 0x3a, 0x1d,
+ 0x5e, 0xe5, 0xc5, 0xb8, 0xb8, 0xc4, 0x2d, 0x21, 0x2d, 0xee, 0xdb, 0x74,
+ 0xf0, 0xea, 0xe0, 0x1b, 0xd4, 0xab, 0xd0, 0xf7, 0x7a, 0xf6, 0xfe, 0xf4,
+ 0xec, 0xf5, 0xf1, 0xbb, 0x57, 0xdd, 0xe8, 0xf0, 0xf4, 0xec, 0x6f, 0xdd,
+ 0xe8, 0xed, 0xe9, 0x37, 0x47, 0x81, 0x6a, 0x2a, 0x6c, 0x30, 0xe6, 0x71,
+ 0xe4, 0x3b, 0xf4, 0xbf, 0xa1, 0xa9, 0xe2, 0x38, 0x83, 0xb8, 0xfb, 0xa5,
+ 0x7b, 0x9b, 0x1e, 0x98, 0x6c, 0x08, 0x3a, 0xcb, 0x40, 0x3a, 0xd0, 0x25,
+ 0xde, 0x1c, 0x1d, 0xbc, 0xea, 0x7a, 0x6d, 0x1e, 0xb1, 0x0f, 0x37, 0x7c,
+ 0x0c, 0xd7, 0x67, 0x16, 0x4d, 0x4d, 0xfc, 0xd8, 0x38, 0x24, 0x4d, 0x89,
+ 0xa3, 0xe4, 0x2c, 0x11, 0x80, 0x61, 0x09, 0x07, 0x6d, 0x34, 0x2f, 0x49,
+ 0x50, 0x7a, 0xa2, 0x4e, 0x99, 0xc0, 0x0b, 0x2b, 0x3c, 0x51, 0x69, 0x75,
+ 0x8d, 0x17, 0x81, 0xb6, 0xa6, 0x0a, 0x3e, 0xad, 0x07, 0x77, 0x0b, 0x5b,
+ 0xe6, 0x00, 0x2c, 0x77, 0x1b, 0x60, 0x6c, 0x24, 0xef, 0xd8, 0x05, 0x9f,
+ 0xdc, 0x0b, 0xf8, 0x41, 0x8a, 0xb7, 0x5b, 0x45, 0xb6, 0xca, 0x85, 0x6d,
+ 0xd2, 0xb5, 0xd8, 0x6e, 0xa1, 0x3b, 0x21, 0x51, 0x94, 0x6b, 0x24, 0x9e,
+ 0x12, 0xa8, 0xab, 0xcd, 0xc6, 0xbf, 0xe3, 0x1f, 0x4b, 0x53, 0xe5, 0x80,
+ 0x87, 0x60, 0x76, 0x01, 0x6c, 0x99, 0x72, 0x46, 0xb3, 0xf6, 0x28, 0xd5,
+ 0x30, 0x57, 0x7c, 0xac, 0x7e, 0xa3, 0x45, 0x8a, 0xa6, 0xe9, 0x1e, 0x23,
+ 0xce, 0x42, 0x86, 0xd6, 0x56, 0x3f, 0x6a, 0x53, 0x4c, 0xb8, 0x4e, 0x3b,
+ 0x5c, 0x67, 0xc0, 0x8a, 0xd2, 0x2d, 0x36, 0x2d, 0x05, 0x59, 0x41, 0x74,
+ 0x89, 0x42, 0xa8, 0x86, 0x9e, 0x7f, 0x15, 0x14, 0x0d, 0xef, 0x62, 0xa4,
+ 0x27, 0x41, 0x94, 0xe4, 0x12, 0x19, 0xc0, 0x90, 0x7b, 0xcc, 0x9e, 0x0e,
+ 0xb7, 0x4a, 0xa7, 0xdd, 0x1a, 0x54, 0xe6, 0xe0, 0x45, 0x91, 0x69, 0x9d,
+ 0xc9, 0x70, 0x08, 0xbb, 0x2f, 0x17, 0x85, 0x39, 0xe5, 0xdb, 0x1b, 0x77,
+ 0x36, 0xda, 0x84, 0x5a, 0x55, 0x15, 0xc5, 0x9c, 0x02, 0xc6, 0x38, 0x02,
+ 0x1e, 0xe9, 0x56, 0x5f, 0xcf, 0x11, 0x8c, 0x6e, 0xf4, 0xc2, 0x00, 0x51,
+ 0x19, 0x11, 0x75, 0x72, 0x0c, 0xc7, 0x21, 0x80, 0xe6, 0x3a, 0x2a, 0x70,
+ 0x46, 0x9c, 0xfc, 0x45, 0xfa, 0x25, 0x51, 0x1f, 0xc6, 0xf2, 0x3f, 0x7c,
+ 0x76, 0x7a, 0xb6, 0x1d, 0xfc, 0x32, 0xfe, 0xe2, 0xa1, 0x4f, 0x7b, 0x7b,
+ 0xf6, 0xfe, 0xe8, 0xfc, 0xbd, 0xff, 0x8d, 0xe3, 0xb7, 0x07, 0xe1, 0xd5,
+ 0xe1, 0x2f, 0xe6, 0x7d, 0x83, 0x24, 0x01, 0x7e, 0xc5, 0x2f, 0xc5, 0x71,
+ 0x50, 0x9e, 0x37, 0x02, 0xc9, 0x4c, 0xab, 0xfd, 0xb7, 0x73, 0xa8, 0x89,
+ 0xbf, 0x58, 0xb0, 0xa6, 0x37, 0x47, 0x27, 0x67, 0xfe, 0x9a, 0xbe, 0x79,
+ 0xff, 0xfa, 0x6f, 0xcd, 0x14, 0xaa, 0xed, 0x9d, 0xc0, 0x57, 0x7f, 0x67,
+ 0xaf, 0xf5, 0x77, 0x9c, 0xb7, 0x72, 0x7e, 0xb4, 0x84, 0x83, 0xfa, 0xbb,
+ 0xe8, 0xdd, 0x09, 0xec, 0xda, 0xa2, 0x42, 0x19, 0x38, 0x9c, 0x55, 0x31,
+ 0x06, 0xd5, 0x6b, 0xff, 0xfb, 0xbf, 0x10, 0xdc, 0x03, 0xd5, 0x8f, 0xee,
+ 0xc1, 0x7d, 0x53, 0x7e, 0xdf, 0xc5, 0x3f, 0x7f, 0xec, 0xf5, 0x7a, 0x9f,
+ 0xfb, 0xbd, 0x2f, 0xc9, 0x53, 0x67, 0xe8, 0x8c, 0x0f, 0x62, 0x82, 0x74,
+ 0xcb, 0x7d, 0x42, 0x75, 0xc0, 0x54, 0xf7, 0x8c, 0x41, 0xc2, 0x69, 0x92,
+ 0x95, 0xd4, 0x7e, 0x3e, 0x78, 0xaf, 0x23, 0x2d, 0x6d, 0xed, 0xba, 0x51,
+ 0x78, 0x05, 0xa7, 0x9d, 0xa5, 0xc2, 0x6a, 0xb5, 0x26, 0x40, 0x32, 0xf6,
+ 0xaa, 0x4f, 0x46, 0x9e, 0x3b, 0x8c, 0x1b, 0x71, 0xe3, 0x67, 0x4b, 0x0c,
+ 0x4d, 0xb0, 0x69, 0x69, 0xaf, 0xf4, 0x5c, 0xaf, 0x28, 0x59, 0xfa, 0xc8,
+ 0x4c, 0x3f, 0xe8, 0x7a, 0xe2, 0x6e, 0xf5, 0xe8, 0xa8, 0xa6, 0x94, 0x1d,
+ 0x8a, 0xa1, 0x24, 0x74, 0x7b, 0x21, 0x0b, 0xad, 0xa7, 0xf5, 0x70, 0x1d,
+ 0xd7, 0x59, 0x35, 0x14, 0x59, 0xa3, 0x89, 0x7a, 0xae, 0x44, 0xb7, 0x1a,
+ 0x83, 0x30, 0x43, 0x38, 0x09, 0xcf, 0x29, 0x56, 0xb4, 0xb0, 0x25, 0x8e,
+ 0x61, 0xc4, 0x6a, 0x88, 0x2f, 0x34, 0x5d, 0x78, 0xd7, 0xa1, 0x8b, 0xa9,
+ 0xa0, 0x6d, 0x87, 0x3d, 0xa9, 0xeb, 0x14, 0xde, 0xfb, 0x56, 0x16, 0x5d,
+ 0x02, 0xca, 0xc2, 0x98, 0xf0, 0x45, 0x3d, 0x26, 0x2f, 0x1a, 0x17, 0x8f,
+ 0xfa, 0x69, 0xdd, 0x4d, 0xd7, 0xf6, 0x7d, 0x01, 0xe8, 0x61, 0xe9, 0x17,
+ 0xa9, 0x3e, 0x13, 0x5c, 0x69, 0xb0, 0x36, 0xc6, 0x05, 0xd6, 0x59, 0xf9,
+ 0xf7, 0x15, 0xd4, 0xe7, 0xe9, 0xf5, 0x20, 0x9c, 0x8f, 0x72, 0x2d, 0xda,
+ 0x91, 0x81, 0xe6, 0xca, 0x24, 0x7a, 0x95, 0x28, 0x86, 0xf9, 0x4c, 0xae,
+ 0xac, 0xc3, 0x3c, 0xb4, 0x84, 0x5e, 0xf4, 0x6d, 0x36, 0x1e, 0x0d, 0x93,
+ 0x92, 0x72, 0x83, 0xfd, 0x5b, 0x5c, 0xd8, 0x84, 0x0f, 0x72, 0x55, 0xd0,
+ 0x57, 0xed, 0xc9, 0xd1, 0xee, 0xe1, 0x61, 0xae, 0x0f, 0x54, 0x1a, 0x9b,
+ 0xcd, 0xc0, 0x34, 0x98, 0x79, 0x65, 0xf4, 0xcc, 0x3e, 0x4a, 0x63, 0xbc,
+ 0x51, 0x9b, 0x6d, 0x8f, 0x9b, 0xfb, 0xaa, 0x21, 0xb8, 0x78, 0xc7, 0x0f,
+ 0x23, 0x66, 0xd3, 0x9b, 0x1d, 0xf2, 0x3d, 0x3e, 0xeb, 0xf2, 0xbf, 0x9e,
+ 0xd9, 0xc2, 0x54, 0xc7, 0x8e, 0x65, 0x73, 0x8c, 0x8d, 0x97, 0xe3, 0x33,
+ 0x85, 0xed, 0xe8, 0xf9, 0x1b, 0xc5, 0x65, 0x45, 0x5a, 0x7f, 0x2f, 0x3c,
+ 0x66, 0xca, 0xa9, 0xbc, 0x13, 0xcc, 0x69, 0x83, 0x9c, 0x72, 0xeb, 0x79,
+ 0xf2, 0xd8, 0xb9, 0x8a, 0xdf, 0x5f, 0xa9, 0x8c, 0x6f, 0x18, 0x9f, 0x45,
+ 0x53, 0x6b, 0x75, 0x33, 0x9a, 0x64, 0xf9, 0xac, 0x4e, 0x51, 0xaf, 0xa6,
+ 0xfa, 0x46, 0x31, 0xa7, 0x88, 0x0c, 0x21, 0xca, 0x72, 0x71, 0xb9, 0x78,
+ 0xe2, 0xd2, 0x5c, 0x1c, 0x5e, 0xe3, 0x02, 0xe6, 0x5a, 0xce, 0x72, 0xca,
+ 0xc3, 0xc3, 0x94, 0xa0, 0xf1, 0x38, 0x1d, 0x3b, 0xad, 0xe9, 0x65, 0xf6,
+ 0xe3, 0xc2, 0xf7, 0x33, 0xd2, 0x9d, 0x0a, 0xfc, 0x71, 0x9c, 0x33, 0x42,
+ 0x02, 0x42, 0x49, 0x54, 0x52, 0x15, 0xe5, 0xcb, 0x7e, 0x5b, 0xd6, 0x45,
+ 0x4b, 0x2e, 0xbc, 0xbc, 0x57, 0x66, 0x18, 0x3e, 0xb4, 0xcc, 0x26, 0xe4,
+ 0x0a, 0x32, 0x12, 0xe9, 0x96, 0x4e, 0x7e, 0x81, 0x65, 0xf1, 0x54, 0xdf,
+ 0x26, 0x84, 0x40, 0x67, 0x8e, 0x1f, 0xfd, 0x9a, 0x52, 0xe1, 0xa7, 0x17,
+ 0x0c, 0x74, 0x7a, 0x7f, 0x32, 0x1b, 0xe9, 0x4e, 0xc1, 0xa6, 0x2a, 0x3b,
+ 0xe1, 0x8a, 0xe1, 0x66, 0xfb, 0x7e, 0x50, 0x22, 0x74, 0x62, 0x5d, 0xfd,
+ 0x48, 0xc8, 0x32, 0x04, 0x2c, 0xe3, 0xc9, 0x66, 0xb4, 0xfd, 0x1a, 0xd0,
+ 0x9b, 0xad, 0x0f, 0xb5, 0xbe, 0x64, 0x4a, 0x9c, 0xec, 0xe7, 0x10, 0x95,
+ 0x99, 0x32, 0x0f, 0x90, 0x2a, 0x8b, 0x3f, 0xf4, 0x72, 0xc1, 0x87, 0x2e,
+ 0x08, 0x43, 0x18, 0x49, 0x68, 0x20, 0xeb, 0x6f, 0xf5, 0xd8, 0x9a, 0x51,
+ 0x05, 0xbc, 0x70, 0xe7, 0x81, 0x71, 0x28, 0x0d, 0x09, 0xb8, 0x55, 0x4a,
+ 0xe4, 0xf0, 0xf5, 0xd6, 0x10, 0xcf, 0x77, 0x7b, 0x1b, 0x8f, 0xaf, 0xeb,
+ 0xb2, 0xfe, 0x2c, 0xf4, 0x95, 0x8f, 0xe4, 0x27, 0xb4, 0xc5, 0x92, 0xae,
+ 0x5c, 0xcc, 0x93, 0x2b, 0xcb, 0x1b, 0xf5, 0xcc, 0x45, 0xce, 0x7d, 0xbe,
+ 0xb7, 0xb3, 0xb3, 0xbd, 0xb7, 0xb9, 0x85, 0xbb, 0xb4, 0x01, 0xf6, 0xe6,
+ 0x43, 0xfe, 0x1a, 0xd8, 0x06, 0x0c, 0x1e, 0xc4, 0x14, 0x5c, 0x6c, 0x3b,
+ 0xf4, 0x30, 0xcf, 0x92, 0xba, 0xd4, 0xe2, 0x02, 0xb8, 0xfd, 0x6b, 0x63,
+ 0xd9, 0xca, 0xeb, 0x75, 0x71, 0x99, 0x92, 0xac, 0x60, 0x45, 0x9f, 0x87,
+ 0xed, 0x3d, 0x08, 0x11, 0x4a, 0x59, 0x1b, 0xd5, 0x38, 0x1d, 0x5d, 0x82,
+ 0xcd, 0x33, 0x99, 0xa4, 0x65, 0x07, 0x4f, 0x19, 0xbd, 0x4c, 0x0d, 0x75,
+ 0x5f, 0xb1, 0xc9, 0xa8, 0x3e, 0xc3, 0xf6, 0x81, 0x9c, 0x6a, 0x7b, 0x64,
+ 0x95, 0x15, 0xab, 0x29, 0x75, 0x9e, 0x41, 0xda, 0x94, 0x43, 0x6a, 0xaf,
+ 0x8c, 0xde, 0x52, 0xcd, 0x96, 0xb5, 0xba, 0x3f, 0x66, 0xdc, 0x86, 0xac,
+ 0x33, 0x8a, 0x5d, 0x1a, 0xf4, 0x93, 0x20, 0x5a, 0xf5, 0x68, 0x36, 0x1d,
+ 0x33, 0xb4, 0x36, 0xe7, 0xe4, 0xda, 0x29, 0x86, 0x70, 0xfb, 0xb5, 0x2b,
+ 0x3a, 0xf1, 0x11, 0x06, 0x4f, 0x30, 0x6b, 0x8f, 0xc2, 0x28, 0x64, 0x66,
+ 0xad, 0xd0, 0xc5, 0x3e, 0xc1, 0xef, 0x0d, 0xd2, 0x9a, 0x8a, 0x7b, 0xc1,
+ 0xea, 0x46, 0xf7, 0xa6, 0x1f, 0xd6, 0x1b, 0xab, 0x41, 0x85, 0x31, 0xd0,
+ 0x0c, 0x26, 0x8b, 0xc7, 0x6c, 0x30, 0x46, 0xa0, 0x38, 0x04, 0x75, 0xc1,
+ 0xd2, 0x3b, 0xe9, 0x39, 0xdc, 0x8b, 0xce, 0xc6, 0x29, 0xf6, 0xd8, 0x35,
+ 0x1d, 0x6d, 0x7c, 0x71, 0xc1, 0xd6, 0x13, 0x95, 0x33, 0xce, 0x0f, 0x97,
+ 0xbe, 0xa6, 0xb6, 0xed, 0x12, 0xdb, 0x9c, 0x4c, 0x41, 0x99, 0x91, 0xec,
+ 0x41, 0xaf, 0x00, 0x9e, 0xb6, 0x2c, 0xa2, 0x4a, 0x50, 0x3f, 0x30, 0x3b,
+ 0x4e, 0xae, 0xef, 0x9d, 0xde, 0xe9, 0x94, 0xd7, 0x3c, 0x1c, 0xa3, 0x0b,
+ 0x1f, 0xbd, 0x74, 0x1c, 0xe5, 0xa4, 0x98, 0xc4, 0x15, 0x3b, 0xc3, 0xee,
+ 0x39, 0x7a, 0x47, 0xa9, 0x63, 0xe9, 0x28, 0xe4, 0xbb, 0xa8, 0x1d, 0x4c,
+ 0x1f, 0x33, 0x40, 0x98, 0xe0, 0x94, 0xc3, 0xab, 0x24, 0xc7, 0x15, 0xf9,
+ 0xb5, 0xd0, 0x48, 0x8a, 0xae, 0xc1, 0x28, 0x37, 0xec, 0x47, 0xba, 0x9d,
+ 0x66, 0xbf, 0x4b, 0xec, 0x8b, 0xdc, 0x78, 0x8a, 0x1a, 0x17, 0x5a, 0xac,
+ 0xa6, 0x1e, 0xdb, 0xaa, 0x6e, 0x4a, 0xd4, 0x43, 0x89, 0x22, 0xb1, 0x7c,
+ 0x6a, 0x06, 0x94, 0x9b, 0x68, 0x9a, 0x14, 0x6d, 0x45, 0x6f, 0x8a, 0x5b,
+ 0x54, 0xb4, 0x42, 0x91, 0x1d, 0x05, 0x2f, 0x2a, 0x67, 0xa9, 0xd4, 0x8b,
+ 0x24, 0xee, 0x3a, 0x29, 0x1e, 0xf7, 0xdf, 0x70, 0x01, 0x4c, 0xa9, 0xfc,
+ 0xe1, 0x73, 0x71, 0x1f, 0x87, 0xd0, 0xf7, 0xd1, 0x55, 0xc2, 0x40, 0x01,
+ 0x70, 0xe1, 0x83, 0x9e, 0x43, 0x75, 0x27, 0x70, 0x1f, 0x52, 0xf2, 0xde,
+ 0x25, 0x75, 0x74, 0x73, 0x3c, 0x35, 0xb8, 0x18, 0x34, 0x9a, 0x91, 0x82,
+ 0x88, 0x0c, 0x56, 0x8e, 0xc2, 0xc8, 0x15, 0x04, 0x53, 0x66, 0x66, 0x44,
+ 0x07, 0xb0, 0x98, 0x0c, 0xb4, 0x80, 0xa2, 0x8d, 0x7c, 0xd8, 0x15, 0x60,
+ 0x30, 0x5f, 0xdd, 0xc4, 0x73, 0xca, 0x07, 0x2d, 0x6d, 0x1f, 0xb3, 0x47,
+ 0x55, 0x4f, 0x13, 0x8a, 0x21, 0xa5, 0x48, 0x90, 0xc0, 0x52, 0xdf, 0x98,
+ 0x63, 0x88, 0x8b, 0x33, 0xdd, 0x3f, 0x5c, 0xf4, 0xa9, 0xca, 0xbc, 0x44,
+ 0xa3, 0x98, 0x72, 0x67, 0xb3, 0x97, 0xb8, 0x8d, 0xb6, 0x1e, 0xbe, 0x67,
+ 0x5a, 0xa8, 0x7b, 0x77, 0xf1, 0x98, 0x6b, 0xa5, 0x13, 0x5b, 0x29, 0x0d,
+ 0xab, 0x81, 0xf1, 0x77, 0x36, 0x76, 0x50, 0x75, 0x81, 0x17, 0x67, 0x94,
+ 0xd1, 0xa1, 0x59, 0xfb, 0x94, 0x39, 0x4c, 0x21, 0x38, 0x18, 0x77, 0x7c,
+ 0xef, 0x69, 0x0a, 0x44, 0x13, 0x76, 0x24, 0xe6, 0xaa, 0xf6, 0x08, 0x57,
+ 0x98, 0xb6, 0xdc, 0x1c, 0x99, 0x10, 0xd1, 0x6b, 0x05, 0x73, 0xa0, 0xd9,
+ 0x8b, 0x21, 0x58, 0xa9, 0xd2, 0x9d, 0x72, 0x05, 0x7c, 0x72, 0x55, 0x4a,
+ 0x2f, 0xa6, 0x0f, 0x9f, 0x61, 0xef, 0xda, 0xca, 0x28, 0xf8, 0xc9, 0x3e,
+ 0x2f, 0xbe, 0x44, 0xba, 0x72, 0x48, 0x13, 0xc7, 0xd1, 0xa5, 0xae, 0xc9,
+ 0x09, 0xde, 0x82, 0x3b, 0x77, 0xd6, 0x43, 0xe2, 0x95, 0xeb, 0xe3, 0x77,
+ 0x55, 0x04, 0x03, 0xc1, 0x5a, 0x71, 0xc1, 0xc2, 0xce, 0x9a, 0x8b, 0x61,
+ 0xcd, 0x8c, 0xf9, 0xd5, 0x50, 0xcc, 0xcd, 0x59, 0x81, 0x3b, 0xcd, 0x68,
+ 0x15, 0xe7, 0x81, 0xbb, 0xb0, 0x7b, 0x77, 0xb7, 0xc6, 0xc4, 0x65, 0xce,
+ 0x15, 0x61, 0x12, 0x5f, 0xf8, 0xfa, 0x33, 0x9e, 0xfa, 0xe5, 0x2f, 0xe9,
+ 0xe6, 0x25, 0xbb, 0x2c, 0xd6, 0x79, 0x0b, 0x7c, 0x99, 0x87, 0xc3, 0x2a,
+ 0x0e, 0xd0, 0x57, 0x70, 0x97, 0xdb, 0xbe, 0x88, 0xbc, 0x15, 0xb9, 0x14,
+ 0x7b, 0x17, 0xaf, 0x3d, 0xfe, 0x31, 0x82, 0x89, 0xaa, 0x05, 0x7b, 0x84,
+ 0xd0, 0x35, 0xef, 0x8f, 0x5e, 0x7f, 0xe8, 0x1f, 0xbd, 0x22, 0x20, 0xce,
+ 0xc4, 0xcf, 0xab, 0xca, 0x65, 0x93, 0xf9, 0x74, 0xc1, 0xa0, 0x05, 0x2b,
+ 0x7a, 0x7a, 0xd1, 0x2f, 0xd4, 0x09, 0x42, 0xf7, 0xe2, 0x3c, 0x0d, 0xe1,
+ 0x51, 0x84, 0x74, 0x56, 0x6e, 0xf8, 0xfd, 0x97, 0x01, 0x00, 0xf3, 0xb8,
+ 0xa3, 0x74, 0x0c, 0x12, 0x68, 0x9f, 0xeb, 0x28, 0xbc, 0xbe, 0x2a, 0x6f,
+ 0x8d, 0x6d, 0x04, 0x0a, 0x4b, 0x3a, 0x15, 0x84, 0xaa, 0x09, 0x9c, 0x64,
+ 0xce, 0x5e, 0x40, 0x93, 0x46, 0xaf, 0x10, 0xca, 0x37, 0xd1, 0x4b, 0x91,
+ 0x73, 0x2d, 0x83, 0x54, 0x45, 0xa1, 0x42, 0xfa, 0xbc, 0x5c, 0x26, 0x6a,
+ 0x7c, 0x58, 0x92, 0x33, 0xc5, 0x57, 0xb3, 0xba, 0x95, 0x37, 0xe3, 0xe1,
+ 0x19, 0x90, 0x2c, 0x44, 0xec, 0x73, 0x54, 0x20, 0x68, 0x32, 0xc9, 0xf8,
+ 0xb2, 0x80, 0x3b, 0xe7, 0x6a, 0x62, 0x40, 0xb5, 0x18, 0xf8, 0xb4, 0x5a,
+ 0xeb, 0xf9, 0xaa, 0x58, 0xd0, 0x74, 0xa2, 0xdc, 0xe2, 0x94, 0xd1, 0x0c,
+ 0xd1, 0x9c, 0xb4, 0xb2, 0x85, 0x12, 0x0c, 0xd9, 0x17, 0xd2, 0x17, 0xfc,
+ 0x41, 0xa2, 0x07, 0x93, 0xd0, 0xb3, 0x75, 0x7e, 0x4e, 0xcb, 0xa2, 0x1d,
+ 0x29, 0x55, 0xcf, 0xb2, 0xca, 0x71, 0x77, 0xee, 0x7f, 0x78, 0x96, 0xb6,
+ 0xc3, 0x0f, 0xbb, 0x8f, 0xe2, 0x31, 0x7d, 0x67, 0x92, 0xdc, 0x71, 0xb4,
+ 0x74, 0x1e, 0x1b, 0x71, 0x3e, 0x86, 0x1a, 0xc1, 0x25, 0xbb, 0x18, 0xc8,
+ 0xa0, 0xb7, 0x48, 0x26, 0x5c, 0x11, 0x63, 0x38, 0x44, 0x14, 0x2d, 0x0a,
+ 0x27, 0xf9, 0x49, 0x8f, 0x78, 0xaf, 0x88, 0x4f, 0x7f, 0x90, 0x72, 0x1a,
+ 0x40, 0x82, 0xe4, 0xc1, 0xd8, 0xc4, 0x2a, 0x56, 0x93, 0xca, 0xd4, 0xd6,
+ 0xf0, 0xc7, 0x64, 0xfc, 0x4a, 0x90, 0x9d, 0xbe, 0xef, 0x77, 0xfb, 0x11,
+ 0x05, 0x01, 0x38, 0x58, 0xe3, 0x34, 0x9c, 0xf3, 0x31, 0xce, 0x26, 0x59,
+ 0x4d, 0xc8, 0x42, 0xd9, 0x50, 0x2f, 0xd2, 0x0b, 0x1b, 0xd8, 0x66, 0x46,
+ 0x6e, 0x3b, 0x90, 0x50, 0x8b, 0xd0, 0xb1, 0x04, 0xcd, 0x01, 0x46, 0xe9,
+ 0x36, 0x5b, 0xac, 0xca, 0x46, 0x11, 0x58, 0x18, 0xc1, 0x92, 0x5c, 0x51,
+ 0x5a, 0x90, 0x5f, 0xc7, 0x2d, 0x05, 0x2e, 0x14, 0x41, 0x41, 0x65, 0x81,
+ 0xe0, 0x6a, 0x70, 0x49, 0xac, 0x67, 0xe5, 0xea, 0x0b, 0x90, 0x24, 0x15,
+ 0xc6, 0x70, 0x80, 0x71, 0xb2, 0x62, 0x44, 0x20, 0x34, 0x1e, 0xd0, 0xd1,
+ 0x24, 0xa3, 0x62, 0x09, 0x41, 0x6a, 0x96, 0x09, 0xad, 0x60, 0x46, 0xc2,
+ 0x5d, 0x36, 0x99, 0x4d, 0x68, 0x84, 0x2e, 0x23, 0x72, 0x4d, 0xd0, 0x5d,
+ 0xa2, 0xbb, 0x4b, 0x65, 0x73, 0xf5, 0xfc, 0x2c, 0x1c, 0x14, 0xbb, 0xc4,
+ 0xf3, 0x35, 0x6b, 0x52, 0x6a, 0xba, 0xcb, 0x01, 0xfc, 0xd7, 0x60, 0x6f,
+ 0xc3, 0xaa, 0xdb, 0x1b, 0x86, 0xc5, 0x37, 0x37, 0x1e, 0xc3, 0xe5, 0xd1,
+ 0x7e, 0x3e, 0x9b, 0x7c, 0xee, 0xaf, 0xc1, 0x17, 0x5c, 0xc4, 0xdd, 0x52,
+ 0xd7, 0x64, 0x63, 0x2c, 0xc2, 0xb4, 0xa8, 0x09, 0x0b, 0x9e, 0xe8, 0x7c,
+ 0xf9, 0xd8, 0xe5, 0x34, 0x75, 0x47, 0x5f, 0x21, 0x4a, 0xd9, 0x0c, 0x11,
+ 0x36, 0xb4, 0xe5, 0xf4, 0x5c, 0xb2, 0x91, 0x36, 0x9b, 0xf6, 0xbc, 0xac,
+ 0x68, 0x95, 0x52, 0xc6, 0x89, 0x0a, 0x9f, 0xdf, 0x90, 0x52, 0x07, 0x89,
+ 0xfc, 0x60, 0x52, 0x8d, 0x6c, 0x91, 0x89, 0xf1, 0x66, 0x55, 0x28, 0xd1,
+ 0x48, 0x84, 0x16, 0x49, 0x52, 0xef, 0x7a, 0x64, 0x77, 0x2a, 0xa3, 0x96,
+ 0xef, 0x21, 0x51, 0x78, 0xf7, 0xbb, 0x0a, 0xce, 0x04, 0x5a, 0x87, 0xef,
+ 0x0b, 0x72, 0x94, 0xd4, 0xc2, 0xe2, 0xaa, 0xee, 0x6c, 0xbc, 0xe8, 0x46,
+ 0x3b, 0x5b, 0x2f, 0xbb, 0x58, 0xa0, 0x87, 0x7f, 0x6c, 0xe1, 0x1f, 0xdb,
+ 0xf8, 0xc8, 0x2e, 0xe8, 0x92, 0x0b, 0x74, 0xa8, 0x39, 0xed, 0xab, 0x18,
+ 0x40, 0x08, 0x25, 0xf8, 0xa0, 0x98, 0x39, 0xea, 0x54, 0xe2, 0x10, 0x5c,
+ 0xd3, 0x91, 0x58, 0x0c, 0xdd, 0x26, 0x19, 0x71, 0x9c, 0x97, 0xbc, 0x4d,
+ 0xd5, 0x86, 0xa2, 0xc3, 0xda, 0xdc, 0x4d, 0xf8, 0x6f, 0x7d, 0x05, 0x3c,
+ 0x83, 0xc4, 0x56, 0x5a, 0xea, 0x80, 0x40, 0xe2, 0x19, 0x67, 0x71, 0x79,
+ 0x04, 0xc5, 0xaf, 0xb0, 0xe7, 0x1f, 0x39, 0x12, 0xee, 0xd4, 0x6c, 0xcc,
+ 0xe6, 0x17, 0xca, 0x8e, 0x0a, 0xf9, 0x92, 0x9d, 0x7f, 0x95, 0xdb, 0x06,
+ 0xd6, 0x20, 0x3c, 0x07, 0xf6, 0x67, 0x4c, 0x46, 0xbf, 0x82, 0x49, 0x52,
+ 0xfd, 0x9b, 0x93, 0x65, 0xc8, 0xc7, 0x90, 0x3d, 0xcd, 0x92, 0x3b, 0xd2,
+ 0x90, 0xfa, 0xa1, 0xee, 0x21, 0x26, 0x37, 0x54, 0xa4, 0x4c, 0x7a, 0x07,
+ 0xb4, 0x67, 0x3c, 0xf4, 0xc8, 0xdc, 0x5e, 0xf6, 0xd6, 0x95, 0xd2, 0x5a,
+ 0xba, 0x2a, 0x03, 0xc5, 0x1c, 0x8d, 0x13, 0x08, 0xdb, 0xc0, 0xc2, 0x88,
+ 0xe4, 0x72, 0x51, 0xcb, 0x99, 0x67, 0x00, 0x57, 0xc9, 0x61, 0x9d, 0x27,
+ 0x3b, 0xfa, 0x64, 0x4d, 0xd1, 0xbe, 0x3e, 0xef, 0x3d, 0x7b, 0x66, 0xf0,
+ 0xe9, 0xb8, 0x4e, 0x11, 0xcc, 0x76, 0xad, 0xab, 0x62, 0x59, 0x4d, 0x1e,
+ 0x9d, 0xf8, 0x00, 0x3d, 0xad, 0x7b, 0xa1, 0x18, 0xb5, 0x2a, 0xd3, 0x52,
+ 0xea, 0x02, 0x22, 0x9e, 0xa4, 0x0d, 0xe5, 0xd3, 0xa4, 0xda, 0xfe, 0x17,
+ 0x1b, 0x03, 0xf3, 0x79, 0x36, 0x09, 0x32, 0x74, 0xb0, 0xd2, 0xbb, 0xda,
+ 0xef, 0x70, 0x1c, 0x50, 0xf3, 0xfe, 0x08, 0x79, 0x17, 0x3d, 0x7f, 0x40,
+ 0xb4, 0x55, 0x09, 0xf7, 0x29, 0xba, 0xfa, 0x39, 0x1b, 0x45, 0xfb, 0xda,
+ 0x83, 0x2d, 0x8c, 0x9d, 0x8a, 0x07, 0x08, 0x9e, 0x84, 0x9d, 0xae, 0xd8,
+ 0xca, 0xd5, 0xc7, 0xa3, 0x55, 0x19, 0x61, 0xad, 0x0b, 0x36, 0x2c, 0x05,
+ 0xc1, 0xfb, 0x07, 0xfd, 0x93, 0xe8, 0xec, 0xe4, 0xe0, 0xf8, 0x1d, 0xbc,
+ 0x13, 0xfb, 0x11, 0x1b, 0xd3, 0xb0, 0x80, 0xd0, 0x6c, 0x3d, 0xd5, 0xbd,
+ 0xd5, 0xd4, 0xa0, 0xf9, 0x21, 0x1f, 0x73, 0x7c, 0x44, 0xf7, 0x7c, 0x03,
+ 0x30, 0x20, 0x9e, 0x69, 0x21, 0xc8, 0xbc, 0x12, 0x08, 0xbb, 0x0f, 0x0d,
+ 0xb4, 0xec, 0x46, 0x17, 0x3b, 0xda, 0x00, 0x60, 0x89, 0xcc, 0xf8, 0xac,
+ 0x43, 0xab, 0x41, 0xda, 0xd9, 0xe4, 0x51, 0x9a, 0x3c, 0xcc, 0x89, 0x0d,
+ 0x42, 0xe0, 0x25, 0x67, 0x68, 0x6a, 0xee, 0xd0, 0xaa, 0xb2, 0x0c, 0x16,
+ 0x88, 0x44, 0x54, 0x4a, 0x88, 0x75, 0x89, 0x42, 0x25, 0xb9, 0xfd, 0x9d,
+ 0x02, 0x78, 0x41, 0x64, 0x32, 0x11, 0x0b, 0xc2, 0x6f, 0x59, 0xa9, 0x3c,
+ 0xa7, 0xf2, 0xa0, 0xb8, 0xeb, 0xda, 0xb0, 0x01, 0xe7, 0xf3, 0x88, 0x06,
+ 0x4e, 0xd9, 0xda, 0x97, 0x20, 0x03, 0x09, 0x2a, 0x5e, 0x10, 0x9e, 0x0a,
+ 0xee, 0x3e, 0x88, 0x4d, 0x05, 0xfd, 0xea, 0xfc, 0x09, 0xa8, 0xec, 0x30,
+ 0xa0, 0x9b, 0x8e, 0xb0, 0x2c, 0x63, 0x36, 0x58, 0x0e, 0xff, 0x97, 0x4d,
+ 0x92, 0xb9, 0xd1, 0x59, 0xdf, 0x8c, 0xc1, 0xd3, 0xde, 0x6b, 0x73, 0x70,
+ 0xd6, 0xd6, 0xe9, 0x8e, 0xa8, 0x6c, 0xd4, 0x54, 0x5f, 0xd9, 0xc2, 0xe0,
+ 0x9c, 0x59, 0xb3, 0xc9, 0x60, 0x4f, 0x5a, 0x42, 0x56, 0x2e, 0x39, 0xf3,
+ 0xed, 0x96, 0x49, 0xfb, 0xc8, 0x0e, 0x76, 0x4b, 0x37, 0xb0, 0xe3, 0xce,
+ 0xb3, 0xf3, 0xa3, 0xeb, 0xf4, 0x71, 0xdb, 0x76, 0xd4, 0x9b, 0x0a, 0x37,
+ 0x05, 0x20, 0x74, 0x14, 0x8e, 0xc6, 0x44, 0x21, 0x68, 0x7a, 0x7a, 0x66,
+ 0x5d, 0xca, 0x99, 0x9e, 0x92, 0xc8, 0xdf, 0xf8, 0xa6, 0x3b, 0xda, 0x93,
+ 0x1a, 0xe1, 0x29, 0x55, 0xfb, 0x78, 0xec, 0xab, 0xab, 0xe2, 0x36, 0x0e,
+ 0xc1, 0xf3, 0x9b, 0x44, 0x56, 0xb1, 0xc8, 0x2b, 0x7a, 0x1a, 0xd3, 0x61,
+ 0x6b, 0x39, 0x62, 0x46, 0x33, 0xc2, 0x31, 0x6c, 0xfd, 0x11, 0x36, 0xa7,
+ 0xf7, 0x5b, 0xd9, 0x73, 0xde, 0x37, 0x61, 0x0d, 0x2e, 0x0c, 0x94, 0xa0,
+ 0x3d, 0x31, 0x2e, 0x06, 0xc0, 0x88, 0xdc, 0xdd, 0x45, 0xdc, 0x43, 0x9a,
+ 0x6f, 0xd4, 0x00, 0x51, 0xd0, 0xd2, 0x8d, 0x40, 0xbd, 0x2f, 0xdc, 0xe4,
+ 0xf1, 0x5e, 0x97, 0x36, 0x6f, 0xf9, 0x96, 0x3b, 0x96, 0x26, 0x66, 0xc9,
+ 0x4b, 0xf6, 0xab, 0xcd, 0x0b, 0xc4, 0xc2, 0xbd, 0x24, 0x84, 0xde, 0x49,
+ 0x5a, 0x37, 0x6a, 0xe9, 0x1c, 0x42, 0x7a, 0x57, 0x35, 0x7d, 0x8a, 0x1c,
+ 0xaa, 0x7f, 0x9f, 0x65, 0x29, 0x01, 0x11, 0xa5, 0x26, 0x86, 0x40, 0x64,
+ 0xd6, 0x61, 0x23, 0x1a, 0x16, 0x1f, 0x35, 0x54, 0xf7, 0xae, 0x6a, 0xd8,
+ 0x05, 0x54, 0x62, 0xde, 0xd2, 0x4e, 0x1d, 0xe2, 0xda, 0x26, 0xa0, 0x22,
+ 0x51, 0x48, 0xdf, 0x69, 0xa4, 0xa2, 0x65, 0x1b, 0x0a, 0x1e, 0xc2, 0xda,
+ 0x4c, 0x52, 0x5d, 0xfb, 0xd6, 0x55, 0x37, 0x9a, 0x16, 0x35, 0xab, 0x34,
+ 0x88, 0x63, 0x7b, 0x93, 0x9a, 0x5b, 0x08, 0xe6, 0x02, 0x0a, 0x58, 0x32,
+ 0x5e, 0xaf, 0xea, 0x11, 0x2a, 0x8e, 0xb3, 0x7c, 0x8c, 0x93, 0xc4, 0xa1,
+ 0xd4, 0xf1, 0xdb, 0x66, 0x88, 0x3a, 0x84, 0x7c, 0xef, 0x71, 0x25, 0x65,
+ 0xcd, 0x99, 0x3b, 0x8f, 0x6c, 0x82, 0xba, 0xe1, 0x9b, 0xc0, 0x9f, 0x88,
+ 0xe6, 0xe5, 0x77, 0x38, 0x70, 0x49, 0x85, 0x57, 0x0c, 0xaf, 0x98, 0x08,
+ 0xd9, 0x60, 0xd6, 0x65, 0x71, 0x93, 0xab, 0xe5, 0xf8, 0xe1, 0x06, 0xd7,
+ 0x04, 0xc7, 0x75, 0x50, 0x54, 0x54, 0xdb, 0x0a, 0x44, 0x82, 0xcf, 0x4b,
+ 0x17, 0xe3, 0x45, 0xbc, 0x12, 0x73, 0xa3, 0x91, 0x25, 0xd1, 0xda, 0xa9,
+ 0xa7, 0xc8, 0x8e, 0x83, 0xd5, 0x5e, 0xb7, 0x92, 0x46, 0xdc, 0x8b, 0xdc,
+ 0x47, 0xbe, 0x7c, 0x00, 0xa8, 0x1d, 0x3e, 0x68, 0xfc, 0x39, 0x24, 0x8c,
+ 0xa8, 0xa2, 0x18, 0xfb, 0xaa, 0xcd, 0x05, 0x06, 0x0f, 0x05, 0xb3, 0x9b,
+ 0x5d, 0x94, 0xd4, 0xf6, 0xd2, 0x98, 0xb3, 0xd1, 0x6f, 0x42, 0x5d, 0x2b,
+ 0x1e, 0xd9, 0x69, 0x03, 0x63, 0x92, 0xa6, 0xc8, 0x59, 0x85, 0x82, 0x0b,
+ 0x6c, 0x6e, 0xfa, 0x0a, 0x05, 0xc2, 0x20, 0x70, 0x52, 0x66, 0x82, 0xd6,
+ 0x3c, 0x1c, 0x83, 0x09, 0x10, 0x08, 0xbd, 0x36, 0x7c, 0x64, 0x98, 0x24,
+ 0x31, 0x43, 0x6b, 0x75, 0x3c, 0xc3, 0xcf, 0x99, 0x18, 0x06, 0x37, 0xd7,
+ 0x30, 0xc5, 0x95, 0xb2, 0x9f, 0xa1, 0x16, 0x06, 0x2c, 0x66, 0x9d, 0xe6,
+ 0x3a, 0xda, 0xbf, 0xd0, 0xf4, 0x9d, 0x69, 0xb7, 0x2f, 0x98, 0xa3, 0xeb,
+ 0xb3, 0xff, 0x92, 0xc7, 0x49, 0xa5, 0xf7, 0x98, 0x13, 0x7e, 0x46, 0x40,
+ 0x20, 0x33, 0x1f, 0x6e, 0x3f, 0x23, 0xb8, 0xe9, 0xc1, 0x8e, 0x23, 0x54,
+ 0x20, 0xc0, 0xe6, 0x86, 0x3b, 0x39, 0xd5, 0xc9, 0x15, 0x23, 0x96, 0x40,
+ 0x2b, 0x9c, 0x1e, 0x35, 0x98, 0x05, 0xe1, 0x25, 0x90, 0xa2, 0xd3, 0x9e,
+ 0xb2, 0x22, 0x98, 0x2d, 0xd8, 0x80, 0x14, 0xb8, 0xa1, 0x4a, 0x45, 0x49,
+ 0x63, 0x4a, 0x6a, 0x3e, 0x06, 0xc0, 0x0a, 0xf8, 0xa5, 0x55, 0x05, 0x62,
+ 0xa7, 0xd7, 0xd6, 0x1a, 0x89, 0x96, 0x45, 0xa3, 0xdd, 0xe6, 0x1f, 0x6d,
+ 0x65, 0xc8, 0xd6, 0x23, 0xf3, 0x53, 0xc3, 0xa5, 0x9d, 0x8d, 0x97, 0xcf,
+ 0x1e, 0x32, 0x39, 0xb8, 0xcd, 0xd0, 0x93, 0x8e, 0x7f, 0xf2, 0xb8, 0xf3,
+ 0x3f, 0x07, 0xdf, 0x64, 0xd1, 0xf9, 0xe7, 0xde, 0x21, 0xd5, 0x75, 0xd5,
+ 0x6e, 0x49, 0x33, 0x2f, 0x69, 0xc1, 0xa6, 0xfe, 0x04, 0x95, 0x9f, 0xa6,
+ 0xaf, 0x79, 0x89, 0xf3, 0xcb, 0x8e, 0xca, 0x5f, 0x72, 0x7a, 0x9f, 0x72,
+ 0x78, 0x93, 0xa7, 0x9c, 0xde, 0xe4, 0x0f, 0x3a, 0xbe, 0xa6, 0xbc, 0xe7,
+ 0xb1, 0x87, 0x57, 0xb9, 0xe6, 0x7f, 0x8f, 0x6f, 0xf0, 0xf8, 0x26, 0xcb,
+ 0x9f, 0xdf, 0xdd, 0x78, 0x90, 0x54, 0x1e, 0xc6, 0xbf, 0x5f, 0xdd, 0x84,
+ 0xb6, 0x26, 0x0e, 0xbc, 0x6e, 0xfa, 0xfe, 0xb4, 0x4c, 0x7b, 0x29, 0x78,
+ 0xe1, 0x7e, 0x0f, 0xc1, 0xac, 0xd8, 0x42, 0x59, 0x62, 0xd7, 0x6c, 0xa3,
+ 0xe2, 0x99, 0x2e, 0x1c, 0xd9, 0x8b, 0xef, 0x68, 0xb7, 0x45, 0x9b, 0x3b,
+ 0xd3, 0x13, 0xf5, 0x4c, 0xd7, 0x74, 0x09, 0x7a, 0xd3, 0x34, 0xa3, 0x53,
+ 0x0f, 0x8a, 0x21, 0xb0, 0x6d, 0xf4, 0x55, 0xbf, 0x1f, 0x1f, 0x9c, 0x1d,
+ 0x47, 0x0f, 0x78, 0x31, 0xf0, 0x15, 0x67, 0x8e, 0xd9, 0xd2, 0xba, 0x57,
+ 0x83, 0xaa, 0xe6, 0x9f, 0x4b, 0xec, 0xcb, 0x83, 0xe5, 0x4a, 0xcd, 0x35,
+ 0x82, 0x09, 0xd1, 0xde, 0xbc, 0x83, 0x2a, 0x6a, 0x94, 0x25, 0xeb, 0xd2,
+ 0xd5, 0x52, 0x24, 0x23, 0x54, 0xfb, 0x24, 0x12, 0x62, 0x01, 0xfa, 0x6d,
+ 0x51, 0xea, 0xd2, 0x03, 0x5e, 0xb2, 0x0d, 0x02, 0x9a, 0x13, 0x18, 0xf9,
+ 0xe6, 0xcb, 0x67, 0x9b, 0x70, 0x66, 0xef, 0x39, 0x67, 0x47, 0x5e, 0xde,
+ 0xe9, 0x6d, 0xaf, 0xef, 0xf4, 0x76, 0x50, 0x26, 0x4b, 0xb6, 0x2f, 0x15,
+ 0xbc, 0xca, 0xf0, 0xe1, 0x0c, 0x18, 0x16, 0xcd, 0xef, 0x8e, 0x0e, 0x23,
+ 0x2e, 0x75, 0xa5, 0xe6, 0x39, 0x2d, 0x4f, 0x89, 0x03, 0x06, 0x21, 0x8c,
+ 0xc2, 0x47, 0xc9, 0xf3, 0x46, 0x7a, 0xe4, 0x50, 0x0b, 0x9b, 0x50, 0x75,
+ 0x73, 0x33, 0x11, 0x94, 0xb6, 0x6c, 0x6c, 0x2b, 0x42, 0x3a, 0xfc, 0xca,
+ 0xc7, 0x18, 0x72, 0x48, 0xe2, 0x10, 0xec, 0x89, 0x5c, 0xe0, 0x4c, 0xea,
+ 0x09, 0xac, 0xd0, 0x1e, 0x46, 0x1d, 0x04, 0x73, 0x5c, 0x0c, 0x36, 0x1a,
+ 0xe9, 0x79, 0x12, 0x44, 0xd0, 0x1b, 0x9f, 0x54, 0x15, 0x95, 0xc3, 0x89,
+ 0x31, 0xfa, 0x2f, 0xfe, 0x3e, 0xca, 0x7b, 0xcb, 0x7a, 0x2c, 0xb2, 0x7a,
+ 0x91, 0x63, 0xc2, 0xac, 0x96, 0x8f, 0xba, 0xf8, 0x23, 0xe6, 0x2d, 0x48,
+ 0x9c, 0x10, 0xed, 0x4b, 0x8b, 0xb9, 0x09, 0xa5, 0x0f, 0x7b, 0x15, 0x9c,
+ 0xa1, 0xcc, 0xf8, 0x81, 0x9f, 0xe9, 0xe8, 0x01, 0x7f, 0x1c, 0x7e, 0x8c,
+ 0xc7, 0x2a, 0xd3, 0x64, 0x2c, 0xb3, 0x72, 0xbe, 0xe3, 0xff, 0x12, 0xa9,
+ 0xc7, 0xa9, 0xb2, 0x7e, 0xa5, 0xa5, 0x04, 0x3c, 0x9d, 0x29, 0x18, 0x8f,
+ 0xc0, 0x24, 0xa9, 0x87, 0xda, 0x63, 0x08, 0xee, 0xcd, 0x6c, 0x0a, 0x32,
+ 0xff, 0x49, 0xbe, 0x95, 0x20, 0xbd, 0xd8, 0xad, 0xf3, 0xcb, 0x39, 0x2a,
+ 0x28, 0xf5, 0xc5, 0x28, 0x42, 0xd9, 0x89, 0x24, 0x51, 0xe9, 0xb1, 0x40,
+ 0xdc, 0x4b, 0x09, 0x51, 0x3b, 0x08, 0x16, 0x90, 0xf5, 0x73, 0x06, 0x43,
+ 0x08, 0x55, 0x2b, 0xd3, 0x95, 0x8d, 0xdb, 0xa5, 0x31, 0xd9, 0x45, 0x64,
+ 0x7a, 0x11, 0x61, 0x68, 0xc0, 0xe6, 0x1c, 0xe8, 0xb0, 0x82, 0xe1, 0xb6,
+ 0xd6, 0xbe, 0x0e, 0x42, 0x57, 0x5c, 0x5d, 0xc8, 0xd5, 0xf0, 0xe0, 0xfd,
+ 0xf3, 0x6b, 0x5d, 0x09, 0x72, 0x29, 0xfd, 0x96, 0x77, 0x82, 0x0e, 0xf9,
+ 0x14, 0x9d, 0x5c, 0x76, 0x2a, 0x5a, 0xa5, 0x72, 0x0e, 0x81, 0xd6, 0x53,
+ 0xfd, 0xd9, 0x35, 0x91, 0x43, 0x85, 0x11, 0xc4, 0xdc, 0x6b, 0xbd, 0xe8,
+ 0x21, 0x7b, 0x3e, 0xa0, 0xbf, 0x7b, 0xd7, 0xcd, 0xc2, 0xb6, 0x6b, 0xff,
+ 0xa3, 0x4c, 0x69, 0xde, 0xe3, 0x38, 0xd0, 0x7c, 0xc2, 0xf4, 0x9c, 0x5c,
+ 0xa4, 0x97, 0x73, 0xa7, 0xd6, 0xff, 0x35, 0xab, 0xff, 0xa7, 0xeb, 0xe5,
+ 0xce, 0xb9, 0x6c, 0x74, 0x43, 0xdc, 0x7b, 0xbe, 0xb1, 0xb1, 0xf1, 0x28,
+ 0x79, 0xfd, 0xe0, 0x79, 0x6e, 0x14, 0x4f, 0xb5, 0x4f, 0x74, 0x2c, 0x25,
+ 0xd3, 0x01, 0x73, 0x37, 0x8c, 0xc2, 0x30, 0x7e, 0xd8, 0x31, 0xc7, 0x07,
+ 0x99, 0xb2, 0x1b, 0x18, 0x4c, 0x83, 0x6d, 0x71, 0x9f, 0x9f, 0x1e, 0x38,
+ 0xcc, 0xff, 0x63, 0x2c, 0xeb, 0xdd, 0xe8, 0x09, 0x96, 0xf5, 0xee, 0xff,
+ 0x1a, 0xd6, 0xff, 0x72, 0x07, 0x78, 0x3e, 0x3b, 0xac, 0x62, 0xa2, 0x3b,
+ 0x56, 0x22, 0xc0, 0x7f, 0xd5, 0xa4, 0x5e, 0xb3, 0x3a, 0x1d, 0x42, 0x1c,
+ 0x31, 0xed, 0x8e, 0xcf, 0xbe, 0x79, 0xd6, 0x25, 0x30, 0xd7, 0xbe, 0x8f,
+ 0x6b, 0x7c, 0xf2, 0xea, 0xe0, 0xac, 0xf7, 0x14, 0x29, 0xb1, 0xb4, 0x70,
+ 0xf8, 0x1b, 0x79, 0xeb, 0xa7, 0x69, 0x3a, 0x8a, 0x39, 0x01, 0x63, 0x9f,
+ 0xfe, 0x11, 0xcc, 0x6d, 0x52, 0xb4, 0x5b, 0xe2, 0x79, 0xcc, 0xcb, 0x90,
+ 0xa4, 0x33, 0x27, 0x47, 0x8e, 0x5e, 0x06, 0x35, 0x2b, 0x17, 0x78, 0x6c,
+ 0x2c, 0x74, 0xaa, 0x7c, 0x1f, 0x5c, 0x91, 0x8f, 0xd6, 0x18, 0x7c, 0x89,
+ 0xbe, 0x4c, 0x5c, 0x26, 0xe9, 0x82, 0x28, 0x0e, 0x2e, 0xb1, 0x57, 0x85,
+ 0xf6, 0xc1, 0x72, 0x9f, 0x21, 0x39, 0xe1, 0x37, 0x8e, 0xe6, 0x03, 0x74,
+ 0x6f, 0x97, 0xc2, 0xb9, 0x23, 0xdc, 0xdb, 0x64, 0x7b, 0x03, 0x43, 0x73,
+ 0x82, 0xc2, 0xf9, 0x87, 0xcb, 0x72, 0x87, 0xd2, 0xdb, 0x1b, 0x1b, 0xcd,
+ 0x09, 0x3f, 0x94, 0x7b, 0xd6, 0x5e, 0xe0, 0xbc, 0x0c, 0xcb, 0x85, 0x9b,
+ 0xe5, 0xce, 0xa0, 0xb1, 0x47, 0x98, 0xcc, 0xc4, 0x09, 0x1b, 0x6d, 0xa1,
+ 0xe8, 0xee, 0x00, 0x27, 0x13, 0x32, 0x45, 0xcc, 0x27, 0x9a, 0xfb, 0x75,
+ 0x7c, 0xe1, 0xbe, 0xe0, 0x79, 0x5e, 0x18, 0x3a, 0x48, 0x5a, 0xa1, 0x88,
+ 0xb1, 0xd9, 0x98, 0x95, 0xcd, 0xe5, 0xdc, 0xd4, 0x28, 0x9b, 0x45, 0x50,
+ 0xf8, 0x9b, 0x9f, 0x90, 0xee, 0xbc, 0xbb, 0xb8, 0x42, 0xad, 0xc8, 0xeb,
+ 0x12, 0xbb, 0xb6, 0xdb, 0x42, 0x1c, 0x96, 0x32, 0xb3, 0xca, 0xc1, 0x84,
+ 0xc0, 0x22, 0x4c, 0x84, 0x44, 0x88, 0x88, 0x6a, 0x5e, 0x5e, 0x99, 0x48,
+ 0xac, 0x28, 0xad, 0x87, 0x3d, 0xcb, 0x3d, 0xd4, 0x42, 0x67, 0x88, 0x85,
+ 0x8a, 0x25, 0x27, 0x82, 0xc1, 0x05, 0xd0, 0xe5, 0xaa, 0x47, 0xea, 0x29,
+ 0x30, 0xc7, 0xa7, 0xa5, 0x59, 0x91, 0x73, 0x00, 0x25, 0xfe, 0x27, 0xf1,
+ 0x66, 0x5c, 0x61, 0x22, 0x07, 0x1a, 0xf9, 0xf1, 0x20, 0x4d, 0xbc, 0x0a,
+ 0x64, 0x1f, 0x31, 0x55, 0x1d, 0x83, 0x46, 0x2a, 0x26, 0x25, 0xd7, 0x84,
+ 0x20, 0x2f, 0x02, 0x1b, 0xd6, 0xf7, 0x58, 0x37, 0x75, 0x2b, 0xd8, 0x45,
+ 0xed, 0xeb, 0xae, 0x7f, 0xb2, 0x4d, 0x9b, 0x77, 0x7e, 0xd2, 0x77, 0x1b,
+ 0x13, 0x57, 0x94, 0x98, 0x45, 0x98, 0x5a, 0x5f, 0x1e, 0x1d, 0xf4, 0xcf,
+ 0x7b, 0x21, 0x22, 0xfa, 0xc0, 0x1f, 0x16, 0x65, 0x0f, 0xbb, 0x43, 0x8c,
+ 0x93, 0x7b, 0xec, 0x0f, 0x25, 0x50, 0x5d, 0x38, 0x37, 0x9e, 0x9a, 0x0e,
+ 0x8e, 0xfe, 0x0b, 0x06, 0xd3, 0xa0, 0xf4, 0x70, 0xbf, 0x09, 0x09, 0xec,
+ 0x8e, 0x94, 0x89, 0x99, 0x02, 0x35, 0x62, 0x5e, 0x2a, 0x32, 0x29, 0xc6,
+ 0x98, 0x55, 0x86, 0xdf, 0x69, 0xfa, 0xaa, 0x16, 0x80, 0x76, 0xba, 0xf3,
+ 0x1f, 0x23, 0xd2, 0x9a, 0xb4, 0xa4, 0xc1, 0x41, 0x94, 0x58, 0x9c, 0x4e,
+ 0x64, 0x60, 0x5f, 0x02, 0xc5, 0x82, 0x84, 0xd9, 0x4c, 0x58, 0xe9, 0xd5,
+ 0xb5, 0xa6, 0xec, 0x0c, 0x6b, 0xc2, 0x21, 0x4c, 0x96, 0x4f, 0x20, 0x68,
+ 0xee, 0xf6, 0x63, 0x78, 0x63, 0x56, 0x17, 0xf1, 0x70, 0x8c, 0x79, 0xa2,
+ 0x31, 0x36, 0xb7, 0x0f, 0xf8, 0x0d, 0xdc, 0xc6, 0xab, 0x4d, 0xa0, 0x4f,
+ 0x02, 0x36, 0x61, 0x89, 0xce, 0x80, 0x07, 0x11, 0x8f, 0x04, 0xff, 0x85,
+ 0xa1, 0x40, 0x91, 0xf4, 0x15, 0xd0, 0x5a, 0x1c, 0x2f, 0x4d, 0x43, 0xbc,
+ 0xcb, 0x4e, 0x07, 0x49, 0x74, 0xb6, 0xed, 0x64, 0x14, 0x38, 0x49, 0xf8,
+ 0x34, 0x84, 0x3e, 0xe4, 0xf6, 0xc4, 0x74, 0x7a, 0x60, 0xf6, 0xd1, 0x97,
+ 0x85, 0xcd, 0x85, 0x57, 0x19, 0x2f, 0x8e, 0xf0, 0x0e, 0x04, 0x20, 0x95,
+ 0x76, 0x08, 0x56, 0xd5, 0x1e, 0x6e, 0x80, 0x2d, 0x55, 0xc1, 0xd2, 0x3d,
+ 0x03, 0x59, 0x4a, 0x69, 0xb8, 0xcf, 0x7b, 0xcf, 0x9f, 0x03, 0x1b, 0x33,
+ 0x9e, 0x5a, 0xd2, 0x84, 0x06, 0x25, 0x34, 0x9c, 0x8c, 0xf3, 0x04, 0x84,
+ 0x40, 0xa1, 0xeb, 0x4f, 0xe7, 0xd1, 0x13, 0x5d, 0xd0, 0x85, 0xe7, 0x4b,
+ 0x72, 0xa7, 0xad, 0xf4, 0xbd, 0xd2, 0x8c, 0x68, 0x84, 0x9b, 0xef, 0x69,
+ 0x6b, 0xb4, 0xbe, 0xca, 0x12, 0xb9, 0xe5, 0xcc, 0x50, 0x3c, 0xb1, 0xd3,
+ 0x7e, 0x63, 0xa8, 0xaa, 0x26, 0xac, 0xc6, 0xda, 0x93, 0x99, 0x02, 0xdf,
+ 0x90, 0x70, 0xa7, 0xdf, 0xe1, 0x7d, 0x04, 0xcb, 0x19, 0x8b, 0x0f, 0x19,
+ 0x77, 0xd4, 0x00, 0xda, 0x3e, 0x89, 0x0b, 0x5b, 0x7c, 0xb5, 0x64, 0x1e,
+ 0x0b, 0x3b, 0xde, 0x42, 0x03, 0xf5, 0x1a, 0x15, 0x48, 0xcf, 0x5b, 0xbe,
+ 0x12, 0x78, 0x81, 0xa0, 0x4b, 0x11, 0x6e, 0xc9, 0xc3, 0x5f, 0x91, 0xad,
+ 0x58, 0x5b, 0x20, 0xf6, 0x34, 0x95, 0xd6, 0x25, 0x20, 0x8e, 0x36, 0x0c,
+ 0x22, 0x5f, 0x45, 0xc3, 0xab, 0x14, 0xd4, 0xbb, 0xde, 0x53, 0x84, 0x42,
+ 0x9b, 0xf7, 0x5c, 0x11, 0xf1, 0xeb, 0x0b, 0x05, 0x43, 0x94, 0x65, 0x13,
+ 0xb7, 0x76, 0x7c, 0x02, 0x03, 0xcf, 0x8e, 0x42, 0x5d, 0x8a, 0x09, 0x36,
+ 0x87, 0xf0, 0x79, 0x18, 0xe9, 0xe6, 0x3d, 0xb7, 0x71, 0xc6, 0xa5, 0xaf,
+ 0xc3, 0x85, 0x60, 0x2a, 0xda, 0x6d, 0x9b, 0x1f, 0x74, 0x1d, 0x62, 0xfe,
+ 0x8e, 0xef, 0x46, 0xd1, 0x66, 0x6d, 0xf6, 0xd9, 0x56, 0x8f, 0x57, 0xa3,
+ 0xba, 0x6b, 0x73, 0x07, 0xf9, 0xca, 0x42, 0x55, 0x03, 0xcf, 0x30, 0x66,
+ 0xf5, 0xa7, 0x08, 0xb2, 0x67, 0xae, 0xa4, 0x38, 0xbe, 0xa8, 0xa7, 0x66,
+ 0x65, 0x4f, 0xa1, 0x2e, 0xbe, 0xe7, 0xe3, 0xd7, 0x78, 0x64, 0x43, 0xfa,
+ 0x83, 0x60, 0xae, 0x6a, 0x84, 0x77, 0x2a, 0x3c, 0x59, 0xeb, 0x30, 0xe8,
+ 0x02, 0x0e, 0xcd, 0x2e, 0x73, 0x3c, 0xcf, 0x4b, 0x31, 0xa8, 0xa4, 0x44,
+ 0x63, 0x05, 0xb3, 0xd4, 0x73, 0x8d, 0x66, 0x94, 0xdc, 0x3d, 0xc9, 0x28,
+ 0x03, 0x66, 0xbd, 0xb8, 0xb8, 0x20, 0xbc, 0x31, 0x60, 0xff, 0xba, 0xcc,
+ 0x06, 0xb3, 0x40, 0x34, 0x86, 0x7a, 0xf9, 0x59, 0x18, 0x15, 0xfe, 0xa6,
+ 0xfd, 0x06, 0x23, 0x3a, 0x3d, 0x8d, 0x78, 0x6d, 0xba, 0x2c, 0x5b, 0x86,
+ 0xb8, 0xe1, 0xf1, 0xe8, 0x1c, 0x8e, 0x3c, 0x27, 0xbc, 0x0b, 0xba, 0xab,
+ 0x16, 0x32, 0xa5, 0x5f, 0xce, 0x04, 0x2c, 0x27, 0x1d, 0xd5, 0xa9, 0xef,
+ 0x0b, 0x9d, 0xe4, 0xc7, 0x70, 0xa7, 0xb2, 0xa7, 0xaf, 0x28, 0x11, 0xb3,
+ 0x36, 0x85, 0x9e, 0xb2, 0xa1, 0x68, 0xc4, 0x92, 0xa6, 0x65, 0x19, 0x8c,
+ 0x7a, 0xc8, 0x21, 0x42, 0x8d, 0xa7, 0xd9, 0xc0, 0x6d, 0x30, 0x06, 0xf5,
+ 0x73, 0x4c, 0x00, 0xa9, 0x69, 0x3e, 0x2c, 0xef, 0xa7, 0x6e, 0x27, 0xf5,
+ 0xd1, 0x2f, 0x39, 0x15, 0xe4, 0xdf, 0xc7, 0xc4, 0x64, 0x75, 0xe7, 0x04,
+ 0x80, 0x98, 0xc9, 0xa9, 0x52, 0xbb, 0x50, 0x2f, 0xe8, 0x96, 0xb2, 0x1d,
+ 0x84, 0xb0, 0x56, 0x5d, 0x80, 0x89, 0x2f, 0x66, 0xd4, 0x33, 0xc6, 0x00,
+ 0xb7, 0x2c, 0xcd, 0x30, 0xc0, 0x89, 0xd3, 0xed, 0xb9, 0x48, 0x51, 0x5b,
+ 0x5d, 0x7e, 0xea, 0x66, 0xcb, 0x3b, 0x5d, 0xfd, 0x93, 0xa6, 0xe4, 0x57,
+ 0x47, 0x14, 0xac, 0x1a, 0xc4, 0xac, 0x02, 0xa3, 0x58, 0xfe, 0xb8, 0xd9,
+ 0xea, 0x4a, 0xee, 0x5e, 0xa0, 0x55, 0x0c, 0x95, 0x1e, 0xe6, 0x5a, 0xde,
+ 0x60, 0xd5, 0x04, 0xc4, 0xed, 0x2a, 0x67, 0x43, 0xd5, 0x4c, 0xf8, 0xb4,
+ 0x62, 0x35, 0x22, 0x8e, 0x17, 0x31, 0x20, 0xcc, 0x28, 0xf5, 0x4a, 0xa9,
+ 0x6d, 0xab, 0x35, 0x1c, 0x81, 0xb9, 0x8b, 0x8a, 0xe4, 0x30, 0x38, 0xfb,
+ 0x6c, 0xf3, 0xf9, 0xb3, 0xb5, 0x27, 0x50, 0x0a, 0x3e, 0xf8, 0xc8, 0x5b,
+ 0x97, 0x39, 0x10, 0x81, 0xf4, 0xe0, 0x79, 0x04, 0x83, 0x14, 0xde, 0xc3,
+ 0x7f, 0x6e, 0xf5, 0x5c, 0xaa, 0x2a, 0x4b, 0x55, 0xda, 0x79, 0xca, 0x03,
+ 0xa2, 0xca, 0x47, 0xc8, 0x48, 0x48, 0x1f, 0xd5, 0x1b, 0x91, 0xc1, 0x06,
+ 0xb3, 0x6c, 0x4c, 0x25, 0x1a, 0x2a, 0xaf, 0x89, 0xfd, 0x7d, 0x3f, 0x61,
+ 0x9b, 0xce, 0xec, 0x37, 0x8c, 0xb7, 0x75, 0x02, 0x6c, 0x5f, 0xc4, 0x9b,
+ 0xf8, 0xef, 0x7a, 0x5c, 0xdd, 0x6c, 0xca, 0x4c, 0xe9, 0xef, 0xbd, 0xe6,
+ 0xbf, 0xb6, 0x1c, 0xa9, 0x60, 0x07, 0xf8, 0xe5, 0x7c, 0xb1, 0xfd, 0x2b,
+ 0xf3, 0xc5, 0xf6, 0x13, 0xf9, 0xe2, 0xf9, 0xee, 0xb3, 0x17, 0x4f, 0xe2,
+ 0x8b, 0xed, 0x5f, 0x8b, 0x2f, 0x9c, 0x6d, 0xf9, 0x63, 0xf8, 0xc2, 0x61,
+ 0xcc, 0xa7, 0xf1, 0x85, 0xa6, 0xc4, 0x06, 0xdb, 0x26, 0xbe, 0x57, 0xe8,
+ 0x08, 0xaa, 0x20, 0x43, 0xa0, 0x0c, 0xc6, 0xc8, 0x91, 0x77, 0x3c, 0xa0,
+ 0x2e, 0x86, 0x87, 0x67, 0xe4, 0x3e, 0x74, 0xb8, 0x04, 0xdc, 0xb7, 0x16,
+ 0x09, 0x9c, 0x9c, 0x13, 0xd3, 0x71, 0x02, 0xdc, 0xb2, 0x12, 0xaf, 0x68,
+ 0xe4, 0x4c, 0x71, 0xff, 0x1c, 0x54, 0x0e, 0xce, 0x6c, 0xfe, 0xe3, 0x93,
+ 0xd7, 0x7f, 0x6f, 0xbf, 0x07, 0x13, 0x59, 0x20, 0x52, 0xea, 0xbb, 0xfa,
+ 0xe9, 0xa9, 0xcf, 0xbc, 0xfb, 0x4e, 0xfe, 0x7b, 0x93, 0x01, 0xee, 0x41,
+ 0x23, 0x8a, 0xf9, 0x3b, 0xc1, 0x12, 0x95, 0xca, 0xd4, 0x0c, 0xb1, 0xed,
+ 0xab, 0xb4, 0x1a, 0x14, 0x63, 0x24, 0x67, 0x8e, 0xa2, 0xe0, 0x7e, 0x9c,
+ 0x8a, 0x9a, 0x85, 0x3b, 0x87, 0x5c, 0x8e, 0x9e, 0xee, 0x76, 0x3c, 0x95,
+ 0x6a, 0xd7, 0xaa, 0x76, 0xee, 0x7a, 0x4f, 0x42, 0xda, 0xa0, 0xa4, 0x37,
+ 0x26, 0x43, 0x81, 0xfa, 0x0a, 0xcc, 0xc8, 0x21, 0x17, 0xc9, 0x4d, 0x02,
+ 0x0d, 0x06, 0xfe, 0xe5, 0x4b, 0x1a, 0x1a, 0x0b, 0x8a, 0x8f, 0x97, 0xd4,
+ 0xed, 0x9e, 0xb5, 0xeb, 0x71, 0x40, 0x4a, 0x50, 0xc2, 0xba, 0xba, 0xee,
+ 0x84, 0xa4, 0xa1, 0x1a, 0x92, 0x78, 0x6a, 0xe2, 0x23, 0xf5, 0x8c, 0x7c,
+ 0x01, 0xca, 0xb2, 0xdc, 0x3c, 0x07, 0xf1, 0x25, 0x8e, 0x0e, 0x0d, 0x60,
+ 0x2f, 0xfe, 0x96, 0x4a, 0xbd, 0x81, 0x52, 0xa1, 0x72, 0x71, 0x59, 0x02,
+ 0xc7, 0x41, 0xec, 0xbb, 0x52, 0xb4, 0x24, 0xf3, 0xf0, 0x10, 0x27, 0xb0,
+ 0xe6, 0xb6, 0xf6, 0xf3, 0x13, 0x54, 0x4d, 0x62, 0xef, 0xe9, 0x2b, 0x9c,
+ 0xe8, 0x68, 0x36, 0x99, 0x6a, 0x23, 0x2f, 0xcc, 0x4c, 0x89, 0x33, 0x02,
+ 0x8f, 0x55, 0x7c, 0x12, 0xa9, 0x2f, 0xc5, 0x58, 0x58, 0x08, 0x21, 0x1a,
+ 0xe5, 0x84, 0x94, 0x69, 0x70, 0x44, 0x4a, 0x79, 0x4d, 0x9c, 0x02, 0x8a,
+ 0x34, 0x74, 0x5c, 0x37, 0x9b, 0xe9, 0xf8, 0xd0, 0x8f, 0xa3, 0x74, 0x30,
+ 0xbb, 0x54, 0xe4, 0x61, 0x03, 0x78, 0xd2, 0x3c, 0x4f, 0x54, 0xa0, 0x82,
+ 0x3d, 0x19, 0xd2, 0x2e, 0xf7, 0x22, 0xcd, 0xef, 0x09, 0x32, 0xbe, 0xce,
+ 0x2a, 0xdf, 0x0c, 0x19, 0x2e, 0x6f, 0x16, 0xcc, 0xd9, 0x65, 0x87, 0x1c,
+ 0xf1, 0x9d, 0xec, 0xc4, 0x52, 0x42, 0xa1, 0x4d, 0xe8, 0x2e, 0x51, 0xd9,
+ 0x8e, 0x4a, 0x72, 0xa2, 0xcd, 0x36, 0xbd, 0x05, 0xb9, 0x1a, 0x2d, 0xf3,
+ 0xb8, 0x1e, 0x4e, 0xe3, 0x8b, 0x04, 0xdb, 0x08, 0x7a, 0xe8, 0x36, 0x52,
+ 0xed, 0x26, 0x07, 0xea, 0xfc, 0xf0, 0x2c, 0x7a, 0x8d, 0x52, 0xf2, 0x14,
+ 0x9e, 0x8c, 0x56, 0xe1, 0x36, 0x7f, 0xbe, 0xb3, 0xb9, 0xbd, 0xf4, 0x65,
+ 0xee, 0x7e, 0x6f, 0x59, 0xcb, 0xfe, 0xa5, 0x3f, 0xf5, 0xbc, 0x08, 0x15,
+ 0x19, 0x9f, 0xcf, 0xca, 0x5c, 0x3b, 0x38, 0xc0, 0xbc, 0x3f, 0xbe, 0x3b,
+ 0x7d, 0x75, 0x74, 0x72, 0xf0, 0x37, 0x03, 0x93, 0xdd, 0x77, 0x3b, 0x83,
+ 0xa7, 0x49, 0x75, 0xff, 0xb1, 0x4a, 0x61, 0x46, 0x35, 0x76, 0x07, 0x0f,
+ 0xb4, 0x07, 0xb7, 0x7d, 0xc1, 0x15, 0x5e, 0x9c, 0x2b, 0xbe, 0x17, 0xf4,
+ 0x0a, 0x61, 0xd7, 0x19, 0xd2, 0x7b, 0xa3, 0x07, 0x37, 0xbe, 0x14, 0x7f,
+ 0x71, 0xe7, 0x74, 0x7b, 0xda, 0x1c, 0xbc, 0xb5, 0x44, 0x5a, 0x1d, 0x89,
+ 0xa8, 0xf3, 0xa0, 0xb5, 0x10, 0xc3, 0x29, 0x43, 0x7f, 0x8a, 0x48, 0x57,
+ 0xac, 0x24, 0xbf, 0xb8, 0x68, 0x75, 0x87, 0x23, 0x5c, 0x1f, 0xaa, 0x31,
+ 0x7f, 0xca, 0xb6, 0x08, 0x2d, 0x17, 0xbb, 0x60, 0x6b, 0x52, 0x57, 0xd2,
+ 0x71, 0x9e, 0xd6, 0xb1, 0xac, 0x62, 0x1f, 0xfe, 0xfb, 0xd9, 0x4d, 0x32,
+ 0xf6, 0xd0, 0x6c, 0x93, 0xaa, 0x32, 0xa7, 0xd2, 0x5c, 0x20, 0xf8, 0xa6,
+ 0x39, 0xf3, 0x3d, 0x05, 0x0f, 0x4c, 0x47, 0xe6, 0x49, 0x10, 0x17, 0x7b,
+ 0xde, 0x1d, 0x71, 0xfe, 0xb7, 0xb3, 0xa3, 0xcf, 0xf6, 0xf1, 0xfa, 0xf9,
+ 0x1c, 0x01, 0x08, 0xaa, 0xc6, 0x6d, 0x44, 0x25, 0x35, 0xde, 0x8a, 0xbf,
+ 0x7b, 0x75, 0xdc, 0x3f, 0x3b, 0x39, 0x3d, 0xfc, 0x6c, 0xff, 0x3b, 0xf4,
+ 0x12, 0x80, 0xde, 0x72, 0xef, 0xbc, 0x6b, 0x7e, 0x16, 0x29, 0xd6, 0xb5,
+ 0x0f, 0xb9, 0x7e, 0xf4, 0xed, 0xc7, 0xa3, 0x77, 0xdf, 0x7c, 0xb6, 0x7f,
+ 0x93, 0x94, 0x5d, 0x5c, 0x1f, 0xbf, 0x8d, 0xd5, 0x7b, 0xf9, 0x4d, 0x56,
+ 0x16, 0x39, 0xba, 0xdc, 0x23, 0xf8, 0x65, 0x86, 0xe7, 0x64, 0x49, 0x8a,
+ 0xd7, 0xb2, 0xa6, 0x9b, 0x7a, 0x73, 0x63, 0x43, 0xc8, 0x32, 0x1f, 0x4c,
+ 0xb8, 0x46, 0xcb, 0x76, 0x30, 0xbe, 0xae, 0xb2, 0x9f, 0xd3, 0x08, 0xe6,
+ 0x33, 0x9e, 0xf9, 0xcd, 0x9d, 0xcf, 0x19, 0xfa, 0x1a, 0xa8, 0x8b, 0x7f,
+ 0x8b, 0xbe, 0x3c, 0xf9, 0x1a, 0xbb, 0x74, 0x9a, 0x70, 0x32, 0x35, 0x4d,
+ 0x02, 0x21, 0xfe, 0xf9, 0xee, 0xe6, 0xd6, 0x9a, 0x08, 0x7d, 0xc1, 0x0d,
+ 0x1c, 0x00, 0x09, 0xae, 0x3d, 0x2c, 0xaa, 0x9f, 0x05, 0x9a, 0xa4, 0x0d,
+ 0xbe, 0x69, 0x3b, 0x0a, 0x68, 0xf8, 0x8b, 0x6a, 0xb3, 0xa9, 0x20, 0x0e,
+ 0x7e, 0x0b, 0xc7, 0x04, 0x8b, 0x96, 0xbd, 0xd0, 0x1f, 0x4d, 0x4a, 0xbd,
+ 0xe3, 0x0e, 0xe8, 0x18, 0x4c, 0x47, 0xc2, 0x87, 0x0b, 0x55, 0xaf, 0xdf,
+ 0x59, 0x95, 0x6b, 0x10, 0x7c, 0x73, 0x63, 0x6b, 0x27, 0xaa, 0xc3, 0xad,
+ 0x9f, 0xda, 0x9b, 0x04, 0x1a, 0x91, 0x30, 0x72, 0x78, 0x7f, 0x9c, 0x64,
+ 0x76, 0x82, 0x33, 0x29, 0xb8, 0xcb, 0x19, 0x51, 0x47, 0x4f, 0x80, 0xc2,
+ 0x32, 0x2f, 0x56, 0x95, 0x26, 0x88, 0x0d, 0x8a, 0x90, 0x10, 0x1c, 0x3b,
+ 0x72, 0x22, 0x43, 0xe3, 0xf4, 0x12, 0x9d, 0xe3, 0xa6, 0x29, 0xae, 0x69,
+ 0x96, 0x11, 0x52, 0x12, 0x92, 0x21, 0x3a, 0x50, 0x08, 0x38, 0x92, 0xcb,
+ 0x29, 0x19, 0xf8, 0x1e, 0x24, 0x8d, 0x09, 0x2b, 0x35, 0x66, 0x27, 0xe8,
+ 0x68, 0xf3, 0x41, 0x24, 0x75, 0x6b, 0x5a, 0x44, 0x74, 0x4c, 0xc8, 0xa7,
+ 0xec, 0x85, 0xa5, 0xab, 0xee, 0xc4, 0xe6, 0xcb, 0xad, 0xde, 0xe6, 0xb3,
+ 0x17, 0x88, 0xcc, 0xb9, 0xa8, 0x3e, 0x7a, 0xe7, 0x45, 0xe3, 0xd6, 0xf8,
+ 0x99, 0xe4, 0x17, 0xb6, 0x8f, 0xa1, 0x38, 0xf5, 0x3e, 0xfe, 0x75, 0x6e,
+ 0x9f, 0x74, 0xf6, 0x08, 0x53, 0xb4, 0x83, 0xcd, 0x20, 0x22, 0xa4, 0xa9,
+ 0x71, 0x9f, 0x14, 0x23, 0x56, 0x45, 0xb1, 0xfd, 0x83, 0xc5, 0xcd, 0x99,
+ 0xd3, 0xe8, 0x89, 0xf3, 0x0e, 0x48, 0xaf, 0x85, 0xc7, 0x49, 0x0b, 0x41,
+ 0x2e, 0x9d, 0x33, 0xa4, 0xc1, 0x30, 0xf2, 0x53, 0x6a, 0x08, 0x35, 0x07,
+ 0x13, 0x58, 0xf7, 0x71, 0x20, 0xbc, 0x1b, 0x50, 0xf3, 0x00, 0xd2, 0x7c,
+ 0xae, 0x49, 0x3a, 0x89, 0x69, 0x03, 0xc1, 0x20, 0x87, 0xa9, 0x74, 0x11,
+ 0xa8, 0x02, 0x5d, 0x55, 0x30, 0x91, 0x35, 0x73, 0x5b, 0xa9, 0x70, 0xb6,
+ 0x30, 0xea, 0x47, 0xa6, 0x21, 0x2e, 0xcc, 0xb3, 0x52, 0x73, 0x0f, 0x91,
+ 0x82, 0xc8, 0xdd, 0xc6, 0x24, 0x09, 0xe6, 0x13, 0x52, 0x34, 0x9c, 0xf0,
+ 0x4a, 0xa4, 0x8d, 0x32, 0xb5, 0x00, 0xa1, 0xa5, 0x89, 0x07, 0x96, 0x26,
+ 0xb5, 0x3a, 0xc1, 0xb5, 0x48, 0x0b, 0xf9, 0xb0, 0x3d, 0x6b, 0x4c, 0x53,
+ 0x36, 0xee, 0xcd, 0xa5, 0x0d, 0x83, 0xe2, 0x10, 0x78, 0x61, 0xc3, 0x7d,
+ 0x4d, 0x37, 0x34, 0x7b, 0x7a, 0x5b, 0x24, 0xf1, 0x34, 0xc5, 0x3a, 0x58,
+ 0x56, 0xdd, 0x47, 0xc7, 0x88, 0xd6, 0xf5, 0xba, 0xef, 0x2b, 0x8c, 0xd8,
+ 0x08, 0x5b, 0xd2, 0xac, 0xc6, 0x6b, 0x06, 0xda, 0x99, 0x10, 0x55, 0x98,
+ 0x37, 0x02, 0x1d, 0x17, 0x22, 0xd3, 0x00, 0xda, 0x34, 0x1d, 0xe2, 0x70,
+ 0xad, 0xa4, 0xb9, 0xa4, 0xc2, 0x14, 0xf8, 0xb5, 0x75, 0x86, 0x46, 0x52,
+ 0x79, 0x88, 0x46, 0xb6, 0xd7, 0x85, 0xa0, 0x35, 0x56, 0x9e, 0xde, 0xba,
+ 0x63, 0x59, 0x9b, 0xc8, 0x8c, 0xf7, 0x47, 0xf7, 0x82, 0xfd, 0x39, 0xea,
+ 0x7c, 0x0b, 0xc3, 0x6f, 0x6c, 0xc2, 0xbe, 0x4d, 0xa3, 0xad, 0x8d, 0xad,
+ 0xcd, 0x68, 0x73, 0x6b, 0x6f, 0xf3, 0xc5, 0xde, 0xc6, 0xc6, 0x12, 0x38,
+ 0xfb, 0x30, 0x4a, 0xfc, 0xab, 0x0c, 0x43, 0x87, 0x77, 0x71, 0x68, 0xb9,
+ 0x1e, 0x57, 0x88, 0x22, 0x13, 0xed, 0x7f, 0x73, 0xf4, 0xbe, 0x7f, 0x7c,
+ 0xfa, 0xee, 0xf3, 0xa0, 0xd7, 0x4d, 0x7e, 0x89, 0xbb, 0x95, 0xc1, 0xa1,
+ 0x30, 0xf0, 0x56, 0x36, 0x94, 0x8b, 0x2e, 0x7a, 0x75, 0x15, 0xd3, 0x29,
+ 0x05, 0x15, 0x05, 0x1f, 0x69, 0xb3, 0xc8, 0x70, 0x98, 0x4e, 0x6b, 0x06,
+ 0xc1, 0x91, 0xc7, 0x4d, 0x52, 0x12, 0xc5, 0xd6, 0x22, 0xf6, 0xfc, 0x6c,
+ 0x74, 0xf5, 0x6f, 0x9b, 0xe6, 0x6f, 0x5b, 0xfe, 0x29, 0xe6, 0x5f, 0x6c,
+ 0xcf, 0x43, 0x25, 0x71, 0xdd, 0xfe, 0x15, 0x23, 0x9b, 0x69, 0xdf, 0x25,
+ 0x98, 0x6f, 0xb7, 0xc1, 0x1a, 0x8c, 0xa2, 0x87, 0x8d, 0x49, 0xd3, 0x0b,
+ 0xaf, 0xe2, 0x19, 0x9b, 0x99, 0x8a, 0xee, 0xc0, 0x06, 0x48, 0x15, 0xfd,
+ 0xf5, 0xc3, 0xf1, 0x61, 0xcc, 0x91, 0x40, 0x12, 0x9c, 0xeb, 0x70, 0x26,
+ 0x4d, 0x62, 0x8c, 0x37, 0xa1, 0x70, 0x3a, 0xbd, 0x93, 0x3c, 0x3a, 0x9b,
+ 0x32, 0x94, 0x12, 0x62, 0xf9, 0x33, 0xc4, 0xb0, 0x4b, 0xd1, 0xf6, 0x70,
+ 0x98, 0xb3, 0xd1, 0x78, 0x11, 0x1e, 0xbe, 0xd9, 0x74, 0xa0, 0x1b, 0xcc,
+ 0x73, 0x9b, 0xa1, 0xe7, 0x36, 0xfd, 0xe7, 0xb6, 0x42, 0xcf, 0x6d, 0xf9,
+ 0xcf, 0x6d, 0x87, 0x9e, 0x73, 0x36, 0xc0, 0x3f, 0x20, 0x7a, 0x9d, 0x09,
+ 0xa3, 0xe1, 0xa7, 0x16, 0xb1, 0xb0, 0xf7, 0xf8, 0xb6, 0x75, 0x07, 0x2e,
+ 0xe4, 0xe5, 0x86, 0x1b, 0xd4, 0x70, 0x91, 0x71, 0x2c, 0x76, 0x9d, 0x61,
+ 0x5c, 0x1f, 0xe3, 0x76, 0xcf, 0xf9, 0x9a, 0x53, 0x9e, 0xda, 0x72, 0x92,
+ 0x2e, 0xe7, 0x16, 0x95, 0x9b, 0xd8, 0x69, 0x08, 0x18, 0x30, 0x41, 0xc7,
+ 0xd5, 0xe6, 0x76, 0x3c, 0xcc, 0xa6, 0x57, 0xa8, 0xac, 0xec, 0xcb, 0x5f,
+ 0x66, 0xd8, 0x28, 0x13, 0x43, 0x74, 0xbe, 0xa2, 0x7b, 0xd2, 0x07, 0x33,
+ 0xcd, 0x76, 0x25, 0x91, 0xf6, 0x83, 0xf4, 0x5a, 0x44, 0xef, 0x55, 0xb6,
+ 0x27, 0x89, 0x1f, 0x93, 0xf5, 0xc0, 0x15, 0x4c, 0x69, 0x15, 0xbc, 0x87,
+ 0xbc, 0x46, 0xa4, 0x38, 0xbf, 0xe2, 0xaf, 0x53, 0x73, 0x72, 0x99, 0x9a,
+ 0x8c, 0xcd, 0xfd, 0x47, 0x35, 0x03, 0xb6, 0x1d, 0x76, 0x4b, 0xc6, 0x88,
+ 0xdb, 0x23, 0xaf, 0x68, 0xdf, 0x2a, 0xe0, 0x11, 0xf8, 0xb6, 0x0c, 0xde,
+ 0x98, 0xaa, 0xb1, 0x29, 0x8b, 0xa0, 0x4e, 0xf5, 0xe1, 0xfd, 0x89, 0x67,
+ 0x0c, 0x99, 0xcd, 0x47, 0xda, 0xf7, 0xaa, 0x74, 0x1d, 0xee, 0x87, 0x6a,
+ 0x9d, 0xc2, 0x70, 0xf2, 0xd5, 0xab, 0x7a, 0x32, 0x7e, 0xc0, 0xcd, 0x26,
+ 0xad, 0x32, 0xb9, 0x75, 0xdb, 0x88, 0xf3, 0x51, 0x2c, 0xac, 0x1c, 0x49,
+ 0x22, 0xde, 0x51, 0xad, 0xbd, 0x69, 0x0d, 0x87, 0x5e, 0x00, 0xcc, 0x10,
+ 0xc0, 0x33, 0xb4, 0x89, 0xba, 0x0c, 0xe9, 0x40, 0x06, 0x61, 0x36, 0xa1,
+ 0x9e, 0xb1, 0x9c, 0x7c, 0x6c, 0x7b, 0x54, 0xe0, 0x0b, 0x08, 0xef, 0x95,
+ 0x7a, 0xc9, 0x04, 0xa6, 0x19, 0x45, 0x49, 0x7d, 0xd7, 0xc9, 0x1d, 0x19,
+ 0x22, 0x57, 0xe5, 0xa6, 0x1d, 0x50, 0x42, 0x1c, 0x2f, 0x39, 0xa8, 0x8a,
+ 0xfe, 0xe1, 0x46, 0x44, 0x83, 0xb1, 0x61, 0x39, 0x1f, 0x0f, 0x8e, 0xfa,
+ 0x1f, 0x37, 0xb7, 0x5e, 0x7c, 0xfc, 0xea, 0xf0, 0xed, 0xc7, 0xfe, 0x9b,
+ 0x83, 0xad, 0xdd, 0x67, 0xbf, 0xd0, 0xbb, 0x08, 0x9f, 0xc0, 0x9c, 0x1a,
+ 0xc2, 0x94, 0xd8, 0xc7, 0x3f, 0x3f, 0xf7, 0xd1, 0xfa, 0x22, 0xa2, 0xa4,
+ 0x57, 0x48, 0x84, 0x36, 0x33, 0x42, 0x9d, 0x30, 0x1b, 0xf0, 0xb2, 0x5b,
+ 0x69, 0x49, 0x73, 0xf2, 0x97, 0x88, 0x3b, 0x3a, 0xfd, 0xf7, 0x67, 0x9d,
+ 0xae, 0xd4, 0xa4, 0xc1, 0x07, 0x62, 0xf8, 0x77, 0x44, 0x7e, 0xa1, 0x28,
+ 0xda, 0xdd, 0xd8, 0xdd, 0x91, 0xfa, 0x1b, 0x9e, 0x23, 0x83, 0x43, 0xf9,
+ 0x39, 0x24, 0xf4, 0x4b, 0x53, 0xea, 0x44, 0x5c, 0xe3, 0xe0, 0x6d, 0xa1,
+ 0xfb, 0xb5, 0xb1, 0x42, 0xce, 0xb9, 0xeb, 0xda, 0x6e, 0xdb, 0x61, 0x0b,
+ 0xc4, 0x34, 0x93, 0x03, 0xd6, 0xa5, 0x69, 0xf6, 0x5a, 0xe1, 0xe3, 0xa2,
+ 0xbc, 0x96, 0x14, 0x2c, 0xc5, 0xdd, 0x24, 0xa1, 0xd6, 0x5e, 0x2c, 0x0b,
+ 0x39, 0x23, 0xe5, 0xdc, 0x43, 0xc1, 0x30, 0x70, 0xba, 0x6c, 0xa1, 0x98,
+ 0x36, 0xd7, 0xd2, 0xc0, 0xd2, 0x9c, 0x23, 0x03, 0x04, 0xfb, 0x2a, 0x9f,
+ 0xe1, 0x9e, 0xd0, 0x28, 0xad, 0x41, 0x9e, 0xc0, 0x64, 0x86, 0x3e, 0x38,
+ 0xcc, 0x83, 0x5a, 0x8e, 0x21, 0xf7, 0x3e, 0x1b, 0x05, 0x21, 0x8e, 0x31,
+ 0xcf, 0xe0, 0xee, 0x92, 0xbd, 0xaf, 0xdd, 0x01, 0x71, 0xda, 0xed, 0x2c,
+ 0x2e, 0xd3, 0xaa, 0x6c, 0x1e, 0x48, 0x8a, 0x22, 0x15, 0x3b, 0x73, 0xed,
+ 0x69, 0xb2, 0x8d, 0xdc, 0x2c, 0x96, 0x4d, 0xe8, 0xe6, 0x42, 0x4f, 0x7f,
+ 0xba, 0x38, 0x82, 0x14, 0x48, 0x85, 0x57, 0xe9, 0xbd, 0x3c, 0x09, 0xcd,
+ 0x82, 0xa7, 0xb7, 0x23, 0x67, 0x2e, 0xf4, 0xc7, 0x83, 0x14, 0xa5, 0xa7,
+ 0x82, 0x75, 0xb0, 0x74, 0xfa, 0xb4, 0xa6, 0x2f, 0x7a, 0x14, 0x35, 0x85,
+ 0x98, 0x4f, 0xa4, 0xa5, 0x98, 0xfa, 0xed, 0x73, 0x45, 0xca, 0x80, 0x77,
+ 0x5c, 0xfe, 0xe7, 0x50, 0x18, 0x55, 0x98, 0xb0, 0x1a, 0xf0, 0x1a, 0xcb,
+ 0x26, 0x9b, 0xe8, 0x00, 0x8e, 0xbe, 0x48, 0xfa, 0xa1, 0x5e, 0x4e, 0x0f,
+ 0xa2, 0x02, 0x50, 0xb2, 0x8c, 0x34, 0x8e, 0xc5, 0x41, 0xc4, 0x5b, 0xf5,
+ 0x89, 0x0f, 0x0a, 0x8e, 0x61, 0x34, 0xf9, 0x04, 0xd9, 0xd8, 0xfc, 0xf9,
+ 0x46, 0x08, 0x18, 0x75, 0x22, 0x63, 0xb9, 0x11, 0x66, 0x6f, 0x11, 0x71,
+ 0xf1, 0x72, 0x6b, 0xb8, 0x8f, 0x28, 0x88, 0x3e, 0x8a, 0x90, 0x26, 0x55,
+ 0x0d, 0x05, 0x9f, 0x49, 0xd6, 0xc4, 0x71, 0x40, 0xd7, 0xc6, 0xa8, 0x7a,
+ 0x85, 0x80, 0x52, 0x0f, 0x21, 0xfd, 0xe1, 0x30, 0x20, 0xb1, 0x30, 0x31,
+ 0x54, 0xa3, 0x74, 0xaa, 0xd4, 0xb5, 0xfa, 0x4d, 0xa1, 0xa5, 0x91, 0x18,
+ 0x0b, 0x46, 0xa8, 0xe6, 0x63, 0xd2, 0x3f, 0xc1, 0x99, 0xcc, 0x1b, 0xb6,
+ 0xe4, 0xd5, 0xb6, 0xed, 0xab, 0x85, 0xa8, 0xae, 0x3e, 0x71, 0xdb, 0x37,
+ 0xff, 0x87, 0x6d, 0xfb, 0xe6, 0xff, 0x2d, 0xdb, 0xbe, 0xf9, 0xab, 0x6c,
+ 0xfb, 0xd6, 0x13, 0xb7, 0x7d, 0xeb, 0x7f, 0xd8, 0xb6, 0x6f, 0xfd, 0xdf,
+ 0xb2, 0xed, 0x5b, 0xbf, 0xca, 0xb6, 0x6f, 0x3f, 0x71, 0xdb, 0xb7, 0x7f,
+ 0xfd, 0x6d, 0xff, 0x57, 0x73, 0x9c, 0x50, 0x9f, 0x36, 0xba, 0xdd, 0xd5,
+ 0x2e, 0xca, 0x1a, 0xe9, 0xc4, 0x5c, 0x82, 0x80, 0x9e, 0x5f, 0xfc, 0xbd,
+ 0x58, 0x59, 0xd5, 0xd3, 0x36, 0x73, 0xfb, 0x97, 0x35, 0x81, 0xb0, 0x2e,
+ 0x86, 0xa0, 0x0f, 0x2d, 0xd4, 0xae, 0x1c, 0xb3, 0x41, 0xd1, 0xe4, 0x6a,
+ 0x6e, 0xeb, 0x1d, 0xef, 0xa6, 0xda, 0xe7, 0xa1, 0xed, 0x14, 0xff, 0xac,
+ 0xbf, 0xa1, 0x92, 0x02, 0xca, 0x08, 0xe2, 0x7c, 0xdc, 0x8c, 0x9f, 0x8d,
+ 0xbc, 0x46, 0x9e, 0x0f, 0xed, 0x2a, 0xbb, 0xc4, 0x1e, 0x1b, 0x4f, 0x20,
+ 0xd8, 0xaf, 0x95, 0x9c, 0xe6, 0xe4, 0x82, 0xfd, 0x31, 0xc9, 0x69, 0xe1,
+ 0xe4, 0xb3, 0x96, 0x9b, 0xc8, 0x3d, 0xb5, 0x65, 0x9c, 0x82, 0xb4, 0x1a,
+ 0xf9, 0xb5, 0x7e, 0xd2, 0xa2, 0xdc, 0xc6, 0x4f, 0x10, 0x24, 0x83, 0x9a,
+ 0xd6, 0x8d, 0x18, 0xe7, 0x1d, 0x93, 0x82, 0x8f, 0xe4, 0x5d, 0x9b, 0x94,
+ 0xc2, 0xc7, 0xc1, 0xc7, 0x48, 0x17, 0x94, 0x1c, 0x03, 0x09, 0xae, 0x70,
+ 0xaa, 0x52, 0x61, 0xd2, 0x95, 0xfa, 0x0f, 0xfd, 0x88, 0x14, 0x05, 0x12,
+ 0x46, 0x27, 0xf5, 0x40, 0x08, 0xf6, 0x01, 0xa2, 0xcc, 0xc7, 0xe5, 0x0d,
+ 0x2e, 0xbb, 0xe6, 0x87, 0x14, 0x57, 0x4c, 0x37, 0x89, 0x93, 0x6a, 0x98,
+ 0x65, 0xe1, 0xe8, 0x86, 0x26, 0x6b, 0x25, 0xd4, 0xac, 0x28, 0xa2, 0xe7,
+ 0x23, 0x4c, 0xf6, 0xc0, 0xf5, 0xe2, 0x51, 0xc6, 0xab, 0x80, 0xf0, 0xdf,
+ 0x71, 0x79, 0x20, 0x74, 0x2e, 0x0b, 0x0d, 0xb5, 0x76, 0x03, 0xbd, 0x97,
+ 0x50, 0xae, 0x70, 0xab, 0x6e, 0xee, 0x5e, 0x86, 0x05, 0x44, 0x59, 0x8e,
+ 0x89, 0xd2, 0x52, 0xb2, 0x24, 0x41, 0x78, 0x8e, 0x3d, 0xb4, 0xba, 0x66,
+ 0x7d, 0xf0, 0x5c, 0x3c, 0x9d, 0xb8, 0x83, 0x71, 0x1e, 0xfc, 0x3d, 0x99,
+ 0x2f, 0xd8, 0x56, 0x2c, 0x91, 0x9a, 0x7d, 0x79, 0x59, 0x51, 0xcc, 0x17,
+ 0x25, 0xfc, 0x61, 0xd9, 0x28, 0x77, 0x6b, 0xc6, 0x27, 0x4d, 0x12, 0x0e,
+ 0x5e, 0x7b, 0x70, 0xe6, 0xa5, 0x23, 0x18, 0x03, 0x01, 0xa4, 0x77, 0x8c,
+ 0x15, 0x45, 0xab, 0xcd, 0xbd, 0xd4, 0x52, 0x4c, 0x17, 0xe2, 0xad, 0x3d,
+ 0xe8, 0x1f, 0x1e, 0x1f, 0x37, 0x70, 0xa5, 0x90, 0x6a, 0xdc, 0x81, 0x95,
+ 0x20, 0x5c, 0x2b, 0xec, 0xfb, 0x98, 0x96, 0xb6, 0xb1, 0x56, 0x20, 0x90,
+ 0x36, 0x81, 0xf3, 0x4e, 0x21, 0x71, 0x90, 0x3c, 0x19, 0x77, 0x31, 0xa0,
+ 0x36, 0x6f, 0x64, 0xa5, 0xe5, 0x30, 0xcd, 0x0c, 0x7b, 0x2d, 0x5c, 0xcd,
+ 0x26, 0x49, 0x5e, 0xfd, 0x3f, 0x97, 0xcb, 0xe8, 0xf2, 0xee, 0xb8, 0xb8,
+ 0x7c, 0x6c, 0x36, 0x63, 0x18, 0x13, 0x45, 0x86, 0x63, 0x39, 0xe2, 0xa6,
+ 0x65, 0xf5, 0xbc, 0xd3, 0x82, 0xeb, 0xf0, 0xba, 0x22, 0x93, 0x0e, 0x54,
+ 0x49, 0xff, 0x07, 0xcc, 0xda, 0x9a, 0x90, 0xcf, 0x9d, 0x7a, 0x03, 0xf1,
+ 0xc8, 0x40, 0x55, 0xcd, 0xf4, 0xe2, 0x3e, 0xf4, 0x62, 0x08, 0x07, 0x8a,
+ 0xdc, 0x24, 0xef, 0xe3, 0x5f, 0x1f, 0x5b, 0xd9, 0x12, 0xa4, 0xb5, 0x1f,
+ 0xc2, 0xd3, 0x8f, 0x10, 0x3e, 0xbf, 0xab, 0xd8, 0x69, 0xc8, 0x9d, 0x87,
+ 0x05, 0x0f, 0xcb, 0x9d, 0x5f, 0x43, 0xec, 0x08, 0xea, 0x48, 0xe7, 0xcf,
+ 0x1d, 0xc4, 0xfe, 0xf0, 0x7c, 0x26, 0x8f, 0x1a, 0x07, 0x58, 0xf5, 0xff,
+ 0xcd, 0x33, 0xfe, 0x2b, 0x9c, 0x6e, 0x3f, 0x71, 0xd9, 0x65, 0x57, 0xf7,
+ 0x8c, 0xcf, 0xf2, 0xec, 0x2e, 0x16, 0x20, 0xe4, 0xfd, 0x69, 0x52, 0x5f,
+ 0x7d, 0x1e, 0x56, 0x1b, 0x0e, 0x59, 0xed, 0x8e, 0x14, 0x99, 0x83, 0xa8,
+ 0xf2, 0x01, 0x5e, 0x06, 0xca, 0x4f, 0x30, 0xff, 0x9c, 0xc7, 0xe8, 0xba,
+ 0x4d, 0xe7, 0x49, 0x75, 0x08, 0xe4, 0xaf, 0xe7, 0x69, 0x8d, 0xfe, 0xab,
+ 0x65, 0x89, 0xe3, 0x4e, 0x95, 0xff, 0x13, 0xe3, 0x84, 0x97, 0xcd, 0x59,
+ 0x6c, 0x56, 0x7a, 0x9d, 0x53, 0xfb, 0x88, 0x29, 0x62, 0x1d, 0xc4, 0x14,
+ 0x93, 0x0e, 0x9e, 0x4f, 0x56, 0xd7, 0x9c, 0x2e, 0x9f, 0x2d, 0x3c, 0x1d,
+ 0xcc, 0x58, 0x1b, 0x4b, 0x42, 0x4a, 0x21, 0xb5, 0x6d, 0xa4, 0xfe, 0x7e,
+ 0x78, 0x7f, 0x12, 0x4e, 0xe2, 0x2f, 0xc5, 0x77, 0xce, 0x2f, 0xd1, 0xbd,
+ 0x99, 0xb5, 0x73, 0x07, 0xe0, 0x65, 0xb7, 0xdf, 0x49, 0x32, 0x45, 0xa1,
+ 0x1b, 0xd0, 0x3c, 0x9d, 0xaf, 0x13, 0x88, 0x5c, 0xf4, 0xee, 0xf4, 0xfc,
+ 0x88, 0xc5, 0x2d, 0xda, 0x9b, 0x14, 0x1c, 0xe3, 0xda, 0x6a, 0xbc, 0x42,
+ 0xa9, 0xd7, 0xea, 0xba, 0x26, 0x63, 0x8e, 0xfd, 0x82, 0x7e, 0xae, 0x57,
+ 0x28, 0x38, 0xb5, 0x0c, 0xb1, 0xee, 0xc6, 0x54, 0xed, 0x7e, 0x43, 0x6b,
+ 0x3b, 0x64, 0x4b, 0x9b, 0x35, 0xe0, 0xe6, 0x22, 0xd8, 0xa3, 0xea, 0x29,
+ 0xf1, 0x4e, 0xb6, 0xda, 0x55, 0x96, 0x5f, 0x9b, 0x79, 0x95, 0x7c, 0x64,
+ 0xec, 0xd7, 0xb4, 0xa2, 0xc1, 0x21, 0xdf, 0x85, 0xaf, 0x28, 0xaa, 0xe4,
+ 0x80, 0x05, 0x89, 0x45, 0xc1, 0xbd, 0xd7, 0x10, 0xb2, 0x68, 0x9c, 0x5d,
+ 0xa7, 0xe3, 0x7b, 0x29, 0xe1, 0xa7, 0xc8, 0x28, 0x6d, 0x6c, 0x84, 0xe9,
+ 0x53, 0x0a, 0xd6, 0xe6, 0xf5, 0x96, 0xcb, 0xc6, 0x3d, 0x17, 0xec, 0x41,
+ 0x82, 0x6f, 0x0a, 0x80, 0xb3, 0x0a, 0xd6, 0x2e, 0xdb, 0x2f, 0x7c, 0xcc,
+ 0xcf, 0x3e, 0x9c, 0x9b, 0xa6, 0xf6, 0xf3, 0x1b, 0x9e, 0x07, 0xd1, 0xe1,
+ 0x9b, 0xa5, 0x1b, 0x28, 0x54, 0x57, 0x4d, 0x7b, 0x2e, 0xcc, 0x66, 0x59,
+ 0x53, 0xdb, 0x0b, 0x84, 0x1f, 0xf0, 0x82, 0x73, 0x90, 0xbc, 0xfc, 0x13,
+ 0x49, 0x60, 0x12, 0x45, 0x31, 0x3a, 0x18, 0x53, 0x5a, 0x50, 0x9d, 0x62,
+ 0xd4, 0xa8, 0xfd, 0x9d, 0x9e, 0xfb, 0x1d, 0xc6, 0xf8, 0x58, 0x0b, 0x34,
+ 0x27, 0x6d, 0xc8, 0x4b, 0xe7, 0xdb, 0x38, 0x4f, 0x05, 0xfb, 0x93, 0x99,
+ 0x11, 0xac, 0x3d, 0x96, 0x30, 0x52, 0x9a, 0xa2, 0x7f, 0xc6, 0x09, 0x1d,
+ 0xd3, 0xfa, 0x5b, 0xa8, 0x4b, 0x1a, 0xdf, 0x47, 0x52, 0xda, 0x28, 0xc2,
+ 0x9e, 0x7b, 0xa1, 0xc9, 0x6a, 0x31, 0xdd, 0x8a, 0xdb, 0x5b, 0x79, 0x41,
+ 0x1f, 0xd8, 0xc2, 0x00, 0x49, 0xff, 0xd6, 0x02, 0x62, 0x42, 0xd9, 0xeb,
+ 0x1f, 0x67, 0x95, 0xfc, 0x78, 0x98, 0xa8, 0xaf, 0x26, 0x9d, 0x5c, 0xd8,
+ 0xc1, 0xd8, 0xa3, 0x41, 0x3e, 0x62, 0x4d, 0x05, 0x28, 0x7a, 0x84, 0x6f,
+ 0xf8, 0x83, 0xfd, 0x85, 0x46, 0x99, 0x26, 0x59, 0x69, 0x68, 0x85, 0xc1,
+ 0x6e, 0x3c, 0x0c, 0x6d, 0xbe, 0x12, 0xce, 0xa3, 0xbc, 0xab, 0x82, 0xd1,
+ 0x20, 0x7b, 0xd2, 0x5a, 0x18, 0x2d, 0x4e, 0x53, 0x88, 0xdf, 0xc1, 0x3b,
+ 0x6c, 0x00, 0x0b, 0xef, 0x90, 0x49, 0xc5, 0xd3, 0x83, 0x2f, 0x7b, 0x61,
+ 0x39, 0x77, 0x1e, 0x51, 0x52, 0x5e, 0x92, 0x5f, 0xab, 0xcb, 0xe6, 0x34,
+ 0x03, 0xe8, 0x92, 0x7a, 0xa5, 0x61, 0x5b, 0xf9, 0xbe, 0xf6, 0x28, 0x0f,
+ 0x5c, 0xc1, 0x52, 0x8a, 0x2a, 0x8c, 0x81, 0x0b, 0x6b, 0x04, 0x72, 0x09,
+ 0x23, 0x0a, 0x7f, 0xaa, 0x13, 0xe4, 0x02, 0x15, 0xaa, 0x46, 0x8d, 0x03,
+ 0x20, 0x5e, 0x2c, 0x5f, 0xf1, 0x4d, 0x94, 0x79, 0xe1, 0x06, 0x5d, 0x3c,
+ 0x29, 0x03, 0xf7, 0x9b, 0x53, 0x49, 0xad, 0x30, 0xc5, 0x9e, 0x73, 0x60,
+ 0x39, 0x6f, 0x2a, 0x99, 0x8f, 0x02, 0xc8, 0xf7, 0x3b, 0x46, 0x36, 0x77,
+ 0xb7, 0xb7, 0xb6, 0x22, 0xd6, 0x6b, 0x18, 0xa1, 0x86, 0x53, 0xf7, 0x10,
+ 0xbe, 0x31, 0x4d, 0xa8, 0x4a, 0x94, 0x6f, 0x1c, 0xec, 0x79, 0x93, 0x70,
+ 0x28, 0x1b, 0xe8, 0x3c, 0xa7, 0xa6, 0x86, 0xb6, 0x8b, 0x7a, 0xdf, 0xc0,
+ 0x49, 0x2e, 0x46, 0xf7, 0x76, 0x60, 0xe0, 0x98, 0x12, 0xe5, 0x14, 0x48,
+ 0x17, 0x81, 0x95, 0xe0, 0xc8, 0x58, 0x15, 0x05, 0x41, 0x1b, 0xa4, 0x61,
+ 0x2f, 0x5d, 0x18, 0xd4, 0xf6, 0x2c, 0x47, 0x36, 0xcc, 0xe9, 0xaf, 0xd8,
+ 0x49, 0x64, 0x56, 0x52, 0x2b, 0x9f, 0x8c, 0x7b, 0x8f, 0xdf, 0x26, 0xf7,
+ 0xcb, 0x66, 0x73, 0x9d, 0xcf, 0x4f, 0xa0, 0x9a, 0xf3, 0x7c, 0x27, 0x9b,
+ 0x5c, 0x7e, 0xbf, 0x19, 0x6f, 0x6e, 0x6c, 0x6c, 0xfc, 0xd8, 0x9b, 0x22,
+ 0xbf, 0x71, 0xd2, 0x26, 0xfc, 0xd9, 0x6b, 0xe4, 0x38, 0xcf, 0xb9, 0x7c,
+ 0x1d, 0xf6, 0xeb, 0xfc, 0x03, 0xff, 0xb3, 0xd9, 0xc5, 0x3f, 0xb7, 0xfe,
+ 0xd9, 0x79, 0x40, 0xed, 0xc5, 0xf7, 0xf7, 0xe1, 0x0f, 0x2f, 0x12, 0x67,
+ 0xf0, 0xca, 0x90, 0xcb, 0x68, 0xc3, 0xea, 0xe1, 0x95, 0x57, 0xfc, 0x42,
+ 0x92, 0x1d, 0x1b, 0x76, 0x5e, 0xc1, 0xe6, 0x98, 0x8e, 0xa3, 0x7e, 0x83,
+ 0x65, 0xe3, 0x55, 0x95, 0x61, 0x61, 0xd0, 0xd5, 0x6a, 0x8d, 0xeb, 0x85,
+ 0x87, 0x45, 0x7e, 0x91, 0x5d, 0xb2, 0xb8, 0x0c, 0x68, 0x78, 0x8e, 0x26,
+ 0x8c, 0x53, 0xc1, 0x8a, 0x1b, 0xae, 0x69, 0xc7, 0xe3, 0x31, 0xbc, 0x4a,
+ 0x27, 0x22, 0x4a, 0x57, 0xb5, 0x90, 0xa5, 0x83, 0x2b, 0x86, 0x05, 0x77,
+ 0xfc, 0xdb, 0xae, 0x73, 0x21, 0xbf, 0x81, 0xc5, 0x68, 0xdb, 0x5d, 0x73,
+ 0x01, 0x52, 0x9e, 0x62, 0x12, 0x5d, 0xce, 0xd0, 0x21, 0x32, 0x48, 0xe4,
+ 0xa6, 0x51, 0xc4, 0x3d, 0x0a, 0xcf, 0x87, 0xe0, 0x16, 0x41, 0x5c, 0xa6,
+ 0x25, 0x5d, 0x70, 0x70, 0xf8, 0x06, 0xb1, 0x28, 0x5c, 0x72, 0xdf, 0x52,
+ 0x72, 0x28, 0x1c, 0xe6, 0x57, 0xc7, 0x87, 0x20, 0xaf, 0x5e, 0x9f, 0x9f,
+ 0x75, 0xa9, 0x64, 0xbd, 0x4b, 0x40, 0x63, 0x6d, 0x31, 0x42, 0x75, 0xec,
+ 0x88, 0x6c, 0x82, 0xe7, 0x4e, 0x62, 0xf6, 0x89, 0x4d, 0xfe, 0xb7, 0xf0,
+ 0x4c, 0x0a, 0xe5, 0x44, 0x2d, 0xa7, 0x6e, 0xb3, 0x4a, 0xba, 0x0b, 0x87,
+ 0x18, 0x5d, 0xaf, 0x3c, 0x03, 0x54, 0xb7, 0xb3, 0xdb, 0xdb, 0xe0, 0x35,
+ 0x22, 0x09, 0x25, 0x01, 0x56, 0x40, 0x31, 0xc8, 0x25, 0xaa, 0xe9, 0x24,
+ 0x49, 0x38, 0x13, 0xcd, 0x4c, 0xa7, 0x1b, 0x71, 0x8b, 0x4f, 0xfa, 0x77,
+ 0xac, 0xbf, 0x75, 0xca, 0x3e, 0x16, 0xda, 0x07, 0x6e, 0x1b, 0x2d, 0x3c,
+ 0x65, 0xad, 0xae, 0x8a, 0xd4, 0x34, 0x33, 0x52, 0xe4, 0x28, 0x01, 0xec,
+ 0x0d, 0x75, 0xbd, 0x24, 0x9e, 0x40, 0xa6, 0x90, 0x72, 0xca, 0xae, 0xe9,
+ 0xee, 0x1a, 0x17, 0x78, 0x41, 0xc8, 0x65, 0x26, 0x18, 0x00, 0xf1, 0x69,
+ 0x97, 0x9a, 0xb2, 0xa1, 0xfa, 0x12, 0xcc, 0xc4, 0xd5, 0xa4, 0xed, 0xb9,
+ 0x90, 0x40, 0xa7, 0xb9, 0x62, 0xcc, 0x74, 0xb9, 0xe3, 0xfa, 0x70, 0x86,
+ 0x9e, 0x1a, 0x64, 0x5e, 0x84, 0x0b, 0x94, 0xfe, 0x5d, 0x18, 0x59, 0x46,
+ 0xd2, 0xd2, 0x66, 0x05, 0x80, 0xf4, 0x10, 0x6c, 0x80, 0x0d, 0x21, 0xd1,
+ 0xb6, 0xed, 0x7b, 0x22, 0xc0, 0x44, 0x29, 0x42, 0xc1, 0x7e, 0x0f, 0xb7,
+ 0xfd, 0xa4, 0x17, 0x7d, 0x99, 0xde, 0x26, 0x65, 0xfa, 0x6f, 0xcb, 0xaa,
+ 0xe5, 0xf0, 0xe7, 0x42, 0x09, 0xf0, 0xa5, 0x74, 0x68, 0x63, 0xe3, 0x23,
+ 0x84, 0xfa, 0x41, 0xbc, 0xba, 0xa6, 0xe5, 0x4d, 0xec, 0x4a, 0x52, 0x65,
+ 0x9b, 0x3b, 0x91, 0x13, 0x5f, 0xd3, 0x76, 0xe0, 0xa2, 0x35, 0x21, 0x21,
+ 0xcd, 0x03, 0x5d, 0x54, 0x87, 0xa9, 0x03, 0x96, 0x24, 0xc2, 0x85, 0xae,
+ 0x46, 0xf2, 0x58, 0x48, 0x9e, 0x48, 0xe7, 0x53, 0x0c, 0xd3, 0x7f, 0x76,
+ 0xd0, 0x69, 0xb5, 0x0b, 0xf6, 0x30, 0x09, 0x66, 0x48, 0x31, 0xba, 0x8c,
+ 0x9a, 0x26, 0xae, 0x5c, 0x41, 0x78, 0xe5, 0x81, 0xdd, 0xc8, 0x2a, 0x0f,
+ 0x72, 0xe6, 0x6d, 0x96, 0x6f, 0x6f, 0x09, 0x45, 0x97, 0xf5, 0xf5, 0x7f,
+ 0xe9, 0xe3, 0x7f, 0xac, 0xbf, 0x3f, 0x3a, 0x78, 0xf5, 0xf6, 0xc8, 0x12,
+ 0xf3, 0x40, 0xdb, 0xdd, 0xc5, 0xc9, 0x25, 0x4e, 0x28, 0x98, 0xe4, 0x20,
+ 0x36, 0x9b, 0x4a, 0x58, 0xba, 0x94, 0xf1, 0x95, 0x03, 0x7a, 0x85, 0x93,
+ 0x4c, 0x4c, 0xa1, 0x83, 0x0b, 0xae, 0xa8, 0xa1, 0x97, 0xd6, 0xa9, 0x2a,
+ 0xf4, 0xee, 0x1a, 0x8c, 0x93, 0xfc, 0xda, 0xd4, 0x03, 0xf2, 0x40, 0x70,
+ 0x4a, 0x67, 0x25, 0x03, 0x7c, 0xd9, 0x1f, 0x0a, 0x99, 0x59, 0xb9, 0x68,
+ 0x0d, 0xf7, 0xf7, 0x19, 0xaa, 0xf6, 0x70, 0x3e, 0x4b, 0x82, 0xbd, 0x21,
+ 0xf2, 0x4b, 0xcd, 0xa2, 0xbb, 0xb9, 0x06, 0x18, 0x8e, 0x8e, 0xd5, 0x1b,
+ 0x5c, 0x37, 0x3f, 0xe5, 0x63, 0x2a, 0x72, 0xe2, 0x19, 0xe3, 0xfd, 0x68,
+ 0xf5, 0xe3, 0x9c, 0x63, 0x26, 0xd9, 0x70, 0x28, 0xed, 0xa9, 0x6e, 0x68,
+ 0x32, 0xad, 0xef, 0x8d, 0x3a, 0x45, 0xee, 0xd0, 0x36, 0x85, 0x57, 0x3b,
+ 0x9d, 0xb5, 0xae, 0xe9, 0xd3, 0xea, 0xb9, 0xad, 0x11, 0x96, 0x42, 0x5b,
+ 0x03, 0xc9, 0x22, 0xb0, 0x2f, 0x65, 0x8a, 0xca, 0x38, 0xe7, 0xd1, 0x3b,
+ 0xfd, 0x80, 0x4d, 0x36, 0xde, 0x94, 0x80, 0xed, 0x3d, 0x09, 0x48, 0xf4,
+ 0x8d, 0xb4, 0xae, 0xd0, 0x40, 0x8d, 0xa6, 0x54, 0x43, 0xe6, 0xaa, 0x6b,
+ 0xd5, 0x14, 0x1d, 0x05, 0xab, 0x9d, 0xa8, 0xb3, 0xf6, 0x07, 0xfb, 0x2c,
+ 0x0e, 0xa2, 0x0e, 0xb3, 0xd5, 0xc6, 0xc6, 0xf3, 0x07, 0x54, 0x01, 0xd3,
+ 0xaa, 0x11, 0xf4, 0x01, 0xf8, 0x73, 0x4f, 0x13, 0x50, 0xe6, 0x69, 0x06,
+ 0x46, 0xcd, 0x6a, 0x74, 0x5b, 0xa2, 0x94, 0x15, 0xb1, 0x94, 0x08, 0x67,
+ 0x92, 0x6d, 0x0a, 0x9b, 0xb4, 0x13, 0xca, 0x90, 0xeb, 0x45, 0xa7, 0xd6,
+ 0x3b, 0x92, 0xb3, 0xbb, 0xa7, 0x2e, 0x87, 0xda, 0xc5, 0x0a, 0xff, 0x2e,
+ 0xd5, 0x2c, 0xc9, 0x38, 0xa8, 0x22, 0x50, 0x5f, 0xb1, 0x2a, 0xa3, 0x8e,
+ 0xa3, 0x46, 0xc7, 0x70, 0xfa, 0x2c, 0xe2, 0x14, 0x5d, 0x63, 0x1d, 0x98,
+ 0x11, 0x58, 0x8b, 0x61, 0xca, 0xbc, 0xe2, 0x45, 0x5e, 0x44, 0xe0, 0xf6,
+ 0x9a, 0xb7, 0xde, 0x4a, 0x12, 0xf1, 0xc6, 0xc0, 0x06, 0xb3, 0x69, 0x64,
+ 0x0d, 0x19, 0x46, 0x5b, 0x05, 0x96, 0x1b, 0x17, 0x79, 0xd7, 0x83, 0xa0,
+ 0xa7, 0x62, 0x5f, 0x76, 0xbf, 0x53, 0xad, 0xc8, 0x64, 0x5a, 0xc0, 0xa5,
+ 0x3c, 0x18, 0xa7, 0x26, 0xca, 0xc7, 0x6f, 0xea, 0x81, 0xb6, 0x1f, 0xc7,
+ 0x83, 0x37, 0xbf, 0x05, 0x34, 0x27, 0xe3, 0x9a, 0xcd, 0x00, 0x1e, 0xed,
+ 0x32, 0x74, 0x8b, 0xb7, 0x24, 0xb8, 0xcc, 0x44, 0x16, 0x0a, 0x22, 0x7e,
+ 0xc6, 0xb9, 0x4b, 0x95, 0x4b, 0xab, 0x2b, 0xd8, 0x16, 0xd7, 0x1b, 0x29,
+ 0x6d, 0x05, 0xe0, 0x50, 0x7a, 0x46, 0x1a, 0x61, 0x96, 0x71, 0x75, 0x0a,
+ 0x50, 0x98, 0x1a, 0x59, 0x62, 0x4e, 0x30, 0x56, 0xd2, 0xd8, 0x0a, 0x3a,
+ 0x54, 0xbd, 0xd3, 0x9c, 0xdd, 0x54, 0x85, 0xb6, 0x9a, 0x88, 0x86, 0x7e,
+ 0x83, 0x9f, 0x11, 0xb7, 0x83, 0xab, 0x78, 0x44, 0x21, 0xce, 0x3d, 0xd6,
+ 0xc7, 0xf0, 0xbd, 0x88, 0xf5, 0x3f, 0x70, 0x95, 0x70, 0xdf, 0x4d, 0x24,
+ 0x4e, 0x65, 0x29, 0x5f, 0xf9, 0x08, 0x36, 0xbc, 0x52, 0x0b, 0x27, 0xae,
+ 0xd0, 0x93, 0x8c, 0x6a, 0x43, 0x37, 0xf5, 0x4d, 0xc6, 0xf4, 0xe7, 0x24,
+ 0xcd, 0x04, 0xee, 0x0d, 0x5a, 0x12, 0xd7, 0x16, 0x79, 0x5e, 0xdc, 0x34,
+ 0x61, 0x7c, 0x0f, 0x54, 0x3b, 0x11, 0x05, 0x2c, 0x23, 0x47, 0x2e, 0xdf,
+ 0x46, 0x57, 0x8a, 0xbd, 0xc6, 0xbd, 0x73, 0x11, 0x1b, 0x87, 0x56, 0x91,
+ 0x28, 0x82, 0x84, 0x97, 0x49, 0xc0, 0x16, 0x7d, 0x69, 0x62, 0x3f, 0xc8,
+ 0x60, 0x39, 0x0a, 0x05, 0x96, 0x0f, 0x88, 0x38, 0x82, 0x5f, 0xe4, 0x0b,
+ 0x4d, 0xf4, 0x66, 0x76, 0x74, 0x90, 0x55, 0x1c, 0xb6, 0xe8, 0xb8, 0xbf,
+ 0xf0, 0xd7, 0x69, 0x09, 0xba, 0x55, 0x01, 0xeb, 0xfe, 0x66, 0x57, 0x03,
+ 0xc0, 0x0a, 0x94, 0xc7, 0x7a, 0xae, 0x9c, 0x52, 0x3c, 0x46, 0x3c, 0x75,
+ 0x2f, 0x72, 0xcc, 0xd5, 0xd3, 0x48, 0x5b, 0x7d, 0x53, 0x14, 0x5d, 0xf6,
+ 0x0b, 0xb5, 0x38, 0xb4, 0x4b, 0x4e, 0x08, 0xe0, 0x3e, 0x0c, 0x29, 0xf9,
+ 0xf5, 0x3e, 0xbc, 0x45, 0xfc, 0x4d, 0x0e, 0xbe, 0x92, 0xf6, 0x83, 0xde,
+ 0x75, 0xd8, 0xcf, 0x41, 0x9d, 0xd0, 0xfa, 0xcc, 0xb4, 0xcf, 0x33, 0x74,
+ 0x27, 0x1a, 0xe9, 0x1c, 0xaa, 0xcb, 0x33, 0x39, 0xae, 0xb6, 0xdb, 0x68,
+ 0x2b, 0x4f, 0x10, 0x0d, 0x94, 0xea, 0x0a, 0x55, 0x7c, 0x54, 0x3d, 0xc9,
+ 0xb1, 0xf4, 0x49, 0xb8, 0x2f, 0x25, 0xd2, 0xec, 0xdd, 0xf9, 0xc9, 0xdb,
+ 0x6e, 0xeb, 0xd4, 0x89, 0xae, 0x6c, 0xfd, 0x30, 0x46, 0xe2, 0x24, 0xc1,
+ 0x4e, 0xdd, 0x9c, 0xc4, 0xcb, 0xe4, 0x30, 0x59, 0x10, 0x0c, 0xdf, 0x8a,
+ 0x94, 0xeb, 0x4a, 0x32, 0x6d, 0x29, 0x40, 0x21, 0xea, 0x6b, 0x62, 0xb2,
+ 0xfa, 0xb9, 0xbf, 0xc8, 0x83, 0x15, 0x6d, 0x3d, 0xb9, 0xe7, 0xe0, 0xda,
+ 0x01, 0x59, 0xb3, 0xa8, 0x03, 0xec, 0xb9, 0x35, 0xb7, 0xec, 0x57, 0x79,
+ 0x29, 0x28, 0x5d, 0xb8, 0x4b, 0x78, 0xf4, 0xaa, 0xb8, 0xcd, 0xe3, 0x13,
+ 0x84, 0x96, 0x8a, 0x4e, 0x8a, 0x4b, 0x3c, 0x40, 0xef, 0xc2, 0x9e, 0xc2,
+ 0x0f, 0x67, 0xef, 0xa2, 0x55, 0x54, 0x54, 0x10, 0x3d, 0x51, 0xba, 0x62,
+ 0xe0, 0xa3, 0x6b, 0x62, 0x87, 0x57, 0xac, 0x0b, 0xca, 0x6c, 0xba, 0xd1,
+ 0xd1, 0x77, 0x07, 0x6f, 0xcf, 0x4e, 0x8e, 0x7e, 0x60, 0x53, 0xdc, 0x5b,
+ 0x0e, 0xfe, 0xf8, 0x0b, 0xe7, 0x22, 0xa2, 0x98, 0x36, 0xa6, 0x8e, 0xc0,
+ 0x4c, 0xee, 0xe7, 0x29, 0x06, 0x2c, 0x15, 0x2d, 0xc8, 0xe3, 0xd9, 0x71,
+ 0xac, 0xbd, 0x27, 0x48, 0x60, 0x0d, 0xb2, 0x1c, 0xdd, 0x08, 0xe4, 0x28,
+ 0x30, 0xfd, 0xdd, 0xbf, 0xf6, 0xc3, 0xf7, 0xe6, 0x38, 0x74, 0xa3, 0x77,
+ 0x5a, 0xcc, 0xd0, 0xa5, 0x4d, 0xc7, 0x23, 0xf8, 0x2a, 0xbb, 0xa4, 0x18,
+ 0x7c, 0x2b, 0x01, 0x1c, 0xb9, 0x43, 0x2e, 0x7d, 0xaf, 0xf1, 0x0c, 0x36,
+ 0xbc, 0x96, 0xfc, 0x8c, 0x2a, 0x1d, 0xb3, 0x2b, 0x7e, 0xee, 0xf5, 0xc8,
+ 0x12, 0x92, 0x76, 0x91, 0x4a, 0xa3, 0xbd, 0xe4, 0x02, 0x29, 0x95, 0x46,
+ 0x63, 0x8c, 0x37, 0x50, 0xac, 0x5d, 0xe6, 0x10, 0xbe, 0x14, 0x44, 0xf9,
+ 0x32, 0x52, 0x7f, 0x2f, 0xea, 0xc4, 0xb3, 0x68, 0xaf, 0xf3, 0x07, 0x2b,
+ 0x1c, 0xb4, 0x47, 0xe5, 0x5e, 0x95, 0x82, 0x40, 0x7f, 0x20, 0xe4, 0xe6,
+ 0x86, 0x41, 0x5a, 0x83, 0x71, 0x5f, 0x51, 0xa9, 0xad, 0x30, 0x81, 0x4a,
+ 0xe9, 0x6a, 0xed, 0x98, 0x47, 0x78, 0xd9, 0x01, 0x4b, 0x82, 0xe0, 0x10,
+ 0xc3, 0x73, 0x30, 0xbb, 0xbc, 0x0c, 0x00, 0x29, 0xe7, 0xb8, 0x5e, 0x72,
+ 0x60, 0xa2, 0x3f, 0x70, 0xa5, 0x8a, 0x38, 0x42, 0x07, 0xe4, 0xe8, 0x50,
+ 0x62, 0x88, 0x36, 0x8f, 0x2c, 0x46, 0x68, 0x72, 0x1c, 0x68, 0x4c, 0x94,
+ 0xf0, 0x9f, 0xfc, 0xe1, 0x58, 0x7b, 0x5e, 0xf9, 0x7c, 0xc5, 0xa4, 0xcb,
+ 0x74, 0x44, 0xb9, 0x24, 0xe9, 0xdf, 0x61, 0x63, 0x04, 0x76, 0x0f, 0xe7,
+ 0xdf, 0x8d, 0x56, 0xf6, 0x57, 0xe4, 0xb9, 0x4e, 0x50, 0x45, 0xe6, 0x77,
+ 0x38, 0xc5, 0x82, 0xad, 0xa3, 0xa1, 0x71, 0xe3, 0xa3, 0xf2, 0x9d, 0x8d,
+ 0xe0, 0x26, 0x14, 0xaf, 0x2e, 0x1c, 0xb4, 0xb1, 0xb4, 0xb4, 0xe9, 0x8a,
+ 0x43, 0xac, 0xad, 0xc0, 0xd0, 0xd4, 0x75, 0xe6, 0x3c, 0xd7, 0x95, 0x7f,
+ 0xd7, 0x19, 0x68, 0xbb, 0xd3, 0x64, 0x4c, 0x01, 0x47, 0x8a, 0x1c, 0x64,
+ 0x23, 0xfb, 0xd5, 0x79, 0x07, 0x8f, 0xeb, 0x5d, 0xd0, 0x89, 0x43, 0x96,
+ 0x48, 0x10, 0x7a, 0xa4, 0x0d, 0xb5, 0x41, 0xf9, 0x02, 0xbe, 0x07, 0xde,
+ 0xe9, 0xfa, 0xad, 0x95, 0x2f, 0xe3, 0xa2, 0x40, 0x47, 0x35, 0xee, 0xe1,
+ 0xbc, 0x09, 0x68, 0x74, 0xc2, 0x32, 0x32, 0xdf, 0xdb, 0x26, 0xb2, 0x48,
+ 0x36, 0x03, 0x3e, 0x29, 0xba, 0x85, 0x38, 0x21, 0xba, 0x73, 0xe0, 0xb6,
+ 0x44, 0xce, 0x6b, 0x50, 0xcf, 0xc2, 0x9d, 0x48, 0xcc, 0x58, 0x0b, 0x69,
+ 0xff, 0xf0, 0x18, 0x27, 0x25, 0x29, 0x3a, 0xc0, 0x46, 0xa6, 0xa2, 0x96,
+ 0x98, 0x44, 0x02, 0x40, 0xd4, 0xd2, 0x77, 0xd9, 0x88, 0x9d, 0x9e, 0xab,
+ 0x65, 0xf0, 0x55, 0x5a, 0x98, 0x35, 0xbd, 0xf9, 0x8d, 0x20, 0x0c, 0x69,
+ 0xc3, 0x65, 0x2c, 0xc1, 0x78, 0xe7, 0x37, 0x22, 0x11, 0x02, 0x95, 0xc8,
+ 0xaf, 0x24, 0x0b, 0xc1, 0x8d, 0x93, 0x0b, 0xae, 0x08, 0xfb, 0xed, 0xc5,
+ 0xc0, 0xd5, 0xe4, 0x2e, 0xcd, 0x5d, 0xcb, 0x28, 0xb8, 0x56, 0xf5, 0x02,
+ 0xca, 0xbc, 0xaa, 0xe7, 0x7c, 0xd6, 0x4d, 0x9a, 0x21, 0x05, 0x68, 0x30,
+ 0xce, 0xaf, 0x43, 0x48, 0x06, 0x6b, 0xd7, 0x8c, 0xed, 0x2f, 0x88, 0x75,
+ 0xd0, 0x6d, 0xcc, 0xd6, 0x87, 0x73, 0x77, 0x2f, 0x29, 0xa6, 0x18, 0x7f,
+ 0x80, 0xc1, 0xaf, 0xb5, 0x08, 0x01, 0x47, 0x4e, 0xef, 0xd2, 0xe1, 0xac,
+ 0x0e, 0x02, 0x60, 0x9c, 0x5f, 0x29, 0x16, 0x3f, 0x4f, 0x69, 0x95, 0x0e,
+ 0xb1, 0x40, 0x58, 0x77, 0xce, 0x14, 0x69, 0x7b, 0xaf, 0xb3, 0x26, 0x99,
+ 0x3d, 0x94, 0x7b, 0x60, 0x21, 0xb8, 0x3d, 0x25, 0x0b, 0xb3, 0x04, 0x65,
+ 0xca, 0x65, 0xca, 0x01, 0x0d, 0x9b, 0xe9, 0x16, 0xfc, 0x3c, 0x9c, 0xaf,
+ 0x32, 0xf8, 0xf5, 0xd7, 0xec, 0xae, 0x77, 0x3e, 0x2e, 0xac, 0x3d, 0x54,
+ 0x4f, 0x7e, 0xe5, 0x89, 0x21, 0xef, 0xcb, 0xc5, 0x05, 0x79, 0x8c, 0x0e,
+ 0x6e, 0xe0, 0x60, 0x92, 0x2f, 0x49, 0x5f, 0x55, 0xe2, 0x7b, 0xa5, 0x7b,
+ 0xc9, 0xb8, 0x8e, 0xab, 0x9b, 0x61, 0xb8, 0xfa, 0x55, 0xa0, 0x50, 0x0c,
+ 0xc0, 0xe7, 0x01, 0x3c, 0xdc, 0xbf, 0x19, 0xee, 0xa9, 0xa5, 0x0f, 0x7c,
+ 0xa9, 0xe2, 0xcd, 0x5b, 0xec, 0x41, 0x75, 0x9f, 0x0f, 0xaf, 0x5e, 0xbd,
+ 0xeb, 0x87, 0x87, 0x26, 0xa6, 0xa6, 0xe9, 0x93, 0x87, 0x29, 0xa1, 0xa7,
+ 0xe1, 0x5a, 0xc6, 0x46, 0x23, 0xec, 0xd8, 0x95, 0x86, 0x2c, 0xe8, 0x22,
+ 0x39, 0x70, 0x7e, 0x1b, 0x1e, 0xae, 0xf9, 0x8a, 0x71, 0xba, 0xe2, 0x55,
+ 0xcb, 0x62, 0x48, 0x74, 0x31, 0xca, 0xa0, 0x8d, 0x13, 0xa4, 0x08, 0xaf,
+ 0x29, 0x3c, 0x5c, 0x7d, 0x85, 0x21, 0x3b, 0xe0, 0x2a, 0x19, 0xb1, 0x9c,
+ 0x9f, 0xbe, 0x3a, 0x00, 0xe6, 0x18, 0x67, 0x0d, 0x52, 0x59, 0x90, 0x33,
+ 0xf9, 0xa5, 0x26, 0x01, 0x6a, 0x96, 0x82, 0x46, 0x56, 0xbd, 0xc1, 0x0e,
+ 0xaf, 0x92, 0xf2, 0xb0, 0xc8, 0x6f, 0xc2, 0xb3, 0x6a, 0xe5, 0x54, 0x32,
+ 0xbc, 0x86, 0xf3, 0xdd, 0x21, 0xbc, 0x9d, 0x0c, 0x6b, 0xea, 0x79, 0x40,
+ 0x2d, 0x48, 0x34, 0x45, 0x3c, 0x3c, 0xdc, 0x2a, 0x86, 0x8b, 0xa3, 0xa3,
+ 0x2f, 0x0f, 0x5f, 0x1d, 0x1f, 0xae, 0xb5, 0x67, 0xf2, 0x8a, 0x10, 0xac,
+ 0x44, 0xf6, 0xb0, 0x96, 0xc0, 0x1b, 0x65, 0xd8, 0xce, 0x99, 0x04, 0x3d,
+ 0x2c, 0xf6, 0x27, 0x6b, 0x8b, 0x73, 0x3e, 0x39, 0x41, 0x04, 0x09, 0x6a,
+ 0xde, 0x4d, 0xf2, 0xe9, 0x5a, 0x33, 0x7a, 0x26, 0xe9, 0x04, 0x23, 0xe0,
+ 0x46, 0xbb, 0x90, 0x1e, 0x04, 0xaf, 0xa9, 0xbb, 0x1c, 0x7c, 0x2c, 0x0e,
+ 0x0f, 0x37, 0x42, 0xa5, 0x1a, 0x15, 0x15, 0xae, 0x9d, 0xf3, 0x3c, 0xb7,
+ 0x97, 0x55, 0x82, 0x38, 0xb6, 0x24, 0x8a, 0x68, 0xba, 0x31, 0xde, 0xf1,
+ 0xfd, 0x83, 0xfe, 0x89, 0xd7, 0x62, 0x4d, 0x65, 0x13, 0x5c, 0x10, 0x68,
+ 0x68, 0x32, 0x40, 0x50, 0xf8, 0xab, 0x06, 0x2d, 0xf9, 0xf0, 0xfd, 0xc1,
+ 0x5b, 0x60, 0x33, 0x0e, 0xb7, 0xfb, 0x39, 0xaf, 0x44, 0x1a, 0xf8, 0x31,
+ 0xcd, 0xc2, 0xdb, 0x6a, 0x69, 0xca, 0x16, 0xfe, 0x84, 0x76, 0x6c, 0xe3,
+ 0x0e, 0x3c, 0x1c, 0x5e, 0xf4, 0x46, 0x78, 0xd3, 0x3f, 0xef, 0xeb, 0x7f,
+ 0x74, 0x4e, 0x74, 0x22, 0xd3, 0xaa, 0x01, 0xcf, 0xa7, 0x8f, 0x03, 0xcf,
+ 0x6d, 0xf1, 0x7f, 0xd6, 0xb7, 0xcc, 0x0b, 0x06, 0xe7, 0x43, 0xe9, 0xd3,
+ 0x0b, 0xbc, 0xb6, 0x2d, 0xaf, 0x6d, 0x2f, 0x7a, 0x2d, 0xf0, 0x5e, 0x3f,
+ 0x0e, 0xf5, 0x04, 0xf2, 0x24, 0x40, 0x16, 0xc8, 0x12, 0x5e, 0xd8, 0xe3,
+ 0xe6, 0xd5, 0xbb, 0xe6, 0x00, 0x26, 0x9a, 0x8c, 0xbf, 0x89, 0x15, 0x25,
+ 0x44, 0xb4, 0x30, 0xc7, 0x2a, 0x0b, 0xb8, 0x43, 0xcf, 0x6e, 0x9e, 0x39,
+ 0xb1, 0x74, 0xdc, 0x48, 0xfa, 0x91, 0xd1, 0xfd, 0xbd, 0x37, 0xd4, 0x66,
+ 0x0e, 0x2f, 0xca, 0x58, 0xd4, 0xdf, 0xec, 0x06, 0xba, 0xf8, 0xcd, 0xdf,
+ 0xcb, 0x93, 0xa4, 0xbc, 0x4c, 0x03, 0xd9, 0x1e, 0x1e, 0xad, 0xcc, 0x52,
+ 0x6d, 0x32, 0x0e, 0xdc, 0x9e, 0x63, 0x7c, 0x9d, 0xa3, 0xda, 0x5d, 0x09,
+ 0x6e, 0xd3, 0x8f, 0xca, 0x79, 0xe2, 0x0d, 0xd6, 0xba, 0xf5, 0xd5, 0x97,
+ 0xde, 0x34, 0x80, 0x5b, 0x7f, 0x46, 0xd9, 0x6d, 0x04, 0xd8, 0x28, 0x75,
+ 0x65, 0xd7, 0xea, 0x4d, 0x96, 0x44, 0x97, 0x3f, 0x67, 0x53, 0x02, 0x07,
+ 0xc1, 0xea, 0x86, 0x35, 0xba, 0xbb, 0x4d, 0x22, 0x75, 0xf8, 0x73, 0x3c,
+ 0x21, 0x23, 0xf8, 0x16, 0x53, 0xe2, 0x2d, 0x46, 0xec, 0xfb, 0xfd, 0x93,
+ 0x47, 0x13, 0x42, 0x43, 0xfc, 0x8b, 0xab, 0x0c, 0xc8, 0xf2, 0x94, 0xff,
+ 0x2c, 0xb3, 0x31, 0xf8, 0xc2, 0xc7, 0x6f, 0xbf, 0x0c, 0xcf, 0x86, 0x46,
+ 0x1b, 0xa5, 0x88, 0x6e, 0xa4, 0xad, 0x10, 0x6f, 0xb3, 0x1c, 0x4c, 0xe4,
+ 0x11, 0xdc, 0x90, 0xe3, 0x29, 0xdf, 0x90, 0xf3, 0xc7, 0x3e, 0xc3, 0x16,
+ 0x0a, 0xfc, 0x1f, 0x7c, 0xee, 0x4a, 0xe5, 0xf8, 0xd9, 0x6c, 0x30, 0x06,
+ 0xda, 0xf7, 0x67, 0x17, 0x17, 0xd9, 0x5d, 0x74, 0x92, 0x55, 0xb5, 0x08,
+ 0x49, 0xb2, 0x84, 0x38, 0x98, 0x13, 0xa8, 0x35, 0x76, 0x6f, 0x09, 0xae,
+ 0xfc, 0xa0, 0x13, 0xda, 0x28, 0x10, 0xb6, 0xc8, 0x4a, 0xac, 0xd9, 0x75,
+ 0xa6, 0xfc, 0xad, 0x6a, 0x76, 0x11, 0xcf, 0xdb, 0xbc, 0xbb, 0xb4, 0xf2,
+ 0x6d, 0xde, 0xfe, 0xd9, 0xbb, 0xa3, 0xaf, 0x4e, 0xf5, 0x3f, 0xcb, 0x50,
+ 0xb4, 0xcf, 0xab, 0xc6, 0xff, 0xb8, 0x25, 0x4c, 0x88, 0x5a, 0x86, 0x97,
+ 0xbf, 0xed, 0x77, 0x42, 0x2e, 0x5f, 0x1d, 0xa6, 0xcb, 0x28, 0x8a, 0x7e,
+ 0x36, 0xa5, 0x2b, 0x6e, 0x28, 0xfe, 0x0b, 0x7f, 0x62, 0x98, 0xb7, 0xcf,
+ 0x36, 0x69, 0x11, 0x82, 0x9e, 0x43, 0xb7, 0x86, 0xfe, 0x67, 0xe1, 0x5c,
+ 0xa5, 0x12, 0x7a, 0x8e, 0x76, 0x44, 0xe5, 0xe5, 0x7d, 0x06, 0x14, 0x7e,
+ 0xcf, 0x09, 0x5b, 0x67, 0xe2, 0x81, 0x58, 0x5b, 0x44, 0x92, 0x39, 0x84,
+ 0x86, 0x9d, 0x0f, 0x82, 0xef, 0xe3, 0x45, 0xf9, 0x96, 0x2e, 0xc8, 0xf0,
+ 0x8b, 0x7c, 0x55, 0xcb, 0x15, 0x6a, 0xae, 0xd5, 0x85, 0xeb, 0xfa, 0x90,
+ 0x67, 0x18, 0xcf, 0x9a, 0x83, 0x79, 0xc2, 0xbf, 0x34, 0xa2, 0xb8, 0x30,
+ 0x01, 0xd9, 0xd0, 0x38, 0x77, 0x7d, 0x4a, 0x45, 0xac, 0xe6, 0x8e, 0x75,
+ 0x27, 0xc9, 0x8a, 0x55, 0xf3, 0x92, 0x9a, 0xa3, 0x36, 0xfe, 0x5c, 0xd5,
+ 0xa3, 0x87, 0x24, 0x10, 0x3e, 0xb3, 0xc6, 0xe9, 0x42, 0x4e, 0x0d, 0x07,
+ 0x8b, 0x99, 0xf0, 0x34, 0x1e, 0x92, 0x3d, 0x9e, 0x1d, 0x67, 0x0d, 0x38,
+ 0xb2, 0x94, 0x8c, 0xfd, 0x74, 0x8b, 0xf6, 0x13, 0x81, 0x18, 0x63, 0xdc,
+ 0x3b, 0xda, 0x67, 0x4b, 0xe9, 0xf3, 0x80, 0x73, 0x85, 0x87, 0x50, 0x48,
+ 0x3f, 0xd7, 0xa6, 0x22, 0xcb, 0x9a, 0x62, 0xa8, 0xc9, 0x05, 0x2a, 0x6b,
+ 0x89, 0x89, 0x98, 0x8d, 0x58, 0xaa, 0xfb, 0xa5, 0x5a, 0x25, 0x47, 0x1c,
+ 0x78, 0x0c, 0x71, 0x66, 0x4a, 0x14, 0x13, 0xa5, 0x01, 0xfa, 0x5b, 0x31,
+ 0x90, 0x4f, 0x69, 0x11, 0x0c, 0x87, 0xcc, 0x5e, 0xec, 0x68, 0x02, 0xa7,
+ 0x77, 0x14, 0x74, 0xae, 0x10, 0xdc, 0xa8, 0xcd, 0x09, 0x50, 0xd0, 0xc0,
+ 0xaa, 0xf1, 0x25, 0xcf, 0x21, 0x9b, 0x54, 0x01, 0x6f, 0x48, 0x4d, 0x6e,
+ 0xae, 0x0e, 0xcf, 0xa8, 0x43, 0x38, 0x62, 0x1a, 0xba, 0xa3, 0xfc, 0x66,
+ 0xb5, 0xa3, 0x47, 0x12, 0xb3, 0xe1, 0xb1, 0xc5, 0x49, 0x97, 0x04, 0x52,
+ 0xb3, 0x4c, 0x94, 0xfa, 0x0b, 0xcd, 0x95, 0xee, 0x68, 0x26, 0x59, 0xc3,
+ 0x11, 0x68, 0xc6, 0x94, 0x21, 0x03, 0x30, 0x7f, 0x9c, 0x5d, 0x47, 0x65,
+ 0x87, 0xb8, 0x6b, 0x30, 0x64, 0xdc, 0x09, 0x1a, 0x66, 0x86, 0x00, 0xaa,
+ 0x40, 0x35, 0x5d, 0x2f, 0xfa, 0x09, 0x9b, 0x21, 0x52, 0xcd, 0x06, 0x55,
+ 0x9d, 0xd5, 0x33, 0xff, 0x40, 0x0f, 0x34, 0x32, 0x46, 0xb0, 0x88, 0x64,
+ 0x68, 0xe0, 0x66, 0x58, 0xec, 0x42, 0x72, 0xb5, 0x60, 0x42, 0x79, 0x4d,
+ 0xdd, 0x1a, 0x39, 0x4b, 0x7d, 0x40, 0x18, 0x6b, 0xe3, 0xe2, 0xd6, 0xc3,
+ 0x4a, 0x45, 0x4b, 0xd9, 0xcc, 0xae, 0x89, 0x48, 0x01, 0x6f, 0xff, 0xf9,
+ 0x1f, 0xfa, 0xcb, 0x8f, 0x48, 0xa9, 0x7f, 0x2a, 0xa5, 0xb4, 0xce, 0x24,
+ 0xf1, 0x7c, 0xf9, 0xec, 0xe2, 0xfa, 0x33, 0x51, 0xe5, 0x27, 0x4c, 0x8e,
+ 0x65, 0xd2, 0x20, 0x3a, 0x32, 0x0d, 0xf8, 0xe7, 0x9e, 0x51, 0x88, 0x64,
+ 0x90, 0x04, 0x01, 0xbe, 0xc8, 0x68, 0x1d, 0xdc, 0x7b, 0xfe, 0x15, 0x64,
+ 0xc3, 0x1f, 0xf2, 0x2e, 0x75, 0x41, 0x2c, 0x61, 0x26, 0x97, 0x14, 0x93,
+ 0x41, 0xc0, 0x53, 0xda, 0xc5, 0x1f, 0x4a, 0xc1, 0x0a, 0x06, 0x9b, 0x5c,
+ 0xe2, 0xb6, 0xfc, 0xf3, 0xb0, 0x81, 0xac, 0xb9, 0x91, 0xe2, 0x20, 0x6d,
+ 0x60, 0x78, 0xc3, 0x38, 0x49, 0x39, 0x32, 0xce, 0xb0, 0x81, 0x42, 0x9e,
+ 0x6a, 0x26, 0x48, 0x7b, 0xef, 0x09, 0x98, 0x54, 0x80, 0x7d, 0xf5, 0x65,
+ 0xb2, 0x3e, 0x6c, 0x82, 0xc4, 0x9f, 0xff, 0xc1, 0xa9, 0xf6, 0xff, 0xf4,
+ 0x6f, 0xfe, 0xd3, 0xf3, 0xa3, 0x3d, 0x9a, 0xd2, 0x9f, 0xe3, 0xea, 0x7e,
+ 0x32, 0x28, 0xc6, 0x72, 0xf0, 0x90, 0xf8, 0x40, 0x40, 0xfd, 0x19, 0x73,
+ 0x09, 0xe5, 0x3d, 0xc4, 0x0e, 0x0c, 0x67, 0x37, 0xd8, 0x10, 0x1b, 0xfd,
+ 0x09, 0xc5, 0x90, 0xa1, 0x6e, 0xb0, 0x80, 0x14, 0x4e, 0xde, 0x9f, 0x23,
+ 0x05, 0xc2, 0x04, 0x99, 0x40, 0x8e, 0xf6, 0x5b, 0x1b, 0x25, 0x31, 0x45,
+ 0xbd, 0xc1, 0xa0, 0xee, 0x62, 0x3e, 0x4e, 0x8c, 0x17, 0x20, 0x04, 0x60,
+ 0x8a, 0xf2, 0x02, 0xa6, 0xf9, 0x91, 0x60, 0x3a, 0xc4, 0x46, 0x3a, 0xe4,
+ 0x9f, 0xc5, 0xe7, 0xf4, 0x33, 0x4d, 0xc7, 0xb4, 0x1d, 0xa5, 0xb4, 0x9c,
+ 0xb8, 0xeb, 0x83, 0x16, 0x45, 0xa1, 0x0c, 0x6f, 0xb4, 0x85, 0x40, 0xce,
+ 0x78, 0xf3, 0xa4, 0x3d, 0x98, 0x54, 0x97, 0xce, 0xb4, 0x79, 0x5b, 0x26,
+ 0x98, 0xa5, 0x78, 0x99, 0xf6, 0xa2, 0x55, 0xb7, 0x37, 0xc9, 0x6e, 0x6f,
+ 0xc3, 0xb3, 0x4f, 0xd3, 0x3b, 0xd8, 0x5b, 0xca, 0xb3, 0x35, 0x43, 0x80,
+ 0x30, 0x4b, 0x4b, 0xec, 0xaa, 0x65, 0x7f, 0x29, 0xa5, 0x58, 0x36, 0x97,
+ 0xc6, 0x8c, 0xbb, 0x78, 0xfa, 0x73, 0x3e, 0xaa, 0xd2, 0xe8, 0x23, 0xe3,
+ 0x3e, 0x67, 0x37, 0xe9, 0xe2, 0x61, 0x88, 0xa8, 0xa8, 0x9e, 0x4e, 0xb8,
+ 0x67, 0x97, 0x16, 0x7e, 0xb8, 0x30, 0xa6, 0x0c, 0x88, 0xcf, 0x19, 0x35,
+ 0xbd, 0x87, 0x86, 0xe3, 0xf8, 0x2e, 0xb9, 0x8a, 0x25, 0xef, 0x15, 0x1d,
+ 0xf3, 0xd9, 0x85, 0xb1, 0xa3, 0x6a, 0xac, 0x0c, 0xc7, 0xcc, 0x63, 0x1a,
+ 0xf7, 0x81, 0x3d, 0x2a, 0x08, 0x17, 0xd0, 0x15, 0xb8, 0x9c, 0x7d, 0x7b,
+ 0x4a, 0x0e, 0x48, 0xc9, 0xe1, 0xe2, 0xa4, 0xad, 0x12, 0x93, 0xbd, 0x16,
+ 0x0f, 0x67, 0x33, 0xc1, 0x24, 0x46, 0x7e, 0x8c, 0x61, 0x00, 0x4a, 0xdb,
+ 0x9b, 0x71, 0x00, 0x01, 0xaf, 0x25, 0xb8, 0xea, 0x30, 0x84, 0x14, 0xc8,
+ 0x35, 0x8a, 0x02, 0xb7, 0x14, 0x25, 0xb6, 0xfc, 0xa7, 0x93, 0x51, 0xc6,
+ 0x8e, 0xa7, 0xd8, 0xc9, 0x24, 0xf3, 0x98, 0xeb, 0xa2, 0x9e, 0x7e, 0x04,
+ 0x1e, 0x2d, 0xef, 0x3f, 0x52, 0x75, 0xc4, 0xb9, 0x13, 0xb0, 0xa4, 0x1f,
+ 0x10, 0xa9, 0x18, 0xc7, 0x6d, 0x36, 0xc5, 0x39, 0xd1, 0x71, 0x1b, 0x17,
+ 0xec, 0x78, 0x78, 0x68, 0x5a, 0xcd, 0xf2, 0x06, 0x07, 0x41, 0xb6, 0x3d,
+ 0x0d, 0xf4, 0xf9, 0x7e, 0xb4, 0x1c, 0xda, 0x64, 0x50, 0x53, 0x5d, 0x4a,
+ 0x0f, 0x10, 0x37, 0x70, 0x07, 0x19, 0xcc, 0x22, 0x0a, 0xb6, 0x05, 0x6c,
+ 0xfd, 0x1f, 0x05, 0x92, 0x6c, 0xe4, 0x5b, 0x33, 0xf5, 0x39, 0x53, 0x0c,
+ 0xf3, 0x3e, 0x0d, 0xcb, 0xcf, 0x99, 0x17, 0x57, 0xb3, 0xb4, 0xe7, 0x35,
+ 0x7f, 0x3a, 0xfa, 0xc5, 0x78, 0xf1, 0xbc, 0x64, 0x59, 0xab, 0x12, 0x8a,
+ 0x27, 0xfb, 0x7d, 0x8d, 0x33, 0x77, 0x88, 0xee, 0x2d, 0xbc, 0xf8, 0xf0,
+ 0xec, 0x4c, 0x55, 0x34, 0x1f, 0x20, 0xfc, 0x99, 0x53, 0x2a, 0xcd, 0xf6,
+ 0x0f, 0xc1, 0x1b, 0x98, 0x63, 0x88, 0x21, 0xe2, 0x50, 0xfb, 0xda, 0xb6,
+ 0xc7, 0xcb, 0xad, 0x10, 0xdf, 0x08, 0x1c, 0xf0, 0x9f, 0x2a, 0xfa, 0xac,
+ 0xb9, 0x79, 0xa3, 0xff, 0xec, 0x9f, 0xbe, 0x8b, 0x8a, 0xc1, 0x4f, 0x48,
+ 0x2c, 0x8e, 0xeb, 0x63, 0x21, 0x8a, 0x11, 0xac, 0xd7, 0x69, 0xa0, 0x6a,
+ 0x8f, 0xca, 0x51, 0x3e, 0x66, 0x53, 0x57, 0x08, 0x1c, 0x83, 0xa9, 0x90,
+ 0x8c, 0x46, 0x54, 0x09, 0x2c, 0x42, 0x89, 0xab, 0x56, 0x30, 0x03, 0x4d,
+ 0x7e, 0x40, 0x47, 0xe5, 0x41, 0x0a, 0x0f, 0x19, 0x23, 0x8d, 0x5c, 0x9b,
+ 0x0e, 0x16, 0x40, 0xac, 0xba, 0x9a, 0x7a, 0x3a, 0xd1, 0x8f, 0xb1, 0x13,
+ 0x08, 0x32, 0x47, 0xbe, 0x03, 0x64, 0xce, 0x0a, 0x48, 0x57, 0x37, 0x2b,
+ 0xe0, 0xe9, 0x36, 0x1a, 0x5e, 0x37, 0xe7, 0xed, 0x4c, 0xec, 0x81, 0x15,
+ 0xd8, 0x36, 0x51, 0x9f, 0x78, 0xf9, 0x2d, 0x8c, 0xdb, 0xe4, 0x90, 0x8e,
+ 0x76, 0x5f, 0x7e, 0xae, 0x79, 0x1a, 0xad, 0xaf, 0xb2, 0x66, 0xff, 0x30,
+ 0xe9, 0x24, 0x05, 0xad, 0x71, 0xb7, 0x6c, 0x05, 0xb8, 0x00, 0x96, 0xf7,
+ 0xd1, 0xb6, 0x43, 0x8d, 0xde, 0xf1, 0x6a, 0x71, 0xb9, 0xa0, 0x05, 0xd9,
+ 0x46, 0xa9, 0xd4, 0xe8, 0x40, 0x66, 0x23, 0x13, 0x09, 0xaa, 0xef, 0x91,
+ 0xaf, 0xcd, 0x87, 0xbe, 0x68, 0x92, 0xf0, 0xcd, 0xa1, 0x14, 0x1a, 0xb7,
+ 0xfb, 0x23, 0x04, 0x28, 0xb0, 0xf8, 0x8b, 0x0a, 0x0b, 0xbb, 0x8a, 0xe9,
+ 0x0d, 0x09, 0xe5, 0xc5, 0xc2, 0x11, 0x0a, 0xc4, 0xca, 0xfc, 0x17, 0xb9,
+ 0x3a, 0x09, 0x91, 0xd3, 0x08, 0xed, 0xc1, 0x38, 0x1f, 0x28, 0xfe, 0x59,
+ 0xcf, 0x2a, 0x8e, 0x64, 0x1c, 0xf7, 0x51, 0x5b, 0xf2, 0x34, 0xcd, 0x28,
+ 0x54, 0x65, 0xd0, 0xa2, 0xff, 0xf6, 0x1c, 0xfa, 0xeb, 0xa7, 0x2b, 0x43,
+ 0x7f, 0xa2, 0x84, 0xfe, 0x90, 0x65, 0x14, 0xea, 0x18, 0x17, 0x05, 0xd6,
+ 0xd8, 0x58, 0xbe, 0x78, 0x24, 0x17, 0x7c, 0xe2, 0xb5, 0x6d, 0x66, 0x0d,
+ 0xc4, 0x3d, 0xb4, 0x94, 0x0d, 0x62, 0xab, 0x52, 0x54, 0xa1, 0x26, 0x85,
+ 0x8c, 0x60, 0xe9, 0xae, 0xb0, 0xcf, 0x17, 0xe7, 0x98, 0x3c, 0x70, 0x6b,
+ 0x88, 0x34, 0x16, 0xc5, 0x98, 0x3a, 0xc1, 0x73, 0x09, 0xd1, 0xcf, 0x69,
+ 0x59, 0x88, 0x42, 0x64, 0xe4, 0xd3, 0x53, 0xd5, 0x13, 0x92, 0xb6, 0x1f,
+ 0xab, 0x6a, 0x8c, 0x12, 0x34, 0xbb, 0xb8, 0x07, 0x22, 0x56, 0x73, 0x91,
+ 0x4d, 0xdd, 0x95, 0xf2, 0x73, 0x7a, 0x9e, 0x1d, 0xd7, 0xeb, 0x0a, 0xf7,
+ 0xf9, 0x9c, 0xa6, 0x98, 0xd6, 0x19, 0x6e, 0x47, 0xda, 0x3e, 0xdc, 0xa8,
+ 0xe9, 0xd0, 0xe7, 0x6d, 0x56, 0x87, 0x5c, 0x27, 0x46, 0x8f, 0xec, 0x45,
+ 0x1b, 0xe2, 0xcc, 0x7a, 0x90, 0x70, 0x8d, 0x91, 0x70, 0x10, 0x9b, 0xc8,
+ 0xd4, 0x64, 0xa4, 0xdd, 0xd0, 0x41, 0x56, 0x7e, 0xf9, 0x48, 0x2e, 0x31,
+ 0xce, 0x3e, 0x92, 0xba, 0x36, 0x73, 0x28, 0x70, 0x50, 0x3a, 0xc9, 0x9a,
+ 0x3f, 0x14, 0x9f, 0xa0, 0xbe, 0x31, 0x0e, 0x74, 0x03, 0x8c, 0x7c, 0x15,
+ 0x9c, 0xea, 0x36, 0x88, 0x03, 0x1d, 0xe6, 0x5c, 0x2d, 0x04, 0xf4, 0x25,
+ 0x46, 0xd8, 0x9b, 0x98, 0x7e, 0x51, 0x45, 0xf3, 0xfc, 0x75, 0x8e, 0xec,
+ 0x5b, 0xeb, 0xaa, 0xc2, 0xaf, 0x5a, 0xbc, 0xa4, 0xd0, 0x51, 0x5b, 0x12,
+ 0x82, 0x9b, 0x18, 0xd6, 0x33, 0x10, 0xc3, 0x98, 0xd4, 0x9d, 0x7c, 0xf2,
+ 0xa8, 0xb3, 0x1b, 0xdd, 0x52, 0xa2, 0x1c, 0x19, 0xe2, 0x97, 0x04, 0xef,
+ 0x5d, 0xf4, 0x7c, 0x3a, 0x21, 0x1c, 0x66, 0x83, 0xf9, 0xdf, 0xf3, 0x8f,
+ 0xf6, 0x4c, 0x32, 0xae, 0x49, 0xa5, 0x52, 0xa5, 0x7e, 0x19, 0x6e, 0x7d,
+ 0x16, 0xdc, 0x1c, 0x54, 0xa1, 0xcc, 0x3d, 0x29, 0x27, 0x8e, 0xd4, 0x2a,
+ 0xbc, 0x2e, 0x5b, 0xb7, 0xe5, 0xd3, 0x2f, 0x19, 0x7b, 0x35, 0xca, 0xcd,
+ 0x48, 0x17, 0x63, 0x51, 0x86, 0xaf, 0x3e, 0x99, 0x95, 0xde, 0x7d, 0xe7,
+ 0x56, 0xd7, 0x7b, 0xf0, 0xe6, 0xfb, 0x65, 0x57, 0x9f, 0x4a, 0x79, 0xd1,
+ 0x19, 0x7f, 0x0b, 0x7d, 0xd1, 0x48, 0xa1, 0x55, 0xbf, 0x55, 0x61, 0xc7,
+ 0xe8, 0xab, 0x81, 0x8c, 0x6a, 0x29, 0x02, 0x72, 0xf9, 0x03, 0x39, 0x50,
+ 0x7e, 0xbc, 0x8a, 0x10, 0xff, 0x94, 0xe4, 0x14, 0x61, 0x4b, 0x63, 0x64,
+ 0x09, 0x75, 0xe2, 0xae, 0x05, 0x61, 0x2e, 0xda, 0x9a, 0x3e, 0x7c, 0xde,
+ 0xd5, 0xe4, 0xb8, 0x9a, 0xe6, 0xc1, 0xc3, 0x8d, 0x18, 0xfe, 0x1f, 0x4d,
+ 0x9f, 0x76, 0xe6, 0x9f, 0xba, 0xa8, 0x51, 0x49, 0x49, 0x26, 0x40, 0x18,
+ 0x92, 0x67, 0xdc, 0xc7, 0xc1, 0xde, 0x16, 0xfa, 0xfc, 0x83, 0xaa, 0xa2,
+ 0xdb, 0x8d, 0x82, 0xba, 0x05, 0xc8, 0x96, 0x63, 0x59, 0xdc, 0x3a, 0x77,
+ 0x96, 0xd0, 0x5d, 0x78, 0xe4, 0xa5, 0x5f, 0xa2, 0x13, 0x3b, 0xbd, 0x53,
+ 0x6c, 0x02, 0x6d, 0x76, 0x14, 0x5c, 0x96, 0x26, 0x3b, 0x49, 0xce, 0x00,
+ 0xad, 0xaa, 0xbd, 0x28, 0x85, 0x19, 0x31, 0x2b, 0xa2, 0x21, 0x1f, 0x98,
+ 0xc7, 0xdc, 0x2f, 0xaa, 0x38, 0x5c, 0xf4, 0x45, 0x4b, 0x46, 0xf2, 0x8f,
+ 0x91, 0x3d, 0xf7, 0x20, 0xe7, 0xb9, 0xc2, 0x36, 0xfc, 0x69, 0x29, 0xd5,
+ 0x8c, 0x82, 0x7b, 0x48, 0xd7, 0x6f, 0xfb, 0xf3, 0x5a, 0x25, 0xf9, 0x2f,
+ 0xbb, 0x87, 0xd8, 0x5c, 0xde, 0xf2, 0x26, 0x2e, 0x2b, 0xc1, 0x5c, 0xc0,
+ 0x4b, 0xbb, 0x5d, 0xfc, 0x8c, 0xe3, 0x08, 0x80, 0x0b, 0xb1, 0x9a, 0x95,
+ 0x9c, 0xc7, 0xf4, 0xa0, 0x6f, 0xc5, 0x78, 0x8c, 0xcd, 0x78, 0xd8, 0xc1,
+ 0x04, 0x89, 0x34, 0xa5, 0xe8, 0x3f, 0xa6, 0xb8, 0xcc, 0x99, 0x95, 0xa1,
+ 0xb6, 0x3b, 0x2b, 0xf9, 0x61, 0x7b, 0x4e, 0x76, 0x52, 0x4b, 0xce, 0x8a,
+ 0xc7, 0x7b, 0xcc, 0x9c, 0x96, 0x57, 0x56, 0x5a, 0xda, 0x4a, 0x5b, 0x3f,
+ 0x69, 0x28, 0x20, 0x8f, 0xba, 0xc1, 0x17, 0xeb, 0x27, 0x0d, 0x15, 0xe4,
+ 0x61, 0x41, 0xe6, 0xe8, 0x27, 0x9f, 0xf8, 0xae, 0x68, 0x6c, 0xc6, 0xa7,
+ 0xff, 0xf7, 0x9a, 0xdc, 0xdf, 0x7c, 0xdd, 0x53, 0x63, 0x60, 0xd4, 0x2a,
+ 0x39, 0x4d, 0xb4, 0x1d, 0x66, 0x08, 0xf6, 0xd5, 0x8b, 0xc2, 0xb5, 0x88,
+ 0xea, 0x30, 0xe5, 0xc6, 0x77, 0xea, 0xf5, 0x64, 0x0d, 0xb3, 0xb7, 0x8c,
+ 0x8a, 0xf9, 0x2c, 0xa4, 0x9a, 0x4b, 0xe0, 0xe2, 0x77, 0x5a, 0x83, 0xef,
+ 0xf4, 0xed, 0xd9, 0x53, 0xfd, 0xb0, 0xe8, 0x91, 0x8a, 0xc9, 0x6e, 0x44,
+ 0x9e, 0x62, 0x5b, 0x2e, 0x68, 0x9a, 0xbd, 0x71, 0xe3, 0x2a, 0x8c, 0x19,
+ 0x73, 0x28, 0xe6, 0x01, 0xdf, 0x06, 0x3d, 0xae, 0xa5, 0x63, 0x0c, 0xd0,
+ 0xd2, 0xf4, 0x29, 0x04, 0x49, 0x86, 0x37, 0xe3, 0xc7, 0x64, 0x3a, 0x95,
+ 0xbb, 0xff, 0x61, 0x06, 0xe7, 0xee, 0x1b, 0x08, 0x29, 0x42, 0x67, 0x86,
+ 0xfb, 0x9c, 0xd4, 0x45, 0x71, 0x6d, 0xcb, 0xa9, 0xc8, 0x8c, 0x43, 0xc8,
+ 0xb5, 0x07, 0x19, 0x7c, 0x1c, 0xe9, 0x29, 0x59, 0xef, 0xf7, 0xdf, 0xac,
+ 0xa7, 0xf5, 0x50, 0x95, 0x90, 0x75, 0x9b, 0xaf, 0x6f, 0x9c, 0x5a, 0x0f,
+ 0x0c, 0x47, 0x7a, 0x10, 0x96, 0xea, 0x12, 0xab, 0x9b, 0xa8, 0x55, 0x2f,
+ 0xb8, 0xe4, 0xa6, 0x8f, 0xe9, 0x57, 0x5e, 0x94, 0xf4, 0x51, 0xd3, 0xb5,
+ 0xb4, 0xdc, 0x72, 0x34, 0x45, 0xd4, 0xc2, 0xd9, 0xff, 0xf4, 0xf0, 0xa9,
+ 0x7d, 0x60, 0x29, 0xe8, 0x6e, 0xc4, 0x0c, 0xda, 0xd9, 0xf4, 0x77, 0xdf,
+ 0x3d, 0xaa, 0xde, 0x47, 0x6f, 0x27, 0x67, 0xa2, 0x51, 0xc2, 0xf1, 0xc3,
+ 0x13, 0x9e, 0xa2, 0x6b, 0x90, 0x95, 0xbd, 0x47, 0x08, 0xd4, 0x47, 0x4f,
+ 0xf9, 0xd1, 0x33, 0x66, 0x24, 0x18, 0x55, 0x37, 0x71, 0xc2, 0x14, 0x67,
+ 0x92, 0xa4, 0x03, 0x12, 0x4d, 0x83, 0xf4, 0xd2, 0x4f, 0x36, 0x0a, 0x5e,
+ 0xe0, 0x9a, 0x9a, 0x95, 0x50, 0x59, 0x59, 0x1a, 0x9b, 0x71, 0xa5, 0x3c,
+ 0xa7, 0x92, 0x4a, 0x9e, 0xcb, 0xe2, 0xc1, 0xd9, 0x25, 0xd2, 0xaf, 0x09,
+ 0x45, 0xbe, 0x13, 0x48, 0x1b, 0x2a, 0xff, 0x38, 0xf5, 0xc6, 0xc0, 0x3a,
+ 0x0f, 0x0d, 0x87, 0x1a, 0x2e, 0xd7, 0xd8, 0xdf, 0x60, 0x92, 0xe0, 0x9c,
+ 0xbd, 0x30, 0x86, 0xd8, 0x43, 0xec, 0x81, 0x99, 0x83, 0xe3, 0xb1, 0x31,
+ 0xdc, 0x1e, 0xbc, 0x6e, 0xe0, 0xaa, 0x9a, 0x2a, 0x79, 0x90, 0x2f, 0x88,
+ 0x4d, 0x98, 0x4d, 0xbb, 0x7a, 0x30, 0xba, 0xd1, 0xa3, 0x59, 0x81, 0x52,
+ 0xdd, 0x0d, 0x6d, 0xb5, 0xdd, 0x93, 0x96, 0xd9, 0x51, 0x53, 0x3b, 0xfc,
+ 0x65, 0x32, 0x54, 0x5b, 0xfc, 0xa1, 0xd9, 0x91, 0xa7, 0xa9, 0xd7, 0x22,
+ 0x82, 0x45, 0xcc, 0x33, 0xca, 0x02, 0x67, 0xec, 0x3e, 0xea, 0xaa, 0x46,
+ 0xe4, 0x31, 0xa4, 0x93, 0xc9, 0xf9, 0x71, 0x88, 0x55, 0x85, 0xc9, 0x4f,
+ 0xf3, 0xf8, 0x83, 0x0f, 0x03, 0x26, 0x41, 0xa3, 0x0e, 0x6b, 0x4f, 0x42,
+ 0xe3, 0x20, 0x44, 0x4b, 0xa8, 0x9f, 0x26, 0x1f, 0xdc, 0x66, 0x53, 0xb7,
+ 0x0e, 0x3c, 0x47, 0x5b, 0xc7, 0x55, 0xf1, 0xb0, 0xbe, 0x46, 0xf4, 0xa4,
+ 0x15, 0x71, 0xa5, 0x18, 0xe6, 0xd5, 0xf3, 0xd5, 0x08, 0x86, 0x1c, 0x1e,
+ 0x83, 0x5a, 0x19, 0xe0, 0x61, 0xc7, 0x3f, 0xec, 0x48, 0x78, 0x03, 0x44,
+ 0x9f, 0x6f, 0xaa, 0xf7, 0x3e, 0x95, 0x4d, 0x37, 0x17, 0xca, 0x0c, 0xa7,
+ 0xea, 0x93, 0xc7, 0xb0, 0x04, 0x1a, 0xb6, 0x81, 0x93, 0xc7, 0x0e, 0x1f,
+ 0xcf, 0x62, 0xb5, 0x96, 0x73, 0x4a, 0x91, 0xe1, 0x47, 0x04, 0x1a, 0x61,
+ 0x24, 0xb0, 0xc3, 0xbd, 0x91, 0xb2, 0x7c, 0x94, 0xde, 0x35, 0xdc, 0x01,
+ 0x99, 0xcd, 0xc9, 0xeb, 0x46, 0x1b, 0x31, 0x3d, 0xf0, 0xa0, 0x89, 0xf2,
+ 0x2a, 0x8d, 0x09, 0x5f, 0x06, 0x55, 0x32, 0x18, 0x16, 0xbb, 0x2d, 0x5d,
+ 0x25, 0x7a, 0xec, 0x2a, 0x2e, 0xfc, 0x73, 0x3e, 0xf4, 0xd0, 0xa1, 0xa3,
+ 0x7c, 0x85, 0x32, 0x03, 0xc9, 0x1a, 0xe9, 0xb0, 0x84, 0xc0, 0xf5, 0x98,
+ 0x55, 0xda, 0xa0, 0xe6, 0x7c, 0x7a, 0x11, 0xb9, 0x6d, 0xa1, 0x29, 0xf9,
+ 0x3f, 0x50, 0x53, 0x7e, 0x60, 0xa7, 0x24, 0x4e, 0xa9, 0x00, 0xd0, 0x0c,
+ 0x7a, 0x87, 0x91, 0x4a, 0x4d, 0xe4, 0x10, 0x17, 0x9a, 0x36, 0xbe, 0xdc,
+ 0x7b, 0x8c, 0x23, 0xb9, 0xfa, 0x83, 0xeb, 0xb0, 0x6e, 0xa3, 0x95, 0x3f,
+ 0xff, 0xc3, 0x78, 0x4d, 0xfe, 0xf9, 0x43, 0xbe, 0xf2, 0x00, 0x10, 0xcc,
+ 0x5d, 0x02, 0x72, 0x28, 0x54, 0x10, 0x59, 0x25, 0x74, 0xaf, 0xdb, 0x86,
+ 0xd5, 0x5c, 0xc3, 0xda, 0xc4, 0x72, 0xae, 0x09, 0xa2, 0x58, 0xec, 0x32,
+ 0xd6, 0xed, 0x03, 0x25, 0xb3, 0x60, 0x03, 0x51, 0xf6, 0x0f, 0x07, 0x75,
+ 0x27, 0x69, 0x9d, 0x30, 0xe4, 0x2c, 0xfc, 0x8c, 0x32, 0x9b, 0x47, 0xda,
+ 0x61, 0x1d, 0xe7, 0x92, 0x81, 0x5a, 0x8c, 0x09, 0x3f, 0xb6, 0xe5, 0x4a,
+ 0xa0, 0x8a, 0x54, 0x10, 0x61, 0xe8, 0x6b, 0xc6, 0xc9, 0x7e, 0x37, 0xba,
+ 0xec, 0x31, 0x9f, 0xf5, 0xa8, 0x5c, 0x43, 0x07, 0x43, 0xd9, 0xd3, 0x25,
+ 0x09, 0x8d, 0x66, 0x7f, 0x68, 0x38, 0xcd, 0x3b, 0x88, 0x22, 0x4e, 0x3c,
+ 0xf0, 0x86, 0x9e, 0x90, 0xcc, 0xc0, 0xdf, 0x99, 0x51, 0x05, 0x9f, 0x2c,
+ 0x04, 0xe2, 0xa4, 0x35, 0xc7, 0xa6, 0x34, 0x48, 0x73, 0xcc, 0xcc, 0x6a,
+ 0xed, 0x42, 0x31, 0x43, 0x05, 0x98, 0xb9, 0x64, 0xb8, 0x28, 0xcf, 0x1d,
+ 0x9b, 0x55, 0xd5, 0x6c, 0x79, 0xc4, 0x42, 0xda, 0xd4, 0x28, 0x2e, 0x68,
+ 0x15, 0x68, 0x4a, 0x07, 0x79, 0xe0, 0xf5, 0xf1, 0xc9, 0x91, 0x29, 0x84,
+ 0xf8, 0xff, 0xd6, 0x7b, 0xf8, 0x72, 0x39, 0xf4, 0x52, 0xee, 0x19, 0xe0,
+ 0xc5, 0x41, 0xeb, 0x11, 0x04, 0x98, 0xaf, 0xd1, 0x94, 0xd2, 0x1f, 0x37,
+ 0xe0, 0x5f, 0x8e, 0xde, 0x7d, 0x73, 0xfc, 0xfe, 0xf4, 0xdd, 0xdb, 0xa3,
+ 0x77, 0xe7, 0x9f, 0xb8, 0xd9, 0x14, 0x81, 0x76, 0xb0, 0x95, 0x9f, 0xcd,
+ 0x95, 0x61, 0xdc, 0xfb, 0x96, 0x70, 0x27, 0xb8, 0x21, 0x35, 0x10, 0x4f,
+ 0xfe, 0xd5, 0x73, 0x87, 0x73, 0x1e, 0xd2, 0x30, 0x2c, 0xe6, 0x97, 0x4e,
+ 0xd1, 0xf5, 0x39, 0xc2, 0x44, 0x96, 0x1e, 0x07, 0x6e, 0xb9, 0x9b, 0x74,
+ 0xc6, 0x1d, 0x69, 0xef, 0xb0, 0x9d, 0x1c, 0xd5, 0x10, 0x81, 0xac, 0x30,
+ 0x66, 0x8f, 0xa6, 0x2f, 0xd8, 0x18, 0x6a, 0x63, 0x12, 0x96, 0xfc, 0x1f,
+ 0x38, 0xff, 0x05, 0x6d, 0xb6, 0xd0, 0x6a, 0x14, 0x40, 0x9e, 0xb4, 0x36,
+ 0x6e, 0x62, 0x9d, 0x54, 0x56, 0x6a, 0x4a, 0x63, 0x6e, 0x2b, 0x2f, 0x9d,
+ 0x0e, 0x4d, 0x77, 0xa6, 0x37, 0xb5, 0x97, 0x42, 0xe0, 0xac, 0xe2, 0x7b,
+ 0xf5, 0x61, 0xc2, 0x5e, 0xfe, 0xb8, 0x8f, 0x16, 0xc5, 0xe7, 0xdf, 0xef,
+ 0x21, 0x6b, 0xfd, 0xe8, 0x77, 0x54, 0xa9, 0x9c, 0x69, 0xc8, 0x55, 0xea,
+ 0x00, 0x34, 0xe0, 0x51, 0x30, 0xe4, 0xa4, 0xe0, 0xca, 0xc7, 0xb3, 0xf7,
+ 0xa7, 0xdf, 0xfd, 0xed, 0x57, 0xfe, 0x84, 0x93, 0x39, 0xfa, 0x3d, 0x96,
+ 0x4c, 0xe8, 0xe0, 0x3f, 0xfe, 0xea, 0x5f, 0x6b, 0x0e, 0xdf, 0x95, 0xd4,
+ 0x26, 0x3a, 0xdd, 0x01, 0xad, 0x99, 0x91, 0x95, 0xc8, 0x62, 0x4f, 0xac,
+ 0x67, 0xd8, 0xcd, 0x81, 0x31, 0xa9, 0xdc, 0xa4, 0xb9, 0x54, 0x4d, 0x06,
+ 0x4d, 0xfc, 0xfe, 0x63, 0x3d, 0x86, 0xc3, 0xb1, 0xb9, 0xbe, 0x0a, 0xf9,
+ 0x84, 0xb0, 0x4e, 0x02, 0xfc, 0x44, 0x15, 0x24, 0x86, 0x20, 0x07, 0x27,
+ 0x27, 0xbf, 0x2a, 0x15, 0xe0, 0x22, 0x43, 0x54, 0x7d, 0x1d, 0x2b, 0x36,
+ 0x76, 0x84, 0x3c, 0xfd, 0x40, 0x67, 0x9b, 0x77, 0xa7, 0x32, 0x9b, 0x7d,
+ 0x32, 0x61, 0xe2, 0x2a, 0x05, 0xc3, 0x23, 0xc1, 0xb8, 0xac, 0x36, 0x78,
+ 0xc3, 0x89, 0x55, 0xeb, 0x5c, 0xba, 0x50, 0x7d, 0xee, 0x65, 0x5c, 0x4a,
+ 0x5c, 0x92, 0xec, 0x5c, 0x2a, 0x6c, 0x60, 0x6a, 0x0a, 0x28, 0x02, 0x15,
+ 0x6b, 0x16, 0x06, 0xaa, 0x14, 0x33, 0x3d, 0xb9, 0x90, 0x02, 0xe5, 0x28,
+ 0x4c, 0xc4, 0x07, 0x93, 0x43, 0xd8, 0x19, 0x90, 0xa3, 0x65, 0x56, 0x5d,
+ 0x53, 0x29, 0x2b, 0x1e, 0x51, 0x52, 0x7c, 0x15, 0x5d, 0x0b, 0x0d, 0x13,
+ 0x9a, 0x53, 0x8f, 0xb1, 0x01, 0x2d, 0x26, 0x41, 0x56, 0x85, 0x66, 0x87,
+ 0xca, 0x41, 0xc2, 0x2a, 0x03, 0x7a, 0xf7, 0x39, 0xf0, 0x92, 0x34, 0x2a,
+ 0xe4, 0xa5, 0x49, 0x1e, 0xa7, 0xad, 0x56, 0x06, 0x05, 0x2c, 0x04, 0x1a,
+ 0xd5, 0x55, 0x90, 0x1b, 0x7c, 0x80, 0x3f, 0x5d, 0x57, 0xe9, 0xf8, 0x22,
+ 0x5c, 0x3b, 0x1a, 0x14, 0x17, 0x82, 0xbf, 0x55, 0x69, 0x3d, 0xa8, 0x72,
+ 0x2b, 0x6e, 0x56, 0x4a, 0x60, 0x92, 0x18, 0xb1, 0xf3, 0x3d, 0xa6, 0x0a,
+ 0x44, 0xe0, 0xe6, 0x47, 0xdd, 0x51, 0x7e, 0x94, 0xbc, 0x6c, 0x11, 0x41,
+ 0x38, 0x33, 0x57, 0xf7, 0xf6, 0xb3, 0x91, 0x5f, 0x75, 0x8e, 0x2d, 0x17,
+ 0xdc, 0x82, 0x7c, 0xb9, 0xcd, 0xe3, 0x3b, 0x96, 0x3c, 0xc0, 0x92, 0xbc,
+ 0x4f, 0x8d, 0x67, 0xe4, 0x37, 0x8f, 0x19, 0xce, 0xc1, 0xc6, 0xe2, 0xa9,
+ 0x46, 0x35, 0x56, 0x81, 0xd4, 0x91, 0x80, 0x78, 0xb1, 0xad, 0x44, 0x20,
+ 0x99, 0x7e, 0x85, 0xa5, 0x33, 0xf1, 0x45, 0x13, 0x9d, 0x3b, 0xd3, 0x40,
+ 0x26, 0x0f, 0x3c, 0x86, 0xb1, 0x21, 0x46, 0x7f, 0x74, 0xc7, 0x33, 0xf3,
+ 0x24, 0x2b, 0x84, 0xe7, 0xc8, 0xfa, 0xa6, 0xa2, 0xeb, 0xa6, 0xa1, 0xd8,
+ 0x76, 0x30, 0xe1, 0xd1, 0x3d, 0x32, 0x72, 0x18, 0x0c, 0x8c, 0x12, 0x19,
+ 0x57, 0x5a, 0x2d, 0xed, 0xc4, 0xd3, 0x24, 0x1f, 0xc7, 0xc3, 0x43, 0xa1,
+ 0x54, 0x72, 0xad, 0xfb, 0xa6, 0x42, 0x20, 0x53, 0xa2, 0x20, 0x67, 0x8b,
+ 0x30, 0x0a, 0x06, 0x0a, 0xd5, 0xa2, 0x31, 0x63, 0xb8, 0x03, 0xc7, 0x45,
+ 0x15, 0xea, 0x06, 0x31, 0xc0, 0x7c, 0xfc, 0xb4, 0x9e, 0x53, 0x79, 0x64,
+ 0x67, 0x24, 0xe1, 0x4e, 0x49, 0xf0, 0x45, 0xdb, 0x18, 0xb1, 0x4f, 0x48,
+ 0x1a, 0x72, 0xa3, 0xe4, 0x2e, 0xd6, 0x32, 0x38, 0xb0, 0x2a, 0x5e, 0xfe,
+ 0x02, 0x46, 0x20, 0xb9, 0x53, 0x32, 0x75, 0x50, 0x16, 0xb3, 0x4d, 0x92,
+ 0x99, 0x13, 0xd3, 0xc9, 0xde, 0xdc, 0x91, 0x7b, 0x51, 0x67, 0x6f, 0x6f,
+ 0xb3, 0x23, 0x01, 0x92, 0x36, 0xe7, 0x13, 0xa4, 0x42, 0x85, 0x8f, 0x6c,
+ 0xe0, 0x43, 0x9c, 0x6a, 0x9b, 0x62, 0xe4, 0xd5, 0xb6, 0x64, 0xb6, 0x6b,
+ 0x3a, 0x84, 0xcd, 0xfb, 0xd8, 0xef, 0x9f, 0x7c, 0xfc, 0xf2, 0xe0, 0xf0,
+ 0xeb, 0xa3, 0x77, 0xaf, 0xa2, 0x7d, 0xa7, 0x18, 0xe7, 0x73, 0x5f, 0x4d,
+ 0x7f, 0xa8, 0x92, 0xb1, 0xa3, 0x55, 0x40, 0x9d, 0x6e, 0x1b, 0xe0, 0x33,
+ 0x6b, 0x8b, 0x2f, 0xae, 0x74, 0x31, 0xd5, 0x7d, 0xee, 0x30, 0x13, 0x69,
+ 0x58, 0x9d, 0x93, 0xae, 0xef, 0x4c, 0x49, 0x54, 0xeb, 0x45, 0xd0, 0x10,
+ 0x46, 0x72, 0xa8, 0xd6, 0x94, 0x1a, 0x2f, 0x23, 0x29, 0x42, 0x20, 0xb3,
+ 0x0c, 0x22, 0x0d, 0xa7, 0x23, 0x5e, 0x84, 0x5c, 0xd2, 0x8e, 0x47, 0x49,
+ 0x3f, 0x1e, 0x35, 0x5a, 0xd6, 0x6b, 0xe6, 0x26, 0x3a, 0x91, 0xae, 0x09,
+ 0xed, 0x46, 0xd1, 0x01, 0x69, 0xd8, 0x50, 0xc9, 0xb1, 0x40, 0xfc, 0x24,
+ 0x76, 0xd5, 0x89, 0x00, 0xe0, 0xe2, 0x64, 0x2c, 0xd2, 0x22, 0x5f, 0xae,
+ 0x75, 0x72, 0x6f, 0xa5, 0x57, 0x18, 0x71, 0x30, 0x5c, 0xa3, 0x63, 0xa6,
+ 0xcb, 0x87, 0x2a, 0x5a, 0xc5, 0x75, 0xc7, 0xce, 0xba, 0xd7, 0xf6, 0x80,
+ 0x30, 0x49, 0x59, 0x55, 0xe3, 0x6e, 0x74, 0x99, 0xcf, 0xea, 0x31, 0x30,
+ 0xe9, 0x65, 0x75, 0x9d, 0x79, 0xb9, 0xcf, 0x60, 0xbb, 0x8e, 0xe8, 0xb7,
+ 0x30, 0x4e, 0x82, 0xf5, 0xda, 0xdd, 0x28, 0xaf, 0xe0, 0x9f, 0x60, 0xe5,
+ 0xe7, 0xf4, 0x76, 0x39, 0xab, 0xe8, 0xf7, 0xd5, 0x10, 0x36, 0x2b, 0x4f,
+ 0x09, 0xf9, 0x10, 0xcb, 0x6a, 0xe2, 0xa0, 0x63, 0x44, 0x3a, 0x1b, 0x16,
+ 0xe3, 0x0b, 0x78, 0xd9, 0x4c, 0xfd, 0xaf, 0x27, 0xa7, 0x5f, 0xbd, 0x3a,
+ 0x7e, 0x1f, 0xed, 0x37, 0x11, 0x95, 0x03, 0xdc, 0x17, 0x64, 0xbf, 0x66,
+ 0x81, 0x63, 0xd7, 0x80, 0x34, 0xd6, 0xad, 0x2b, 0xc5, 0xeb, 0xae, 0x6a,
+ 0xf5, 0xd1, 0x44, 0x92, 0xe4, 0xec, 0x04, 0x5a, 0x7b, 0x81, 0x52, 0x6c,
+ 0x34, 0xc3, 0x8a, 0xfd, 0xbf, 0x8f, 0x8b, 0xcb, 0x2a, 0x10, 0x85, 0x61,
+ 0x1e, 0x37, 0x03, 0x74, 0x0d, 0xc2, 0x10, 0x1b, 0x74, 0xbc, 0x13, 0xf8,
+ 0xe7, 0x48, 0x8a, 0x47, 0x28, 0x04, 0x9c, 0x22, 0x02, 0x54, 0x28, 0x40,
+ 0xe5, 0x36, 0x0b, 0x1a, 0x45, 0xab, 0xc0, 0x29, 0x57, 0xe9, 0xdd, 0x5a,
+ 0x2f, 0x7a, 0x45, 0xa7, 0xd8, 0xcd, 0xe7, 0xaa, 0x52, 0xad, 0xd3, 0xd3,
+ 0x38, 0x09, 0xc8, 0x20, 0xaf, 0x49, 0x49, 0x42, 0xf7, 0x38, 0x95, 0x16,
+ 0xf6, 0xa2, 0x6f, 0xa9, 0x69, 0x25, 0x11, 0x6f, 0x50, 0xc0, 0x1f, 0xd8,
+ 0x3d, 0x28, 0x50, 0x80, 0x07, 0xbc, 0xf4, 0xf5, 0xd1, 0xdf, 0x60, 0x73,
+ 0xd0, 0x08, 0x62, 0x78, 0xf1, 0xb9, 0x1b, 0xc3, 0x28, 0x63, 0x69, 0xed,
+ 0x51, 0xbd, 0x45, 0x67, 0x33, 0x88, 0x03, 0xa3, 0xe5, 0x45, 0xaa, 0xf0,
+ 0xf0, 0x73, 0xfb, 0x1d, 0x44, 0x4a, 0x11, 0x90, 0x2b, 0x50, 0x1c, 0x1c,
+ 0xaa, 0x48, 0x2e, 0x5d, 0xc2, 0xd8, 0xff, 0x7c, 0x20, 0xe5, 0x20, 0xfa,
+ 0x4a, 0x12, 0x57, 0x36, 0x33, 0x56, 0x06, 0xaa, 0x4c, 0xc9, 0xf8, 0xfe,
+ 0xe7, 0xd4, 0x34, 0x4d, 0x04, 0x4e, 0xbd, 0x40, 0x0d, 0x10, 0x06, 0x44,
+ 0xc8, 0x08, 0xf6, 0xad, 0xf1, 0xe6, 0xe5, 0xa9, 0xa7, 0xd5, 0x30, 0x22,
+ 0x25, 0x0d, 0xc1, 0x01, 0x25, 0x2c, 0x78, 0x53, 0x78, 0xd5, 0x6f, 0xb1,
+ 0xcd, 0xce, 0x55, 0x52, 0x5e, 0x8b, 0xa7, 0xe5, 0xd6, 0x12, 0x9a, 0x8b,
+ 0x5d, 0xc6, 0x3e, 0x44, 0xf4, 0x2d, 0x71, 0x09, 0x35, 0x15, 0xd2, 0x2d,
+ 0xd8, 0xd3, 0xfe, 0x9e, 0x84, 0xab, 0x80, 0xb7, 0x0b, 0x9c, 0xab, 0x2f,
+ 0x0b, 0xbc, 0x4d, 0xe8, 0x87, 0xdc, 0xf2, 0xb3, 0x1b, 0xbd, 0xeb, 0xf7,
+ 0x03, 0x68, 0x2e, 0x78, 0xbc, 0xe0, 0x31, 0xd8, 0x47, 0x56, 0x55, 0xe1,
+ 0xcf, 0xf3, 0xd3, 0xc3, 0xd3, 0x13, 0xf8, 0xcb, 0xd1, 0xeb, 0xe3, 0xef,
+ 0xac, 0x39, 0x7b, 0x6e, 0x75, 0x64, 0x2e, 0x49, 0xf2, 0xd0, 0xb4, 0x05,
+ 0x10, 0xcb, 0xd1, 0xbc, 0x09, 0xff, 0x2f, 0xbb, 0x63, 0x3f, 0x46, 0xb3,
+ 0x6b, 0xb1, 0x2b, 0xca, 0x78, 0x58, 0x53, 0x11, 0x68, 0x79, 0x0a, 0x79,
+ 0xc5, 0x55, 0xc0, 0xc9, 0x8d, 0xe0, 0x5a, 0x0d, 0x75, 0x7b, 0x52, 0x70,
+ 0x1b, 0x48, 0x67, 0x55, 0xf9, 0x01, 0x7a, 0x0c, 0x3e, 0x31, 0x25, 0x31,
+ 0x72, 0xa3, 0x61, 0x79, 0x87, 0xed, 0x35, 0x9b, 0xa7, 0x5d, 0x67, 0x20,
+ 0x75, 0x15, 0xd5, 0xb0, 0xbd, 0xb5, 0x94, 0x42, 0x49, 0x2e, 0x59, 0x4b,
+ 0x39, 0x21, 0x98, 0x09, 0x33, 0x4c, 0x73, 0x11, 0xb2, 0x72, 0xb9, 0xe7,
+ 0x29, 0x87, 0x07, 0x5d, 0x5f, 0xd5, 0x5e, 0xc3, 0x06, 0x05, 0x12, 0x05,
+ 0xf1, 0x7a, 0x18, 0x6b, 0x03, 0xff, 0xe3, 0x7d, 0x9d, 0xbe, 0xaa, 0x18,
+ 0xb1, 0x6c, 0x9f, 0x68, 0xda, 0xce, 0xd4, 0xf7, 0xde, 0x22, 0xf1, 0xc5,
+ 0x3f, 0xd6, 0xb4, 0x7e, 0xab, 0x05, 0x9f, 0xf6, 0x57, 0xee, 0x55, 0x68,
+ 0x63, 0xa9, 0x5f, 0xb5, 0xb3, 0x68, 0x0c, 0xf4, 0x4e, 0xfc, 0x7d, 0x96,
+ 0xdd, 0x24, 0x04, 0xb5, 0x82, 0xc8, 0x2c, 0x31, 0xbf, 0xd4, 0x1a, 0x23,
+ 0x79, 0xd2, 0x20, 0x49, 0x73, 0x94, 0xdd, 0xa7, 0x0c, 0xb2, 0xdb, 0x1a,
+ 0xe3, 0xea, 0x49, 0x83, 0xc4, 0x6a, 0xab, 0x7c, 0xf2, 0xc9, 0xd1, 0x77,
+ 0xc7, 0xe7, 0xd1, 0xe1, 0xe9, 0xab, 0xc6, 0x99, 0x29, 0x53, 0xee, 0x2e,
+ 0x8c, 0xb7, 0x78, 0x0e, 0x9c, 0x07, 0xaf, 0xda, 0xb6, 0xd4, 0x9c, 0x0f,
+ 0x8a, 0x7e, 0xc5, 0x4a, 0x71, 0x57, 0xb2, 0x92, 0x31, 0xb8, 0x31, 0x11,
+ 0x8c, 0xc2, 0x3d, 0x0e, 0xe6, 0x96, 0x53, 0x3a, 0x53, 0xd9, 0x8a, 0x40,
+ 0xec, 0x97, 0x90, 0x94, 0xdc, 0x97, 0xcb, 0x8c, 0x98, 0x33, 0x3a, 0x11,
+ 0xa1, 0x6a, 0x48, 0x26, 0x2f, 0x8b, 0x2a, 0x07, 0x15, 0x9c, 0x84, 0x2f,
+ 0xc6, 0xe0, 0x09, 0xdd, 0x94, 0x31, 0x55, 0xb2, 0x5a, 0xa7, 0xe3, 0xd6,
+ 0x12, 0x6d, 0x6a, 0x95, 0x67, 0x83, 0xdd, 0x89, 0xd1, 0x45, 0x76, 0xe1,
+ 0x0d, 0x3b, 0x32, 0x2d, 0x0a, 0x51, 0x57, 0xcb, 0x8b, 0x86, 0x8e, 0x16,
+ 0xb0, 0x20, 0xcd, 0x10, 0xe6, 0x3b, 0x5b, 0x92, 0x6e, 0x90, 0x64, 0x63,
+ 0x8e, 0x4f, 0x48, 0x45, 0x47, 0xf6, 0xb3, 0xe3, 0x31, 0xda, 0x36, 0x0e,
+ 0x02, 0x58, 0xfe, 0x98, 0x52, 0xdc, 0x46, 0x7c, 0x2c, 0xaa, 0x7b, 0xd0,
+ 0x80, 0xef, 0xe8, 0xc6, 0xc7, 0xa3, 0x2e, 0x58, 0xe6, 0xf6, 0xcd, 0x1d,
+ 0x4d, 0xf7, 0x57, 0xcc, 0xf4, 0xa2, 0x34, 0x6e, 0x57, 0xf5, 0x80, 0xdb,
+ 0xd8, 0x88, 0xc2, 0x9e, 0x71, 0x47, 0xaf, 0xb4, 0xca, 0x28, 0x41, 0xc6,
+ 0x3f, 0x63, 0x92, 0x50, 0xa5, 0x5f, 0x55, 0x18, 0x35, 0xe9, 0xa9, 0x98,
+ 0xde, 0x4d, 0xc7, 0xd9, 0x30, 0xa3, 0x6c, 0x46, 0xc5, 0x86, 0x86, 0x4f,
+ 0x11, 0xbd, 0xa8, 0xc5, 0x4e, 0x00, 0x85, 0xd6, 0x6a, 0x12, 0x7a, 0x15,
+ 0x8e, 0x0a, 0x22, 0x60, 0x57, 0x40, 0x55, 0x8b, 0x41, 0x82, 0x00, 0x8e,
+ 0x84, 0x8f, 0x94, 0xe4, 0x8c, 0x99, 0xa3, 0x3b, 0x10, 0x46, 0x8f, 0xb1,
+ 0x98, 0x19, 0xbb, 0xa2, 0xca, 0x93, 0x99, 0x43, 0x33, 0x56, 0xf4, 0x13,
+ 0x57, 0xc2, 0xb0, 0xdd, 0x23, 0x1e, 0x37, 0xb4, 0xb8, 0x86, 0xc6, 0xe5,
+ 0x30, 0x08, 0x65, 0x10, 0x54, 0xad, 0xc8, 0xe8, 0x33, 0xf7, 0x2b, 0xf8,
+ 0x96, 0x7e, 0x83, 0x11, 0xc0, 0xed, 0x27, 0xdc, 0x50, 0xbe, 0xfd, 0x06,
+ 0x19, 0x74, 0x0f, 0x7f, 0xe5, 0x79, 0x9b, 0x5f, 0x9c, 0x3c, 0x01, 0xfa,
+ 0x90, 0x79, 0xf2, 0x85, 0xf8, 0xe1, 0x53, 0x84, 0xe5, 0x11, 0x27, 0x0f,
+ 0x58, 0x4d, 0x63, 0x59, 0xae, 0xfc, 0x84, 0xf2, 0xdd, 0xc8, 0x93, 0x4e,
+ 0xd4, 0xb7, 0xf3, 0x01, 0xf5, 0xde, 0x75, 0x5a, 0xbe, 0x94, 0xef, 0x62,
+ 0x39, 0x02, 0xdb, 0xb8, 0x04, 0xb2, 0x99, 0x19, 0x46, 0xe4, 0xe1, 0xf8,
+ 0x47, 0x58, 0x73, 0x04, 0x57, 0x55, 0x61, 0xfe, 0x2d, 0x6f, 0x78, 0xb8,
+ 0x23, 0xad, 0xc8, 0x34, 0x52, 0x6c, 0x56, 0x32, 0xa4, 0x96, 0x55, 0x35,
+ 0xb5, 0xb3, 0x26, 0xaf, 0x17, 0x75, 0x10, 0x04, 0x93, 0x8f, 0xde, 0x16,
+ 0x5e, 0x7f, 0x93, 0xe2, 0xa2, 0x16, 0x08, 0xf9, 0x08, 0xeb, 0x87, 0x98,
+ 0x3e, 0xa0, 0x77, 0x5f, 0x8a, 0x72, 0xe5, 0xf4, 0x3f, 0x41, 0xe6, 0x37,
+ 0xae, 0x75, 0x10, 0x02, 0x14, 0x35, 0x09, 0xcc, 0xae, 0x5d, 0x03, 0xb5,
+ 0xb9, 0x61, 0xe8, 0x80, 0x8b, 0x42, 0x20, 0x58, 0xda, 0x0a, 0x50, 0x1a,
+ 0xa9, 0xe7, 0xc5, 0x6d, 0x42, 0xc2, 0xc5, 0x00, 0x0b, 0x59, 0xef, 0x9a,
+ 0xc9, 0x1a, 0x41, 0x2d, 0xc6, 0x2f, 0xa1, 0xcc, 0xc9, 0x23, 0x9c, 0x70,
+ 0x98, 0x8a, 0xab, 0xaf, 0xb8, 0x30, 0x5c, 0x2e, 0xb3, 0x2e, 0xb9, 0x9e,
+ 0x8d, 0xf4, 0xe4, 0x94, 0x2c, 0x92, 0xcc, 0x37, 0x69, 0x08, 0x23, 0x53,
+ 0xe1, 0xcf, 0x1d, 0x45, 0xd9, 0x22, 0x84, 0x3a, 0xeb, 0xd9, 0x34, 0xeb,
+ 0xb9, 0x25, 0x4e, 0x39, 0x3b, 0xe8, 0xf7, 0x95, 0x4f, 0x0e, 0x03, 0x2c,
+ 0x21, 0xd9, 0x28, 0x88, 0x5d, 0xa9, 0xb8, 0xd9, 0xbe, 0xf5, 0x25, 0x83,
+ 0xb4, 0x52, 0x23, 0x37, 0x59, 0xd8, 0xbd, 0x62, 0x28, 0x3e, 0x72, 0x80,
+ 0xcb, 0x7a, 0x99, 0xaf, 0x74, 0xc5, 0xb7, 0x8b, 0x29, 0x19, 0xb6, 0x04,
+ 0x38, 0xd9, 0x09, 0xe9, 0x4c, 0x78, 0x5b, 0x1a, 0x04, 0x26, 0x1f, 0xc6,
+ 0xdd, 0x14, 0x25, 0x99, 0x33, 0x91, 0x6d, 0x7f, 0xd1, 0xdf, 0xf0, 0xa2,
+ 0xba, 0xbf, 0x68, 0xd1, 0xdf, 0x04, 0x16, 0xbd, 0x63, 0x0f, 0x0e, 0x7f,
+ 0x2c, 0xda, 0xda, 0x7a, 0xae, 0xb5, 0xe2, 0xc0, 0xc7, 0xf4, 0xbd, 0xe0,
+ 0x07, 0xe1, 0xb9, 0x98, 0xaa, 0x50, 0x02, 0x5e, 0x0c, 0x7b, 0x7a, 0x9d,
+ 0x4f, 0xed, 0x9a, 0x4f, 0x81, 0xa5, 0x83, 0x63, 0xa1, 0x4a, 0xc5, 0xe2,
+ 0xc7, 0x17, 0x4b, 0xea, 0x75, 0x44, 0x8f, 0xd1, 0x2d, 0x66, 0xd0, 0xd7,
+ 0xe1, 0x7c, 0x6b, 0x9d, 0x85, 0xf3, 0x9d, 0x67, 0xc6, 0xe1, 0xbf, 0xbe,
+ 0xa5, 0xf9, 0x77, 0x07, 0x24, 0xa4, 0xc7, 0xe9, 0x84, 0x38, 0x73, 0x94,
+ 0x22, 0x32, 0xaf, 0xd5, 0x58, 0x19, 0xa2, 0xe7, 0xa2, 0x4c, 0xa8, 0xd5,
+ 0xd9, 0x38, 0xb9, 0x0f, 0x60, 0x91, 0x6b, 0x03, 0x43, 0xf2, 0xab, 0xc1,
+ 0xf1, 0xbc, 0x4c, 0x73, 0x74, 0x21, 0x91, 0x9a, 0x20, 0xae, 0x0a, 0x74,
+ 0x76, 0x50, 0xca, 0xdd, 0x85, 0x89, 0x7d, 0xca, 0x57, 0x3d, 0xb0, 0x3e,
+ 0x0c, 0x2f, 0xd5, 0xed, 0xf2, 0xdb, 0x70, 0x8b, 0x81, 0xcd, 0xe7, 0x76,
+ 0x8b, 0x86, 0xce, 0x25, 0x81, 0xe6, 0x1a, 0xa3, 0x82, 0xba, 0xf4, 0x53,
+ 0x81, 0xa2, 0x49, 0x09, 0x52, 0xc1, 0xe5, 0xf1, 0xa5, 0xbc, 0x69, 0xbf,
+ 0xc2, 0x02, 0xf9, 0x0c, 0xc5, 0x9d, 0x34, 0x75, 0xea, 0x45, 0xa7, 0x14,
+ 0x31, 0x6a, 0x74, 0x57, 0x64, 0x7b, 0x2d, 0xb1, 0x31, 0xf7, 0x26, 0xeb,
+ 0xbe, 0xb4, 0x7b, 0x6c, 0xa6, 0xa4, 0xa9, 0xb2, 0xeb, 0x2a, 0x67, 0xcd,
+ 0x5d, 0xa3, 0xd1, 0xd6, 0x34, 0x7a, 0x7f, 0x74, 0xfe, 0x9e, 0x32, 0xc7,
+ 0x50, 0x04, 0x78, 0x56, 0x56, 0x52, 0xae, 0x19, 0x4c, 0x60, 0x11, 0x68,
+ 0x56, 0x45, 0xb1, 0x22, 0x82, 0x01, 0xde, 0xcd, 0x8e, 0xf3, 0x3f, 0xf5,
+ 0x3d, 0x53, 0x01, 0xc4, 0x24, 0xb7, 0x49, 0x25, 0x4d, 0xe8, 0xf9, 0xad,
+ 0x2d, 0x9b, 0x3d, 0x0d, 0x0b, 0xbf, 0x4c, 0x85, 0x2b, 0xa5, 0xe2, 0xb3,
+ 0x27, 0x95, 0x09, 0x5a, 0x99, 0xad, 0x0e, 0x0d, 0x7c, 0x88, 0xab, 0x02,
+ 0x8a, 0x32, 0x70, 0x4f, 0xca, 0xa7, 0x55, 0x35, 0xe0, 0x29, 0x18, 0xc3,
+ 0x52, 0xbe, 0x26, 0xc5, 0x48, 0x5c, 0x87, 0xc0, 0x4d, 0x89, 0xa2, 0x9d,
+ 0x8d, 0x8d, 0x40, 0x2d, 0x61, 0x32, 0x00, 0xb1, 0x2a, 0x8a, 0x9e, 0x94,
+ 0xfc, 0x73, 0xd9, 0x35, 0xed, 0x17, 0xa9, 0x9f, 0x15, 0xda, 0x22, 0xf1,
+ 0x05, 0x86, 0xdc, 0x90, 0x62, 0xbe, 0xd1, 0xb1, 0xc5, 0x52, 0xe6, 0x5b,
+ 0x82, 0x20, 0x50, 0xa2, 0xb5, 0xa4, 0x0b, 0xe3, 0x13, 0x70, 0xc6, 0xb6,
+ 0x75, 0xb3, 0x90, 0xbb, 0x82, 0xc3, 0xbf, 0xde, 0xcc, 0x3c, 0x09, 0xbe,
+ 0xb5, 0x1b, 0xe0, 0x88, 0xfe, 0xf9, 0xe9, 0x7b, 0x61, 0x31, 0xff, 0x76,
+ 0x26, 0x8a, 0xd0, 0x13, 0x16, 0x0b, 0xb5, 0xeb, 0x83, 0x4b, 0x32, 0xf0,
+ 0x24, 0x8e, 0x6b, 0xba, 0xfb, 0x38, 0x5f, 0x65, 0x19, 0xf0, 0x1e, 0x71,
+ 0x2a, 0x64, 0x69, 0xdf, 0x08, 0xce, 0x8d, 0xf6, 0x84, 0xd2, 0x93, 0xe9,
+ 0xbc, 0xc4, 0x07, 0xed, 0x94, 0x4f, 0x30, 0xe3, 0xba, 0x20, 0x1f, 0x09,
+ 0xc2, 0x0b, 0xf6, 0x94, 0x92, 0x82, 0x28, 0x4d, 0xda, 0xf7, 0x78, 0x91,
+ 0x0f, 0xd1, 0xa9, 0x6d, 0xfb, 0xc5, 0x32, 0x5e, 0x96, 0x69, 0x0c, 0x65,
+ 0xfc, 0x31, 0x25, 0xe7, 0x72, 0x5b, 0x2c, 0xc9, 0x82, 0x4e, 0x38, 0x6c,
+ 0x33, 0xf4, 0xba, 0x2a, 0x16, 0xe5, 0x48, 0xb2, 0x5f, 0xe5, 0xea, 0x54,
+ 0x5b, 0xc2, 0xaa, 0xe0, 0xf6, 0xde, 0x3f, 0x3b, 0x7d, 0x7f, 0x6e, 0x6e,
+ 0x7d, 0xfc, 0x2c, 0xfd, 0xa0, 0x75, 0x7a, 0xb0, 0xaa, 0x50, 0x40, 0x16,
+ 0xe5, 0x6e, 0xc3, 0x1d, 0xf0, 0x62, 0x67, 0x62, 0x2e, 0xf0, 0x96, 0xd0,
+ 0x38, 0x3a, 0x10, 0x9c, 0x5a, 0xc4, 0x8d, 0x2b, 0xd8, 0x61, 0x6a, 0xa4,
+ 0x0d, 0xfb, 0x5d, 0xe8, 0xaa, 0x99, 0x03, 0x04, 0x6e, 0xf5, 0xde, 0xed,
+ 0xcd, 0x00, 0x67, 0xe0, 0x95, 0xf0, 0xfe, 0xa8, 0x7f, 0xce, 0x53, 0xc7,
+ 0xbf, 0x79, 0x53, 0x67, 0x28, 0x2a, 0xf9, 0xa1, 0x67, 0xc3, 0x18, 0xce,
+ 0xc0, 0x6c, 0x75, 0x74, 0xd7, 0xe1, 0xf8, 0x81, 0x5e, 0xda, 0xdb, 0xdb,
+ 0x4e, 0x95, 0x04, 0x89, 0x4c, 0xe1, 0x13, 0x3a, 0xdf, 0xf4, 0x83, 0x8e,
+ 0x7c, 0xa4, 0x03, 0x9a, 0x99, 0x9c, 0x87, 0x46, 0xf7, 0xc0, 0xed, 0x1d,
+ 0x3b, 0xc4, 0x14, 0xaf, 0x2a, 0x19, 0xe1, 0x98, 0x61, 0xd0, 0xc6, 0xf4,
+ 0xc3, 0x58, 0x79, 0x85, 0xee, 0x0b, 0xe6, 0x0a, 0x7e, 0xce, 0x8e, 0xb3,
+ 0x6b, 0x7c, 0xbf, 0xaa, 0x2d, 0x38, 0x73, 0xc1, 0x1f, 0x6b, 0xc6, 0x30,
+ 0x29, 0x1c, 0x2d, 0x9e, 0xdb, 0x66, 0x56, 0xff, 0x32, 0x19, 0xd9, 0x1a,
+ 0x07, 0x5e, 0x7b, 0xe3, 0x5a, 0x00, 0x7d, 0x2b, 0xcb, 0x67, 0xdc, 0x7b,
+ 0x22, 0x29, 0xc7, 0xd8, 0xe5, 0x16, 0xa4, 0x48, 0xc9, 0xe8, 0x12, 0xb7,
+ 0x79, 0xa8, 0xf7, 0x99, 0xf3, 0x0d, 0xb9, 0x82, 0xd0, 0x91, 0x38, 0x74,
+ 0xae, 0xea, 0x64, 0x24, 0xa7, 0xd8, 0x2a, 0xfc, 0xe8, 0x5a, 0x36, 0x17,
+ 0x45, 0x2f, 0x3a, 0x4b, 0x4b, 0xea, 0x69, 0x04, 0xdc, 0xfa, 0x1f, 0x76,
+ 0x38, 0x3e, 0x26, 0x18, 0x2f, 0x56, 0x55, 0x00, 0xb1, 0xbb, 0x7a, 0xfc,
+ 0x13, 0x82, 0xf1, 0xb2, 0x9d, 0xf3, 0xbc, 0xf5, 0xbe, 0xb4, 0x2f, 0x57,
+ 0xb0, 0x14, 0x30, 0xe1, 0xdb, 0x8f, 0xec, 0x08, 0x67, 0x81, 0x7d, 0x4f,
+ 0x43, 0x18, 0xe1, 0x8c, 0xa7, 0x59, 0xda, 0x69, 0x8f, 0x78, 0x84, 0x0b,
+ 0x7d, 0xa6, 0x21, 0xc4, 0x9d, 0xa1, 0xf8, 0x3a, 0x38, 0x18, 0x98, 0xbe,
+ 0xea, 0x58, 0x6a, 0x85, 0xca, 0x1c, 0x8c, 0x95, 0xa3, 0xac, 0x1d, 0x9b,
+ 0x7a, 0x4b, 0x37, 0xb1, 0x8a, 0x68, 0x6b, 0xf0, 0x9c, 0xdb, 0xd4, 0x4d,
+ 0x9a, 0xd9, 0x0f, 0x3b, 0xcc, 0x8b, 0x86, 0x6f, 0xcc, 0x0d, 0xd6, 0x98,
+ 0x9d, 0xd4, 0x78, 0x89, 0x53, 0x6f, 0x90, 0x10, 0x22, 0x6b, 0x02, 0xf7,
+ 0xbb, 0x6b, 0x00, 0xec, 0xec, 0xda, 0xa1, 0x2e, 0x08, 0xa3, 0x56, 0x0b,
+ 0x10, 0x0e, 0x1a, 0x61, 0x55, 0xd3, 0xca, 0x35, 0x33, 0x4f, 0xba, 0x06,
+ 0x65, 0xe0, 0x50, 0x39, 0xdf, 0x78, 0x2e, 0x76, 0x31, 0x1a, 0xc6, 0xf9,
+ 0xbd, 0x2d, 0xc0, 0xec, 0x71, 0x5a, 0x15, 0x7b, 0xd6, 0xb8, 0x99, 0xb7,
+ 0xfc, 0x46, 0xdc, 0xc5, 0x57, 0xe2, 0xb9, 0x99, 0x24, 0x77, 0xde, 0x25,
+ 0x3f, 0x99, 0x4d, 0xa4, 0xf6, 0xc8, 0xf9, 0xd2, 0x0b, 0x71, 0x73, 0x70,
+ 0xb9, 0x9c, 0xc1, 0xe2, 0x75, 0x16, 0x82, 0x36, 0x97, 0x98, 0xd4, 0x9a,
+ 0x1f, 0x07, 0xe2, 0x11, 0x8b, 0x51, 0x2a, 0xd3, 0xf1, 0x31, 0xd0, 0x07,
+ 0x03, 0x05, 0xad, 0x28, 0xbc, 0xea, 0x70, 0x28, 0x1c, 0x70, 0x6a, 0xa4,
+ 0xb7, 0x3c, 0xc6, 0xbf, 0x52, 0x94, 0xc9, 0x40, 0xfc, 0xb6, 0x4c, 0x7f,
+ 0x22, 0x65, 0xb2, 0xc7, 0xd7, 0x0d, 0x63, 0x5b, 0xf0, 0x2a, 0xf3, 0x59,
+ 0xe2, 0x18, 0xfa, 0x3b, 0x2f, 0xc5, 0x87, 0x25, 0x3e, 0x12, 0x4c, 0x2d,
+ 0xcb, 0xd3, 0xda, 0x4b, 0x86, 0xd9, 0xdd, 0xb4, 0xfe, 0xdd, 0x34, 0x2d,
+ 0xa5, 0x16, 0xd8, 0x2d, 0xb3, 0xc1, 0x4e, 0x5a, 0xfd, 0x37, 0xd1, 0xdb,
+ 0x57, 0xbb, 0x98, 0x21, 0x7c, 0x99, 0x96, 0xd3, 0x12, 0x6b, 0x40, 0x94,
+ 0x87, 0x4f, 0xbf, 0x76, 0x06, 0xdb, 0xb2, 0x29, 0xa0, 0xda, 0x97, 0x40,
+ 0xc5, 0x19, 0x9b, 0x0c, 0xb0, 0x85, 0x88, 0x8b, 0x74, 0xd9, 0x95, 0xcc,
+ 0x00, 0xc5, 0xed, 0x57, 0x3c, 0x69, 0xd2, 0x5b, 0x42, 0x40, 0x32, 0xce,
+ 0x47, 0xb6, 0xad, 0x04, 0x2b, 0xef, 0xa7, 0xe4, 0xb3, 0xbf, 0x44, 0xd3,
+ 0x20, 0x70, 0xa2, 0x76, 0x59, 0x6a, 0x1e, 0xf2, 0xb9, 0x47, 0x25, 0xd6,
+ 0x7f, 0x8d, 0x54, 0xf4, 0x56, 0x84, 0x6c, 0x77, 0xd7, 0x75, 0x2d, 0x60,
+ 0x07, 0x21, 0x71, 0xf1, 0x93, 0x4b, 0x1f, 0x75, 0x14, 0xe7, 0xd9, 0x67,
+ 0xe6, 0x59, 0xf4, 0x2a, 0x51, 0x68, 0x40, 0xdb, 0xbc, 0xcf, 0x79, 0x43,
+ 0xd4, 0x5f, 0x35, 0x12, 0x54, 0x35, 0x63, 0x8d, 0xc7, 0xa1, 0xbd, 0x51,
+ 0x14, 0x77, 0x5f, 0xb6, 0x1c, 0x2a, 0xd4, 0x41, 0xd3, 0x30, 0x26, 0x2d,
+ 0x2a, 0x9b, 0x5e, 0xb9, 0x87, 0xf3, 0x19, 0xdf, 0xd2, 0x67, 0xed, 0xaa,
+ 0x29, 0x95, 0x81, 0xa9, 0x0b, 0x5e, 0xa7, 0x47, 0x9d, 0x59, 0xff, 0xf0,
+ 0x20, 0x9a, 0x57, 0x08, 0x4e, 0xbc, 0xee, 0x7c, 0x64, 0x53, 0xce, 0x0c,
+ 0x2c, 0xb9, 0xb8, 0xcc, 0xb3, 0x9f, 0x15, 0xdd, 0x0c, 0xef, 0x67, 0x6d,
+ 0x57, 0xef, 0x3c, 0xbe, 0x25, 0x02, 0xe3, 0x26, 0x19, 0x67, 0x22, 0x14,
+ 0x1b, 0x8d, 0x14, 0x9f, 0x6d, 0x0b, 0xd7, 0xde, 0x65, 0x78, 0x44, 0x39,
+ 0xf9, 0x0f, 0x8b, 0xfa, 0x30, 0xd1, 0x2c, 0x6d, 0x40, 0xc9, 0x3d, 0xdb,
+ 0x11, 0xad, 0x4b, 0xb5, 0x63, 0xbc, 0x7b, 0x91, 0x10, 0x63, 0x6a, 0xc2,
+ 0xd0, 0x16, 0xd3, 0xcf, 0xe4, 0xde, 0x93, 0xad, 0xa4, 0x88, 0x1a, 0xaa,
+ 0x9a, 0x22, 0xa1, 0x11, 0xf3, 0xa9, 0x4c, 0x6f, 0xb3, 0x5c, 0x2a, 0xe3,
+ 0xbc, 0xd7, 0x9f, 0xcd, 0xf1, 0x4d, 0x56, 0x7c, 0x69, 0x1e, 0x11, 0x2f,
+ 0x39, 0xcf, 0x3f, 0xb7, 0x27, 0xa1, 0xd1, 0xc0, 0x42, 0xbb, 0x17, 0x74,
+ 0xdd, 0x26, 0x25, 0x7a, 0x96, 0xd8, 0x8d, 0x92, 0x72, 0x47, 0xcd, 0x40,
+ 0xcf, 0xc5, 0x0b, 0xf3, 0xf9, 0x71, 0x81, 0xd2, 0xd4, 0xf9, 0x1e, 0xb3,
+ 0xd4, 0x6b, 0x0a, 0x99, 0x59, 0xf3, 0x20, 0x8f, 0xce, 0x43, 0xe8, 0x35,
+ 0xcf, 0x5e, 0x0a, 0x6f, 0xe8, 0x7d, 0x69, 0x0c, 0xd6, 0x79, 0x6f, 0x3c,
+ 0xdf, 0x70, 0xd5, 0xd5, 0x11, 0xa6, 0x10, 0x31, 0xca, 0xd7, 0xdc, 0x17,
+ 0x98, 0x33, 0x8e, 0xc7, 0x88, 0x9b, 0x39, 0xe6, 0x67, 0x6c, 0xb7, 0x01,
+ 0xfb, 0xd8, 0x56, 0x43, 0xe8, 0x9e, 0xbb, 0x0a, 0x54, 0x74, 0xfc, 0xca,
+ 0x79, 0x70, 0xdb, 0x2e, 0x30, 0x19, 0xa3, 0x36, 0x70, 0xcf, 0xbe, 0xaa,
+ 0x2a, 0x5a, 0xc5, 0xb7, 0x9c, 0x7a, 0xe6, 0xe7, 0xcc, 0x19, 0xef, 0x0a,
+ 0x8e, 0xb5, 0x11, 0xf9, 0xbd, 0x67, 0x98, 0x1d, 0x0e, 0x0d, 0x98, 0xb2,
+ 0x05, 0x52, 0xf6, 0xf6, 0xfe, 0xf9, 0xb3, 0x05, 0xcf, 0xca, 0xa5, 0x59,
+ 0x99, 0xab, 0xde, 0x79, 0xef, 0x79, 0xe3, 0x98, 0xab, 0x2d, 0xa0, 0xf5,
+ 0x8c, 0x70, 0xca, 0xf0, 0x90, 0x45, 0xab, 0x08, 0x58, 0xf4, 0x1f, 0xea,
+ 0x17, 0x2c, 0x11, 0xed, 0xbf, 0xfa, 0x0f, 0x77, 0xaa, 0x2f, 0x5c, 0x08,
+ 0x07, 0x76, 0x0a, 0x72, 0x2d, 0x7f, 0x3e, 0x6c, 0xf4, 0x23, 0x6d, 0x39,
+ 0xf1, 0x9c, 0x11, 0x78, 0xbb, 0x41, 0x85, 0x98, 0xe5, 0x56, 0x68, 0xb0,
+ 0x05, 0x28, 0x38, 0x65, 0x23, 0xb7, 0x2b, 0x04, 0x8a, 0x7b, 0x71, 0x40,
+ 0x39, 0x3e, 0xd4, 0x8d, 0xd6, 0x09, 0xa8, 0xae, 0x66, 0x6c, 0x6e, 0x9b,
+ 0x15, 0x85, 0x0a, 0xdf, 0x5f, 0x6c, 0xb5, 0x24, 0x17, 0xe9, 0x8c, 0x87,
+ 0x30, 0x5b, 0xb6, 0xc7, 0xb5, 0x09, 0x25, 0x9a, 0xa8, 0x65, 0xc1, 0x3e,
+ 0x2e, 0x74, 0x06, 0xd9, 0x01, 0x44, 0x5f, 0xc1, 0xc4, 0x5d, 0x44, 0xbf,
+ 0x4e, 0x87, 0xd7, 0xde, 0x0e, 0xbd, 0xd8, 0x31, 0x24, 0x22, 0xab, 0x04,
+ 0x0c, 0xfc, 0xb9, 0x26, 0xfc, 0x0b, 0xde, 0xf9, 0xb7, 0x59, 0xc5, 0xc1,
+ 0x40, 0x60, 0xe7, 0xf7, 0xe7, 0xfd, 0xb3, 0xe8, 0xb0, 0x9f, 0xfe, 0x5d,
+ 0x32, 0xf0, 0x1d, 0x01, 0xf7, 0xe2, 0x59, 0xf8, 0xe9, 0xbe, 0xf8, 0xe7,
+ 0x8e, 0xa9, 0xbb, 0x12, 0xd0, 0xb3, 0xf1, 0xd2, 0x73, 0x61, 0x6a, 0x75,
+ 0xe0, 0xb3, 0x1f, 0x0b, 0xa7, 0x46, 0x12, 0x6d, 0xdc, 0xd8, 0x9d, 0x17,
+ 0x2f, 0xac, 0x69, 0x72, 0x35, 0xcb, 0xaf, 0x8d, 0xd2, 0x27, 0x98, 0xef,
+ 0xba, 0x55, 0xce, 0x1b, 0x2f, 0x95, 0xc1, 0x1d, 0x8f, 0xa6, 0xc9, 0xb5,
+ 0xed, 0x8a, 0xa7, 0x41, 0x1c, 0x88, 0x12, 0xd0, 0x04, 0x29, 0xd9, 0x48,
+ 0x7c, 0x7e, 0xb9, 0x61, 0x6e, 0x51, 0x41, 0x87, 0xbd, 0xa6, 0xc4, 0x1f,
+ 0xe1, 0x20, 0xcd, 0xeb, 0x9b, 0x66, 0x39, 0xfa, 0x12, 0xec, 0x23, 0xce,
+ 0x08, 0x9b, 0x0d, 0x61, 0xde, 0x56, 0x1b, 0x18, 0x3a, 0xc6, 0x79, 0x9c,
+ 0x19, 0xa1, 0x8f, 0xf1, 0xc5, 0x89, 0x30, 0x5f, 0x96, 0xab, 0xe7, 0xac,
+ 0xe5, 0x0e, 0x33, 0x2f, 0x6d, 0x2b, 0xe7, 0x22, 0x50, 0x76, 0x48, 0x43,
+ 0xe5, 0x78, 0x3f, 0x29, 0x0f, 0x84, 0x4d, 0x28, 0xfa, 0xb2, 0x1d, 0x61,
+ 0x47, 0x47, 0x68, 0x61, 0xb5, 0x9a, 0xc1, 0x8c, 0xaf, 0x26, 0xf1, 0x8c,
+ 0xa5, 0x97, 0xbb, 0x12, 0x32, 0x7a, 0xc8, 0x9f, 0xb7, 0xbe, 0x1d, 0xc9,
+ 0xd4, 0x4d, 0xe5, 0x0e, 0x56, 0x79, 0x88, 0xfb, 0xae, 0x0d, 0x58, 0x2e,
+ 0xce, 0x3c, 0x2e, 0xc6, 0xd2, 0x82, 0xd5, 0x45, 0xfe, 0xbc, 0xa6, 0x07,
+ 0xcf, 0x83, 0x53, 0x5a, 0xe0, 0xcf, 0x7b, 0xc9, 0xfc, 0x4b, 0x59, 0x1b,
+ 0x0e, 0xb3, 0x18, 0x93, 0x0f, 0x13, 0x30, 0xd8, 0x2b, 0xc8, 0xf1, 0x7c,
+ 0x82, 0x39, 0x27, 0xd3, 0x83, 0x7c, 0xd2, 0x94, 0x22, 0x34, 0xf6, 0xb4,
+ 0x00, 0xec, 0xca, 0x70, 0xaf, 0x83, 0xd0, 0xd8, 0x99, 0x49, 0xa3, 0xe5,
+ 0x00, 0xb8, 0xb1, 0x8c, 0x85, 0x3a, 0x01, 0xa3, 0xf8, 0xbb, 0xef, 0xf8,
+ 0x68, 0x19, 0xb4, 0x78, 0x89, 0x3d, 0x9a, 0x36, 0xf0, 0x70, 0x31, 0xb2,
+ 0x7a, 0x88, 0x9b, 0x45, 0x11, 0xbb, 0x32, 0x1d, 0xa7, 0xd8, 0xb3, 0x85,
+ 0x8d, 0x55, 0x92, 0x72, 0xa1, 0x74, 0x3c, 0x20, 0x25, 0x47, 0xde, 0x31,
+ 0xab, 0xac, 0xe6, 0xf6, 0xa0, 0x37, 0x24, 0x3c, 0xd0, 0xd4, 0x86, 0x19,
+ 0x1c, 0x7c, 0x38, 0x7f, 0x73, 0xfa, 0xbe, 0x1f, 0xad, 0x23, 0x54, 0xd9,
+ 0xf9, 0xfb, 0xe3, 0x2f, 0x3f, 0x9c, 0xc3, 0x3f, 0x75, 0xa4, 0x57, 0x49,
+ 0x9e, 0x81, 0x06, 0xd1, 0xaf, 0xd3, 0x1c, 0x84, 0xc1, 0xa5, 0xae, 0x8d,
+ 0xfb, 0x49, 0x01, 0x13, 0x15, 0xa5, 0xa2, 0x52, 0x62, 0x32, 0x49, 0x31,
+ 0xb6, 0xd9, 0x89, 0x1c, 0x69, 0xc0, 0x42, 0x84, 0xc2, 0xfa, 0x37, 0xb2,
+ 0x16, 0xc6, 0x9a, 0xe6, 0x01, 0x47, 0xe7, 0x6f, 0x0e, 0xde, 0x7d, 0xdd,
+ 0xd7, 0x86, 0xbd, 0xdf, 0x7e, 0xfb, 0x6d, 0x3b, 0x44, 0x4f, 0x76, 0x46,
+ 0x95, 0x7e, 0xf2, 0x49, 0xff, 0xe8, 0x28, 0x3a, 0x38, 0xe9, 0x9f, 0xea,
+ 0x03, 0x17, 0xf5, 0x74, 0x75, 0x73, 0x0d, 0x74, 0xe8, 0xcb, 0xb4, 0x86,
+ 0xbf, 0x7c, 0xf2, 0xc9, 0xff, 0x0f, 0xc9, 0x6b, 0xd2, 0x51, 0x1f, 0x3d,
+ 0x03, 0x00,
};
#define BUF_SIZE 0x10000
static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
diff --git a/src/tool_listhelp.c b/src/tool_listhelp.c
new file mode 100644
index 000000000..ce92ec02c
--- /dev/null
+++ b/src/tool_listhelp.c
@@ -0,0 +1,764 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel.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.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"
+#include "tool_help.h"
+
+/*
+ * DO NOT edit tool_listhelp.c manually.
+ * This source file is generated with the following command:
+
+ cd $srcroot/docs/cmdline-opts
+ ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c
+ */
+
+const struct helptxt helptext[] = {
+ {" --abstract-unix-socket <path>",
+ "Connect via abstract Unix domain socket",
+ CURLHELP_CONNECTION},
+ {" --alt-svc <file name>",
+ "Enable alt-svc with this cache file",
+ CURLHELP_HTTP},
+ {" --anyauth",
+ "Pick any authentication method",
+ CURLHELP_HTTP | CURLHELP_PROXY | CURLHELP_AUTH},
+ {"-a, --append",
+ "Append to target file when uploading",
+ CURLHELP_FTP | CURLHELP_SFTP},
+ {" --aws-sigv4 <provider1[:provider2[:region[:service]]]>",
+ "Use AWS V4 signature authentication",
+ CURLHELP_AUTH | CURLHELP_HTTP},
+ {" --basic",
+ "Use HTTP Basic Authentication",
+ CURLHELP_AUTH},
+ {" --cacert <file>",
+ "CA certificate to verify peer against",
+ CURLHELP_TLS},
+ {" --capath <dir>",
+ "CA directory to verify peer against",
+ CURLHELP_TLS},
+ {"-E, --cert <certificate[:password]>",
+ "Client certificate file and password",
+ CURLHELP_TLS},
+ {" --cert-status",
+ "Verify the status of the server cert via OCSP-staple",
+ CURLHELP_TLS},
+ {" --cert-type <type>",
+ "Certificate type (DER/PEM/ENG)",
+ CURLHELP_TLS},
+ {" --ciphers <list of ciphers>",
+ "SSL ciphers to use",
+ CURLHELP_TLS},
+ {" --compressed",
+ "Request compressed response",
+ CURLHELP_HTTP},
+ {" --compressed-ssh",
+ "Enable SSH compression",
+ CURLHELP_SCP | CURLHELP_SSH},
+ {"-K, --config <file>",
+ "Read config from a file",
+ CURLHELP_CURL},
+ {" --connect-timeout <fractional seconds>",
+ "Maximum time allowed for connection",
+ CURLHELP_CONNECTION},
+ {" --connect-to <HOST1:PORT1:HOST2:PORT2>",
+ "Connect to host",
+ CURLHELP_CONNECTION},
+ {"-C, --continue-at <offset>",
+ "Resumed transfer offset",
+ CURLHELP_CONNECTION},
+ {"-b, --cookie <data|filename>",
+ "Send cookies from string/file",
+ CURLHELP_HTTP},
+ {"-c, --cookie-jar <filename>",
+ "Write cookies to <filename> after operation",
+ CURLHELP_HTTP},
+ {" --create-dirs",
+ "Create necessary local directory hierarchy",
+ CURLHELP_CURL},
+ {" --create-file-mode <mode>",
+ "File mode for created files",
+ CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_FILE | CURLHELP_UPLOAD},
+ {" --crlf",
+ "Convert LF to CRLF in upload",
+ CURLHELP_FTP | CURLHELP_SMTP},
+ {" --crlfile <file>",
+ "Use this CRL list",
+ CURLHELP_TLS},
+ {" --curves <algorithm list>",
+ "(EC) TLS key exchange algorithm(s) to request",
+ CURLHELP_TLS},
+ {"-d, --data <data>",
+ "HTTP POST data",
+ CURLHELP_IMPORTANT | CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+ {" --data-ascii <data>",
+ "HTTP POST ASCII data",
+ CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+ {" --data-binary <data>",
+ "HTTP POST binary data",
+ CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+ {" --data-raw <data>",
+ "HTTP POST data, '@' allowed",
+ CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+ {" --data-urlencode <data>",
+ "HTTP POST data url encoded",
+ CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+ {" --delegation <LEVEL>",
+ "GSS-API delegation permission",
+ CURLHELP_AUTH},
+ {" --digest",
+ "Use HTTP Digest Authentication",
+ CURLHELP_PROXY | CURLHELP_AUTH | CURLHELP_HTTP},
+ {"-q, --disable",
+ "Disable .curlrc",
+ CURLHELP_CURL},
+ {" --disable-eprt",
+ "Inhibit using EPRT or LPRT",
+ CURLHELP_FTP},
+ {" --disable-epsv",
+ "Inhibit using EPSV",
+ CURLHELP_FTP},
+ {" --disallow-username-in-url",
+ "Disallow username in url",
+ CURLHELP_CURL | CURLHELP_HTTP},
+ {" --dns-interface <interface>",
+ "Interface to use for DNS requests",
+ CURLHELP_DNS},
+ {" --dns-ipv4-addr <address>",
+ "IPv4 address to use for DNS requests",
+ CURLHELP_DNS},
+ {" --dns-ipv6-addr <address>",
+ "IPv6 address to use for DNS requests",
+ CURLHELP_DNS},
+ {" --dns-servers <addresses>",
+ "DNS server addrs to use",
+ CURLHELP_DNS},
+ {" --doh-cert-status",
+ "Verify the status of the DoH server cert via OCSP-staple",
+ CURLHELP_DNS | CURLHELP_TLS},
+ {" --doh-insecure",
+ "Allow insecure DoH server connections",
+ CURLHELP_DNS | CURLHELP_TLS},
+ {" --doh-url <URL>",
+ "Resolve host names over DoH",
+ CURLHELP_DNS},
+ {"-D, --dump-header <filename>",
+ "Write the received headers to <filename>",
+ CURLHELP_HTTP | CURLHELP_FTP},
+ {" --egd-file <file>",
+ "EGD socket path for random data",
+ CURLHELP_TLS},
+ {" --engine <name>",
+ "Crypto engine to use",
+ CURLHELP_TLS},
+ {" --etag-compare <file>",
+ "Pass an ETag from a file as a custom header",
+ CURLHELP_HTTP},
+ {" --etag-save <file>",
+ "Parse ETag from a request and save it to a file",
+ CURLHELP_HTTP},
+ {" --expect100-timeout <seconds>",
+ "How long to wait for 100-continue",
+ CURLHELP_HTTP},
+ {"-f, --fail",
+ "Fail silently (no output at all) on HTTP errors",
+ CURLHELP_IMPORTANT | CURLHELP_HTTP},
+ {" --fail-early",
+ "Fail on first transfer error, do not continue",
+ CURLHELP_CURL},
+ {" --fail-with-body",
+ "Fail on HTTP errors but save the body",
+ CURLHELP_HTTP | CURLHELP_OUTPUT},
+ {" --false-start",
+ "Enable TLS False Start",
+ CURLHELP_TLS},
+ {"-F, --form <name=content>",
+ "Specify multipart MIME data",
+ CURLHELP_HTTP | CURLHELP_UPLOAD},
+ {" --form-string <name=string>",
+ "Specify multipart MIME data",
+ CURLHELP_HTTP | CURLHELP_UPLOAD},
+ {" --ftp-account <data>",
+ "Account data string",
+ CURLHELP_FTP | CURLHELP_AUTH},
+ {" --ftp-alternative-to-user <command>",
+ "String to replace USER [name]",
+ CURLHELP_FTP},
+ {" --ftp-create-dirs",
+ "Create the remote dirs if not present",
+ CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_CURL},
+ {" --ftp-method <method>",
+ "Control CWD usage",
+ CURLHELP_FTP},
+ {" --ftp-pasv",
+ "Use PASV/EPSV instead of PORT",
+ CURLHELP_FTP},
+ {"-P, --ftp-port <address>",
+ "Use PORT instead of PASV",
+ CURLHELP_FTP},
+ {" --ftp-pret",
+ "Send PRET before PASV",
+ CURLHELP_FTP},
+ {" --ftp-skip-pasv-ip",
+ "Skip the IP address for PASV",
+ CURLHELP_FTP},
+ {" --ftp-ssl-ccc",
+ "Send CCC after authenticating",
+ CURLHELP_FTP | CURLHELP_TLS},
+ {" --ftp-ssl-ccc-mode <active/passive>",
+ "Set CCC mode",
+ CURLHELP_FTP | CURLHELP_TLS},
+ {" --ftp-ssl-control",
+ "Require SSL/TLS for FTP login, clear for transfer",
+ CURLHELP_FTP | CURLHELP_TLS},
+ {"-G, --get",
+ "Put the post data in the URL and use GET",
+ CURLHELP_HTTP | CURLHELP_UPLOAD},
+ {"-g, --globoff",
+ "Disable URL sequences and ranges using {} and []",
+ CURLHELP_CURL},
+ {" --happy-eyeballs-timeout-ms <milliseconds>",
+ "Time for IPv6 before trying IPv4",
+ CURLHELP_CONNECTION},
+ {" --haproxy-protocol",
+ "Send HAProxy PROXY protocol v1 header",
+ CURLHELP_HTTP | CURLHELP_PROXY},
+ {"-I, --head",
+ "Show document info only",
+ CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_FILE},
+ {"-H, --header <header/@file>",
+ "Pass custom header(s) to server",
+ CURLHELP_HTTP},
+ {"-h, --help <category>",
+ "Get help for commands",
+ CURLHELP_IMPORTANT | CURLHELP_CURL},
+ {" --hostpubmd5 <md5>",
+ "Acceptable MD5 hash of the host public key",
+ CURLHELP_SFTP | CURLHELP_SCP},
+ {" --hostpubsha256 <sha256>",
+ "Acceptable SHA256 hash of the host public key",
+ CURLHELP_SFTP | CURLHELP_SCP},
+ {" --hsts <file name>",
+ "Enable HSTS with this cache file",
+ CURLHELP_HTTP},
+ {" --http0.9",
+ "Allow HTTP 0.9 responses",
+ CURLHELP_HTTP},
+ {"-0, --http1.0",
+ "Use HTTP 1.0",
+ CURLHELP_HTTP},
+ {" --http1.1",
+ "Use HTTP 1.1",
+ CURLHELP_HTTP},
+ {" --http2",
+ "Use HTTP 2",
+ CURLHELP_HTTP},
+ {" --http2-prior-knowledge",
+ "Use HTTP 2 without HTTP/1.1 Upgrade",
+ CURLHELP_HTTP},
+ {" --http3",
+ "Use HTTP v3",
+ CURLHELP_HTTP},
+ {" --ignore-content-length",
+ "Ignore the size of the remote resource",
+ CURLHELP_HTTP | CURLHELP_FTP},
+ {"-i, --include",
+ "Include protocol response headers in the output",
+ CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+ {"-k, --insecure",
+ "Allow insecure server connections when using SSL",
+ CURLHELP_TLS},
+ {" --interface <name>",
+ "Use network INTERFACE (or address)",
+ CURLHELP_CONNECTION},
+ {"-4, --ipv4",
+ "Resolve names to IPv4 addresses",
+ CURLHELP_CONNECTION | CURLHELP_DNS},
+ {"-6, --ipv6",
+ "Resolve names to IPv6 addresses",
+ CURLHELP_CONNECTION | CURLHELP_DNS},
+ {"-j, --junk-session-cookies",
+ "Ignore session cookies read from file",
+ CURLHELP_HTTP},
+ {" --keepalive-time <seconds>",
+ "Interval time for keepalive probes",
+ CURLHELP_CONNECTION},
+ {" --key <key>",
+ "Private key file name",
+ CURLHELP_TLS | CURLHELP_SSH},
+ {" --key-type <type>",
+ "Private key file type (DER/PEM/ENG)",
+ CURLHELP_TLS},
+ {" --krb <level>",
+ "Enable Kerberos with security <level>",
+ CURLHELP_FTP},
+ {" --libcurl <file>",
+ "Dump libcurl equivalent code of this command line",
+ CURLHELP_CURL},
+ {" --limit-rate <speed>",
+ "Limit transfer speed to RATE",
+ CURLHELP_CONNECTION},
+ {"-l, --list-only",
+ "List only mode",
+ CURLHELP_FTP | CURLHELP_POP3},
+ {" --local-port <num/range>",
+ "Force use of RANGE for local port numbers",
+ CURLHELP_CONNECTION},
+ {"-L, --location",
+ "Follow redirects",
+ CURLHELP_HTTP},
+ {" --location-trusted",
+ "Like --location, and send auth to other hosts",
+ CURLHELP_HTTP | CURLHELP_AUTH},
+ {" --login-options <options>",
+ "Server login options",
+ CURLHELP_IMAP | CURLHELP_POP3 | CURLHELP_SMTP | CURLHELP_AUTH},
+ {" --mail-auth <address>",
+ "Originator address of the original email",
+ CURLHELP_SMTP},
+ {" --mail-from <address>",
+ "Mail from this address",
+ CURLHELP_SMTP},
+ {" --mail-rcpt <address>",
+ "Mail to this address",
+ CURLHELP_SMTP},
+ {" --mail-rcpt-allowfails",
+ "Allow RCPT TO command to fail for some recipients",
+ CURLHELP_SMTP},
+ {"-M, --manual",
+ "Display the full manual",
+ CURLHELP_CURL},
+ {" --max-filesize <bytes>",
+ "Maximum file size to download",
+ CURLHELP_CONNECTION},
+ {" --max-redirs <num>",
+ "Maximum number of redirects allowed",
+ CURLHELP_HTTP},
+ {"-m, --max-time <fractional seconds>",
+ "Maximum time allowed for transfer",
+ CURLHELP_CONNECTION},
+ {" --metalink",
+ "Process given URLs as metalink XML file",
+ CURLHELP_MISC},
+ {" --negotiate",
+ "Use HTTP Negotiate (SPNEGO) authentication",
+ CURLHELP_AUTH | CURLHELP_HTTP},
+ {"-n, --netrc",
+ "Must read .netrc for user name and password",
+ CURLHELP_CURL},
+ {" --netrc-file <filename>",
+ "Specify FILE for netrc",
+ CURLHELP_CURL},
+ {" --netrc-optional",
+ "Use either .netrc or URL",
+ CURLHELP_CURL},
+ {"-:, --next",
+ "Make next URL use its separate set of options",
+ CURLHELP_CURL},
+ {" --no-alpn",
+ "Disable the ALPN TLS extension",
+ CURLHELP_TLS | CURLHELP_HTTP},
+ {"-N, --no-buffer",
+ "Disable buffering of the output stream",
+ CURLHELP_CURL},
+ {" --no-keepalive",
+ "Disable TCP keepalive on the connection",
+ CURLHELP_CONNECTION},
+ {" --no-npn",
+ "Disable the NPN TLS extension",
+ CURLHELP_TLS | CURLHELP_HTTP},
+ {" --no-progress-meter",
+ "Do not show the progress meter",
+ CURLHELP_VERBOSE},
+ {" --no-sessionid",
+ "Disable SSL session-ID reusing",
+ CURLHELP_TLS},
+ {" --noproxy <no-proxy-list>",
+ "List of hosts which do not use proxy",
+ CURLHELP_PROXY},
+ {" --ntlm",
+ "Use HTTP NTLM authentication",
+ CURLHELP_AUTH | CURLHELP_HTTP},
+ {" --ntlm-wb",
+ "Use HTTP NTLM authentication with winbind",
+ CURLHELP_AUTH | CURLHELP_HTTP},
+ {" --oauth2-bearer <token>",
+ "OAuth 2 Bearer Token",
+ CURLHELP_AUTH},
+ {"-o, --output <file>",
+ "Write to file instead of stdout",
+ CURLHELP_IMPORTANT | CURLHELP_CURL},
+ {" --output-dir <dir>",
+ "Directory to save files in",
+ CURLHELP_CURL},
+ {"-Z, --parallel",
+ "Perform transfers in parallel",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {" --parallel-immediate",
+ "Do not wait for multiplexing (with --parallel)",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {" --parallel-max <num>",
+ "Maximum concurrency for parallel transfers",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {" --pass <phrase>",
+ "Pass phrase for the private key",
+ CURLHELP_SSH | CURLHELP_TLS | CURLHELP_AUTH},
+ {" --path-as-is",
+ "Do not squash .. sequences in URL path",
+ CURLHELP_CURL},
+ {" --pinnedpubkey <hashes>",
+ "FILE/HASHES Public key to verify peer against",
+ CURLHELP_TLS},
+ {" --post301",
+ "Do not switch to GET after following a 301",
+ CURLHELP_HTTP | CURLHELP_POST},
+ {" --post302",
+ "Do not switch to GET after following a 302",
+ CURLHELP_HTTP | CURLHELP_POST},
+ {" --post303",
+ "Do not switch to GET after following a 303",
+ CURLHELP_HTTP | CURLHELP_POST},
+ {" --preproxy [protocol://]host[:port]",
+ "Use this proxy first",
+ CURLHELP_PROXY},
+ {"-#, --progress-bar",
+ "Display transfer progress as a bar",
+ CURLHELP_VERBOSE},
+ {" --proto <protocols>",
+ "Enable/disable PROTOCOLS",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {" --proto-default <protocol>",
+ "Use PROTOCOL for any URL missing a scheme",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {" --proto-redir <protocols>",
+ "Enable/disable PROTOCOLS on redirect",
+ CURLHELP_CONNECTION | CURLHELP_CURL},
+ {"-x, --proxy [protocol://]host[:port]",
+ "Use this proxy",
+ CURLHELP_PROXY},
+ {" --proxy-anyauth",
+ "Pick any proxy authentication method",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy-basic",
+ "Use Basic authentication on the proxy",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy-cacert <file>",
+ "CA certificate to verify peer against for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-capath <dir>",
+ "CA directory to verify peer against for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-cert <cert[:passwd]>",
+ "Set client certificate for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-cert-type <type>",
+ "Client certificate type for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-ciphers <list>",
+ "SSL ciphers to use for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-crlfile <file>",
+ "Set a CRL list for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-digest",
+ "Use Digest authentication on the proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-header <header/@file>",
+ "Pass custom header(s) to proxy",
+ CURLHELP_PROXY},
+ {" --proxy-insecure",
+ "Do HTTPS proxy connections without verifying the proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-key <key>",
+ "Private key for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-key-type <type>",
+ "Private key file type for proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-negotiate",
+ "Use HTTP Negotiate (SPNEGO) authentication on the proxy",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy-ntlm",
+ "Use NTLM authentication on the proxy",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy-pass <phrase>",
+ "Pass phrase for the private key for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+ {" --proxy-pinnedpubkey <hashes>",
+ "FILE/HASHES public key to verify proxy with",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-service-name <name>",
+ "SPNEGO proxy service name",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-ssl-allow-beast",
+ "Allow security flaw for interop for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-ssl-auto-client-cert",
+ "Use auto client certificate for proxy (Schannel)",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-tls13-ciphers <ciphersuite list>",
+ "TLS 1.3 proxy cipher suites",
+ CURLHELP_PROXY | CURLHELP_TLS},
+ {" --proxy-tlsauthtype <type>",
+ "TLS authentication type for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+ {" --proxy-tlspassword <string>",
+ "TLS password for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+ {" --proxy-tlsuser <name>",
+ "TLS username for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+ {" --proxy-tlsv1",
+ "Use TLSv1 for HTTPS proxy",
+ CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+ {"-U, --proxy-user <user:password>",
+ "Proxy user and password",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy1.0 <host[:port]>",
+ "Use HTTP/1.0 proxy on given port",
+ CURLHELP_PROXY},
+ {"-p, --proxytunnel",
+ "Operate through an HTTP proxy tunnel (using CONNECT)",
+ CURLHELP_PROXY},
+ {" --pubkey <key>",
+ "SSH Public key file name",
+ CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_AUTH},
+ {"-Q, --quote <command>",
+ "Send command(s) to server before transfer",
+ CURLHELP_FTP | CURLHELP_SFTP},
+ {" --random-file <file>",
+ "File for reading random data from",
+ CURLHELP_MISC},
+ {"-r, --range <range>",
+ "Retrieve only the bytes within RANGE",
+ CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_FILE},
+ {" --raw",
+ "Do HTTP \"raw\"; no transfer decoding",
+ CURLHELP_HTTP},
+ {"-e, --referer <URL>",
+ "Referrer URL",
+ CURLHELP_HTTP},
+ {"-J, --remote-header-name",
+ "Use the header-provided filename",
+ CURLHELP_OUTPUT},
+ {"-O, --remote-name",
+ "Write output to a file named as the remote file",
+ CURLHELP_IMPORTANT | CURLHELP_OUTPUT},
+ {" --remote-name-all",
+ "Use the remote file name for all URLs",
+ CURLHELP_OUTPUT},
+ {"-R, --remote-time",
+ "Set the remote file's time on the local output",
+ CURLHELP_OUTPUT},
+ {"-X, --request <command>",
+ "Specify request command to use",
+ CURLHELP_CONNECTION},
+ {" --request-target <path>",
+ "Specify the target for this request",
+ CURLHELP_HTTP},
+ {" --resolve <[+]host:port:addr[,addr]...>",
+ "Resolve the host+port to this address",
+ CURLHELP_CONNECTION},
+ {" --retry <num>",
+ "Retry request if transient problems occur",
+ CURLHELP_CURL},
+ {" --retry-all-errors",
+ "Retry all errors (use with --retry)",
+ CURLHELP_CURL},
+ {" --retry-connrefused",
+ "Retry on connection refused (use with --retry)",
+ CURLHELP_CURL},
+ {" --retry-delay <seconds>",
+ "Wait time between retries",
+ CURLHELP_CURL},
+ {" --retry-max-time <seconds>",
+ "Retry only within this period",
+ CURLHELP_CURL},
+ {" --sasl-authzid <identity>",
+ "Identity for SASL PLAIN authentication",
+ CURLHELP_AUTH},
+ {" --sasl-ir",
+ "Enable initial response in SASL authentication",
+ CURLHELP_AUTH},
+ {" --service-name <name>",
+ "SPNEGO service name",
+ CURLHELP_MISC},
+ {"-S, --show-error",
+ "Show error even when -s is used",
+ CURLHELP_CURL},
+ {"-s, --silent",
+ "Silent mode",
+ CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+ {" --socks4 <host[:port]>",
+ "SOCKS4 proxy on given host + port",
+ CURLHELP_PROXY},
+ {" --socks4a <host[:port]>",
+ "SOCKS4a proxy on given host + port",
+ CURLHELP_PROXY},
+ {" --socks5 <host[:port]>",
+ "SOCKS5 proxy on given host + port",
+ CURLHELP_PROXY},
+ {" --socks5-basic",
+ "Enable username/password auth for SOCKS5 proxies",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --socks5-gssapi",
+ "Enable GSS-API auth for SOCKS5 proxies",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --socks5-gssapi-nec",
+ "Compatibility with NEC SOCKS5 server",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --socks5-gssapi-service <name>",
+ "SOCKS5 proxy service name for GSS-API",
+ CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --socks5-hostname <host[:port]>",
+ "SOCKS5 proxy, pass host name to proxy",
+ CURLHELP_PROXY},
+ {"-Y, --speed-limit <speed>",
+ "Stop transfers slower than this",
+ CURLHELP_CONNECTION},
+ {"-y, --speed-time <seconds>",
+ "Trigger 'speed-limit' abort after this time",
+ CURLHELP_CONNECTION},
+ {" --ssl",
+ "Try SSL/TLS",
+ CURLHELP_TLS},
+ {" --ssl-allow-beast",
+ "Allow security flaw to improve interop",
+ CURLHELP_TLS},
+ {" --ssl-auto-client-cert",
+ "Use auto client certificate (Schannel)",
+ CURLHELP_TLS},
+ {" --ssl-no-revoke",
+ "Disable cert revocation checks (Schannel)",
+ CURLHELP_TLS},
+ {" --ssl-reqd",
+ "Require SSL/TLS",
+ CURLHELP_TLS},
+ {" --ssl-revoke-best-effort",
+ "Ignore missing/offline cert CRL dist points",
+ CURLHELP_TLS},
+ {"-2, --sslv2",
+ "Use SSLv2",
+ CURLHELP_TLS},
+ {"-3, --sslv3",
+ "Use SSLv3",
+ CURLHELP_TLS},
+ {" --stderr <file>",
+ "Where to redirect stderr",
+ CURLHELP_VERBOSE},
+ {" --styled-output",
+ "Enable styled output for HTTP headers",
+ CURLHELP_VERBOSE},
+ {" --suppress-connect-headers",
+ "Suppress proxy CONNECT response headers",
+ CURLHELP_PROXY},
+ {" --tcp-fastopen",
+ "Use TCP Fast Open",
+ CURLHELP_CONNECTION},
+ {" --tcp-nodelay",
+ "Use the TCP_NODELAY option",
+ CURLHELP_CONNECTION},
+ {"-t, --telnet-option <opt=val>",
+ "Set telnet option",
+ CURLHELP_TELNET},
+ {" --tftp-blksize <value>",
+ "Set TFTP BLKSIZE option",
+ CURLHELP_TFTP},
+ {" --tftp-no-options",
+ "Do not send any TFTP options",
+ CURLHELP_TFTP},
+ {"-z, --time-cond <time>",
+ "Transfer based on a time condition",
+ CURLHELP_HTTP | CURLHELP_FTP},
+ {" --tls-max <VERSION>",
+ "Set maximum allowed TLS version",
+ CURLHELP_TLS},
+ {" --tls13-ciphers <ciphersuite list>",
+ "TLS 1.3 cipher suites to use",
+ CURLHELP_TLS},
+ {" --tlsauthtype <type>",
+ "TLS authentication type",
+ CURLHELP_TLS | CURLHELP_AUTH},
+ {" --tlspassword <string>",
+ "TLS password",
+ CURLHELP_TLS | CURLHELP_AUTH},
+ {" --tlsuser <name>",
+ "TLS user name",
+ CURLHELP_TLS | CURLHELP_AUTH},
+ {"-1, --tlsv1",
+ "Use TLSv1.0 or greater",
+ CURLHELP_TLS},
+ {" --tlsv1.0",
+ "Use TLSv1.0 or greater",
+ CURLHELP_TLS},
+ {" --tlsv1.1",
+ "Use TLSv1.1 or greater",
+ CURLHELP_TLS},
+ {" --tlsv1.2",
+ "Use TLSv1.2 or greater",
+ CURLHELP_TLS},
+ {" --tlsv1.3",
+ "Use TLSv1.3 or greater",
+ CURLHELP_TLS},
+ {" --tr-encoding",
+ "Request compressed transfer encoding",
+ CURLHELP_HTTP},
+ {" --trace <file>",
+ "Write a debug trace to FILE",
+ CURLHELP_VERBOSE},
+ {" --trace-ascii <file>",
+ "Like --trace, but without hex output",
+ CURLHELP_VERBOSE},
+ {" --trace-time",
+ "Add time stamps to trace/verbose output",
+ CURLHELP_VERBOSE},
+ {" --unix-socket <path>",
+ "Connect through this Unix domain socket",
+ CURLHELP_CONNECTION},
+ {"-T, --upload-file <file>",
+ "Transfer local FILE to destination",
+ CURLHELP_IMPORTANT | CURLHELP_UPLOAD},
+ {" --url <url>",
+ "URL to work with",
+ CURLHELP_CURL},
+ {"-B, --use-ascii",
+ "Use ASCII/text transfer",
+ CURLHELP_MISC},
+ {"-u, --user <user:password>",
+ "Server user and password",
+ CURLHELP_IMPORTANT | CURLHELP_AUTH},
+ {"-A, --user-agent <name>",
+ "Send User-Agent <name> to server",
+ CURLHELP_IMPORTANT | CURLHELP_HTTP},
+ {"-v, --verbose",
+ "Make the operation more talkative",
+ CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+ {"-V, --version",
+ "Show version number and quit",
+ CURLHELP_IMPORTANT | CURLHELP_CURL},
+ {"-w, --write-out <format>",
+ "Use output FORMAT after completion",
+ CURLHELP_VERBOSE},
+ {" --xattr",
+ "Store metadata in extended file attributes",
+ CURLHELP_MISC},
+ { NULL, NULL, CURLHELP_HIDDEN }
+};
diff --git a/src/tool_main.c b/src/tool_main.c
index 9f16a4e27..23ba6cb20 100644
--- a/src/tool_main.c
+++ b/src/tool_main.c
@@ -118,7 +118,7 @@ static void memory_tracking_init(void)
curl_free(env);
curl_dbg_memdebug(fname);
/* this weird stuff here is to make curl_free() get called before
- curl_gdb_memdebug() as otherwise memory tracking will log a free()
+ curl_dbg_memdebug() as otherwise memory tracking will log a free()
without an alloc! */
}
/* if CURL_MEMLIMIT is set, this enables fail-on-alloc-number-N feature */
@@ -214,7 +214,7 @@ static void main_free(struct GlobalConfig *config)
convert_cleanup();
#ifdef USE_NSS
if(PR_Initialized()) {
- /* prevent valgrind from reporting still reachable mem from NSRP arenas */
+ /* prevent valgrind from reporting still reachable mem from NSPR arenas */
PL_ArenaFinish();
/* prevent valgrind from reporting possibly lost memory (fd cache, ...) */
PR_Cleanup();
diff --git a/src/tool_operate.c b/src/tool_operate.c
index e6ca575bf..ed3b2f56a 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -515,6 +515,21 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
sleeptime = LONG_MAX;
else
sleeptime = (long)retry_after * 1000; /* milliseconds */
+
+ /* if adding retry_after seconds to the process would exceed the
+ maximum time allowed for retrying, then exit the retries right
+ away */
+ if(config->retry_maxtime) {
+ curl_off_t seconds = tvdiff(tvnow(), per->retrystart)/1000;
+
+ if((CURL_OFF_T_MAX - retry_after < seconds) ||
+ (seconds + retry_after > config->retry_maxtime)) {
+ warnf(config->global, "The Retry-After: time would "
+ "make this command line exceed the maximum allowed time "
+ "for retries.");
+ goto noretry;
+ }
+ }
}
}
warnf(config->global, "Problem %s. "
@@ -570,6 +585,7 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
return CURLE_OK;
}
} /* if retry_numretries */
+ noretry:
if((global->progressmode == CURL_PROGRESS_BAR) &&
per->progressbar.calls)
@@ -778,76 +794,25 @@ static CURLcode single_transfer(struct GlobalConfig *global,
!strcmp(state->outfiles, "-")) && urlnum > 1);
if(state->up < state->infilenum) {
- struct per_transfer *per;
+ struct per_transfer *per = NULL;
struct OutStruct *outs;
struct InStruct *input;
struct OutStruct *heads;
struct OutStruct *etag_save;
struct HdrCbData *hdrcbdata = NULL;
- CURL *curl = curl_easy_init();
- result = add_per_transfer(&per);
- if(result || !curl) {
- curl_easy_cleanup(curl);
- result = CURLE_OUT_OF_MEMORY;
- break;
- }
- if(state->uploadfile) {
- per->uploadfile = strdup(state->uploadfile);
- if(!per->uploadfile) {
- curl_easy_cleanup(curl);
- result = CURLE_OUT_OF_MEMORY;
- break;
- }
- }
- *added = TRUE;
- per->config = config;
- per->curl = curl;
- per->urlnum = urlnode->num;
-
- /* default headers output stream is stdout */
- heads = &per->heads;
- heads->stream = stdout;
+ struct OutStruct etag_first;
+ CURL *curl;
- /* 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(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 */
+ memset(&etag_first, 0, sizeof(etag_first));
+ etag_save = &etag_first;
+ etag_save->stream = stdout;
/* --etag-compare */
if(config->etag_compare_file) {
char *etag_from_file = NULL;
char *header = NULL;
+ ParameterError pe;
/* open file for reading: */
FILE *file = fopen(config->etag_compare_file, FOPEN_READTEXT);
@@ -876,30 +841,27 @@ static CURLcode single_transfer(struct GlobalConfig *global,
}
/* add Etag from file to list of custom headers */
- add2list(&config->headers, header);
-
+ pe = add2list(&config->headers, header);
Curl_safefree(header);
- if(file) {
+ if(file)
fclose(file);
+ if(pe != PARAM_OK) {
+ result = CURLE_OUT_OF_MEMORY;
+ break;
}
}
- /* --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(
- global,
- "Failed to open %s\n", config->etag_save_file);
-
- result = CURLE_WRITE_ERROR;
- break;
+ warnf(global, "Failed creating file for saving etags: \"%s\". "
+ "Skip this transfer\n", config->etag_save_file);
+ Curl_safefree(state->outfiles);
+ glob_cleanup(state->urls);
+ return CURLE_OK;
}
else {
etag_save->filename = config->etag_save_file;
@@ -914,6 +876,71 @@ static CURLcode single_transfer(struct GlobalConfig *global,
}
}
+ curl = curl_easy_init();
+ if(curl)
+ result = add_per_transfer(&per);
+ else
+ result = CURLE_OUT_OF_MEMORY;
+ if(result) {
+ curl_easy_cleanup(curl);
+ if(etag_save->fopened)
+ fclose(etag_save->stream);
+ break;
+ }
+ per->etag_save = etag_first; /* copy the whole struct */
+ if(state->uploadfile) {
+ per->uploadfile = strdup(state->uploadfile);
+ if(!per->uploadfile) {
+ curl_easy_cleanup(curl);
+ result = CURLE_OUT_OF_MEMORY;
+ break;
+ }
+ }
+ *added = TRUE;
+ per->config = config;
+ per->curl = curl;
+ per->urlnum = urlnode->num;
+
+ /* 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(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;
+
if(state->urls) {
result = glob_next_url(&per->this_url, state->urls);
if(result)
@@ -950,8 +977,11 @@ static CURLcode single_transfer(struct GlobalConfig *global,
if(!per->outfile) {
/* extract the file name from the URL */
result = get_url_file_name(&per->outfile, per->this_url);
- if(result)
+ if(result) {
+ errorf(global, "Failed to extract a sensible file name"
+ " from the URL to use for storage!\n");
break;
+ }
if(!*per->outfile && !config->content_disposition) {
errorf(global, "Remote file name has no length!\n");
result = CURLE_WRITE_ERROR;
@@ -1389,6 +1419,11 @@ static CURLcode single_transfer(struct GlobalConfig *global,
my_setopt_str(curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
config->hostpubmd5);
+ /* new in libcurl 7.80.0: SSH host key sha256 checking allows us
+ to fail if we are not talking to who we think we should */
+ my_setopt_str(curl, CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256,
+ config->hostpubsha256);
+
/* new in libcurl 7.56.0 */
if(config->ssh_compression)
my_setopt(curl, CURLOPT_SSH_COMPRESSION, 1L);
@@ -2123,6 +2158,7 @@ static CURLcode add_parallel_transfers(struct GlobalConfig *global,
(void)curl_easy_setopt(per->curl, CURLOPT_PRIVATE, per);
(void)curl_easy_setopt(per->curl, CURLOPT_XFERINFOFUNCTION, xferinfo_cb);
(void)curl_easy_setopt(per->curl, CURLOPT_XFERINFODATA, per);
+ (void)curl_easy_setopt(per->curl, CURLOPT_NOPROGRESS, 0L);
mcode = curl_multi_add_handle(multi, per->curl);
if(mcode)
@@ -2149,6 +2185,10 @@ static CURLcode parallel_transfers(struct GlobalConfig *global,
struct timeval start = tvnow();
bool more_transfers;
bool added_transfers;
+ /* wrapitup is set TRUE after a critical error occurs to end all transfers */
+ bool wrapitup = FALSE;
+ /* wrapitup_processed is set TRUE after the per transfer abort flag is set */
+ bool wrapitup_processed = FALSE;
time_t tick = time(NULL);
multi = curl_multi_init();
@@ -2163,6 +2203,21 @@ static CURLcode parallel_transfers(struct GlobalConfig *global,
}
while(!mcode && (still_running || more_transfers)) {
+ /* If stopping prematurely (eg due to a --fail-early condition) then signal
+ that any transfers in the multi should abort (via progress callback). */
+ if(wrapitup) {
+ if(!still_running)
+ break;
+ if(!wrapitup_processed) {
+ struct per_transfer *per;
+ for(per = transfers; per; per = per->next) {
+ if(per->added)
+ per->abort = TRUE;
+ }
+ wrapitup_processed = TRUE;
+ }
+ }
+
mcode = curl_multi_poll(multi, NULL, 0, 1000, NULL);
if(!mcode)
mcode = curl_multi_perform(multi, &still_running);
@@ -2184,6 +2239,10 @@ static CURLcode parallel_transfers(struct GlobalConfig *global,
curl_easy_getinfo(easy, CURLINFO_PRIVATE, (void *)&ended);
curl_multi_remove_handle(multi, easy);
+ if(ended->abort && tres == CURLE_ABORTED_BY_CALLBACK) {
+ msnprintf(ended->errorbuffer, sizeof(ended->errorbuffer),
+ "Transfer aborted due to critical error in another transfer");
+ }
tres = post_per_transfer(global, ended, tres, &retry, &delay);
progress_finalize(ended); /* before it goes away */
all_added--; /* one fewer added */
@@ -2194,12 +2253,22 @@ static CURLcode parallel_transfers(struct GlobalConfig *global,
ended->startat = delay ? time(NULL) + delay/1000 : 0;
}
else {
- if(tres)
+ /* result receives this transfer's error unless the transfer was
+ marked for abort due to a critical error in another transfer */
+ if(tres && (!ended->abort || !result))
result = tres;
+ if(is_fatal_error(result) || (result && global->fail_early))
+ wrapitup = TRUE;
(void)del_per_transfer(ended);
}
}
} while(msg);
+ if(wrapitup) {
+ if(still_running)
+ continue;
+ else
+ break;
+ }
if(!checkmore) {
time_t tock = time(NULL);
if(tick != tock) {
@@ -2218,6 +2287,8 @@ static CURLcode parallel_transfers(struct GlobalConfig *global,
/* we added new ones, make sure the loop doesn't exit yet */
still_running = 1;
}
+ if(is_fatal_error(result) || (result && global->fail_early))
+ wrapitup = TRUE;
}
}
@@ -2245,8 +2316,12 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
bool added = FALSE;
result = create_transfer(global, share, &added);
- if(result || !added)
+ if(result)
return result;
+ if(!added) {
+ errorf(global, "no transfer performed\n");
+ return CURLE_READ_ERROR;
+ }
for(per = transfers; per;) {
bool retry;
long delay;
diff --git a/src/tool_operate.h b/src/tool_operate.h
index 282b7858f..61994052f 100644
--- a/src/tool_operate.h
+++ b/src/tool_operate.h
@@ -56,6 +56,9 @@ struct per_transfer {
time_t startat; /* when doing parallel transfers, this is a retry transfer
that has been set to sleep until this time before it
should get started (again) */
+ bool abort; /* when doing parallel transfers and this is TRUE then a critical
+ error (eg --fail-early) has occurred in another transfer and
+ this transfer will be aborted in the progress callback */
/* for parallel progress bar */
curl_off_t dltotal;
diff --git a/src/tool_progress.c b/src/tool_progress.c
index da6c2bc6f..031f8b8d4 100644
--- a/src/tool_progress.c
+++ b/src/tool_progress.c
@@ -101,6 +101,9 @@ int xferinfo_cb(void *clientp,
per->ultotal = ultotal;
per->ulnow = ulnow;
+ if(per->abort)
+ return 1;
+
if(config->readbusy) {
config->readbusy = FALSE;
curl_easy_pause(per->curl, CURLPAUSE_CONT);
diff --git a/src/tool_util.c b/src/tool_util.c
index a7535dbef..a16852c68 100644
--- a/src/tool_util.c
+++ b/src/tool_util.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -86,7 +86,7 @@ struct timeval tvnow(void)
(void)gettimeofday(&now, NULL);
#else
else {
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
}
#endif
@@ -115,7 +115,7 @@ struct timeval tvnow(void)
** time() returns the value of time in seconds since the Epoch.
*/
struct timeval now;
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
return now;
}
diff --git a/src/tool_version.h b/src/tool_version.h
index e16b3fb2b..93bd7efd8 100644
--- a/src/tool_version.h
+++ b/src/tool_version.h
@@ -25,7 +25,7 @@
#define CURL_NAME "curl"
#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
-#define CURL_VERSION "7.78.0"
+#define CURL_VERSION "7.80.0"
#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
diff --git a/src/tool_vms.c b/src/tool_vms.c
index e250b7afd..a2678313a 100644
--- a/src/tool_vms.c
+++ b/src/tool_vms.c
@@ -128,7 +128,7 @@ struct decc_feat_t {
};
/* Array of DECC$* feature names and their desired values. */
-static struct decc_feat_t decc_feat_array[] = {
+static const struct decc_feat_t decc_feat_array[] = {
/* Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED */
{ "DECC$ARGV_PARSE_STYLE", 1 },
/* Preserve case for file names on ODS5 disks. */
diff --git a/src/tool_xattr.c b/src/tool_xattr.c
index 08e92fa50..76ee52482 100644
--- a/src/tool_xattr.c
+++ b/src/tool_xattr.c
@@ -24,7 +24,8 @@
#ifdef HAVE_FSETXATTR
# include <sys/xattr.h> /* header from libc, not from libattr */
# define USE_XATTR
-#elif defined(__FreeBSD_version) && (__FreeBSD_version > 500000)
+#elif (defined(__FreeBSD_version) && (__FreeBSD_version > 500000)) || \
+ defined(__MidnightBSD_version)
# include <sys/types.h>
# include <sys/extattr.h>
# define USE_XATTR
@@ -111,7 +112,7 @@ int fwrite_xattr(CURL *curl, int fd)
err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
#elif defined(HAVE_FSETXATTR_5)
err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
-#elif defined(__FreeBSD_version)
+#elif defined(__FreeBSD_version) || defined(__MidnightBSD_version)
{
ssize_t rc = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER,
mappings[i].attr, value, strlen(value));
diff --git a/test-driver b/test-driver
index 9759384aa..be73b80ad 100755
--- a/test-driver
+++ b/test-driver
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2020 Free Software Foundation, Inc.
+# Copyright (C) 2011-2021 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -105,8 +105,11 @@ trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
-# Test script is run here.
-"$@" >$log_file 2>&1
+# Test script is run here. We create the file first, then append to it,
+# to ameliorate tests themselves also writing to the log file. Our tests
+# don't, but others can (automake bug#35762).
+: >"$log_file"
+"$@" >>"$log_file" 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
@@ -128,7 +131,7 @@ esac
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
-echo "$res $test_name (exit status: $estatus)" >>$log_file
+echo "$res $test_name (exit status: $estatus)" >>"$log_file"
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index acd53d3e7..5771bd2c9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -46,5 +46,6 @@ add_runtests(test-am "-a -am")
add_runtests(test-full "-a -p -r")
# !flaky means that it'll skip all tests using the flaky keyword
add_runtests(test-nonflaky "-a -p !flaky")
+add_runtests(test-ci "-a -p !flaky -r -rm")
add_runtests(test-torture "-a -t")
add_runtests(test-event "-a -e")
diff --git a/tests/FILEFORMAT.md b/tests/FILEFORMAT.md
index 7a9c48204..df61c412f 100644
--- a/tests/FILEFORMAT.md
+++ b/tests/FILEFORMAT.md
@@ -148,6 +148,7 @@ Available substitute variables include:
- `%SRCDIR` - Full path to the source dir
- `%SSHPORT` - Port number of the SCP/SFTP server
- `%SSHSRVMD5` - MD5 of SSH server's public key
+- `%SSHSRVSHA256` - SHA256 of SSH server's public key
- `%SSH_PWD` - Current directory friendly for the SSH server
- `%TESTNUMBER` - Number of the test case
- `%TFTP6PORT` - IPv6 port number of the TFTP server
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8f47bb017..7c6498183 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -71,6 +71,9 @@ TEST_E = -a -e
# !flaky means that it'll skip all tests using the flaky keyword
TEST_NF = -a -p !flaky
+
+# special CI target derived from nonflaky with CI-specific flags
+TEST_CI = $(TEST_NF) -r -rm
endif
# make sure that PERL is pointing to an executable
@@ -86,6 +89,9 @@ quiet-test: perlcheck all
am-test: perlcheck all
$(TEST) $(TEST_AM) $(TFLAGS)
+ci-test: perlcheck all
+ $(TEST) $(TEST_CI) $(TFLAGS)
+
full-test: perlcheck all
$(TEST) $(TEST_F) $(TFLAGS)
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index e04eaa8a6..82609cf60 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -15,6 +15,8 @@
# of running runtests.pl as a child of itself sharing
# some of the directories.
1182
+# test 1184 causes flakiness in CI builds, mostly visible on macOS
+1184
1209
1211
# fnmatch differences are just too common to make testing them sensible
@@ -27,6 +29,8 @@
# test 1801 causes problems on Mac OS X and github
# https://github.com/curl/curl/issues/380
1801
+# test 2086 causes issues on Windows only
+2086
#
#
# Tests that are disabled here for Hyper are SUPPOSED to work but
@@ -36,30 +40,11 @@
# hyper support remains EXPERIMENTAL as long as there's a test number
# listed below
%if hyper
-154
-155
-158
-206
-207
-209
-213
-217
-246
-262
265
266
-281
-287
-319
-326
357
358
359
-547
-551
-552
-555
-559
565
579
580
@@ -71,49 +56,9 @@
672
673
718
-1001
-1002
-1008
1021
-1033
-1051
-1060
-1061
-1070
-1071
-1074
-1077
-1078
-1115
-1122
-1123
-1124
-1125
-1129
-1130
-1131
-1137
-1138
-1144
1156
-1160
-1164
-1170
-1171
-1176
-1266
-1267
-1280
-1287
-1288
-1294
-1416
1417
-1428
-1429
-1430
-1431
-1432
1455
1456
1525
@@ -129,9 +74,5 @@
1701
1702
1800
-2002
-2003
-2058
-2059
-2060
%endif
+2043
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index 163696962..9a8b64bed 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -60,14 +60,15 @@ test325 test326 test327 test328 test329 test330 test331 test332 test333 \
test334 test335 test336 test337 test338 test339 test340 test341 test342 \
test343 test344 test345 test346 test347 test348 test349 test350 test351 \
test352 test353 test354 test355 test356 test357 test358 test359 test360 \
-test361 test362 test363 test364 \
+test361 test362 test363 test364 test365 test366 test367 test368 test369 \
+test370 \
\
-test393 test394 test395 test396 test397 \
+test392 test393 test394 test395 test396 test397 \
\
test400 test401 test402 test403 test404 test405 test406 test407 test408 \
test409 test410 \
\
-test430 test431 test432 test433 test434 \
+test430 test431 test432 test433 test434 test435 \
\
test490 test491 test492 test493 test494 \
\
@@ -106,7 +107,7 @@ 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 test895 test896 \
+test890 test891 test892 test893 test894 test895 test896 test897 \
\
test900 test901 test902 test903 test904 test905 test906 test907 test908 \
test909 test910 test911 test912 test913 test914 test915 test916 test917 \
@@ -118,6 +119,8 @@ test954 test955 test956 test957 test958 test959 test960 test961 test962 \
test963 test964 test965 test966 test967 test968 test969 test970 test971 \
test972 \
\
+test980 test981 test982 test983 test984 test985 test986 \
+\
test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \
test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \
test1016 test1017 test1018 test1019 test1020 test1021 test1022 test1023 \
@@ -141,7 +144,7 @@ test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \
test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 \
test1168 test1169 test1170 test1171 test1172 test1173 test1174 test1175 \
test1176 test1177 test1178 test1179 test1180 test1181 test1182 test1183 \
-\
+test1184 test1185 \
test1188 \
\
test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 \
@@ -180,14 +183,14 @@ test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 \
test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 \
test1448 test1449 test1450 test1451 test1452 test1453 test1454 test1455 \
test1456 test1457 test1458 test1459 test1460 test1461 test1462 test1463 \
-test1464 test1465 \
+test1464 test1465 test1466 \
\
test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 \
test1508 test1509 test1510 test1511 test1512 test1513 test1514 test1515 \
test1516 test1517 test1518 test1519 test1520 test1521 test1522 test1523 \
test1524 test1525 test1526 test1527 test1528 test1529 test1530 test1531 \
test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 \
-test1540 \
+test1540 test1542 \
\
test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \
test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \
@@ -213,21 +216,19 @@ test1800 test1801 \
test1908 test1909 test1910 test1911 test1912 test1913 test1914 test1915 \
test1916 test1917 test1918 \
\
-test1933 test1934 test1935 test1936 \
+test1933 test1934 test1935 test1936 test1937 test1938 \
\
test2000 test2001 test2002 test2003 test2004 \
\
test2023 \
test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \
-test2032 test2034 test2035 test2036 test2037 test2038 test2039 \
+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 \
-test2064 test2065 test2066 test2067 test2068 test2069 test2070 \
- test2071 test2072 test2073 test2074 test2075 test2076 test2077 \
-test2078 \
-test2080 test2081 \
+test2064 test2065 test2066 test2067 test2068 test2069 test2070 test2071 \
+test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 \
+test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 \
\
test2100 \
\
@@ -235,4 +236,5 @@ test2200 test2201 test2202 test2203 test2204 test2205 \
\
test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \
test3008 test3009 test3010 test3011 test3012 test3013 test3014 test3015 \
-test3016 test3017 test3018 test3019 test3020
+test3016 test3017 test3018 test3019 test3020 test3021 test3022 test3023 \
+test3024
diff --git a/tests/data/test1007 b/tests/data/test1007
index e3c12b8d1..c50e97d51 100644
--- a/tests/data/test1007
+++ b/tests/data/test1007
@@ -31,12 +31,12 @@ This data will not be sent
69
</errorcode>
<protocol>
-opcode: 2
-mode: octet
-tsize: 27
-blksize: 512
-timeout: 6
-filename: /invalid-file
+opcode = 2
+mode = octet
+tsize = 27
+blksize = 512
+timeout = 6
+filename = /invalid-file
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1009 b/tests/data/test1009
index 223fcdbd0..9e1fa55f5 100644
--- a/tests/data/test1009
+++ b/tests/data/test1009
@@ -36,12 +36,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER --local-port 44444-45444
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1049 b/tests/data/test1049
index 713b4bb19..54d23903a 100644
--- a/tests/data/test1049
+++ b/tests/data/test1049
@@ -36,12 +36,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER --interface %CLIENTIP
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1093 b/tests/data/test1093
index 5e1484d16..4fbc7b81b 100644
--- a/tests/data/test1093
+++ b/tests/data/test1093
@@ -36,12 +36,12 @@ TFTP retrieve with mode=i
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1094 b/tests/data/test1094
index 3ed53f281..dd1452bb5 100644
--- a/tests/data/test1094
+++ b/tests/data/test1094
@@ -42,12 +42,12 @@ TFTP retrieve with mode=netascii
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: netascii
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = netascii
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1099 b/tests/data/test1099
index f2fa2f28b..77099916f 100644
--- a/tests/data/test1099
+++ b/tests/data/test1099
@@ -31,18 +31,18 @@ tftp://%HOSTIP:%TFTPPORT/an/invalid-file tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: an/invalid-file
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = an/invalid-file
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
<stdout>
data for %TESTNUMBER
diff --git a/tests/data/test1122 b/tests/data/test1122
index 8f2fd870a..a9f6c434f 100644
--- a/tests/data/test1122
+++ b/tests/data/test1122
@@ -11,16 +11,17 @@ Transfer-Encoding
# Server-side
<reply>
<data base64="yes">
-SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
-dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
-UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
-VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
-U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
-Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+SFRUUC8xLjEgMjAwIE9LIHN3c2Nsb3NlDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUz
+IEdNVA0KU2VydmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8x
+LjMuMjYuMWEgUEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3Bl
+cmwvMS4yOQ0KVmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
+Y2hhcnNldD1JU08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5n
+dGg6IDQ0DQoNCh+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
</data>
+# This ignore Content-Length
<datacheck>
-HTTP/1.1 200 OK
+HTTP/1.1 200 OK swsclose
Date: Mon, 29 Nov 2004 21:56:53 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
Vary: Accept-Encoding
diff --git a/tests/data/test1123 b/tests/data/test1123
index 5ee840094..036c78d8c 100644
--- a/tests/data/test1123
+++ b/tests/data/test1123
@@ -15,30 +15,30 @@ SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
-U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZGVmbGF0ZQ0KQ29udGVudC1MZW5ndGg6IDEz
-MDUNCg0KeJzcWNtu4zYQfTeQf2D91AK2brYTOXC0KHLZBM02wdoFuk8GLdE2G0kUSMq5PPTbO5Qo
-ibEcr3eDvgRIYnLmnMPhDEmTmXx6SmK0IVxQlp51XcvpIpKGLKLp6qx7M73r+/5o3He7n4LO5JeL
-u/PZt/tLlHH2DwllP6ZCAhBNv01nl19Qdy1ldmrbS07EOiFYWimR9gKHDySN7GXS1zzRd6yhFcmo
-C6JbWkEHocqm2k1vTqPAPXa9iW0YSkSEJZnjKCKAGI/9vuP3PRc5w1PHPfXGE9vwG4Q8Ux9R4DnO
-sO86fddHjnfqwc9AUyrEqzhSnJC5WDMugzDncR2OYW/jl3kcF3CE0wjFdNGmFhAdHhGhljpnSVJS
-UoIkY7UAx/wZLRlHYUxJKvuCRgT99fUWSY5TsYSKWjCLRshQ3hkMogLhcgSlWqlwVd8ljYk46uRC
-ddQY4jmV+MlCNxKJPMtAX6Dr2ey+V/yd9tAVtI86V0X74uZ81kOzy9s/L+Hz9uJ3gF3d3F72iuE/
-391fX36FNgzwSGKIqZTqZ0zInm7m0AoZe6BEFNooz2KGIxgCllqekKiZdQ9lWIhHxiPVhMjSPFkU
-9un09qgTEi7pkoZQVzD9QTj4mChDgWo8wQjFtCAbGXsknERHncVzlaQekmvyZsarslhHndkaqAjD
-74KmajMJSG2dapVgBpsOec5RJ8bpKscrIooYSLqhnKUJDCBAR5fQWBsbKnFM5fNchIyTYHTiD63R
-ycTesm+BM8JDkAwGlntsYCvzFhrm8wB7bWwgC5Ne1yzLY8ybsY5HY4hhCMt529MiVAO6A8t3XxFe
-h2I4ymCc0Su0EQ7HxbnhWyNnYuuO6ZmHLAddz6282vAKUw7iD2qMMYDIFyLkNJNwRIpgoE6H16YS
-BqVPw/Vc7eXggixxHsuJbRpLGNR/Xh1gGZQ92HloVielrdaLPbFbrEZszRLythAsYMpLFXV42iZD
-69YCjaZcvRwuB2CtpGiNyOLFO1wEwFpE0RqRF5odLgJgLaJojUi4hj1GYrY6XKqmaMFGopHlWXK4
-IIC1lKI1IhFZHC4CYC2iaI0IE0+HiwBYiyiaUS8RqfPyB2pWEqq6abqxzHMOaRMk0Ou36hqF2Ygf
-KMlGVMXYCENE3RwOV1FoLVMQG52Ecs744UolXmtpslnXhAVVraBZemIKhxyk4MvNzP4bncPpASmj
-eYJuS8fErhAar76n5JyTmNSZa5nn+v4WnFiuZ8EF6Q33G2x1rzo5dvxRi1hdsNocdS/afXHaBSzn
-Yu+azATOUQITXjM5l2v4qoactUwlEucSbjKiDqnsV93aoE9gnFISo6kkKXzDrya26WxRoEq76/7v
-Aq8ioopsIFt0zmIS3D2mhNe4wlRFapuhVr1qCasveE4TmmJpzk5yuCEUtYGC1p2W1/OO97kHe7n7
-nK7v7+W6e8eFpbE/6r1u93i4zz3eS/bHe73OXrc7+k7c3wlsf2SD1tjl/W67/LAmMngywUMMrqO1
-Tm18RvI5I2ddTkJ4HSibeknVi7LBmRvZUUPtcuwk6nsLuE+Gqhg7XTuZxuOsRd1+uL3FlVSqDQV2
-uLOjX/Vt6redWiW23mkN4u28seLehuP/L2nOT2dsOHhnxtT76uMnyvUGI/cdmXqBp9jHz9LAc4Yn
-78jSNaFJhOOPn6jhcDTw3pGosA9PffEzeTIs+qyv/ysUdP4DAAD//4IzEaNjAAAAAP//AwDdOI7R
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZGVmbGF0ZSwgY2h1bmtlZA0KDQo1MTkNCnic
+3FjbbuM2EH03kH9g/dQCtm62EzlwtChy2QTNNsHaBbpPBi3RNhtJFEjKuTz02zuUKImxHK93g74E
+SGJy5pzD4QxJk5l8ekpitCFcUJaedV3L6SKShiyi6eqsezO96/v+aNx3u5+CzuSXi7vz2bf7S5Rx
+9g8JZT+mQgIQTb9NZ5dfUHctZXZq20tOxDohWFopkfYChw8kjexl0tc80XesoRXJqAuiW1pBB6HK
+ptpNb06jwD12vYltGEpEhCWZ4ygigBiP/b7j9z0XOcNTxz31xhPb8BuEPFMfUeA5zrDvOn3XR453
+6sHPQFMqxKs4UpyQuVgzLoMw53EdjmFv45d5HBdwhNMIxXTRphYQHR4RoZY6Z0lSUlKCJGO1AMf8
+GS0ZR2FMSSr7gkYE/fX1FkmOU7GEilowi0bIUN4ZDKIC4XIEpVqpcFXfJY2JOOrkQnXUGOI5lfjJ
+QjcSiTzLQF+g69nsvlf8nfbQFbSPOldF++LmfNZDs8vbPy/h8/bid4Bd3dxe9orhP9/dX19+hTYM
+8EhiiKmU6mdMyJ5u5tAKGXugRBTaKM9ihiMYApZanpComXUPZViIR8Yj1YTI0jxZFPbp9PaoExIu
+6ZKGUFcw/UE4+JgoQ4FqPMEIxbQgGxl7JJxER53Fc5WkHpJr8mbGq7JYR53ZGqgIw++CpmozCUht
+nWqVYAabDnnOUSfG6SrHKyKKGEi6oZylCQwgQEeX0FgbGypxTOXzXISMk2B04g+t0cnE3rJvgTPC
+Q5AMBpZ7bGAr8xYa5vMAe21sIAuTXtcsy2PMm7GOR2OIYQjLedvTIlQDugPLd18RXodiOMpgnNEr
+tBEOx8W54VsjZ2LrjumZhywHXc+tvNrwClMO4g9qjDGAyBci5DSTcESKYKBOh9emEgalT8P1XO3l
+4IIscR7LiW0aSxjUf14dYBmUPdh5aFYnpa3Wiz2xW6xGbM0S8rYQLGDKSxV1eNomQ+vWAo2mXL0c
+LgdgraRojcjixTtcBMBaRNEakReaHS4CYC2iaI1IuIY9RmK2OlyqpmjBRqKR5VlyuCCAtZSiNSIR
+WRwuAmAtomiNCBNPh4sAWIsomlEvEanz8gdqVhKqumm6scxzDmkTJNDrt+oahdmIHyjJRlTF2AhD
+RN0cDldRaC1TEBudhHLO+OFKJV5rabJZ14QFVa2gWXpiCoccpODLzcz+G53D6QEpo3mCbkvHxK4Q
+Gq++p+Sck5jUmWuZ5/r+FpxYrmfBBekN9xtsda86OXb8UYtYXbDaHHUv2n1x2gUs52LvmswEzlEC
+E14zOZdr+KqGnLVMJRLnEm4yog6p7Ffd2qBPYJxSEqOpJCl8w68mtulsUaBKu+v+7wKvIqKKbCBb
+dM5iEtw9poTXuMJURWqboVa9agmrL3hOE5piac5OcrghFLWBgtadltfzjve5B3u5+5yu7+/lunvH
+haWxP+q9bvd4uM893kv2x3u9zl63O/pO3N8JbH9kg9bY5f1uu/ywJjJ4MsFDDK6jtU5tfEbyOSNn
+XU5CeB0om3pJ1YuywZkb2VFD7XLsJOp7C7hPhqoYO107mcbjrEXdfri9xZVUqg0Fdrizo1/1beq3
+nVoltt5pDeLtvLHi3obj/y9pzk9nbDh4Z8bU++rjJ8r1BiP3HZl6gafYx8/SwHOGJ+/I0jWhSYTj
+j5+o4XA08N6RqLAPT33xM3kyLPqsr/8rFHT+AwAA//+CMxGjYwAAAAD//wMA3TiO0Q0KMA0KDQo=
</data>
<datacheck>
@@ -47,8 +47,7 @@ Date: Mon, 29 Nov 2004 21:56:53 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
Vary: Accept-Encoding
Content-Type: text/html; charset=ISO-8859-1
-Transfer-Encoding: deflate
-Content-Length: 1305
+Transfer-Encoding: deflate, chunked
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
diff --git a/tests/data/test1125 b/tests/data/test1125
index 1bb306bbe..43e00a5f0 100644
--- a/tests/data/test1125
+++ b/tests/data/test1125
@@ -15,8 +15,8 @@ SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
-U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
-Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcCwgY2h1bmtlZA0KDQoyYw0KH4sICHme
+q0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAANCjANCg0K
</data>
<datacheck>
@@ -25,8 +25,7 @@ Date: Mon, 29 Nov 2004 21:56:53 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
Vary: Accept-Encoding
Content-Type: text/html; charset=ISO-8859-1
-Transfer-Encoding: gzip
-Content-Length: 44
+Transfer-Encoding: gzip, chunked
line 1
line 2
diff --git a/tests/data/test1138 b/tests/data/test1138
index 6c5f00d0d..c98258394 100644
--- a/tests/data/test1138
+++ b/tests/data/test1138
@@ -11,7 +11,7 @@ followlocation
<reply>
<data>
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=آغاز-سم-زدایی-از-بازار-پول&testcase=/%TESTNUMBER0002
+Location: ../moo.html/?name=آغاز-سم-زدایی-از-بازار-پول&testcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
@@ -26,7 +26,7 @@ body
</data2>
<datacheck>
HTTP/1.1 302 OK swsclose
-Location: ../moo.html/?name=آغاز-سم-زدایی-از-بازار-پول&testcase=/%TESTNUMBER0002
+Location: ../moo.html/?name=آغاز-سم-زدایی-از-بازار-پول&testcase=/%TESTNUMBER0002
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close
diff --git a/tests/data/test1144 b/tests/data/test1144
index 1fc852b22..7e2242be8 100644
--- a/tests/data/test1144
+++ b/tests/data/test1144
@@ -40,6 +40,10 @@ verify
#
# Client-side
<client>
+# hyper doesn't support HTTP/0.9
+<features>
+!hyper
+</features>
<server>
http
</server>
diff --git a/tests/data/test1160 b/tests/data/test1160
index ac10e5a91..e24ce93e1 100644
--- a/tests/data/test1160
+++ b/tests/data/test1160
@@ -15,7 +15,7 @@ cookies
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 0
-Set-Cookie: = ; zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz󠁖zzzzzzzzzzzz~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+Set-Cookie: ____________= ; zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz󠁖zzzzzzzzzzzz~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
</data>
</reply>
diff --git a/tests/data/test1164 b/tests/data/test1164
index 6140c2ec8..aedd6c97d 100644
--- a/tests/data/test1164
+++ b/tests/data/test1164
@@ -22,6 +22,10 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
#
# Client-side
<client>
+# hyper doesn't support HTTP/0.9
+<features>
+!hyper
+</features>
<server>
http
</server>
diff --git a/tests/data/test1170 b/tests/data/test1170
index 688fbed79..fd718f32c 100644
--- a/tests/data/test1170
+++ b/tests/data/test1170
@@ -15,8 +15,8 @@ SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
-U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
-Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcCwgY2h1bmtlZA0KDQoyYw0KH4sICHme
+q0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAANCjANCg0K
</data>
<datacheck>
@@ -25,8 +25,7 @@ Date: Mon, 29 Nov 2004 21:56:53 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
Vary: Accept-Encoding
Content-Type: text/html; charset=ISO-8859-1
-Transfer-Encoding: gzip
-Content-Length: 44
+Transfer-Encoding: gzip, chunked
line 1
line 2
diff --git a/tests/data/test1171 b/tests/data/test1171
index 7057e0cb5..e66f87cf9 100644
--- a/tests/data/test1171
+++ b/tests/data/test1171
@@ -15,8 +15,8 @@ SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
-U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
-Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcCwgY2h1bmtlZA0KDQoyYw0KH4sICHme
+q0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAANCjANCg0K
</data>
<datacheck>
@@ -25,8 +25,7 @@ Date: Mon, 29 Nov 2004 21:56:53 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
Vary: Accept-Encoding
Content-Type: text/html; charset=ISO-8859-1
-Transfer-Encoding: gzip
-Content-Length: 44
+Transfer-Encoding: gzip, chunked
line 1
line 2
diff --git a/tests/data/test1173 b/tests/data/test1173
index dd09f81d8..f52afa6bb 100644
--- a/tests/data/test1173
+++ b/tests/data/test1173
@@ -15,12 +15,18 @@ none
</server>
<name>
-Basic man page syntax check
+Man page syntax checks
</name>
<command type="perl">
-%SRCDIR/manpage-syntax.pl %SRCDIR/../docs/*.1 %SRCDIR/../docs/libcurl/*.3 %SRCDIR/../docs/libcurl/opts/*.3
+%SRCDIR/manpage-syntax.pl %SRCDIR/../docs/libcurl/symbols-in-versions %SRCDIR/../docs/*.1 %SRCDIR/../docs/libcurl/*.3 %SRCDIR/../docs/libcurl/opts/*.3
</command>
</client>
+<verify>
+<stderr>
+ok
+</stderr>
+</verify>
+
</testcase>
diff --git a/tests/data/test1176 b/tests/data/test1176
index bc3711c56..d2471e168 100644
--- a/tests/data/test1176
+++ b/tests/data/test1176
@@ -9,17 +9,17 @@ globbing
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 OK
-Date: Tue, 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
-
+HTTP/1.1 200 OK
+Date: Tue, 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>
@@ -31,7 +31,7 @@ Funny-head: yesyes
http
</server>
<name>
-HTTP GET
+--output using #0
</name>
<command option="no-output">
http://%HOSTIP:%HTTPPORT/%TESTNUMBER -o 'log/base-#0'
@@ -49,17 +49,17 @@ Accept: */*
</protocol>
<file name="log/base-#0">
-HTTP/1.1 200 OK
-Date: Tue, 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
-
+HTTP/1.1 200 OK
+Date: Tue, 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>
diff --git a/tests/data/test1184 b/tests/data/test1184
new file mode 100644
index 000000000..feac348ef
--- /dev/null
+++ b/tests/data/test1184
@@ -0,0 +1,108 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP CONNECT
+HTTP proxy
+proxytunnel
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<connect>
+HTTP/1.1 200 Mighty fine indeed
+Server: test tunnel 2000
+
+</connect>
+
+<data nocheck="yes">
+HTTP/1.1 302 OK
+Location: http://%HOSTIP.%TESTNUMBER:%HTTPPORT/we/want/that/page/%TESTNUMBER0002
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Funny-head: yesyes
+Content-Length: 9
+Connection: close
+
+contents
+</data>
+
+<data2 nocheck="yes">
+HTTP/1.1 200 OK
+Content-Length: 7
+
+second
+</data2>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+http-proxy
+</server>
+ <name>
+HTTP 1.1 CONNECT with redirect and set -H user-agent
+ </name>
+ <command>
+-x %HOSTIP:%PROXYPORT -p http://%HOSTIP.%TESTNUMBER:%HTTPPORT/we/want/that/page/%TESTNUMBER -L -H "User-Agent: %TESTNUMBER-agent"
+</command>
+<features>
+proxy
+</features>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<proxy>
+CONNECT %HOSTIP.%TESTNUMBER:%HTTPPORT HTTP/1.1
+Host: %HOSTIP.%TESTNUMBER:%HTTPPORT
+User-Agent: curl/%VERSION
+Proxy-Connection: Keep-Alive
+
+CONNECT %HOSTIP.%TESTNUMBER:%HTTPPORT HTTP/1.1
+Host: %HOSTIP.%TESTNUMBER:%HTTPPORT
+User-Agent: curl/%VERSION
+Proxy-Connection: Keep-Alive
+
+</proxy>
+<protocol>
+GET /we/want/that/page/%TESTNUMBER HTTP/1.1
+Host: %HOSTIP.%TESTNUMBER:%HTTPPORT
+Accept: */*
+User-Agent: %TESTNUMBER-agent
+
+GET /we/want/that/page/%TESTNUMBER0002 HTTP/1.1
+Host: %HOSTIP.%TESTNUMBER:%HTTPPORT
+Accept: */*
+User-Agent: %TESTNUMBER-agent
+
+</protocol>
+<stdout>
+HTTP/1.1 200 Mighty fine indeed
+Server: test tunnel 2000
+
+HTTP/1.1 302 OK
+Location: http://%HOSTIP.%TESTNUMBER:%HTTPPORT/we/want/that/page/%TESTNUMBER0002
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Funny-head: yesyes
+Content-Length: 9
+Connection: close
+
+HTTP/1.1 200 Mighty fine indeed
+Server: test tunnel 2000
+
+HTTP/1.1 200 OK
+Content-Length: 7
+
+second
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test1185 b/tests/data/test1185
new file mode 100644
index 000000000..47b4f22aa
--- /dev/null
+++ b/tests/data/test1185
@@ -0,0 +1,184 @@
+<testcase>
+<info>
+<keywords>
+checksrc
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<name>
+checksrc
+</name>
+
+<command type="perl">
+%SRCDIR/../lib/checksrc.pl log/code%TESTNUMBER.c
+</command>
+<file name="log/code%TESTNUMBER.c">
+/* test source code
+ * Violate each rule at least once.
+ **/
+int hello; /*------------------------------------------------------------------*/
+int tab;
+int trailing_space;
+int a = func ();
+int b = func( b);
+int b = func(b );
+func(a, b , c);
+
+int hello()
+{
+ return(2);
+}
+func(a, b,c);
+
+if(a == 2) {
+ ;
+} else {
+ moo = 2;
+}
+
+if(a == 2){ /* followed by comment */
+ ;
+}
+
+func() ;
+
+a = sprintf(buffer, "%s", moo);
+
+FILE *f = fopen("filename", "r");
+
+void startfunc(int a, int b) {
+ func();
+}
+
+ for(;;) {
+ func(1);
+ } while(1);
+
+ char * name = "hello";
+ char* name = "hello";
+
+ int foo=bar;
+ int foo= bar;
+ int foo = bar;
+ int foo = bar;foo++;
+ for(;;) {
+ }
+
+ int a = sizeof int;
+ int a = snprintf(buffer, sizeof(buffer), "%d", 99);
+
+ if(a) b++;
+
+ // CPP comment?
+
+ /* comment doesn't end
+
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<stdout>
+./log/code1185.c:4:82: warning: Longer than 79 columns (LONGLINE)
+ int hello; /*------------------------------------------------------------------*/
+./log/code1185.c:5:4: error: Contains TAB character (TABS)
+ int tab;
+ ^
+./log/code1185.c:7:13: warning: func with space (SPACEBEFOREPAREN)
+ int a = func ();
+ ^
+./log/code1185.c:8:14: warning: space after open parenthesis (SPACEAFTERPAREN)
+ int b = func( b);
+ ^
+./log/code1185.c:9:16: warning: space before close parenthesis (SPACEBEFORECLOSE)
+ int b = func(b );
+ ^
+./log/code1185.c:10:11: warning: space before comma (SPACEBEFORECOMMA)
+ func(a, b , c);
+ ^
+./log/code1185.c:14:9: warning: return without space before paren (RETURNNOSPACE)
+ return(2);
+ ^
+./log/code1185.c:16:11: warning: comma without following space (COMMANOSPACE)
+ func(a, b,c);
+ ^
+./log/code1185.c:18:12: warning: wrongly placed open brace (BRACEPOS)
+ if(a == 2) {
+ ^
+./log/code1185.c:20:1: warning: else after closing brace on same line (BRACEELSE)
+ } else {
+ ^
+./log/code1185.c:24:11: warning: missing space after close paren (PARENBRACE)
+ if(a == 2){
+ ^
+./log/code1185.c:28:7: warning: no space before semicolon (SPACESEMICOLON)
+ func() ;
+ ^
+./log/code1185.c:30:5: warning: use of sprintf is banned (BANNEDFUNC)
+ a = sprintf(buffer, "%s", moo);
+ ^
+./log/code1185.c:32:11: warning: use of non-binary fopen without FOPEN_* macro: r (FOPENMODE)
+ FILE *f = fopen("filename", "r");
+ ^
+./log/code1185.c:34:30: warning: wrongly placed open brace (BRACEPOS)
+ void startfunc(int a, int b) {
+ ^
+./log/code1185.c:39:6: warning: not indented 2 steps (uses 4) (INDENTATION)
+ func(1);
+ ^
+./log/code1185.c:42:8: warning: space after declarative asterisk (ASTERISKSPACE)
+ char * name = "hello";
+ ^
+./log/code1185.c:43:7: warning: space after declarative asterisk (ASTERISKSPACE)
+ char* name = "hello";
+ ^
+./log/code1185.c:43:6: warning: no space before asterisk (ASTERISKNOSPACE)
+ char* name = "hello";
+ ^
+./log/code1185.c:45:10: warning: no space after equals sign (EQUALSNOSPACE)
+ int foo=bar;
+ ^
+./log/code1185.c:46:9: warning: no space before equals sign (NOSPACEEQUALS)
+ int foo= bar;
+ ^
+./log/code1185.c:48:16: warning: no space after semicolon (SEMINOSPACE)
+ int foo = bar;foo++;
+ ^
+./log/code1185.c:49:10: warning: multiple spaces (MULTISPACE)
+ for(;;) {
+ ^
+./log/code1185.c:50:2: warning: not indented 2 steps (uses 0) (INDENTATION)
+ }
+ ^
+./log/code1185.c:52:16: warning: sizeof without parenthesis (SIZEOFNOPAREN)
+ int a = sizeof int;
+ ^
+./log/code1185.c:53:10: warning: use of snprintf is banned (SNPRINTF)
+ int a = snprintf(buffer, sizeof(buffer), "%d", 99);
+ ^
+./log/code1185.c:55:7: warning: conditional block on the same line (ONELINECONDITION)
+ if(a) b++;
+ ^
+./log/code1185.c:57:2: warning: // comment (CPPCOMMENTS)
+ // CPP comment?
+ ^
+./log/code1185.c:1:1: error: Missing copyright statement (COPYRIGHT)
+
+ ^
+./log/code1185.c:1:1: error: Missing closing comment (OPENCOMMENT)
+
+ ^
+checksrc: 0 errors and 30 warnings
+</stdout>
+<errorcode>
+5
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test1238 b/tests/data/test1238
index 606dd1fe4..cfb541c9c 100644
--- a/tests/data/test1238
+++ b/tests/data/test1238
@@ -45,12 +45,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER -Y1000 -y2
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
# 28 = CURLE_OPERATION_TIMEDOUT
<errorcode>
diff --git a/tests/data/test1242 b/tests/data/test1242
index 9f573a756..61938a041 100644
--- a/tests/data/test1242
+++ b/tests/data/test1242
@@ -35,9 +35,9 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER --tftp-no-options
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1243 b/tests/data/test1243
index f8b246fe7..ba08a837f 100644
--- a/tests/data/test1243
+++ b/tests/data/test1243
@@ -36,9 +36,9 @@ sent
to server
</upload>
<protocol>
-opcode: 2
-mode: octet
-filename: /test%TESTNUMBER.txt
+opcode = 2
+mode = octet
+filename = /test%TESTNUMBER.txt
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1266 b/tests/data/test1266
index c5c8ba37d..2e72ae486 100644
--- a/tests/data/test1266
+++ b/tests/data/test1266
@@ -19,6 +19,10 @@ swsclose
#
# Client-side
<client>
+# hyper doesn't grok HTTP/0.9
+<features>
+!hyper
+</features>
<server>
http
</server>
diff --git a/tests/data/test1267 b/tests/data/test1267
index 7ca6dde80..920fc577f 100644
--- a/tests/data/test1267
+++ b/tests/data/test1267
@@ -19,6 +19,10 @@ swsclose
#
# Client-side
<client>
+# hyper doesn't grok HTTP/0.9
+<features>
+!hyper
+</features>
<server>
http
</server>
diff --git a/tests/data/test1272 b/tests/data/test1272
index fc1baea10..39c62901e 100644
--- a/tests/data/test1272
+++ b/tests/data/test1272
@@ -22,6 +22,9 @@ iMenu results error.host 1
<server>
gophers
</server>
+<killserver>
+gophers
+</killserver>
<name>
Gophers index
</name>
diff --git a/tests/data/test1273 b/tests/data/test1273
index 61d475a2e..0c076cb96 100644
--- a/tests/data/test1273
+++ b/tests/data/test1273
@@ -44,6 +44,9 @@ Content-Length: 0
<server>
http
</server>
+<killserver>
+http
+</killserver>
<name>
-f and resume transfer of an entirely-downloaded file
</name>
diff --git a/tests/data/test1280 b/tests/data/test1280
index 3744dc810..3f5bdd5bb 100644
--- a/tests/data/test1280
+++ b/tests/data/test1280
@@ -9,11 +9,11 @@ globbing
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK
-Date: Tue, 09 Nov 2010 14:49:00 GMT
-Content-Length: 6
-Connection: close
-
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Content-Length: 6
+Connection: close
+
bytes
</data>
</reply>
diff --git a/tests/data/test1287 b/tests/data/test1287
index 5493e7dc0..0d0ad47d0 100644
--- a/tests/data/test1287
+++ b/tests/data/test1287
@@ -83,8 +83,10 @@ Accept: */*
</protocol>
<file name="log/stderr%TESTNUMBER" mode="text">
+%if !hyper
* Ignoring Content-Length in CONNECT 200 response
* Ignoring Transfer-Encoding in CONNECT 200 response
+%endif
</file>
<stripfile>
s/^.*(?=\* Ignoring (?:Content-Length|Transfer-Encoding) )// or $_ = ''
diff --git a/tests/data/test1294 b/tests/data/test1294
index 7f2a37797..396f8a173 100644
--- a/tests/data/test1294
+++ b/tests/data/test1294
@@ -28,8 +28,10 @@ Funny-head: yesyes
#
# Client-side
<client>
+# hyper doesn't support the added crazy header
<features>
debug
+!hyper
</features>
<server>
http
diff --git a/tests/data/test1400 b/tests/data/test1400
index 08fa023d4..b4d29d379 100644
--- a/tests/data/test1400
+++ b/tests/data/test1400
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1401 b/tests/data/test1401
index 609b34ce0..65efc474c 100644
--- a/tests/data/test1401
+++ b/tests/data/test1401
@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
(long)CURLPROTO_HTTP);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1402 b/tests/data/test1402
index 89515a8ce..c111af4a9 100644
--- a/tests/data/test1402
+++ b/tests/data/test1402
@@ -84,7 +84,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1403 b/tests/data/test1403
index f8964f86b..f86f0111c 100644
--- a/tests/data/test1403
+++ b/tests/data/test1403
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1404 b/tests/data/test1404
index 49f66a1cc..3b41c5cef 100644
--- a/tests/data/test1404
+++ b/tests/data/test1404
@@ -153,7 +153,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1405 b/tests/data/test1405
index 0a144e1a4..aa7cf4da1 100644
--- a/tests/data/test1405
+++ b/tests/data/test1405
@@ -93,7 +93,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1406 b/tests/data/test1406
index 498374779..969df638e 100644
--- a/tests/data/test1406
+++ b/tests/data/test1406
@@ -86,7 +86,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, (curl_off_t)38);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1407 b/tests/data/test1407
index 5dba13943..7f48de2d1 100644
--- a/tests/data/test1407
+++ b/tests/data/test1407
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1420 b/tests/data/test1420
index d100a6139..92905faba 100644
--- a/tests/data/test1420
+++ b/tests/data/test1420
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
/* Here is a list of options the curl code used that cannot get generated
- as source easily. You may select to either not use them or implement
+ as source easily. You may choose to either not use them or implement
them yourself.
CURLOPT_WRITEDATA set to a objectpointer
diff --git a/tests/data/test1429 b/tests/data/test1429
index 9fc3cd246..2f9dfb931 100644
--- a/tests/data/test1429
+++ b/tests/data/test1429
@@ -9,17 +9,17 @@ HTTP/0.9
<reply>
<data nocheck="yes">
-HTTP/1.1 2345 OK
-Date: Tue, 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
-
+HTTP/1.1 999 OK
+Date: Tue, 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>
@@ -32,10 +32,10 @@ http
</server>
<name>
-HTTP GET with 4-digit response code
+HTTP GET with 999 response code
</name>
<command>
-http://%HOSTIP:%HTTPPORT/%TESTNUMBER --write-out '%{response_code}' --http0.9
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER --write-out '%{response_code}'
</command>
</client>
@@ -43,19 +43,19 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER --write-out '%{response_code}' --http0.9
# Verify data after the test has been "shot"
<verify>
<stdout nonewline="yes">
-HTTP/1.1 2345 OK
-Date: Tue, 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
-
+HTTP/1.1 999 OK
+Date: Tue, 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-
-234
+999
</stdout>
<protocol>
GET /%TESTNUMBER HTTP/1.1
diff --git a/tests/data/test1430 b/tests/data/test1430
index 3dbeae856..8ed513c60 100644
--- a/tests/data/test1430
+++ b/tests/data/test1430
@@ -7,7 +7,7 @@ HTTP GET
</info>
<reply>
-<data>
+<data nocheck="yes">
HTTP/1.1 -12 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
@@ -47,5 +47,10 @@ User-Agent: curl/%VERSION
Accept: */*
</protocol>
+# 1 - CURLE_UNSUPPORTED_PROTOCOL
+# Due to invalid HTTP response code
+<errorcode>
+1
+</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test1431 b/tests/data/test1431
index be6277d89..26cf4aaf7 100644
--- a/tests/data/test1431
+++ b/tests/data/test1431
@@ -7,7 +7,7 @@ HTTP GET
</info>
<reply>
-<data>
+<data nocheck="yes">
HTTP/1.1 2 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
@@ -47,5 +47,8 @@ User-Agent: curl/%VERSION
Accept: */*
</protocol>
+<errorcode>
+1
+</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test1432 b/tests/data/test1432
index ab76e94b0..d134688a3 100644
--- a/tests/data/test1432
+++ b/tests/data/test1432
@@ -48,5 +48,8 @@ User-Agent: curl/%VERSION
Accept: */*
</protocol>
+<errorcode>
+1
+</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test1451 b/tests/data/test1451
index cdbd398f3..9fdd68a61 100644
--- a/tests/data/test1451
+++ b/tests/data/test1451
@@ -29,7 +29,7 @@ Basic SMB request
-u 'curltest:curltest' smb://%HOSTIP:%SMBPORT/TESTS/%TESTNUMBER
</command>
<precheck>
-python -c "__import__('pkgutil').find_loader('impacket') or (__import__('sys').stdout.write('Test only works if Python package impacket is installed\n'), __import__('sys').exit(1))"
+python3 -c "__import__('pkgutil').find_loader('impacket') or (__import__('sys').stdout.write('Test only works if Python package impacket is installed\n'), __import__('sys').exit(1))"
</precheck>
</client>
diff --git a/tests/data/test1461 b/tests/data/test1461
index 301dc144e..847f8d1fb 100644
--- a/tests/data/test1461
+++ b/tests/data/test1461
@@ -32,18 +32,18 @@ curl important --help
</errorcode>
<stdout mode="text">
Usage: curl [options...] <url>
- -d, --data <data> HTTP POST data
- -f, --fail Fail silently (no output at all) on HTTP errors
- -h, --help <category> Get help for commands
- -i, --include Include protocol response headers in the output
- -o, --output <file> Write to file instead of stdout
- -O, --remote-name Write output to a file named as the remote file
- -s, --silent Silent mode
- -T, --upload-file <file> Transfer local FILE to destination
- -u, --user <user:password> Server user and password
- -A, --user-agent <name> Send User-Agent <name> to server
- -v, --verbose Make the operation more talkative
- -V, --version Show version number and quit
+ -d, --data <data> HTTP POST data
+ -f, --fail Fail silently (no output at all) on HTTP errors
+ -h, --help <category> Get help for commands
+ -i, --include Include protocol response headers in the output
+ -o, --output <file> Write to file instead of stdout
+ -O, --remote-name Write output to a file named as the remote file
+ -s, --silent Silent mode
+ -T, --upload-file <file> Transfer local FILE to destination
+ -u, --user <user:password> Server user and password
+ -A, --user-agent <name> Send User-Agent <name> to server
+ -v, --verbose Make the operation more talkative
+ -V, --version Show version number and quit
This is not the full help, this menu is stripped into categories.
Use "--help category" to get an overview of all categories.
diff --git a/tests/data/test1463 b/tests/data/test1463
index 9326748ed..3904324c7 100644
--- a/tests/data/test1463
+++ b/tests/data/test1463
@@ -37,9 +37,9 @@ curl file category --help
<stdout mode="text">
Usage: curl [options...] <url>
file: FILE protocol options
- --create-file-mode <mode> File mode (octal) for created files
- -I, --head Show document info only
- -r, --range <range> Retrieve only the bytes within RANGE
+ --create-file-mode <mode> File mode for created files
+ -I, --head Show document info only
+ -r, --range <range> Retrieve only the bytes within RANGE
</stdout>
</verify>
</testcase>
diff --git a/tests/data/test1464 b/tests/data/test1464
index 2ddacefa5..44a7adcf0 100644
--- a/tests/data/test1464
+++ b/tests/data/test1464
@@ -37,9 +37,9 @@ curl file category --help with lower/upper mix
<stdout mode="text">
Usage: curl [options...] <url>
file: FILE protocol options
- --create-file-mode <mode> File mode (octal) for created files
- -I, --head Show document info only
- -r, --range <range> Retrieve only the bytes within RANGE
+ --create-file-mode <mode> File mode for created files
+ -I, --head Show document info only
+ -r, --range <range> Retrieve only the bytes within RANGE
</stdout>
</verify>
</testcase>
diff --git a/tests/data/test1465 b/tests/data/test1465
index ebbd5d6f1..e8caaa2ef 100644
--- a/tests/data/test1465
+++ b/tests/data/test1465
Binary files differ
diff --git a/tests/data/test1466 b/tests/data/test1466
new file mode 100644
index 000000000..0955d660c
--- /dev/null
+++ b/tests/data/test1466
@@ -0,0 +1,45 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+<reply>
+<data>
+HTTP/1.1 405 405
+Content-Length: 6
+Connection: close
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+
+<name>
+HTTP GET with 3-digit response and only digits in reason
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1538 b/tests/data/test1538
index f3754129e..1e5287fe1 100644
--- a/tests/data/test1538
+++ b/tests/data/test1538
@@ -152,6 +152,25 @@ s3: Invalid share handle
s4: Out of memory
s5: Feature not enabled in this library
s6: CURLSHcode unknown
+u0: No error
+u1: An invalid CURLU pointer was passed as argument
+u2: An invalid 'part' argument was passed as argument
+u3: A malformed input was passed to a URL API function
+u4: The port number was not a decimal number between 0 and 65535
+u5: This libcurl build doesn't support the given URL scheme
+u6: URL decode error, most likely because of rubbish in the input
+u7: A memory function failed
+u8: Credentials was passed in the URL when prohibited
+u9: An unknown part ID was passed to a URL API function
+u10: There is no scheme part in the URL
+u11: There is no user part in the URL
+u12: There is no password part in the URL
+u13: There is no options part in the URL
+u14: There is no host part in the URL
+u15: There is no port part in the URL
+u16: There is no query part in the URL
+u17: There is no fragment part in the URL
+u18: CURLUcode unknown
</stdout>
</verify>
diff --git a/tests/data/test1542 b/tests/data/test1542
new file mode 100644
index 000000000..6a9b7f0b7
--- /dev/null
+++ b/tests/data/test1542
@@ -0,0 +1,67 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+connection re-use
+persistent connection
+CURLOPT_MAXLIFETIME_CONN
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Content-Length: 0
+
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib%TESTNUMBER
+</tool>
+ <name>
+connection reuse with CURLOPT_MAXLIFETIME_CONN
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+<file name="log/stderr%TESTNUMBER" mode="text">
+== Info: Connection #0 to host %HOSTIP left intact
+== Info: Connection #0 to host %HOSTIP left intact
+== Info: Connection #0 to host %HOSTIP left intact
+== Info: Closing connection 0
+== Info: Connection #1 to host %HOSTIP left intact
+</file>
+<stripfile>
+$_ = '' if (($_ !~ /left intact/) && ($_ !~ /Closing connection/))
+</stripfile>
+</verify>
+</testcase>
diff --git a/tests/data/test1559 b/tests/data/test1559
index 41fdf3af7..6366afb51 100644
--- a/tests/data/test1559
+++ b/tests/data/test1559
@@ -35,9 +35,9 @@ Set excessive URL lengths
<stdout>
CURLOPT_URL 10000000 bytes URL == 43
CURLOPT_POSTFIELDS 10000000 bytes data == 0
-CURLUPART_URL 10000000 bytes URL == 3
-CURLUPART_SCHEME 10000000 bytes scheme == 3
-CURLUPART_USER 10000000 bytes user == 3
+CURLUPART_URL 10000000 bytes URL == 3 (A malformed input was passed to a URL API function)
+CURLUPART_SCHEME 10000000 bytes scheme == 3 (A malformed input was passed to a URL API function)
+CURLUPART_USER 10000000 bytes user == 3 (A malformed input was passed to a URL API function)
</stdout>
</verify>
diff --git a/tests/data/test1560 b/tests/data/test1560
index e8767b27b..f6722fd41 100644
--- a/tests/data/test1560
+++ b/tests/data/test1560
@@ -2,7 +2,7 @@
<info>
<keywords>
unittest
-URL API
+URLAPI
</keywords>
</info>
diff --git a/tests/data/test1561 b/tests/data/test1561
index b6f8f2b66..fbfea08c6 100644
--- a/tests/data/test1561
+++ b/tests/data/test1561
@@ -65,6 +65,9 @@ SSL
http
https
</server>
+<killserver>
+https
+</killserver>
<name>
Cookies set over HTTP can't override secure ones
</name>
diff --git a/tests/data/test1660 b/tests/data/test1660
index 3ddd8d427..cbbcf7587 100644
--- a/tests/data/test1660
+++ b/tests/data/test1660
@@ -20,6 +20,7 @@ HSTS
# This file was generated by libcurl! Edit at your own risk.
.readfrom.example "20211001 04:47:41"
.old.example "20161001 04:47:41"
+.new.example "unlimited"
</file>
# This date is exactly "20190124 22:34:21" UTC
@@ -59,7 +60,7 @@ foo.example.com [example.com]: 1569905261 includeSubDomains
'forexample.net' is not HSTS
'example.net' is not HSTS
expire.example [expire.example]: 1548369268
-Number of entries: 3
+Number of entries: 4
expire.example [expire.example]: 1548369268
expire.example [expire.example]: 1548369268
expire.example [expire.example]: 1548369268
@@ -74,6 +75,7 @@ expire.example [expire.example]: 1548369268
<file name="log/hsts%TESTNUMBER" mode="text">
# Your HSTS cache. https://curl.se/docs/hsts.html
# This file was generated by libcurl! Edit at your own risk.
+.new.example "unlimited"
.example.com "20191001 04:47:41"
example.org "20200124 22:34:21"
</file>
diff --git a/tests/data/test1915 b/tests/data/test1915
index c47840adf..544dd4f41 100644
--- a/tests/data/test1915
+++ b/tests/data/test1915
@@ -36,15 +36,18 @@ http://%HOSTIP:%NOLISTENPORT/not-there/%TESTNUMBER
# Verify data after the test has been "shot"
<verify>
-# it fails because there's nothing on that port
+# 7 CURLE_COULDNT_CONNECT (expected since there's nothing listening there)
+# 42 CURLE_ABORTED_BY_CALLBACK
<errorcode>
-7
+42
</errorcode>
<stdout>
-[0/4] 1.example.com 20300320 01:02:03
-[1/4] 2.example.com 20300320 01:02:03
-[2/4] 3.example.com 20300320 01:02:03
-[3/4] 4.example.com 20300320 01:02:03
+[0/4] 1.example.com 20370320 01:02:03
+[1/4] 2.example.com 20370320 03:02:01
+[2/4] 3.example.com 20370319 01:02:03
+[3/4] 4.example.com unlimited
+First request returned 7
+Second request returned 42
</stdout>
</verify>
</testcase>
diff --git a/tests/data/test1937 b/tests/data/test1937
new file mode 100644
index 000000000..e24445ac6
--- /dev/null
+++ b/tests/data/test1937
@@ -0,0 +1,72 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP POST
+CURLOPT_AWS_SIGV4
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 302 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Content-Length: 0
+Location: /%TESTNUMBER0002
+
+</data>
+<data2>
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Content-Length: 0
+
+</data2>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+# this relies on the debug feature which allow to set the time
+<features>
+SSL
+debug
+crypto
+</features>
+
+<name>
+HTTP POST with AWS_SIGV4
+</name>
+<tool>
+lib%TESTNUMBER
+</tool>
+
+<command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER/testapi/test
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+^Content-Type:.*
+^Accept:.*
+</strip>
+<protocol nonewline="yes">
+POST /%TESTNUMBER/testapi/test HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Authorization: PROVIDER14-HMAC-SHA256 Credential=keyId/19700101/region/service/provider14_request, SignedHeaders=content-type;host;x-provider2-date, Signature=391e410177d0e9ee80728082446ef69d6b29157fe71f8b4805fce7c186fd956d
+X-Provider2-Date: 19700101T000000Z
+Content-Length: 8
+
+postData
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1938 b/tests/data/test1938
new file mode 100644
index 000000000..5341de00f
--- /dev/null
+++ b/tests/data/test1938
Binary files differ
diff --git a/tests/data/test2002 b/tests/data/test2002
index 68144f8cf..2cd28016b 100644
--- a/tests/data/test2002
+++ b/tests/data/test2002
@@ -85,12 +85,12 @@ EPSV
TYPE I
SIZE %TESTNUMBER0002
RETR %TESTNUMBER0002
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER0003
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER0003
QUIT
</protocol>
<stdout>
diff --git a/tests/data/test2003 b/tests/data/test2003
index 76d85211a..a1d5a9fc2 100644
--- a/tests/data/test2003
+++ b/tests/data/test2003
@@ -85,18 +85,18 @@ EPSV
TYPE I
SIZE %TESTNUMBER0002
RETR %TESTNUMBER0002
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER0003
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER0003
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER0003
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER0003
EPSV
SIZE %TESTNUMBER0002
RETR %TESTNUMBER0002
diff --git a/tests/data/test2004 b/tests/data/test2004
index 6ef9c6cfd..17a73167a 100644
--- a/tests/data/test2004
+++ b/tests/data/test2004
@@ -42,18 +42,18 @@ for several protocols
# Verify data after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
<stdout>
Test data file
diff --git a/tests/data/test2033 b/tests/data/test2033
new file mode 100644
index 000000000..0645932a4
--- /dev/null
+++ b/tests/data/test2033
@@ -0,0 +1,61 @@
+<testcase>
+<info>
+<keywords>
+HTTPS
+HTTP GET
+PEM certificate
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 7
+
+MooMoo
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+SSLpinning
+Schannel
+</features>
+<server>
+https Server-localhost-sv.pem
+</server>
+ <name>
+simple HTTPS GET with DER public key pinning (Schannel variant)
+ </name>
+ <setenv>
+# This test is pointless if we're not using the schannel backend
+CURL_SSL_BACKEND=schannel
+ </setenv>
+ <command>
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --pinnedpubkey %SRCDIR/certs/Server-localhost-sv.pub.der --ssl-revoke-best-effort https://localhost:%HTTPSPORT/%TESTNUMBER
+</command>
+# Ensure that we're running on localhost because we're checking the host name
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPSPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test2034 b/tests/data/test2034
index 3ddd42024..83f984a1d 100644
--- a/tests/data/test2034
+++ b/tests/data/test2034
@@ -26,6 +26,7 @@ MooMoo
<features>
SSL
SSLpinning
+!Schannel
</features>
<server>
https Server-localhost-sv.pem
diff --git a/tests/data/test2037 b/tests/data/test2037
index f43215fef..2b17e5383 100644
--- a/tests/data/test2037
+++ b/tests/data/test2037
@@ -26,6 +26,7 @@ MooMoo
<features>
SSL
SSLpinning
+!Schannel
</features>
<server>
https Server-localhost-sv.pem
diff --git a/tests/data/test2041 b/tests/data/test2041
index e4a2391e8..1958bb7fd 100644
--- a/tests/data/test2041
+++ b/tests/data/test2041
@@ -26,6 +26,7 @@ MooMoo
<features>
SSL
SSLpinning
+!Schannel
</features>
<server>
https Server-localhost-sv.pem
diff --git a/tests/data/test207 b/tests/data/test207
index 73d363c6e..3719201ee 100644
--- a/tests/data/test207
+++ b/tests/data/test207
@@ -58,8 +58,13 @@ Accept: */*
# curl: (18) transfer closed with outstanding read data remaining
# 18 == CURLE_PARTIAL_FILE
+# 56 == CURLE_RECV_ERROR
<errorcode>
+%if hyper
+56
+%else
18
+%endif
</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test2070 b/tests/data/test2070
index 7258638f7..74cdd7d8c 100644
--- a/tests/data/test2070
+++ b/tests/data/test2070
@@ -24,8 +24,8 @@ MooMoo
# Client-side
<client>
<features>
+SSL
Schannel
-!MinGW
</features>
<server>
https Server-localhost-sv.pem
diff --git a/tests/data/test2079 b/tests/data/test2079
new file mode 100644
index 000000000..67ffa1656
--- /dev/null
+++ b/tests/data/test2079
@@ -0,0 +1,61 @@
+<testcase>
+<info>
+<keywords>
+HTTPS
+HTTP GET
+PEM certificate
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 7
+
+MooMoo
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+SSLpinning
+Schannel
+</features>
+<server>
+https Server-localhost-sv.pem
+</server>
+ <name>
+simple HTTPS GET with PEM public key pinning (Schannel variant)
+ </name>
+ <setenv>
+# This test is pointless if we're not using the schannel backend
+CURL_SSL_BACKEND=schannel
+ </setenv>
+ <command>
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --pinnedpubkey %SRCDIR/certs/Server-localhost-sv.pub.pem --ssl-revoke-best-effort https://localhost:%HTTPSPORT/%TESTNUMBER
+</command>
+# Ensure that we're running on localhost because we're checking the host name
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPSPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test2080 b/tests/data/test2080
index 9a337031d..9c8d538fc 100644
--- a/tests/data/test2080
+++ b/tests/data/test2080
Binary files differ
diff --git a/tests/data/test2082 b/tests/data/test2082
new file mode 100644
index 000000000..4c37772d5
--- /dev/null
+++ b/tests/data/test2082
@@ -0,0 +1,51 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Content-Length: 0
+
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+
+<name>
+Pre-request callback for HTTP
+</name>
+<tool>
+libprereq
+</tool>
+
+<command>
+%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<stripfile>
+s/^Local port = \d+/Local port = stripped/
+</stripfile>
+<stdout>
+Connected to %HOSTIP
+Connected from %CLIENTIP
+Remote port = %HTTPPORT
+Local port = stripped
+Returning = 0
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test2083 b/tests/data/test2083
new file mode 100644
index 000000000..9256151a8
--- /dev/null
+++ b/tests/data/test2083
@@ -0,0 +1,45 @@
+<testcase>
+<info>
+<keywords>
+FTP
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data>
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+ftp
+</server>
+
+<name>
+Pre-request callback for FTP
+</name>
+<tool>
+libprereq
+</tool>
+
+<command>
+ftp://%HOSTIP:%FTPPORT/test-%TESTNUMBER/
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<stripfile>
+s/^Local port = \d+/Local port = stripped/
+</stripfile>
+<stdout>
+Connected to %HOSTIP
+Connected from %CLIENTIP
+Remote port = %FTPPORT
+Local port = stripped
+Returning = 0
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test2084 b/tests/data/test2084
new file mode 100644
index 000000000..ced7086c4
--- /dev/null
+++ b/tests/data/test2084
@@ -0,0 +1,54 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Content-Length: 0
+
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+
+<name>
+Pre-request callback for HTTP with callback terminating transfer
+</name>
+<tool>
+libprereq
+</tool>
+
+<command>
+%HOSTIP:%HTTPPORT/%TESTNUMBER#err
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+42
+</errorcode>
+<stripfile>
+s/^Local port = \d+/Local port = stripped/
+</stripfile>
+<stdout>
+Connected to %HOSTIP
+Connected from %CLIENTIP
+Remote port = %HTTPPORT
+Local port = stripped
+Returning = 1
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test2085 b/tests/data/test2085
new file mode 100644
index 000000000..665a756c0
--- /dev/null
+++ b/tests/data/test2085
@@ -0,0 +1,64 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+followlocation
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 302 OK swsclose
+Location: data2.html/%TESTNUMBER0002
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Connection: close
+
+</data>
+<data2 nocheck="yes">
+HTTP/1.1 200 OK swsclose
+Location: this should be ignored
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Connection: close
+
+body
+</data2>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+
+<name>
+Pre-request callback for HTTP with location following
+</name>
+<tool>
+libprereq
+</tool>
+
+<command>
+%HOSTIP:%HTTPPORT/%TESTNUMBER#redir
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<stripfile>
+s/^Local port = \d+/Local port = stripped/
+</stripfile>
+<stdout>
+Connected to %HOSTIP
+Connected from %CLIENTIP
+Remote port = %HTTPPORT
+Local port = stripped
+Returning = 0
+Connected to %HOSTIP
+Connected from %CLIENTIP
+Remote port = %HTTPPORT
+Local port = stripped
+Returning = 0
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test2086 b/tests/data/test2086
new file mode 100644
index 000000000..ce60aa831
--- /dev/null
+++ b/tests/data/test2086
@@ -0,0 +1,52 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+IPv6
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Type: text/html
+Content-Length: 0
+
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http-ipv6
+</server>
+
+<name>
+Pre-request callback for HTTP IPv6
+</name>
+<tool>
+libprereq
+</tool>
+
+<command>
+%HOST6IP:%HTTP6PORT/%TESTNUMBER#ipv6
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<stripfile>
+s/^Local port = \d+/Local port = stripped/
+</stripfile>
+<stdout>
+Connected to %HOST6IP
+Connected from %CLIENT6IP
+Remote port = %HTTP6PORT
+Local port = stripped
+Returning = 0
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test2087 b/tests/data/test2087
new file mode 100644
index 000000000..78751ea62
--- /dev/null
+++ b/tests/data/test2087
@@ -0,0 +1,61 @@
+<testcase>
+<info>
+<keywords>
+HTTPS
+HTTP GET
+PEM certificate
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 7
+
+MooMoo
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+SSLpinning
+Schannel
+</features>
+<server>
+https Server-localhost-sv.pem
+</server>
+ <name>
+simple HTTPS GET with base64-sha256 public key pinning (Schannel variant)
+ </name>
+ <setenv>
+# This test is pointless if we're not using the schannel backend
+CURL_SSL_BACKEND=schannel
+ </setenv>
+ <command>
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --pinnedpubkey sha256//+JYNkp2GTGRgrvZMUkOxbFJQQqYpwNE6toGmBjz00D8= --ssl-revoke-best-effort https://localhost:%HTTPSPORT/%TESTNUMBER
+</command>
+# Ensure that we're running on localhost because we're checking the host name
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPSPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test262 b/tests/data/test262
index 1e03f2772..43994b05f 100644
--- a/tests/data/test262
+++ b/tests/data/test262
Binary files differ
diff --git a/tests/data/test271 b/tests/data/test271
index a9a44360f..f6d5ad7b5 100644
--- a/tests/data/test271
+++ b/tests/data/test271
@@ -35,12 +35,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test283 b/tests/data/test283
index 201df9f72..2c1ebd249 100644
--- a/tests/data/test283
+++ b/tests/data/test283
@@ -28,12 +28,12 @@ tftp://%HOSTIP:%TFTPPORT//invalid-file --tftp-blksize 1024
69
</errorcode>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 1024
-timeout: 6
-filename: /invalid-file
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 1024
+timeout = 6
+filename = /invalid-file
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test284 b/tests/data/test284
index bee74f4c7..2f4ea4317 100644
--- a/tests/data/test284
+++ b/tests/data/test284
@@ -59,12 +59,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 512
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 512
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test285 b/tests/data/test285
index 23fe66ef1..ab055e416 100644
--- a/tests/data/test285
+++ b/tests/data/test285
@@ -36,12 +36,12 @@ sent
to server
</upload>
<protocol>
-opcode: 2
-mode: octet
-tsize: 32
-blksize: 512
-timeout: 6
-filename: /test%TESTNUMBER.txt
+opcode = 2
+mode = octet
+tsize = 32
+blksize = 512
+timeout = 6
+filename = /test%TESTNUMBER.txt
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test286 b/tests/data/test286
index 3fa774bd3..febd5e3fb 100644
--- a/tests/data/test286
+++ b/tests/data/test286
@@ -84,12 +84,12 @@ condition in the TFTP transmit code.
123456789ABCDEF
</upload>
<protocol>
-opcode: 2
-mode: octet
-tsize: 512
-blksize: 512
-timeout: 6
-filename: /test%TESTNUMBER.txt
+opcode = 2
+mode = octet
+tsize = 512
+blksize = 512
+timeout = 6
+filename = /test%TESTNUMBER.txt
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test3000 b/tests/data/test3000
index db5299e5f..05f4a010e 100644
--- a/tests/data/test3000
+++ b/tests/data/test3000
@@ -25,6 +25,7 @@ MooMoo
<client>
<features>
SSL
+!Schannel
</features>
<server>
https Server-localhost-firstSAN-sv.pem
diff --git a/tests/data/test3001 b/tests/data/test3001
index 534a5cded..3a954324b 100644
--- a/tests/data/test3001
+++ b/tests/data/test3001
@@ -25,6 +25,7 @@ MooMoo
<client>
<features>
SSL
+!Schannel
</features>
<server>
https Server-localhost-lastSAN-sv.pem
diff --git a/tests/data/test3021 b/tests/data/test3021
new file mode 100644
index 000000000..0a02e1844
--- /dev/null
+++ b/tests/data/test3021
@@ -0,0 +1,44 @@
+<testcase>
+<info>
+<keywords>
+SFTP
+server sha256 key check
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+test
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+sftp
+</server>
+ <name>
+SFTP correct sha256 host key
+ </name>
+ <command>
+--hostpubsha256 %SSHSRVSHA256 --key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%SSH_PWD/log/file%TESTNUMBER.txt
+</command>
+<file name="log/file%TESTNUMBER.txt">
+test
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+0
+</errorcode>
+<valgrind>
+disable
+</valgrind>
+</verify>
+</testcase>
diff --git a/tests/data/test3022 b/tests/data/test3022
new file mode 100644
index 000000000..f3477909d
--- /dev/null
+++ b/tests/data/test3022
@@ -0,0 +1,44 @@
+<testcase>
+<info>
+<keywords>
+SCP
+server sha256 key check
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+test
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+scp
+</server>
+ <name>
+SCP correct sha256 host key
+ </name>
+ <command>
+--hostpubsha256 %SSHSRVSHA256 --key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%SSH_PWD/log/file%TESTNUMBER.txt
+</command>
+<file name="log/file%TESTNUMBER.txt">
+test
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+0
+</errorcode>
+<valgrind>
+disable
+</valgrind>
+</verify>
+</testcase>
diff --git a/tests/data/test3023 b/tests/data/test3023
new file mode 100644
index 000000000..fe43c199f
--- /dev/null
+++ b/tests/data/test3023
@@ -0,0 +1,60 @@
+<testcase>
+<info>
+<keywords>
+HTTPS
+HTTP GET
+PEM certificate
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 7
+
+MooMoo
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+Schannel
+</features>
+<server>
+https Server-localhost-firstSAN-sv.pem
+</server>
+<name>
+HTTPS GET to localhost, first subject alt name matches, CN does not match (Schannel variant)
+</name>
+<setenv>
+# This test is pointless if we're not using the schannel backend
+CURL_SSL_BACKEND=schannel
+</setenv>
+<command>
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --ssl-revoke-best-effort https://localhost:%HTTPSPORT/%TESTNUMBER
+</command>
+# Ensure that we're running on localhost because we're checking the host name
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPSPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test3024 b/tests/data/test3024
new file mode 100644
index 000000000..55b26788e
--- /dev/null
+++ b/tests/data/test3024
@@ -0,0 +1,60 @@
+<testcase>
+<info>
+<keywords>
+HTTPS
+HTTP GET
+PEM certificate
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 7
+
+MooMoo
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+Schannel
+</features>
+<server>
+https Server-localhost-lastSAN-sv.pem
+</server>
+<name>
+HTTPS GET to localhost, last subject alt name matches, CN does not match (Schannel variant)
+</name>
+<setenv>
+# This test is pointless if we're not using the schannel backend
+CURL_SSL_BACKEND=schannel
+</setenv>
+<command>
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --ssl-revoke-best-effort https://localhost:%HTTPSPORT/%TESTNUMBER
+</command>
+# Ensure that we're running on localhost because we're checking the host name
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPSPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test31 b/tests/data/test31
index 2ccb03254..ac277264d 100644
--- a/tests/data/test31
+++ b/tests/data/test31
@@ -24,32 +24,32 @@ Content-Type: text/html
Funny-head: yesyes
%if !hyper
Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure
-Set-Cookie:ismatch=this ; domain=127.0.0.1; path=/silly/
-Set-Cookie: overwrite=this ; domain=127.0.0.1; path=/overwrite/
-Set-Cookie: overwrite=this2 ; domain=127.0.0.1; path=/overwrite
-Set-Cookie: sec1value=secure1 ; domain=127.0.0.1; path=/secure1/ ; secure
-Set-Cookie: sec2value=secure2 ; domain=127.0.0.1; path=/secure2/ ; secure=
-Set-Cookie: sec3value=secure3 ; domain=127.0.0.1; path=/secure3/ ; secure=
-Set-Cookie: sec4value=secure4 ; secure=; domain=127.0.0.1; path=/secure4/ ;
-Set-Cookie: sec5value=secure5 ; secure; domain=127.0.0.1; path=/secure5/ ;
-Set-Cookie: sec6value=secure6 ; secure ; domain=127.0.0.1; path=/secure6/ ;
-Set-Cookie: sec7value=secure7 ; secure ; domain=127.0.0.1; path=/secure7/ ;
-Set-Cookie: sec8value=secure8 ; secure= ; domain=127.0.0.1; path=/secure8/ ;
-Set-Cookie: secure=very1 ; secure=; domain=127.0.0.1; path=/secure9/;
-Set-Cookie: httpo1=value1 ; domain=127.0.0.1; path=/p1/; httponly
-Set-Cookie: httpo2=value2 ; domain=127.0.0.1; path=/p2/; httponly=
-Set-Cookie: httpo3=value3 ; httponly; domain=127.0.0.1; path=/p3/;
-Set-Cookie: httpo4=value4 ; httponly=; domain=127.0.0.1; path=/p4/;
-Set-Cookie: httponly=myvalue1 ; domain=127.0.0.1; path=/p4/; httponly
-Set-Cookie: httpandsec=myvalue2 ; domain=127.0.0.1; path=/p4/; httponly; secure
-Set-Cookie: httpandsec2=myvalue3; domain=127.0.0.1; path=/p4/; httponly=; secure
-Set-Cookie: httpandsec3=myvalue4 ; domain=127.0.0.1; path=/p4/; httponly; secure=
-Set-Cookie: httpandsec4=myvalue5 ; domain=127.0.0.1; path=/p4/; httponly=; secure=
-Set-Cookie: httpandsec5=myvalue6 ; domain=127.0.0.1; path=/p4/; secure; httponly=
-Set-Cookie: httpandsec6=myvalue7 ; domain=127.0.0.1; path=/p4/; secure=; httponly=
-Set-Cookie: httpandsec7=myvalue8 ; domain=127.0.0.1; path=/p4/; secure; httponly
-Set-Cookie: httpandsec8=myvalue9; domain=127.0.0.1; path=/p4/; secure=; httponly
-Set-Cookie: partmatch=present; domain=127.0.0.1 ; path=/;
+Set-Cookie:ismatch=this ; domain=test31.curl; path=/silly/
+Set-Cookie: overwrite=this ; domain=test31.curl; path=/overwrite/
+Set-Cookie: overwrite=this2 ; domain=test31.curl; path=/overwrite
+Set-Cookie: sec1value=secure1 ; domain=test31.curl; path=/secure1/ ; secure
+Set-Cookie: sec2value=secure2 ; domain=test31.curl; path=/secure2/ ; secure=
+Set-Cookie: sec3value=secure3 ; domain=test31.curl; path=/secure3/ ; secure=
+Set-Cookie: sec4value=secure4 ; secure=; domain=test31.curl; path=/secure4/ ;
+Set-Cookie: sec5value=secure5 ; secure; domain=test31.curl; path=/secure5/ ;
+Set-Cookie: sec6value=secure6 ; secure ; domain=test31.curl; path=/secure6/ ;
+Set-Cookie: sec7value=secure7 ; secure ; domain=test31.curl; path=/secure7/ ;
+Set-Cookie: sec8value=secure8 ; secure= ; domain=test31.curl; path=/secure8/ ;
+Set-Cookie: secure=very1 ; secure=; domain=test31.curl; path=/secure9/;
+Set-Cookie: httpo1=value1 ; domain=test31.curl; path=/p1/; httponly
+Set-Cookie: httpo2=value2 ; domain=test31.curl; path=/p2/; httponly=
+Set-Cookie: httpo3=value3 ; httponly; domain=test31.curl; path=/p3/;
+Set-Cookie: httpo4=value4 ; httponly=; domain=test31.curl; path=/p4/;
+Set-Cookie: httponly=myvalue1 ; domain=test31.curl; path=/p4/; httponly
+Set-Cookie: httpandsec=myvalue2 ; domain=test31.curl; path=/p4/; httponly; secure
+Set-Cookie: httpandsec2=myvalue3; domain=test31.curl; path=/p4/; httponly=; secure
+Set-Cookie: httpandsec3=myvalue4 ; domain=test31.curl; path=/p4/; httponly; secure=
+Set-Cookie: httpandsec4=myvalue5 ; domain=test31.curl; path=/p4/; httponly=; secure=
+Set-Cookie: httpandsec5=myvalue6 ; domain=test31.curl; path=/p4/; secure; httponly=
+Set-Cookie: httpandsec6=myvalue7 ; domain=test31.curl; path=/p4/; secure=; httponly=
+Set-Cookie: httpandsec7=myvalue8 ; domain=test31.curl; path=/p4/; secure; httponly
+Set-Cookie: httpandsec8=myvalue9; domain=test31.curl; path=/p4/; secure=; httponly
+Set-Cookie: partmatch=present; domain=test31.curl ; path=/;
Set-Cookie:eat=this; domain=moo.foo.moo;
Set-Cookie: eat=this-too; domain=.foo.moo;
Set-Cookie: nodomainnovalue
@@ -58,7 +58,7 @@ Set-Cookie: novalue; domain=reallysilly
Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030
Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030
Set-Cookie: magic=yessir; path=/silly/; HttpOnly
-Set-Cookie: blexp=yesyes; domain=127.0.0.1; domain=127.0.0.1; expiry=totally bad;
+Set-Cookie: blexp=yesyes; domain=test31.curl; domain=test31.curl; expiry=totally bad;
Set-Cookie: partialip=nono; domain=.0.0.1;
Set-Cookie: withspaces= yes within and around ;
Set-Cookie: withspaces2 =before equals;
@@ -66,32 +66,32 @@ Set-Cookie: prespace= yes before;
Set-Cookie: securewithspace=after ; secure =
%else
Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure
-Set-Cookie: ismatch=this ; domain=127.0.0.1; path=/silly/
-Set-Cookie: overwrite=this ; domain=127.0.0.1; path=/overwrite/
-Set-Cookie: overwrite=this2 ; domain=127.0.0.1; path=/overwrite
-Set-Cookie: sec1value=secure1 ; domain=127.0.0.1; path=/secure1/ ; secure
-Set-Cookie: sec2value=secure2 ; domain=127.0.0.1; path=/secure2/ ; secure=
-Set-Cookie: sec3value=secure3 ; domain=127.0.0.1; path=/secure3/ ; secure=
-Set-Cookie: sec4value=secure4 ; secure=; domain=127.0.0.1; path=/secure4/ ;
-Set-Cookie: sec5value=secure5 ; secure; domain=127.0.0.1; path=/secure5/ ;
-Set-Cookie: sec6value=secure6 ; secure ; domain=127.0.0.1; path=/secure6/ ;
-Set-Cookie: sec7value=secure7 ; secure ; domain=127.0.0.1; path=/secure7/ ;
-Set-Cookie: sec8value=secure8 ; secure= ; domain=127.0.0.1; path=/secure8/ ;
-Set-Cookie: secure=very1 ; secure=; domain=127.0.0.1; path=/secure9/;
-Set-Cookie: httpo1=value1 ; domain=127.0.0.1; path=/p1/; httponly
-Set-Cookie: httpo2=value2 ; domain=127.0.0.1; path=/p2/; httponly=
-Set-Cookie: httpo3=value3 ; httponly; domain=127.0.0.1; path=/p3/;
-Set-Cookie: httpo4=value4 ; httponly=; domain=127.0.0.1; path=/p4/;
-Set-Cookie: httponly=myvalue1 ; domain=127.0.0.1; path=/p4/; httponly
-Set-Cookie: httpandsec=myvalue2 ; domain=127.0.0.1; path=/p4/; httponly; secure
-Set-Cookie: httpandsec2=myvalue3; domain=127.0.0.1; path=/p4/; httponly=; secure
-Set-Cookie: httpandsec3=myvalue4 ; domain=127.0.0.1; path=/p4/; httponly; secure=
-Set-Cookie: httpandsec4=myvalue5 ; domain=127.0.0.1; path=/p4/; httponly=; secure=
-Set-Cookie: httpandsec5=myvalue6 ; domain=127.0.0.1; path=/p4/; secure; httponly=
-Set-Cookie: httpandsec6=myvalue7 ; domain=127.0.0.1; path=/p4/; secure=; httponly=
-Set-Cookie: httpandsec7=myvalue8 ; domain=127.0.0.1; path=/p4/; secure; httponly
-Set-Cookie: httpandsec8=myvalue9; domain=127.0.0.1; path=/p4/; secure=; httponly
-Set-Cookie: partmatch=present; domain=127.0.0.1 ; path=/;
+Set-Cookie: ismatch=this ; domain=test31.curl; path=/silly/
+Set-Cookie: overwrite=this ; domain=test31.curl; path=/overwrite/
+Set-Cookie: overwrite=this2 ; domain=test31.curl; path=/overwrite
+Set-Cookie: sec1value=secure1 ; domain=test31.curl; path=/secure1/ ; secure
+Set-Cookie: sec2value=secure2 ; domain=test31.curl; path=/secure2/ ; secure=
+Set-Cookie: sec3value=secure3 ; domain=test31.curl; path=/secure3/ ; secure=
+Set-Cookie: sec4value=secure4 ; secure=; domain=test31.curl; path=/secure4/ ;
+Set-Cookie: sec5value=secure5 ; secure; domain=test31.curl; path=/secure5/ ;
+Set-Cookie: sec6value=secure6 ; secure ; domain=test31.curl; path=/secure6/ ;
+Set-Cookie: sec7value=secure7 ; secure ; domain=test31.curl; path=/secure7/ ;
+Set-Cookie: sec8value=secure8 ; secure= ; domain=test31.curl; path=/secure8/ ;
+Set-Cookie: secure=very1 ; secure=; domain=test31.curl; path=/secure9/;
+Set-Cookie: httpo1=value1 ; domain=test31.curl; path=/p1/; httponly
+Set-Cookie: httpo2=value2 ; domain=test31.curl; path=/p2/; httponly=
+Set-Cookie: httpo3=value3 ; httponly; domain=test31.curl; path=/p3/;
+Set-Cookie: httpo4=value4 ; httponly=; domain=test31.curl; path=/p4/;
+Set-Cookie: httponly=myvalue1 ; domain=test31.curl; path=/p4/; httponly
+Set-Cookie: httpandsec=myvalue2 ; domain=test31.curl; path=/p4/; httponly; secure
+Set-Cookie: httpandsec2=myvalue3; domain=test31.curl; path=/p4/; httponly=; secure
+Set-Cookie: httpandsec3=myvalue4 ; domain=test31.curl; path=/p4/; httponly; secure=
+Set-Cookie: httpandsec4=myvalue5 ; domain=test31.curl; path=/p4/; httponly=; secure=
+Set-Cookie: httpandsec5=myvalue6 ; domain=test31.curl; path=/p4/; secure; httponly=
+Set-Cookie: httpandsec6=myvalue7 ; domain=test31.curl; path=/p4/; secure=; httponly=
+Set-Cookie: httpandsec7=myvalue8 ; domain=test31.curl; path=/p4/; secure; httponly
+Set-Cookie: httpandsec8=myvalue9; domain=test31.curl; path=/p4/; secure=; httponly
+Set-Cookie: partmatch=present; domain=test31.curl ; path=/;
Set-Cookie: eat=this; domain=moo.foo.moo;
Set-Cookie: eat=this-too; domain=.foo.moo;
Set-Cookie: nodomainnovalue
@@ -100,7 +100,7 @@ Set-Cookie: novalue; domain=reallysilly
Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030
Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030
Set-Cookie: magic=yessir; path=/silly/; HttpOnly
-Set-Cookie: blexp=yesyes; domain=127.0.0.1; domain=127.0.0.1; expiry=totally bad;
+Set-Cookie: blexp=yesyes; domain=test31.curl; domain=test31.curl; expiry=totally bad;
Set-Cookie: partialip=nono; domain=.0.0.1;
Set-Cookie: withspaces= yes within and around ;
Set-Cookie: withspaces2 =before equals;
@@ -127,7 +127,7 @@ HTTP with weirdly formatted cookies and cookiejar storage
TZ=GMT
</setenv>
<command>
-http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER -b none -c log/jar%TESTNUMBER.txt
+http://test31.curl:%HTTPPORT/we/want/%TESTNUMBER -b none -c log/jar%TESTNUMBER.txt --resolve test31.curl:%HTTPPORT:127.0.0.1
</command>
<precheck>
perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
@@ -138,7 +138,7 @@ perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0
<verify>
<protocol>
GET /we/want/%TESTNUMBER HTTP/1.1
-Host: %HOSTIP:%HTTPPORT
+Host: test31.curl:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
@@ -148,20 +148,20 @@ Accept: */*
# https://curl.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
-127.0.0.1 FALSE /we/want/ FALSE 0 prespace yes before
-127.0.0.1 FALSE /we/want/ FALSE 0 withspaces2 before equals
-127.0.0.1 FALSE /we/want/ FALSE 0 withspaces yes within and around
-127.0.0.1 FALSE /we/want/ FALSE 0 blexp yesyes
-#HttpOnly_127.0.0.1 FALSE /silly/ FALSE 0 magic yessir
-127.0.0.1 FALSE /we/want/ FALSE 2118138987 nodomain value
-127.0.0.1 FALSE / FALSE 0 partmatch present
-#HttpOnly_127.0.0.1 FALSE /p4/ FALSE 0 httponly myvalue1
-#HttpOnly_127.0.0.1 FALSE /p4/ FALSE 0 httpo4 value4
-#HttpOnly_127.0.0.1 FALSE /p3/ FALSE 0 httpo3 value3
-#HttpOnly_127.0.0.1 FALSE /p2/ FALSE 0 httpo2 value2
-#HttpOnly_127.0.0.1 FALSE /p1/ FALSE 0 httpo1 value1
-127.0.0.1 FALSE /overwrite FALSE 0 overwrite this2
-127.0.0.1 FALSE /silly/ FALSE 0 ismatch this
+test31.curl FALSE /we/want/ FALSE 0 prespace yes before
+test31.curl FALSE /we/want/ FALSE 0 withspaces2 before equals
+test31.curl FALSE /we/want/ FALSE 0 withspaces yes within and around
+.test31.curl TRUE /we/want/ FALSE 0 blexp yesyes
+#HttpOnly_test31.curl FALSE /silly/ FALSE 0 magic yessir
+test31.curl FALSE /we/want/ FALSE 2118138987 nodomain value
+.test31.curl TRUE / FALSE 0 partmatch present
+#HttpOnly_.test31.curl TRUE /p4/ FALSE 0 httponly myvalue1
+#HttpOnly_.test31.curl TRUE /p4/ FALSE 0 httpo4 value4
+#HttpOnly_.test31.curl TRUE /p3/ FALSE 0 httpo3 value3
+#HttpOnly_.test31.curl TRUE /p2/ FALSE 0 httpo2 value2
+#HttpOnly_.test31.curl TRUE /p1/ FALSE 0 httpo1 value1
+.test31.curl TRUE /overwrite FALSE 0 overwrite this2
+.test31.curl TRUE /silly/ FALSE 0 ismatch this
</file>
</verify>
</testcase>
diff --git a/tests/data/test310 b/tests/data/test310
index c31085b87..6b6f63a66 100644
--- a/tests/data/test310
+++ b/tests/data/test310
@@ -25,6 +25,7 @@ MooMoo
<client>
<features>
SSL
+!Schannel
</features>
<server>
https Server-localhost-sv.pem
diff --git a/tests/data/test319 b/tests/data/test319
index a27c99f82..d2e35ea32 100644
--- a/tests/data/test319
+++ b/tests/data/test319
@@ -4,18 +4,19 @@
HTTP
HTTP GET
compressed
+Transfer-Encoding
</keywords>
</info>
#
# Server-side
<reply>
<data base64="yes">
-SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
-dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
-UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
-Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQ0KVHJhbnNmZXItRW5j
-b2Rpbmc6IGd6aXANCkNvbnRlbnQtTGVuZ3RoOiA0NA0KDQofiwgIeZ6rQQADbGFsYWxhAMvJzEtV
-MORSyAHRRlwKEIYxFwAKAnFgGAAAAA==
+SFRUUC8xLjEgMjAwIE9LIHN3c2Nsb3NlDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUz
+IEdNVA0KU2VydmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8x
+LjMuMjYuMWEgUEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3Bl
+cmwvMS4yOQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQ0KVHJh
+bnNmZXItRW5jb2Rpbmc6IGd6aXANCkNvbnRlbnQtTGVuZ3RoOiA0NA0KDQofiwgIeZ6rQQADbGFs
+YWxhAMvJzEtVMORSyAHRRlwKEIYxFwAKAnFgGAAAAA==
</data>
<datacheck base64="yes">
diff --git a/tests/data/test326 b/tests/data/test326
index 25f201eae..56d4dcb35 100644
--- a/tests/data/test326
+++ b/tests/data/test326
@@ -39,6 +39,9 @@ line 1
#
# Client-side
<client>
+<features>
+!hyper
+</features>
<server>
http
</server>
diff --git a/tests/data/test332 b/tests/data/test332
index 4f4c28b5d..d2bd8bb6e 100644
--- a/tests/data/test332
+++ b/tests/data/test332
@@ -34,12 +34,12 @@ tftp://%HOSTIP:%TFTPPORT//%TESTNUMBER --tftp-blksize 400
# Verify pseudo protocol after the test has been "shot"
<verify>
<protocol>
-opcode: 1
-mode: octet
-tsize: 0
-blksize: 400
-timeout: 6
-filename: /%TESTNUMBER
+opcode = 1
+mode = octet
+tsize = 0
+blksize = 400
+timeout = 6
+filename = /%TESTNUMBER
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test365 b/tests/data/test365
new file mode 100644
index 000000000..add760f6c
--- /dev/null
+++ b/tests/data/test365
@@ -0,0 +1,65 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+Chunked
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 123456
+Transfer-Encoding: chunked
+Content-Type: text/html
+Funny-head: yesyes
+
+10
+chunked data fun
+0
+
+</data>
+<datacheck nonewline="yes">
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 123456
+Transfer-Encoding: chunked
+Content-Type: text/html
+Funny-head: yesyes
+
+chunked data fun
+</datacheck>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP/1.1 with chunked AND Content-Length headers
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test366 b/tests/data/test366
new file mode 100644
index 000000000..748ef4a0d
--- /dev/null
+++ b/tests/data/test366
@@ -0,0 +1,49 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+retry
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 503 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Content-Length: 21
+Retry-After: 200
+
+server not available
+</data>
+
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP --retry-max-time with too long Retry-After
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER --retry 2 --retry-max-time 10
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+
+</verify>
+</testcase>
diff --git a/tests/data/test367 b/tests/data/test367
new file mode 100644
index 000000000..de8b9014a
--- /dev/null
+++ b/tests/data/test367
@@ -0,0 +1,48 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+Basic
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Content-Length: 6
+Connection: close
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<name>
+Empty user name provided in URL
+</name>
+<command>
+http://:example@%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Authorization: Basic OmV4YW1wbGU=
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test368 b/tests/data/test368
new file mode 100644
index 000000000..2f13b5723
--- /dev/null
+++ b/tests/data/test368
@@ -0,0 +1,49 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+Range
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Accept-Ranges: bytes
+Content-Length: 6
+Connection: close
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+Appened dash if -r range specified without one
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER -r 4
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Range: bytes=4-
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test369 b/tests/data/test369
new file mode 100644
index 000000000..e1e2b32da
--- /dev/null
+++ b/tests/data/test369
@@ -0,0 +1,47 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+etag
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Content-Length: 4
+Content-Type: text/html
+
+hej
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<name>
+--etag-save with bad path then working transfer
+</name>
+<command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-save log/nowhere/etag%TESTNUMBER --next http://%HOSTIP:%HTTPPORT/%TESTNUMBER --include --output log/curl%TESTNUMBER.out
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test370 b/tests/data/test370
new file mode 100644
index 000000000..8a5af1e05
--- /dev/null
+++ b/tests/data/test370
@@ -0,0 +1,36 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+etag
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<name>
+--etag-save with bad path - no transfer
+</name>
+<command>
+http://%HOSTIP:%NOLISTENPORT/%TESTNUMBER --etag-save log/nowhere/etag%TESTNUMBER
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+26
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test392 b/tests/data/test392
new file mode 100644
index 000000000..24430c131
--- /dev/null
+++ b/tests/data/test392
@@ -0,0 +1,61 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+cookies
+secure
+</keywords>
+</info>
+
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 4
+Content-Type: text/html
+Funny-head: yesyes
+Set-Cookie: foobar=name; path=/; secure
+
+boo
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP secure cookies over localhost
+ </name>
+
+<setenv>
+TZ=GMT
+</setenv>
+ <command>
+http://localhost:%HTTPPORT/%TESTNUMBER -b none http://localhost:%HTTPPORT/%TESTNUMBER
+</command>
+<precheck>
+perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0.0.1' );"
+</precheck>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+GET /%TESTNUMBER HTTP/1.1
+Host: localhost:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+Cookie: foobar=name
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test435 b/tests/data/test435
new file mode 100644
index 000000000..eed9e2981
--- /dev/null
+++ b/tests/data/test435
@@ -0,0 +1,71 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Content-Length: 0
+
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<name>
+verify -w local/remote port+ip after connecton re-use
+</name>
+<command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER http://%HOSTIP:%HTTPPORT/%TESTNUMBER -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n'
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+GET /%TESTNUMBER HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+
+# replace the number with a fixed string since the port number is not
+# known to the test script but it should always be a decimal number
+<stripfile>
+s/local port == (\d+)/local port == [digits]/
+</stripfile>
+<stdout>
+HTTP/1.1 200 OK
+Content-Length: 0
+
+local port == [digits]
+local ip == 127.0.0.1
+remote_ip == %HOSTIP
+remote_port == %HTTPPORT
+HTTP/1.1 200 OK
+Content-Length: 0
+
+local port == [digits]
+local ip == 127.0.0.1
+remote_ip == %HOSTIP
+remote_port == %HTTPPORT
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test493 b/tests/data/test493
index 142b0c1c5..db053d105 100644
--- a/tests/data/test493
+++ b/tests/data/test493
@@ -33,7 +33,7 @@ https
</features>
<file name="log/input%TESTNUMBER">
-.hsts.example "20311001 04:47:41"
+.hsts.example "99991001 04:47:41"
</file>
<name>
diff --git a/tests/data/test552 b/tests/data/test552
index 15d531c16..99202fc22 100644
--- a/tests/data/test552
+++ b/tests/data/test552
@@ -38,8 +38,8 @@ Contents of that page you requested, sir.
</data1000>
<datacheck>
-APPLICATION: received a CURLIOCMD_RESTARTREAD request
-APPLICATION: ** REWINDING! **
+APPLICATION received a CURLIOCMD_RESTARTREAD request
+APPLICATION ** REWINDING! **
Contents of that page you requested, sir.
</datacheck>
</reply>
diff --git a/tests/data/test559 b/tests/data/test559
index 878fe2bc8..982209ce9 100644
--- a/tests/data/test559
+++ b/tests/data/test559
@@ -2,6 +2,7 @@
<info>
<keywords>
CURLOPT_BUFFERSIZE
+HTTP
</keywords>
</info>
diff --git a/tests/data/test897 b/tests/data/test897
new file mode 100644
index 000000000..1a537ea60
--- /dev/null
+++ b/tests/data/test897
@@ -0,0 +1,70 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+Clear Text
+FETCH
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+body
+
+--
+ yours sincerely
+</data>
+<servercmd>
+POSTFETCH extra stuff sent in the envelope after the body
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+ <name>
+IMAP and envelope meta data after body transfer
+ </name>
+ <command>
+'imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/head-%TESTNUMBER
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY
+A002 LOGIN user secret
+A003 SELECT %TESTNUMBER
+A004 FETCH 123 BODY[1]
+A005 LOGOUT
+</protocol>
+<file name="log/head-%TESTNUMBER">
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ {| |___
+ \___|\___/|_| \_\_____|
+* OK curl IMAP server ready to serve
+A001 BAD Command
+A002 OK LOGIN completed
+* 172 EXISTS
+* 1 RECENT
+* OK [UNSEEN 12] Message 12 is first unseen
+* OK [UIDVALIDITY 3857529045] UIDs valid
+* OK [UIDNEXT 4392] Predicted next UID
+* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
+* OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
+A003 OK [READ-WRITE] SELECT completed
+* 123 FETCH (BODY[1] {31}
+extra stuff sent in the envelope after the body)
+A004 OK FETCH completed
+</file>
+</verify>
+</testcase>
diff --git a/tests/data/test980 b/tests/data/test980
new file mode 100644
index 000000000..97567f856
--- /dev/null
+++ b/tests/data/test980
@@ -0,0 +1,52 @@
+<testcase>
+<info>
+<keywords>
+SMTP
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+CAPA STARTTLS
+AUTH PLAIN
+REPLY STARTTLS 454 currently unavailable\r\n235 Authenticated\r\n250 2.1.0 Sender ok\r\n250 2.1.5 Recipient ok\r\n354 Enter mail\r\n250 2.0.0 Accepted
+REPLY AUTH 535 5.7.8 Authentication credentials invalid
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+smtp
+</server>
+ <name>
+SMTP STARTTLS pipelined server response
+ </name>
+<stdin>
+mail body
+</stdin>
+ <command>
+smtp://%HOSTIP:%SMTPPORT/%TESTNUMBER --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T -
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# 8 is CURLE_WEIRD_SERVER_REPLY
+<errorcode>
+8
+</errorcode>
+<protocol>
+EHLO %TESTNUMBER
+STARTTLS
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test981 b/tests/data/test981
new file mode 100644
index 000000000..2b98ce42a
--- /dev/null
+++ b/tests/data/test981
@@ -0,0 +1,59 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+CAPA STARTTLS
+REPLY STARTTLS A002 BAD currently unavailable\r\nA003 OK Authenticated\r\nA004 OK Accepted
+REPLY LOGIN A003 BAD Authentication credentials invalid
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+imap
+</server>
+ <name>
+IMAP STARTTLS pipelined server response
+ </name>
+ <command>
+imap://%HOSTIP:%IMAPPORT/%TESTNUMBER -T log/upload%TESTNUMBER -u user:secret --ssl
+</command>
+<file name="log/upload%TESTNUMBER">
+Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
+From: Fred Foobar <foobar@example.COM>
+Subject: afternoon meeting
+To: joe@example.com
+Message-Id: <B27397-0100000@example.COM>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
+
+Hello Joe, do you think we can meet at 3:30 tomorrow?
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# 8 is CURLE_WEIRD_SERVER_REPLY
+<errorcode>
+8
+</errorcode>
+<protocol>
+A001 CAPABILITY
+A002 STARTTLS
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test982 b/tests/data/test982
new file mode 100644
index 000000000..9e07cc0b3
--- /dev/null
+++ b/tests/data/test982
@@ -0,0 +1,57 @@
+<testcase>
+<info>
+<keywords>
+POP3
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+CAPA STLS USER
+REPLY STLS -ERR currently unavailable\r\n+OK user accepted\r\n+OK authenticated
+REPLY PASS -ERR Authentication credentials invalid
+</servercmd>
+<data nocheck="yes">
+From: me@somewhere
+To: fake@nowhere
+
+body
+
+--
+ yours sincerely
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+pop3
+</server>
+ <name>
+POP3 STARTTLS pipelined server response
+ </name>
+ <command>
+pop3://%HOSTIP:%POP3PORT/%TESTNUMBER -u user:secret --ssl
+ </command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# 8 is CURLE_WEIRD_SERVER_REPLY
+<errorcode>
+8
+</errorcode>
+<protocol>
+CAPA
+STLS
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test983 b/tests/data/test983
new file mode 100644
index 000000000..300ec459c
--- /dev/null
+++ b/tests/data/test983
@@ -0,0 +1,52 @@
+<testcase>
+<info>
+<keywords>
+FTP
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+REPLY AUTH 500 unknown command\r\n500 unknown command\r\n331 give password\r\n230 Authenticated\r\n257 "/"\r\n200 OK\r\n200 OK\r\n200 OK\r\n226 Transfer complete
+REPLY PASS 530 Login incorrect
+</servercmd>
+</reply>
+
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+ftp
+</server>
+ <name>
+FTP STARTTLS pipelined server response
+ </name>
+<file name="log/test%TESTNUMBER.txt">
+data
+ to
+ see
+that FTPS
+works
+ so does it?
+</file>
+ <command>
+--ssl --ftp-ssl-control ftp://%HOSTIP:%FTPPORT/%TESTNUMBER -T log/test%TESTNUMBER.txt -u user:secret -P %CLIENTIP
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+# 8 is CURLE_WEIRD_SERVER_REPLY
+<errorcode>
+8
+</errorcode>
+<protocol>
+AUTH SSL
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test984 b/tests/data/test984
new file mode 100644
index 000000000..e573f23c1
--- /dev/null
+++ b/tests/data/test984
@@ -0,0 +1,56 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+REPLY CAPABILITY A001 BAD Not implemented
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+imap
+</server>
+ <name>
+IMAP require STARTTLS with failing capabilities
+ </name>
+ <command>
+imap://%HOSTIP:%IMAPPORT/%TESTNUMBER -T log/upload%TESTNUMBER -u user:secret --ssl-reqd
+</command>
+<file name="log/upload%TESTNUMBER">
+Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
+From: Fred Foobar <foobar@example.COM>
+Subject: afternoon meeting
+To: joe@example.com
+Message-Id: <B27397-0100000@example.COM>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
+
+Hello Joe, do you think we can meet at 3:30 tomorrow?
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# 64 is CURLE_USE_SSL_FAILED
+<errorcode>
+64
+</errorcode>
+<protocol>
+A001 CAPABILITY
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test985 b/tests/data/test985
new file mode 100644
index 000000000..d0db4aadf
--- /dev/null
+++ b/tests/data/test985
@@ -0,0 +1,54 @@
+<testcase>
+<info>
+<keywords>
+POP3
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+REPLY CAPA -ERR Not implemented
+</servercmd>
+<data nocheck="yes">
+From: me@somewhere
+To: fake@nowhere
+
+body
+
+--
+ yours sincerely
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+pop3
+</server>
+ <name>
+POP3 require STARTTLS with failing capabilities
+ </name>
+ <command>
+pop3://%HOSTIP:%POP3PORT/%TESTNUMBER -u user:secret --ssl-reqd
+ </command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# 64 is CURLE_USE_SSL_FAILED
+<errorcode>
+64
+</errorcode>
+<protocol>
+CAPA
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test986 b/tests/data/test986
new file mode 100644
index 000000000..a709437a4
--- /dev/null
+++ b/tests/data/test986
@@ -0,0 +1,53 @@
+<testcase>
+<info>
+<keywords>
+FTP
+STARTTLS
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+REPLY welcome 230 Welcome
+REPLY AUTH 500 unknown command
+</servercmd>
+</reply>
+
+# Client-side
+<client>
+<features>
+SSL
+</features>
+<server>
+ftp
+</server>
+ <name>
+FTP require STARTTLS while preauthenticated
+ </name>
+<file name="log/test%TESTNUMBER.txt">
+data
+ to
+ see
+that FTPS
+works
+ so does it?
+</file>
+ <command>
+--ssl-reqd --ftp-ssl-control ftp://%HOSTIP:%FTPPORT/%TESTNUMBER -T log/test%TESTNUMBER.txt -u user:secret
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+# 64 is CURLE_USE_SSL_FAILED
+<errorcode>
+64
+</errorcode>
+<protocol>
+AUTH SSL
+AUTH TLS
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/dictserver.py b/tests/dictserver.py
index 187432849..702d255c6 100755
--- a/tests/dictserver.py
+++ b/tests/dictserver.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#***************************************************************************
# _ _ ____ _
@@ -7,7 +7,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2008 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2008 - 2021, 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
@@ -188,5 +188,8 @@ if __name__ == '__main__':
log.exception(e)
rc = ScriptRC.EXCEPTION
+ if options.pidfile and os.path.isfile(options.pidfile):
+ os.unlink(options.pidfile)
+
log.info("[DICT] Returning %d", rc)
sys.exit(rc)
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index a3819508a..b74ac5bb7 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -146,6 +146,7 @@ my $nodataconn425; # set if ftp srvr doesn't establish data ch and replies 425
my $nodataconn421; # set if ftp srvr doesn't establish data ch and replies 421
my $nodataconn150; # set if ftp srvr doesn't establish data ch and replies 150
my $storeresp;
+my $postfetch;
my @capabilities; # set if server supports capability commands
my @auth_mechs; # set if server supports authentication commands
my %fulltextreply; #
@@ -1232,7 +1233,8 @@ sub FETCH_imap {
sendcontrol $d;
}
- sendcontrol ")\r\n";
+ # Set the custom extra header content with POSTFETCH
+ sendcontrol "$postfetch)\r\n";
sendcontrol "$cmdid OK FETCH completed\r\n";
}
@@ -2798,6 +2800,7 @@ sub customize {
$nodataconn421 = 0; # default is to not send 421 without data channel
$nodataconn150 = 0; # default is to not send 150 without data channel
$storeresp = ""; # send as ultimate STOR response
+ $postfetch = ""; # send as header after a FETCH response
@capabilities = (); # default is to not support capability commands
@auth_mechs = (); # default is to not support authentication commands
%fulltextreply = ();#
@@ -2840,6 +2843,10 @@ sub customize {
$delayreply{$1}=$2;
logmsg "FTPD: delay reply for $1 with $2 seconds\n";
}
+ elsif($_ =~ /POSTFETCH (.*)/) {
+ logmsg "FTPD: read POSTFETCH header data\n";
+ $postfetch = $1;
+ }
elsif($_ =~ /SLOWDOWN/) {
$ctrldelay=1;
$datadelay=1;
diff --git a/tests/httpserver.pl b/tests/httpserver.pl
index fbdb6752c..3b8622810 100755
--- a/tests/httpserver.pl
+++ b/tests/httpserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -152,4 +152,5 @@ if($verbose) {
print STDERR "RUN: server/sws".exe_ext('SRV')." $flags\n";
}
-exec("server/sws".exe_ext('SRV')." $flags");
+$| = 1;
+exec("exec server/sws".exe_ext('SRV')." $flags");
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index c2d0a6e8e..8cea7c014 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
@@ -36,7 +36,7 @@ SUPPORTFILES = first.c test.h
# These are all libcurl test programs
noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
- chkdecimalpoint \
+ chkdecimalpoint libprereq \
lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507 lib508 lib509 \
lib510 lib511 lib512 lib513 lib514 lib515 lib516 lib517 lib518 lib519 \
lib520 lib521 lib523 lib524 lib525 lib526 lib527 lib529 lib532 \
@@ -55,13 +55,13 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
lib1518 lib1520 lib1521 lib1522 lib1523 \
lib1525 lib1526 lib1527 lib1528 lib1529 lib1530 lib1531 lib1532 lib1533 \
lib1534 lib1535 lib1536 lib1537 lib1538 lib1539 \
- lib1540 \
+ lib1540 lib1542 \
lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \
lib1558 lib1559 lib1560 lib1564 lib1565 lib1567 lib1568 lib1569 \
lib1591 lib1592 lib1593 lib1594 lib1596 \
lib1905 lib1906 lib1907 lib1908 lib1910 lib1911 lib1912 lib1913 \
lib1915 lib1916 lib1917 lib1918 lib1933 lib1934 lib1935 lib1936 \
- lib3010
+ lib1937 lib1938 lib3010
chkdecimalpoint_SOURCES = chkdecimalpoint.c ../../lib/mprintf.c \
../../lib/curl_ctype.c ../../lib/dynbuf.c ../../lib/strdup.c
@@ -81,6 +81,10 @@ libntlmconnect_CPPFLAGS = $(AM_CPPFLAGS)
libauthretry_SOURCES = libauthretry.c $(SUPPORTFILES)
libauthretry_CPPFLAGS = $(AM_CPPFLAGS)
+libprereq_SOURCES = libprereq.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+libprereq_LDADD = $(TESTUTIL_LIBS)
+libprereq_CPPFLAGS = $(AM_CPPFLAGS)
+
lib500_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE) $(MULTIBYTE)
lib500_LDADD = $(TESTUTIL_LIBS)
lib500_CPPFLAGS = $(AM_CPPFLAGS)
@@ -494,7 +498,7 @@ lib1520_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1520
nodist_lib1521_SOURCES = lib1521.c $(SUPPORTFILES)
lib1521_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)
-lib1522_SOURCES = lib1522.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
+lib1522_SOURCES = lib1522.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
lib1522_LDADD = $(TESTUTIL_LIBS)
lib1522_CPPFLAGS = $(AM_CPPFLAGS)
@@ -565,6 +569,10 @@ lib1540_SOURCES = lib1540.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1540_LDADD = $(TESTUTIL_LIBS)
lib1540_CPPFLAGS = $(AM_CPPFLAGS)
+lib1542_SOURCES = lib1542.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE) $(WARNLESS)
+lib1542_LDADD = $(TESTUTIL_LIBS)
+lib1542_CPPFLAGS = $(AM_CPPFLAGS)
+
lib1550_SOURCES = lib1550.c $(SUPPORTFILES)
lib1550_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1517
@@ -699,6 +707,14 @@ lib1936_SOURCES = lib1936.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1936_LDADD = $(TESTUTIL_LIBS)
lib1936_CPPFLAGS = $(AM_CPPFLAGS)
+lib1937_SOURCES = lib1937.c $(SUPPORTFILES)
+lib1937_LDADD = $(TESTUTIL_LIBS)
+lib1937_CPPFLAGS = $(AM_CPPFLAGS)
+
+lib1938_SOURCES = lib1938.c $(SUPPORTFILES)
+lib1938_LDADD = $(TESTUTIL_LIBS)
+lib1938_CPPFLAGS = $(AM_CPPFLAGS)
+
lib3010_SOURCES = lib3010.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib3010_LDADD = $(TESTUTIL_LIBS)
lib3010_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/libtest/lib1538.c b/tests/libtest/lib1538.c
index a439a06bf..a1d1ace99 100644
--- a/tests/libtest/lib1538.c
+++ b/tests/libtest/lib1538.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -29,14 +29,17 @@ int test(char *URL)
CURLcode easyret;
CURLMcode multiret;
CURLSHcode shareret;
+ CURLUcode urlret;
(void)URL;
curl_easy_strerror((CURLcode)INT_MAX);
curl_multi_strerror((CURLMcode)INT_MAX);
curl_share_strerror((CURLSHcode)INT_MAX);
+ curl_url_strerror((CURLUcode)INT_MAX);
curl_easy_strerror((CURLcode)-INT_MAX);
curl_multi_strerror((CURLMcode)-INT_MAX);
curl_share_strerror((CURLSHcode)-INT_MAX);
+ curl_url_strerror((CURLUcode)-INT_MAX);
for(easyret = CURLE_OK; easyret <= CURL_LAST; easyret++) {
printf("e%d: %s\n", (int)easyret, curl_easy_strerror(easyret));
}
@@ -47,6 +50,9 @@ int test(char *URL)
for(shareret = CURLSHE_OK; shareret <= CURLSHE_LAST; shareret++) {
printf("s%d: %s\n", (int)shareret, curl_share_strerror(shareret));
}
+ for(urlret = CURLUE_OK; urlret <= CURLUE_LAST; urlret++) {
+ printf("u%d: %s\n", (int)urlret, curl_url_strerror(urlret));
+ }
return (int)res;
}
diff --git a/tests/libtest/lib1542.c b/tests/libtest/lib1542.c
new file mode 100644
index 000000000..4e17d9d36
--- /dev/null
+++ b/tests/libtest/lib1542.c
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2021, 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.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.
+ *
+ ***************************************************************************/
+
+/*
+ * Test CURLOPT_MAXLIFETIME_CONN:
+ * Send four requests, sleeping between the second and third and setting
+ * MAXLIFETIME_CONN between the third and fourth. The first three requests
+ * should use the same connection, and the fourth request should close the
+ * first connection and open a second.
+ */
+
+#include "test.h"
+#include "testutil.h"
+#include "testtrace.h"
+#include "warnless.h"
+#include "memdebug.h"
+
+#if defined(WIN32) || defined(_WIN32)
+#define sleep(sec) Sleep ((sec)*1000)
+#endif
+
+int test(char *URL)
+{
+ CURL *easy = NULL;
+ int res = 0;
+
+ global_init(CURL_GLOBAL_ALL);
+
+ res_easy_init(easy);
+
+ easy_setopt(easy, CURLOPT_URL, URL);
+
+ libtest_debug_config.nohex = 1;
+ libtest_debug_config.tracetime = 0;
+ easy_setopt(easy, CURLOPT_DEBUGDATA, &libtest_debug_config);
+ easy_setopt(easy, CURLOPT_DEBUGFUNCTION, libtest_debug_cb);
+ easy_setopt(easy, CURLOPT_VERBOSE, 1L);
+
+ res = curl_easy_perform(easy);
+ if(res)
+ goto test_cleanup;
+
+ res = curl_easy_perform(easy);
+ if(res)
+ goto test_cleanup;
+
+ /* CURLOPT_MAXLIFETIME_CONN is inclusive - the connection needs to be 2
+ * seconds old */
+ sleep(2);
+
+ res = curl_easy_perform(easy);
+ if(res)
+ goto test_cleanup;
+
+ easy_setopt(easy, CURLOPT_MAXLIFETIME_CONN, 1L);
+
+ res = curl_easy_perform(easy);
+ if(res)
+ goto test_cleanup;
+
+test_cleanup:
+
+ curl_easy_cleanup(easy);
+ curl_global_cleanup();
+
+ return (int)res;
+}
diff --git a/tests/libtest/lib1559.c b/tests/libtest/lib1559.c
index 28328e493..f099a23bb 100644
--- a/tests/libtest/lib1559.c
+++ b/tests/libtest/lib1559.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -54,14 +54,14 @@ int test(char *URL)
u = curl_url();
if(u) {
CURLUcode uc = curl_url_set(u, CURLUPART_URL, longurl, 0);
- printf("CURLUPART_URL %d bytes URL == %d\n",
- EXCESSIVE, (int)uc);
+ printf("CURLUPART_URL %d bytes URL == %d (%s)\n",
+ EXCESSIVE, (int)uc, curl_url_strerror(uc));
uc = curl_url_set(u, CURLUPART_SCHEME, longurl, CURLU_NON_SUPPORT_SCHEME);
- printf("CURLUPART_SCHEME %d bytes scheme == %d\n",
- EXCESSIVE, (int)uc);
+ printf("CURLUPART_SCHEME %d bytes scheme == %d (%s)\n",
+ EXCESSIVE, (int)uc, curl_url_strerror(uc));
uc = curl_url_set(u, CURLUPART_USER, longurl, 0);
- printf("CURLUPART_USER %d bytes user == %d\n",
- EXCESSIVE, (int)uc);
+ printf("CURLUPART_USER %d bytes user == %d (%s)\n",
+ EXCESSIVE, (int)uc, curl_url_strerror(uc));
curl_url_cleanup(u);
}
diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c
index b822004ad..de3e3109d 100644
--- a/tests/libtest/lib1560.c
+++ b/tests/libtest/lib1560.c
@@ -128,7 +128,7 @@ struct querycase {
CURLUcode ucode;
};
-static struct testcase get_parts_list[] ={
+static const struct testcase get_parts_list[] ={
{"https://user:password@example.net/get?this=and what", "",
CURLU_DEFAULT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
{"https://user:password@example.net/ge t?this=and-what", "",
@@ -187,6 +187,10 @@ static struct testcase get_parts_list[] ={
{"file:///C:\\programs\\foo",
"file | [11] | [12] | [13] | [14] | [15] | C:\\programs\\foo | [16] | [17]",
CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"file://host.example.com/Share/path/to/file.txt",
+ "file | [11] | [12] | [13] | host.example.com | [15] | "
+ "//host.example.com/Share/path/to/file.txt | [16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
#endif
{"https://example.com/color/#green?no-red",
"https | [11] | [12] | [13] | example.com | [15] | /color/ | [16] | "
@@ -239,14 +243,14 @@ static struct testcase get_parts_list[] ={
{"https://127.0.0.1:443",
"https | [11] | [12] | [13] | 127.0.0.1 | [15] | / | [16] | [17]",
0, CURLU_NO_DEFAULT_PORT, CURLUE_OK},
- {"http://%3a:%3a@ex%0ample/%3f+?+%3f+%23#+%23%3f%g7",
- "http | : | : | [13] | [6] | [15] | /?+ | ? # | +#?%g7",
+ {"http://%3a:%3a@ex4mple/%3f+?+%3f+%23#+%23%3f%g7",
+ "http | : | : | [13] | ex4mple | [15] | /?+ | ? # | +#?%g7",
0, CURLU_URLDECODE, CURLUE_OK},
- {"http://%3a:%3a@ex%0ample/%3f?%3f%35#%35%3f%g7",
- "http | %3a | %3a | [13] | ex%0ample | [15] | /%3f | %3f%35 | %35%3f%g7",
+ {"http://%3a:%3a@ex4mple/%3f?%3f%35#%35%3f%g7",
+ "http | %3a | %3a | [13] | ex4mple | [15] | /%3f | %3f%35 | %35%3f%g7",
0, 0, CURLUE_OK},
{"http://HO0_-st%41/",
- "http | [11] | [12] | [13] | HO0_-st%41 | [15] | / | [16] | [17]",
+ "http | [11] | [12] | [13] | HO0_-stA | [15] | / | [16] | [17]",
0, 0, CURLUE_OK},
{"file://hello.html",
"",
@@ -351,7 +355,18 @@ static struct testcase get_parts_list[] ={
{NULL, NULL, 0, 0, CURLUE_OK},
};
-static struct urltestcase get_url_list[] = {
+static const struct urltestcase get_url_list[] = {
+ /* percent encoded host names */
+ {"https://%this", "https://%25this/", 0, 0, CURLUE_OK},
+ {"https://h%c", "https://h%25c/", 0, 0, CURLUE_OK},
+ {"https://%%%%%%", "https://%25%25%25%25%25%25/", 0, 0, CURLUE_OK},
+ {"https://%41", "https://A/", 0, 0, CURLUE_OK},
+ {"https://%20", "", 0, 0, CURLUE_MALFORMED_INPUT},
+ {"https://%41%0d", "", 0, 0, CURLUE_MALFORMED_INPUT},
+ {"https://%25", "https://%25/", 0, 0, CURLUE_OK},
+ {"https://_%c0_", "https://_\xC0_/", 0, 0, CURLUE_OK},
+ {"https://_%c0_", "https://_%C0_/", 0, CURLU_URLENCODE, CURLUE_OK},
+
/* IPv4 trickeries */
{"https://16843009", "https://1.1.1.1/", 0, 0, CURLUE_OK},
{"https://0x7f.1", "https://127.0.0.1/", 0, 0, CURLUE_OK},
@@ -361,6 +376,8 @@ static struct urltestcase get_url_list[] = {
{"https://1.0xffffff", "https://1.255.255.255/", 0, 0, CURLUE_OK},
/* IPv4 numerical overflows or syntax errors will not normalize */
{"https://+127.0.0.1", "https://+127.0.0.1/", 0, 0, CURLUE_OK},
+ {"https://+127.0.0.1", "https://%2B127.0.0.1/", 0, CURLU_URLENCODE,
+ CURLUE_OK},
{"https://127.-0.0.1", "https://127.-0.0.1/", 0, 0, CURLUE_OK},
{"https://127.0. 1", "https://127.0.0.1/", 0, 0, CURLUE_MALFORMED_INPUT},
{"https://1.0x1000000", "https://1.0x1000000/", 0, 0, CURLUE_OK},
@@ -522,7 +539,15 @@ static int checkurl(const char *url, const char *out)
}
/* !checksrc! disable SPACEBEFORECOMMA 1 */
-static struct setcase set_parts_list[] = {
+static const struct setcase set_parts_list[] = {
+ {"https://example.com/",
+ "host=++,", /* '++' there's no automatic URL decode when settin this
+ part */
+ "https://++/",
+ 0, /* get */
+ 0, /* set */
+ CURLUE_OK, CURLUE_OK},
+
{"https://example.com/",
"query=Al2cO3tDkcDZ3EWE5Lh+LX8TPHs,", /* contains '+' */
"https://example.com/?Al2cO3tDkcDZ3EWE5Lh%2bLX8TPHs",
@@ -584,10 +609,11 @@ static struct setcase set_parts_list[] = {
"scheme=https,user= @:,host=foobar,",
"https://%20%20%20%40%3a@foobar/",
0, CURLU_URLENCODE, CURLUE_OK, CURLUE_OK},
+ /* Setting a host name with spaces is not OK: */
{NULL,
"scheme=https,host= ,path= ,user= ,password= ,query= ,fragment= ,",
- "https://%20:%20@%20%20/%20?+#%20",
- 0, CURLU_URLENCODE, CURLUE_OK, CURLUE_OK},
+ "[nothing]",
+ 0, CURLU_URLENCODE, CURLUE_OK, CURLUE_MALFORMED_INPUT},
{NULL,
"scheme=https,host=foobar,path=/this /path /is /here,",
"https://foobar/this%20/path%20/is%20/here",
@@ -715,7 +741,7 @@ static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)
CURLUPart what = part2id(part);
#if 0
/* for debugging this */
- fprintf(stderr, "%s = %s [%d]\n", part, value, (int)what);
+ fprintf(stderr, "%s = \"%s\" [%d]\n", part, value, (int)what);
#endif
if(what > CURLUPART_ZONEID)
fprintf(stderr, "UNKNOWN part '%s'\n", part);
@@ -737,7 +763,7 @@ static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)
return CURLUE_OK;
}
-static struct redircase set_url_list[] = {
+static const struct redircase set_url_list[] = {
{"http://example.org/static/favicon/wikipedia.ico",
"//fake.example.com/licenses/by-sa/3.0/",
"http://fake.example.com/licenses/by-sa/3.0/",
@@ -785,17 +811,17 @@ static int set_url(void)
rc = curl_url_set(urlp, CURLUPART_URL, set_url_list[i].set,
set_url_list[i].setflags);
if(rc) {
- fprintf(stderr, "%s:%d Set URL %s returned %d\n",
+ fprintf(stderr, "%s:%d Set URL %s returned %d (%s)\n",
__FILE__, __LINE__, set_url_list[i].set,
- (int)rc);
+ (int)rc, curl_url_strerror(rc));
error++;
}
else {
char *url = NULL;
rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
if(rc) {
- fprintf(stderr, "%s:%d Get URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d Get URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -843,16 +869,18 @@ static int set_parts(void)
set_parts_list[i].set, (int)uc, set_parts_list[i].pcode);
error++;
}
+ if(!uc) {
+ /* only do this if it worked */
+ rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
- rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
-
- if(rc) {
- fprintf(stderr, "%s:%d Get URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
- error++;
- }
- else if(checkurl(url, set_parts_list[i].out)) {
- error++;
+ if(rc) {
+ fprintf(stderr, "%s:%d Get URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
+ error++;
+ }
+ else if(checkurl(url, set_parts_list[i].out)) {
+ error++;
+ }
}
curl_free(url);
}
@@ -884,8 +912,9 @@ static int get_url(void)
rc = curl_url_get(urlp, CURLUPART_URL, &url, get_url_list[i].getflags);
if(rc) {
- fprintf(stderr, "%s:%d returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d returned %d (%s). URL: '%s'\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc),
+ get_url_list[i].in);
error++;
}
else {
@@ -935,7 +964,7 @@ static int get_parts(void)
return error;
}
-static struct querycase append_list[] = {
+static const struct querycase append_list[] = {
{"HTTP://test/?s", "name=joe\x02", "http://test/?s&name=joe%02",
0, CURLU_URLENCODE, CURLUE_OK},
{"HTTP://test/?size=2#f", "name=joe=", "http://test/?size=2&name=joe%3d#f",
@@ -987,8 +1016,8 @@ static int append(void)
char *url;
rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
if(rc) {
- fprintf(stderr, "%s:%d Get URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d Get URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1013,15 +1042,15 @@ static int scopeid(void)
rc = curl_url_set(u, CURLUPART_URL,
"https://[fe80::20c:29ff:fe9c:409b%25eth0]/hello.html", 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_set returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_set returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
rc = curl_url_get(u, CURLUPART_HOST, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_HOST returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_HOST returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1031,15 +1060,15 @@ static int scopeid(void)
rc = curl_url_set(u, CURLUPART_HOST, "[::1]", 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
rc = curl_url_get(u, CURLUPART_URL, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1049,15 +1078,15 @@ static int scopeid(void)
rc = curl_url_set(u, CURLUPART_HOST, "example.com", 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
rc = curl_url_get(u, CURLUPART_URL, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1068,15 +1097,15 @@ static int scopeid(void)
rc = curl_url_set(u, CURLUPART_HOST,
"[fe80::20c:29ff:fe9c:409b%25eth0]", 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_set CURLUPART_HOST returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
rc = curl_url_get(u, CURLUPART_URL, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1086,8 +1115,8 @@ static int scopeid(void)
rc = curl_url_get(u, CURLUPART_HOST, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_HOST returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_HOST returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1097,8 +1126,8 @@ static int scopeid(void)
rc = curl_url_get(u, CURLUPART_ZONEID, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_ZONEID returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_ZONEID returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
@@ -1108,15 +1137,15 @@ static int scopeid(void)
rc = curl_url_set(u, CURLUPART_ZONEID, "clown", 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_set CURLUPART_ZONEID returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_set CURLUPART_ZONEID returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
rc = curl_url_get(u, CURLUPART_URL, &url, 0);
if(rc != CURLUE_OK) {
- fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d\n",
- __FILE__, __LINE__, (int)rc);
+ fprintf(stderr, "%s:%d curl_url_get CURLUPART_URL returned %d (%s)\n",
+ __FILE__, __LINE__, (int)rc, curl_url_strerror(rc));
error++;
}
else {
diff --git a/tests/libtest/lib1565.c b/tests/libtest/lib1565.c
index 6ea7d4e0c..24fff72d0 100644
--- a/tests/libtest/lib1565.c
+++ b/tests/libtest/lib1565.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -50,7 +50,7 @@ static void *run_thread(void *ptr)
(void)ptr;
for(i = 0; i < CONN_NUM; i++) {
- sleep(TIME_BETWEEN_START_SECS);
+ wait_ms(TIME_BETWEEN_START_SECS * 1000);
easy_init(easy);
@@ -96,7 +96,8 @@ int test(char *URL)
CURL *started_handles[CONN_NUM];
int started_num = 0;
int finished_num = 0;
- pthread_t tid = 0;
+ pthread_t tid;
+ bool tid_valid = false;
struct CURLMsg *message;
start_test_timing();
@@ -108,7 +109,9 @@ int test(char *URL)
url = URL;
res = pthread_create(&tid, NULL, run_thread, NULL);
- if(0 != res) {
+ if(!res)
+ tid_valid = true;
+ else {
fprintf(stderr, "%s:%d Couldn't create thread, errno %d\n",
__FILE__, __LINE__, res);
goto test_cleanup;
@@ -182,7 +185,7 @@ test_cleanup:
test_failure = res;
pthread_mutex_unlock(&lock);
- if(0 != tid)
+ if(tid_valid)
pthread_join(tid, NULL);
curl_multi_cleanup(multi);
diff --git a/tests/libtest/lib1915.c b/tests/libtest/lib1915.c
index 4e632d3ab..b419ef291 100644
--- a/tests/libtest/lib1915.c
+++ b/tests/libtest/lib1915.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2020 - 2021, 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
@@ -25,12 +25,18 @@
#include "warnless.h"
#include "memdebug.h"
-static const char *preload_hosts[] = {
- "1.example.com",
- "2.example.com",
- "3.example.com",
- "4.example.com",
- NULL /* end of list marker */
+struct entry {
+ const char *name;
+ const char *exp;
+};
+
+static const struct entry preload_hosts[] = {
+ /* curl turns 39 that day just before 31-bit time_t overflow */
+ { "1.example.com", "20370320 01:02:03" },
+ { "2.example.com", "20370320 03:02:01" },
+ { "3.example.com", "20370319 01:02:03" },
+ { "4.example.com", "" },
+ { NULL, NULL } /* end of list marker */
};
struct state {
@@ -42,14 +48,16 @@ static CURLSTScode hstsread(CURL *easy, struct curl_hstsentry *e,
void *userp)
{
const char *host;
+ const char *expire;
struct state *s = (struct state *)userp;
(void)easy;
- host = preload_hosts[s->index++];
+ host = preload_hosts[s->index].name;
+ expire = preload_hosts[s->index++].exp;
if(host && (strlen(host) < e->namelen)) {
strcpy(e->name, host);
e->includeSubDomains = FALSE;
- strcpy(e->expire, "20300320 01:02:03"); /* curl turns 32 that day */
+ strcpy(e->expire, expire);
fprintf(stderr, "add '%s'\n", host);
}
else
@@ -57,6 +65,16 @@ static CURLSTScode hstsread(CURL *easy, struct curl_hstsentry *e,
return CURLSTS_OK;
}
+/* verify error from callback */
+static CURLSTScode hstsreadfail(CURL *easy, struct curl_hstsentry *e,
+ void *userp)
+{
+ (void)easy;
+ (void)e;
+ (void)userp;
+ return CURLSTS_FAIL;
+}
+
/* check that we get the hosts back in the save */
static CURLSTScode hstswrite(CURL *easy, struct curl_hstsentry *e,
struct curl_index *i, void *userp)
@@ -89,6 +107,19 @@ int test(char *URL)
curl_easy_setopt(hnd, CURLOPT_HSTS_CTRL, CURLHSTS_ENABLE);
ret = curl_easy_perform(hnd);
curl_easy_cleanup(hnd);
+ printf("First request returned %d\n", (int)ret);
+ }
+ hnd = curl_easy_init();
+ if(hnd) {
+ curl_easy_setopt(hnd, CURLOPT_URL, URL);
+ curl_easy_setopt(hnd, CURLOPT_HSTSREADFUNCTION, hstsreadfail);
+ curl_easy_setopt(hnd, CURLOPT_HSTSREADDATA, &st);
+ curl_easy_setopt(hnd, CURLOPT_HSTSWRITEFUNCTION, hstswrite);
+ curl_easy_setopt(hnd, CURLOPT_HSTSWRITEDATA, &st);
+ curl_easy_setopt(hnd, CURLOPT_HSTS_CTRL, CURLHSTS_ENABLE);
+ ret = curl_easy_perform(hnd);
+ curl_easy_cleanup(hnd);
+ printf("Second request returned %d\n", (int)ret);
}
curl_global_cleanup();
return (int)ret;
diff --git a/tests/libtest/lib1937.c b/tests/libtest/lib1937.c
new file mode 100644
index 000000000..d544de04b
--- /dev/null
+++ b/tests/libtest/lib1937.c
@@ -0,0 +1,64 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2021, 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 "test.h"
+
+#include "memdebug.h"
+
+int test(char *URL)
+{
+ CURL *curl;
+ CURLcode res = TEST_ERR_MAJOR_BAD;
+ struct curl_slist *list = NULL;
+
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
+ fprintf(stderr, "curl_global_init() failed\n");
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ curl = curl_easy_init();
+ if(!curl) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ test_setopt(curl, CURLOPT_VERBOSE, 1L);
+ test_setopt(curl, CURLOPT_POST, 1L);
+ test_setopt(curl, CURLOPT_AWS_SIGV4, "provider1:provider2:region:service");
+ test_setopt(curl, CURLOPT_USERPWD, "keyId:SecretKey");
+ test_setopt(curl, CURLOPT_HEADER, 0L);
+ test_setopt(curl, CURLOPT_URL, URL);
+ list = curl_slist_append(list, "Content-Type: application/json");
+ test_setopt(curl, CURLOPT_HTTPHEADER, list);
+ test_setopt(curl, CURLOPT_POSTFIELDS, "postData");
+
+ res = curl_easy_perform(curl);
+
+test_cleanup:
+
+ curl_slist_free_all(list);
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return res;
+}
diff --git a/tests/libtest/lib1938.c b/tests/libtest/lib1938.c
new file mode 100644
index 000000000..3ddd35c74
--- /dev/null
+++ b/tests/libtest/lib1938.c
@@ -0,0 +1,66 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2021, 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 "test.h"
+
+#include "memdebug.h"
+
+int test(char *URL)
+{
+ CURL *curl;
+ CURLcode res = TEST_ERR_MAJOR_BAD;
+ struct curl_slist *list = NULL;
+ unsigned char data[] = {0x70, 0x6f, 0x73, 0x74, 0, 0x44, 0x61, 0x74, 0x61};
+
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
+ fprintf(stderr, "curl_global_init() failed\n");
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ curl = curl_easy_init();
+ if(!curl) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ test_setopt(curl, CURLOPT_VERBOSE, 1L);
+ test_setopt(curl, CURLOPT_POST, 1L);
+ test_setopt(curl, CURLOPT_AWS_SIGV4, "provider1:provider2:region:service");
+ test_setopt(curl, CURLOPT_USERPWD, "keyId:SecretKey");
+ test_setopt(curl, CURLOPT_HEADER, 0L);
+ test_setopt(curl, CURLOPT_URL, URL);
+ list = curl_slist_append(list, "Content-Type: application/json");
+ test_setopt(curl, CURLOPT_HTTPHEADER, list);
+ test_setopt(curl, CURLOPT_POSTFIELDS, data);
+ test_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)sizeof(data));
+
+ res = curl_easy_perform(curl);
+
+test_cleanup:
+
+ curl_slist_free_all(list);
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return res;
+}
diff --git a/tests/libtest/lib517.c b/tests/libtest/lib517.c
index 0f4b128b2..f0a3c8399 100644
--- a/tests/libtest/lib517.c
+++ b/tests/libtest/lib517.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -28,7 +28,7 @@ struct dcheck {
time_t output;
};
-static struct dcheck dates[] = {
+static const struct dcheck dates[] = {
{"Sun, 06 Nov 1994 08:49:37 GMT", 784111777 },
{"Sunday, 06-Nov-94 08:49:37 GMT", 784111777 },
{"Sun Nov 6 08:49:37 1994", 784111777 },
diff --git a/tests/libtest/lib552.c b/tests/libtest/lib552.c
index 6e70e75f0..7e56ae7eb 100644
--- a/tests/libtest/lib552.c
+++ b/tests/libtest/lib552.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -154,8 +154,8 @@ static curlioerr ioctl_callback(CURL *handle, int cmd, void *clientp)
{
(void)clientp;
if(cmd == CURLIOCMD_RESTARTREAD) {
- printf("APPLICATION: received a CURLIOCMD_RESTARTREAD request\n");
- printf("APPLICATION: ** REWINDING! **\n");
+ printf("APPLICATION received a CURLIOCMD_RESTARTREAD request\n");
+ printf("APPLICATION ** REWINDING! **\n");
current_offset = 0;
return CURLIOE_OK;
}
diff --git a/tests/libtest/lib557.c b/tests/libtest/lib557.c
index b6b8bec1f..c17fab276 100644
--- a/tests/libtest/lib557.c
+++ b/tests/libtest/lib557.c
@@ -1556,7 +1556,6 @@ static int test_weird_arguments(void)
}
/* DBL_MAX value from Linux */
-/* !checksrc! disable PLUSNOSPACE 1 */
#define MAXIMIZE -1.7976931348623157081452E+308
static int test_float_formatting(void)
diff --git a/tests/libtest/lib658.c b/tests/libtest/lib658.c
index 85738d0c1..1d10c6d33 100644
--- a/tests/libtest/lib658.c
+++ b/tests/libtest/lib658.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -48,7 +48,8 @@ int test(char *URL)
uc = curl_url_set(urlp, CURLUPART_URL, URL, 0);
if(uc) {
- fprintf(stderr, "problem setting CURLUPART_URL.");
+ fprintf(stderr, "problem setting CURLUPART_URL: %s.",
+ curl_url_strerror(uc));
goto test_cleanup;
}
diff --git a/tests/libtest/lib674.c b/tests/libtest/lib674.c
index 336cf77f5..1b8d28710 100644
--- a/tests/libtest/lib674.c
+++ b/tests/libtest/lib674.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -49,7 +49,8 @@ int test(char *URL)
uc = curl_url_set(urlp, CURLUPART_URL, URL, 0);
if(uc) {
- fprintf(stderr, "problem setting CURLUPART_URL.");
+ fprintf(stderr, "problem setting CURLUPART_URL: %s.",
+ curl_url_strerror(uc));
goto test_cleanup;
}
diff --git a/tests/libtest/libprereq.c b/tests/libtest/libprereq.c
new file mode 100644
index 000000000..11eb18c06
--- /dev/null
+++ b/tests/libtest/libprereq.c
@@ -0,0 +1,98 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2021, Max Dymond, <max.dymond@microsoft.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.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"
+
+typedef struct prcs {
+ int prereq_retcode;
+ int ipv6;
+} PRCS;
+
+static int prereq_callback(void *clientp,
+ char *conn_primary_ip,
+ char *conn_local_ip,
+ int conn_primary_port,
+ int conn_local_port)
+{
+ PRCS *prereq_cb = (PRCS *)clientp;
+
+ if(prereq_cb->ipv6) {
+ printf("Connected to [%s]\n", conn_primary_ip);
+ printf("Connected from [%s]\n", conn_local_ip);
+ }
+ else {
+ printf("Connected to %s\n", conn_primary_ip);
+ printf("Connected from %s\n", conn_local_ip);
+ }
+
+ printf("Remote port = %d\n", conn_primary_port);
+ printf("Local port = %d\n", conn_local_port);
+ printf("Returning = %d\n", prereq_cb->prereq_retcode);
+ return prereq_cb->prereq_retcode;
+}
+
+int test(char *URL)
+{
+ PRCS prereq_cb;
+ CURLcode ret = CURLE_OK;
+ CURL *curl = NULL;
+
+ prereq_cb.prereq_retcode = CURL_PREREQFUNC_OK;
+ prereq_cb.ipv6 = 0;
+
+ curl_global_init(CURL_GLOBAL_ALL);
+ curl = curl_easy_init();
+
+ if(curl) {
+ if(strstr(URL, "#ipv6")) {
+ /* The IP addresses should be surrounded by brackets! */
+ prereq_cb.ipv6 = 1;
+ }
+ if(strstr(URL, "#err")) {
+ /* Set the callback to exit with failure */
+ prereq_cb.prereq_retcode = CURL_PREREQFUNC_ABORT;
+ }
+
+ curl_easy_setopt(curl, CURLOPT_URL, URL);
+ curl_easy_setopt(curl, CURLOPT_PREREQFUNCTION, prereq_callback);
+ curl_easy_setopt(curl, CURLOPT_PREREQDATA, &prereq_cb);
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, stderr);
+
+ if(strstr(URL, "#redir")) {
+ /* Enable follow-location */
+ curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
+ }
+
+ ret = curl_easy_perform(curl);
+ if(ret) {
+ fprintf(stderr, "%s:%d curl_easy_perform() failed with code %d (%s)\n",
+ __FILE__, __LINE__, ret, curl_easy_strerror(ret));
+ goto test_cleanup;
+ }
+ }
+
+test_cleanup:
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return ret;
+}
+
diff --git a/tests/libtest/mk-lib1521.pl b/tests/libtest/mk-lib1521.pl
index 0a4ff3dcc..0122fc375 100755
--- a/tests/libtest/mk-lib1521.pl
+++ b/tests/libtest/mk-lib1521.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2017 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2017 - 2021, 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
@@ -136,6 +136,7 @@ static curl_xferinfo_callback xferinfocb;
static curl_hstsread_callback hstsreadcb;
static curl_hstswrite_callback hstswritecb;
static curl_resolver_start_callback resolver_start_cb;
+static curl_prereq_callback prereqcb;
int test(char *URL)
{
diff --git a/tests/libtest/test.h b/tests/libtest/test.h
index ffa78d00d..e3bad1748 100644
--- a/tests/libtest/test.h
+++ b/tests/libtest/test.h
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -20,8 +20,6 @@
*
***************************************************************************/
-/* !checksrc! disable ASSIGNWITHINCONDITION 14 */
-
/* Now include the curl_setup.h file from libcurl's private libdir (the source
version, but that might include "curl_config.h" from the build dir so we
need both of them in the include path), so that we get good in-depth
diff --git a/tests/libtest/testutil.c b/tests/libtest/testutil.c
index 5c0dd9ef4..a37a1b1b8 100644
--- a/tests/libtest/testutil.c
+++ b/tests/libtest/testutil.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -67,7 +67,7 @@ struct timeval tutil_tvnow(void)
(void)gettimeofday(&now, NULL);
#else
else {
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
}
#endif
@@ -96,7 +96,7 @@ struct timeval tutil_tvnow(void)
** time() returns the value of time in seconds since the Epoch.
*/
struct timeval now;
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
return now;
}
diff --git a/tests/manpage-scan.pl b/tests/manpage-scan.pl
index ec2e7253d..219c4a463 100755
--- a/tests/manpage-scan.pl
+++ b/tests/manpage-scan.pl
@@ -31,7 +31,7 @@
#
# src/tool_getparam.c lists all options curl can parse
# docs/curl.1 documents all command line options
-# src/tool_help.c outputs all options with curl -h
+# src/tool_listhelp.c outputs all options with curl -h
# - make sure they're all in sync
#
# Output all deviances to stderr.
@@ -147,7 +147,7 @@ my %opts = (
'--no-keepalive' => 1,
'--no-progress-meter' => 1,
- # pretend these options without -no exist in curl.1 and tool_help.c
+ # pretend these options without -no exist in curl.1 and tool_listhelp.c
'--alpn' => 6,
'--npn' => 6,
'--eprt' => 6,
@@ -157,7 +157,7 @@ my %opts = (
'--sessionid' => 6,
'--progress-meter' => 6,
- # deprecated options do not need to be in tool_help.c nor curl.1
+ # deprecated options do not need to be in tool_listhelp.c nor curl.1
'--krb4' => 6,
'--ftp-ssl' => 6,
'--ftp-ssl-reqd' => 6,
@@ -236,7 +236,7 @@ close(R);
#########################################################################
# parse the curl code that outputs the curl -h list
-open(R, "<$root/src/tool_help.c") ||
+open(R, "<$root/src/tool_listhelp.c") ||
die "no input file";
my @toolhelp; # store all parsed parameters
while(<R>) {
@@ -286,10 +286,10 @@ foreach my $o (keys %opts) {
$missing.= " curl.1";
}
if($where & 4) {
- $exists .= " tool_help.c";
+ $exists .= " tool_listhelp.c";
}
else {
- $missing .= " tool_help.c";
+ $missing .= " tool_listhelp.c";
}
print STDERR "$o is not in$missing (but in$exists)\n";
diff --git a/tests/manpage-syntax.pl b/tests/manpage-syntax.pl
index 184df6bbb..67a0b7402 100644
--- a/tests/manpage-syntax.pl
+++ b/tests/manpage-syntax.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2019 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2019 - 2021, 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
@@ -28,17 +28,94 @@
use strict;
use warnings;
+# get the file name first
+my $symbolsinversions=shift @ARGV;
+
# we may get the dir roots pointed out
my @manpages=@ARGV;
my $errors = 0;
+my %optblessed;
+my %funcblessed;
+my @optorder = (
+ 'NAME',
+ 'SYNOPSIS',
+ 'DESCRIPTION',
+ #'DEFAULT', # CURLINFO_ has no default
+ 'PROTOCOLS',
+ 'EXAMPLE',
+ 'AVAILABILITY',
+ 'RETURN VALUE',
+ 'SEE ALSO'
+ );
+my @funcorder = (
+ 'NAME',
+ 'SYNOPSIS',
+ 'DESCRIPTION',
+ 'EXAMPLE',
+ 'AVAILABILITY',
+ 'RETURN VALUE',
+ 'SEE ALSO'
+ );
+my %shline; # section => line number
+
+my %symbol;
+sub allsymbols {
+ open(F, "<$symbolsinversions") ||
+ die "$symbolsinversions: $|";
+ while(<F>) {
+ if($_ =~ /^([^ ]*)/) {
+ $symbol{$1}=$1;
+ }
+ }
+ close(F);
+}
+
sub scanmanpage {
my ($file) = @_;
+ my $reqex = 0;
+ my $inex = 0;
+ my $exsize = 0;
+ my $shc = 0;
+ my $optpage = 0; # option or function
+ my @sh;
- print "Check $file\n";
open(M, "<$file") || die "no such file: $file";
+ if($file =~ /[\/\\](CURL|curl_)[^\/\\]*.3/) {
+ # This is the man page for an libcurl option. It requires an example!
+ $reqex = 1;
+ if($1 eq "CURL") {
+ $optpage = 1;
+ }
+ }
my $line = 1;
while(<M>) {
+ chomp;
+ if($_ =~ /^.so /) {
+ # this man page is just a referral
+ close(M);
+ return;
+ }
+ if($_ =~ /^\.SH EXAMPLE/i) {
+ $inex = 1;
+ }
+ elsif($_ =~ /^\.SH/i) {
+ $inex = 0;
+ }
+ elsif($inex) {
+ $exsize++;
+ if($_ =~ /[^\\]\\n/) {
+ print STDERR "$file:$line '\\n' need to be '\\\\n'!\n";
+ }
+ }
+ if($_ =~ /^\.SH ([^\r\n]*)/i) {
+ my $n = $1;
+ # remove enclosing quotes
+ $n =~ s/\"(.*)\"\z/$1/;
+ push @sh, $n;
+ $shline{$n} = $line;
+ }
+
if($_ =~ /^\'/) {
print STDERR "$file:$line line starts with single quote!\n";
$errors++;
@@ -50,14 +127,105 @@ sub scanmanpage {
$errors++;
}
}
+ if($_ =~ /[ \t]+$/) {
+ print STDERR "$file:$line trailing whitespace\n";
+ $errors++;
+ }
+ if($_ =~ /\\f([BI])([^\\]*)\\fP/) {
+ my $r = $2;
+ if($r =~ /^(CURL.*)\(3\)/) {
+ my $rr = $1;
+ if(!$symbol{$rr}) {
+ print STDERR "$file:$line link to non-libcurl option $rr!\n";
+ $errors++;
+ }
+ }
+ }
$line++;
}
close(M);
+
+ if($reqex) {
+ # only for libcurl options man-pages
+
+ my $shcount = scalar(@sh); # before @sh gets shifted
+ if($exsize < 2) {
+ print STDERR "$file:$line missing EXAMPLE section\n";
+ $errors++;
+ }
+
+ if($shcount < 3) {
+ print STDERR "$file:$line too few man page sections!\n";
+ $errors++;
+ return;
+ }
+
+ my $got = "start";
+ my $i = 0;
+ my $shused = 1;
+ my @shorig = @sh;
+ my @order = $optpage ? @optorder : @funcorder;
+ my $blessed = $optpage ? \%optblessed : \%funcblessed;
+
+ while($got) {
+ my $finesh;
+ $got = shift(@sh);
+ if($got) {
+ if($$blessed{$got}) {
+ $i = $$blessed{$got};
+ $finesh = $got; # a mandatory one
+ }
+ }
+ if($i && defined($finesh)) {
+ # mandatory section
+
+ if($i != $shused) {
+ printf STDERR "$file:%u Got %s, when %s was expected\n",
+ $shline{$finesh},
+ $finesh,
+ $order[$shused-1];
+ $errors++;
+ return;
+ }
+ $shused++;
+ if($i == scalar(@order)) {
+ # last mandatory one, exit
+ last;
+ }
+ }
+ }
+
+ if($i != scalar(@order)) {
+ printf STDERR "$file:$line missing mandatory section: %s\n",
+ $order[$i];
+ printf STDERR "$file:$line section found at index %u: '%s'\n",
+ $i, $shorig[$i];
+ printf STDERR " Found %u used sections\n", $shcount;
+ $errors++;
+ }
+ }
+}
+
+allsymbols();
+
+if(!$symbol{'CURLALTSVC_H1'}) {
+ print STDERR "didn't get the symbols-in-version!\n";
+ exit;
}
+my $ind = 1;
+for my $s (@optorder) {
+ $optblessed{$s} = $ind++
+}
+$ind = 1;
+for my $s (@funcorder) {
+ $funcblessed{$s} = $ind++
+}
for my $m (@manpages) {
scanmanpage($m);
}
+print STDERR "ok\n" if(!$errors);
+
exit $errors;
diff --git a/tests/negtelnetserver.py b/tests/negtelnetserver.py
index 207a6413a..4f80e3dd7 100755
--- a/tests/negtelnetserver.py
+++ b/tests/negtelnetserver.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Project ___| | | | _ \| |
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2017 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2017 - 2021, 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
@@ -364,5 +364,8 @@ if __name__ == '__main__':
log.exception(e)
rc = ScriptRC.EXCEPTION
+ if options.pidfile and os.path.isfile(options.pidfile):
+ os.unlink(options.pidfile)
+
log.info("Returning %d", rc)
sys.exit(rc)
diff --git a/tests/rtspserver.pl b/tests/rtspserver.pl
index bb4bef40d..da75ccca1 100755
--- a/tests/rtspserver.pl
+++ b/tests/rtspserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -119,4 +119,5 @@ $flags .= "--pidfile \"$pidfile\" ".
"--logfile \"$logfile\" ";
$flags .= "--ipv$ipvnum --port $port --srcdir \"$srcdir\"";
-exec("server/rtspd".exe_ext('SRV')." $flags");
+$| = 1;
+exec("exec server/rtspd".exe_ext('SRV')." $flags");
diff --git a/tests/runtests.1 b/tests/runtests.1
index 475254ebf..8f59733c9 100644
--- a/tests/runtests.1
+++ b/tests/runtests.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH runtests.pl 1 "June 08, 2021" "Curl 7.78.0" "runtests"
+.TH runtests.pl 1 "June 02, 2021" "Curl 7.80.0" "runtests"
.SH NAME
runtests.pl \- run one or more test cases
@@ -148,6 +148,8 @@ 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
combination with \fI-g\fP.
+.IP "-u"
+Error instead of warning on server unexpectedly alive.
.IP "-v"
Enable verbose output. Speaks more than default.
.IP "-vc <curl>"
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 9afc97df0..8b3ba67d8 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -168,6 +168,7 @@ my $proxy_address;
my %custom_skip_reasons;
my $SSHSRVMD5 = "[uninitialized]"; # MD5 of ssh server public key
+my $SSHSRVSHA256 = "[uninitialized]"; # SHA256 of ssh server public key
my $VERSION=""; # curl's reported version number
my $srcdir = $ENV{'srcdir'} || '.';
@@ -340,6 +341,7 @@ my $keepoutfiles; # keep stdout and stderr files after tests
my $clearlocks; # force removal of files by killing locking processes
my $listonly; # only list the tests
my $postmortem; # display detailed info about failed tests
+my $err_unexpected; # error instead of warning on server unexpectedly alive
my $run_event_based; # run curl with --test-event to test the event API
my $run_disabeled; # run the specific tests even if listed in DISABLED
@@ -496,6 +498,9 @@ sub startnew {
if(0 == $child) {
# Here we are the child. Run the given command.
+ # Flush output.
+ $| = 1;
+
# Put an "exec" in front of the command so that the child process
# keeps this child's process ID.
exec("exec $cmd") || die "Can't exec() $cmd: $!";
@@ -840,15 +845,25 @@ sub stopserver {
#
# cleanup server pid files
#
+ my $result = 0;
foreach my $server (@killservers) {
my $pidfile = $serverpidfile{$server};
my $pid = processexists($pidfile);
if($pid > 0) {
- logmsg "Warning: $server server unexpectedly alive\n";
+ if($err_unexpected) {
+ logmsg "ERROR: ";
+ $result = -1;
+ }
+ else {
+ logmsg "Warning: ";
+ }
+ logmsg "$server server unexpectedly alive\n";
killpid($verbose, $pid);
}
unlink($pidfile) if(-f $pidfile);
}
+
+ return $result;
}
#######################################################################
@@ -1691,7 +1706,6 @@ sub runhttpsserver {
}
my $pid2;
- my $pid3;
my $httpspid;
my $port = 24512; # start attempt
for (1 .. 10) {
@@ -1862,7 +1876,6 @@ sub runpingpongserver {
$doesntrun{$pidfile} = 1;
return (0,0);
}
-
$pid2 = $pid3;
logmsg "RUN: $srvrname server is PID $ftppid port $port\n" if($verbose);
@@ -1957,10 +1970,9 @@ sub runftpsserver {
$flags .= "--stunnel \"$stunnel\" --srcdir \"$srcdir\" ";
$flags .= "--connect $FTPPORT";
- my $port = 26713;
- my $pid2;
- my $pid3;
my $ftpspid;
+ my $pid2;
+ my $port = 26713;
for (1 .. 10) {
$port += int(rand(700));
my $options = "$flags --accept $port";
@@ -2276,6 +2288,17 @@ sub runsshserver {
die $msg;
}
+ my $hstpubsha256f = "curl_host_rsa_key.pub_sha256";
+ if(!open(PUBSHA256FILE, "<", $hstpubsha256f) ||
+ (read(PUBSHA256FILE, $SSHSRVSHA256, 48) == 0) ||
+ !close(PUBSHA256FILE))
+ {
+ my $msg = "Fatal: $srvrname pubkey sha256 missing : \"$hstpubsha256f\" : $!";
+ logmsg "$msg\n";
+ stopservers($verbose);
+ die $msg;
+ }
+
logmsg "RUN: $srvrname on PID $pid2 port $wport\n" if($verbose);
return ($pid2, $sshpid, $wport);
@@ -3363,6 +3386,7 @@ sub subVariables {
$$thing =~ s/${prefix}USER/$USER/g;
$$thing =~ s/${prefix}SSHSRVMD5/$SSHSRVMD5/g;
+ $$thing =~ s/${prefix}SSHSRVSHA256/$SSHSRVSHA256/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
@@ -4111,6 +4135,9 @@ sub singletest {
close(GDBCMD);
}
+ # Flush output.
+ $| = 1;
+
# timestamp starting of test command
$timetoolini{$testnum} = Time::HiRes::time();
@@ -4199,7 +4226,9 @@ sub singletest {
if(@killtestservers) {
foreach my $server (@killtestservers) {
chomp $server;
- stopserver($server);
+ if(stopserver($server)) {
+ return 1; # normal error if asked to fail on unexpected alive
+ }
}
}
@@ -4707,15 +4736,25 @@ sub stopservers {
#
# cleanup all server pid files
#
+ my $result = 0;
foreach my $server (keys %serverpidfile) {
my $pidfile = $serverpidfile{$server};
my $pid = processexists($pidfile);
if($pid > 0) {
- logmsg "Warning: $server server unexpectedly alive\n";
+ if($err_unexpected) {
+ logmsg "ERROR: ";
+ $result = -1;
+ }
+ else {
+ logmsg "Warning: ";
+ }
+ logmsg "$server server unexpectedly alive\n";
killpid($verbose, $pid);
}
unlink($pidfile) if(-f $pidfile);
}
+
+ return $result;
}
#######################################################################
@@ -4742,7 +4781,9 @@ sub startservers {
($what eq "smtp")) {
if($torture && $run{$what} &&
!responsive_pingpong_server($what, "", $verbose)) {
- stopserver($what);
+ if(stopserver($what)) {
+ return "failed stopping unresponsive ".uc($what)." server";
+ }
}
if(!$run{$what}) {
($pid, $pid2) = runpingpongserver($what, "", $verbose);
@@ -4756,7 +4797,9 @@ sub startservers {
elsif($what eq "ftp-ipv6") {
if($torture && $run{'ftp-ipv6'} &&
!responsive_pingpong_server("ftp", "", $verbose, "ipv6")) {
- stopserver('ftp-ipv6');
+ if(stopserver('ftp-ipv6')) {
+ return "failed stopping unresponsive FTP-IPv6 server";
+ }
}
if(!$run{'ftp-ipv6'}) {
($pid, $pid2) = runpingpongserver("ftp", "", $verbose, "ipv6");
@@ -4771,7 +4814,9 @@ sub startservers {
elsif($what eq "gopher") {
if($torture && $run{'gopher'} &&
!responsive_http_server("gopher", $verbose, 0, $GOPHERPORT)) {
- stopserver('gopher');
+ if(stopserver('gopher')) {
+ return "failed stopping unresponsive GOPHER server";
+ }
}
if(!$run{'gopher'}) {
($pid, $pid2, $GOPHERPORT) =
@@ -4788,7 +4833,9 @@ sub startservers {
if($torture && $run{'gopher-ipv6'} &&
!responsive_http_server("gopher", $verbose, "ipv6",
$GOPHER6PORT)) {
- stopserver('gopher-ipv6');
+ if(stopserver('gopher-ipv6')) {
+ return "failed stopping unresponsive GOPHER-IPv6 server";
+ }
}
if(!$run{'gopher-ipv6'}) {
($pid, $pid2, $GOPHER6PORT) =
@@ -4815,7 +4862,9 @@ sub startservers {
elsif($what eq "http") {
if($torture && $run{'http'} &&
!responsive_http_server("http", $verbose, 0, $HTTPPORT)) {
- stopserver('http');
+ if(stopserver('http')) {
+ return "failed stopping unresponsive HTTP server";
+ }
}
if(!$run{'http'}) {
($pid, $pid2, $HTTPPORT) =
@@ -4832,7 +4881,9 @@ sub startservers {
if($torture && $run{'http-proxy'} &&
!responsive_http_server("http", $verbose, "proxy",
$HTTPPROXYPORT)) {
- stopserver('http-proxy');
+ if(stopserver('http-proxy')) {
+ return "failed stopping unresponsive HTTP-proxy server";
+ }
}
if(!$run{'http-proxy'}) {
($pid, $pid2, $HTTPPROXYPORT) =
@@ -4848,7 +4899,9 @@ sub startservers {
elsif($what eq "http-ipv6") {
if($torture && $run{'http-ipv6'} &&
!responsive_http_server("http", $verbose, "ipv6", $HTTP6PORT)) {
- stopserver('http-ipv6');
+ if(stopserver('http-ipv6')) {
+ return "failed stopping unresponsive HTTP-IPv6 server";
+ }
}
if(!$run{'http-ipv6'}) {
($pid, $pid2, $HTTP6PORT) =
@@ -4864,7 +4917,9 @@ sub startservers {
elsif($what eq "rtsp") {
if($torture && $run{'rtsp'} &&
!responsive_rtsp_server($verbose)) {
- stopserver('rtsp');
+ if(stopserver('rtsp')) {
+ return "failed stopping unresponsive RTSP server";
+ }
}
if(!$run{'rtsp'}) {
($pid, $pid2, $RTSPPORT) = runrtspserver($verbose);
@@ -4878,7 +4933,9 @@ sub startservers {
elsif($what eq "rtsp-ipv6") {
if($torture && $run{'rtsp-ipv6'} &&
!responsive_rtsp_server($verbose, "ipv6")) {
- stopserver('rtsp-ipv6');
+ if(stopserver('rtsp-ipv6')) {
+ return "failed stopping unresponsive RTSP-IPv6 server";
+ }
}
if(!$run{'rtsp-ipv6'}) {
($pid, $pid2, $RTSP6PORT) = runrtspserver($verbose, "ipv6");
@@ -4897,11 +4954,15 @@ sub startservers {
}
if($runcert{'ftps'} && ($runcert{'ftps'} ne $certfile)) {
# stop server when running and using a different cert
- stopserver('ftps');
+ if(stopserver('ftps')) {
+ return "failed stopping FTPS server with different cert";
+ }
}
if($torture && $run{'ftp'} &&
!responsive_pingpong_server("ftp", "", $verbose)) {
- stopserver('ftp');
+ if(stopserver('ftp')) {
+ return "failed stopping unresponsive FTP server";
+ }
}
if(!$run{'ftp'}) {
($pid, $pid2) = runpingpongserver("ftp", "", $verbose);
@@ -4932,11 +4993,15 @@ sub startservers {
}
if($runcert{'https'} && ($runcert{'https'} ne $certfile)) {
# stop server when running and using a different cert
- stopserver('https');
+ if(stopserver('https')) {
+ return "failed stopping HTTPS server with different cert";
+ }
}
if($torture && $run{'http'} &&
!responsive_http_server("http", $verbose, 0, $HTTPPORT)) {
- stopserver('http');
+ if(stopserver('http')) {
+ return "failed stopping unresponsive HTTP server";
+ }
}
if(!$run{'http'}) {
($pid, $pid2, $HTTPPORT) =
@@ -4965,11 +5030,15 @@ sub startservers {
}
if($runcert{'gophers'} && ($runcert{'gophers'} ne $certfile)) {
# stop server when running and using a different cert
- stopserver('gophers');
+ if(stopserver('gophers')) {
+ return "failed stopping GOPHERS server with different crt";
+ }
}
if($torture && $run{'gopher'} &&
!responsive_http_server("gopher", $verbose, 0, $GOPHERPORT)) {
- stopserver('gopher');
+ if(stopserver('gopher')) {
+ return "failed stopping unresponsive GOPHER server";
+ }
}
if(!$run{'gopher'}) {
($pid, $pid2, $GOPHERPORT) =
@@ -5001,7 +5070,9 @@ sub startservers {
if($runcert{'https-proxy'} &&
($runcert{'https-proxy'} ne $certfile)) {
# stop server when running and using a different cert
- stopserver('https-proxy');
+ if(stopserver('https-proxy')) {
+ return "failed stopping HTTPS-proxy with different cert";
+ }
}
# we front the http-proxy with stunnel so we need to make sure the
@@ -5029,7 +5100,9 @@ sub startservers {
}
if($torture && $run{'httptls'} &&
!responsive_httptls_server($verbose, "IPv4")) {
- stopserver('httptls');
+ if(stopserver('httptls')) {
+ return "failed stopping unresponsive HTTPTLS server";
+ }
}
if(!$run{'httptls'}) {
($pid, $pid2, $HTTPTLSPORT) =
@@ -5049,7 +5122,9 @@ sub startservers {
}
if($torture && $run{'httptls-ipv6'} &&
!responsive_httptls_server($verbose, "ipv6")) {
- stopserver('httptls-ipv6');
+ if(stopserver('httptls-ipv6')) {
+ return "failed stopping unresponsive HTTPTLS-IPv6 server";
+ }
}
if(!$run{'httptls-ipv6'}) {
($pid, $pid2, $HTTPTLS6PORT) =
@@ -5065,7 +5140,9 @@ sub startservers {
elsif($what eq "tftp") {
if($torture && $run{'tftp'} &&
!responsive_tftp_server("", $verbose)) {
- stopserver('tftp');
+ if(stopserver('tftp')) {
+ return "failed stopping unresponsive TFTP server";
+ }
}
if(!$run{'tftp'}) {
($pid, $pid2, $TFTPPORT) =
@@ -5080,7 +5157,9 @@ sub startservers {
elsif($what eq "tftp-ipv6") {
if($torture && $run{'tftp-ipv6'} &&
!responsive_tftp_server("", $verbose, "ipv6")) {
- stopserver('tftp-ipv6');
+ if(stopserver('tftp-ipv6')) {
+ return "failed stopping unresponsive TFTP-IPv6 server";
+ }
}
if(!$run{'tftp-ipv6'}) {
($pid, $pid2, $TFTP6PORT) =
@@ -5125,7 +5204,9 @@ sub startservers {
elsif($what eq "http-unix") {
if($torture && $run{'http-unix'} &&
!responsive_http_server("http", $verbose, "unix", $HTTPUNIXPATH)) {
- stopserver('http-unix');
+ if(stopserver('http-unix')) {
+ return "failed stopping unresponsive HTTP-unix server";
+ }
}
if(!$run{'http-unix'}) {
my $unused;
@@ -5158,7 +5239,7 @@ sub startservers {
}
logmsg sprintf ("* pid SMB => %d %d\n", $pid, $pid2)
if($verbose);
- $run{'dict'}="$pid $pid2";
+ $run{'smb'}="$pid $pid2";
}
}
elsif($what eq "telnet") {
@@ -5170,7 +5251,7 @@ sub startservers {
}
logmsg sprintf ("* pid neg TELNET => %d %d\n", $pid, $pid2)
if($verbose);
- $run{'dict'}="$pid $pid2";
+ $run{'telnet'}="$pid $pid2";
}
}
elsif($what eq "none") {
@@ -5548,6 +5629,10 @@ while(@ARGV) {
# force removal of files by killing locking processes
$clearlocks=1;
}
+ elsif($ARGV[0] eq "-u") {
+ # error instead of warning on server unexpectedly alive
+ $err_unexpected=1;
+ }
elsif(($ARGV[0] eq "-h") || ($ARGV[0] eq "--help")) {
# show help text
print <<EOHELP
@@ -5577,6 +5662,7 @@ Usage: runtests.pl [options] [test selection(s)]
--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
+ -u error instead of warning on server unexpectedly alive
-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
@@ -5943,6 +6029,7 @@ if(azure_check_environment()) {
#
my $failed;
+my $failedign;
my $testnum;
my $ok=0;
my $ign=0;
@@ -5978,8 +6065,8 @@ foreach $testnum (@at) {
if($error>0) {
if($error==2) {
- # ignored test failures are wrapped in ()
- $failed.= "($testnum) ";
+ # ignored test failures
+ $failedign .= "$testnum ";
}
else {
$failed.= "$testnum ";
@@ -6015,7 +6102,7 @@ if(azure_check_environment() && $AZURE_RUN_ID) {
}
# Tests done, stop the servers
-stopservers($verbose);
+my $unexpected = stopservers($verbose);
my $all = $total + $skipped;
@@ -6065,6 +6152,9 @@ if($skipped && !$short) {
}
if($total) {
+ if($failedign) {
+ logmsg "IGNORED: failed tests: $failedign\n";
+ }
logmsg sprintf("TESTDONE: $ok tests out of $total reported OK: %d%%\n",
$ok/$total*100);
@@ -6083,6 +6173,6 @@ else {
}
}
-if(($total && (($ok+$ign) != $total)) || !$total) {
+if(($total && (($ok+$ign) != $total)) || !$total || $unexpected) {
exit 1;
}
diff --git a/tests/secureserver.pl b/tests/secureserver.pl
index be1de0566..90a9a9733 100755
--- a/tests/secureserver.pl
+++ b/tests/secureserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -341,6 +341,9 @@ if($tstunnel_windows) {
close(OUT);
}
+ # Flush output.
+ $| = 1;
+
# Put an "exec" in front of the command so that the child process
# keeps this child's process ID by being tied to the spawned shell.
exec("exec $cmd") || die "Can't exec() $cmd: $!";
diff --git a/tests/server/mqttd.c b/tests/server/mqttd.c
index a1b062414..600497ba0 100644
--- a/tests/server/mqttd.c
+++ b/tests/server/mqttd.c
@@ -997,6 +997,7 @@ int main(int argc, char *argv[])
" --version\n"
" --logfile [file]\n"
" --pidfile [file]\n"
+ " --portfile [file]\n"
" --ipv4\n"
" --ipv6\n"
" --port [port]\n");
@@ -1048,7 +1049,7 @@ int main(int argc, char *argv[])
goto mqttd_cleanup;
}
- wroteportfile = write_portfile(portname, (int)port);
+ wroteportfile = write_portfile(portname, port);
if(!wroteportfile) {
goto mqttd_cleanup;
}
@@ -1067,6 +1068,8 @@ mqttd_cleanup:
if(wrotepidfile)
unlink(pidname);
+ if(wroteportfile)
+ unlink(portname);
restore_signal_handlers(FALSE);
diff --git a/tests/server/rtspd.c b/tests/server/rtspd.c
index 97aad7a76..88f96a08f 100644
--- a/tests/server/rtspd.c
+++ b/tests/server/rtspd.c
@@ -810,8 +810,8 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
case DOCNUMBER_WERULEZ:
/* we got a "friends?" question, reply back that we sure are */
logmsg("Identifying ourselves as friends");
- msnprintf(msgbuf, sizeof(msgbuf), "RTSP_SERVER WE ROOLZ: %ld\r\n",
- (long)getpid());
+ msnprintf(msgbuf, sizeof(msgbuf), "RTSP_SERVER WE ROOLZ: %"
+ CURL_FORMAT_CURL_OFF_T "\r\n", our_getpid());
msglen = strlen(msgbuf);
msnprintf(weare, sizeof(weare),
"HTTP/1.1 200 OK\r\nContent-Length: %zu\r\n\r\n%s",
@@ -1045,15 +1045,15 @@ int main(int argc, char *argv[])
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
+ int wroteportfile = 0;
int flag;
unsigned short port = DEFAULT_PORT;
const char *pidname = ".rtsp.pid";
- const char *portfile = NULL;
+ const char *portname = NULL; /* none by default */
struct httprequest req;
int rc;
int error;
int arg = 1;
- long pid;
memset(&req, 0, sizeof(req));
@@ -1078,7 +1078,7 @@ int main(int argc, char *argv[])
else if(!strcmp("--portfile", argv[arg])) {
arg++;
if(argc>arg)
- portfile = argv[arg++];
+ portname = argv[arg++];
}
else if(!strcmp("--logfile", argv[arg])) {
arg++;
@@ -1136,8 +1136,6 @@ int main(int argc, char *argv[])
install_signal_handlers(false);
- pid = (long)getpid();
-
#ifdef ENABLE_IPV6
if(!use_ipv6)
#endif
@@ -1251,9 +1249,9 @@ int main(int argc, char *argv[])
if(!wrotepidfile)
goto server_cleanup;
- if(portfile) {
- wrotepidfile = write_portfile(portfile, port);
- if(!wrotepidfile)
+ if(portname) {
+ wroteportfile = write_portfile(portname, port);
+ if(!wroteportfile)
goto server_cleanup;
}
@@ -1367,6 +1365,8 @@ server_cleanup:
if(wrotepidfile)
unlink(pidname);
+ if(wroteportfile)
+ unlink(portname);
if(serverlogslocked) {
serverlogslocked = 0;
@@ -1377,7 +1377,7 @@ server_cleanup:
if(got_exit_signal) {
logmsg("========> %s rtspd (port: %d pid: %ld) exits with signal (%d)",
- ipv_inuse, (int)port, pid, exit_signal);
+ ipv_inuse, (int)port, (long)getpid(), exit_signal);
/*
* To properly set the return status of the process we
* must raise the same signal SIGINT or SIGTERM that we
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c
index d109d69c9..ccd9c4782 100644
--- a/tests/server/sockfilt.c
+++ b/tests/server/sockfilt.c
@@ -1320,8 +1320,9 @@ int main(int argc, char *argv[])
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
+ int wroteportfile = 0;
const char *pidname = ".sockfilt.pid";
- const char *portfile = NULL; /* none by default */
+ const char *portname = NULL; /* none by default */
bool juggle_again;
int rc;
int error;
@@ -1352,7 +1353,7 @@ int main(int argc, char *argv[])
else if(!strcmp("--portfile", argv[arg])) {
arg++;
if(argc > arg)
- portfile = argv[arg++];
+ portname = argv[arg++];
}
else if(!strcmp("--logfile", argv[arg])) {
arg++;
@@ -1418,6 +1419,7 @@ int main(int argc, char *argv[])
" --verbose\n"
" --logfile [file]\n"
" --pidfile [file]\n"
+ " --portfile [file]\n"
" --ipv4\n"
" --ipv6\n"
" --bindonly\n"
@@ -1518,9 +1520,9 @@ int main(int argc, char *argv[])
write_stdout("FAIL\n", 5);
goto sockfilt_cleanup;
}
- if(portfile) {
- wrotepidfile = write_portfile(portfile, port);
- if(!wrotepidfile) {
+ if(portname) {
+ wroteportfile = write_portfile(portname, port);
+ if(!wroteportfile) {
write_stdout("FAIL\n", 5);
goto sockfilt_cleanup;
}
@@ -1540,6 +1542,8 @@ sockfilt_cleanup:
if(wrotepidfile)
unlink(pidname);
+ if(wroteportfile)
+ unlink(portname);
restore_signal_handlers(false);
diff --git a/tests/server/socksd.c b/tests/server/socksd.c
index 7b1abfaff..b09f5793b 100644
--- a/tests/server/socksd.c
+++ b/tests/server/socksd.c
@@ -882,8 +882,9 @@ int main(int argc, char *argv[])
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
+ int wroteportfile = 0;
const char *pidname = ".socksd.pid";
- const char *portfile = NULL;
+ const char *portname = NULL; /* none by default */
bool juggle_again;
int error;
int arg = 1;
@@ -907,7 +908,7 @@ int main(int argc, char *argv[])
else if(!strcmp("--portfile", argv[arg])) {
arg++;
if(argc>arg)
- portfile = argv[arg++];
+ portname = argv[arg++];
}
else if(!strcmp("--config", argv[arg])) {
arg++;
@@ -1014,9 +1015,9 @@ int main(int argc, char *argv[])
goto socks5_cleanup;
}
- if(portfile) {
- wrotepidfile = write_portfile(portfile, port);
- if(!wrotepidfile) {
+ if(portname) {
+ wroteportfile = write_portfile(portname, port);
+ if(!wroteportfile) {
goto socks5_cleanup;
}
}
@@ -1035,6 +1036,8 @@ socks5_cleanup:
if(wrotepidfile)
unlink(pidname);
+ if(wroteportfile)
+ unlink(portname);
restore_signal_handlers(false);
diff --git a/tests/server/sws.c b/tests/server/sws.c
index 010e5ae1d..6ce0d3b9f 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -994,7 +994,8 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
case DOCNUMBER_WERULEZ:
/* we got a "friends?" question, reply back that we sure are */
logmsg("Identifying ourselves as friends");
- msnprintf(msgbuf, sizeof(msgbuf), "WE ROOLZ: %ld\r\n", (long)getpid());
+ msnprintf(msgbuf, sizeof(msgbuf), "WE ROOLZ: %"
+ CURL_FORMAT_CURL_OFF_T "\r\n", our_getpid());
msglen = strlen(msgbuf);
if(use_gopher)
msnprintf(weare, sizeof(weare), "%s", msgbuf);
@@ -1868,6 +1869,7 @@ int main(int argc, char *argv[])
srvr_sockaddr_union_t me;
curl_socket_t sock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
+ int wroteportfile = 0;
int flag;
unsigned short port = DEFAULT_PORT;
#ifdef USE_UNIX_SOCKETS
@@ -1876,11 +1878,10 @@ int main(int argc, char *argv[])
#endif
const char *pidname = ".http.pid";
const char *portname = ".http.port";
- struct httprequest *req;
+ struct httprequest *req = NULL;
int rc = 0;
int error;
int arg = 1;
- long pid;
const char *connecthost = "127.0.0.1";
const char *socket_type = "IPv4";
char port_str[11];
@@ -1889,10 +1890,6 @@ int main(int argc, char *argv[])
/* a default CONNECT port is basically pointless but still ... */
size_t socket_idx;
- req = calloc(1, sizeof(*req));
- if(!req)
- return 0;
-
while(argc>arg) {
if(!strcmp("--version", argv[arg])) {
puts("sws IPv4"
@@ -2019,7 +2016,9 @@ int main(int argc, char *argv[])
install_signal_handlers(false);
- pid = (long)getpid();
+ req = calloc(1, sizeof(*req));
+ if(!req)
+ goto sws_cleanup;
sock = socket(socket_domain, SOCK_STREAM, 0);
@@ -2202,8 +2201,8 @@ int main(int argc, char *argv[])
if(!wrotepidfile)
goto sws_cleanup;
- wrotepidfile = write_portfile(portname, port);
- if(!wrotepidfile)
+ wroteportfile = write_portfile(portname, port);
+ if(!wroteportfile)
goto sws_cleanup;
/* initialization of httprequest struct is done before get_request(), but
@@ -2350,11 +2349,15 @@ sws_cleanup:
}
#endif
+ free(req);
+
if(got_exit_signal)
logmsg("signalled to die");
if(wrotepidfile)
unlink(pidname);
+ if(wroteportfile)
+ unlink(portname);
if(serverlogslocked) {
serverlogslocked = 0;
@@ -2365,7 +2368,7 @@ sws_cleanup:
if(got_exit_signal) {
logmsg("========> %s sws (%s pid: %ld) exits with signal (%d)",
- socket_type, location_str, pid, exit_signal);
+ socket_type, location_str, (long)getpid(), exit_signal);
/*
* To properly set the return status of the process we
* must raise the same signal SIGINT or SIGTERM that we
diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c
index 92d584918..4c1585497 100644
--- a/tests/server/tftpd.c
+++ b/tests/server/tftpd.c
@@ -15,7 +15,7 @@
*/
/*
- * Copyright (C) 2005 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2005 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (c) 1983, Regents of the University of California.
* All rights reserved.
*
@@ -179,7 +179,7 @@ static struct errmsg errmsgs[] = {
{ -1, 0 }
};
-static struct formats formata[] = {
+static const struct formats formata[] = {
{ "netascii", 1 },
{ "octet", 0 },
{ NULL, 0 }
@@ -212,9 +212,10 @@ static const char *ipv_inuse = "IPv4";
const char *serverlogfile = DEFAULT_LOGFILE;
static const char *pidname = ".tftpd.pid";
-static const char *portfile = NULL;
+static const char *portname = NULL; /* none by default */
static int serverlogslocked = 0;
static int wrotepidfile = 0;
+static int wroteportfile = 0;
#ifdef HAVE_SIGSETJMP
static sigjmp_buf timeoutbuf;
@@ -244,9 +245,9 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size);
static int validate_access(struct testcase *test, const char *fname, int mode);
-static void sendtftp(struct testcase *test, struct formats *pf);
+static void sendtftp(struct testcase *test, const struct formats *pf);
-static void recvtftp(struct testcase *test, struct formats *pf);
+static void recvtftp(struct testcase *test, const struct formats *pf);
static void nak(int error);
@@ -289,6 +290,10 @@ static void timer(int signum)
wrotepidfile = 0;
unlink(pidname);
}
+ if(wroteportfile) {
+ wroteportfile = 0;
+ unlink(portname);
+ }
if(serverlogslocked) {
serverlogslocked = 0;
clear_advisor_read_lock(SERVERLOGS_LOCK);
@@ -555,7 +560,6 @@ int main(int argc, char **argv)
int flag;
int rc;
int error;
- long pid;
struct testcase test;
int result = 0;
@@ -580,7 +584,7 @@ int main(int argc, char **argv)
else if(!strcmp("--portfile", argv[arg])) {
arg++;
if(argc>arg)
- portfile = argv[arg++];
+ portname = argv[arg++];
}
else if(!strcmp("--logfile", argv[arg])) {
arg++;
@@ -622,6 +626,7 @@ int main(int argc, char **argv)
" --version\n"
" --logfile [file]\n"
" --pidfile [file]\n"
+ " --portfile [file]\n"
" --ipv4\n"
" --ipv6\n"
" --port [port]\n"
@@ -637,8 +642,6 @@ int main(int argc, char **argv)
install_signal_handlers(true);
- pid = (long)getpid();
-
#ifdef ENABLE_IPV6
if(!use_ipv6)
#endif
@@ -742,9 +745,9 @@ int main(int argc, char **argv)
goto tftpd_cleanup;
}
- if(portfile) {
- wrotepidfile = write_portfile(portfile, port);
- if(!wrotepidfile) {
+ if(portname) {
+ wroteportfile = write_portfile(portname, port);
+ if(!wroteportfile) {
result = 1;
goto tftpd_cleanup;
}
@@ -849,8 +852,8 @@ tftpd_cleanup:
if(wrotepidfile)
unlink(pidname);
- if(portfile)
- unlink(portfile);
+ if(wroteportfile)
+ unlink(portname);
if(serverlogslocked) {
serverlogslocked = 0;
@@ -861,7 +864,7 @@ tftpd_cleanup:
if(got_exit_signal) {
logmsg("========> %s tftpd (port: %d pid: %ld) exits with signal (%d)",
- ipv_inuse, (int)port, pid, exit_signal);
+ ipv_inuse, (int)port, (long)getpid(), exit_signal);
/*
* To properly set the return status of the process we
* must raise the same signal SIGINT or SIGTERM that we
@@ -881,7 +884,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
{
char *cp;
int first = 1, ecode;
- struct formats *pf;
+ const struct formats *pf;
char *filename, *mode = NULL;
#ifdef USE_WINSOCK
DWORD recvtimeout, recvtimeoutbak;
@@ -899,7 +902,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
}
/* store input protocol */
- fprintf(server, "opcode: %x\n", tp->th_opcode);
+ fprintf(server, "opcode = %x\n", tp->th_opcode);
cp = (char *)&tp->th_stuff;
filename = cp;
@@ -927,7 +930,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
}
if(toggle)
/* name/value pair: */
- fprintf(server, "%s: %s\n", option, cp);
+ fprintf(server, "%s = %s\n", option, cp);
else {
/* store the name pointer */
option = cp;
@@ -946,7 +949,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
}
/* store input protocol */
- fprintf(server, "filename: %s\n", filename);
+ fprintf(server, "filename = %s\n", filename);
for(cp = mode; cp && *cp; cp++)
if(ISUPPER(*cp))
@@ -1065,8 +1068,8 @@ static int validate_access(struct testcase *test,
if(!strncmp("verifiedserver", filename, 14)) {
char weare[128];
- size_t count = msnprintf(weare, sizeof(weare),
- "WE ROOLZ: %ld\r\n", (long)getpid());
+ size_t count = msnprintf(weare, sizeof(weare), "WE ROOLZ: %"
+ CURL_FORMAT_CURL_OFF_T "\r\n", our_getpid());
logmsg("Are-we-friendly question received");
test->buffer = strdup(weare);
@@ -1148,7 +1151,7 @@ static int validate_access(struct testcase *test,
/*
* Send the requested file.
*/
-static void sendtftp(struct testcase *test, struct formats *pf)
+static void sendtftp(struct testcase *test, const struct formats *pf)
{
int size;
ssize_t n;
@@ -1229,7 +1232,7 @@ static void sendtftp(struct testcase *test, struct formats *pf)
/*
* Receive a file.
*/
-static void recvtftp(struct testcase *test, struct formats *pf)
+static void recvtftp(struct testcase *test, const struct formats *pf)
{
ssize_t n, size;
/* These are volatile to live through a siglongjmp */
diff --git a/tests/server/util.c b/tests/server/util.c
index 38d6395c5..81e705c15 100644
--- a/tests/server/util.c
+++ b/tests/server/util.c
@@ -269,17 +269,11 @@ int wait_ms(int timeout_ms)
return r;
}
-int write_pidfile(const char *filename)
+curl_off_t our_getpid(void)
{
- FILE *pidfile;
curl_off_t pid;
pid = (curl_off_t)getpid();
- pidfile = fopen(filename, "wb");
- if(!pidfile) {
- logmsg("Couldn't write pid file: %s %s", filename, strerror(errno));
- return 0; /* fail */
- }
#if defined(WIN32) || defined(_WIN32)
/* store pid + 65536 to avoid conflict with Cygwin/msys PIDs, see also:
* - https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
@@ -289,6 +283,20 @@ int write_pidfile(const char *filename)
*/
pid += 65536;
#endif
+ return pid;
+}
+
+int write_pidfile(const char *filename)
+{
+ FILE *pidfile;
+ curl_off_t pid;
+
+ pid = our_getpid();
+ pidfile = fopen(filename, "wb");
+ if(!pidfile) {
+ logmsg("Couldn't write pid file: %s %s", filename, strerror(errno));
+ return 0; /* fail */
+ }
fprintf(pidfile, "%" CURL_FORMAT_CURL_OFF_T "\n", pid);
fclose(pidfile);
logmsg("Wrote pid %" CURL_FORMAT_CURL_OFF_T " to %s", pid, filename);
@@ -488,7 +496,7 @@ static struct timeval tvnow(void)
(void)gettimeofday(&now, NULL);
#else
else {
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
}
#endif
@@ -517,7 +525,7 @@ static struct timeval tvnow(void)
** time() returns the value of time in seconds since the Epoch.
*/
struct timeval now;
- now.tv_sec = (long)time(NULL);
+ now.tv_sec = time(NULL);
now.tv_usec = 0;
return now;
}
diff --git a/tests/server/util.h b/tests/server/util.h
index 68473f28f..140e349f3 100644
--- a/tests/server/util.h
+++ b/tests/server/util.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -60,6 +60,7 @@ void win32_cleanup(void);
FILE *test2fopen(long testno);
int wait_ms(int timeout_ms);
+curl_off_t our_getpid(void);
int write_pidfile(const char *filename);
int write_portfile(const char *filename, int port);
void set_advisor_read_lock(const char *filename);
diff --git a/tests/smbserver.py b/tests/smbserver.py
index a49023b0f..3c4b96ed2 100755
--- a/tests/smbserver.py
+++ b/tests/smbserver.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Project ___| | | | _ \| |
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2017 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2017 - 2021, 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
@@ -21,8 +21,8 @@
#
"""Server for testing SMB"""
-from __future__ import absolute_import, division, print_function
-# NOTE: the impacket configuration is not unicode_literals compatible!
+from __future__ import (absolute_import, division, print_function,
+ unicode_literals)
import argparse
import logging
@@ -201,7 +201,8 @@ class TestSmbServer(imp_smbserver.SMBSERVER):
# Get this file's information
resp_info, error_code = imp_smbserver.queryPathInformation(
- "", full_path, level=imp_smb.SMB_QUERY_FILE_ALL_INFO)
+ os.path.dirname(full_path), os.path.basename(full_path),
+ level=imp_smb.SMB_QUERY_FILE_ALL_INFO)
if error_code != STATUS_SUCCESS:
raise SmbException(error_code, "Failed to query path info")
@@ -391,5 +392,8 @@ if __name__ == '__main__':
log.exception(e)
rc = ScriptRC.EXCEPTION
+ if options.pidfile and os.path.isfile(options.pidfile):
+ os.unlink(options.pidfile)
+
log.info("[SMB] Returning %d", rc)
sys.exit(rc)
diff --git a/tests/sshhelp.pm b/tests/sshhelp.pm
index 0f71b3079..dd8814224 100644
--- a/tests/sshhelp.pm
+++ b/tests/sshhelp.pm
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -51,6 +51,7 @@ use vars qw(
$hstprvkeyf
$hstpubkeyf
$hstpubmd5f
+ $hstpubsha256f
$cliprvkeyf
$clipubkeyf
@sftppath
@@ -84,6 +85,7 @@ use vars qw(
$hstprvkeyf
$hstpubkeyf
$hstpubmd5f
+ $hstpubsha256f
$cliprvkeyf
$clipubkeyf
display_sshdconfig
@@ -125,6 +127,7 @@ $knownhosts = 'curl_client_knownhosts'; # ssh knownhosts file
$hstprvkeyf = 'curl_host_rsa_key'; # host private key file
$hstpubkeyf = 'curl_host_rsa_key.pub'; # host public key file
$hstpubmd5f = 'curl_host_rsa_key.pub_md5'; # md5 hash of host public key
+$hstpubsha256f = 'curl_host_rsa_key.pub_sha256'; # sha256 hash of host public key
$cliprvkeyf = 'curl_client_key'; # client private key file
$clipubkeyf = 'curl_client_key.pub'; # client public key file
diff --git a/tests/sshserver.pl b/tests/sshserver.pl
index 944193907..526ed099f 100644
--- a/tests/sshserver.pl
+++ b/tests/sshserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -30,6 +30,8 @@ use Cwd;
use Cwd 'abs_path';
use Digest::MD5;
use Digest::MD5 'md5_hex';
+use Digest::SHA;
+use Digest::SHA 'sha256_base64';
use MIME::Base64;
#***************************************************************************
@@ -52,6 +54,7 @@ use sshhelp qw(
$hstprvkeyf
$hstpubkeyf
$hstpubmd5f
+ $hstpubsha256f
$cliprvkeyf
$clipubkeyf
display_sshdconfig
@@ -362,10 +365,12 @@ if((($sshid =~ /OpenSSH/) && ($sshvernum < 299)) ||
if((! -e $hstprvkeyf) || (! -s $hstprvkeyf) ||
(! -e $hstpubkeyf) || (! -s $hstpubkeyf) ||
(! -e $hstpubmd5f) || (! -s $hstpubmd5f) ||
+ (! -e $hstpubsha256f) || (! -s $hstpubsha256f) ||
(! -e $cliprvkeyf) || (! -s $cliprvkeyf) ||
(! -e $clipubkeyf) || (! -s $clipubkeyf)) {
# Make sure all files are gone so ssh-keygen doesn't complain
- unlink($hstprvkeyf, $hstpubkeyf, $hstpubmd5f, $cliprvkeyf, $clipubkeyf);
+ unlink($hstprvkeyf, $hstpubkeyf, $hstpubmd5f, $hstpubsha256f,
+ $cliprvkeyf, $clipubkeyf);
logmsg 'generating host keys...' if($verbose);
if(system "\"$sshkeygen\" -q -t rsa -f $hstprvkeyf -C 'curl test server' -N ''") {
logmsg 'Could not generate host key';
@@ -379,7 +384,7 @@ if((! -e $hstprvkeyf) || (! -s $hstprvkeyf) ||
# Make sure that permissions are restricted so openssh doesn't complain
system "chmod 600 $hstprvkeyf";
system "chmod 600 $cliprvkeyf";
- # Save md5 hash of public host key
+ # Save md5 and sha256 hashes of public host key
open(RSAKEYFILE, "<$hstpubkeyf");
my @rsahostkey = do { local $/ = ' '; <RSAKEYFILE> };
close(RSAKEYFILE);
@@ -394,6 +399,13 @@ if((! -e $hstprvkeyf) || (! -s $hstprvkeyf) ||
logmsg 'Failed writing md5 hash of RSA host key';
exit 1;
}
+ open(PUBSHA256FILE, ">$hstpubsha256f");
+ print PUBSHA256FILE sha256_base64(decode_base64($rsahostkey[1]));
+ close(PUBSHA256FILE);
+ if((! -e $hstpubsha256f) || (! -s $hstpubsha256f)) {
+ logmsg 'Failed writing sha256 hash of RSA host key';
+ exit 1;
+ }
}
@@ -428,9 +440,7 @@ if ($sshdid =~ /OpenSSH-Windows/) {
# ssh daemon configuration file options we might use and version support
#
# AFSTokenPassing : OpenSSH 1.2.1 and later [1]
-# AcceptEnv : OpenSSH 3.9.0 and later
# AddressFamily : OpenSSH 4.0.0 and later
-# AllowGroups : OpenSSH 1.2.1 and later
# AllowTcpForwarding : OpenSSH 2.3.0 and later
# AllowUsers : OpenSSH 1.2.1 and later
# AuthorizedKeysFile : OpenSSH 2.9.9 and later
@@ -441,7 +451,6 @@ if ($sshdid =~ /OpenSSH-Windows/) {
# ClientAliveCountMax : OpenSSH 2.9.0 and later
# ClientAliveInterval : OpenSSH 2.9.0 and later
# Compression : OpenSSH 3.3.0 and later
-# DenyGroups : OpenSSH 1.2.1 and later
# DenyUsers : OpenSSH 1.2.1 and later
# ForceCommand : OpenSSH 4.4.0 and later [3]
# GatewayPorts : OpenSSH 2.1.0 and later
@@ -534,9 +543,6 @@ if ($sshdid =~ /OpenSSH-Windows/) {
push @cfgarr, "AllowUsers $username";
}
-push @cfgarr, 'DenyGroups';
-push @cfgarr, 'AllowGroups';
-push @cfgarr, '#';
push @cfgarr, "AuthorizedKeysFile $clipubkeyf_config";
push @cfgarr, "AuthorizedKeysFile2 $clipubkeyf_config";
push @cfgarr, "HostKey $hstprvkeyf_config";
@@ -684,9 +690,6 @@ push @cfgarr, '#';
#***************************************************************************
# Options that might be supported or not in sshd OpenSSH 2.9.9 and later
#
-if(sshd_supports_opt('AcceptEnv','')) {
- push @cfgarr, 'AcceptEnv';
-}
if(sshd_supports_opt('AddressFamily','any')) {
# Address family must be specified before ListenAddress
splice @cfgarr, 14, 0, 'AddressFamily any';
@@ -873,7 +876,6 @@ if ($sshdid =~ /OpenSSH-Windows/) {
# RemoteForward : OpenSSH 1.2.1 and later [3]
# RhostsRSAAuthentication : OpenSSH 1.2.1 and later
# RSAAuthentication : OpenSSH 1.2.1 and later
-# SendEnv : OpenSSH 3.9.0 and later
# ServerAliveCountMax : OpenSSH 3.8.0 and later
# ServerAliveInterval : OpenSSH 3.8.0 and later
# SmartcardDevice : OpenSSH 2.9.9 and later [1][3]
@@ -1028,10 +1030,6 @@ if((($sshid =~ /OpenSSH/) && ($sshvernum >= 370)) ||
push @cfgarr, 'RekeyLimit 1G';
}
-if(($sshid =~ /OpenSSH/) && ($sshvernum >= 390)) {
- push @cfgarr, 'SendEnv';
-}
-
if((($sshid =~ /OpenSSH/) && ($sshvernum >= 380)) ||
(($sshid =~ /SunSSH/) && ($sshvernum >= 120))) {
push @cfgarr, 'ServerAliveCountMax 3';
@@ -1122,6 +1120,9 @@ if ($sshdid =~ /OpenSSH-Windows/) {
close(OUT);
}
+ # Flush output.
+ $| = 1;
+
# Put an "exec" in front of the command so that the child process
# keeps this child's process ID by being tied to the spawned shell.
exec("exec $cmd") || die "Can't exec() $cmd: $!";
@@ -1152,7 +1153,7 @@ elsif($verbose && ($rc >> 8)) {
#***************************************************************************
# Clean up once the server has stopped
#
-unlink($hstprvkeyf, $hstpubkeyf, $hstpubmd5f,
+unlink($hstprvkeyf, $hstpubkeyf, $hstpubmd5f, $hstpubsha256f,
$cliprvkeyf, $clipubkeyf, $knownhosts,
$sshdconfig, $sshconfig, $sftpconfig);
diff --git a/tests/testcurl.1 b/tests/testcurl.1
index 795975db2..410ee426d 100644
--- a/tests/testcurl.1
+++ b/tests/testcurl.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH testcurl.pl 1 "November 05, 2020" "Curl 7.78.0" "testcurl"
+.TH testcurl.pl 1 "November 05, 2020" "Curl 7.80.0" "testcurl"
.SH NAME
testcurl.pl \- (automatically) test curl
diff --git a/tests/tftpserver.pl b/tests/tftpserver.pl
index f9fbbe9bc..9486539b8 100755
--- a/tests/tftpserver.pl
+++ b/tests/tftpserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2021, 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
@@ -120,4 +120,5 @@ $flags .= "--pidfile \"$pidfile\" ".
"--logfile \"$logfile\" ";
$flags .= "--ipv$ipvnum --port $port --srcdir \"$srcdir\"";
-exec("server/tftpd".exe_ext('SRV')." $flags");
+$| = 1;
+exec("exec server/tftpd".exe_ext('SRV')." $flags");
diff --git a/tests/unit/unit1621.c b/tests/unit/unit1621.c
index ec361dfbf..87550d137 100644
--- a/tests/unit/unit1621.c
+++ b/tests/unit/unit1621.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, 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
@@ -52,7 +52,7 @@ struct checkthis {
const char *output;
};
-static struct checkthis tests[] = {
+static const struct checkthis tests[] = {
{ "ninja://foo@example.com", "ninja://foo@example.com" },
{ "https://foo@example.com", "https://example.com/" },
{ "https://localhost:45", "https://localhost:45/" },
diff --git a/tests/unit/unit1650.c b/tests/unit/unit1650.c
index de54c0841..0e74845c3 100644
--- a/tests/unit/unit1650.c
+++ b/tests/unit/unit1650.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2018 - 2021, 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
@@ -59,7 +59,7 @@ struct dohrequest {
};
-static struct dohrequest req[] = {
+static const struct dohrequest req[] = {
{"test.host.name", DNS_TYPE_A, DNS_Q1, sizeof(DNS_Q1)-1, 0 },
{"test.host.name", DNS_TYPE_AAAA, DNS_Q2, sizeof(DNS_Q2)-1, 0 },
{"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
@@ -86,7 +86,7 @@ struct dohresp {
static const char full49[] = DNS_FOO_EXAMPLE_COM;
-static struct dohresp resp[] = {
+static const struct dohresp resp[] = {
{"\x00\x00", 2, DNS_TYPE_A, DOH_TOO_SMALL_BUFFER, NULL },
{"\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01", 12,
DNS_TYPE_A, DOH_DNS_BAD_ID, NULL },
diff --git a/tests/util.py b/tests/util.py
index 70f6b4351..3c2fb6b7c 100755
--- a/tests/util.py
+++ b/tests/util.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Project ___| | | | _ \| |
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2017 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2017 - 2021, 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
diff --git a/winbuild/README.md b/winbuild/README.md
index 2aa0c60fe..3684a382d 100644
--- a/winbuild/README.md
+++ b/winbuild/README.md
@@ -95,7 +95,8 @@ where `<options>` is one or many of:
- Enable loading OpenSSL configuration
automatically, defaults to yes
- `ENABLE_UNICODE=<yes/no>` - Enable UNICODE support, defaults to no
- - `GEN_PDB=<yes/no>` - Generate Program Database (debug symbols for release build)
+ - `GEN_PDB=<yes/no>` - Generate External Program Database
+ (debug symbols for release build)
- `DEBUG=<yes/no>` - Debug builds
- `MACHINE=<x86/x64>` - Target architecture (default is x86)
- `CARES_PATH=<path>` - Custom path for c-ares
diff --git a/winbuild/gen_resp_file.bat b/winbuild/gen_resp_file.bat
index e19e14bd2..77f30bc3c 100755
--- a/winbuild/gen_resp_file.bat
+++ b/winbuild/gen_resp_file.bat
@@ -1,32 +1,32 @@
-@echo off
-rem ***************************************************************************
-rem * _ _ ____ _
-rem * Project ___| | | | _ \| |
-rem * / __| | | | |_) | |
-rem * | (__| |_| | _ <| |___
-rem * \___|\___/|_| \_\_____|
-rem *
-rem * Copyright (C) 2011 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
-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.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
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem ***************************************************************************
-
-if exist %OUTFILE% (
- del %OUTFILE%
-)
-
-echo %MACRO_NAME% = \> %OUTFILE%
-for %%i in (%*) do echo %DIROBJ%/%%i \>> %OUTFILE%
-echo. >> %OUTFILE%
-
-:END
+@echo off
+rem ***************************************************************************
+rem * _ _ ____ _
+rem * Project ___| | | | _ \| |
+rem * / __| | | | |_) | |
+rem * | (__| |_| | _ <| |___
+rem * \___|\___/|_| \_\_____|
+rem *
+rem * Copyright (C) 2011 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+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.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
+rem * furnished to do so, under the terms of the COPYING file.
+rem *
+rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+rem * KIND, either express or implied.
+rem *
+rem ***************************************************************************
+
+if exist %OUTFILE% (
+ del %OUTFILE%
+)
+
+echo %MACRO_NAME% = \> %OUTFILE%
+for %%i in (%*) do echo %DIROBJ%/%%i \>> %OUTFILE%
+echo. >> %OUTFILE%
+
+:END