summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Ghedini <alessandro@ghedini.me>2015-06-17 09:38:25 +0200
committerAlessandro Ghedini <alessandro@ghedini.me>2015-06-17 09:38:25 +0200
commitdbada9f3efae6d9d47b24d0fc06b31d5c48e59a9 (patch)
tree453623e63c0fe6672f0222a33b702b21991c3d85
parentbff9831a91669600de53ca4ed6022cb212a40b8a (diff)
Imported Upstream version 7.43.0
-rw-r--r--CHANGES2388
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in12
-rw-r--r--README4
-rw-r--r--RELEASE-NOTES148
-rw-r--r--TODO10
-rw-r--r--acinclude.m419
-rwxr-xr-xbuildconf4
-rwxr-xr-xconfigure81
-rw-r--r--configure.ac6
-rw-r--r--docs/BINDINGS36
-rw-r--r--docs/CONTRIBUTE6
-rw-r--r--docs/DISTRO-DILEMMA14
-rw-r--r--docs/FAQ26
-rw-r--r--docs/HTTP-COOKIES2
-rw-r--r--docs/HTTP2.md107
-rw-r--r--docs/INSTALL44
-rw-r--r--docs/INSTALL.devcpp2
-rw-r--r--docs/INTERNALS909
-rw-r--r--docs/KNOWN_BUGS2
-rw-r--r--docs/LIBCURL-STRUCTS245
-rw-r--r--docs/LICENSE-MIXING46
-rw-r--r--docs/MAIL-ETIQUETTE2
-rw-r--r--docs/MANUAL4
-rw-r--r--docs/Makefile.am6
-rw-r--r--docs/Makefile.in12
-rw-r--r--docs/RELEASE-PROCEDURE12
-rw-r--r--docs/ROADMAP.md139
-rw-r--r--docs/SSL-PROBLEMS2
-rw-r--r--docs/THANKS23
-rw-r--r--docs/TODO23
-rw-r--r--docs/VERSIONS20
-rw-r--r--docs/curl-config.pdfbin6016 -> 6016 bytes
-rw-r--r--docs/curl.155
-rw-r--r--docs/curl.html31
-rw-r--r--docs/curl.pdfbin106273 -> 108345 bytes
-rw-r--r--docs/examples/Makefile.in66
-rw-r--r--docs/examples/Makefile.inc5
-rw-r--r--docs/examples/Makefile.m3245
-rw-r--r--docs/examples/Makefile.netware8
-rw-r--r--docs/examples/cookie_interface.c7
-rw-r--r--docs/examples/curlx.c2
-rw-r--r--docs/examples/fopen.c14
-rw-r--r--docs/examples/ftpget.c2
-rw-r--r--docs/examples/ftpsget.c2
-rw-r--r--docs/examples/http2-download.c288
-rw-r--r--docs/examples/http2-upload.c352
-rw-r--r--docs/examples/imap-ssl.c2
-rw-r--r--docs/examples/multi-post.c2
-rw-r--r--docs/examples/multi-single.c2
-rw-r--r--docs/examples/pop3-multi.c2
-rw-r--r--docs/examples/pop3-retr.c2
-rw-r--r--docs/examples/pop3-ssl.c4
-rw-r--r--docs/examples/pop3-tls.c2
-rw-r--r--docs/examples/postit2.c2
-rw-r--r--docs/examples/sftpget.c2
-rw-r--r--docs/examples/smtp-mail.c2
-rw-r--r--docs/examples/smtp-ssl.c2
-rw-r--r--docs/examples/xmlstream.c2
-rw-r--r--docs/libcurl/Makefile.in5
-rw-r--r--docs/libcurl/curl_easy_cleanup.37
-rw-r--r--docs/libcurl/curl_easy_cleanup.html3
-rw-r--r--docs/libcurl/curl_easy_cleanup.pdfbin4477 -> 4581 bytes
-rw-r--r--docs/libcurl/curl_easy_duphandle.36
-rw-r--r--docs/libcurl/curl_easy_duphandle.html3
-rw-r--r--docs/libcurl/curl_easy_duphandle.pdfbin4028 -> 4058 bytes
-rw-r--r--docs/libcurl/curl_easy_escape.36
-rw-r--r--docs/libcurl/curl_easy_escape.html4
-rw-r--r--docs/libcurl/curl_easy_escape.pdfbin4193 -> 4154 bytes
-rw-r--r--docs/libcurl/curl_easy_getinfo.html2
-rw-r--r--docs/libcurl/curl_easy_getinfo.pdfbin18522 -> 18522 bytes
-rw-r--r--docs/libcurl/curl_easy_init.pdfbin4197 -> 4197 bytes
-rw-r--r--docs/libcurl/curl_easy_pause.pdfbin7373 -> 7373 bytes
-rw-r--r--docs/libcurl/curl_easy_perform.pdfbin4986 -> 4986 bytes
-rw-r--r--docs/libcurl/curl_easy_recv.pdfbin5431 -> 5431 bytes
-rw-r--r--docs/libcurl/curl_easy_reset.pdfbin3701 -> 3701 bytes
-rw-r--r--docs/libcurl/curl_easy_send.pdfbin5208 -> 5208 bytes
-rw-r--r--docs/libcurl/curl_easy_setopt.34
-rw-r--r--docs/libcurl/curl_easy_setopt.html4
-rw-r--r--docs/libcurl/curl_easy_setopt.pdfbin24567 -> 25313 bytes
-rw-r--r--docs/libcurl/curl_easy_strerror.pdfbin3667 -> 3667 bytes
-rw-r--r--docs/libcurl/curl_easy_unescape.34
-rw-r--r--docs/libcurl/curl_easy_unescape.html2
-rw-r--r--docs/libcurl/curl_easy_unescape.pdfbin4179 -> 4179 bytes
-rw-r--r--docs/libcurl/curl_escape.pdfbin4014 -> 4014 bytes
-rw-r--r--docs/libcurl/curl_formadd.html26
-rw-r--r--docs/libcurl/curl_formadd.pdfbin12395 -> 12395 bytes
-rw-r--r--docs/libcurl/curl_formfree.pdfbin3767 -> 3767 bytes
-rw-r--r--docs/libcurl/curl_formget.html6
-rw-r--r--docs/libcurl/curl_formget.pdfbin4410 -> 4410 bytes
-rw-r--r--docs/libcurl/curl_free.pdfbin3356 -> 3356 bytes
-rw-r--r--docs/libcurl/curl_getdate.34
-rw-r--r--docs/libcurl/curl_getdate.html2
-rw-r--r--docs/libcurl/curl_getdate.pdfbin6462 -> 6462 bytes
-rw-r--r--docs/libcurl/curl_getenv.pdfbin4188 -> 4188 bytes
-rw-r--r--docs/libcurl/curl_global_cleanup.pdfbin3860 -> 3860 bytes
-rw-r--r--docs/libcurl/curl_global_init.pdfbin5107 -> 5107 bytes
-rw-r--r--docs/libcurl/curl_global_init_mem.pdfbin4083 -> 4083 bytes
-rw-r--r--docs/libcurl/curl_mprintf.pdfbin5924 -> 5924 bytes
-rw-r--r--docs/libcurl/curl_multi_add_handle.pdfbin4737 -> 4737 bytes
-rw-r--r--docs/libcurl/curl_multi_assign.pdfbin4570 -> 4570 bytes
-rw-r--r--docs/libcurl/curl_multi_cleanup.pdfbin3812 -> 3812 bytes
-rw-r--r--docs/libcurl/curl_multi_fdset.html2
-rw-r--r--docs/libcurl/curl_multi_fdset.pdfbin5480 -> 5480 bytes
-rw-r--r--docs/libcurl/curl_multi_info_read.324
-rw-r--r--docs/libcurl/curl_multi_info_read.html23
-rw-r--r--docs/libcurl/curl_multi_info_read.pdfbin4915 -> 5883 bytes
-rw-r--r--docs/libcurl/curl_multi_init.pdfbin3423 -> 3423 bytes
-rw-r--r--docs/libcurl/curl_multi_perform.351
-rw-r--r--docs/libcurl/curl_multi_perform.html52
-rw-r--r--docs/libcurl/curl_multi_perform.pdfbin5668 -> 7082 bytes
-rw-r--r--docs/libcurl/curl_multi_remove_handle.pdfbin3980 -> 3980 bytes
-rw-r--r--docs/libcurl/curl_multi_setopt.pdfbin5280 -> 5280 bytes
-rw-r--r--docs/libcurl/curl_multi_socket.html6
-rw-r--r--docs/libcurl/curl_multi_socket.pdfbin9402 -> 9402 bytes
-rw-r--r--docs/libcurl/curl_multi_socket_action.html6
-rw-r--r--docs/libcurl/curl_multi_socket_action.pdfbin9638 -> 9638 bytes
-rw-r--r--docs/libcurl/curl_multi_strerror.pdfbin3433 -> 3433 bytes
-rw-r--r--docs/libcurl/curl_multi_timeout.318
-rw-r--r--docs/libcurl/curl_multi_timeout.html19
-rw-r--r--docs/libcurl/curl_multi_timeout.pdfbin4628 -> 4872 bytes
-rw-r--r--docs/libcurl/curl_multi_wait.32
-rw-r--r--docs/libcurl/curl_multi_wait.html4
-rw-r--r--docs/libcurl/curl_multi_wait.pdfbin4942 -> 4947 bytes
-rw-r--r--docs/libcurl/curl_share_cleanup.pdfbin3630 -> 3630 bytes
-rw-r--r--docs/libcurl/curl_share_init.pdfbin3839 -> 3839 bytes
-rw-r--r--docs/libcurl/curl_share_setopt.pdfbin5585 -> 5585 bytes
-rw-r--r--docs/libcurl/curl_share_strerror.pdfbin3432 -> 3432 bytes
-rw-r--r--docs/libcurl/curl_slist_append.html6
-rw-r--r--docs/libcurl/curl_slist_append.pdf16
-rw-r--r--docs/libcurl/curl_slist_free_all.pdf16
-rw-r--r--docs/libcurl/curl_strequal.pdfbin4148 -> 4148 bytes
-rw-r--r--docs/libcurl/curl_unescape.pdfbin3967 -> 3967 bytes
-rw-r--r--docs/libcurl/curl_version.pdfbin3490 -> 3490 bytes
-rw-r--r--docs/libcurl/curl_version_info.html12
-rw-r--r--docs/libcurl/curl_version_info.pdfbin8843 -> 8845 bytes
-rw-r--r--docs/libcurl/libcurl-easy.pdfbin4914 -> 4914 bytes
-rw-r--r--docs/libcurl/libcurl-errors.pdfbin17576 -> 17578 bytes
-rw-r--r--docs/libcurl/libcurl-multi.32
-rw-r--r--docs/libcurl/libcurl-multi.html2
-rw-r--r--docs/libcurl/libcurl-multi.pdfbin11840 -> 11838 bytes
-rw-r--r--docs/libcurl/libcurl-share.pdfbin4999 -> 4999 bytes
-rw-r--r--docs/libcurl/libcurl-symbols.316
-rw-r--r--docs/libcurl/libcurl-symbols.html14
-rw-r--r--docs/libcurl/libcurl-symbols.pdfbin37854 -> 38053 bytes
-rw-r--r--docs/libcurl/libcurl-tutorial.html38
-rw-r--r--docs/libcurl/libcurl-tutorial.pdfbin74083 -> 74083 bytes
-rw-r--r--docs/libcurl/libcurl.pdfbin13825 -> 13825 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.pdfbin4079 -> 4079 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.pdfbin4035 -> 4035 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAXCONNECTS.pdfbin4199 -> 4199 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.310
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.html5
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.pdfbin4209 -> 4324 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.pdf16
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.pdfbin4098 -> 4098 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.327
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.html15
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.pdfbin4003 -> 4497 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.html2
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.pdfbin4041 -> 4043 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.html2
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.pdfbin3787 -> 3787 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETDATA.html2
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETDATA.pdfbin3836 -> 3836 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.pdfbin4421 -> 4421 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERDATA.html2
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERDATA.pdfbin3792 -> 3792 bytes
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.html12
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.pdfbin5815 -> 5815 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.pdfbin3663 -> 3663 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.pdfbin4671 -> 4671 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.pdfbin3515 -> 3515 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_APPEND.pdfbin3599 -> 3599 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_AUTOREFERER.pdfbin3603 -> 3603 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_BUFFERSIZE.pdfbin4047 -> 4047 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CAINFO.pdfbin4416 -> 4416 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CAPATH.pdfbin4289 -> 4289 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CERTINFO.pdfbin3939 -> 3939 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.pdfbin4558 -> 4558 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.pdfbin3767 -> 3762 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.pdfbin3885 -> 3885 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.pdfbin3813 -> 3813 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.pdfbin4160 -> 4160 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.pdfbin4037 -> 4037 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.pdfbin4026 -> 4026 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_ONLY.pdfbin4060 -> 4060 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.pdfbin5150 -> 5150 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.pdfbin5050 -> 5050 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.pdfbin5127 -> 5129 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.39
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.html5
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.pdfbin4484 -> 4913 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEFILE.pdfbin4173 -> 4173 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEJAR.pdfbin4607 -> 4607 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.351
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.html47
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.pdfbin4195 -> 6463 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIESESSION.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.pdfbin4668 -> 4668 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLF.pdfbin3753 -> 3745 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLFILE.pdfbin4541 -> 4541 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.pdfbin6299 -> 6299 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGDATA.pdfbin3822 -> 3822 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.html36
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.pdfbin7759 -> 7759 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DIRLISTONLY.pdfbin4586 -> 4586 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.pdfbin4454 -> 4454 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_INTERFACE.pdfbin3946 -> 3946 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.pdfbin4048 -> 4046 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.pdfbin4060 -> 4058 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SERVERS.pdfbin4081 -> 4081 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.pdfbin4015 -> 4015 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_EGDSOCKET.pdfbin3736 -> 3736 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_ERRORBUFFER.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_ERRORBUFFER.pdfbin4609 -> 4609 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.pdfbin3851 -> 3851 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FAILONERROR.pdfbin4046 -> 4046 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FILETIME.pdfbin3849 -> 3849 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_DATA.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_DATA.pdfbin3756 -> 3756 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.pdfbin3948 -> 3948 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.pdfbin4656 -> 4656 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FORBID_REUSE.pdfbin3990 -> 3990 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FRESH_CONNECT.pdfbin4013 -> 4013 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPPORT.pdfbin4725 -> 4725 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPSSLAUTH.pdfbin4065 -> 4065 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.pdfbin3777 -> 3777 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.pdfbin3933 -> 3933 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.pdfbin4696 -> 4696 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.pdfbin4449 -> 4449 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.pdfbin4087 -> 4087 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.pdfbin4127 -> 4127 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.pdfbin3918 -> 3918 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.pdfbin3999 -> 3999 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.pdfbin3956 -> 3956 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_PRET.pdfbin3708 -> 3708 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.pdfbin4142 -> 4142 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADER.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADER.pdfbin4076 -> 4076 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERDATA.pdfbin3901 -> 3901 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERFUNCTION.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERFUNCTION.pdfbin6757 -> 6757 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADEROPT.pdfbin4438 -> 4438 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP200ALIASES.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP200ALIASES.pdfbin4251 -> 4251 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPAUTH.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPAUTH.pdfbin7475 -> 7475 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPGET.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPGET.pdfbin4043 -> 4043 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPHEADER.html12
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPHEADER.pdfbin6648 -> 6648 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPOST.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPOST.pdfbin4474 -> 4474 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.37
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.html5
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.pdfbin3964 -> 4188 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.pdfbin3785 -> 3785 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.pdfbin3635 -> 3635 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_VERSION.pdfbin4205 -> 4205 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.pdfbin4063 -> 4063 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE.pdfbin4384 -> 4384 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.pdfbin4356 -> 4356 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERFACE.pdfbin4392 -> 4392 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.pdfbin3852 -> 3852 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.pdfbin4939 -> 4939 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLDATA.pdfbin3781 -> 3781 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.pdfbin4728 -> 4728 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_IPRESOLVE.pdfbin3784 -> 3784 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_ISSUERCERT.pdfbin4457 -> 4457 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_KEYPASSWD.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_KRBLEVEL.pdfbin3969 -> 3969 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORT.pdfbin3868 -> 3868 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.pdfbin4116 -> 4116 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.pdfbin4083 -> 4083 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.pdfbin3822 -> 3822 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.pdfbin3763 -> 3763 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_AUTH.pdfbin4377 -> 4377 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_FROM.pdfbin3879 -> 3879 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT.pdfbin4289 -> 4289 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXCONNECTS.pdfbin4256 -> 4258 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE.pdfbin4081 -> 4081 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.pdfbin4083 -> 4081 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXREDIRS.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXREDIRS.pdfbin4129 -> 4129 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.pdfbin3970 -> 3970 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.pdfbin4011 -> 4011 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC.pdfbin4768 -> 4768 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC_FILE.pdfbin3990 -> 3990 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.pdfbin4091 -> 4091 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.pdfbin4053 -> 4053 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NOBODY.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_NOBODY.pdfbin3883 -> 3883 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROGRESS.pdfbin3733 -> 3733 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROXY.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_NOSIGNAL.pdfbin4514 -> 4514 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.pdfbin3816 -> 3816 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.pdfbin6058 -> 6058 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PASSWORD.pdfbin3952 -> 3952 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PATH_AS_IS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_PATH_AS_IS.pdfbin4220 -> 4220 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.319
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.html16
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.pdfbin4374 -> 4754 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.363
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.html69
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.pdfbin0 -> 4577 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PORT.pdfbin3981 -> 3981 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_POST.pdfbin5251 -> 5251 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.33
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.html9
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.pdfbin5674 -> 5851 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.pdfbin3880 -> 3880 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTQUOTE.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTREDIR.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTREDIR.pdfbin4682 -> 4682 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PREQUOTE.pdfbin3868 -> 3868 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PRIVATE.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_PRIVATE.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSDATA.pdfbin3809 -> 3809 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.pdfbin5873 -> 5873 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROTOCOLS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_PROTOCOLS.pdfbin5240 -> 5240 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY.pdfbin6395 -> 6395 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYAUTH.pdfbin4289 -> 4289 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYHEADER.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYHEADER.pdfbin4117 -> 4117 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPASSWORD.pdfbin4050 -> 4050 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPORT.pdfbin3853 -> 3853 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYTYPE.pdfbin4194 -> 4194 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERNAME.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERNAME.pdfbin4059 -> 4059 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERPWD.pdfbin4166 -> 4166 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.345
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.html65
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.pdfbin0 -> 3812 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.pdfbin4042 -> 4040 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_PUT.pdfbin3830 -> 3830 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_QUOTE.pdfbin5637 -> 5637 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RANDOM_FILE.pdfbin3574 -> 3574 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RANGE.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_RANGE.pdfbin4492 -> 4492 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_READDATA.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_READDATA.pdfbin4334 -> 4334 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_READFUNCTION.pdfbin5194 -> 5194 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.pdfbin5208 -> 5208 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_REFERER.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_REFERER.pdfbin4048 -> 4048 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVE.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVE.pdfbin4987 -> 4987 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM.pdfbin4411 -> 4411 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.html12
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.pdfbin4323 -> 4323 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.pdfbin3654 -> 3654 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_REQUEST.pdfbin7519 -> 7519 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.pdfbin4028 -> 4028 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.pdfbin4313 -> 4313 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.pdfbin3874 -> 3874 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SASL_IR.pdfbin3862 -> 3862 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKDATA.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKFUNCTION.html6
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKFUNCTION.pdfbin5022 -> 5022 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.346
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.html65
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.pdfbin0 -> 3783 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SHARE.pdfbin4248 -> 4248 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTDATA.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.html8
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.pdfbin6183 -> 6183 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.pdfbin3684 -> 3684 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.pdfbin3841 -> 3841 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.pdfbin4003 -> 4003 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdfbin3812 -> 3812 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYDATA.pdfbin3792 -> 3792 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.pdfbin6709 -> 6709 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.pdfbin4210 -> 4210 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.pdfbin4321 -> 4321 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERT.pdfbin4341 -> 4341 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERTTYPE.pdfbin3933 -> 3933 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE.pdfbin3954 -> 3954 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.pdfbin3981 -> 3981 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEY.pdfbin4171 -> 4171 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEYTYPE.pdfbin4186 -> 4186 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLVERSION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLVERSION.pdfbin4783 -> 4783 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.pdfbin4476 -> 4476 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.pdfbin3847 -> 3847 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.pdfbin4969 -> 4969 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.pdfbin3662 -> 3662 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.pdfbin3663 -> 3663 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_FALSESTART.pdfbin3939 -> 3947 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_OPTIONS.pdfbin4100 -> 4100 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.pdfbin3844 -> 3844 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.pdfbin5814 -> 5814 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.pdfbin5713 -> 5713 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.pdf16
-rw-r--r--docs/libcurl/opts/CURLOPT_STDERR.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_STDERR.pdfbin3794 -> 3794 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.pdfbin4118 -> 4122 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.pdfbin4008 -> 4011 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.pdfbin3854 -> 3856 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_NODELAY.pdfbin4246 -> 4246 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TELNETOPTIONS.pdfbin3661 -> 3661 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.pdfbin3830 -> 3830 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMECONDITION.pdfbin4165 -> 4165 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT.pdfbin4618 -> 4618 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT_MS.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT_MS.pdfbin4735 -> 4735 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE.pdfbin3732 -> 3732 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.pdfbin3940 -> 3940 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.pdfbin4117 -> 4117 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.pdfbin3922 -> 3922 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFERTEXT.pdfbin3972 -> 3972 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.pdfbin4111 -> 4111 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.pdfbin5029 -> 5029 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.pdfbin3808 -> 3808 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD.html10
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD.pdfbin4742 -> 4742 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_URL.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_URL.pdfbin15854 -> 15854 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_USERAGENT.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_USERAGENT.pdfbin4142 -> 4142 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_USERNAME.html2
-rw-r--r--docs/libcurl/opts/CURLOPT_USERNAME.pdfbin4731 -> 4731 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_USERPWD.pdfbin5037 -> 5037 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_USE_SSL.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_USE_SSL.pdfbin4371 -> 4371 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_VERBOSE.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_VERBOSE.pdfbin4253 -> 4253 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_WILDCARDMATCH.pdfbin5926 -> 5926 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEDATA.pdfbin4674 -> 4674 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEFUNCTION.html4
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEFUNCTION.pdfbin5273 -> 5273 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFODATA.pdfbin3814 -> 3814 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.pdfbin5111 -> 5111 bytes
-rw-r--r--docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.pdfbin4044 -> 4044 bytes
-rw-r--r--docs/libcurl/opts/Makefile.am26
-rw-r--r--docs/libcurl/opts/Makefile.in31
-rw-r--r--docs/libcurl/symbols-in-versions7
-rwxr-xr-xdocs/libcurl/symbols.pl2
-rw-r--r--docs/mk-ca-bundle.html1
-rw-r--r--docs/mk-ca-bundle.pdfbin7056 -> 7060 bytes
-rw-r--r--include/Makefile.in5
-rw-r--r--include/curl/Makefile.in5
-rw-r--r--include/curl/curl.h14
-rw-r--r--include/curl/curlver.h18
-rw-r--r--include/curl/multi.h7
-rw-r--r--include/curl/typecheck-gcc.h2
-rw-r--r--lib/Makefile.Watcom4
-rw-r--r--lib/Makefile.am6
-rw-r--r--lib/Makefile.b322
-rw-r--r--lib/Makefile.in54
-rw-r--r--lib/Makefile.inc4
-rw-r--r--lib/Makefile.m3216
-rw-r--r--lib/Makefile.netware4
-rw-r--r--lib/Makefile.vc109
-rw-r--r--lib/Makefile.vc69
-rw-r--r--lib/Makefile.vc89
-rw-r--r--lib/Makefile.vc99
-rw-r--r--lib/README.ares69
-rw-r--r--lib/README.curl_off_t68
-rw-r--r--lib/README.curlx61
-rw-r--r--lib/README.encoding60
-rw-r--r--lib/README.hostip35
-rw-r--r--lib/README.httpauth74
-rw-r--r--lib/README.memoryleak55
-rw-r--r--lib/README.multi_socket53
-rw-r--r--lib/README.pingpong30
-rw-r--r--lib/README.pipelining44
-rw-r--r--lib/bundles.c110
-rw-r--r--lib/bundles.h45
-rwxr-xr-xlib/checksrc.pl9
-rw-r--r--lib/checksrc.whitelist4
-rw-r--r--lib/conncache.c153
-rw-r--r--lib/conncache.h15
-rw-r--r--lib/connect.c9
-rw-r--r--lib/cookie.c9
-rw-r--r--lib/curl_sasl.c14
-rw-r--r--lib/curl_sasl.h9
-rw-r--r--lib/curl_sasl_sspi.c74
-rw-r--r--lib/curl_setup.h20
-rw-r--r--lib/curl_sspi.h4
-rw-r--r--lib/file.c2
-rw-r--r--lib/formdata.c4
-rw-r--r--lib/ftp.c50
-rw-r--r--lib/hash.c66
-rw-r--r--lib/hash.h10
-rw-r--r--lib/hostip.c9
-rw-r--r--lib/hostip.h4
-rw-r--r--lib/http.c163
-rw-r--r--lib/http.h60
-rw-r--r--lib/http2.c830
-rw-r--r--lib/http2.h10
-rw-r--r--lib/http_negotiate.c6
-rw-r--r--lib/http_negotiate_sspi.c16
-rw-r--r--lib/http_proxy.c10
-rw-r--r--lib/libcurl.plist6
-rw-r--r--lib/memdebug.c2
-rw-r--r--lib/multi.c190
-rw-r--r--lib/multihandle.h17
-rw-r--r--lib/multiif.h10
-rw-r--r--lib/netrc.c6
-rw-r--r--lib/pipeline.c103
-rw-r--r--lib/pipeline.h12
-rw-r--r--lib/rtsp.c11
-rw-r--r--lib/security.c125
-rw-r--r--lib/sendf.c2
-rw-r--r--lib/share.c24
-rw-r--r--lib/share.h4
-rw-r--r--lib/smb.c12
-rw-r--r--lib/ssh.c4
-rw-r--r--lib/strerror.c6
-rw-r--r--lib/telnet.c9
-rw-r--r--lib/transfer.c28
-rw-r--r--lib/transfer.h5
-rw-r--r--lib/url.c282
-rw-r--r--lib/url.h3
-rw-r--r--lib/urldata.h28
-rw-r--r--lib/vtls/cyassl.c39
-rw-r--r--lib/vtls/gtls.c101
-rw-r--r--lib/vtls/nss.c59
-rw-r--r--lib/vtls/openssl.c202
-rw-r--r--lib/vtls/schannel.c490
-rw-r--r--lib/vtls/schannel.h1
-rw-r--r--lib/x509asn1.c5
-rw-r--r--lib/x509asn1.h5
-rw-r--r--m4/curl-openssl.m49
-rwxr-xr-xmaketgz4
-rwxr-xr-xmissing402
-rwxr-xr-xmkinstalldirs162
-rw-r--r--packages/AIX/Makefile.in5
-rw-r--r--packages/AIX/RPM/Makefile.in4
-rw-r--r--packages/EPM/Makefile.in4
-rw-r--r--packages/Linux/Makefile.in5
-rw-r--r--packages/Linux/RPM/Makefile.in5
-rw-r--r--packages/Makefile.in5
-rw-r--r--packages/OS400/README.OS4002
-rw-r--r--packages/OS400/ccsidcurl.c4
-rw-r--r--packages/OS400/curl.inc.in6
-rw-r--r--packages/Solaris/Makefile.in5
-rw-r--r--packages/Symbian/group/libcurl.mmp2
-rw-r--r--packages/Win32/Makefile.in5
-rw-r--r--packages/Win32/cygwin/Makefile.in5
-rw-r--r--packages/vms/Makefile.in5
-rw-r--r--projects/Windows/VC10/lib/libcurl.vcxproj2
-rw-r--r--projects/Windows/VC11/lib/libcurl.vcxproj2
-rw-r--r--projects/Windows/VC12/lib/libcurl.vcxproj2
-rw-r--r--projects/Windows/VC6/lib/libcurl.dsp8
-rw-r--r--projects/Windows/VC7.1/lib/libcurl.vcproj6
-rw-r--r--projects/Windows/VC7/lib/libcurl.vcproj6
-rw-r--r--projects/Windows/VC8/lib/libcurl.vcproj8
-rw-r--r--projects/Windows/VC9/lib/libcurl.vcproj8
-rwxr-xr-xscripts/zsh.pl77
-rw-r--r--src/Makefile.Watcom4
-rw-r--r--src/Makefile.b322
-rw-r--r--src/Makefile.in5
-rw-r--r--src/Makefile.m3218
-rw-r--r--src/Makefile.netware4
-rw-r--r--src/Makefile.vc104
-rw-r--r--src/Makefile.vc64
-rw-r--r--src/Makefile.vc84
-rw-r--r--src/Makefile.vc94
-rw-r--r--src/checksrc.whitelist2
-rw-r--r--src/tool_cb_dbg.c2
-rw-r--r--src/tool_cfgable.c2
-rw-r--r--src/tool_cfgable.h4
-rw-r--r--src/tool_easysrc.c2
-rw-r--r--src/tool_getparam.c19
-rw-r--r--src/tool_help.c9
-rw-r--r--src/tool_hugehelp.c9834
-rw-r--r--src/tool_operate.c15
-rw-r--r--src/tool_parsecfg.c4
-rw-r--r--src/tool_version.h2
-rw-r--r--tests/Makefile.in5
-rw-r--r--tests/README4
-rw-r--r--tests/certs/Makefile.in5
-rw-r--r--tests/certs/scripts/Makefile.in5
-rw-r--r--tests/data/Makefile.in11
-rw-r--r--tests/data/Makefile.inc7
-rw-r--r--tests/data/test1301
-rw-r--r--tests/data/test15101
-rw-r--r--tests/data/test153030
-rw-r--r--tests/data/test15928
-rw-r--r--tests/data/test160226
-rw-r--r--tests/data/test203963
-rw-r--r--tests/data/test204069
-rw-r--r--tests/libtest/Makefile.in692
-rw-r--r--tests/libtest/Makefile.inc6
-rw-r--r--tests/libtest/lib1530.c67
-rwxr-xr-xtests/runtests.pl32
-rw-r--r--tests/server/Makefile.in5
-rwxr-xr-xtests/testcurl.pl27
-rw-r--r--tests/unit/Makefile.in58
-rw-r--r--tests/unit/Makefile.inc5
-rw-r--r--tests/unit/unit1305.c13
-rw-r--r--tests/unit/unit1602.c80
-rw-r--r--winbuild/BUILD.WINDOWS.txt11
652 files changed, 13006 insertions, 10143 deletions
diff --git a/CHANGES b/CHANGES
index 630dac77..2ff78787 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,10 +6,1077 @@
Changelog
-Version 7.42.1 (28 Apr 2015)
+Version 7.43.0 (17 Jun 2015)
-Daniel Stenberg (28 Apr 2015)
-- RELEASE-NOTES: 7.42.1 ready
+Daniel Stenberg (17 Jun 2015)
+- RELEASE-NOTES: 7.43.0 release
+
+- THANKS: updated with 7.43.0 names
+
+- [Kamil Dudka brought this change]
+
+ http: do not leak basic auth credentials on re-used connections
+
+ CVE-2015-3236
+
+ This partially reverts commit curl-7_39_0-237-g87c4abb
+
+ Reported-by: Tomas Tomecek, Kamil Dudka
+ Bug: http://curl.haxx.se/docs/adv_20150617A.html
+
+- [Kamil Dudka brought this change]
+
+ test2040: verify basic auth on re-used connections
+
+- SMB: rangecheck values read off incoming packet
+
+ CVE-2015-3237
+
+ Detected by Coverity. CID 1299430.
+
+ Bug: http://curl.haxx.se/docs/adv_20150617B.html
+
+Jay Satiro (17 Jun 2015)
+- schannel: schannel_recv overhaul
+
+ This commit is several drafts squashed together. The changes from each
+ draft are noted below. If any changes are similar and possibly
+ contradictory the change in the latest draft takes precedence.
+
+ Bug: https://github.com/bagder/curl/issues/244
+ Reported-by: Chris Araman
+
+ %%
+ %% Draft 1
+ %%
+ - return 0 if len == 0. that will have to be documented.
+ - continue on and process the caches regardless of raw recv
+ - if decrypted data will be returned then set the error code to CURLE_OK
+ and return its count
+ - if decrypted data will not be returned and the connection has closed
+ (eg nread == 0) then return 0 and CURLE_OK
+ - if decrypted data will not be returned and the connection *hasn't*
+ closed then set the error code to CURLE_AGAIN --only if an error code
+ isn't already set-- and return -1
+ - narrow the Win2k workaround to only Win2k
+
+ %%
+ %% Draft 2
+ %%
+ - Trying out a change in flow to handle corner cases.
+
+ %%
+ %% Draft 3
+ %%
+ - Back out the lazier decryption change made in draft2.
+
+ %%
+ %% Draft 4
+ %%
+ - Some formatting and branching changes
+ - Decrypt all encrypted cached data when len == 0
+ - Save connection closed state
+ - Change special Win2k check to use connection closed state
+
+ %%
+ %% Draft 5
+ %%
+ - Default to CURLE_AGAIN in cleanup if an error code wasn't set and the
+ connection isn't closed.
+
+ %%
+ %% Draft 6
+ %%
+ - Save the last error only if it is an unrecoverable error.
+
+ Prior to this I saved the last error state in all cases; unfortunately
+ the logic to cover that in all cases would lead to some muddle and I'm
+ concerned that could then lead to a bug in the future so I've replaced
+ it by only recording an unrecoverable error and that state will persist.
+
+ - Do not recurse on renegotiation.
+
+ Instead we'll continue on to process any trailing encrypted data
+ received during the renegotiation only.
+
+ - Move the err checks in cleanup after the check for decrypted data.
+
+ In either case decrypted data is always returned but I think it's easier
+ to understand when those err checks come after the decrypted data check.
+
+ %%
+ %% Draft 7
+ %%
+ - Regardless of len value go directly to cleanup if there is an
+ unrecoverable error or a close_notify was already received. Prior to
+ this change we only acknowledged those two states if len != 0.
+
+ - Fix a bug in connection closed behavior: Set the error state in the
+ cleanup, because we don't know for sure it's an error until that time.
+
+ - (Related to above) In the case the connection is closed go "greedy"
+ with the decryption to make sure all remaining encrypted data has been
+ decrypted even if it is not needed at that time by the caller. This is
+ necessary because we can only tell if the connection closed gracefully
+ (close_notify) once all encrypted data has been decrypted.
+
+ - Do not renegotiate when an unrecoverable error is pending.
+
+ %%
+ %% Draft 8
+ %%
+ - Don't show 'server closed the connection' info message twice.
+
+ - Show an info message if server closed abruptly (missing close_notify).
+
+Daniel Stenberg (16 Jun 2015)
+- [Paul Oliver brought this change]
+
+ Fix typo in docs
+
+ s/curret/current/
+
+- [Viktor Szakats brought this change]
+
+ docs: update URLs
+
+- RELEASE-NOTES: synced with f29f2cbd00dbe5f
+
+- [Viktor Szakats brought this change]
+
+ README: use secure protocol for Git repository
+
+- [Viktor Szakats brought this change]
+
+ HTTP2.md: use SSL/TLS IETF URLs
+
+- [Viktor Szakats brought this change]
+
+ LICENSE-MIXING: update URLs
+
+ * use SSL/TLS where available
+ * follow permanent redirects
+
+- LICENSE-MIXING: refreshed
+
+- curl_easy_duphandle: see also *reset
+
+- rtsp_do: fix DEAD CODE
+
+ "At condition p_request, the value of p_request cannot be NULL."
+
+ Coverity CID 1306668.
+
+- security:choose_mech fix DEAD CODE warning
+
+ ... by removing the "do {} while (0)" block.
+
+ Coverity CID 1306669
+
+- curl.1: netrc is in man section 5
+
+- curl.1: small format fix
+
+ use \fI-style instead of .BR for references
+
+- urldata: store POST size in state.infilesize too
+
+ ... to simplify checking when PUT _or_ POST have completed.
+
+ Reported-by: Frank Meier
+ Bug: http://curl.haxx.se/mail/lib-2015-06/0019.html
+
+Dan Fandrich (14 Jun 2015)
+- test1530: added http to required features
+
+Jay Satiro (14 Jun 2015)
+- [Drake Arconis brought this change]
+
+ build: Fix typo from OpenSSL 1.0.2 version detection fix
+
+- [Drake Arconis brought this change]
+
+ build: Properly detect OpenSSL 1.0.2 when using configure
+
+- curl_multi_info_read.3: fix example formatting
+
+Daniel Stenberg (13 Jun 2015)
+- BINDINGS: there's a new R binding in town!
+
+- BINDINGS: added the Xojo binding
+
+Jay Satiro (11 Jun 2015)
+- [Joel Depooter brought this change]
+
+ schannel: Add support for optional client certificates
+
+ Some servers will request a client certificate, but not require one.
+ This change allows libcurl to connect to such servers when using
+ schannel as its ssl/tls backend. When a server requests a client
+ certificate, libcurl will now continue the handshake without one,
+ rather than terminating the handshake. The server can then decide
+ if that is acceptable or not. Prior to this change, libcurl would
+ terminate the handshake, reporting a SEC_I_INCOMPLETE_CREDENTIALS
+ error.
+
+Daniel Stenberg (11 Jun 2015)
+- curl_easy_cleanup.3: provide more SEE ALSO
+
+- debug: remove http2 debug leftovers
+
+- VERSIONS: now using markdown
+
+- RELEASE-PROCEDURE: remove ascii logo at the top of file
+
+- INTERNALS: absorbed docs/LIBCURL-STRUCTS
+
+- INTERNALS: cat lib/README* >> INTERNALS
+
+ and a conversion to markdown. Removed the lib/README.* files. The idea
+ being to move toward having INTERNALS as the one and only "book" of
+ internals documentation.
+
+ Added a TOC to top of the document.
+
+Jay Satiro (8 Jun 2015)
+- openssl: LibreSSL and BoringSSL do not use TLS_client_method
+
+ Although OpenSSL 1.1.0+ deprecated SSLv23_client_method in favor of
+ TLS_client_method LibreSSL and BoringSSL didn't and still use
+ SSLv23_client_method.
+
+ Bug: https://github.com/bagder/curl/commit/49a6642#commitcomment-11578009
+ Reported-by: asavah@users.noreply.github.com
+
+Daniel Stenberg (9 Jun 2015)
+- RELEASE-NOTES: synced with 20ac3458068
+
+- CURLOPT_OPENSOCKETFUNCTION: return error at once
+
+ When CURL_SOCKET_BAD is returned in the callback, it should be treated
+ as an error (CURLE_COULDNT_CONNECT) if no other socket is subsequently
+ created when trying to connect to a server.
+
+ Bug: http://curl.haxx.se/mail/lib-2015-06/0047.html
+
+- fopen.c: fix a few compiler warnings
+
+- [Ville Skyttä brought this change]
+
+ docs: Spelling fixes
+
+- [Ville Skyttä brought this change]
+
+ docs: man page indentation and syntax fixes
+
+Linus Nielsen (8 Jun 2015)
+- help: Add --proxy-service-name and --service-name to the --help output
+
+Jay Satiro (7 Jun 2015)
+- openssl: Fix verification of server-sent legacy intermediates
+
+ - Try building a chain using issuers in the trusted store first to avoid
+ problems with server-sent legacy intermediates.
+
+ Prior to this change server-sent legacy intermediates with missing
+ legacy issuers would cause verification to fail even if the client's CA
+ bundle contained a valid replacement for the intermediate and an
+ alternate chain could be constructed that would verify successfully.
+
+ https://rt.openssl.org/Ticket/Display.html?id=3621&user=guest&pass=guest
+
+Daniel Stenberg (5 Jun 2015)
+- BINDINGS: update several URLs
+
+ Stop linking to the curl.haxx.se anchor pages, they are usually only
+ themselves pointers to the real page so better point there directly
+ instead.
+
+- BINDINGS: the curl-rust binding
+
+- curl.h: add CURL_HTTP_VERSION_2
+
+ The protocol is named "HTTP/2" after all. It is an alias for the
+ existing CURL_HTTP_VERSION_2_0 enum.
+
+- openssl: removed error string #ifdef
+
+ ERR_error_string_n() was introduced in 0.9.6, no need to #ifdef anymore
+
+- openssl: removed USERDATA_IN_PWD_CALLBACK kludge
+
+ Code for OpenSSL 0.9.4 serves no purpose anymore!
+
+- openssl: remove SSL_get_session()-using code
+
+ It was present for OpenSSL 0.9.5 code but we only support 0.9.7 or
+ later.
+
+- openssl: remove dummy callback use from SSL_CTX_set_verify()
+
+ The existing callback served no purpose.
+
+- LIBCURL-STRUCTS: clarify for multiplexing
+
+Jay Satiro (3 Jun 2015)
+- cookie: Stop exporting any-domain cookies
+
+ Prior to this change any-domain cookies (cookies without a domain that
+ are sent to any domain) were exported with domain name "unknown".
+
+ Bug: https://github.com/bagder/curl/issues/292
+
+Daniel Stenberg (3 Jun 2015)
+- RELEASE-PROCEDURE: refreshed 'coming dates'
+
+Jay Satiro (2 Jun 2015)
+- curl_setup: Change fopen text macros to use 't' for MSDOS
+
+ Bug: https://github.com/bagder/curl/pull/258#issuecomment-107915198
+ Reported-by: Gisle Vanem
+
+Daniel Stenberg (2 Jun 2015)
+- curl_multi_timeout.3: added example
+
+- curl_multi_perform.3: added example
+
+- curl_multi_info_read.3: added example
+
+- checksrc: detect fopen() for text without the FOPEN_* macros
+
+ Follow-up to e8423f9ce150 with discussionis in
+ https://github.com/bagder/curl/pull/258
+
+ This check scans for fopen() with a mode string without 'b' present, as
+ it may indicate that an FOPEN_* define should rather be used.
+
+- curl_getdate.3: update RFC reference
+
+Jay Satiro (1 Jun 2015)
+- curl_setup: Add macros for FOPEN_READTEXT, FOPEN_WRITETEXT
+
+ - Change fopen calls to use FOPEN_READTEXT instead of "r" or "rt"
+ - Change fopen calls to use FOPEN_WRITETEXT instead of "w" or "wt"
+
+ This change is to explicitly specify when we need to read/write text.
+ Unfortunately 't' is not part of POSIX fopen so we can't specify it
+ directly. Instead we now have FOPEN_READTEXT, FOPEN_WRITETEXT.
+
+ Prior to this change we had an issue on Windows if an application that
+ uses libcurl overrides the default file mode to binary. The default file
+ mode in Windows is normally text mode (translation mode) and that's what
+ libcurl expects.
+
+ Bug: https://github.com/bagder/curl/pull/258#issuecomment-107093055
+ Reported-by: Orgad Shaneh
+
+Daniel Stenberg (1 Jun 2015)
+- http2-upload.c: use PIPEWAIT for playing HTTP/2 better
+
+- http2-download: check for CURLPIPE_MULTIPLEX properly
+
+ Bug: http://curl.haxx.se/mail/lib-2015-06/0001.html
+ Reported-by: Rafayel Mkrtchyan
+
+- [Isaac Boukris brought this change]
+
+ HTTP-NTLM: fail auth on connection close instead of looping
+
+ Bug: https://github.com/bagder/curl/issues/256
+
+- 5.6 Refuse "downgrade" redirects
+
+- README.pingpong: removed
+
+- ROADMAP: remove HTTP/2 multiplexing - its here now
+
+- HTTP2.md: formatted properly
+
+- HTTP2: moved docs into docs/ and make it markdown
+
+- README.http2: refreshed and added multiplexing info
+
+- dist: add the http2 examples
+
+- http2 examples: clean up some comments
+
+- examples: added two programs doing multiplexed HTTP/2
+
+- scripts: moved contributors.sh and contrithanks.sh into subdir
+
+- RELEASE-NOTES: synced with c005790ff1c0a
+
+- [Daniel Melani brought this change]
+
+ openssl: typo in comment
+
+Jay Satiro (27 May 2015)
+- openssl: Use TLS_client_method for OpenSSL 1.1.0+
+
+ SSLv23_client_method is deprecated starting in OpenSSL 1.1.0. The
+ equivalent is TLS_client_method.
+
+ https://github.com/openssl/openssl/commit/13c9bb3#diff-708d3ae0f2c2973b272b811315381557
+
+Daniel Stenberg (26 May 2015)
+- FAQ: How do I port libcurl to my OS?
+
+Jay Satiro (25 May 2015)
+- CURLOPT_COOKIELIST.3: Explain Set-Cookie without a domain
+
+ Document that if Set-Cookie is used without a domain then the cookie is
+ sent for any domain and will not be modified.
+
+ Bug: http://curl.haxx.se/mail/lib-2015-05/0137.html
+ Reported-by: Alexander Dyagilev
+
+Daniel Stenberg (25 May 2015)
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Copy data passed in Curl_http2_switched into HTTP/2 connection buffer
+
+ Previously, after seeing upgrade to HTTP/2, we feed data followed by
+ upgrade response headers directly to nghttp2_session_mem_recv() in
+ Curl_http2_switched(). But it turns out that passed buffer, mem, is
+ part of stream->mem, and callbacks called by
+ nghttp2_session_mem_recv() will write stream specific data into
+ stream->mem, overwriting input data. This will corrupt input, and
+ most likely frame length error is detected by nghttp2 library. The
+ fix is first copy the passed data to HTTP/2 connection buffer,
+ httpc->inbuf, and call nghttp2_session_mem_recv().
+
+Jay Satiro (24 May 2015)
+- CURLOPT_COOKIE.3: Explain that the cookies won't be modified
+
+ The CURLOPT_COOKIE doc says it "sets the cookie header explicitly in the
+ outgoing request(s)." However there seems to be some user confusion
+ about cookie modification. Document that the cookies set by this option
+ are not modified by the cookie engine.
+
+ Bug: http://curl.haxx.se/mail/lib-2015-05/0115.html
+ Reported-by: Alexander Dyagilev
+
+- CURLOPT_COOKIELIST.3: Add example
+
+Dan Fandrich (24 May 2015)
+- testcurl.pl: use rel2abs to make the source directory absolute
+
+ This function makes a platform-specific absolute path which uses
+ backslashes on Windows. This form works when passing it on the
+ command-line, as well as if the source is on another drive.
+
+- conncache: fixed memory leak on OOM (torture tests)
+
+Daniel Stenberg (24 May 2015)
+- perl: remove subdir, not touched in 9 years
+
+- log2changes.pl: moved to scripts/
+
+- [Alessandro Ghedini brought this change]
+
+ scripts: add zsh.pl for generating zsh completion
+
+Dan Fandrich (23 May 2015)
+- test1510: another flaky test
+
+Daniel Stenberg (22 May 2015)
+- security: fix "Unchecked return value" from sscanf()
+
+ By (void) prefixing it and adding a comment. Did some minor related
+ cleanups.
+
+ Coverity CID 1299423.
+
+- security: simplify choose_mech
+
+ Coverity CID 1299424 identified dead code because of checks that could
+ never equal true (if the mechanism's name was NULL).
+
+ Simplified the function by removing a level of pointers and removing the
+ loop and array that weren't used.
+
+- RTSP: catch attempted unsupported requests better
+
+ Replace use of assert with code that properly catches bad input at
+ run-time even in non-debug builds.
+
+ This flaw was sort of detected by Coverity CID 1299425 which claimed the
+ "case RTSPREQ_NONE" was dead code.
+
+- share_init: fix OOM crash
+
+ A failed calloc() would lead to NULL pointer use.
+
+ Coverity CID 1299427.
+
+- parse_proxy: switch off tunneling if non-HTTP proxy
+
+ non-HTTP proxy implies not using CURLOPT_HTTPPROXYTUNNEL
+
+ Bug: http://curl.haxx.se/mail/lib-2015-05/0056.html
+ Reported-by: Sean Boudreau
+
+- curl: fix potential NULL dereference
+
+ Coverity CID 1299428: Dereference after null check (FORWARD_NULL)
+
+- http2: on_frame_recv: return early on stream 0
+
+ Coverity CID 1299426 warned about possible NULL dereference otherwise,
+ but that would only ever happen if we get invalid HTTP/2 data with
+ frames for stream 0. Avoid this risk by returning early when stream 0 is
+ used.
+
+- http: removed self assignment
+
+ Follow-up fix from b0143a2a33f0
+
+ Detected by coverity. CID 1299429
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Make HTTP Upgrade work
+
+ This commit just add implicitly opened stream 1 to streams hash.
+
+Jay Satiro (22 May 2015)
+- strerror: Change SEC_E_ILLEGAL_MESSAGE description
+
+ Prior to this change the description for SEC_E_ILLEGAL_MESSAGE was OS
+ and language specific, and invariably translated to something not very
+ helpful like: "The message received was unexpected or badly formatted."
+
+ Bug: https://github.com/bagder/curl/issues/267
+ Reported-by: Michael Osipov
+
+- telnet: Fix read-callback change for Windows builds
+
+ Refer to b0143a2 for more information on the read-callback change.
+
+Daniel Stenberg (21 May 2015)
+- CURLOPT_HTTPPROXYTUNNEL.3: only works with a HTTP proxy!
+
+Dan Fandrich (21 May 2015)
+- testcurl.pl: allow source to be in an arbitrary directory
+
+ This way, the build directory can be located on an entirely different
+ filesystem from the source code (e.g. a tmpfs).
+
+Daniel Stenberg (20 May 2015)
+- read_callback: move to SessionHandle from connectdata
+
+ With many easy handles using the same connection for multiplexing, it is
+ important we store and keep the transfer-oriented stuff in the
+ SessionHandle so that callbacks and callback data work fine even when
+ many easy handles share the same physical connection.
+
+- http2: show stream IDs in decimal
+
+ It makes them easier to match output from the nghttpd test server.
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Faster http2 upload
+
+ Previously, when we send all given buffer in data_source_callback, we
+ return NGHTTP2_ERR_DEFERRED, and nghttp2 library removes this stream
+ temporarily for writing. This itself is good. If this is the sole
+ stream in the session, nghttp2_session_want_write() returns zero,
+ which means that libcurl does not check writeability of the underlying
+ socket. This leads to very slow upload, because it seems curl only
+ upload 16k something per 1 second. To fix this, if we still have data
+ to send, call nghttp2_session_resume_data after nghttp2_session_send.
+ This makes nghttp2_session_want_write() returns nonzero (if connection
+ window still opens), and as a result, socket writeability is checked,
+ and upload speed becomes normal.
+
+- [Dmitry Eremin-Solenikov brought this change]
+
+ gtls: don't fail on non-fatal alerts during handshake
+
+ Stop curl from failing when non-fatal alert is received during
+ handshake. This e.g. fixes lots of problems when working with https
+ sites through proxies.
+
+- curl_easy_unescape.3: update RFC reference
+
+ Reported-by: bsammon
+ Bug: https://github.com/bagder/curl/issues/282
+
+Jay Satiro (20 May 2015)
+- CURLOPT_POSTFIELDS.3: Mention curl_easy_escape
+
+ .. also correct some variable naming in curl_easy_escape.3
+
+ Bug: https://github.com/bagder/curl/issues/281
+ Reported-by: bsammon@users.noreply.github.com
+
+Daniel Stenberg (19 May 2015)
+- [Brian Prodoehl brought this change]
+
+ openssl: Use SSL_CTX_set_msg_callback and SSL_CTX_set_msg_callback_arg
+
+ BoringSSL removed support for direct callers of SSL_CTX_callback_ctrl
+ and SSL_CTX_ctrl, so move to a way that should work on BoringSSL and
+ OpenSSL.
+
+ re #275
+
+Jay Satiro (19 May 2015)
+- curl.1: fix missing space in section --data
+
+Daniel Stenberg (19 May 2015)
+- transfer: remove erroneous and misleading comment
+
+Kamil Dudka (19 May 2015)
+- http: silence compile-time warnings without USE_NGHTTP2
+
+ Error: CLANG_WARNING:
+ lib/http.c:173:16: warning: Value stored to 'http' during its initialization is never read
+
+ Error: COMPILER_WARNING:
+ lib/http.c: scope_hint: In function ‘http_disconnect’
+ lib/http.c:173:16: warning: unused variable ‘http’ [-Wunused-variable]
+
+Jay Satiro (19 May 2015)
+- transfer: Replace __func__ instances with function name
+
+ .. also make __func__ replacement in multi.
+
+ Prior to this change debug builds would fail to build if the compiler
+ was building pre-c99 and didn't support __func__.
+
+Daniel Stenberg (19 May 2015)
+- [Viktor Szakats brought this change]
+
+ build: bump version in default nghttp2 paths
+
+- INTERNALS: we require nghttp2 1.0.0+ now
+
+Jay Satiro (18 May 2015)
+- http: Add some include guards for the new HTTP/2 stuff
+
+Daniel Stenberg (18 May 2015)
+- http2: store upload state per stream
+
+ Use a curl_off_t for upload left
+
+- http2: fix build when NOT h2-enabled
+
+- http2: switch to use Curl_hash_destroy()
+
+ as after 4883f7019d3, the *_clean() function only flushes the hash.
+
+- curlver: restore LIBCURL_VERSION_NUM defined as a full number
+
+ As it breaks configure, curl-config and test 1023 if not.
+
+- [Anthony Avina brought this change]
+
+ hostip: fix unintended destruction of hash table
+
+ .. and added unit1602 for hash.c
+
+- curlver: introducing new version number (checking) macros
+
+- runtests.pl: use 'h2c' now, no -14 anymore
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Ignore if we have stream ID not in hash in on_stream_close
+
+ We could get stream ID not in the hash in on_stream_close. For
+ example, if we decided to reject stream (e.g., PUSH_PROMISE), then we
+ don't create stream and store it in hash with its stream ID.
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ Require nghttp2 v1.0.0
+
+ This commit requires nghttp2 v1.0.0 to compile, and migrate to v1.0.0,
+ and utilize recent version of nghttp2 to simplify the code,
+
+ First we use nghttp2_option_set_no_recv_client_magic function to
+ detect nghttp2 v1.0.0. That function only exists since v1.0.0.
+
+ Since nghttp2 v0.7.5, nghttp2 ensures header field ordering, and
+ validates received header field. If it found error, RST_STREAM with
+ PROTOCOL_ERROR is issued. Since we require v1.0.0, we can utilize
+ this feature to simplify libcurl code. This commit does this.
+
+ Migration from 0.7 series are done based on nghttp2 migration
+ document. For libcurl, we removed the code sending first 24 bytes
+ client magic. It is now done by nghttp2 library.
+ on_invalid_frame_recv callback signature changed, and is updated
+ accordingly.
+
+- http2: infof length in on_frame_send()
+
+- pipeline: switch some code over to functions
+
+ ... to "compartmentalize" a bit and make it easier to change behavior
+ when multiplexing is used instead of good old pipelining.
+
+- symbols-in-versions: add CURLOPT_PIPEWAIT
+
+- CURLOPT_PIPEWAIT: added
+
+ By setting this option to 1 libcurl will wait for a connection to reveal
+ if it is possible to pipeline/multiplex on before it continues.
+
+- Curl_http_readwrite_headers: minor code simplification
+
+- IsPipeliningPossible: fixed for http2
+
+- http2: bump the h2 buffer size to 32K for speed
+
+- http2: remove the stream from the hash in stream_close callback
+
+ ... and suddenly things work much better!
+
+- http2: if there is paused data, do not clear the drain field
+
+- http2: rename s/data/pausedata
+
+- http2: "stream %x" in all outputs to make it easier to search for
+
+- http2: Curl_expire() all handles with incoming traffic
+
+ ... so that they'll get handled next in the multi loop.
+
+- http2: don't signal settings change for same values
+
+- http2: set default concurrency, fix ConnectionExists for multiplex
+
+- bundles: store no/default/pipeline/multiplex
+
+ to allow code to act differently on the situation.
+
+ Also added some more info message for the connection re-use function to
+ make it clearer when connections are not re-used.
+
+- http2: lazy init header_recvbuf
+
+ It makes us use less memory when not doing HTTP/2 and subsequently also
+ makes us not have to cleanup HTTP/2 related data when not using HTTP/2!
+
+- http2: separate multiplex/pipelining + cleanup memory leaks
+
+- CURLMOPT_PIPELINE: bit 1 is for multiplexing
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Fix bug that data to be drained are overwritten by pending "paused" data
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Don't call nghttp2_session_mem_recv while it is paused by a stream
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Read data left in connection buffer after pause
+
+ Previously when we do pause because of out of buffer, we just throw
+ away unread data in connection buffer. This just broke protocol
+ framing, and I saw occasional FRAME_SIZE_ERROR. This commit fix this
+ issue by remembering how much data read, and in the next iteration, we
+ process remaining data.
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ http2: Fix streams get stuck
+
+ This commit fixes the bug that streams get stuck if stream gets some
+ DATA, and stream->closed becomes true at the same time. Previously,
+ in this condition, after we processed DATA, we are going to try to
+ read data from underlying transport, but there is no data, and gets
+ EAGAIN. There was no code path to evaludate stream->closed.
+
+- http2: store incoming h2 SETTINGS
+
+- pipeline: move function to pipeline.c and make static
+
+ ... as it was only used from there.
+
+- IsPipeliningPossible: http2 can always "pipeline" (multiplex)
+
+- http2: remove debug logging from on_frame_recv
+
+- http2: remove the closed check in http2_recv
+
+ With the "drained" functionality we can get here slightly asynchronously
+ so the stream have have been closed but there is pending data left to
+ read.
+
+- http2: bump the h2 buffer to 8K
+
+- http2: Curl_read should not use the single buffer
+
+ ... as it does for pipelining when we're multiplexing, as we need the
+ different buffers to store incoming data correctly for all streams.
+
+- http2: more debug outputs
+
+- http2: leave WAITPERFORM when conn is multiplexed
+
+ No need to wait for our "spot" like for pipelining
+
+- http2: force "drainage" of streams
+
+ ... which is necessary since the socket won't be readable but there is
+ data waiting in the buffer.
+
+- http2: move the mem+len pair to the stream struct
+
+- http2: more stream-oriented data, stream ID 0 is for connections
+
+- http2: move lots of state data to the 'stream' struct
+
+ ... from the connection struct. The stream one being the 'struct HTTP'
+ which is kept in the SessionHandle struct (easy handle).
+
+ lookup streams for incoming frames in the stream hash, hashing is based
+ on the stream id and we get the SessionHandle for the incoming stream
+ that way.
+
+- HTTP: partial start at fixing up hash-lookups on http2 frame receival
+
+- http: a stream hash for h2 multiplexing
+
+- http: a stream hash for h2 multiplexing
+
+- http2: debug log when receiving unexpected stream_id
+
+- http2: move stream_id to the HTTP struct (per-stream)
+
+- Curl_http2_setup: only do it once and enable multiplex on the server
+
+ Once we know we are HTTP/2 enabled we know the server can multiplex.
+
+- http: switch on "pipelining" (multiplexing) for HTTP/2 servers
+
+ ... and do not blacklist any.
+
+- README.pipelining: removed
+
+ All the details mentioned here are better documented in man pages
+
+Dan Fandrich (14 May 2015)
+- build: removed bundles.c from make files
+
+ This file was removed in commit fd137786
+
+Daniel Stenberg (14 May 2015)
+- Curl_conncache_add_conn: fix memory leak on OOM
+
+- CURLMOPT_MAX_HOST_CONNECTIONS: host = host name + port number
+
+- conncache: keep bundles on host+port bases, not only host names
+
+ Previously we counted all connections to a specific host name and that
+ would be used for the CURLMOPT_MAX_HOST_CONNECTIONS check for example,
+ while servers on different port numbers are normally considered
+ different "origins" on the web and should thus be considered different
+ hosts.
+
+- bundles: merged into conncache.c
+
+ All the existing Curl_bundle* functions were only ever used from within
+ the conncache.c file, so I moved them over and made them static (and
+ removed the Curl_ prefix).
+
+- hostcache: made all host caches use structs, not pointers
+
+ This avoids unnecessary dynamic allocs and as this also removed the last
+ users of *hash_alloc() and *hash_destroy(), those two functions are now
+ removed.
+
+- multi: converted socket hash into non-allocated struct
+
+ avoids extra dynamic allocation
+
+- connection cache: avoid Curl_hash_alloc()
+
+ ... by using plain structs instead of pointers for the connection cache,
+ we can avoid several dynamic allocations that weren't necessary.
+
+- proxy: add newline to info message
+
+Patrick Monnerat (8 May 2015)
+- FTP: fix dangling conn->ip_addr dereference on verbose EPSV.
+
+- FTP: Make EPSV use the control IP address rather than the original host.
+ This ensures an alternate address is not used.
+ Does not apply to proxy tunnel.
+
+Daniel Stenberg (8 May 2015)
+- [Alessandro Ghedini brought this change]
+
+ tool_help: fix formatting for --next option
+
+- [Egon Eckert brought this change]
+
+ opts: improved the TCP keepalive examples
+
+Jay Satiro (8 May 2015)
+- winbuild: Document the option used to statically link the CRT
+
+ - Document option RTLIBCFG (runtime library configuration).
+
+ Bug: https://github.com/bagder/curl/issues/254
+ Reported-by: Bert Huijben
+
+- [Orgad Shaneh brought this change]
+
+ netrc: Read in text mode when cygwin
+
+ Use text mode when cygwin to eliminate trailing carriage returns.
+
+ Bug: https://github.com/bagder/curl/pull/258
+
+Patrick Monnerat (5 May 2015)
+- OS400: Add SPNEGO service name options to ILE/RPG binding.
+
+Daniel Stenberg (4 May 2015)
+- curl_multi_info_read.3: fix typo
+
+ Reported-by: Liviu Chircu
+
+- MANUAL: language fix
+
+ Reported-by: Fred Stluka
+ Bug: https://github.com/bagder/curl/issues/255
+
+- [Alessandro Ghedini brought this change]
+
+ gtls: properly retrieve certificate status
+
+ Also print the revocation reason if appropriate.
+
+- OpenSSL: conditional check for SSL3_RT_HEADER
+
+ The symbol is fairly new.
+
+ Reported-by: Kamil Dudka
+
+- openssl: skip trace outputs for ssl_ver == 0
+
+ The OpenSSL trace callback is wonderfully undocumented but given a
+ journey in the source code, it seems the cases were ssl_ver is zero
+ doesn't follow the same pattern and thus turned out confusing and
+ misleading. For now, we skip doing any CURLINFO_TEXT logging on those
+ but keep sending them as CURLINFO_SSL_DATA_OUT/IN.
+
+ Also, I added direction to the text info and I edited some functions
+ slightly.
+
+ Bug: https://github.com/bagder/curl/issues/219
+ Reported-by: Jay Satiro, Ashish Shukla
+
+Marc Hoersken (2 May 2015)
+- schannel.c: Small changes
+
+- schannel.c: Improve code path and readability
+
+- schannel.c: Improve error and return code handling upon aa99a63f03
+
+- [Chris Araman brought this change]
+
+ schannel: fix regression in schannel_recv
+
+ https://github.com/bagder/curl/issues/244
+
+ Commit 145c263 changed the behavior when Curl_read_plain returns
+ CURLE_AGAIN. We now handle CURLE_AGAIN and SEC_I_CONTEXT_EXPIRED
+ correctly.
+
+- Bug born in changes made several days ago 9a91e80.
+
+ Commit: https://github.com/bagder/curl/commit/926cb9f
+ Reported-by: Ray Satiro
+
+Daniel Stenberg (30 Apr 2015)
+- [Michael Osipov brought this change]
+
+ configure: remove missing and make it autogenerate
+
+ The missing file has not been autogenerated because a temporary fix was
+ employed in acinclude.m4 which blocked update. Removed that fix and a recent
+ version of missing is copied to build root.
+
+- [Michael Osipov brought this change]
+
+ acinclude.m4: fix test for default CA cert bundle/path
+
+ test(1) on HP-UX requires a single equals sign and fails with two.
+ Let's use one and make every OS happy.
+
+- CONTRIBUTING.md: remove the sourceforge mention
+
+ Reported-By: Michael Osipov
+
+Dan Fandrich (30 Apr 2015)
+- http_negotiate_sspi: added missing data variable
+
+Daniel Stenberg (30 Apr 2015)
+- [Michael Osipov brought this change]
+
+ configure: remove --automake from libtoolize call
+
+ That option is not mentioned in the man page of libtoolize 2.4.4.19-fda4.
+ Moveover, a comment in line 2623 says "--automake is for 1.5 compatibility".
+
+ This option is redundant now.
+
+- [Viktor Szakats brought this change]
+
+ build: update depedency versions, urls, example makefiles
+
+ - update default versions of dependencies (except for rare/old platforms)
+ - update urls
+ - sync examples makefiles with main ones
+ - remove line ending space
+
+- [Michael Osipov brought this change]
+
+ configure: remove autogenerated files by autoconf
+
+ * install-sh is always regenerated
+ * mkinstalldirs was already redudant years ago. Automake uses install for
+ that. See: http://lists.gnu.org/archive/html/automake/2007-03/msg00015.html
+
+- [Anders Bakken brought this change]
+
+ curl_multi_add_handle: next is already NULL
+
+Jay Satiro (30 Apr 2015)
+- schannel: Fix out of bounds array
+
+ Bug born in changes made several days ago 9a91e80.
+
+ Bug: http://curl.haxx.se/mail/lib-2015-04/0199.html
+ Reported-by: Brian Chrisman
+
+- docs/libcurl: gitignore libcurl-symbols.3
+
+ Bug: http://curl.haxx.se/mail/lib-2015-04/0191.html
+ Reported-by: Michael Osipov
+
+- [Viktor Szakats brought this change]
+
+ lib/makefile.m32: add arch -m32/-m64 to LDFLAGS
+
+ This fixes using a multi-target mingw distro to build curl .dll for the
+ non-default target.
+ (mirroring the same patch present in src/makefile.m32)
+
+Daniel Stenberg (29 Apr 2015)
+- RELEASE-NOTES: synced with cd39b944afc
+
+ I've not mentioned the bug fixes that were shipped in 7.42.1 from the
+ 7_42 branch.
+
+- THANKS: merged from the 7.42.1 release
- CURLOPT_HEADEROPT: default to separate
@@ -19,8 +1086,35 @@ Daniel Stenberg (28 Apr 2015)
Bug: http://curl.haxx.se/docs/adv_20150429.html
Reported-by: Yehezkel Horowitz, Oren Souroujon
-- RELEASE-NOTES: synced with a6e0270e
+Linus Nielsen (28 Apr 2015)
+- docs/libcurl: Corrected a typo in the CURLOPT_PROXY_SERVICE_NAME documentation
+
+Daniel Stenberg (28 Apr 2015)
+- hash: simplify Curl_str_key_compare()
+
+- dist: ship CURLOPT_PROXY_SERVICE_NAME and CURLOPT_SERVICE_NAME
+
+- [Linus Nielsen brought this change]
+ Negotiate: custom service names for SPNEGO.
+
+ * Add new options, CURLOPT_PROXY_SERVICE_NAME and CURLOPT_SERVICE_NAME.
+ * Add new curl options, --proxy-service-name and --service-name.
+
+- http2: unify http_conn variable names to 'c'
+
+- ConnectionExists: call it multi-use instead of pipelining
+
+ So that it fits HTTP/2 as well
+
+Kamil Dudka (27 Apr 2015)
+- [Paul Howarth brought this change]
+
+ nss: fix compilation failure with old versions of NSS
+
+ Bug: http://curl.haxx.se/mail/lib-2015-04/0095.html
+
+Daniel Stenberg (27 Apr 2015)
- sws: init http2 state properly
It would otherwise cause problems when running tests after 1801 etc.
@@ -29,6 +1123,37 @@ Daniel Stenberg (28 Apr 2015)
... as it was previouly undocumented what the pointer was.
+- runtests: use a DISABLED.local file too
+
+ ... and have git ignore that. Allows for a dev to add tests to ignore in
+ local tests and yet don't obstruct a normal git work flow.
+
+Marc Hoersken (26 Apr 2015)
+- schannel.c: Fix typo introduced with 3447c973d0
+
+- schannel.c: Fix possible SEC_E_BUFFER_TOO_SMALL error
+
+ Reported-by: Brian Chrisman
+
+Daniel Stenberg (26 Apr 2015)
+- schannel: re-indented file to follow curl style better
+
+ white space changes only
+
+- Curl_ossl_init: load builtin modules
+
+ To have engine modules work, we must tell openssl to load builtin
+ modules first.
+
+ Bug: https://github.com/bagder/curl/pull/206
+
+- configure: follow-up fix for krb5-config
+
+ commit 5b66860652 was incomplete so here's a follow-up fix
+
+ Reported-by: Dagobert Michelsen
+ Bug: https://github.com/bagder/curl/commit/5b668606527613179d0349f21b4ab0df2971e3d2#commitcomment-10473445
+
- openssl: fix serial number output
The code extracting the cert serial number was broken and didn't display
@@ -37,15 +1162,55 @@ Daniel Stenberg (28 Apr 2015)
Bug: https://github.com/bagder/curl/issues/235
Reported-by: dkjjr89
-- [Alessandro Ghedini brought this change]
+- [Grant Pannell brought this change]
- curl.1: fix typo
+ sasl_sspi: Populate domain from the realm in the challenge
+
+ Without this, SSPI based digest auth was broken.
+
+ Bug: https://github.com/bagder/curl/pull/141.patch
-- RELEASE-NOTES: toward 7.42.1, synced with 097460a
+Jay Satiro (25 Apr 2015)
+- [Anthony Avina brought this change]
-- [Kamil Dudka brought this change]
+ tool: New option --data-raw to HTTP POST data, '@' allowed.
+
+ Add new option --data-raw which is almost the same as --data but does
+ not have a special interpretation of the @ character.
+
+ Prior to this change there was no (easy) way to pass the @ character as
+ the first character in POST data without it being interpreted as a
+ special character.
+
+ Bug: https://github.com/bagder/curl/issues/198
+ Reported-by: Jens Rantil
+
+Dan Fandrich (25 Apr 2015)
+- test2039: fixed line endings that caused a test failure
+
+Daniel Stenberg (24 Apr 2015)
+- [Viktor Szakats brought this change]
+
+ netrc: add unit tests for 'default' support
+
+- [Viktor Szakats brought this change]
+
+ netrc: support 'default' token
+
+ The 'default' token has no argument and means to match _any_ domain.
+ It must be placed last if there are 'machine <name>' tokens in the same file.
+
+ See full description here:
+ https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-File.html
+
+- ROADMAP.md: extended the HTTP/2 section, reformatted
+
+ Elaborated on several of the remaining HTTP/2 parts and made document
+ use a format that ends up nicer on the web page:
+ http://curl.haxx.se/dev/roadmap.html
- curl -z: do not write empty file on unmet condition
+Kamil Dudka (23 Apr 2015)
+- curl -z: do not write empty file on unmet condition
This commit fixes a regression introduced in curl-7_41_0-186-g261a0fe.
It also introduces a regression test 1424 based on tests 78 and 1423.
@@ -53,10 +1218,27 @@ Daniel Stenberg (28 Apr 2015)
Reported-by: Viktor Szakats
Bug: https://github.com/bagder/curl/issues/237
-- [Kamil Dudka brought this change]
+Dan Fandrich (23 Apr 2015)
+- tool: fixed a comment typo
- docs: distribute the CURLOPT_PINNEDPUBLICKEY(3) man page, too
+- README: convert to UTF-8
+
+Jay Satiro (22 Apr 2015)
+- cyassl: Implement public key pinning
+
+ Also add public key extraction example to CURLOPT_PINNEDPUBLICKEY doc.
+
+Dan Fandrich (22 Apr 2015)
+- [Alessandro Ghedini brought this change]
+ curl.1: fix typo
+
+Kamil Dudka (22 Apr 2015)
+- docs: distribute the CURLOPT_PINNEDPUBLICKEY(3) man page, too
+
+- tests/unit/.gitignore: hide unit1601 and above, too
+
+Daniel Stenberg (22 Apr 2015)
- connectionexists: follow-up to fd9d3a1ef1f
PROTOPT_CREDSPERREQUEST still needs to be checked even when NTLM is not
@@ -72,6 +1254,14 @@ Daniel Stenberg (28 Apr 2015)
bug: http://curl.haxx.se/?i=231
Reported-by: Patrick Rapin
+- bump: start working toward 7.43.0
+
+Kamil Dudka (22 Apr 2015)
+- nss: implement public key pinning for NSS backend
+
+ Bug: https://bugzilla.redhat.com/1195771
+
+Daniel Stenberg (22 Apr 2015)
- dist: include {src,lib}/checksrc.whitelist
Version 7.42.0 (22 Apr 2015)
@@ -4025,1179 +5215,3 @@ Steve Holme (15 Nov 2014)
- sasl_sspi: Added missing RFC reference for HTTP Digest authentication
- ntlm: Clean-up and standardisation of base64 decoding
-
-- ntlm: We prefer 'CURLcode result'
-
-Daniel Stenberg (13 Nov 2014)
-- [Brad King brought this change]
-
- CMake: Restore order-dependent library checks
-
- Revert commit 2257deb502 (Cmake: Avoid cycle directory dependencies,
- 2014-08-22) and add a comment explaining the purpose of the original
- code.
-
- The check_library_exists_concat macro is intended to be called multiple
- times on a sequence of possibly dependent libraries. Later libraries
- may depend on earlier libraries when they are static. They cannot be
- safely linked in reverse order on some platforms.
-
- Signed-off-by: Brad King <brad.king@kitware.com>
-
-- [Brad King brought this change]
-
- CMake: Restore order-dependent header checks
-
- Revert commit 1269df2e3b (Cmake: Don't check for all headers each
- time, 2014-08-15) and add a comment explaining the purpose of the
- original code.
-
- The check_include_file_concat macro is intended to be called multiple
- times on a sequence of possibly dependent headers. Later headers
- may depend on earlier headers to provide declarations. They cannot
- be safely included independently on some platforms.
-
- For example, many POSIX APIs document including sys/types.h before some
- other headers. Also on some OS X versions sys/socket.h must be included
- before net/if.h or the check for the latter will fail.
-
- Signed-off-by: Brad King <brad.king@kitware.com>
-
-- [Peter Wu brought this change]
-
- test22: expand a backtick command
-
- This is the only user of the backtick operator in the command. As the
- commands will soon not be executed by a shell anymore (but by perl),
- replace the command with its output.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- RELEASE-NOTES: synced with 2ee3c63b13
-
-- http2: fix switched macro when http2 is not enabled
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- http2: Deal with HTTP/2 data inside response header buffer
-
- Previously if HTTP/2 traffic is appended to HTTP Upgrade response header
- (thus they are in the same buffer), the trailing HTTP/2 traffic is not
- processed and lost. The appended data is most likely SETTINGS frame.
- If it is lost, nghttp2 library complains server does not obey the HTTP/2
- protocol and issues GOAWAY frame and curl eventually drops connection.
- This commit fixes this problem and now trailing data is processed.
-
-Steve Holme (11 Nov 2014)
-- configure: Fixed inclusion of krb5 when CURL_DISABLE_CRYPTO_AUTH is defined
-
- Commit fe0f8967bf fixed a problem with krb5 not being defined as a
- supported feature when HAVE_GSSAPI is defined, however, it should
- only be included if CURL_DISABLE_CRYPTO_AUTH is not set, like when
- SPNEGO is listed as a feature.
-
-Daniel Stenberg (10 Nov 2014)
-- multi: removed Curl_multi_set_easy_connection
-
- It isn't used anywhere!
-
- Reported-by: Carlo Wood
-
-- [Peter Wu brought this change]
-
- symbol-scan.pl: do not require autotools
-
- Makes test1119 pass when building with cmake.
-
- configurehelp.pm is generated by configure (autotools). As cmake does
- not provide a separate variable for the C preprocessor, default to cpp.
- Before commit ef24ecde68a5f577a7f0f423a767620f09a0ab16 ("symbol-scan:
- use configure script knowledge about how to run the C preprocessor"),
- this tool would also use 'cpp'.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: add ENABLE_THREADED_RESOLVER, rename ARES
-
- Fix detection of the AsynchDNS feature which not just depends on
- pthreads support, but also on whether USE_POSIX_THREADS is set or not.
- Caught by test 1014.
-
- This patch adds a new ENABLE_THREADED_RESOLVER option (corresponding to
- --enable-threaded-resolver of autotools) which also needs a check for
- HAVE_PTHREAD_H.
-
- For symmetry with autotools, CURL_USE_ARES is renamed to ENABLE_ARES
- (--enable-ares). Checks that test for the availability actually use
- USE_ARES instead as that is the result of whether a-res is available or
- not (in practice this does not matter as CARES is marked as required
- package, but nevertheless it is better to write the intent).
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: build libhostname for test suite
-
- Used by some test cases via LD_PRELOAD in order to fake the host name.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: fix HAVE_GETHOSTNAME definition
-
- Otherwise Curl_gethostname always fails. Windows has gethostname
- since Vista according to
- http://msdn.microsoft.com/en-us/library/ms738527%28VS.85%29.aspx, but
- accordings to byte_bucket's VC 2005 documentation, it is available even
- in Windows 95. (possibly after installing a Platform SDK, the
- Windows Server 2003 SP1 Platform SDK should be sufficient).
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- tests: fix libhostname visibility
-
- I noticed that a patched cmake build would pass tests with a fake local
- hostname, but the autotools build skips them:
-
- got unexpected host name back, LD_PRELOAD failed
-
- It turns out that -fvisibility=hidden hides the symbol, and since the
- tests are not part of libcurl, it fails too. Just remove the LIBCURL
- guard.
-
- Broken since cURL 7.30 (commit 83a42ee20ea7fc25abb61c0b7ef56ebe712d7093,
- "curl.h: stricter CURL_EXTERN linkage decorations logic").
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- tests: fix memleak in server/resolve.c
-
- This makes LeakSanitizer happy.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- configure: assume krb5 when gss-api works
-
- To please test 1014 while we work out if this is truly the a correct
- assumption.
-
-Steve Holme (9 Nov 2014)
-- vtls.h: Fixed compiler warning when compiled without SSL
-
- vtls.c:185:46: warning: unused parameter 'data'
-
-- RELEASE-NOTES: Synced with 2fbf23875f
-
-- ntlm: Added separate SSPI based functions
-
- In preparation for moving the NTLM message code into the SASL module,
- and separating the native code from the SSPI code, added functions that
- simply call the functions in curl_ntlm_msg.c.
-
-- http_ntlm: Use the SASL functions instead
-
- In preparation for moving the NTLM message code into the SASL module
- use the SASL functions in the HTTP code instead.
-
-Daniel Stenberg (9 Nov 2014)
-- libssh2: detect features based on version, not configure checks
-
- ... so that non-configure builds get the correct functions too based on
- the libssh2 version used.
-
-- [Nobuhiro Ban brought this change]
-
- SSH: use the port number as well for known_known checks
-
- ... if the libssh2 version is new enough.
-
- Bug: http://curl.haxx.se/bug/view.cgi?id=1448
-
-Steve Holme (9 Nov 2014)
-- INSTALL: Updated pre-processor references to the old VC6 project files
-
- Reworked the two sections that discuss modifying the Visual Studio pre-
- processor settings, and vc6libcurl.dsw/vc6libcurl.dsp, to remove the
- project files references as they have been superseded by a more thorough
- set of project files for VC6 through VC12, but to also give the correct
- reference to this setting in later versions of Visual Studio.
-
-- INSTALL: Added email protocols to the "Disabling in Win32 builds" section
-
-- configure: Fixed NTLM missing from features when CURL_DISABLE_HTTP defined
-
-- build: Fixed no NTLM support for email when CURL_DISABLE_HTTP is defined
-
- USE_NTLM would only be defined if: HTTP support was enabled, NTLM and
- cryptography weren't disabled, and either a supporting cryptography
- library or Windows SSPI was being compiled against.
-
- This means it was not possible to build libcurl without HTTP support
- and use NTLM for other protocols such as IMAP, POP3 and SMTP. Rather
- than introduce a new SASL pre-processor definition, removed the HTTP
- prerequisite just like USE_SPNEGO and USE_KRB5.
-
- Note: Winbind support still needs to be dependent on CURL_DISABLE_HTTP
- as it is only available to HTTP at present.
-
- This bug dates back to August 2011 when I started to add support for
- NTLM to SMTP.
-
-- ntlm: Removed an unnecessary free of native Target Info
-
- Due to commit 40ee1ba0dc the free in Curl_ntlm_decode_type2_target() is
- longer required.
-
-- ntlm: Moved the native Target Info clean-up from HTTP specific function
-
-- ntlm: Moved SSPI clean-up code into SASL module
-
-- Makefile.dist: Added support for WinIDN
-
-- Makefile.vc6: Added support for WinIDN
-
-- Makefile.dist: Added some missing SSPI configurations
-
-- Makefile.dist: Separated the groups of SSL configurations from each other
-
-- Makefile.dist: Grouped the x64 configurations next to their x86 counterparts
-
-- curl.h: Tidy up of CURL_VERSION_* flags
-
- As the list has gotten a little messy and hard to read, especially with
- the introduction of deprecated items, aligned the values and comments
- into clean columns and reworked some of the comments in the process.
-
-- curl_tool: Added krb5 to the supported features
-
-- configure: Added krb5 to the supported features
-
-- version info: Added Kerberos V5 to the supported features
-
-Guenter Knauf (7 Nov 2014)
-- mk-ca-bundle.vbs: switch to new certdata.txt url.
-
-Steve Holme (7 Nov 2014)
-- RELEASE-NOTES: Synced with dcad09e125
-
-- http_digest: Fixed some memory leaks introduced in commit 6f8d8131b1
-
- Fixed a couple of memory leaks as a result of moving code that used to
- populate allocuserpwd and relied on it's clean up.
-
-- docs: Updated following the addition of SSPI based HTTP digest auth
-
-- sasl_sspi: Tidy up of the existing digest code
-
- Following the addition of SSPI support for HTTP digest, synchronised
- elements of the email digest code with that of the new HTTP code.
-
-- http_digest: Post SSPI support tidy up
-
- Post tidy up to ensure commonality of code style and variable names.
-
-Dan Fandrich (6 Nov 2014)
-- test552: Don't run HTTP digest tests for SSPI based builds
-
- Technical difficulties prevented this from going into the
- previous commit.
-
-Steve Holme (6 Nov 2014)
-- tests: Don't run HTTP digest tests for SSPI based builds
-
- Added !SSPI to the features list of the HTTP digest tests, as SSPI
- based builds now use the Windows SSPI messaging API rather than the
- internal functions, and we can't control the random numbers that get
- used as part of the digest.
-
-Daniel Stenberg (6 Nov 2014)
-- curl.1: show zone index use in a URL
-
-Steve Holme (6 Nov 2014)
-- http_digest: Fixed auth retry loop when SSPI based authentication fails
-
-- http_digest: Reworked the SSPI based input token storage
-
- Reworked the input token (challenge message) storage as what is passed
- to the buf and desc in the response generation are typically blobs of
- data rather than strings, so this is more in keeping with other areas
- of the SSPI code, such as the NTLM message functions.
-
-- sasl_sspi: Fixed compilation warning from commit 2d2a62e3d9
-
- Added void reference to unused 'data' parameter back to fix compilation
- warning.
-
-- sspi: Align definition values to even columns as we use 2 char spacing
-
-- sspi: Fixed missing definition of ISC_REQ_USE_HTTP_STYLE
-
- Some versions of Microsoft's sspi.h don't define this.
-
-- sasl: Removed non-SSPI Digest functions and defines from SSPI based builds
-
- Introduced in commit 7e6d51a73c these functions and definitions are only
- required by the internal challenge-response functions now.
-
-- sasl_sspi: Added HTTP digest response generation code
-
-- http_digest: Added SSPI based challenge decoding code
-
-- http_digest: Added SSPI based clean-up code
-
-- http_digest: Added SSPI based authentication functions
-
- This temporarily breaks HTTP digest authentication in SSPI based builds,
- causing CURLE_NOT_BUILT_IN to be returned. A follow up commit will
- resume normal operation.
-
-- http_digest: Added required SSPI based variables to digest structure
-
-Daniel Stenberg (6 Nov 2014)
-- [Frank Gevaerts brought this change]
-
- contributors.sh: --releasenotes reads in names from RELEASE-NOTES
-
- This is very handy when updating the RELEASE-NOTES as then we sometimes
- have names added manually in the existing list and we use this script to
- update the set.
-
-- RELEASE-NOTES: synced with 68542e72a9
-
-- curl_easy_setopt.3: add CURLOPT_PINNEDPUBLICKEY
-
- Reported-by: Christian Hägele
- Bug: http://curl.haxx.se/mail/lib-2014-11/0078.html
-
-Steve Holme (5 Nov 2014)
-- build: Fixed Visual Studio project file generation of strdup.[c|h]
-
- As the curl command-line tool now includes it's own version of strdup(),
- for platforms that don't have it, fixed up the git respository Visual
- Studio project file generator to not include the version from lib in the
- tool project files, rather than having both lib\strdup.[c|h] and
- src\tool_strdup.[c|h] present.
-
-Daniel Stenberg (5 Nov 2014)
-- tool_strdup.c: include the tool strdup.h
-
- ... not the lib/ one that the tool no longer uses!
-
-- THANKS-filter: added another Michał Górny version we've used
-
-- contributors.sh: split lists using " and "
-
- ... and require the space after the filtering to make the filter able to
- remove names.
-
-Steve Holme (5 Nov 2014)
-- http_digest: Fixed memory leaks from commit 6f8d8131b1
-
-- sasl: Fixed compilation warning from commit 25264131e2
-
- Added forward declaration of digestdata to overcome the following
- compilation warning:
-
- warning: 'struct digestdata' declared inside parameter list
-
- Additionally made the ntlmdata forward declaration dependent on
- USE_NTLM similar to how digestdata and kerberosdata are.
-
-- sasl: Fixed HTTP digest challenges with spaces between auth parameters
-
- Broken as part of the rework, in commit 7e6d51a73c, to assist with the
- addition of HTTP digest via Windows SSPI.
-
-- http_digest: Fixed compilation errors from commit 6f8d8131b1
-
- error: invalid operands to binary
- warning: pointer targets in assignment differ in signedness
-
-- http_digest: Moved response generation into SASL module
-
-- http_digest: Moved challenge decoding into SASL module
-
-- http_digest: Moved clean-up function into SASL module
-
-- http_digest: Moved algorithm definitions to SASL module
-
-- [Gisle Vanem brought this change]
-
- ssh: Fixed build on platforms where R_OK is not defined
-
- Bug: http://curl.haxx.se/mail/lib-2014-11/0035.html
- Reported-by: Jan Ehrhardt
-
-- strdup: Removed irrelevant comment
-
- ...as Curl_memdup() duplicates an area of fix size memory, that may be
- binary, and not a null terminated string.
-
-- url.c: Fixed compilation warning
-
- conversion from 'curl_off_t' to 'size_t', possible loss of data
-
-- http_digest: Use CURLcode instead of CURLdigest
-
- To provide consistent behaviour between the various HTTP authentication
- functions use CURLcode based error codes for Curl_input_digest()
- especially as the calling code doesn't use the specific error code just
- that it failed.
-
-Daniel Stenberg (5 Nov 2014)
-- contributors.sh: filter common alternative name spellings
-
- docs/THANKS-filter is a new filter file for converting contributor names
- we get or have recorded in alternative formats to the one we already use
- in THANKS. To help us show individual contributors using a single
- presentation of their names.
-
-- THANKS: added missing contributor from 2012
-
-- [Frank Gevaerts brought this change]
-
- Remove duplicate names.
-
- The removed names also appear as:
- Andrés García, François Charlier, Gökhan Şengün, Michał Górny, Sébastien
- Willemijns, Christopher Conroy, John E. Malmberg, Luca Altea, Peter Su,
- S. Moonesamy, Samuel Listopad, Yasuharu Yamada, Karl Moerder
-
-Steve Holme (5 Nov 2014)
-- sspi: Define authentication package name constants
-
- These were previously hard coded, and whilst defined in security.h,
- they may or may not be present in old header files given that these
- defines were never used in the original code.
-
- Not only that, but there appears to be some ambiguity between the ANSI
- and UNICODE NTLM definition name in security.h.
-
-Patrick Monnerat (5 Nov 2014)
-- Adjust OS400-specific support to last release
-
-Daniel Stenberg (5 Nov 2014)
-- THANKS: added two missing names and removed a duplicate
-
- ./contributors.sh found these extra ones that somehow had fallen
- through the cracks and never gotten added here.
-
- Reported-by: Frank Gevaerts
-
-- bump: towards next release
-
-- THANKS: added names from 7.39.0 release notes
-
-Version 7.39.0 (5 Nov 2014)
-
-Daniel Stenberg (5 Nov 2014)
-- RELEASE-NOTES: 7.39.0 release (commit b3875606925)
-
-- curl_easy_duphandle: CURLOPT_COPYPOSTFIELDS read out of bounds
-
- When duplicating a handle, the data to post was duplicated using
- strdup() when it could be binary and contain zeroes and it was not even
- zero terminated! This caused read out of bounds crashes/segfaults.
-
- Since the lib/strdup.c file no longer is easily shared with the curl
- tool with this change, it now uses its own version instead.
-
- Bug: http://curl.haxx.se/docs/adv_20141105.html
- CVE: CVE-2014-3707
- Reported-By: Symeon Paraschoudis
-
-- lib544.c: use duphandle for test 545
-
- To verify that curl_easy_duphandle() works fine on a handle that has
- gotten data stored with *_COPYPOSTFIELDS.
-
-- tests: add new feature 'SSLpinning'
-
- ... and make test 2034 and 2035 require it, and have it set when built
- with OpenSSL or GnuTLS.
-
-- buildconf: update copyright year
-
-Steve Holme (4 Nov 2014)
-- INSTALL: Consistent spacing in section headings, paragraphs and examples
-
-Daniel Stenberg (4 Nov 2014)
-- buildconf: stop checking for libtool
-
- As we only use libtoolize, only check for that!
-
-Steve Holme (4 Nov 2014)
-- INSTALL: Corrected MIT Kerberos and Heimdal package names
-
-- README: Corrected inconsistent use of --help
-
-- INSTALL: Use GSS-API rather than GSSAPI
-
- As implementations are refereed to GSS-API libraries as per the RFC and
- GSSAPI typically refers to the SASL authentication mechanism.
-
- ...and minor rewording on the same paragraph.
-
-- README: Added note about using Visual Studio projects out of git repository
-
-Daniel Stenberg (4 Nov 2014)
-- [K. R. Walker brought this change]
-
- cmake: fix ZLIB_INCLUDE_DIRS use
-
- CMake 2.8's FindZLIB.cmake documents ZLIB_INCLUDE_DIRS, see
- http://www.cmake.org/cmake/help/v2.8.0/cmake.html#module:FindZLIB
-
- Bug: https://github.com/bagder/curl/pull/123
-
-- [Jay Satiro brought this change]
-
- SSL: PolarSSL default min SSL version TLS 1.0
-
- - Prior to this change no SSL minimum version was set by default at
- runtime for PolarSSL. Therefore in most cases PolarSSL would probably
- have defaulted to a minimum version of SSLv3 which is no longer secure.
-
-- opts-Makefile: put more man pages into dist and make hmtl+pdf
-
-- curl_multi_setopt.3: refer to stand-alone pages
-
- ... instead of duplicating info.
-
-- opts: more multi options as stand-alone man pages
-
-- Makefile.am: two cmake files are gone
-
- 8cb010144 removed the CurlCheckCSourceCompiles.cmake and
- CurlCheckCSourceRuns.cmake files
-
-- opts: made stand-alone man-pages for several multi options
-
-- [Carlo Wood brought this change]
-
- Curl_single_getsock: fix hold/pause sock handling
-
- The previous condition that checked if the socket was marked as readable
- when also adding a writable one, was incorrect and didn't take the pause
- bits properly into account.
-
-- [Peter Wu brought this change]
-
- cmake: fix struct sockaddr_storage check
-
- CHECK_TYPE_SIZE_PREINCLUDE is an internal, undocumented variable which
- was removed in cmake 2.8.1. According to the MSDN docs[1], inclusion
- of winsock2.h is sufficient. WIN32_LEAN_AND_MEAN does not really seem
- to affect the tests, so remove it too[2].
-
- For the non-windows case, remove inet headers as POSIX only requires
- sys/socket.h.
-
- [1]: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740504%28v=vs.85%29.aspx
- [2]: http://stackoverflow.com/questions/11040133/what-does-defining-win32-lean-and-mean-exclude-exactly
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: clean OtherTests, fixing -Werror
-
- There were several -Wunused warnings and one duplicate macro definition.
- The EXTRA_DEFINES variable of the CurlCheckCSources macro was being
- abused ("__unused1\n#undef inline\n#define __unused2", seriously?) to
- insert extra C code. Avoid this broken abstraction and use cmake's
- check_c_source_compiles directly (works fine with CMake 2.8, maybe
- even cmake 2.6).
-
- After cleaning up all related variables (EXTRA_DEFINES,
- HEADER_INCLUDES, auxiliary headers_hack), also remove a duplicate
- add_headers_include macro and remove duplicate header additions before
- the struct timeval check.
-
- Oh, and now the code is converted to use CheckCSourceRuns and
- CheckCSourceCompiles, the two curl-specific helpers can be removed.
- Unfortunately, the cmake output is now slightly more verbose. Before:
-
- Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test)
- Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test) - Failed
-
- Since check_c_source_compiles prints the varname, now you see:
-
- Performing Test curl_cv_func_send_test
- Performing Test curl_cv_func_send_test - Failed
- Tested: int send(int, const void *, size_t, int)
-
- Compared cmake output with each other using vimdiff, no functional
- differences were found. Tested with GCC 4.9.1 and Clang 3.5.0.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: fix gethostby{addr,name}_r in CurlTests
-
- This patch cleans up the automatically-generated (?) code and fixes one
- case that will always fail due to syntax error.
-
- HAVE_GETHOSTBYADDR_R_5_REENTRANT always failed because of a trailing
- character ("int length;q"). Several parameter type and unused variable
- warnings popped up. This causes a detection failure with -Werror.
-
- Observe that the REENTRANT cases are exactly the same as their
- non-REENTRANT cases except for a `_REENTRANT` macro definition.
- Merge all these pieces and build one big main function with different
- cases, but reusing variables where logical.
-
- For the cases where the parameters where NULL, I looked at
- lib/hostip4.c to get an idea of the parameters types.
-
- void-cast variables such as 'rc' to avoid -Wuninitialized errors.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: drop _BSD_SOURCE macro usage
-
- autotools does not use features.h nor _BSD_SOURCE. As this macro
- triggers warnings since glibc 2.20, remove it. It should not have
- functional differences.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-Steve Holme (2 Nov 2014)
-- RELEASE-NOTES: Synced with d71ea7c01e
-
- Additionally, updated "GSSAPI" to "GSS-API" for a Cmake related change
- as GSSAPI can be confused with the authentication mechanism rather than
- a GSS-API implementation library such as MIT or Heimdal.
-
-- build: Added WinIDN build configuration options
-
- Added support for WinIDN build configurations to the VC6 project files.
-
-- build: Added WinIDN build configuration options
-
- Added support for WinIDN build configurations to the VC7 and VC7.1
- project files.
-
-- build: Fixed the pre-processor separator in Visual Studio project files
-
- A left over from the VC6 project files, so mainly cosmetic in Visual
- Studio .NET as it can handle both comma and semi-colon characters for
- separating multiple pre-processor definitions.
-
- However, the IDE uses semi-colons if the value is edited, and as such,
- this may cause problems in future for anyone updating the files or
- merging patches.
-
- Used the Visual Studio IDE to correct the separator character.
-
-- build: Added optional specific version generation of VC project files
-
- ..when working from the git repository. This is particularly useful
- for single development environments where the project files for all
- supported versions of Visual Studio may not be required.
-
-- [Jay Satiro brought this change]
-
- build-openssl.bat: Fix x64 release build
-
- Prior to this change if x64 release was specified a failed attempt was
- made to build x86 release instead.
-
-- CURLOPT_XOAUTH2_BEARER.3: Corrected the OAuth version number
-
-- CURLOPT_SASL_IR.3: Added supported mechanism information
-
- ...and removed duplication of what protocols are supported from the
- description text.
-
-- opts: Use common wording for MAIL related names
-
-- opts: Use common wording for TLS user/password option names
-
- ...and revised the proxy wording a little as well.
-
-- CURLOPT_MAXCONNECTS.3: Reworked the description to be less confusing
-
- ...and corrected a related typo in curl_easy_setopt.3.
-
-Guenter Knauf (2 Nov 2014)
-- RELEASE-NOTES: removed obsolete entry; fixed entry.
-
-Steve Holme (2 Nov 2014)
-- RELEASE-NOTES: Synced with e7da67f5d3
-
-- docs: Added mention of Kerberos for CURL_VERSION_SSPI
-
- As this has been present for SOCKSv5 proxy since v7.19.4 and for IMAP,
- POP3 and SMTP authentication since v7.38.0.
-
-- CURL_VERSION_KERBEROS4: Mark as deprecated
-
- Support for Kerberos V4 was removed in v7.33.0.
-
-- sasl: Fixed Kerberos V5 inclusion when CURL_DISABLE_CRYPTO_AUTH is used
-
- Typically the USE_WINDOWS_SSPI definition would not be used when the
- CURL_DISABLE_CRYPTO_AUTH define is, however, it is still a valid build
- configuration and, as such, the SASL Kerberos V5 (GSSAPI) authentication
- data structures and functions would incorrectly be used when they
- shouldn't be.
-
- Introduced a new USE_KRB5 definition that takes into account the use of
- CURL_DISABLE_CRYPTO_AUTH like USE_SPNEGO and USE_NTLM do.
-
-- openssl: Use 'CURLcode result'
-
- More CURLcode fixes.
-
-Daniel Stenberg (1 Nov 2014)
-- resume: consider a resume from [content-length] to be OK
-
- Basically since servers often then don't respond well to this and
- instead send the full contents and then libcurl would instead error out
- with the assumption that the server doesn't support resume. As the data
- is then already transfered, this is now considered fine.
-
- Test case 1434 added to verify this. Test case 1042 slightly modified.
-
- Reported-by: hugo
- Bug: http://curl.haxx.se/bug/view.cgi?id=1443
-
-Steve Holme (1 Nov 2014)
-- openssl: Use 'CURLcode result'
-
- More standardisation of CURLcode usage and coding style.
-
-- openssl: Use 'CURLcode result'
-
- ...and some minor code style changes.
-
-- ftplistparser: We prefer 'CURLcode result'
-
-- opts: Use common wording for user/password option names
-
-- CURLOPT_CONNECT_ONLY.3: Removed "This option is implemented for..." text
-
- As this is covered by the PROTOCOLS section and saves having to update
- two parts of the document with the same information in future.
-
-- CURLOPT_GSSAPI_DELEGATION.3: Use GSS-API rather than GSSAPI
-
- As implementations are refereed to GSS-API libraries as per the RFC and
- GSSAPI typically refers to an authentication mechanism.
-
-- CURLOPT_CONNECT_ONLY.3: Fixed incomplete protocol list
-
- Added missing IMAP to the protocol list.
-
-- code cleanup: Use 'CURLcode result'
-
-- curl_easy_setopt.3: Fixed lots of typos
-
-- curl_easy_setopt.3: Moved CURLOPT_DIRLISTONLY into PROTOCOL OPTIONS
-
- ...as this option affects more that just FTP.
-
-Guenter Knauf (30 Oct 2014)
-- build: added Watcom support to build with WinSSL.
-
-Daniel Stenberg (30 Oct 2014)
-- CURLOPT_PINNEDPUBLICKEY.3: added details
-
-Steve Holme (30 Oct 2014)
-- CURLOPT_CUSTOMREQUEST.3: Fixed incomplete protocol list
-
- Whilst the description included information about SMTP, the protocol
- list only showed "TTP, FTP, IMAP, POP3".
-
-- CURLOPT_DIRLISTONLY.3: Added information about the usage in POP3
-
-Daniel Stenberg (29 Oct 2014)
-- openssl: enable NPN separately from ALPN
-
- ... and allow building with nghttp2 but completely without NPN and ALPN,
- as nghttp2 can still be used for plain-text HTTP.
-
- Reported-by: Lucas Pardue
-
-- configure.ac: remove checks for OpenSSL NPN/ALPN funcs again
-
- ... since the conditional in the code are now based on OpenSSL versions
- instead to better support non-configure builds.
-
-- opts: added some "SEE ALSO" references
-
-Steve Holme (29 Oct 2014)
-- RELEASE-NOTES: Synced with 32913182dc
-
-- vtls.c: Fixed compilation warning
-
- conversion from 'size_t' to 'unsigned int', possible loss of data
-
-- sspi: Return CURLE_LOGIN_DENIED on AcquireCredentialsHandle() failure
-
- Return a more appropriate error, rather than CURLE_OUT_OF_MEMORY when
- acquiring the credentials handle fails. This is then consistent with
- the code prior to commit f7e24683c4 when log-in credentials were empty.
-
-- sasl_sspi: Allow DIGEST-MD5 to use current windows credentials
-
- Fixed the ability to use the current log-in credentials with DIGEST-MD5.
- I had previously disabled this functionality in commit 607883f13c as I
- couldn't get this to work under Windows 8, however, from testing HTTP
- Digest authentication through Windows SSPI and then further testing of
- this code I have found it works in Windows 7.
-
- Some further investigation is required to see what the differences are
- between Windows 7 and 8, but for now enable this functionality as the
- code will return an error when AcquireCredentialsHandle() fails.
-
-Kamil Dudka (29 Oct 2014)
-- transfer: drop the code handling the ssl_connect_retry flag
-
- Its last use has been removed by the previous commit.
-
-- nss: drop the code for libcurl-level downgrade to SSLv3
-
- This code was already deactivated by commit
- ec783dc142129d3860e542b443caaa78a6172d56.
-
-- openssl: fix a line length warning
-
-Guenter Knauf (29 Oct 2014)
-- Added NetWare support to build with nghttp2.
-
-- Fixed error message since we require ALPN support.
-
-- Check for ALPN via OpenSSL version number.
-
- This check works also with to non-configure platforms.
-
-Steve Holme (28 Oct 2014)
-- sasl_sspi: Fixed typo in comment
-
-- code cleanup: We prefer 'CURLcode result'
-
-Daniel Stenberg (28 Oct 2014)
-- TODO: consider supporting STAT
-
-- mk-ca-bundle: spell fix "version"
-
-- HTTP: return larger than 3 digit response codes too
-
- HTTP 1.1 is clearly specified to only allow three digit response codes,
- and libcurl used sscanf("%3d") for that purpose. This made libcurl
- support smaller numbers but not larger. It does now, but we will not
- make any specific promises nor document this further since it is going
- outside of what HTTP is.
-
- Bug: http://curl.haxx.se/bug/view.cgi?id=1441
- Reported-by: Balaji
-
-- src/: remove version.h.dist from gitignore
-
- It has not been used since commit f7bfdbab in 2011
-
-Steve Holme (26 Oct 2014)
-- ntlm: We prefer 'CURLcode result'
-
- Continuing commit 0eb3d15ccb more return code variable name changes.
-
-Guenter Knauf (26 Oct 2014)
-- Cosmetics: lowercase non-special subroutine names.
-
-Steve Holme (26 Oct 2014)
-- RELEASE-NOTES: Synced with 07ac29a058
-
-- http_negotiate: We prefer 'CURLcode result'
-
- Continuing commit 0eb3d15ccb more return code variable name changes.
-
-- http_negotiate: Fixed missing check for USE_SPNEGO
-
-- sspi: Synchronization of cleanup code between auth mechanisms
-
-- sspi: Renamed max token length variables
-
- Code cleanup to try and synchronise code between the different SSPI
- based authentication mechanisms.
-
-- sspi: Renamed expiry time stamp variables
-
- Code cleanup to try and synchronise code between the different SSPI
- based authentication mechanisms.
-
-- sspi: Only call CompleteAuthToken() when complete is needed
-
- Don't call CompleteAuthToken() after InitializeSecurityContext() has
- returned SEC_I_CONTINUE_NEEDED as this return code only indicates the
- function should be called again after receiving a response back from
- the server.
-
- This only affected the Digest and NTLM authentication code.
-
-Dan Fandrich (26 Oct 2014)
-- Added the "flaky" keyword to a number of tests
-
- Each shows evidence of flakiness on at least one platform on
- the autobuilds. Users can use this keyword to skip these tests
- if desired.
-
-Steve Holme (26 Oct 2014)
-- ntlm: Return all errors from Curl_ntlm_core_mk_nt_hash()
-
- For consistency with other areas of the NTLM code propagate all errors
- from Curl_ntlm_core_mk_nt_hash() up the call stack rather than just
- CURLE_OUT_OF_MEMORY.
-
-- ntlm: Return CURLcode from Curl_ntlm_core_mk_lm_hash()
-
-- ntlm: Use 'CURLcode result'
-
- Continuing commit 0eb3d15ccb more return code variable name changes.
-
-- ntlm: Only define ntlm data structure when USE_NTLM is defined
-
-- ntlm: Changed handles to be dynamic like other SSPI handles
-
- Code cleanup to try and synchronise code between the different SSPI
- based authentication mechanisms.
-
-- ntlm: Renamed handle variables to match other SSPI structures
-
- Code cleanup to try and synchronise code between the different SSPI
- based authentication mechanisms.
-
-- ntlm: Renamed SSPI based input token variables
-
- Code cleanup to try and synchronise code between the different SSPI
- based authentication mechanisms.
-
-- ntlm: We prefer 'CURLcode result'
-
- Continuing commit 0eb3d15ccb more return code variable name changes.
-
-- build: Added WinIDN build configuration options
-
- Added support for WinIDN build configurations to the VC8 and VC9
- project files.
-
-Nick Zitzmann (24 Oct 2014)
-- darwinssl: detect possible future removal of SSLv3 from the framework
-
- If Apple ever drops SSLv3 support from the Security framework, we'll fail with an error if the user insists on using SSLv3.
-
-Patrick Monnerat (24 Oct 2014)
-- gskit.c: remove SSLv3 from SSL default.
-
-- gskit.c: use 'CURLcode result'
-
-Daniel Stenberg (24 Oct 2014)
-- [Jay Satiro brought this change]
-
- SSL: Remove SSLv3 from SSL default due to POODLE attack
-
- - Remove SSLv3 from SSL default in darwinssl, schannel, cyassl, nss,
- openssl effectively making the default TLS 1.x. axTLS is not affected
- since it supports only TLS, and gnutls is not affected since it already
- defaults to TLS 1.x.
-
- - Update CURLOPT_SSLVERSION doc
-
-- pipelining: only output "is not blacklisted" in debug builds
-
-- *.3: add/extend "SEE ALSO" sections
-
-- curl_easy_pause.3: minor wording edit
-
-- curl_getdate.3: provide a "SEE ALSO" section
-
-- curl_global_init.3: minor formatting fix, add version info
-
-- url.c: use 'CURLcode result'
-
-- code cleanup: we prefer 'CURLcode result'
-
- ... for the local variable name in functions holding the return
- code. Using the same name universally makes code easier to read and
- follow.
-
- Also, unify code for checking for CURLcode errors with:
-
- if(result) or if(!result)
-
- instead of
-
- if(result == CURLE_OK), if(CURLE_OK == result) or if(result != CURLE_OK)
-
-- Curl_add_timecondition: skip superfluous varible assignment
-
- Detected by cppcheck.
-
-- Curl_pp_flushsend: skip superfluous assignment
-
- Detected by cppcheck.
-
-- Curl_pp_readresp: remove superfluous assignment
-
- Variable already assigned a few lines up.
-
- Detected by cppcheck.
-
-- Curl_proxyCONNECT: remove superfluous statement
-
- The variable is already assigned, skip the duplicate assignment.
-
- Pointed out by cppcheck.
-
-Guenter Knauf (24 Oct 2014)
-- Added MinGW support to build with nghttp2.
-
-- Added VC ssh2 target to main Makefile.
-
-- Some cosmetics and simplifies.
-
-- Remove dependency on openssl and cut.
-
- Prefer usage of Perl modules for sha1 calculation since there
- might be systems where openssl is not installed or not in path.
- If openssl is used for sha1 calculation then dont rely on cut
- since it is usually not available on other systems than Linux.
-
-Daniel Stenberg (23 Oct 2014)
-- RELEASE-NOTES: synced with e116d0a62
-
-- CURLOPT_RESOLVE.3: add an example
-
-- gnutls: removed dead code
-
- Bug: http://curl.haxx.se/bug/view.cgi?id=1437
- Reported-by: Julien
-
-- Curl_rand: Uninitialized variable: r
-
- This is not actually used uninitialized but we silence warnings.
-
- Bug: http://curl.haxx.se/bug/view.cgi?id=1437
- Reported-by: Julien
-
-- opts: provide more and updated examples
-
-- CURLOPT_RANGE.3: works for SFTP as well
-
- ... and added a small example
-
-- curl.1: edited for clarity
-
-- CURLOPT_SSLVERSION.3: provide an example
-
-- docs/libcurl/ABI: more markdown friendly
-
-- docs: edited lots of libcurl docs for clarity
-
-- opts: added examples
-
-- HISTORY: two glimpses in 2014
-
-Kamil Dudka (20 Oct 2014)
-- nss: reset SSL handshake state machine
-
- ... when the handshake succeeds
-
- This fixes a connection failure when FTPS handle is reused.
-
-Daniel Stenberg (20 Oct 2014)
-- [Peter Wu brought this change]
-
- cmake: generate pkg-config and curl-config
-
- Initial work to generate a pkg-config and curl-config script. Static
- linking (`curl-config --static-libs` and `pkg-config --shared --libs
- libcurl`) is broken and therefore disabled.
-
- CONFIGURE_OPTIONS does not make sense for CMake, use an empty string
- for now.
-
- At least `curl-config --features` and `curl-config --protocols` work
- which is needed by runtests.pl.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: use LIBCURL_VERSION from curlver.h
-
- This matches the behavior from autotools. The auxiliary major, minor
- and patch components are not needed anymore and therefore removed.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- [Peter Wu brought this change]
-
- cmake: add SUPPORT_FEATURES and SUPPORT_PROTOCOLS
-
- For compatibility with autoconf, it will be used later for curl-config
- and pkg-config. Not all features and or protocols can be enabled as
- these are missing additional checks (see new TODOs).
-
- SUPPORT_PROTOCOLS is partially scripted (grep for SUPPORT_PROTOCOLS=)
- and manually verified/modified. SUPPORT_FEATURES is manually added.
-
- Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-
-- cmake: add CMake/Macros.cmake to the release tarball
-
-- test545: make it not use a trailing zero
-
- CURLOPT_COPYPOSTFIELDS with a given CURLOPT_POSTFIELDSIZE does not
- require a trailing zero of the data and by making sure this test doesn't
- use one we know it works (combined with valgrind).
-
-Steve Holme (16 Oct 2014)
-- ntlm: Fixed empty type-2 decoded message info text
-
- Updated the info text when the base-64 decode of the type-2 message
- returns a null buffer to be more specific.
-
-- ntlm: Fixed empty/bad base-64 decoded buffer return codes
-
-- ntlm: Avoid unnecessary buffer allocation for SSPI based type-2 token
-
-Daniel Stenberg (16 Oct 2014)
-- httpcustomheader.c: make use of more CURLOPT_HTTPHEADER features
-
- ... and only do a single request for clarity.
-
-Steve Holme (15 Oct 2014)
-- sasl_sspi: Fixed some typos
-
-- sasl_sspi: Fixed Kerberos response buffer not being allocated when using SSO
-
-Daniel Stenberg (15 Oct 2014)
-- [Bruno Thomsen brought this change]
-
- mk-ca-bundle: added SHA-384 signature algorithm
-
- Certificates based on SHA-1 are being phased out[1].
- So we should expect a rise in certificates based on SHA-2.
- Adding SHA-384 as a valid signature algorithm.
-
- [1] https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/
-
- Signed-off-by: Bruno Thomsen <bth@kamstrup.dk>
-
-Patrick Monnerat (14 Oct 2014)
-- OS400: fix bugs in curl_*escape_ccsid() and reduce variables scope
-
-- Implement pinned public key in GSKit backend
diff --git a/Makefile.am b/Makefile.am
index 60d744e4..22823d9d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -118,7 +118,7 @@ WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/Makefile.msvc.names
EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
- RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
+ RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
$(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) lib/libcurl.vers.in
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
diff --git a/Makefile.in b/Makefile.in
index 9f0a37de..6adf934b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -134,9 +134,9 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/lib/Makefile.inc $(srcdir)/src/Makefile.inc \
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) mkinstalldirs \
+ $(top_srcdir)/configure $(am__configure_deps) \
$(srcdir)/curl-config.in $(srcdir)/libcurl.pc.in COPYING \
- README TODO compile config.guess config.sub depcomp install-sh \
+ README compile config.guess config.sub depcomp install-sh \
missing ltmain.sh
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -161,7 +161,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES = curl-config libcurl.pc
@@ -567,7 +567,7 @@ WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/Makefile.msvc.names
EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
- RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
+ RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
$(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) lib/libcurl.vers.in
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
@@ -604,7 +604,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_negotiate_sspi.c http_proxy.c non-ascii.c asyn-ares.c \
asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \
curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \
- hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \
+ hostcheck.c conncache.c pipeline.c dotdot.c x509asn1.c \
http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c \
curl_des.c
@@ -622,7 +622,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \
curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \
curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \
- curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \
+ curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h \
conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \
dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h
diff --git a/README b/README
index 2ffacc32..d92c7f8b 100644
--- a/README
+++ b/README
@@ -38,12 +38,12 @@ GIT
To download the very latest source off the GIT server do this:
- git clone git://github.com/bagder/curl.git
+ git clone https://github.com/bagder/curl.git
(you'll get a directory named curl created, filled with the source code)
NOTICE
Curl contains pieces of source code that is Copyright (c) 1998, 1999
- Kungliga Tekniska Högskolan. This notice is included here to comply with the
+ Kungliga Tekniska Högskolan. This notice is included here to comply with the
distribution terms.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 902eca48..82f0348a 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,22 +1,92 @@
-Curl and libcurl 7.42.1
+Curl and libcurl 7.43.0
- Public curl releases: 146
- Command line options: 173
- curl_easy_setopt() options: 216
+ Public curl releases: 147
+ Command line options: 176
+ curl_easy_setopt() options: 219
Public functions in libcurl: 58
- Contributors: 1265
+ Contributors: 1291
+
+This release includes the following changes:
+
+ o Added CURLOPT_PROXY_SERVICE_NAME[11]
+ o Added CURLOPT_SERVICE_NAME[12]
+ o New curl option: --proxy-service-name[13]
+ o Mew curl option: --service-name [14]
+ o New curl option: --data-raw [5]
+ o Added CURLOPT_PIPEWAIT [15]
+ o Added support for multiplexing transfers using HTTP/2, enable this
+ with the new CURLPIPE_MULTIPLEX bit for CURLMOPT_PIPELINING [16]
+ o HTTP/2: requires nghttp2 1.0.0 or later
+ o scripts: add zsh.pl for generating zsh completion
+ o curl.h: add CURL_HTTP_VERSION_2
This release includes the following bugfixes:
- o CURLOPT_HEADEROPT: default to separate [5]
- o dist: include {src,lib}/checksrc.whitelist [1]
- o connectionexists: fix build without NTLM [2]
- o docs: distribute the CURLOPT_PINNEDPUBLICKEY(3) man page, too
- o curl -z: do not write empty file on unmet condition [3]
- o openssl: fix serial number output [4]
+ o CVE-2015-3236: lingering HTTP credentials in connection re-use [30]
+ o CVE-2015-3237: SMB send off unrelated memory contents [31]
+ o nss: fix compilation failure with old versions of NSS [1]
o curl_easy_getinfo.3: document 'internals' in CURLINFO_TLS_SESSION
- o sws: init http2 state properly
- o curl.1: fix typo
+ o schannel.c: Fix possible SEC_E_BUFFER_TOO_SMALL error
+ o Curl_ossl_init: load builtin modules [2]
+ o configure: follow-up fix for krb5-config [3]
+ o sasl_sspi: Populate domain from the realm in the challenge [4]
+ o netrc: support 'default' token
+ o README: convert to UTF-8
+ o cyassl: Implement public key pinning
+ o nss: implement public key pinning for NSS backend
+ o mingw build: add arch -m32/-m64 to LDFLAGS
+ o schannel: Fix out of bounds array [6]
+ o configure: remove autogenerated files by autoconf
+ o configure: remove --automake from libtoolize call
+ o acinclude.m4: fix shell test for default CA cert bundle/path
+ o schannel: fix regression in schannel_recv [7]
+ o openssl: skip trace outputs for ssl_ver == 0 [8]
+ o gnutls: properly retrieve certificate status
+ o netrc: Read in text mode when cygwin [9]
+ o winbuild: Document the option used to statically link the CRT [10]
+ o FTP: Make EPSV use the control IP address rather than the original host
+ o FTP: fix dangling conn->ip_addr dereference on verbose EPSV
+ o conncache: keep bundles on host+port bases, not only host names
+ o runtests.pl: use 'h2c' now, no -14 anymore
+ o curlver: introducing new version number (checking) macros
+ o openssl: boringssl build brekage, use SSL_CTX_set_msg_callback [17]
+ o CURLOPT_POSTFIELDS.3: correct variable names [18]
+ o curl_easy_unescape.3: update RFC reference [19]
+ o gnutls: don't fail on non-fatal alerts during handshake
+ o testcurl.pl: allow source to be in an arbitrary directory
+ o CURLOPT_HTTPPROXYTUNNEL.3: only works with a HTTP proxy
+ o SSPI-error: Change SEC_E_ILLEGAL_MESSAGE description [20]
+ o parse_proxy: switch off tunneling if non-HTTP proxy [21]
+ o share_init: fix OOM crash
+ o perl: remove subdir, not touched in 9 years
+ o CURLOPT_COOKIELIST.3: Add example
+ o CURLOPT_COOKIE.3: Explain that the cookies won't be modified [22]
+ o CURLOPT_COOKIELIST.3: Explain Set-Cookie without a domain [23]
+ o FAQ: How do I port libcurl to my OS?
+ o openssl: Use TLS_client_method for OpenSSL 1.1.0+
+ o HTTP-NTLM: fail auth on connection close instead of looping [24]
+ o curl_setup: Add macros for FOPEN_READTEXT, FOPEN_WRITETEXT [25]
+ o curl_getdate.3: update RFC reference
+ o curl_multi_info_read.3: added example
+ o curl_multi_perform.3: added example
+ o curl_multi_timeout.3: added example
+ o cookie: Stop exporting any-domain cookies [26]
+ o openssl: remove dummy callback use from SSL_CTX_set_verify()
+ o openssl: remove SSL_get_session()-using code
+ o openssl: removed USERDATA_IN_PWD_CALLBACK kludge
+ o openssl: removed error string #ifdef
+ o openssl: Fix verification of server-sent legacy intermediates [27]
+ o docs: man page indentation and syntax fixes
+ o docs: Spelling fixes
+ o fopen.c: fix a few compiler warnings
+ o CURLOPT_OPENSOCKETFUNCTION: return error at once [28]
+ o schannel: Add support for optional client certificates
+ o build: Properly detect OpenSSL 1.0.2 when using configure
+ o urldata: store POST size in state.infilesize too [29]
+ o security:choose_mech remove dead code
+ o rtsp_do: remove dead code
+ o docs: many HTTP URIs changed to HTTPS
+ o schannel: schannel_recv overhaul [32]
This release includes the following known bugs:
@@ -25,17 +95,51 @@ 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:
- Alessandro Ghedini, Alexander Elgert, Daniel Stenberg, Kamil Dudka,
- Oren Souroujon, Patrick Rapin, Viktor Szakáts, Yehezkel Horowitz,
- (8 contributors)
+ Alessandro Ghedini, Alexander Dyagilev, Anders Bakken, Anthony Avina,
+ Ashish Shukla, Bert Huijben, Brian Chrisman, Brian Prodoehl, Chris Araman,
+ Dagobert Michelsen, Dan Fandrich, Daniel Melani, Daniel Stenberg,
+ Dmitry Eremin-Solenikov, Drake Arconis, Egon Eckert, Frank Meier, Fred Stluka,
+ Gisle Vanem, Grant Pannell, Isaac Boukris, Jens Rantil, Joel Depooter,
+ Kamil Dudka, Linus Nielsen Feltzing, Linus Nielsen Feltzing Feltzing,
+ Liviu Chircu, Marc Hoersken, Michael Osipov, Oren Souroujon, Orgad Shaneh,
+ Patrick Monnerat, Patrick Rapin, Paul Howarth, Paul Oliver, Rafayel Mkrtchyan,
+ Ray Satiro, Sean Boudreau, Tatsuhiro Tsujikawa, Tomas Tomecek, Viktor Szakáts,
+ Ville Skyttä, Yehezkel Horowitz,
+ (43 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
- [1] = http://curl.haxx.se/mail/archive-2015-04/0046.html
- [2] = http://curl.haxx.se/bug/?i=231
- [3] = https://github.com/bagder/curl/issues/237
- [4] = https://github.com/bagder/curl/issues/235
- [5] = http://curl.haxx.se/docs/adv_20150429.html
- \ No newline at end of file
+ [1] = http://curl.haxx.se/mail/lib-2015-04/0095.html
+ [2] = https://github.com/bagder/curl/pull/206
+ [3] = https://github.com/bagder/curl/commit/5b668606527613179d0349f21b4ab0df2971e3d2#commitcomment-10473445
+ [4] = https://github.com/bagder/curl/pull/141
+ [5] = https://github.com/bagder/curl/issues/198
+ [6] = http://curl.haxx.se/mail/lib-2015-04/0199.html
+ [7] = https://github.com/bagder/curl/issues/244
+ [8] = https://github.com/bagder/curl/issues/219
+ [9] = https://github.com/bagder/curl/pull/258
+ [10] = https://github.com/bagder/curl/issues/254
+ [11] = http://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SERVICE_NAME.html
+ [12] = http://curl.haxx.se/libcurl/c/CURLOPT_SERVICE_NAME.html
+ [13] = http://curl.haxx.se/docs/manpage.html#--proxy-service-name
+ [14] = http://curl.haxx.se/docs/manpage.html#--service-name
+ [15] = http://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html
+ [16] = http://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html
+ [17] = https://github.com/bagder/curl/issues/275
+ [18] = https://github.com/bagder/curl/issues/281
+ [19] = https://github.com/bagder/curl/issues/282
+ [20] = https://github.com/bagder/curl/issues/267
+ [21] = http://curl.haxx.se/mail/lib-2015-05/0056.html
+ [22] = http://curl.haxx.se/mail/lib-2015-05/0115.html
+ [23] = http://curl.haxx.se/mail/lib-2015-05/0137.html
+ [24] = https://github.com/bagder/curl/issues/256
+ [25] = https://github.com/bagder/curl/pull/258#issuecomment-107093055
+ [26] = https://github.com/bagder/curl/issues/292
+ [27] = https://rt.openssl.org/Ticket/Display.html?id=3621&user=guest&pass=guest
+ [28] = http://curl.haxx.se/mail/lib-2015-06/0047.html
+ [29] = http://curl.haxx.se/mail/lib-2015-06/0019.html
+ [30] = http://curl.haxx.se/docs/adv_20150617A.html
+ [31] = http://curl.haxx.se/docs/adv_20150617B.html
+ [32] = https://github.com/bagder/curl/issues/244
diff --git a/TODO b/TODO
deleted file mode 100644
index e0de776a..00000000
--- a/TODO
+++ /dev/null
@@ -1,10 +0,0 @@
-
-- security advisory
-
-- fix simultaneous DNS resolve of same host name
-
-- add negative DNS caching
-
-- multiplexing HTTP/2
-
-- test suite for HTTP/2 - based on nghttp2 server?
diff --git a/acinclude.m4 b/acinclude.m4
index ca018698..f0132a57 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2452,23 +2452,6 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [
])
-# This is only a temporary fix. This macro is here to replace the broken one
-# delivered by the automake project (including the 1.9.6 release). As soon as
-# they ship a working version we SHOULD remove this work-around.
-
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} \"$am_aux_dir/missing\""
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-
dnl CURL_VERIFY_RUNTIMELIBS
dnl -------------------------------------------------
dnl Verify that the shared libs found so far can be used when running
@@ -2676,7 +2659,7 @@ AC_HELP_STRING([--without-ca-path], [Don't use a default CA path]),
AC_DEFINE_UNQUOTED(CURL_CA_PATH, "$capath", [Location of default ca path])
AC_MSG_RESULT([$capath (capath)])
fi
- if test "x$ca" == "xno" && test "x$capath" == "xno"; then
+ if test "x$ca" = "xno" && test "x$capath" = "xno"; then
AC_MSG_RESULT([no])
fi
])
diff --git a/buildconf b/buildconf
index f3f0bd54..705f0d34 100755
--- a/buildconf
+++ b/buildconf
@@ -318,6 +318,8 @@ for fname in .deps \
ltsugar.m4 \
ltversion.m4 \
lt~obsolete.m4 \
+ missing \
+ install-sh \
stamp-h1 \
stamp-h2 \
stamp-h3 ; do
@@ -329,7 +331,7 @@ done
#
echo "buildconf: running libtoolize"
-${libtoolize} --copy --automake --force || die "libtoolize command failed"
+${libtoolize} --copy --force || die "libtoolize command failed"
# When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4
# subdirectory and this local copy is patched to fix some warnings that
diff --git a/configure b/configure
index d7e78790..9692b5d3 100755
--- a/configure
+++ b/configure
@@ -4937,14 +4937,21 @@ test "$program_suffix" != NONE &&
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} \"$am_aux_dir/missing\""
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
+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;}
+ { $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;}
fi
if test x"${install_sh}" != xset; then
@@ -21129,8 +21136,6 @@ $as_echo "yes" >&6; }
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 "$GSSAPI_ROOT/bin/krb5-config"; then
- GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
elif test -f "$KRB5CONFIG"; then
GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
elif test "$GSSAPI_ROOT" != "yes"; then
@@ -22082,6 +22087,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
esac
case $tst_api in
0x110) tst_show="1.1.0" ;;
+ 0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
0x100) tst_show="1.0.0" ;;
0x099) tst_show="0.9.9" ;;
@@ -22191,6 +22197,42 @@ rm -f core conftest.err conftest.$ac_objext \
/* end confdefs.h. */
+#define SSL_CONF_CTX_new innocuous_SSL_CONF_CTX_new
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef SSL_CONF_CTX_new
+#ifdef __cplusplus
+extern "C"
+#endif
+char SSL_CONF_CTX_new ();
+#if defined __stub_SSL_CONF_CTX_new || defined __stub___SSL_CONF_CTX_new
+choke me
+#endif
+
+int main (void)
+{
+return SSL_CONF_CTX_new ();
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ tst_api="0x102"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ if test "$tst_api" = "unknown"; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
#define SSL_renegotiate_abbreviated innocuous_SSL_renegotiate_abbreviated
#ifdef __STDC__
# include <limits.h>
@@ -22548,6 +22590,7 @@ rm -f core conftest.err conftest.$ac_objext \
fi
case $tst_api in
0x110) tst_show="1.1.0" ;;
+ 0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
0x100) tst_show="1.0.0" ;;
0x099) tst_show="0.9.9" ;;
@@ -24264,7 +24307,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $capath (capath)" >&5
$as_echo "$capath (capath)" >&6; }
fi
- if test "x$ca" == "xno" && test "x$capath" == "xno"; then
+ if test "x$ca" = "xno" && test "x$capath" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -26006,9 +26049,11 @@ $as_echo "$as_me: -L is $LD_H2" >&6;}
CPPFLAGS="$CPPFLAGS $CPP_H2"
LIBS="$LIB_H2 $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp2_session_callbacks_set_send_callback in -lnghttp2" >&5
-$as_echo_n "checking for nghttp2_session_callbacks_set_send_callback in -lnghttp2... " >&6; }
-if ${ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback+:} false; then :
+ # use nghttp2_option_set_no_recv_client_magic to require nghttp2
+ # >= 1.0.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp2_option_set_no_recv_client_magic in -lnghttp2" >&5
+$as_echo_n "checking for nghttp2_option_set_no_recv_client_magic in -lnghttp2... " >&6; }
+if ${ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -26020,26 +26065,26 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char nghttp2_session_callbacks_set_send_callback ();
+char nghttp2_option_set_no_recv_client_magic ();
int main (void)
{
-return nghttp2_session_callbacks_set_send_callback ();
+return nghttp2_option_set_no_recv_client_magic ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback=yes
+ ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic=yes
else
- ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback=no
+ ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback" >&5
-$as_echo "$ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback" >&6; }
-if test "x$ac_cv_lib_nghttp2_nghttp2_session_callbacks_set_send_callback" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic" >&5
+$as_echo "$ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic" >&6; }
+if test "x$ac_cv_lib_nghttp2_nghttp2_option_set_no_recv_client_magic" = xyes; then :
for ac_header in nghttp2/nghttp2.h
do :
diff --git a/configure.ac b/configure.ac
index e676ff39..accb0388 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1194,8 +1194,6 @@ if test x"$want_gss" = xyes; then
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 "$GSSAPI_ROOT/bin/krb5-config"; then
- GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi`
elif test -f "$KRB5CONFIG"; then
GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
elif test "$GSSAPI_ROOT" != "yes"; then
@@ -2843,7 +2841,9 @@ if test X"$want_h2" != Xno; then
CPPFLAGS="$CPPFLAGS $CPP_H2"
LIBS="$LIB_H2 $LIBS"
- AC_CHECK_LIB(nghttp2, nghttp2_session_callbacks_set_send_callback,
+ # use nghttp2_option_set_no_recv_client_magic to require nghttp2
+ # >= 1.0.0
+ AC_CHECK_LIB(nghttp2, nghttp2_option_set_no_recv_client_magic,
[
AC_CHECK_HEADERS(nghttp2/nghttp2.h,
curl_h2_msg="enabled (nghttp2)"
diff --git a/docs/BINDINGS b/docs/BINDINGS
index ef450543..fed16e99 100644
--- a/docs/BINDINGS
+++ b/docs/BINDINGS
@@ -50,7 +50,7 @@ Cocoa
D
Written by Kenneth Bogert
- http://curl.haxx.se/libcurl/d/
+ http://dlang.org/library/std/net/curl.html
Dylan
@@ -60,7 +60,7 @@ Dylan
Eiffel
Written by Eiffel Software
- http://curl.haxx.se/libcurl/eiffel/
+ https://room.eiffel.com/library/curl
Euphoria
@@ -78,7 +78,7 @@ Ferite
Gambas
- http://gambas.sourceforge.net
+ http://gambas.sourceforge.net/
glib/GTK+
@@ -102,8 +102,7 @@ Haskell
Java
- Maintained by [blank]
- http://curl.haxx.se/libcurl/java/
+ https://github.com/pjlegato/curl-java
Julia
@@ -131,7 +130,7 @@ Mono
.NET
libcurl-net by Jeffrey Phillips
- http://sourceforge.net/projects/libcurl-net/
+ https://sourceforge.net/projects/libcurl-net/
node.js
@@ -146,7 +145,7 @@ Object-Pascal
O'Caml
Written by Lars Nilsson
- http://sourceforge.net/projects/ocurl/
+ https://sourceforge.net/projects/ocurl/
Pascal
@@ -155,13 +154,13 @@ Pascal
Perl
- Maintained by Cris Bailiff
- http://curl.haxx.se/libcurl/perl/
+ Maintained by Cris Bailiff and Bálint Szilakszi
+ https://github.com/szbalint/WWW--Curl
PHP
Written by Sterling Hughes
- http://curl.haxx.se/libcurl/php/
+ https://php.net/curl
PostgreSQL
@@ -175,8 +174,7 @@ Python
R
- RCurl by Duncan Temple Lang
- http://www.omegahat.org/RCurl/
+ http://cran.r-project.org/package=curl
Rexx
@@ -197,10 +195,15 @@ Ruby
ruby-curl-multi - written by Kristjan Petursson and Keith Rarick
http://curl-multi.rubyforge.org/
+Rust
+
+ curl-rust - by Carl Lerche
+ https://github.com/carllerche/curl-rust
+
Scheme
Bigloo binding by Kirill Lisovsky
- http://curl.haxx.se/libcurl/scheme/
+ http://www.metapaper.net/lisovsky/web/curl/
S-Lang
@@ -230,7 +233,7 @@ Tcl
Visual Basic
libcurl-vb by Jeffrey Phillips
- http://sourceforge.net/projects/libcurl-vb/
+ https://sourceforge.net/projects/libcurl-vb/
Visual Foxpro
@@ -250,3 +253,8 @@ XBLite
Written by David Szafranski
http://perso.wanadoo.fr/xblite/libraries.html
+
+Xojo
+
+ Written by Andrew Lambert
+ https://github.com/charonn0/RB-libcURL
diff --git a/docs/CONTRIBUTE b/docs/CONTRIBUTE
index 47713838..c6ea9773 100644
--- a/docs/CONTRIBUTE
+++ b/docs/CONTRIBUTE
@@ -203,7 +203,7 @@
You need to first checkout the repository:
- git clone git://github.com/bagder/curl.git
+ git clone https://github.com/bagder/curl.git
You then proceed and edit all the files you like and you commit them to your
local repository:
@@ -245,8 +245,8 @@
For unix-like operating systems:
- http://www.gnu.org/software/patch/patch.html
- http://www.gnu.org/directory/diffutils.html
+ https://savannah.gnu.org/projects/patch/
+ https://www.gnu.org/software/diffutils/
For Windows:
diff --git a/docs/DISTRO-DILEMMA b/docs/DISTRO-DILEMMA
index 71186a26..2d317fdb 100644
--- a/docs/DISTRO-DILEMMA
+++ b/docs/DISTRO-DILEMMA
@@ -112,7 +112,7 @@ The Better License, Original BSD, GPL or LGPL?
In Debian land, there seems to be a common opinion that LGPL is "maximally
compatible" with apps while Original BSD is not. Like this:
- http://lists.debian.org/debian-devel/2005/09/msg01417.html
+ https://lists.debian.org/debian-devel/2005/09/msg01417.html
More SSL Libraries
@@ -163,13 +163,13 @@ Distro Angle of this Problem
Footnotes
[1] = http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6
- [2] = http://www.fsf.org/licensing/essays/bsd.html
- [3] = http://www.fsf.org/licensing/licenses/gpl.html
+ [2] = https://www.gnu.org/philosophy/bsd.html
+ [3] = https://www.gnu.org/licenses/gpl.html
[4] = http://curl.haxx.se/docs/copyright.html
- [5] = http://www.openssl.org/source/license.html
- [6] = http://www.fsf.org/licensing/licenses/gpl.html end of section 3
- [7] = http://www.fsf.org/licensing/licenses/lgpl.html
- [8] = http://en.wikipedia.org/wiki/OpenSSL_exception
+ [5] = https://www.openssl.org/source/license.html
+ [6] = https://www.gnu.org/licenses/gpl.html end of section 3
+ [7] = https://www.gnu.org/licenses/lgpl.html
+ [8] = https://en.wikipedia.org/wiki/OpenSSL_exception
Feedback/Updates provided by
diff --git a/docs/FAQ b/docs/FAQ
index a2443efb..06a306d9 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -21,6 +21,7 @@ FAQ
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?
+ 1.15 How do I port libcurl to my OS?
2. Install Related Problems
2.1 configure doesn't find OpenSSL even when it is installed
@@ -351,7 +352,7 @@ FAQ
cryptography. When doing so, the Export Control Classification Number (ECCN)
is used to identify the level of export control etc.
- ASF gives a good explanation at http://www.apache.org/dev/crypto.html
+ ASF gives a good explanation at https://www.apache.org/dev/crypto.html
We believe curl's number might be ECCN 5D002, another possibility is
5D992. It seems necessary to write them, asking to confirm.
@@ -380,6 +381,19 @@ FAQ
Lots of more details are found in the CONTRIBUTE and INTERNALS docs.
+ 1.15 How do I port libcurl to my OS?
+
+ Here's a rough step-by-step:
+
+ 1. copy a suitable lib/config-*.h file as a start to lib/config-[youros].h
+
+ 2. edit lib/config-[youros].h to match your OS and setup
+
+ 3. edit lib/curl_setup.h to include config-[youros].h when your OS is
+ detected by the preprocessor, in the style others already exist
+
+ 4. compile lib/*.c and make them into a library
+
2. Install Related Problems
@@ -1028,7 +1042,7 @@ FAQ
timeout is set.
See option TcpMaxConnectRetransmissions on this page:
- http://support.microsoft.com/?scid=kb%3Ben-us%3B175523&x=6&y=7
+ https://support.microsoft.com/en-us/kb/175523/en-us
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
@@ -1045,7 +1059,7 @@ FAQ
You'll find that even if D:\blah.txt does exist, cURL returns a 'file
not found' error.
- According to RFC 1738 (http://www.faqs.org/rfcs/rfc1738.html),
+ According to RFC 1738 (https://www.ietf.org/rfc/rfc1738.txt),
file:// URLs must contain a host component, but it is ignored by
most implementations. In the above example, 'D:' is treated as the
host component, and is taken away. Thus, cURL tries to open '/blah.txt'.
@@ -1149,13 +1163,13 @@ FAQ
If you use a OpenSSL-powered libcurl in a multi-threaded environment, you
need to provide one or two locking functions:
- http://www.openssl.org/docs/crypto/threads.html
+ https://www.openssl.org/docs/crypto/threads.html
If you use a GnuTLS-powered libcurl in a multi-threaded environment, you
need to provide locking function(s) for libgcrypt (which is used by GnuTLS
for the crypto functions).
- http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html
+ https://web.archive.org/web/20111103083330/http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html
No special locking is needed with a NSS-powered libcurl. NSS is thread-safe.
@@ -1331,7 +1345,7 @@ FAQ
Also note that on many networks NATs or other IP-munging techniques are used
that makes you see and use a different IP address locally than what the
remote server will see you coming from. You may also consider using
- http://www.torproject.org .
+ https://www.torproject.org/ .
5.13 How do I stop an ongoing transfer?
diff --git a/docs/HTTP-COOKIES b/docs/HTTP-COOKIES
index 818e161e..b5abddfa 100644
--- a/docs/HTTP-COOKIES
+++ b/docs/HTTP-COOKIES
@@ -36,7 +36,7 @@ HTTP Cookies
For a very long time, the only spec explaining how to use cookies was the
original Netscape spec from 1994: http://curl.haxx.se/rfc/cookie_spec.html
- In 2011, RFC6265 (http://www.ietf.org/rfc/rfc6265.txt) was finally published
+ In 2011, RFC6265 (https://www.ietf.org/rfc/rfc6265.txt) was finally published
and details how cookies work within HTTP.
1.2 Cookies saved to disk
diff --git a/docs/HTTP2.md b/docs/HTTP2.md
new file mode 100644
index 00000000..b4e2983b
--- /dev/null
+++ b/docs/HTTP2.md
@@ -0,0 +1,107 @@
+HTTP/2 with curl
+================
+
+[HTTP/2 Spec](https://www.rfc-editor.org/rfc/rfc7540.txt)
+[http2 explained](http://daniel.haxx.se/http2/)
+
+Build prerequisites
+-------------------
+ - nghttp2
+ - OpenSSL, NSS, GnutTLS or PolarSSL with a new enough version
+
+[nghttp2](https://nghttp2.org/)
+-------------------------------
+
+libcurl uses this 3rd party library for the low level protocol handling
+parts. The reason for this is that HTTP/2 is much more complex at that layer
+than HTTP/1.1 (which we implement on our own) and that nghttp2 is an already
+existing and well functional library.
+
+We require at least version 1.0.0.
+
+Over an http:// URL
+-------------------
+
+If `CURLOPT_HTTP_VERSION` is set to `CURL_HTTP_VERSION_2_0`, libcurl will
+include an upgrade header in the initial request to the host to allow
+upgrading to HTTP/2.
+
+Possibly we can later introduce an option that will cause libcurl to fail if
+not possible to upgrade. Possibly we introduce an option that makes libcurl
+use HTTP/2 at once over http://
+
+Over an https:// URL
+--------------------
+
+If `CURLOPT_HTTP_VERSION` is set to `CURL_HTTP_VERSION_2_0`, libcurl will use
+ALPN (or NPN) to negotiate which protocol to continue with. Possibly introduce
+an option that will cause libcurl to fail if not possible to use HTTP/2.
+Consider options to explicitly disable ALPN and/or NPN.
+
+ALPN is the TLS extension that HTTP/2 is expected to use. The NPN extension is
+for a similar purpose, was made prior to ALPN and is used for SPDY so early
+HTTP/2 servers are implemented using NPN before ALPN support is widespread.
+
+SSL libs
+--------
+
+The challenge is the ALPN and NPN support and all our different SSL
+backends. You may need a fairly updated SSL library version for it to
+provide the necessary TLS features. Right now we support:
+
+ - OpenSSL: ALPN and NPN
+ - NSS: ALPN and NPN
+ - GnuTLS: ALPN
+ - PolarSSL: ALPN
+
+Multiplexing
+------------
+
+Starting in 7.43.0, libcurl fully supports HTTP/2 multiplexing, which is the
+term for doing multiple independent transfers over the same physical TCP
+connection.
+
+To take advantage of multiplexing, you need to use the multi interface and set
+`CURLMOPT_PIPELINING` to `CURLPIPE_MULTIPLEX`. With that bit set, libcurl will
+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
+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
+connection for the same host in progress that might end up being possible to
+multiplex on. It favours keeping the number of connections low to the cost of
+slightly longer time to first byte transferred.
+
+Applications
+------------
+
+We hide HTTP/2's binary nature and convert received HTTP/2 traffic to headers
+in HTTP 1.1 style. This allows applications to work unmodified.
+
+curl tool
+---------
+
+curl offers the `--http2` command line option to enable use of HTTP/2
+
+HTTP Alternative Services
+-------------------------
+
+Alt-Svc is a suggested extension with a corresponding frame (ALTSVC) in HTTP/2
+that tells the client about an alternative "route" to the same content for the
+same origin server that you get the response from. A browser or long-living
+client can use that hint to create a new connection asynchronously. For
+libcurl, we may introduce a way to bring such clues to the applicaton and/or
+let a subsequent request use the alternate route
+automatically. [Spec](https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-05)
+
+TODO
+----
+
+ - Provide API to set priorities / dependencies of individual streams
+
+ - Implement "prior-knowledge" HTTP/2 connecitons over clear text so that
+ curl can connect with HTTP/2 at once without 1.1+Upgrade.
+
diff --git a/docs/INSTALL b/docs/INSTALL
index 30dec534..45703188 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -173,13 +173,13 @@ Win32
advice given above.
KB94248 - How To Use the C Run-Time
- http://support.microsoft.com/kb/94248/en-us
+ https://support.microsoft.com/kb/94248/en-us
KB140584 - How to link with the correct C Run-Time (CRT) library
- http://support.microsoft.com/kb/140584/en-us
+ https://support.microsoft.com/kb/140584/en-us
KB190799 - Potential Errors Passing CRT Objects Across DLL Boundaries
- http://msdn.microsoft.com/en-us/library/ms235460
+ https://msdn.microsoft.com/en-us/library/ms235460
If your app is misbehaving in some strange way, or it is suffering
from memory corruption, before asking for further help, please try
@@ -209,8 +209,8 @@ Win32
environment variables, for example:
set ZLIB_PATH=c:\zlib-1.2.8
- set OPENSSL_PATH=c:\openssl-0.9.8zc
- set LIBSSH2_PATH=c:\libssh2-1.4.3
+ set OPENSSL_PATH=c:\openssl-1.0.2c
+ set LIBSSH2_PATH=c:\libssh2-1.6.0
ATTENTION: if you want to build with libssh2 support you have to use latest
version 0.17 - previous versions will NOT work with 7.17.0 and later!
@@ -232,7 +232,7 @@ Win32
- optional MingW32-built OpenLDAP SDK available from:
http://www.gknw.net/mirror/openldap/
- optional recent Novell CLDAP SDK available from:
- http://developer.novell.com/ndk/cldap.htm
+ https://www.novell.com/developer/ndk/ldap_libraries_for_c.html
Cygwin
------
@@ -254,7 +254,7 @@ Win32
If you use MSVC 6 it is required that you use the February 2003 edition of
the 'Platform SDK' which can be downloaded from:
- http://www.microsoft.com/en-us/download/details.aspx?id=12261
+ https://www.microsoft.com/en-us/download/details.aspx?id=12261
Building any software with MSVC 6 without having PSDK installed is just
asking for trouble down the road once you have released it, you might notice
@@ -263,7 +263,7 @@ Win32
software built in such way will at some point regret having done so.
If the compiler has been updated with the installation of a service pack as
- those mentioned in http://support.microsoft.com/kb/194022 the compiler can be
+ those mentioned in https://support.microsoft.com/kb/194022 the compiler can be
safely used to read source code, translate and make it object code.
But, even with the service packs mentioned above installed, the resulting
@@ -299,7 +299,7 @@ Win32
Then run 'nmake vc' in curl's root directory.
If you want to compile with zlib support, you will need to build
- zlib (http://www.gzip.org/zlib/) as well. Please read the zlib
+ zlib (http://www.zlib.net/) as well. Please read the zlib
documentation on how to compile zlib. Define the ZLIB_PATH environment
variable to the location of zlib.h and zlib.lib, for example:
@@ -665,12 +665,10 @@ NetWare
- gnu make and awk running on the platform you compile on;
native Win32 versions can be downloaded from:
http://www.gknw.net/development/prgtools/
- - recent Novell LibC SDK available from:
- http://developer.novell.com/ndk/libc.htm
- - or recent Novell CLib SDK available from:
- http://developer.novell.com/ndk/clib.htm
+ - recent Novell LibC or Novell CLib SDK available from:
+ https://www.novell.com/developer/ndk/
- optional recent Novell CLDAP SDK available from:
- http://developer.novell.com/ndk/cldap.htm
+ https://www.novell.com/developer/ndk/ldap_libraries_for_c.html
- optional zlib sources (static or dynamic linking with zlib.imp);
sources with NetWare Makefile can be obtained from:
http://www.gknw.net/mirror/zlib/
@@ -825,7 +823,7 @@ VxWorks
To build libcurl for VxWorks you need:
- - CYGWIN (free, http://cygwin.com/)
+ - CYGWIN (free, https://cygwin.com/)
- Wind River Workbench (commercial)
If you have CYGWIN and Workbench installed on you machine
@@ -1086,18 +1084,18 @@ Useful URLs
axTLS http://axtls.sourceforge.net/
c-ares http://c-ares.haxx.se/
-GNU GSS http://www.gnu.org/software/gss/
-GnuTLS http://www.gnu.org/software/gnutls/
-Heimdal http://www.pdc.kth.se/heimdal/
-libidn http://www.gnu.org/software/libidn/
+GNU GSS https://www.gnu.org/software/gss/
+GnuTLS https://www.gnu.org/software/gnutls/
+Heimdal http://www.h5l.org/
+libidn https://www.gnu.org/software/libidn/
libmetalink https://launchpad.net/libmetalink/
libssh2 http://www.libssh2.org/
MIT Kerberos http://web.mit.edu/kerberos/www/dist/
-NSS http://www.mozilla.org/projects/security/pki/nss/
+NSS https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
OpenLDAP http://www.openldap.org/
-OpenSSL http://www.openssl.org/
-PolarSSL http://polarssl.org/
-yassl http://www.yassl.com/
+OpenSSL https://www.openssl.org/
+PolarSSL https://tls.mbed.org/
+wolfSSL https://www.wolfssl.com/wolfSSL/
Zlib http://www.zlib.net/
MingW http://www.mingw.org/
diff --git a/docs/INSTALL.devcpp b/docs/INSTALL.devcpp
index 46d1836a..ee2d7036 100644
--- a/docs/INSTALL.devcpp
+++ b/docs/INSTALL.devcpp
@@ -95,7 +95,7 @@ install instructions may produce erratic behaviour in DevCpp. For further info
check the following sites
http://aditsu.freeunixhost.com/dev-cpp-faq.html
-http://sourceforge.net/forum/message.php?msg_id=3252213
+https://sourceforge.net/p/dev-cpp/discussion/48211/thread/2a85ea46
As I have mentioned before I will confine this to the SSL Library compilations
but the process is very similar for compilation of the executable - curl.exe;
diff --git a/docs/INTERNALS b/docs/INTERNALS
index f8b1b47b..4cd63b4e 100644
--- a/docs/INTERNALS
+++ b/docs/INTERNALS
@@ -1,18 +1,57 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
-INTERNALS
+Table of Contents
+=================
- The project is split in two. The library and the client. The client part uses
- the library, but the library is designed to allow other applications to use
- it.
+ - [Intro](#intro)
+ - [git](#git)
+ - [Portability](#Portability)
+ - [Windows vs Unix](#winvsunix)
+ - [Library](#Library)
+ - [`Curl_connect`](#Curl_connect)
+ - [`Curl_do`](#Curl_do)
+ - [`Curl_readwrite`](#Curl_readwrite)
+ - [`Curl_done`](#Curl_done)
+ - [`Curl_disconnect`](#Curl_disconnect)
+ - [HTTP(S)](#http)
+ - [FTP](#ftp)
+ - [Kerberos](#kerberos)
+ - [TELNET](#telnet)
+ - [FILE](#file)
+ - [SMB](#smb)
+ - [LDAP](#ldap)
+ - [E-mail](#email)
+ - [General](#general)
+ - [Persistent Connections](#persistent)
+ - [multi interface/non-blocking](#multi)
+ - [SSL libraries](#ssl)
+ - [Library Symbols](#symbols)
+ - [Return Codes and Informationals](#returncodes)
+ - [AP/ABI](#abi)
+ - [Client](#client)
+ - [Memory Debugging](#memorydebug)
+ - [Test Suite](#test)
+ - [Asynchronous name resolves](#asyncdns)
+ - [c-ares](#cares)
+ - [`curl_off_t`](#curl_off_t)
+ - [curlx](#curlx)
+ - [Content Encoding](#contentencoding)
+ - [hostip.c explained](#hostip)
+ - [Track Down Memory Leaks](#memoryleak)
+ - [`multi_socket`](#multi_socket)
+ - [Structs in libcurl](#structs)
+
+<a name="intro"></a>
+curl internals
+==============
+
+ This project is split in two. The library and the client. The client part
+ uses the library, but the library is designed to allow other applications to
+ use it.
The largest amount of code and complexity is in the library part.
-GIT
+
+<a name="git"></a>
+git
===
All changes to the sources are committed to the git repository as soon as
@@ -23,6 +62,7 @@ GIT
Tagging shall be used extensively, and by the time we release new archives we
should tag the sources with a name similar to the released version number.
+<a name="Portability"></a>
Portability
===========
@@ -34,45 +74,55 @@ Portability
want it to remain functional and buildable with these and later versions
(older versions may still work but is not what we work hard to maintain):
- OpenSSL 0.9.7
- GnuTLS 1.2
- zlib 1.1.4
- libssh2 0.16
- c-ares 1.6.0
- libidn 0.4.1
- cyassl 2.0.0
- openldap 2.0
- MIT Kerberos 1.2.4
- GSKit V5R3M0
- NSS 3.14.x
- axTLS 1.2.7
- PolarSSL 1.3.0
- Heimdal ?
- nghttp2 0.6.0
+Dependencies
+------------
+
+ - OpenSSL 0.9.7
+ - GnuTLS 1.2
+ - zlib 1.1.4
+ - libssh2 0.16
+ - c-ares 1.6.0
+ - libidn 0.4.1
+ - cyassl 2.0.0
+ - openldap 2.0
+ - MIT Kerberos 1.2.4
+ - GSKit V5R3M0
+ - NSS 3.14.x
+ - axTLS 1.2.7
+ - PolarSSL 1.3.0
+ - Heimdal ?
+ - nghttp2 1.0.0
+
+Operating Systems
+-----------------
On systems where configure runs, we aim at working on them all - if they have
a suitable C compiler. On systems that don't run configure, we strive to keep
curl running fine on:
- Windows 98
- AS/400 V5R3M0
- Symbian 9.1
- Windows CE ?
- TPF ?
+ - Windows 98
+ - AS/400 V5R3M0
+ - Symbian 9.1
+ - Windows CE ?
+ - TPF ?
+
+Build tools
+-----------
When writing code (mostly for generating stuff included in release tarballs)
we use a few "build tools" and we make sure that we remain functional with
these versions:
- GNU Libtool 1.4.2
- GNU Autoconf 2.57
- GNU Automake 1.7 (we currently avoid 1.10 due to Solaris-related bugs)
- GNU M4 1.4
- perl 5.004
- roffit 0.5
- groff ? (any version that supports "groff -Tps -man [in] [out]")
- ps2pdf (gs) ?
+ - GNU Libtool 1.4.2
+ - GNU Autoconf 2.57
+ - GNU Automake 1.7
+ - GNU M4 1.4
+ - perl 5.004
+ - roffit 0.5
+ - groff ? (any version that supports "groff -Tps -man [in] [out]")
+ - ps2pdf (gs) ?
+<a name="winvsunix"></a>
Windows vs Unix
===============
@@ -87,8 +137,9 @@ 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 also
- do it etc there might be reasons for applications to alter that behaviour.
+ That's 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
+ behaviour.
3. The file descriptors for network communication and file operations are
not easily interchangeable as in unix.
@@ -101,28 +152,29 @@ Windows vs Unix
We set stdout to binary under windows
- Inside the source code, We make an effort to avoid '#ifdef [Your OS]'. All
+ 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,
- we maintain a curl_config-win32.h file in lib directory that is supposed to
- look exactly as a curl_config.h file would have looked like on a Windows
+ `#ifdef HAVE_THAT_WEIRD_FUNCTION`. Since Windows can't run configure scripts,
+ we maintain a `curl_config-win32.h` file in lib directory that is supposed to
+ look exactly as 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.
+<a name="Library"></a>
Library
=======
- (See LIBCURL-STRUCTS for a separate document describing all major internal
+ (See `LIBCURL-STRUCTS` for a separate document describing all major internal
structs and their purposes.)
There are plenty of entry points to the library, namely each publicly defined
function that libcurl offers to applications. All of those functions are
- rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are
+ rather small and easy-to-follow. All the ones prefixed with `curl_easy` are
put in the lib/easy.c file.
- curl_global_init_() and curl_global_cleanup() should be called by the
+ `curl_global_init_()` and `curl_global_cleanup()` should be called by the
application to initialize and clean up global stuff in the library. As of
today, it can handle the global SSL initing if SSL is enabled and it can init
the socket layer on windows machines. libcurl itself has no "global" scope.
@@ -130,51 +182,56 @@ Library
All printf()-style functions use the supplied clones in lib/mprintf.c. This
makes sure we stay absolutely platform independent.
- curl_easy_init() allocates an internal struct and makes some initializations.
- The returned handle does not reveal internals. This is the 'SessionHandle'
- struct which works as an "anchor" struct for all curl_easy functions. All
- connections performed will get connect-specific data allocated that should be
- used for things related to particular connections/requests.
+ [ `curl_easy_init()`][2] allocates an internal struct and makes some
+ initializations. The returned handle does not reveal internals. This is the
+ 'SessionHandle' struct which works as an "anchor" struct for all `curl_easy`
+ functions. All connections performed will get connect-specific data allocated
+ that should be used for things related to particular connections/requests.
- curl_easy_setopt() takes three arguments, where the option stuff must be
- passed in pairs: the parameter-ID and the parameter-value. The list of
+ [`curl_easy_setopt()`][1] takes three arguments, where the option stuff must
+ be passed in pairs: the parameter-ID and the parameter-value. The list of
options is documented in the man page. This function mainly sets things in
the 'SessionHandle' struct.
- curl_easy_perform() is just a wrapper function that makes use of the multi
- API. It basically curl_multi_init(), curl_multi_add_handle(),
- curl_multi_wait(), and curl_multi_perform() until the transfer is done and
- then returns.
+ `curl_easy_perform()` is just a wrapper function that makes use of the multi
+ API. It basically calls `curl_multi_init()`, `curl_multi_add_handle()`,
+ `curl_multi_wait()`, and `curl_multi_perform()` until the transfer is done
+ and then returns.
Some of the most important key functions in url.c are called from multi.c
when certain key steps are to be made in the transfer operation.
- o Curl_connect()
+<a name="Curl_connect"></a>
+Curl_connect()
+--------------
Analyzes the URL, it separates the different components and connects to the
remote host. This may involve using a proxy and/or using SSL. The
- Curl_resolv() function in lib/hostip.c is used for looking up host names
+ `Curl_resolv()` function in lib/hostip.c is used for looking up host names
(it does then use the proper underlying method, which may vary between
platforms and builds).
- When Curl_connect is done, we are connected to the remote site. Then it is
- time to tell the server to get a document/file. Curl_do() arranges this.
+ When `Curl_connect` is done, we are connected to the remote site. Then it
+ is time to tell the server to get a document/file. `Curl_do()` arranges
+ this.
This function makes sure there's an allocated and initiated 'connectdata'
struct that is used for this particular connection only (although there may
be several requests performed on the same connect). A bunch of things are
inited/inherited from the SessionHandle struct.
- o Curl_do()
+<a name="Curl_do"></a>
+Curl_do()
+---------
- Curl_do() makes sure the proper protocol-specific function is called. The
+ `Curl_do()` makes sure the proper protocol-specific function is called. The
functions are named after the protocols they handle.
The protocol-specific functions of course deal with protocol-specific
- negotiations and setup. They have access to the Curl_sendf() (from
+ negotiations and setup. They have access to the `Curl_sendf()` (from
lib/sendf.c) function to send printf-style formatted data to the remote
host and when they're ready to make the actual file transfer they call the
- Curl_Transfer() function (in lib/transfer.c) to setup the transfer and
+ `Curl_Transfer()` function (in lib/transfer.c) to setup the transfer and
returns.
If this DO function fails and the connection is being re-used, libcurl will
@@ -183,11 +240,13 @@ Library
we have discovered a dead connection before the DO function and thus we
might wrongly be re-using a connection that was closed by the remote peer.
- Some time during the DO function, the Curl_setup_transfer() function must
+ Some time during the DO function, the `Curl_setup_transfer()` function must
be called with some basic info about the upcoming transfer: what socket(s)
to read/write and the expected file transfer sizes (if known).
- o Curl_readwrite()
+<a name="Curl_readwrite"></a>
+Curl_readwrite()
+----------------
Called during the transfer of the actual protocol payload.
@@ -196,18 +255,22 @@ Library
called). The speedcheck functions in lib/speedcheck.c are also used to
verify that the transfer is as fast as required.
- o Curl_done()
+<a name="Curl_done"></a>
+Curl_done()
+-----------
Called after a transfer is done. This function takes care of everything
that has to be done after a transfer. This function attempts to leave
- matters in a state so that Curl_do() should be possible to call again on
+ matters in a state so that `Curl_do()` should be possible to call again on
the same connection (in a persistent connection case). It might also soon
- be closed with Curl_disconnect().
+ be closed with `Curl_disconnect()`.
- o Curl_disconnect()
+<a name="Curl_disconnect"></a>
+Curl_disconnect()
+-----------------
When doing normal connections and transfers, no one ever tries to close any
- connections so this is not normally called when curl_easy_perform() is
+ 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
is 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
@@ -216,8 +279,9 @@ Library
This function cleans up all resources that are associated with a single
connection.
-
- HTTP(S)
+<a name="http"></a>
+HTTP(S)
+=======
HTTP offers a lot and is the protocol in curl that uses the most lines of
code. There is a special file (lib/formdata.c) that offers all the multipart
@@ -229,100 +293,123 @@ Library
HTTPS uses in almost every means the same procedure as HTTP, with only two
exceptions: the connect procedure is different and the function used to read
or write from the socket is different, although the latter fact is hidden in
- the source by the use of Curl_read() for reading and Curl_write() for writing
- data to the remote server.
+ the source by the use of `Curl_read()` for reading and `Curl_write()` for
+ writing data to the remote server.
- http_chunks.c contains functions that understands HTTP 1.1 chunked transfer
+ `http_chunks.c` contains functions that understands HTTP 1.1 chunked transfer
encoding.
- An interesting detail with the HTTP(S) request, is the Curl_add_buffer()
+ An interesting detail with the HTTP(S) request, is the `Curl_add_buffer()`
series of functions we use. They append data to one single buffer, and when
the building is done the entire request is sent off in one single write. This
is done this way to overcome problems with flawed firewalls and lame servers.
- FTP
+<a name="ftp"></a>
+FTP
+===
- The Curl_if2ip() function can be used for getting the IP number of a
+ The `Curl_if2ip()` function can be used for getting the IP number of a
specified network interface, and it resides in lib/if2ip.c.
- Curl_ftpsendf() is used for sending FTP commands to the remote server. It was
- made a separate function to prevent us programmers from forgetting that they
- must be CRLF terminated. They must also be sent in one single write() to make
- firewalls and similar happy.
+ `Curl_ftpsendf()` is used for sending FTP commands to the remote server. It
+ was made a separate function to prevent us programmers from forgetting that
+ they must be CRLF terminated. They must also be sent in one single write() to
+ make firewalls and similar happy.
- Kerberos
+<a name="kerberos"></a>
+Kerberos
+--------
Kerberos support is mainly in lib/krb5.c and lib/security.c but also
- curl_sasl_sspi.c and curl_sasl_gssapi.c for the email protocols and
- socks_gssapi.c & socks_sspi.c for SOCKS5 proxy specifics.
+ `curl_sasl_sspi.c` and `curl_sasl_gssapi.c` for the email protocols and
+ `socks_gssapi.c` and `socks_sspi.c` for SOCKS5 proxy specifics.
- TELNET
+<a name="telnet"></a>
+TELNET
+======
Telnet is implemented in lib/telnet.c.
- FILE
+<a name="file"></a>
+FILE
+====
The file:// protocol is dealt with in lib/file.c.
- SMB
+<a name="smb"></a>
+SMB
+===
The smb:// protocol is dealt with in lib/smb.c.
- LDAP
+<a name="ldap"></a>
+LDAP
+====
Everything LDAP is in lib/ldap.c and lib/openldap.c
- E-mail
+<a name="email"></a>
+E-mail
+======
The e-mail related source code is in lib/imap.c, lib/pop3.c and lib/smtp.c.
- GENERAL
+<a name="general"></a>
+General
+=======
URL encoding and decoding, called escaping and unescaping in the source code,
is found in lib/escape.c.
While transferring data in Transfer() a few functions might get used.
- curl_getdate() in lib/parsedate.c is for HTTP date comparisons (and more).
+ `curl_getdate()` in lib/parsedate.c is for HTTP date comparisons (and 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 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/getenv.c offers `curl_getenv()` which is for reading environment
+ variables in a neat platform independent way. That's 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
gettimeofday() and a few support functions for timeval conversions.
- A function named curl_version() that returns the full curl version string is
- found in lib/version.c.
+ A function named `curl_version()` that returns the full curl version string
+ is found in lib/version.c.
+<a name="persistent"></a>
Persistent Connections
======================
The persistent connection support in libcurl requires some considerations on
how to do things inside of the library.
- o The 'SessionHandle' struct returned in the curl_easy_init() call must never
- hold connection-oriented data. It is meant to hold the root data as well as
- all the options etc that the library-user may choose.
- o The 'SessionHandle' struct holds the "connection cache" (an array of
+ - The 'SessionHandle' struct returned in the [`curl_easy_init()`][2] call
+ must never hold connection-oriented data. It is meant to hold the root data
+ as well as all the options etc that the library-user may choose.
+
+ - The 'SessionHandle' struct holds the "connection cache" (an array of
pointers to 'connectdata' structs).
- o This enables the 'curl handle' to be reused on subsequent transfers.
- o When libcurl is told to perform a transfer, it first checks for an already
+
+ - This enables the 'curl handle' to be reused on subsequent transfers.
+
+ - When libcurl is told to perform a transfer, it first checks for an already
existing connection in the cache that we can use. Otherwise it creates a
new one and adds that the cache. If the cache is full already when a new
connection is added added, it will first close the oldest unused one.
- o When the transfer operation is complete, the connection is left
+
+ - 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.
- o When curl_easy_cleanup() is called, we close all still opened connections,
+
+ - When `curl_easy_cleanup()` is called, we close all still opened connections,
unless of course the multi interface "owns" the connections.
The curl handle must be re-used in order for the persistent connections to
work.
+<a name="multi"></a>
multi interface/non-blocking
============================
@@ -341,6 +428,7 @@ multi interface/non-blocking
protocols are crappy examples and they are subject for rewrite in the future
to better fit the libcurl protocol family.
+<a name="ssl"></a>
SSL libraries
=============
@@ -350,36 +438,39 @@ SSL libraries
in future libcurl versions.
To deal with this internally in the best way possible, we have a generic SSL
- function API as provided by the vtls.[ch] system, and they are the only SSL
- functions we must use from within libcurl. vtls is then crafted to use the
- appropriate lower-level function calls to whatever SSL library that is in
+ function API as provided by the vtls/vtls.[ch] system, and they are the only
+ SSL functions we must use from within libcurl. vtls is then crafted to use
+ the appropriate lower-level function calls to whatever SSL library that is in
use. For example vtls/openssl.[ch] for the OpenSSL library.
+<a name="symbols"></a>
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're
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,
+ 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
- API functions are marked with CURL_EXTERN in the public header files so that
- all others can be hidden on platforms where this is possible.
+ API functions are marked with `CURL_EXTERN` in the public header files so
+ that all others can be hidden on platforms where this is possible.
+<a name="returncodes"></a>
Return Codes and Informationals
===============================
I've 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 error
- must use the Curl_failf() function to set the human-readable error
+ 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
+ error must use the `Curl_failf()` function to set the human-readable error
description.
In aiding the user to understand what's happening and to debug curl usage, we
- must supply a fair amount 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.
+ must supply a fair amount 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.
+<a name="abi"></a>
API/ABI
=======
@@ -387,29 +478,31 @@ API/ABI
that makes it easier to keep a solid API/ABI over time. See docs/libcurl/ABI
for our promise to users.
+<a name="client"></a>
Client
======
- main() resides in src/tool_main.c.
+ main() resides in `src/tool_main.c`.
- src/tool_hugehelp.c is automatically generated by the mkhelp.pl perl script
+ `src/tool_hugehelp.c` is automatically generated by the mkhelp.pl perl script
to display the complete "manual" and the src/tool_urlglob.c file holds the
functions used for the URL-"globbing" support. Globbing in the sense that the
{} and [] expansion stuff is there.
The client mostly messes around to setup its 'config' struct properly, then
- it calls the curl_easy_*() functions of the library and when it gets back
- control after the curl_easy_perform() it cleans up the library, checks status
- and exits.
+ it calls the `curl_easy_*()` functions of the library and when it gets back
+ control after the `curl_easy_perform()` it cleans up the library, checks
+ status and exits.
When the operation is done, the ourWriteOut() function in src/writeout.c may
be called to report about the operation. That function is using the
- curl_easy_getinfo() function to extract useful information from the curl
+ `curl_easy_getinfo()` function to extract useful information from the curl
session.
It may loop and do all this several times if many URLs were specified on the
command line or config file.
+<a name="memorydebug"></a>
Memory Debugging
================
@@ -439,6 +532,7 @@ Memory Debugging
the configure script. When --enable-debug is given both features will be
enabled, unless some restriction prevents memory tracking from being used.
+<a name="test"></a>
Test Suite
==========
@@ -456,29 +550,546 @@ Test Suite
The test suite automatically detects if curl was built with the memory
debugging enabled, and if it was it will detect memory leaks, too.
-Building Releases
-=================
+<a name="asyncdns"></a>
+Asynchronous name resolves
+==========================
+
+ libcurl can be built to do name resolves asynchronously, using either the
+ normal resolver in a threaded manner or by using c-ares.
+
+<a name="cares"></a>
+[c-ares][3]
+------
+
+### Build libcurl to use a c-ares
+
+1. ./configure --enable-ares=/path/to/ares/install
+2. make
+
+### c-ares on win32
+
+ First I compiled c-ares. I changed the default C runtime library to be the
+ single-threaded rather than the multi-threaded (this seems to be required to
+ prevent linking errors later on). Then I simply build the areslib project
+ (the other projects adig/ahost seem to fail under MSVC).
+
+ Next was libcurl. I opened lib/config-win32.h and I added a:
+ `#define USE_ARES 1`
+
+ Next thing I did was I added the path for the ares includes to the include
+ path, and the libares.lib to the libraries.
+
+ 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, stricmp,
+ etc.)
+
+<a name="curl_off_t"></a>
+`curl_off_t`
+==========
+
+ curl_off_t is a data type provided by the external libcurl include
+ headers. It is the type meant to be used for the [`curl_easy_setopt()`][1]
+ options that end with LARGE. The type is 64bit large on most modern
+ platforms.
+
+curlx
+=====
+
+ The libcurl source code offers a few functions by source only. They are not
+ part of the official libcurl API, but the source files might be useful for
+ others so apps can optionally compile/build with these sources to gain
+ additional functions.
+
+ We provide them through a single header file for easy access for apps:
+ "curlx.h"
+
+`curlx_strtoofft()`
+-------------------
+ A macro that converts a string containing a number to a curl_off_t number.
+ This might use the curlx_strtoll() function which is provided as source
+ code in strtoofft.c. Note that the function is only provided if no
+ strtoll() (or equivalent) function exist on your platform. If curl_off_t
+ is only a 32 bit number on your platform, this macro uses strtol().
+
+`curlx_tvnow()`
+---------------
+ returns a struct timeval for the current time.
+
+`curlx_tvdiff()`
+--------------
+ returns the difference between two timeval structs, in number of
+ milliseconds.
+
+`curlx_tvdiff_secs()`
+---------------------
+ returns the same as curlx_tvdiff but with full usec resolution (as a
+ double)
+
+Future
+------
+
+ Several functions will be removed from the public curl_ name space in a
+ future libcurl release. They will then only become available as curlx_
+ functions instead. To make the transition easier, we already today provide
+ these functions with the curlx_ prefix to allow sources to get built properly
+ with the new function names. The functions this concerns are:
+
+ - `curlx_getenv`
+ - `curlx_strequal`
+ - `curlx_strnequal`
+ - `curlx_mvsnprintf`
+ - `curlx_msnprintf`
+ - `curlx_maprintf`
+ - `curlx_mvaprintf`
+ - `curlx_msprintf`
+ - `curlx_mprintf`
+ - `curlx_mfprintf`
+ - `curlx_mvsprintf`
+ - `curlx_mvprintf`
+ - `curlx_mvfprintf`
+
+<a name="contentencoding"></a>
+Content Encoding
+================
+
+## About content encodings
+
+ [HTTP/1.1][4] specifies that a client may request that a server encode its
+ response. This is usually used to compress a response using one of a set of
+ commonly available compression techniques. These schemes are 'deflate' (the
+ zlib algorithm), 'gzip' and 'compress'. A client requests that the sever
+ perform an encoding by including an Accept-Encoding header in the request
+ document. The value of the header should be one of the recognized tokens
+ 'deflate', ... (there's a way to register new schemes/tokens, see sec 3.5 of
+ the spec). A server MAY honor the client's encoding request. When a response
+ is encoded, the server includes a Content-Encoding header in the
+ response. The value of the Content-Encoding header indicates which scheme was
+ used to encode the data.
+
+ A client may tell a server that it can understand several different encoding
+ schemes. In this case the server may choose any one of those and use it to
+ encode the response (indicating which one using the Content-Encoding header).
+ It's also possible for a client to attach priorities to different schemes so
+ that the server knows which it prefers. See sec 14.3 of RFC 2616 for more
+ information on the Accept-Encoding header.
+
+## Supported content encodings
+
+ The 'deflate' and 'gzip' content encoding are supported by libcurl. Both
+ regular and chunked transfers work fine. The zlib library is required for
+ this feature.
+
+## The libcurl interface
+
+ To cause libcurl to request a content encoding use:
+
+ [`curl_easy_setopt`][1](curl, [`CURLOPT_ACCEPT_ENCODING`][5], string)
+
+ where string is the intended value of the Accept-Encoding header.
+
+ Currently, libcurl only understands how to process responses that use the
+ "deflate" or "gzip" Content-Encoding, so the only values for
+ [`CURLOPT_ACCEPT_ENCODING`][5] that will work (besides "identity," which does
+ nothing) are "deflate" and "gzip" If a response is encoded using the
+ "compress" or methods, libcurl will return an error indicating that the
+ response could not be decoded. If <string> is NULL no Accept-Encoding header
+ is generated. If <string> is a zero-length string, then an Accept-Encoding
+ header containing all supported encodings will be generated.
+
+ The [`CURLOPT_ACCEPT_ENCODING`][5] must be set to any non-NULL value for
+ content to be automatically decoded. If it is not set and the server still
+ sends encoded content (despite not having been asked), the data is returned
+ in its raw form and the Content-Encoding type is not checked.
+
+## The curl interface
+
+ Use the [--compressed][6] option with curl to cause it to ask servers to
+ compress responses using any format supported by curl.
+
+<a name="hostip"></a>
+hostip.c explained
+==================
+
+ The main compile-time defines to keep in mind when reading the host*.c source
+ file are these:
+
+## `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.
+
+## `CURLRES_ARES`
+
+ is defined if libcurl is built to use c-ares for asynchronous name
+ resolves. This can be Windows or *nix.
+
+## `CURLRES_THREADED`
+
+ is defined if libcurl is built to use threading for asynchronous name
+ resolves. The name resolve will be done in a new thread, and the supported
+ asynch API will be the same as for ares-builds. This is the default under
+ (native) Windows.
+
+ If any of the two previous are defined, `CURLRES_ASYNCH` is defined too. If
+ libcurl is not built to use an asynchronous resolver, `CURLRES_SYNCH` is
+ defined.
+
+## host*.c sources
+
+ The host*.c sources files are split up like this:
+
+ - hostip.c - method-independent resolver functions and utility functions
+ - hostasyn.c - functions for asynchronous name resolves
+ - hostsyn.c - functions for synchronous name resolves
+ - asyn-ares.c - functions for asynchronous name resolves using c-ares
+ - asyn-thread.c - functions for asynchronous name resolves using threads
+ - hostip4.c - IPv4 specific functions
+ - hostip6.c - IPv6 specific functions
+
+ The hostip.h is the single united header file for all this. It defines the
+ `CURLRES_*` defines based on the config*.h and curl_setup.h defines.
+
+<a name="memoryleak"></a>
+Track Down Memory Leaks
+=======================
+
+## Single-threaded
+
+ Please note that this memory leak system is not adjusted to work in more
+ than one thread. If you want/need to use it in a multi-threaded app. Please
+ adjust accordingly.
+
+
+## Build
+
+ Rebuild libcurl with -DCURLDEBUG (usually, rerunning configure with
+ --enable-debug fixes this). 'make clean' first, then 'make' so that all
+ files actually are rebuilt properly. It will also make sense to build
+ libcurl with the debug option (usually -g to the compiler) so that debugging
+ it will be easier if you actually do find a leak in the library.
+
+ This will create a library that has memory debugging enabled.
+
+## Modify Your Application
+
+ Add a line in your application code:
+
+ `curl_memdebug("dump");`
+
+ This will make the malloc debug system output a full trace of all resource
+ using functions to the given file name. Make sure you rebuild your program
+ and that you link with the same libcurl you built for this purpose as
+ described above.
+
+## Run Your Application
+
+ Run your program as usual. Watch the specified memory trace file grow.
+
+ Make your program exit and use the proper libcurl cleanup functions etc. So
+ that all non-leaks are returned/freed properly.
+
+## Analyze the Flow
+
+ Use the tests/memanalyze.pl perl script to analyze the dump file:
+
+ 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!
+
+ If this doesn't 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>
+`multi_socket`
+==============
+
+ Implementation of the `curl_multi_socket` API
+
+ The main ideas of this API are simply:
+
+ 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).
+
+ 2 - When the application discovers action on a single socket, it calls
+ libcurl and informs that there was action on this particular socket and
+ libcurl can then act on that socket/transfer only and not care about
+ any other transfers. (The previous API always had to scan through all
+ the existing transfers.)
+
+ The idea is that [`curl_multi_socket_action()`][7] calls a given callback
+ with information about what socket to wait for what action on, and the
+ callback only gets called if the status of that socket has changed.
+
+ We also added a timer callback that makes libcurl call the application when
+ the timeout value changes, and you set that with [`curl_multi_setopt()`][9]
+ and the [`CURLMOPT_TIMERFUNCTION`][10] option. To get this to work,
+ Internally, there's an added a struct to each easy handle in which we store
+ an "expire time" (if any). The structs are then "splay sorted" so that we
+ can add and remove times from the linked list and yet somewhat swiftly
+ figure out both how long time there is until the next nearest timer expires
+ and which timer (handle) we should take care of now. Of course, the upside
+ of all this is that we get a [`curl_multi_timeout()`][8] that should also
+ work with old-style applications that use [`curl_multi_perform()`][11].
+
+ We created an internal "socket to easy handles" hash table that given
+ a socket (file descriptor) return the easy handle that waits for action on
+ that socket. This hash is made using the already existing hash code
+ (previously only used for the DNS cache).
+
+ To make libcurl able to report plain sockets in the socket callback, we had
+ to re-organize the internals of the [`curl_multi_fdset()`][12] etc so that
+ the conversion from sockets to `fd_sets` for that function is only done in
+ the last step before the data is returned. I also had to extend c-ares to
+ get a function that can return plain sockets, as that library too returned
+ only `fd_sets` and that is no longer good enough. The changes done to c-ares
+ are available in c-ares 1.3.1 and later.
+
+<a name="structs"></a>
+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.
+
+## SessionHandle
+
+ The SessionHandle handle struct is the one returned to the outside in the
+ external API as a "CURL *". This is usually known as an easy handle in API
+ documentations and examples.
+
+ Information and state that is related to the actual connection is in the
+ 'connectdata' struct. When a transfer is about to be made, libcurl will
+ either create a new connection or re-use an existing one. The particular
+ connectdata that is used by this handle is pointed out by
+ SessionHandle->easy_conn.
+
+ Data and information that regard this particular single transfer is put in
+ the SingleRequest sub-struct.
+
+ When the SessionHandle struct is added to a multi handle, as it must be in
+ order to do any transfer, the ->multi member will point to the `Curl_multi`
+ struct it belongs to. The ->prev and ->next members will then be used by the
+ multi code to keep a linked list of SessionHandle structs that are added to
+ that same multi handle. libcurl always uses multi so ->multi *will* point to
+ a `Curl_multi` when a transfer is in progress.
+
+ ->mstate is the multi state of this particular SessionHandle. When
+ `multi_runsingle()` is called, it will act on this handle according to which
+ state it is in. The mstate is also what tells which sockets to return for a
+ specific SessionHandle when [`curl_multi_fdset()`][12] is called etc.
+
+ The libcurl source code generally use the name 'data' for the variable that
+ points to the SessionHandle.
+
+ When doing multiplexed HTTP/2 transfers, each SessionHandle is associated
+ with an individual stream, sharing the same connectdata struct. Multiplexing
+ makes it even more important to keep things associated with the right thing!
+
+## connectdata
+
+ A general idea in libcurl is to keep connections around in a connection
+ "cache" after they have been used in case they will be used again and then
+ re-use an existing one instead of creating a new as it creates a significant
+ 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
+ and then this struct can be removed from the cache and freed.
+
+ Thus, the same SessionHandle can be used multiple times and each time select
+ another connectdata struct to use for the connection. Keep this in mind, as
+ it is then important to consider if options or choices are based on the
+ connection or the SessionHandle.
+
+ Functions in libcurl will assume that connectdata->data points to the
+ SessionHandle that uses this connection (for the moment).
+
+ As a special complexity, some protocols supported by libcurl require a
+ special disconnect procedure that is more than just shutting down the
+ socket. It can involve sending one or more commands to the server before
+ doing so. Since connections are kept in the connection cache after use, the
+ original SessionHandle may no longer be around when the time comes to shut
+ down a particular connection. For this purpose, libcurl holds a special
+ dummy `closure_handle` SessionHandle in the `Curl_multi` struct to use when
+ needed.
+
+ FTP uses two TCP connections for a typical transfer but it keeps both in
+ this single struct and thus can be considered a single connection for most
+ internal concerns.
+
+ The libcurl source code generally use the name 'conn' for the variable that
+ points to the connectdata.
+
+## Curl_multi
+
+ Internally, the easy interface is implemented as a wrapper around multi
+ interface functions. This makes everything multi interface.
+
+ `Curl_multi` is the multi handle struct exposed as "CURLM *" in external APIs.
+
+ This struct holds a list of SessionHandle structs that have been added to
+ this handle with [`curl_multi_add_handle()`][13]. The start of the list is
+ ->easyp and ->num_easy is a counter of added SessionHandles.
+
+ ->msglist is a linked list of messages to send back when
+ [`curl_multi_info_read()`][14] is called. Basically a node is added to that
+ list when an individual SessionHandle's transfer has completed.
+
+ ->hostcache points to the name cache. It is a hash table for looking up name
+ to IP. The nodes have a limited life time in there and this cache is meant
+ to reduce the time for when the same name is wanted within a short period of
+ time.
+
+ ->timetree points to a tree of SessionHandles, sorted by the remaining time
+ until it should be checked - normally some sort of timeout. Each
+ SessionHandle has one node in the tree.
+
+ ->sockhash is a hash table to allow fast lookups of socket descriptor to
+ which SessionHandle that uses that descriptor. This is necessary for the
+ `multi_socket` API.
+
+ ->conn_cache points to the connection cache. It keeps track of all
+ connections that are kept after use. The cache has a maximum size.
+
+ ->closure_handle is described in the 'connectdata' section.
+
+ The libcurl source code generally use the name 'multi' for the variable that
+ points to the Curl_multi struct.
+
+## Curl_handler
+
+ Each unique protocol that is supported by libcurl needs to provide at least
+ one `Curl_handler` struct. It defines what the protocol is called and what
+ functions the main code should call to deal with protocol specific issues.
+ In general, there's a source file named [protocol].c in which there's a
+ "struct `Curl_handler` `Curl_handler_[protocol]`" declared. In url.c there's
+ then the main array with all individual `Curl_handler` structs pointed to
+ from a single array which is scanned through when a URL is given to libcurl
+ to work with.
+
+ ->scheme is the URL scheme name, usually spelled out in uppercase. That's
+ "HTTP" or "FTP" etc. SSL versions of the protcol need its own `Curl_handler`
+ setup so HTTPS separate from HTTP.
+
+ ->setup_connection is called to allow the protocol code to allocate protocol
+ specific data that then gets associated with that SessionHandle for the rest
+ of this transfer. It gets freed again at the end of the transfer. It will be
+ called before the 'connectdata' for the transfer has been selected/created.
+ Most protocols will allocate its private 'struct [PROTOCOL]' here and assign
+ SessionHandle->req.protop to point to it.
+
+ ->connect_it allows a protocol to do some specific actions after the TCP
+ connect is done, that can still be considered part of the connection phase.
+
+ Some protocols will alter the connectdata->recv[] and connectdata->send[]
+ function pointers in this function.
+
+ ->connecting is similarly a function that keeps getting called as long as the
+ protocol considers itself still in the connecting phase.
+
+ ->do_it is the function called to issue the transfer request. What we call
+ the DO action internally. If the DO is not enough and things need to be kept
+ getting done for the entire DO sequence to complete, ->doing is then usually
+ also provided. Each protocol that needs to do multiple commands or similar
+ for do/doing need to implement their own state machines (see SCP, SFTP,
+ FTP). Some protocols (only FTP and only due to historical reasons) has a
+ separate piece of the DO state called `DO_MORE`.
+
+ ->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
+ main data has been transferred.
+
+ ->do_more gets called during the `DO_MORE` state. The FTP protocol uses this
+ state when setting up the second connection.
+
+ ->`proto_getsock`
+ ->`doing_getsock`
+ ->`domore_getsock`
+ ->`perform_getsock`
+ Functions that return socket information. Which socket(s) to wait for which
+ action(s) during the particular multi state.
+
+ ->disconnect is called immediately before the TCP connection is shutdown.
+
+ ->readwrite gets called during transfer to allow the protocol to do extra
+ reads/writes
+
+ ->defport is the default report TCP or UDP port this protocol uses
+
+ ->protocol is one or more bits in the `CURLPROTO_*` set. The SSL versions
+ have their "base" protocol set and then the SSL variation. Like
+ "HTTP|HTTPS".
+
+ ->flags is a bitmask with additional information about the protocol that will
+ make it get treated differently by the generic engine:
+
+ - `PROTOPT_SSL` - will make it connect and negotiate SSL
+
+ - `PROTOPT_DUAL` - this protocol uses two connections
+
+ - `PROTOPT_CLOSEACTION` - this protocol has actions to do before closing the
+ connection. This flag is no longer used by code, yet still set for a bunch
+ protocol handlers.
+
+ - `PROTOPT_DIRLOCK` - "direction lock". The SSH protocols set this bit to
+ limit which "direction" of socket actions that the main engine will
+ concern itself about.
+
+ - `PROTOPT_NONETWORK` - a protocol that doesn't 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
+ (?foo=bar)
+
+## conncache
- There's no magic to this. When you consider everything stable enough to be
- released, do this:
+ Is a hash table with connections for later re-use. Each SessionHandle has
+ a pointer to its connection cache. Each multi handle sets up a connection
+ cache that all added SessionHandles share by default.
- 1. Tag the source code accordingly.
+## Curl_share
+
+ The libcurl share API allocates a `Curl_share` struct, exposed to the
+ external API as "CURLSH *".
- 2. run the 'maketgz' script (using 'make distcheck' will give you a pretty
- good view on the status of the current sources). maketgz requires a
- version number and creates the release archive. maketgz uses 'make dist'
- for the actual archive building, why you need to fill in the Makefile.am
- files properly for which files that should be included in the release
- archives.
+ The idea is that the struct can have a set of own versions of caches and
+ pools and then by providing this struct in the `CURLOPT_SHARE` option, those
+ specific SessionHandles will use the caches/pools that this share handle
+ holds.
+
+ Then individual SessionHandle structs can be made to share specific things
+ that they otherwise wouldn't, such as cookies.
- 3. When that's complete, sign the output files.
+ The `Curl_share` struct can currently hold cookies, DNS cache and the SSL
+ session cache.
- 4. Upload
+## CookieInfo
- 5. Update web site and changelog on site
+ This is the main cookie struct. It holds all known cookies and related
+ information. Each SessionHandle has its own private CookieInfo even when
+ they are added to a multi handle. They can be made to share cookies by using
+ the share API.
- 6. Send announcement to the mailing lists
- NOTE: you must have curl checked out from git to be able to do a proper
- release build. The release tarballs do not have everything setup in order to
- do releases properly.
+[1]: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
+[2]: http://curl.haxx.se/libcurl/c/curl_easy_init.html
+[3]: http://c-ares.haxx.se/
+[4]: https://tools.ietf.org/html/rfc7230 "RFC 7230"
+[5]: http://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
+[6]: http://curl.haxx.se/docs/manpage.html#--compressed
+[7]: http://curl.haxx.se/libcurl/c/curl_multi_socket_action.html
+[8]: http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
+[9]: http://curl.haxx.se/libcurl/c/curl_multi_setopt.html
+[10]: http://curl.haxx.se/libcurl/c/CURLMOPT_TIMERFUNCTION.html
+[11]: http://curl.haxx.se/libcurl/c/curl_multi_perform.html
+[12]: http://curl.haxx.se/libcurl/c/curl_multi_fdset.html
+[13]: http://curl.haxx.se/libcurl/c/curl_multi_add_handle.html
+[14]: http://curl.haxx.se/libcurl/c/curl_multi_info_read.html
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index 09cc07e8..345dc45d 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -97,7 +97,7 @@ may have been fixed since this was written!
something beyond ascii but currently libcurl will only pass in the verbatim
string the app provides. There are several browsers that already do this
encoding. The key seems to be the updated draft to RFC2231:
- http://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02
+ https://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02
66. When using telnet, the time limitation options don't work.
http://curl.haxx.se/bug/view.cgi?id=846
diff --git a/docs/LIBCURL-STRUCTS b/docs/LIBCURL-STRUCTS
deleted file mode 100644
index 136d17ce..00000000
--- a/docs/LIBCURL-STRUCTS
+++ /dev/null
@@ -1,245 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
-Structs in libcurl
-
-This document 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.
-
- 1. The main structs in libcurl
- 1.1 SessionHandle
- 1.2 connectdata
- 1.3 Curl_multi
- 1.4 Curl_handler
- 1.5 conncache
- 1.6 Curl_share
- 1.7 CookieInfo
-
-==============================================================================
-
-1. The main structs in libcurl
-
- 1.1 SessionHandle
-
- The SessionHandle handle struct is the one returned to the outside in the
- external API as a "CURL *". This is usually known as an easy handle in API
- documentations and examples.
-
- Information and state that is related to the actual connection is in the
- 'connectdata' struct. When a transfer is about to be made, libcurl will
- either create a new connection or re-use an existing one. The particular
- connectdata that is used by this handle is pointed out by
- SessionHandle->easy_conn.
-
- Data and information that regard this particular single transfer is put in
- the SingleRequest sub-struct.
-
- When the SessionHandle struct is added to a multi handle, as it must be in
- order to do any transfer, the ->multi member will point to the Curl_multi
- struct it belongs to. The ->prev and ->next members will then be used by the
- multi code to keep a linked list of SessionHandle structs that are added to
- that same multi handle. libcurl always uses multi so ->multi *will* point to
- a Curl_multi when a transfer is in progress.
-
- ->mstate is the multi state of this particular SessionHandle. When
- multi_runsingle() is called, it will act on this handle according to which
- state it is in. The mstate is also what tells which sockets to return for a
- specific SessionHandle when curl_multi_fdset() is called etc.
-
- The libcurl source code generally use the name 'data' for the variable that
- points to the SessionHandle.
-
-
- 1.2 connectdata
-
- A general idea in libcurl is to keep connections around in a connection
- "cache" after they have been used in case they will be used again and then
- re-use an existing one instead of creating a new as it creates a significant
- 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
- and then this struct can be removed from the cache and freed.
-
- Thus, the same SessionHandle can be used multiple times and each time select
- another connectdata struct to use for the connection. Keep this in mind, as
- it is then important to consider if options or choices are based on the
- connection or the SessionHandle.
-
- Functions in libcurl will assume that connectdata->data points to the
- SessionHandle that uses this connection.
-
- As a special complexity, some protocols supported by libcurl require a
- special disconnect procedure that is more than just shutting down the
- socket. It can involve sending one or more commands to the server before
- doing so. Since connections are kept in the connection cache after use, the
- original SessionHandle may no longer be around when the time comes to shut
- down a particular connection. For this purpose, libcurl holds a special
- dummy 'closure_handle' SessionHandle in the Curl_multi struct to
-
- FTP uses two TCP connections for a typical transfer but it keeps both in
- this single struct and thus can be considered a single connection for most
- internal concerns.
-
- The libcurl source code generally use the name 'conn' for the variable that
- points to the connectdata.
-
-
- 1.3 Curl_multi
-
- Internally, the easy interface is implemented as a wrapper around multi
- interface functions. This makes everything multi interface.
-
- Curl_multi is the multi handle struct exposed as "CURLM *" in external APIs.
-
- This struct holds a list of SessionHandle structs that have been added to
- this handle with curl_multi_add_handle(). The start of the list is ->easyp
- and ->num_easy is a counter of added SessionHandles.
-
- ->msglist is a linked list of messages to send back when
- curl_multi_info_read() is called. Basically a node is added to that list
- when an individual SessionHandle's transfer has completed.
-
- ->hostcache points to the name cache. It is a hash table for looking up name
- to IP. The nodes have a limited life time in there and this cache is meant
- to reduce the time for when the same name is wanted within a short period of
- time.
-
- ->timetree points to a tree of SessionHandles, sorted by the remaining time
- until it should be checked - normally some sort of timeout. Each
- SessionHandle has one node in the tree.
-
- ->sockhash is a hash table to allow fast lookups of socket descriptor to
- which SessionHandle that uses that descriptor. This is necessary for the
- multi_socket API.
-
- ->conn_cache points to the connection cache. It keeps track of all
- connections that are kept after use. The cache has a maximum size.
-
- ->closure_handle is described in the 'connectdata' section.
-
- The libcurl source code generally use the name 'multi' for the variable that
- points to the Curl_multi struct.
-
-
- 1.4 Curl_handler
-
- Each unique protocol that is supported by libcurl needs to provide at least
- one Curl_handler struct. It defines what the protocol is called and what
- functions the main code should call to deal with protocol specific issues.
- In general, there's a source file named [protocol].c in which there's a
- "struct Curl_handler Curl_handler_[protocol]" declared. In url.c there's
- then the main array with all individual Curl_handler structs pointed to from
- a single array which is scanned through when a URL is given to libcurl to
- work with.
-
- ->scheme is the URL scheme name, usually spelled out in uppercase. That's
- "HTTP" or "FTP" etc. SSL versions of the protcol need its own Curl_handler
- setup so HTTPS separate from HTTP.
-
- ->setup_connection is called to allow the protocol code to allocate protocol
- specific data that then gets associated with that SessionHandle for the rest
- of this transfer. It gets freed again at the end of the transfer. It will be
- called before the 'connectdata' for the transfer has been selected/created.
- Most protocols will allocate its private 'struct [PROTOCOL]' here and assign
- SessionHandle->req.protop to point to it.
-
- ->connect_it allows a protocol to do some specific actions after the TCP
- connect is done, that can still be considered part of the connection phase.
-
- Some protocols will alter the connectdata->recv[] and connectdata->send[]
- function pointers in this function.
-
- ->connecting is similarly a function that keeps getting called as long as the
- protocol considers itself still in the connecting phase.
-
- ->do_it is the function called to issue the transfer request. What we call
- the DO action internally. If the DO is not enough and things need to be kept
- getting done for the entire DO sequence to complete, ->doing is then usually
- also provided. Each protocol that needs to do multiple commands or similar
- for do/doing need to implement their own state machines (see SCP, SFTP,
- FTP). Some protocols (only FTP and only due to historical reasons) has a
- separate piece of the DO state called DO_MORE.
-
- ->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
- main data has been transferred.
-
- ->do_more gets called during the DO_MORE state. The FTP protocol uses this
- state when setting up the second connection.
-
- ->proto_getsock
- ->doing_getsock
- ->domore_getsock
- ->perform_getsock
- Functions that return socket information. Which socket(s) to wait for which
- action(s) during the particular multi state.
-
- ->disconnect is called immediately before the TCP connection is shutdown.
-
- ->readwrite gets called during transfer to allow the protocol to do extra
- reads/writes
-
- ->defport is the default report TCP or UDP port this protocol uses
-
- ->protocol is one or more bits in the CURLPROTO_* set. The SSL versions have
- their "base" protocol set and then the SSL variation. Like "HTTP|HTTPS".
-
- ->flags is a bitmask with additional information about the protocol that will
- make it get treated differently by the generic engine:
-
- PROTOPT_SSL - will make it connect and negotiate SSL
-
- PROTOPT_DUAL - this protocol uses two connections
-
- PROTOPT_CLOSEACTION - this protocol has actions to do before closing the
- connection. This flag is no longer used by code, yet still set for a bunch
- protocol handlers.
-
- PROTOPT_DIRLOCK - "direction lock". The SSH protocols set this bit to
- limit which "direction" of socket actions that the main engine will
- concern itself about.
-
- PROTOPT_NONETWORK - a protocol that doesn't 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
- (?foo=bar)
-
-
- 1.5 conncache
-
- Is a hash table with connections for later re-use. Each SessionHandle has
- a pointer to its connection cache. Each multi handle sets up a connection
- cache that all added SessionHandles share by default.
-
-
- 1.6 Curl_share
-
- The libcurl share API allocates a Curl_share struct, exposed to the external
- API as "CURLSH *".
-
- The idea is that the struct can have a set of own versions of caches and
- pools and then by providing this struct in the CURLOPT_SHARE option, those
- specific SessionHandles will use the caches/pools that this share handle
- holds.
-
- Then individual SessionHandle structs can be made to share specific things
- that they otherwise wouldn't, such as cookies.
-
- The Curl_share struct can currently hold cookies, DNS cache and the SSL
- session cache.
-
-
- 1.7 CookieInfo
-
- This is the main cookie struct. It holds all known cookies and related
- information. Each SessionHandle has its own private CookieInfo even when
- they are added to a multi handle. They can be made to share cookies by using
- the share API.
diff --git a/docs/LICENSE-MIXING b/docs/LICENSE-MIXING
index a53835c4..ccb6ada3 100644
--- a/docs/LICENSE-MIXING
+++ b/docs/LICENSE-MIXING
@@ -23,29 +23,29 @@ libcurl http://curl.haxx.se/docs/copyright.html
Uses an MIT (or Modified BSD)-style license that is as liberal as
possible.
-OpenSSL http://www.openssl.org/source/license.html
+OpenSSL https://www.openssl.org/source/license.html
(May be used for SSL/TLS support) Uses an Original BSD-style license
with an announcement clause that makes it "incompatible" with GPL. You
are not allowed to ship binaries that link with OpenSSL that includes
GPL code (unless that specific GPL code includes an exception for
OpenSSL - a habit that is growing more and more common). If OpenSSL's
- licensing is a problem for you, consider using GnuTLS or yassl
- instead.
+ licensing is a problem for you, consider using another TLS library.
GnuTLS http://www.gnutls.org/
(May be used for SSL/TLS support) Uses the LGPL[3] license. If this is
- a problem for you, consider using OpenSSL instead. Also note that
+ a problem for you, consider using another TLS library. Also note that
GnuTLS itself depends on and uses other libs (libgcrypt and
libgpg-error) and they too are LGPL- or GPL-licensed.
-yassl http://www.yassl.com/
+WolfSSL https://www.wolfssl.com/
- (May be used for SSL/TLS support) Uses the GPL[1] license. If this is
- a problem for you, consider using OpenSSL or GnuTLS instead.
+ (May be used for SSL/TLS support) Uses the GPL[1] license or a
+ propietary license. If this is a problem for you, consider using
+ another TLS library.
-NSS http://www.mozilla.org/projects/security/pki/nss/
+NSS https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
(May be used for SSL/TLS support) Is covered by the MPL[4] license,
the GPL[1] license and the LGPL[3] license. You may choose to license
@@ -57,13 +57,29 @@ axTLS http://axtls.sourceforge.net/
(May be used for SSL/TLS support) Uses a Modified BSD-style license.
+mbedTLS https://tls.mbed.org/
+
+ (May be used for SSL/TLS support) Uses the GPL[1] license or a
+ propietary license. If this is a problem for you, consider using
+ another TLS library.
+
+BoringSSL https://boringssl.googlesource.com/
+
+ (May be used for SSL/TLS support) As an OpenSSL fork, it has the same
+ license as that.
+
+libressl http://www.libressl.org/
+
+ (May be used for SSL/TLS support) As an OpenSSL fork, it has the same
+ license as that.
+
c-ares http://daniel.haxx.se/projects/c-ares/license.html
(Used for asynchronous name resolves) Uses an MIT license that is very
liberal and imposes no restrictions on any other library or part you
may link with.
-zlib http://www.gzip.org/zlib/zlib_license.html
+zlib http://www.zlib.net/zlib_license.html
(Used for compressed Transfer-Encoding support) Uses an MIT-style
license that shouldn't collide with any other library.
@@ -73,12 +89,12 @@ MIT Kerberos http://web.mit.edu/kerberos/www/dist/
(May be used for GSS support) MIT licensed, that shouldn't collide
with any other parts.
-Heimdal http://www.pdc.kth.se/heimdal/
+Heimdal http://www.h5l.org
(May be used for GSS support) Heimdal is Original BSD licensed with
the announcement clause.
-GNU GSS http://www.gnu.org/software/gss/
+GNU GSS https://www.gnu.org/software/gss/
(May be used for GSS support) GNU GSS is GPL licensed. Note that you
may not distribute binary curl packages that uses this if you build
@@ -105,10 +121,10 @@ libssh2 http://www.libssh2.org/
(Used for scp and sftp support) libssh2 uses a Modified BSD-style
license.
-[1] = GPL - GNU General Public License: http://www.gnu.org/licenses/gpl.html
-[2] = http://www.fsf.org/licenses/gpl-faq.html#GPLIncompatibleLibs details on
+[1] = GPL - GNU General Public License: https://www.gnu.org/licenses/gpl.html
+[2] = https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs details on
how to write such an exception to the GPL
[3] = LGPL - GNU Lesser General Public License:
- http://www.gnu.org/licenses/lgpl.html
+ https://www.gnu.org/licenses/lgpl.html
[4] = MPL - Mozilla Public License:
- http://www.mozilla.org/MPL/
+ https://www.mozilla.org/MPL/
diff --git a/docs/MAIL-ETIQUETTE b/docs/MAIL-ETIQUETTE
index fb503126..b6c0f452 100644
--- a/docs/MAIL-ETIQUETTE
+++ b/docs/MAIL-ETIQUETTE
@@ -230,7 +230,7 @@ MAIL ETIQUETTE
Quote as little as possible. Just enough to provide the context you cannot
leave out. A lengthy description can be found here:
- http://www.netmeister.org/news/learn2quote.html
+ https://www.netmeister.org/news/learn2quote.html
2.7 Digest
diff --git a/docs/MANUAL b/docs/MANUAL
index 113df201..fb349485 100644
--- a/docs/MANUAL
+++ b/docs/MANUAL
@@ -470,8 +470,8 @@ COOKIES
stored cookies which match the request as it follows the location. The
file "empty.txt" may be a nonexistent file.
- Alas, to both read and write cookies from a netscape cookie file, you can
- set both -b and -c to use the same file:
+ To read and write cookies from a netscape cookie file, you can set both -b
+ and -c to use the same file:
curl -b cookies.txt -c cookies.txt www.example.com
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 1f92911a..e3e27d33 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,8 +37,8 @@ EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \
KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \
$(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \
- MAIL-ETIQUETTE HTTP-COOKIES LIBCURL-STRUCTS SECURITY RELEASE-PROCEDURE \
- SSL-PROBLEMS
+ MAIL-ETIQUETTE HTTP-COOKIES SECURITY RELEASE-PROCEDURE \
+ SSL-PROBLEMS HTTP2.md ROADMAP.md
MAN2HTML= roffit < $< >$@
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 228099ec..cf60b2cb 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -21,7 +21,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -100,8 +100,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs INSTALL THANKS TODO
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am INSTALL \
+ THANKS TODO
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -122,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -438,8 +438,8 @@ EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \
KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \
$(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \
- MAIL-ETIQUETTE HTTP-COOKIES LIBCURL-STRUCTS SECURITY RELEASE-PROCEDURE \
- SSL-PROBLEMS
+ MAIL-ETIQUETTE HTTP-COOKIES SECURITY RELEASE-PROCEDURE \
+ SSL-PROBLEMS HTTP2.md ROADMAP.md
MAN2HTML = roffit < $< >$@
SUFFIXES = .1 .html .pdf
diff --git a/docs/RELEASE-PROCEDURE b/docs/RELEASE-PROCEDURE
index 164e1e98..fc31274e 100644
--- a/docs/RELEASE-PROCEDURE
+++ b/docs/RELEASE-PROCEDURE
@@ -1,9 +1,3 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
curl release procedure - how to do a release
============================================
@@ -84,12 +78,12 @@ Coming dates
Based on the description above, here are some planned release dates (at the
time of this writing):
-- February 25, 2015 (version 7.41.0)
-- April 22, 2015
-- June 17, 2015
+- June 17, 2015 (version 7.43.0)
- August 12, 2015
- October 7, 2015
- December 2, 2015
- January 27, 2016
- March 23, 2016
- May 18, 2016
+- July 13, 2016
+- September 7, 2016
diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md
new file mode 100644
index 00000000..eb52d187
--- /dev/null
+++ b/docs/ROADMAP.md
@@ -0,0 +1,139 @@
+curl the next few years - perhaps
+=================================
+
+Roadmap of things Daniel Stenberg and Steve Holme want to work on next. It is
+intended to serve as a guideline for others for information, feedback and
+possible participation.
+
+HTTP/2
+------
+
+- test suite
+
+ Base this on existing nghttp2 server to start with to make functional
+ tests. Later on we can adopt that code or work with nghttp2 to provide ways
+ to have the http2 server respond with broken responses to make sure we deal
+ with that nicely as well.
+
+ To decide: if we need to bundle parts of the nghttp2 stuff that probably
+ won't be shipped by many distros.
+
+- stream properties API
+
+ Provide options for setting priorities and dependencies among the streams
+ (easy handles). They are mostly information set for the stream and sent to
+ the server so we don't have to add much logic for this.
+
+- server push
+
+ Not exactly clear exactly how to support this API-wise, but by adding
+ handles without asking for a resource it could be a way to be prepared to
+ receive pushes in case such are sent. We probably need it to still specify
+ a URL with host name, port etc but we probably need a special option to
+ tell libcurl it is for server push purposes.
+
+- provide option for HTTP/2 "prior knowledge" over clear text
+
+ As it would avoid the roundtrip-heavy Upgrade: procedures when you _know_
+ it speaks HTTP/2.
+
+- provide option to allow curl to default to HTTP/2 only when using HTTPS
+
+ We could switch on HTTP/2 by-default for HTTPS quite easily and it
+ shouldn't hurt anyone, while HTTP/2 for HTTP by default could introduce
+ lots of Upgrade: roundtrips that users won't like. So a separated option
+ alternative makes sense.
+
+SRV records
+-----------
+
+How to find services for specific domains/hosts.
+
+HTTPS to proxy
+--------------
+
+To avoid network traffic to/from the proxy getting snooped on.
+
+curl_formadd()
+--------------
+
+make sure there's an easy handle passed in to `curl_formadd()`,
+`curl_formget()` and `curl_formfree()` by adding replacement functions and
+deprecating the old ones to allow custom mallocs and more
+
+third-party SASL
+----------------
+
+add support for third-party SASL libraries such as Cyrus SASL - may need to
+move existing native and SSPI based authentication into vsasl folder after
+reworking HTTP and SASL code
+
+SASL authentication in LDAP
+---------------------------
+
+...
+
+Simplify the SMTP email
+-----------------------
+
+Simplify the SMTP email interface so that programmers don't have to
+construct the body of an email that contains all the headers, alternative
+content, images and attachments - maintain raw interface so that
+programmers that want to do this can
+
+email capabilities
+------------------
+
+Allow the email protocols to return the capabilities before
+authenticating. This will allow an application to decide on the best
+authentication mechanism
+
+Win32 pthreads
+--------------
+
+Allow Windows threading model to be replaced by Win32 pthreads port
+
+dynamic buffer size
+-------------------
+
+Implement a dynamic buffer size to allow SFTP to use much larger buffers and
+possibly allow the size to be customizable by applications. Use less memory
+when handles are not in use?
+
+New stuff - curl
+----------------
+
+1. Embed a language interpreter (lua?). For that middle ground where curl
+ isn’t enough and a libcurl binding feels “too muchâ€. Build-time conditional
+ of course.
+
+2. Simplify the SMTP command line so that the headers and multi-part content
+ don't have to be constructed before calling curl
+
+Improve
+-------
+
+1. build for windows (considered hard by many users)
+
+2. curl -h output (considered overwhelming to users)
+
+3. we have > 160 command line options, is there a way to redo things to
+ simplify or improve the situation as we are likely to keep adding
+ features/options in the future too
+
+4. docs (considered "bad" by users but how do we make it better?)
+
+ - split up curl.1
+
+5. authentication framework (consider merging HTTP and SASL authentication to
+ give one API for protocols to call)
+
+6. Perform some of the clean up from the TODO document, removing old
+ definitions and such like that are currently earmarked to be removed years
+ ago
+
+Remove
+------
+
+1. makefile.vc files as there is no point in maintaining two sets of Windows
+ makefiles. Note: These are currently being used by the Windows autobuilds
diff --git a/docs/SSL-PROBLEMS b/docs/SSL-PROBLEMS
index 7ee4d14e..36502672 100644
--- a/docs/SSL-PROBLEMS
+++ b/docs/SSL-PROBLEMS
@@ -53,7 +53,7 @@ SSL ciphers
References:
- http://tools.ietf.org/html/draft-popov-tls-prohibiting-rc4-01
+ https://tools.ietf.org/html/draft-popov-tls-prohibiting-rc4-01
Allow BEAST
diff --git a/docs/THANKS b/docs/THANKS
index 4eaadb31..89a738dd 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -36,6 +36,7 @@ Alex Suykov
Alex Vinnik
Alex aka WindEagle
Alexander Beedie
+Alexander Dyagilev
Alexander Elgert
Alexander Klauer
Alexander Kourakos
@@ -55,6 +56,7 @@ Alona Rossen
Amol Pattekar
Amr Shahin
Anatoli Tubman
+Anders Bakken
Anders Gustafsson
Anders Havn
Andi Jahja
@@ -90,6 +92,7 @@ Andy Serpa
Andy Tsouladze
Angus Mackay
Anthon Pang
+Anthony Avina
Anthony Bryan
Anthony G. Basile
Antoine Calando
@@ -104,6 +107,7 @@ Arnaud Ebalard
Arthur Murray
Arve Knudsen
Arvid Norberg
+Ashish Shukla
Ask Bjørn Hansen
Askar Safin
Ates Goral
@@ -131,6 +135,7 @@ Benoit Neil
Benoit Sigoure
Bernard Leak
Bernhard Reutner-Fischer
+Bert Huijben
Bertrand Demiddelaer
Bill Doyle
Bill Egert
@@ -157,8 +162,10 @@ Brandon Wang
Brendan Jurd
Brent Beardsley
Brian Akins
+Brian Chrisman
Brian Dessent
Brian J. Murrell
+Brian Prodoehl
Brian R Duffy
Brian Ulm
Brock Noland
@@ -182,6 +189,7 @@ Charles Romestant
Chen Prog
Chih-Chung Chang
Chris "Bob Bob"
+Chris Araman
Chris Combes
Chris Conlon
Chris Deidun
@@ -245,6 +253,7 @@ Daniel Black
Daniel Cater
Daniel Egger
Daniel Johnson
+Daniel Melani
Daniel Mentz
Daniel Steinberg
Daniel Stenberg
@@ -306,6 +315,7 @@ Dirk Manske
Dmitri Shubin
Dmitriy Sergeyev
Dmitry Bartsevich
+Dmitry Eremin-Solenikov
Dmitry Falko
Dmitry Kurochkin
Dmitry Popov
@@ -321,6 +331,7 @@ Douglas Kilpatrick
Douglas R. Horner
Douglas Steinwand
Dov Murik
+Drake Arconis
Duane Cathey
Duncan Mac-Vicar Prett
Dustin Boswell
@@ -335,6 +346,7 @@ Edward Rudd
Edward Sheldrake
Eelco Dolstra
Eetu Ojanen
+Egon Eckert
Eldar Zaitov
Ellis Pritchard
Elmira A Semenova
@@ -390,6 +402,7 @@ François Charlier
Fred Machado
Fred New
Fred Noz
+Fred Stluka
Frederic Lepied
Fredrik Thulin
Gabriel Kuri
@@ -427,6 +440,7 @@ Glenn Sheridan
Gordon Marler
Gorilla Maguila
Grant Erickson
+Grant Pannell
Greg Hewgill
Greg Morse
Greg Onufer
@@ -540,6 +554,7 @@ Jeff Lawson
Jeff Phillips
Jeff Pohlmeyer
Jeff Weber
+Jens Rantil
Jeremy Friesner
Jeremy Huddleston
Jeremy Lin
@@ -567,6 +582,7 @@ Joe Halpin
Joe Malicki
Joe Mason
Joel Chen
+Joel Depooter
Jofell Gallardo
Johan Anderson
Johan Lantz
@@ -705,6 +721,7 @@ Lindley French
Ling Thio
Linus Nielsen Feltzing
Lisa Xu
+Liviu Chircu
Liza Alenchery
Lluís Batlle i Rossell
Loic Dachary
@@ -888,6 +905,7 @@ Oliver Schindler
Olivier Berger
Oren Souroujon
Oren Tirosh
+Orgad Shaneh
Ori Avtalion
Oscar Koeroo
Oscar Norlander
@@ -916,6 +934,7 @@ Paul Marks
Paul Marquis
Paul Moore
Paul Nolan
+Paul Oliver
Paul Querna
Paul Saab
Pavel Cenek
@@ -973,6 +992,7 @@ Quinn Slack
Radu Simionescu
Rafa Muyo
Rafael Sagula
+Rafayel Mkrtchyan
Rafaël Carré
Rainer Canavan
Rainer Jung
@@ -1076,6 +1096,7 @@ Scott Barrett
Scott Cantor
Scott Davis
Scott McCreary
+Sean Boudreau
Sebastian Rasmussen
Senthil Raja Velu
Sergei Nikulov
@@ -1191,6 +1212,7 @@ Tomas Hoger
Tomas Mlcoch
Tomas Pospisek
Tomas Szepe
+Tomas Tomecek
Tomasz Kojm
Tomasz Lacki
Tommie Gannert
@@ -1218,6 +1240,7 @@ Victor Snezhko
Vijay Panghal
Vikram Saxena
Viktor Szakáts
+Ville Skyttä
Vilmos Nebehaj
Vincent Bronner
Vincent Le Normand
diff --git a/docs/TODO b/docs/TODO
index 0ffa8df8..65bf2ff7 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -49,6 +49,7 @@
5.3 Rearrange request header order
5.4 SPDY
5.5 auth= in URLs
+ 5.6 Refuse "downgrade" redirects
6. TELNET
6.1 ditch stdin
@@ -207,7 +208,7 @@
To prevent local users from snooping on your traffic to the proxy. Supported
by Chrome already:
- http://www.chromium.org/developers/design-documents/secure-web-proxy
+ https://www.chromium.org/developers/design-documents/secure-web-proxy
...and by Firefox soon:
https://bugzilla.mozilla.org/show_bug.cgi?id=378637
@@ -264,7 +265,7 @@
HOST is a command for a client to tell which host name to use, to offer FTP
servers named-based virtual hosting:
- http://tools.ietf.org/html/rfc7151
+ https://tools.ietf.org/html/rfc7151
4.2 Alter passive/active on failure and retry
@@ -348,6 +349,14 @@ This is not detailed in any FTP specification.
Additionally this should be implemented for proxy base URLs as well.
+5.6 Refuse "downgrade" redirects
+
+ See https://github.com/bagder/curl/issues/226
+
+ Consider a way to tell curl to refuse to "downgrade" protocol with a redirect
+ and/or possibly a bit that refuses redirect to change protocol completely.
+
+
6. TELNET
6.1 ditch stdin
@@ -420,7 +429,7 @@ be the same as/similar to FTP.
11.2 Honor file timestamps
-The timestamp of the transfered file should reflect that of the original file.
+The timestamp of the transferred file should reflect that of the original file.
11.3 Use NTLMv2
@@ -484,7 +493,7 @@ Currently the SMB authentication uses NTLMv1.
DNS-Based Authentication of Named Entities (DANE) is a way to provide SSL
keys and certs over DNS using DNSSEC as an alternative to the CA model.
- http://www.rfc-editor.org/rfc/rfc6698.txt
+ https://www.rfc-editor.org/rfc/rfc6698.txt
An initial patch was posted by Suresh Krishnaswamy on March 7th 2013
(http://curl.haxx.se/mail/lib-2013-03/0075.html) but it was a too simple
@@ -514,7 +523,7 @@ Currently the SMB authentication uses NTLMv1.
Therefore support for the existing -E/--cert and --key options should be
implemented by supplying a custom certificate to the SChannel APIs, see:
- Getting a Certificate for Schannel
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa375447.aspx
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa375447.aspx
15.2 Add support for custom server certificate validation
@@ -525,7 +534,7 @@ Currently the SMB authentication uses NTLMv1.
Therefore support for the existing --cacert or --capath options should be
implemented by supplying a custom certificate to the SChannel APIs, see:
- Getting a Certificate for Schannel
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa375447.aspx
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa375447.aspx
15.3 Add support for the --ciphers option
@@ -536,7 +545,7 @@ Currently the SMB authentication uses NTLMv1.
Therefore support for the existing --ciphers option should be implemented
by mapping the OpenSSL/GnuTLS cipher suites to the SChannel APIs, see
- Specifying Schannel Ciphers and Cipher Strengths
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa380161.aspx
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380161.aspx
16. SASL
diff --git a/docs/VERSIONS b/docs/VERSIONS
index 0670089b..72a45474 100644
--- a/docs/VERSIONS
+++ b/docs/VERSIONS
@@ -1,22 +1,18 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
Version Numbers and Releases
+============================
Curl is not only curl. Curl is also libcurl. They're actually individually
versioned, but they mostly follow each other rather closely.
The version numbering is always built up using the same system:
- X.Y[.Z]
+ X.Y.Z
+
+ - X is main version number
+ - Y is release number
+ - Z is patch number
- Where
- X is main version number
- Y is release number
- Z is patch number
+## Bumping numbers
One of these numbers will get bumped in each new release. The numbers to the
right of a bumped number will be reset to zero. If Z is zero, it may not be
@@ -57,4 +53,4 @@ Version Numbers and Releases
release. It makes comparisons with greater than and less than work.
This number is also available as three separate defines:
- LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH.
+ `LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`.
diff --git a/docs/curl-config.pdf b/docs/curl-config.pdf
index 84baa385..c8561d38 100644
--- a/docs/curl-config.pdf
+++ b/docs/curl-config.pdf
Binary files differ
diff --git a/docs/curl.1 b/docs/curl.1
index e89628f0..11b95d4e 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -39,8 +39,7 @@ resume, Metalink, and more. As you will see below, the number of features will
make your head spin!
curl is powered by libcurl for all transfer-related features. See
-.BR libcurl (3)
-for details.
+\fIlibcurl(3)\fP for details.
.SH URL
The URL syntax is protocol-dependent. You'll find a detailed description in
RFC 3986.
@@ -269,11 +268,11 @@ If this option is used several times, the last one will be used.
.IP "--ciphers <list of ciphers>"
(SSL) 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:
-\fIhttp://www.openssl.org/docs/apps/ciphers.html\fP
+\fIhttps://www.openssl.org/docs/apps/ciphers.html\fP
NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of NSS
ciphers is in the NSSCipherSuite entry at this URL:
-\fIhttp://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\fP
+\fIhttps://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\fP
If this option is used several times, the last one will be used.
.IP "--compressed"
@@ -315,9 +314,10 @@ presses the submit button. This will cause curl to pass the data to the server
using the content-type application/x-www-form-urlencoded. Compare to
\fI-F, --form\fP.
-\fI-d, --data\fP is the same as \fI--data-ascii\fP. To post data purely binary,
-you should instead use the \fI--data-binary\fP option. To URL-encode the value
-of a form field you may use \fI--data-urlencode\fP.
+\fI-d, --data\fP is the same as \fI--data-ascii\fP. \fI--data-raw\fP is almost
+the same but does not have a special interpretation of the @ character. To
+post data purely binary, you should instead use the \fI--data-binary\fP option.
+To URL-encode the value of a form field you may use \fI--data-urlencode\fP.
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
@@ -329,7 +329,8 @@ read the data from, or - if you want curl to read the data from
stdin. Multiple files can also be specified. Posting data from a file
named 'foobar' would thus be done with \fI--data\fP @foobar. When --data is
told to read from a file like that, carriage returns and newlines will be
-stripped out.
+stripped out. If you don't want the @ character to have a special
+interpretation use \fI--data-raw\fP instead.
.IP "-D, --dump-header <file>"
Write the protocol headers to the specified file.
@@ -354,6 +355,10 @@ and carriage returns are preserved and conversions are never done.
If this option is used several times, the ones following the first will append
data as described in \fI-d, --data\fP.
+.IP "--data-raw <data>"
+(HTTP) This posts data similarly to \fI--data\fP but without the special
+interpretation of the @ character. See \fI-d, --data\fP.
+(Added in 7.43.0)
.IP "--data-urlencode <data>"
(HTTP) This posts data, similar to the other --data options with the exception
that this performs URL-encoding. (Added in 7.18.0)
@@ -548,10 +553,10 @@ indicating its identity. A public key is extracted from this certificate and
if it does not exactly match the public key provided to this option, curl will
abort the connection before sending or receiving any data.
-This is currently only implemented in the OpenSSL, GnuTLS and GSKit backends.
+Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for NSS and
+wolfSSL/CyaSSL. Other SSL backends not supported.
If this option is used several times, the last one will be used.
-(Added in 7.39.0)
.IP "--cert-status"
(SSL) Tells curl to verify the status of the server certificate by using the
Certificate Status Request (aka. OCSP stapling) TLS extension.
@@ -560,7 +565,7 @@ If this option is enabled and the server sends an invalid (e.g. expired)
response, if the response suggests that the server certificate has been revoked,
or no response at all is received, the verification fails.
-This is currently only implemented in the OpenSSL, GnuTLS and NSS backends.
+This is currently only implemented in the OpenSSL, GnuTLS and NSS backends.
(Added in 7.41.0)
.IP "--false-start"
@@ -661,6 +666,7 @@ 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'.
.RE
+.IP
(Added in 7.15.1)
.IP "--ftp-pasv"
(FTP) Use passive mode for the data connection. Passive is the internal default
@@ -1053,13 +1059,10 @@ in Metalink file, hash check will fail.
Makes curl scan the \fI.netrc\fP (\fI_netrc\fP 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
-.BR netrc(4)
-or
-.BR ftp(1)
-for details on the file format. Curl will not complain if that file
-doesn't have the right permissions (it should not be either world- or
-group-readable). The environment variable "HOME" is used to find the home
-directory.
+\fInetrc(5)\fP \fIftp(1)\fP for details on the file format. Curl will not
+complain if that file doesn't have the right permissions (it should not be
+either world- or 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
@@ -1221,7 +1224,7 @@ i.e "my.host.domain" to specify the machine
make curl pick the same IP address that is already used for the control
connection
.RE
-
+.IP
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++.
@@ -1326,6 +1329,11 @@ with a remote host. (Added in 7.17.1)
.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.
+.IP "--proxy-service-name <servicename>"
+This option allows you to change the service name for proxy negotiation.
+
+Examples: --proxy-negotiate proxy-name \fI--proxy-service-name\fP sockd would use
+sockd/proxy-name. (Added in 7.43.0).
.IP "--proxy1.0 <proxyhost[:port]>"
Use the specified HTTP 1.0 proxy. If the port number is not specified, it is
assumed at port 1080.
@@ -1423,7 +1431,7 @@ specifies 300 bytes from offset 500(H)
.B 100-199,500-599
specifies two separate 100-byte ranges(*)(H)
.RE
-
+.IP
(*) = NOTE that this will cause the server to reply with a multipart
response!
@@ -1507,6 +1515,11 @@ terminal/stdout unless you redirect it.
.IP "--sasl-ir"
Enable initial response in SASL authentication.
(Added in 7.31.0)
+.IP "--service-name <servicename>"
+This option allows you to change the service name for SPNEGO.
+
+Examples: --negotiate \fI--service-name\fP sockd would use
+sockd/server-name. (Added in 7.43.0).
.IP "-S, --show-error"
When used with \fI-s\fP it makes curl show an error message if it fails.
.IP "--ssl"
@@ -1882,7 +1895,7 @@ displayed with millisecond resolution.
The URL that was fetched last. This is most meaningful if you've told curl
to follow location: headers.
.RE
-
+.IP
If this option is used several times, the last one will be used.
.IP "-x, --proxy <[protocol://][user:password@]proxyhost[:port]>"
Use the specified proxy.
diff --git a/docs/curl.html b/docs/curl.html
index 5938a347..cb6dedb6 100644
--- a/docs/curl.html
+++ b/docs/curl.html
@@ -55,7 +55,7 @@ p.roffit {
<p class="level0"><span Class="bold">curl [options]</span> <a class="emphasis" href="#URL">[URL...]</a> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
<p class="level0"><span Class="bold">curl</span> 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, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP). The command is designed to work without user interaction.
<p class="level0">curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume, Metalink, and more. As you will see below, the number of features will make your head spin!
-<p class="level0">curl is powered by libcurl for all transfer-related features. See <span Class="manpage">libcurl (3)</span> for details. <a name="URL"></a><h2 class="nroffsh">URL</h2>
+<p class="level0">curl is powered by libcurl for all transfer-related features. See <span Class="emphasis">libcurl(3)</span> for details. <a name="URL"></a><h2 class="nroffsh">URL</h2>
<p class="level0">The URL syntax is protocol-dependent. You'll find a detailed description in <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
<p class="level0">You can specify multiple URLs or parts of URLs by writing part sets within braces as in:
<p class="level0">&nbsp; <a href="http://site">http://site</a>.{one,two,three}.com
@@ -139,8 +139,8 @@ p.roffit {
<p class="level1">Use "-C -" to tell curl to automatically find out where/how to resume the transfer. It then uses the given output/input files to figure that out.
<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="--ciphers"></a><span class="nroffip">--ciphers &lt;list of ciphers&gt;</span>
-<p class="level1">(SSL) 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: <span Class="emphasis"><a href="http://www.openssl.org/docs/apps/ciphers.html">http://www.openssl.org/docs/apps/ciphers.html</a></span>
-<p class="level1">NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of NSS ciphers is in the NSSCipherSuite entry at this URL: <span Class="emphasis"><a href="http://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html">http://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html</a>&#35;Directives</span>
+<p class="level1">(SSL) 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: <span Class="emphasis">https://www.openssl.org/docs/apps/ciphers.html</span>
+<p class="level1">NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of NSS ciphers is in the NSSCipherSuite entry at this URL: <span Class="emphasis">https://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html&#35;Directives</span>
<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="--compressed"></a><span class="nroffip">--compressed</span>
<p class="level1">(HTTP) Request a compressed response using one of the algorithms curl supports, and save the uncompressed document. If this option is used and the server sends an unsupported encoding, curl will report an error.
@@ -160,9 +160,9 @@ p.roffit {
<p class="level1">(Added in 7.19.7)
<p class="level0"><a name="-d"></a><span class="nroffip">-d, --data &lt;data&gt;</span>
<p class="level1">(HTTP) 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 submit button. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to <a class="emphasis" href="#-F">-F, --form</a>.
-<p class="level1"><a class="emphasis" href="#-d">-d, --data</a> is the same as <a class="emphasis" href="#--data-ascii">--data-ascii</a>. To post data purely binary, you should instead use the <a class="emphasis" href="#--data-binary">--data-binary</a> option. To URL-encode the value of a form field you may use <a class="emphasis" href="#--data-urlencode">--data-urlencode</a>.
+<p class="level1"><a class="emphasis" href="#-d">-d, --data</a> is the same as <a class="emphasis" href="#--data-ascii">--data-ascii</a>. <a class="emphasis" href="#--data-raw">--data-raw</a> is almost the same but does not have a special interpretation of the @ character. To post data purely binary, you should instead use the <a class="emphasis" href="#--data-binary">--data-binary</a> option. To URL-encode the value of a form field you may use <a class="emphasis" href="#--data-urlencode">--data-urlencode</a>.
<p class="level1">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'.
-<p class="level1">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. Multiple files can also be specified. Posting data from a file named 'foobar' would thus be done with <span Class="emphasis">--data</span> @foobar. When --data is told to read from a file like that, carriage returns and newlines will be stripped out.
+<p class="level1">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. Multiple files can also be specified. Posting data from a file named 'foobar' would thus be done with <span Class="emphasis">--data</span> @foobar. When --data is told to read from a file like that, carriage returns and newlines will be stripped out. If you don't want the @ character to have a special interpretation use <a class="emphasis" href="#--data-raw">--data-raw</a> instead.
<p class="level0"><a name="-D"></a><span class="nroffip">-D, --dump-header &lt;file&gt;</span>
<p class="level1">Write the protocol headers to the specified file.
<p class="level1">This option is handy to use when you want to store the headers that an HTTP site sends to you. Cookies from the headers could then be read in a second curl invocation by using the <a class="emphasis" href="#-b">-b, --cookie</a> option! The <a class="emphasis" href="#-c">-c, --cookie-jar</a> option is a better way to store cookies.
@@ -174,6 +174,8 @@ p.roffit {
<p class="level1">(HTTP) This posts data exactly as specified with no extra processing whatsoever.
<p class="level1">If you start the data with the letter @, the rest should be a filename. Data is posted in a similar manner as <a class="emphasis" href="#--data-ascii">--data-ascii</a> does, except that newlines and carriage returns are preserved and conversions are never done.
<p class="level1">If this option is used several times, the ones following the first will append data as described in <a class="emphasis" href="#-d">-d, --data</a>.
+<p class="level0"><a name="--data-raw"></a><span class="nroffip">--data-raw &lt;data&gt;</span>
+<p class="level1">(HTTP) This posts data similarly to <span Class="emphasis">--data</span> but without the special interpretation of the @ character. See <a class="emphasis" href="#-d">-d, --data</a>. (Added in 7.43.0)
<p class="level0"><a name="--data-urlencode"></a><span class="nroffip">--data-urlencode &lt;data&gt;</span>
<p class="level1">(HTTP) This posts data, similar to the other --data options with the exception that this performs URL-encoding. (Added in 7.18.0)
<p class="level1">To be CGI-compliant, the &lt;data&gt; part should begin with a <span Class="emphasis">name</span> followed by a separator and a content specification. The &lt;data&gt; part can be passed to curl using one of the following syntaxes:
@@ -251,8 +253,8 @@ p.roffit {
<p class="level0"><a name="--pinnedpubkey"></a><span class="nroffip">--pinnedpubkey &lt;pinned public key&gt;</span>
<p class="level1">(SSL) Tells curl to use the specified public key file to verify the peer. The file must contain a single public key in PEM or DER format.
<p class="level1">When negotiating a TLS or SSL connection, the server sends a certificate indicating its identity. A public key is extracted from this certificate and if it does not exactly match the public key provided to this option, curl will abort the connection before sending or receiving any data.
-<p class="level1">This is currently only implemented in the OpenSSL, GnuTLS and GSKit backends.
-<p class="level1">If this option is used several times, the last one will be used. (Added in 7.39.0)
+<p class="level1">Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for NSS and wolfSSL/CyaSSL. Other SSL backends not supported.
+<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="--cert-status"></a><span class="nroffip">--cert-status</span>
<p class="level1">(SSL) Tells curl to verify the status of the server certificate by using the Certificate Status Request (aka. OCSP stapling) TLS extension.
<p class="level1">If this option is enabled and the server sends an invalid (e.g. expired) response, if the response suggests that the server certificate has been revoked, or no response at all is received, the verification fails.
@@ -298,6 +300,8 @@ p.roffit {
<p class="level2">curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior.
<p class="level1"><a name="singlecwd"></a><span class="nroffip">singlecwd</span>
<p class="level2">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'.
+<p class="level1">
+<p class="level0"><a name=""></a><span class="nroffip"></span>
<p class="level1">(Added in 7.15.1)
<p class="level0"><a name="--ftp-pasv"></a><span class="nroffip">--ftp-pasv</span>
<p class="level1">(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 <span Class="emphasis">-P/-ftp-port</span> option. (Added in 7.11.0)
@@ -367,7 +371,7 @@ p.roffit {
url = "curl.haxx.se"
output = "curlhere.html"
user-agent = "superagent/1.0"
-
+&nbsp;
&#35; and fetch another URL too
url = "curl.haxx.se/docs/manpage.html"
-O
@@ -445,7 +449,7 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level1">Please note that if FILE protocol is disabled, there is no way to use a local Metalink file at the time of this writing. Also note that if <a class="emphasis" href="#--metalink">--metalink</a> and <span Class="emphasis">--include</span> are used together, <span Class="emphasis">--include</span> will be ignored. This is because including headers in the response will break Metalink parser and if the headers are included in the file described in Metalink file, hash check will fail.
<p class="level1">(Added in 7.27.0, if built against the libmetalink library.)
<p class="level0"><a name="-n"></a><span class="nroffip">-n, --netrc</span>
-<p class="level1">Makes curl scan the <span Class="emphasis">.netrc</span> (<span Class="emphasis">_netrc</span> 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 <span Class="manpage">netrc(4)</span> or <span Class="manpage">ftp(1)</span> for details on the file format. Curl will not complain if that file doesn't have the right permissions (it should not be either world- or group-readable). The environment variable "HOME" is used to find the home directory.
+<p class="level1">Makes curl scan the <span Class="emphasis">.netrc</span> (<span Class="emphasis">_netrc</span> 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 <span Class="emphasis">netrc(5)</span> <span Class="emphasis">ftp(1)</span> for details on the file format. Curl will not complain if that file doesn't have the right permissions (it should not be either world- or group-readable). The environment variable "HOME" is used to find the home directory.
<p class="level1">A quick and very simple example of how to setup a <span Class="emphasis">.netrc</span> to allow curl to FTP to the machine host.domain.com with user name 'myself' and password 'secret' should look similar to:
<p class="level1"><span Class="bold">machine host.domain.com login myself password secret</span>
<p class="level0"><a name="-N"></a><span class="nroffip">-N, --no-buffer</span>
@@ -514,6 +518,7 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level1"><a name="-"></a><span class="nroffip">-</span>
<p class="level2">make curl pick the same IP address that is already used for the control connection
<p class="level1">
+<p class="level0"><a name=""></a><span class="nroffip"></span>
<p class="level1">If this option is used several times, the last one will be used. Disable the use of PORT with <a class="emphasis" href="#--ftp-pasv">--ftp-pasv</a>. Disable the attempt to use the EPRT command instead of PORT by using <a class="emphasis" href="#--disable-eprt">--disable-eprt</a>. EPRT is really PORT++.
<p class="level1">Starting in 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.
<p class="level0"><a name="--pass"></a><span class="nroffip">--pass &lt;phrase&gt;</span>
@@ -559,6 +564,9 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level1">Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating with the given proxy. Use <a class="emphasis" href="#--negotiate">--negotiate</a> for enabling HTTP Negotiate (SPNEGO) with a remote host. (Added in 7.17.1)
<p class="level0"><a name="--proxy-ntlm"></a><span class="nroffip">--proxy-ntlm</span>
<p class="level1">Tells curl to use HTTP NTLM authentication when communicating with the given proxy. Use <a class="emphasis" href="#--ntlm">--ntlm</a> for enabling NTLM with a remote host.
+<p class="level0"><a name="--proxy-service-name"></a><span class="nroffip">--proxy-service-name &lt;servicename&gt;</span>
+<p class="level1">This option allows you to change the service name for proxy negotiation.
+<p class="level1">Examples: --proxy-negotiate proxy-name <a class="emphasis" href="#--proxy-service-name">--proxy-service-name</a> sockd would use sockd/proxy-name. (Added in 7.43.0).
<p class="level0"><a name="--proxy10"></a><span class="nroffip">--proxy1.0 &lt;proxyhost[:port]&gt;</span>
<p class="level1">Use the specified HTTP 1.0 proxy. If the port number is not specified, it is assumed at port 1080.
<p class="level1">The only difference between this and the HTTP proxy option (<a class="emphasis" href="#-x">-x, --proxy</a>), is that attempts to use CONNECT through the proxy will specify an HTTP 1.0 protocol instead of the default HTTP 1.1.
@@ -604,6 +612,7 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level2"><span Class="bold">500-700,600-799</span> specifies 300 bytes from offset 500(H)
<p class="level2"><span Class="bold">100-199,500-599</span> specifies two separate 100-byte ranges(*)(H)
<p class="level1">
+<p class="level0"><a name=""></a><span class="nroffip"></span>
<p class="level1">(*) = NOTE that this will cause the server to reply with a multipart response!
<p class="level1">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 configuration.
<p class="level1">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.
@@ -635,6 +644,9 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level1">Silent or quiet mode. Don't 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.
<p class="level0"><a name="--sasl-ir"></a><span class="nroffip">--sasl-ir</span>
<p class="level1">Enable initial response in SASL authentication. (Added in 7.31.0)
+<p class="level0"><a name="--service-name"></a><span class="nroffip">--service-name &lt;servicename&gt;</span>
+<p class="level1">This option allows you to change the service name for SPNEGO.
+<p class="level1">Examples: --negotiate <a class="emphasis" href="#--service-name">--service-name</a> sockd would use sockd/server-name. (Added in 7.43.0).
<p class="level0"><a name="-S"></a><span class="nroffip">-S, --show-error</span>
<p class="level1">When used with <a class="emphasis" href="#-s">-s</a> it makes curl show an error message if it fails.
<p class="level0"><a name="--ssl"></a><span class="nroffip">--ssl</span>
@@ -776,6 +788,7 @@ referer = "<a href="http://nowhereatall.com/">http://nowhereatall.com/</a>"
<p class="level2"><span Class="bold">time_total</span> The total time, in seconds, that the full operation lasted. The time will be displayed with millisecond resolution.
<p class="level2"><span Class="bold">url_effective</span> The URL that was fetched last. This is most meaningful if you've told curl to follow location: headers.
<p class="level1">
+<p class="level0"><a name=""></a><span class="nroffip"></span>
<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="-x"></a><span class="nroffip">-x, --proxy &lt;[protocol://][user:password@]proxyhost[:port]&gt;</span>
<p class="level1">Use the specified proxy.
diff --git a/docs/curl.pdf b/docs/curl.pdf
index 39445131..b05eeedd 100644
--- a/docs/curl.pdf
+++ b/docs/curl.pdf
Binary files differ
diff --git a/docs/examples/Makefile.in b/docs/examples/Makefile.in
index b05c75f6..6e77f3fd 100644
--- a/docs/examples/Makefile.in
+++ b/docs/examples/Makefile.in
@@ -43,7 +43,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -123,8 +123,7 @@ build_triplet = @build@
host_triplet = @host@
@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp README
+ $(srcdir)/Makefile.am $(top_srcdir)/depcomp README
check_PROGRAMS = 10-at-a-time$(EXEEXT) anyauthput$(EXEEXT) \
cookie_interface$(EXEEXT) debug$(EXEEXT) fileupload$(EXEEXT) \
fopen$(EXEEXT) ftpget$(EXEEXT) ftpgetresp$(EXEEXT) \
@@ -149,7 +148,8 @@ check_PROGRAMS = 10-at-a-time$(EXEEXT) anyauthput$(EXEEXT) \
imap-search$(EXEEXT) imap-create$(EXEEXT) imap-delete$(EXEEXT) \
imap-copy$(EXEEXT) imap-noop$(EXEEXT) imap-ssl$(EXEEXT) \
imap-tls$(EXEEXT) imap-multi$(EXEEXT) url2file$(EXEEXT) \
- sftpget$(EXEEXT) ftpsget$(EXEEXT) postinmemory$(EXEEXT)
+ sftpget$(EXEEXT) ftpsget$(EXEEXT) postinmemory$(EXEEXT) \
+ http2-download$(EXEEXT) http2-upload$(EXEEXT)
subdir = docs/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
@@ -171,7 +171,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -304,6 +304,20 @@ http_post_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@http_post_DEPENDENCIES = \
@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
+http2_download_SOURCES = http2-download.c
+http2_download_OBJECTS = http2-download.$(OBJEXT)
+http2_download_LDADD = $(LDADD)
+@USE_EXPLICIT_LIB_DEPS_FALSE@http2_download_DEPENDENCIES = \
+@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
+@USE_EXPLICIT_LIB_DEPS_TRUE@http2_download_DEPENDENCIES = \
+@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
+http2_upload_SOURCES = http2-upload.c
+http2_upload_OBJECTS = http2-upload.$(OBJEXT)
+http2_upload_LDADD = $(LDADD)
+@USE_EXPLICIT_LIB_DEPS_FALSE@http2_upload_DEPENDENCIES = \
+@USE_EXPLICIT_LIB_DEPS_FALSE@ $(LIBDIR)/libcurl.la
+@USE_EXPLICIT_LIB_DEPS_TRUE@http2_upload_DEPENDENCIES = \
+@USE_EXPLICIT_LIB_DEPS_TRUE@ $(LIBDIR)/libcurl.la
httpcustomheader_SOURCES = httpcustomheader.c
httpcustomheader_OBJECTS = httpcustomheader.$(OBJEXT)
httpcustomheader_LDADD = $(LDADD)
@@ -703,14 +717,14 @@ SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
cookie_interface.c debug.c externalsocket.c fileupload.c \
fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
ftpsget.c ftpupload.c getinfo.c getinmemory.c http-post.c \
- httpcustomheader.c httpput.c https.c imap-append.c imap-copy.c \
- imap-create.c imap-delete.c imap-examine.c imap-fetch.c \
- imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c \
- imap-ssl.c imap-store.c imap-tls.c multi-app.c \
- multi-debugcallback.c multi-double.c multi-post.c \
- multi-single.c persistant.c pop3-dele.c pop3-list.c \
- pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
- pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
+ http2-download.c http2-upload.c httpcustomheader.c httpput.c \
+ https.c imap-append.c imap-copy.c imap-create.c imap-delete.c \
+ imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
+ imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
+ imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
+ multi-post.c multi-single.c persistant.c pop3-dele.c \
+ pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
+ pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
postinmemory.c postit2.c progressfunc.c resolve.c rtsp.c \
sendrecv.c sepheaders.c sftpget.c simple.c simplepost.c \
simplessl.c smtp-expn.c smtp-mail.c smtp-multi.c smtp-ssl.c \
@@ -719,14 +733,14 @@ DIST_SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
cookie_interface.c debug.c externalsocket.c fileupload.c \
fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
ftpsget.c ftpupload.c getinfo.c getinmemory.c http-post.c \
- httpcustomheader.c httpput.c https.c imap-append.c imap-copy.c \
- imap-create.c imap-delete.c imap-examine.c imap-fetch.c \
- imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c \
- imap-ssl.c imap-store.c imap-tls.c multi-app.c \
- multi-debugcallback.c multi-double.c multi-post.c \
- multi-single.c persistant.c pop3-dele.c pop3-list.c \
- pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
- pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
+ http2-download.c http2-upload.c httpcustomheader.c httpput.c \
+ https.c imap-append.c imap-copy.c imap-create.c imap-delete.c \
+ imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
+ imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
+ imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
+ multi-post.c multi-single.c persistant.c pop3-dele.c \
+ pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
+ pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
postinmemory.c postit2.c progressfunc.c resolve.c rtsp.c \
sendrecv.c sepheaders.c sftpget.c simple.c simplepost.c \
simplessl.c smtp-expn.c smtp-mail.c smtp-multi.c smtp-ssl.c \
@@ -1092,6 +1106,14 @@ http-post$(EXEEXT): $(http_post_OBJECTS) $(http_post_DEPENDENCIES) $(EXTRA_http_
@rm -f http-post$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(http_post_OBJECTS) $(http_post_LDADD) $(LIBS)
+http2-download$(EXEEXT): $(http2_download_OBJECTS) $(http2_download_DEPENDENCIES) $(EXTRA_http2_download_DEPENDENCIES)
+ @rm -f http2-download$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(http2_download_OBJECTS) $(http2_download_LDADD) $(LIBS)
+
+http2-upload$(EXEEXT): $(http2_upload_OBJECTS) $(http2_upload_DEPENDENCIES) $(EXTRA_http2_upload_DEPENDENCIES)
+ @rm -f http2-upload$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(http2_upload_OBJECTS) $(http2_upload_LDADD) $(LIBS)
+
httpcustomheader$(EXEEXT): $(httpcustomheader_OBJECTS) $(httpcustomheader_DEPENDENCIES) $(EXTRA_httpcustomheader_DEPENDENCIES)
@rm -f httpcustomheader$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(httpcustomheader_OBJECTS) $(httpcustomheader_LDADD) $(LIBS)
@@ -1324,6 +1346,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinmemory.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http-post.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-download.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-upload.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpcustomheader.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpput.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.Po@am__quote@
diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc
index 6c8df8e2..4b0c28ff 100644
--- a/docs/examples/Makefile.inc
+++ b/docs/examples/Makefile.inc
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -31,7 +31,8 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
pop3-dele pop3-top pop3-stat pop3-noop pop3-ssl pop3-tls pop3-multi \
imap-list imap-lsub imap-fetch imap-store imap-append imap-examine \
imap-search imap-create imap-delete imap-copy imap-noop imap-ssl \
- imap-tls imap-multi url2file sftpget ftpsget postinmemory
+ imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
+ http2-upload
# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
diff --git a/docs/examples/Makefile.m32 b/docs/examples/Makefile.m32
index f607013c..2da5294e 100644
--- a/docs/examples/Makefile.m32
+++ b/docs/examples/Makefile.m32
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,7 +21,7 @@
###########################################################################
#
## Makefile for building curl examples with MingW (GCC-3.2 or later)
-## and optionally OpenSSL (0.9.8), libssh2 (1.3), zlib (1.2.5), librtmp (2.3)
+## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-spi-winidn
@@ -38,23 +38,23 @@ ZLIB_PATH = ../../../zlib-1.2.8
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../../openssl-0.9.8zc
+OPENSSL_PATH = ../../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../../libssh2-1.4.3
+LIBSSH2_PATH = ../../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
-LIBRTMP_PATH = ../../../librtmp-2.3
+LIBRTMP_PATH = ../../../librtmp-2.4
endif
# Edit the path below to point to the base of your libidn package.
ifndef LIBIDN_PATH
-LIBIDN_PATH = ../../../libidn-1.18
+LIBIDN_PATH = ../../../libidn-1.30
endif
# Edit the path below to point to the base of your MS IDN package.
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
-# http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
+# https://www.microsoft.com/en-us/download/details.aspx?id=734
ifndef WINIDN_PATH
WINIDN_PATH = ../../../Microsoft IDN Mitigation APIs
endif
@@ -62,6 +62,10 @@ endif
ifndef LDAP_SDK
LDAP_SDK = c:/novell/ndk/cldapsdk/win32
endif
+# Edit the path below to point to the base of your nghttp2 package.
+ifndef NGHTTP2_PATH
+NGHTTP2_PATH = ../../../nghttp2-1.0.0
+endif
PROOT = ../..
@@ -72,14 +76,24 @@ endif
# Edit the var below to set to your architecture or set environment var.
ifndef ARCH
-ARCH = w32
+ifeq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),x86_64)
+ARCH = w64
+else
+ARCH = w32
+endif
endif
CC = $(CROSSPREFIX)gcc
CFLAGS = -g -O2 -Wall
CFLAGS += -fno-strict-aliasing
ifeq ($(ARCH),w64)
-CFLAGS += -D_AMD64_
+CFLAGS += -m64 -D_AMD64_
+LDFLAGS += -m64
+RCFLAGS += -F pe-x86-64
+else
+CFLAGS += -m32
+LDFLAGS += -m32
+RCFLAGS += -F pe-i386
endif
# comment LDFLAGS below to keep debug info
LDFLAGS = -s
@@ -158,9 +172,12 @@ ifeq ($(findstring -metalink,$(CFG)),-metalink)
METALINK = 1
endif
ifeq ($(findstring -winssl,$(CFG)),-winssl)
-SCHANNEL = 1
+WINSSL = 1
SSPI = 1
endif
+ifeq ($(findstring -nghttp2,$(CFG)),-nghttp2)
+NGHTTP2 = 1
+endif
INCLUDES = -I. -I$(PROOT) -I$(PROOT)/include -I$(PROOT)/lib
@@ -184,6 +201,10 @@ ifdef RTMP
CFLAGS += -DUSE_LIBRTMP
curl_LDADD += -L"$(LIBRTMP_PATH)/librtmp" -lrtmp -lwinmm
endif
+ifdef NGHTTP2
+ CFLAGS += -DUSE_NGHTTP2
+ curl_LDADD += -L"$(NGHTTP2_PATH)/lib" -lnghttp2
+endif
ifdef SSH2
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
@@ -204,7 +225,7 @@ ifdef SSL
ifndef DYN
OPENSSL_LIBS += -lgdi32 -lcrypt32
endif
- CFLAGS += -DUSE_SSLEAY
+ CFLAGS += -DUSE_OPENSSL
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
endif
ifdef ZLIB
@@ -223,7 +244,7 @@ endif
endif
ifdef SSPI
CFLAGS += -DUSE_WINDOWS_SSPI
- ifdef SCHANNEL
+ ifdef WINSSL
CFLAGS += -DUSE_SCHANNEL
endif
endif
diff --git a/docs/examples/Makefile.netware b/docs/examples/Makefile.netware
index 3fd6b3e7..f8e9955e 100644
--- a/docs/examples/Makefile.netware
+++ b/docs/examples/Makefile.netware
@@ -19,12 +19,12 @@ endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../../openssl-0.9.8zc
+OPENSSL_PATH = ../../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../../libssh2-1.4.3
+LIBSSH2_PATH = ../../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your axTLS package.
@@ -34,12 +34,12 @@ endif
# Edit the path below to point to the base of your libidn package.
ifndef LIBIDN_PATH
-LIBIDN_PATH = ../../../libidn-1.18
+LIBIDN_PATH = ../../../libidn-1.30
endif
# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
-LIBRTMP_PATH = ../../../librtmp-2.3
+LIBRTMP_PATH = ../../../librtmp-2.4
endif
# Edit the path below to point to the base of your fbopenssl package.
diff --git a/docs/examples/cookie_interface.c b/docs/examples/cookie_interface.c
index 2e7c66db..28ee7817 100644
--- a/docs/examples/cookie_interface.c
+++ b/docs/examples/cookie_interface.c
@@ -96,7 +96,12 @@ main(void)
return 1;
}
- /* HTTP-header style cookie */
+ /* HTTP-header style cookie. If you use the Set-Cookie format and don't
+ 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
+ CURLOPT_COOKIELIST documentation.
+ */
snprintf(nline, sizeof(nline),
"Set-Cookie: OLD_PREF=3d141414bf4209321; "
"expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com");
diff --git a/docs/examples/curlx.c b/docs/examples/curlx.c
index 89d5f407..c68cf0dd 100644
--- a/docs/examples/curlx.c
+++ b/docs/examples/curlx.c
@@ -490,7 +490,7 @@ int main(int argc, char **argv) {
BIO_printf(p.errorbio,"the response has a correct mimetype : %s\n",
response);
else
- BIO_printf(p.errorbio,"the reponse doesn\'t has an acceptable "
+ BIO_printf(p.errorbio,"the response doesn\'t have an acceptable "
"mime type, it is %s instead of %s\n",
response,mimetypeaccept);
}
diff --git a/docs/examples/fopen.c b/docs/examples/fopen.c
index 4089bb43..0aad0abf 100644
--- a/docs/examples/fopen.c
+++ b/docs/examples/fopen.c
@@ -108,7 +108,7 @@ static size_t write_callback(char *buffer,
size=rembuff;
}
else {
- /* realloc suceeded increase buffer size*/
+ /* realloc succeeded increase buffer size*/
url->buffer_len+=size - rembuff;
url->buffer=newbuff;
}
@@ -131,7 +131,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
- * doesnt exceed required size already
+ * doesn't exceed required size already
*/
if((!file->still_running) || (file->buffer_pos > want))
return 0;
@@ -205,7 +205,7 @@ static int fill_buffer(URL_FILE *file, size_t want)
}
/* use to remove want bytes from the front of a files buffer */
-static int use_buffer(URL_FILE *file,int want)
+static int use_buffer(URL_FILE *file, size_t want)
{
/* sort out buffer */
if((file->buffer_pos - want) <=0) {
@@ -229,7 +229,7 @@ static int use_buffer(URL_FILE *file,int want)
URL_FILE *url_fopen(const char *url,const char *operation)
{
/* this code could check for URLs or types in the 'url' and
- basicly use the real fopen() for standard files */
+ basically use the real fopen() for standard files */
URL_FILE *file;
(void)operation;
@@ -375,7 +375,7 @@ char *url_fgets(char *ptr, size_t size, URL_FILE *file)
switch(file->type) {
case CFTYPE_FILE:
- ptr = fgets(ptr,size,file->handle.file);
+ ptr = fgets(ptr, (int)size, file->handle.file);
break;
case CFTYPE_CURL:
@@ -451,7 +451,7 @@ int main(int argc, char *argv[])
URL_FILE *handle;
FILE *outf;
- int nread;
+ size_t nread;
char buffer[256];
const char *url;
@@ -499,7 +499,7 @@ int main(int argc, char *argv[])
}
do {
- nread = url_fread(buffer, 1,sizeof(buffer), handle);
+ nread = url_fread(buffer, 1, sizeof(buffer), handle);
fwrite(buffer,1,nread,outf);
} while(nread);
diff --git a/docs/examples/ftpget.c b/docs/examples/ftpget.c
index bcb42bb3..285283f7 100644
--- a/docs/examples/ftpget.c
+++ b/docs/examples/ftpget.c
@@ -53,7 +53,7 @@ int main(void)
CURL *curl;
CURLcode res;
struct FtpFile ftpfile={
- "curl.tar.gz", /* name to store the file as if succesful */
+ "curl.tar.gz", /* name to store the file as if successful */
NULL
};
diff --git a/docs/examples/ftpsget.c b/docs/examples/ftpsget.c
index 0cfe3202..dae45348 100644
--- a/docs/examples/ftpsget.c
+++ b/docs/examples/ftpsget.c
@@ -55,7 +55,7 @@ int main(void)
CURL *curl;
CURLcode res;
struct FtpFile ftpfile={
- "yourfile.bin", /* name to store the file as if succesful */
+ "yourfile.bin", /* name to store the file as if successful */
NULL
};
diff --git a/docs/examples/http2-download.c b/docs/examples/http2-download.c
new file mode 100644
index 00000000..3b7ca81d
--- /dev/null
+++ b/docs/examples/http2-download.c
@@ -0,0 +1,288 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://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 <stdio.h>
+#include <stdlib.h>
+
+/* somewhat unix-specific */
+#include <sys/time.h>
+#include <unistd.h>
+
+/* curl stuff */
+#include <curl/curl.h>
+
+#ifndef CURLPIPE_MULTIPLEX
+/* This little trick will just make sure that we don't 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
+#endif
+
+#define NUM_HANDLES 1000
+
+void *curl_hnd[NUM_HANDLES];
+int num_transfers;
+
+/* a handle to number lookup, highly ineffective when we do many
+ transfers... */
+static int hnd2num(CURL *hnd)
+{
+ int i;
+ for(i=0; i< num_transfers; i++) {
+ if(curl_hnd[i] == hnd)
+ return i;
+ }
+ return 0; /* weird, but just a fail-safe */
+}
+
+static
+void dump(const char *text, int num, unsigned char *ptr, size_t size,
+ char nohex)
+{
+ size_t i;
+ size_t c;
+
+ unsigned int width=0x10;
+
+ if(nohex)
+ /* without the hex output, we can fit more on screen */
+ width = 0x40;
+
+ fprintf(stderr, "%d %s, %ld bytes (0x%lx)\n",
+ num, text, (long)size, (long)size);
+
+ for(i=0; i<size; i+= width) {
+
+ fprintf(stderr, "%4.4lx: ", (long)i);
+
+ if(!nohex) {
+ /* hex not disabled, show it */
+ for(c = 0; c < width; c++)
+ if(i+c < size)
+ fprintf(stderr, "%02x ", ptr[i+c]);
+ else
+ fputs(" ", stderr);
+ }
+
+ for(c = 0; (c < width) && (i+c < size); c++) {
+ /* check for 0D0A; if found, skip past and start a new line of output */
+ if (nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
+ i+=(c+2-width);
+ break;
+ }
+ fprintf(stderr, "%c",
+ (ptr[i+c]>=0x20) && (ptr[i+c]<0x80)?ptr[i+c]:'.');
+ /* check again for 0D0A, to avoid an extra \n if it's at width */
+ if (nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
+ i+=(c+3-width);
+ break;
+ }
+ }
+ fputc('\n', stderr); /* newline */
+ }
+}
+
+static
+int my_trace(CURL *handle, curl_infotype type,
+ char *data, size_t size,
+ void *userp)
+{
+ const char *text;
+ int num = hnd2num(handle);
+ (void)handle; /* prevent compiler warning */
+ (void)userp;
+ switch (type) {
+ case CURLINFO_TEXT:
+ fprintf(stderr, "== %d Info: %s", num, data);
+ default: /* in case a new one is introduced to shock us */
+ return 0;
+
+ case CURLINFO_HEADER_OUT:
+ text = "=> Send header";
+ break;
+ case CURLINFO_DATA_OUT:
+ text = "=> Send data";
+ break;
+ case CURLINFO_SSL_DATA_OUT:
+ text = "=> Send SSL data";
+ break;
+ case CURLINFO_HEADER_IN:
+ text = "<= Recv header";
+ break;
+ case CURLINFO_DATA_IN:
+ text = "<= Recv data";
+ break;
+ case CURLINFO_SSL_DATA_IN:
+ text = "<= Recv SSL data";
+ break;
+ }
+
+ dump(text, num, (unsigned char *)data, size, 1);
+ return 0;
+}
+
+static void setup(CURL *hnd, int num)
+{
+ FILE *out;
+ char filename[128];
+
+ sprintf(filename, "dl-%d", num);
+
+ out = fopen(filename, "wb");
+
+ /* write to this file */
+ curl_easy_setopt(hnd, CURLOPT_WRITEDATA, out);
+
+ /* set the same URL */
+ curl_easy_setopt(hnd, CURLOPT_URL, "https://localhost:8443/index.html");
+
+ /* send it verbose for max debuggaility */
+ curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
+ curl_easy_setopt(hnd, CURLOPT_DEBUGFUNCTION, my_trace);
+
+ /* HTTP/2 please */
+ curl_easy_setopt(hnd, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
+
+ /* we use a self-signed test server, skip verification during debugging */
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYPEER, 0L);
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYHOST, 0L);
+
+#if (CURLPIPE_MULTIPLEX > 0)
+ /* wait for pipe connection to confirm */
+ curl_easy_setopt(hnd, CURLOPT_PIPEWAIT, 1L);
+#endif
+
+ curl_hnd[num] = hnd;
+}
+
+/*
+ * Simply download two files over HTTP/2, using the same physical connection!
+ */
+int main(int argc, char **argv)
+{
+ CURL *easy[NUM_HANDLES];
+ CURLM *multi_handle;
+ int i;
+ int still_running; /* keep number of running handles */
+
+ if(argc > 1)
+ /* if given a number, do that many transfers */
+ num_transfers = atoi(argv[1]);
+
+ if(!num_transfers || (num_transfers > NUM_HANDLES))
+ num_transfers = 3; /* a suitable low default */
+
+ /* init a multi stack */
+ multi_handle = curl_multi_init();
+
+ for(i=0; i<num_transfers; i++) {
+ easy[i] = curl_easy_init();
+ /* set options */
+ setup(easy[i], i);
+
+ /* add the individual transfer */
+ curl_multi_add_handle(multi_handle, easy[i]);
+ }
+
+ curl_multi_setopt(multi_handle, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
+
+ /* we start some action by calling perform right away */
+ curl_multi_perform(multi_handle, &still_running);
+
+ do {
+ struct timeval timeout;
+ int rc; /* select() return code */
+ CURLMcode mc; /* curl_multi_fdset() return code */
+
+ fd_set fdread;
+ fd_set fdwrite;
+ fd_set fdexcep;
+ int maxfd = -1;
+
+ long curl_timeo = -1;
+
+ FD_ZERO(&fdread);
+ FD_ZERO(&fdwrite);
+ FD_ZERO(&fdexcep);
+
+ /* set a suitable timeout to play around with */
+ timeout.tv_sec = 1;
+ timeout.tv_usec = 0;
+
+ curl_multi_timeout(multi_handle, &curl_timeo);
+ if(curl_timeo >= 0) {
+ timeout.tv_sec = curl_timeo / 1000;
+ if(timeout.tv_sec > 1)
+ timeout.tv_sec = 1;
+ else
+ timeout.tv_usec = (curl_timeo % 1000) * 1000;
+ }
+
+ /* 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;
+ }
+
+ /* On success the value of maxfd is guaranteed to be >= -1. We call
+ select(maxfd + 1, ...); specially in case of (maxfd == -1) there are
+ no fds ready yet so we call select(0, ...) --or Sleep() on Windows--
+ to sleep 100ms, which is the minimum suggested value in the
+ curl_multi_fdset() doc. */
+
+ if(maxfd == -1) {
+#ifdef _WIN32
+ Sleep(100);
+ rc = 0;
+#else
+ /* Portable sleep for platforms other than Windows. */
+ struct timeval wait = { 0, 100 * 1000 }; /* 100ms */
+ rc = select(0, NULL, NULL, NULL, &wait);
+#endif
+ }
+ else {
+ /* Note that on some platforms 'timeout' may be modified by select().
+ If you need access to the original value save a copy beforehand. */
+ 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;
+ }
+ } while(still_running);
+
+ curl_multi_cleanup(multi_handle);
+
+ for(i=0; i<num_transfers; i++)
+ curl_easy_cleanup(easy[i]);
+
+ return 0;
+}
diff --git a/docs/examples/http2-upload.c b/docs/examples/http2-upload.c
new file mode 100644
index 00000000..bca16c0d
--- /dev/null
+++ b/docs/examples/http2-upload.c
@@ -0,0 +1,352 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://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 <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/* somewhat unix-specific */
+#include <sys/time.h>
+#include <unistd.h>
+
+/* curl stuff */
+#include <curl/curl.h>
+
+#ifndef CURLPIPE_MULTIPLEX
+/* This little trick will just make sure that we don't 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
+#endif
+
+#define NUM_HANDLES 1000
+
+void *curl_hnd[NUM_HANDLES];
+int num_transfers;
+
+/* a handle to number lookup, highly ineffective when we do many
+ transfers... */
+static int hnd2num(CURL *hnd)
+{
+ int i;
+ for(i=0; i< num_transfers; i++) {
+ if(curl_hnd[i] == hnd)
+ return i;
+ }
+ return 0; /* weird, but just a fail-safe */
+}
+
+static
+void dump(const char *text, int num, unsigned char *ptr, size_t size,
+ char nohex)
+{
+ size_t i;
+ size_t c;
+ unsigned int width=0x10;
+
+ if(nohex)
+ /* without the hex output, we can fit more on screen */
+ width = 0x40;
+
+ fprintf(stderr, "%d %s, %ld bytes (0x%lx)\n",
+ num, text, (long)size, (long)size);
+
+ for(i=0; i<size; i+= width) {
+
+ fprintf(stderr, "%4.4lx: ", (long)i);
+
+ if(!nohex) {
+ /* hex not disabled, show it */
+ for(c = 0; c < width; c++)
+ if(i+c < size)
+ fprintf(stderr, "%02x ", ptr[i+c]);
+ else
+ fputs(" ", stderr);
+ }
+
+ for(c = 0; (c < width) && (i+c < size); c++) {
+ /* check for 0D0A; if found, skip past and start a new line of output */
+ if (nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) {
+ i+=(c+2-width);
+ break;
+ }
+ fprintf(stderr, "%c",
+ (ptr[i+c]>=0x20) && (ptr[i+c]<0x80)?ptr[i+c]:'.');
+ /* check again for 0D0A, to avoid an extra \n if it's at width */
+ if (nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) {
+ i+=(c+3-width);
+ break;
+ }
+ }
+ fputc('\n', stderr); /* newline */
+ }
+}
+
+static
+int my_trace(CURL *handle, curl_infotype type,
+ char *data, size_t size,
+ void *userp)
+{
+ char timebuf[20];
+ const char *text;
+ int num = hnd2num(handle);
+ static time_t epoch_offset;
+ static int known_offset;
+ struct timeval tv;
+ time_t secs;
+ struct tm *now;
+
+ (void)handle; /* prevent compiler warning */
+ (void)userp;
+
+ gettimeofday(&tv, NULL);
+ if(!known_offset) {
+ epoch_offset = time(NULL) - tv.tv_sec;
+ known_offset = 1;
+ }
+ secs = epoch_offset + tv.tv_sec;
+ now = localtime(&secs); /* not thread safe but we don't care */
+ snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld",
+ now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
+
+ switch (type) {
+ case CURLINFO_TEXT:
+ fprintf(stderr, "%s [%d] Info: %s", timebuf, num, data);
+ default: /* in case a new one is introduced to shock us */
+ return 0;
+
+ case CURLINFO_HEADER_OUT:
+ text = "=> Send header";
+ break;
+ case CURLINFO_DATA_OUT:
+ text = "=> Send data";
+ break;
+ case CURLINFO_SSL_DATA_OUT:
+ text = "=> Send SSL data";
+ break;
+ case CURLINFO_HEADER_IN:
+ text = "<= Recv header";
+ break;
+ case CURLINFO_DATA_IN:
+ text = "<= Recv data";
+ break;
+ case CURLINFO_SSL_DATA_IN:
+ text = "<= Recv SSL data";
+ break;
+ }
+
+ dump(text, num, (unsigned char *)data, size, 1);
+ return 0;
+}
+
+struct input {
+ FILE *in;
+ size_t bytes_read; /* count up */
+ CURL *hnd;
+};
+
+static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
+{
+ struct input *i = userp;
+ size_t retcode = fread(ptr, size, nmemb, i->in);
+ i->bytes_read += retcode;
+ return retcode;
+}
+
+struct input indata[NUM_HANDLES];
+
+static void setup(CURL *hnd, int num, const char *upload)
+{
+ FILE *out;
+ char url[256];
+ char filename[128];
+ struct stat file_info;
+ curl_off_t uploadsize;
+
+ sprintf(filename, "dl-%d", num);
+ out = fopen(filename, "wb");
+
+ sprintf(url, "https://localhost:8443/upload-%d", num);
+
+ /* get the file size of the local file */
+ stat(upload, &file_info);
+ uploadsize = file_info.st_size;
+
+ indata[num].in = fopen(upload, "rb");
+ indata[num].hnd = hnd;
+
+ /* write to this file */
+ curl_easy_setopt(hnd, CURLOPT_WRITEDATA, out);
+
+ /* we want to use our own read function */
+ curl_easy_setopt(hnd, CURLOPT_READFUNCTION, read_callback);
+ /* read from this file */
+ curl_easy_setopt(hnd, CURLOPT_READDATA, &indata[num]);
+ /* provide the size of the upload */
+ curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, uploadsize);
+
+ /* send in the URL to store the upload as */
+ curl_easy_setopt(hnd, CURLOPT_URL, url);
+
+ /* upload please */
+ curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
+
+ /* send it verbose for max debuggaility */
+ curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
+ curl_easy_setopt(hnd, CURLOPT_DEBUGFUNCTION, my_trace);
+
+ /* HTTP/2 please */
+ curl_easy_setopt(hnd, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
+
+ /* we use a self-signed test server, skip verification during debugging */
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYPEER, 0L);
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYHOST, 0L);
+
+#if (CURLPIPE_MULTIPLEX > 0)
+ /* wait for pipe connection to confirm */
+ curl_easy_setopt(hnd, CURLOPT_PIPEWAIT, 1L);
+#endif
+
+ curl_hnd[num] = hnd;
+}
+
+/*
+ * Upload all files over HTTP/2, using the same physical connection!
+ */
+int main(int argc, char **argv)
+{
+ CURL *easy[NUM_HANDLES];
+ CURLM *multi_handle;
+ int i;
+ int still_running; /* keep number of running handles */
+ const char *filename = "index.html";
+
+ if(argc > 1)
+ /* if given a number, do that many transfers */
+ num_transfers = atoi(argv[1]);
+
+ if(argc > 2)
+ /* if given a file name, upload this! */
+ filename = argv[2];
+
+ if(!num_transfers || (num_transfers > NUM_HANDLES))
+ num_transfers = 3; /* a suitable low default */
+
+ /* init a multi stack */
+ multi_handle = curl_multi_init();
+
+ for(i=0; i<num_transfers; i++) {
+ easy[i] = curl_easy_init();
+ /* set options */
+ setup(easy[i], i, filename);
+
+ /* add the individual transfer */
+ curl_multi_add_handle(multi_handle, easy[i]);
+ }
+
+ curl_multi_setopt(multi_handle, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
+
+ /* We do HTTP/2 so let's stick to one connection per host */
+ curl_multi_setopt(multi_handle, CURLMOPT_MAX_HOST_CONNECTIONS, 1L);
+
+ /* we start some action by calling perform right away */
+ curl_multi_perform(multi_handle, &still_running);
+
+ do {
+ struct timeval timeout;
+ int rc; /* select() return code */
+ CURLMcode mc; /* curl_multi_fdset() return code */
+
+ fd_set fdread;
+ fd_set fdwrite;
+ fd_set fdexcep;
+ int maxfd = -1;
+
+ long curl_timeo = -1;
+
+ FD_ZERO(&fdread);
+ FD_ZERO(&fdwrite);
+ FD_ZERO(&fdexcep);
+
+ /* set a suitable timeout to play around with */
+ timeout.tv_sec = 1;
+ timeout.tv_usec = 0;
+
+ curl_multi_timeout(multi_handle, &curl_timeo);
+ if(curl_timeo >= 0) {
+ timeout.tv_sec = curl_timeo / 1000;
+ if(timeout.tv_sec > 1)
+ timeout.tv_sec = 1;
+ else
+ timeout.tv_usec = (curl_timeo % 1000) * 1000;
+ }
+
+ /* 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;
+ }
+
+ /* On success the value of maxfd is guaranteed to be >= -1. We call
+ select(maxfd + 1, ...); specially in case of (maxfd == -1) there are
+ no fds ready yet so we call select(0, ...) --or Sleep() on Windows--
+ to sleep 100ms, which is the minimum suggested value in the
+ curl_multi_fdset() doc. */
+
+ if(maxfd == -1) {
+#ifdef _WIN32
+ Sleep(100);
+ rc = 0;
+#else
+ /* Portable sleep for platforms other than Windows. */
+ struct timeval wait = { 0, 100 * 1000 }; /* 100ms */
+ rc = select(0, NULL, NULL, NULL, &wait);
+#endif
+ }
+ else {
+ /* Note that on some platforms 'timeout' may be modified by select().
+ If you need access to the original value save a copy beforehand. */
+ 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;
+ }
+ } while(still_running);
+
+ curl_multi_cleanup(multi_handle);
+
+ for(i=0; i<num_transfers; i++)
+ curl_easy_cleanup(easy[i]);
+
+ return 0;
+}
diff --git a/docs/examples/imap-ssl.c b/docs/examples/imap-ssl.c
index e42ff392..eec9b0e3 100644
--- a/docs/examples/imap-ssl.c
+++ b/docs/examples/imap-ssl.c
@@ -60,7 +60,7 @@ int main(void)
* 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. */
-#ifdef SKIP_HOSTNAME_VERFICATION
+#ifdef SKIP_HOSTNAME_VERIFICATION
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
diff --git a/docs/examples/multi-post.c b/docs/examples/multi-post.c
index f511d66f..5bfdcfd1 100644
--- a/docs/examples/multi-post.c
+++ b/docs/examples/multi-post.c
@@ -64,7 +64,7 @@ int main(void)
curl = curl_easy_init();
multi_handle = curl_multi_init();
- /* initalize custom header list (stating that Expect: 100-continue is not
+ /* initialize custom header list (stating that Expect: 100-continue is not
wanted */
headerlist = curl_slist_append(headerlist, buf);
if(curl && multi_handle) {
diff --git a/docs/examples/multi-single.c b/docs/examples/multi-single.c
index 47e23f5a..a43a9f52 100644
--- a/docs/examples/multi-single.c
+++ b/docs/examples/multi-single.c
@@ -81,7 +81,7 @@ int main(void)
}
/* 'numfds' being zero means either a timeout or no file descriptors to
- wait for. Try timeout on first occurance, then assume no file
+ wait for. Try timeout on first occurrence, then assume no file
descriptors and no file descriptors to wait for means wait for 100
milliseconds. */
diff --git a/docs/examples/pop3-multi.c b/docs/examples/pop3-multi.c
index 43530862..6df09a26 100644
--- a/docs/examples/pop3-multi.c
+++ b/docs/examples/pop3-multi.c
@@ -69,7 +69,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");
- /* This will retreive message 1 from the user's mailbox */
+ /* This will retrieve message 1 from the user's mailbox */
curl_easy_setopt(curl, CURLOPT_URL, "pop3://pop.example.com/1");
/* Tell the multi stack about our easy handle */
diff --git a/docs/examples/pop3-retr.c b/docs/examples/pop3-retr.c
index e5a50f22..b5113fa9 100644
--- a/docs/examples/pop3-retr.c
+++ b/docs/examples/pop3-retr.c
@@ -39,7 +39,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");
- /* This will retreive message 1 from the user's mailbox */
+ /* This will retrieve message 1 from the user's mailbox */
curl_easy_setopt(curl, CURLOPT_URL, "pop3://pop.example.com/1");
/* Perform the retr */
diff --git a/docs/examples/pop3-ssl.c b/docs/examples/pop3-ssl.c
index 45e0054b..0bbec8d9 100644
--- a/docs/examples/pop3-ssl.c
+++ b/docs/examples/pop3-ssl.c
@@ -40,7 +40,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");
- /* This will retreive message 1 from the user's mailbox. Note the use of
+ /* This will retrieve message 1 from the user's mailbox. Note the use of
* pop3s:// rather than pop3:// to request a SSL based connection. */
curl_easy_setopt(curl, CURLOPT_URL, "pop3s://pop.example.com/1");
@@ -60,7 +60,7 @@ int main(void)
* 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. */
-#ifdef SKIP_HOSTNAME_VERFICATION
+#ifdef SKIP_HOSTNAME_VERIFICATION
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
diff --git a/docs/examples/pop3-tls.c b/docs/examples/pop3-tls.c
index 812d89b8..58278a1e 100644
--- a/docs/examples/pop3-tls.c
+++ b/docs/examples/pop3-tls.c
@@ -40,7 +40,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");
- /* This will retreive message 1 from the user's mailbox */
+ /* 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
diff --git a/docs/examples/postit2.c b/docs/examples/postit2.c
index 67dcc133..88ea78c8 100644
--- a/docs/examples/postit2.c
+++ b/docs/examples/postit2.c
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
CURLFORM_END);
curl = curl_easy_init();
- /* initalize custom header list (stating that Expect: 100-continue is not
+ /* initialize custom header list (stating that Expect: 100-continue is not
wanted */
headerlist = curl_slist_append(headerlist, buf);
if(curl) {
diff --git a/docs/examples/sftpget.c b/docs/examples/sftpget.c
index 8317462e..434299dc 100644
--- a/docs/examples/sftpget.c
+++ b/docs/examples/sftpget.c
@@ -58,7 +58,7 @@ int main(void)
CURL *curl;
CURLcode res;
struct FtpFile ftpfile={
- "yourfile.bin", /* name to store the file as if succesful */
+ "yourfile.bin", /* name to store the file as if successful */
NULL
};
diff --git a/docs/examples/smtp-mail.c b/docs/examples/smtp-mail.c
index af4d1b65..eea90b8a 100644
--- a/docs/examples/smtp-mail.c
+++ b/docs/examples/smtp-mail.c
@@ -24,7 +24,7 @@
#include <curl/curl.h>
/* This is a simple example showing how to send mail using libcurl's SMTP
- * capabilities. For an exmaple of using the multi interface please see
+ * capabilities. For an example of using the multi interface please see
* smtp-multi.c.
*
* Note that this example requires libcurl 7.20.0 or above.
diff --git a/docs/examples/smtp-ssl.c b/docs/examples/smtp-ssl.c
index 9a68a7ff..a774403f 100644
--- a/docs/examples/smtp-ssl.c
+++ b/docs/examples/smtp-ssl.c
@@ -111,7 +111,7 @@ int main(void)
* 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. */
-#ifdef SKIP_HOSTNAME_VERFICATION
+#ifdef SKIP_HOSTNAME_VERIFICATION
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
diff --git a/docs/examples/xmlstream.c b/docs/examples/xmlstream.c
index 4d67f98e..81934450 100644
--- a/docs/examples/xmlstream.c
+++ b/docs/examples/xmlstream.c
@@ -120,7 +120,7 @@ int main(void)
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, characterDataHandler);
- /* Initalize a libcurl handle. */
+ /* Initialize a libcurl handle. */
curl_global_init(CURL_GLOBAL_ALL ^ CURL_GLOBAL_SSL);
curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.w3schools.com/xml/simple.xml");
diff --git a/docs/libcurl/Makefile.in b/docs/libcurl/Makefile.in
index 009b1b21..e8ebe6ae 100644
--- a/docs/libcurl/Makefile.in
+++ b/docs/libcurl/Makefile.in
@@ -102,8 +102,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = docs/libcurl
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs $(dist_m4macro_DATA) \
- $(top_srcdir)/test-driver
+ $(dist_m4macro_DATA) $(top_srcdir)/test-driver
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -124,7 +123,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/docs/libcurl/curl_easy_cleanup.3 b/docs/libcurl/curl_easy_cleanup.3
index 403bfd35..e8cd5509 100644
--- a/docs/libcurl/curl_easy_cleanup.3
+++ b/docs/libcurl/curl_easy_cleanup.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,5 +63,6 @@ if(curl) {
}
.fi
.SH "SEE ALSO"
-.BR curl_easy_init "(3), "
-
+.BR curl_easy_init "(3), " curl_easy_duphandle "(3), "
+.BR curl_easy_reset "(3), "
+.BR curl_multi_cleanup "(3), " curl_multi_remove_handle "(3) "
diff --git a/docs/libcurl/curl_easy_cleanup.html b/docs/libcurl/curl_easy_cleanup.html
index aa031196..5255119e 100644
--- a/docs/libcurl/curl_easy_cleanup.html
+++ b/docs/libcurl/curl_easy_cleanup.html
@@ -71,7 +71,6 @@ if(curl) {
</pre>
<p class="level0"><a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
-<p class="level0"><a Class="manpage" href="./curl_easy_init.html">curl_easy_init</a>, <span Class="manpage"> </span>
-<p class="level0"><p class="roffit">
+<p class="level0"><a Class="manpage" href="./curl_easy_init.html">curl_easy_init</a>, <a Class="manpage" href="./curl_easy_duphandle.html">curl_easy_duphandle</a>, <span Class="manpage"> </span> <a Class="manpage" href="./curl_easy_reset.html">curl_easy_reset</a>, <span Class="manpage"> </span> <a Class="manpage" href="./curl_multi_cleanup.html">curl_multi_cleanup</a>, <a Class="manpage" href="./curl_multi_remove_handle.html">curl_multi_remove_handle</a>, <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
</body></html>
diff --git a/docs/libcurl/curl_easy_cleanup.pdf b/docs/libcurl/curl_easy_cleanup.pdf
index 701710d0..db280be2 100644
--- a/docs/libcurl/curl_easy_cleanup.pdf
+++ b/docs/libcurl/curl_easy_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_duphandle.3 b/docs/libcurl/curl_easy_duphandle.3
index 080723a1..34cba58c 100644
--- a/docs/libcurl/curl_easy_duphandle.3
+++ b/docs/libcurl/curl_easy_duphandle.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -47,4 +47,6 @@ in a synchronous way, the input handle may not be in use when cloned.
If this function returns NULL, something went wrong and no valid handle was
returned.
.SH "SEE ALSO"
-.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_global_init "(3)"
+.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_reset "(3),"
+.BR curl_global_init "(3)"
+
diff --git a/docs/libcurl/curl_easy_duphandle.html b/docs/libcurl/curl_easy_duphandle.html
index b80e7485..34c5ec83 100644
--- a/docs/libcurl/curl_easy_duphandle.html
+++ b/docs/libcurl/curl_easy_duphandle.html
@@ -60,6 +60,7 @@ p.roffit {
<p class="level0">The new handle will <span Class="bold">not</span> inherit any state information, no connections, no SSL sessions and no cookies.
<p class="level0"><span Class="bold">Note</span> that even in multi-threaded programs, this function must be called in a synchronous way, the input handle may not be in use when cloned. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">If this function returns NULL, something went wrong and no valid handle was returned. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
-<p class="level0"><a Class="manpage" href="./curl_easy_init.html">curl_easy_init</a>, <a Class="manpage" href="./curl_easy_cleanup.html">curl_easy_cleanup</a>, <a Class="manpage" href="./curl_global_init.html">curl_global_init</a>, <p class="roffit">
+<p class="level0"><a Class="manpage" href="./curl_easy_init.html">curl_easy_init</a>, <a Class="manpage" href="./curl_easy_cleanup.html">curl_easy_cleanup</a>, <a Class="manpage" href="./curl_easy_reset.html">curl_easy_reset</a>, <a Class="manpage" href="./curl_global_init.html">curl_global_init</a>,
+<p class="level0"><p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
</body></html>
diff --git a/docs/libcurl/curl_easy_duphandle.pdf b/docs/libcurl/curl_easy_duphandle.pdf
index 792b54e8..c5ea731e 100644
--- a/docs/libcurl/curl_easy_duphandle.pdf
+++ b/docs/libcurl/curl_easy_duphandle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_escape.3 b/docs/libcurl/curl_easy_escape.3
index 7c8c658d..da2b3822 100644
--- a/docs/libcurl/curl_easy_escape.3
+++ b/docs/libcurl/curl_easy_escape.3
@@ -29,13 +29,13 @@ curl_easy_escape - URL encodes the given string
.BI "char *curl_easy_escape( CURL *" curl ", char *" string ", int "length " );"
.ad
.SH DESCRIPTION
-This function converts the given input \fBstring\fP to an URL encoded string
+This function converts the given input \fIstring\fP to a URL encoded string
and returns that as a new allocated string. All input characters that are not
a-z, A-Z, 0-9, '-', '.', '_' or '~' are converted to their "URL escaped"
version (%NN where NN is a two-digit hexadecimal number).
-If the \fBlength\fP argument is set to 0 (zero), \fIcurl_easy_escape(3)\fP
-uses strlen() on the input \fBurl\fP to find out the size.
+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.
You must \fIcurl_free(3)\fP the returned string when you're done with it.
.SH AVAILABILITY
diff --git a/docs/libcurl/curl_easy_escape.html b/docs/libcurl/curl_easy_escape.html
index 71602ade..88929411 100644
--- a/docs/libcurl/curl_easy_escape.html
+++ b/docs/libcurl/curl_easy_escape.html
@@ -55,8 +55,8 @@ p.roffit {
<p class="level0"><span Class="bold">#include &lt;curl/curl.h&gt;</span>
<p class="level0"><span Class="bold">char *curl_easy_escape( CURL * curl , char * string , int length );</span>
<p class="level0"><a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
-<p class="level0">This function converts the given input <span Class="bold">string</span> to an URL encoded string and returns that as a new allocated string. All input characters that are not a-z, A-Z, 0-9, '-', '.', '_' or '~' are converted to their "URL escaped" version (%NN where NN is a two-digit hexadecimal number).
-<p class="level0">If the <span Class="bold">length</span> argument is set to 0 (zero), <a Class="emphasis" href="./curl_easy_escape.html">curl_easy_escape</a> uses strlen() on the input <span Class="bold">url</span> to find out the size.
+<p class="level0">This function converts the given input <span Class="emphasis">string</span> to a URL encoded string and returns that as a new allocated string. All input characters that are not a-z, A-Z, 0-9, '-', '.', '_' or '~' are converted to their "URL escaped" version (%NN where NN is a two-digit hexadecimal number).
+<p class="level0">If <span Class="emphasis">length</span> is set to 0 (zero), <a Class="emphasis" href="./curl_easy_escape.html">curl_easy_escape</a> uses strlen() on the input <span Class="emphasis">string</span> to find out the size.
<p class="level0">You must <a Class="emphasis" href="./curl_free.html">curl_free</a> the returned string when you're done with it. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
<p class="level0">Added in 7.15.4 and replaces the old <a Class="emphasis" href="./curl_escape.html">curl_escape</a> function. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">A pointer to a zero terminated string or NULL if it failed. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
diff --git a/docs/libcurl/curl_easy_escape.pdf b/docs/libcurl/curl_easy_escape.pdf
index b84557c7..897170dc 100644
--- a/docs/libcurl/curl_easy_escape.pdf
+++ b/docs/libcurl/curl_easy_escape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_getinfo.html b/docs/libcurl/curl_easy_getinfo.html
index 6475af69..3113bff4 100644
--- a/docs/libcurl/curl_easy_getinfo.html
+++ b/docs/libcurl/curl_easy_getinfo.html
@@ -173,7 +173,7 @@ struct curl_tlssessioninfo {
<p class="level1">Pass a pointer to a long to receive the most recently received CSeq from the server. If your application encounters a <span Class="emphasis">CURLE_RTSP_CSEQ_ERROR</span> then you may wish to troubleshoot and/or fix the CSeq mismatch by peeking at this value. <a name="TIMES"></a><h2 class="nroffsh">TIMES</h2>
<p class="level0"><pre class="level0">
An overview of the six time values available from curl_easy_getinfo()
-
+&nbsp;
curl_easy_perform()
&nbsp; |
&nbsp; |--NAMELOOKUP
diff --git a/docs/libcurl/curl_easy_getinfo.pdf b/docs/libcurl/curl_easy_getinfo.pdf
index 6b931995..1007619e 100644
--- a/docs/libcurl/curl_easy_getinfo.pdf
+++ b/docs/libcurl/curl_easy_getinfo.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_init.pdf b/docs/libcurl/curl_easy_init.pdf
index 90d37af7..78ec7a95 100644
--- a/docs/libcurl/curl_easy_init.pdf
+++ b/docs/libcurl/curl_easy_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_pause.pdf b/docs/libcurl/curl_easy_pause.pdf
index 57de52a3..39b4fc64 100644
--- a/docs/libcurl/curl_easy_pause.pdf
+++ b/docs/libcurl/curl_easy_pause.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_perform.pdf b/docs/libcurl/curl_easy_perform.pdf
index a8570393..6182f6a2 100644
--- a/docs/libcurl/curl_easy_perform.pdf
+++ b/docs/libcurl/curl_easy_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_recv.pdf b/docs/libcurl/curl_easy_recv.pdf
index 558703f9..6048d284 100644
--- a/docs/libcurl/curl_easy_recv.pdf
+++ b/docs/libcurl/curl_easy_recv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_reset.pdf b/docs/libcurl/curl_easy_reset.pdf
index 4ef9dc85..8cd7544b 100644
--- a/docs/libcurl/curl_easy_reset.pdf
+++ b/docs/libcurl/curl_easy_reset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_send.pdf b/docs/libcurl/curl_easy_send.pdf
index 3bc3fa6a..55a22336 100644
--- a/docs/libcurl/curl_easy_send.pdf
+++ b/docs/libcurl/curl_easy_send.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 712dae90..4e5b8dec 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -165,6 +165,10 @@ Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(3)\fP
Socks5 GSSAPI service name. \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP
.IP CURLOPT_SOCKS5_GSSAPI_NEC
Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP
+.IP CURLOPT_PROXY_SERVICE_NAME
+Proxy service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP
+.IP CURLOPT_SERVICE_NAME
+SPNEGO service name. \fICURLOPT_SERVICE_NAME(3)\fP
.IP CURLOPT_INTERFACE
Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP
.IP CURLOPT_LOCALPORT
diff --git a/docs/libcurl/curl_easy_setopt.html b/docs/libcurl/curl_easy_setopt.html
index 0f72dc00..3bfba8ec 100644
--- a/docs/libcurl/curl_easy_setopt.html
+++ b/docs/libcurl/curl_easy_setopt.html
@@ -169,6 +169,10 @@ p.roffit {
<p class="level1">Socks5 GSSAPI service name. <span Class="emphasis">CURLOPT_SOCKS5_GSSAPI_SERVICE(3)</span>
<p class="level0"><a name="CURLOPTSOCKS5GSSAPINEC"></a><span class="nroffip">CURLOPT_SOCKS5_GSSAPI_NEC</span>
<p class="level1">Socks5 GSSAPI NEC mode. See <span Class="emphasis">CURLOPT_SOCKS5_GSSAPI_NEC(3)</span>
+<p class="level0"><a name="CURLOPTPROXYSERVICENAME"></a><span class="nroffip">CURLOPT_PROXY_SERVICE_NAME</span>
+<p class="level1">Proxy service name. <span Class="emphasis">CURLOPT_PROXY_SERVICE_NAME(3)</span>
+<p class="level0"><a name="CURLOPTSERVICENAME"></a><span class="nroffip">CURLOPT_SERVICE_NAME</span>
+<p class="level1">SPNEGO service name. <span Class="emphasis">CURLOPT_SERVICE_NAME(3)</span>
<p class="level0"><a name="CURLOPTINTERFACE"></a><span class="nroffip">CURLOPT_INTERFACE</span>
<p class="level1">Bind connection locally to this. See <span Class="emphasis">CURLOPT_INTERFACE(3)</span>
<p class="level0"><a name="CURLOPTLOCALPORT"></a><span class="nroffip">CURLOPT_LOCALPORT</span>
diff --git a/docs/libcurl/curl_easy_setopt.pdf b/docs/libcurl/curl_easy_setopt.pdf
index d108ac84..4e9c8eb6 100644
--- a/docs/libcurl/curl_easy_setopt.pdf
+++ b/docs/libcurl/curl_easy_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_strerror.pdf b/docs/libcurl/curl_easy_strerror.pdf
index 3da47f65..f22ca4e3 100644
--- a/docs/libcurl/curl_easy_strerror.pdf
+++ b/docs/libcurl/curl_easy_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_unescape.3 b/docs/libcurl/curl_easy_unescape.3
index 357ad23c..23ce9c3c 100644
--- a/docs/libcurl/curl_easy_unescape.3
+++ b/docs/libcurl/curl_easy_unescape.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,4 +48,4 @@ Added in 7.15.4 and replaces the old \fIcurl_unescape(3)\fP function.
.SH RETURN VALUE
A pointer to a zero terminated string or NULL if it failed.
.SH "SEE ALSO"
-.BR curl_easy_escape "(3), " curl_free "(3)," RFC 2396
+.BR curl_easy_escape "(3), " curl_free "(3)," RFC 3986
diff --git a/docs/libcurl/curl_easy_unescape.html b/docs/libcurl/curl_easy_unescape.html
index 04c24af9..686ecc31 100644
--- a/docs/libcurl/curl_easy_unescape.html
+++ b/docs/libcurl/curl_easy_unescape.html
@@ -61,6 +61,6 @@ p.roffit {
<p class="level0">You must <a Class="emphasis" href="./curl_free.html">curl_free</a> the returned string when you're done with it. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
<p class="level0">Added in 7.15.4 and replaces the old <a Class="emphasis" href="./curl_unescape.html">curl_unescape</a> function. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">A pointer to a zero terminated string or NULL if it failed. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
-<p class="level0"><a Class="manpage" href="./curl_easy_escape.html">curl_easy_escape</a>, <a Class="manpage" href="./curl_free.html">curl_free</a>, <span Class="manpage"> <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a></span> <p class="roffit">
+<p class="level0"><a Class="manpage" href="./curl_easy_escape.html">curl_easy_escape</a>, <a Class="manpage" href="./curl_free.html">curl_free</a>, <span Class="manpage"> <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a></span> <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
</body></html>
diff --git a/docs/libcurl/curl_easy_unescape.pdf b/docs/libcurl/curl_easy_unescape.pdf
index 6a4f72e0..647a6e47 100644
--- a/docs/libcurl/curl_easy_unescape.pdf
+++ b/docs/libcurl/curl_easy_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_escape.pdf b/docs/libcurl/curl_escape.pdf
index d93c5236..ca666701 100644
--- a/docs/libcurl/curl_escape.pdf
+++ b/docs/libcurl/curl_escape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formadd.html b/docs/libcurl/curl_formadd.html
index ee679a88..4f0d4ce1 100644
--- a/docs/libcurl/curl_formadd.html
+++ b/docs/libcurl/curl_formadd.html
@@ -97,7 +97,7 @@ p.roffit {
<p class="level1">See example below. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">0 means everything was ok, non-zero means an error occurred corresponding to a CURL_FORMADD_* constant defined in <span Class="emphasis">&lt;curl/curl.h&gt;</span> <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0"><pre class="level0">
-
+&nbsp;
&nbsp;struct curl_httppost* post = NULL;
&nbsp;struct curl_httppost* last = NULL;
&nbsp;char namebuffer[] = "name buffer";
@@ -112,52 +112,52 @@ p.roffit {
&nbsp; transfers of buffers containing null characters actually work
&nbsp;*/
&nbsp;htmlbuffer[8] = '\0';
-
+&nbsp;
&nbsp;/* Add simple name/content section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "name",
&nbsp; CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add simple name/content/contenttype section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "htmlcode",
&nbsp; CURLFORM_COPYCONTENTS, "&lt;HTML&gt;&lt;/HTML&gt;",
&nbsp; CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add name/ptrcontent section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "name_for_ptrcontent",
&nbsp; CURLFORM_PTRCONTENTS, buffer, CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add ptrname/ptrcontent section */
&nbsp;curl_formadd(&post, &last, CURLFORM_PTRNAME, namebuffer,
&nbsp; CURLFORM_PTRCONTENTS, buffer, CURLFORM_NAMELENGTH,
&nbsp; namelength, CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add name/ptrcontent/contenttype section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "html_code_with_hole",
&nbsp; CURLFORM_PTRCONTENTS, htmlbuffer,
&nbsp; CURLFORM_CONTENTSLENGTH, htmlbufferlength,
&nbsp; CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add simple file section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
&nbsp; CURLFORM_FILE, "my-face.jpg", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add file/contenttype section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
&nbsp; CURLFORM_FILE, "my-face.jpg",
&nbsp; CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add two file section */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
&nbsp; CURLFORM_FILE, "my-face.jpg",
&nbsp; CURLFORM_FILE, "your-face.jpg", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Add two file section using CURLFORM_ARRAY */
&nbsp;forms[0].option = CURLFORM_FILE;
&nbsp;forms[0].value = file1;
&nbsp;forms[1].option = CURLFORM_FILE;
&nbsp;forms[1].value = file2;
&nbsp;forms[2].option = CURLFORM_END;
-
+&nbsp;
&nbsp;/* Add a buffer to upload */
&nbsp;curl_formadd(&post, &last,
&nbsp; CURLFORM_COPYNAME, "name",
@@ -165,7 +165,7 @@ p.roffit {
&nbsp; CURLFORM_BUFFERPTR, record,
&nbsp; CURLFORM_BUFFERLENGTH, record_length,
&nbsp; CURLFORM_END);
-
+&nbsp;
&nbsp;/* no option needed for the end marker */
&nbsp;curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
&nbsp; CURLFORM_ARRAY, forms, CURLFORM_END);
@@ -174,7 +174,7 @@ p.roffit {
&nbsp; CURLFORM_FILECONTENT, ".bashrc", CURLFORM_END);
&nbsp;/* Set the form info */
&nbsp;curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
-
+&nbsp;
</pre>
<a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
<p class="level0"><a Class="manpage" href="./curl_easy_setopt.html">curl_easy_setopt</a>, <span Class="manpage"> </span> <a Class="manpage" href="./curl_formfree.html">curl_formfree</a>, <p class="roffit">
diff --git a/docs/libcurl/curl_formadd.pdf b/docs/libcurl/curl_formadd.pdf
index 53668424..22b3fad1 100644
--- a/docs/libcurl/curl_formadd.pdf
+++ b/docs/libcurl/curl_formadd.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formfree.pdf b/docs/libcurl/curl_formfree.pdf
index 08bb78bd..caf83a38 100644
--- a/docs/libcurl/curl_formfree.pdf
+++ b/docs/libcurl/curl_formfree.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formget.html b/docs/libcurl/curl_formget.html
index e1e9b2b8..0347be34 100644
--- a/docs/libcurl/curl_formget.html
+++ b/docs/libcurl/curl_formget.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">curl_formget - serialize a previously built multipart/formdata HTTP POST chain <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
<span Class="bold">#include &lt;curl/curl.h&gt;</span>
-
+&nbsp;
void curl_formget(struct curl_httppost * form, void *userp,
&nbsp; curl_formget_callback append );
</pre>
@@ -65,14 +65,14 @@ void curl_formget(struct curl_httppost * form, void *userp,
<p class="level0">If the <span Class="bold">CURLFORM_STREAM</span> option is used in the formpost, it will prevent <a Class="emphasis" href="./curl_formget.html">curl_formget</a> from working until you've performed the actual HTTP request as only then will libcurl get the actual read callback to use! <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">0 means everything was ok, non-zero means an error occurred <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0"><pre class="level0">
-
+&nbsp;
&nbsp;size_t print_httppost_callback(void *arg, const char *buf, size_t len)
&nbsp;{
&nbsp; fwrite(buf, len, 1, stdout);
&nbsp; (*(size_t *) arg) += len;
&nbsp; return len;
&nbsp;}
-
+&nbsp;
&nbsp;size_t print_httppost(struct curl_httppost *post)
&nbsp;{
&nbsp; size_t total_size = 0;
diff --git a/docs/libcurl/curl_formget.pdf b/docs/libcurl/curl_formget.pdf
index 14c21439..27825dde 100644
--- a/docs/libcurl/curl_formget.pdf
+++ b/docs/libcurl/curl_formget.pdf
Binary files differ
diff --git a/docs/libcurl/curl_free.pdf b/docs/libcurl/curl_free.pdf
index e35240c1..a968731b 100644
--- a/docs/libcurl/curl_free.pdf
+++ b/docs/libcurl/curl_free.pdf
Binary files differ
diff --git a/docs/libcurl/curl_getdate.3 b/docs/libcurl/curl_getdate.3
index ff31ac7c..2e7d7aa7 100644
--- a/docs/libcurl/curl_getdate.3
+++ b/docs/libcurl/curl_getdate.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -91,7 +91,7 @@ Sat, 11 Sep 2004 21:32:11 +0200
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 RFC2616 says HTTP applications may use.
+only ones RFC 7231 says HTTP applications may use.
.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_getdate.html b/docs/libcurl/curl_getdate.html
index 270781ca..1391898a 100644
--- a/docs/libcurl/curl_getdate.html
+++ b/docs/libcurl/curl_getdate.html
@@ -89,7 +89,7 @@ Sat, 11 Sep 2004 21:32:11 +0200
</pre>
<p class="level0"><a name="STANDARDS"></a><h2 class="nroffsh">STANDARDS</h2>
-<p class="level0">This parser was written to handle date formats specified in <a href="http://www.ietf.org/rfc/rfc822.txt">RFC 822</a> (including the update in <a href="http://www.ietf.org/rfc/rfc1123.txt">RFC 1123</a>) using time zone name or time zone delta and RFC 850 (obsoleted by <a href="http://www.ietf.org/rfc/rfc1036.txt">RFC 1036</a>) and ANSI C's asctime() format. These formats are the only ones <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> says HTTP applications may use. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">This parser was written to handle date formats specified in <a href="http://www.ietf.org/rfc/rfc822.txt">RFC 822</a> (including the update in <a href="http://www.ietf.org/rfc/rfc1123.txt">RFC 1123</a>) using time zone name or time zone delta and RFC 850 (obsoleted by <a href="http://www.ietf.org/rfc/rfc1036.txt">RFC 1036</a>) and ANSI C's asctime() format. These formats are the only ones <a href="http://www.ietf.org/rfc/rfc7231.txt">RFC 7231</a> says HTTP applications may use. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">This function returns -1 when it fails to parse the date string. Otherwise it returns the number of seconds as described.
<p class="level0">If the year is larger than 2037 on systems with 32 bit time_t, this function will return 0x7fffffff (since that is the largest possible signed 32 bit number).
<p class="level0">Having a 64 bit time_t is not a guarantee that dates beyond 03:14:07 UTC, January 19, 2038 will work fine. On systems with a 64 bit time_t but with a crippled mktime(), <a Class="emphasis" href="./curl_getdate.html">curl_getdate</a> will return -1 in this case. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
diff --git a/docs/libcurl/curl_getdate.pdf b/docs/libcurl/curl_getdate.pdf
index bfedeabd..d9512fbd 100644
--- a/docs/libcurl/curl_getdate.pdf
+++ b/docs/libcurl/curl_getdate.pdf
Binary files differ
diff --git a/docs/libcurl/curl_getenv.pdf b/docs/libcurl/curl_getenv.pdf
index a5060928..50a23a5c 100644
--- a/docs/libcurl/curl_getenv.pdf
+++ b/docs/libcurl/curl_getenv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_cleanup.pdf b/docs/libcurl/curl_global_cleanup.pdf
index a33dc245..51ad7434 100644
--- a/docs/libcurl/curl_global_cleanup.pdf
+++ b/docs/libcurl/curl_global_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init.pdf b/docs/libcurl/curl_global_init.pdf
index 1a0b8290..33968fe9 100644
--- a/docs/libcurl/curl_global_init.pdf
+++ b/docs/libcurl/curl_global_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init_mem.pdf b/docs/libcurl/curl_global_init_mem.pdf
index fd8857c3..88805f88 100644
--- a/docs/libcurl/curl_global_init_mem.pdf
+++ b/docs/libcurl/curl_global_init_mem.pdf
Binary files differ
diff --git a/docs/libcurl/curl_mprintf.pdf b/docs/libcurl/curl_mprintf.pdf
index 496053e5..3e78fe06 100644
--- a/docs/libcurl/curl_mprintf.pdf
+++ b/docs/libcurl/curl_mprintf.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_add_handle.pdf b/docs/libcurl/curl_multi_add_handle.pdf
index fb49eaaa..f4d65ff1 100644
--- a/docs/libcurl/curl_multi_add_handle.pdf
+++ b/docs/libcurl/curl_multi_add_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_assign.pdf b/docs/libcurl/curl_multi_assign.pdf
index dbe59575..20250e73 100644
--- a/docs/libcurl/curl_multi_assign.pdf
+++ b/docs/libcurl/curl_multi_assign.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_cleanup.pdf b/docs/libcurl/curl_multi_cleanup.pdf
index c4866546..81331148 100644
--- a/docs/libcurl/curl_multi_cleanup.pdf
+++ b/docs/libcurl/curl_multi_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_fdset.html b/docs/libcurl/curl_multi_fdset.html
index 118f2309..3a48bbc7 100644
--- a/docs/libcurl/curl_multi_fdset.html
+++ b/docs/libcurl/curl_multi_fdset.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">curl_multi_fdset - extracts file descriptor information from a multi handle <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLMcode curl_multi_fdset(CURLM *multi_handle,
&nbsp; fd_set *read_fd_set,
&nbsp; fd_set *write_fd_set,
diff --git a/docs/libcurl/curl_multi_fdset.pdf b/docs/libcurl/curl_multi_fdset.pdf
index b290b489..905ba793 100644
--- a/docs/libcurl/curl_multi_fdset.pdf
+++ b/docs/libcurl/curl_multi_fdset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_info_read.3 b/docs/libcurl/curl_multi_info_read.3
index 87517648..03be341b 100644
--- a/docs/libcurl/curl_multi_info_read.3
+++ b/docs/libcurl/curl_multi_info_read.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,8 +49,8 @@ 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" in
-present in that struct and can thus be used in subsequent regular
+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
@@ -68,6 +68,24 @@ is done, and then \fBresult\fP contains the return code for the easy handle
that just completed.
At this point, there are no other \fBmsg\fP types defined.
+.SH EXAMPLE
+.nf
+struct CURLMsg *m;
+
+/* call curl_multi_perform or curl_multi_socket_action first, then loop
+ through and check if there are any transfers that have completed */
+
+do {
+ int msgq = 0;
+ m = curl_multi_info_read(multi_handle, &msgq);
+ if(m && (m->msg == CURLMSG_DONE)) {
+ CURL *e = m->easy_handle;
+ transfers--;
+ curl_multi_remove_handle(multi_handle, e);
+ curl_easy_cleanup(e);
+ }
+} while(m);
+.fi
.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
diff --git a/docs/libcurl/curl_multi_info_read.html b/docs/libcurl/curl_multi_info_read.html
index e3d2fed3..f83ed9ea 100644
--- a/docs/libcurl/curl_multi_info_read.html
+++ b/docs/libcurl/curl_multi_info_read.html
@@ -59,7 +59,7 @@ p.roffit {
<p class="level0">Repeated calls to this function will return a new struct each time, until a NULL is returned as a signal that there is no more to get at this point. The integer pointed to with <span Class="emphasis">msgs_in_queue</span> will contain the number of remaining messages after this function was called.
<p class="level0">When you fetch a message using this function, it is removed from the internal queue so calling this function again will not return the same message again. It will instead return new messages at each new invoke until the queue is emptied.
<p class="level0"><span Class="bold">WARNING:</span> The data the returned pointer points to will not survive calling <a Class="emphasis" href="./curl_multi_cleanup.html">curl_multi_cleanup</a>, <a Class="emphasis" href="./curl_multi_remove_handle.html">curl_multi_remove_handle</a> or <a Class="emphasis" href="./curl_easy_cleanup.html">curl_easy_cleanup</a>.
-<p class="level0">The 'CURLMsg' struct is very simple and only contains very basic information. If more involved information is wanted, the particular "easy handle" in present in that struct and can thus be used in subsequent regular <a Class="emphasis" href="./curl_easy_getinfo.html">curl_easy_getinfo</a> calls (or similar):
+<p class="level0">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 <a Class="emphasis" href="./curl_easy_getinfo.html">curl_easy_getinfo</a> calls (or similar):
<p class="level0"><pre class="level0">
&nbsp;struct CURLMsg {
&nbsp; CURLMSG msg; /* what this message means */
@@ -72,7 +72,26 @@ p.roffit {
</pre>
<p class="level0">When <span Class="bold">msg</span> is <span Class="emphasis">CURLMSG_DONE</span>, the message identifies a transfer that is done, and then <span Class="bold">result</span> contains the return code for the easy handle that just completed.
-<p class="level0">At this point, there are no other <span Class="bold">msg</span> types defined. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">At this point, there are no other <span Class="bold">msg</span> types defined. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0"><pre class="level0">
+struct CURLMsg *m;
+&nbsp;
+/* call curl_multi_perform or curl_multi_socket_action first, then loop
+&nbsp; through and check if there are any transfers that have completed */
+&nbsp;
+do {
+&nbsp; int msgq = 0;
+&nbsp; m = curl_multi_info_read(multi_handle, &msgq);
+&nbsp; if(m && (m-&gt;msg == CURLMSG_DONE)) {
+&nbsp; CURL *e = m-&gt;easy_handle;
+&nbsp; transfers--;
+&nbsp; curl_multi_remove_handle(multi_handle, e);
+&nbsp; curl_easy_cleanup(e);
+&nbsp; }
+} while(m);
+</pre>
+
+<p class="level0"><a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">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. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
<p class="level0"><a Class="manpage" href="./curl_multi_cleanup.html">curl_multi_cleanup</a>, <a Class="manpage" href="./curl_multi_init.html">curl_multi_init</a>, <a Class="manpage" href="./curl_multi_perform.html">curl_multi_perform</a>, <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
diff --git a/docs/libcurl/curl_multi_info_read.pdf b/docs/libcurl/curl_multi_info_read.pdf
index dfbfe5e2..5fc42353 100644
--- a/docs/libcurl/curl_multi_info_read.pdf
+++ b/docs/libcurl/curl_multi_info_read.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_init.pdf b/docs/libcurl/curl_multi_init.pdf
index ef20a5ba..c45bb447 100644
--- a/docs/libcurl/curl_multi_init.pdf
+++ b/docs/libcurl/curl_multi_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_perform.3 b/docs/libcurl/curl_multi_perform.3
index e0e5b02d..3ec1fade 100644
--- a/docs/libcurl/curl_multi_perform.3
+++ b/docs/libcurl/curl_multi_perform.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,6 +49,55 @@ added handle fails very quickly, it may never be counted as a running_handle.
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
+
+fd_set fdread;
+fd_set fdwrite;
+fd_set fdexcep;
+int maxfd = -1;
+
+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 there are still transfers, loop! */
+.fi
.SH "RETURN VALUE"
CURLMcode type, general libcurl multi interface error code.
diff --git a/docs/libcurl/curl_multi_perform.html b/docs/libcurl/curl_multi_perform.html
index 9dad5536..bf68abda 100644
--- a/docs/libcurl/curl_multi_perform.html
+++ b/docs/libcurl/curl_multi_perform.html
@@ -58,7 +58,57 @@ p.roffit {
<p class="level0">This function handles transfers on all the added handles that need attention in an non-blocking fashion.
<p class="level0">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 read/write whatever there is to read or write right now etc. <a Class="emphasis" href="./curl_multi_perform.html">curl_multi_perform</a> 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 integer-pointer.
<p class="level0">If the amount of <span Class="emphasis">running_handles</span> is changed from the previous call (or is less than the amount of easy handles you've added to the multi handle), you know that there is one or more transfers less "running". You can then call <a Class="emphasis" href="./curl_multi_info_read.html">curl_multi_info_read</a> 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.
-<p class="level0">When <span Class="emphasis">running_handles</span> is set to zero (0) on the return of this function, there is no longer any transfers in progress. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">When <span Class="emphasis">running_handles</span> is set to zero (0) on the return of this function, there is no longer any transfers in progress. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0"><pre class="level0">
+&#35;ifdef _WIN32
+&#35;define SHORT_SLEEP Sleep(100)
+&#35;else
+&#35;define SHORT_SLEEP usleep(100000)
+&#35;endif
+&nbsp;
+fd_set fdread;
+fd_set fdwrite;
+fd_set fdexcep;
+int maxfd = -1;
+&nbsp;
+long curl_timeo;
+&nbsp;
+curl_multi_timeout(multi_handle, &curl_timeo);
+if(curl_timeo &lt; 0)
+&nbsp; curl_timeo = 1000;
+&nbsp;
+timeout.tv_sec = curl_timeo / 1000;
+timeout.tv_usec = (curl_timeo % 1000) * 1000;
+&nbsp;
+FD_ZERO(&fdread);
+FD_ZERO(&fdwrite);
+FD_ZERO(&fdexcep);
+&nbsp;
+/* get file descriptors from the transfers */
+mc = curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
+&nbsp;
+if(maxfd == -1) {
+&nbsp; SHORT_SLEEP;
+&nbsp; rc = 0;
+}
+else
+&nbsp; rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+&nbsp;
+switch(rc) {
+case -1:
+&nbsp; /* select error */
+&nbsp; break;
+case 0:
+default:
+&nbsp; /* timeout or readable/writable sockets */
+&nbsp; curl_multi_perform(multi_handle, &still_running);
+&nbsp; break;
+}
+&nbsp;
+/* if there are still transfers, loop! */
+</pre>
+
+<p class="level0"><a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">CURLMcode type, general libcurl multi interface error code.
<p class="level0">Before version 7.20.0: If you receive <span Class="emphasis">CURLM_CALL_MULTI_PERFORM</span>, this basically means that you should call <a Class="emphasis" href="./curl_multi_perform.html">curl_multi_perform</a> 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 <a Class="emphasis" href="./curl_multi_perform.html">curl_multi_perform</a> will return <span Class="emphasis">CURLM_CALL_MULTI_PERFORM</span> only when it wants to be called again <span Class="bold">immediately</span>. When things are fine and there is nothing immediate it wants done, it'll return <span Class="emphasis">CURLM_OK</span> and you need to wait for "action" and then call this function again.
<p class="level0">This function only returns errors etc regarding the whole multi stack. Problems still might have occurred on individual transfers even when this function returns <span Class="emphasis">CURLM_OK</span>. Use <a Class="emphasis" href="./curl_multi_info_read.html">curl_multi_info_read</a> to figure out how individual transfers did. <a name="TYPICAL"></a><h2 class="nroffsh">TYPICAL USAGE</h2>
diff --git a/docs/libcurl/curl_multi_perform.pdf b/docs/libcurl/curl_multi_perform.pdf
index bca0aa13..ddc739bb 100644
--- a/docs/libcurl/curl_multi_perform.pdf
+++ b/docs/libcurl/curl_multi_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_remove_handle.pdf b/docs/libcurl/curl_multi_remove_handle.pdf
index 2e6907c3..89cf7650 100644
--- a/docs/libcurl/curl_multi_remove_handle.pdf
+++ b/docs/libcurl/curl_multi_remove_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_setopt.pdf b/docs/libcurl/curl_multi_setopt.pdf
index 5ac02766..17bcf180 100644
--- a/docs/libcurl/curl_multi_setopt.pdf
+++ b/docs/libcurl/curl_multi_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket.html b/docs/libcurl/curl_multi_socket.html
index 03375c1d..1b73518f 100644
--- a/docs/libcurl/curl_multi_socket.html
+++ b/docs/libcurl/curl_multi_socket.html
@@ -56,7 +56,7 @@ p.roffit {
&#35;include &lt;curl/curl.h&gt;
CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd,
&nbsp; int *running_handles);
-
+&nbsp;
CURLMcode curl_multi_socket_all(CURLM *multi_handle,
&nbsp; int *running_handles);
</pre>
@@ -70,13 +70,13 @@ CURLMcode curl_multi_socket_all(CURLM *multi_handle,
<p class="level0">Force libcurl to (re-)check all its internal sockets and transfers instead of just a single one by calling <a Class="bold" href="./curl_multi_socket_all.html">curl_multi_socket_all</a>. Note that there should not be any reason to use this function! <a name="CALLBACK"></a><h2 class="nroffsh">CALLBACK DETAILS</h2>
<p class="level0">
<p class="level0">The socket <span Class="bold">callback</span> function uses a prototype like this <pre class="level0">
-
+&nbsp;
&nbsp; int curl_socket_callback(CURL *easy, /* easy handle */
&nbsp; curl_socket_t s, /* socket */
&nbsp; int action, /* see values below */
&nbsp; void *userp, /* private callback pointer */
&nbsp; void *socketp); /* private socket pointer */
-
+&nbsp;
</pre>
<p class="level0">The callback MUST return 0.
diff --git a/docs/libcurl/curl_multi_socket.pdf b/docs/libcurl/curl_multi_socket.pdf
index aabef22e..e7e8359c 100644
--- a/docs/libcurl/curl_multi_socket.pdf
+++ b/docs/libcurl/curl_multi_socket.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket_action.html b/docs/libcurl/curl_multi_socket_action.html
index 1ef467fc..5d01486b 100644
--- a/docs/libcurl/curl_multi_socket_action.html
+++ b/docs/libcurl/curl_multi_socket_action.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">curl_multi_socket_action - reads/writes available data given an action <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLMcode curl_multi_socket_action(CURLM * multi_handle,
&nbsp; curl_socket_t sockfd, int ev_bitmask,
&nbsp; int *running_handles);
@@ -67,7 +67,7 @@ CURLMcode curl_multi_socket_action(CURLM * multi_handle,
<p class="level0">Get the timeout time by setting the <span Class="emphasis">CURLMOPT_TIMERFUNCTION</span> option with <a Class="emphasis" href="./curl_multi_setopt.html">curl_multi_setopt</a>. Your application will then get called with information on how long to wait for socket actions at most before doing the timeout action: call the <a Class="bold" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> function with the <span Class="bold">sockfd</span> argument set to CURL_SOCKET_TIMEOUT. You can also use the <a Class="emphasis" href="./curl_multi_timeout.html">curl_multi_timeout</a> function to poll the value at any given time, but for an event-based system using the callback is far better than relying on polling the timeout value. <a name="CALLBACK"></a><h2 class="nroffsh">CALLBACK DETAILS</h2>
<p class="level0">
<p class="level0">The socket <span Class="bold">callback</span> function uses a prototype like this <pre class="level0">
-
+&nbsp;
&nbsp; int curl_socket_callback(CURL *easy, /* easy handle */
&nbsp; curl_socket_t s, /* socket */
&nbsp; int action, /* see values below */
@@ -76,7 +76,7 @@ CURLMcode curl_multi_socket_action(CURLM * multi_handle,
&nbsp; <span Class="bold">NULL</span> if not
&nbsp; previously assigned with
&nbsp; <a Class="bold" href="./curl_multi_assign.html">curl_multi_assign</a> */
-
+&nbsp;
</pre>
<p class="level0">The callback MUST return 0.
diff --git a/docs/libcurl/curl_multi_socket_action.pdf b/docs/libcurl/curl_multi_socket_action.pdf
index 5da09068..b44f5eb4 100644
--- a/docs/libcurl/curl_multi_socket_action.pdf
+++ b/docs/libcurl/curl_multi_socket_action.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_strerror.pdf b/docs/libcurl/curl_multi_strerror.pdf
index 9b94b810..189f4d74 100644
--- a/docs/libcurl/curl_multi_strerror.pdf
+++ b/docs/libcurl/curl_multi_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_timeout.3 b/docs/libcurl/curl_multi_timeout.3
index e18b935c..f0c90796 100644
--- a/docs/libcurl/curl_multi_timeout.3
+++ b/docs/libcurl/curl_multi_timeout.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,6 +49,22 @@ SHOULD instead use \fIcurl_multi_setopt(3)\fP and its
Note: if libcurl returns a -1 timeout here, it just means that libcurl
currently has no stored timeout value. You must not wait too long (more than a
few seconds perhaps) before you call curl_multi_perform() again.
+.SH EXAMPLE
+.nf
+struct timeval timeout;
+long timeo;
+
+curl_multi_timeout(multi_handle, &timeo);
+if(timeo < 0)
+ /* no set timeout, use a default */
+ timeo = 980;
+
+timeout.tv_sec = timeo / 1000;
+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"
diff --git a/docs/libcurl/curl_multi_timeout.html b/docs/libcurl/curl_multi_timeout.html
index 1aa1f9d2..84161c83 100644
--- a/docs/libcurl/curl_multi_timeout.html
+++ b/docs/libcurl/curl_multi_timeout.html
@@ -59,7 +59,24 @@ p.roffit {
<p class="level0">Proceeding means either doing the socket-style timeout action: call the <a Class="bold" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> function with the <span Class="bold">sockfd</span> argument set to CURL_SOCKET_TIMEOUT, or call <a Class="bold" href="./curl_multi_perform.html">curl_multi_perform</a> if you're using the simpler and older multi interface approach.
<p class="level0">The timeout value returned in the long <span Class="bold">timeout</span> 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.
<p class="level0">An application that uses the multi_socket API SHOULD NOT use this function, but SHOULD instead use <a Class="emphasis" href="./curl_multi_setopt.html">curl_multi_setopt</a> and its </span>CURLMOPT_TIMERFUNCTION</span> option for proper and desired behavior.
-<p class="level0">Note: if libcurl returns a -1 timeout here, it just means that libcurl currently has no stored timeout value. You must not wait too long (more than a few seconds perhaps) before you call curl_multi_perform() again. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Note: if libcurl returns a -1 timeout here, it just means that libcurl currently has no stored timeout value. You must not wait too long (more than a few seconds perhaps) before you call curl_multi_perform() again. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0"><pre class="level0">
+struct timeval timeout;
+long timeo;
+&nbsp;
+curl_multi_timeout(multi_handle, &timeo);
+if(timeo &lt; 0)
+&nbsp; /* no set timeout, use a default */
+&nbsp; timeo = 980;
+&nbsp;
+timeout.tv_sec = timeo / 1000;
+timeout.tv_usec = (timeo % 1000) * 1000;
+&nbsp;
+/* wait for activities no longer than the set timeout */
+select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+</pre>
+
+<p class="level0"><a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">The standard CURLMcode for multi interface error codes. <a name="TYPICAL"></a><h2 class="nroffsh">TYPICAL USAGE</h2>
<p class="level0">Call <a Class="bold" href="./curl_multi_timeout.html">curl_multi_timeout</a>, then wait for action on the sockets. You figure out which sockets to wait for by calling <a Class="bold" href="./curl_multi_fdset.html">curl_multi_fdset</a> or by a previous call to <a Class="bold" href="./curl_multi_socket.html">curl_multi_socket</a>. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
<p class="level0">This function was added in libcurl 7.15.4. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
diff --git a/docs/libcurl/curl_multi_timeout.pdf b/docs/libcurl/curl_multi_timeout.pdf
index 1a666497..994af949 100644
--- a/docs/libcurl/curl_multi_timeout.pdf
+++ b/docs/libcurl/curl_multi_timeout.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3
index a76fba36..45c2e8c9 100644
--- a/docs/libcurl/curl_multi_wait.3
+++ b/docs/libcurl/curl_multi_wait.3
@@ -44,7 +44,7 @@ The calling application may pass additional curl_waitfd structures which are
similar to \fIpoll(2)\fP's pollfd structure to be waited on in the same call.
On completion, if \fInumfds\fP is non-NULL, it will be populated with the
-total number of file descriptors on which interesting events occured. This
+total number of file descriptors on which interesting events occurred. This
number can include both libcurl internal descriptors as well as descriptors
provided in \fIextra_fds\fP.
diff --git a/docs/libcurl/curl_multi_wait.html b/docs/libcurl/curl_multi_wait.html
index 8c109798..9e85816b 100644
--- a/docs/libcurl/curl_multi_wait.html
+++ b/docs/libcurl/curl_multi_wait.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">curl_multi_wait - polls on all easy handles in a multi handle <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLMcode curl_multi_wait(CURLM *multi_handle,
&nbsp; struct curl_waitfd extra_fds[],
&nbsp; unsigned int extra_nfds,
@@ -64,7 +64,7 @@ CURLMcode curl_multi_wait(CURLM *multi_handle,
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
<p class="level0"><a Class="emphasis" href="./curl_multi_wait.html">curl_multi_wait</a> polls all file descriptors used by the curl easy handles contained in the given multi handle set. It will block until activity is detected on at least one of the handles or <span Class="emphasis">timeout_ms</span> has passed. Alternatively, if the multi handle has a pending internal timeout that has a shorter expiry time than <span Class="emphasis">timeout_ms</span>, that shorter time will be used instead to make sure timeout accuracy is reasonably kept.
<p class="level0">The calling application may pass additional curl_waitfd structures which are similar to <span Class="emphasis">poll(2)</span>'s pollfd structure to be waited on in the same call.
-<p class="level0">On completion, if <span Class="emphasis">numfds</span> is non-NULL, it will be populated with the total number of file descriptors on which interesting events occured. This number can include both libcurl internal descriptors as well as descriptors provided in <span Class="emphasis">extra_fds</span>.
+<p class="level0">On completion, if <span Class="emphasis">numfds</span> is non-NULL, it will be populated with the total number of file descriptors on which interesting events occurred. This number can include both libcurl internal descriptors as well as descriptors provided in <span Class="emphasis">extra_fds</span>.
<p class="level0">If no extra file descriptors are provided and libcurl has no file descriptor to offer to wait for, this function will return immediately.
<p class="level0">This function is encouraged to be used instead of select(3) when using the multi interface to allow applications to easier circumvent the common problem with 1024 maximum file descriptors. <a name="curlwaitfd"></a><h2 class="nroffsh">curl_waitfd</h2>
<p class="level0"><pre class="level0">
diff --git a/docs/libcurl/curl_multi_wait.pdf b/docs/libcurl/curl_multi_wait.pdf
index 096d5ab9..6af89977 100644
--- a/docs/libcurl/curl_multi_wait.pdf
+++ b/docs/libcurl/curl_multi_wait.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_cleanup.pdf b/docs/libcurl/curl_share_cleanup.pdf
index b09abfa9..11ad707a 100644
--- a/docs/libcurl/curl_share_cleanup.pdf
+++ b/docs/libcurl/curl_share_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_init.pdf b/docs/libcurl/curl_share_init.pdf
index b678eeb1..2d0ee88c 100644
--- a/docs/libcurl/curl_share_init.pdf
+++ b/docs/libcurl/curl_share_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_setopt.pdf b/docs/libcurl/curl_share_setopt.pdf
index f723eb8e..b41cafca 100644
--- a/docs/libcurl/curl_share_setopt.pdf
+++ b/docs/libcurl/curl_share_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_strerror.pdf b/docs/libcurl/curl_share_strerror.pdf
index 4f04284e..9c72d31b 100644
--- a/docs/libcurl/curl_share_strerror.pdf
+++ b/docs/libcurl/curl_share_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_slist_append.html b/docs/libcurl/curl_slist_append.html
index c56132b5..17b75884 100644
--- a/docs/libcurl/curl_slist_append.html
+++ b/docs/libcurl/curl_slist_append.html
@@ -61,12 +61,12 @@ p.roffit {
<p class="level0"><pre class="level0">
&nbsp;CURL handle;
&nbsp;struct curl_slist *slist=NULL;
-
+&nbsp;
&nbsp;slist = curl_slist_append(slist, "pragma:");
&nbsp;curl_easy_setopt(handle, CURLOPT_HTTPHEADER, slist);
-
+&nbsp;
&nbsp;curl_easy_perform(handle);
-
+&nbsp;
&nbsp;curl_slist_free_all(slist); /* free the list again */
</pre>
diff --git a/docs/libcurl/curl_slist_append.pdf b/docs/libcurl/curl_slist_append.pdf
index bbe14ffd..16b47a95 100644
--- a/docs/libcurl/curl_slist_append.pdf
+++ b/docs/libcurl/curl_slist_append.pdf
@@ -72,12 +72,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:aadd831c-2652-11f0-0000-b52b3dcd9ad6' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:aadd831c-2652-11f0-0000-b52b3dcd9ad6' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:13+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:13+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-b52b3dcd9ad6' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-b52b3dcd9ad6' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:28+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:28+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:aadd831c-2652-11f0-0000-b52b3dcd9ad6' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:aadd831c-2652-11f0-0000-b52b3dcd9ad6'/>
-<rdf:Description rdf:about='uuid:aadd831c-2652-11f0-0000-b52b3dcd9ad6' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-b52b3dcd9ad6' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:24e571f5-4cd2-11f0-0000-b52b3dcd9ad6'/>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-b52b3dcd9ad6' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -87,8 +87,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080813+02'00')
-/ModDate(D:20150429080813+02'00')
+/CreationDate(D:20150617075628+02'00')
+/ModDate(D:20150617075628+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -109,7 +109,7 @@ xref
0000001787 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<8600CE9ACAF8741CA71F8131AC370E2A><8600CE9ACAF8741CA71F8131AC370E2A>]
+/ID [<A55DAB177F41CD2FC6BB80D65E00F902><A55DAB177F41CD2FC6BB80D65E00F902>]
>>
startxref
3364
diff --git a/docs/libcurl/curl_slist_free_all.pdf b/docs/libcurl/curl_slist_free_all.pdf
index 099420b3..6210ca89 100644
--- a/docs/libcurl/curl_slist_free_all.pdf
+++ b/docs/libcurl/curl_slist_free_all.pdf
@@ -62,12 +62,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:ab76199c-2652-11f0-0000-224f381b10d2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:ab76199c-2652-11f0-0000-224f381b10d2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:14+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:14+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-224f381b10d2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-224f381b10d2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:28+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:28+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:ab76199c-2652-11f0-0000-224f381b10d2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:ab76199c-2652-11f0-0000-224f381b10d2'/>
-<rdf:Description rdf:about='uuid:ab76199c-2652-11f0-0000-224f381b10d2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-224f381b10d2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:24e571f5-4cd2-11f0-0000-224f381b10d2'/>
+<rdf:Description rdf:about='uuid:24e571f5-4cd2-11f0-0000-224f381b10d2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -77,8 +77,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080814+02'00')
-/ModDate(D:20150429080814+02'00')
+/CreationDate(D:20150617075628+02'00')
+/ModDate(D:20150617075628+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 14
@@ -98,7 +98,7 @@ xref
0000001254 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<AAC0A585F0734066B88E19F84EFAFBD0><AAC0A585F0734066B88E19F84EFAFBD0>]
+/ID [<4061935AC21848AB4303A5A7052C52A6><4061935AC21848AB4303A5A7052C52A6>]
>>
startxref
2831
diff --git a/docs/libcurl/curl_strequal.pdf b/docs/libcurl/curl_strequal.pdf
index d31f6616..cc7c5818 100644
--- a/docs/libcurl/curl_strequal.pdf
+++ b/docs/libcurl/curl_strequal.pdf
Binary files differ
diff --git a/docs/libcurl/curl_unescape.pdf b/docs/libcurl/curl_unescape.pdf
index 05bcbdb5..2ce081dc 100644
--- a/docs/libcurl/curl_unescape.pdf
+++ b/docs/libcurl/curl_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version.pdf b/docs/libcurl/curl_version.pdf
index 37818195..16a080d2 100644
--- a/docs/libcurl/curl_version.pdf
+++ b/docs/libcurl/curl_version.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version_info.html b/docs/libcurl/curl_version_info.html
index f60b4284..4c39887e 100644
--- a/docs/libcurl/curl_version_info.html
+++ b/docs/libcurl/curl_version_info.html
@@ -62,7 +62,7 @@ p.roffit {
<p class="level0"><pre class="level0">
typedef struct {
&nbsp; CURLversion age; /* see description below */
-
+&nbsp;
&nbsp; /* when 'age' is 0 or higher, the members below also exist: */
&nbsp; const char *version; /* human readable string */
&nbsp; unsigned int version_num; /* numeric representation */
@@ -72,20 +72,20 @@ typedef struct {
&nbsp; long ssl_version_num; /* not used, always zero */
&nbsp; const char *libz_version; /* human readable string */
&nbsp; const char * const *protocols; /* protocols */
-
+&nbsp;
&nbsp; /* when 'age' is 1 or higher, the members below also exist: */
&nbsp; const char *ares; /* human readable string */
&nbsp; int ares_num; /* number */
-
+&nbsp;
&nbsp; /* when 'age' is 2 or higher, the member below also exists: */
&nbsp; const char *libidn; /* human readable string */
-
+&nbsp;
&nbsp; /* when 'age' is 3 or higher (7.16.1 or later), the members below also
&nbsp; exist */
&nbsp; int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */
-
+&nbsp;
&nbsp; const char *libssh_version; /* human readable string */
-
+&nbsp;
} curl_version_info_data;
</pre>
diff --git a/docs/libcurl/curl_version_info.pdf b/docs/libcurl/curl_version_info.pdf
index 0fd36178..6820aa87 100644
--- a/docs/libcurl/curl_version_info.pdf
+++ b/docs/libcurl/curl_version_info.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-easy.pdf b/docs/libcurl/libcurl-easy.pdf
index 5372bfce..8d17c7fb 100644
--- a/docs/libcurl/libcurl-easy.pdf
+++ b/docs/libcurl/libcurl-easy.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-errors.pdf b/docs/libcurl/libcurl-errors.pdf
index fa06580f..9448be65 100644
--- a/docs/libcurl/libcurl-errors.pdf
+++ b/docs/libcurl/libcurl-errors.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-multi.3 b/docs/libcurl/libcurl-multi.3
index 770d4a56..f77c366a 100644
--- a/docs/libcurl/libcurl-multi.3
+++ b/docs/libcurl/libcurl-multi.3
@@ -136,7 +136,7 @@ normal multi interface. Then you also set two callbacks with the
CURLMOPT_SOCKETFUNCTION and CURLMOPT_TIMERFUNCTION options to
\fIcurl_multi_setopt(3)\fP. They are two callback functions that libcurl will
call with information about what sockets to wait for, and for what activity,
-and what the curret timeout time is - if that expires libcurl should be
+and what the current timeout time is - if that expires libcurl should be
notified.
The multi_socket API is designed to inform your application about which
diff --git a/docs/libcurl/libcurl-multi.html b/docs/libcurl/libcurl-multi.html
index 880b6057..1baae4a2 100644
--- a/docs/libcurl/libcurl-multi.html
+++ b/docs/libcurl/libcurl-multi.html
@@ -73,7 +73,7 @@ p.roffit {
<p class="level0">If you want to re-use an easy handle that was added to the multi handle for transfer, you must first remove it from the multi stack and then re-add it again (possibly after having altered some options at your own choice). <a name="MULTISOCKET"></a><h2 class="nroffsh">MULTI_SOCKET</h2>
<p class="level0"><a Class="emphasis" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> function offers a way for applications to not only avoid being forced to use select(), but it also offers a much more high-performance API that will make a significant difference for applications using large numbers of simultaneous connections.
<p class="level0"><a Class="emphasis" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> is then used instead of <a Class="emphasis" href="./curl_multi_perform.html">curl_multi_perform</a>.
-<p class="level0">When using this API, you add easy handles to the multi handle just as with the normal multi interface. Then you also set two callbacks with the CURLMOPT_SOCKETFUNCTION and CURLMOPT_TIMERFUNCTION options to <a Class="emphasis" href="./curl_multi_setopt.html">curl_multi_setopt</a>. They are two callback functions that libcurl will call with information about what sockets to wait for, and for what activity, and what the curret timeout time is - if that expires libcurl should be notified.
+<p class="level0">When using this API, you add easy handles to the multi handle just as with the normal multi interface. Then you also set two callbacks with the CURLMOPT_SOCKETFUNCTION and CURLMOPT_TIMERFUNCTION options to <a Class="emphasis" href="./curl_multi_setopt.html">curl_multi_setopt</a>. They are two callback functions that libcurl will call with information about what sockets to wait for, and for what activity, and what the current timeout time is - if that expires libcurl should be notified.
<p class="level0">The multi_socket API is designed to inform your application about which sockets libcurl is currently using and for what activities (read and/or write) on those sockets your application is expected to wait for.
<p class="level0">Your application must make sure to receive all sockets informed about in the CURLMOPT_SOCKETFUNCTION callback and make sure it reacts on the given activity on them. When a socket has the given activity, you call <a Class="emphasis" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> specifying which socket and action there are.
<p class="level0">The CURLMOPT_TIMERFUNCTION callback is called to set a timeout. When that timeout expires, your application should call the <a Class="emphasis" href="./curl_multi_socket_action.html">curl_multi_socket_action</a> function saying it was due to a timeout.
diff --git a/docs/libcurl/libcurl-multi.pdf b/docs/libcurl/libcurl-multi.pdf
index 4ccf59db..de2aa921 100644
--- a/docs/libcurl/libcurl-multi.pdf
+++ b/docs/libcurl/libcurl-multi.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-share.pdf b/docs/libcurl/libcurl-share.pdf
index c8dbb29c..15207aeb 100644
--- a/docs/libcurl/libcurl-share.pdf
+++ b/docs/libcurl/libcurl-share.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-symbols.3 b/docs/libcurl/libcurl-symbols.3
index fab7bb6c..15b54a96 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 "Apr 29, 2015" "libcurl 7.41.0" "libcurl symbols"
+.TH libcurl-symbols 3 "Jun 17, 2015" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
@@ -932,6 +932,8 @@ Last used in 7.16.0
Introduced in 7.42.0
.IP CURLOPT_PINNEDPUBLICKEY
Introduced in 7.39.0
+.IP CURLOPT_PIPEWAIT
+Introduced in 7.43.0
.IP CURLOPT_PORT
Introduced in 7.1
.IP CURLOPT_POST
@@ -976,6 +978,8 @@ Introduced in 7.10
Introduced in 7.19.1
.IP CURLOPT_PROXYUSERPWD
Introduced in 7.1
+.IP CURLOPT_PROXY_SERVICE_NAME
+Introduced in 7.43.0
.IP CURLOPT_PROXY_TRANSFER_MODE
Introduced in 7.18.0
.IP CURLOPT_PUT
@@ -1022,6 +1026,8 @@ Introduced in 7.18.0
Introduced in 7.18.0
.IP CURLOPT_SERVER_RESPONSE_TIMEOUT
Introduced in 7.20.0
+.IP CURLOPT_SERVICE_NAME
+Introduced in 7.43.0
.IP CURLOPT_SHARE
Introduced in 7.10
.IP CURLOPT_SOCKOPTDATA
@@ -1182,6 +1188,12 @@ Introduced in 7.18.0
Introduced in 7.18.0
.IP CURLPAUSE_SEND_CONT
Introduced in 7.18.0
+.IP CURLPIPE_HTTP1
+Introduced in 7.43.0
+.IP CURLPIPE_MULTIPLEX
+Introduced in 7.43.0
+.IP CURLPIPE_NOTHING
+Introduced in 7.43.0
.IP CURLPROTO_ALL
Introduced in 7.19.4
.IP CURLPROTO_DICT
@@ -1400,6 +1412,8 @@ Introduced in 7.9.1
Introduced in 7.9.1
.IP CURL_HTTP_VERSION_2_0
Introduced in 7.33.0
+.IP CURL_HTTP_VERSION_2
+Introduced in 7.43.0
.IP CURL_HTTP_VERSION_NONE
Introduced in 7.9.1
.IP CURL_IPRESOLVE_V4
diff --git a/docs/libcurl/libcurl-symbols.html b/docs/libcurl/libcurl-symbols.html
index 14ba1851..db89e6ad 100644
--- a/docs/libcurl/libcurl-symbols.html
+++ b/docs/libcurl/libcurl-symbols.html
@@ -898,6 +898,8 @@ p.roffit {
<p class="level1">Introduced in 7.42.0
<p class="level0"><a name="CURLOPTPINNEDPUBLICKEY"></a><span class="nroffip">CURLOPT_PINNEDPUBLICKEY</span>
<p class="level1">Introduced in 7.39.0
+<p class="level0"><a name="CURLOPTPIPEWAIT"></a><span class="nroffip">CURLOPT_PIPEWAIT</span>
+<p class="level1">Introduced in 7.43.0
<p class="level0"><a name="CURLOPTPORT"></a><span class="nroffip">CURLOPT_PORT</span>
<p class="level1">Introduced in 7.1
<p class="level0"><a name="CURLOPTPOST"></a><span class="nroffip">CURLOPT_POST</span>
@@ -940,6 +942,8 @@ p.roffit {
<p class="level1">Introduced in 7.19.1
<p class="level0"><a name="CURLOPTPROXYUSERPWD"></a><span class="nroffip">CURLOPT_PROXYUSERPWD</span>
<p class="level1">Introduced in 7.1
+<p class="level0"><a name="CURLOPTPROXYSERVICENAME"></a><span class="nroffip">CURLOPT_PROXY_SERVICE_NAME</span>
+<p class="level1">Introduced in 7.43.0
<p class="level0"><a name="CURLOPTPROXYTRANSFERMODE"></a><span class="nroffip">CURLOPT_PROXY_TRANSFER_MODE</span>
<p class="level1">Introduced in 7.18.0
<p class="level0"><a name="CURLOPTPUT"></a><span class="nroffip">CURLOPT_PUT</span>
@@ -986,6 +990,8 @@ p.roffit {
<p class="level1">Introduced in 7.18.0
<p class="level0"><a name="CURLOPTSERVERRESPONSETIMEOUT"></a><span class="nroffip">CURLOPT_SERVER_RESPONSE_TIMEOUT</span>
<p class="level1">Introduced in 7.20.0
+<p class="level0"><a name="CURLOPTSERVICENAME"></a><span class="nroffip">CURLOPT_SERVICE_NAME</span>
+<p class="level1">Introduced in 7.43.0
<p class="level0"><a name="CURLOPTSHARE"></a><span class="nroffip">CURLOPT_SHARE</span>
<p class="level1">Introduced in 7.10
<p class="level0"><a name="CURLOPTSOCKOPTDATA"></a><span class="nroffip">CURLOPT_SOCKOPTDATA</span>
@@ -1144,6 +1150,12 @@ p.roffit {
<p class="level1">Introduced in 7.18.0
<p class="level0"><a name="CURLPAUSESENDCONT"></a><span class="nroffip">CURLPAUSE_SEND_CONT</span>
<p class="level1">Introduced in 7.18.0
+<p class="level0"><a name="CURLPIPEHTTP1"></a><span class="nroffip">CURLPIPE_HTTP1</span>
+<p class="level1">Introduced in 7.43.0
+<p class="level0"><a name="CURLPIPEMULTIPLEX"></a><span class="nroffip">CURLPIPE_MULTIPLEX</span>
+<p class="level1">Introduced in 7.43.0
+<p class="level0"><a name="CURLPIPENOTHING"></a><span class="nroffip">CURLPIPE_NOTHING</span>
+<p class="level1">Introduced in 7.43.0
<p class="level0"><a name="CURLPROTOALL"></a><span class="nroffip">CURLPROTO_ALL</span>
<p class="level1">Introduced in 7.19.4
<p class="level0"><a name="CURLPROTODICT"></a><span class="nroffip">CURLPROTO_DICT</span>
@@ -1362,6 +1374,8 @@ p.roffit {
<p class="level1">Introduced in 7.9.1
<p class="level0"><a name="CURLHTTPVERSION20"></a><span class="nroffip">CURL_HTTP_VERSION_2_0</span>
<p class="level1">Introduced in 7.33.0
+<p class="level0"><a name="CURLHTTPVERSION2"></a><span class="nroffip">CURL_HTTP_VERSION_2</span>
+<p class="level1">Introduced in 7.43.0
<p class="level0"><a name="CURLHTTPVERSIONNONE"></a><span class="nroffip">CURL_HTTP_VERSION_NONE</span>
<p class="level1">Introduced in 7.9.1
<p class="level0"><a name="CURLIPRESOLVEV4"></a><span class="nroffip">CURL_IPRESOLVE_V4</span>
diff --git a/docs/libcurl/libcurl-symbols.pdf b/docs/libcurl/libcurl-symbols.pdf
index cfb583e0..75aec3b8 100644
--- a/docs/libcurl/libcurl-symbols.pdf
+++ b/docs/libcurl/libcurl-symbols.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-tutorial.html b/docs/libcurl/libcurl-tutorial.html
index 4403d66d..492aa95c 100644
--- a/docs/libcurl/libcurl-tutorial.html
+++ b/docs/libcurl/libcurl-tutorial.html
@@ -206,7 +206,7 @@ p.roffit {
&nbsp; char *data="name=daniel&project=curl";
&nbsp; curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, data);
&nbsp; curl_easy_setopt(easyhandle, CURLOPT_URL, "<a href="http://posthere.com/">http://posthere.com/</a>");
-
+&nbsp;
&nbsp; curl_easy_perform(easyhandle); /* post away! */
</pre>
@@ -216,18 +216,18 @@ p.roffit {
<p class="level0"><pre class="level0">
&nbsp;struct curl_slist *headers=NULL;
&nbsp;headers = curl_slist_append(headers, "Content-Type: text/xml");
-
+&nbsp;
&nbsp;/* post binary data */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, binaryptr);
-
+&nbsp;
&nbsp;/* set the size of the postfields data */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDSIZE, 23L);
-
+&nbsp;
&nbsp;/* pass our list of custom made headers */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_HTTPHEADER, headers);
-
+&nbsp;
&nbsp;curl_easy_perform(easyhandle); /* post away! */
-
+&nbsp;
&nbsp;curl_slist_free_all(headers); /* free the header list */
</pre>
@@ -246,12 +246,12 @@ p.roffit {
&nbsp;curl_formadd(&post, &last,
&nbsp; CURLFORM_COPYNAME, "logotype-image",
&nbsp; CURLFORM_FILECONTENT, "curl.png", CURLFORM_END);
-
+&nbsp;
&nbsp;/* Set the form info */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_HTTPPOST, post);
-
+&nbsp;
&nbsp;curl_easy_perform(easyhandle); /* post away! */
-
+&nbsp;
&nbsp;/* free the post data again */
&nbsp;curl_formfree(post);
</pre>
@@ -261,15 +261,15 @@ p.roffit {
<p class="level0"><pre class="level0">
&nbsp;struct curl_slist *headers=NULL;
&nbsp;headers = curl_slist_append(headers, "Content-Type: text/xml");
-
+&nbsp;
&nbsp;curl_formadd(&post, &last,
&nbsp; CURLFORM_COPYNAME, "logotype-image",
&nbsp; CURLFORM_FILECONTENT, "curl.xml",
&nbsp; CURLFORM_CONTENTHEADER, headers,
&nbsp; CURLFORM_END);
-
+&nbsp;
&nbsp;curl_easy_perform(easyhandle); /* post away! */
-
+&nbsp;
&nbsp;curl_formfree(post); /* free post */
&nbsp;curl_slist_free_all(headers); /* free custom header list */
</pre>
@@ -392,15 +392,15 @@ class AClass {
<p class="level1">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 think fit. Adding headers is this easy:
<p class="level1"><pre class="level1">
&nbsp;struct curl_slist *headers=NULL; /* init to NULL is important */
-
+&nbsp;
&nbsp;headers = curl_slist_append(headers, "Hey-server-hey: how are you?");
&nbsp;headers = curl_slist_append(headers, "X-silly-content: yes");
-
+&nbsp;
&nbsp;/* pass our list of custom made headers */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_HTTPHEADER, headers);
-
+&nbsp;
&nbsp;curl_easy_perform(easyhandle); /* transfer http */
-
+&nbsp;
&nbsp;curl_slist_free_all(headers); /* free the header list */
</pre>
@@ -434,12 +434,12 @@ class AClass {
<p class="level1">A little example that deletes a given file before an operation:
<p class="level1"><pre class="level1">
&nbsp;headers = curl_slist_append(headers, "DELE file-to-remove");
-
+&nbsp;
&nbsp;/* pass the list of custom commands to the handle */
&nbsp;curl_easy_setopt(easyhandle, CURLOPT_QUOTE, headers);
-
+&nbsp;
&nbsp;curl_easy_perform(easyhandle); /* transfer ftp data! */
-
+&nbsp;
&nbsp;curl_slist_free_all(headers); /* free the header list */
</pre>
diff --git a/docs/libcurl/libcurl-tutorial.pdf b/docs/libcurl/libcurl-tutorial.pdf
index 5babb1a1..edc8db15 100644
--- a/docs/libcurl/libcurl-tutorial.pdf
+++ b/docs/libcurl/libcurl-tutorial.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl.pdf b/docs/libcurl/libcurl.pdf
index fb2a4f6e..2310cd8d 100644
--- a/docs/libcurl/libcurl.pdf
+++ b/docs/libcurl/libcurl.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.pdf b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.pdf
index ae8dd02c..dc68c1cf 100644
--- a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.pdf
+++ b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.pdf b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.pdf
index a6e816c3..36a04b52 100644
--- a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.pdf
+++ b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.pdf b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.pdf
index f6d50a6f..f93caa6a 100644
--- a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.pdf
+++ b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
index 77893473..7522d437 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,8 +29,9 @@ CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_HOST_CONNECTIONS, long max);
.SH DESCRIPTION
Pass a long to indicate \fBmax\fP. The set number will be used as the maximum
-amount of simultaneously open connections to a single host. For each new
-session to a host, libcurl will open a new connection up to the limit set by
+amount of simultaneously open connections to a single host (a host being the
+same as a host name + port number pair). For each new session to a host,
+libcurl will open a new connection up to the limit set by
\fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP. When the limit is reached, the
sessions will be pending until a connection becomes available. If
\fICURLMOPT_PIPELINING(3)\fP is enabled, libcurl will try to pipeline if the
@@ -40,6 +41,9 @@ The default \fBmax\fP value is 0, unlimited. However, for backwards
compatibility, setting it to 0 when \fICURLMOPT_PIPELINING(3)\fP is 1 will not
be treated as unlimited. Instead it will open only 1 connection and try to
pipeline on it.
+
+This set limit is also used for proxy connections, and then the proxy is
+considered to be the host for which this limit counts.
.SH DEFAULT
0
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.html b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.html
index b0bbbd2b..5c6d85cb 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.html
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.html
@@ -54,8 +54,9 @@ p.roffit {
<p class="level0">CURLMOPT_MAX_HOST_CONNECTIONS - set max number of connections to a single host <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0">&#35;include &lt;curl/curl.h&gt;
<p class="level0">CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_HOST_CONNECTIONS, long max); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
-<p class="level0">Pass a long to indicate <span Class="bold">max</span>. The set number will be used as the maximum amount of simultaneously open connections to a single host. For each new session to a host, libcurl will open a new connection up to the limit set by <a Class="emphasis" href="./CURLMOPT_MAX_HOST_CONNECTIONS.html">CURLMOPT_MAX_HOST_CONNECTIONS</a>. When the limit is reached, the sessions will be pending until a connection becomes available. If <a Class="emphasis" href="./CURLMOPT_PIPELINING.html">CURLMOPT_PIPELINING</a> is enabled, libcurl will try to pipeline if the host is capable of it.
-<p class="level0">The default <span Class="bold">max</span> value is 0, unlimited. However, for backwards compatibility, setting it to 0 when <a Class="emphasis" href="./CURLMOPT_PIPELINING.html">CURLMOPT_PIPELINING</a> is 1 will not be treated as unlimited. Instead it will open only 1 connection and try to pipeline on it. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
+<p class="level0">Pass a long to indicate <span Class="bold">max</span>. The set number will be used as the maximum amount of simultaneously open connections to a single host (a host being the same as a host name + port number pair). For each new session to a host, libcurl will open a new connection up to the limit set by <a Class="emphasis" href="./CURLMOPT_MAX_HOST_CONNECTIONS.html">CURLMOPT_MAX_HOST_CONNECTIONS</a>. When the limit is reached, the sessions will be pending until a connection becomes available. If <a Class="emphasis" href="./CURLMOPT_PIPELINING.html">CURLMOPT_PIPELINING</a> is enabled, libcurl will try to pipeline if the host is capable of it.
+<p class="level0">The default <span Class="bold">max</span> value is 0, unlimited. However, for backwards compatibility, setting it to 0 when <a Class="emphasis" href="./CURLMOPT_PIPELINING.html">CURLMOPT_PIPELINING</a> is 1 will not be treated as unlimited. Instead it will open only 1 connection and try to pipeline on it.
+<p class="level0">This set limit is also used for proxy connections, and then the proxy is considered to be the host for which this limit counts. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">0 <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
<p class="level0">HTTP(S) <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.pdf b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.pdf
index ce79c3f4..b7b3532e 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.pdf
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.pdf b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.pdf
index 214326c5..568ee353 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.pdf
+++ b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.pdf
@@ -67,12 +67,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:bcbf261d-2652-11f0-0000-e44c0fe5a109' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:bcbf261d-2652-11f0-0000-e44c0fe5a109' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:43+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:43+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:362e7e76-4cd2-11f0-0000-e44c0fe5a109' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:362e7e76-4cd2-11f0-0000-e44c0fe5a109' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:57+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:57+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:bcbf261d-2652-11f0-0000-e44c0fe5a109' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:bcbf261d-2652-11f0-0000-e44c0fe5a109'/>
-<rdf:Description rdf:about='uuid:bcbf261d-2652-11f0-0000-e44c0fe5a109' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:362e7e76-4cd2-11f0-0000-e44c0fe5a109' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:362e7e76-4cd2-11f0-0000-e44c0fe5a109'/>
+<rdf:Description rdf:about='uuid:362e7e76-4cd2-11f0-0000-e44c0fe5a109' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -82,8 +82,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080843+02'00')
-/ModDate(D:20150429080843+02'00')
+/CreationDate(D:20150617075657+02'00')
+/ModDate(D:20150617075657+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -104,7 +104,7 @@ xref
0000001892 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<5D6D6B29DDDBC83C7CCC323712D855BD><5D6D6B29DDDBC83C7CCC323712D855BD>]
+/ID [<B2B40B11726F2FF6037FBE063CFE1532><B2B40B11726F2FF6037FBE063CFE1532>]
>>
startxref
3469
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.pdf b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.pdf
index cc7775bc..80b66cbe 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.pdf
+++ b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
index c1df1d56..c795c48e 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,17 +26,28 @@ CURLMOPT_PIPELINING \- enable/disable HTTP pipelining
.SH SYNOPSIS
#include <curl/curl.h>
-CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, bool onoff);
+CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bits);
.SH DESCRIPTION
-Set the \fBonoff\fP parameter to 1 to make libcurl use HTTP pipelining for
-HTTP transfers done using this multi handle, as far as possible. This means
-that if you add a second request that can use an already existing connection,
-the second request will be \&"piped" on the same connection rather than being
-executed in parallel.
+Set the \fBbits\fP parameter to 1 to make libcurl use HTTP pipelining for
+HTTP/1.1 transfers done using this multi handle, as far as possible. This
+means that if you add a second request that can use an already existing
+connection, the second request will be \&"piped" on the same connection rather
+than being executed in parallel.
When using pipelining, there are also several other related options that are
interesting to tweak and adjust to alter how libcurl spreads out requests on
different connections or not etc.
+
+Starting in 7.43.0, the \fBbits\fP parameter's bit 1 also has a meaning and
+libcurl is now offering symbol names for the bits:
+.IP CURLPIPE_NOTHING (0)
+Default, which means doing no attempts at pipelining or multiplexing.
+.IP CURLPIPE_HTTP1 (1)
+If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on
+connections that are already established and in use to hosts.
+.IP CURLPIPE_MULTIPLEX (2)
+If this bit is set, libcurl will try to multiplex the new transfer over an
+existing connection if possible. This requires HTTP/2.
.SH DEFAULT
0 (off)
.SH PROTOCOLS
@@ -44,7 +55,7 @@ HTTP(S)
.SH EXAMPLE
TODO
.SH AVAILABILITY
-Added in 7.16.0
+Added in 7.16.0. Multiplex support bit added in 7.43.0.
.SH RETURN VALUE
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.html b/docs/libcurl/opts/CURLMOPT_PIPELINING.html
index 00deb3af..20682a75 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.html
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.html
@@ -53,13 +53,20 @@ p.roffit {
<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
<p class="level0">CURLMOPT_PIPELINING - enable/disable HTTP pipelining <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0">&#35;include &lt;curl/curl.h&gt;
-<p class="level0">CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, bool onoff); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
-<p class="level0">Set the <span Class="bold">onoff</span> parameter to 1 to make libcurl use HTTP pipelining for HTTP transfers done using this multi handle, as far as possible. This means that if you add a second request that can use an already existing connection, the second request will be "piped" on the same connection rather than being executed in parallel.
-<p class="level0">When using pipelining, there are also several other related options that are interesting to tweak and adjust to alter how libcurl spreads out requests on different connections or not etc. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
+<p class="level0">CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bits); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
+<p class="level0">Set the <span Class="bold">bits</span> parameter to 1 to make libcurl use HTTP pipelining for HTTP/1.1 transfers done using this multi handle, as far as possible. This means that if you add a second request that can use an already existing connection, the second request will be "piped" on the same connection rather than being executed in parallel.
+<p class="level0">When using pipelining, there are also several other related options that are interesting to tweak and adjust to alter how libcurl spreads out requests on different connections or not etc.
+<p class="level0">Starting in 7.43.0, the <span Class="bold">bits</span> parameter's bit 1 also has a meaning and libcurl is now offering symbol names for the bits:
+<p class="level0"><a name="CURLPIPENOTHING"></a><span class="nroffip">CURLPIPE_NOTHING (0)</span>
+<p class="level1">Default, which means doing no attempts at pipelining or multiplexing.
+<p class="level0"><a name="CURLPIPEHTTP1"></a><span class="nroffip">CURLPIPE_HTTP1 (1)</span>
+<p class="level1">If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on connections that are already established and in use to hosts.
+<p class="level0"><a name="CURLPIPEMULTIPLEX"></a><span class="nroffip">CURLPIPE_MULTIPLEX (2)</span>
+<p class="level1">If this bit is set, libcurl will try to multiplex the new transfer over an existing connection if possible. This requires HTTP/2. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">0 (off) <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
<p class="level0">HTTP(S) <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
-<p class="level0">Added in 7.16.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Added in 7.16.0. Multiplex support bit added in 7.43.0. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
<p class="level0"><a Class="manpage" href="./CURLMOPT_MAX_PIPELINE_LENGTH.html">CURLMOPT_MAX_PIPELINE_LENGTH</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_PIPELINING_SITE_BL.html">CURLMOPT_PIPELINING_SITE_BL</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.html">CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.html">CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_MAX_HOST_CONNECTIONS.html">CURLMOPT_MAX_HOST_CONNECTIONS</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_MAXCONNECTS.html">CURLMOPT_MAXCONNECTS</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_MAX_HOST_CONNECTIONS.html">CURLMOPT_MAX_HOST_CONNECTIONS</a>, <span Class="manpage"> </span> <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.pdf b/docs/libcurl/opts/CURLMOPT_PIPELINING.pdf
index 94be00a2..f5724130 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.pdf
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.html b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.html
index a1c6672a..50c3a896 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.html
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.html
@@ -66,7 +66,7 @@ p.roffit {
&nbsp; "nginx/0.8.54",
&nbsp; NULL
&nbsp; };
-
+&nbsp;
&nbsp; curl_multi_setopt(m, CURLMOPT_PIPELINING_SERVER_BL, server_blacklist);
</pre>
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.pdf b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.pdf
index 6451db47..59c066ad 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.pdf
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.html b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.html
index 363931bc..1161a818 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.html
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.html
@@ -65,7 +65,7 @@ p.roffit {
&nbsp; "www.example.com:1234",
&nbsp; NULL
&nbsp; };
-
+&nbsp;
&nbsp; curl_multi_setopt(m, CURLMOPT_PIPELINING_SITE_BL, site_blacklist);
</pre>
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.pdf b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.pdf
index 89dcee2a..cdd0cc4f 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.pdf
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.html b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.html
index 6975e6b2..5cea2c13 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.html
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLMOPT_SOCKETDATA - custom pointer passed to the socket callback <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETDATA, void *pointer);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.pdf b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.pdf
index 07f4f2d5..47c90521 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.pdf
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.html b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.html
index dece2153..ecb519ad 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.html
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.html
@@ -54,13 +54,13 @@ p.roffit {
<p class="level0">CURLMOPT_SOCKETFUNCTION - callback informed about what to wait for <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
int socket_callback(CURL *easy, /* easy handle */
&nbsp; curl_socket_t s, /* socket */
&nbsp; int what, /* see above */
&nbsp; void *userp, /* private callback pointer */
&nbsp; void *socketp); /* private socket pointer */
-
+&nbsp;
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETFUNCTION, socket_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.pdf b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.pdf
index d2602149..0b1eca1e 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERDATA.html b/docs/libcurl/opts/CURLMOPT_TIMERDATA.html
index 3b7131fa..a42c18bd 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERDATA.html
+++ b/docs/libcurl/opts/CURLMOPT_TIMERDATA.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLMOPT_TIMERDATA - custom pointer to pass to timer callback <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERDATA, void *pointer);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERDATA.pdf b/docs/libcurl/opts/CURLMOPT_TIMERDATA.pdf
index e0679ba9..b8691b0b 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERDATA.pdf
+++ b/docs/libcurl/opts/CURLMOPT_TIMERDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.html b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.html
index 28eeea10..0195567e 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.html
+++ b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.html
@@ -54,11 +54,11 @@ p.roffit {
<p class="level0">CURLMOPT_TIMERFUNCTION - set callback to receive timeout values <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
int timer_callback(CURLM *multi, /* multi handle */
&nbsp; long timeout_ms, /* see above */
&nbsp; void *userp); /* private callback pointer */
-
+&nbsp;
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERFUNCTION, timer_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
@@ -82,13 +82,13 @@ static gboolean timeout_cb(gpointer user_data) {
&nbsp; curl_multi_socket_action(multi, CURL_SOCKET_TIMEOUT, 0, &running);
&nbsp; return G_SOURCE_REMOVE;
}
-
+&nbsp;
static int timerfunc(CURLM *multi, long timeout_ms, void *userp) {
&nbsp; guint *id = userp;
-
+&nbsp;
&nbsp; if (id)
&nbsp; g_source_remove(*id);
-
+&nbsp;
&nbsp; // -1 means we should just delete our timer.
&nbsp; if (timeout_ms == -1) {
&nbsp; g_free(id);
@@ -101,7 +101,7 @@ static int timerfunc(CURLM *multi, long timeout_ms, void *userp) {
&nbsp; curl_multi_setopt(multi, CURLMOPT_TIMERDATA, id);
&nbsp; return 0;
}
-
+&nbsp;
curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, timerfunc);
</pre>
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.pdf b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.pdf
index 30861f96..d5814b77 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.pdf b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.pdf
index 1ed747ef..6f72486d 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.pdf
+++ b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.pdf b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.pdf
index cdccfb0b..3f47418d 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.pdf
+++ b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.pdf b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.pdf
index 41e4b36d..ad726466 100644
--- a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.pdf
+++ b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_APPEND.pdf b/docs/libcurl/opts/CURLOPT_APPEND.pdf
index c1de22fa..ed39d14b 100644
--- a/docs/libcurl/opts/CURLOPT_APPEND.pdf
+++ b/docs/libcurl/opts/CURLOPT_APPEND.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_AUTOREFERER.pdf b/docs/libcurl/opts/CURLOPT_AUTOREFERER.pdf
index 0a2eada2..8099cb20 100644
--- a/docs/libcurl/opts/CURLOPT_AUTOREFERER.pdf
+++ b/docs/libcurl/opts/CURLOPT_AUTOREFERER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.pdf b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.pdf
index b6a832b1..34959362 100644
--- a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.pdf
+++ b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CAINFO.pdf b/docs/libcurl/opts/CURLOPT_CAINFO.pdf
index d003e79c..c93f1544 100644
--- a/docs/libcurl/opts/CURLOPT_CAINFO.pdf
+++ b/docs/libcurl/opts/CURLOPT_CAINFO.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CAPATH.pdf b/docs/libcurl/opts/CURLOPT_CAPATH.pdf
index de531e85..af8c4c91 100644
--- a/docs/libcurl/opts/CURLOPT_CAPATH.pdf
+++ b/docs/libcurl/opts/CURLOPT_CAPATH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CERTINFO.pdf b/docs/libcurl/opts/CURLOPT_CERTINFO.pdf
index e2e6a953..0e6b1624 100644
--- a/docs/libcurl/opts/CURLOPT_CERTINFO.pdf
+++ b/docs/libcurl/opts/CURLOPT_CERTINFO.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.html b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.html
index 3ae45697..85f5657a 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.html
@@ -54,10 +54,10 @@ p.roffit {
<p class="level0">CURLOPT_CHUNK_BGN_FUNCTION - callback before a transfer with FTP wildcardmatch <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
long chunk_bgn_callback(const void *transfer_info, void *ptr,
&nbsp; int remains);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_BGN_FUNCTION,
&nbsp; chunk_bgn_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.pdf
index c7d08205..b0a34641 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
index abdbc3a8..4d0ff3da 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
@@ -29,8 +29,8 @@ CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer);
.SH DESCRIPTION
Pass a \fIpointer\fP that will be untouched by libcurl and passed as the ptr
-argument to the \fICURL_CHUNK_BGN_FUNTION(3)\fP and
-\fICURL_CHUNK_END_FUNTION(3)\fP.
+argument to the \fICURL_CHUNK_BGN_FUNCTION(3)\fP and
+\fICURL_CHUNK_END_FUNCTION(3)\fP.
.SH DEFAULT
NULL
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.html b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.html
index d7b542c1..e27c65be 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.html
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_CHUNK_DATA - custom pointer to the FTP chunk callbacks <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0">&#35;include &lt;curl/curl.h&gt;
<p class="level0">CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
-<p class="level0">Pass a <span Class="emphasis">pointer</span> that will be untouched by libcurl and passed as the ptr argument to the <span Class="emphasis">CURL_CHUNK_BGN_FUNTION(3)</span> and <span Class="emphasis">CURL_CHUNK_END_FUNTION(3)</span>. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
+<p class="level0">Pass a <span Class="emphasis">pointer</span> that will be untouched by libcurl and passed as the ptr argument to the <span Class="emphasis">CURL_CHUNK_BGN_FUNCTION(3)</span> and <span Class="emphasis">CURL_CHUNK_END_FUNCTION(3)</span>. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">NULL <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
<p class="level0">FTP <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.pdf b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.pdf
index c8608bed..4a8853bc 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.html b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.html
index 4ff1f559..7d069461 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_CHUNK_END_FUNCTION - callback after a transfer with FTP wildcardmatch <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
long chunk_end_callback(void *ptr);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_END_FUNCTION,
&nbsp; chunk_end_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.pdf
index ea15bdd2..605cde7f 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.pdf b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.pdf
index 2099032e..4962ad74 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.pdf
index 90330e3d..0c407280 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.html b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.html
index c09f7bf8..6afc3968 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.html
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.html
@@ -62,10 +62,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* complete connection within 10 seconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.pdf b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.pdf
index 625e40f0..d43cb258 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.html b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.html
index adcc2c01..15580ffc 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.html
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.html
@@ -62,10 +62,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* complete connection within 10000 milliseconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10000L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.pdf b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.pdf
index ada47fce..a38d9a69 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.pdf b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.pdf
index 2c50f77b..5ba27d23 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.html b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.html
index 7e6588ba..3c78f548 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_CONV_FROM_NETWORK_FUNCTION - convert data from network to host encoding <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode conv_callback(char *ptr, size_t length);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
&nbsp; conv_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.pdf
index 2775d230..e63169a0 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.html b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.html
index 17abda2c..5b637631 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_CONV_FROM_UTF8_FUNCTION - convert data from UTF8 to host encoding <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode conv_callback(char *ptr, size_t length);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_UTF8_FUNCTION,
&nbsp; conv_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.pdf
index 0c613390..014d0e81 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.html b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.html
index 1122c19d..de151744 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_CONV_TO_NETWORK_FUNCTION - convert data to network from host encoding <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode conv_callback(char *ptr, size_t length);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_TO_NETWORK_FUNCTION,
&nbsp; conv_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.pdf
index c5bedc01..e2aa7e3e 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.3 b/docs/libcurl/opts/CURLOPT_COOKIE.3
index df115c66..a390135f 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.3
@@ -40,6 +40,15 @@ This option sets the cookie header explicitly in the outgoing request(s). If
multiple requests are done due to authentication, followed redirections or
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')
+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
+cookie engine and can be modified by the server use
+\fICURLOPT_COOKIELIST(3)\fP.
+
Using this option multiple times will only make the latest string override the
previous ones.
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.html b/docs/libcurl/opts/CURLOPT_COOKIE.html
index 786999b7..c91529f7 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.html
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.html
@@ -57,6 +57,7 @@ p.roffit {
<p class="level0">Pass a pointer to a zero terminated string as parameter. It will be used to set a cookie in the HTTP request. The format of the string should be NAME=CONTENTS, where NAME is the cookie name and CONTENTS is what the cookie should contain.
<p class="level0">If you need to set multiple cookies, set them all using a single option concatenated like this: "name1=content1; name2=content2;" etc.
<p class="level0">This option sets the cookie header explicitly in the outgoing request(s). If multiple requests are done due to authentication, followed redirections or similar, they will all get this cookie passed on.
+<p class="level0">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') 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 cookie engine and can be modified by the server use <a Class="emphasis" href="./CURLOPT_COOKIELIST.html">CURLOPT_COOKIELIST</a>.
<p class="level0">Using this option multiple times will only make the latest string override the previous ones.
<p class="level0">This option will not enable the cookie engine. Use <a Class="emphasis" href="./CURLOPT_COOKIEFILE.html">CURLOPT_COOKIEFILE</a> or <a Class="emphasis" href="./CURLOPT_COOKIEJAR.html">CURLOPT_COOKIEJAR</a> to enable parsing and sending cookies automatically. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">NULL, no cookies <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
@@ -65,9 +66,9 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_COOKIE, "tool=curl; fun=yes;");
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.pdf b/docs/libcurl/opts/CURLOPT_COOKIE.pdf
index e87ae5c1..de1764d7 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.pdf
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEFILE.pdf b/docs/libcurl/opts/CURLOPT_COOKIEFILE.pdf
index f3832c7b..69a8617b 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEFILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_COOKIEFILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEJAR.pdf b/docs/libcurl/opts/CURLOPT_COOKIEJAR.pdf
index 4ba4eb8f..b8d3cdbe 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEJAR.pdf
+++ b/docs/libcurl/opts/CURLOPT_COOKIEJAR.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
index 815def1b..937c79db 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
@@ -36,6 +36,16 @@ Such a cookie can be either a single line in Netscape / Mozilla format or just
regular HTTP-style header (Set-Cookie: ...) format. This will also enable the
cookie engine. This adds that single cookie to the internal cookie store.
+If you use the Set-Cookie format and don't specify a domain then the cookie
+is sent for any domain and will not be modified. 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 server, likely not what you intended. Either set a domain in
+Set-Cookie (doing that will include sub domains) or use the Netscape format as
+shown in EXAMPLE.
+
+Starting in 7.43.0 the aforementioned any-domain cookies will not appear in the
+lists exported by \fICURLINFO_COOKIELIST(3)\fP and \fICURLOPT_COOKIEJAR(3)\fP.
+
Additionally, there are commands available that perform actions if you pass in
these exact strings:
.IP ALL
@@ -55,7 +65,46 @@ NULL
.SH PROTOCOLS
HTTP
.SH EXAMPLE
-TODO
+.nf
+/* This example shows an inline import of a cookie in Netscape format.
+You can set the cookie as HttpOnly to prevent XSS attacks by prepending
+#HttpOnly_ to the hostname. That may be useful if the cookie will later
+be imported by a browser.
+*/
+
+#define SEP "\\t" /* Tab separates the fields */
+
+char *my_cookie =
+ "example.com" /* Hostname */
+ SEP "FALSE" /* Include subdomains */
+ SEP "/" /* Path */
+ SEP "FALSE" /* Secure */
+ SEP "0" /* Expiry in epoch time format. 0 == Session */
+ SEP "foo" /* Name */
+ SEP "bar"; /* Value */
+
+/* my_cookie is imported immediately via CURLOPT_COOKIELIST.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIELIST, my_cookie);
+
+/* The list of cookies in cookies.txt will not be imported until right
+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.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt"); /* import */
+
+/* Cookies are exported after curl_easy_cleanup is called. The server
+may have added, deleted or modified cookies by then. The cookies that
+were skipped on import are not exported.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); /* export */
+
+res = curl_easy_perform(curl); /* cookies imported from cookies.txt */
+
+curl_easy_cleanup(curl); /* cookies exported to cookies.txt */
+.fi
.SH AVAILABILITY
ALL was added in 7.14.1
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.html b/docs/libcurl/opts/CURLOPT_COOKIELIST.html
index 01fc2181..0f06a6f9 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.html
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.html
@@ -54,13 +54,15 @@ p.roffit {
<p class="level0">CURLOPT_COOKIELIST - add to or manipulate cookies held in memory <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIELIST,
&nbsp; char *cookie);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
<p class="level0">Pass a char * to a <span Class="emphasis">cookie</span> string.
<p class="level0">Such a cookie can be either a single line in Netscape / Mozilla format or just regular HTTP-style header (Set-Cookie: ...) format. This will also enable the cookie engine. This adds that single cookie to the internal cookie store.
+<p class="level0">If you use the Set-Cookie format and don't specify a domain then the cookie is sent for any domain and will not be modified. 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 server, likely not what you intended. Either set a domain in Set-Cookie (doing that will include sub domains) or use the Netscape format as shown in EXAMPLE.
+<p class="level0">Starting in 7.43.0 the aforementioned any-domain cookies will not appear in the lists exported by <span Class="emphasis">CURLINFO_COOKIELIST(3)</span> and <a Class="emphasis" href="./CURLOPT_COOKIEJAR.html">CURLOPT_COOKIEJAR</a>.
<p class="level0">Additionally, there are commands available that perform actions if you pass in these exact strings:
<p class="level0"><a name="ALL"></a><span class="nroffip">ALL</span>
<p class="level1">erases all cookies held in memory
@@ -76,7 +78,48 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIELIST,
<p class="level1"><a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">NULL <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
<p class="level0">HTTP <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
-<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
+<p class="level0"><pre class="level0">
+/* This example shows an inline import of a cookie in Netscape format.
+You can set the cookie as HttpOnly to prevent XSS attacks by prepending
+&#35;HttpOnly_ to the hostname. That may be useful if the cookie will later
+be imported by a browser.
+*/
+&nbsp;
+&#35;define SEP "\t" /* Tab separates the fields */
+&nbsp;
+char *my_cookie =
+&nbsp; "example.com" /* Hostname */
+&nbsp; SEP "FALSE" /* Include subdomains */
+&nbsp; SEP "/" /* Path */
+&nbsp; SEP "FALSE" /* Secure */
+&nbsp; SEP "0" /* Expiry in epoch time format. 0 == Session */
+&nbsp; SEP "foo" /* Name */
+&nbsp; SEP "bar"; /* Value */
+&nbsp;
+/* my_cookie is imported immediately via CURLOPT_COOKIELIST.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIELIST, my_cookie);
+&nbsp;
+/* The list of cookies in cookies.txt will not be imported until right
+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.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt"); /* import */
+&nbsp;
+/* Cookies are exported after curl_easy_cleanup is called. The server
+may have added, deleted or modified cookies by then. The cookies that
+were skipped on import are not exported.
+*/
+curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); /* export */
+&nbsp;
+res = curl_easy_perform(curl); /* cookies imported from cookies.txt */
+&nbsp;
+curl_easy_cleanup(curl); /* cookies exported to cookies.txt */
+</pre>
+
+<p class="level0"><a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
<p class="level0">ALL was added in 7.14.1
<p class="level0">SESS was added in 7.15.4
<p class="level0">FLUSH was added in 7.17.1
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.pdf b/docs/libcurl/opts/CURLOPT_COOKIELIST.pdf
index ae59d459..ebc86e4e 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.pdf
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_COOKIESESSION.pdf b/docs/libcurl/opts/CURLOPT_COOKIESESSION.pdf
index 307ef6ca..88ba266a 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIESESSION.pdf
+++ b/docs/libcurl/opts/CURLOPT_COOKIESESSION.pdf
@@ -63,12 +63,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b03acd9d-2652-11f0-0000-734885418920' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b03acd9d-2652-11f0-0000-734885418920' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:22+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:22+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:29aa25f5-4cd2-11f0-0000-734885418920' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:29aa25f5-4cd2-11f0-0000-734885418920' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:36+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:36+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b03acd9d-2652-11f0-0000-734885418920' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b03acd9d-2652-11f0-0000-734885418920'/>
-<rdf:Description rdf:about='uuid:b03acd9d-2652-11f0-0000-734885418920' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:29aa25f5-4cd2-11f0-0000-734885418920' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:29aa25f5-4cd2-11f0-0000-734885418920'/>
+<rdf:Description rdf:about='uuid:29aa25f5-4cd2-11f0-0000-734885418920' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -78,8 +78,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080822+02'00')
-/ModDate(D:20150429080822+02'00')
+/CreationDate(D:20150617075636+02'00')
+/ModDate(D:20150617075636+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 14
@@ -99,7 +99,7 @@ xref
0000001853 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<05DF19882E403EEDA6EDFF25540F3615><05DF19882E403EEDA6EDFF25540F3615>]
+/ID [<CF3D6DF42FCA24DDF351CC11BBDCD834><CF3D6DF42FCA24DDF351CC11BBDCD834>]
>>
startxref
3430
diff --git a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.html b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.html
index 1515d7de..7aa2456a 100644
--- a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.html
+++ b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.html
@@ -63,13 +63,13 @@ CURL *curl = curl_easy_init();
if(curl) {
&nbsp; char local_buffer[1024]="data to send";
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* size of the data to copy from the buffer and send in the request */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);
-
+&nbsp;
&nbsp; /* send data from the local stack */
&nbsp; curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, local_buffer);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.pdf b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.pdf
index da53f8f2..6383c360 100644
--- a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.pdf
+++ b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CRLF.pdf b/docs/libcurl/opts/CURLOPT_CRLF.pdf
index 736c28ba..401924bd 100644
--- a/docs/libcurl/opts/CURLOPT_CRLF.pdf
+++ b/docs/libcurl/opts/CURLOPT_CRLF.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CRLFILE.pdf b/docs/libcurl/opts/CURLOPT_CRLFILE.pdf
index 57430218..117f2ddf 100644
--- a/docs/libcurl/opts/CURLOPT_CRLFILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_CRLFILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.pdf b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.pdf
index 8b6c2186..37b2e6e9 100644
--- a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.pdf
+++ b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGDATA.pdf b/docs/libcurl/opts/CURLOPT_DEBUGDATA.pdf
index fb14e72c..deb619fc 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_DEBUGDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.html b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.html
index 0ed2b187..2b5b6336 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_DEBUGFUNCTION - debug callback <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
typedef enum {
&nbsp; CURLINFO_TEXT = 0,
&nbsp; CURLINFO_HEADER_IN, /* 1 */
@@ -65,13 +65,13 @@ typedef enum {
&nbsp; CURLINFO_SSL_DATA_OUT, /* 6 */
&nbsp; CURLINFO_END
} curl_infotype;
-
+&nbsp;
int debug_callback(CURL *handle,
&nbsp; curl_infotype type,
&nbsp; char *data,
&nbsp; size_t size,
&nbsp; void *userptr);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGFUNCTION,
&nbsp; debug_callback);
</pre>
@@ -104,13 +104,13 @@ void dump(const char *text,
&nbsp; size_t i;
&nbsp; size_t c;
&nbsp; unsigned int width=0x10;
-
+&nbsp;
&nbsp; fprintf(stream, "%s, %10.10ld bytes (0x%8.8lx)n",
&nbsp; text, (long)size, (long)size);
-
+&nbsp;
&nbsp; for(i=0; i&lt;size; i+= width) {
&nbsp; fprintf(stream, "%4.4lx: ", (long)i);
-
+&nbsp;
&nbsp; /* show hex to the left */
&nbsp; for(c = 0; c &lt; width; c++) {
&nbsp; if(i+c &lt; size)
@@ -118,15 +118,15 @@ void dump(const char *text,
&nbsp; else
&nbsp; fputs(" ", stream);
&nbsp; }
-
+&nbsp;
&nbsp; /* show data on the right */
&nbsp; for(c = 0; (c &lt; width) && (i+c &lt; size); c++)
&nbsp; fputc(ptr[i+c]&gt;=0x20) && (ptr[i+c]&lt;0x80)?ptr[i+c]:'.', stream);
-
+&nbsp;
&nbsp; fputc('n', stream); /* newline */
&nbsp; }
}
-
+&nbsp;
static
int my_trace(CURL *handle, curl_infotype type,
&nbsp; char *data, size_t size,
@@ -134,13 +134,13 @@ int my_trace(CURL *handle, curl_infotype type,
{
&nbsp; const char *text;
&nbsp; (void)handle; /* prevent compiler warning */
-
+&nbsp;
&nbsp; switch (type) {
&nbsp; case CURLINFO_TEXT:
&nbsp; fprintf(stderr, "== Info: %s", data);
&nbsp; default: /* in case a new one is introduced to shock us */
&nbsp; return 0;
-
+&nbsp;
&nbsp; case CURLINFO_HEADER_OUT:
&nbsp; text = "=&gt; Send header";
&nbsp; break;
@@ -160,33 +160,33 @@ int my_trace(CURL *handle, curl_infotype type,
&nbsp; text = "&lt;= Recv SSL data";
&nbsp; break;
&nbsp; }
-
+&nbsp;
&nbsp; dump(text, stderr, (unsigned char *)data, size);
&nbsp; return 0;
}
-
+&nbsp;
int main(void)
{
&nbsp; CURL *curl;
&nbsp; CURLcode res;
-
+&nbsp;
&nbsp; curl = curl_easy_init();
&nbsp; if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, my_trace);
-
+&nbsp;
&nbsp; /* the DEBUGFUNCTION has no effect until we enable VERBOSE */
&nbsp; curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
-
+&nbsp;
&nbsp; /* example.com is redirected, so we tell libcurl to follow redirection */
&nbsp; curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com/">http://example.com/</a>");
&nbsp; res = curl_easy_perform(curl);
&nbsp; /* Check for errors */
&nbsp; if(res != CURLE_OK)
&nbsp; fprintf(stderr, "curl_easy_perform() failed: %sn",
&nbsp; curl_easy_strerror(res));
-
+&nbsp;
&nbsp; /* always cleanup */
&nbsp; curl_easy_cleanup(curl);
&nbsp; }
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.pdf
index c4d0e3a5..39e5c09f 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.pdf b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.pdf
index d0be33d6..0f72430f 100644
--- a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.pdf
+++ b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.pdf b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.pdf
index ba507651..55210836 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.pdf b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.pdf
index 41a8e567..4c56f958 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.pdf b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.pdf
index 73a16472..b00d1de6 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.pdf b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.pdf
index c051fd45..63a267d7 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.pdf b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.pdf
index 58885732..13ac9ea4 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.pdf b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.pdf
index e8452bb8..a3de94d1 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.pdf
+++ b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_EGDSOCKET.pdf b/docs/libcurl/opts/CURLOPT_EGDSOCKET.pdf
index 7c8fb6a0..32dfe37e 100644
--- a/docs/libcurl/opts/CURLOPT_EGDSOCKET.pdf
+++ b/docs/libcurl/opts/CURLOPT_EGDSOCKET.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.html b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.html
index 03e002dc..7d45d29f 100644
--- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.html
+++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.html
@@ -64,12 +64,12 @@ p.roffit {
curl = curl_easy_init();
if(curl) {
&nbsp; char error[CURL_ERROR_SIZE]
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* provide a buffer to store errors in */
&nbsp; curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.pdf b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.pdf
index 8e0ed321..0056b0b7 100644
--- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.pdf
+++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.html b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.html
index df69f61f..1a91850b 100644
--- a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.html
+++ b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_EXPECT_100_TIMEOUT_MS - timeout for Expect: 100-continue response <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EXPECT_100_TIMEOUT_MS,
&nbsp; long milliseconds);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.pdf b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.pdf
index c4375d34..32427d8d 100644
--- a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.pdf
+++ b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FAILONERROR.pdf b/docs/libcurl/opts/CURLOPT_FAILONERROR.pdf
index 1292ad04..184b01e1 100644
--- a/docs/libcurl/opts/CURLOPT_FAILONERROR.pdf
+++ b/docs/libcurl/opts/CURLOPT_FAILONERROR.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FILETIME.pdf b/docs/libcurl/opts/CURLOPT_FILETIME.pdf
index 5a8bce68..22b4af0f 100644
--- a/docs/libcurl/opts/CURLOPT_FILETIME.pdf
+++ b/docs/libcurl/opts/CURLOPT_FILETIME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.html b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.html
index ae455fe9..b8d2dd73 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.html
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_FNMATCH_DATA - custom pointer to fnmatch callback <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FNMATCH_DATA,
&nbsp; void *pointer);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.pdf b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.pdf
index 72a58161..d959c4a4 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.html b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.html
index f780da27..75e0f4e5 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.html
@@ -54,11 +54,11 @@ p.roffit {
<p class="level0">CURLOPT_FNMATCH_FUNCTION - wildcard matching function callback <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
int fnmatch_callback(void *ptr,
&nbsp; const char *pattern,
&nbsp; const char *string);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FNMATCH_FUNCTION,
&nbsp; fnmatch_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.pdf
index e411408d..e3ebb55f 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.html b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.html
index 741a61e0..06869f7d 100644
--- a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.html
+++ b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.html
@@ -64,10 +64,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* example.com is redirected, so we tell libcurl to follow redirection */
&nbsp; curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.pdf b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.pdf
index 55defee3..26481f71 100644
--- a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.pdf
+++ b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.pdf b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.pdf
index 86d261f1..5f27fda2 100644
--- a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.pdf
+++ b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.pdf b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.pdf
index fb07b020..cf22e7f2 100644
--- a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.pdf
+++ b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTPPORT.pdf b/docs/libcurl/opts/CURLOPT_FTPPORT.pdf
index 343fdd8d..2c2c8f8f 100644
--- a/docs/libcurl/opts/CURLOPT_FTPPORT.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTPPORT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.pdf b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.pdf
index c188e6a7..9fc60d6c 100644
--- a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.pdf b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.pdf
index 2af3b48a..ca6c8e05 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.html b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.html
index fc3106f2..c3e65cf3 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.html
+++ b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_FTP_ALTERNATIVE_TO_USER - command to use instead of USER with FTP <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_ALTERNATIVE_TO_USER,
&nbsp; char *cmd);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.pdf b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.pdf
index d1a1070c..b6e43d05 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.html b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.html
index 33711783..1c2fff7d 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.html
+++ b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.html
@@ -54,13 +54,13 @@ p.roffit {
<p class="level0">CURLOPT_FTP_CREATE_MISSING_DIRS - create missing dirs for FTP and SFTP <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
typedef enum {
&nbsp; CURLFTP_CREATE_DIR_NONE,
&nbsp; CURLFTP_CREATE_DIR,
&nbsp; CURLFTP_CREATE_DIR_RETRY
} curl_ftpcreatedir;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_CREATE_MISSING_DIRS,
&nbsp; long create);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.pdf b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.pdf
index befcc73c..dce2deae 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.html b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.html
index 2c0ca858..521aa0cf 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.html
+++ b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_FTP_FILEMETHOD - select directory traversing method for FTP <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_FILEMETHOD,
&nbsp; long method);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.pdf b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.pdf
index be2958b9..fdc87329 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.pdf b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.pdf
index ed3cd677..5b18250e 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.pdf b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.pdf
index 31721ebe..34886132 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.pdf b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.pdf
index 790bae27..10c82250 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.pdf b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.pdf
index 986122ed..52e16915 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.pdf b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.pdf
index a9fbfc2e..0d4dd311 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.pdf b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.pdf
index ccfc20bf..3016858b 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.pdf
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.pdf b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.pdf
index 0ddb951e..84929895 100644
--- a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.pdf
+++ b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HEADER.html b/docs/libcurl/opts/CURLOPT_HEADER.html
index d9ffad71..23f0204a 100644
--- a/docs/libcurl/opts/CURLOPT_HEADER.html
+++ b/docs/libcurl/opts/CURLOPT_HEADER.html
@@ -64,9 +64,9 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HEADER.pdf b/docs/libcurl/opts/CURLOPT_HEADER.pdf
index a1c57e68..e75894b3 100644
--- a/docs/libcurl/opts/CURLOPT_HEADER.pdf
+++ b/docs/libcurl/opts/CURLOPT_HEADER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HEADERDATA.pdf b/docs/libcurl/opts/CURLOPT_HEADERDATA.pdf
index 1ddb5ee7..4f3c9d42 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_HEADERDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.html b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.html
index 1876a64b..182c1aea 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.html
@@ -72,13 +72,13 @@ static size_t header_callback(char *buffer, size_t size,
&nbsp; /* 'userdata' is set with CURLOPT_WRITEDATA */
&nbsp; return nitems * size;
}
-
+&nbsp;
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.pdf
index e558b184..8f1b243f 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HEADEROPT.pdf b/docs/libcurl/opts/CURLOPT_HEADEROPT.pdf
index ca787f30..341d8bcf 100644
--- a/docs/libcurl/opts/CURLOPT_HEADEROPT.pdf
+++ b/docs/libcurl/opts/CURLOPT_HEADEROPT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.html b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.html
index 699a773c..693be853 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.html
+++ b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_HTTP200ALIASES - specify alternative matches for HTTP 200 OK <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP200ALIASES,
&nbsp; struct curl_slist *aliases);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.pdf b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.pdf
index ec1b0143..a74cb98a 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTPAUTH.html b/docs/libcurl/opts/CURLOPT_HTTPAUTH.html
index 1d3c258a..c0d06652 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPAUTH.html
+++ b/docs/libcurl/opts/CURLOPT_HTTPAUTH.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_HTTPAUTH - set HTTP server authentication methods to try <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPAUTH, long bitmask);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_HTTPAUTH.pdf b/docs/libcurl/opts/CURLOPT_HTTPAUTH.pdf
index af2ffd81..f6ecbc75 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPAUTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTPAUTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTPGET.html b/docs/libcurl/opts/CURLOPT_HTTPGET.html
index b4737504..d826527f 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPGET.html
+++ b/docs/libcurl/opts/CURLOPT_HTTPGET.html
@@ -62,10 +62,10 @@ p.roffit {
curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* use a GET to fetch this */
&nbsp; curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_HTTPGET.pdf b/docs/libcurl/opts/CURLOPT_HTTPGET.pdf
index 3725e560..1637aac5 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPGET.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTPGET.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTPHEADER.html b/docs/libcurl/opts/CURLOPT_HTTPHEADER.html
index 14a9d5e7..3cbb716e 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPHEADER.html
+++ b/docs/libcurl/opts/CURLOPT_HTTPHEADER.html
@@ -68,19 +68,19 @@ p.roffit {
<p class="level0">HTTP <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0"><pre class="level0">
CURL *curl = curl_easy_init();
-
+&nbsp;
struct curl_slist *list = NULL;
-
+&nbsp;
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; list = curl_slist_append(list, "Shoesize: 10");
&nbsp; list = curl_slist_append(list, "Accept:");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
-
+&nbsp;
&nbsp; curl_slist_free_all(list); /* free the list again */
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HTTPHEADER.pdf b/docs/libcurl/opts/CURLOPT_HTTPHEADER.pdf
index b87dca01..54111385 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPHEADER.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTPHEADER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPOST.html b/docs/libcurl/opts/CURLOPT_HTTPPOST.html
index 40e27c43..41ada86f 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPOST.html
+++ b/docs/libcurl/opts/CURLOPT_HTTPPOST.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_HTTPPOST - specify the multipart formpost content <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPPOST,
&nbsp; struct curl_httppost *formpost);
</pre>
@@ -72,14 +72,14 @@ curl_formadd(&formpost,
&nbsp; CURLFORM_COPYNAME, "sendfile",
&nbsp; CURLFORM_FILE, "postit2.c",
&nbsp; CURLFORM_END);
-
+&nbsp;
/* Fill in the filename field */
curl_formadd(&formpost,
&nbsp; &lastptr,
&nbsp; CURLFORM_COPYNAME, "filename",
&nbsp; CURLFORM_COPYCONTENTS, "postit2.c",
&nbsp; CURLFORM_END);
-
+&nbsp;
/* Fill in the submit field too, even if this is rarely needed */
curl_formadd(&formpost,
&nbsp; &lastptr,
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPOST.pdf b/docs/libcurl/opts/CURLOPT_HTTPPOST.pdf
index aa8216d4..c2733eb8 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPOST.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTPPOST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
index 3cbf50e2..f861afbd 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,6 +37,9 @@ Tunneling essentially means that a CONNECT is sent to the proxy, asking it to
connect to a remote host on a specific port number and then the traffic is
just passed through the proxy. Proxies tend to whitelist specific port numbers
it allows CONNECT requests to and often only port 80 and 443 are allowed.
+
+When using this, it only makes sense to use \fICURLOPT_PROXYTYPE(3)\fP set to
+a HTTP proxy.
.SH DEFAULT
0
.SH PROTOCOLS
@@ -48,4 +51,4 @@ Always
.SH RETURN VALUE
Returns CURLE_OK
.SH "SEE ALSO"
-.BR CURLOPT_PROXY "(3), "
+.BR CURLOPT_PROXY "(3), " CURLOPT_PROXYTYPE "(3), " CURLOPT_PROXYPORT "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.html b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.html
index 1ee7f9f7..4ddfade3 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.html
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.html
@@ -55,12 +55,13 @@ p.roffit {
<p class="level0">&#35;include &lt;curl/curl.h&gt;
<p class="level0">CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPPROXYTUNNEL, long tunnel); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
<p class="level0">Set the parameter to 1 to make libcurl tunnel all operations through the HTTP proxy. There is a big difference between using a proxy and to tunnel through it. If you don't know what this means, you probably don't want this tunneling option.
-<p class="level0">Tunneling essentially means that a CONNECT is sent to the proxy, asking it to connect to a remote host on a specific port number and then the traffic is just passed through the proxy. Proxies tend to whitelist specific port numbers it allows CONNECT requests to and often only port 80 and 443 are allowed. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
+<p class="level0">Tunneling essentially means that a CONNECT is sent to the proxy, asking it to connect to a remote host on a specific port number and then the traffic is just passed through the proxy. Proxies tend to whitelist specific port numbers it allows CONNECT requests to and often only port 80 and 443 are allowed.
+<p class="level0">When using this, it only makes sense to use <a Class="emphasis" href="./CURLOPT_PROXYTYPE.html">CURLOPT_PROXYTYPE</a> set to a HTTP proxy. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
<p class="level0">0 <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
<p class="level0">All network protocols <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
<p class="level0">Always <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">Returns CURLE_OK <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
-<p class="level0"><a Class="manpage" href="./CURLOPT_PROXY.html">CURLOPT_PROXY</a>, <span Class="manpage"> </span> <p class="roffit">
+<p class="level0"><a Class="manpage" href="./CURLOPT_PROXY.html">CURLOPT_PROXY</a>, <a Class="manpage" href="./CURLOPT_PROXYTYPE.html">CURLOPT_PROXYTYPE</a>, <a Class="manpage" href="./CURLOPT_PROXYPORT.html">CURLOPT_PROXYPORT</a>, <span Class="manpage"> </span> <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
</body></html>
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.pdf b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.pdf
index c61de278..feae4997 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.html b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.html
index c89938b1..d6193c2e 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.html
+++ b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_HTTP_CONTENT_DECODING - enable/disable HTTP content decoding <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP_CONTENT_DECODING,
&nbsp; long enabled);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.pdf b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.pdf
index d37994f4..bd449ce9 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.html b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.html
index 84a2ca13..be05c43f 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.html
+++ b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_HTTP_TRANSFER_DECODING - enable/disable HTTP transfer decoding <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP_TRANSFER_DECODING,
&nbsp; long enabled);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.pdf b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.pdf
index dd68e412..63e2dba1 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.pdf b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.pdf
index 7eea9263..87d93e82 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.pdf
+++ b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.html b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.html
index 2d86008b..c7c52298 100644
--- a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.html
+++ b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_IGNORE_CONTENT_LENGTH - ignore Content-Length in HTTP response <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH,
&nbsp; long ignore);
</pre>
@@ -67,10 +67,10 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH,
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* we know the server is silly, ignore content-length */
&nbsp; curl_easy_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, 1L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.pdf b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.pdf
index 9e7e53d8..bfc3db61 100644
--- a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE.html b/docs/libcurl/opts/CURLOPT_INFILESIZE.html
index 5454f732..48accfee 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE.html
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE.html
@@ -65,13 +65,13 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; long uploadsize = FILE_SIZE;
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com/destination.tar.gz">ftp://example.com/destination.tar.gz</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_INFILESIZE, uploadsize);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE.pdf b/docs/libcurl/opts/CURLOPT_INFILESIZE.pdf
index 4e80763f..ceb0ef44 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE.pdf
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.html b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.html
index f1351c3b..0ad59d05 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_INFILESIZE_LARGE - set size of the input file to send off <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INFILESIZE_LARGE,
&nbsp; curl_off_t filesize);
</pre>
@@ -70,13 +70,13 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INFILESIZE_LARGE,
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_off_t uploadsize = FILE_SIZE;
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com/destination.tar.gz">ftp://example.com/destination.tar.gz</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, uploadsize);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.pdf b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.pdf
index ca1976a2..bcda9c5b 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_INTERFACE.pdf b/docs/libcurl/opts/CURLOPT_INTERFACE.pdf
index d6e83829..788ebbe9 100644
--- a/docs/libcurl/opts/CURLOPT_INTERFACE.pdf
+++ b/docs/libcurl/opts/CURLOPT_INTERFACE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.pdf b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.pdf
index ea9de6c7..34d414a8 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.html b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.html
index eeb1e6f8..c3bdbfb1 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.html
@@ -54,10 +54,10 @@ p.roffit {
<p class="level0">CURLOPT_INTERLEAVEFUNCTION - callback function for RTSP interleaved data <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
size_t interleave_callback(void *ptr, size_t size, size_t nmemb,
&nbsp; void *userdata);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERLEAVEFUNCTION,
&nbsp; interleave_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.pdf
index 52a4e489..2a159d35 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLDATA.pdf b/docs/libcurl/opts/CURLOPT_IOCTLDATA.pdf
index a78cc3dc..3f4393a7 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_IOCTLDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.html b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.html
index 8c44782a..361ddfad 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.html
@@ -54,22 +54,22 @@ p.roffit {
<p class="level0">CURLOPT_IOCTLFUNCTION - callback for I/O operations <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
typedef enum {
&nbsp; CURLIOE_OK, /* I/O operation successful */
&nbsp; CURLIOE_UNKNOWNCMD, /* command was unknown to callback */
&nbsp; CURLIOE_FAILRESTART, /* failed to restart the read */
&nbsp; CURLIOE_LAST /* never use */
} curlioerr;
-
+&nbsp;
typedef enum {
&nbsp; CURLIOCMD_NOP, /* no operation */
&nbsp; CURLIOCMD_RESTARTREAD, /* restart the read stream from start */
&nbsp; CURLIOCMD_LAST /* never use */
} curliocmd;
-
+&nbsp;
curlioerr ioctl_callback(CURL *handle, int cmd, void *clientp);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IOCTLFUNCTION, ioctl_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.pdf
index 20e35976..5adaf81e 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_IPRESOLVE.pdf b/docs/libcurl/opts/CURLOPT_IPRESOLVE.pdf
index 4a799995..e8d90cb3 100644
--- a/docs/libcurl/opts/CURLOPT_IPRESOLVE.pdf
+++ b/docs/libcurl/opts/CURLOPT_IPRESOLVE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_ISSUERCERT.pdf b/docs/libcurl/opts/CURLOPT_ISSUERCERT.pdf
index 685f3ce6..b8e57930 100644
--- a/docs/libcurl/opts/CURLOPT_ISSUERCERT.pdf
+++ b/docs/libcurl/opts/CURLOPT_ISSUERCERT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_KEYPASSWD.pdf b/docs/libcurl/opts/CURLOPT_KEYPASSWD.pdf
index 12b59cb4..4c3f771b 100644
--- a/docs/libcurl/opts/CURLOPT_KEYPASSWD.pdf
+++ b/docs/libcurl/opts/CURLOPT_KEYPASSWD.pdf
@@ -68,12 +68,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b3ce549d-2652-11f0-0000-ba6faefc18a2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b3ce549d-2652-11f0-0000-ba6faefc18a2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:28+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:28+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:2dd64376-4cd2-11f0-0000-ba6faefc18a2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:2dd64376-4cd2-11f0-0000-ba6faefc18a2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:43+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:43+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b3ce549d-2652-11f0-0000-ba6faefc18a2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b3ce549d-2652-11f0-0000-ba6faefc18a2'/>
-<rdf:Description rdf:about='uuid:b3ce549d-2652-11f0-0000-ba6faefc18a2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:2dd64376-4cd2-11f0-0000-ba6faefc18a2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:2dd64376-4cd2-11f0-0000-ba6faefc18a2'/>
+<rdf:Description rdf:about='uuid:2dd64376-4cd2-11f0-0000-ba6faefc18a2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -83,8 +83,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080828+02'00')
-/ModDate(D:20150429080828+02'00')
+/CreationDate(D:20150617075643+02'00')
+/ModDate(D:20150617075643+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -105,7 +105,7 @@ xref
0000002124 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<F5B77FFF8B49E67969219ADE9AF12D31><F5B77FFF8B49E67969219ADE9AF12D31>]
+/ID [<E8A3594A007BCECBFD1DF0EEE7E81516><E8A3594A007BCECBFD1DF0EEE7E81516>]
>>
startxref
3701
diff --git a/docs/libcurl/opts/CURLOPT_KRBLEVEL.pdf b/docs/libcurl/opts/CURLOPT_KRBLEVEL.pdf
index d0e72131..1301eac3 100644
--- a/docs/libcurl/opts/CURLOPT_KRBLEVEL.pdf
+++ b/docs/libcurl/opts/CURLOPT_KRBLEVEL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORT.pdf b/docs/libcurl/opts/CURLOPT_LOCALPORT.pdf
index aa90a0bd..821acea1 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORT.pdf
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.pdf b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.pdf
index 05ae2068..97980c55 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.pdf b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.pdf
index 7be53cb8..d66fb969 100644
--- a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.pdf
+++ b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.pdf b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.pdf
index 09e02798..c7f53af3 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.pdf
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.pdf b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.pdf
index 0fc27534..c7c0d122 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.pdf
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.pdf b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.pdf
index 0d821aa6..25853cd9 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_FROM.pdf b/docs/libcurl/opts/CURLOPT_MAIL_FROM.pdf
index 6aceb312..32c42fbf 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_FROM.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAIL_FROM.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.html b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.html
index 0f59e022..13fe8f88 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.html
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_MAIL_RCPT - list of SMTP mail recipients <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_RCPT,
&nbsp; struct curl_slist *rcpts);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.pdf b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.pdf
index 5dc2c0f2..ab6e7b87 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.pdf b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.pdf
index f7a446c4..0c117c8b 100644
--- a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.pdf b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.pdf
index 0995dece..88a5d7bf 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.html b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.html
index 70c9e694..f05bb589 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_MAXFILESIZE_LARGE - maximum file size allowed to download <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXFILESIZE_LARGE,
&nbsp; curl_off_t size);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.pdf b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.pdf
index 8b827c28..b301e76a 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAXREDIRS.html b/docs/libcurl/opts/CURLOPT_MAXREDIRS.html
index fbb912c2..fbeb6c41 100644
--- a/docs/libcurl/opts/CURLOPT_MAXREDIRS.html
+++ b/docs/libcurl/opts/CURLOPT_MAXREDIRS.html
@@ -63,13 +63,13 @@ p.roffit {
curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com/">http://example.com/</a>");
-
+&nbsp;
&nbsp; /* enable redirect following */
&nbsp; curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
-
+&nbsp;
&nbsp; /* allow three redirects */
&nbsp; curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 3L);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_MAXREDIRS.pdf b/docs/libcurl/opts/CURLOPT_MAXREDIRS.pdf
index 961418d8..7bb2face 100644
--- a/docs/libcurl/opts/CURLOPT_MAXREDIRS.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAXREDIRS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.html b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.html
index 0fb3efbe..f230b229 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_MAX_RECV_SPEED_LARGE - rate limit data download speed <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAX_RECV_SPEED_LARGE,
&nbsp; curl_off_t speed);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.pdf b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.pdf
index 21b13240..c559e2a2 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.html b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.html
index 14f4d3c5..295d5d58 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_MAX_SEND_SPEED_LARGE - rate limit data upload speed <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAX_SEND_SPEED_LARGE,
&nbsp; curl_off_t maxspeed);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.pdf b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.pdf
index 224476ca..21f08f8d 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NETRC.pdf b/docs/libcurl/opts/CURLOPT_NETRC.pdf
index 184bb200..edd73756 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC.pdf
+++ b/docs/libcurl/opts/CURLOPT_NETRC.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NETRC_FILE.pdf b/docs/libcurl/opts/CURLOPT_NETRC_FILE.pdf
index c4224a59..6df0a919 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC_FILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_NETRC_FILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.html b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.html
index 4fb3ded3..2dfced77 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.html
+++ b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_NEW_DIRECTORY_PERMS - permissions for remotely created directories <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NEW_DIRECTORY_PERMS,
&nbsp; long mode);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.pdf b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.pdf
index 484fdffd..5f43fb32 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.pdf
+++ b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.html b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.html
index e72c2450..e95b42e0 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.html
+++ b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_NEW_FILE_PERMS - permissions for remotely created files <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NEW_FILE_PERMS,
&nbsp; long mode);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.pdf b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.pdf
index 85ac04d1..4351eaa9 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.pdf
+++ b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NOBODY.html b/docs/libcurl/opts/CURLOPT_NOBODY.html
index e82a3bab..3ca44189 100644
--- a/docs/libcurl/opts/CURLOPT_NOBODY.html
+++ b/docs/libcurl/opts/CURLOPT_NOBODY.html
@@ -62,10 +62,10 @@ p.roffit {
curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* get us the resource without a body! */
&nbsp; curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_NOBODY.pdf b/docs/libcurl/opts/CURLOPT_NOBODY.pdf
index a201aadf..191d154f 100644
--- a/docs/libcurl/opts/CURLOPT_NOBODY.pdf
+++ b/docs/libcurl/opts/CURLOPT_NOBODY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NOPROGRESS.pdf b/docs/libcurl/opts/CURLOPT_NOPROGRESS.pdf
index 6cc159f6..a069910c 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROGRESS.pdf
+++ b/docs/libcurl/opts/CURLOPT_NOPROGRESS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_NOPROXY.pdf b/docs/libcurl/opts/CURLOPT_NOPROXY.pdf
index 9f4399bd..59693d8b 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROXY.pdf
+++ b/docs/libcurl/opts/CURLOPT_NOPROXY.pdf
@@ -68,12 +68,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b598181d-2652-11f0-0000-65c5a25808db' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b598181d-2652-11f0-0000-65c5a25808db' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:31+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:31+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:2f077076-4cd2-11f0-0000-65c5a25808db' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:2f077076-4cd2-11f0-0000-65c5a25808db' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:45+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:45+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b598181d-2652-11f0-0000-65c5a25808db' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b598181d-2652-11f0-0000-65c5a25808db'/>
-<rdf:Description rdf:about='uuid:b598181d-2652-11f0-0000-65c5a25808db' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:2f077076-4cd2-11f0-0000-65c5a25808db' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:2f077076-4cd2-11f0-0000-65c5a25808db'/>
+<rdf:Description rdf:about='uuid:2f077076-4cd2-11f0-0000-65c5a25808db' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -83,8 +83,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080831+02'00')
-/ModDate(D:20150429080831+02'00')
+/CreationDate(D:20150617075645+02'00')
+/ModDate(D:20150617075645+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 14
@@ -104,7 +104,7 @@ xref
0000002157 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<44D04CA509E672FBAC06216830DB0BA1><44D04CA509E672FBAC06216830DB0BA1>]
+/ID [<810A4BDB08285C624F857E36B6E2D39E><810A4BDB08285C624F857E36B6E2D39E>]
>>
startxref
3734
diff --git a/docs/libcurl/opts/CURLOPT_NOSIGNAL.pdf b/docs/libcurl/opts/CURLOPT_NOSIGNAL.pdf
index 27489d4f..cad38993 100644
--- a/docs/libcurl/opts/CURLOPT_NOSIGNAL.pdf
+++ b/docs/libcurl/opts/CURLOPT_NOSIGNAL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.pdf b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.pdf
index 25c427f0..e1613090 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.html b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.html
index 8325c590..14d1e8cd 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.html
@@ -54,13 +54,13 @@ p.roffit {
<p class="level0">CURLOPT_OPENSOCKETFUNCTION - set callback for opening sockets <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
typedef enum {
&nbsp; CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */
&nbsp; CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */
&nbsp; CURLSOCKTYPE_LAST /* never use */
} curlsocktype;
-
+&nbsp;
struct curl_sockaddr {
&nbsp; int family;
&nbsp; int socktype;
@@ -68,11 +68,11 @@ struct curl_sockaddr {
&nbsp; unsigned int addrlen;
&nbsp; struct sockaddr addr;
};
-
+&nbsp;
curl_socket_t opensocket_callback(void *clientp,
&nbsp; curlsocktype purpose,
&nbsp; struct curl_sockaddr *address);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_OPENSOCKETFUNCTION, opensocket_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.pdf
index df69d2bb..be856108 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PASSWORD.pdf b/docs/libcurl/opts/CURLOPT_PASSWORD.pdf
index bb126da0..984f154d 100644
--- a/docs/libcurl/opts/CURLOPT_PASSWORD.pdf
+++ b/docs/libcurl/opts/CURLOPT_PASSWORD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.html b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.html
index f6022ced..1d54f017 100644
--- a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.html
+++ b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.html
@@ -64,9 +64,9 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com/../../etc/password">http://example.com/../../etc/password</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_PATH_AS_IS, 1L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.pdf b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.pdf
index 71a49710..3a817423 100644
--- a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.pdf
+++ b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
index 2d863927..94cad31f 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
@@ -50,11 +50,22 @@ if(curl) {
curl_easy_perform(curl);
}
.fi
+.SH PUBLIC KEY EXTRACTION
+If you do not have the server's public key file you can extract it from the
+server's certificate.
+.nf
+openssl x509 -in www.test.com.pem -pubkey -noout > www.test.com.pubkey.pem
+.fi
+The public key is output in PEM format and contains a header, base64 data and a
+footer:
+.nf
+-----BEGIN PUBLIC KEY-----
+[BASE 64 DATA]
+-----END PUBLIC KEY-----
+.fi
.SH AVAILABILITY
-If built TLS enabled. This is currently only implemented in the OpenSSL,
-GnuTLS and GSKit backends.
-
-Added in libcurl 7.39.0
+Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for
+NSS and wolfSSL/CyaSSL. Other SSL backends not supported.
.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_PINNEDPUBLICKEY.html b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.html
index 21168c83..4e01cee4 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.html
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.html
@@ -63,15 +63,25 @@ CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
&nbsp; curl_easy_setopt(curl, CURLOPT_PINNEDPUBLICKEY, "/etc/publickey.der");
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
</pre>
+<p class="level0"><a name="PUBLIC"></a><h2 class="nroffsh">PUBLIC KEY EXTRACTION</h2>
+<p class="level0">If you do not have the server's public key file you can extract it from the server's certificate. <pre class="level0">
+openssl x509 -in www.test.com.pem -pubkey -noout &gt; www.test.com.pubkey.pem
+</pre>
+
+<p class="level0">The public key is output in PEM format and contains a header, base64 data and a footer: <pre class="level0">
+-----BEGIN PUBLIC KEY-----
+[BASE 64 DATA]
+-----END PUBLIC KEY-----
+</pre>
+
<p class="level0"><a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
-<p class="level0">If built TLS enabled. This is currently only implemented in the OpenSSL, GnuTLS and GSKit backends.
-<p class="level0">Added in libcurl 7.39.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for NSS and wolfSSL/CyaSSL. Other SSL backends not supported. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
<p class="level0">Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
<p class="level0"><a Class="manpage" href="./CURLOPT_SSL_VERIFYPEER.html">CURLOPT_SSL_VERIFYPEER</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLOPT_SSL_VERIFYHOST.html">CURLOPT_SSL_VERIFYHOST</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLOPT_CAINFO.html">CURLOPT_CAINFO</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLOPT_CAPATH.html">CURLOPT_CAPATH</a>, <span Class="manpage"> </span> <p class="roffit">
This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
diff --git a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.pdf b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.pdf
index dd703a99..032e264a 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.pdf
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3 b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
new file mode 100644
index 00000000..5f641959
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
@@ -0,0 +1,63 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_PIPEWAIT 3 "12 May 2015" "libcurl 7.43.0" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_PIPEWAIT \- wait for pipelining/multiplexing
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PIPEWAIT, long wait);
+.SH DESCRIPTION
+Set \fIwait\fP to 1L to tell libcurl to prefer to wait for a connection to
+confirm or deny that it can do pipelining or multiplexing before continuing.
+
+When about to perform a new transfer that allows pipelining or multiplexing,
+libcurl will check for existing connections to re-use and pipeline on. If no
+such connection exists it will immediately continue and create a fresh new
+connection to use.
+
+By setting this option to 1 - and having \fICURLMOPT_PIPELINE\fP enabled for
+the multi handle this transfer is associated with - libcurl will instead wait
+for the connection to reveal if it is possible to pipeline/multiplex on before
+it continues. This enables libcurl to much better keep the number of
+connections to a minimum when using pipelining or multiplexing protocols.
+
+The effect thus becomes that with this option set, libcurl prefers to wait and
+re-use an existing connection for pipelining rather than the opposite: prefer
+to open a new connection rather than waiting.
+
+The waiting time is as long as it takes for the connection to get up and for
+libcurl to get the necessary response back that informs it about its protocol
+and support level.
+.SH DEFAULT
+0 (off)
+.SH PROTOCOLS
+HTTP(S)
+.SH EXAMPLE
+.SH AVAILABILITY
+Added in 7.43.0
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_FORBID_REUSE "(3), " CURLOPT_FRESH_CONNECT "(3), "
+.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.html b/docs/libcurl/opts/CURLOPT_PIPEWAIT.html
new file mode 100644
index 00000000..b266c5e5
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html><head>
+<title>CURLOPT_PIPEWAIT man page</title>
+<meta name="generator" content="roffit">
+<STYLE type="text/css">
+pre {
+ overflow: auto;
+ margin: 0;
+}
+
+P.level0, pre.level0 {
+ padding-left: 2em;
+}
+
+P.level1, pre.level1 {
+ padding-left: 4em;
+}
+
+P.level2, pre.level2 {
+ padding-left: 6em;
+}
+
+span.emphasis {
+ font-style: italic;
+}
+
+span.bold {
+ font-weight: bold;
+}
+
+span.manpage {
+ font-weight: bold;
+}
+
+h2.nroffsh {
+ background-color: #e0e0e0;
+}
+
+span.nroffip {
+ font-weight: bold;
+ font-size: 120%;
+ font-family: monospace;
+}
+
+p.roffit {
+ text-align: center;
+ font-size: 80%;
+}
+</STYLE>
+</head><body>
+
+<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
+<p class="level0">CURLOPT_PIPEWAIT - wait for pipelining/multiplexing <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
+<p class="level0">&#35;include &lt;curl/curl.h&gt;
+<p class="level0">CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PIPEWAIT, long wait); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
+<p class="level0">Set <span Class="emphasis">wait</span> to 1L to tell libcurl to prefer to wait for a connection to confirm or deny that it can do pipelining or multiplexing before continuing.
+<p class="level0">When about to perform a new transfer that allows pipelining or multiplexing, libcurl will check for existing connections to re-use and pipeline on. If no such connection exists it will immediately continue and create a fresh new connection to use.
+<p class="level0">By setting this option to 1 - and having <span Class="emphasis">CURLMOPT_PIPELINE</span> enabled for the multi handle this transfer is associated with - libcurl will instead wait for the connection to reveal if it is possible to pipeline/multiplex on before it continues. This enables libcurl to much better keep the number of connections to a minimum when using pipelining or multiplexing protocols.
+<p class="level0">The effect thus becomes that with this option set, libcurl prefers to wait and re-use an existing connection for pipelining rather than the opposite: prefer to open a new connection rather than waiting.
+<p class="level0">The waiting time is as long as it takes for the connection to get up and for libcurl to get the necessary response back that informs it about its protocol and support level. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
+<p class="level0">0 (off) <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
+<p class="level0">HTTP(S) <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0"><a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
+<p class="level0">Added in 7.43.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
+<p class="level0"><a Class="manpage" href="./CURLOPT_FORBID_REUSE.html">CURLOPT_FORBID_REUSE</a>, <a Class="manpage" href="./CURLOPT_FRESH_CONNECT.html">CURLOPT_FRESH_CONNECT</a>, <span Class="manpage"> </span> <a Class="manpage" href="./CURLMOPT_PIPELINING.html">CURLMOPT_PIPELINING</a>, <a Class="manpage" href="./CURLMOPT_MAX_HOST_CONNECTIONS.html">CURLMOPT_MAX_HOST_CONNECTIONS</a>, <span Class="manpage"> </span> <p class="roffit">
+ This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
+</body></html>
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.pdf b/docs/libcurl/opts/CURLOPT_PIPEWAIT.pdf
new file mode 100644
index 00000000..abecf65d
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PORT.pdf b/docs/libcurl/opts/CURLOPT_PORT.pdf
index ed01c841..24200333 100644
--- a/docs/libcurl/opts/CURLOPT_PORT.pdf
+++ b/docs/libcurl/opts/CURLOPT_PORT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_POST.pdf b/docs/libcurl/opts/CURLOPT_POST.pdf
index 9557129e..0c1df60b 100644
--- a/docs/libcurl/opts/CURLOPT_POST.pdf
+++ b/docs/libcurl/opts/CURLOPT_POST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
index d5591430..27e4510b 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
@@ -44,6 +44,9 @@ used by HTML forms. Change Content-Type with \fICURLOPT_HTTPHEADER(3)\fP.
Using \fICURLOPT_POSTFIELDS(3)\fP implies \fICURLOPT_POST(3)\fP.
+You can use \fIcurl_easy_escape(3)\fP to url-encode your data, if necessary. It
+returns a pointer to an encoded string that can be passed as \fIpostdata\fP.
+
If you want to do a zero-byte POST, you need to set
\fICURLOPT_POSTFIELDSIZE(3)\fP explicitly to zero, as simply setting
\fICURLOPT_POSTFIELDS(3)\fP to NULL or "" just effectively disables the
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.html b/docs/libcurl/opts/CURLOPT_POSTFIELDS.html
index 1b47277b..d8fd439b 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.html
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.html
@@ -58,6 +58,7 @@ p.roffit {
<p class="level0">The data pointed to is NOT copied by the library: as a consequence, it must be preserved by the calling application until the associated transfer finishes. This behaviour can be changed (so libcurl does copy the data) by setting the <a Class="emphasis" href="./CURLOPT_COPYPOSTFIELDS.html">CURLOPT_COPYPOSTFIELDS</a> option.
<p class="level0">This POST is a normal application/x-www-form-urlencoded kind (and libcurl will set that Content-Type by default when this option is used), which is commonly used by HTML forms. Change Content-Type with <a Class="emphasis" href="./CURLOPT_HTTPHEADER.html">CURLOPT_HTTPHEADER</a>.
<p class="level0">Using <a Class="emphasis" href="./CURLOPT_POSTFIELDS.html">CURLOPT_POSTFIELDS</a> implies <a Class="emphasis" href="./CURLOPT_POST.html">CURLOPT_POST</a>.
+<p class="level0">You can use <span Class="emphasis">curl_easy_escape(3)</span> to url-encode your data, if necessary. It returns a pointer to an encoded string that can be passed as <span Class="emphasis">postdata</span>.
<p class="level0">If you want to do a zero-byte POST, you need to set <a Class="emphasis" href="./CURLOPT_POSTFIELDSIZE.html">CURLOPT_POSTFIELDSIZE</a> explicitly to zero, as simply setting <a Class="emphasis" href="./CURLOPT_POSTFIELDS.html">CURLOPT_POSTFIELDS</a> to NULL or "" just effectively disables the sending of the specified string. libcurl will instead assume that you'll send the POST data using the read callback!
<p class="level0">Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header. You can disable this header with <a Class="emphasis" href="./CURLOPT_HTTPHEADER.html">CURLOPT_HTTPHEADER</a> as usual.
<p class="level0">To make multipart/formdata posts (aka <a href="http://www.ietf.org/rfc/rfc2388.txt">RFC 2388</a>-posts), check out the <a Class="emphasis" href="./CURLOPT_HTTPPOST.html">CURLOPT_HTTPPOST</a> option combined with <span Class="emphasis">curl_formadd(3)</span>. <a name="DEFAULT"></a><h2 class="nroffsh">DEFAULT</h2>
@@ -67,15 +68,15 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; const char *data = "data to send";
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* size of the POST data */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);
-
+&nbsp;
&nbsp; /* pass in a pointer to the data - libcurl will not copy */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.pdf b/docs/libcurl/opts/CURLOPT_POSTFIELDS.pdf
index 9a9de87e..b6106e1d 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.pdf
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.html b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.html
index f64032e5..7046668f 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.html
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.html
@@ -62,14 +62,14 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; const char *data = "data to send";
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* size of the POST data */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) strlen(data));
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.pdf b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.pdf
index ab2b4325..0c0f8bf3 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.pdf
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.pdf
@@ -72,12 +72,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-17393b2772b9' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-17393b2772b9' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:32+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:32+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-17393b2772b9' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-17393b2772b9' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:46+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:46+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-17393b2772b9' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b630ae9d-2652-11f0-0000-17393b2772b9'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-17393b2772b9' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-17393b2772b9' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:2fa006f6-4cd2-11f0-0000-17393b2772b9'/>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-17393b2772b9' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -87,8 +87,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080832+02'00')
-/ModDate(D:20150429080832+02'00')
+/CreationDate(D:20150617075646+02'00')
+/ModDate(D:20150617075646+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -109,7 +109,7 @@ xref
0000001889 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<16A29B8847C829CD26038E8252560AF8><16A29B8847C829CD26038E8252560AF8>]
+/ID [<7D09D91EE8223D3F8FC0625558D05CF3><7D09D91EE8223D3F8FC0625558D05CF3>]
>>
startxref
3466
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.html b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.html
index 6c434888..cd8901b1 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_POSTFIELDSIZE_LARGE - size of POST data pointed to <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDSIZE_LARGE,
&nbsp; curl_off_t size);
</pre>
@@ -67,14 +67,14 @@ CURL *curl = curl_easy_init();
if(curl) {
&nbsp; const char *data = large_chunk;
&nbsp; curl_off_t length_of_data; /* set somehow */
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* size of the POST data */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, length_of_data);
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.pdf b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.pdf
index fdf34311..e93c678e 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_POSTQUOTE.pdf b/docs/libcurl/opts/CURLOPT_POSTQUOTE.pdf
index 2981770f..c7f8976c 100644
--- a/docs/libcurl/opts/CURLOPT_POSTQUOTE.pdf
+++ b/docs/libcurl/opts/CURLOPT_POSTQUOTE.pdf
@@ -70,12 +70,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-56fc4828454a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-56fc4828454a' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:32+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:32+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-56fc4828454a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-56fc4828454a' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:46+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:46+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-56fc4828454a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b630ae9d-2652-11f0-0000-56fc4828454a'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-56fc4828454a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-56fc4828454a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:2fa006f6-4cd2-11f0-0000-56fc4828454a'/>
+<rdf:Description rdf:about='uuid:2fa006f6-4cd2-11f0-0000-56fc4828454a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -85,8 +85,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080832+02'00')
-/ModDate(D:20150429080832+02'00')
+/CreationDate(D:20150617075646+02'00')
+/ModDate(D:20150617075646+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -107,7 +107,7 @@ xref
0000001843 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<364F3DE990FABF30AB155057FF6FD328><364F3DE990FABF30AB155057FF6FD328>]
+/ID [<F24A9CA68506F79819FF2700FCBEDC66><F24A9CA68506F79819FF2700FCBEDC66>]
>>
startxref
3420
diff --git a/docs/libcurl/opts/CURLOPT_POSTREDIR.html b/docs/libcurl/opts/CURLOPT_POSTREDIR.html
index ac8106ea..04000595 100644
--- a/docs/libcurl/opts/CURLOPT_POSTREDIR.html
+++ b/docs/libcurl/opts/CURLOPT_POSTREDIR.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_POSTREDIR - how to act on a HTTP POST redirect <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTREDIR,
&nbsp; long bitmask);
</pre>
@@ -67,14 +67,14 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTREDIR,
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* a silly POST example */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data=true");
-
+&nbsp;
&nbsp; /* example.com is redirected, so we tell libcurl to send POST on 301, 302 and
&nbsp; 303 HTTP response codes */
&nbsp; curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_POSTREDIR.pdf b/docs/libcurl/opts/CURLOPT_POSTREDIR.pdf
index f1f0151a..8ad4492a 100644
--- a/docs/libcurl/opts/CURLOPT_POSTREDIR.pdf
+++ b/docs/libcurl/opts/CURLOPT_POSTREDIR.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PREQUOTE.pdf b/docs/libcurl/opts/CURLOPT_PREQUOTE.pdf
index f2753fca..b9f1b358 100644
--- a/docs/libcurl/opts/CURLOPT_PREQUOTE.pdf
+++ b/docs/libcurl/opts/CURLOPT_PREQUOTE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PRIVATE.html b/docs/libcurl/opts/CURLOPT_PRIVATE.html
index 781d89c9..2be9405e 100644
--- a/docs/libcurl/opts/CURLOPT_PRIVATE.html
+++ b/docs/libcurl/opts/CURLOPT_PRIVATE.html
@@ -63,12 +63,12 @@ struct private secrets;
if(curl) {
&nbsp; struct private *extracted;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* store a pointer to our private struct */
&nbsp; curl_easy_setopt(curl, CURLOPT_PRIVATE, &secrets);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
-
+&nbsp;
&nbsp; /* we can extract the private pointer again too */
&nbsp; curl_easy_getinfo(curl, CURLINFO_PRIVATE, &extracted);
}
diff --git a/docs/libcurl/opts/CURLOPT_PRIVATE.pdf b/docs/libcurl/opts/CURLOPT_PRIVATE.pdf
index 3fe29025..5565a4d4 100644
--- a/docs/libcurl/opts/CURLOPT_PRIVATE.pdf
+++ b/docs/libcurl/opts/CURLOPT_PRIVATE.pdf
@@ -69,12 +69,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-d5744fcac4bd' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-d5744fcac4bd' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:32+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:32+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:30389d76-4cd2-11f0-0000-d5744fcac4bd' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:30389d76-4cd2-11f0-0000-d5744fcac4bd' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:47+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:47+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-d5744fcac4bd' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b630ae9d-2652-11f0-0000-d5744fcac4bd'/>
-<rdf:Description rdf:about='uuid:b630ae9d-2652-11f0-0000-d5744fcac4bd' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:30389d76-4cd2-11f0-0000-d5744fcac4bd' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:30389d76-4cd2-11f0-0000-d5744fcac4bd'/>
+<rdf:Description rdf:about='uuid:30389d76-4cd2-11f0-0000-d5744fcac4bd' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -84,8 +84,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080832+02'00')
-/ModDate(D:20150429080832+02'00')
+/CreationDate(D:20150617075647+02'00')
+/ModDate(D:20150617075647+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -106,7 +106,7 @@ xref
0000002140 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<3504B5595C716E792788971B52DBA284><3504B5595C716E792788971B52DBA284>]
+/ID [<3AF208F4931D4526347E747A96BA04DB><3AF208F4931D4526347E747A96BA04DB>]
>>
startxref
3717
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.pdf b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.pdf
index 098312f4..80272cad 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.pdf
index 743fbdbf..34311766 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROTOCOLS.html b/docs/libcurl/opts/CURLOPT_PROTOCOLS.html
index 871d4683..a5ef7f39 100644
--- a/docs/libcurl/opts/CURLOPT_PROTOCOLS.html
+++ b/docs/libcurl/opts/CURLOPT_PROTOCOLS.html
@@ -93,11 +93,11 @@ curl = curl_easy_init();
if(curl) {
&nbsp; /* pass in the URL from an external source */
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
-
+&nbsp;
&nbsp; /* only allow HTTP, TFTP and SFTP */
&nbsp; curl_easy_setopt(curl, CURLOPT_PROTOCOLS,
&nbsp; CURLPROTO_HTTP | CURLPROTO_TFTP | CURLPROTO_SFTP);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_PROTOCOLS.pdf b/docs/libcurl/opts/CURLOPT_PROTOCOLS.pdf
index 9ad1ac4a..aa58bc95 100644
--- a/docs/libcurl/opts/CURLOPT_PROTOCOLS.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROTOCOLS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXY.pdf b/docs/libcurl/opts/CURLOPT_PROXY.pdf
index 5d6b58dc..d3fc203b 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYAUTH.pdf b/docs/libcurl/opts/CURLOPT_PROXYAUTH.pdf
index 5ec8dd90..dedbd310 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYAUTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYAUTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYHEADER.html b/docs/libcurl/opts/CURLOPT_PROXYHEADER.html
index 69f0c34d..8e630f8b 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYHEADER.html
+++ b/docs/libcurl/opts/CURLOPT_PROXYHEADER.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_PROXYHEADER - custom HTTP headers to pass to proxy <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYHEADER,
&nbsp; struct curl_slist *headers);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_PROXYHEADER.pdf b/docs/libcurl/opts/CURLOPT_PROXYHEADER.pdf
index 8fb821ed..6458e8bc 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYHEADER.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYHEADER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.pdf b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.pdf
index 01a35aff..83ef6bdc 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPORT.pdf b/docs/libcurl/opts/CURLOPT_PROXYPORT.pdf
index 12de0d4f..c5ad3e57 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPORT.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYPORT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYTYPE.pdf b/docs/libcurl/opts/CURLOPT_PROXYTYPE.pdf
index eb8f3966..13f7610f 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYTYPE.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYTYPE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.html b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.html
index 4075b8a8..f7c98dbe 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.html
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_PROXYUSERNAME - user name to use for proxy authentication <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXYUSERNAME,
&nbsp; char *username);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.pdf b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.pdf
index 26edbbbd..909ca438 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.pdf b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.pdf
index 42cc6a89..86bd671a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
new file mode 100644
index 00000000..a6224fb7
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
@@ -0,0 +1,45 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_PROXY_SERVICE_NAME 3 "17 Jun 2015" "libcurl 7.43.0" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_PROXY_SERVICE_NAME \- proxy service name
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SERVICE_NAME, char *name);
+.SH DESCRIPTION
+Pass a char * as parameter to a string holding the \fIname\fP of the
+service. The default service name is "HTTP". This option allows you to change it.
+..SH DEFAULT
+See above
+.SH PROTOCOLS
+Most
+.SH EXAMPLE
+TODO
+.SH AVAILABILITY
+Added in 7.43.0
+.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_PROXY "(3), " CURLOPT_PROXYTYPE "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.html b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.html
new file mode 100644
index 00000000..4d0329ec
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html><head>
+<title>CURLOPT_PROXY_SERVICE_NAME man page</title>
+<meta name="generator" content="roffit">
+<STYLE type="text/css">
+pre {
+ overflow: auto;
+ margin: 0;
+}
+
+P.level0, pre.level0 {
+ padding-left: 2em;
+}
+
+P.level1, pre.level1 {
+ padding-left: 4em;
+}
+
+P.level2, pre.level2 {
+ padding-left: 6em;
+}
+
+span.emphasis {
+ font-style: italic;
+}
+
+span.bold {
+ font-weight: bold;
+}
+
+span.manpage {
+ font-weight: bold;
+}
+
+h2.nroffsh {
+ background-color: #e0e0e0;
+}
+
+span.nroffip {
+ font-weight: bold;
+ font-size: 120%;
+ font-family: monospace;
+}
+
+p.roffit {
+ text-align: center;
+ font-size: 80%;
+}
+</STYLE>
+</head><body>
+
+<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
+<p class="level0">CURLOPT_PROXY_SERVICE_NAME - proxy service name <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
+<p class="level0">&#35;include &lt;curl/curl.h&gt;
+<p class="level0">CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SERVICE_NAME, char *name); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
+<p class="level0">Pass a char * as parameter to a string holding the <span Class="emphasis">name</span> of the service. The default service name is "HTTP". This option allows you to change it.
+<p class="level0">See above <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
+<p class="level0">Most <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
+<p class="level0">Added in 7.43.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
+<p class="level0"><a Class="manpage" href="./CURLOPT_PROXY.html">CURLOPT_PROXY</a>, <a Class="manpage" href="./CURLOPT_PROXYTYPE.html">CURLOPT_PROXYTYPE</a>, <span Class="manpage"> </span> <p class="roffit">
+ This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
+</body></html>
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.pdf b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.pdf
new file mode 100644
index 00000000..f8b6c4d6
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.pdf b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.pdf
index c6de6034..26b5bb3e 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.pdf
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_PUT.pdf b/docs/libcurl/opts/CURLOPT_PUT.pdf
index caed7ed8..275f3073 100644
--- a/docs/libcurl/opts/CURLOPT_PUT.pdf
+++ b/docs/libcurl/opts/CURLOPT_PUT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_QUOTE.pdf b/docs/libcurl/opts/CURLOPT_QUOTE.pdf
index 44ebc77c..b3966610 100644
--- a/docs/libcurl/opts/CURLOPT_QUOTE.pdf
+++ b/docs/libcurl/opts/CURLOPT_QUOTE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.pdf b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.pdf
index a1258764..bf69fc19 100644
--- a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RANGE.html b/docs/libcurl/opts/CURLOPT_RANGE.html
index 0a9a0ca8..89da7149 100644
--- a/docs/libcurl/opts/CURLOPT_RANGE.html
+++ b/docs/libcurl/opts/CURLOPT_RANGE.html
@@ -63,10 +63,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* get the first 200 bytes */
&nbsp; curl_easy_setopt(curl, CURLOPT_RANGE, "0-199");
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_RANGE.pdf b/docs/libcurl/opts/CURLOPT_RANGE.pdf
index 21279fe8..f08b492c 100644
--- a/docs/libcurl/opts/CURLOPT_RANGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_RANGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_READDATA.html b/docs/libcurl/opts/CURLOPT_READDATA.html
index 492ad11d..42642c6c 100644
--- a/docs/libcurl/opts/CURLOPT_READDATA.html
+++ b/docs/libcurl/opts/CURLOPT_READDATA.html
@@ -64,11 +64,11 @@ CURL *curl = curl_easy_init();
struct MyData this;
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* pass pointer that gets passed in to the
&nbsp; CURLOPT_READFUNCTION callback */
&nbsp; curl_easy_setopt(curl, CURLOPT_READDATA, &this);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_READDATA.pdf b/docs/libcurl/opts/CURLOPT_READDATA.pdf
index 4511d362..db3bcf3d 100644
--- a/docs/libcurl/opts/CURLOPT_READDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_READDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_READFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_READFUNCTION.pdf
index ce265124..25aa65f2 100644
--- a/docs/libcurl/opts/CURLOPT_READFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_READFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.html b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.html
index 3ea1fc12..80249a37 100644
--- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.html
+++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.html
@@ -93,11 +93,11 @@ curl = curl_easy_init();
if(curl) {
&nbsp; /* pass in the URL from an external source */
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
-
+&nbsp;
&nbsp; /* only allow redirects to HTTP and HTTPS URLs */
&nbsp; curl_easy_setopt(curl, CURLOPT_REDIR_PROTOCOLS,
&nbsp; CURLPROTO_HTTP | CURLPROTO_HTTPS);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.pdf b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.pdf
index 88b674ca..74fc3078 100644
--- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.pdf
+++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_REFERER.html b/docs/libcurl/opts/CURLOPT_REFERER.html
index f2481b6e..733a8c84 100644
--- a/docs/libcurl/opts/CURLOPT_REFERER.html
+++ b/docs/libcurl/opts/CURLOPT_REFERER.html
@@ -61,10 +61,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* tell it where we found the link to this place */
&nbsp; curl_easy_setopt(curl, CURLOPT_REFERER, "<a href="http://example.com/aboutme.html">http://example.com/aboutme.html</a>");
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_REFERER.pdf b/docs/libcurl/opts/CURLOPT_REFERER.pdf
index b83b5666..a29bc3ca 100644
--- a/docs/libcurl/opts/CURLOPT_REFERER.pdf
+++ b/docs/libcurl/opts/CURLOPT_REFERER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVE.html b/docs/libcurl/opts/CURLOPT_RESOLVE.html
index dfd0b66a..d01846e4 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVE.html
+++ b/docs/libcurl/opts/CURLOPT_RESOLVE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_RESOLVE - provide custom host name to IP address resolves <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVE,
&nbsp; struct curl_slist *hosts);
</pre>
@@ -69,17 +69,17 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVE,
CURL *curl;
struct curl_slist *host = NULL;
host = curl_slist_append(NULL, "example.com:80:127.0.0.1");
-
+&nbsp;
curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_RESOLVE, host);
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
&nbsp; res = curl_easy_perform(curl);
-
+&nbsp;
&nbsp; /* always cleanup */
&nbsp; curl_easy_cleanup(curl);
}
-
+&nbsp;
curl_slist_free_all(host);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVE.pdf b/docs/libcurl/opts/CURLOPT_RESOLVE.pdf
index 9de1add0..b2c220a2 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVE.pdf
+++ b/docs/libcurl/opts/CURLOPT_RESOLVE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM.html b/docs/libcurl/opts/CURLOPT_RESUME_FROM.html
index 04070381..a7965298 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM.html
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM.html
@@ -63,16 +63,16 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com">ftp://example.com</a>");
-
+&nbsp;
&nbsp; /* resume upload at byte index 200 */
&nbsp; curl_easy_setopt(curl, CURLOPT_RESUME_FROM, 200L);
-
+&nbsp;
&nbsp; /* ask for upload */
&nbsp; curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-
+&nbsp;
&nbsp; /* set total data amount to expect */
&nbsp; curl_easy_setopt(curl, CURLOPT_INFILESIZE, size_of_file);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM.pdf b/docs/libcurl/opts/CURLOPT_RESUME_FROM.pdf
index 5e1b996d..d77e2b2c 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM.pdf
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.html b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.html
index 59b5cd7e..20c956f3 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.html
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_RESUME_FROM_LARGE - set a point to resume transfer from <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESUME_FROM_LARGE,
&nbsp; curl_off_t from);
</pre>
@@ -68,18 +68,18 @@ CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_off_t resume_position = GET_IT_SOMEHOW;
&nbsp; curl_off_t file_size = GET_IT_SOMEHOW_AS_WELL;
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com">ftp://example.com</a>");
-
+&nbsp;
&nbsp; /* resuming upload at this position, possibly beyond 2GB */
&nbsp; curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, resume_position);
-
+&nbsp;
&nbsp; /* ask for upload */
&nbsp; curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-
+&nbsp;
&nbsp; /* set total data amount to expect */
&nbsp; curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, file_size);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.pdf b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.pdf
index 27421b28..614f33f3 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.pdf
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.pdf b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.pdf
index d1f5263b..b296bcf4 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.pdf b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.pdf
index 64f3742f..ffe9627b 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.pdf b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.pdf
index 7eca5221..c642c3d1 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.pdf
@@ -67,12 +67,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b7fa721d-2652-11f0-0000-e6e9a23d587a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b7fa721d-2652-11f0-0000-e6e9a23d587a' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:35+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:35+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-e6e9a23d587a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-e6e9a23d587a' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:50+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:50+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b7fa721d-2652-11f0-0000-e6e9a23d587a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b7fa721d-2652-11f0-0000-e6e9a23d587a'/>
-<rdf:Description rdf:about='uuid:b7fa721d-2652-11f0-0000-e6e9a23d587a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-e6e9a23d587a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:320260f6-4cd2-11f0-0000-e6e9a23d587a'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-e6e9a23d587a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -82,8 +82,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080835+02'00')
-/ModDate(D:20150429080835+02'00')
+/CreationDate(D:20150617075650+02'00')
+/ModDate(D:20150617075650+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 14
@@ -103,7 +103,7 @@ xref
0000001666 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<5CE874A28A5724930E4F13B89616B3DC><5CE874A28A5724930E4F13B89616B3DC>]
+/ID [<50986BF265BCB1091FADD7BF066CFCD5><50986BF265BCB1091FADD7BF066CFCD5>]
>>
startxref
3243
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.pdf b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.pdf
index 7f0674f9..fe864613 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.pdf b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.pdf
index 495e9fe2..a3503fca 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.html b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.html
index 923a331a..46609fa3 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.html
+++ b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_RTSP_TRANSPORT - set RTSP Transport: header <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_TRANSPORT,
&nbsp; char *transport);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.pdf b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.pdf
index ecbb5b90..f31902c3 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.pdf
+++ b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SASL_IR.pdf b/docs/libcurl/opts/CURLOPT_SASL_IR.pdf
index b7a9beb7..a3979f47 100644
--- a/docs/libcurl/opts/CURLOPT_SASL_IR.pdf
+++ b/docs/libcurl/opts/CURLOPT_SASL_IR.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SEEKDATA.pdf b/docs/libcurl/opts/CURLOPT_SEEKDATA.pdf
index 2e30f757..8ad34871 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_SEEKDATA.pdf
@@ -68,12 +68,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-bfb7a2fb1104' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-bfb7a2fb1104' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:36+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:36+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-bfb7a2fb1104' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-bfb7a2fb1104' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:50+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:50+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-bfb7a2fb1104' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b893089d-2652-11f0-0000-bfb7a2fb1104'/>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-bfb7a2fb1104' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-bfb7a2fb1104' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:320260f6-4cd2-11f0-0000-bfb7a2fb1104'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-bfb7a2fb1104' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -83,8 +83,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080836+02'00')
-/ModDate(D:20150429080836+02'00')
+/CreationDate(D:20150617075650+02'00')
+/ModDate(D:20150617075650+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -105,7 +105,7 @@ xref
0000001688 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<BF08B1403E1BA3F0129553CC4553C599><BF08B1403E1BA3F0129553CC4553C599>]
+/ID [<57FB2D0960370722BF988C715CE72130><57FB2D0960370722BF988C715CE72130>]
>>
startxref
3265
diff --git a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.html b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.html
index 01722db2..6154cb5b 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.html
@@ -54,15 +54,15 @@ p.roffit {
<p class="level0">CURLOPT_SEEKFUNCTION - user callback for seeking in input stream <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
/* These are the return codes for the seek callbacks */
&#35;define CURL_SEEKFUNC_OK 0
&#35;define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */
&#35;define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so
&nbsp; libcurl might try other means instead */
-
+&nbsp;
int seek_callback(void *userp, curl_off_t offset, int origin);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SEEKFUNCTION, seek_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.pdf
index de42c6f9..d781e723 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
new file mode 100644
index 00000000..116fdbe7
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
@@ -0,0 +1,46 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_SERVICE_NAME 3 "17 Jun 2015" "libcurl 7.43.0" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_SERVICE_NAME \- SPNEGO service name
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SERVICE_NAME, char *name);
+.SH DESCRIPTION
+Pass a char * as parameter to a string holding the \fIname\fP of the
+service. The default service name is "HTTP". This option allows you to
+change it.
+..SH DEFAULT
+See above
+.SH PROTOCOLS
+Most
+.SH EXAMPLE
+TODO
+.SH AVAILABILITY
+Added in 7.43.0
+.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_PROXY "(3), " CURLOPT_PROXYTYPE "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.html b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.html
new file mode 100644
index 00000000..3c6a495b
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html><head>
+<title>CURLOPT_SERVICE_NAME man page</title>
+<meta name="generator" content="roffit">
+<STYLE type="text/css">
+pre {
+ overflow: auto;
+ margin: 0;
+}
+
+P.level0, pre.level0 {
+ padding-left: 2em;
+}
+
+P.level1, pre.level1 {
+ padding-left: 4em;
+}
+
+P.level2, pre.level2 {
+ padding-left: 6em;
+}
+
+span.emphasis {
+ font-style: italic;
+}
+
+span.bold {
+ font-weight: bold;
+}
+
+span.manpage {
+ font-weight: bold;
+}
+
+h2.nroffsh {
+ background-color: #e0e0e0;
+}
+
+span.nroffip {
+ font-weight: bold;
+ font-size: 120%;
+ font-family: monospace;
+}
+
+p.roffit {
+ text-align: center;
+ font-size: 80%;
+}
+</STYLE>
+</head><body>
+
+<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
+<p class="level0">CURLOPT_SERVICE_NAME - SPNEGO service name <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
+<p class="level0">&#35;include &lt;curl/curl.h&gt;
+<p class="level0">CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SERVICE_NAME, char *name); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
+<p class="level0">Pass a char * as parameter to a string holding the <span Class="emphasis">name</span> of the service. The default service name is "HTTP". This option allows you to change it.
+<p class="level0">See above <a name="PROTOCOLS"></a><h2 class="nroffsh">PROTOCOLS</h2>
+<p class="level0">Most <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
+<p class="level0">TODO <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
+<p class="level0">Added in 7.43.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
+<p class="level0">Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
+<p class="level0"><a Class="manpage" href="./CURLOPT_PROXY.html">CURLOPT_PROXY</a>, <a Class="manpage" href="./CURLOPT_PROXYTYPE.html">CURLOPT_PROXYTYPE</a>, <span Class="manpage"> </span> <p class="roffit">
+ This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
+</body></html>
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.pdf b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.pdf
new file mode 100644
index 00000000..ace1f35d
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SHARE.pdf b/docs/libcurl/opts/CURLOPT_SHARE.pdf
index c3327b16..b7c94109 100644
--- a/docs/libcurl/opts/CURLOPT_SHARE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SHARE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.pdf b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.pdf
index 90dca74d..3064acdc 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.pdf
@@ -72,12 +72,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-a72fc39baf1d' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-a72fc39baf1d' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:36+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:36+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-a72fc39baf1d' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-a72fc39baf1d' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:50+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:50+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-a72fc39baf1d' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b893089d-2652-11f0-0000-a72fc39baf1d'/>
-<rdf:Description rdf:about='uuid:b893089d-2652-11f0-0000-a72fc39baf1d' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-a72fc39baf1d' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:320260f6-4cd2-11f0-0000-a72fc39baf1d'/>
+<rdf:Description rdf:about='uuid:320260f6-4cd2-11f0-0000-a72fc39baf1d' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -87,8 +87,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080836+02'00')
-/ModDate(D:20150429080836+02'00')
+/CreationDate(D:20150617075650+02'00')
+/ModDate(D:20150617075650+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -109,7 +109,7 @@ xref
0000001836 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<D31002E2524D84DA347C548C151476F8><D31002E2524D84DA347C548C151476F8>]
+/ID [<C35CB3DC2ED839BF391D1FEDB6853355><C35CB3DC2ED839BF391D1FEDB6853355>]
>>
startxref
3413
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.html b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.html
index 086f77b8..211e800b 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.html
@@ -54,22 +54,22 @@ p.roffit {
<p class="level0">CURLOPT_SOCKOPTFUNCTION - set callback for setting socket options <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
typedef enum {
&nbsp; CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */
&nbsp; CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */
&nbsp; CURLSOCKTYPE_LAST /* never use */
} curlsocktype;
-
+&nbsp;
&#35;define CURL_SOCKOPT_OK 0
&#35;define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return
&nbsp; CURLE_ABORTED_BY_CALLBACK */
&#35;define CURL_SOCKOPT_ALREADY_CONNECTED 2
-
+&nbsp;
int sockopt_callback(void *clientp,
&nbsp; curl_socket_t curlfd,
&nbsp; curlsocktype purpose);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKOPTFUNCTION, sockopt_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.pdf
index eb310745..2b48f7f7 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.pdf b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.pdf
index 6c20067c..9635b929 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.pdf
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.pdf b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.pdf
index 7253578f..1af45382 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.pdf b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.pdf
index 0eb96d45..42a48790 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html
index c8dce741..ee8d2f5f 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 - checksum of SSH server public key <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
&nbsp; char *md5);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdf b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdf
index b8b9ea89..dd5f5027 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.pdf b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.pdf
index 40545eca..d6b63a2a 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.html b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.html
index c763e2cd..3fe17c30 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_SSH_KEYFUNCTION - callback for known host matching logic <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
enum curl_khstat {
&nbsp; CURLKHSTAT_FINE_ADD_TO_FILE,
&nbsp; CURLKHSTAT_FINE,
@@ -64,13 +64,13 @@ enum curl_khstat {
&nbsp; otherwise the connection will be left intact
&nbsp; etc */
};
-
+&nbsp;
enum curl_khmatch {
&nbsp; CURLKHMATCH_OK, /* match */
&nbsp; CURLKHMATCH_MISMATCH, /* host found, key mismatch! */
&nbsp; CURLKHMATCH_MISSING, /* no matching host/key found */
};
-
+&nbsp;
struct curl_khkey {
&nbsp; const char *key; /* points to a zero-terminated string encoded with
&nbsp; base64 if len is zero, otherwise to the "raw"
@@ -78,13 +78,13 @@ struct curl_khkey {
&nbsp; size_t len;
&nbsp; enum curl_khtype keytype;
};
-
+&nbsp;
int ssh_keycallback(CURL *easy,
&nbsp; const struct curl_khkey *knownkey,
&nbsp; const struct curl_khkey *foundkey,
&nbsp; enum curl_khmatch,
&nbsp; void *clientp);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_KEYFUNCTION,
&nbsp; ssh_keycallback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.pdf
index 168ae0a4..432bd3e1 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.pdf b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.pdf
index 4f68bf90..9a7d79f5 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.pdf
@@ -72,12 +72,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b92b9f1d-2652-11f0-0000-97ccdacf2f0e' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:b92b9f1d-2652-11f0-0000-97ccdacf2f0e' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:37+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:37+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:329af776-4cd2-11f0-0000-97ccdacf2f0e' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:329af776-4cd2-11f0-0000-97ccdacf2f0e' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:51+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:51+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b92b9f1d-2652-11f0-0000-97ccdacf2f0e' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b92b9f1d-2652-11f0-0000-97ccdacf2f0e'/>
-<rdf:Description rdf:about='uuid:b92b9f1d-2652-11f0-0000-97ccdacf2f0e' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:329af776-4cd2-11f0-0000-97ccdacf2f0e' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:329af776-4cd2-11f0-0000-97ccdacf2f0e'/>
+<rdf:Description rdf:about='uuid:329af776-4cd2-11f0-0000-97ccdacf2f0e' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -87,8 +87,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080837+02'00')
-/ModDate(D:20150429080837+02'00')
+/CreationDate(D:20150617075651+02'00')
+/ModDate(D:20150617075651+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 15
@@ -109,7 +109,7 @@ xref
0000002028 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<851439D9E8670CAED69088B282A71C30><851439D9E8670CAED69088B282A71C30>]
+/ID [<36B931CC4C0034C8BAD1F606741C4F4A><36B931CC4C0034C8BAD1F606741C4F4A>]
>>
startxref
3605
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.html b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.html
index 2394b539..22f17215 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.html
+++ b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_SSH_PRIVATE_KEYFILE - set private key file for SSH auth <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_PRIVATE_KEYFILE,
&nbsp; char *filename);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.pdf b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.pdf
index 192c31cd..c80b14de 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.html b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.html
index a9da5fff..a9324570 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.html
+++ b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_SSH_PUBLIC_KEYFILE - set public key file for SSH auth <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSH_PUBLIC_KEYFILE,
&nbsp; char *filename);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.pdf b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.pdf
index 2f7fd6b9..32959577 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERT.pdf b/docs/libcurl/opts/CURLOPT_SSLCERT.pdf
index 0ef9f431..29a764e4 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERT.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLCERT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.pdf b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.pdf
index 5cdf66e0..c942f343 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE.pdf b/docs/libcurl/opts/CURLOPT_SSLENGINE.pdf
index dd3f275f..ee65196c 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.pdf b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.pdf
index cc4dcc8e..5503c131 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEY.pdf b/docs/libcurl/opts/CURLOPT_SSLKEY.pdf
index 69daf298..e13938aa 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEY.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLKEY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.pdf b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.pdf
index ea2f885e..fa926360 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSLVERSION.html b/docs/libcurl/opts/CURLOPT_SSLVERSION.html
index 503e67de..dedebc6c 100644
--- a/docs/libcurl/opts/CURLOPT_SSLVERSION.html
+++ b/docs/libcurl/opts/CURLOPT_SSLVERSION.html
@@ -78,10 +78,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
-
+&nbsp;
&nbsp; /* ask libcurl to use TLS version 1.0 or later */
&nbsp; curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_SSLVERSION.pdf b/docs/libcurl/opts/CURLOPT_SSLVERSION.pdf
index c44bbf69..25c15ed8 100644
--- a/docs/libcurl/opts/CURLOPT_SSLVERSION.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSLVERSION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.pdf b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.pdf
index 37a8d5ae..ca61c43d 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.pdf b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.pdf
index eee08f78..419ffa9c 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.html b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.html
index 0917efd7..add68193 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_SSL_CTX_FUNCTION - SSL context callback for OpenSSL or wolfSSL/CyaSSL <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode ssl_ctx_callback(CURL *curl, void *ssl_ctx, void *userptr);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_CTX_FUNCTION,
&nbsp; ssl_ctx_callback);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.pdf b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.pdf
index 939f7176..5e54ea4b 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.pdf b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.pdf
index 19c6f330..e55bd6e2 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.pdf b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.pdf
index 20c4241f..8b0dc31f 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.pdf b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.pdf
index e9091ca4..c8fa45bd 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.pdf b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.pdf
index 5e311335..547eb65e 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.html b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.html
index 279dcf5c..c19e2645 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.html
+++ b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_SSL_SESSIONID_CACHE - enable/disable use of the SSL session-ID cache <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_SESSIONID_CACHE,
&nbsp; long enabled);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.pdf b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.pdf
index 2beae0ce..acf58a8b 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.html b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.html
index 3b198db6..7ca3c50e 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.html
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.html
@@ -69,10 +69,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
-
+&nbsp;
&nbsp; /* Set the default value: strict name check please */
&nbsp; curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.pdf b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.pdf
index 649841d0..62c03998 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.html b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.html
index eb3a785f..b978b55c 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.html
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.html
@@ -66,10 +66,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
-
+&nbsp;
&nbsp; /* Set the default value: strict certificate check please */
&nbsp; curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.pdf b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.pdf
index 708f8add..49ae7862 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.pdf b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.pdf
index 4a27edc2..c8525a05 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.pdf
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.pdf
@@ -68,12 +68,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:ba5ccc1d-2652-11f0-0000-75a6345ca275' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
-<rdf:Description rdf:about='uuid:ba5ccc1d-2652-11f0-0000-75a6345ca275' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-04-29T08:08:39+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2015-04-29T08:08:39+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:33cc2476-4cd2-11f0-0000-75a6345ca275' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.06'/>
+<rdf:Description rdf:about='uuid:33cc2476-4cd2-11f0-0000-75a6345ca275' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2015-06-17T07:56:53+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2015-06-17T07:56:53+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.3</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:ba5ccc1d-2652-11f0-0000-75a6345ca275' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:ba5ccc1d-2652-11f0-0000-75a6345ca275'/>
-<rdf:Description rdf:about='uuid:ba5ccc1d-2652-11f0-0000-75a6345ca275' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:33cc2476-4cd2-11f0-0000-75a6345ca275' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:33cc2476-4cd2-11f0-0000-75a6345ca275'/>
+<rdf:Description rdf:about='uuid:33cc2476-4cd2-11f0-0000-75a6345ca275' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -83,8 +83,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.06)
-/CreationDate(D:20150429080839+02'00')
-/ModDate(D:20150429080839+02'00')
+/CreationDate(D:20150617075653+02'00')
+/ModDate(D:20150617075653+02'00')
/Creator(groff version 1.22.3)>>endobj
xref
0 14
@@ -104,7 +104,7 @@ xref
0000001942 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<F7C3E1440C8B1689483216145C08DABB><F7C3E1440C8B1689483216145C08DABB>]
+/ID [<19FDECD7795296B5264D49FC0FD23625><19FDECD7795296B5264D49FC0FD23625>]
>>
startxref
3519
diff --git a/docs/libcurl/opts/CURLOPT_STDERR.html b/docs/libcurl/opts/CURLOPT_STDERR.html
index 341bc9f6..52fcb4d9 100644
--- a/docs/libcurl/opts/CURLOPT_STDERR.html
+++ b/docs/libcurl/opts/CURLOPT_STDERR.html
@@ -63,7 +63,7 @@ FILE *filep = fopen("dump", "wb");
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
&nbsp; curl_easy_setopt(curl, CURLOPT_STDERR, filep);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_STDERR.pdf b/docs/libcurl/opts/CURLOPT_STDERR.pdf
index 651f587a..406bae17 100644
--- a/docs/libcurl/opts/CURLOPT_STDERR.pdf
+++ b/docs/libcurl/opts/CURLOPT_STDERR.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
index 5ddadd09..941cc488 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
@@ -50,7 +50,7 @@ if(curl) {
curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
/* interval time between keep-alive probes: 60 seconds */
- curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
+ curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.html b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.html
index 31dddb43..0d088783 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.html
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.html
@@ -61,16 +61,16 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* enable TCP keep-alive for this transfer */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
-
+&nbsp;
&nbsp; /* keep-alive idle time to 120 seconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
-
+&nbsp;
&nbsp; /* interval time between keep-alive probes: 60 seconds */
-&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
-
+&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.pdf b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.pdf
index 5a19069f..8ef528f8 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.pdf
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
index 843f6505..d60a3dff 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
@@ -48,7 +48,7 @@ if(curl) {
curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
/* interval time between keep-alive probes: 60 seconds */
- curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
+ curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.html b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.html
index be8d7956..d0018825 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.html
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.html
@@ -61,16 +61,16 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* enable TCP keep-alive for this transfer */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
-
+&nbsp;
&nbsp; /* set keep-alive idle time to 120 seconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
-
+&nbsp;
&nbsp; /* interval time between keep-alive probes: 60 seconds */
-&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
-
+&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.pdf b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.pdf
index 03349949..ba4a9c75 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.pdf
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
index ee4d5354..42bc0b4e 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
@@ -46,7 +46,7 @@ if(curl) {
curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
/* interval time between keep-alive probes: 60 seconds */
- curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
+ curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.html b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.html
index 29bb812d..712bc38a 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.html
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.html
@@ -61,16 +61,16 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* enable TCP keep-alive for this transfer */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
-
+&nbsp;
&nbsp; /* keep-alive idle time to 120 seconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L);
-
+&nbsp;
&nbsp; /* interval time between keep-alive probes: 60 seconds */
-&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 60L);
-
+&nbsp; curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L);
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.pdf b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.pdf
index a0917c8b..43df65c7 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.pdf
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.pdf b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.pdf
index 54396abb..5ae73cfb 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.pdf
+++ b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.pdf b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.pdf
index f9ff8953..0930130b 100644
--- a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.pdf
+++ b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.pdf b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.pdf
index a737dfad..8e448296 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.pdf
+++ b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TIMECONDITION.pdf b/docs/libcurl/opts/CURLOPT_TIMECONDITION.pdf
index eabc4796..f20e4ad1 100644
--- a/docs/libcurl/opts/CURLOPT_TIMECONDITION.pdf
+++ b/docs/libcurl/opts/CURLOPT_TIMECONDITION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT.html b/docs/libcurl/opts/CURLOPT_TIMEOUT.html
index 02011ae4..a8bcfa66 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT.html
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT.html
@@ -64,10 +64,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* complete within 20 seconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT.pdf b/docs/libcurl/opts/CURLOPT_TIMEOUT.pdf
index fce28f61..23a69519 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT.pdf
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.html b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.html
index 56f97102..0063aa4b 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.html
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.html
@@ -65,10 +65,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* complete within 20000 milliseconds */
&nbsp; curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, 20000L);
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.pdf b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.pdf
index b0ba8818..5407cb5d 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.pdf
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE.pdf b/docs/libcurl/opts/CURLOPT_TIMEVALUE.pdf
index 952367c0..a05d79d9 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE.pdf
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.pdf b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.pdf
index b085a742..700caca3 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.pdf
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.pdf b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.pdf
index 0f32a850..1dd4219b 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.pdf
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.pdf b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.pdf
index 4e93fa57..b036cd14 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.pdf
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.pdf b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.pdf
index bb3ac724..6634389d 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.pdf
+++ b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.pdf b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.pdf
index 6cb3918f..7b044b50 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.pdf
+++ b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.pdf b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.pdf
index ac9bf459..9c24f067 100644
--- a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.pdf
+++ b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.html b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.html
index 432cd679..1e04eb00 100644
--- a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.html
+++ b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_UNRESTRICTED_AUTH - send credentials to other hosts too <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UNRESTRICTED_AUTH,
&nbsp; long goahead);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.pdf b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.pdf
index c856415d..2436b4ab 100644
--- a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.pdf
+++ b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD.html b/docs/libcurl/opts/CURLOPT_UPLOAD.html
index 77507db0..afbf48a2 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD.html
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD.html
@@ -64,19 +64,19 @@ CURL *curl = curl_easy_init();
if(curl) {
&nbsp; /* we want to use our own read function */
&nbsp; curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
-
+&nbsp;
&nbsp; /* enable uploading */
&nbsp; curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-
+&nbsp;
&nbsp; /* specify target */
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com/dir/to/newfile">ftp://example.com/dir/to/newfile</a>");
-
+&nbsp;
&nbsp; /* now specify which pointer to pass to our callback */
&nbsp; curl_easy_setopt(curl, CURLOPT_READDATA, hd_src);
-
+&nbsp;
&nbsp; /* Set the size of the file to upload */
&nbsp; curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)fsize);
-
+&nbsp;
&nbsp; /* Now run off and do what you've been told! */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD.pdf b/docs/libcurl/opts/CURLOPT_UPLOAD.pdf
index 86642071..347b4b9f 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD.pdf
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_URL.html b/docs/libcurl/opts/CURLOPT_URL.html
index ad0013c6..3bb2e190 100644
--- a/docs/libcurl/opts/CURLOPT_URL.html
+++ b/docs/libcurl/opts/CURLOPT_URL.html
@@ -153,7 +153,7 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_URL.pdf b/docs/libcurl/opts/CURLOPT_URL.pdf
index 9b8ed5c2..45f98cdf 100644
--- a/docs/libcurl/opts/CURLOPT_URL.pdf
+++ b/docs/libcurl/opts/CURLOPT_URL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_USERAGENT.html b/docs/libcurl/opts/CURLOPT_USERAGENT.html
index 0eb55960..71447441 100644
--- a/docs/libcurl/opts/CURLOPT_USERAGENT.html
+++ b/docs/libcurl/opts/CURLOPT_USERAGENT.html
@@ -61,9 +61,9 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; curl_easy_setopt(curl, CURLOPT_USERAGENT, "Dark Secret Ninja/1.0");
-
+&nbsp;
&nbsp; curl_easy_perform(curl);
}
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_USERAGENT.pdf b/docs/libcurl/opts/CURLOPT_USERAGENT.pdf
index 01de5342..0b92e962 100644
--- a/docs/libcurl/opts/CURLOPT_USERAGENT.pdf
+++ b/docs/libcurl/opts/CURLOPT_USERAGENT.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_USERNAME.html b/docs/libcurl/opts/CURLOPT_USERNAME.html
index da6863da..00365650 100644
--- a/docs/libcurl/opts/CURLOPT_USERNAME.html
+++ b/docs/libcurl/opts/CURLOPT_USERNAME.html
@@ -54,7 +54,7 @@ p.roffit {
<p class="level0">CURLOPT_USERNAME - user name to use in authentication <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_USERNAME,
&nbsp; char *username);
</pre>
diff --git a/docs/libcurl/opts/CURLOPT_USERNAME.pdf b/docs/libcurl/opts/CURLOPT_USERNAME.pdf
index 8b8df732..4612a131 100644
--- a/docs/libcurl/opts/CURLOPT_USERNAME.pdf
+++ b/docs/libcurl/opts/CURLOPT_USERNAME.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_USERPWD.pdf b/docs/libcurl/opts/CURLOPT_USERPWD.pdf
index 81e9b823..d92bb67b 100644
--- a/docs/libcurl/opts/CURLOPT_USERPWD.pdf
+++ b/docs/libcurl/opts/CURLOPT_USERPWD.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_USE_SSL.html b/docs/libcurl/opts/CURLOPT_USE_SSL.html
index 6dcf53ed..5f849dc7 100644
--- a/docs/libcurl/opts/CURLOPT_USE_SSL.html
+++ b/docs/libcurl/opts/CURLOPT_USE_SSL.html
@@ -71,10 +71,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="ftp://example.com/dir/file.ext">ftp://example.com/dir/file.ext</a>");
-
+&nbsp;
&nbsp; /* require use of SSL for this, or fail */
&nbsp; curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_USE_SSL.pdf b/docs/libcurl/opts/CURLOPT_USE_SSL.pdf
index 5963c434..a98b4e89 100644
--- a/docs/libcurl/opts/CURLOPT_USE_SSL.pdf
+++ b/docs/libcurl/opts/CURLOPT_USE_SSL.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_VERBOSE.html b/docs/libcurl/opts/CURLOPT_VERBOSE.html
index 08e91d60..48bdf3d0 100644
--- a/docs/libcurl/opts/CURLOPT_VERBOSE.html
+++ b/docs/libcurl/opts/CURLOPT_VERBOSE.html
@@ -63,10 +63,10 @@ p.roffit {
CURL *curl = curl_easy_init();
if(curl) {
&nbsp; curl_easy_setopt(curl, CURLOPT_URL, "<a href="http://example.com">http://example.com</a>");
-
+&nbsp;
&nbsp; /* ask libcurl to show us the verbose output */
&nbsp; curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
-
+&nbsp;
&nbsp; /* Perform the request */
&nbsp; curl_easy_perform(curl);
}
diff --git a/docs/libcurl/opts/CURLOPT_VERBOSE.pdf b/docs/libcurl/opts/CURLOPT_VERBOSE.pdf
index 0ab7e988..aa767099 100644
--- a/docs/libcurl/opts/CURLOPT_VERBOSE.pdf
+++ b/docs/libcurl/opts/CURLOPT_VERBOSE.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.pdf b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.pdf
index 2b51812e..52bab4db 100644
--- a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.pdf
+++ b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_WRITEDATA.pdf b/docs/libcurl/opts/CURLOPT_WRITEDATA.pdf
index d7d07506..764e1ace 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEDATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_WRITEDATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.html b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.html
index fced4c44..a54dcd41 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.html
+++ b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.html
@@ -54,9 +54,9 @@ p.roffit {
<p class="level0">CURLOPT_WRITEFUNCTION - set callback for writing received data <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><pre class="level0">
&#35;include &lt;curl/curl.h&gt;
-
+&nbsp;
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);
-
+&nbsp;
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WRITEFUNCTION, write_callback);
</pre>
<a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
diff --git a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.pdf
index a67cdf59..e0c238d5 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFODATA.pdf b/docs/libcurl/opts/CURLOPT_XFERINFODATA.pdf
index 89efa6ed..239bd62f 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFODATA.pdf
+++ b/docs/libcurl/opts/CURLOPT_XFERINFODATA.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.pdf b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.pdf
index 4c9d78b0..e3e82f91 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.pdf
+++ b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.pdf
Binary files differ
diff --git a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.pdf b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.pdf
index b17a9c11..2a6b7564 100644
--- a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.pdf
+++ b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.pdf
Binary files differ
diff --git a/docs/libcurl/opts/Makefile.am b/docs/libcurl/opts/Makefile.am
index c4332e9e..5517811d 100644
--- a/docs/libcurl/opts/Makefile.am
+++ b/docs/libcurl/opts/Makefile.am
@@ -66,9 +66,9 @@ man_MANS = CURLOPT_ACCEPT_ENCODING.3 CURLOPT_ACCEPTTIMEOUT_MS.3 \
CURLOPT_NEW_DIRECTORY_PERMS.3 CURLOPT_NEW_FILE_PERMS.3 \
CURLOPT_NOBODY.3 CURLOPT_NOPROGRESS.3 CURLOPT_NOPROXY.3 \
CURLOPT_NOSIGNAL.3 CURLOPT_OPENSOCKETDATA.3 \
- CURLOPT_OPENSOCKETFUNCTION.3 CURLOPT_PASSWORD.3 \
- CURLOPT_PINNEDPUBLICKEY.3 CURLOPT_PORT.3 \
- CURLOPT_POST.3 CURLOPT_POSTFIELDS.3 CURLOPT_POSTFIELDSIZE.3 \
+ CURLOPT_OPENSOCKETFUNCTION.3 CURLOPT_PASSWORD.3 \
+ CURLOPT_PINNEDPUBLICKEY.3 CURLOPT_PORT.3 CURLOPT_POST.3 \
+ CURLOPT_POSTFIELDS.3 CURLOPT_POSTFIELDSIZE.3 \
CURLOPT_POSTFIELDSIZE_LARGE.3 CURLOPT_POSTQUOTE.3 CURLOPT_POSTREDIR.3 \
CURLOPT_PREQUOTE.3 CURLOPT_PRIVATE.3 CURLOPT_PROGRESSDATA.3 \
CURLOPT_PROGRESSFUNCTION.3 CURLOPT_PROTOCOLS.3 CURLOPT_PROXY.3 \
@@ -113,7 +113,8 @@ man_MANS = CURLOPT_ACCEPT_ENCODING.3 CURLOPT_ACCEPTTIMEOUT_MS.3 \
CURLMOPT_PIPELINING_SERVER_BL.3 CURLMOPT_PIPELINING_SITE_BL.3 \
CURLMOPT_SOCKETDATA.3 CURLMOPT_SOCKETFUNCTION.3 CURLMOPT_TIMERDATA.3 \
CURLMOPT_TIMERFUNCTION.3 CURLOPT_UNIX_SOCKET_PATH.3 \
- CURLOPT_PATH_AS_IS.3
+ CURLOPT_PATH_AS_IS.3 CURLOPT_PROXY_SERVICE_NAME.3 \
+ CURLOPT_SERVICE_NAME.3 CURLOPT_PIPEWAIT.3
HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLOPT_ADDRESS_SCOPE.html CURLOPT_APPEND.html \
@@ -169,8 +170,7 @@ HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLOPT_NOPROGRESS.html CURLOPT_NOPROXY.html CURLOPT_NOSIGNAL.html \
CURLOPT_OPENSOCKETDATA.html CURLOPT_OPENSOCKETFUNCTION.html \
CURLOPT_PASSWORD.html CURLOPT_PINNEDPUBLICKEY.html CURLOPT_PORT.html \
- CURLOPT_POST.html \
- CURLOPT_POSTFIELDS.html CURLOPT_POSTFIELDSIZE.html \
+ CURLOPT_POST.html CURLOPT_POSTFIELDS.html CURLOPT_POSTFIELDSIZE.html \
CURLOPT_POSTFIELDSIZE_LARGE.html CURLOPT_POSTQUOTE.html \
CURLOPT_POSTREDIR.html CURLOPT_PREQUOTE.html CURLOPT_PRIVATE.html \
CURLOPT_PROGRESSDATA.html CURLOPT_PROGRESSFUNCTION.html \
@@ -220,7 +220,9 @@ HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLMOPT_PIPELINING_SERVER_BL.html CURLMOPT_PIPELINING_SITE_BL.html \
CURLMOPT_SOCKETDATA.html CURLMOPT_SOCKETFUNCTION.html \
CURLMOPT_TIMERDATA.html CURLMOPT_TIMERFUNCTION.html \
- CURLOPT_UNIX_SOCKET_PATH.html CURLOPT_PATH_AS_IS.html
+ CURLOPT_UNIX_SOCKET_PATH.html CURLOPT_PATH_AS_IS.html \
+ CURLOPT_PROXY_SERVICE_NAME.html CURLOPT_SERVICE_NAME.html \
+ CURLOPT_PIPEWAIT.html
PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLOPT_ADDRESS_SCOPE.pdf CURLOPT_APPEND.pdf CURLOPT_AUTOREFERER.pdf \
@@ -272,9 +274,9 @@ PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLOPT_NEW_DIRECTORY_PERMS.pdf CURLOPT_NEW_FILE_PERMS.pdf \
CURLOPT_NOBODY.pdf CURLOPT_NOPROGRESS.pdf CURLOPT_NOPROXY.pdf \
CURLOPT_NOSIGNAL.pdf CURLOPT_OPENSOCKETDATA.pdf \
- CURLOPT_OPENSOCKETFUNCTION.pdf CURLOPT_PASSWORD.pdf \
- CURLOPT_PINNEDPUBLICKEY.pdf CURLOPT_PORT.pdf \
- CURLOPT_POST.pdf CURLOPT_POSTFIELDS.pdf CURLOPT_POSTFIELDSIZE.pdf \
+ CURLOPT_OPENSOCKETFUNCTION.pdf CURLOPT_PASSWORD.pdf \
+ CURLOPT_PINNEDPUBLICKEY.pdf CURLOPT_PORT.pdf CURLOPT_POST.pdf \
+ CURLOPT_POSTFIELDS.pdf CURLOPT_POSTFIELDSIZE.pdf \
CURLOPT_POSTFIELDSIZE_LARGE.pdf CURLOPT_POSTQUOTE.pdf \
CURLOPT_POSTREDIR.pdf CURLOPT_PREQUOTE.pdf CURLOPT_PRIVATE.pdf \
CURLOPT_PROGRESSDATA.pdf CURLOPT_PROGRESSFUNCTION.pdf \
@@ -324,7 +326,9 @@ PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLMOPT_PIPELINING_SERVER_BL.pdf CURLMOPT_PIPELINING_SITE_BL.pdf \
CURLMOPT_SOCKETDATA.pdf CURLMOPT_SOCKETFUNCTION.pdf \
CURLMOPT_TIMERDATA.pdf CURLMOPT_TIMERFUNCTION.pdf \
- CURLOPT_UNIX_SOCKET_PATH.pdf CURLOPT_PATH_AS_IS.pdf
+ CURLOPT_UNIX_SOCKET_PATH.pdf CURLOPT_PATH_AS_IS.pdf \
+ CURLOPT_PROXY_SERVICE_NAME.pdf CURLOPT_SERVICE_NAME.pdf \
+ CURLOPT_PIPEWAIT.pdf
CLEANFILES = $(HTMLPAGES) $(PDFPAGES)
diff --git a/docs/libcurl/opts/Makefile.in b/docs/libcurl/opts/Makefile.in
index ceaa1bb4..3ca509bb 100644
--- a/docs/libcurl/opts/Makefile.in
+++ b/docs/libcurl/opts/Makefile.in
@@ -100,8 +100,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs/libcurl/opts
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -122,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -411,9 +410,9 @@ man_MANS = CURLOPT_ACCEPT_ENCODING.3 CURLOPT_ACCEPTTIMEOUT_MS.3 \
CURLOPT_NEW_DIRECTORY_PERMS.3 CURLOPT_NEW_FILE_PERMS.3 \
CURLOPT_NOBODY.3 CURLOPT_NOPROGRESS.3 CURLOPT_NOPROXY.3 \
CURLOPT_NOSIGNAL.3 CURLOPT_OPENSOCKETDATA.3 \
- CURLOPT_OPENSOCKETFUNCTION.3 CURLOPT_PASSWORD.3 \
- CURLOPT_PINNEDPUBLICKEY.3 CURLOPT_PORT.3 \
- CURLOPT_POST.3 CURLOPT_POSTFIELDS.3 CURLOPT_POSTFIELDSIZE.3 \
+ CURLOPT_OPENSOCKETFUNCTION.3 CURLOPT_PASSWORD.3 \
+ CURLOPT_PINNEDPUBLICKEY.3 CURLOPT_PORT.3 CURLOPT_POST.3 \
+ CURLOPT_POSTFIELDS.3 CURLOPT_POSTFIELDSIZE.3 \
CURLOPT_POSTFIELDSIZE_LARGE.3 CURLOPT_POSTQUOTE.3 CURLOPT_POSTREDIR.3 \
CURLOPT_PREQUOTE.3 CURLOPT_PRIVATE.3 CURLOPT_PROGRESSDATA.3 \
CURLOPT_PROGRESSFUNCTION.3 CURLOPT_PROTOCOLS.3 CURLOPT_PROXY.3 \
@@ -458,7 +457,8 @@ man_MANS = CURLOPT_ACCEPT_ENCODING.3 CURLOPT_ACCEPTTIMEOUT_MS.3 \
CURLMOPT_PIPELINING_SERVER_BL.3 CURLMOPT_PIPELINING_SITE_BL.3 \
CURLMOPT_SOCKETDATA.3 CURLMOPT_SOCKETFUNCTION.3 CURLMOPT_TIMERDATA.3 \
CURLMOPT_TIMERFUNCTION.3 CURLOPT_UNIX_SOCKET_PATH.3 \
- CURLOPT_PATH_AS_IS.3
+ CURLOPT_PATH_AS_IS.3 CURLOPT_PROXY_SERVICE_NAME.3 \
+ CURLOPT_SERVICE_NAME.3 CURLOPT_PIPEWAIT.3
HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLOPT_ADDRESS_SCOPE.html CURLOPT_APPEND.html \
@@ -514,8 +514,7 @@ HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLOPT_NOPROGRESS.html CURLOPT_NOPROXY.html CURLOPT_NOSIGNAL.html \
CURLOPT_OPENSOCKETDATA.html CURLOPT_OPENSOCKETFUNCTION.html \
CURLOPT_PASSWORD.html CURLOPT_PINNEDPUBLICKEY.html CURLOPT_PORT.html \
- CURLOPT_POST.html \
- CURLOPT_POSTFIELDS.html CURLOPT_POSTFIELDSIZE.html \
+ CURLOPT_POST.html CURLOPT_POSTFIELDS.html CURLOPT_POSTFIELDSIZE.html \
CURLOPT_POSTFIELDSIZE_LARGE.html CURLOPT_POSTQUOTE.html \
CURLOPT_POSTREDIR.html CURLOPT_PREQUOTE.html CURLOPT_PRIVATE.html \
CURLOPT_PROGRESSDATA.html CURLOPT_PROGRESSFUNCTION.html \
@@ -565,7 +564,9 @@ HTMLPAGES = CURLOPT_ACCEPT_ENCODING.html CURLOPT_ACCEPTTIMEOUT_MS.html \
CURLMOPT_PIPELINING_SERVER_BL.html CURLMOPT_PIPELINING_SITE_BL.html \
CURLMOPT_SOCKETDATA.html CURLMOPT_SOCKETFUNCTION.html \
CURLMOPT_TIMERDATA.html CURLMOPT_TIMERFUNCTION.html \
- CURLOPT_UNIX_SOCKET_PATH.html CURLOPT_PATH_AS_IS.html
+ CURLOPT_UNIX_SOCKET_PATH.html CURLOPT_PATH_AS_IS.html \
+ CURLOPT_PROXY_SERVICE_NAME.html CURLOPT_SERVICE_NAME.html \
+ CURLOPT_PIPEWAIT.html
PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLOPT_ADDRESS_SCOPE.pdf CURLOPT_APPEND.pdf CURLOPT_AUTOREFERER.pdf \
@@ -617,9 +618,9 @@ PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLOPT_NEW_DIRECTORY_PERMS.pdf CURLOPT_NEW_FILE_PERMS.pdf \
CURLOPT_NOBODY.pdf CURLOPT_NOPROGRESS.pdf CURLOPT_NOPROXY.pdf \
CURLOPT_NOSIGNAL.pdf CURLOPT_OPENSOCKETDATA.pdf \
- CURLOPT_OPENSOCKETFUNCTION.pdf CURLOPT_PASSWORD.pdf \
- CURLOPT_PINNEDPUBLICKEY.pdf CURLOPT_PORT.pdf \
- CURLOPT_POST.pdf CURLOPT_POSTFIELDS.pdf CURLOPT_POSTFIELDSIZE.pdf \
+ CURLOPT_OPENSOCKETFUNCTION.pdf CURLOPT_PASSWORD.pdf \
+ CURLOPT_PINNEDPUBLICKEY.pdf CURLOPT_PORT.pdf CURLOPT_POST.pdf \
+ CURLOPT_POSTFIELDS.pdf CURLOPT_POSTFIELDSIZE.pdf \
CURLOPT_POSTFIELDSIZE_LARGE.pdf CURLOPT_POSTQUOTE.pdf \
CURLOPT_POSTREDIR.pdf CURLOPT_PREQUOTE.pdf CURLOPT_PRIVATE.pdf \
CURLOPT_PROGRESSDATA.pdf CURLOPT_PROGRESSFUNCTION.pdf \
@@ -669,7 +670,9 @@ PDFPAGES = CURLOPT_ACCEPT_ENCODING.pdf CURLOPT_ACCEPTTIMEOUT_MS.pdf \
CURLMOPT_PIPELINING_SERVER_BL.pdf CURLMOPT_PIPELINING_SITE_BL.pdf \
CURLMOPT_SOCKETDATA.pdf CURLMOPT_SOCKETFUNCTION.pdf \
CURLMOPT_TIMERDATA.pdf CURLMOPT_TIMERFUNCTION.pdf \
- CURLOPT_UNIX_SOCKET_PATH.pdf CURLOPT_PATH_AS_IS.pdf
+ CURLOPT_UNIX_SOCKET_PATH.pdf CURLOPT_PATH_AS_IS.pdf \
+ CURLOPT_PROXY_SERVICE_NAME.pdf CURLOPT_SERVICE_NAME.pdf \
+ CURLOPT_PIPEWAIT.pdf
CLEANFILES = $(HTMLPAGES) $(PDFPAGES)
EXTRA_DIST = $(man_MANS) $(HTMLPAGES) $(PDFPAGES)
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index 1ed3c212..8299a517 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -433,6 +433,7 @@ CURLOPT_PASSWORD 7.19.1
CURLOPT_PASV_HOST 7.12.1 7.16.0 7.15.5
CURLOPT_PATH_AS_IS 7.42.0
CURLOPT_PINNEDPUBLICKEY 7.39.0
+CURLOPT_PIPEWAIT 7.43.0
CURLOPT_PORT 7.1
CURLOPT_POST 7.1
CURLOPT_POST301 7.17.1 7.19.1
@@ -454,6 +455,7 @@ CURLOPT_PROXYPORT 7.1
CURLOPT_PROXYTYPE 7.10
CURLOPT_PROXYUSERNAME 7.19.1
CURLOPT_PROXYUSERPWD 7.1
+CURLOPT_PROXY_SERVICE_NAME 7.43.0
CURLOPT_PROXY_TRANSFER_MODE 7.18.0
CURLOPT_PUT 7.1
CURLOPT_QUOTE 7.1
@@ -477,6 +479,7 @@ CURLOPT_SASL_IR 7.31.0
CURLOPT_SEEKDATA 7.18.0
CURLOPT_SEEKFUNCTION 7.18.0
CURLOPT_SERVER_RESPONSE_TIMEOUT 7.20.0
+CURLOPT_SERVICE_NAME 7.43.0
CURLOPT_SHARE 7.10
CURLOPT_SOCKOPTDATA 7.16.0
CURLOPT_SOCKOPTFUNCTION 7.16.0
@@ -556,6 +559,9 @@ CURLPAUSE_RECV 7.18.0
CURLPAUSE_RECV_CONT 7.18.0
CURLPAUSE_SEND 7.18.0
CURLPAUSE_SEND_CONT 7.18.0
+CURLPIPE_HTTP1 7.43.0
+CURLPIPE_MULTIPLEX 7.43.0
+CURLPIPE_NOTHING 7.43.0
CURLPROTO_ALL 7.19.4
CURLPROTO_DICT 7.19.4
CURLPROTO_FILE 7.19.4
@@ -665,6 +671,7 @@ CURL_GLOBAL_WIN32 7.8.1
CURL_HTTP_VERSION_1_0 7.9.1
CURL_HTTP_VERSION_1_1 7.9.1
CURL_HTTP_VERSION_2_0 7.33.0
+CURL_HTTP_VERSION_2 7.43.0
CURL_HTTP_VERSION_NONE 7.9.1
CURL_IPRESOLVE_V4 7.10.8
CURL_IPRESOLVE_V6 7.10.8
diff --git a/docs/libcurl/symbols.pl b/docs/libcurl/symbols.pl
index 9503ebcc..a7b76e23 100755
--- a/docs/libcurl/symbols.pl
+++ b/docs/libcurl/symbols.pl
@@ -24,7 +24,7 @@
# Experience has shown that the symbols-in-versions file is very useful to
# applications that want to build with a wide range of libcurl versions.
# It is however easy to get it wrong and the source gets a bit messy with all
-# the fixed numerical comparisions.
+# the fixed numerical comparisons.
#
# The point of this script is to provide an easy-to-use macro for libcurl-
# using applications to do preprocessor checks for specific libcurl defines,
diff --git a/docs/mk-ca-bundle.html b/docs/mk-ca-bundle.html
index 9fcc61e5..89b9b121 100644
--- a/docs/mk-ca-bundle.html
+++ b/docs/mk-ca-bundle.html
@@ -75,6 +75,7 @@ p.roffit {
<p class="level1">Valid purposes are:
<p class="level2">ALL, DIGITAL_SIGNATURE, NON_REPUDIATION, KEY_ENCIPHERMENT, DATA_ENCIPHERMENT, KEY_AGREEMENT, KEY_CERT_SIGN, CRL_SIGN, SERVER_AUTH (default), CLIENT_AUTH, CODE_SIGNING, EMAIL_PROTECTION, IPSEC_END_SYSTEM, IPSEC_TUNNEL, IPSEC_USER, TIME_STAMPING, STEP_UP_APPROVED
<p class="level1">
+<p class="level0"><a name=""></a><span class="nroffip"></span>
<p class="level1">Valid trust levels are:
<p class="level2">ALL, TRUSTED_DELEGATOR (default), NOT_TRUSTED, MUST_VERIFY_TRUST, TRUSTED
<p class="level1">
diff --git a/docs/mk-ca-bundle.pdf b/docs/mk-ca-bundle.pdf
index 5e2d11c6..f8c444f3 100644
--- a/docs/mk-ca-bundle.pdf
+++ b/docs/mk-ca-bundle.pdf
Binary files differ
diff --git a/include/Makefile.in b/include/Makefile.in
index 7481c47f..ec29d93d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs README
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/include/curl/Makefile.in b/include/curl/Makefile.in
index fa07d325..880e60b7 100644
--- a/include/curl/Makefile.in
+++ b/include/curl/Makefile.in
@@ -79,8 +79,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = include/curl
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(srcdir)/curlbuild.h.in $(top_srcdir)/mkinstalldirs \
- $(pkginclude_HEADERS)
+ $(srcdir)/curlbuild.h.in $(pkginclude_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -101,7 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h curlbuild.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
diff --git a/include/curl/curl.h b/include/curl/curl.h
index ae1b0e4d..eab2f6e9 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -1632,6 +1632,15 @@ typedef enum {
/* Do not squash dot-dot sequences */
CINIT(PATH_AS_IS, LONG, 234),
+ /* Proxy Service Name */
+ CINIT(PROXY_SERVICE_NAME, OBJECTPOINT, 235),
+
+ /* Service Name */
+ CINIT(SERVICE_NAME, OBJECTPOINT, 236),
+
+ /* Wait/don't wait for pipe/mutex to clarify */
+ CINIT(PIPEWAIT, LONG, 237),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
@@ -1686,6 +1695,11 @@ enum {
CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
};
+/* Convenience definition simple because the name of the version is HTTP/2 and
+ not 2.0. The 2_0 version of the enum name was set while the version was
+ still planned to be 2.0 and we stick to it for compatibility. */
+#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0
+
/*
* Public API enums for RTSP requests
*/
diff --git a/include/curl/curlver.h b/include/curl/curlver.h
index 7976c1fc..f7075bf2 100644
--- a/include/curl/curlver.h
+++ b/include/curl/curlver.h
@@ -30,13 +30,13 @@
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.42.1"
+#define LIBCURL_VERSION "7.43.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 42
-#define LIBCURL_VERSION_PATCH 1
+#define LIBCURL_VERSION_MINOR 43
+#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -52,8 +52,12 @@
This 6-digit (24 bits) hexadecimal number does not show pre-release number,
and it is always a greater number in a more recent release. It makes
comparisons with greater than and less than work.
+
+ Note: This define is the full hex number and _does not_ use the
+ CURL_VERSION_BITS() macro since curl's own configure script greps for it
+ and needs it to contain the full number.
*/
-#define LIBCURL_VERSION_NUM 0x072a01
+#define LIBCURL_VERSION_NUM 0x072b00
/*
* This is the date and time when the full source package was created. The
@@ -64,6 +68,10 @@
*
* "Mon Feb 12 11:35:33 UTC 2007"
*/
-#define LIBCURL_TIMESTAMP "Wed Apr 29 06:07:13 UTC 2015"
+#define LIBCURL_TIMESTAMP "Wed Jun 17 05:56:00 UTC 2015"
+
+#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z)
+#define CURL_AT_LEAST_VERSION(x,y,z) \
+ (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
#endif /* __CURL_CURLVER_H */
diff --git a/include/curl/multi.h b/include/curl/multi.h
index 3c4acb0f..0d859f8f 100644
--- a/include/curl/multi.h
+++ b/include/curl/multi.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -74,6 +74,11 @@ typedef enum {
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
+/* bitmask bits for CURLMOPT_PIPELINING */
+#define CURLPIPE_NOTHING 0L
+#define CURLPIPE_HTTP1 1L
+#define CURLPIPE_MULTIPLEX 2L
+
typedef enum {
CURLMSG_NONE, /* first, not used */
CURLMSG_DONE, /* This easy handle has completed. 'result' contains
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index 69d41a20..13fb0fa9 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -270,6 +270,8 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist,
(option) == CURLOPT_DNS_LOCAL_IP4 || \
(option) == CURLOPT_DNS_LOCAL_IP6 || \
(option) == CURLOPT_LOGIN_OPTIONS || \
+ (option) == CURLOPT_PROXY_SERVICE_NAME || \
+ (option) == CURLOPT_SERVICE_NAME || \
0)
/* evaluates to true if option takes a curl_write_callback argument */
diff --git a/lib/Makefile.Watcom b/lib/Makefile.Watcom
index 14f5ac84..0b7ba59c 100644
--- a/lib/Makefile.Watcom
+++ b/lib/Makefile.Watcom
@@ -101,7 +101,7 @@ ZLIB_ROOT = ../../zlib-1.2.8
!ifdef %libssh2_root
LIBSSH2_ROOT = $(%libssh2_root)
!else
-LIBSSH2_ROOT = ../../libssh2-1.4.3
+LIBSSH2_ROOT = ../../libssh2-1.5.0
!endif
!ifdef %librtmp_root
@@ -113,7 +113,7 @@ LIBRTMP_ROOT = ../../rtmpdump-2.3
!ifdef %openssl_root
OPENSSL_ROOT = $(%openssl_root)
!else
-OPENSSL_ROOT = ../../openssl-0.9.8zc
+OPENSSL_ROOT = ../../openssl-1.0.2a
!endif
!ifdef %ares_root
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 248a6d99..a2c3dc56 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -21,10 +21,6 @@
###########################################################################
AUTOMAKE_OPTIONS = foreign nostdinc
-DOCS = README.encoding README.memoryleak README.ares README.curlx \
- README.hostip README.multi_socket README.httpauth README.pipelining \
- README.curl_off_t README.pingpong
-
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 config-win32.h \
@@ -32,7 +28,7 @@ EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 config-win32.h \
makefile.dj config-dos.h libcurl.plist libcurl.rc config-amigaos.h \
makefile.amiga Makefile.netware nwlib.c nwos.c config-win32ce.h \
config-os400.h setup-os400.h config-symbian.h Makefile.Watcom \
- config-tpf.h $(DOCS) mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
+ config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
firefox-db2pem.sh config-vxworks.h Makefile.vxworks checksrc.pl \
objnames-test08.sh objnames-test10.sh objnames.inc checksrc.whitelist
diff --git a/lib/Makefile.b32 b/lib/Makefile.b32
index 05657057..37c26487 100644
--- a/lib/Makefile.b32
+++ b/lib/Makefile.b32
@@ -27,7 +27,7 @@ ZLIB_PATH = ..\..\zlib-1.2.8
# Edit the path below to point to the base of your OpenSSL package.
!ifndef OPENSSL_PATH
-OPENSSL_PATH = ..\..\openssl-0.9.8zc
+OPENSSL_PATH = ..\..\openssl-1.0.2a
!endif
# Set libcurl static lib, dll and import lib
diff --git a/lib/Makefile.in b/lib/Makefile.in
index a2bc7b7e..f797824f 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -112,8 +112,7 @@ host_triplet = @host@
@DOING_CURL_SYMBOL_HIDING_TRUE@am__append_8 = $(CFLAG_CURL_SYMBOL_HIDING)
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(srcdir)/curl_config.h.in \
- $(top_srcdir)/mkinstalldirs $(srcdir)/libcurl.vers.in \
- $(top_srcdir)/depcomp
+ $(srcdir)/libcurl.vers.in $(top_srcdir)/depcomp
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
@@ -135,7 +134,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = curl_config.h $(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES = libcurl.vers
CONFIG_CLEAN_VPATH_FILES =
@@ -212,12 +211,11 @@ am__objects_1 = libcurl_la-file.lo libcurl_la-timeval.lo \
libcurl_la-curl_ntlm_wb.lo libcurl_la-curl_ntlm_core.lo \
libcurl_la-curl_ntlm_msgs.lo libcurl_la-curl_sasl.lo \
libcurl_la-curl_multibyte.lo libcurl_la-hostcheck.lo \
- libcurl_la-bundles.lo libcurl_la-conncache.lo \
- libcurl_la-pipeline.lo libcurl_la-dotdot.lo \
- libcurl_la-x509asn1.lo libcurl_la-http2.lo \
- libcurl_la-curl_sasl_sspi.lo libcurl_la-smb.lo \
- libcurl_la-curl_sasl_gssapi.lo libcurl_la-curl_endian.lo \
- libcurl_la-curl_des.lo
+ libcurl_la-conncache.lo libcurl_la-pipeline.lo \
+ libcurl_la-dotdot.lo libcurl_la-x509asn1.lo \
+ libcurl_la-http2.lo libcurl_la-curl_sasl_sspi.lo \
+ libcurl_la-smb.lo libcurl_la-curl_sasl_gssapi.lo \
+ libcurl_la-curl_endian.lo libcurl_la-curl_des.lo
am__dirstamp = $(am__leading_dot)dirstamp
am__objects_2 = vtls/libcurl_la-openssl.lo vtls/libcurl_la-gtls.lo \
vtls/libcurl_la-vtls.lo vtls/libcurl_la-nss.lo \
@@ -283,12 +281,12 @@ am__objects_6 = libcurlu_la-file.lo libcurlu_la-timeval.lo \
libcurlu_la-curl_ntlm.lo libcurlu_la-curl_ntlm_wb.lo \
libcurlu_la-curl_ntlm_core.lo libcurlu_la-curl_ntlm_msgs.lo \
libcurlu_la-curl_sasl.lo libcurlu_la-curl_multibyte.lo \
- libcurlu_la-hostcheck.lo libcurlu_la-bundles.lo \
- libcurlu_la-conncache.lo libcurlu_la-pipeline.lo \
- libcurlu_la-dotdot.lo libcurlu_la-x509asn1.lo \
- libcurlu_la-http2.lo libcurlu_la-curl_sasl_sspi.lo \
- libcurlu_la-smb.lo libcurlu_la-curl_sasl_gssapi.lo \
- libcurlu_la-curl_endian.lo libcurlu_la-curl_des.lo
+ libcurlu_la-hostcheck.lo libcurlu_la-conncache.lo \
+ libcurlu_la-pipeline.lo libcurlu_la-dotdot.lo \
+ libcurlu_la-x509asn1.lo libcurlu_la-http2.lo \
+ libcurlu_la-curl_sasl_sspi.lo libcurlu_la-smb.lo \
+ libcurlu_la-curl_sasl_gssapi.lo libcurlu_la-curl_endian.lo \
+ libcurlu_la-curl_des.lo
am__objects_7 = vtls/libcurlu_la-openssl.lo vtls/libcurlu_la-gtls.lo \
vtls/libcurlu_la-vtls.lo vtls/libcurlu_la-nss.lo \
vtls/libcurlu_la-polarssl.lo \
@@ -578,17 +576,13 @@ top_srcdir = @top_srcdir@
#
###########################################################################
AUTOMAKE_OPTIONS = foreign nostdinc
-DOCS = README.encoding README.memoryleak README.ares README.curlx \
- README.hostip README.multi_socket README.httpauth README.pipelining \
- README.curl_off_t README.pingpong
-
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 config-win32.h \
config-win32ce.h config-riscos.h config-mac.h curl_config.h.in \
makefile.dj config-dos.h libcurl.plist libcurl.rc config-amigaos.h \
makefile.amiga Makefile.netware nwlib.c nwos.c config-win32ce.h \
config-os400.h setup-os400.h config-symbian.h Makefile.Watcom \
- config-tpf.h $(DOCS) mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
+ config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
firefox-db2pem.sh config-vxworks.h Makefile.vxworks checksrc.pl \
objnames-test08.sh objnames-test10.sh objnames.inc checksrc.whitelist
@@ -672,7 +666,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_negotiate_sspi.c http_proxy.c non-ascii.c asyn-ares.c \
asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \
curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \
- hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \
+ hostcheck.c conncache.c pipeline.c dotdot.c x509asn1.c \
http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c \
curl_des.c
@@ -690,7 +684,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \
curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \
curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \
- curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \
+ curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h \
conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \
dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h
@@ -870,7 +864,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-asyn-ares.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-asyn-thread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-base64.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-bundles.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-conncache.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-connect.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-content_encoding.Plo@am__quote@
@@ -975,7 +968,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-asyn-ares.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-asyn-thread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-base64.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-bundles.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-conncache.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-connect.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-content_encoding.Plo@am__quote@
@@ -1781,13 +1773,6 @@ libcurl_la-hostcheck.lo: hostcheck.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-hostcheck.lo `test -f 'hostcheck.c' || echo '$(srcdir)/'`hostcheck.c
-libcurl_la-bundles.lo: bundles.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-bundles.lo -MD -MP -MF $(DEPDIR)/libcurl_la-bundles.Tpo -c -o libcurl_la-bundles.lo `test -f 'bundles.c' || echo '$(srcdir)/'`bundles.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-bundles.Tpo $(DEPDIR)/libcurl_la-bundles.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bundles.c' object='libcurl_la-bundles.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-bundles.lo `test -f 'bundles.c' || echo '$(srcdir)/'`bundles.c
-
libcurl_la-conncache.lo: conncache.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-conncache.lo -MD -MP -MF $(DEPDIR)/libcurl_la-conncache.Tpo -c -o libcurl_la-conncache.lo `test -f 'conncache.c' || echo '$(srcdir)/'`conncache.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-conncache.Tpo $(DEPDIR)/libcurl_la-conncache.Plo
@@ -2593,13 +2578,6 @@ libcurlu_la-hostcheck.lo: hostcheck.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-hostcheck.lo `test -f 'hostcheck.c' || echo '$(srcdir)/'`hostcheck.c
-libcurlu_la-bundles.lo: bundles.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-bundles.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-bundles.Tpo -c -o libcurlu_la-bundles.lo `test -f 'bundles.c' || echo '$(srcdir)/'`bundles.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-bundles.Tpo $(DEPDIR)/libcurlu_la-bundles.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bundles.c' object='libcurlu_la-bundles.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-bundles.lo `test -f 'bundles.c' || echo '$(srcdir)/'`bundles.c
-
libcurlu_la-conncache.lo: conncache.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-conncache.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-conncache.Tpo -c -o libcurlu_la-conncache.lo `test -f 'conncache.c' || echo '$(srcdir)/'`conncache.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-conncache.Tpo $(DEPDIR)/libcurlu_la-conncache.Plo
diff --git a/lib/Makefile.inc b/lib/Makefile.inc
index 15179b5f..d444a6b2 100644
--- a/lib/Makefile.inc
+++ b/lib/Makefile.inc
@@ -44,7 +44,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_negotiate_sspi.c http_proxy.c non-ascii.c asyn-ares.c \
asyn-thread.c curl_gssapi.c curl_ntlm.c curl_ntlm_wb.c \
curl_ntlm_core.c curl_ntlm_msgs.c curl_sasl.c curl_multibyte.c \
- hostcheck.c bundles.c conncache.c pipeline.c dotdot.c x509asn1.c \
+ hostcheck.c conncache.c pipeline.c dotdot.c x509asn1.c \
http2.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c curl_endian.c \
curl_des.c
@@ -62,7 +62,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h \
curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h \
curl_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h \
- curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h bundles.h \
+ curl_ntlm_msgs.h curl_sasl.h curl_multibyte.h hostcheck.h \
conncache.h curl_setup_once.h multihandle.h setup-vms.h pipeline.h \
dotdot.h x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index 7506a01a..ee47d670 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -1,7 +1,7 @@
###########################################################################
#
## Makefile for building libcurl.a with MingW (GCC-3.2 or later)
-## and optionally OpenSSL (0.9.8), libssh2 (1.3), zlib (1.2.5), librtmp (2.3)
+## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
@@ -18,23 +18,23 @@ ZLIB_PATH = ../../zlib-1.2.8
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
-LIBRTMP_PATH = ../../librtmp-2.3
+LIBRTMP_PATH = ../../librtmp-2.4
endif
# Edit the path below to point to the base of your libidn package.
ifndef LIBIDN_PATH
-LIBIDN_PATH = ../../libidn-1.18
+LIBIDN_PATH = ../../libidn-1.30
endif
# Edit the path below to point to the base of your MS IDN package.
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
-# http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
+# https://www.microsoft.com/en-us/download/details.aspx?id=734
ifndef WINIDN_PATH
WINIDN_PATH = ../../Microsoft IDN Mitigation APIs
endif
@@ -44,7 +44,7 @@ LDAP_SDK = c:/novell/ndk/cldapsdk/win32
endif
# Edit the path below to point to the base of your nghttp2 package.
ifndef NGHTTP2_PATH
-NGHTTP2_PATH = ../../nghttp2-0.6.7
+NGHTTP2_PATH = ../../nghttp2-1.0.0
endif
PROOT = ..
@@ -76,9 +76,11 @@ endif
ifeq ($(ARCH),w64)
CFLAGS += -m64 -D_AMD64_
+LDFLAGS += -m64
RCFLAGS += -F pe-x86-64
else
CFLAGS += -m32
+LDFLAGS += -m32
RCFLAGS += -F pe-i386
endif
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index 2cd754a7..5a955f88 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -19,12 +19,12 @@ endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your axTLS package.
diff --git a/lib/Makefile.vc10 b/lib/Makefile.vc10
index 516253b2..987e01ed 100644
--- a/lib/Makefile.vc10
+++ b/lib/Makefile.vc10
@@ -65,11 +65,11 @@
!INCLUDE ..\winbuild\Makefile.msvc.names
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
!ENDIF
!IFNDEF ZLIB_PATH
@@ -90,7 +90,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
@@ -427,7 +427,7 @@ CFGSET = TRUE
TARGET = $(LIBCURL_DYN_LIB_DBG)
DIROBJ = $(CFG)
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)
-CC = $(CCDEBUG) $(RTLIBD)
+CC = $(CCDEBUG) $(RTLIBD)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF
@@ -528,7 +528,6 @@ X_OBJS= \
$(DIROBJ)\asyn-thread.obj \
$(DIROBJ)\axtls.obj \
$(DIROBJ)\base64.obj \
- $(DIROBJ)\bundles.obj \
$(DIROBJ)\conncache.obj \
$(DIROBJ)\connect.obj \
$(DIROBJ)\content_encoding.obj \
diff --git a/lib/Makefile.vc6 b/lib/Makefile.vc6
index 04d4c67c..c34c3dbc 100644
--- a/lib/Makefile.vc6
+++ b/lib/Makefile.vc6
@@ -65,11 +65,11 @@
!INCLUDE ..\winbuild\Makefile.msvc.names
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
!ENDIF
!IFNDEF ZLIB_PATH
@@ -90,7 +90,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
@@ -427,7 +427,7 @@ CFGSET = TRUE
TARGET = $(LIBCURL_DYN_LIB_DBG)
DIROBJ = $(CFG)
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)
-CC = $(CCDEBUG) $(RTLIBD)
+CC = $(CCDEBUG) $(RTLIBD)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF
@@ -528,7 +528,6 @@ X_OBJS= \
$(DIROBJ)\asyn-thread.obj \
$(DIROBJ)\axtls.obj \
$(DIROBJ)\base64.obj \
- $(DIROBJ)\bundles.obj \
$(DIROBJ)\conncache.obj \
$(DIROBJ)\connect.obj \
$(DIROBJ)\content_encoding.obj \
diff --git a/lib/Makefile.vc8 b/lib/Makefile.vc8
index 23a3d40a..10732f9b 100644
--- a/lib/Makefile.vc8
+++ b/lib/Makefile.vc8
@@ -65,11 +65,11 @@
!INCLUDE ..\winbuild\Makefile.msvc.names
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
!ENDIF
!IFNDEF ZLIB_PATH
@@ -90,7 +90,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
@@ -427,7 +427,7 @@ CFGSET = TRUE
TARGET = $(LIBCURL_DYN_LIB_DBG)
DIROBJ = $(CFG)
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)
-CC = $(CCDEBUG) $(RTLIBD)
+CC = $(CCDEBUG) $(RTLIBD)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF
@@ -528,7 +528,6 @@ X_OBJS= \
$(DIROBJ)\asyn-thread.obj \
$(DIROBJ)\axtls.obj \
$(DIROBJ)\base64.obj \
- $(DIROBJ)\bundles.obj \
$(DIROBJ)\conncache.obj \
$(DIROBJ)\connect.obj \
$(DIROBJ)\content_encoding.obj \
diff --git a/lib/Makefile.vc9 b/lib/Makefile.vc9
index 5f0a7d60..0d9d951f 100644
--- a/lib/Makefile.vc9
+++ b/lib/Makefile.vc9
@@ -65,11 +65,11 @@
!INCLUDE ..\winbuild\Makefile.msvc.names
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
!ENDIF
!IFNDEF ZLIB_PATH
@@ -90,7 +90,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
@@ -427,7 +427,7 @@ CFGSET = TRUE
TARGET = $(LIBCURL_DYN_LIB_DBG)
DIROBJ = $(CFG)
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)
-CC = $(CCDEBUG) $(RTLIBD)
+CC = $(CCDEBUG) $(RTLIBD)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF
@@ -528,7 +528,6 @@ X_OBJS= \
$(DIROBJ)\asyn-thread.obj \
$(DIROBJ)\axtls.obj \
$(DIROBJ)\base64.obj \
- $(DIROBJ)\bundles.obj \
$(DIROBJ)\conncache.obj \
$(DIROBJ)\connect.obj \
$(DIROBJ)\content_encoding.obj \
diff --git a/lib/README.ares b/lib/README.ares
deleted file mode 100644
index 8c77937e..00000000
--- a/lib/README.ares
+++ /dev/null
@@ -1,69 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
- How To Build libcurl to Use c-ares For Asynch Name Resolves
- ===========================================================
-
-c-ares:
- http://c-ares.haxx.se/
-
-NOTE
- The latest libcurl version requires c-ares 1.6.0 or later.
-
- Once upon the time libcurl built fine with the "original" ares. That is no
- longer true. You need to use c-ares.
-
-Build c-ares
-============
-
-1. unpack the c-ares archive
-2. cd c-ares-dir
-3. ./configure
-4. make
-5. make install
-
-Build libcurl to use c-ares in the curl source tree
-===================================================
-
-1. name or symlink the c-ares source directory 'ares' in the curl source
- directory
-2. ./configure --enable-ares
-
- Optionally, you can point out the c-ares install tree root with the the
- --enable-ares option.
-
-3. make
-
-Build libcurl to use an installed c-ares
-========================================
-
-1. ./configure --enable-ares=/path/to/ares/install
-2. make
-
-c-ares on win32
-===============
-(description brought by Dominick Meglio)
-
-First I compiled c-ares. I changed the default C runtime library to be the
-single-threaded rather than the multi-threaded (this seems to be required to
-prevent linking errors later on). Then I simply build the areslib project (the
-other projects adig/ahost seem to fail under MSVC).
-
-Next was libcurl. I opened lib/config-win32.h and I added a:
- #define USE_ARES 1
-
-Next thing I did was I added the path for the ares includes to the include
-path, and the libares.lib to the libraries.
-
-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, stricmp,
-etc.)
-
-I would have modified the MSVC++ project files, but I only have VC.NET and it
-uses a different format than VC6.0 so I didn't want to go and change
-everything and remove VC6.0 support from libcurl.
diff --git a/lib/README.curl_off_t b/lib/README.curl_off_t
deleted file mode 100644
index 923b2774..00000000
--- a/lib/README.curl_off_t
+++ /dev/null
@@ -1,68 +0,0 @@
-
- curl_off_t explained
- ====================
-
-curl_off_t is a data type provided by the external libcurl include headers. It
-is the type meant to be used for the curl_easy_setopt() options that end with
-LARGE. The type is 64bit large on most modern platforms.
-
-Transition from < 7.19.0 to >= 7.19.0
--------------------------------------
-
-Applications that used libcurl before 7.19.0 that are rebuilt with a libcurl
-that is 7.19.0 or later may or may not have to worry about anything of
-this. We have made a significant effort to make the transition really seamless
-and transparent.
-
-You have have to take notice if you are in one of the following situations:
-
-o Your app is using or will after the transition use a libcurl that is built
- with LFS (large file support) disabled even though your system otherwise
- supports it.
-
-o Your app is using or will after the transition use a libcurl that doesn't
- support LFS at all, but your system and compiler support 64bit data types.
-
-In both these cases, the curl_off_t type will now (after the transition) be
-64bit where it previously was 32bit. This will cause a binary incompatibility
-that you MAY need to deal with.
-
-Benefits
---------
-
-This new way has several benefits:
-
-o Platforms without LFS support can still use libcurl to do >32 bit file
- transfers and range operations etc as long as they have >32 bit data-types
- supported.
-
-o Applications will no longer easily build with the curl_off_t size
- mismatched, which has been a very frequent (and annoying) problem with
- libcurl <= 7.18.2
-
-Historically
-------------
-
-Previously, before 7.19.0, the curl_off_t type would be rather strongly
-connected to the size of the system off_t type, where currently curl_off_t is
-independent of that.
-
-The strong connection to off_t made it troublesome for application authors
-since when they did mistakes, they could get curl_off_t type of different
-sizes in the app vs libcurl, and that caused strange effects that were hard to
-track and detect by users of libcurl.
-
-SONAME
-------
-
-We opted to not bump the soname for the library unconditionally, simply
-because soname bumping is causing a lot of grief and moaning all over the
-community so we try to keep that at minimum. Also, our selected design path
-should be 100% backwards compatible for the vast majority of all libcurl
-users.
-
-Enforce SONAME bump
--------------------
-
-If configure doesn't detect your case where a bump is necessary, re-run it
-with the --enable-soname-bump command line option!
diff --git a/lib/README.curlx b/lib/README.curlx
deleted file mode 100644
index 5375b0d1..00000000
--- a/lib/README.curlx
+++ /dev/null
@@ -1,61 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
- Source Code Functions Apps Might Use
- ====================================
-
-The libcurl source code offers a few functions by source only. They are not
-part of the official libcurl API, but the source files might be useful for
-others so apps can optionally compile/build with these sources to gain
-additional functions.
-
-We provide them through a single header file for easy access for apps:
-"curlx.h"
-
- curlx_strtoofft()
-
- A macro that converts a string containing a number to a curl_off_t number.
- This might use the curlx_strtoll() function which is provided as source
- code in strtoofft.c. Note that the function is only provided if no
- strtoll() (or equivalent) function exist on your platform. If curl_off_t
- is only a 32 bit number on your platform, this macro uses strtol().
-
- curlx_tvnow()
-
- returns a struct timeval for the current time.
-
- curlx_tvdiff()
-
- returns the difference between two timeval structs, in number of
- milliseconds.
-
- curlx_tvdiff_secs()
-
- returns the same as curlx_tvdiff but with full usec resolution (as a
- double)
-
-FUTURE
-======
-
- Several functions will be removed from the public curl_ name space in a
- future libcurl release. They will then only become available as curlx_
- functions instead. To make the transition easier, we already today provide
- these functions with the curlx_ prefix to allow sources to get built properly
- with the new function names. The functions this concerns are:
-
- curlx_getenv
- curlx_strequal
- curlx_strnequal
- curlx_mvsnprintf
- curlx_msnprintf
- curlx_maprintf
- curlx_mvaprintf
- curlx_msprintf
- curlx_mprintf
- curlx_mfprintf
- curlx_mvsprintf
- curlx_mvprintf
- curlx_mvfprintf
diff --git a/lib/README.encoding b/lib/README.encoding
deleted file mode 100644
index 1012bb9e..00000000
--- a/lib/README.encoding
+++ /dev/null
@@ -1,60 +0,0 @@
-
- Content Encoding Support for libcurl
-
-* About content encodings:
-
-HTTP/1.1 [RFC 2616] specifies that a client may request that a server encode
-its response. This is usually used to compress a response using one of a set
-of commonly available compression techniques. These schemes are `deflate' (the
-zlib algorithm), `gzip' and `compress' [sec 3.5, RFC 2616]. A client requests
-that the sever perform an encoding by including an Accept-Encoding header in
-the request document. The value of the header should be one of the recognized
-tokens `deflate', ... (there's a way to register new schemes/tokens, see sec
-3.5 of the spec). A server MAY honor the client's encoding request. When a
-response is encoded, the server includes a Content-Encoding header in the
-response. The value of the Content-Encoding header indicates which scheme was
-used to encode the data.
-
-A client may tell a server that it can understand several different encoding
-schemes. In this case the server may choose any one of those and use it to
-encode the response (indicating which one using the Content-Encoding header).
-It's also possible for a client to attach priorities to different schemes so
-that the server knows which it prefers. See sec 14.3 of RFC 2616 for more
-information on the Accept-Encoding header.
-
-* Current support for content encoding:
-
-Support for the 'deflate' and 'gzip' content encoding are supported by
-libcurl. Both regular and chunked transfers should work fine. The library
-zlib is required for this feature. 'deflate' support was added by James
-Gallagher, and support for the 'gzip' encoding was added by Dan Fandrich.
-
-* The libcurl interface:
-
-To cause libcurl to request a content encoding use:
-
- curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, <string>)
-
-where <string> is the intended value of the Accept-Encoding header.
-
-Currently, libcurl only understands how to process responses that use the
-"deflate" or "gzip" Content-Encoding, so the only values for
-CURLOPT_ACCEPT_ENCODING that will work (besides "identity," which does
-nothing) are "deflate" and "gzip" If a response is encoded using the
-"compress" or methods, libcurl will return an error indicating that the
-response could not be decoded. If <string> is NULL no Accept-Encoding header
-is generated. If <string> is a zero-length string, then an Accept-Encoding
-header containing all supported encodings will be generated.
-
-The CURLOPT_ACCEPT_ENCODING must be set to any non-NULL value for content to
-be automatically decoded. If it is not set and the server still sends encoded
-content (despite not having been asked), the data is returned in its raw form
-and the Content-Encoding type is not checked.
-
-* The curl interface:
-
-Use the --compressed option with curl to cause it to ask servers to compress
-responses using any format supported by curl.
-
-James Gallagher <jgallagher@gso.uri.edu>
-Dan Fandrich <dan@coneharvesters.com>
diff --git a/lib/README.hostip b/lib/README.hostip
deleted file mode 100644
index d5688fff..00000000
--- a/lib/README.hostip
+++ /dev/null
@@ -1,35 +0,0 @@
- hostip.c explained
- ==================
-
- The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
- source file are these:
-
- 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.
-
- CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
- name resolves. This can be Windows or *nix.
-
- CURLRES_THREADED - is defined if libcurl is built to use threading for
- asynchronous name resolves. The name resolve will be done in a new thread,
- and the supported asynch API will be the same as for ares-builds. This is
- the default under (native) Windows.
-
- If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
- libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
- defined.
-
- The host*.c sources files are split up like this:
-
- hostip.c - method-independent resolver functions and utility functions
- hostasyn.c - functions for asynchronous name resolves
- hostsyn.c - functions for synchronous name resolves
- asyn-ares.c - functions for asynchronous name resolves using c-ares
- asyn-thread.c - functions for asynchronous name resolves using threads
- hostip4.c - IPv4 specific functions
- hostip6.c - IPv6 specific functions
-
- The hostip.h is the single united header file for all this. It defines the
- CURLRES_* defines based on the config*.h and curl_setup.h defines.
diff --git a/lib/README.httpauth b/lib/README.httpauth
deleted file mode 100644
index 96050451..00000000
--- a/lib/README.httpauth
+++ /dev/null
@@ -1,74 +0,0 @@
-
-1. PUT/POST without a known auth to use (possibly no auth required):
-
- (When explicitly set to use a multi-pass auth when doing a POST/PUT,
- libcurl should immediately go the Content-Length: 0 bytes route to avoid
- the first send all data phase, step 2. If told to use a single-pass auth,
- goto step 3.)
-
- Issue the proper PUT/POST request immediately, with the correct
- Content-Length and Expect: headers.
-
- If a 100 response is received or the wait for one times out, start sending
- the request-body.
-
- If a 401 (or 407 when talking through a proxy) is received, then:
-
- If we have "more than just a little" data left to send, close the
- connection. Exactly what "more than just a little" means will have to be
- determined. Possibly the current transfer speed should be taken into
- account as well.
-
- NOTE: if the size of the POST data is less than MAX_INITIAL_POST_SIZE (when
- CURLOPT_POSTFIELDS is used), libcurl will send everything in one single
- write() (all request-headers and request-body) and thus it will
- unconditionally send the full post data here.
-
-2. PUT/POST with multi-pass auth but not yet completely negotiated:
-
- Send a PUT/POST request, we know that it will be rejected and thus we claim
- Content-Length zero to avoid having to send the request-body. (This seems
- to be what IE does.)
-
-3. PUT/POST as the last step in the auth negotiation, that is when we have
- what we believe is a completed negotiation:
-
- Send a full and proper PUT/POST request (again) with the proper
- Content-Length and a following request-body.
-
- NOTE: this may very well be the second (or even third) time the whole or at
- least parts of the request body is sent to the server. Since the data may
- be provided to libcurl with a callback, we need a way to tell the app that
- the upload is to be restarted so that the callback will provide data from
- the start again. This requires an API method/mechanism that libcurl
- doesn't have today. See below.
-
-Data Rewind
-
- It will be troublesome for some apps to deal with a rewind like this in all
- circumstances. I'm thinking for example when using 'curl' to upload data
- from stdin. If libcurl ends up having to rewind the reading for a request
- to succeed, of course a lack of this callback or if it returns failure, will
- cause the request to fail completely.
-
- The new callback is set with CURLOPT_IOCTLFUNCTION (in an attempt to add a
- more generic function that might be used for other IO-related controls in
- the future):
-
- curlioerr curl_ioctl(CURL *handle, curliocmd cmd, void *clientp);
-
- And in the case where the read is to be rewinded, it would be called with a
- cmd named CURLIOCMD_RESTARTREAD. The callback would then return CURLIOE_OK,
- if things are fine, or CURLIOE_FAILRESTART if not.
-
-Backwards Compatibility
-
- The approach used until now, that issues a HEAD on the given URL to trigger
- the auth negotiation could still be supported and encouraged, but it would
- be up to the app to first fetch a URL with GET/HEAD to negotiate on, since
- then a following PUT/POST wouldn't need to negotiate authentication and
- thus avoid double-sending data.
-
- Optionally, we keep the current approach if some option is set
- (CURLOPT_HEADBEFOREAUTH or similar), since it seems to work fairly well for
- POST on most servers.
diff --git a/lib/README.memoryleak b/lib/README.memoryleak
deleted file mode 100644
index 16617779..00000000
--- a/lib/README.memoryleak
+++ /dev/null
@@ -1,55 +0,0 @@
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
- How To Track Down Suspected Memory Leaks in libcurl
- ===================================================
-
-Single-threaded
-
- Please note that this memory leak system is not adjusted to work in more
- than one thread. If you want/need to use it in a multi-threaded app. Please
- adjust accordingly.
-
-
-Build
-
- Rebuild libcurl with -DCURLDEBUG (usually, rerunning configure with
- --enable-debug fixes this). 'make clean' first, then 'make' so that all
- files actually are rebuilt properly. It will also make sense to build
- libcurl with the debug option (usually -g to the compiler) so that debugging
- it will be easier if you actually do find a leak in the library.
-
- This will create a library that has memory debugging enabled.
-
-Modify Your Application
-
- Add a line in your application code:
-
- curl_memdebug("dump");
-
- This will make the malloc debug system output a full trace of all resource
- using functions to the given file name. Make sure you rebuild your program
- and that you link with the same libcurl you built for this purpose as
- described above.
-
-Run Your Application
-
- Run your program as usual. Watch the specified memory trace file grow.
-
- Make your program exit and use the proper libcurl cleanup functions etc. So
- that all non-leaks are returned/freed properly.
-
-Analyze the Flow
-
- Use the tests/memanalyze.pl perl script to analyze the dump file:
-
- 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!
-
- If this doesn't produce any output, no leak was detected in libcurl. Then
- the leak is mostly likely to be in your code.
diff --git a/lib/README.multi_socket b/lib/README.multi_socket
deleted file mode 100644
index d91e1d9f..00000000
--- a/lib/README.multi_socket
+++ /dev/null
@@ -1,53 +0,0 @@
-Implementation of the curl_multi_socket API
-
- The main ideas of the new API are simply:
-
- 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).
-
- 2 - When the application discovers action on a single socket, it calls
- libcurl and informs that there was action on this particular socket and
- libcurl can then act on that socket/transfer only and not care about
- any other transfers. (The previous API always had to scan through all
- the existing transfers.)
-
- The idea is that curl_multi_socket_action() calls a given callback with
- information about what socket to wait for what action on, and the callback
- only gets called if the status of that socket has changed.
-
- We also added a timer callback that makes libcurl call the application when
- the timeout value changes, and you set that with curl_multi_setopt() and the
- CURLMOPT_TIMERFUNCTION option. To get this to work, Internally, there's an
- added a struct to each easy handle in which we store an "expire time" (if
- any). The structs are then "splay sorted" so that we can add and remove
- times from the linked list and yet somewhat swiftly figure out both how long
- time there is until the next nearest timer expires and which timer (handle)
- we should take care of now. Of course, the upside of all this is that we get
- a curl_multi_timeout() that should also work with old-style applications
- that use curl_multi_perform().
-
- We created an internal "socket to easy handles" hash table that given
- a socket (file descriptor) return the easy handle that waits for action on
- that socket. This hash is made using the already existing hash code
- (previously only used for the DNS cache).
-
- To make libcurl able to report plain sockets in the socket callback, we had
- to re-organize the internals of the curl_multi_fdset() etc so that the
- conversion from sockets to fd_sets for that function is only done in the
- last step before the data is returned. I also had to extend c-ares to get a
- function that can return plain sockets, as that library too returned only
- fd_sets and that is no longer good enough. The changes done to c-ares are
- available in c-ares 1.3.1 and later.
-
- We have done a test runs with up to 9000 connections (with a single active
- one). The curl_multi_socket_action() invoke then takes less than 10
- microseconds in average (using the read-only-1-byte-at-a-time hack). We are
- now below the 60 microseconds "per socket action" goal (the extra 50 is the
- time libevent needs).
-
-Documentation
-
- http://curl.haxx.se/libcurl/c/curl_multi_socket_action.html
- http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
- http://curl.haxx.se/libcurl/c/curl_multi_setopt.html
diff --git a/lib/README.pingpong b/lib/README.pingpong
deleted file mode 100644
index 69ba9aad..00000000
--- a/lib/README.pingpong
+++ /dev/null
@@ -1,30 +0,0 @@
-Date: December 5, 2009
-
-Pingpong
-========
-
- Pingpong is just my (Daniel's) jestful collective name on the protocols that
- share a very similar kind of back-and-forth procedure with command and
- responses to and from the server. FTP was previously the only protocol in
- that family that libcurl supported, but when POP3, IMAP and SMTP joined the
- team I moved some of the internals into a separate pingpong module to be
- easier to get used by all these protocols to reduce code duplication and ease
- code re-use between these protocols.
-
-FTP
-
- In 7.20.0 we converted code to use the new pingpong code from previously
- having been all "native" FTP code.
-
-POP3
-
- There's no support in the documented URL format to specify the exact mail to
- get, but we support that as the path specified in the URL.
-
-IMAP
-
-SMTP
-
- There's no official URL syntax defined for SMTP, but we use only the generic
- one and we provide two additional libcurl options to specify receivers and
- sender of the actual mail.
diff --git a/lib/README.pipelining b/lib/README.pipelining
deleted file mode 100644
index e5bf6ec3..00000000
--- a/lib/README.pipelining
+++ /dev/null
@@ -1,44 +0,0 @@
-HTTP Pipelining with libcurl
-============================
-
-Background
-
-Since pipelining implies that one or more requests are sent to a server before
-the previous response(s) have been received, we only support it for multi
-interface use.
-
-Considerations
-
-When using the multi interface, you create one easy handle for each transfer.
-Bascially any number of handles can be created, added and used with the multi
-interface - simultaneously. It is an interface designed to allow many
-simultaneous transfers while still using a single thread. Pipelining does not
-change any of these details.
-
-API
-
-We've added a new option to curl_multi_setopt() called CURLMOPT_PIPELINING
-that enables "attempted pipelining" and then all easy handles used on that
-handle will attempt to use an existing pipeline.
-
-Details
-
-- A pipeline is only created if a previous connection exists to the same IP
- address that the new request is being made to use.
-
-- Pipelines are only supported for HTTP(S) as no other currently supported
- protocol has features resemembling this, but we still name this feature
- plain 'pipelining' to possibly one day support it for other protocols as
- well.
-
-- HTTP Pipelining is for GET and HEAD requests only.
-
-- When a pipeline is in use, we must take precautions so that when used easy
- handles (i.e those who still wait for a response) are removed from the multi
- handle, we must deal with the outstanding response nicely.
-
-- Explicitly asking for pipelining handle X and handle Y won't be supported.
- It isn't easy for an app to do this association. The lib should probably
- still resolve the second one properly to make sure that they actually _can_
- be considered for pipelining. Also, asking for explicit pipelining on handle
- X may be tricky when handle X get a closed connection.
diff --git a/lib/bundles.c b/lib/bundles.c
deleted file mode 100644
index ff164869..00000000
--- a/lib/bundles.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 2012, Linus Nielsen Feltzing, <linus@haxx.se>
- * Copyright (C) 2012-2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ***************************************************************************/
-
-#include "curl_setup.h"
-
-#include <curl/curl.h>
-
-#include "urldata.h"
-#include "url.h"
-#include "progress.h"
-#include "multiif.h"
-#include "bundles.h"
-#include "sendf.h"
-#include "rawstr.h"
-
-#include "curl_memory.h"
-/* The last #include file should be: */
-#include "memdebug.h"
-
-static void conn_llist_dtor(void *user, void *element)
-{
- struct connectdata *data = element;
- (void)user;
-
- data->bundle = NULL;
-}
-
-CURLcode Curl_bundle_create(struct SessionHandle *data,
- struct connectbundle **cb_ptr)
-{
- (void)data;
- DEBUGASSERT(*cb_ptr == NULL);
- *cb_ptr = malloc(sizeof(struct connectbundle));
- if(!*cb_ptr)
- return CURLE_OUT_OF_MEMORY;
-
- (*cb_ptr)->num_connections = 0;
- (*cb_ptr)->server_supports_pipelining = FALSE;
-
- (*cb_ptr)->conn_list = Curl_llist_alloc((curl_llist_dtor) conn_llist_dtor);
- if(!(*cb_ptr)->conn_list) {
- Curl_safefree(*cb_ptr);
- return CURLE_OUT_OF_MEMORY;
- }
- return CURLE_OK;
-}
-
-void Curl_bundle_destroy(struct connectbundle *cb_ptr)
-{
- if(!cb_ptr)
- return;
-
- if(cb_ptr->conn_list) {
- Curl_llist_destroy(cb_ptr->conn_list, NULL);
- cb_ptr->conn_list = NULL;
- }
- free(cb_ptr);
-}
-
-/* Add a connection to a bundle */
-CURLcode Curl_bundle_add_conn(struct connectbundle *cb_ptr,
- struct connectdata *conn)
-{
- if(!Curl_llist_insert_next(cb_ptr->conn_list, cb_ptr->conn_list->tail, conn))
- return CURLE_OUT_OF_MEMORY;
-
- conn->bundle = cb_ptr;
-
- cb_ptr->num_connections++;
- return CURLE_OK;
-}
-
-/* Remove a connection from a bundle */
-int Curl_bundle_remove_conn(struct connectbundle *cb_ptr,
- struct connectdata *conn)
-{
- struct curl_llist_element *curr;
-
- curr = cb_ptr->conn_list->head;
- while(curr) {
- if(curr->ptr == conn) {
- Curl_llist_remove(cb_ptr->conn_list, curr, NULL);
- cb_ptr->num_connections--;
- conn->bundle = NULL;
- return 1; /* we removed a handle */
- }
- curr = curr->next;
- }
- return 0;
-}
diff --git a/lib/bundles.h b/lib/bundles.h
deleted file mode 100644
index 3816c406..00000000
--- a/lib/bundles.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef HEADER_CURL_BUNDLES_H
-#define HEADER_CURL_BUNDLES_H
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
- * Copyright (C) 2012, Linus Nielsen Feltzing, <linus@haxx.se>
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://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.
- *
- ***************************************************************************/
-
-struct connectbundle {
- bool server_supports_pipelining; /* TRUE if server supports pipelining,
- set after first response */
- size_t num_connections; /* Number of connections in the bundle */
- struct curl_llist *conn_list; /* The connectdata members of the bundle */
-};
-
-CURLcode Curl_bundle_create(struct SessionHandle *data,
- struct connectbundle **cb_ptr);
-
-void Curl_bundle_destroy(struct connectbundle *cb_ptr);
-
-CURLcode Curl_bundle_add_conn(struct connectbundle *cb_ptr,
- struct connectdata *conn);
-
-int Curl_bundle_remove_conn(struct connectbundle *cb_ptr,
- struct connectdata *conn);
-
-
-#endif /* HEADER_CURL_BUNDLES_H */
-
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index 292ad342..8fad2cfc 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -228,6 +228,15 @@ sub scanfile {
"use of $2 is banned");
}
+ # scan for use of non-binary fopen without the macro
+ if($l =~ /^(.*\W)fopen\s*\([^"]*\"([^"]*)/) {
+ my $mode = $2;
+ if($mode !~ /b/) {
+ checkwarn($line, length($1), $file, $l,
+ "use of non-binary fopen without FOPEN_* macro");
+ }
+ }
+
# 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
diff --git a/lib/checksrc.whitelist b/lib/checksrc.whitelist
index da7b75dc..e261b9da 100644
--- a/lib/checksrc.whitelist
+++ b/lib/checksrc.whitelist
@@ -4,3 +4,7 @@
150 Opening ASCII mode data connection for [file] (0.0.0.0,0) (545 bytes)
* no_proxy=domain1.dom,host.domain2.dom
Default values are (0,0) initialized by calloc.
+ file = fopen(name, "r"); /* VMS */
+ return fopen(file, "r"); /* VMS */
+ return fopen(file, "r", "rfm=stmlf", "ctx=stm");
+ curl_memlog("FILE %s:%d fopen(\"%s\",\"%s\") = %p\n",
diff --git a/lib/conncache.c b/lib/conncache.c
index f3d1d6cf..c712ed7b 100644
--- a/lib/conncache.c
+++ b/lib/conncache.c
@@ -31,68 +31,134 @@
#include "multiif.h"
#include "sendf.h"
#include "rawstr.h"
-#include "bundles.h"
#include "conncache.h"
+#include "curl_printf.h"
#include "curl_memory.h"
/* The last #include file should be: */
#include "memdebug.h"
-static void free_bundle_hash_entry(void *freethis)
+static void conn_llist_dtor(void *user, void *element)
{
- struct connectbundle *b = (struct connectbundle *) freethis;
+ struct connectdata *data = element;
+ (void)user;
- Curl_bundle_destroy(b);
+ data->bundle = NULL;
}
-struct conncache *Curl_conncache_init(int size)
+static CURLcode bundle_create(struct SessionHandle *data,
+ struct connectbundle **cb_ptr)
{
- struct conncache *connc;
+ (void)data;
+ DEBUGASSERT(*cb_ptr == NULL);
+ *cb_ptr = malloc(sizeof(struct connectbundle));
+ if(!*cb_ptr)
+ return CURLE_OUT_OF_MEMORY;
+
+ (*cb_ptr)->num_connections = 0;
+ (*cb_ptr)->multiuse = BUNDLE_UNKNOWN;
+
+ (*cb_ptr)->conn_list = Curl_llist_alloc((curl_llist_dtor) conn_llist_dtor);
+ if(!(*cb_ptr)->conn_list) {
+ Curl_safefree(*cb_ptr);
+ return CURLE_OUT_OF_MEMORY;
+ }
+ return CURLE_OK;
+}
- connc = calloc(1, sizeof(struct conncache));
- if(!connc)
- return NULL;
+static void bundle_destroy(struct connectbundle *cb_ptr)
+{
+ if(!cb_ptr)
+ return;
+
+ if(cb_ptr->conn_list) {
+ Curl_llist_destroy(cb_ptr->conn_list, NULL);
+ cb_ptr->conn_list = NULL;
+ }
+ free(cb_ptr);
+}
+
+/* Add a connection to a bundle */
+static CURLcode bundle_add_conn(struct connectbundle *cb_ptr,
+ struct connectdata *conn)
+{
+ if(!Curl_llist_insert_next(cb_ptr->conn_list, cb_ptr->conn_list->tail, conn))
+ return CURLE_OUT_OF_MEMORY;
+
+ conn->bundle = cb_ptr;
+
+ cb_ptr->num_connections++;
+ return CURLE_OK;
+}
- connc->hash = Curl_hash_alloc(size, Curl_hash_str,
- Curl_str_key_compare, free_bundle_hash_entry);
+/* Remove a connection from a bundle */
+static int bundle_remove_conn(struct connectbundle *cb_ptr,
+ struct connectdata *conn)
+{
+ struct curl_llist_element *curr;
- if(!connc->hash) {
- free(connc);
- return NULL;
+ curr = cb_ptr->conn_list->head;
+ while(curr) {
+ if(curr->ptr == conn) {
+ Curl_llist_remove(cb_ptr->conn_list, curr, NULL);
+ cb_ptr->num_connections--;
+ conn->bundle = NULL;
+ return 1; /* we removed a handle */
+ }
+ curr = curr->next;
}
+ return 0;
+}
- return connc;
+static void free_bundle_hash_entry(void *freethis)
+{
+ struct connectbundle *b = (struct connectbundle *) freethis;
+
+ bundle_destroy(b);
+}
+
+int Curl_conncache_init(struct conncache *connc, int size)
+{
+ return Curl_hash_init(&connc->hash, size, Curl_hash_str,
+ Curl_str_key_compare, free_bundle_hash_entry);
}
void Curl_conncache_destroy(struct conncache *connc)
{
- if(connc) {
- Curl_hash_destroy(connc->hash);
- connc->hash = NULL;
- free(connc);
- }
+ if(connc)
+ Curl_hash_destroy(&connc->hash);
+}
+
+/* returns an allocated key to find a bundle for this connection */
+static char *hashkey(struct connectdata *conn)
+{
+ return aprintf("%s:%d",
+ conn->bits.proxy?conn->proxy.name:conn->host.name,
+ conn->localport);
}
+/* Look up the bundle with all the connections to the same host this
+ connectdata struct is setup to use. */
struct connectbundle *Curl_conncache_find_bundle(struct connectdata *conn,
struct conncache *connc)
{
struct connectbundle *bundle = NULL;
-
- char *hostname = conn->bits.proxy?conn->proxy.name:conn->host.name;
-
- if(connc)
- bundle = Curl_hash_pick(connc->hash, hostname, strlen(hostname)+1);
+ if(connc) {
+ char *key = hashkey(conn);
+ if(key) {
+ bundle = Curl_hash_pick(&connc->hash, key, strlen(key));
+ free(key);
+ }
+ }
return bundle;
}
static bool conncache_add_bundle(struct conncache *connc,
- char *hostname,
+ char *key,
struct connectbundle *bundle)
{
- void *p;
-
- p = Curl_hash_add(connc->hash, hostname, strlen(hostname)+1, bundle);
+ void *p = Curl_hash_add(&connc->hash, key, strlen(key), bundle);
return p?TRUE:FALSE;
}
@@ -106,14 +172,14 @@ static void conncache_remove_bundle(struct conncache *connc,
if(!connc)
return;
- Curl_hash_start_iterate(connc->hash, &iter);
+ Curl_hash_start_iterate(&connc->hash, &iter);
he = Curl_hash_next_element(&iter);
while(he) {
if(he->ptr == bundle) {
/* The bundle is destroyed by the hash destructor function,
free_bundle_hash_entry() */
- Curl_hash_delete(connc->hash, he->key, he->key_len);
+ Curl_hash_delete(&connc->hash, he->key, he->key_len);
return;
}
@@ -131,20 +197,29 @@ CURLcode Curl_conncache_add_conn(struct conncache *connc,
bundle = Curl_conncache_find_bundle(conn, data->state.conn_cache);
if(!bundle) {
- char *hostname = conn->bits.proxy?conn->proxy.name:conn->host.name;
+ char *key;
+ int rc;
- result = Curl_bundle_create(data, &new_bundle);
+ result = bundle_create(data, &new_bundle);
if(result)
return result;
- if(!conncache_add_bundle(data->state.conn_cache, hostname, new_bundle)) {
- Curl_bundle_destroy(new_bundle);
+ key = hashkey(conn);
+ if(!key) {
+ bundle_destroy(new_bundle);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ rc = conncache_add_bundle(data->state.conn_cache, key, new_bundle);
+ free(key);
+ if(!rc) {
+ bundle_destroy(new_bundle);
return CURLE_OUT_OF_MEMORY;
}
bundle = new_bundle;
}
- result = Curl_bundle_add_conn(bundle, conn);
+ result = bundle_add_conn(bundle, conn);
if(result) {
if(new_bundle)
conncache_remove_bundle(data->state.conn_cache, new_bundle);
@@ -169,7 +244,7 @@ void Curl_conncache_remove_conn(struct conncache *connc,
/* The bundle pointer can be NULL, since this function can be called
due to a failed connection attempt, before being added to a bundle */
if(bundle) {
- Curl_bundle_remove_conn(bundle, conn);
+ bundle_remove_conn(bundle, conn);
if(bundle->num_connections == 0) {
conncache_remove_bundle(connc, bundle);
}
@@ -201,7 +276,7 @@ void Curl_conncache_foreach(struct conncache *connc,
if(!connc)
return;
- Curl_hash_start_iterate(connc->hash, &iter);
+ Curl_hash_start_iterate(&connc->hash, &iter);
he = Curl_hash_next_element(&iter);
while(he) {
@@ -232,7 +307,7 @@ Curl_conncache_find_first_connection(struct conncache *connc)
struct curl_hash_element *he;
struct connectbundle *bundle;
- Curl_hash_start_iterate(connc->hash, &iter);
+ Curl_hash_start_iterate(&connc->hash, &iter);
he = Curl_hash_next_element(&iter);
while(he) {
diff --git a/lib/conncache.h b/lib/conncache.h
index e77a084a..59181bf3 100644
--- a/lib/conncache.h
+++ b/lib/conncache.h
@@ -24,13 +24,24 @@
***************************************************************************/
struct conncache {
- struct curl_hash *hash;
+ struct curl_hash hash;
size_t num_connections;
long next_connection_id;
struct timeval last_cleanup;
};
-struct conncache *Curl_conncache_init(int size);
+#define BUNDLE_NO_MULTIUSE -1
+#define BUNDLE_UNKNOWN 0 /* initial value */
+#define BUNDLE_PIPELINING 1
+#define BUNDLE_MULTIPLEX 2
+
+struct connectbundle {
+ int multiuse; /* supports multi-use */
+ size_t num_connections; /* Number of connections in the bundle */
+ struct curl_llist *conn_list; /* The connectdata members of the bundle */
+};
+
+int Curl_conncache_init(struct conncache *, int size);
void Curl_conncache_destroy(struct conncache *connc);
diff --git a/lib/connect.c b/lib/connect.c
index 1781e4b5..7202fa63 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -1166,8 +1166,11 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */
conn->tempaddr[0] = conn->tempaddr[0]->ai_next;
}
- if(conn->tempsock[0] == CURL_SOCKET_BAD)
+ if(conn->tempsock[0] == CURL_SOCKET_BAD) {
+ if(!result)
+ result = CURLE_COULDNT_CONNECT;
return result;
+ }
data->info.numconnects++; /* to track the number of connections made */
@@ -1214,8 +1217,8 @@ curl_socket_t Curl_getconnectinfo(struct SessionHandle *data,
find.found = FALSE;
Curl_conncache_foreach(data->multi_easy?
- data->multi_easy->conn_cache:
- data->multi->conn_cache, &find, conn_is_conn);
+ &data->multi_easy->conn_cache:
+ &data->multi->conn_cache, &find, conn_is_conn);
if(!find.found) {
data->state.lastconnect = NULL;
diff --git a/lib/cookie.c b/lib/cookie.c
index 01279260..94f2a8b8 100644
--- a/lib/cookie.c
+++ b/lib/cookie.c
@@ -914,7 +914,7 @@ struct CookieInfo *Curl_cookie_init(struct SessionHandle *data,
fp = NULL;
}
else
- fp = file?fopen(file, "r"):NULL;
+ fp = file?fopen(file, FOPEN_READTEXT):NULL;
c->newsession = newsession; /* new session? */
@@ -1262,7 +1262,7 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
use_stdout=TRUE;
}
else {
- out = fopen(dumphere, "w");
+ out = fopen(dumphere, FOPEN_WRITETEXT);
if(!out)
return 1; /* failure */
}
@@ -1277,6 +1277,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
co = c->cookies;
while(co) {
+ if(!co->domain)
+ continue;
format_ptr = get_netscape_format(co);
if(format_ptr == NULL) {
fprintf(out, "#\n# Fatal libcurl error\n");
@@ -1310,7 +1312,8 @@ struct curl_slist *Curl_cookie_list(struct SessionHandle *data)
c = data->cookies->cookies;
while(c) {
- /* fill the list with _all_ the cookies we know */
+ if(!c->domain)
+ continue;
line = get_netscape_format(c);
if(!line) {
curl_slist_free_all(list);
diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c
index d9f63ab0..68646bc1 100644
--- a/lib/curl_sasl.c
+++ b/lib/curl_sasl.c
@@ -76,9 +76,6 @@ const struct {
#define DIGEST_QOP_VALUE_STRING_AUTH_INT "auth-int"
#define DIGEST_QOP_VALUE_STRING_AUTH_CONF "auth-conf"
-#define DIGEST_MAX_VALUE_LENGTH 256
-#define DIGEST_MAX_CONTENT_LENGTH 1024
-
/* The CURL_OUTPUT_DIGEST_CONV macro below is for non-ASCII machines.
It converts digest text to ASCII so the MD5 will be correct for
what ultimately goes over the network.
@@ -90,13 +87,16 @@ const struct {
return result; \
}
+#endif
+
+#if !defined(CURL_DISABLE_CRYPTO_AUTH)
/*
* Returns 0 on success and then the buffers are filled in fine.
*
* Non-zero means failure to parse.
*/
-static int sasl_digest_get_pair(const char *str, char *value, char *content,
- const char **endptr)
+int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
+ const char **endptr)
{
int c;
bool starts_with_quote = FALSE;
@@ -157,7 +157,9 @@ static int sasl_digest_get_pair(const char *str, char *value, char *content,
return 0; /* all is fine! */
}
+#endif
+#if !defined(CURL_DISABLE_CRYPTO_AUTH) && !defined(USE_WINDOWS_SSPI)
/* Convert md5 chunk to RFC2617 (section 3.1.3) -suitable ascii string*/
static void sasl_digest_md5_to_ascii(unsigned char *source, /* 16 bytes */
unsigned char *dest) /* 33 bytes */
@@ -776,7 +778,7 @@ CURLcode Curl_sasl_decode_digest_http_message(const char *chlg,
chlg++;
/* Extract a value=content pair */
- if(!sasl_digest_get_pair(chlg, value, content, &chlg)) {
+ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
if(Curl_raw_equal(value, "nonce")) {
digest->nonce = strdup(content);
if(!digest->nonce)
diff --git a/lib/curl_sasl.h b/lib/curl_sasl.h
index 0dc73770..117d60e3 100644
--- a/lib/curl_sasl.h
+++ b/lib/curl_sasl.h
@@ -65,6 +65,11 @@ struct kerberos5data;
#define SASL_MECH_STRING_NTLM "NTLM"
#define SASL_MECH_STRING_XOAUTH2 "XOAUTH2"
+#if !defined(CURL_DISABLE_CRYPTO_AUTH)
+#define DIGEST_MAX_VALUE_LENGTH 256
+#define DIGEST_MAX_CONTENT_LENGTH 1024
+#endif
+
enum {
CURLDIGESTALGO_MD5,
CURLDIGESTALGO_MD5SESS
@@ -136,6 +141,10 @@ char *Curl_sasl_build_spn(const char *service, const char *instance);
TCHAR *Curl_sasl_build_spn(const char *service, const char *instance);
#endif
+/* This is used to extract the realm from a challenge message */
+int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
+ const char **endptr);
+
#if defined(HAVE_GSSAPI)
char *Curl_sasl_build_gssapi_spn(const char *service, const char *host);
#endif
diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c
index 0a332e60..b149530f 100644
--- a/lib/curl_sasl_sspi.c
+++ b/lib/curl_sasl_sspi.c
@@ -40,6 +40,7 @@
#include "sendf.h"
#include "strdup.h"
#include "curl_printf.h"
+#include "rawstr.h"
/* The last #include files should be: */
#include "curl_memory.h"
@@ -274,6 +275,74 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data,
}
/*
+* Curl_override_sspi_http_realm()
+*
+* This is used to populate the domain in a SSPI identity structure
+* The realm is extracted from the challenge message and used as the
+* domain if it is not already explicitly set.
+*
+* Parameters:
+*
+* chlg [in] - The challenge message.
+* identity [in/out] - The identity structure.
+*
+* Returns CURLE_OK on success.
+*/
+CURLcode Curl_override_sspi_http_realm(const char *chlg,
+ SEC_WINNT_AUTH_IDENTITY *identity)
+{
+ xcharp_u domain, dup_domain;
+
+ /* If domain is blank or unset, check challenge message for realm */
+ if(!identity->Domain || !identity->DomainLength) {
+ for(;;) {
+ char value[DIGEST_MAX_VALUE_LENGTH];
+ char content[DIGEST_MAX_CONTENT_LENGTH];
+
+ /* Pass all additional spaces here */
+ while(*chlg && ISSPACE(*chlg))
+ chlg++;
+
+ /* Extract a value=content pair */
+ if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
+ if(Curl_raw_equal(value, "realm")) {
+
+ /* Setup identity's domain and length */
+ domain.tchar_ptr = Curl_convert_UTF8_to_tchar((char *)content);
+ if(!domain.tchar_ptr)
+ return CURLE_OUT_OF_MEMORY;
+ dup_domain.tchar_ptr = _tcsdup(domain.tchar_ptr);
+ if(!dup_domain.tchar_ptr) {
+ Curl_unicodefree(domain.tchar_ptr);
+ return CURLE_OUT_OF_MEMORY;
+ }
+ identity->Domain = dup_domain.tbyte_ptr;
+ identity->DomainLength = curlx_uztoul(_tcslen(dup_domain.tchar_ptr));
+ dup_domain.tchar_ptr = NULL;
+
+ Curl_unicodefree(domain.tchar_ptr);
+ }
+ else {
+ /* unknown specifier, ignore it! */
+ }
+ }
+ else
+ break; /* we're done here */
+
+ /* Pass all additional spaces here */
+ while(*chlg && ISSPACE(*chlg))
+ chlg++;
+
+ /* Allow the list to be comma-separated */
+ if(',' == *chlg)
+ chlg++;
+ }
+ }
+
+ return CURLE_OK;
+}
+
+/*
* Curl_sasl_decode_digest_http_message()
*
* This is used to decode a HTTP DIGEST challenge message into the seperate
@@ -374,6 +443,11 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
if(Curl_create_sspi_identity(userp, passwdp, &identity))
return CURLE_OUT_OF_MEMORY;
+ /* Populate our identity domain */
+ if(Curl_override_sspi_http_realm((const char*)digest->input_token,
+ &identity))
+ return CURLE_OUT_OF_MEMORY;
+
/* Allow proper cleanup of the identity structure */
p_identity = &identity;
}
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index 9c7cc07e..ab0c1394 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -707,4 +707,24 @@ int netware_init(void);
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
+/* In Windows the default file mode is text but an application can override it.
+Therefore we specify it explicitly. https://github.com/bagder/curl/pull/258
+*/
+#if defined(WIN32) || defined(MSDOS)
+#define FOPEN_READTEXT "rt"
+#define FOPEN_WRITETEXT "wt"
+#elif defined(__CYGWIN__)
+/* Cygwin has specific behavior we need to address when WIN32 is not defined.
+https://cygwin.com/cygwin-ug-net/using-textbinary.html
+For write we want our output to have line endings of LF and be compatible with
+other Cygwin utilities. For read we want to handle input that may have line
+endings either CRLF or LF so 't' is appropriate.
+*/
+#define FOPEN_READTEXT "rt"
+#define FOPEN_WRITETEXT "w"
+#else
+#define FOPEN_READTEXT "r"
+#define FOPEN_WRITETEXT "w"
+#endif
+
#endif /* HEADER_CURL_SETUP_H */
diff --git a/lib/curl_sspi.h b/lib/curl_sspi.h
index 7fa308c5..8655715e 100644
--- a/lib/curl_sspi.h
+++ b/lib/curl_sspi.h
@@ -43,6 +43,10 @@
CURLcode Curl_sspi_global_init(void);
void Curl_sspi_global_cleanup(void);
+/* This is used to populate the domain in a SSPI identity structure */
+CURLcode Curl_override_sspi_http_realm(const char *chlg,
+ SEC_WINNT_AUTH_IDENTITY *identity);
+
/* This is used to generate an SSPI identity structure */
CURLcode Curl_create_sspi_identity(const char *userp, const char *passwdp,
SEC_WINNT_AUTH_IDENTITY *identity);
diff --git a/lib/file.c b/lib/file.c
index 324d4e29..175b1073 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -315,8 +315,6 @@ static CURLcode file_upload(struct connectdata *conn)
* Since FILE: doesn't do the full init, we need to provide some extra
* assignments here.
*/
- conn->fread_func = data->set.fread_func;
- conn->fread_in = data->set.in;
conn->data->req.upload_fromhere = buf;
if(!dir)
diff --git a/lib/formdata.c b/lib/formdata.c
index cd98f3c6..9e8ce4ea 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -756,7 +756,7 @@ curl_off_t VmsRealFileSize(const char * name,
int ret_stat;
FILE * file;
- file = fopen(name, "r");
+ file = fopen(name, "r"); /* VMS */
if(file == NULL)
return 0;
@@ -1385,7 +1385,7 @@ static FILE * vmsfopenread(const char *file, const char *mode) {
case FAB$C_VAR:
case FAB$C_VFC:
case FAB$C_STMCR:
- return fopen(file, "r");
+ return fopen(file, "r"); /* VMS */
break;
default:
return fopen(file, "r", "rfm=stmlf", "ctx=stm");
diff --git a/lib/ftp.c b/lib/ftp.c
index 3692ebe4..de628a2d 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1670,8 +1670,8 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn,
BUFSIZE : curlx_sotouz(data->state.resume_from - passed);
size_t actuallyread =
- conn->fread_func(data->state.buffer, 1, readthisamountnow,
- conn->fread_in);
+ data->set.fread_func(data->state.buffer, 1, readthisamountnow,
+ data->set.in);
passed += actuallyread;
if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
@@ -1906,6 +1906,22 @@ static CURLcode proxy_magic(struct connectdata *conn,
return result;
}
+static char *control_address(struct connectdata *conn)
+{
+ /* Returns the control connection IP address.
+ If a proxy tunnel is used, returns the original host name instead, because
+ the effective control connection address is the proxy address,
+ not the ftp host. */
+ if(conn->bits.tunnel_proxy ||
+ conn->proxytype == CURLPROXY_SOCKS5 ||
+ conn->proxytype == CURLPROXY_SOCKS5_HOSTNAME ||
+ conn->proxytype == CURLPROXY_SOCKS4 ||
+ conn->proxytype == CURLPROXY_SOCKS4A)
+ return conn->host.name;
+
+ return conn->ip_addr_str;
+}
+
static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
int ftpcode)
{
@@ -1928,12 +1944,12 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
unsigned int num;
char separator[4];
ptr++;
- if(5 == sscanf(ptr, "%c%c%c%u%c",
- &separator[0],
- &separator[1],
- &separator[2],
- &num,
- &separator[3])) {
+ if(5 == sscanf(ptr, "%c%c%c%u%c",
+ &separator[0],
+ &separator[1],
+ &separator[2],
+ &num,
+ &separator[3])) {
const char sep1 = separator[0];
int i;
@@ -1951,9 +1967,7 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
}
if(ptr) {
ftpc->newport = (unsigned short)(num & 0xffff);
-
- /* use the original host name again */
- ftpc->newhost = strdup(conn->host.name);
+ ftpc->newhost = strdup(control_address(conn));
if(!ftpc->newhost)
return CURLE_OUT_OF_MEMORY;
}
@@ -1983,8 +1997,8 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
*/
while(*str) {
if(6 == sscanf(str, "%d,%d,%d,%d,%d,%d",
- &ip[0], &ip[1], &ip[2], &ip[3],
- &port[0], &port[1]))
+ &ip[0], &ip[1], &ip[2], &ip[3],
+ &port[0], &port[1]))
break;
str++;
}
@@ -2001,9 +2015,7 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
infof(data, "Skip %d.%d.%d.%d for data connection, re-use %s instead\n",
ip[0], ip[1], ip[2], ip[3],
conn->host.name);
-
- /* use the original host name again */
- ftpc->newhost = strdup(conn->host.name);
+ ftpc->newhost = strdup(control_address(conn));
}
else
ftpc->newhost = aprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
@@ -2061,9 +2073,8 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
conn->bits.tcpconnect[SECONDARYSOCKET] = FALSE;
result = Curl_connecthost(conn, addr);
- Curl_resolv_unlock(data, addr); /* we're done using this address */
-
if(result) {
+ Curl_resolv_unlock(data, addr); /* we're done using this address */
if(ftpc->count1 == 0 && ftpcode == 229)
return ftp_epsv_disable(conn);
@@ -2079,8 +2090,9 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
if(data->set.verbose)
/* this just dumps information about this second connection */
- ftp_pasv_verbose(conn, conn->ip_addr, ftpc->newhost, connectport);
+ ftp_pasv_verbose(conn, addr->addr, ftpc->newhost, connectport);
+ Curl_resolv_unlock(data, addr); /* we're done using this address */
conn->bits.do_more = TRUE;
state(conn, FTP_STOP); /* this phase is completed */
diff --git a/lib/hash.c b/lib/hash.c
index 76a7d2bb..c46760ae 100644
--- a/lib/hash.c
+++ b/lib/hash.c
@@ -89,32 +89,6 @@ Curl_hash_init(struct curl_hash *h,
}
}
-struct curl_hash *
-Curl_hash_alloc(int slots,
- hash_function hfunc,
- comp_function comparator,
- curl_hash_dtor dtor)
-{
- struct curl_hash *h;
-
- if(!slots || !hfunc || !comparator ||!dtor) {
- return NULL; /* failure */
- }
-
- h = malloc(sizeof(struct curl_hash));
- if(h) {
- if(Curl_hash_init(h, slots, hfunc, comparator, dtor)) {
- /* failure */
- free(h);
- h = NULL;
- }
- }
-
- return h;
-}
-
-
-
static struct curl_hash_element *
mk_hash_element(const void *key, size_t key_len, const void *p)
{
@@ -238,8 +212,11 @@ Curl_hash_apply(curl_hash *h, void *user,
}
#endif
+/* Destroys all the entries in the given hash and resets its attributes,
+ * prepping the given hash for [static|dynamic] deallocation.
+ */
void
-Curl_hash_clean(struct curl_hash *h)
+Curl_hash_destroy(struct curl_hash *h)
{
int i;
@@ -253,6 +230,17 @@ Curl_hash_clean(struct curl_hash *h)
h->slots = 0;
}
+/* Removes all the entries in the given hash.
+ *
+ * @unittest: 1602
+ */
+void
+Curl_hash_clean(struct curl_hash *h)
+{
+ Curl_hash_clean_with_criterium(h, NULL, NULL);
+}
+
+/* Cleans all entries that pass the comp function criteria. */
void
Curl_hash_clean_with_criterium(struct curl_hash *h, void *user,
int (*comp)(void *, void *))
@@ -272,7 +260,7 @@ Curl_hash_clean_with_criterium(struct curl_hash *h, void *user,
struct curl_hash_element *he = le->ptr;
lnext = le->next;
/* ask the callback function if we shall remove this entry or not */
- if(comp(user, he->ptr)) {
+ if(comp == NULL || comp(user, he->ptr)) {
Curl_llist_remove(list, le, (void *) h);
--h->size; /* one less entry in the hash now */
}
@@ -281,17 +269,6 @@ Curl_hash_clean_with_criterium(struct curl_hash *h, void *user,
}
}
-void
-Curl_hash_destroy(struct curl_hash *h)
-{
- if(!h)
- return;
-
- Curl_hash_clean(h);
-
- free(h);
-}
-
size_t Curl_hash_str(void* key, size_t key_length, size_t slots_num)
{
const char* key_str = (const char *) key;
@@ -306,16 +283,11 @@ size_t Curl_hash_str(void* key, size_t key_length, size_t slots_num)
return (h % slots_num);
}
-size_t Curl_str_key_compare(void*k1, size_t key1_len, void*k2, size_t key2_len)
+size_t Curl_str_key_compare(void *k1, size_t key1_len,
+ void *k2, size_t key2_len)
{
- char *key1 = (char *)k1;
- char *key2 = (char *)k2;
-
- if(key1_len == key2_len &&
- *key1 == *key2 &&
- memcmp(key1, key2, key1_len) == 0) {
+ if((key1_len == key2_len) && !memcmp(k1, k2, key1_len))
return 1;
- }
return 0;
}
diff --git a/lib/hash.h b/lib/hash.h
index aa935d4e..b13a236b 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -74,22 +74,16 @@ int Curl_hash_init(struct curl_hash *h,
comp_function comparator,
curl_hash_dtor dtor);
-struct curl_hash *Curl_hash_alloc(int slots,
- hash_function hfunc,
- comp_function comparator,
- curl_hash_dtor dtor);
-
void *Curl_hash_add(struct curl_hash *h, void *key, size_t key_len, void *p);
int Curl_hash_delete(struct curl_hash *h, void *key, size_t key_len);
void *Curl_hash_pick(struct curl_hash *, void * key, size_t key_len);
void Curl_hash_apply(struct curl_hash *h, void *user,
void (*cb)(void *user, void *ptr));
int Curl_hash_count(struct curl_hash *h);
+void Curl_hash_destroy(struct curl_hash *h);
void Curl_hash_clean(struct curl_hash *h);
void Curl_hash_clean_with_criterium(struct curl_hash *h, void *user,
int (*comp)(void *, void *));
-void Curl_hash_destroy(struct curl_hash *h);
-
size_t Curl_hash_str(void* key, size_t key_length, size_t slots_num);
size_t Curl_str_key_compare(void*k1, size_t key1_len, void*k2,
size_t key2_len);
diff --git a/lib/hostip.c b/lib/hostip.c
index 764e7802..82f3897f 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -137,7 +137,7 @@ struct curl_hash *Curl_global_host_cache_init(void)
void Curl_global_host_cache_dtor(void)
{
if(host_cache_initialized) {
- Curl_hash_clean(&hostname_cache);
+ Curl_hash_destroy(&hostname_cache);
host_cache_initialized = 0;
}
}
@@ -742,11 +742,12 @@ static void freednsentry(void *freethis)
}
/*
- * Curl_mk_dnscache() creates a new DNS cache and returns the handle for it.
+ * Curl_mk_dnscache() inits a new DNS cache and returns success/failure.
*/
-struct curl_hash *Curl_mk_dnscache(void)
+int Curl_mk_dnscache(struct curl_hash *hash)
{
- return Curl_hash_alloc(7, Curl_hash_str, Curl_str_key_compare, freednsentry);
+ return Curl_hash_init(hash, 7, Curl_hash_str, Curl_str_key_compare,
+ freednsentry);
}
/*
diff --git a/lib/hostip.h b/lib/hostip.h
index a79b89a4..d5b44bc9 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -124,8 +124,8 @@ void Curl_resolv_unlock(struct SessionHandle *data,
/* for debugging purposes only: */
void Curl_scan_cache_used(void *user, void *ptr);
-/* make a new dns cache and return the handle */
-struct curl_hash *Curl_mk_dnscache(void);
+/* init a new dns cache and return success */
+int Curl_mk_dnscache(struct curl_hash *hash);
/* prune old entries from the DNS cache */
void Curl_hostcache_prune(struct SessionHandle *data);
diff --git a/lib/http.c b/lib/http.c
index beab543e..e06c798e 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -72,7 +72,7 @@
#include "http_proxy.h"
#include "warnless.h"
#include "non-ascii.h"
-#include "bundles.h"
+#include "conncache.h"
#include "pipeline.h"
#include "http2.h"
#include "connect.h"
@@ -86,6 +86,7 @@
* Forward declarations.
*/
+static CURLcode http_disconnect(struct connectdata *conn, bool dead);
static int http_getsock_do(struct connectdata *conn,
curl_socket_t *socks,
int numsocks);
@@ -116,7 +117,7 @@ const struct Curl_handler Curl_handler_http = {
http_getsock_do, /* doing_getsock */
ZERO_NULL, /* domore_getsock */
ZERO_NULL, /* perform_getsock */
- ZERO_NULL, /* disconnect */
+ http_disconnect, /* disconnect */
ZERO_NULL, /* readwrite */
PORT_HTTP, /* defport */
CURLPROTO_HTTP, /* protocol */
@@ -140,7 +141,7 @@ const struct Curl_handler Curl_handler_https = {
http_getsock_do, /* doing_getsock */
ZERO_NULL, /* domore_getsock */
ZERO_NULL, /* perform_getsock */
- ZERO_NULL, /* disconnect */
+ http_disconnect, /* disconnect */
ZERO_NULL, /* readwrite */
PORT_HTTPS, /* defport */
CURLPROTO_HTTPS, /* protocol */
@@ -153,12 +154,32 @@ CURLcode Curl_http_setup_conn(struct connectdata *conn)
{
/* allocate the HTTP-specific struct for the SessionHandle, only to survive
during this request */
+ struct HTTP *http;
DEBUGASSERT(conn->data->req.protop == NULL);
- conn->data->req.protop = calloc(1, sizeof(struct HTTP));
- if(!conn->data->req.protop)
+ http = calloc(1, sizeof(struct HTTP));
+ if(!http)
return CURLE_OUT_OF_MEMORY;
+ conn->data->req.protop = http;
+
+ Curl_http2_setup_conn(conn);
+
+ return CURLE_OK;
+}
+
+static CURLcode http_disconnect(struct connectdata *conn, bool dead_connection)
+{
+#ifdef USE_NGHTTP2
+ struct HTTP *http = conn->data->req.protop;
+ if(http) {
+ Curl_add_buffer_free(http->header_recvbuf);
+ http->header_recvbuf = NULL; /* clear the pointer */
+ }
+#else
+ (void)conn;
+#endif
+ (void)dead_connection;
return CURLE_OK;
}
@@ -403,8 +424,8 @@ static CURLcode http_perhapsrewind(struct connectdata *conn)
/* figure out how much data we are expected to send */
switch(data->set.httpreq) {
case HTTPREQ_POST:
- if(data->set.postfieldsize != -1)
- expectsend = data->set.postfieldsize;
+ if(data->state.infilesize != -1)
+ expectsend = data->state.infilesize;
else if(data->set.postfields)
expectsend = (curl_off_t)strlen(data->set.postfields);
break;
@@ -995,8 +1016,8 @@ static size_t readmoredata(char *buffer,
/* move backup data into focus and continue on that */
http->postdata = http->backup.postdata;
http->postsize = http->backup.postsize;
- conn->fread_func = http->backup.fread_func;
- conn->fread_in = http->backup.fread_in;
+ conn->data->set.fread_func = http->backup.fread_func;
+ conn->data->set.in = http->backup.fread_in;
http->sending++; /* move one step up */
@@ -1027,6 +1048,16 @@ Curl_send_buffer *Curl_add_buffer_init(void)
}
/*
+ * Curl_add_buffer_free() frees all associated resources.
+ */
+void Curl_add_buffer_free(Curl_send_buffer *buff)
+{
+ if(buff) /* deal with NULL input */
+ free(buff->buffer);
+ free(buff);
+}
+
+/*
* Curl_add_buffer_send() sends a header buffer and frees all associated
* memory. Body data may be appended to the header data if desired.
*
@@ -1072,8 +1103,7 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
/* Curl_convert_to_network calls failf if unsuccessful */
if(result) {
/* conversion failed, free memory and return to the caller */
- free(in->buffer);
- free(in);
+ Curl_add_buffer_free(in);
return result;
}
@@ -1142,14 +1172,14 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
ptr = in->buffer + amount;
/* backup the currently set pointers */
- http->backup.fread_func = conn->fread_func;
- http->backup.fread_in = conn->fread_in;
+ http->backup.fread_func = conn->data->set.fread_func;
+ http->backup.fread_in = conn->data->set.in;
http->backup.postdata = http->postdata;
http->backup.postsize = http->postsize;
/* set the new pointers for the request-sending */
- conn->fread_func = (curl_read_callback)readmoredata;
- conn->fread_in = (void *)conn;
+ conn->data->set.fread_func = (curl_read_callback)readmoredata;
+ conn->data->set.in = (void *)conn;
http->postdata = ptr;
http->postsize = (curl_off_t)size;
@@ -1172,11 +1202,10 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
*/
return CURLE_SEND_ERROR;
else
- conn->writechannel_inuse = FALSE;
+ Curl_pipeline_leave_write(conn);
}
}
- free(in->buffer);
- free(in);
+ Curl_add_buffer_free(in);
return result;
}
@@ -1446,8 +1475,6 @@ CURLcode Curl_http_done(struct connectdata *conn,
#endif
/* set the proper values (possibly modified on POST) */
- conn->fread_func = data->set.fread_func; /* restore */
- conn->fread_in = data->set.in; /* restore */
conn->seek_func = data->set.seek_func; /* restore */
conn->seek_client = data->set.seek_client; /* restore */
@@ -1455,13 +1482,18 @@ CURLcode Curl_http_done(struct connectdata *conn,
return CURLE_OK;
if(http->send_buffer) {
- Curl_send_buffer *buff = http->send_buffer;
-
- free(buff->buffer);
- free(buff);
+ Curl_add_buffer_free(http->send_buffer);
http->send_buffer = NULL; /* clear the pointer */
}
+#ifdef USE_NGHTTP2
+ if(http->header_recvbuf) {
+ DEBUGF(infof(data, "free header_recvbuf!!\n"));
+ Curl_add_buffer_free(http->header_recvbuf);
+ http->header_recvbuf = NULL; /* clear the pointer */
+ }
+#endif
+
if(HTTPREQ_POST_FORM == data->set.httpreq) {
data->req.bytecount = http->readbytecount + http->writebytecount;
@@ -2280,20 +2312,12 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
te
);
- /*
- * Free userpwd for Negotiate/NTLM. Cannot reuse as it is associated with
- * the connection and shouldn't be repeated over it either.
- */
- switch (data->state.authhost.picked) {
- case CURLAUTH_NEGOTIATE:
- case CURLAUTH_NTLM:
- case CURLAUTH_NTLM_WB:
- Curl_safefree(conn->allocptr.userpwd);
- break;
- }
+ /* clear userpwd to avoid re-using credentials from re-used connections */
+ Curl_safefree(conn->allocptr.userpwd);
/*
- * Same for proxyuserpwd
+ * Free proxyuserpwd for Negotiate/NTLM. Cannot reuse as it is associated
+ * with the connection and shouldn't be repeated over it either.
*/
switch (data->state.authproxy.picked) {
case CURLAUTH_NEGOTIATE:
@@ -2413,14 +2437,14 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* Get the currently set callback function pointer and store that in the
form struct since we might want the actual user-provided callback later
- on. The conn->fread_func pointer itself will be changed for the
+ on. The data->set.fread_func pointer itself will be changed for the
multipart case to the function that returns a multipart formatted
stream. */
- http->form.fread_func = conn->fread_func;
+ http->form.fread_func = data->set.fread_func;
/* Set the read function to read from the generated form data */
- conn->fread_func = (curl_read_callback)Curl_FormReader;
- conn->fread_in = &http->form;
+ data->set.fread_func = (curl_read_callback)Curl_FormReader;
+ data->set.in = &http->form;
http->sending = HTTPSEND_BODY;
@@ -2540,8 +2564,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
postsize = 0;
else {
/* figure out the size of the postfields */
- postsize = (data->set.postfieldsize != -1)?
- data->set.postfieldsize:
+ postsize = (data->state.infilesize != -1)?
+ data->state.infilesize:
(data->set.postfields? (curl_off_t)strlen(data->set.postfields):-1);
}
@@ -2638,8 +2662,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
http->sending = HTTPSEND_BODY;
- conn->fread_func = (curl_read_callback)readmoredata;
- conn->fread_in = (void *)conn;
+ data->set.fread_func = (curl_read_callback)readmoredata;
+ data->set.in = (void *)conn;
/* set the upload size to the progress meter */
Curl_pgrsSetUploadSize(data, http->postsize);
@@ -2664,7 +2688,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
return result;
}
- else if(data->set.postfieldsize) {
+ else if(data->state.infilesize) {
/* set the upload size to the progress meter */
Curl_pgrsSetUploadSize(data, postsize?postsize:-1);
@@ -3055,6 +3079,19 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
}
}
+ /* 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)
+ if(conn->bits.close &&
+ (((data->req.httpcode == 401) &&
+ (conn->ntlm.state == NTLMSTATE_TYPE2)) ||
+ ((data->req.httpcode == 407) &&
+ (conn->proxyntlm.state == NTLMSTATE_TYPE2)))) {
+ infof(data, "Connection closure while negotiating auth (HTTP 1.0?)\n");
+ data->state.authproblem = TRUE;
+ }
+#endif
+
/*
* When all the headers have been parsed, see if we should give
* up and return an error.
@@ -3332,28 +3369,23 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
}
else if(conn->httpversion == 20 ||
(k->upgr101 == UPGR101_REQUESTED && k->httpcode == 101)) {
- /* Don't enable pipelining for HTTP/2 or upgraded connection. For
- HTTP/2, we do not support multiplexing. In general, requests
- cannot be pipelined in upgraded connection, since it is now
- different protocol. */
- DEBUGF(infof(data,
- "HTTP 2 or upgraded connection do not support "
- "pipelining for now\n"));
+ DEBUGF(infof(data, "HTTP/2 found, allow multiplexing\n"));
+
+ /* HTTP/2 cannot blacklist multiplexing since it is a core
+ functionality of the protocol */
+ conn->bundle->multiuse = BUNDLE_MULTIPLEX;
}
else if(conn->httpversion >= 11 &&
!conn->bits.close) {
- struct connectbundle *cb_ptr;
-
/* If HTTP version is >= 1.1 and connection is persistent
server supports pipelining. */
DEBUGF(infof(data,
"HTTP 1.1 or later with persistent connection, "
"pipelining supported\n"));
/* Activate pipelining if needed */
- cb_ptr = conn->bundle;
- if(cb_ptr) {
+ if(conn->bundle) {
if(!Curl_pipeline_site_blacklisted(data, conn))
- cb_ptr->server_supports_pipelining = TRUE;
+ conn->bundle->multiuse = BUNDLE_PIPELINING;
}
}
@@ -3432,14 +3464,17 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
}
}
else if(checkprefix("Server:", k->p)) {
- char *server_name = Curl_copy_header_value(k->p);
-
- /* Turn off pipelining if the server version is blacklisted */
- if(conn->bundle && conn->bundle->server_supports_pipelining) {
- if(Curl_pipeline_server_blacklisted(data, server_name))
- conn->bundle->server_supports_pipelining = FALSE;
+ if(conn->httpversion < 20) {
+ /* only do this for non-h2 servers */
+ char *server_name = Curl_copy_header_value(k->p);
+
+ /* Turn off pipelining if the server version is blacklisted */
+ if(conn->bundle && (conn->bundle->multiuse == BUNDLE_PIPELINING)) {
+ if(Curl_pipeline_server_blacklisted(data, server_name))
+ conn->bundle->multiuse = BUNDLE_NO_MULTIUSE;
+ }
+ free(server_name);
}
- free(server_name);
}
else if((conn->httpversion == 10) &&
conn->bits.httpproxy &&
diff --git a/lib/http.h b/lib/http.h
index f7d64e8c..415be39e 100644
--- a/lib/http.h
+++ b/lib/http.h
@@ -60,6 +60,7 @@ struct Curl_send_buffer {
typedef struct Curl_send_buffer Curl_send_buffer;
Curl_send_buffer *Curl_add_buffer_init(void);
+void Curl_add_buffer_free(Curl_send_buffer *buff);
CURLcode Curl_add_bufferf(Curl_send_buffer *in, const char *fmt, ...);
CURLcode Curl_add_buffer(Curl_send_buffer *in, const void *inptr, size_t size);
CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
@@ -152,43 +153,66 @@ struct HTTP {
void *send_buffer; /* used if the request couldn't be sent in one chunk,
points to an allocated send_buffer struct */
+
+#ifdef USE_NGHTTP2
+ /*********** for HTTP/2 we store stream-local data here *************/
+ int32_t stream_id; /* stream we are interested in */
+
+ bool bodystarted;
+ /* We store non-final and final response headers here, per-stream */
+ Curl_send_buffer *header_recvbuf;
+ size_t nread_header_recvbuf; /* number of bytes in header_recvbuf fed into
+ upper layer */
+ int status_code; /* HTTP status code */
+ const uint8_t *pausedata; /* pointer to data received in on_data_chunk */
+ size_t pauselen; /* the number of bytes left in data */
+ bool closed; /* TRUE on HTTP2 stream close */
+ uint32_t error_code; /* HTTP/2 error code */
+
+ char *mem; /* points to a buffer in memory to store received data */
+ size_t len; /* size of the buffer 'mem' points to */
+ size_t memlen; /* size of data copied to mem */
+
+ const uint8_t *upload_mem; /* points to a buffer to read from */
+ size_t upload_len; /* size of the buffer 'upload_mem' points to */
+ curl_off_t upload_left; /* number of bytes left to upload */
+#endif
};
typedef int (*sending)(void); /* Curl_send */
typedef int (*recving)(void); /* Curl_recv */
+#ifdef USE_NGHTTP2
+/* h2 settings for this connection */
+struct h2settings {
+ uint32_t max_concurrent_streams;
+ bool enable_push;
+};
+#endif
+
+
struct http_conn {
#ifdef USE_NGHTTP2
#define H2_BINSETTINGS_LEN 80
nghttp2_session *h2;
uint8_t binsettings[H2_BINSETTINGS_LEN];
size_t binlen; /* length of the binsettings data */
- char *mem; /* points to a buffer in memory to store */
- size_t len; /* size of the buffer 'mem' points to */
- bool bodystarted;
sending send_underlying; /* underlying send Curl_send callback */
recving recv_underlying; /* underlying recv Curl_recv callback */
- bool closed; /* TRUE on HTTP2 stream close */
- uint32_t error_code; /* HTTP/2 error code */
- Curl_send_buffer *header_recvbuf; /* store response headers. We
- store non-final and final
- response headers into it. */
- size_t nread_header_recvbuf; /* number of bytes in header_recvbuf
- fed into upper layer */
- int32_t stream_id; /* stream we are interested in */
- const uint8_t *data; /* pointer to data chunk, received in
- on_data_chunk */
- size_t datalen; /* the number of bytes left in data */
char *inbuf; /* buffer to receive data from underlying socket */
+ size_t inbuflen; /* number of bytes filled in inbuf */
+ size_t nread_inbuf; /* number of bytes read from in inbuf */
/* We need separate buffer for transmission and reception because we
may call nghttp2_session_send() after the
nghttp2_session_mem_recv() but mem buffer is still not full. In
this case, we wrongly sends the content of mem buffer if we share
them for both cases. */
- const uint8_t *upload_mem; /* points to a buffer to read from */
- size_t upload_len; /* size of the buffer 'upload_mem' points to */
- size_t upload_left; /* number of bytes left to upload */
- int status_code; /* HTTP status code */
+ int32_t pause_stream_id; /* stream ID which paused
+ nghttp2_session_mem_recv */
+
+ /* this is a hash of all individual streams (SessionHandle structs) */
+ struct curl_hash streamsh;
+ struct h2settings settings;
#else
int unused; /* prevent a compiler warning */
#endif
diff --git a/lib/http2.c b/lib/http2.c
index 9410cf28..fa47d0ec 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -32,11 +32,14 @@
#include "curl_base64.h"
#include "rawstr.h"
#include "multiif.h"
+#include "conncache.h"
/* The last #include files should be: */
#include "curl_memory.h"
#include "memdebug.h"
+#define MIN(x,y) ((x)<(y)?(x):(y))
+
#if (NGHTTP2_VERSION_NUM < 0x000600)
#error too old nghttp2 version, upgrade!
#endif
@@ -48,7 +51,7 @@ static int http2_perform_getsock(const struct connectdata *conn,
sockets */
int numsocks)
{
- const struct http_conn *httpc = &conn->proto.httpc;
+ const struct http_conn *c = &conn->proto.httpc;
int bitmap = GETSOCK_BLANK;
(void)numsocks;
@@ -56,10 +59,10 @@ static int http2_perform_getsock(const struct connectdata *conn,
because of renegotiation. */
sock[0] = conn->sock[FIRSTSOCKET];
- if(nghttp2_session_want_read(httpc->h2))
+ if(nghttp2_session_want_read(c->h2))
bitmap |= GETSOCK_READSOCK(FIRSTSOCKET);
- if(nghttp2_session_want_write(httpc->h2))
+ if(nghttp2_session_want_write(c->h2))
bitmap |= GETSOCK_WRITESOCK(FIRSTSOCKET);
return bitmap;
@@ -76,23 +79,42 @@ static int http2_getsock(struct connectdata *conn,
static CURLcode http2_disconnect(struct connectdata *conn,
bool dead_connection)
{
- struct http_conn *httpc = &conn->proto.httpc;
+ struct http_conn *c = &conn->proto.httpc;
(void)dead_connection;
DEBUGF(infof(conn->data, "HTTP/2 DISCONNECT starts now\n"));
- nghttp2_session_del(httpc->h2);
-
- Curl_safefree(httpc->header_recvbuf->buffer);
- Curl_safefree(httpc->header_recvbuf);
-
- Curl_safefree(httpc->inbuf);
+ nghttp2_session_del(c->h2);
+ Curl_safefree(c->inbuf);
+ Curl_hash_destroy(&c->streamsh);
DEBUGF(infof(conn->data, "HTTP/2 DISCONNECT done\n"));
return CURLE_OK;
}
+/* called from Curl_http_setup_conn */
+void Curl_http2_setup_conn(struct connectdata *conn)
+{
+ struct HTTP *http = conn->data->req.protop;
+
+ conn->proto.httpc.settings.max_concurrent_streams =
+ DEFAULT_MAX_CONCURRENT_STREAMS;
+
+ http->nread_header_recvbuf = 0;
+ http->bodystarted = FALSE;
+ http->status_code = -1;
+ http->pausedata = NULL;
+ http->pauselen = 0;
+ http->error_code = NGHTTP2_NO_ERROR;
+ http->closed = FALSE;
+
+ /* where to store incoming data for this stream and how big the buffer is */
+ http->mem = conn->data->state.buffer;
+ http->len = BUFSIZE;
+ http->memlen = 0;
+}
+
/*
* HTTP2 handler interface. This isn't added to the general list of protocols
* but will be used at run-time when the protocol is dynamically switched from
@@ -158,15 +180,15 @@ static ssize_t send_callback(nghttp2_session *h2,
void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
- struct http_conn *httpc = &conn->proto.httpc;
+ struct http_conn *c = &conn->proto.httpc;
ssize_t written;
CURLcode result = CURLE_OK;
(void)h2;
(void)flags;
- written = ((Curl_send*)httpc->send_underlying)(conn, FIRSTSOCKET,
- data, length, &result);
+ written = ((Curl_send*)c->send_underlying)(conn, FIRSTSOCKET,
+ data, length, &result);
if(result == CURLE_AGAIN) {
return NGHTTP2_ERR_WOULDBLOCK;
@@ -187,21 +209,42 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
- struct http_conn *c = &conn->proto.httpc;
+ struct http_conn *httpc = &conn->proto.httpc;
+ struct SessionHandle *data_s = NULL;
+ struct HTTP *stream = NULL;
int rv;
size_t left, ncopy;
+ int32_t stream_id = frame->hd.stream_id;
(void)session;
(void)frame;
- DEBUGF(infof(conn->data, "on_frame_recv() was called with header %x\n",
- frame->hd.type));
+ DEBUGF(infof(conn->data, "on_frame_recv() header %x stream %x\n",
+ frame->hd.type, stream_id));
+
+ if(stream_id) {
+ /* get the stream from the hash based on Stream ID, stream ID zero is for
+ connection-oriented stuff */
+ data_s = Curl_hash_pick(&httpc->streamsh, &stream_id,
+ sizeof(stream_id));
+ if(!data_s) {
+ /* Receiving a Stream ID not in the hash should not happen, this is an
+ internal error more than anything else! */
+ failf(conn->data, "Received frame on Stream ID: %x not in stream hash!",
+ stream_id);
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ }
+ stream = data_s->req.protop;
+ }
+ else
+ /* we do nothing on stream zero */
+ return 0;
+
switch(frame->hd.type) {
case NGHTTP2_DATA:
- /* If body started, then receiving DATA is illegal. */
- if(!c->bodystarted) {
+ /* If body started on this stream, then receiving DATA is illegal. */
+ if(!stream->bodystarted) {
rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
+ stream_id, NGHTTP2_PROTOCOL_ERROR);
if(nghttp2_is_fatal(rv)) {
return NGHTTP2_ERR_CALLBACK_FAILURE;
@@ -212,54 +255,44 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
if(frame->headers.cat == NGHTTP2_HCAT_REQUEST)
break;
- if(c->bodystarted) {
- /* Only valid HEADERS after body started is trailer header,
- which is not fully supported in this code. If HEADERS is not
- trailer, then it is a PROTOCOL_ERROR. */
- if((frame->hd.flags & NGHTTP2_FLAG_END_STREAM) == 0) {
- rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
-
- if(nghttp2_is_fatal(rv)) {
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
- }
+ if(stream->bodystarted) {
+ /* Only valid HEADERS after body started is trailer HEADERS. We
+ ignores trailer HEADERS for now. nghttp2 guarantees that it
+ has END_STREAM flag set. */
break;
}
- if(c->status_code == -1) {
- /* No :status header field means PROTOCOL_ERROR. */
- rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
-
- if(nghttp2_is_fatal(rv)) {
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
-
- break;
- }
+ /* nghttp2 guarantees that :status is received, and we store it to
+ stream->status_code */
+ DEBUGASSERT(stream->status_code != -1);
/* Only final status code signals the end of header */
- if(c->status_code / 100 != 1) {
- c->bodystarted = TRUE;
+ if(stream->status_code / 100 != 1) {
+ stream->bodystarted = TRUE;
+ stream->status_code = -1;
}
- c->status_code = -1;
+ Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
+
+ left = stream->header_recvbuf->size_used - stream->nread_header_recvbuf;
+ ncopy = MIN(stream->len, left);
- Curl_add_buffer(c->header_recvbuf, "\r\n", 2);
+ memcpy(&stream->mem[stream->memlen],
+ stream->header_recvbuf->buffer + stream->nread_header_recvbuf,
+ ncopy);
+ stream->nread_header_recvbuf += ncopy;
- left = c->header_recvbuf->size_used - c->nread_header_recvbuf;
- ncopy = c->len < left ? c->len : left;
+ DEBUGF(infof(data_s, "Store %zu bytes headers from stream %u at %p\n",
+ ncopy, stream_id, stream->mem));
- memcpy(c->mem, c->header_recvbuf->buffer + c->nread_header_recvbuf, ncopy);
- c->nread_header_recvbuf += ncopy;
+ stream->len -= ncopy;
+ stream->memlen += ncopy;
- c->mem += ncopy;
- c->len -= ncopy;
+ data_s->state.drain++;
+ Curl_expire(data_s, 1);
break;
case NGHTTP2_PUSH_PROMISE:
+ DEBUGF(infof(data_s, "Got PUSH_PROMISE, RST_STREAM it!\n"));
rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
frame->push_promise.promised_stream_id,
NGHTTP2_CANCEL);
@@ -267,20 +300,46 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
return rv;
}
break;
+ case NGHTTP2_SETTINGS:
+ {
+ uint32_t max_conn = httpc->settings.max_concurrent_streams;
+ DEBUGF(infof(conn->data, "Got SETTINGS for stream %u!\n", stream_id));
+ httpc->settings.max_concurrent_streams =
+ nghttp2_session_get_remote_settings(
+ session, NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS);
+ httpc->settings.enable_push =
+ nghttp2_session_get_remote_settings(
+ session, NGHTTP2_SETTINGS_ENABLE_PUSH);
+ DEBUGF(infof(conn->data, "MAX_CONCURRENT_STREAMS == %d\n",
+ httpc->settings.max_concurrent_streams));
+ DEBUGF(infof(conn->data, "ENABLE_PUSH == %s\n",
+ httpc->settings.enable_push?"TRUE":"false"));
+ if(max_conn != httpc->settings.max_concurrent_streams) {
+ /* only signal change if the value actually changed */
+ infof(conn->data,
+ "Connection state changed (MAX_CONCURRENT_STREAMS updated)!\n");
+ Curl_multi_connchanged(conn->data->multi);
+ }
+ }
+ break;
+ default:
+ DEBUGF(infof(conn->data, "Got frame type %x for stream %u!\n",
+ frame->hd.type, stream_id));
+ break;
}
return 0;
}
static int on_invalid_frame_recv(nghttp2_session *session,
const nghttp2_frame *frame,
- uint32_t error_code, void *userp)
+ int lib_error_code, void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
(void)session;
(void)frame;
DEBUGF(infof(conn->data,
- "on_invalid_frame_recv() was called, error_code = %d\n",
- error_code));
+ "on_invalid_frame_recv() was called, error=%d:%s\n",
+ lib_error_code, nghttp2_strerror(lib_error_code)));
return 0;
}
@@ -289,29 +348,52 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,
const uint8_t *data, size_t len, void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
- struct http_conn *c = &conn->proto.httpc;
+ struct HTTP *stream;
+ struct SessionHandle *data_s;
size_t nread;
(void)session;
(void)flags;
(void)data;
DEBUGF(infof(conn->data, "on_data_chunk_recv() "
- "len = %u, stream = %x\n", len, stream_id));
-
- if(stream_id != c->stream_id) {
- return 0;
+ "len = %u, stream %u\n", len, stream_id));
+
+ DEBUGASSERT(stream_id); /* should never be a zero stream ID here */
+
+ /* get the stream from the hash based on Stream ID */
+ data_s = Curl_hash_pick(&conn->proto.httpc.streamsh, &stream_id,
+ sizeof(stream_id));
+ if(!data_s) {
+ /* Receiving a Stream ID not in the hash should not happen, this is an
+ internal error more than anything else! */
+ failf(conn->data, "Received frame on Stream ID: %x not in stream hash!",
+ stream_id);
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
}
+ stream = data_s->req.protop;
- nread = c->len < len ? c->len : len;
- memcpy(c->mem, data, nread);
+ nread = MIN(stream->len, len);
+ memcpy(&stream->mem[stream->memlen], data, nread);
- c->mem += nread;
- c->len -= nread;
+ stream->len -= nread;
+ stream->memlen += nread;
- DEBUGF(infof(conn->data, "%zu data written\n", nread));
+ data_s->state.drain++;
+ Curl_expire(data_s, 1); /* TODO: fix so that this can be set to 0 for
+ immediately? */
+
+ DEBUGF(infof(data_s, "%zu data received for stream %u "
+ "(%zu left in buffer %p, total %zu)\n",
+ nread, stream_id,
+ stream->len, stream->mem,
+ stream->memlen));
if(nread < len) {
- c->data = data + nread;
- c->datalen = len - nread;
+ stream->pausedata = data + nread;
+ stream->pauselen = len - nread;
+ DEBUGF(infof(data_s, "NGHTTP2_ERR_PAUSE - %zu bytes out of buffer"
+ ", stream %u\n",
+ len - nread, stream_id));
+ conn->proto.httpc.pause_stream_id = stream_id;
return NGHTTP2_ERR_PAUSE;
}
return 0;
@@ -334,7 +416,8 @@ static int on_frame_send(nghttp2_session *session,
struct connectdata *conn = (struct connectdata *)userp;
(void)session;
(void)frame;
- DEBUGF(infof(conn->data, "on_frame_send() was called\n"));
+ DEBUGF(infof(conn->data, "on_frame_send() was called, length = %zd\n",
+ frame->hd.length));
return 0;
}
static int on_frame_not_send(nghttp2_session *session,
@@ -353,19 +436,37 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id,
uint32_t error_code, void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
- struct http_conn *c = &conn->proto.httpc;
+ struct SessionHandle *data_s;
+ struct HTTP *stream;
(void)session;
(void)stream_id;
- DEBUGF(infof(conn->data, "on_stream_close() was called, error_code = %d\n",
- error_code));
-
- if(stream_id != c->stream_id) {
- return 0;
- }
+ DEBUGF(infof(conn->data, "on_stream_close(), error_code = %d, stream %u\n",
+ error_code, stream_id));
+
+ if(stream_id) {
+ /* get the stream from the hash based on Stream ID, stream ID zero is for
+ connection-oriented stuff */
+ data_s = Curl_hash_pick(&conn->proto.httpc.streamsh, &stream_id,
+ sizeof(stream_id));
+ if(!data_s) {
+ /* We could get stream ID not in the hash. For example, if we
+ decided to reject stream (e.g., PUSH_PROMISE). We call infof
+ as a debugging purpose for now. */
+ infof(conn->data,
+ "Received frame on Stream ID: %x not in stream hash!\n",
+ stream_id);
+ return 0;
+ }
+ stream = data_s->req.protop;
- c->error_code = error_code;
- c->closed = TRUE;
+ stream->error_code = error_code;
+ stream->closed = TRUE;
+ /* remove the entry from the hash as the stream is now gone */
+ Curl_hash_delete(&conn->proto.httpc.streamsh,
+ &stream_id, sizeof(stream_id));
+ DEBUGF(infof(conn->data, "Removed stream %u hash!\n", stream_id));
+ }
return 0;
}
@@ -406,8 +507,6 @@ static int decode_status_code(const uint8_t *value, size_t len)
return res;
}
-static const char STATUS[] = ":status";
-
/* frame->hd.type is either NGHTTP2_HEADERS or NGHTTP2_PUSH_PROMISE */
static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
const uint8_t *name, size_t namelen,
@@ -416,10 +515,9 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
void *userp)
{
struct connectdata *conn = (struct connectdata *)userp;
- struct http_conn *c = &conn->proto.httpc;
- int rv;
- int goodname;
- int goodheader;
+ struct HTTP *stream;
+ struct SessionHandle *data_s;
+ int32_t stream_id = frame->hd.stream_id;
(void)session;
(void)frame;
@@ -430,83 +528,56 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
return 0;
}
- if(frame->hd.stream_id != c->stream_id) {
- return 0;
+ DEBUGASSERT(stream_id); /* should never be a zero stream ID here */
+
+ /* get the stream from the hash based on Stream ID */
+ data_s = Curl_hash_pick(&conn->proto.httpc.streamsh, &stream_id,
+ sizeof(stream_id));
+ if(!data_s) {
+ /* Receiving a Stream ID not in the hash should not happen, this is an
+ internal error more than anything else! */
+ failf(conn->data, "Received frame on Stream ID: %x not in stream hash!",
+ stream_id);
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
}
+ stream = data_s->req.protop;
- if(c->bodystarted) {
+ if(stream->bodystarted)
/* Ignore trailer or HEADERS not mapped to HTTP semantics. The
consequence is handled in on_frame_recv(). */
return 0;
- }
-
- goodname = nghttp2_check_header_name(name, namelen);
- goodheader = nghttp2_check_header_value(value, valuelen);
-
- if(!goodname || !goodheader) {
-
- infof(conn->data, "Detected bad incoming header %s%s, reset stream!\n",
- goodname?"":"name",
- goodheader?"":"value");
-
- rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
-
- if(nghttp2_is_fatal(rv)) {
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
-
- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
- }
if(namelen == sizeof(":status") - 1 &&
- memcmp(STATUS, name, namelen) == 0) {
-
- /* :status must appear exactly once. */
- if(c->status_code != -1 ||
- (c->status_code = decode_status_code(value, valuelen)) == -1) {
-
- rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
- if(nghttp2_is_fatal(rv)) {
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
-
- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
- }
-
- Curl_add_buffer(c->header_recvbuf, "HTTP/2.0 ", 9);
- Curl_add_buffer(c->header_recvbuf, value, valuelen);
- Curl_add_buffer(c->header_recvbuf, "\r\n", 2);
-
+ memcmp(":status", name, namelen) == 0) {
+ /* nghttp2 guarantees :status is received first and only once, and
+ value is 3 digits status code, and decode_status_code always
+ succeeds. */
+ stream->status_code = decode_status_code(value, valuelen);
+ DEBUGASSERT(stream->status_code != -1);
+
+ Curl_add_buffer(stream->header_recvbuf, "HTTP/2.0 ", 9);
+ Curl_add_buffer(stream->header_recvbuf, value, valuelen);
+ Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
+ data_s->state.drain++;
+ Curl_expire(data_s, 1);
+
+ DEBUGF(infof(data_s, "h2 status: HTTP/2 %03d\n",
+ stream->status_code));
return 0;
}
- else {
- /* Here we are sure that namelen > 0 because of
- nghttp2_check_header_name(). Pseudo header other than :status
- is illegal. */
- if(c->status_code == -1 || name[0] == ':') {
- rv = nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
- frame->hd.stream_id,
- NGHTTP2_PROTOCOL_ERROR);
- if(nghttp2_is_fatal(rv)) {
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
-
- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
- }
- /* convert to a HTTP1-style header */
- Curl_add_buffer(c->header_recvbuf, name, namelen);
- Curl_add_buffer(c->header_recvbuf, ":", 1);
- Curl_add_buffer(c->header_recvbuf, value, valuelen);
- Curl_add_buffer(c->header_recvbuf, "\r\n", 2);
+ /* nghttp2 guarantees that namelen > 0, and :status was already
+ received, and this is not pseudo-header field . */
+ /* convert to a HTTP1-style header */
+ Curl_add_buffer(stream->header_recvbuf, name, namelen);
+ Curl_add_buffer(stream->header_recvbuf, ":", 1);
+ Curl_add_buffer(stream->header_recvbuf, value, valuelen);
+ Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
+ data_s->state.drain++;
+ Curl_expire(data_s, 1);
- DEBUGF(infof(conn->data, "h2 header: %.*s: %.*s\n",
- namelen, name, valuelen, value));
- }
+ DEBUGF(infof(data_s, "h2 header: %.*s: %.*s\n", namelen, name, valuelen,
+ value));
return 0; /* 0 is successful */
}
@@ -520,24 +591,47 @@ static ssize_t data_source_read_callback(nghttp2_session *session,
{
struct connectdata *conn = (struct connectdata *)userp;
struct http_conn *c = &conn->proto.httpc;
+ struct SessionHandle *data_s;
+ struct HTTP *stream = NULL;
size_t nread;
(void)session;
(void)stream_id;
(void)source;
- nread = c->upload_len < length ? c->upload_len : length;
+ if(stream_id) {
+ /* get the stream from the hash based on Stream ID, stream ID zero is for
+ connection-oriented stuff */
+ data_s = Curl_hash_pick(&c->streamsh, &stream_id, sizeof(stream_id));
+ if(!data_s) {
+ /* Receiving a Stream ID not in the hash should not happen, this is an
+ internal error more than anything else! */
+ failf(conn->data, "Asked for data to stream %u not in hash!", stream_id);
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ }
+ stream = data_s->req.protop;
+ }
+ else {
+ failf(conn->data, "nghttp2 confusion");
+ return NGHTTP2_ERR_INVALID_ARGUMENT;
+ }
+
+ nread = MIN(stream->upload_len, length);
if(nread > 0) {
- memcpy(buf, c->upload_mem, nread);
- c->upload_mem += nread;
- c->upload_len -= nread;
- c->upload_left -= nread;
+ memcpy(buf, stream->upload_mem, nread);
+ stream->upload_mem += nread;
+ stream->upload_len -= nread;
+ stream->upload_left -= nread;
}
- if(c->upload_left == 0)
+ if(stream->upload_left == 0)
*data_flags = 1;
else if(nread == 0)
return NGHTTP2_ERR_DEFERRED;
+ DEBUGF(infof(data_s, "data_source_read_callback: "
+ "returns %zu bytes stream %u\n",
+ nread, stream_id));
+
return nread;
}
@@ -549,7 +643,12 @@ static nghttp2_settings_entry settings[] = {
{ NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, NGHTTP2_INITIAL_WINDOW_SIZE },
};
-#define H2_BUFSIZE 4096
+#define H2_BUFSIZE 32768
+
+static void freestreamentry(void *freethis)
+{
+ (void)freethis;
+}
/*
* Initialize nghttp2 for a Curl connection
@@ -601,8 +700,7 @@ CURLcode Curl_http2_init(struct connectdata *conn)
nghttp2_session_callbacks_set_on_header_callback(callbacks, on_header);
/* The nghttp2 session is not yet setup, do it */
- rc = nghttp2_session_client_new(&conn->proto.httpc.h2,
- callbacks, conn);
+ rc = nghttp2_session_client_new(&conn->proto.httpc.h2, callbacks, conn);
nghttp2_session_callbacks_del(callbacks);
@@ -610,6 +708,13 @@ CURLcode Curl_http2_init(struct connectdata *conn)
failf(conn->data, "Couldn't initialize nghttp2!");
return CURLE_OUT_OF_MEMORY; /* most likely at least */
}
+
+ rc = Curl_hash_init(&conn->proto.httpc.streamsh, 7, Curl_hash_str,
+ Curl_str_key_compare, freestreamentry);
+ if(rc) {
+ failf(conn->data, "Couldn't init stream hash!");
+ return CURLE_OUT_OF_MEMORY; /* most likely at least */
+ }
}
return CURLE_OK;
}
@@ -668,6 +773,25 @@ CURLcode Curl_http2_request_upgrade(Curl_send_buffer *req,
return result;
}
+static ssize_t http2_handle_stream_close(struct http_conn *httpc,
+ struct SessionHandle *data,
+ struct HTTP *stream, CURLcode *err) {
+ if(httpc->pause_stream_id == stream->stream_id) {
+ httpc->pause_stream_id = 0;
+ }
+ /* Reset to FALSE to prevent infinite loop in readwrite_data
+ function. */
+ stream->closed = FALSE;
+ if(stream->error_code != NGHTTP2_NO_ERROR) {
+ failf(data, "HTTP/2 stream %u was not closed cleanly: error_code = %d",
+ stream->stream_id, stream->error_code);
+ *err = CURLE_HTTP2;
+ return -1;
+ }
+ DEBUGF(infof(data, "http2_recv returns 0, http2_handle_stream_close\n"));
+ return 0;
+}
+
/*
* If the read would block (EWOULDBLOCK) we return -1. Otherwise we return
* a regular CURLcode value.
@@ -679,111 +803,184 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
ssize_t rv;
ssize_t nread;
struct http_conn *httpc = &conn->proto.httpc;
+ struct SessionHandle *data = conn->data;
+ struct HTTP *stream = data->req.protop;
(void)sockindex; /* we always do HTTP2 on sockindex 0 */
- if(httpc->closed) {
- /* Reset to FALSE to prevent infinite loop in readwrite_data
- function. */
- httpc->closed = FALSE;
- return 0;
+ /* If stream is closed, return 0 to signal the http routine to close
+ the connection. We need to handle stream closure here,
+ otherwise, we may be going to read from underlying connection,
+ and gets EAGAIN, and we will get stuck there. */
+ if(stream->memlen == 0 && stream->closed) {
+ return http2_handle_stream_close(httpc, data, stream, err);
}
/* Nullify here because we call nghttp2_session_send() and they
might refer to the old buffer. */
- httpc->upload_mem = NULL;
- httpc->upload_len = 0;
+ stream->upload_mem = NULL;
+ stream->upload_len = 0;
+
+ /*
+ * At this point 'stream' is just in the SessionHandle the connection
+ * identifies as its owner at this time.
+ */
- if(httpc->bodystarted &&
- httpc->nread_header_recvbuf < httpc->header_recvbuf->size_used) {
+ if(stream->bodystarted &&
+ stream->nread_header_recvbuf < stream->header_recvbuf->size_used) {
+ /* If there is body data pending for this stream to return, do that */
size_t left =
- httpc->header_recvbuf->size_used - httpc->nread_header_recvbuf;
- size_t ncopy = len < left ? len : left;
- memcpy(mem, httpc->header_recvbuf->buffer + httpc->nread_header_recvbuf,
+ stream->header_recvbuf->size_used - stream->nread_header_recvbuf;
+ size_t ncopy = MIN(len, left);
+ memcpy(mem, stream->header_recvbuf->buffer + stream->nread_header_recvbuf,
ncopy);
- httpc->nread_header_recvbuf += ncopy;
+ stream->nread_header_recvbuf += ncopy;
+
+ infof(data, "http2_recv: Got %d bytes from header_recvbuf\n",
+ (int)ncopy);
return ncopy;
}
- if(httpc->data) {
- nread = len < httpc->datalen ? len : httpc->datalen;
- memcpy(mem, httpc->data, nread);
-
- httpc->data += nread;
- httpc->datalen -= nread;
-
- infof(conn->data, "%zu data bytes written\n", nread);
- if(httpc->datalen == 0) {
- httpc->data = NULL;
- httpc->datalen = 0;
+ infof(data, "http2_recv: %d bytes buffer at %p (stream %u)\n",
+ len, mem, stream->stream_id);
+
+ if((data->state.drain) && stream->memlen) {
+ DEBUGF(infof(data, "http2_recv: DRAIN %zu bytes stream %u!! (%p => %p)\n",
+ stream->memlen, stream->stream_id,
+ stream->mem, mem));
+ if(mem != stream->mem) {
+ /* if we didn't get the same buffer this time, we must move the data to
+ the beginning */
+ memmove(mem, stream->mem, stream->memlen);
+ stream->len = len - stream->memlen;
+ stream->mem = mem;
}
- return nread;
}
+ else if(stream->pausedata) {
+ nread = MIN(len, stream->pauselen);
+ memcpy(mem, stream->pausedata, nread);
- conn->proto.httpc.mem = mem;
- conn->proto.httpc.len = len;
+ stream->pausedata += nread;
+ stream->pauselen -= nread;
- infof(conn->data, "http2_recv: %d bytes buffer\n",
- conn->proto.httpc.len);
+ infof(data, "%zu data bytes written\n", nread);
+ if(stream->pauselen == 0) {
+ DEBUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id));
+ assert(httpc->pause_stream_id == stream->stream_id);
+ httpc->pause_stream_id = 0;
- nread = ((Curl_recv*)httpc->recv_underlying)(conn, FIRSTSOCKET,
- httpc->inbuf, H2_BUFSIZE,
- &result);
- if(result == CURLE_AGAIN) {
- *err = result;
+ stream->pausedata = NULL;
+ stream->pauselen = 0;
+ }
+ infof(data, "http2_recv: returns unpaused %zd bytes on stream %u\n",
+ nread, stream->stream_id);
+ return nread;
+ }
+ else if(httpc->pause_stream_id) {
+ /* If a stream paused nghttp2_session_mem_recv previously, and has
+ not processed all data, it still refers to the buffer in
+ nghttp2_session. If we call nghttp2_session_mem_recv(), we may
+ overwrite that buffer. To avoid that situation, just return
+ here with CURLE_AGAIN. This could be busy loop since data in
+ socket is not read. But it seems that usually streams are
+ notified with its drain property, and socket is read again
+ quickly. */
+ *err = CURLE_AGAIN;
return -1;
}
+ else {
+ char *inbuf;
+ /* remember where to store incoming data for this stream and how big the
+ buffer is */
+ stream->mem = mem;
+ stream->len = len;
+ stream->memlen = 0;
+
+ if(httpc->inbuflen == 0) {
+ nread = ((Curl_recv *)httpc->recv_underlying)(
+ conn, FIRSTSOCKET, httpc->inbuf, H2_BUFSIZE, &result);
+
+ if(result == CURLE_AGAIN) {
+ *err = result;
+ return -1;
+ }
- if(nread == -1) {
- failf(conn->data, "Failed receiving HTTP2 data");
- *err = result;
- return 0;
- }
+ if(nread == -1) {
+ failf(data, "Failed receiving HTTP2 data");
+ *err = result;
+ return 0;
+ }
- if(nread == 0) {
- failf(conn->data, "Unexpected EOF");
- *err = CURLE_RECV_ERROR;
- return -1;
- }
+ if(nread == 0) {
+ failf(data, "Unexpected EOF");
+ *err = CURLE_RECV_ERROR;
+ return -1;
+ }
- DEBUGF(infof(conn->data, "nread=%zd\n", nread));
+ DEBUGF(infof(data, "nread=%zd\n", nread));
+
+ httpc->inbuflen = nread;
+ inbuf = httpc->inbuf;
+ }
+ else {
+ nread = httpc->inbuflen - httpc->nread_inbuf;
+ inbuf = httpc->inbuf + httpc->nread_inbuf;
- rv = nghttp2_session_mem_recv(httpc->h2,
- (const uint8_t *)httpc->inbuf, nread);
+ DEBUGF(infof(data, "Use data left in connection buffer, nread=%zd\n",
+ nread));
+ }
+ rv = nghttp2_session_mem_recv(httpc->h2, (const uint8_t *)inbuf, nread);
- if(nghttp2_is_fatal((int)rv)) {
- failf(conn->data, "nghttp2_session_mem_recv() returned %d:%s\n",
- rv, nghttp2_strerror((int)rv));
- *err = CURLE_RECV_ERROR;
- return 0;
- }
- DEBUGF(infof(conn->data, "nghttp2_session_mem_recv() returns %zd\n", rv));
- /* Always send pending frames in nghttp2 session, because
- nghttp2_session_mem_recv() may queue new frame */
- rv = nghttp2_session_send(httpc->h2);
- if(rv != 0) {
- *err = CURLE_SEND_ERROR;
- return 0;
+ if(nghttp2_is_fatal((int)rv)) {
+ failf(data, "nghttp2_session_mem_recv() returned %d:%s\n",
+ rv, nghttp2_strerror((int)rv));
+ *err = CURLE_RECV_ERROR;
+ return 0;
+ }
+ DEBUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", rv));
+ if(nread == rv) {
+ DEBUGF(infof(data, "All data in connection buffer processed\n"));
+ httpc->inbuflen = 0;
+ httpc->nread_inbuf = 0;
+ }
+ else {
+ httpc->nread_inbuf += rv;
+ DEBUGF(infof(data, "%zu bytes left in connection buffer\n",
+ httpc->inbuflen - httpc->nread_inbuf));
+ }
+ /* Always send pending frames in nghttp2 session, because
+ nghttp2_session_mem_recv() may queue new frame */
+ rv = nghttp2_session_send(httpc->h2);
+ if(rv != 0) {
+ *err = CURLE_SEND_ERROR;
+ return 0;
+ }
}
- if(len != httpc->len) {
- return len - conn->proto.httpc.len;
+ if(stream->memlen) {
+ ssize_t retlen = stream->memlen;
+ infof(data, "http2_recv: returns %zd for stream %u\n",
+ retlen, stream->stream_id);
+ stream->memlen = 0;
+
+ if(httpc->pause_stream_id == stream->stream_id) {
+ /* data for this stream is returned now, but this stream caused a pause
+ already so we need it called again asap */
+ DEBUGF(infof(data, "Data returned for PAUSED stream %u\n",
+ stream->stream_id));
+ }
+ else
+ data->state.drain = 0; /* this stream is hereby drained */
+
+ return retlen;
}
/* If stream is closed, return 0 to signal the http routine to close
the connection */
- if(httpc->closed) {
- /* Reset to FALSE to prevent infinite loop in readwrite_data
- function. */
- httpc->closed = FALSE;
- if(httpc->error_code != NGHTTP2_NO_ERROR) {
- failf(conn->data,
- "HTTP/2 stream = %x was not closed cleanly: error_code = %d",
- httpc->stream_id, httpc->error_code);
- *err = CURLE_HTTP2;
- return -1;
- }
- return 0;
+ if(stream->closed) {
+ return http2_handle_stream_close(httpc, data, stream, err);
}
*err = CURLE_AGAIN;
+ DEBUGF(infof(data, "http2_recv returns AGAIN for stream %u\n",
+ stream->stream_id));
return -1;
}
@@ -802,6 +999,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
*/
int rv;
struct http_conn *httpc = &conn->proto.httpc;
+ struct HTTP *stream = conn->data->req.protop;
nghttp2_nv *nva;
size_t nheader;
size_t i;
@@ -810,23 +1008,41 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
char *end;
nghttp2_data_provider data_prd;
int32_t stream_id;
+ nghttp2_session *h2 = httpc->h2;
(void)sockindex;
DEBUGF(infof(conn->data, "http2_send len=%zu\n", len));
- if(httpc->stream_id != -1) {
+ if(stream->stream_id != -1) {
/* If stream_id != -1, we have dispatched request HEADERS, and now
are going to send or sending request body in DATA frame */
- httpc->upload_mem = mem;
- httpc->upload_len = len;
- nghttp2_session_resume_data(httpc->h2, httpc->stream_id);
- rv = nghttp2_session_send(httpc->h2);
+ stream->upload_mem = mem;
+ stream->upload_len = len;
+ nghttp2_session_resume_data(h2, stream->stream_id);
+ rv = nghttp2_session_send(h2);
if(nghttp2_is_fatal(rv)) {
*err = CURLE_SEND_ERROR;
return -1;
}
- return len - httpc->upload_len;
+ len -= stream->upload_len;
+
+ /* Nullify here because we call nghttp2_session_send() and they
+ might refer to the old buffer. */
+ stream->upload_mem = NULL;
+ stream->upload_len = 0;
+
+ if(stream->upload_left) {
+ /* we are sure that we have more data to send here. Calling the
+ following API will make nghttp2_session_want_write() return
+ nonzero if remote window allows it, which then libcurl checks
+ socket is writable or not. See http2_perform_getsock(). */
+ nghttp2_session_resume_data(h2, stream->stream_id);
+ }
+
+ DEBUGF(infof(conn->data, "http2_send returns %zu for stream %u\n", len,
+ stream->stream_id));
+ return len;
}
/* Calculate number of headers contained in [mem, mem + len) */
@@ -905,12 +1121,15 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
if(nva[i].namelen == 14 &&
Curl_raw_nequal("content-length", (char*)nva[i].name, 14)) {
size_t j;
+ stream->upload_left = 0;
for(j = 0; j < nva[i].valuelen; ++j) {
- httpc->upload_left *= 10;
- httpc->upload_left += nva[i].value[j] - '0';
+ stream->upload_left *= 10;
+ stream->upload_left += nva[i].value[j] - '0';
}
DEBUGF(infof(conn->data,
- "request content-length=%zu\n", httpc->upload_left));
+ "request content-length=%"
+ CURL_FORMAT_CURL_OFF_T
+ "\n", stream->upload_left));
}
}
@@ -929,31 +1148,42 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
case HTTPREQ_PUT:
data_prd.read_callback = data_source_read_callback;
data_prd.source.ptr = NULL;
- stream_id = nghttp2_submit_request(httpc->h2, NULL, nva, nheader,
+ stream_id = nghttp2_submit_request(h2, NULL, nva, nheader,
&data_prd, NULL);
break;
default:
- stream_id = nghttp2_submit_request(httpc->h2, NULL, nva, nheader,
+ stream_id = nghttp2_submit_request(h2, NULL, nva, nheader,
NULL, NULL);
}
free(nva);
if(stream_id < 0) {
+ DEBUGF(infof(conn->data, "http2_send() send error\n"));
*err = CURLE_SEND_ERROR;
return -1;
}
- httpc->stream_id = stream_id;
+ infof(conn->data, "Using Stream ID: %x (easy handle %p)\n",
+ stream_id, conn->data);
+ stream->stream_id = stream_id;
- rv = nghttp2_session_send(httpc->h2);
+ /* put the SessionHandle in the hash with the stream_id as key */
+ if(!Curl_hash_add(&httpc->streamsh, &stream->stream_id, sizeof(stream_id),
+ conn->data)) {
+ failf(conn->data, "Couldn't add stream to hash!");
+ *err = CURLE_OUT_OF_MEMORY;
+ return -1;
+ }
+
+ rv = nghttp2_session_send(h2);
if(rv != 0) {
*err = CURLE_SEND_ERROR;
return -1;
}
- if(httpc->stream_id != -1) {
+ if(stream->stream_id != -1) {
/* If whole HEADERS frame was sent off to the underlying socket,
the nghttp2 library calls data_source_read_callback. But only
it found that no data available, so it deferred the DATA
@@ -962,7 +1192,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
writable socket check is performed. To workaround this, we
issue nghttp2_session_resume_data() here to bring back DATA
transmission from deferred state. */
- nghttp2_session_resume_data(httpc->h2, httpc->stream_id);
+ nghttp2_session_resume_data(h2, stream->stream_id);
}
return len;
@@ -972,6 +1202,17 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
{
CURLcode result;
struct http_conn *httpc = &conn->proto.httpc;
+ struct HTTP *stream = conn->data->req.protop;
+
+ stream->stream_id = -1;
+
+ if(!stream->header_recvbuf)
+ stream->header_recvbuf = Curl_add_buffer_init();
+
+ if((conn->handler == &Curl_handler_http2_ssl) ||
+ (conn->handler == &Curl_handler_http2))
+ return CURLE_OK; /* already done */
+
if(conn->handler->flags & PROTOPT_SSL)
conn->handler = &Curl_handler_http2_ssl;
else
@@ -981,21 +1222,22 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
if(result)
return result;
- infof(conn->data, "Using HTTP2\n");
- httpc->bodystarted = FALSE;
- httpc->error_code = NGHTTP2_NO_ERROR;
- httpc->closed = FALSE;
- httpc->header_recvbuf = Curl_add_buffer_init();
- httpc->nread_header_recvbuf = 0;
- httpc->data = NULL;
- httpc->datalen = 0;
- httpc->upload_left = 0;
- httpc->upload_mem = NULL;
- httpc->upload_len = 0;
- httpc->stream_id = -1;
- httpc->status_code = -1;
+ infof(conn->data, "Using HTTP2, server supports multi-use\n");
+ stream->upload_left = 0;
+ stream->upload_mem = NULL;
+ stream->upload_len = 0;
+ httpc->inbuflen = 0;
+ httpc->nread_inbuf = 0;
+
+ httpc->pause_stream_id = 0;
+
+ conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
conn->httpversion = 20;
+ conn->bundle->multiuse = BUNDLE_MULTIPLEX;
+
+ infof(conn->data, "Connection state changed (HTTP/2 confirmed)\n");
+ Curl_multi_connchanged(conn->data->multi);
return CURLE_OK;
}
@@ -1006,7 +1248,9 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
CURLcode result;
struct http_conn *httpc = &conn->proto.httpc;
int rv;
+ ssize_t nproc;
struct SessionHandle *data = conn->data;
+ struct HTTP *stream = conn->data->req.protop;
result = Curl_http2_setup(conn);
if(result)
@@ -1017,23 +1261,9 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
conn->recv[FIRSTSOCKET] = http2_recv;
conn->send[FIRSTSOCKET] = http2_send;
- rv = (int) ((Curl_send*)httpc->send_underlying)
- (conn, FIRSTSOCKET,
- NGHTTP2_CLIENT_CONNECTION_PREFACE,
- NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN,
- &result);
- if(result)
- /* TODO: This may get CURLE_AGAIN */
- return result;
-
- if(rv != 24) {
- failf(data, "Only sent partial HTTP2 packet");
- return CURLE_SEND_ERROR;
- }
-
if(conn->data->req.upgr101 == UPGR101_RECEIVED) {
/* stream 1 is opened implicitly on upgrade */
- httpc->stream_id = 1;
+ stream->stream_id = 1;
/* queue SETTINGS frame (again) */
rv = nghttp2_session_upgrade(httpc->h2, httpc->binsettings,
httpc->binlen, NULL);
@@ -1042,10 +1272,17 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
nghttp2_strerror(rv), rv);
return CURLE_HTTP2;
}
+
+ /* put the SessionHandle in the hash with the stream->stream_id as key */
+ if(!Curl_hash_add(&httpc->streamsh, &stream->stream_id,
+ sizeof(stream->stream_id), conn->data)) {
+ failf(conn->data, "Couldn't add stream to hash!");
+ return CURLE_OUT_OF_MEMORY;
+ }
}
else {
/* stream ID is unknown at this point */
- httpc->stream_id = -1;
+ stream->stream_id = -1;
rv = nghttp2_submit_settings(httpc->h2, NGHTTP2_FLAG_NONE, NULL, 0);
if(rv != 0) {
failf(data, "nghttp2_submit_settings() failed: %s(%d)",
@@ -1054,14 +1291,43 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
}
}
- rv = (int)nghttp2_session_mem_recv(httpc->h2, (const uint8_t*)mem, nread);
+ /* we are going to copy mem to httpc->inbuf. This is required since
+ mem is part of buffer pointed by stream->mem, and callbacks
+ called by nghttp2_session_mem_recv() will write stream specific
+ data into stream->mem, overwriting data already there. */
+ if(H2_BUFSIZE < nread) {
+ failf(data, "connection buffer size is too small to store data following "
+ "HTTP Upgrade response header: buflen=%zu, datalen=%zu",
+ H2_BUFSIZE, nread);
+ return CURLE_HTTP2;
+ }
+
+ infof(conn->data, "Copying HTTP/2 data in stream buffer to connection buffer"
+ " after upgrade: len=%zu\n",
+ nread);
- if(rv != (int)nread) {
+ memcpy(httpc->inbuf, mem, nread);
+ httpc->inbuflen = nread;
+
+ nproc = nghttp2_session_mem_recv(httpc->h2, (const uint8_t *)httpc->inbuf,
+ httpc->inbuflen);
+
+ if(nghttp2_is_fatal((int)nproc)) {
failf(data, "nghttp2_session_mem_recv() failed: %s(%d)",
- nghttp2_strerror(rv), rv);
+ nghttp2_strerror((int)nproc), (int)nproc);
return CURLE_HTTP2;
}
+ DEBUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", nproc));
+
+ if((ssize_t)nread == nproc) {
+ httpc->inbuflen = 0;
+ httpc->nread_inbuf = 0;
+ }
+ else {
+ httpc->nread_inbuf += nproc;
+ }
+
/* Try to send some frames since we may read SETTINGS already. */
rv = nghttp2_session_send(httpc->h2);
diff --git a/lib/http2.h b/lib/http2.h
index a2e4eb7c..1614736d 100644
--- a/lib/http2.h
+++ b/lib/http2.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,11 @@
#ifdef USE_NGHTTP2
#include "http.h"
+
+/* value for MAX_CONCURRENT_STREAMS we use until we get an updated setting
+ from the peer */
+#define DEFAULT_MAX_CONCURRENT_STREAMS 13
+
/*
* Store nghttp2 version info in this buffer, Prefix with a space. Return
* total length written.
@@ -39,12 +44,15 @@ CURLcode Curl_http2_request_upgrade(Curl_send_buffer *req,
CURLcode Curl_http2_setup(struct connectdata *conn);
CURLcode Curl_http2_switched(struct connectdata *conn,
const char *data, size_t nread);
+/* called from Curl_http_setup_conn */
+void Curl_http2_setup_conn(struct connectdata *conn);
#else /* USE_NGHTTP2 */
#define Curl_http2_init(x) CURLE_UNSUPPORTED_PROTOCOL
#define Curl_http2_send_request(x) CURLE_UNSUPPORTED_PROTOCOL
#define Curl_http2_request_upgrade(x,y) CURLE_UNSUPPORTED_PROTOCOL
#define Curl_http2_setup(x) CURLE_UNSUPPORTED_PROTOCOL
#define Curl_http2_switched(x,y,z) CURLE_UNSUPPORTED_PROTOCOL
+#define Curl_http2_setup_conn(x)
#endif
#endif /* HEADER_CURL_HTTP2_H */
diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
index 21658cf7..a1baf29c 100644
--- a/lib/http_negotiate.c
+++ b/lib/http_negotiate.c
@@ -62,8 +62,10 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
if(!neg_ctx->server_name) {
/* Generate our SPN */
- char *spn = Curl_sasl_build_gssapi_spn("HTTP", proxy ? conn->proxy.name :
- conn->host.name);
+ char *spn = Curl_sasl_build_gssapi_spn(
+ proxy ? data->set.str[STRING_PROXY_SERVICE_NAME] :
+ data->set.str[STRING_SERVICE_NAME],
+ proxy ? conn->proxy.name : conn->host.name);
if(!spn)
return CURLE_OUT_OF_MEMORY;
diff --git a/lib/http_negotiate_sspi.c b/lib/http_negotiate_sspi.c
index 20f8d643..a50ea96f 100644
--- a/lib/http_negotiate_sspi.c
+++ b/lib/http_negotiate_sspi.c
@@ -43,6 +43,7 @@
CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
const char *header)
{
+ struct SessionHandle *data = conn->data;
BYTE *input_token = NULL;
SecBufferDesc out_buff_desc;
SecBuffer out_sec_buff;
@@ -64,12 +65,12 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
if(proxy) {
userp = conn->proxyuser;
passwdp = conn->proxypasswd;
- neg_ctx = &conn->data->state.proxyneg;
+ neg_ctx = &data->state.proxyneg;
}
else {
userp = conn->user;
passwdp = conn->passwd;
- neg_ctx = &conn->data->state.negotiate;
+ neg_ctx = &data->state.negotiate;
}
/* Not set means empty */
@@ -83,7 +84,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
/* We finished successfully our part of authentication, but server
* rejected it (since we're again here). Exit with an error since we
* can't invent anything better */
- Curl_cleanup_negotiate(conn->data);
+ Curl_cleanup_negotiate(data);
return CURLE_LOGIN_DENIED;
}
@@ -93,9 +94,10 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
return CURLE_BAD_FUNCTION_ARGUMENT;
/* Generate our SPN */
- neg_ctx->server_name = Curl_sasl_build_spn("HTTP",
- proxy ? conn->proxy.name :
- conn->host.name);
+ neg_ctx->server_name = Curl_sasl_build_spn(
+ proxy ? data->set.str[STRING_PROXY_SERVICE_NAME] :
+ data->set.str[STRING_SERVICE_NAME],
+ proxy ? conn->proxy.name : conn->host.name);
if(!neg_ctx->server_name)
return CURLE_OUT_OF_MEMORY;
}
@@ -167,7 +169,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
return result;
if(!input_token_len) {
- infof(conn->data,
+ infof(data,
"Negotiate handshake failure (empty challenge message)\n");
return CURLE_BAD_CONTENT_ENCODING;
diff --git a/lib/http_proxy.c b/lib/http_proxy.c
index f3c54bd7..5ab9915a 100644
--- a/lib/http_proxy.c
+++ b/lib/http_proxy.c
@@ -135,7 +135,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
host_port = aprintf("%s:%hu", hostname, remote_port);
if(!host_port) {
- free(req_buffer);
+ Curl_add_buffer_free(req_buffer);
return CURLE_OUT_OF_MEMORY;
}
@@ -155,7 +155,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
hostname, conn->bits.ipv6_ip?"]":"",
remote_port);
if(!hostheader) {
- free(req_buffer);
+ Curl_add_buffer_free(req_buffer);
return CURLE_OUT_OF_MEMORY;
}
@@ -163,7 +163,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
host = aprintf("Host: %s\r\n", hostheader);
if(!host) {
free(hostheader);
- free(req_buffer);
+ Curl_add_buffer_free(req_buffer);
return CURLE_OUT_OF_MEMORY;
}
}
@@ -212,7 +212,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
failf(data, "Failed sending CONNECT to proxy");
}
- free(req_buffer);
+ Curl_add_buffer_free(req_buffer);
if(result)
return result;
@@ -281,7 +281,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
/* proxy auth was requested and there was proxy auth available,
then deem this as "mere" proxy disconnect */
conn->bits.proxy_connect_closed = TRUE;
- infof(data, "Proxy CONNECT connection closed");
+ infof(data, "Proxy CONNECT connection closed\n");
}
else {
error = SELECT_ERROR;
diff --git a/lib/libcurl.plist b/lib/libcurl.plist
index 310bd253..da3e162e 100644
--- a/lib/libcurl.plist
+++ b/lib/libcurl.plist
@@ -15,7 +15,7 @@
<string>se.haxx.curl.libcurl</string>
<key>CFBundleVersion</key>
- <string>7.42.1</string>
+ <string>7.43.0</string>
<key>CFBundleName</key>
<string>libcurl</string>
@@ -27,9 +27,9 @@
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>libcurl 7.42.1</string>
+ <string>libcurl 7.43.0</string>
<key>CFBundleGetInfoString</key>
- <string>libcurl.plist 7.42.1</string>
+ <string>libcurl.plist 7.43.0</string>
</dict>
</plist>
diff --git a/lib/memdebug.c b/lib/memdebug.c
index 3b38a749..dd8889b2 100644
--- a/lib/memdebug.c
+++ b/lib/memdebug.c
@@ -112,7 +112,7 @@ void curl_memdebug(const char *logname)
{
if(!logfile) {
if(logname && *logname)
- logfile = fopen(logname, "w");
+ logfile = fopen(logname, FOPEN_WRITETEXT);
else
logfile = stderr;
#ifdef MEMDEBUG_LOG_SYNC
diff --git a/lib/multi.c b/lib/multi.c
index 235b5b45..b63f8bf7 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -39,7 +39,6 @@
#include "warnless.h"
#include "speedcheck.h"
#include "conncache.h"
-#include "bundles.h"
#include "multihandle.h"
#include "pipeline.h"
#include "sigpipe.h"
@@ -70,8 +69,6 @@ static void singlesocket(struct Curl_multi *multi,
struct SessionHandle *data);
static int update_timer(struct Curl_multi *multi);
-static bool isHandleAtHead(struct SessionHandle *handle,
- struct curl_llist *pipeline);
static CURLMcode add_next_timeout(struct timeval now,
struct Curl_multi *multi,
struct SessionHandle *d);
@@ -252,10 +249,10 @@ static size_t hash_fd(void *key, size_t key_length, size_t slots_num)
* per call."
*
*/
-static struct curl_hash *sh_init(int hashsize)
+static int sh_init(struct curl_hash *hash, int hashsize)
{
- return Curl_hash_alloc(hashsize, hash_fd, fd_key_compare,
- sh_freeentry);
+ return Curl_hash_init(hash, hashsize, hash_fd, fd_key_compare,
+ sh_freeentry);
}
/*
@@ -294,16 +291,13 @@ struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */
multi->type = CURL_MULTI_HANDLE;
- multi->hostcache = Curl_mk_dnscache();
- if(!multi->hostcache)
+ if(Curl_mk_dnscache(&multi->hostcache))
goto error;
- multi->sockhash = sh_init(hashsize);
- if(!multi->sockhash)
+ if(sh_init(&multi->sockhash, hashsize))
goto error;
- multi->conn_cache = Curl_conncache_init(chashsize);
- if(!multi->conn_cache)
+ if(Curl_conncache_init(&multi->conn_cache, chashsize))
goto error;
multi->msglist = Curl_llist_alloc(multi_freeamsg);
@@ -320,7 +314,7 @@ struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */
goto error;
multi->closure_handle->multi = multi;
- multi->closure_handle->state.conn_cache = multi->conn_cache;
+ multi->closure_handle->state.conn_cache = &multi->conn_cache;
multi->max_pipeline_length = 5;
@@ -330,12 +324,9 @@ struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */
error:
- Curl_hash_destroy(multi->sockhash);
- multi->sockhash = NULL;
- Curl_hash_destroy(multi->hostcache);
- multi->hostcache = NULL;
- Curl_conncache_destroy(multi->conn_cache);
- multi->conn_cache = NULL;
+ Curl_hash_destroy(&multi->sockhash);
+ Curl_hash_destroy(&multi->hostcache);
+ Curl_conncache_destroy(&multi->conn_cache);
Curl_close(multi->closure_handle);
multi->closure_handle = NULL;
Curl_llist_destroy(multi->msglist, NULL);
@@ -404,14 +395,17 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
easy handle's one is currently not set. */
else if(!data->dns.hostcache ||
(data->dns.hostcachetype == HCACHE_NONE)) {
- data->dns.hostcache = multi->hostcache;
+ data->dns.hostcache = &multi->hostcache;
data->dns.hostcachetype = HCACHE_MULTI;
}
/* Point to the multi's connection cache */
- data->state.conn_cache = multi->conn_cache;
+ data->state.conn_cache = &multi->conn_cache;
- data->state.infilesize = data->set.filesize;
+ if(data->set.httpreq == HTTPREQ_PUT)
+ data->state.infilesize = data->set.filesize;
+ else
+ data->state.infilesize = data->set.postfieldsize;
/* This adds the new entry at the 'end' of the doubly-linked circular
list of SessionHandle structs to try and maintain a FIFO queue so
@@ -427,8 +421,7 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
multi->easylp = data; /* the new last node */
}
else {
- /* first node, make both prev and next be NULL! */
- data->next = NULL;
+ /* first node, make prev NULL! */
data->prev = NULL;
multi->easylp = multi->easyp = data; /* both first and last */
}
@@ -621,9 +614,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
return CURLM_OK;
}
-bool Curl_multi_pipeline_enabled(const struct Curl_multi *multi)
+/* Return TRUE if the application asked for a certain set of pipelining */
+bool Curl_pipeline_wanted(const struct Curl_multi *multi, int bits)
{
- return (multi && multi->pipelining_enabled) ? TRUE : FALSE;
+ return (multi && (multi->pipelining & bits)) ? TRUE : FALSE;
}
void Curl_multi_handlePipeBreak(struct SessionHandle *data)
@@ -935,6 +929,34 @@ CURLMcode curl_multi_wait(CURLM *multi_handle,
return CURLM_OK;
}
+/*
+ * Curl_multi_connchanged() is called to tell that there is a connection in
+ * this multi handle that has changed state (pipelining become possible, the
+ * number of allowed streams changed or similar), and a subsequent use of this
+ * multi handle should move CONNECT_PEND handles back to CONNECT to have them
+ * retry.
+ */
+void Curl_multi_connchanged(struct Curl_multi *multi)
+{
+ multi->recheckstate = TRUE;
+}
+
+/*
+ * multi_ischanged() is called
+ *
+ * Returns TRUE/FALSE whether the state is changed to trigger a CONNECT_PEND
+ * => CONNECT action.
+ *
+ * Set 'clear' to TRUE to have it also clear the state variable.
+ */
+static bool multi_ischanged(struct Curl_multi *multi, bool clear)
+{
+ bool retval = multi->recheckstate;
+ if(clear)
+ multi->recheckstate = FALSE;
+ return retval;
+}
+
static CURLMcode multi_runsingle(struct Curl_multi *multi,
struct timeval now,
struct SessionHandle *data)
@@ -986,6 +1008,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
return CURLM_INTERNAL_ERROR;
}
+ if(multi_ischanged(multi, TRUE)) {
+ DEBUGF(infof(data, "multi changed, check CONNECT_PEND queue!\n"));
+ Curl_multi_process_pending_handles(multi);
+ }
+
if(data->easy_conn && data->mstate > CURLM_STATE_CONNECT &&
data->mstate < CURLM_STATE_COMPLETED)
/* Make sure we set the connection's current owner */
@@ -1090,7 +1117,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
rc = CURLM_CALL_MULTI_PERFORM;
if(protocol_connect)
- multistate(data, multi->pipelining_enabled?
+ multistate(data, Curl_pipeline_wanted(multi, CURLPIPE_HTTP1)?
CURLM_STATE_WAITDO:CURLM_STATE_DO);
else {
#ifndef CURL_DISABLE_HTTP
@@ -1147,7 +1174,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
/* call again please so that we get the next socket setup */
rc = CURLM_CALL_MULTI_PERFORM;
if(protocol_connect)
- multistate(data, multi->pipelining_enabled?
+ multistate(data, Curl_pipeline_wanted(multi, CURLPIPE_HTTP1)?
CURLM_STATE_WAITDO:CURLM_STATE_DO);
else {
#ifndef CURL_DISABLE_HTTP
@@ -1177,6 +1204,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
if(data->easy_conn->bits.proxy_connect_closed) {
/* connect back to proxy again */
result = CURLE_OK;
+ Curl_done(&data->easy_conn, CURLE_OK, FALSE);
multistate(data, CURLM_STATE_CONNECT);
}
else if(!result) {
@@ -1211,7 +1239,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
multistate(data, CURLM_STATE_PROTOCONNECT);
else if(!result) {
/* protocol connect has completed, go WAITDO or DO */
- multistate(data, multi->pipelining_enabled?
+ multistate(data, Curl_pipeline_wanted(multi, CURLPIPE_HTTP1)?
CURLM_STATE_WAITDO:CURLM_STATE_DO);
rc = CURLM_CALL_MULTI_PERFORM;
}
@@ -1228,7 +1256,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
result = Curl_protocol_connecting(data->easy_conn, &protocol_connect);
if(!result && protocol_connect) {
/* after the connect has completed, go WAITDO or DO */
- multistate(data, multi->pipelining_enabled?
+ multistate(data, Curl_pipeline_wanted(multi, CURLPIPE_HTTP1)?
CURLM_STATE_WAITDO:CURLM_STATE_DO);
rc = CURLM_CALL_MULTI_PERFORM;
}
@@ -1242,19 +1270,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
case CURLM_STATE_WAITDO:
/* Wait for our turn to DO when we're pipelining requests */
-#ifdef DEBUGBUILD
- infof(data, "WAITDO: Conn %ld send pipe %zu inuse %s athead %s\n",
- data->easy_conn->connection_id,
- data->easy_conn->send_pipe->size,
- data->easy_conn->writechannel_inuse?"TRUE":"FALSE",
- isHandleAtHead(data,
- data->easy_conn->send_pipe)?"TRUE":"FALSE");
-#endif
- if(!data->easy_conn->writechannel_inuse &&
- isHandleAtHead(data,
- data->easy_conn->send_pipe)) {
- /* Grab the channel */
- data->easy_conn->writechannel_inuse = TRUE;
+ if(Curl_pipeline_checkget_write(data, data->easy_conn)) {
+ /* Grabbed the channel */
multistate(data, CURLM_STATE_DO);
rc = CURLM_CALL_MULTI_PERFORM;
}
@@ -1437,24 +1454,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
case CURLM_STATE_WAITPERFORM:
/* Wait for our turn to PERFORM */
- if(!data->easy_conn->readchannel_inuse &&
- isHandleAtHead(data,
- data->easy_conn->recv_pipe)) {
- /* Grab the channel */
- data->easy_conn->readchannel_inuse = TRUE;
+ if(Curl_pipeline_checkget_read(data, data->easy_conn)) {
+ /* Grabbed the channel */
multistate(data, CURLM_STATE_PERFORM);
rc = CURLM_CALL_MULTI_PERFORM;
}
-#ifdef DEBUGBUILD
- else {
- infof(data, "WAITPERFORM: Conn %ld recv pipe %zu inuse %s athead %s\n",
- data->easy_conn->connection_id,
- data->easy_conn->recv_pipe->size,
- data->easy_conn->readchannel_inuse?"TRUE":"FALSE",
- isHandleAtHead(data,
- data->easy_conn->recv_pipe)?"TRUE":"FALSE");
- }
-#endif
break;
case CURLM_STATE_TOOFAST: /* limit-rate exceeded in either direction */
@@ -1509,19 +1513,17 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
}
/* read/write data if it is ready to do so */
- result = Curl_readwrite(data->easy_conn, &done);
+ result = Curl_readwrite(data->easy_conn, data, &done);
k = &data->req;
- if(!(k->keepon & KEEP_RECV)) {
+ if(!(k->keepon & KEEP_RECV))
/* We're done receiving */
- data->easy_conn->readchannel_inuse = FALSE;
- }
+ Curl_pipeline_leave_read(data->easy_conn);
- if(!(k->keepon & KEEP_SEND)) {
+ if(!(k->keepon & KEEP_SEND))
/* We're done sending */
- data->easy_conn->writechannel_inuse = FALSE;
- }
+ Curl_pipeline_leave_write(data->easy_conn);
if(done || (result == CURLE_RECV_ERROR)) {
/* If CURLE_RECV_ERROR happens early enough, we assume it was a race
@@ -1703,8 +1705,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
if(data->easy_conn) {
/* if this has a connection, unsubscribe from the pipelines */
- data->easy_conn->writechannel_inuse = FALSE;
- data->easy_conn->readchannel_inuse = FALSE;
+ Curl_pipeline_leave_write(data->easy_conn);
+ Curl_pipeline_leave_read(data->easy_conn);
Curl_removeHandleFromPipeline(data, data->easy_conn->send_pipe);
Curl_removeHandleFromPipeline(data, data->easy_conn->recv_pipe);
@@ -1753,7 +1755,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
multistate(data, CURLM_STATE_MSGSENT);
}
- } while(rc == CURLM_CALL_MULTI_PERFORM);
+ } while((rc == CURLM_CALL_MULTI_PERFORM) || multi_ischanged(multi, FALSE));
data->result = result;
@@ -1833,7 +1835,7 @@ static void close_all_connections(struct Curl_multi *multi)
{
struct connectdata *conn;
- conn = Curl_conncache_find_first_connection(multi->conn_cache);
+ conn = Curl_conncache_find_first_connection(&multi->conn_cache);
while(conn) {
SIGPIPE_VARIABLE(pipe_st);
conn->data = multi->closure_handle;
@@ -1843,7 +1845,7 @@ static void close_all_connections(struct Curl_multi *multi)
(void)Curl_disconnect(conn, FALSE);
sigpipe_restore(&pipe_st);
- conn = Curl_conncache_find_first_connection(multi->conn_cache);
+ conn = Curl_conncache_find_first_connection(&multi->conn_cache);
}
}
@@ -1866,15 +1868,15 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)
sigpipe_ignore(multi->closure_handle, &pipe_st);
restore_pipe = TRUE;
- multi->closure_handle->dns.hostcache = multi->hostcache;
+ multi->closure_handle->dns.hostcache = &multi->hostcache;
Curl_hostcache_clean(multi->closure_handle,
multi->closure_handle->dns.hostcache);
Curl_close(multi->closure_handle);
}
- Curl_hash_destroy(multi->sockhash);
- Curl_conncache_destroy(multi->conn_cache);
+ Curl_hash_destroy(&multi->sockhash);
+ Curl_conncache_destroy(&multi->conn_cache);
Curl_llist_destroy(multi->msglist, NULL);
Curl_llist_destroy(multi->pending, NULL);
@@ -1896,7 +1898,7 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)
data = nextdata;
}
- Curl_hash_destroy(multi->hostcache);
+ Curl_hash_destroy(&multi->hostcache);
/* Free the blacklists by setting them to NULL */
Curl_pipeline_set_site_blacklist(NULL, &multi->pipelining_site_bl);
@@ -1985,7 +1987,7 @@ static void singlesocket(struct Curl_multi *multi,
s = socks[i];
/* get it from the hash */
- entry = Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(s));
+ entry = Curl_hash_pick(&multi->sockhash, (char *)&s, sizeof(s));
if(curraction & GETSOCK_READSOCK(i))
action |= CURL_POLL_IN;
@@ -2000,7 +2002,7 @@ static void singlesocket(struct Curl_multi *multi,
}
else {
/* this is a socket we didn't have before, add it! */
- entry = sh_addentry(multi->sockhash, s, data);
+ entry = sh_addentry(&multi->sockhash, s, data);
if(!entry)
/* fatal */
return;
@@ -2036,7 +2038,7 @@ static void singlesocket(struct Curl_multi *multi,
/* this socket has been removed. Tell the app to remove it */
remove_sock_from_hash = TRUE;
- entry = Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(s));
+ entry = Curl_hash_pick(&multi->sockhash, (char *)&s, sizeof(s));
if(entry) {
/* check if the socket to be removed serves a connection which has
other easy-s in a pipeline. In this case the socket should not be
@@ -2051,7 +2053,7 @@ static void singlesocket(struct Curl_multi *multi,
for the recv_pipe, or the first (in case this particular easy
isn't already) */
if(entry->easy == data) {
- if(isHandleAtHead(data, easy_conn->recv_pipe))
+ if(Curl_recvpipe_head(data, easy_conn))
entry->easy = easy_conn->recv_pipe->head->next->ptr;
else
entry->easy = easy_conn->recv_pipe->head->ptr;
@@ -2065,7 +2067,7 @@ static void singlesocket(struct Curl_multi *multi,
for the send_pipe, or the first (in case this particular easy
isn't already) */
if(entry->easy == data) {
- if(isHandleAtHead(data, easy_conn->send_pipe))
+ if(Curl_sendpipe_head(data, easy_conn))
entry->easy = easy_conn->send_pipe->head->next->ptr;
else
entry->easy = easy_conn->send_pipe->head->ptr;
@@ -2091,7 +2093,7 @@ static void singlesocket(struct Curl_multi *multi,
CURL_POLL_REMOVE,
multi->socket_userp,
entry->socketp);
- sh_delentry(multi->sockhash, s);
+ sh_delentry(&multi->sockhash, s);
}
}
@@ -2118,7 +2120,7 @@ void Curl_multi_closed(struct connectdata *conn, curl_socket_t s)
/* this is set if this connection is part of a handle that is added to
a multi handle, and only then this is necessary */
struct Curl_sh_entry *entry =
- Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(s));
+ Curl_hash_pick(&multi->sockhash, (char *)&s, sizeof(s));
if(entry) {
if(multi->socket_cb)
@@ -2127,7 +2129,7 @@ void Curl_multi_closed(struct connectdata *conn, curl_socket_t s)
entry->socketp);
/* now remove it from the socket hash */
- sh_delentry(multi->sockhash, s);
+ sh_delentry(&multi->sockhash, s);
}
}
}
@@ -2220,7 +2222,7 @@ static CURLMcode multi_socket(struct Curl_multi *multi,
else if(s != CURL_SOCKET_TIMEOUT) {
struct Curl_sh_entry *entry =
- Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(s));
+ Curl_hash_pick(&multi->sockhash, (char *)&s, sizeof(s));
if(!entry)
/* Unmatched socket, we can't act on it but we ignore this fact. In
@@ -2345,7 +2347,7 @@ CURLMcode curl_multi_setopt(CURLM *multi_handle,
multi->socket_userp = va_arg(param, void *);
break;
case CURLMOPT_PIPELINING:
- multi->pipelining_enabled = (0 != va_arg(param, long)) ? TRUE : FALSE;
+ multi->pipelining = va_arg(param, long);
break;
case CURLMOPT_TIMERFUNCTION:
multi->timer_cb = va_arg(param, curl_multi_timer_callback);
@@ -2503,16 +2505,6 @@ static int update_timer(struct Curl_multi *multi)
return multi->timer_cb((CURLM*)multi, timeout_ms, multi->timer_userp);
}
-static bool isHandleAtHead(struct SessionHandle *handle,
- struct curl_llist *pipeline)
-{
- struct curl_llist_element *curr = pipeline->head;
- if(curr)
- return (curr->ptr == handle) ? TRUE : FALSE;
-
- return FALSE;
-}
-
/*
* multi_freetimeout()
*
@@ -2712,7 +2704,8 @@ CURLMcode curl_multi_assign(CURLM *multi_handle,
struct Curl_multi *multi = (struct Curl_multi *)multi_handle;
if(s != CURL_SOCKET_BAD)
- there = Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(curl_socket_t));
+ there = Curl_hash_pick(&multi->sockhash, (char *)&s,
+ sizeof(curl_socket_t));
if(!there)
return CURLM_BAD_SOCKET;
@@ -2732,11 +2725,6 @@ size_t Curl_multi_max_total_connections(struct Curl_multi *multi)
return multi ? multi->max_total_connections : 0;
}
-size_t Curl_multi_max_pipeline_length(struct Curl_multi *multi)
-{
- return multi ? multi->max_pipeline_length : 0;
-}
-
curl_off_t Curl_multi_content_length_penalty_size(struct Curl_multi *multi)
{
return multi ? multi->content_length_penalty_size : 0;
@@ -2796,7 +2784,7 @@ void Curl_multi_dump(const struct Curl_multi *multi_handle)
for(i=0; i < data->numsocks; i++) {
curl_socket_t s = data->sockets[i];
struct Curl_sh_entry *entry =
- Curl_hash_pick(multi->sockhash, (char *)&s, sizeof(s));
+ Curl_hash_pick(&multi->sockhash, (char *)&s, sizeof(s));
fprintf(stderr, "%d ", (int)s);
if(!entry) {
diff --git a/lib/multihandle.h b/lib/multihandle.h
index d8b9d889..cad44d1d 100644
--- a/lib/multihandle.h
+++ b/lib/multihandle.h
@@ -22,6 +22,8 @@
*
***************************************************************************/
+#include "conncache.h"
+
struct Curl_message {
/* the 'CURLMsg' is the part that is visible to the external user */
struct CURLMsg extmsg;
@@ -60,6 +62,8 @@ typedef enum {
#define GETSOCK_READABLE (0x00ff)
#define GETSOCK_WRITABLE (0xff00)
+#define CURLPIPE_ANY (CURLPIPE_HTTP1 | CURLPIPE_MULTIPLEX)
+
/* This is the struct known as CURLM on the outside */
struct Curl_multi {
/* First a simple identifier to easier detect if a user mix up
@@ -84,7 +88,7 @@ struct Curl_multi {
void *socket_userp;
/* Hostname cache */
- struct curl_hash *hostcache;
+ struct curl_hash hostcache;
/* timetree points to the splay-tree of time nodes to figure out expire
times of all currently set timers */
@@ -93,13 +97,15 @@ struct Curl_multi {
/* 'sockhash' is the lookup hash for socket descriptor => easy handles (note
the pluralis form, there can be more than one easy handle waiting on the
same actual socket) */
- struct curl_hash *sockhash;
+ struct curl_hash sockhash;
- /* Whether pipelining is enabled for this multi handle */
- bool pipelining_enabled;
+ /* pipelining wanted bits (CURLPIPE*) */
+ long pipelining;
+
+ bool recheckstate; /* see Curl_multi_connchanged */
/* Shared connection cache (bundles)*/
- struct conncache *conn_cache;
+ struct conncache conn_cache;
/* This handle will be used for closing the cached connections in
curl_multi_cleanup() */
@@ -140,4 +146,3 @@ struct Curl_multi {
};
#endif /* HEADER_CURL_MULTIHANDLE_H */
-
diff --git a/lib/multiif.h b/lib/multiif.h
index d8acfcab..5052f65a 100644
--- a/lib/multiif.h
+++ b/lib/multiif.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,8 +27,7 @@
*/
void Curl_expire(struct SessionHandle *data, long milli);
void Curl_expire_latest(struct SessionHandle *data, long milli);
-
-bool Curl_multi_pipeline_enabled(const struct Curl_multi* multi);
+bool Curl_pipeline_wanted(const struct Curl_multi* multi, int bits);
void Curl_multi_handlePipeBreak(struct SessionHandle *data);
/* Internal version of curl_multi_init() accepts size parameters for the
@@ -60,9 +59,6 @@ void Curl_multi_process_pending_handles(struct Curl_multi *multi);
/* Return the value of the CURLMOPT_MAX_HOST_CONNECTIONS option */
size_t Curl_multi_max_host_connections(struct Curl_multi *multi);
-/* Return the value of the CURLMOPT_MAX_PIPELINE_LENGTH option */
-size_t Curl_multi_max_pipeline_length(struct Curl_multi *multi);
-
/* Return the value of the CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE option */
curl_off_t Curl_multi_content_length_penalty_size(struct Curl_multi *multi);
@@ -78,6 +74,8 @@ struct curl_llist *Curl_multi_pipelining_server_bl(struct Curl_multi *multi);
/* Return the value of the CURLMOPT_MAX_TOTAL_CONNECTIONS option */
size_t Curl_multi_max_total_connections(struct Curl_multi *multi);
+void Curl_multi_connchanged(struct Curl_multi *multi);
+
/*
* Curl_multi_closed()
*
diff --git a/lib/netrc.c b/lib/netrc.c
index 6271a3a2..06f8ea15 100644
--- a/lib/netrc.c
+++ b/lib/netrc.c
@@ -109,7 +109,7 @@ int Curl_parsenetrc(const char *host,
netrc_alloc = TRUE;
}
- file = fopen(netrcfile, "r");
+ file = fopen(netrcfile, FOPEN_READTEXT);
if(netrc_alloc)
free(netrcfile);
if(file) {
@@ -137,6 +137,10 @@ int Curl_parsenetrc(const char *host,
'password'. */
state=HOSTFOUND;
}
+ else if(Curl_raw_equal("default", tok)) {
+ state=HOSTVALID;
+ retcode=0; /* we did find our host */
+ }
break;
case HOSTFOUND:
if(Curl_raw_equal(host, tok)) {
diff --git a/lib/pipeline.c b/lib/pipeline.c
index 50df4adb..1b38836c 100644
--- a/lib/pipeline.c
+++ b/lib/pipeline.c
@@ -32,7 +32,6 @@
#include "pipeline.h"
#include "sendf.h"
#include "rawstr.h"
-#include "bundles.h"
#include "curl_memory.h"
/* The last #include file should be: */
@@ -92,6 +91,15 @@ bool Curl_pipeline_penalized(struct SessionHandle *data,
return FALSE;
}
+static CURLcode addHandleToPipeline(struct SessionHandle *data,
+ struct curl_llist *pipeline)
+{
+ if(!Curl_llist_insert_next(pipeline, pipeline->tail, data))
+ return CURLE_OUT_OF_MEMORY;
+ return CURLE_OK;
+}
+
+
CURLcode Curl_add_handle_to_pipeline(struct SessionHandle *handle,
struct connectdata *conn)
{
@@ -101,11 +109,11 @@ CURLcode Curl_add_handle_to_pipeline(struct SessionHandle *handle,
pipeline = conn->send_pipe;
- result = Curl_addHandleToPipeline(handle, pipeline);
+ result = addHandleToPipeline(handle, pipeline);
if(pipeline == conn->send_pipe && sendhead != conn->send_pipe->head) {
/* this is a new one as head, expire it */
- conn->writechannel_inuse = FALSE; /* not in use yet */
+ Curl_pipeline_leave_write(conn); /* not in use yet */
Curl_expire(conn->send_pipe->head->ptr, 1);
}
@@ -136,7 +144,7 @@ void Curl_move_handle_from_send_to_recv_pipe(struct SessionHandle *handle,
if(conn->send_pipe->head) {
/* Since there's a new easy handle at the start of the send pipeline,
set its timeout value to 1ms to make it trigger instantly */
- conn->writechannel_inuse = FALSE; /* not used now */
+ Curl_pipeline_leave_write(conn); /* not used now */
#ifdef DEBUGBUILD
infof(conn->data, "%p is at send pipe head B!\n",
(void *)conn->send_pipe->head->ptr);
@@ -312,6 +320,93 @@ CURLMcode Curl_pipeline_set_server_blacklist(char **servers,
return CURLM_OK;
}
+static bool pipe_head(struct SessionHandle *data,
+ struct curl_llist *pipeline)
+{
+ struct curl_llist_element *curr = pipeline->head;
+ if(curr)
+ return (curr->ptr == data) ? TRUE : FALSE;
+
+ return FALSE;
+}
+
+/* returns TRUE if the given handle is head of the recv pipe */
+bool Curl_recvpipe_head(struct SessionHandle *data,
+ struct connectdata *conn)
+{
+ return pipe_head(data, conn->recv_pipe);
+}
+
+/* returns TRUE if the given handle is head of the send pipe */
+bool Curl_sendpipe_head(struct SessionHandle *data,
+ struct connectdata *conn)
+{
+ return pipe_head(data, conn->send_pipe);
+}
+
+
+/*
+ * Check if the write channel is available and this handle as at the head,
+ * then grab the channel and return TRUE.
+ *
+ * If not available, return FALSE.
+ */
+
+bool Curl_pipeline_checkget_write(struct SessionHandle *data,
+ struct connectdata *conn)
+{
+ if(conn->bits.multiplex)
+ /* when multiplexing, we can use it at once */
+ return TRUE;
+
+ if(!conn->writechannel_inuse && Curl_sendpipe_head(data, conn)) {
+ /* Grab the channel */
+ conn->writechannel_inuse = TRUE;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+/*
+ * Check if the read channel is available and this handle as at the head, then
+ * grab the channel and return TRUE.
+ *
+ * If not available, return FALSE.
+ */
+
+bool Curl_pipeline_checkget_read(struct SessionHandle *data,
+ struct connectdata *conn)
+{
+ if(conn->bits.multiplex)
+ /* when multiplexing, we can use it at once */
+ return TRUE;
+
+ if(!conn->readchannel_inuse && Curl_recvpipe_head(data, conn)) {
+ /* Grab the channel */
+ conn->readchannel_inuse = TRUE;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/*
+ * The current user of the pipeline write channel gives it up.
+ */
+void Curl_pipeline_leave_write(struct connectdata *conn)
+{
+ conn->writechannel_inuse = FALSE;
+}
+
+/*
+ * The current user of the pipeline read channel gives it up.
+ */
+void Curl_pipeline_leave_read(struct connectdata *conn)
+{
+ conn->readchannel_inuse = FALSE;
+}
+
+
#if 0
void print_pipeline(struct connectdata *conn)
{
diff --git a/lib/pipeline.h b/lib/pipeline.h
index 96c4c33e..bf229f19 100644
--- a/lib/pipeline.h
+++ b/lib/pipeline.h
@@ -7,6 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
+ * Copyright (C) 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 2013 - 2014, Linus Nielsen Feltzing, <linus@haxx.se>
*
* This software is licensed as described in the file COPYING, which
@@ -41,4 +42,15 @@ bool Curl_pipeline_server_blacklisted(struct SessionHandle *handle,
CURLMcode Curl_pipeline_set_server_blacklist(char **servers,
struct curl_llist **list_ptr);
+bool Curl_pipeline_checkget_write(struct SessionHandle *data,
+ struct connectdata *conn);
+bool Curl_pipeline_checkget_read(struct SessionHandle *data,
+ struct connectdata *conn);
+void Curl_pipeline_leave_write(struct connectdata *conn);
+void Curl_pipeline_leave_read(struct connectdata *conn);
+bool Curl_recvpipe_head(struct SessionHandle *data,
+ struct connectdata *conn);
+bool Curl_sendpipe_head(struct SessionHandle *data,
+ struct connectdata *conn);
+
#endif /* HEADER_CURL_PIPELINE_H */
diff --git a/lib/rtsp.c b/lib/rtsp.c
index b133e205..e33069a9 100644
--- a/lib/rtsp.c
+++ b/lib/rtsp.c
@@ -263,11 +263,10 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
* Since all RTSP requests are included here, there is no need to
* support custom requests like HTTP.
**/
- DEBUGASSERT((rtspreq > RTSPREQ_NONE && rtspreq < RTSPREQ_LAST));
data->set.opt_no_body = TRUE; /* most requests don't contain a body */
switch(rtspreq) {
- case RTSPREQ_NONE:
- failf(data, "Got invalid RTSP request: RTSPREQ_NONE");
+ default:
+ failf(data, "Got invalid RTSP request");
return CURLE_BAD_FUNCTION_ARGUMENT;
case RTSPREQ_OPTIONS:
p_request = "OPTIONS";
@@ -323,7 +322,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
if(!p_session_id &&
(rtspreq & ~(RTSPREQ_OPTIONS | RTSPREQ_DESCRIBE | RTSPREQ_SETUP))) {
failf(data, "Refusing to issue an RTSP request [%s] without a session ID.",
- p_request ? p_request : "");
+ p_request);
return CURLE_BAD_FUNCTION_ARGUMENT;
}
@@ -496,8 +495,8 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
}
else {
- postsize = (data->set.postfieldsize != -1)?
- data->set.postfieldsize:
+ postsize = (data->state.infilesize != -1)?
+ data->state.infilesize:
(data->set.postfields? (curl_off_t)strlen(data->set.postfields):0);
data->set.httpreq = HTTPREQ_POST;
}
diff --git a/lib/security.c b/lib/security.c
index ccaa1f6e..014bbf1b 100644
--- a/lib/security.c
+++ b/lib/security.c
@@ -109,13 +109,6 @@ static char level_to_char(int level) {
return 'P';
}
-static const struct Curl_sec_client_mech * const mechs[] = {
-#ifdef HAVE_GSSAPI
- &Curl_krb5_client_mech,
-#endif
- NULL
-};
-
/* Send an FTP command defined by |message| and the optional arguments. The
function returns the ftp_code. If an error occurs, -1 is returned. */
static int ftp_send_command(struct connectdata *conn, const char *message, ...)
@@ -366,7 +359,7 @@ int Curl_sec_read_msg(struct connectdata *conn, char *buffer,
int */
int decoded_len;
char *buf;
- int ret_code;
+ int ret_code = 0;
size_t decoded_sz = 0;
CURLcode error;
@@ -395,13 +388,13 @@ int Curl_sec_read_msg(struct connectdata *conn, char *buffer,
}
buf[decoded_len] = '\0';
- DEBUGASSERT(decoded_len > 3);
- if(buf[3] == '-')
- ret_code = 0;
- else {
- /* Check for error? */
+ if(decoded_len <= 3)
+ /* suspiciously short */
+ return 0;
+
+ if(buf[3] != '-')
+ /* safe to ignore return code */
(void)sscanf(buf, "%d", &ret_code);
- }
if(buf[decoded_len - 1] == '\n')
buf[decoded_len - 1] = '\0';
@@ -444,8 +437,8 @@ static int sec_set_protection_level(struct connectdata *conn)
pbsz = strstr(conn->data->state.buffer, "PBSZ=");
if(pbsz) {
- /* FIXME: Checks for errors in sscanf? */
- sscanf(pbsz, "PBSZ=%u", &buffer_size);
+ /* ignore return code, use default value if it fails */
+ (void)sscanf(pbsz, "PBSZ=%u", &buffer_size);
if(buffer_size < conn->buffer_size)
conn->buffer_size = buffer_size;
}
@@ -484,72 +477,63 @@ static CURLcode choose_mech(struct connectdata *conn)
{
int ret;
struct SessionHandle *data = conn->data;
- const struct Curl_sec_client_mech * const *mech;
void *tmp_allocation;
- const char *mech_name;
-
- for(mech = mechs; (*mech); ++mech) {
- mech_name = (*mech)->name;
- /* We have no mechanism with a NULL name but keep this check */
- DEBUGASSERT(mech_name != NULL);
- if(mech_name == NULL) {
- infof(data, "Skipping mechanism with empty name (%p)\n", (void *)mech);
- continue;
- }
- tmp_allocation = realloc(conn->app_data, (*mech)->size);
- if(tmp_allocation == NULL) {
- failf(data, "Failed realloc of size %u", (*mech)->size);
- mech = NULL;
- return CURLE_OUT_OF_MEMORY;
- }
- conn->app_data = tmp_allocation;
+ const struct Curl_sec_client_mech *mech = &Curl_krb5_client_mech;
- if((*mech)->init) {
- ret = (*mech)->init(conn->app_data);
- if(ret != 0) {
- infof(data, "Failed initialization for %s. Skipping it.\n", mech_name);
- continue;
- }
+ tmp_allocation = realloc(conn->app_data, mech->size);
+ if(tmp_allocation == NULL) {
+ failf(data, "Failed realloc of size %u", mech->size);
+ mech = NULL;
+ return CURLE_OUT_OF_MEMORY;
+ }
+ conn->app_data = tmp_allocation;
+
+ if(mech->init) {
+ ret = mech->init(conn->app_data);
+ if(ret) {
+ infof(data, "Failed initialization for %s. Skipping it.\n",
+ mech->name);
+ return CURLE_FAILED_INIT;
}
+ }
- infof(data, "Trying mechanism %s...\n", mech_name);
- ret = ftp_send_command(conn, "AUTH %s", mech_name);
- if(ret < 0)
- /* FIXME: This error is too generic but it is OK for now. */
- return CURLE_COULDNT_CONNECT;
-
- if(ret/100 != 3) {
- switch(ret) {
- case 504:
- infof(data, "Mechanism %s is not supported by the server (server "
- "returned ftp code: 504).\n", mech_name);
- break;
- case 534:
- infof(data, "Mechanism %s was rejected by the server (server returned "
- "ftp code: 534).\n", mech_name);
- break;
- default:
- if(ret/100 == 5) {
- infof(data, "server does not support the security extensions\n");
- return CURLE_USE_SSL_FAILED;
- }
- break;
+ infof(data, "Trying mechanism %s...\n", mech->name);
+ ret = ftp_send_command(conn, "AUTH %s", mech->name);
+ if(ret < 0)
+ /* FIXME: This error is too generic but it is OK for now. */
+ return CURLE_COULDNT_CONNECT;
+
+ if(ret/100 != 3) {
+ switch(ret) {
+ case 504:
+ infof(data, "Mechanism %s is not supported by the server (server "
+ "returned ftp code: 504).\n", mech->name);
+ break;
+ case 534:
+ infof(data, "Mechanism %s was rejected by the server (server returned "
+ "ftp code: 534).\n", mech->name);
+ break;
+ default:
+ if(ret/100 == 5) {
+ infof(data, "server does not support the security extensions\n");
+ return CURLE_USE_SSL_FAILED;
}
- continue;
+ break;
}
+ return CURLE_LOGIN_DENIED;
+ }
- /* Authenticate */
- ret = (*mech)->auth(conn->app_data, conn);
+ /* Authenticate */
+ ret = mech->auth(conn->app_data, conn);
- if(ret == AUTH_CONTINUE)
- continue;
- else if(ret != AUTH_OK) {
+ if(ret != AUTH_CONTINUE) {
+ if(ret != AUTH_OK) {
/* Mechanism has dumped the error to stderr, don't error here. */
return -1;
}
DEBUGASSERT(ret == AUTH_OK);
- conn->mech = *mech;
+ conn->mech = mech;
conn->sec_complete = 1;
conn->recv[FIRSTSOCKET] = sec_recv;
conn->send[FIRSTSOCKET] = sec_send;
@@ -559,10 +543,9 @@ static CURLcode choose_mech(struct connectdata *conn)
/* Set the requested protection level */
/* BLOCKING */
(void)sec_set_protection_level(conn);
- break;
}
- return *mech != NULL ? CURLE_OK : CURLE_FAILED_INIT;
+ return CURLE_OK;
}
CURLcode
diff --git a/lib/sendf.c b/lib/sendf.c
index 879e0829..5f39d1f2 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -551,7 +551,7 @@ CURLcode Curl_read(struct connectdata *conn, /* connection data */
ssize_t nread = 0;
size_t bytesfromsocket = 0;
char *buffertofill = NULL;
- bool pipelining = Curl_multi_pipeline_enabled(conn->data->multi);
+ bool pipelining = Curl_pipeline_wanted(conn->data->multi, CURLPIPE_HTTP1);
/* Set 'num' to 0 or 1, depending on which socket that has been sent here.
If it is the second socket, we set num to 1. Otherwise to 0. This lets
diff --git a/lib/share.c b/lib/share.c
index 3fc53119..17202486 100644
--- a/lib/share.c
+++ b/lib/share.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,9 +35,15 @@ CURLSH *
curl_share_init(void)
{
struct Curl_share *share = calloc(1, sizeof(struct Curl_share));
- if(share)
+ if(share) {
share->specifier |= (1<<CURL_LOCK_DATA_SHARE);
+ if(Curl_mk_dnscache(&share->hostcache)) {
+ free(share);
+ return NULL;
+ }
+ }
+
return share;
}
@@ -67,11 +73,6 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)
share->specifier |= (1<<type);
switch( type ) {
case CURL_LOCK_DATA_DNS:
- if(!share->hostcache) {
- share->hostcache = Curl_mk_dnscache();
- if(!share->hostcache)
- res = CURLSHE_NOMEM;
- }
break;
case CURL_LOCK_DATA_COOKIE:
@@ -115,10 +116,6 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)
share->specifier &= ~(1<<type);
switch( type ) {
case CURL_LOCK_DATA_DNS:
- if(share->hostcache) {
- Curl_hash_destroy(share->hostcache);
- share->hostcache = NULL;
- }
break;
case CURL_LOCK_DATA_COOKIE:
@@ -192,10 +189,7 @@ curl_share_cleanup(CURLSH *sh)
return CURLSHE_IN_USE;
}
- if(share->hostcache) {
- Curl_hash_destroy(share->hostcache);
- share->hostcache = NULL;
- }
+ Curl_hash_destroy(&share->hostcache);
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
Curl_cookie_cleanup(share->cookies);
diff --git a/lib/share.h b/lib/share.h
index 9a5128e9..8e6629b7 100644
--- a/lib/share.h
+++ b/lib/share.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -44,7 +44,7 @@ struct Curl_share {
curl_unlock_function unlockfunc;
void *clientdata;
- struct curl_hash *hostcache;
+ struct curl_hash hostcache;
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
struct CookieInfo *cookies;
#endif
diff --git a/lib/smb.c b/lib/smb.c
index 8cb35035..d461a712 100644
--- a/lib/smb.c
+++ b/lib/smb.c
@@ -783,9 +783,15 @@ static CURLcode smb_request_state(struct connectdata *conn, bool *done)
off = Curl_read16_le(((unsigned char *) msg) +
sizeof(struct smb_header) + 13);
if(len > 0) {
- result = Curl_client_write(conn, CLIENTWRITE_BODY,
- (char *)msg + off + sizeof(unsigned int),
- len);
+ struct smb_conn *smbc = &conn->proto.smbc;
+ if(off + sizeof(unsigned int) + len > smbc->got) {
+ failf(conn->data, "Invalid input packet");
+ result = CURLE_RECV_ERROR;
+ }
+ else
+ result = Curl_client_write(conn, CLIENTWRITE_BODY,
+ (char *)msg + off + sizeof(unsigned int),
+ len);
if(result) {
req->result = result;
next_state = SMB_CLOSE;
diff --git a/lib/ssh.c b/lib/ssh.c
index bd16c7fb..f2064534 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -1737,8 +1737,8 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
BUFSIZE : curlx_sotouz(data->state.resume_from - passed);
size_t actuallyread =
- conn->fread_func(data->state.buffer, 1, readthisamountnow,
- conn->fread_in);
+ data->set.fread_func(data->state.buffer, 1, readthisamountnow,
+ data->set.in);
passed += actuallyread;
if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
diff --git a/lib/strerror.c b/lib/strerror.c
index e653af43..cbc5c473 100644
--- a/lib/strerror.c
+++ b/lib/strerror.c
@@ -1067,6 +1067,12 @@ const char *Curl_sspi_strerror (struct connectdata *conn, int err)
if(err == SEC_E_OK)
strncpy(outbuf, txt, outmax);
+ else if(err == SEC_E_ILLEGAL_MESSAGE)
+ snprintf(outbuf, outmax,
+ "SEC_E_ILLEGAL_MESSAGE (0x%04X%04X) - This error usually occurs "
+ "when a fatal SSL/TLS alert is received (e.g. handshake failed). "
+ "More detail may be available in the Windows System event log.",
+ (err >> 16) & 0xffff, err & 0xffff);
else {
str = txtbuf;
snprintf(txtbuf, sizeof(txtbuf), "%s (0x%04X%04X)",
diff --git a/lib/telnet.c b/lib/telnet.c
index 91863c06..aabf99d4 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -1423,7 +1423,8 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
for(;;) {
if(data->set.is_fread_set) {
/* read from user-supplied method */
- result = (int) conn->fread_func(buf, 1, BUFSIZE - 1, conn->fread_in);
+ result = (int)data->set.fread_func(buf, 1, BUFSIZE - 1,
+ data->set.in);
if(result == CURL_READFUNC_ABORT) {
keepon = FALSE;
result = CURLE_READ_ERROR;
@@ -1562,13 +1563,13 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
pfd[0].fd = sockfd;
pfd[0].events = POLLIN;
- if(conn->fread_func != (curl_read_callback)fread) {
+ if(data->set.fread_func != (curl_read_callback)fread) {
poll_cnt = 1;
interval_ms = 100; /* poll user-supplied read function */
}
else {
/* really using fread, so infile is a FILE* */
- pfd[1].fd = fileno((FILE *)conn->fread_in);
+ pfd[1].fd = fileno((FILE *)data->set.in);
pfd[1].events = POLLIN;
poll_cnt = 2;
interval_ms = 1 * 1000;
@@ -1627,7 +1628,7 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
}
else {
/* read from user-supplied method */
- nread = (int)conn->fread_func(buf, 1, BUFSIZE - 1, conn->fread_in);
+ nread = (int)data->set.fread_func(buf, 1, BUFSIZE - 1, data->set.in);
if(nread == CURL_READFUNC_ABORT) {
keepon = FALSE;
break;
diff --git a/lib/transfer.c b/lib/transfer.c
index 267e0a1c..28cc61ec 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -115,8 +115,8 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
/* this function returns a size_t, so we typecast to int to prevent warnings
with picky compilers */
- nread = (int)conn->fread_func(data->req.upload_fromhere, 1,
- buffersize, conn->fread_in);
+ nread = (int)data->set.fread_func(data->req.upload_fromhere, 1,
+ buffersize, data->set.in);
if(nread == CURL_READFUNC_ABORT) {
failf(data, "operation aborted by callback");
@@ -317,8 +317,7 @@ static int data_pending(const struct connectdata *conn)
TRUE. The thing is if we read everything, then http2_recv won't
be called and we cannot signal the HTTP/2 stream has closed. As
a workaround, we return nonzero here to call http2_recv. */
- ((conn->handler->protocol&PROTO_FAMILY_HTTP) && conn->httpversion == 20 &&
- conn->proto.httpc.closed);
+ ((conn->handler->protocol&PROTO_FAMILY_HTTP) && conn->httpversion == 20);
#else
Curl_ssl_data_pending(conn, FIRSTSOCKET);
#endif
@@ -433,6 +432,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
else {
/* read nothing but since we wanted nothing we consider this an OK
situation to proceed from */
+ DEBUGF(infof(data, "readwrite_data: we're done!\n"));
nread = 0;
}
@@ -494,7 +494,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
/* We've stopped dealing with input, get out of the do-while loop */
if(nread > 0) {
- if(Curl_multi_pipeline_enabled(conn->data->multi)) {
+ if(Curl_pipeline_wanted(conn->data->multi, CURLPIPE_HTTP1)) {
infof(data,
"Rewinding stream by : %zd"
" bytes on url %s (zero-length body)\n",
@@ -639,7 +639,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
if(dataleft != 0) {
infof(conn->data, "Leftovers after chunking: %zu bytes\n",
dataleft);
- if(Curl_multi_pipeline_enabled(conn->data->multi)) {
+ if(Curl_pipeline_wanted(conn->data->multi, CURLPIPE_HTTP1)) {
/* only attempt the rewind if we truly are pipelining */
infof(conn->data, "Rewinding %zu bytes\n",dataleft);
read_rewind(conn, dataleft);
@@ -662,7 +662,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
excess = (size_t)(k->bytecount + nread - k->maxdownload);
if(excess > 0 && !k->ignorebody) {
- if(Curl_multi_pipeline_enabled(conn->data->multi)) {
+ if(Curl_pipeline_wanted(conn->data->multi, CURLPIPE_HTTP1)) {
/* The 'excess' amount below can't be more than BUFSIZE which
always will fit in a size_t */
infof(data,
@@ -828,13 +828,6 @@ static CURLcode readwrite_upload(struct SessionHandle *data,
*didwhat |= KEEP_SEND;
- /*
- * We loop here to do the READ and SEND loop until we run out of
- * data to send or until we get EWOULDBLOCK back
- *
- * FIXME: above comment is misleading. Currently no looping is
- * actually done in do-while loop below.
- */
do {
/* only read more data if there's no upload data already
@@ -1020,9 +1013,9 @@ static CURLcode readwrite_upload(struct SessionHandle *data,
* be read and written to/from the connection.
*/
CURLcode Curl_readwrite(struct connectdata *conn,
+ struct SessionHandle *data,
bool *done)
{
- struct SessionHandle *data = conn->data;
struct SingleRequest *k = &data->req;
CURLcode result;
int didwhat=0;
@@ -1046,6 +1039,11 @@ CURLcode Curl_readwrite(struct connectdata *conn,
else
fd_write = CURL_SOCKET_BAD;
+ if(conn->data->state.drain) {
+ select_res |= CURL_CSELECT_IN;
+ DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n"));
+ }
+
if(!select_res) /* Call for select()/poll() only, if read/write/error
status is not known. */
select_res = Curl_socket_ready(fd_read, fd_write, 0);
diff --git a/lib/transfer.h b/lib/transfer.h
index ad4a3acd..316aeaeb 100644
--- a/lib/transfer.h
+++ b/lib/transfer.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,8 @@ CURLcode Curl_follow(struct SessionHandle *data, char *newurl,
followtype type);
-CURLcode Curl_readwrite(struct connectdata *conn, bool *done);
+CURLcode Curl_readwrite(struct connectdata *conn,
+ struct SessionHandle *data, bool *done);
int Curl_single_getsock(const struct connectdata *conn,
curl_socket_t *socks,
int numsocks);
diff --git a/lib/url.c b/lib/url.c
index 1af859dd..17279bbe 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -124,7 +124,6 @@ int curl_win32_idn_to_ascii(const char *in, char **out);
#include "curl_rtmp.h"
#include "gopher.h"
#include "http_proxy.h"
-#include "bundles.h"
#include "conncache.h"
#include "multihandle.h"
#include "pipeline.h"
@@ -576,6 +575,18 @@ CURLcode Curl_init_userdefined(struct UserDefined *set)
(char *) CURL_DEFAULT_SOCKS5_GSSAPI_SERVICE);
if(result)
return result;
+
+ /* set default negotiate proxy service name */
+ result = setstropt(&set->str[STRING_PROXY_SERVICE_NAME],
+ (char *) CURL_DEFAULT_PROXY_SERVICE_NAME);
+ if(result)
+ return result;
+
+ /* set default negotiate service name */
+ result = setstropt(&set->str[STRING_SERVICE_NAME],
+ (char *) CURL_DEFAULT_SERVICE_NAME);
+ if(result)
+ return result;
#endif
/* This is our preferred CA cert bundle/path since install time */
@@ -1473,12 +1484,29 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
va_arg(param, char *));
break;
+ case CURLOPT_PROXY_SERVICE_NAME:
+ /*
+ * Set negotiate proxy service name
+ */
+ result = setstropt(&data->set.str[STRING_PROXY_SERVICE_NAME],
+ va_arg(param, char *));
+ break;
+
case CURLOPT_SOCKS5_GSSAPI_NEC:
/*
* set flag for nec socks5 support
*/
data->set.socks5_gssapi_nec = (0 != va_arg(param, long))?TRUE:FALSE;
break;
+
+ case CURLOPT_SERVICE_NAME:
+ /*
+ * Set negotiate service identity
+ */
+ result = setstropt(&data->set.str[STRING_SERVICE_NAME],
+ va_arg(param, char *));
+ break;
+
#endif
case CURLOPT_HEADERDATA:
@@ -2158,9 +2186,9 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
data->share->dirty++;
- if(data->share->hostcache) {
+ if(data->share->specifier & (1<< CURL_LOCK_DATA_DNS)) {
/* use shared host cache */
- data->dns.hostcache = data->share->hostcache;
+ data->dns.hostcache = &data->share->hostcache;
data->dns.hostcachetype = HCACHE_SHARED;
}
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
@@ -2621,6 +2649,9 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
case CURLOPT_PATH_AS_IS:
data->set.path_as_is = (0 != va_arg(param, long))?TRUE:FALSE;
break;
+ case CURLOPT_PIPEWAIT:
+ data->set.pipewait = (0 != va_arg(param, long))?TRUE:FALSE;
+ break;
default:
/* unknown tag and its companion, just ignore: */
result = CURLE_UNKNOWN_OPTION;
@@ -2754,7 +2785,7 @@ CURLcode Curl_disconnect(struct connectdata *conn, bool dead_connection)
Curl_ssl_close(conn, FIRSTSOCKET);
/* Indicate to all handles on the pipe that we're dead */
- if(Curl_multi_pipeline_enabled(data->multi)) {
+ if(Curl_pipeline_wanted(data->multi, CURLPIPE_ANY)) {
signalPipeClose(conn->send_pipe, TRUE);
signalPipeClose(conn->recv_pipe, TRUE);
}
@@ -2782,32 +2813,31 @@ static bool SocketIsDead(curl_socket_t sock)
return ret_val;
}
+/*
+ * IsPipeliningPossible() returns TRUE if the options set would allow
+ * pipelining/multiplexing and the connection is using a HTTP protocol.
+ */
static bool IsPipeliningPossible(const struct SessionHandle *handle,
const struct connectdata *conn)
{
- if((conn->handler->protocol & PROTO_FAMILY_HTTP) &&
- Curl_multi_pipeline_enabled(handle->multi) &&
- (handle->set.httpreq == HTTPREQ_GET ||
- handle->set.httpreq == HTTPREQ_HEAD) &&
- handle->set.httpversion != CURL_HTTP_VERSION_1_0)
- return TRUE;
+ /* If a HTTP protocol and pipelining is enabled */
+ if(conn->handler->protocol & PROTO_FAMILY_HTTP) {
+
+ 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 */
+ return TRUE;
+ if(Curl_pipeline_wanted(handle->multi, CURLPIPE_MULTIPLEX) &&
+ (handle->set.httpversion == CURL_HTTP_VERSION_2_0))
+ /* allows HTTP/2 */
+ return TRUE;
+ }
return FALSE;
}
-bool Curl_isPipeliningEnabled(const struct SessionHandle *handle)
-{
- return Curl_multi_pipeline_enabled(handle->multi);
-}
-
-CURLcode Curl_addHandleToPipeline(struct SessionHandle *data,
- struct curl_llist *pipeline)
-{
- if(!Curl_llist_insert_next(pipeline, pipeline->tail, data))
- return CURLE_OUT_OF_MEMORY;
- return CURLE_OK;
-}
-
int Curl_removeHandleFromPipeline(struct SessionHandle *handle,
struct curl_llist *pipeline)
{
@@ -2855,15 +2885,14 @@ void Curl_getoff_all_pipelines(struct SessionHandle *data,
struct connectdata *conn)
{
bool recv_head = (conn->readchannel_inuse &&
- (gethandleathead(conn->recv_pipe) == data)) ? TRUE : FALSE;
-
+ Curl_recvpipe_head(data, conn));
bool send_head = (conn->writechannel_inuse &&
- (gethandleathead(conn->send_pipe) == data)) ? TRUE : FALSE;
+ Curl_sendpipe_head(data, conn));
if(Curl_removeHandleFromPipeline(data, conn->recv_pipe) && recv_head)
- conn->readchannel_inuse = FALSE;
+ Curl_pipeline_leave_read(conn);
if(Curl_removeHandleFromPipeline(data, conn->send_pipe) && send_head)
- conn->writechannel_inuse = FALSE;
+ Curl_pipeline_leave_write(conn);
}
static void signalPipeClose(struct curl_llist *pipeline, bool pipe_broke)
@@ -2915,7 +2944,7 @@ find_oldest_idle_connection(struct SessionHandle *data)
now = Curl_tvnow();
- Curl_hash_start_iterate(bc->hash, &iter);
+ Curl_hash_start_iterate(&bc->hash, &iter);
he = Curl_hash_next_element(&iter);
while(he) {
@@ -3049,6 +3078,13 @@ static void prune_dead_connections(struct SessionHandle *data)
}
}
+
+static size_t max_pipeline_length(struct Curl_multi *multi)
+{
+ return multi ? multi->max_pipeline_length : 0;
+}
+
+
/*
* Given one filled in connection struct (named needle), this function should
* detect if there already is one that has all the significant details
@@ -3065,7 +3101,8 @@ static bool
ConnectionExists(struct SessionHandle *data,
struct connectdata *needle,
struct connectdata **usethis,
- bool *force_reuse)
+ bool *force_reuse,
+ bool *waitpipe)
{
struct connectdata *check;
struct connectdata *chosen = 0;
@@ -3078,6 +3115,7 @@ ConnectionExists(struct SessionHandle *data,
struct connectbundle *bundle;
*force_reuse = FALSE;
+ *waitpipe = FALSE;
/* We can't pipe if the site is blacklisted */
if(canPipeline && Curl_pipeline_site_blacklisted(data, needle)) {
@@ -3088,7 +3126,9 @@ ConnectionExists(struct SessionHandle *data,
particular host */
bundle = Curl_conncache_find_bundle(needle, data->state.conn_cache);
if(bundle) {
- size_t max_pipe_len = Curl_multi_max_pipeline_length(data->multi);
+ /* Max pipe length is zero (unlimited) for multiplexed connections */
+ size_t max_pipe_len = (bundle->multiuse != BUNDLE_MULTIPLEX)?
+ max_pipeline_length(data->multi):0;
size_t best_pipe_len = max_pipe_len;
struct curl_llist_element *curr;
@@ -3096,9 +3136,17 @@ ConnectionExists(struct SessionHandle *data,
needle->host.name, (void *)bundle);
/* We can't pipe if we don't know anything about the server */
- if(canPipeline && !bundle->server_supports_pipelining) {
- infof(data, "Server doesn't support pipelining\n");
- canPipeline = FALSE;
+ if(canPipeline) {
+ if(bundle->multiuse <= BUNDLE_UNKNOWN) {
+ if((bundle->multiuse == BUNDLE_UNKNOWN) && data->set.pipewait) {
+ infof(data, "Server doesn't support multi-use yet, wait\n");
+ *waitpipe = TRUE;
+ return FALSE; /* no re-use */
+ }
+
+ infof(data, "Server doesn't support multi-use (yet)\n");
+ canPipeline = FALSE;
+ }
}
curr = bundle->conn_list->head;
@@ -3122,16 +3170,19 @@ ConnectionExists(struct SessionHandle *data,
pipeLen = check->send_pipe->size + check->recv_pipe->size;
if(canPipeline) {
- /* Make sure the pipe has only GET requests */
- struct SessionHandle* sh = gethandleathead(check->send_pipe);
- struct SessionHandle* rh = gethandleathead(check->recv_pipe);
- if(sh) {
- if(!IsPipeliningPossible(sh, check))
- continue;
- }
- else if(rh) {
- if(!IsPipeliningPossible(rh, check))
- continue;
+
+ if(!check->bits.multiplex) {
+ /* If not multiplexing, make sure the pipe has only GET requests */
+ struct SessionHandle* sh = gethandleathead(check->send_pipe);
+ struct SessionHandle* rh = gethandleathead(check->recv_pipe);
+ if(sh) {
+ if(!IsPipeliningPossible(sh, check))
+ continue;
+ }
+ else if(rh) {
+ if(!IsPipeliningPossible(rh, check))
+ continue;
+ }
}
}
else {
@@ -3310,19 +3361,42 @@ ConnectionExists(struct SessionHandle *data,
}
/* We can't use the connection if the pipe is full */
- if(pipeLen >= max_pipe_len)
+ if(max_pipe_len && (pipeLen >= max_pipe_len)) {
+ infof(data, "Pipe is full, skip (%zu)\n", pipeLen);
continue;
-
+ }
+#ifdef USE_NGHTTP2
+ /* If multiplexed, make sure we don't go over concurrency limit */
+ if(check->bits.multiplex) {
+ /* Multiplexed connections can only be HTTP/2 for now */
+ struct http_conn *httpc = &check->proto.httpc;
+ if(pipeLen >= httpc->settings.max_concurrent_streams) {
+ infof(data, "MAX_CONCURRENT_STREAMS reached, skip (%zu)\n",
+ pipeLen);
+ continue;
+ }
+ }
+#endif
/* We can't use the connection if the pipe is penalized */
- if(Curl_pipeline_penalized(data, check))
+ if(Curl_pipeline_penalized(data, check)) {
+ infof(data, "Penalized, skip\n");
continue;
+ }
- if(pipeLen < best_pipe_len) {
- /* This connection has a shorter pipe so far. We'll pick this
- and continue searching */
+ if(max_pipe_len) {
+ if(pipeLen < best_pipe_len) {
+ /* This connection has a shorter pipe so far. We'll pick this
+ and continue searching */
+ chosen = check;
+ best_pipe_len = pipeLen;
+ continue;
+ }
+ }
+ else {
+ /* When not pipelining (== multiplexed), we have a match here! */
chosen = check;
- best_pipe_len = pipeLen;
- continue;
+ infof(data, "Multiplexed connection found!\n");
+ break;
}
}
else {
@@ -3374,20 +3448,6 @@ ConnectionDone(struct SessionHandle *data, struct connectdata *conn)
return (conn_candidate == conn) ? FALSE : TRUE;
}
-/*
- * The given input connection struct pointer is to be stored in the connection
- * cache. If the cache is already full, least interesting existing connection
- * (if any) gets closed.
- *
- * The given connection should be unique. That must've been checked prior to
- * this call.
- */
-static CURLcode ConnectionStore(struct SessionHandle *data,
- struct connectdata *conn)
-{
- return Curl_conncache_add_conn(data->state.conn_cache, conn);
-}
-
/* after a TCP connection to the proxy has been verified, this function does
the next magic step.
@@ -3763,9 +3823,9 @@ static struct connectdata *allocate_conn(struct SessionHandle *data)
conn->response_header = NULL;
#endif
- if(Curl_multi_pipeline_enabled(data->multi) &&
- !conn->master_buffer) {
- /* Allocate master_buffer to be used for pipelining */
+ if(Curl_pipeline_wanted(data->multi, CURLPIPE_HTTP1) &&
+ !conn->master_buffer) {
+ /* Allocate master_buffer to be used for HTTP/1 pipelining */
conn->master_buffer = calloc(BUFSIZE, sizeof (char));
if(!conn->master_buffer)
goto error;
@@ -4458,7 +4518,6 @@ static char *detect_proxy(struct connectdata *conn)
* If this is supposed to use a proxy, we need to figure out the proxy
* host name, so that we can re-use an existing connection
* that may exist registered to the same proxy host.
- * proxy will be freed before this function returns.
*/
static CURLcode parse_proxy(struct SessionHandle *data,
struct connectdata *conn, char *proxy)
@@ -5295,8 +5354,9 @@ static CURLcode create_conn(struct SessionHandle *data,
bool reuse;
char *proxy = NULL;
bool prot_missing = FALSE;
- bool no_connections_available = FALSE;
+ bool connections_available = TRUE;
bool force_reuse = FALSE;
+ bool waitpipe = FALSE;
size_t max_host_connections = Curl_multi_max_host_connections(data->multi);
size_t max_total_connections = Curl_multi_max_total_connections(data->multi);
@@ -5505,8 +5565,10 @@ static CURLcode create_conn(struct SessionHandle *data,
conn->bits.httpproxy = TRUE;
#endif
}
- else
+ else {
conn->bits.httpproxy = FALSE; /* not a HTTP proxy */
+ conn->bits.tunnel_proxy = FALSE; /* no tunneling if not HTTP */
+ }
conn->bits.proxy = TRUE;
}
else {
@@ -5571,7 +5633,7 @@ static CURLcode create_conn(struct SessionHandle *data,
conn->data = data;
conn->bits.tcpconnect[FIRSTSOCKET] = TRUE; /* we are "connected */
- ConnectionStore(data, conn);
+ Curl_conncache_add_conn(data->state.conn_cache, conn);
/*
* Setup whatever necessary for a resumed transfer
@@ -5636,7 +5698,7 @@ static CURLcode create_conn(struct SessionHandle *data,
if(data->set.reuse_fresh && !data->state.this_is_a_follow)
reuse = FALSE;
else
- reuse = ConnectionExists(data, conn, &conn_temp, &force_reuse);
+ reuse = ConnectionExists(data, conn, &conn_temp, &force_reuse, &waitpipe);
/* If we found a reusable connection, we may still want to
open a new connection if we are pipelining. */
@@ -5682,9 +5744,15 @@ static CURLcode create_conn(struct SessionHandle *data,
/* We have decided that we want a new connection. However, we may not
be able to do that if we have reached the limit of how many
connections we are allowed to open. */
- struct connectbundle *bundle;
+ struct connectbundle *bundle = NULL;
+
+ if(waitpipe)
+ /* There is a connection that *might* become usable for pipelining
+ "soon", and we wait for that */
+ connections_available = FALSE;
+ else
+ bundle = Curl_conncache_find_bundle(conn, data->state.conn_cache);
- bundle = Curl_conncache_find_bundle(conn, data->state.conn_cache);
if(max_host_connections > 0 && bundle &&
(bundle->num_connections >= max_host_connections)) {
struct connectdata *conn_candidate;
@@ -5697,11 +5765,15 @@ static CURLcode create_conn(struct SessionHandle *data,
conn_candidate->data = data;
(void)Curl_disconnect(conn_candidate, /* dead_connection */ FALSE);
}
- else
- no_connections_available = TRUE;
+ else {
+ infof(data, "No more connections allowed to host: %d\n",
+ max_host_connections);
+ connections_available = FALSE;
+ }
}
- if(max_total_connections > 0 &&
+ if(connections_available &&
+ (max_total_connections > 0) &&
(data->state.conn_cache->num_connections >= max_total_connections)) {
struct connectdata *conn_candidate;
@@ -5713,12 +5785,13 @@ static CURLcode create_conn(struct SessionHandle *data,
conn_candidate->data = data;
(void)Curl_disconnect(conn_candidate, /* dead_connection */ FALSE);
}
- else
- no_connections_available = TRUE;
+ else {
+ infof(data, "No connections available in cache\n");
+ connections_available = FALSE;
+ }
}
-
- if(no_connections_available) {
+ if(!connections_available) {
infof(data, "No connections available.\n");
conn_free(conn);
@@ -5732,7 +5805,7 @@ static CURLcode create_conn(struct SessionHandle *data,
* This is a brand new connection, so let's store it in the connection
* cache of ours!
*/
- ConnectionStore(data, conn);
+ Curl_conncache_add_conn(data->state.conn_cache, conn);
}
#if defined(USE_NTLM)
@@ -5772,8 +5845,6 @@ static CURLcode create_conn(struct SessionHandle *data,
* Inherit the proper values from the urldata struct AFTER we have arranged
* the persistent connection stuff
*/
- conn->fread_func = data->set.fread_func;
- conn->fread_in = data->set.in;
conn->seek_func = data->set.seek_func;
conn->seek_client = data->set.seek_client;
@@ -5931,34 +6002,20 @@ CURLcode Curl_done(struct connectdata **connp,
conn = *connp;
data = conn->data;
- if(conn->bits.done)
+ DEBUGF(infof(data, "Curl_done\n"));
+
+ if(data->state.done)
/* Stop if Curl_done() has already been called */
return CURLE_OK;
Curl_getoff_all_pipelines(data, conn);
- if((conn->send_pipe->size + conn->recv_pipe->size != 0 &&
- !data->set.reuse_forbid &&
- !conn->bits.close))
- /* Stop if pipeline is not empty and we do not have to close
- connection. */
- return CURLE_OK;
-
- conn->bits.done = TRUE; /* called just now! */
-
/* Cleanup possible redirect junk */
free(data->req.newurl);
data->req.newurl = NULL;
free(data->req.location);
data->req.location = NULL;
- Curl_resolver_cancel(conn);
-
- if(conn->dns_entry) {
- Curl_resolv_unlock(data, conn->dns_entry); /* done with this */
- conn->dns_entry = NULL;
- }
-
switch(status) {
case CURLE_ABORTED_BY_CALLBACK:
case CURLE_READ_ERROR:
@@ -5981,6 +6038,23 @@ CURLcode Curl_done(struct connectdata **connp,
if(!result && Curl_pgrsDone(conn))
result = CURLE_ABORTED_BY_CALLBACK;
+ if((conn->send_pipe->size + conn->recv_pipe->size != 0 &&
+ !data->set.reuse_forbid &&
+ !conn->bits.close)) {
+ /* Stop if pipeline is not empty and we do not have to close
+ connection. */
+ DEBUGF(infof(data, "Connection still in use, no more Curl_done now!\n"));
+ return CURLE_OK;
+ }
+
+ data->state.done = TRUE; /* called just now! */
+ Curl_resolver_cancel(conn);
+
+ if(conn->dns_entry) {
+ Curl_resolv_unlock(data, conn->dns_entry); /* done with this */
+ conn->dns_entry = NULL;
+ }
+
/* if the transfer was completed in a paused state there can be buffered
data left to write and then kill */
free(data->state.tempwrite);
@@ -6050,7 +6124,7 @@ static CURLcode do_init(struct connectdata *conn)
struct SessionHandle *data = conn->data;
struct SingleRequest *k = &data->req;
- conn->bits.done = FALSE; /* Curl_done() is not called yet */
+ data->state.done = FALSE; /* Curl_done() is not called yet */
conn->bits.do_more = FALSE; /* by default there's no curl_do_more() to use */
data->state.expect100header = FALSE;
diff --git a/lib/url.h b/lib/url.h
index cd46a92c..e49b7724 100644
--- a/lib/url.h
+++ b/lib/url.h
@@ -69,6 +69,9 @@ void Curl_close_connections(struct SessionHandle *data);
#define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */
#define CURL_DEFAULT_SOCKS5_GSSAPI_SERVICE "rcmd" /* default socks5 gssapi
service */
+#define CURL_DEFAULT_PROXY_SERVICE_NAME "HTTP" /* default negotiate proxy
+ service */
+#define CURL_DEFAULT_SERVICE_NAME "HTTP" /* default negotiate service */
CURLcode Curl_connected_proxy(struct connectdata *conn, int sockindex);
diff --git a/lib/urldata.h b/lib/urldata.h
index b1b1a678..05bda794 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -322,6 +322,9 @@ struct ssl_connect_data {
size_t encdata_offset, decdata_offset;
unsigned char *encdata_buffer, *decdata_buffer;
unsigned long req_flags, ret_flags;
+ CURLcode recv_unrecoverable_err; /* schannel_recv had an unrecoverable err */
+ bool recv_sspi_close_notify; /* true if connection closed by close_notify */
+ bool recv_connection_closed; /* true if connection closed, regardless how */
#endif /* USE_SCHANNEL */
#ifdef USE_DARWINSSL
SSLContextRef ssl_ctx;
@@ -516,11 +519,6 @@ struct ConnectBits {
requests */
bool netrc; /* name+password provided by netrc */
bool userpwd_in_url; /* name+password found in url */
-
- bool done; /* set to FALSE when Curl_do() is called and set to TRUE
- when Curl_done() is called, to prevent Curl_done() to
- get invoked twice when the multi interface is
- used. */
bool stream_was_rewound; /* Indicates that the stream was rewound after a
request read past the end of its response byte
boundary */
@@ -530,6 +528,7 @@ struct ConnectBits {
bool bound; /* set true if bind() has already been done on this socket/
connection */
bool type_set; /* type= was used in the URL */
+ bool multiplex; /* connection is multiplexed */
};
struct hostname {
@@ -992,10 +991,6 @@ struct connectdata {
/*************** Request - specific items ************/
- /* previously this was in the urldata struct */
- curl_read_callback fread_func; /* function that reads the input */
- void *fread_in; /* pointer to pass to the fread() above */
-
#if defined(USE_NTLM)
struct ntlmdata ntlm; /* NTLM differs from other authentication schemes
because it authenticates connections, not
@@ -1309,6 +1304,13 @@ struct UrlState {
curl_off_t infilesize; /* size of file to upload, -1 means unknown.
Copied from set.filesize at start of operation */
+
+ int drain; /* Increased when this stream has data to read, even if its
+ socket not necessarily is readable. Decreased when
+ checked. */
+ bool done; /* set to FALSE when Curl_do() is called and set to TRUE when
+ Curl_done() is called, to prevent Curl_done() to get invoked
+ twice when the multi interface is used. */
};
@@ -1389,6 +1391,8 @@ enum dupstring {
#endif
#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
STRING_SOCKS5_GSSAPI_SERVICE, /* GSSAPI service name */
+ STRING_PROXY_SERVICE_NAME, /* Proxy service name */
+ STRING_SERVICE_NAME, /* Service name */
#endif
STRING_MAIL_FROM,
STRING_MAIL_AUTH,
@@ -1421,8 +1425,8 @@ struct UserDefined {
long proxyport; /* If non-zero, use this port number by default. If the
proxy string features a ":[port]" that one will override
this. */
- void *out; /* the fetched file goes here */
- void *in; /* the uploaded file is read from here */
+ void *out; /* CURLOPT_WRITEDATA */
+ void *in; /* CURLOPT_READDATA */
void *writeheader; /* write the header to this if non-NULL */
void *rtp_out; /* write RTP to this if non-NULL */
long use_port; /* which port to use (when not using default) */
@@ -1618,6 +1622,8 @@ struct UserDefined {
bool ssl_enable_npn; /* TLS NPN extension? */
bool ssl_enable_alpn; /* TLS ALPN extension? */
bool path_as_is; /* allow dotdots? */
+ bool pipewait; /* wait for pipe/multiplex status before starting a
+ new connection */
long expect_100_timeout; /* in milliseconds */
};
diff --git a/lib/vtls/cyassl.c b/lib/vtls/cyassl.c
index 4d0a23f2..40dbbe13 100644
--- a/lib/vtls/cyassl.c
+++ b/lib/vtls/cyassl.c
@@ -57,6 +57,7 @@ and that's a problem since options.h hasn't been included yet. */
#include "connect.h" /* for the connect timeout */
#include "select.h"
#include "rawstr.h"
+#include "x509asn1.h"
#include "curl_printf.h"
#include <cyassl/ssl.h>
@@ -403,6 +404,44 @@ cyassl_connect_step2(struct connectdata *conn,
}
}
+ if(data->set.str[STRING_SSL_PINNEDPUBLICKEY]) {
+ X509 *x509;
+ const char *x509_der;
+ int x509_der_len;
+ curl_X509certificate x509_parsed;
+ curl_asn1Element *pubkey;
+ CURLcode result;
+
+ x509 = SSL_get_peer_certificate(conssl->handle);
+ if(!x509) {
+ failf(data, "SSL: failed retrieving server certificate");
+ return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ }
+
+ x509_der = (const char *)CyaSSL_X509_get_der(x509, &x509_der_len);
+ if(!x509_der) {
+ failf(data, "SSL: failed retrieving ASN.1 server certificate");
+ return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ }
+
+ memset(&x509_parsed, 0, sizeof x509_parsed);
+ Curl_parseX509(&x509_parsed, x509_der, x509_der + x509_der_len);
+
+ pubkey = &x509_parsed.subjectPublicKeyInfo;
+ if(!pubkey->header || pubkey->end <= pubkey->header) {
+ failf(data, "SSL: failed retrieving public key from server certificate");
+ return CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ }
+
+ result = Curl_pin_peer_pubkey(data->set.str[STRING_SSL_PINNEDPUBLICKEY],
+ (const unsigned char *)pubkey->header,
+ (size_t)(pubkey->end - pubkey->header));
+ if(result) {
+ failf(data, "SSL: public key does not match pinned public key!");
+ return result;
+ }
+ }
+
conssl->connecting_state = ssl_connect_3;
infof(data, "SSL connected\n");
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 3ad0f82f..1db31e40 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -231,7 +231,7 @@ static gnutls_datum_t load_file (const char *file)
long filelen;
void *ptr;
- if(!(f = fopen(file, "r")))
+ if(!(f = fopen(file, "rb")))
return loaded_file;
if(fseek(f, 0, SEEK_END) != 0
|| (filelen = ftell(f)) < 0
@@ -327,7 +327,8 @@ static CURLcode handshake(struct connectdata *conn,
if(strerr == NULL)
strerr = gnutls_strerror(rc);
- failf(data, "gnutls_handshake() warning: %s", strerr);
+ infof(data, "gnutls_handshake() warning: %s\n", strerr);
+ continue;
}
else if(rc < 0) {
const char *strerr = NULL;
@@ -897,10 +898,98 @@ gtls_connect_step3(struct connectdata *conn,
#ifdef HAS_OCSP
if(data->set.ssl.verifystatus) {
if(gnutls_ocsp_status_request_is_checked(session, 0) == 0) {
- if(verify_status & GNUTLS_CERT_REVOKED)
- infof(data, "\t server certificate was REVOKED\n");
- else
- infof(data, "\t server certificate status verification FAILED\n");
+ gnutls_datum_t status_request;
+ gnutls_ocsp_resp_t ocsp_resp;
+
+ gnutls_ocsp_cert_status_t status;
+ gnutls_x509_crl_reason_t reason;
+
+ rc = gnutls_ocsp_status_request_get(session, &status_request);
+
+ infof(data, "\t server certificate status verification FAILED\n");
+
+ if(rc == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ failf(data, "No OCSP response received");
+ return CURLE_SSL_INVALIDCERTSTATUS;
+ }
+
+ if(rc < 0) {
+ failf(data, "Invalid OCSP response received");
+ return CURLE_SSL_INVALIDCERTSTATUS;
+ }
+
+ gnutls_ocsp_resp_init(&ocsp_resp);
+
+ rc = gnutls_ocsp_resp_import(ocsp_resp, &status_request);
+ if(rc < 0) {
+ failf(data, "Invalid OCSP response received");
+ return CURLE_SSL_INVALIDCERTSTATUS;
+ }
+
+ rc = gnutls_ocsp_resp_get_single(ocsp_resp, 0, NULL, NULL, NULL, NULL,
+ &status, NULL, NULL, NULL, &reason);
+
+ switch(status) {
+ case GNUTLS_OCSP_CERT_GOOD:
+ break;
+
+ case GNUTLS_OCSP_CERT_REVOKED: {
+ const char *crl_reason;
+
+ switch(reason) {
+ default:
+ case GNUTLS_X509_CRLREASON_UNSPECIFIED:
+ crl_reason = "unspecified reason";
+ break;
+
+ case GNUTLS_X509_CRLREASON_KEYCOMPROMISE:
+ crl_reason = "private key compromised";
+ break;
+
+ case GNUTLS_X509_CRLREASON_CACOMPROMISE:
+ crl_reason = "CA compromised";
+ break;
+
+ case GNUTLS_X509_CRLREASON_AFFILIATIONCHANGED:
+ crl_reason = "affiliation has changed";
+ break;
+
+ case GNUTLS_X509_CRLREASON_SUPERSEDED:
+ crl_reason = "certificate superseded";
+ break;
+
+ case GNUTLS_X509_CRLREASON_CESSATIONOFOPERATION:
+ crl_reason = "operation has ceased";
+ break;
+
+ case GNUTLS_X509_CRLREASON_CERTIFICATEHOLD:
+ crl_reason = "certificate is on hold";
+ break;
+
+ case GNUTLS_X509_CRLREASON_REMOVEFROMCRL:
+ crl_reason = "will be removed from delta CRL";
+ break;
+
+ case GNUTLS_X509_CRLREASON_PRIVILEGEWITHDRAWN:
+ crl_reason = "privilege withdrawn";
+ break;
+
+ case GNUTLS_X509_CRLREASON_AACOMPROMISE:
+ crl_reason = "AA compromised";
+ break;
+ }
+
+ failf(data, "Server certificate was revoked: %s", crl_reason);
+ break;
+ }
+
+ default:
+ case GNUTLS_OCSP_CERT_UNKNOWN:
+ failf(data, "Server certificate status is unknown");
+ break;
+ }
+
+ gnutls_ocsp_resp_deinit(ocsp_resp);
return CURLE_SSL_INVALIDCERTSTATUS;
}
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
index feb00ca8..5434ce38 100644
--- a/lib/vtls/nss.c
+++ b/lib/vtls/nss.c
@@ -56,6 +56,7 @@
#include <base64.h>
#include <cert.h>
#include <prerror.h>
+#include <keyhi.h> /* for SECKEY_DestroyPublicKey() */
#define NSSVERNUM ((NSS_VMAJOR<<16)|(NSS_VMINOR<<8)|NSS_VPATCH)
@@ -724,6 +725,7 @@ static void HandshakeCallback(PRFileDesc *sock, void *arg)
}
}
+#if NSSVERNUM >= 0x030f04 /* 3.15.4 */
static SECStatus CanFalseStartCallback(PRFileDesc *sock, void *client_data,
PRBool *canFalseStart)
{
@@ -781,6 +783,7 @@ static SECStatus CanFalseStartCallback(PRFileDesc *sock, void *client_data,
end:
return SECSuccess;
}
+#endif
static void display_cert_info(struct SessionHandle *data,
CERTCertificate *cert)
@@ -943,6 +946,53 @@ static SECStatus check_issuer_cert(PRFileDesc *sock,
return res;
}
+static CURLcode cmp_peer_pubkey(struct ssl_connect_data *connssl,
+ const char *pinnedpubkey)
+{
+ CURLcode result = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+ struct SessionHandle *data = connssl->data;
+ CERTCertificate *cert;
+
+ if(!pinnedpubkey)
+ /* no pinned public key specified */
+ return CURLE_OK;
+
+ /* get peer certificate */
+ cert = SSL_PeerCertificate(connssl->handle);
+ if(cert) {
+ /* extract public key from peer certificate */
+ SECKEYPublicKey *pubkey = CERT_ExtractPublicKey(cert);
+ if(pubkey) {
+ /* encode the public key as DER */
+ SECItem *cert_der = PK11_DEREncodePublicKey(pubkey);
+ if(cert_der) {
+ /* compare the public key with the pinned public key */
+ result = Curl_pin_peer_pubkey(pinnedpubkey,
+ cert_der->data,
+ cert_der->len);
+ SECITEM_FreeItem(cert_der, PR_TRUE);
+ }
+ SECKEY_DestroyPublicKey(pubkey);
+ }
+ CERT_DestroyCertificate(cert);
+ }
+
+ /* report the resulting status */
+ switch(result) {
+ case CURLE_OK:
+ infof(data, "pinned public key verified successfully!\n");
+ break;
+ case CURLE_SSL_PINNEDPUBKEYNOTMATCH:
+ failf(data, "failed to verify pinned public key");
+ break;
+ default:
+ /* OOM, etc. */
+ break;
+ }
+
+ return result;
+}
+
/**
*
* Callback to pick the SSL client certificate.
@@ -1706,7 +1756,7 @@ static CURLcode nss_setup_connect(struct connectdata *conn, int sockindex)
goto error;
#endif
-#ifdef SSL_ENABLE_FALSE_START
+#if NSSVERNUM >= 0x030f04 /* 3.15.4 */
if(data->set.ssl.falsestart) {
if(SSL_OptionSet(connssl->handle, SSL_ENABLE_FALSE_START, PR_TRUE)
!= SECSuccess)
@@ -1806,6 +1856,11 @@ static CURLcode nss_do_connect(struct connectdata *conn, int sockindex)
}
}
+ result = cmp_peer_pubkey(connssl, data->set.str[STRING_SSL_PINNEDPUBLICKEY]);
+ if(result)
+ /* status already printed */
+ goto error;
+
return CURLE_OK;
error:
@@ -1996,7 +2051,7 @@ bool Curl_nss_cert_status_request(void)
}
bool Curl_nss_false_start(void) {
-#ifdef SSL_ENABLE_FALSE_START
+#if NSSVERNUM >= 0x030f04 /* 3.15.4 */
return TRUE;
#else
return FALSE;
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index b4c33d77..d1ea5fbf 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -83,18 +83,6 @@
#error "OPENSSL_VERSION_NUMBER not defined"
#endif
-#if OPENSSL_VERSION_NUMBER >= 0x0090581fL
-#define HAVE_SSL_GET1_SESSION 1
-#else
-#undef HAVE_SSL_GET1_SESSION
-#endif
-
-#if OPENSSL_VERSION_NUMBER >= 0x00904100L
-#define HAVE_USERDATA_IN_PWD_CALLBACK 1
-#else
-#undef HAVE_USERDATA_IN_PWD_CALLBACK
-#endif
-
#if OPENSSL_VERSION_NUMBER >= 0x00907001L && !defined(OPENSSL_IS_BORINGSSL)
/* ENGINE_load_private_key() takes four arguments */
#define HAVE_ENGINE_LOAD_FOUR_ARGS
@@ -114,10 +102,6 @@
#undef HAVE_PKCS12_SUPPORT
#endif
-#if OPENSSL_VERSION_NUMBER >= 0x00906001L
-#define HAVE_ERR_ERROR_STRING_N 1
-#endif
-
#if OPENSSL_VERSION_NUMBER >= 0x00909000L
#define SSL_METHOD_QUAL const
#else
@@ -160,18 +144,8 @@
*/
#define RAND_LOAD_LENGTH 1024
-#ifndef HAVE_USERDATA_IN_PWD_CALLBACK
-static char global_passwd[64];
-#endif
-
-static int passwd_callback(char *buf, int num, int encrypting
-#ifdef HAVE_USERDATA_IN_PWD_CALLBACK
- /* This was introduced in 0.9.4, we can set this
- using SSL_CTX_set_default_passwd_cb_userdata()
- */
- , void *global_passwd
-#endif
- )
+static int passwd_callback(char *buf, int num, int encrypting,
+ void *global_passwd)
{
DEBUGASSERT(0 == encrypting);
@@ -376,23 +350,9 @@ int cert_stuff(struct connectdata *conn,
int cert_done = 0;
if(data->set.str[STRING_KEY_PASSWD]) {
-#ifndef HAVE_USERDATA_IN_PWD_CALLBACK
- /*
- * If password has been given, we store that in the global
- * area (*shudder*) for a while:
- */
- size_t len = strlen(data->set.str[STRING_KEY_PASSWD]);
- if(len < sizeof(global_passwd))
- memcpy(global_passwd, data->set.str[STRING_KEY_PASSWD], len+1);
- else
- global_passwd[0] = '\0';
-#else
- /*
- * We set the password in the callback userdata
- */
+ /* set the password in the callback userdata */
SSL_CTX_set_default_passwd_cb_userdata(ctx,
data->set.str[STRING_KEY_PASSWD]);
-#endif
/* Set passwd callback: */
SSL_CTX_set_default_passwd_cb(ctx, passwd_callback);
}
@@ -678,10 +638,6 @@ int cert_stuff(struct connectdata *conn,
failf(data, "Private key does not match the certificate public key");
return 0;
}
-#ifndef HAVE_USERDATA_IN_PWD_CALLBACK
- /* erase it now */
- memset(global_passwd, 0, sizeof(global_passwd));
-#endif
}
return 1;
}
@@ -716,30 +672,14 @@ static int x509_name_oneline(X509_NAME *a, char *buf, size_t size)
#endif
}
-static
-int cert_verify_callback(int ok, X509_STORE_CTX *ctx)
-{
- X509 *err_cert;
- char buf[256];
-
- err_cert=X509_STORE_CTX_get_current_cert(ctx);
- (void)x509_name_oneline(X509_get_subject_name(err_cert), buf, sizeof(buf));
- return ok;
-}
-
/* Return error string for last OpenSSL error
*/
static char *SSL_strerror(unsigned long error, char *buf, size_t size)
{
-#ifdef HAVE_ERR_ERROR_STRING_N
/* OpenSSL 0.9.6 and later has a function named
- ERRO_error_string_n() that takes the size of the buffer as a
+ ERR_error_string_n() that takes the size of the buffer as a
third argument */
ERR_error_string_n(error, buf, size);
-#else
- (void) size;
- ERR_error_string(error, buf);
-#endif
return buf;
}
@@ -751,6 +691,8 @@ static char *SSL_strerror(unsigned long error, char *buf, size_t size)
*/
int Curl_ossl_init(void)
{
+ OPENSSL_load_builtin_modules();
+
#ifdef HAVE_ENGINE_LOAD_BUILTIN_ENGINES
ENGINE_load_builtin_engines();
#endif
@@ -1485,8 +1427,10 @@ static const char *ssl_msg_type(int ssl_ver, int msg)
return "Client hello";
case SSL3_MT_SERVER_HELLO:
return "Server hello";
+ case SSL3_MT_NEWSESSION_TICKET:
+ return "Newsession Ticket";
case SSL3_MT_CERTIFICATE:
- return "CERT";
+ return "Certificate";
case SSL3_MT_SERVER_KEY_EXCHANGE:
return "Server key exchange";
case SSL3_MT_CLIENT_KEY_EXCHANGE:
@@ -1499,6 +1443,10 @@ static const char *ssl_msg_type(int ssl_ver, int msg)
return "CERT verify";
case SSL3_MT_FINISHED:
return "Finished";
+#ifdef SSL3_MT_CERTIFICATE_STATUS
+ case SSL3_MT_CERTIFICATE_STATUS:
+ return "Certificate Status";
+#endif
}
}
return "Unknown";
@@ -1506,12 +1454,22 @@ static const char *ssl_msg_type(int ssl_ver, int msg)
static const char *tls_rt_type(int type)
{
- return (
- type == SSL3_RT_CHANGE_CIPHER_SPEC ? "TLS change cipher, " :
- type == SSL3_RT_ALERT ? "TLS alert, " :
- type == SSL3_RT_HANDSHAKE ? "TLS handshake, " :
- type == SSL3_RT_APPLICATION_DATA ? "TLS app data, " :
- "TLS Unknown, ");
+ switch(type) {
+#ifdef SSL3_RT_HEADER
+ case SSL3_RT_HEADER:
+ return "TLS header";
+#endif
+ case SSL3_RT_CHANGE_CIPHER_SPEC:
+ return "TLS change cipher";
+ case SSL3_RT_ALERT:
+ return "TLS alert";
+ case SSL3_RT_HANDSHAKE:
+ return "TLS handshake";
+ case SSL3_RT_APPLICATION_DATA:
+ return "TLS app data";
+ default:
+ return "TLS Unknown";
+ }
}
@@ -1519,8 +1477,8 @@ static const char *tls_rt_type(int type)
* Our callback from the SSL/TLS layers.
*/
static void ssl_tls_trace(int direction, int ssl_ver, int content_type,
- const void *buf, size_t len, const SSL *ssl,
- struct connectdata *conn)
+ const void *buf, size_t len, SSL *ssl,
+ void *userp)
{
struct SessionHandle *data;
const char *msg_name, *tls_rt_name;
@@ -1528,6 +1486,7 @@ static void ssl_tls_trace(int direction, int ssl_ver, int content_type,
char unknown[32];
int msg_type, txt_len;
const char *verstr;
+ struct connectdata *conn = userp;
if(!conn || !conn->data || !conn->data->set.fdebug ||
(direction != 0 && direction != 1))
@@ -1536,8 +1495,8 @@ static void ssl_tls_trace(int direction, int ssl_ver, int content_type,
data = conn->data;
switch(ssl_ver) {
-#ifdef SSL2_VERSION_MAJOR /* removed in recent versions */
- case SSL2_VERSION_MAJOR:
+#ifdef SSL2_VERSION /* removed in recent versions */
+ case SSL2_VERSION:
verstr = "SSLv2";
break;
#endif
@@ -1559,29 +1518,36 @@ static void ssl_tls_trace(int direction, int ssl_ver, int content_type,
verstr = "TLSv1.2";
break;
#endif
+ case 0:
+ break;
default:
snprintf(unknown, sizeof(unknown), "(%x)", ssl_ver);
verstr = unknown;
break;
}
- ssl_ver >>= 8; /* check the upper 8 bits only below */
+ if(ssl_ver) {
+ /* the info given when the version is zero is not that useful for us */
- /* SSLv2 doesn't seem to have TLS record-type headers, so OpenSSL
- * always pass-up content-type as 0. But the interesting message-type
- * is at 'buf[0]'.
- */
- if(ssl_ver == SSL3_VERSION_MAJOR && content_type != 0)
- tls_rt_name = tls_rt_type(content_type);
- else
- tls_rt_name = "";
+ ssl_ver >>= 8; /* check the upper 8 bits only below */
- msg_type = *(char*)buf;
- msg_name = ssl_msg_type(ssl_ver, msg_type);
+ /* SSLv2 doesn't seem to have TLS record-type headers, so OpenSSL
+ * always pass-up content-type as 0. But the interesting message-type
+ * is at 'buf[0]'.
+ */
+ if(ssl_ver == SSL3_VERSION_MAJOR && content_type)
+ tls_rt_name = tls_rt_type(content_type);
+ else
+ tls_rt_name = "";
+
+ msg_type = *(char*)buf;
+ msg_name = ssl_msg_type(ssl_ver, msg_type);
- txt_len = snprintf(ssl_buf, sizeof(ssl_buf), "%s, %s%s (%d):\n",
- verstr, tls_rt_name, msg_name, msg_type);
- Curl_debug(data, CURLINFO_TEXT, ssl_buf, (size_t)txt_len, NULL);
+ txt_len = snprintf(ssl_buf, sizeof(ssl_buf), "%s (%s), %s, %s (%d):\n",
+ verstr, direction?"OUT":"IN",
+ tls_rt_name, msg_name, msg_type);
+ Curl_debug(data, CURLINFO_TEXT, ssl_buf, (size_t)txt_len, NULL);
+ }
Curl_debug(data, (direction == 1) ? CURLINFO_SSL_DATA_OUT :
CURLINFO_SSL_DATA_IN, (char *)buf, len, NULL);
@@ -1733,7 +1699,12 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
case CURL_SSLVERSION_TLSv1_1:
case CURL_SSLVERSION_TLSv1_2:
/* it will be handled later with the context options */
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && \
+ !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_IS_BORINGSSL)
+ req_method = TLS_client_method();
+#else
req_method = SSLv23_client_method();
+#endif
use_sni(TRUE);
break;
case CURL_SSLVERSION_SSLv2:
@@ -1780,16 +1751,9 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
#ifdef SSL_CTRL_SET_MSG_CALLBACK
if(data->set.fdebug && data->set.verbose) {
- /* the SSL trace callback is only used for verbose logging so we only
- inform about failures of setting it */
- if(!SSL_CTX_callback_ctrl(connssl->ctx, SSL_CTRL_SET_MSG_CALLBACK,
- (void (*)(void))ssl_tls_trace)) {
- infof(data, "SSL: couldn't set callback!\n");
- }
- else if(!SSL_CTX_ctrl(connssl->ctx, SSL_CTRL_SET_MSG_CALLBACK_ARG, 0,
- conn)) {
- infof(data, "SSL: couldn't set callback argument!\n");
- }
+ /* the SSL trace callback is only used for verbose logging */
+ SSL_CTX_set_msg_callback(connssl->ctx, ssl_tls_trace);
+ SSL_CTX_set_msg_callback_arg(connssl->ctx, conn);
}
#endif
@@ -2050,13 +2014,27 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
data->set.str[STRING_SSL_CRLFILE]: "none");
}
+ /* Try building a chain using issuers in the trusted store first to avoid
+ problems with server-sent legacy intermediates.
+ Newer versions of OpenSSL do alternate chain checking by default which
+ gives us the same fix without as much of a performance hit (slight), so we
+ prefer that if available.
+ https://rt.openssl.org/Ticket/Display.html?id=3621&user=guest&pass=guest
+ */
+#if defined(X509_V_FLAG_TRUSTED_FIRST) && !defined(X509_V_FLAG_NO_ALT_CHAINS)
+ if(data->set.ssl.verifypeer) {
+ X509_STORE_set_flags(SSL_CTX_get_cert_store(connssl->ctx),
+ X509_V_FLAG_TRUSTED_FIRST);
+ }
+#endif
+
/* SSL 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. */
SSL_CTX_set_verify(connssl->ctx,
data->set.ssl.verifypeer?SSL_VERIFY_PEER:SSL_VERIFY_NONE,
- cert_verify_callback);
+ NULL);
/* give application a chance to interfere with SSL set up. */
if(data->set.ssl.fsslctx) {
@@ -2702,7 +2680,7 @@ static CURLcode servercert(struct connectdata *conn,
/* e.g. match issuer name with provided issuer certificate */
if(data->set.str[STRING_SSL_ISSUERCERT]) {
- fp = fopen(data->set.str[STRING_SSL_ISSUERCERT], "r");
+ fp = fopen(data->set.str[STRING_SSL_ISSUERCERT], FOPEN_READTEXT);
if(!fp) {
if(strict)
failf(data, "SSL: Unable to open issuer cert (%s)",
@@ -2802,25 +2780,11 @@ static CURLcode ossl_connect_step3(struct connectdata *conn, int sockindex)
DEBUGASSERT(ssl_connect_3 == connssl->connecting_state);
-#ifdef HAVE_SSL_GET1_SESSION
our_ssl_sessionid = SSL_get1_session(connssl->handle);
- /* SSL_get1_session() will increment the reference
- count and the session will stay in memory until explicitly freed with
- SSL_SESSION_free(3), regardless of its state.
- This function was introduced in openssl 0.9.5a. */
-#else
- our_ssl_sessionid = SSL_get_session(connssl->handle);
-
- /* if SSL_get1_session() is unavailable, use SSL_get_session().
- This is an inferior option because the session can be flushed
- at any time by openssl. It is included only so curl compiles
- under versions of openssl < 0.9.5a.
-
- WARNING: How curl behaves if it's session is flushed is
- untested.
- */
-#endif
+ /* SSL_get1_session() will increment the reference count and the session
+ will stay in memory until explicitly freed with SSL_SESSION_free(3),
+ regardless of its state. */
incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL));
if(incache) {
@@ -2839,7 +2803,6 @@ static CURLcode ossl_connect_step3(struct connectdata *conn, int sockindex)
return result;
}
}
-#ifdef HAVE_SSL_GET1_SESSION
else {
/* Session was incache, so refcount already incremented earlier.
* Avoid further increments with each SSL_get1_session() call.
@@ -2847,7 +2810,6 @@ static CURLcode ossl_connect_step3(struct connectdata *conn, int sockindex)
*/
SSL_SESSION_free(our_ssl_sessionid);
}
-#endif
/*
* We check certificates to authenticate the server; otherwise we risk
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index 7e2bd774..19aff8f0 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2012 - 2014, Marc Hoersken, <info@marc-hoersken.de>
+ * Copyright (C) 2012 - 2015, Marc Hoersken, <info@marc-hoersken.de>
* Copyright (C) 2012, Mark Salisbury, <mark.salisbury@hp.com>
* Copyright (C) 2012 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
@@ -125,56 +125,56 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
/* certificate validation on CE doesn't seem to work right; we'll
do it following a more manual process. */
schannel_cred.dwFlags = SCH_CRED_MANUAL_CRED_VALIDATION |
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK |
- SCH_CRED_IGNORE_REVOCATION_OFFLINE;
+ SCH_CRED_IGNORE_NO_REVOCATION_CHECK |
+ SCH_CRED_IGNORE_REVOCATION_OFFLINE;
#else
schannel_cred.dwFlags = SCH_CRED_AUTO_CRED_VALIDATION |
- SCH_CRED_REVOCATION_CHECK_CHAIN;
+ SCH_CRED_REVOCATION_CHECK_CHAIN;
#endif
infof(data, "schannel: checking server certificate revocation\n");
}
else {
schannel_cred.dwFlags = SCH_CRED_MANUAL_CRED_VALIDATION |
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK |
- SCH_CRED_IGNORE_REVOCATION_OFFLINE;
+ SCH_CRED_IGNORE_NO_REVOCATION_CHECK |
+ SCH_CRED_IGNORE_REVOCATION_OFFLINE;
infof(data, "schannel: disable server certificate revocation checks\n");
}
if(!data->set.ssl.verifyhost) {
schannel_cred.dwFlags |= SCH_CRED_NO_SERVERNAME_CHECK;
infof(data, "schannel: verifyhost setting prevents Schannel from "
- "comparing the supplied target name with the subject "
- "names in server certificates. Also disables SNI.\n");
+ "comparing the supplied target name with the subject "
+ "names in server certificates. Also disables SNI.\n");
}
switch(data->set.ssl.version) {
- default:
- case CURL_SSLVERSION_DEFAULT:
- case CURL_SSLVERSION_TLSv1:
- schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_0_CLIENT |
- SP_PROT_TLS1_1_CLIENT |
- SP_PROT_TLS1_2_CLIENT;
- break;
- case CURL_SSLVERSION_TLSv1_0:
- schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_0_CLIENT;
- break;
- case CURL_SSLVERSION_TLSv1_1:
- schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_1_CLIENT;
- break;
- case CURL_SSLVERSION_TLSv1_2:
- schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_2_CLIENT;
- break;
- case CURL_SSLVERSION_SSLv3:
- schannel_cred.grbitEnabledProtocols = SP_PROT_SSL3_CLIENT;
- break;
- case CURL_SSLVERSION_SSLv2:
- schannel_cred.grbitEnabledProtocols = SP_PROT_SSL2_CLIENT;
- break;
+ default:
+ case CURL_SSLVERSION_DEFAULT:
+ case CURL_SSLVERSION_TLSv1:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_0_CLIENT |
+ SP_PROT_TLS1_1_CLIENT |
+ SP_PROT_TLS1_2_CLIENT;
+ break;
+ case CURL_SSLVERSION_TLSv1_0:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_0_CLIENT;
+ break;
+ case CURL_SSLVERSION_TLSv1_1:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_1_CLIENT;
+ break;
+ case CURL_SSLVERSION_TLSv1_2:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_TLS1_2_CLIENT;
+ break;
+ case CURL_SSLVERSION_SSLv3:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_SSL3_CLIENT;
+ break;
+ case CURL_SSLVERSION_SSLv2:
+ schannel_cred.grbitEnabledProtocols = SP_PROT_SSL2_CLIENT;
+ break;
}
/* allocate memory for the re-usable credential handle */
connssl->cred = (struct curl_schannel_cred *)
- malloc(sizeof(struct curl_schannel_cred));
+ malloc(sizeof(struct curl_schannel_cred));
if(!connssl->cred) {
failf(data, "schannel: unable to allocate memory");
return CURLE_OUT_OF_MEMORY;
@@ -182,9 +182,12 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
memset(connssl->cred, 0, sizeof(struct curl_schannel_cred));
/* http://msdn.microsoft.com/en-us/library/windows/desktop/aa374716.aspx */
- sspi_status = s_pSecFn->AcquireCredentialsHandle(NULL, (TCHAR *)UNISP_NAME,
- SECPKG_CRED_OUTBOUND, NULL, &schannel_cred, NULL, NULL,
- &connssl->cred->cred_handle, &connssl->cred->time_stamp);
+ sspi_status =
+ s_pSecFn->AcquireCredentialsHandle(NULL, (TCHAR *)UNISP_NAME,
+ SECPKG_CRED_OUTBOUND, NULL,
+ &schannel_cred, NULL, NULL,
+ &connssl->cred->cred_handle,
+ &connssl->cred->time_stamp);
if(sspi_status != SEC_E_OK) {
if(sspi_status == SEC_E_WRONG_PRINCIPAL)
@@ -213,12 +216,12 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
/* setup request flags */
connssl->req_flags = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT |
- ISC_REQ_CONFIDENTIALITY | ISC_REQ_ALLOCATE_MEMORY |
- ISC_REQ_STREAM;
+ ISC_REQ_CONFIDENTIALITY | ISC_REQ_ALLOCATE_MEMORY |
+ ISC_REQ_STREAM;
/* allocate memory for the security context handle */
connssl->ctxt = (struct curl_schannel_ctxt *)
- malloc(sizeof(struct curl_schannel_ctxt));
+ malloc(sizeof(struct curl_schannel_ctxt));
if(!connssl->ctxt) {
failf(data, "schannel: unable to allocate memory");
return CURLE_OUT_OF_MEMORY;
@@ -265,6 +268,10 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
infof(data, "schannel: sent initial handshake data: "
"sent %zd bytes\n", written);
+ connssl->recv_unrecoverable_err = CURLE_OK;
+ connssl->recv_sspi_close_notify = false;
+ connssl->recv_connection_closed = false;
+
/* continue to second handshake step */
connssl->connecting_state = ssl_connect_2;
@@ -280,7 +287,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
unsigned char *reallocated_buffer;
size_t reallocated_length;
- SecBuffer outbuf[2];
+ SecBuffer outbuf[3];
SecBufferDesc outbuf_desc;
SecBuffer inbuf[2];
SecBufferDesc inbuf_desc;
@@ -297,6 +304,17 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
if(!connssl->cred || !connssl->ctxt)
return CURLE_SSL_CONNECT_ERROR;
+ /* buffer to store previously received and decrypted data */
+ if(connssl->decdata_buffer == NULL) {
+ connssl->decdata_offset = 0;
+ connssl->decdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE;
+ connssl->decdata_buffer = malloc(connssl->decdata_length);
+ if(connssl->decdata_buffer == NULL) {
+ failf(data, "schannel: unable to allocate memory");
+ return CURLE_OUT_OF_MEMORY;
+ }
+ }
+
/* buffer to store previously received and encrypted data */
if(connssl->encdata_buffer == NULL) {
connssl->encdata_offset = 0;
@@ -313,7 +331,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
CURL_SCHANNEL_BUFFER_FREE_SIZE) {
/* increase internal encrypted data buffer */
reallocated_length = connssl->encdata_offset +
- CURL_SCHANNEL_BUFFER_FREE_SIZE;
+ CURL_SCHANNEL_BUFFER_FREE_SIZE;
reallocated_buffer = realloc(connssl->encdata_buffer,
reallocated_length);
@@ -354,7 +372,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
}
infof(data, "schannel: encrypted data buffer: offset %zu length %zu\n",
- connssl->encdata_offset, connssl->encdata_length);
+ connssl->encdata_offset, connssl->encdata_length);
/* setup input buffers */
InitSecBuffer(&inbuf[0], SECBUFFER_TOKEN, malloc(connssl->encdata_offset),
@@ -365,7 +383,8 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
/* setup output buffers */
InitSecBuffer(&outbuf[0], SECBUFFER_TOKEN, NULL, 0);
InitSecBuffer(&outbuf[1], SECBUFFER_ALERT, NULL, 0);
- InitSecBufferDesc(&outbuf_desc, outbuf, 2);
+ InitSecBuffer(&outbuf[2], SECBUFFER_EMPTY, NULL, 0);
+ InitSecBufferDesc(&outbuf_desc, outbuf, 3);
if(inbuf[0].pvBuffer == NULL) {
failf(data, "schannel: unable to allocate memory");
@@ -399,9 +418,20 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
return CURLE_OK;
}
+ /* If the server has requested a client certificate, attempt to continue
+ the handshake without one. This will allow connections to servers which
+ request a client certificate but do not require it. */
+ if(sspi_status == SEC_I_INCOMPLETE_CREDENTIALS &&
+ !(connssl->req_flags & ISC_REQ_USE_SUPPLIED_CREDS)) {
+ connssl->req_flags |= ISC_REQ_USE_SUPPLIED_CREDS;
+ connssl->connecting_state = ssl_connect_2_writing;
+ infof(data, "schannel: a client certificate has been requested\n");
+ return CURLE_OK;
+ }
+
/* check if the handshake needs to be continued */
if(sspi_status == SEC_I_CONTINUE_NEEDED || sspi_status == SEC_E_OK) {
- for(i = 0; i < 2; i++) {
+ for(i = 0; i < 3; i++) {
/* search for handshake tokens that need to be send */
if(outbuf[i].BufferType == SECBUFFER_TOKEN && outbuf[i].cbBuffer > 0) {
infof(data, "schannel: sending next handshake data: "
@@ -439,21 +469,21 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
if(inbuf[1].BufferType == SECBUFFER_EXTRA && inbuf[1].cbBuffer > 0) {
infof(data, "schannel: encrypted data length: %lu\n", inbuf[1].cbBuffer);
/*
- There are two cases where we could be getting extra data here:
- 1) If we're renegotiating a connection and the handshake is already
- complete (from the server perspective), it can encrypted app data
- (not handshake data) in an extra buffer at this point.
- 2) (sspi_status == SEC_I_CONTINUE_NEEDED) We are negotiating a
- connection and this extra data is part of the handshake.
- We should process the data immediately; waiting for the socket to
- be ready may fail since the server is done sending handshake data.
- */
+ There are two cases where we could be getting extra data here:
+ 1) If we're renegotiating a connection and the handshake is already
+ complete (from the server perspective), it can encrypted app data
+ (not handshake data) in an extra buffer at this point.
+ 2) (sspi_status == SEC_I_CONTINUE_NEEDED) We are negotiating a
+ connection and this extra data is part of the handshake.
+ We should process the data immediately; waiting for the socket to
+ be ready may fail since the server is done sending handshake data.
+ */
/* check if the remaining data is less than the total amount
and therefore begins after the already processed data */
if(connssl->encdata_offset > inbuf[1].cbBuffer) {
memmove(connssl->encdata_buffer,
(connssl->encdata_buffer + connssl->encdata_offset) -
- inbuf[1].cbBuffer, inbuf[1].cbBuffer);
+ inbuf[1].cbBuffer, inbuf[1].cbBuffer);
connssl->encdata_offset = inbuf[1].cbBuffer;
if(sspi_status == SEC_I_CONTINUE_NEEDED) {
doread = FALSE;
@@ -683,9 +713,9 @@ schannel_send(struct connectdata *conn, int sockindex,
/* check if the maximum stream sizes were queried */
if(connssl->stream_sizes.cbMaximumMessage == 0) {
sspi_status = s_pSecFn->QueryContextAttributes(
- &connssl->ctxt->ctxt_handle,
- SECPKG_ATTR_STREAM_SIZES,
- &connssl->stream_sizes);
+ &connssl->ctxt->ctxt_handle,
+ SECPKG_ATTR_STREAM_SIZES,
+ &connssl->stream_sizes);
if(sspi_status != SEC_E_OK) {
*err = CURLE_SEND_ERROR;
return -1;
@@ -700,7 +730,7 @@ schannel_send(struct connectdata *conn, int sockindex,
/* calculate the complete message length and allocate a buffer for it */
data_len = connssl->stream_sizes.cbHeader + len +
- connssl->stream_sizes.cbTrailer;
+ connssl->stream_sizes.cbTrailer;
data = (unsigned char *) malloc(data_len);
if(data == NULL) {
*err = CURLE_OUT_OF_MEMORY;
@@ -733,19 +763,19 @@ schannel_send(struct connectdata *conn, int sockindex,
len = outbuf[0].cbBuffer + outbuf[1].cbBuffer + outbuf[2].cbBuffer;
/*
- It's important to send the full message which includes the header,
- encrypted payload, and trailer. Until the client receives all the
- data a coherent message has not been delivered and the client
- can't read any of it.
-
- If we wanted to buffer the unwritten encrypted bytes, we would
- tell the client that all data it has requested to be sent has been
- sent. The unwritten encrypted bytes would be the first bytes to
- send on the next invocation.
- Here's the catch with this - if we tell the client that all the
- bytes have been sent, will the client call this method again to
- send the buffered data? Looking at who calls this function, it
- seems the answer is NO.
+ It's important to send the full message which includes the header,
+ encrypted payload, and trailer. Until the client receives all the
+ data a coherent message has not been delivered and the client
+ can't read any of it.
+
+ If we wanted to buffer the unwritten encrypted bytes, we would
+ tell the client that all data it has requested to be sent has been
+ sent. The unwritten encrypted bytes would be the first bytes to
+ send on the next invocation.
+ Here's the catch with this - if we tell the client that all the
+ bytes have been sent, will the client call this method again to
+ send the buffered data? Looking at who calls this function, it
+ seems the answer is NO.
*/
/* send entire message or fail */
@@ -819,8 +849,7 @@ schannel_recv(struct connectdata *conn, int sockindex,
char *buf, size_t len, CURLcode *err)
{
size_t size = 0;
- ssize_t nread = 0, ret = -1;
- CURLcode result;
+ ssize_t nread = -1;
struct SessionHandle *data = conn->data;
struct ssl_connect_data *connssl = &conn->ssl[sockindex];
unsigned char *reallocated_buffer;
@@ -829,72 +858,103 @@ schannel_recv(struct connectdata *conn, int sockindex,
SecBuffer inbuf[4];
SecBufferDesc inbuf_desc;
SECURITY_STATUS sspi_status = SEC_E_OK;
+ /* we want the length of the encrypted buffer to be at least large enough
+ that it can hold all the bytes requested and some TLS record overhead. */
+ size_t min_encdata_length = len + CURL_SCHANNEL_BUFFER_FREE_SIZE;
+
+ /****************************************************************************
+ * Don't return or set connssl->recv_unrecoverable_err unless in the cleanup.
+ * The pattern for return error is set *err, optional infof, goto cleanup.
+ *
+ * Our priority is to always return as much decrypted data to the caller as
+ * possible, even if an error occurs. The state of the decrypted buffer must
+ * always be valid. Transfer of decrypted data to the caller's buffer is
+ * handled in the cleanup.
+ */
infof(data, "schannel: client wants to read %zu bytes\n", len);
*err = CURLE_OK;
- /* buffer to store previously received and decrypted data */
- if(connssl->decdata_buffer == NULL) {
- connssl->decdata_offset = 0;
- connssl->decdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE;
- connssl->decdata_buffer = malloc(connssl->decdata_length);
- if(connssl->decdata_buffer == NULL) {
- failf(data, "schannel: unable to allocate memory");
- *err = CURLE_OUT_OF_MEMORY;
- return -1;
- }
+ if(len && len <= connssl->decdata_offset) {
+ infof(data, "schannel: enough decrypted data is already available\n");
+ goto cleanup;
}
+ else if(connssl->recv_unrecoverable_err) {
+ *err = connssl->recv_unrecoverable_err;
+ infof(data, "schannel: an unrecoverable error occurred in a prior call\n");
+ goto cleanup;
+ }
+ else if(connssl->recv_sspi_close_notify) {
+ /* once a server has indicated shutdown there is no more encrypted data */
+ infof(data, "schannel: server indicated shutdown in a prior call\n");
+ goto cleanup;
+ }
+ else if(!len) {
+ /* It's debatable what to return when !len. Regardless we can't return
+ immediately because there may be data to decrypt (in the case we want to
+ decrypt all encrypted cached data) so handle !len later in cleanup.
+ */
+ ; /* do nothing */
+ }
+ else if(!connssl->recv_connection_closed) {
+ /* increase enc buffer in order to fit the requested amount of data */
+ size = connssl->encdata_length - connssl->encdata_offset;
+ if(size < CURL_SCHANNEL_BUFFER_FREE_SIZE ||
+ connssl->encdata_length < min_encdata_length) {
+ reallocated_length = connssl->encdata_offset +
+ CURL_SCHANNEL_BUFFER_FREE_SIZE;
+ if(reallocated_length < min_encdata_length) {
+ reallocated_length = min_encdata_length;
+ }
+ reallocated_buffer = realloc(connssl->encdata_buffer,
+ reallocated_length);
+ if(reallocated_buffer == NULL) {
+ *err = CURLE_OUT_OF_MEMORY;
+ failf(data, "schannel: unable to re-allocate memory");
+ goto cleanup;
+ }
- /* increase buffer in order to fit the requested amount of data */
- if(connssl->encdata_length - connssl->encdata_offset <
- CURL_SCHANNEL_BUFFER_FREE_SIZE || connssl->encdata_length < len) {
- /* increase internal encrypted data buffer */
- reallocated_length = connssl->encdata_offset +
- CURL_SCHANNEL_BUFFER_FREE_SIZE;
- /* make sure that the requested amount of data fits */
- if(reallocated_length < len) {
- reallocated_length = len;
- }
- reallocated_buffer = realloc(connssl->encdata_buffer,
- reallocated_length);
-
- if(reallocated_buffer == NULL) {
- failf(data, "schannel: unable to re-allocate memory");
- *err = CURLE_OUT_OF_MEMORY;
- return -1;
- }
- else {
connssl->encdata_buffer = reallocated_buffer;
connssl->encdata_length = reallocated_length;
+ size = connssl->encdata_length - connssl->encdata_offset;
+ infof(data, "schannel: encdata_buffer resized %zu\n",
+ connssl->encdata_length);
}
- }
- /* read encrypted data from socket */
- infof(data, "schannel: encrypted data buffer: offset %zu length %zu\n",
- connssl->encdata_offset, connssl->encdata_length);
- size = connssl->encdata_length - connssl->encdata_offset;
- if(size > 0) {
+ infof(data, "schannel: encrypted data buffer: offset %zu length %zu\n",
+ connssl->encdata_offset, connssl->encdata_length);
+
+ /* read encrypted data from socket */
*err = Curl_read_plain(conn->sock[sockindex],
- (char *) (connssl->encdata_buffer + connssl->encdata_offset),
+ (char *)(connssl->encdata_buffer +
+ connssl->encdata_offset),
size, &nread);
- /* check for received data */
- if(*err != CURLE_OK)
- ret = -1;
- else {
- if(nread > 0)
- /* increase encrypted data buffer offset */
- connssl->encdata_offset += nread;
- ret = nread;
+ if(*err) {
+ nread = -1;
+ if(*err == CURLE_AGAIN)
+ infof(data, "schannel: Curl_read_plain returned CURLE_AGAIN\n");
+ else if(*err == CURLE_RECV_ERROR)
+ infof(data, "schannel: Curl_read_plain returned CURLE_RECV_ERROR\n");
+ else
+ infof(data, "schannel: Curl_read_plain returned error %d\n", *err);
+ }
+ else if(nread == 0) {
+ connssl->recv_connection_closed = true;
+ infof(data, "schannel: server closed the connection\n");
+ }
+ else if(nread > 0) {
+ connssl->encdata_offset += (size_t)nread;
+ infof(data, "schannel: encrypted data got %zd\n", nread);
}
- infof(data, "schannel: encrypted data got %zd\n", ret);
}
infof(data, "schannel: encrypted data buffer: offset %zu length %zu\n",
connssl->encdata_offset, connssl->encdata_length);
- /* check if we still have some data in our buffers */
+ /* decrypt loop */
while(connssl->encdata_offset > 0 && sspi_status == SEC_E_OK &&
- connssl->decdata_offset < len) {
+ (!len || connssl->decdata_offset < len ||
+ connssl->recv_connection_closed)) {
/* prepare data buffer for DecryptMessage call */
InitSecBuffer(&inbuf[0], SECBUFFER_DATA, connssl->encdata_buffer,
curlx_uztoul(connssl->encdata_offset));
@@ -903,24 +963,16 @@ schannel_recv(struct connectdata *conn, int sockindex,
InitSecBuffer(&inbuf[1], SECBUFFER_EMPTY, NULL, 0);
InitSecBuffer(&inbuf[2], SECBUFFER_EMPTY, NULL, 0);
InitSecBuffer(&inbuf[3], SECBUFFER_EMPTY, NULL, 0);
-
InitSecBufferDesc(&inbuf_desc, inbuf, 4);
/* http://msdn.microsoft.com/en-us/library/windows/desktop/aa375348.aspx */
sspi_status = s_pSecFn->DecryptMessage(&connssl->ctxt->ctxt_handle,
&inbuf_desc, 0, NULL);
- /* check if we need more data */
- if(sspi_status == SEC_E_INCOMPLETE_MESSAGE) {
- infof(data, "schannel: failed to decrypt data, need more data\n");
- *err = CURLE_AGAIN;
- return -1;
- }
-
/* check if everything went fine (server may want to renegotiate
or shutdown the connection context) */
if(sspi_status == SEC_E_OK || sspi_status == SEC_I_RENEGOTIATE ||
- sspi_status == SEC_I_CONTEXT_EXPIRED) {
+ sspi_status == SEC_I_CONTEXT_EXPIRED) {
/* check for successfully decrypted data, even before actual
renegotiation or shutdown of the connection context */
if(inbuf[1].BufferType == SECBUFFER_DATA) {
@@ -940,21 +992,18 @@ schannel_recv(struct connectdata *conn, int sockindex,
}
reallocated_buffer = realloc(connssl->decdata_buffer,
reallocated_length);
-
if(reallocated_buffer == NULL) {
- failf(data, "schannel: unable to re-allocate memory");
*err = CURLE_OUT_OF_MEMORY;
- return -1;
- }
- else {
- connssl->decdata_buffer = reallocated_buffer;
- connssl->decdata_length = reallocated_length;
+ failf(data, "schannel: unable to re-allocate memory");
+ goto cleanup;
}
+ connssl->decdata_buffer = reallocated_buffer;
+ connssl->decdata_length = reallocated_length;
}
/* copy decrypted data to internal buffer */
size = inbuf[1].cbBuffer;
- if(size > 0) {
+ if(size) {
memcpy(connssl->decdata_buffer + connssl->decdata_offset,
inbuf[1].pvBuffer, size);
connssl->decdata_offset += size;
@@ -972,83 +1021,138 @@ schannel_recv(struct connectdata *conn, int sockindex,
/* check if the remaining data is less than the total amount
* and therefore begins after the already processed data
- */
+ */
if(connssl->encdata_offset > inbuf[3].cbBuffer) {
/* move remaining encrypted data forward to the beginning of
buffer */
memmove(connssl->encdata_buffer,
(connssl->encdata_buffer + connssl->encdata_offset) -
- inbuf[3].cbBuffer, inbuf[3].cbBuffer);
+ inbuf[3].cbBuffer, inbuf[3].cbBuffer);
connssl->encdata_offset = inbuf[3].cbBuffer;
}
infof(data, "schannel: encrypted data cached: offset %zu length %zu\n",
connssl->encdata_offset, connssl->encdata_length);
}
- else{
+ else {
/* reset encrypted buffer offset, because there is no data remaining */
connssl->encdata_offset = 0;
}
- }
-
- /* check if server wants to renegotiate the connection context */
- if(sspi_status == SEC_I_RENEGOTIATE) {
- infof(data, "schannel: remote party requests SSL/TLS renegotiation\n");
- /* begin renegotiation */
- infof(data, "schannel: renegotiating SSL/TLS connection\n");
- connssl->state = ssl_connection_negotiating;
- connssl->connecting_state = ssl_connect_2_writing;
- result = schannel_connect_common(conn, sockindex, FALSE, &done);
- if(result)
- *err = result;
- else {
- infof(data, "schannel: SSL/TLS connection renegotiated\n");
+ /* check if server wants to renegotiate the connection context */
+ if(sspi_status == SEC_I_RENEGOTIATE) {
+ infof(data, "schannel: remote party requests renegotiation\n");
+ if(*err && *err != CURLE_AGAIN) {
+ infof(data, "schannel: can't renogotiate, an error is pending\n");
+ goto cleanup;
+ }
+ if(connssl->encdata_offset) {
+ *err = CURLE_RECV_ERROR;
+ infof(data, "schannel: can't renogotiate, "
+ "encrypted data available\n");
+ goto cleanup;
+ }
+ /* begin renegotiation */
+ infof(data, "schannel: renegotiating SSL/TLS connection\n");
+ connssl->state = ssl_connection_negotiating;
+ connssl->connecting_state = ssl_connect_2_writing;
+ *err = schannel_connect_common(conn, sockindex, FALSE, &done);
+ if(*err) {
+ infof(data, "schannel: renegotiation failed\n");
+ goto cleanup;
+ }
/* now retry receiving data */
- return schannel_recv(conn, sockindex, buf, len, err);
+ sspi_status = SEC_E_OK;
+ infof(data, "schannel: SSL/TLS connection renegotiated\n");
+ continue;
}
+ /* check if the server closed the connection */
+ else if(sspi_status == SEC_I_CONTEXT_EXPIRED) {
+ /* In Windows 2000 SEC_I_CONTEXT_EXPIRED (close_notify) is not
+ returned so we have to work around that in cleanup. */
+ connssl->recv_sspi_close_notify = true;
+ if(!connssl->recv_connection_closed) {
+ connssl->recv_connection_closed = true;
+ infof(data, "schannel: server closed the connection\n");
+ }
+ goto cleanup;
+ }
+ }
+ else if(sspi_status == SEC_E_INCOMPLETE_MESSAGE) {
+ if(!*err)
+ *err = CURLE_AGAIN;
+ infof(data, "schannel: failed to decrypt data, need more data\n");
+ goto cleanup;
+ }
+ else {
+ *err = CURLE_RECV_ERROR;
+ infof(data, "schannel: failed to read data from server: %s\n",
+ Curl_sspi_strerror(conn, sspi_status));
+ goto cleanup;
}
}
+ infof(data, "schannel: encrypted data buffer: offset %zu length %zu\n",
+ connssl->encdata_offset, connssl->encdata_length);
+
infof(data, "schannel: decrypted data buffer: offset %zu length %zu\n",
connssl->decdata_offset, connssl->decdata_length);
- /* copy requested decrypted data to supplied buffer */
+cleanup:
+ /* Warning- there is no guarantee the encdata state is valid at this point */
+ infof(data, "schannel: schannel_recv cleanup\n");
+
+ /* Error if the connection has closed without a close_notify.
+ Behavior here is a matter of debate. We don't want to be vulnerable to a
+ truncation attack however there's some browser precedent for ignoring the
+ close_notify for compatibility reasons.
+ Additionally, Windows 2000 (v5.0) is a special case since it seems it doesn't
+ return close_notify. In that case if the connection was closed we assume it
+ was graceful (close_notify) since there doesn't seem to be a way to tell.
+ */
+ if(len && !connssl->decdata_offset && connssl->recv_connection_closed &&
+ !connssl->recv_sspi_close_notify) {
+ DWORD winver_full, winver_major, winver_minor;
+ winver_full = GetVersion();
+ winver_major = (DWORD)(LOBYTE(LOWORD(winver_full)));
+ winver_minor = (DWORD)(HIBYTE(LOWORD(winver_full)));
+
+ if(winver_major == 5 && winver_minor == 0 && sspi_status == SEC_E_OK)
+ connssl->recv_sspi_close_notify = true;
+ else {
+ *err = CURLE_RECV_ERROR;
+ infof(data, "schannel: server closed abruptly (missing close_notify)\n");
+ }
+ }
+
+ /* Any error other than CURLE_AGAIN is an unrecoverable error. */
+ if(*err && *err != CURLE_AGAIN)
+ connssl->recv_unrecoverable_err = *err;
+
size = len < connssl->decdata_offset ? len : connssl->decdata_offset;
- if(size > 0) {
+ if(size) {
memcpy(buf, connssl->decdata_buffer, size);
- ret = size;
-
- /* move remaining decrypted data forward to the beginning of buffer */
memmove(connssl->decdata_buffer, connssl->decdata_buffer + size,
connssl->decdata_offset - size);
connssl->decdata_offset -= size;
- infof(data, "schannel: decrypted data returned %zd\n", size);
+ infof(data, "schannel: decrypted data returned %zu\n", size);
infof(data, "schannel: decrypted data buffer: offset %zu length %zu\n",
connssl->decdata_offset, connssl->decdata_length);
- }
- else
- ret = 0;
-
- /* check if the server closed the connection */
- if(ret <= 0 && ( /* special check for Windows 2000 Professional */
- sspi_status == SEC_I_CONTEXT_EXPIRED || (sspi_status == SEC_E_OK &&
- connssl->encdata_offset > 0 && connssl->encdata_buffer[0] == 0x15))) {
- infof(data, "schannel: server closed the connection\n");
*err = CURLE_OK;
- return 0;
+ return (ssize_t)size;
}
- /* check if something went wrong and we need to return an error */
- if(ret < 0 && sspi_status != SEC_E_OK) {
- infof(data, "schannel: failed to read data from server: %s\n",
- Curl_sspi_strerror(conn, sspi_status));
- *err = CURLE_RECV_ERROR;
- return -1;
- }
+ if(!*err && !connssl->recv_connection_closed)
+ *err = CURLE_AGAIN;
+
+ /* It's debatable what to return when !len. We could return whatever error we
+ got from decryption but instead we override here so the return is consistent.
+ */
+ if(!len)
+ *err = CURLE_OK;
- return ret;
+ return *err ? -1 : 0;
}
CURLcode
@@ -1131,18 +1235,18 @@ int Curl_schannel_shutdown(struct connectdata *conn, int sockindex)
InitSecBufferDesc(&outbuf_desc, &outbuf, 1);
sspi_status = s_pSecFn->InitializeSecurityContext(
- &connssl->cred->cred_handle,
- &connssl->ctxt->ctxt_handle,
- host_name,
- connssl->req_flags,
- 0,
- 0,
- NULL,
- 0,
- &connssl->ctxt->ctxt_handle,
- &outbuf_desc,
- &connssl->ret_flags,
- &connssl->ctxt->time_stamp);
+ &connssl->cred->cred_handle,
+ &connssl->ctxt->ctxt_handle,
+ host_name,
+ connssl->req_flags,
+ 0,
+ 0,
+ NULL,
+ 0,
+ &connssl->ctxt->ctxt_handle,
+ &outbuf_desc,
+ &connssl->ret_flags,
+ &connssl->ctxt->time_stamp);
Curl_unicodefree(host_name);
@@ -1292,18 +1396,18 @@ static CURLcode verify_certificate(struct connectdata *conn, int sockindex)
if(result == CURLE_OK) {
CERT_SIMPLE_CHAIN *pSimpleChain = pChainContext->rgpChain[0];
DWORD dwTrustErrorMask = ~(DWORD)(CERT_TRUST_IS_NOT_TIME_NESTED|
- CERT_TRUST_REVOCATION_STATUS_UNKNOWN);
+ CERT_TRUST_REVOCATION_STATUS_UNKNOWN);
dwTrustErrorMask &= pSimpleChain->TrustStatus.dwErrorStatus;
if(dwTrustErrorMask) {
if(dwTrustErrorMask & CERT_TRUST_IS_PARTIAL_CHAIN)
failf(data, "schannel: CertGetCertificateChain trust error"
- " CERT_TRUST_IS_PARTIAL_CHAIN");
+ " CERT_TRUST_IS_PARTIAL_CHAIN");
if(dwTrustErrorMask & CERT_TRUST_IS_UNTRUSTED_ROOT)
failf(data, "schannel: CertGetCertificateChain trust error"
- " CERT_TRUST_IS_UNTRUSTED_ROOT");
+ " CERT_TRUST_IS_UNTRUSTED_ROOT");
if(dwTrustErrorMask & CERT_TRUST_IS_NOT_TIME_VALID)
failf(data, "schannel: CertGetCertificateChain trust error"
- " CERT_TRUST_IS_NOT_TIME_VALID");
+ " CERT_TRUST_IS_NOT_TIME_VALID");
failf(data, "schannel: CertGetCertificateChain error mask: 0x%08x",
dwTrustErrorMask);
result = CURLE_PEER_FAILED_VERIFICATION;
diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h
index e019a860..53295848 100644
--- a/lib/vtls/schannel.h
+++ b/lib/vtls/schannel.h
@@ -72,6 +72,7 @@
#define SECBUFFER_ALERT 17
#endif
+/* Both schannel buffer sizes must be > 0 */
#define CURL_SCHANNEL_BUFFER_INIT_SIZE 4096
#define CURL_SCHANNEL_BUFFER_FREE_SIZE 1024
diff --git a/lib/x509asn1.c b/lib/x509asn1.c
index a163568e..a3dfd646 100644
--- a/lib/x509asn1.c
+++ b/lib/x509asn1.c
@@ -22,7 +22,8 @@
#include "curl_setup.h"
-#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS)
+#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS) || \
+ defined(USE_CYASSL)
#include <curl/curl.h>
#include "urldata.h"
@@ -1023,7 +1024,7 @@ CURLcode Curl_extract_certinfo(struct connectdata * conn,
return CURLE_OK;
}
-#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS */
+#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_CYASSL */
#if defined(USE_GSKIT)
diff --git a/lib/x509asn1.h b/lib/x509asn1.h
index caa5f6f3..eb23e506 100644
--- a/lib/x509asn1.h
+++ b/lib/x509asn1.h
@@ -25,7 +25,8 @@
#include "curl_setup.h"
-#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS)
+#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS) || \
+ defined(USE_CYASSL)
#include "urldata.h"
@@ -127,5 +128,5 @@ CURLcode Curl_extract_certinfo(struct connectdata * conn, int certnum,
CURLcode Curl_verifyhost(struct connectdata * conn,
const char * beg, const char * end);
-#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS */
+#endif /* USE_GSKIT or USE_NSS or USE_GNUTLS or USE_CYASSL */
#endif /* HEADER_CURL_X509ASN1_H */
diff --git a/m4/curl-openssl.m4 b/m4/curl-openssl.m4
index cd9074b0..5f5f87ae 100644
--- a/m4/curl-openssl.m4
+++ b/m4/curl-openssl.m4
@@ -67,6 +67,7 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
esac
case $tst_api in
0x110) tst_show="1.1.0" ;;
+ 0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
0x100) tst_show="1.0.0" ;;
0x099) tst_show="0.9.9" ;;
@@ -140,6 +141,13 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
fi
if test "$tst_api" = "unknown"; then
AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([SSL_CONF_CTX_new])
+ ],[
+ tst_api="0x102"
+ ])
+ fi
+ if test "$tst_api" = "unknown"; then
+ AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([SSL_renegotiate_abbreviated])
],[
tst_api="0x101"
@@ -210,6 +218,7 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
fi
case $tst_api in
0x110) tst_show="1.1.0" ;;
+ 0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
0x100) tst_show="1.0.0" ;;
0x099) tst_show="0.9.9" ;;
diff --git a/maketgz b/maketgz
index 5aba1a3d..250b11f3 100755
--- a/maketgz
+++ b/maketgz
@@ -9,7 +9,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -128,7 +128,7 @@ echo "make vc-ide"
make -s vc-ide
echo "produce CHANGES"
-git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./log2changes.pl > CHANGES.dist
+git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./scripts/log2changes.pl > CHANGES.dist
############################################################################
#
diff --git a/missing b/missing
index a9f9d941..db98974f 100755
--- a/missing
+++ b/missing
@@ -1,7 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2013 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
# it under the terms of the GNU General Public License as published by
@@ -14,9 +17,7 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -24,260 +25,191 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-case "$1" in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- ;;
-esac
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`curl_config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.3 - GNU automake"
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
- aclocal)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="curl_config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- tar)
- shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar ${1+"$@"} && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar ${1+"$@"} && exit 0
- fi
- firstarg="$1"
- if shift; then
- case "$firstarg" in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- case "$firstarg" in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- fi
+esac
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
;;
-esac
-
-exit 0
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
deleted file mode 100755
index 55d537f8..00000000
--- a/mkinstalldirs
+++ /dev/null
@@ -1,162 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2009-04-28.21; # UTC
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-IFS=" "" $nl"
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage"
- exit $?
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --version)
- echo "$0 $scriptversion"
- exit $?
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error. This is a problem when calling mkinstalldirs
-# from a parallel make. We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
- '')
- if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- else
- # On NextStep and OpenStep, the 'mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because '.' already
- # exists.
- test -d ./-p && rmdir ./-p
- test -d ./--version && rmdir ./--version
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
- test ! -d ./--version; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- else
- # Clean up after NextStep and OpenStep mkdir.
- for d in ./-m ./-p ./--version "./$dirmode";
- do
- test -d $d && rmdir $d
- done
- fi
- ;;
-esac
-
-for file
-do
- case $file in
- /*) pathcomp=/ ;;
- *) pathcomp= ;;
- esac
- oIFS=$IFS
- IFS=/
- set fnord $file
- shift
- IFS=$oIFS
-
- for d
- do
- test "x$d" = x && continue
-
- pathcomp=$pathcomp$d
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp=$pathcomp/
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/packages/AIX/Makefile.in b/packages/AIX/Makefile.in
index d7bb0543..53568ebe 100644
--- a/packages/AIX/Makefile.in
+++ b/packages/AIX/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/AIX
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/AIX/RPM/Makefile.in b/packages/AIX/RPM/Makefile.in
index a9ee67fe..0ac49865 100644
--- a/packages/AIX/RPM/Makefile.in
+++ b/packages/AIX/RPM/Makefile.in
@@ -79,7 +79,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = packages/AIX/RPM
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs $(srcdir)/curl.spec.in README
+ $(srcdir)/curl.spec.in README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES = curl.spec
diff --git a/packages/EPM/Makefile.in b/packages/EPM/Makefile.in
index fd505890..33a1e658 100644
--- a/packages/EPM/Makefile.in
+++ b/packages/EPM/Makefile.in
@@ -79,7 +79,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = packages/EPM
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs $(srcdir)/curl.list.in README
+ $(srcdir)/curl.list.in README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES = curl.list
diff --git a/packages/Linux/Makefile.in b/packages/Linux/Makefile.in
index 809f5012..52edf321 100644
--- a/packages/Linux/Makefile.in
+++ b/packages/Linux/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/Linux
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/Linux/RPM/Makefile.in b/packages/Linux/RPM/Makefile.in
index 1053ad72..ae3720e7 100644
--- a/packages/Linux/RPM/Makefile.in
+++ b/packages/Linux/RPM/Makefile.in
@@ -79,8 +79,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = packages/Linux/RPM
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs $(srcdir)/curl.spec.in \
- $(srcdir)/curl-ssl.spec.in README
+ $(srcdir)/curl.spec.in $(srcdir)/curl-ssl.spec.in README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -101,7 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES = curl.spec curl-ssl.spec
diff --git a/packages/Makefile.in b/packages/Makefile.in
index b019b207..7c97f2d1 100644
--- a/packages/Makefile.in
+++ b/packages/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs README
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400
index 99b606c8..0cb1cf29 100644
--- a/packages/OS400/README.OS400
+++ b/packages/OS400/README.OS400
@@ -93,12 +93,14 @@ options:
CURLOPT_PROXYPASSWORD
CURLOPT_PROXYUSERNAME
CURLOPT_PROXYUSERPWD
+ CURLOPT_PROXY_SERVICE_NAME
CURLOPT_RANDOM_FILE
CURLOPT_RANGE
CURLOPT_REFERER
CURLOPT_RTSP_SESSION_UID
CURLOPT_RTSP_STREAM_URI
CURLOPT_RTSP_TRANSPORT
+ CURLOPT_SERVICE_NAME
CURLOPT_SOCKS5_GSSAPI_SERVICE
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 Note: SSH not available on OS400.
CURLOPT_SSH_KNOWNHOSTS Note: SSH not available on OS400.
diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c
index 8ac6ed37..a903fe34 100644
--- a/packages/OS400/ccsidcurl.c
+++ b/packages/OS400/ccsidcurl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -1154,12 +1154,14 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...)
case CURLOPT_PROXYPASSWORD:
case CURLOPT_PROXYUSERNAME:
case CURLOPT_PROXYUSERPWD:
+ case CURLOPT_PROXY_SERVICE_NAME:
case CURLOPT_RANDOM_FILE:
case CURLOPT_RANGE:
case CURLOPT_REFERER:
case CURLOPT_RTSP_SESSION_ID:
case CURLOPT_RTSP_STREAM_URI:
case CURLOPT_RTSP_TRANSPORT:
+ case CURLOPT_SERVICE_NAME:
case CURLOPT_SOCKS5_GSSAPI_SERVICE:
case CURLOPT_SSH_HOST_PUBLIC_KEY_MD5:
case CURLOPT_SSH_KNOWNHOSTS:
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 32c0d7f2..2bbf6b0f 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -1211,6 +1211,10 @@
d c 00233
d CURLOPT_PATH_AS_IS...
d c 00234
+ d CURLOPT_PROXY_SERVICE_NAME...
+ d c 10235
+ d CURLOPT_SERVICE_NAME...
+ d c 10236
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001
diff --git a/packages/Solaris/Makefile.in b/packages/Solaris/Makefile.in
index db4fcefb..1d9831f7 100644
--- a/packages/Solaris/Makefile.in
+++ b/packages/Solaris/Makefile.in
@@ -81,8 +81,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/Solaris
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -103,7 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/Symbian/group/libcurl.mmp b/packages/Symbian/group/libcurl.mmp
index 29ca54a5..545cdee9 100644
--- a/packages/Symbian/group/libcurl.mmp
+++ b/packages/Symbian/group/libcurl.mmp
@@ -39,7 +39,7 @@ SOURCE \
http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c \
curl_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_ntlm_msgs.c \
curl_sasl.c vtls/schannel.c curl_multibyte.c vtls/darwinssl.c \
- bundles.c conncache.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c \
+ conncache.c curl_sasl_sspi.c smb.c curl_sasl_gssapi.c \
curl_endian.c curl_des.c
USERINCLUDE ../../../lib ../../../include/curl
diff --git a/packages/Win32/Makefile.in b/packages/Win32/Makefile.in
index 43342d29..46182a2e 100644
--- a/packages/Win32/Makefile.in
+++ b/packages/Win32/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/Win32
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs README
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/Win32/cygwin/Makefile.in b/packages/Win32/cygwin/Makefile.in
index 9bd13cbe..4e9d4ad1 100644
--- a/packages/Win32/cygwin/Makefile.in
+++ b/packages/Win32/cygwin/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/Win32/cygwin
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs README
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/packages/vms/Makefile.in b/packages/vms/Makefile.in
index 7885f0dc..4b88b8a3 100644
--- a/packages/vms/Makefile.in
+++ b/packages/vms/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = packages/vms
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/projects/Windows/VC10/lib/libcurl.vcxproj b/projects/Windows/VC10/lib/libcurl.vcxproj
index 99b1c169..de25e207 100644
--- a/projects/Windows/VC10/lib/libcurl.vcxproj
+++ b/projects/Windows/VC10/lib/libcurl.vcxproj
@@ -1987,7 +1987,6 @@
<ClCompile Include="..\..\..\..\lib\asyn-ares.c" />
<ClCompile Include="..\..\..\..\lib\asyn-thread.c" />
<ClCompile Include="..\..\..\..\lib\base64.c" />
- <ClCompile Include="..\..\..\..\lib\bundles.c" />
<ClCompile Include="..\..\..\..\lib\conncache.c" />
<ClCompile Include="..\..\..\..\lib\connect.c" />
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
@@ -2104,7 +2103,6 @@
<ClInclude Include="..\..\..\..\lib\amigaos.h" />
<ClInclude Include="..\..\..\..\lib\arpa_telnet.h" />
<ClInclude Include="..\..\..\..\lib\asyn.h" />
- <ClInclude Include="..\..\..\..\lib\bundles.h" />
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\conncache.h" />
<ClInclude Include="..\..\..\..\lib\connect.h" />
diff --git a/projects/Windows/VC11/lib/libcurl.vcxproj b/projects/Windows/VC11/lib/libcurl.vcxproj
index 398e52e5..51bf605f 100644
--- a/projects/Windows/VC11/lib/libcurl.vcxproj
+++ b/projects/Windows/VC11/lib/libcurl.vcxproj
@@ -2035,7 +2035,6 @@
<ClCompile Include="..\..\..\..\lib\asyn-ares.c" />
<ClCompile Include="..\..\..\..\lib\asyn-thread.c" />
<ClCompile Include="..\..\..\..\lib\base64.c" />
- <ClCompile Include="..\..\..\..\lib\bundles.c" />
<ClCompile Include="..\..\..\..\lib\conncache.c" />
<ClCompile Include="..\..\..\..\lib\connect.c" />
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
@@ -2152,7 +2151,6 @@
<ClInclude Include="..\..\..\..\lib\amigaos.h" />
<ClInclude Include="..\..\..\..\lib\arpa_telnet.h" />
<ClInclude Include="..\..\..\..\lib\asyn.h" />
- <ClInclude Include="..\..\..\..\lib\bundles.h" />
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\conncache.h" />
<ClInclude Include="..\..\..\..\lib\connect.h" />
diff --git a/projects/Windows/VC12/lib/libcurl.vcxproj b/projects/Windows/VC12/lib/libcurl.vcxproj
index ba5a25eb..03ee1c4c 100644
--- a/projects/Windows/VC12/lib/libcurl.vcxproj
+++ b/projects/Windows/VC12/lib/libcurl.vcxproj
@@ -2035,7 +2035,6 @@
<ClCompile Include="..\..\..\..\lib\asyn-ares.c" />
<ClCompile Include="..\..\..\..\lib\asyn-thread.c" />
<ClCompile Include="..\..\..\..\lib\base64.c" />
- <ClCompile Include="..\..\..\..\lib\bundles.c" />
<ClCompile Include="..\..\..\..\lib\conncache.c" />
<ClCompile Include="..\..\..\..\lib\connect.c" />
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
@@ -2152,7 +2151,6 @@
<ClInclude Include="..\..\..\..\lib\amigaos.h" />
<ClInclude Include="..\..\..\..\lib\arpa_telnet.h" />
<ClInclude Include="..\..\..\..\lib\asyn.h" />
- <ClInclude Include="..\..\..\..\lib\bundles.h" />
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\conncache.h" />
<ClInclude Include="..\..\..\..\lib\connect.h" />
diff --git a/projects/Windows/VC6/lib/libcurl.dsp b/projects/Windows/VC6/lib/libcurl.dsp
index 8faa1ae7..dbffdfec 100644
--- a/projects/Windows/VC6/lib/libcurl.dsp
+++ b/projects/Windows/VC6/lib/libcurl.dsp
@@ -746,10 +746,6 @@ SOURCE=..\..\..\..\lib\base64.c
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\lib\bundles.c
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\..\lib\conncache.c
# End Source File
# Begin Source File
@@ -1210,10 +1206,6 @@ SOURCE=..\..\..\..\lib\asyn.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\lib\bundles.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\..\..\lib\config-win32.h
# End Source File
# Begin Source File
diff --git a/projects/Windows/VC7.1/lib/libcurl.vcproj b/projects/Windows/VC7.1/lib/libcurl.vcproj
index eaeeeeb8..5b750e90 100644
--- a/projects/Windows/VC7.1/lib/libcurl.vcproj
+++ b/projects/Windows/VC7.1/lib/libcurl.vcproj
@@ -1268,9 +1268,6 @@
RelativePath="..\..\..\..\lib\base64.c">
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.c">
- </File>
- <File
RelativePath="..\..\..\..\lib\conncache.c">
</File>
<File
@@ -1584,9 +1581,6 @@
RelativePath="..\..\..\..\lib\asyn.h">
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.h">
- </File>
- <File
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
diff --git a/projects/Windows/VC7/lib/libcurl.vcproj b/projects/Windows/VC7/lib/libcurl.vcproj
index 23395bf7..ee17474e 100644
--- a/projects/Windows/VC7/lib/libcurl.vcproj
+++ b/projects/Windows/VC7/lib/libcurl.vcproj
@@ -1122,9 +1122,6 @@
RelativePath="..\..\..\..\lib\base64.c">
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.c">
- </File>
- <File
RelativePath="..\..\..\..\lib\conncache.c">
</File>
<File
@@ -1438,9 +1435,6 @@
RelativePath="..\..\..\..\lib\asyn.h">
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.h">
- </File>
- <File
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
diff --git a/projects/Windows/VC8/lib/libcurl.vcproj b/projects/Windows/VC8/lib/libcurl.vcproj
index a044897b..8bfb8e31 100644
--- a/projects/Windows/VC8/lib/libcurl.vcproj
+++ b/projects/Windows/VC8/lib/libcurl.vcproj
@@ -3633,10 +3633,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.c"
- >
- </File>
- <File
RelativePath="..\..\..\..\lib\conncache.c"
>
</File>
@@ -4053,10 +4049,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.h"
- >
- </File>
- <File
RelativePath="..\..\..\..\lib\config-win32.h"
>
</File>
diff --git a/projects/Windows/VC9/lib/libcurl.vcproj b/projects/Windows/VC9/lib/libcurl.vcproj
index 6364f99f..7f5f81c7 100644
--- a/projects/Windows/VC9/lib/libcurl.vcproj
+++ b/projects/Windows/VC9/lib/libcurl.vcproj
@@ -3574,10 +3574,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.c"
- >
- </File>
- <File
RelativePath="..\..\..\..\lib\conncache.c"
>
</File>
@@ -3994,10 +3990,6 @@
>
</File>
<File
- RelativePath="..\..\..\..\lib\bundles.h"
- >
- </File>
- <File
RelativePath="..\..\..\..\lib\config-win32.h"
>
</File>
diff --git a/scripts/zsh.pl b/scripts/zsh.pl
new file mode 100755
index 00000000..7520a15a
--- /dev/null
+++ b/scripts/zsh.pl
@@ -0,0 +1,77 @@
+#!/usr/bin/perl
+
+# Generate ZSH completion
+
+use strict;
+use warnings;
+
+my $curl = $ARGV[0] || 'curl';
+
+my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s([^\s.]+)?\s+(.*)';
+my @opts = parse_main_opts('--help', $regex);
+
+my $opts_str;
+
+$opts_str .= qq{ $_ \\\n} foreach (@opts);
+chomp $opts_str;
+
+my $tmpl = <<"EOS";
+#compdef curl
+
+# curl zsh completion
+
+local curcontext="\$curcontext" state state_descr line
+typeset -A opt_args
+
+local rc=1
+
+_arguments -C -S \\
+$opts_str
+ '*:URL:_urls' && rc=0
+
+return rc
+EOS
+
+print $tmpl;
+
+sub parse_main_opts {
+ my ($cmd, $regex) = @_;
+
+ my @list;
+ my @lines = split /\n/, `"$curl" $cmd`;
+
+ foreach my $line (@lines) {
+ my ($short, $long, $arg, $desc) = ($line =~ /^$regex/) or next;
+
+ my $option = '';
+
+ $desc =~ s/'/''/g if defined $desc;
+ $desc =~ s/\[/\\\[/g if defined $desc;
+ $desc =~ s/\]/\\\]/g if defined $desc;
+
+ $option .= '{' . trim($short) . ',' if defined $short;
+ $option .= trim($long) if defined $long;
+ $option .= '}' if defined $short;
+ $option .= '\'[' . trim($desc) . ']\'' if defined $desc;
+
+ $option .= ":$arg" if defined $arg;
+
+ $option .= ':_files'
+ if defined $arg and ($arg eq 'FILE' || $arg eq 'DIR');
+
+ push @list, $option;
+ }
+
+ # Sort longest first, because zsh won't complete an option listed
+ # after one that's a prefix of it.
+ @list = sort {
+ $a =~ /([^=]*)/; my $ma = $1;
+ $b =~ /([^=]*)/; my $mb = $1;
+
+ length($mb) <=> length($ma)
+ } @list;
+
+ return @list;
+}
+
+sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
diff --git a/src/Makefile.Watcom b/src/Makefile.Watcom
index 3945f96e..6ec598d4 100644
--- a/src/Makefile.Watcom
+++ b/src/Makefile.Watcom
@@ -96,7 +96,7 @@ ZLIB_ROOT = ../../zlib-1.2.8
!ifdef %libssh2_root
LIBSSH2_ROOT = $(%libssh2_root)
!else
-LIBSSH2_ROOT = ../../libssh2-1.4.3
+LIBSSH2_ROOT = ../../libssh2-1.5.0
!endif
!ifdef %librtmp_root
@@ -108,7 +108,7 @@ LIBRTMP_ROOT = ../../rtmpdump-2.3
!ifdef %openssl_root
OPENSSL_ROOT = $(%openssl_root)
!else
-OPENSSL_ROOT = ../../openssl-0.9.8zc
+OPENSSL_ROOT = ../../openssl-1.0.2a
!endif
!ifdef %ares_root
diff --git a/src/Makefile.b32 b/src/Makefile.b32
index 25052261..85fe49f8 100644
--- a/src/Makefile.b32
+++ b/src/Makefile.b32
@@ -27,7 +27,7 @@ ZLIB_PATH = ..\..\zlib-1.2.8
# Edit the path below to point to the base of your OpenSSL package.
!ifndef OPENSSL_PATH
-OPENSSL_PATH = ..\..\openssl-0.9.8zc
+OPENSSL_PATH = ..\..\openssl-1.0.2a
!endif
# Set program's name
diff --git a/src/Makefile.in b/src/Makefile.in
index 2064bd9a..7fee13c9 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -91,8 +91,7 @@ host_triplet = @host@
bin_PROGRAMS = curl$(EXEEXT)
@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp
+ $(srcdir)/Makefile.am $(top_srcdir)/depcomp
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
@@ -114,7 +113,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/src/Makefile.m32 b/src/Makefile.m32
index 36698338..fc59f63e 100644
--- a/src/Makefile.m32
+++ b/src/Makefile.m32
@@ -1,7 +1,7 @@
###########################################################################
#
## Makefile for building curl.exe with MingW (GCC-3.2 or later)
-## and optionally OpenSSL (0.9.8), libssh2 (1.3), zlib (1.2.5), librtmp (2.3)
+## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-spi-winidn
@@ -18,19 +18,19 @@ ZLIB_PATH = ../../zlib-1.2.8
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
-LIBRTMP_PATH = ../../librtmp-2.3
+LIBRTMP_PATH = ../../librtmp-2.4
endif
# Edit the path below to point to the base of your libmetalink package.
ifndef LIBMETALINK_PATH
-LIBMETALINK_PATH = ../../libmetalink-0.1.2
+LIBMETALINK_PATH = ../../libmetalink-0.1.3
endif
# Edit the path below to point to the base of your libexpat package.
ifndef LIBEXPAT_PATH
@@ -38,15 +38,15 @@ LIBEXPAT_PATH = ../../expat-2.1.0
endif
# Edit the path below to point to the base of your libxml2 package.
ifndef LIBXML2_PATH
-LIBXML2_PATH = ../../libxml2-2.9.0
+LIBXML2_PATH = ../../libxml2-2.9.2
endif
# Edit the path below to point to the base of your libidn package.
ifndef LIBIDN_PATH
-LIBIDN_PATH = ../../libidn-1.18
+LIBIDN_PATH = ../../libidn-1.30
endif
# Edit the path below to point to the base of your MS IDN package.
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
-# http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
+# https://www.microsoft.com/en-us/download/details.aspx?id=734
ifndef WINIDN_PATH
WINIDN_PATH = ../../Microsoft IDN Mitigation APIs
endif
@@ -56,7 +56,7 @@ LDAP_SDK = c:/novell/ndk/cldapsdk/win32
endif
# Edit the path below to point to the base of your nghttp2 package.
ifndef NGHTTP2_PATH
-NGHTTP2_PATH = ../../nghttp2-0.6.7
+NGHTTP2_PATH = ../../nghttp2-1.0.0
endif
PROOT = ..
diff --git a/src/Makefile.netware b/src/Makefile.netware
index b6b4861c..5065cbfe 100644
--- a/src/Makefile.netware
+++ b/src/Makefile.netware
@@ -19,12 +19,12 @@ endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.3
+LIBSSH2_PATH = ../../libssh2-1.5.0
endif
# Edit the path below to point to the base of your axTLS package.
diff --git a/src/Makefile.vc10 b/src/Makefile.vc10
index c4b4986f..82af5ced 100644
--- a/src/Makefile.vc10
+++ b/src/Makefile.vc10
@@ -56,7 +56,7 @@ PROGRAM_NAME = curl.exe
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF ZLIB_PATH
@@ -77,7 +77,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
diff --git a/src/Makefile.vc6 b/src/Makefile.vc6
index 415d528f..eec89c25 100644
--- a/src/Makefile.vc6
+++ b/src/Makefile.vc6
@@ -56,7 +56,7 @@ PROGRAM_NAME = curl.exe
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF ZLIB_PATH
@@ -77,7 +77,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
diff --git a/src/Makefile.vc8 b/src/Makefile.vc8
index b9cef1ad..4399c281 100644
--- a/src/Makefile.vc8
+++ b/src/Makefile.vc8
@@ -56,7 +56,7 @@ PROGRAM_NAME = curl.exe
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF ZLIB_PATH
@@ -77,7 +77,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
diff --git a/src/Makefile.vc9 b/src/Makefile.vc9
index adf1f90c..b149a938 100644
--- a/src/Makefile.vc9
+++ b/src/Makefile.vc9
@@ -56,7 +56,7 @@ PROGRAM_NAME = curl.exe
!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8zc
+OPENSSL_PATH = ../../openssl-1.0.2a
!ENDIF
!IFNDEF ZLIB_PATH
@@ -77,7 +77,7 @@ MACHINE = X86
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+# https://msdn.microsoft.com/windows/bb980924.aspx
# WINDOWS_SSPI = 1
diff --git a/src/checksrc.whitelist b/src/checksrc.whitelist
index 335d4432..b078ac1a 100644
--- a/src/checksrc.whitelist
+++ b/src/checksrc.whitelist
@@ -1,3 +1,3 @@
* 'name=@filename,filename2,filename3'
* 'name=@filename;type=image/gif,filename2,filename3'
- \ No newline at end of file
+ file = fopen(name, "r"); /* VMS */
diff --git a/src/tool_cb_dbg.c b/src/tool_cb_dbg.c
index 0fe0f134..f5271468 100644
--- a/src/tool_cb_dbg.c
+++ b/src/tool_cb_dbg.c
@@ -79,7 +79,7 @@ int tool_debug_cb(CURL *handle, curl_infotype type,
/* Ok, this is somewhat hackish but we do it undocumented for now */
config->trace_stream = config->errors; /* aka stderr */
else {
- config->trace_stream = fopen(config->trace_dump, "w");
+ config->trace_stream = fopen(config->trace_dump, FOPEN_WRITETEXT);
config->trace_fopened = TRUE;
}
}
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index c78c8961..ba6c468c 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -136,6 +136,8 @@ static void free_config_fields(struct OperationConfig *config)
Curl_safefree(config->socksproxy);
Curl_safefree(config->socks5_gssapi_service);
+ Curl_safefree(config->proxy_service_name);
+ Curl_safefree(config->service_name);
Curl_safefree(config->ftp_account);
Curl_safefree(config->ftp_alternative_to_user);
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index d1f22387..048eb4ff 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -166,8 +166,12 @@ struct OperationConfig {
int socksver; /* set to CURLPROXY_SOCKS* define */
char *socks5_gssapi_service; /* set service name for gssapi principal
* default rcmd */
+ char *proxy_service_name; /* set service name for proxy negotiation
+ * default HTTP */
int socks5_gssapi_nec ; /* The NEC reference server does not protect
* the encryption type exchange */
+ char *service_name; /* set negotiation service name
+ * default HTTP */
bool tcp_nodelay;
long req_retry; /* number of retries */
diff --git a/src/tool_easysrc.c b/src/tool_easysrc.c
index e1336c3d..0482ef6a 100644
--- a/src/tool_easysrc.c
+++ b/src/tool_easysrc.c
@@ -176,7 +176,7 @@ void dumpeasysrc(struct GlobalConfig *config)
FILE *out;
bool fopened = FALSE;
if(strcmp(o, "-")) {
- out = fopen(o, "w");
+ out = fopen(o, FOPEN_WRITETEXT);
fopened = TRUE;
}
else
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index 7f68b285..c86e6b4b 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -145,7 +145,7 @@ static const struct LongShort aliases[]= {
{"$v", "ssl-reqd", FALSE},
/* 'ssl-reqd' new in 7.20.0, previously this was ftp-ssl-reqd */
{"$w", "sessionid", FALSE},
- /* ¡sessionid' listed as --no-sessionid in the help */
+ /* 'sessionid' listed as --no-sessionid in the help */
{"$x", "ftp-ssl-control", FALSE},
{"$y", "ftp-ssl-ccc", FALSE},
{"$j", "ftp-ssl-ccc-mode", TRUE},
@@ -161,6 +161,8 @@ static const struct LongShort aliases[]= {
#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
{"$6", "socks5-gssapi-service", TRUE},
{"$7", "socks5-gssapi-nec", FALSE},
+ {"$O", "proxy-service-name", TRUE},
+ {"$P", "service-name", TRUE},
#endif
{"$8", "proxy1.0", TRUE},
{"$9", "tftp-blksize", TRUE},
@@ -196,6 +198,7 @@ static const struct LongShort aliases[]= {
{"c", "cookie-jar", TRUE},
{"C", "continue-at", TRUE},
{"d", "data", TRUE},
+ {"dr", "data-raw", TRUE},
{"da", "data-ascii", TRUE},
{"db", "data-binary", TRUE},
{"de", "data-urlencode", TRUE},
@@ -678,7 +681,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
case 'v': /* --stderr */
if(strcmp(nextarg, "-")) {
- FILE *newfile = fopen(nextarg, "wt");
+ FILE *newfile = fopen(nextarg, FOPEN_WRITETEXT);
if(!newfile)
warnf(global, "Failed to open %s!\n", nextarg);
else {
@@ -902,6 +905,12 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
case '7': /* --socks5-gssapi-nec*/
config->socks5_gssapi_nec = toggle;
break;
+ case 'O': /* --proxy-service-name */
+ GetStr(&config->proxy_service_name, nextarg);
+ break;
+ case 'P': /* --service-name */
+ GetStr(&config->service_name, nextarg);
+ break;
#endif
case '8': /* --proxy1.0 */
/* http 1.0 proxy */
@@ -1099,6 +1108,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
char *postdata = NULL;
FILE *file;
size_t size = 0;
+ bool raw_mode = (subletter == 'r');
if(subletter == 'e') { /* --data-urlencode*/
/* [name]=[content], we encode the content part only
@@ -1124,7 +1134,6 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
}
if('@' == is_file) {
/* a '@' letter, it means that a file name or - (stdin) follows */
-
if(curlx_strequal("-", p)) {
file = stdin;
set_binmode(stdin);
@@ -1185,7 +1194,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
return PARAM_NO_MEM;
}
}
- else if('@' == *nextarg) {
+ else if('@' == *nextarg && !raw_mode) {
/* the data begins with a '@' letter, it means that a file name
or - (stdin) follows */
nextarg++; /* pass the @ */
@@ -1739,7 +1748,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
}
else {
fname = nextarg;
- file = fopen(nextarg, "r");
+ file = fopen(nextarg, FOPEN_READTEXT);
}
err = file2string(&config->writeout, file);
if(file && (file != stdin))
diff --git a/src/tool_help.c b/src/tool_help.c
index bb7aa7c3..46ae341f 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -65,6 +65,7 @@ static const char *const helptext[] = {
" --crlf Convert LF to CRLF in upload",
" --crlfile FILE Get a CRL list in PEM format from the given file",
" -d, --data DATA HTTP POST data (H)",
+ " --data-raw DATA HTTP POST data, '@' allowed (H)",
" --data-ascii DATA HTTP POST ASCII data (H)",
" --data-binary DATA HTTP POST binary data (H)",
" --data-urlencode DATA HTTP POST data url encoded (H)",
@@ -142,7 +143,7 @@ static const char *const helptext[] = {
" -n, --netrc Must read .netrc for user name and password",
" --netrc-optional Use either .netrc or URL; overrides -n",
" --netrc-file FILE Specify FILE for netrc",
- " -: --next "
+ " -:, --next "
"Allows the following URL to use a separate set of options",
" --no-alpn Disable the ALPN TLS extension (H)",
" -N, --no-buffer Disable buffering of the output stream",
@@ -156,7 +157,7 @@ static const char *const helptext[] = {
" --pass PASS Pass phrase for the private key (SSL/SSH)",
" --path-as-is Do not squash .. sequences in URL path",
" --pinnedpubkey FILE Public key (PEM/DER) to verify peer against "
- "(OpenSSL/GnuTLS/GSKit only)",
+ "(OpenSSL/GnuTLS/NSS/wolfSSL/CyaSSL/GSKit only)",
" --post301 "
"Do not switch to GET after following a 301 redirect (H)",
" --post302 "
@@ -173,6 +174,10 @@ static const char *const helptext[] = {
" --proxy-negotiate "
"Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)",
" --proxy-ntlm Use NTLM authentication on the proxy (H)",
+#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
+ " --proxy-service-name NAME SPNEGO proxy service name",
+ " --service-name NAME SPNEGO service name",
+#endif
" -U, --proxy-user USER[:PASSWORD] Proxy user and password",
" --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port",
" -p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)",
diff --git a/src/tool_hugehelp.c b/src/tool_hugehelp.c
index 24b2ffe4..ad635baa 100644
--- a/src/tool_hugehelp.c
+++ b/src/tool_hugehelp.c
@@ -2,7 +2,7 @@
#ifndef HAVE_LIBZ
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
- * Generation time: Wed Apr 29 08:08:46 2015
+ * Generation time: Tue Jun 16 09:13:08 2015
*/
#ifdef USE_MANUAL
#include "tool_hugehelp.h"
@@ -359,13 +359,13 @@ void hugehelp(void)
" (SSL) Specifies which ciphers to use in the connection. The list\n"
" of ciphers must specify valid ciphers. Read up on SSL cipher\n"
" list details on this URL:\n"
-" http://www.openssl.org/docs/apps/ciphers.html\n"
+" https://www.openssl.org/docs/apps/ciphers.html\n"
"\n"
" NSS ciphers are done differently than OpenSSL and GnuTLS. The\n"
, stdout);
fputs(
" full list of NSS ciphers is in the NSSCipherSuite entry at this\n"
-" URL: http://git.fedora-\n"
+" URL: https://git.fedora-\n"
" hosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -425,38 +425,44 @@ void hugehelp(void)
fputs(
" application/x-www-form-urlencoded. Compare to -F, --form.\n"
"\n"
-" -d, --data is the same as --data-ascii. To post data purely\n"
-" binary, you should instead use the --data-binary option. To URL-\n"
-" encode the value of a form field you may use --data-urlencode.\n"
+" -d, --data is the same as --data-ascii. --data-raw is almost the\n"
+" same but does not have a special interpretation of the @ charac-\n"
+" ter. To post data purely binary, you should instead use the\n"
+" --data-binary option. To URL-encode the value of a form field\n"
+" you may use --data-urlencode.\n"
"\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"
, stdout);
fputs(
+" 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"
" '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"
-" the data from stdin. Multiple files can also be specified. Post-\n"
, stdout);
fputs(
+" file name to read the data from, or - if you want curl to read\n"
+" the data from stdin. Multiple files can also be specified. Post-\n"
" ing data from a file named 'foobar' would thus be done with\n"
" --data @foobar. When --data is told to read from a file like\n"
-" that, carriage returns and newlines will be stripped out.\n"
+" that, carriage returns and newlines will be stripped out. If you\n"
+" don't want the @ character to have a special interpretation use\n"
+, stdout);
+ fputs(
+" --data-raw instead.\n"
"\n"
" -D, --dump-header <file>\n"
" Write the protocol headers to the specified file.\n"
"\n"
" This option is handy to use when you want to store the headers\n"
" that an HTTP site sends to you. Cookies from the headers could\n"
-, stdout);
- fputs(
" then be read in a second curl invocation by using the -b,\n"
" --cookie option! The -c, --cookie-jar option is a better way to\n"
" store cookies.\n"
"\n"
+, stdout);
+ fputs(
" When used in FTP, the FTP server response lines are considered\n"
" being \"headers\" and thus are saved there.\n"
"\n"
@@ -466,30 +472,35 @@ void hugehelp(void)
" See -d, --data.\n"
"\n"
" --data-binary <data>\n"
-, stdout);
- fputs(
" (HTTP) This posts data exactly as specified with no extra pro-\n"
" cessing whatsoever.\n"
"\n"
" If you start the data with the letter @, the rest should be a\n"
+, stdout);
+ fputs(
" filename. Data is posted in a similar manner as --data-ascii\n"
" does, except that newlines and carriage returns are preserved\n"
" and conversions are never done.\n"
"\n"
" If this option is used several times, the ones following the\n"
+" first will append data as described in -d, --data.\n"
+"\n"
+" --data-raw <data>\n"
+" (HTTP) This posts data similarly to --data but without the spe-\n"
, stdout);
fputs(
-" first will append data as described in -d, --data.\n"
+" cial interpretation of the @ character. See -d, --data. (Added\n"
+" in 7.43.0)\n"
"\n"
" --data-urlencode <data>\n"
" (HTTP) This posts data, similar to the other --data options with\n"
" the exception that this performs URL-encoding. (Added in 7.18.0)\n"
" To be CGI-compliant, the <data> part should begin with a name\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"
, stdout);
fputs(
+" 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"
@@ -498,10 +509,10 @@ void hugehelp(void)
"\n"
" =content\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"
, stdout);
fputs(
+" 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"
@@ -510,11 +521,11 @@ void hugehelp(void)
" @filename\n"
" This will make curl load data from the given file\n"
" (including any newlines), URL-encode that data and pass\n"
+, stdout);
+ fputs(
" it on in the POST.\n"
"\n"
" name@filename\n"
-, stdout);
- fputs(
" This will make curl load data from the given file\n"
" (including any newlines), URL-encode that data and pass\n"
" it on in the POST. The name part gets an equal sign\n"
@@ -522,9 +533,9 @@ void hugehelp(void)
" that the name is expected to be URL-encoded already.\n"
"\n"
" --delegation LEVEL\n"
-" Set LEVEL to tell the server what it is allowed to delegate when\n"
, stdout);
fputs(
+" Set LEVEL to tell the server what it is allowed to delegate when\n"
" it comes to user credentials. Used with GSS/kerberos.\n"
"\n"
" none Don't allow any delegation.\n"
@@ -536,9 +547,9 @@ void hugehelp(void)
" always Unconditionally allow the server to delegate.\n"
"\n"
" --digest\n"
-" (HTTP) Enables HTTP Digest authentication. This is an authenti-\n"
, stdout);
fputs(
+" (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. See also\n"
@@ -547,9 +558,9 @@ void hugehelp(void)
" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
-" --disable-eprt\n"
, stdout);
fputs(
+" --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"
@@ -765,84 +776,85 @@ void hugehelp(void)
" lic key provided to this option, curl will abort the connection\n"
" before sending or receiving any data.\n"
"\n"
-" This is currently only implemented in the OpenSSL, GnuTLS and\n"
-" GSKit backends.\n"
+" Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0\n"
+" for NSS and wolfSSL/CyaSSL. Other SSL backends not supported.\n"
"\n"
-" If this option is used several times, the last one will be used.\n"
, stdout);
fputs(
-" (Added in 7.39.0)\n"
+" If this option is used several times, the last one will be used.\n"
"\n"
" --cert-status\n"
-" (SSL) Tells curl to verify the status of the server certificate\n"
+" (SSL) Tells curl to verify the status of the server certificate\n"
" 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"
+" If this option is enabled and the server sends an invalid (e.g.\n"
" expired) response, if the response suggests that the server cer-\n"
-" tificate has been revoked, or no response at all is received,\n"
, stdout);
fputs(
+" tificate has been revoked, or no response at all is received,\n"
" the verification fails.\n"
"\n"
-" This is currently only implemented in the OpenSSL, GnuTLS and\n"
+" This is currently only implemented in the OpenSSL, GnuTLS and\n"
" NSS backends. (Added in 7.41.0)\n"
"\n"
" --false-start\n"
"\n"
-" (SSL) Tells curl to use false start during the TLS handshake.\n"
-" False start is a mode where a TLS client will start sending\n"
+" (SSL) Tells curl to use false start during the TLS handshake.\n"
+" False start is a mode where a TLS client will start sending\n"
+, stdout);
+ fputs(
" application data before verifying the server's Finished message,\n"
" 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"
+" 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"
" (Added in 7.42.0)\n"
"\n"
" -f, --fail\n"
-" (HTTP) Fail silently (no output at all) on server errors. This\n"
-" is mostly done to better enable scripts etc to better deal with\n"
-" failed attempts. In normal cases when an HTTP server fails to\n"
+" (HTTP) Fail silently (no output at all) on server errors. This\n"
, stdout);
fputs(
-" deliver a document, it returns an HTML document stating so\n"
-" (which often also describes why and more). This flag will pre-\n"
+" is mostly done to better enable scripts etc to better deal with\n"
+" failed attempts. In normal cases when an HTTP server fails to\n"
+" deliver a document, it returns an HTML document stating so\n"
+" (which often also describes why and more). This flag will pre-\n"
" vent curl from outputting that and return error 22.\n"
"\n"
-" This method is not fail-safe and there are occasions where non-\n"
-" successful response codes will slip through, especially when\n"
+" This method is not fail-safe and there are occasions where non-\n"
+, stdout);
+ fputs(
+" successful response codes will slip through, especially when\n"
" authentication is involved (response codes 401 and 407).\n"
"\n"
" -F, --form <name=content>\n"
+" (HTTP) This lets curl emulate a filled-in form in which a user\n"
+" has pressed the submit button. This causes curl to POST data\n"
+" using the Content-Type multipart/form-data according to RFC\n"
+" 2388. This enables uploading of binary files etc. To force the\n"
, stdout);
fputs(
-" (HTTP) This lets curl emulate a filled-in form in which a user\n"
-" has pressed the submit button. This causes curl to POST data\n"
-" using the Content-Type multipart/form-data according to RFC\n"
-" 2388. This enables uploading of binary files etc. To force the\n"
-" 'content' part to be a file, prefix the file name with an @\n"
-" sign. To just get the content part from a file, prefix the file\n"
-, stdout);
- fputs(
-" name with the symbol <. The difference between @ and < is then\n"
-" that @ makes a file get attached in the post as a file upload,\n"
-" while the < makes a text field and just get the contents for\n"
+" 'content' part to be a file, prefix the file name with an @\n"
+" sign. To just get the content part from a file, prefix the file\n"
+" name with the symbol <. The difference between @ and < is then\n"
+" that @ makes a file get attached in the post as a file upload,\n"
+" while the < makes a text field and just get the contents for\n"
" that text field from a file.\n"
"\n"
-" Example, to send your password file to the server, where 'pass-\n"
+, stdout);
+ fputs(
+" Example, to send your password file to the server, where 'pass-\n"
" word' is the name of the form-field to which /etc/passwd will be\n"
" the input:\n"
"\n"
-, stdout);
- fputs(
" curl -F password=@/etc/passwd www.mypasswords.com\n"
"\n"
" To read content from stdin instead of a file, use - as the file-\n"
" name. This goes for both @ and < constructs.\n"
"\n"
-" You can also tell curl what Content-Type to use by using\n"
+" You can also tell curl what Content-Type to use by using\n"
+, stdout);
+ fputs(
" 'type=', in a manner similar to:\n"
"\n"
" curl -F \"web=@index.html;type=text/html\" url.com\n"
@@ -851,15 +863,15 @@ void hugehelp(void)
"\n"
" curl -F \"name=daniel;type=text/foo\" url.com\n"
"\n"
-, stdout);
- fputs(
-" You can also explicitly change the name field of a file upload\n"
+" You can also explicitly change the name field of a file upload\n"
" part by setting filename=, like this:\n"
"\n"
" curl -F \"file=@localfile;filename=nameinpost\" url.com\n"
"\n"
-" If filename/path contains ',' or ';', it must be quoted by dou-\n"
+" If filename/path contains ',' or ';', it must be quoted by dou-\n"
" ble-quotes like:\n"
+, stdout);
+ fputs(
"\n"
" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" url.com\n"
"\n"
@@ -867,9 +879,7 @@ void hugehelp(void)
"\n"
" curl -F 'file=@\"localfile\";filename=\"nameinpost\"' url.com\n"
"\n"
-, stdout);
- fputs(
-" Note that if a filename/path is quoted by double-quotes, any\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"
@@ -878,173 +888,174 @@ void hugehelp(void)
" This option can be used multiple times.\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. (Added in 7.13.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --ftp-alternative-to-user <command>\n"
-" (FTP) If authenticating with the USER and PASS commands fails,\n"
-" send this command. When connecting to Tumbleweed's Secure\n"
-" Transport server over FTPS using a client certificate, using\n"
-" \"SITE AUTH\" will tell the server to retrieve the username from\n"
+" (FTP) If authenticating with the USER and PASS commands fails,\n"
+" send this command. When connecting to Tumbleweed's Secure\n"
, stdout);
fputs(
+" Transport server over FTPS using a client certificate, using\n"
+" \"SITE AUTH\" will tell the server to retrieve the username from\n"
" the certificate. (Added in 7.15.5)\n"
"\n"
" --ftp-create-dirs\n"
-" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n"
-" doesn't currently exist on the server, the standard behavior of\n"
+" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n"
+" doesn't currently exist on the server, the standard behavior of\n"
" curl is to fail. Using this option, curl will instead attempt to\n"
+, stdout);
+ fputs(
" create missing directories.\n"
"\n"
" --ftp-method [method]\n"
-" (FTP) Control what method curl should use to reach a file on an\n"
-, stdout);
- fputs(
-" FTP(S) server. The method argument should be one of the follow-\n"
+" (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"
-" This is the default but the slowest behavior.\n"
-"\n"
+" curl does a single CWD operation for each path part in\n"
+" the given URL. For deep hierarchies this means very many\n"
, stdout);
fputs(
-" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
+" commands. This is how RFC 1738 says it should be done.\n"
+" This is the default but the slowest behavior.\n"
+"\n"
+" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
" etc and give a full path to the server for all these com-\n"
" mands. This is the fastest behavior.\n"
"\n"
" singlecwd\n"
" curl does one CWD with the full target directory and then\n"
-" operates on the file \"normally\" (like in the multicwd\n"
-" case). This is somewhat more standards compliant than\n"
, stdout);
fputs(
+" operates on the file \"normally\" (like in the multicwd\n"
+" case). This is somewhat more standards compliant than\n"
" 'nocwd' but without the full penalty of 'multicwd'.\n"
-" (Added in 7.15.1)\n"
"\n"
-" --ftp-pasv\n"
-" (FTP) Use passive mode for the data connection. Passive is the\n"
-" internal default behavior, but using this option can be used to\n"
-" override a previous -P/-ftp-port option. (Added in 7.11.0)\n"
+" (Added in 7.15.1)\n"
"\n"
-" If this option is used several times, only the first one is\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(
-" used. Undoing an enforced passive really isn't doable but you\n"
+" override a previous -P/-ftp-port option. (Added in 7.11.0)\n"
+"\n"
+" If this option is used several times, only the first one is\n"
+" used. Undoing an enforced passive really isn't doable but you\n"
" must then instead enforce the correct -P, --ftp-port again.\n"
"\n"
" Passive mode means that curl will try the EPSV command first and\n"
" then PASV, unless --disable-epsv is used.\n"
"\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\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"
+" connection. Instead curl will re-use the same IP address it\n"
" already uses for the control connection. (Added in 7.14.2)\n"
"\n"
-" This option has no effect if PORT, EPRT or EPSV is used instead\n"
+" This option has no effect if PORT, EPRT or EPSV is used instead\n"
" of PASV.\n"
"\n"
" --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"
+" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
+" Certain FTP servers, mainly drftpd, require this non-standard\n"
+" command for directory listings as well as up and downloads in\n"
" PASV mode. (Added in 7.20.x)\n"
"\n"
" --ftp-ssl-ccc\n"
-" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
+" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
" layer after authenticating. The rest of the control channel com-\n"
-" munication will be unencrypted. This allows NAT routers to fol-\n"
-" low the FTP transaction. The default mode is passive. See --ftp-\n"
, stdout);
fputs(
+" munication will be unencrypted. This allows NAT routers to fol-\n"
+" low the FTP transaction. The default mode is passive. See --ftp-\n"
" ssl-ccc-mode for other modes. (Added in 7.16.1)\n"
"\n"
" --ftp-ssl-ccc-mode [active/passive]\n"
-" (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n"
-" passive mode will not initiate the shutdown, but instead wait\n"
+" (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n"
+" passive mode will not initiate the shutdown, but instead wait\n"
+, stdout);
+ fputs(
" for the server to do it, and will not reply to the shutdown from\n"
" the server. The active mode initiates the shutdown and waits for\n"
" a reply from the server. (Added in 7.16.2)\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(
-" --ftp-ssl-control\n"
-" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
-" Allows secure authentication, but non-encrypted data transfers\n"
-" for efficiency. Fails the transfer if the server doesn't sup-\n"
" port SSL/TLS. (Added in 7.16.0) that can still be used but will\n"
" be removed in a future version.\n"
"\n"
" --form-string <name=string>\n"
-, stdout);
- fputs(
-" (HTTP) Similar to --form except that the value string for the\n"
-" named parameter is used literally. Leading '@' and '<' charac-\n"
+" (HTTP) Similar to --form except that the value string for the\n"
+" named parameter is used literally. Leading '@' and '<' charac-\n"
" ters, and the ';type=' string in the value have no special mean-\n"
" ing. Use this in preference to --form if there's any possibility\n"
-" that the string value may accidentally trigger the '@' or '<'\n"
+, stdout);
+ fputs(
+" that the string value may accidentally trigger the '@' or '<'\n"
" features of --form.\n"
"\n"
" -g, --globoff\n"
+" This option switches off the \"URL globbing parser\". When you set\n"
+" this option, you can specify URLs that contain the letters {}[]\n"
+" without having them being interpreted by curl itself. Note that\n"
+" these letters are not normal legal URL contents but they should\n"
, stdout);
fputs(
-" This option switches off the \"URL globbing parser\". When you set\n"
-" this option, you can specify URLs that contain the letters {}[]\n"
-" without having them being interpreted by curl itself. Note that\n"
-" these letters are not normal legal URL contents but they should\n"
" be encoded according to the URI standard.\n"
"\n"
" -G, --get\n"
-" When used, this option will make all data specified with -d,\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, the POST data will instead be\n"
, stdout);
fputs(
-" --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, the POST data will instead be\n"
" appended to the URL with a HEAD request.\n"
"\n"
-" If this option is used several times, only the first one is\n"
-, stdout);
- fputs(
-" used. This is because undoing a GET doesn't make sense, but you\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"
" should then instead enforce the alternative method you prefer.\n"
"\n"
" -H, --header <header>\n"
-" (HTTP) Extra header to include in the request when sending HTTP\n"
-" to a server. You may specify any number of extra headers. Note\n"
-" that if you should add a custom header that has the same name as\n"
+" (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(
-" one of the internal ones curl would use, your externally set\n"
+" that if you should add a custom header that has the same name as\n"
+" one of the internal ones curl would use, your externally set\n"
" header will be used instead of the internal one. This allows you\n"
-" to make even trickier stuff than curl would normally do. You\n"
-" should not replace internally set headers without knowing per-\n"
+" 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"
, stdout);
fputs(
+" 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"
+" 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"
+" 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"
" See also the -A, --user-agent and -e, --referer options.\n"
@@ -1056,152 +1067,152 @@ void hugehelp(void)
"\n"
" # curl -H \"X-First-Name: Joe\" http://192.168.0.1/\n"
"\n"
-" WARNING: headers set with this option will be set in all\n"
, stdout);
fputs(
-" requests - even after redirects are followed, like when told\n"
-" with -L, --location. This can lead to the header being sent to\n"
-" other hosts than the original host, so sensitive headers should\n"
+" WARNING: headers set with this option will be set in all\n"
+" requests - even after redirects are followed, like when told\n"
+" with -L, --location. This can lead to the header being sent to\n"
+" other hosts than the original host, so sensitive headers should\n"
" be used with caution combined with following redirects.\n"
"\n"
-" This option can be used multiple times to add/replace/remove\n"
+" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
"\n"
-" --hostpubmd5 <md5>\n"
, stdout);
fputs(
-" (SCP/SFTP) Pass a string containing 32 hexadecimal digits. The\n"
-" string should be the 128 bit MD5 checksum of the remote host's\n"
+" --hostpubmd5 <md5>\n"
+" (SCP/SFTP) 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. (Added in 7.17.1)\n"
"\n"
" --ignore-content-length\n"
-" (HTTP) Ignore the Content-Length header. This is particularly\n"
-" useful for servers running Apache 1.x, which will report incor-\n"
+" (HTTP) Ignore the Content-Length header. This is particularly\n"
, stdout);
fputs(
+" useful for servers running Apache 1.x, which will report incor-\n"
" rect Content-Length for files larger than 2 gigabytes.\n"
"\n"
" -i, --include\n"
-" (HTTP) Include the HTTP-header in the output. The HTTP-header\n"
-" includes things like server-name, date of the document, HTTP-\n"
+" (HTTP) Include the HTTP-header in the output. The HTTP-header\n"
+" includes things like server-name, date of the document, HTTP-\n"
" version and more...\n"
"\n"
" -I, --head\n"
" (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature\n"
-" the command HEAD which this uses to get nothing but the header\n"
, stdout);
fputs(
-" of a document. When used on an FTP or FILE file, curl displays\n"
+" the command HEAD which this uses to get nothing but the header\n"
+" of a document. When used on an FTP or FILE file, curl displays\n"
" the file size and last modification time only.\n"
"\n"
" --interface <name>\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 http://www.netscape.com/\n"
"\n"
-" If this option is used several times, the last one will be used.\n"
-"\n"
, stdout);
fputs(
+" If this option is used several times, the last one will be used.\n"
+"\n"
" -j, --junk-session-cookies\n"
" (HTTP) When curl is told to read cookies from a given file, this\n"
-" option will make it discard all \"session cookies\". This will\n"
-" basically have the same effect as if a new session is started.\n"
-" Typical browsers always discard session cookies when they're\n"
+" option will make it discard all \"session cookies\". This will\n"
+" basically have the same effect as if a new session is started.\n"
+" Typical browsers always discard session cookies when they're\n"
" closed down.\n"
"\n"
" -J, --remote-header-name\n"
-" (HTTP) This option tells the -O, --remote-name option to use the\n"
, stdout);
fputs(
+" (HTTP) This option tells the -O, --remote-name option to use the\n"
" server-specified Content-Disposition filename instead of\n"
" extracting a filename from the URL.\n"
"\n"
-" There's no attempt to decode %-sequences (yet) in the provided\n"
+" There's no attempt to decode %-sequences (yet) in the provided\n"
" file name, so this option may provide you with rather unexpected\n"
" file names.\n"
"\n"
" -k, --insecure\n"
-" (SSL) This option explicitly allows curl to perform \"insecure\"\n"
-" SSL connections and transfers. All SSL connections are attempted\n"
+" (SSL) This option explicitly allows curl to perform \"insecure\"\n"
, stdout);
fputs(
-" to be made secure by using the CA certificate bundle installed\n"
-" by default. This makes all connections considered \"insecure\"\n"
+" SSL connections and transfers. All SSL connections are attempted\n"
+" to be made secure by using the CA certificate bundle installed\n"
+" by default. This makes all connections considered \"insecure\"\n"
" fail unless -k, --insecure is used.\n"
"\n"
-" See this online resource for further details:\n"
+" See this online resource for further details:\n"
" http://curl.haxx.se/docs/sslcerts.html\n"
"\n"
" -K, --config <config file>\n"
-" Specify which config file to read curl arguments from. The con-\n"
, stdout);
fputs(
-" fig file is a text file in which command line arguments can be\n"
-" written which then will be used as if they were written on the\n"
+" Specify which config file to read curl arguments from. The con-\n"
+" fig file is a text file in which command line arguments can be\n"
+" written which then will be used as if they were written on the\n"
" actual command line.\n"
"\n"
-" Options and their parameters must be specified on the same con-\n"
-" fig file line, separated by whitespace, colon, or the equals\n"
-" sign. Long option names can optionally be given in the config\n"
+" Options and their parameters must be specified on the same con-\n"
+" fig file line, separated by whitespace, colon, or the equals\n"
, stdout);
fputs(
-" file without the initial double dashes and if so, the colon or\n"
-" equals characters can be used as separators. If the option is\n"
-" specified with one or two dashes, there can be no colon or\n"
+" sign. Long option names can optionally be given in the config\n"
+" file without the initial double dashes and if so, the colon or\n"
+" equals characters can be used as separators. If the option is\n"
+" specified with one or two dashes, there can be no colon or\n"
" equals character between the option and its parameter.\n"
"\n"
" If the parameter is to contain whitespace, the parameter must be\n"
-" enclosed within quotes. Within double quotes, the following\n"
, stdout);
fputs(
-" escape sequences are available: \\\\, \\\", \\t, \\n, \\r and \\v. A\n"
-" backslash preceding any other letter is ignored. If the first\n"
+" enclosed within quotes. Within double quotes, the following\n"
+" escape sequences are available: \\\\, \\\", \\t, \\n, \\r and \\v. A\n"
+" backslash preceding any other letter is ignored. If the first\n"
" column of a config line is a '#' character, the rest of the line\n"
" will be treated as a comment. Only write one option per physical\n"
" line in the config file.\n"
"\n"
-" Specify the filename to -K, --config as '-' to make curl read\n"
-" the file from stdin.\n"
-"\n"
, stdout);
fputs(
-" 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"
+" 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"
" this:\n"
"\n"
" url = \"http://curl.haxx.se/docs/\"\n"
"\n"
-" When curl is invoked, it always (unless -q is used) checks for a\n"
-" default config file and uses it if found. The default config\n"
, stdout);
fputs(
+" When curl is invoked, it always (unless -q is used) checks for a\n"
+" default config file and uses it if found. The default config\n"
" file is checked for in the following places in this order:\n"
"\n"
-" 1) curl tries to find the \"home dir\": It first checks for the\n"
+" 1) curl tries to find the \"home dir\": It first checks for the\n"
" CURL_HOME and then the HOME environment variables. Failing that,\n"
-" it uses getpwuid() on Unix-like systems (which returns the home\n"
-" dir given the current user in your system). On Windows, it then\n"
-" checks for the APPDATA variable, or as a last resort the '%USER-\n"
+" it uses getpwuid() on Unix-like systems (which returns the home\n"
, stdout);
fputs(
+" dir given the current user in your system). On Windows, it then\n"
+" checks for the APPDATA variable, or as a last resort the '%USER-\n"
" PROFILE%\\Application Data'.\n"
"\n"
-" 2) On windows, if there is no _curlrc file in the home dir, it\n"
+" 2) 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"
-" Unix-like systems, it will simply try to load .curlrc from the\n"
+" Unix-like systems, it will simply try to load .curlrc from the\n"
" determined home dir.\n"
"\n"
+, stdout);
+ fputs(
" # --- Example file ---\n"
" # this is a comment\n"
" url = \"curl.haxx.se\"\n"
" output = \"curlhere.html\"\n"
-, stdout);
- fputs(
" user-agent = \"superagent/1.0\"\n"
"\n"
" # and fetch another URL too\n"
@@ -1210,183 +1221,183 @@ void hugehelp(void)
" referer = \"http://nowhereatall.com/\"\n"
" # --- End of example file ---\n"
"\n"
-" This option can be used multiple times to load multiple config\n"
+" This option can be used multiple times to load multiple config\n"
" files.\n"
"\n"
-" --keepalive-time <seconds>\n"
-" This option sets the time a connection needs to remain idle\n"
, stdout);
fputs(
-" before sending keepalive probes and the time between individual\n"
+" --keepalive-time <seconds>\n"
+" This option sets the time a connection needs to remain idle\n"
+" before 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. (Added in 7.18.0)\n"
"\n"
-" If this option is used several times, the last one will be used.\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"
" --key <key>\n"
" (SSL/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"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --key-type <type>\n"
-, stdout);
- fputs(
-" (SSL) Private key file type. Specify which type your --key pro-\n"
-" vided private key is. DER, PEM, and ENG are supported. If not\n"
+" (SSL) 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"
" --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"
+" (FTP) Enable Kerberos authentication and use. The level must be\n"
, stdout);
fputs(
-" 'private'. Should you use a level that is not one of these,\n"
+" entered and should be one of 'clear', 'safe', 'confidential', or\n"
+" 'private'. Should you use a level that is not one of these,\n"
" 'private' will instead be used.\n"
"\n"
-" This option requires a library built with kerberos4 support.\n"
-" This is not very common. Use -V, --version to see if your curl\n"
+" This option requires a library built with kerberos4 support.\n"
+" This is not very common. Use -V, --version to see if your curl\n"
" supports it.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -l, --list-only\n"
-" (FTP) When listing an FTP directory, this switch forces a name-\n"
, stdout);
fputs(
-" only view. This is especially useful if the user wants to\n"
-" machine-parse the contents of an FTP directory since the normal\n"
-" directory view doesn't use a standard look or format. When used\n"
-" like this, the option causes a NLST command to be sent to the\n"
+" (FTP) When listing an FTP directory, this switch forces a name-\n"
+" only view. This is especially useful if the user wants to\n"
+" machine-parse the contents of an FTP directory since the normal\n"
+" directory view doesn't use a standard look or format. When used\n"
+" like this, the option causes a NLST command to be sent to the\n"
" server instead of LIST.\n"
"\n"
-" Note: Some FTP servers list only files in their response to\n"
, stdout);
fputs(
+" Note: Some FTP servers list only files in their response to\n"
" NLST; they do not include sub-directories and symbolic links.\n"
"\n"
-" (POP3) When retrieving a specific email from POP3, this switch\n"
-" forces a LIST command to be performed instead of RETR. This is\n"
-" particularly useful if the user wants to see if a specific mes-\n"
+" (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"
"\n"
-" Note: When combined with -X, --request <command>, this option\n"
, stdout);
fputs(
+" Note: When combined with -X, --request <command>, this option\n"
" can be used to send an UIDL command instead, so the user may use\n"
-" the email's unique identifier rather than it's message id to\n"
+" the email's unique identifier rather than it's message id to\n"
" make the request. (Added in 7.21.5)\n"
"\n"
" -L, --location\n"
-" (HTTP/HTTPS) If the server reports that the requested page has\n"
+" (HTTP/HTTPS) If the server reports that the requested page has\n"
" moved to a different location (indicated with a Location: header\n"
-" and a 3XX response code), this option will make curl redo the\n"
, stdout);
fputs(
+" and a 3XX response code), this option will make curl redo the\n"
" request on the new place. If used together with -i, --include or\n"
" -I, --head, headers from all requested pages will be shown. When\n"
-" authentication 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"
+" authentication is used, curl only sends its credentials to the\n"
+" initial host. If a redirect takes curl to a different host, it\n"
+" won't be able to intercept the user+password. See also --loca-\n"
, stdout);
fputs(
+" tion-trusted on how to change this. You can limit the amount of\n"
" redirects to follow by using the --max-redirs option.\n"
"\n"
-" When curl follows a redirect and the request is not a plain GET\n"
+" When curl follows a redirect and the request is not a plain GET\n"
" (for example POST or PUT), it will do the following request with\n"
" a GET if the HTTP response was 301, 302, or 303. If the response\n"
-" code was any other 3xx code, curl will re-send the following\n"
-" request using the same unmodified method.\n"
-"\n"
+" code was any other 3xx code, curl will re-send the following\n"
, stdout);
fputs(
-" You can tell curl to not change the non-GET request method to\n"
-" GET after a 30x response by using the dedicated options for\n"
+" request using the same unmodified method.\n"
+"\n"
+" You can tell curl to not change the non-GET request method to\n"
+" GET after a 30x response by using the dedicated options for\n"
" that: --post301, --post302 and -post303.\n"
"\n"
" --libcurl <file>\n"
-" Append this option to any ordinary curl command line, and you\n"
-" will get a libcurl-using C source code written to the file that\n"
-" does the equivalent of what your command-line operation does!\n"
-"\n"
+" Append this option to any ordinary curl command line, and you\n"
+" will get a libcurl-using C source code written to the file that\n"
, stdout);
fputs(
-" If this option is used several times, the last given file name\n"
+" does the equivalent of what your command-line operation does!\n"
+"\n"
+" If this option is used several times, the last given file name\n"
" will be used. (Added in 7.16.1)\n"
"\n"
" --limit-rate <speed>\n"
-" Specify the maximum transfer rate you want curl to use - for\n"
+" Specify the maximum transfer rate you want curl to use - for\n"
" both downloads and uploads. This feature is useful if you have a\n"
" limited pipe and you'd like your transfer not to use your entire\n"
-" bandwidth. To make it slower than it otherwise would be.\n"
-"\n"
, stdout);
fputs(
-" 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"
+" 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. Examples: 200K, 3m and 1G.\n"
"\n"
-" The given rate is the average speed counted during the entire\n"
-" transfer. It means that curl might use higher transfer speeds in\n"
+" The given rate is the average speed counted during the entire\n"
, stdout);
fputs(
+" transfer. It means that curl might use higher transfer speeds in\n"
" short bursts, but over time it uses no more than the given rate.\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"
" --local-port <num>[-num]\n"
-" Set a preferred number or range of local port numbers to use for\n"
, stdout);
fputs(
-" the connection(s). Note that port numbers by nature are a\n"
+" Set a preferred number or range of local port numbers to use for\n"
+" the connection(s). Note that port numbers by nature are a\n"
" scarce resource that will be busy at times so setting this range\n"
" to something too narrow might cause unnecessary connection setup\n"
" failures. (Added in 7.15.2)\n"
"\n"
" --location-trusted\n"
-" (HTTP/HTTPS) Like -L, --location, but will allow sending the\n"
-" name + password to all hosts that the site may redirect to. This\n"
+" (HTTP/HTTPS) Like -L, --location, but will allow sending the\n"
, stdout);
fputs(
+" name + password to all hosts that the site may redirect to. This\n"
" may or may not introduce a security breach if the site redirects\n"
-" you to a site to which you'll send your authentication info\n"
+" you to a site to which you'll send your authentication info\n"
" (which is plaintext in the case of HTTP Basic authentication).\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"
+" Maximum time in seconds that you allow the whole operation to\n"
, stdout);
fputs(
-" ing for hours due to slow networks or links going down. Since\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"
" out will decrease in accuracy as the specified timeout increases\n"
" in decimal precision. See also the --connect-timeout option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" --login-options <options>\n"
, stdout);
fputs(
+" --login-options <options>\n"
" Specify the login options to use during server authentication.\n"
"\n"
-" You can use the login options to specify protocol specific\n"
-" options that may be used during authentication. At present only\n"
-" IMAP, POP3 and SMTP support login options. For more information\n"
-" about the login options please see RFC 2384, RFC 5092 and IETF\n"
+" You can use the login options to specify protocol specific\n"
+" options that may be used during authentication. At present only\n"
+" IMAP, POP3 and SMTP support login options. For more information\n"
+" about the login options please see RFC 2384, RFC 5092 and IETF\n"
" draft draft-earhart-url-smtp-00.txt (Added in 7.34.0).\n"
"\n"
, stdout);
@@ -1394,14 +1405,14 @@ void hugehelp(void)
" If this option is used several times, the last one will be used.\n"
"\n"
" --mail-auth <address>\n"
-" (SMTP) Specify a single address. This will be used to specify\n"
-" the authentication address (identity) of a submitted message\n"
+" (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"
" (Added in 7.25.0)\n"
"\n"
" --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"
, stdout);
@@ -1409,52 +1420,52 @@ void hugehelp(void)
" (Added in 7.20.0)\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"
+" Specify the maximum size (in bytes) of a file to download. If\n"
+" the file requested is larger than this value, the transfer will\n"
" not start and curl will return with exit code 63.\n"
"\n"
-" NOTE: The file size is not always known prior to download, and\n"
+" NOTE: The file size is not always known prior to download, and\n"
" for such files this option has no effect even if the file trans-\n"
, stdout);
fputs(
-" fer ends up being larger than this given limit. This concerns\n"
+" fer ends up being larger than this given limit. This concerns\n"
" both FTP and HTTP transfers.\n"
"\n"
" --mail-rcpt <address>\n"
" (SMTP) Specify a single address, user name or mailing list name.\n"
-" When performing a mail transfer, the recipient should specify a\n"
+" When performing a mail transfer, the recipient should specify a\n"
" valid email address to send the mail to. (Added in 7.20.0)\n"
"\n"
-" When performing an address verification (VRFY command), the\n"
+" When performing an address verification (VRFY command), the\n"
, stdout);
fputs(
-" recipient should be specified as the user name or user name and\n"
+" recipient 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"
+" ient should be specified using the mailing list name, such as\n"
" \"Friends\" or \"London-Office\". (Added in 7.34.0)\n"
"\n"
" --max-redirs <num>\n"
-" Set maximum number of redirection-followings allowed. If -L,\n"
+" Set maximum number of redirection-followings allowed. If -L,\n"
, stdout);
fputs(
" --location is used, this option can be used to prevent curl from\n"
-" following redirections \"in absurdum\". By default, the limit is\n"
-" set to 50 redirections. Set this option to -1 to make it limit-\n"
+" following redirections \"in absurdum\". By default, the limit is\n"
+" set to 50 redirections. Set this option to -1 to make it limit-\n"
" less.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --metalink\n"
-" This option can tell curl to parse and process a given URI as\n"
+" This option can tell curl to parse and process a given URI as\n"
, stdout);
fputs(
-" Metalink file (both version 3 and 4 (RFC 5854) are supported)\n"
-" and make use of the mirrors listed within for failover if there\n"
-" are errors (such as the file or server not being available). It\n"
-" will also verify the hash of the file after the download com-\n"
-" pletes. The Metalink file itself is downloaded and processed in\n"
+" Metalink file (both version 3 and 4 (RFC 5854) are supported)\n"
+" and make use of the mirrors listed within for failover if there\n"
+" are errors (such as the file or server not being available). It\n"
+" will also verify the hash of the file after the download com-\n"
+" pletes. The Metalink file itself is downloaded and processed in\n"
" memory and not stored in the local file system.\n"
"\n"
, stdout);
@@ -1468,13 +1479,13 @@ void hugehelp(void)
"\n"
" curl --metalink file://example.metalink\n"
"\n"
-" Please note that if FILE protocol is disabled, there is no way\n"
-" to use a local Metalink file at the time of this writing. Also\n"
+" Please note that if FILE protocol is disabled, there is no way\n"
+" to use a local Metalink file at the time of this writing. Also\n"
, stdout);
fputs(
" note that if --metalink and --include are used together,\n"
-" --include will be ignored. This is because including headers in\n"
-" the response will break Metalink parser and if the headers are\n"
+" --include will be ignored. This is because including headers in\n"
+" the response will break Metalink parser and if the headers are\n"
" included in the file described in Metalink file, hash check will\n"
" fail.\n"
"\n"
@@ -1483,19 +1494,19 @@ void hugehelp(void)
" -n, --netrc\n"
, stdout);
fputs(
-" 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(4) or 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 not be either world- or group-\n"
+" cally used for FTP on Unix. If used with HTTP, curl will enable\n"
+" user authentication. See netrc(5) ftp(1) for details on the file\n"
+" format. Curl will not complain if that file doesn't have the\n"
+" right permissions (it should not be either world- or group-read-\n"
, stdout);
fputs(
-" readable). The environment variable \"HOME\" is used to find the\n"
-" home directory.\n"
+" able). The environment variable \"HOME\" is used to find the home\n"
+" directory.\n"
"\n"
-" A quick and very simple example of how to setup a .netrc to\n"
-" allow curl to FTP to the machine host.domain.com with user name\n"
+" A quick and very simple example of how to setup a .netrc to\n"
+" allow curl to FTP to the machine host.domain.com with user name\n"
" 'myself' and password 'secret' should look similar to:\n"
"\n"
" machine host.domain.com login myself password secret\n"
@@ -1504,112 +1515,112 @@ void hugehelp(void)
, stdout);
fputs(
" Disables the buffering of the output stream. In normal work sit-\n"
-" uations, curl will use a standard buffered output stream that\n"
+" uations, curl will use a standard buffered output stream that\n"
" will have the effect that it will output the data in chunks, not\n"
-" 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"
, stdout);
fputs(
" --netrc-file\n"
-" This option is similar to --netrc, except that you provide the\n"
-" path (absolute or relative) to the netrc file that Curl should\n"
-" use. You can only specify one netrc file per invocation. If\n"
-" several --netrc-file options are provided, only the last one\n"
+" This option is similar to --netrc, except that you provide the\n"
+" path (absolute or relative) to the netrc file that Curl should\n"
+" use. You can only specify one netrc file per invocation. If\n"
+" several --netrc-file options are provided, only the last one\n"
" will be used. (Added in 7.21.5)\n"
"\n"
-" This option overrides any use of --netrc as they are mutually\n"
+" This option overrides any use of --netrc as they are mutually\n"
, stdout);
fputs(
" exclusive. It will also abide by --netrc-optional if specified.\n"
"\n"
" --netrc-optional\n"
-" Very similar to --netrc, but this option makes the .netrc usage\n"
+" Very similar to --netrc, but this option makes the .netrc usage\n"
" optional and not mandatory as the --netrc option does.\n"
"\n"
" --negotiate\n"
" (HTTP) Enables Negotiate (SPNEGO) authentication.\n"
"\n"
-" If you want to enable Negotiate (SPNEGO) for proxy authentica-\n"
+" If you want to enable Negotiate (SPNEGO) for proxy authentica-\n"
" tion, then use --proxy-negotiate.\n"
"\n"
, stdout);
fputs(
-" 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"
+" port. Use -V, --version to see if your curl supports GSS-\n"
" API/SSPI and 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"
" option aren't actually used.\n"
"\n"
, stdout);
fputs(
-" 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"
" --no-keepalive\n"
" Disables the use of keepalive messages on the TCP connection, as\n"
" by default curl enables them.\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"
" --no-sessionid\n"
-" (SSL) Disable curl's use of SSL session-ID caching. By default\n"
+" (SSL) Disable curl's use of SSL session-ID caching. By default\n"
, stdout);
fputs(
-" all transfers are done using the cache. Note that while nothing\n"
-" should ever get hurt by attempting to reuse SSL session-IDs,\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. (Added\n"
+" require you to disable this in order for you to succeed. (Added\n"
" in 7.16.0)\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 --sessionid to enforce session-ID caching.\n"
"\n"
, stdout);
fputs(
" --noproxy <no-proxy-list>\n"
-" Comma-separated list of hosts which do not use a proxy, if one\n"
-" is specified. The only wildcard is a single * character, which\n"
+" Comma-separated list of hosts which do not use a proxy, if one\n"
+" is specified. The only wildcard is a single * character, which\n"
" matches all hosts, and effectively disables the proxy. Each name\n"
-" in this list is matched as either a domain which contains the\n"
-" hostname, or the hostname itself. For example, local.com would\n"
+" in this list is matched as either a domain which contains the\n"
+" hostname, or the hostname itself. For example, local.com would\n"
, stdout);
fputs(
-" match local.com, local.com:80, and www.local.com, but not\n"
+" match local.com, local.com:80, and www.local.com, but not\n"
" www.notlocal.com. (Added in 7.19.4).\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"
-" This option requires a library built with SSL support. Use -V,\n"
+" This option requires a library built with SSL support. Use -V,\n"
" --version to see if your curl supports NTLM.\n"
"\n"
, stdout);
fputs(
-" 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"
" -o, --output <file>\n"
" Write output to <file> instead of stdout. If you are using {} or\n"
-" [] to fetch multiple documents, you can use '#' followed by a\n"
-" number in the <file> specifier. That variable will be replaced\n"
+" [] to fetch multiple documents, you can use '#' followed by a\n"
+" number in the <file> specifier. That variable will be replaced\n"
" with the current string for the URL being fetched. Like in:\n"
"\n"
, stdout);
@@ -1620,35 +1631,35 @@ void hugehelp(void)
"\n"
" 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"
+" You may use this option as many times as the number of URLs you\n"
" have.\n"
"\n"
-" See also the --create-dirs option to create the local directo-\n"
-" ries dynamically. Specifying the output as '-' (a single dash)\n"
+" See also the --create-dirs option to create the local directo-\n"
+" ries dynamically. Specifying the output as '-' (a single dash)\n"
" will force the output to be done to stdout.\n"
"\n"
, stdout);
fputs(
" -O, --remote-name\n"
-" Write output to a local file named like the remote file we get.\n"
-" (Only the file part of the remote file is used, the path is cut\n"
+" Write output to a local file named like the remote file we get.\n"
+" (Only the file part of the remote file is used, the path is cut\n"
" off.)\n"
"\n"
-" The remote file name to use for saving is extracted from the\n"
+" The remote file name to use for saving is extracted from the\n"
" given URL, nothing else.\n"
"\n"
-" Consequentially, the file will be saved in the current working\n"
-" directory. If you want the file saved in a different directory,\n"
+" Consequentially, the file will be saved in the current working\n"
+" directory. If you want the file saved in a different directory,\n"
, stdout);
fputs(
" make sure you change current working directory before you invoke\n"
" curl with the -O, --remote-name flag!\n"
"\n"
" There is no URL decoding done on the file name. If it has %20 or\n"
-" other URL encoded parts of the name, they will end up as-is as\n"
+" other URL encoded parts of the name, they will end up as-is as\n"
" file name.\n"
"\n"
-" You may use this option as many times as the number of URLs you\n"
+" You may use this option as many times as the number of URLs you\n"
" have.\n"
"\n"
" --oauth2-bearer\n"
@@ -1656,10 +1667,10 @@ void hugehelp(void)
fputs(
" (IMAP, POP3, SMTP) Specify the Bearer Token for OAUTH 2.0 server\n"
" authentication. The Bearer Token is used in conjunction with the\n"
-" user name which can be specified as part of the --url or -u,\n"
+" user name which can be specified as part of the --url or -u,\n"
" --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"
@@ -1667,50 +1678,50 @@ void hugehelp(void)
" --proxy-header <header>\n"
, stdout);
fputs(
-" (HTTP) Extra header to include in the request when sending HTTP\n"
+" (HTTP) Extra header to include in the request when sending HTTP\n"
" to a proxy. You may specify any number of extra headers. This is\n"
-" the equivalent option to -H, --header but is for proxy communi-\n"
-" cation only like in CONNECT requests when you want a separate\n"
-" header sent to the proxy to what is sent to the actual remote\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"
, stdout);
fputs(
" with the proper end-of-line marker, you should thus not add that\n"
" as a part of the header content: do not add newlines or carriage\n"
" returns, they will only mess things up for you.\n"
"\n"
-" Headers specified with this option will not be included in\n"
+" Headers specified with this option will not be included in\n"
" requests that curl knows will not be sent to a proxy.\n"
"\n"
-" This option can be used multiple times to add/replace/remove\n"
+" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
, stdout);
fputs(
" (Added in 7.37.0)\n"
" -p, --proxytunnel\n"
" When an HTTP proxy is used (-x, --proxy), this option will cause\n"
-" non-HTTP protocols to attempt to tunnel through the proxy\n"
-" instead of merely using it to do HTTP-like operations. The tun-\n"
-" nel approach is made with the HTTP proxy CONNECT request and\n"
+" non-HTTP protocols to attempt to tunnel through the proxy\n"
+" instead of merely using it to do HTTP-like operations. The tun-\n"
+" nel approach is made with the HTTP proxy CONNECT request and\n"
" requires that the proxy allows direct connect to the remote port\n"
, stdout);
fputs(
" number curl wants to tunnel through to.\n"
"\n"
" -P, --ftp-port <address>\n"
-" (FTP) Reverses the default initiator/listener roles when con-\n"
-" necting with FTP. This switch makes curl use active mode. In\n"
-" practice, curl then tells the server to connect back to the\n"
+" (FTP) Reverses the default initiator/listener roles when con-\n"
+" necting with FTP. This switch makes curl use active mode. In\n"
+" practice, curl then tells the server to connect back to the\n"
" client's specified address and port, while passive mode asks the\n"
-" server to setup an IP address and port for it to connect to.\n"
+" server to setup an IP address and port for it to connect to.\n"
, stdout);
fputs(
" <address> should be one of:\n"
"\n"
" interface\n"
-" i.e \"eth0\" to specify which interface's IP address you\n"
+" i.e \"eth0\" to specify which interface's IP address you\n"
" want to use (Unix only)\n"
"\n"
" IP address\n"
@@ -1719,23 +1730,23 @@ void hugehelp(void)
" host name\n"
" i.e \"my.host.domain\" to specify the machine\n"
"\n"
-" - make curl pick the same IP address that is already used\n"
+" - make curl pick the same IP address that is already used\n"
, stdout);
fputs(
" 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"
-" EPRT command instead of PORT by using --disable-eprt. EPRT is really\n"
-" PORT++.\n"
+" If this option is used several times, the last one will be used.\n"
+" Disable the use of PORT with --ftp-pasv. Disable the attempt to\n"
+" use the EPRT command instead of PORT by using --disable-eprt.\n"
+" EPRT is really PORT++.\n"
"\n"
-" Starting in 7.19.5, you can append \":[start]-[end]\" to the right of the\n"
-" address, to tell curl what TCP port range to use. That means you spec-\n"
+" Starting in 7.19.5, you can append \":[start]-[end]\" to the right\n"
+" of the address, to tell curl what TCP port range to use. That\n"
, stdout);
fputs(
-" ify a port range, from a lower to a higher number. A single number\n"
-" works as well, but do note that it increases the risk of failure since\n"
-" the port may not be available.\n"
+" means you specify a port range, from a lower to a higher number.\n"
+" A single number works as well, but do note that it increases the\n"
+" risk of failure since the port may not be available.\n"
"\n"
" --pass <phrase>\n"
" (SSL/SSH) Passphrase for the private key\n"
@@ -1743,53 +1754,53 @@ void hugehelp(void)
" If this option is used several times, the last one will be used.\n"
"\n"
" --path-as-is\n"
-" Tell curl to not handle sequences of /../ or /./ in the given\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"
+" URL path. Normally curl will squash or merge them according to\n"
" standards but with this option set you tell it not to do that.\n"
"\n"
" (Added in 7.42.0)\n"
"\n"
" --post301\n"
-" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
-" POST requests into GET requests when following a 301 redirect-\n"
-" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
+" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
+" POST requests into GET requests when following a 301 redirect-\n"
+" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
, stdout);
fputs(
-" curl does the conversion by default to maintain consistency.\n"
+" curl does the conversion by default to maintain consistency.\n"
" However, a server may require a POST to remain a POST after such\n"
-" a redirection. This option is meaningful only when using -L,\n"
+" a redirection. This option is meaningful only when using -L,\n"
" --location (Added in 7.17.1)\n"
"\n"
" --post302\n"
-" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
-" POST requests into GET requests when following a 302 redirect-\n"
+" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
+" POST requests into GET requests when following a 302 redirect-\n"
, stdout);
fputs(
-" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
-" curl does the conversion by default to maintain consistency.\n"
+" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
+" curl does the conversion by default to maintain consistency.\n"
" However, a server may require a POST to remain a POST after such\n"
-" a redirection. This option is meaningful only when using -L,\n"
+" a redirection. This option is meaningful only when using -L,\n"
" --location (Added in 7.19.1)\n"
"\n"
" --post303\n"
-" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
+" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
, stdout);
fputs(
-" POST requests into GET requests when following a 303 redirect-\n"
-" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
-" curl does the conversion by default to maintain consistency.\n"
+" POST requests into GET requests when following a 303 redirect-\n"
+" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
+" curl does the conversion by default to maintain consistency.\n"
" However, a server may require a POST to remain a POST after such\n"
-" a redirection. This option is meaningful only when using -L,\n"
+" a redirection. This option is meaningful only when using -L,\n"
" --location (Added in 7.26.0)\n"
"\n"
" --proto <protocols>\n"
, stdout);
fputs(
-" Tells curl to use the listed protocols for its initial\n"
+" Tells curl to use the listed protocols for its initial\n"
" retrieval. Protocols are evaluated left to right, are comma sep-\n"
-" arated, and are each a protocol name or 'all', optionally pre-\n"
+" arated, and are each a protocol name or 'all', optionally pre-\n"
" fixed by zero or more modifiers. Available modifiers are:\n"
"\n"
" + Permit this protocol in addition to protocols already permit-\n"
@@ -1797,11 +1808,11 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
-" - Deny this protocol, removing it from the list of protocols\n"
+" - Deny this protocol, removing it from the list of protocols\n"
" already permitted.\n"
"\n"
-" = Permit only this protocol (ignoring the list already permit-\n"
-" ted), though subject to later modification by subsequent\n"
+" = Permit only this protocol (ignoring the list already permit-\n"
+" ted), though subject to later modification by subsequent\n"
" entries in the comma separated list.\n"
"\n"
" For example:\n"
@@ -1816,21 +1827,21 @@ void hugehelp(void)
" --proto =http,https\n"
" also only enables http and https\n"
"\n"
-" Unknown protocols produce a warning. This allows scripts to\n"
-" safely rely on being able to disable potentially dangerous pro-\n"
-" tocols, without relying upon support for that protocol being\n"
+" Unknown protocols produce a warning. This allows scripts to\n"
+" safely rely on being able to disable potentially dangerous pro-\n"
+" tocols, without relying upon support for that protocol being\n"
" built into curl to avoid an error.\n"
"\n"
, stdout);
fputs(
" This option can be used multiple times, in which case the effect\n"
-" is the same as concatenating the protocols into one instance of\n"
+" is the same as concatenating the protocols into one instance of\n"
" the option.\n"
"\n"
" (Added in 7.20.2)\n"
"\n"
" --proto-redir <protocols>\n"
-" Tells curl to use the listed protocols after a redirect. See\n"
+" Tells curl to use the listed protocols after a redirect. See\n"
" --proto for how protocols are represented.\n"
"\n"
" (Added in 7.20.2)\n"
@@ -1838,153 +1849,162 @@ void hugehelp(void)
" --proxy-anyauth\n"
, stdout);
fputs(
-" Tells curl to pick a suitable authentication method when commu-\n"
-" nicating with the given proxy. This might cause an extra\n"
+" Tells curl to pick a suitable authentication method when commu-\n"
+" nicating with the given proxy. This might cause an extra\n"
" request/response round-trip. (Added in 7.13.2)\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"
+" remote host. Basic is the default authentication method curl\n"
, stdout);
fputs(
" uses with proxies.\n"
"\n"
" --proxy-digest\n"
-" 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"
" --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"
, stdout);
fputs(
" HTTP Negotiate (SPNEGO) with a remote host. (Added in 7.17.1)\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"
" host.\n"
"\n"
+" --proxy-service-name <servicename>\n"
+" This option allows you to change the service name for proxy\n"
+" negotiation.\n"
+"\n"
+, stdout);
+ fputs(
+" Examples: --proxy-negotiate proxy-name --proxy-service-name\n"
+" sockd would use sockd/proxy-name. (Added in 7.43.0).\n"
+"\n"
" --proxy1.0 <proxyhost[:port]>\n"
-" Use the specified HTTP 1.0 proxy. If the port number is not\n"
+" Use the specified HTTP 1.0 proxy. If the port number is not\n"
" 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(
-" The only difference between this and the HTTP proxy option (-x,\n"
-" --proxy), is that attempts to use CONNECT through the proxy will\n"
" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
"\n"
" --pubkey <key>\n"
-" (SSH) Public key file name. Allows you to provide your public\n"
+" (SSH) Public key file name. Allows you to provide your public\n"
" key in this separate file.\n"
"\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(
-" (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"
" 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"
+" libcurl to be linked against a copy of libssh2 1.2.8 or higher\n"
" that is itself linked against OpenSSL.)\n"
"\n"
-" -q 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"
+" -q If used as the first parameter on the command line, the curlrc\n"
+" config file will not be read and used. See the -K, --config for\n"
" details on the default config file search path.\n"
"\n"
" -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"
-" (just after the initial PWD command in an FTP transfer, to be\n"
-" exact). To make commands take place after a successful transfer,\n"
, stdout);
fputs(
-" prefix them with a dash '-'. To make commands be sent after\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"
+" (just after the initial PWD command in an FTP transfer, to be\n"
+" exact). To make commands take place after a successful transfer,\n"
+" prefix them with a dash '-'. To make commands be sent after\n"
" curl has changed the working directory, just before the transfer\n"
-" command(s), prefix the command with a '+' (this is only sup-\n"
-" ported for FTP). You may specify any number of commands. If the\n"
+, stdout);
+ fputs(
+" command(s), prefix the command with a '+' (this is only sup-\n"
+" ported for FTP). You may specify any number of commands. If the\n"
" server returns failure for one of the commands, the entire oper-\n"
-" ation will be aborted. You must send syntactically correct FTP\n"
+" ation will be aborted. You must send syntactically correct FTP\n"
+" commands as RFC 959 defines to FTP servers, or one of the com-\n"
+" mands listed below to SFTP servers. This option can be used\n"
, stdout);
fputs(
-" commands as RFC 959 defines to FTP servers, or one of the com-\n"
-" mands listed below to SFTP servers. This option can be used\n"
-" multiple times. When speaking to an FTP server, prefix the com-\n"
+" multiple times. When speaking to an FTP server, prefix the com-\n"
" mand with an asterisk (*) to make curl continue even if the com-\n"
" mand fails as by default curl will stop at first failure.\n"
"\n"
-" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
+" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
+" quote commands itself before sending them to the server. File\n"
+" names may be quoted shell-style to embed spaces or special char-\n"
, stdout);
fputs(
-" quote commands itself before sending them to the server. File\n"
-" names may be quoted shell-style to embed spaces or special char-\n"
-" acters. Following is the list of all supported SFTP quote com-\n"
+" acters. Following is the list of all supported SFTP quote com-\n"
" mands:\n"
"\n"
" chgrp group file\n"
-" The chgrp command sets the group ID of the file named by\n"
-" the file operand to the group ID specified by the group\n"
-, stdout);
- fputs(
+" The chgrp command sets the group ID of the file named by\n"
+" the file operand to the group ID specified by the group\n"
" operand. The group operand is a decimal integer group ID.\n"
"\n"
" chmod mode file\n"
-" The chmod command modifies the file mode bits of the\n"
+" The chmod command modifies the file mode bits of the\n"
+, stdout);
+ fputs(
" specified file. The mode operand is an octal integer mode\n"
" number.\n"
"\n"
" chown user file\n"
" The chown command sets the owner of the file named by the\n"
-" file operand to the user ID specified by the user oper-\n"
-, stdout);
- fputs(
+" file operand to the user ID specified by the user oper-\n"
" and. The user operand is a decimal integer user ID.\n"
"\n"
" ln source_file target_file\n"
" The ln and symlink commands create a symbolic link at the\n"
-" target_file location pointing to the source_file loca-\n"
+, stdout);
+ fputs(
+" target_file location pointing to the source_file loca-\n"
" tion.\n"
"\n"
" mkdir directory_name\n"
-" The mkdir command creates the directory named by the\n"
+" The mkdir command creates the directory named by the\n"
" directory_name operand.\n"
"\n"
-, stdout);
- fputs(
" pwd The pwd command returns the absolute pathname of the cur-\n"
" rent working directory.\n"
"\n"
" rename source target\n"
+, stdout);
+ fputs(
" The rename command renames the file or directory named by\n"
-" the source operand to the destination path named by the\n"
+" the source operand to the destination path named by the\n"
" target operand.\n"
"\n"
" rm file\n"
" The rm command removes the file specified by the file op-\n"
" erand.\n"
"\n"
+" rmdir directory\n"
+" The rmdir command removes the directory entry specified\n"
, stdout);
fputs(
-" rmdir directory\n"
-" The rmdir command removes the directory entry specified\n"
" by the directory operand, provided it is empty.\n"
"\n"
" symlink source_file target_file\n"
" See ln.\n"
"\n"
" -r, --range <range>\n"
-" (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial docu-\n"
-" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
+" (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial docu-\n"
+" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
" Ranges can be specified in a number of ways.\n"
"\n"
-, stdout);
- fputs(
" 0-499 specifies the first 500 bytes\n"
"\n"
+, stdout);
+ fputs(
" 500-999 specifies the second 500 bytes\n"
"\n"
" -500 specifies the last 500 bytes\n"
@@ -1997,70 +2017,70 @@ void hugehelp(void)
" specifies 300 bytes from offset 500(H)\n"
"\n"
" 100-199,500-599\n"
-, stdout);
- fputs(
" specifies two separate 100-byte ranges(*)(H)\n"
"\n"
-" (*) = NOTE that this will cause the server to reply with a multipart\n"
-" response!\n"
+, stdout);
+ fputs(
+" (*) = NOTE that this will cause the server to reply with a mul-\n"
+" tipart response!\n"
"\n"
-" Only digit characters (0-9) are valid in the 'start' and 'stop' fields\n"
-" of the 'start-stop' range syntax. If a non-digit character is given in\n"
-" the range, the server's response will be unspecified, depending on the\n"
-" server's configuration.\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"
+" ified, depending on the server's configuration.\n"
"\n"
+" You should also be aware that many HTTP/1.1 servers do not have\n"
, stdout);
fputs(
-" You should also be aware that many HTTP/1.1 servers do not have this\n"
-" feature enabled, so that when you attempt to get a range, you'll\n"
-" instead get the whole document.\n"
+" this feature enabled, so that when you attempt to get a range,\n"
+" you'll instead get the whole document.\n"
"\n"
-" FTP and SFTP range downloads only support the simple 'start-stop' syn-\n"
-" tax (optionally with one of the numbers omitted). FTP use depends on\n"
-" the extended FTP command SIZE.\n"
+" FTP and SFTP range downloads only support the simple 'start-\n"
+" stop' syntax (optionally with one of the numbers omitted). FTP\n"
+" use depends on the extended FTP command SIZE.\n"
"\n"
-" If this option is used several times, the last one will be used.\n"
+" If this option is used several times, the last one will be used.\n"
"\n"
" -R, --remote-time\n"
, stdout);
fputs(
-" 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\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\n"
" local file get that same timestamp.\n"
"\n"
" --random-file <file>\n"
" (SSL) Specify the path name to file containing what will be con-\n"
-" sidered as random data. The data is used to seed the random\n"
+" sidered as random data. The data is used to seed the random\n"
" engine for SSL connections. See also the --egd-file option.\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\n"
+" tent or transfer encodings and instead makes them passed on\n"
" unaltered, raw. (Added in 7.16.2)\n"
"\n"
" --remote-name-all\n"
-" This option changes the default action for all given URLs to be\n"
+" This option changes the default action for all given URLs to be\n"
" dealt with as if -O, --remote-name were used for each one. So if\n"
" you want to disable that for a specific URL after --remote-name-\n"
, stdout);
fputs(
-" all has been used, you must use \"-o -\" or --no-remote-name.\n"
+" all has been used, you must use \"-o -\" or --no-remote-name.\n"
" (Added in 7.19.0)\n"
"\n"
" --resolve <host:port:address>\n"
-" Provide a custom address for a specific host and port pair.\n"
-" Using this, you can make the curl requests(s) use a specified\n"
-" address and prevent the otherwise normally resolved address to\n"
-" be used. Consider it a sort of /etc/hosts alternative provided\n"
+" Provide a custom address for a specific host and port pair.\n"
+" Using this, you can make the curl requests(s) use a specified\n"
+" address and prevent the otherwise normally resolved address to\n"
+" be used. Consider it a sort of /etc/hosts alternative provided\n"
, stdout);
fputs(
-" on the command line. The port number should be the number used\n"
-" for the specific protocol the host will be used for. It means\n"
-" you need several entries if you want to provide address for the\n"
+" on the command line. The port number should be the number used\n"
+" for the specific protocol the host will be used for. It means\n"
+" you need several entries if you want to provide address for the\n"
" same host but different ports.\n"
"\n"
-" This option can be used many times to add many host names to\n"
+" This option can be used many times to add many host names to\n"
" resolve.\n"
"\n"
" (Added in 7.21.3)\n"
@@ -2068,20 +2088,20 @@ void hugehelp(void)
" --retry <num>\n"
, stdout);
fputs(
-" 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"
-" 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"
+" 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"
+" 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 5xx response code.\n"
"\n"
-" When curl is about to retry a transfer, it will first wait one\n"
+" When curl is about to retry a transfer, it will first wait one\n"
, stdout);
fputs(
-" 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"
-" 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"
+" 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"
+" 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"
" (Added in 7.12.3)\n"
"\n"
, stdout);
@@ -2089,129 +2109,135 @@ void hugehelp(void)
" If this option is used several times, the last one will be used.\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\n"
-" default backoff time algorithm between retries). This option is\n"
-" only interesting if --retry is also used. Setting this delay to\n"
+" Make curl sleep this amount of time before each retry when a\n"
+" transfer has failed with a transient error (it changes the\n"
+" default backoff time algorithm between retries). This option is\n"
+" only interesting if --retry is also used. Setting this delay to\n"
, stdout);
fputs(
-" zero will make curl use the default backoff time. (Added in\n"
+" zero will make curl use the default backoff time. (Added in\n"
" 7.12.3)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --retry-max-time <seconds>\n"
-" The retry timer is reset before the first transfer attempt.\n"
+" The retry timer is reset before the first transfer attempt.\n"
" Retries will be done as usual (see --retry) as long as the timer\n"
" hasn't reached this given limit. Notice that if the timer hasn't\n"
, stdout);
fputs(
-" 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\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\n"
" option to zero to not timeout retries. (Added in 7.12.3)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -s, --silent\n"
-" Silent or quiet mode. Don't show progress meter or error mes-\n"
+" Silent or quiet mode. Don't show progress meter or error mes-\n"
, stdout);
fputs(
-" sages. Makes Curl mute. It will still output the data you ask\n"
+" sages. Makes Curl mute. It will still output the data you ask\n"
" for, potentially even to the terminal/stdout unless you redirect\n"
" it.\n"
"\n"
" --sasl-ir\n"
-" Enable initial response in SASL authentication. (Added in\n"
+" Enable initial response in SASL authentication. (Added in\n"
" 7.31.0)\n"
"\n"
+" --service-name <servicename>\n"
+" This option allows you to change the service name for SPNEGO.\n"
+"\n"
+" Examples: --negotiate --service-name sockd would use\n"
+, stdout);
+ fputs(
+" sockd/server-name. (Added in 7.43.0).\n"
+"\n"
" -S, --show-error\n"
" When used with -s it makes curl show an error message if it\n"
" fails.\n"
"\n"
" --ssl (FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection.\n"
-, stdout);
- fputs(
" Reverts to a non-secure connection if the server doesn't support\n"
" SSL/TLS. See also --ftp-ssl-control and --ssl-reqd for differ-\n"
" ent levels of encryption required. (Added in 7.20.0)\n"
"\n"
+, stdout);
+ fputs(
" 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\n"
" future version.\n"
"\n"
" --ssl-reqd\n"
-, stdout);
- fputs(
" (FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection.\n"
" Terminates the connection if the server doesn't support SSL/TLS.\n"
" (Added in 7.20.0)\n"
"\n"
" This option was formerly known as --ftp-ssl-reqd (added in\n"
+, stdout);
+ fputs(
" 7.15.5). That option name can still be used but will be removed\n"
" in a future version.\n"
"\n"
" --ssl-allow-beast\n"
" (SSL) This option tells curl to not work around a security flaw\n"
-, stdout);
- fputs(
" in the SSL3 and TLS1.0 protocols known as BEAST. If this option\n"
" isn't used, the SSL layer may use workarounds known to cause\n"
" interoperability problems with some older SSL implementations.\n"
+, stdout);
+ fputs(
" WARNING: this option loosens the SSL security, and by using this\n"
" flag you ask for exactly that. (Added in 7.25.0)\n"
"\n"
" --socks4 <host[:port]>\n"
" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
-, stdout);
- fputs(
" fied, it is assumed at port 1080. (Added in 7.15.2)\n"
"\n"
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\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"
" If this option is used several times, the last one will be used.\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. (Added in 7.18.0)\n"
"\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"
" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n"
" fix.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --socks5-hostname <host[:port]>\n"
" Use the specified SOCKS5 proxy (and let the proxy resolve the\n"
" host name). If the port number is not specified, it is assumed\n"
+, stdout);
+ fputs(
" at port 1080. (Added in 7.18.0)\n"
"\n"
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
-, stdout);
- fputs(
" 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"
" If this option is used several times, the last one will be used.\n"
+, stdout);
+ fputs(
" (This option was previously wrongly documented and used as\n"
" --socks without the number appended.)\n"
"\n"
" --socks5 <host[:port]>\n"
-, stdout);
- fputs(
" Use the specified SOCKS5 proxy - but resolve the host name\n"
" locally. If the port number is not specified, it is assumed at\n"
" port 1080.\n"
@@ -2219,10 +2245,10 @@ void hugehelp(void)
" 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 proxy with -x, --proxy using a socks5:// protocol prefix.\n"
, stdout);
fputs(
+" 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"
" If this option is used several times, the last one will be used.\n"
" (This option was previously wrongly documented and used as\n"
" --socks without the number appended.)\n"
@@ -2230,33 +2256,33 @@ void hugehelp(void)
" This option (as well as --socks4) does not work with IPV6, FTPS\n"
" or LDAP.\n"
"\n"
+, stdout);
+ fputs(
" --socks5-gssapi-service <servicename>\n"
" The default service name for a socks server is rcmd/server-fqdn.\n"
" This option allows you to change it.\n"
"\n"
-, stdout);
- fputs(
" Examples: --socks5 proxy-name --socks5-gssapi-service sockd\n"
" would use sockd/proxy-name --socks5 proxy-name --socks5-gssapi-\n"
" service sockd/real-name would use sockd/real-name for cases\n"
" where the proxy-name does not match the principal name. (Added\n"
+, stdout);
+ fputs(
" in 7.19.4).\n"
"\n"
" --socks5-gssapi-nec\n"
" As part of the GSS-API negotiation a protection mode is negoti-\n"
-, stdout);
- fputs(
" ated. RFC 1961 says in section 4.3/4.4 it should be protected,\n"
" but the NEC reference implementation does not. The option\n"
" --socks5-gssapi-nec allows the unprotected exchange of the pro-\n"
" tection mode negotiation. (Added in 7.19.4).\n"
"\n"
" --stderr <file>\n"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" -t, --telnet-option <OPT=val>\n"
@@ -2266,31 +2292,31 @@ void hugehelp(void)
"\n"
" XDISPLOC=<X display> Sets the X display location.\n"
"\n"
+, stdout);
+ fputs(
" NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
" -T, --upload-file <file>\n"
" This transfers the specified local file to the remote URL. If\n"
-, stdout);
- fputs(
" 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"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" 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\n"
+, stdout);
+ fputs(
" uploaded.\n"
"\n"
" You can specify one -T for each URL on the command line. Each -T\n"
-, stdout);
- fputs(
" + URL pair specifies what to upload and to where. curl also sup-\n"
" ports \"globbing\" of the -T argument, meaning that you can upload\n"
" multiple files to a single URL by using the same URL globbing\n"
@@ -2300,11 +2326,11 @@ void hugehelp(void)
"\n"
" or even\n"
"\n"
+, stdout);
+ fputs(
" curl -T \"img[1-1000].png\" ftp://ftp.picturemania.com/upload/\n"
"\n"
" --tcp-nodelay\n"
-, stdout);
- fputs(
" Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n"
" page for details about this option. (Added in 7.11.2)\n"
"\n"
@@ -2313,10 +2339,10 @@ void hugehelp(void)
" size that curl will try to use when transferring data to or from\n"
" a TFTP server. By default 512 bytes will be used.\n"
"\n"
-" If this option is used several times, the last one will be used.\n"
-"\n"
, stdout);
fputs(
+" If this option is used several times, the last one will be used.\n"
+"\n"
" (Added in 7.20.0)\n"
"\n"
" --tlsauthtype <authtype>\n"
@@ -2326,9 +2352,9 @@ void hugehelp(void)
" option defaults to \"SRP\". (Added in 7.21.4)\n"
"\n"
" --tlspassword <password>\n"
-" Set password for use with the TLS authentication method speci-\n"
, stdout);
fputs(
+" Set password for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
" (Added in 7.21.4)\n"
"\n"
@@ -2338,12 +2364,12 @@ void hugehelp(void)
" set. (Added in 7.21.4)\n"
"\n"
" --tlsv1.0\n"
+, stdout);
+ fputs(
" (SSL) Forces curl to use TLS version 1.0 when negotiating with a\n"
" remote TLS server. (Added in 7.34.0)\n"
"\n"
" --tlsv1.1\n"
-, stdout);
- fputs(
" (SSL) Forces curl to use TLS version 1.1 when negotiating with a\n"
" remote TLS server. (Added in 7.34.0)\n"
"\n"
@@ -2352,12 +2378,12 @@ void hugehelp(void)
" remote TLS server. (Added in 7.34.0)\n"
"\n"
" --tr-encoding\n"
+, stdout);
+ fputs(
" (HTTP) Request a compressed Transfer-Encoding response using one\n"
" of the algorithms curl supports, and uncompress the data while\n"
" receiving it.\n"
"\n"
-, stdout);
- fputs(
" (Added in 7.21.6)\n"
"\n"
" --trace <file>\n"
@@ -2365,29 +2391,31 @@ void hugehelp(void)
" including descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout.\n"
"\n"
+, stdout);
+ fputs(
" This option overrides previous uses of -v, --verbose or --trace-\n"
" ascii.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --trace-ascii <file>\n"
-, stdout);
- fputs(
" Enables a full trace dump of all incoming and outgoing data,\n"
" including descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout.\n"
"\n"
+, stdout);
+ fputs(
" 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"
"\n"
-, stdout);
- fputs(
" This option overrides previous uses of -v, --verbose or --trace.\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --trace-time\n"
" Prepends a time stamp to each trace or verbose line that curl\n"
+, stdout);
+ fputs(
" displays. (Added in 7.14.0)\n"
"\n"
" --unix-socket <path>\n"
@@ -2395,73 +2423,71 @@ void hugehelp(void)
" the network. (Added in 7.40.0)\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"
" password.\n"
"\n"
+, stdout);
+ fputs(
" 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"
-, 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"
+, stdout);
+ fputs(
" don't 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(
" forest in your setup for example.\n"
"\n"
" To specify the domain name use either Down-Level Logon Name or\n"
" UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n"
" user@example.com respectively.\n"
"\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"
-, stdout);
- fputs(
" ronment by specifying a single colon with this option: \"-u :\".\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -U, --proxy-user <user:password>\n"
+, stdout);
+ fputs(
" 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\n"
" Negotiate or NTLM authentication then you can tell curl to\n"
-, stdout);
- fputs(
" select the user name and password from your environment by spec-\n"
" ifying a single colon with this option: \"-U :\".\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --url <URL>\n"
+, stdout);
+ fputs(
" Specify a URL to fetch. This option is mostly handy when you\n"
" want to specify URL(s) in a config file.\n"
"\n"
" This option may be used any number of times. To control where\n"
-, stdout);
- fputs(
" this URL is written, use the -o, --output or the -O, --remote-\n"
" name options.\n"
" -v, --verbose\n"
" Be more verbose/talkative during the operation. Useful for\n"
" debugging and seeing what's going on \"under the hood\". A line\n"
-" starting with '>' means \"header data\" sent by curl, '<' means\n"
-" \"header data\" received by curl that is hidden in normal cases,\n"
, stdout);
fputs(
+" starting with '>' means \"header data\" sent by curl, '<' means\n"
+" \"header data\" received by curl that is hidden in normal cases,\n"
" and a line starting with '*' means additional info provided by\n"
" curl.\n"
"\n"
@@ -2469,32 +2495,32 @@ void hugehelp(void)
" --include might be the option you're looking for.\n"
"\n"
" If you think this option still doesn't give you enough details,\n"
+, stdout);
+ fputs(
" consider using --trace or --trace-ascii instead.\n"
"\n"
" This option overrides previous uses of --trace-ascii or --trace.\n"
"\n"
-, stdout);
- fputs(
" Use -s, --silent to make curl quiet.\n"
"\n"
" -w, --write-out <format>\n"
" Make curl display information on stdout after a completed trans-\n"
" 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"
, stdout);
fputs(
+" 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"
" 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"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" NOTE: The %-symbol is a special symbol in the win32-environment,\n"
" where all occurrences of % must be doubled when using this\n"
" option.\n"
@@ -2502,60 +2528,62 @@ void hugehelp(void)
" The variables available are:\n"
"\n"
" content_type The Content-Type of the requested document, if\n"
+, stdout);
+ fputs(
" there was any.\n"
"\n"
" filename_effective\n"
" The ultimate filename that curl writes out to.\n"
-, stdout);
- fputs(
" This is only meaningful if curl is told to write\n"
" to a file with the --remote-name or --output\n"
" option. It's most useful in combination with the\n"
" --remote-header-name option. (Added in 7.25.1)\n"
"\n"
+, stdout);
+ fputs(
" 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"
"\n"
-, stdout);
- fputs(
" http_code The numerical response code that was found in the\n"
" last retrieved HTTP(S) or FTP(s) transfer. In\n"
" 7.18.2 the alias response_code was added to show\n"
" the same info.\n"
"\n"
+, stdout);
+ fputs(
" http_connect The numerical code that was found in the last\n"
" response (from a proxy) to a curl CONNECT\n"
" request. (Added in 7.12.4)\n"
"\n"
-, stdout);
- fputs(
" local_ip The IP address of the local end of the most\n"
" recently done connection - can be either IPv4 or\n"
" IPv6 (Added in 7.29.0)\n"
"\n"
+, stdout);
+ fputs(
" local_port The local port number of the most recently done\n"
" connection (Added in 7.29.0)\n"
"\n"
" num_connects Number of new connects made in the recent trans-\n"
" fer. (Added in 7.12.3)\n"
"\n"
-, stdout);
- fputs(
" num_redirects Number of redirects that were followed in the\n"
" request. (Added in 7.12.3)\n"
"\n"
" redirect_url When an HTTP request was made without -L to fol-\n"
+, stdout);
+ fputs(
" low redirects, this variable will show the actual\n"
" URL a redirect would take you to. (Added in\n"
" 7.18.2)\n"
"\n"
" remote_ip The remote IP address of the most recently done\n"
-, stdout);
- fputs(
" connection - can be either IPv4 or IPv6 (Added in\n"
" 7.29.0)\n"
"\n"
" remote_port The remote port number of the most recently done\n"
+, stdout);
+ fputs(
" connection (Added in 7.29.0)\n"
"\n"
" size_download The total amount of bytes that were downloaded.\n"
@@ -2563,35 +2591,35 @@ void hugehelp(void)
" size_header The total amount of bytes of the downloaded head-\n"
" ers.\n"
"\n"
-, stdout);
- fputs(
" 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"
"\n"
+, stdout);
+ fputs(
" speed_download The average download speed that curl measured for\n"
" the complete download. Bytes per second.\n"
"\n"
" speed_upload The average upload speed that curl measured for\n"
" the complete upload. Bytes per second.\n"
"\n"
-, stdout);
- fputs(
" ssl_verify_result\n"
" The result of the SSL peer certificate verifica-\n"
" tion that was requested. 0 means the verification\n"
+, stdout);
+ fputs(
" was successful. (Added in 7.19.0)\n"
"\n"
" time_appconnect\n"
" The time, in seconds, it took from the start\n"
" until the SSL/SSH/etc connect/handshake to the\n"
-, stdout);
- fputs(
" remote host was completed. (Added in 7.19.0)\n"
"\n"
" time_connect The time, in seconds, it took from the start\n"
" until the TCP connect to the remote host (or\n"
+, stdout);
+ fputs(
" proxy) was completed.\n"
"\n"
" time_namelookup\n"
@@ -2599,52 +2627,52 @@ void hugehelp(void)
" until the name resolving was completed.\n"
"\n"
" time_pretransfer\n"
-, stdout);
- fputs(
" The time, in seconds, it took from the start\n"
" until the file transfer was just about to begin.\n"
" This includes all pre-transfer commands and nego-\n"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" steps include name lookup, connect, pretransfer\n"
" and transfer before the final transaction was\n"
" started. time_redirect shows the complete execu-\n"
+, stdout);
+ fputs(
" tion time for multiple redirections. (Added in\n"
" 7.12.3)\n"
"\n"
" time_starttransfer\n"
" The time, in seconds, it took from the start\n"
-, stdout);
- fputs(
" until 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\n"
+, stdout);
+ fputs(
" result.\n"
"\n"
" time_total The total time, in seconds, that the full opera-\n"
" tion lasted. The time will be displayed with mil-\n"
" lisecond resolution.\n"
"\n"
-, stdout);
- fputs(
" url_effective The URL that was fetched last. This is most mean-\n"
" ingful if you've told curl to follow location:\n"
" headers.\n"
"\n"
-" If this option is used several times, the last one will be used.\n"
+, stdout);
+ fputs(
+" If this option is used several times, the last one will be used.\n"
"\n"
" -x, --proxy <[protocol://][user:password@]proxyhost[:port]>\n"
" Use the specified proxy.\n"
"\n"
" The proxy string can be specified with a protocol:// prefix to\n"
-, stdout);
- fputs(
" specify alternative proxy protocols. Use socks4://, socks4a://,\n"
" socks5:// or socks5h:// to request the specific SOCKS version to\n"
+, stdout);
+ fputs(
" be used. No protocol specified, http:// and all others will be\n"
" treated as HTTP proxies. (The protocol support was added in curl\n"
" 7.21.7)\n"
@@ -2652,128 +2680,126 @@ void hugehelp(void)
" 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"
+, stdout);
+ fputs(
" 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(
" if you can tunnel through the proxy, as one with the -p, --prox-\n"
" ytunnel option.\n"
"\n"
" User and password that might be provided in the proxy string are\n"
+, stdout);
+ fputs(
" 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(
" and the embedded user + password.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -X, --request <command>\n"
+, stdout);
+ fputs(
" (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"
" GET). Read the HTTP 1.1 specification for details and explana-\n"
-, stdout);
- fputs(
" tions. Common additional HTTP requests include PUT and DELETE,\n"
" but related technologies like WebDAV offers PROPFIND, COPY, MOVE\n"
" and more.\n"
"\n"
+, stdout);
+ fputs(
" Normally you don't need this option. All sorts of GET, HEAD,\n"
" POST and PUT requests are rather invoked by using dedicated com-\n"
" mand line options.\n"
"\n"
" This option only changes the actual word used in the HTTP\n"
-, stdout);
- fputs(
" request, it does not alter the way curl behaves. So for example\n"
" if you want to make a proper HEAD request, using -X HEAD will\n"
" not suffice. You need to use the -I, --head option.\n"
"\n"
+, stdout);
+ fputs(
" The method string you set with -X will be used for all requests,\n"
" which if you for example use -L, --location may cause unintended\n"
" side-effects when curl doesn't change request method according\n"
-, stdout);
- fputs(
" 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"
+, stdout);
+ fputs(
" RETR. (Added in 7.26.0)\n"
"\n"
" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
" (Added in 7.30.0)\n"
"\n"
" (SMTP) Specifies a custom SMTP command to use instead of HELP or\n"
-, stdout);
- fputs(
" VRFY. (Added in 7.34.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --xattr\n"
" When saving output to a file, this option tells curl to store\n"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" file system does not support extended attributes, a warning is\n"
" issued.\n"
"\n"
" -y, --speed-time <time>\n"
" If a download is slower than speed-limit bytes per second during\n"
+, stdout);
+ fputs(
" a speed-time period, the download gets aborted. If speed-time is\n"
" used, the default speed-limit will be 1 unless set with -Y.\n"
"\n"
" This option controls transfers and thus will not affect slow\n"
-, stdout);
- fputs(
" 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"
" -Y, --speed-limit <speed>\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 and is 30 if not set.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" -z, --time-cond <date expression>|<file>\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"
-" if it doesn't match any internal ones, it is taken as a filename\n"
, stdout);
fputs(
+" time. The <date expression> can be all sorts of date strings or\n"
+" 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>\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"
+, 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"
-, stdout);
- fputs(
" -h, --help\n"
" Usage help. This lists all current command line options with a\n"
" short description.\n"
@@ -2783,11 +2809,11 @@ void hugehelp(void)
"\n"
" -V, --version\n"
" Displays information about curl and the libcurl version it uses.\n"
+, stdout);
+ fputs(
" 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"
@@ -2796,11 +2822,11 @@ void hugehelp(void)
"\n"
" IPv6 You can use IPv6 with this.\n"
"\n"
+, stdout);
+ fputs(
" krb4 Krb4 for FTP is supported.\n"
"\n"
" SSL SSL versions of various protocols are supported, such as\n"
-, stdout);
- fputs(
" HTTPS, FTPS, POP3S and so on.\n"
"\n"
" libz Automatic decompression of compressed files over HTTP is\n"
@@ -2809,12 +2835,12 @@ void hugehelp(void)
" NTLM NTLM authentication is supported.\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"
" AsynchDNS\n"
-, stdout);
- fputs(
" This curl uses asynchronous name resolves. Asynchronous\n"
" name resolves can be done using either the c-ares or the\n"
" threaded resolver backends.\n"
@@ -2822,14 +2848,14 @@ void hugehelp(void)
" SPNEGO SPNEGO authentication is supported.\n"
"\n"
" Largefile\n"
+, stdout);
+ fputs(
" This curl supports transfers of large files, files larger\n"
" than 2GB.\n"
"\n"
" IDN This curl supports IDN - international domain names.\n"
"\n"
" GSS-API\n"
-, stdout);
- fputs(
" GSS-API is supported.\n"
"\n"
" SSPI SSPI is supported.\n"
@@ -2840,11 +2866,11 @@ void hugehelp(void)
"\n"
" HTTP2 HTTP/2 support has been built-in.\n"
"\n"
+, stdout);
+ fputs(
" Metalink\n"
" This curl supports Metalink (both version 3 and 4 (RFC\n"
" 5854)), which describes mirrors and hashes. curl will\n"
-, stdout);
- fputs(
" use mirrors for failover if there are errors (such as the\n"
" file or server not being available).\n"
"\n"
@@ -2854,11 +2880,11 @@ void hugehelp(void)
"\n"
"ENVIRONMENT\n"
" The environment variables can be specified in lower case or upper case.\n"
+, stdout);
+ fputs(
" 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 the --proxy option.\n"
"\n"
@@ -2868,9 +2894,9 @@ void hugehelp(void)
" 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(
+" 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"
@@ -2880,11 +2906,11 @@ void hugehelp(void)
"\n"
" NO_PROXY <comma-separated list of hosts>\n"
" list of host names that shouldn't go through any proxy. If set\n"
+, stdout);
+ fputs(
" to a asterisk '*' only, it matches all hosts.\n"
"\n"
"PROXY PROTOCOL PREFIXES\n"
-, stdout);
- fputs(
" Since curl version 7.21.7, the proxy string may be specified with a\n"
" protocol:// prefix to specify alternative proxy protocols.\n"
"\n"
@@ -2895,11 +2921,11 @@ void hugehelp(void)
" The supported proxy protocol prefixes are as follows:\n"
"\n"
" socks4://\n"
+, stdout);
+ fputs(
" Makes it the equivalent of --socks4\n"
"\n"
" socks4a://\n"
-, stdout);
- fputs(
" Makes it the equivalent of --socks4a\n"
"\n"
" socks5://\n"
@@ -2913,9 +2939,9 @@ void hugehelp(void)
" error messages that may appear during bad conditions. At the time of\n"
" this writing, the exit codes are:\n"
"\n"
-" 1 Unsupported protocol. This build of curl has no support for this\n"
, stdout);
fputs(
+" 1 Unsupported protocol. This build of curl has no support for this\n"
" protocol.\n"
"\n"
" 2 Failed to initialize.\n"
@@ -2927,11 +2953,11 @@ void hugehelp(void)
" time. To make curl able to do this, you probably need another\n"
" build of libcurl!\n"
"\n"
+, stdout);
+ fputs(
" 5 Couldn't resolve proxy. The given proxy host could not be\n"
" resolved.\n"
"\n"
-, stdout);
- fputs(
" 6 Couldn't resolve host. The given remote host was not resolved.\n"
"\n"
" 7 Failed to connect to host.\n"
@@ -2941,11 +2967,11 @@ void hugehelp(void)
"\n"
" 9 FTP access denied. The server denied login or denied access to\n"
" the particular resource or directory you wanted to reach. Most\n"
+, stdout);
+ fputs(
" often you tried to change to a directory that doesn't exist on\n"
" the server.\n"
"\n"
-, stdout);
- fputs(
" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n"
" PASS request.\n"
"\n"
@@ -2955,11 +2981,11 @@ void hugehelp(void)
" 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n"
" server sent.\n"
"\n"
+, stdout);
+ fputs(
" 15 FTP can't get host. Couldn't resolve the host IP we got in the\n"
" 227-line.\n"
"\n"
-, stdout);
- fputs(
" 17 FTP couldn't set binary. Couldn't change transfer method to\n"
" binary.\n"
"\n"
@@ -2969,9 +2995,9 @@ void hugehelp(void)
" 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\n"
, stdout);
fputs(
+" 22 HTTP page not retrieved. The requested url was not found or\n"
" returned another error with the HTTP error code being 400 or\n"
" above. This return code only appears if -f, --fail is used.\n"
"\n"
@@ -2981,12 +3007,12 @@ void hugehelp(void)
" 25 FTP couldn't STOR file. The server denied the STOR operation,\n"
" used for FTP uploading.\n"
"\n"
+, stdout);
+ fputs(
" 26 Read error. Various reading problems.\n"
"\n"
" 27 Out of memory. A memory allocation request failed.\n"
"\n"
-, stdout);
- fputs(
" 28 Operation timeout. The specified time-out period was reached\n"
" according to the conditions.\n"
"\n"
@@ -2994,13 +3020,13 @@ void hugehelp(void)
" support the PORT command, try doing a transfer using PASV\n"
" instead!\n"
"\n"
+, stdout);
+ fputs(
" 31 FTP couldn't 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"
"\n"
-, stdout);
- fputs(
" 34 HTTP post error. Internal post-request generation error.\n"
"\n"
" 35 SSL connect error. The SSL handshaking failed.\n"
@@ -3008,6 +3034,8 @@ void hugehelp(void)
" 36 FTP bad download resume. Couldn't continue an earlier aborted\n"
" download.\n"
"\n"
+, stdout);
+ fputs(
" 37 FILE couldn't read file. Failed to open the file. Permissions?\n"
"\n"
" 38 LDAP cannot bind. LDAP bind operation failed.\n"
@@ -3016,13 +3044,13 @@ void hugehelp(void)
"\n"
" 41 Function not found. A required LDAP function was not found.\n"
"\n"
-, stdout);
- fputs(
" 42 Aborted by callback. An application told curl to abort the oper-\n"
" ation.\n"
"\n"
" 43 Internal error. A function was called with a bad parameter.\n"
"\n"
+, stdout);
+ fputs(
" 45 Interface error. A specified outgoing interface could not be\n"
" used.\n"
"\n"
@@ -3030,13 +3058,13 @@ void hugehelp(void)
" mum amount.\n"
"\n"
" 48 Unknown option specified to libcurl. This indicates that you\n"
-, stdout);
- fputs(
" passed a weird option to curl that was passed on to libcurl and\n"
" rejected. Read up in the manual!\n"
"\n"
" 49 Malformed telnet option.\n"
"\n"
+, stdout);
+ fputs(
" 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"
@@ -3048,14 +3076,14 @@ void hugehelp(void)
"\n"
" 55 Failed sending network data.\n"
"\n"
-, stdout);
- fputs(
" 56 Failure in receiving network data.\n"
"\n"
" 58 Problem with the local certificate.\n"
"\n"
" 59 Couldn't use specified SSL cipher.\n"
"\n"
+, stdout);
+ fputs(
" 60 Peer certificate cannot be authenticated with known CA certifi-\n"
" cates.\n"
"\n"
@@ -3069,13 +3097,13 @@ void hugehelp(void)
"\n"
" 65 Sending the data requires a rewind that failed.\n"
"\n"
-, stdout);
- fputs(
" 66 Failed to initialise SSL Engine.\n"
"\n"
" 67 The user name, password, or similar was not accepted and curl\n"
" failed to log in.\n"
"\n"
+, stdout);
+ fputs(
" 68 File not found on TFTP server.\n"
"\n"
" 69 Permission problem on TFTP server.\n"
@@ -3090,14 +3118,14 @@ void hugehelp(void)
"\n"
" 74 No such user (TFTP).\n"
"\n"
-, stdout);
- fputs(
" 75 Character conversion failed.\n"
"\n"
" 76 Character conversion functions required.\n"
"\n"
" 77 Problem with reading the SSL CA cert (path? access rights?).\n"
"\n"
+, stdout);
+ fputs(
" 78 The resource referenced in the URL does not exist.\n"
"\n"
" 79 An unspecified error occurred during the SSH session.\n"
@@ -3107,8 +3135,6 @@ void hugehelp(void)
" 82 Could not load CRL file, missing or wrong format (added in\n"
" 7.19.0).\n"
"\n"
-, stdout);
- fputs(
" 83 Issuer check failed (added in 7.19.0).\n"
"\n"
" 84 The FTP PRET command failed\n"
@@ -3117,6 +3143,8 @@ void hugehelp(void)
"\n"
" 86 RTSP: mismatch of Session Identifiers\n"
"\n"
+, stdout);
+ fputs(
" 87 unable to parse FTP file list\n"
"\n"
" 88 FTP chunk callback reported error\n"
@@ -3125,13 +3153,13 @@ void hugehelp(void)
"\n"
" 90 SSL public key does not matched pinned public key\n"
"\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"
+, stdout);
+ fputs(
" is found in the separate THANKS file.\n"
"\n"
"WWW\n"
@@ -3146,8 +3174,6 @@ void hugehelp(void)
"LATEST VERSION\n"
"\n"
" You always find news about what's going on as well as the latest versions\n"
-, stdout);
- fputs(
" from the curl web pages, located at:\n"
"\n"
" http://curl.haxx.se\n"
@@ -3159,6 +3185,8 @@ void hugehelp(void)
" curl http://www.netscape.com/\n"
"\n"
" Get the README file the user's home directory at funet's ftp-server:\n"
+, stdout);
+ fputs(
"\n"
" curl ftp://ftp.funet.fi/README\n"
"\n"
@@ -3170,8 +3198,6 @@ void hugehelp(void)
"\n"
" curl ftp://cool.haxx.se/\n"
"\n"
-, stdout);
- fputs(
" Get the definition of curl from a dictionary:\n"
"\n"
" curl dict://dict.org/m:curl\n"
@@ -3184,6 +3210,8 @@ void hugehelp(void)
"\n"
" curl ftps://files.are.secure.com/secrets.txt\n"
"\n"
+, stdout);
+ fputs(
" or use the more appropriate FTPS way to get the same file:\n"
"\n"
" curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n"
@@ -3192,8 +3220,6 @@ void hugehelp(void)
"\n"
" curl -u username sftp://example.com/etc/issue\n"
"\n"
-, stdout);
- fputs(
" Get a file from an SSH server using SCP using a private key\n"
" (not password-protected) to authenticate:\n"
"\n"
@@ -3201,6 +3227,8 @@ void hugehelp(void)
" scp://example.com/~/file.txt\n"
"\n"
" Get a file from an SSH server using SCP using a private key\n"
+, stdout);
+ fputs(
" (password-protected) to authenticate:\n"
"\n"
" curl -u username: --key ~/.ssh/id_rsa --pass private_key_password \\\n"
@@ -3208,8 +3236,6 @@ void hugehelp(void)
"\n"
" Get the main page from an IPv6 web server:\n"
"\n"
-, stdout);
- fputs(
" curl \"http://[2001:1890:1112:1::20]/\"\n"
"\n"
" Get a file from an SMB server:\n"
@@ -3220,14 +3246,14 @@ void hugehelp(void)
"\n"
" Get a web page and store in a local file with a specific name:\n"
"\n"
+, stdout);
+ fputs(
" curl -o thatpage.html http://www.netscape.com/\n"
"\n"
" Get a web page and store in a local file, make the local file get the name\n"
" of the remote document (if no file name part is specified in the URL, this\n"
" will fail):\n"
"\n"
-, stdout);
- fputs(
" curl -O http://www.netscape.com/index.html\n"
"\n"
" Fetch two files and store them with their remote names:\n"
@@ -3240,6 +3266,8 @@ void hugehelp(void)
"\n"
" To ftp files using name+passwd, include them in the URL like:\n"
"\n"
+, stdout);
+ fputs(
" curl ftp://name:passwd@machine.domain:port/full/path/to/file\n"
"\n"
" or specify them with the -u flag like\n"
@@ -3248,8 +3276,6 @@ void hugehelp(void)
"\n"
" FTPS\n"
"\n"
-, stdout);
- fputs(
" It is just like for FTP, but you may also want to specify and use\n"
" SSL-specific options for certificates etc.\n"
"\n"
@@ -3257,16 +3283,18 @@ void hugehelp(void)
" standards while the recommended \"explicit\" way is done by using FTP:// and\n"
" the --ftp-ssl option.\n"
"\n"
+, stdout);
+ fputs(
" SFTP / SCP\n"
"\n"
" This is similar to FTP, but you can use the --key option to specify a\n"
" private key to use instead of a password. Note that the private key may\n"
-, stdout);
- fputs(
" itself be protected by a password that is unrelated to the login password\n"
" of the remote system; this password is specified using the --pass option.\n"
" Typically, curl will automatically extract the public key from the private\n"
" key file, but in cases where curl does not have the proper library support,\n"
+, stdout);
+ fputs(
" a matching public key file must be specified using the --pubkey option.\n"
"\n"
" HTTP\n"
@@ -3274,8 +3302,6 @@ void hugehelp(void)
" Curl also supports user and password in HTTP URLs, thus you can pick a file\n"
" like:\n"
"\n"
-, stdout);
- fputs(
" curl http://name:passwd@machine.domain/full/path/to/file\n"
"\n"
" or specify user and password separately like in\n"
@@ -3283,16 +3309,18 @@ void hugehelp(void)
" curl -u name:passwd http://machine.domain/full/path/to/file\n"
"\n"
" HTTP offers many different methods of authentication and curl supports\n"
+, stdout);
+ fputs(
" several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which\n"
" method to use, curl defaults to Basic. You can also ask curl to pick the\n"
" most secure ones out of the ones that the server accepts for the given URL,\n"
-, stdout);
- fputs(
" by using --anyauth.\n"
"\n"
" NOTE! According to the URL specification, HTTP URLs can not contain a user\n"
" and password, so that style will not work when using curl via a proxy, even\n"
" though curl allows it at other times. When using a proxy, you _must_ use\n"
+, stdout);
+ fputs(
" the -u style for user and password.\n"
"\n"
" HTTPS\n"
@@ -3302,13 +3330,13 @@ void hugehelp(void)
"PROXY\n"
"\n"
" curl supports both HTTP and SOCKS proxy servers, with optional authentication.\n"
-, stdout);
- fputs(
" It does not have special support for FTP proxy servers since there are no\n"
" standards for those, but it can still be made to work with many of them. You\n"
" can also use both HTTP and SOCKS proxies to transfer files to and from FTP\n"
" servers.\n"
"\n"
+, stdout);
+ fputs(
" Get an ftp file using an HTTP proxy named my-proxy that uses port 888:\n"
"\n"
" curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n"
@@ -3316,22 +3344,20 @@ void hugehelp(void)
" Get a file from an HTTP server that requires user and password, using the\n"
" same proxy as above:\n"
"\n"
-, stdout);
- fputs(
" curl -u user:passwd -x my-proxy:888 http://www.get.this/\n"
"\n"
" Some proxies require special authentication. Specify by using -U as above:\n"
"\n"
" curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
"\n"
+, stdout);
+ fputs(
" A comma-separated list of hosts and domains which do not use the proxy can\n"
" be specified as:\n"
"\n"
" curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/\n"
"\n"
" If the proxy is specified with --proxy1.0 instead of --proxy or -x, then\n"
-, stdout);
- fputs(
" curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.\n"
"\n"
" curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n"
@@ -3339,24 +3365,24 @@ void hugehelp(void)
" See also the environment variables Curl supports that offer further proxy\n"
" control.\n"
"\n"
+, stdout);
+ fputs(
" Most FTP proxy servers are set up to appear as a normal FTP server from the\n"
" client's perspective, with special commands to select the remote FTP server.\n"
" curl supports the -u, -Q and --ftp-account options that can be used to\n"
-, stdout);
- fputs(
" set up transfers through many FTP proxies. For example, a file can be\n"
" uploaded to a remote FTP server using a Blue Coat FTP proxy with the\n"
" options:\n"
"\n"
" curl -u \"Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass\" \\\n"
+, stdout);
+ fputs(
" --ftp-account Proxy-Password --upload-file local-file \\\n"
" ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
"\n"
" See the manual for your FTP proxy to determine the form it expects to set up\n"
" transfers, and curl's -v option to see exactly what curl is sending.\n"
"\n"
-, stdout);
- fputs(
"RANGES\n"
"\n"
" HTTP 1.1 introduced byte-ranges. Using this, a client can request\n"
@@ -3365,6 +3391,8 @@ void hugehelp(void)
"\n"
" Get the first 100 bytes of a document:\n"
"\n"
+, stdout);
+ fputs(
" curl -r 0-99 http://www.get.this/\n"
"\n"
" Get the last 500 bytes of a document:\n"
@@ -3374,8 +3402,6 @@ void hugehelp(void)
" Curl also supports simple ranges for FTP files as well. Then you can only\n"
" specify start and stop position.\n"
"\n"
-, stdout);
- fputs(
" Get the first 100 bytes of a document using FTP:\n"
"\n"
" curl -r 0-99 ftp://www.get.this/README\n"
@@ -3388,6 +3414,8 @@ void hugehelp(void)
"\n"
" curl -T - ftp://ftp.upload.com/myfile\n"
"\n"
+, stdout);
+ fputs(
" Upload data from a specified file, login with user and password:\n"
"\n"
" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n"
@@ -3395,8 +3423,6 @@ void hugehelp(void)
" Upload a local file to the remote site, and use the local file name at the remote\n"
" site too:\n"
"\n"
-, stdout);
- fputs(
" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n"
"\n"
" Upload a local file to get appended to the remote file:\n"
@@ -3404,6 +3430,8 @@ void hugehelp(void)
" curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
"\n"
" Curl also supports ftp upload through a proxy, but only if the proxy is\n"
+, stdout);
+ fputs(
" configured to allow that kind of tunneling. If it does, you can run curl in\n"
" a fashion similar to:\n"
"\n"
@@ -3412,8 +3440,6 @@ void hugehelp(void)
"SMB / SMBS\n"
"\n"
" curl -T file.txt -u \"domain\\username:passwd\" \n"
-, stdout);
- fputs(
" smb://server.example.com/share/\n"
"\n"
" HTTP\n"
@@ -3425,20 +3451,22 @@ void hugehelp(void)
" Note that the HTTP server must have been configured to accept PUT before\n"
" this can be done successfully.\n"
"\n"
+, stdout);
+ fputs(
" For other ways to do HTTP data upload, see the POST section below.\n"
"\n"
"VERBOSE / DEBUG\n"
"\n"
" If curl fails where it isn't supposed to, if the servers don't let you in,\n"
" if you can't understand the responses: use the -v flag to get verbose\n"
-, stdout);
- fputs(
" fetching. Curl will output lots of info and what it sends and receives in\n"
" order to let the user see all client-server interaction (but it won't show\n"
" you the actual data).\n"
"\n"
" curl -v ftp://ftp.upload.com/\n"
"\n"
+, stdout);
+ fputs(
" To get even more details and information on what curl does, try using the\n"
" --trace or --trace-ascii options with a given file name to log to, like\n"
" this:\n"
@@ -3448,23 +3476,23 @@ void hugehelp(void)
"\n"
"DETAILED INFORMATION\n"
"\n"
-, stdout);
- fputs(
" Different protocols provide different ways of getting detailed information\n"
" about specific files/documents. To get curl to show detailed information\n"
" about a single file, you should use -I/--head option. It displays all\n"
+, stdout);
+ fputs(
" available info on a single file for HTTP and FTP. The HTTP information is a\n"
" lot more extensive.\n"
"\n"
" For HTTP, you can get the header information (the same as -I would show)\n"
" shown before the data by using -i/--include. Curl understands the\n"
-, stdout);
- fputs(
" -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
" will then store the headers in the specified file.\n"
"\n"
" Store the HTTP headers in a separate file (headers.txt in the example):\n"
"\n"
+, stdout);
+ fputs(
" curl --dump-header headers.txt curl.haxx.se\n"
"\n"
" Note that headers stored in a separate file can be very useful at a later\n"
@@ -3473,14 +3501,14 @@ void hugehelp(void)
"\n"
"POST (HTTP)\n"
"\n"
-, stdout);
- fputs(
" It's easy to post data using curl. This is done using the -d <data>\n"
" option. The post data must be urlencoded.\n"
"\n"
" Post a simple \"name\" and \"phone\" guestbook.\n"
"\n"
" curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
+, stdout);
+ fputs(
" http://www.where.com/guest.cgi\n"
"\n"
" How to post a form with curl, lesson #1:\n"
@@ -3488,19 +3516,17 @@ void hugehelp(void)
" Dig out all the <input> tags in the form that you want to fill in. (There's\n"
" a perl program called formfind.pl on the curl site that helps with this).\n"
"\n"
-, stdout);
- fputs(
" If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n"
" string\", which is in the format\n"
"\n"
" <variable1>=<data1>&<variable2>=<data2>&...\n"
"\n"
" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
+, stdout);
+ fputs(
" the data is the contents you want to fill in for the inputs. The data *must*\n"
" be properly URL encoded. That means you replace space with + and that you\n"
" replace weird letters with %XX where XX is the hexadecimal representation of\n"
-, stdout);
- fputs(
" the letter's ASCII code.\n"
"\n"
" Example:\n"
@@ -3510,6 +3536,8 @@ void hugehelp(void)
" <form action=\"post.cgi\" method=\"post\">\n"
" <input name=user size=10>\n"
" <input name=pass type=password size=10>\n"
+, stdout);
+ fputs(
" <input name=id type=hidden value=\"blablabla\">\n"
" <input name=ding value=\"submit\">\n"
" </form>\n"
@@ -3518,49 +3546,47 @@ void hugehelp(void)
"\n"
" To post to this, you enter a curl command line like:\n"
"\n"
-, stdout);
- fputs(
" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n"
" http://www.formpost.com/getthis/post.cgi\n"
"\n"
"\n"
" While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
+, stdout);
+ fputs(
" understood by CGI's and similar, curl also supports the more capable\n"
" multipart/form-data type. This latter type supports things like file upload.\n"
"\n"
" -F accepts parameters like -F \"name=contents\". If you want the contents to\n"
-, stdout);
- fputs(
" be read from a file, use <@filename> as contents. When specifying a file,\n"
" you can also specify the file content type by appending ';type=<mime type>'\n"
" to the file name. You can also post the contents of several files in one\n"
+, stdout);
+ fputs(
" field. For example, the field name 'coolfiles' is used to send three files,\n"
" with different content types using the following syntax:\n"
"\n"
" curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
" http://www.post.com/postit.cgi\n"
"\n"
-, stdout);
- fputs(
" If the content-type is not specified, curl will try to guess from the file\n"
" extension (it only knows a few), or use the previously specified type (from\n"
" an earlier file if several files are specified in a list) or else it will\n"
+, stdout);
+ fputs(
" use the default type 'application/octet-stream'.\n"
"\n"
" Emulate a fill-in form with -F. Let's say you fill in three fields in a\n"
" form. One field is a file name which to post, one field is your name and one\n"
-, stdout);
- fputs(
" field is a file description. We want to post the file we have written named\n"
" \"cooltext.txt\". To let curl do the posting of this data instead of your\n"
" favourite browser, you have to read the HTML source of the form page and\n"
+, stdout);
+ fputs(
" find the names of the input fields. In our example, the input field names\n"
" are 'file', 'yourname' and 'filedescription'.\n"
"\n"
" curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n"
" -F \"filedescription=Cool text file with cool text inside\" \\\n"
-, stdout);
- fputs(
" http://www.post.com/postit.cgi\n"
"\n"
" To send two files in one post you can do it in two ways:\n"
@@ -3569,14 +3595,14 @@ void hugehelp(void)
"\n"
" curl -F \"pictures=@dog.gif,cat.gif\"\n"
"\n"
+, stdout);
+ fputs(
" 2. Send two fields with two field names:\n"
"\n"
" curl -F \"docpicture=@dog.gif\" -F \"catpicture=@cat.gif\"\n"
"\n"
" To send a field value literally without interpreting a leading '@'\n"
" or '<', or an embedded ';type=', use --form-string instead of\n"
-, stdout);
- fputs(
" -F. This is recommended when the value is obtained from a user or\n"
" some other unpredictable source. Under these circumstances, using\n"
" -F instead of --form-string would allow a user to trick curl into\n"
@@ -3584,11 +3610,11 @@ void hugehelp(void)
"\n"
"REFERRER\n"
"\n"
+, stdout);
+ fputs(
" An HTTP request has the option to include information about which address\n"
" referred it to the actual page. Curl allows you to specify the\n"
" referrer to be used on the command line. It is especially useful to\n"
-, stdout);
- fputs(
" fool or trick stupid servers or CGI scripts that rely on that information\n"
" being available or contain certain data.\n"
"\n"
@@ -3598,11 +3624,11 @@ void hugehelp(void)
"\n"
"USER AGENT\n"
"\n"
+, stdout);
+ fputs(
" An HTTP request has the option to include information about the browser\n"
" that generated the request. Curl allows it to be specified on the command\n"
" line. It is especially useful to fool or trick stupid servers or CGI\n"
-, stdout);
- fputs(
" scripts that only accept certain browsers.\n"
"\n"
" Example:\n"
@@ -3611,17 +3637,19 @@ void hugehelp(void)
"\n"
" Other common strings:\n"
" 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95\n"
+, stdout);
+ fputs(
" 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95\n"
" 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2\n"
" 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX\n"
" 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux\n"
"\n"
-, stdout);
- fputs(
" Note that Internet Explorer tries hard to be compatible in every way:\n"
" 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95\n"
"\n"
" Mozilla is not the only possible User-Agent name:\n"
+, stdout);
+ fputs(
" 'Konqueror/1.0' KDE File Manager desktop client\n"
" 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n"
"\n"
@@ -3629,21 +3657,21 @@ void hugehelp(void)
"\n"
" Cookies are generally used by web servers to keep state information at the\n"
" client's side. The server sets cookies by sending a response line in the\n"
-, stdout);
- fputs(
" headers that looks like 'Set-Cookie: <data>' where the data part then\n"
" typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
+, stdout);
+ fputs(
" like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
" path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
" cookie should expire (\"expire=DATE\"), for what domain to use it\n"
" (\"domain=NAME\") and if it should be used on secure connections only\n"
" (\"secure\").\n"
"\n"
-, stdout);
- fputs(
" If you've received a page from a server that contains a header like:\n"
" Set-Cookie: sessionid=boo123; path=\"/foo\";\n"
"\n"
+, stdout);
+ fputs(
" it means the server wants that first pair passed on when we get anything in\n"
" a path beginning with \"/foo\".\n"
"\n"
@@ -3653,12 +3681,12 @@ void hugehelp(void)
"\n"
" Curl also has the ability to use previously received cookies in following\n"
" sessions. If you get cookies from a server and store them in a file in a\n"
-, stdout);
- fputs(
" manner similar to:\n"
"\n"
" curl --dump-header headers www.example.com\n"
"\n"
+, stdout);
+ fputs(
" ... you can then in a second connect to that (or another) site, use the\n"
" cookies from the 'headers' file like:\n"
"\n"
@@ -3669,10 +3697,10 @@ void hugehelp(void)
" save the incoming cookies using the well-known netscape cookie format like\n"
" this:\n"
"\n"
-, stdout);
- fputs(
" curl -c cookies.txt www.example.com\n"
"\n"
+, stdout);
+ fputs(
" Note that by specifying -b you enable the \"cookie awareness\" and with -L\n"
" you can make curl follow a location: (which often is used in combination\n"
" with cookies). So that if a site sends cookies and a location, you can\n"
@@ -3681,23 +3709,23 @@ void hugehelp(void)
" curl -L -b empty.txt www.example.com\n"
"\n"
" The file to read cookies from must be formatted using plain HTTP headers OR\n"
+" as netscape's cookie file. Curl will determine what kind it is based on the\n"
, stdout);
fputs(
-" as netscape's cookie file. Curl will determine what kind it is based on the\n"
" file contents. In the above command, curl will parse the header and store\n"
" the cookies received from www.example.com. curl will send to the server the\n"
" stored cookies which match the request as it follows the location. The\n"
" file \"empty.txt\" may be a nonexistent file.\n"
"\n"
-" Alas, to both read and write cookies from a netscape cookie file, you can\n"
-" set both -b and -c to use the same file:\n"
+" To read and write cookies from a netscape cookie file, you can set both -b\n"
+" and -c to use the same file:\n"
"\n"
-, stdout);
- fputs(
" curl -b cookies.txt -c cookies.txt www.example.com\n"
"\n"
"PROGRESS METER\n"
"\n"
+, stdout);
+ fputs(
" The progress meter exists to show a user that something actually is\n"
" happening. The different fields in the output have the following meaning:\n"
"\n"
@@ -3706,9 +3734,9 @@ void hugehelp(void)
" 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287\n"
"\n"
" From left-to-right:\n"
+" % - percentage completed of the whole transfer\n"
, stdout);
fputs(
-" % - percentage completed of the whole transfer\n"
" Total - total size of the whole expected transfer\n"
" % - percentage completed of the download\n"
" Received - currently downloaded amount of bytes\n"
@@ -3718,9 +3746,9 @@ void hugehelp(void)
" Dload - the average transfer speed of the download\n"
" Average Speed\n"
" Upload - the average transfer speed of the upload\n"
+" Time Total - expected time to complete the operation\n"
, stdout);
fputs(
-" Time Total - expected time to complete the operation\n"
" Time Current - time passed since the invoke\n"
" Time Left - expected time left to completion\n"
" Curr.Speed - the average transfer speed the last 5 seconds (the first\n"
@@ -3731,9 +3759,9 @@ void hugehelp(void)
"\n"
"SPEED LIMIT\n"
"\n"
+" Curl allows the user to set the transfer speed conditions that must be met\n"
, stdout);
fputs(
-" Curl allows the user to set the transfer speed conditions that must be met\n"
" to let the transfer keep going. By using the switch -y and -Y you\n"
" can make curl abort transfers if the transfer speed is below the specified\n"
" lowest limit for a specified time.\n"
@@ -3744,10 +3772,10 @@ void hugehelp(void)
" curl -Y 3000 -y 60 www.far-away-site.com\n"
"\n"
" This can very well be used in combination with the overall time limit, so\n"
-, stdout);
- fputs(
" that the above operation must be completed in whole within 30 minutes:\n"
"\n"
+, stdout);
+ fputs(
" curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n"
"\n"
" Forcing curl not to transfer data faster than a given rate is also possible,\n"
@@ -3757,14 +3785,14 @@ void hugehelp(void)
"\n"
" Make curl transfer data no faster than 10 kilobytes per second:\n"
"\n"
-, stdout);
- fputs(
" curl --limit-rate 10K www.far-away-site.com\n"
"\n"
" or\n"
"\n"
" curl --limit-rate 10240 www.far-away-site.com\n"
"\n"
+, stdout);
+ fputs(
" Or prevent curl from uploading data faster than 1 megabyte per second:\n"
"\n"
" curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n"
@@ -3772,24 +3800,24 @@ void hugehelp(void)
" When using the --limit-rate option, the transfer rate is regulated on a\n"
" per-second basis, which will cause the total transfer speed to become lower\n"
" than the given number. Sometimes of course substantially lower, if your\n"
-, stdout);
- fputs(
" transfer stalls during periods.\n"
"\n"
"CONFIG FILE\n"
"\n"
" Curl automatically tries to read the .curlrc file (or _curlrc file on win32\n"
+, stdout);
+ fputs(
" systems) from the user's home dir on startup.\n"
"\n"
" The config file could be made up with normal command line switches, but you\n"
" can also specify the long options without the dashes to make it more\n"
" readable. You can separate the options and the parameter with spaces, or\n"
" with = or :. Comments can be used within the file. If the first letter on a\n"
-, stdout);
- fputs(
" line is a '#'-symbol the rest of the line is treated as a comment.\n"
"\n"
" If you want the parameter to contain spaces, you must enclose the entire\n"
+, stdout);
+ fputs(
" parameter within double quotes (\"). Within those quotes, you specify a\n"
" quote as \\\".\n"
"\n"
@@ -3800,11 +3828,11 @@ void hugehelp(void)
" # We want a 30 minute timeout:\n"
" -m 1800\n"
" # ... and we use a proxy for all accesses:\n"
-, stdout);
- fputs(
" proxy = proxy.our.domain.com:8080\n"
"\n"
" White spaces ARE significant at the end of lines, but all white spaces\n"
+, stdout);
+ fputs(
" leading up to the first characters of each line are ignored.\n"
"\n"
" Prevent curl from reading the default file by using -q as the first command\n"
@@ -3816,11 +3844,11 @@ void hugehelp(void)
" without URL by making a config file similar to:\n"
"\n"
" # default url to get\n"
-, stdout);
- fputs(
" url = \"http://help.with.curl.com/curlhelp.html\"\n"
"\n"
" You can specify another config file to be read by using the -K/--config\n"
+, stdout);
+ fputs(
" flag. If you set config file name to \"-\" it'll read the config from stdin,\n"
" which can be handy if you want to hide options from being visible in process\n"
" tables etc:\n"
@@ -3830,11 +3858,11 @@ void hugehelp(void)
"EXTRA HEADERS\n"
"\n"
" When using curl in your own very special programs, you may end up needing\n"
-, stdout);
- fputs(
" to pass on your own custom headers when getting a web page. You can do\n"
" this by using the -H flag.\n"
"\n"
+, stdout);
+ fputs(
" Example, send the header \"X-you-and-me: yes\" to the server when getting a\n"
" page:\n"
"\n"
@@ -3843,11 +3871,11 @@ void hugehelp(void)
" This can also be useful in case you want curl to send a different text in a\n"
" header than it normally does. The -H header you specify then replaces the\n"
" header curl would normally send. If you replace an internal header with an\n"
-, stdout);
- fputs(
" empty one, you prevent that header from being sent. To prevent the Host:\n"
" header from being used:\n"
"\n"
+, stdout);
+ fputs(
" curl -H \"Host:\" www.server.com\n"
"\n"
"FTP and PATH NAMES\n"
@@ -3859,12 +3887,12 @@ void hugehelp(void)
" curl ftp://user:passwd@my.site.com/README\n"
"\n"
" But if you want the README file from the root directory of that very same\n"
-, stdout);
- fputs(
" site, you need to specify the absolute file name:\n"
"\n"
" curl ftp://user:passwd@my.site.com//README\n"
"\n"
+, stdout);
+ fputs(
" (I.e with an extra slash in front of the file name.)\n"
"\n"
"SFTP and SCP and PATH NAMES\n"
@@ -3877,9 +3905,9 @@ void hugehelp(void)
"\n"
"FTP and firewalls\n"
"\n"
+" The FTP protocol requires one of the involved parties to open a second\n"
, stdout);
fputs(
-" The FTP protocol requires one of the involved parties to open a second\n"
" connection as soon as data is about to get transferred. There are two ways to\n"
" do this.\n"
"\n"
@@ -3890,9 +3918,9 @@ void hugehelp(void)
"\n"
" curl ftp.download.com\n"
"\n"
+" If the server, for example, is behind a firewall that doesn't allow connections\n"
, stdout);
fputs(
-" If the server, for example, is behind a firewall that doesn't allow connections\n"
" on ports other than 21 (or if it just doesn't support the PASV command), the\n"
" other way to do it is to use the PORT command and instruct the server to\n"
" connect to the client on the given IP number and port (as parameters to the\n"
@@ -3900,10 +3928,10 @@ void hugehelp(void)
"\n"
" The -P flag to curl supports a few different options. Your machine may have\n"
" several IP-addresses and/or network interfaces and curl allows you to select\n"
-, stdout);
- fputs(
" which of them to use. Default address can also be used:\n"
"\n"
+, stdout);
+ fputs(
" curl -P - ftp.download.com\n"
"\n"
" Download with PORT but use the IP address of our 'le0' interface (this does\n"
@@ -3919,12 +3947,12 @@ void hugehelp(void)
"\n"
" Get a web page from a server using a specified port for the interface:\n"
"\n"
-, stdout);
- fputs(
" curl --interface eth0:1 http://www.netscape.com/\n"
"\n"
" or\n"
"\n"
+, stdout);
+ fputs(
" curl --interface 192.168.1.10 http://www.netscape.com/\n"
"\n"
"HTTPS\n"
@@ -3938,17 +3966,17 @@ void hugehelp(void)
" curl https://www.secure-site.com\n"
"\n"
" Curl is also capable of using your personal certificates to get/post files\n"
+" from sites that require valid certificates. The only drawback is that the\n"
, stdout);
fputs(
-" from sites that require valid certificates. The only drawback is that the\n"
" certificate needs to be in PEM-format. PEM is a standard and open format to\n"
" store certificates with, but it is not used by the most commonly used\n"
" browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n"
" want curl to use the certificates you use with your (favourite) browser, you\n"
" may need to download/compile a converter that can convert your browser's\n"
+" formatted certificates to PEM formatted ones. This kind of converter is\n"
, stdout);
fputs(
-" formatted certificates to PEM formatted ones. This kind of converter is\n"
" included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
" N. Henson has written a patch for SSLeay that adds this functionality. You\n"
" can get his patch (that requires an SSLeay installation) from his site at:\n"
@@ -3957,10 +3985,10 @@ void hugehelp(void)
" Example on how to automatically retrieve a document using a certificate with\n"
" a personal password:\n"
"\n"
-, stdout);
- fputs(
" curl -E /path/to/cert.pem:password https://secure.site.com/\n"
"\n"
+, stdout);
+ fputs(
" If you neglect to specify the password on the command line, you will be\n"
" prompted for the correct password before any data can be received.\n"
"\n"
@@ -3969,10 +3997,10 @@ void hugehelp(void)
" SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n"
" version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n"
"\n"
-, stdout);
- fputs(
" curl -2 https://secure.site.com/\n"
"\n"
+, stdout);
+ fputs(
" Otherwise, curl will first attempt to use v3 and then v2.\n"
"\n"
" To use OpenSSL to convert your favourite browser's certificate into a PEM\n"
@@ -4363,7 +4391,7 @@ void hugehelp(void) {}
#else
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
- * Generation time: Wed Apr 29 08:08:46 2015
+ * Generation time: Tue Jun 16 09:13:08 2015
*/
#ifdef USE_MANUAL
#include "tool_hugehelp.h"
@@ -4371,4146 +4399,4162 @@ 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 shrunk from 164144
- to 49640 bytes. You can disable the use of compressed help
+ Thanks to this operation, the size of this data shrunk from 165294
+ to 49834 bytes. You can disable the use of compressed help
texts by NOT passing -c to the mkhelp.pl tool. */
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd,
- 0x7b, 0x7f, 0x1b, 0xc7, 0x91, 0x36, 0xfa, 0x3f, 0x3f, 0xc5, 0x84, 0x39,
+ 0x7b, 0x7f, 0x1b, 0xc7, 0x91, 0x36, 0xfa, 0x3f, 0x3f, 0xc5, 0x04, 0x39,
0x09, 0xc9, 0x04, 0x00, 0x2f, 0x92, 0x6c, 0x8b, 0x91, 0xbc, 0xa6, 0x29,
- 0xca, 0xe6, 0x9a, 0x12, 0xf9, 0x12, 0x94, 0x2f, 0xaf, 0xed, 0x9f, 0x7e,
+ 0xca, 0xe6, 0x9a, 0x12, 0xf9, 0x92, 0x94, 0x2f, 0xaf, 0xed, 0x9f, 0x7e,
0x03, 0x60, 0x48, 0x4e, 0x08, 0x60, 0x90, 0x99, 0x01, 0x29, 0x66, 0x37,
0xfb, 0xd9, 0x4f, 0xd5, 0x53, 0x55, 0xdd, 0x3d, 0xd3, 0x03, 0x52, 0xf6,
0xc6, 0x39, 0xfb, 0x9e, 0x73, 0xbc, 0x1b, 0x91, 0x04, 0x66, 0xfa, 0x5a,
0x5d, 0x5d, 0xd7, 0xa7, 0x92, 0xe4, 0xb1, 0xff, 0xde, 0xe3, 0x7f, 0xef,
- 0xe9, 0x3f, 0xfa, 0xb9, 0x96, 0x24, 0x67, 0x65, 0xf1, 0xd7, 0x6c, 0x5c,
+ 0xe9, 0x3f, 0xfa, 0xb9, 0x96, 0x24, 0xa7, 0x65, 0xf1, 0xd7, 0x6c, 0x5c,
0x77, 0x3f, 0xfb, 0xfe, 0xfd, 0x7f, 0x26, 0xf2, 0x7f, 0xf4, 0xce, 0x4f,
- 0xf4, 0x73, 0xed, 0xc1, 0xb6, 0xb7, 0x13, 0xff, 0xc2, 0x7f, 0xbe, 0xdf,
- 0x4a, 0x1e, 0x7b, 0xe1, 0x3f, 0x93, 0x4d, 0xbc, 0xf0, 0x5e, 0x7b, 0x78,
+ 0xf4, 0x73, 0xed, 0xc1, 0xb6, 0xb7, 0x12, 0xff, 0xc2, 0x7f, 0xbe, 0xdf,
+ 0x4c, 0x1e, 0x7b, 0xe1, 0x3f, 0x93, 0x0d, 0xbc, 0xf0, 0x5e, 0x7b, 0x78,
0xc1, 0xbf, 0xbf, 0x7f, 0xff, 0x70, 0x27, 0x3f, 0xf1, 0xa8, 0xf8, 0x9f,
- 0x6d, 0x7e, 0xef, 0xa7, 0xf7, 0xfc, 0x2b, 0x7d, 0xb2, 0xb6, 0xf6, 0xf6,
- 0xe0, 0xcd, 0x91, 0xbd, 0x3a, 0x5e, 0x96, 0xd3, 0xa4, 0x9f, 0xd4, 0x65,
- 0x3a, 0xaf, 0x2e, 0xb3, 0x32, 0x49, 0x93, 0x77, 0xe7, 0x27, 0x6b, 0x6b,
- 0xc3, 0x1f, 0xde, 0x9e, 0x9e, 0x0d, 0x8f, 0x87, 0x8d, 0xc7, 0x7e, 0x2c,
- 0x16, 0x75, 0x5e, 0xcc, 0xab, 0x9f, 0x93, 0x1f, 0xe9, 0xa1, 0xc1, 0x60,
- 0xf0, 0xf3, 0xda, 0xda, 0xab, 0xa3, 0xe1, 0xe1, 0xf9, 0xf1, 0xd9, 0xc5,
- 0xf1, 0xe9, 0xdb, 0xc6, 0xb3, 0x49, 0x5e, 0x25, 0xd4, 0x58, 0x5d, 0x14,
- 0x53, 0xfa, 0xc7, 0xb7, 0x3f, 0x49, 0xeb, 0x34, 0xb9, 0x2c, 0x8b, 0x59,
- 0x52, 0x94, 0xfc, 0x45, 0x9a, 0x54, 0x59, 0x79, 0x9b, 0x95, 0xbd, 0x64,
- 0x59, 0xe5, 0xf3, 0xab, 0xa4, 0x98, 0x67, 0x49, 0x71, 0x99, 0xd4, 0xd7,
- 0x99, 0x35, 0x57, 0x2d, 0x17, 0x8b, 0xa2, 0xac, 0xb3, 0x49, 0xb2, 0x28,
- 0x8b, 0xba, 0x18, 0x17, 0xd3, 0x2a, 0xd9, 0x7c, 0x75, 0x7c, 0x78, 0xd1,
- 0x4b, 0x5e, 0x1f, 0x9f, 0x1c, 0xd1, 0xbf, 0x17, 0x67, 0xf8, 0x67, 0xd8,
- 0x4b, 0xbe, 0x3a, 0x3d, 0xfb, 0xfa, 0xe8, 0xbc, 0x97, 0x7c, 0x7d, 0xc1,
- 0x9f, 0xf1, 0xbf, 0xf4, 0x61, 0x72, 0xfc, 0xe6, 0xe0, 0xac, 0x67, 0xcd,
- 0xf1, 0x1f, 0xfc, 0xe1, 0xc9, 0x2b, 0xfa, 0x50, 0x7e, 0xf0, 0x9f, 0x67,
- 0xa7, 0x67, 0x4f, 0xf4, 0x07, 0xff, 0x79, 0x7e, 0xf1, 0x86, 0xbe, 0x3d,
- 0xbf, 0x18, 0xd2, 0xbf, 0xc3, 0x43, 0xfe, 0x07, 0xbd, 0x0c, 0xdf, 0x7c,
- 0x89, 0x7f, 0x86, 0xae, 0xb9, 0xe1, 0x1b, 0xf9, 0x1c, 0x3d, 0x5d, 0x1c,
- 0x9d, 0xbc, 0x3d, 0xba, 0x48, 0xd2, 0xf9, 0x24, 0xb9, 0xa0, 0xe7, 0xb7,
- 0x06, 0xc9, 0xc5, 0x75, 0x96, 0x8c, 0x8b, 0xd9, 0x8c, 0x3f, 0xa2, 0x15,
- 0x99, 0x64, 0x55, 0x7e, 0x35, 0xa7, 0xa9, 0xd0, 0xcc, 0xef, 0x8a, 0xf2,
- 0x26, 0x49, 0xee, 0xf2, 0xfa, 0xba, 0x58, 0xd6, 0xd6, 0xdc, 0x92, 0x56,
- 0x23, 0xc9, 0xe7, 0x75, 0x56, 0xa6, 0x63, 0x5e, 0xeb, 0xc1, 0x5a, 0x63,
- 0x55, 0x8b, 0x4b, 0x5a, 0xc3, 0x8a, 0x16, 0x6d, 0xb4, 0xac, 0xa6, 0x45,
- 0x3a, 0xe1, 0xa5, 0xa2, 0x57, 0x2e, 0x97, 0xb4, 0xc8, 0x65, 0x3e, 0xbe,
- 0xa9, 0x92, 0x69, 0x7e, 0x93, 0xf1, 0x42, 0x7d, 0xb8, 0xb7, 0x85, 0xeb,
- 0x49, 0xa3, 0xe9, 0x92, 0xd6, 0x74, 0xde, 0xb7, 0xe6, 0xea, 0x7c, 0x9c,
- 0x72, 0x07, 0x58, 0xb9, 0x64, 0xb9, 0xe0, 0xd6, 0x64, 0xc5, 0x92, 0x45,
- 0x51, 0xd1, 0x4b, 0xc3, 0xe1, 0x09, 0x8d, 0x7c, 0x3e, 0xcf, 0x30, 0x8e,
- 0xaa, 0x47, 0x7f, 0x14, 0x37, 0x79, 0x46, 0xbf, 0x5c, 0xe6, 0xd3, 0x2c,
- 0x91, 0x1d, 0x75, 0xcd, 0xf1, 0xd6, 0x26, 0x65, 0x56, 0x2d, 0x67, 0x19,
- 0xad, 0xde, 0x9b, 0xac, 0x4e, 0xa7, 0xf9, 0xfc, 0x86, 0x7e, 0xe5, 0x89,
- 0xcf, 0x8a, 0x32, 0x1b, 0x24, 0x07, 0x55, 0x72, 0x5f, 0x2c, 0x69, 0xc2,
- 0xd3, 0x29, 0xed, 0x79, 0x96, 0x8c, 0xb2, 0x69, 0x71, 0xd7, 0xe3, 0x9d,
- 0x4e, 0xe6, 0xcb, 0xd9, 0x88, 0x1a, 0x28, 0x2e, 0x7d, 0x73, 0x69, 0xbd,
- 0xa4, 0xe6, 0xe4, 0xe9, 0x59, 0x4a, 0x73, 0xa2, 0x77, 0xcb, 0xe4, 0x3a,
- 0xa3, 0x39, 0x57, 0x8b, 0x7c, 0xfe, 0xbb, 0xe6, 0xba, 0xd0, 0xd2, 0x2e,
- 0x8a, 0xbb, 0xac, 0xa4, 0x95, 0x1d, 0xdd, 0x27, 0xb4, 0x08, 0x23, 0x21,
- 0xc2, 0x4b, 0x22, 0xb2, 0x24, 0xa5, 0x26, 0x1c, 0x01, 0xf6, 0xcb, 0x6c,
- 0x9a, 0x32, 0x31, 0xb9, 0x3e, 0x06, 0xb4, 0x89, 0x99, 0xa3, 0x36, 0x7d,
- 0x75, 0xf3, 0xc9, 0x16, 0x5e, 0x9e, 0xd0, 0x4c, 0xf2, 0x69, 0x45, 0xdb,
- 0xc0, 0xc7, 0x42, 0x9f, 0xe1, 0x4d, 0xe5, 0x63, 0x42, 0xb4, 0x79, 0x3f,
- 0xaf, 0xd3, 0x0f, 0xe8, 0x5e, 0x69, 0xb3, 0x3f, 0xc9, 0x16, 0xd9, 0x7c,
- 0x92, 0xcd, 0xeb, 0x41, 0xf2, 0x43, 0xb1, 0xdc, 0xa0, 0xbe, 0x2f, 0x73,
- 0x5a, 0x83, 0x54, 0x9b, 0xa2, 0x9e, 0x89, 0x08, 0xc6, 0x65, 0xbe, 0x08,
- 0xb6, 0xa2, 0x98, 0xd3, 0x9e, 0x27, 0xe7, 0xaf, 0x0f, 0x93, 0x27, 0xcf,
- 0x3f, 0xfb, 0xc4, 0xef, 0x39, 0x35, 0x90, 0x8c, 0xd3, 0x39, 0xcd, 0x38,
- 0x1b, 0xe7, 0x97, 0xf7, 0xc9, 0x6c, 0x39, 0xad, 0xf3, 0x05, 0xad, 0x3e,
- 0x75, 0x5e, 0xf1, 0x01, 0x5a, 0xa4, 0x65, 0x5d, 0x31, 0x11, 0xe0, 0x03,
- 0xcc, 0xfd, 0xae, 0xcc, 0x6b, 0x3e, 0x48, 0xf8, 0x8e, 0x46, 0x98, 0xd5,
- 0x95, 0x35, 0xc7, 0xb4, 0x46, 0xfd, 0x8c, 0x88, 0xb6, 0x68, 0x69, 0xd3,
- 0x8a, 0x3a, 0xdd, 0x5f, 0xf3, 0x3c, 0xe4, 0xba, 0xae, 0x17, 0xfb, 0xdb,
- 0xdb, 0x55, 0x5e, 0x67, 0x83, 0xff, 0xa0, 0x73, 0xd8, 0xab, 0xef, 0x8a,
- 0x5e, 0x7d, 0x5d, 0x66, 0xd9, 0x3f, 0x06, 0x44, 0xc3, 0xee, 0x49, 0xea,
- 0xf7, 0x5e, 0x07, 0x76, 0x95, 0xd5, 0xd4, 0xc3, 0xdf, 0x96, 0xd9, 0x9c,
- 0x5b, 0xa4, 0x71, 0xa4, 0xd3, 0xc5, 0x75, 0x4a, 0xdb, 0x99, 0x11, 0x35,
- 0xf2, 0xc9, 0x26, 0x82, 0xe1, 0x51, 0xc9, 0xd9, 0xfe, 0xf1, 0xe7, 0xb8,
- 0xd3, 0x4b, 0xf4, 0x49, 0xff, 0x0e, 0xf4, 0xad, 0x94, 0x56, 0x9b, 0x7a,
- 0xdb, 0x66, 0x2a, 0xfb, 0x71, 0xb7, 0xbf, 0xbb, 0xb3, 0xf3, 0xf3, 0xa0,
- 0xfe, 0x50, 0x7f, 0xf4, 0x2b, 0x3b, 0x3b, 0xfe, 0x25, 0x7e, 0x7a, 0x93,
- 0x67, 0x9d, 0x4c, 0x89, 0x70, 0x78, 0x08, 0x7f, 0xcf, 0xca, 0xa2, 0xda,
- 0xea, 0x6c, 0x6c, 0x9a, 0xd5, 0x74, 0xec, 0x82, 0x96, 0xd2, 0xfe, 0xdf,
- 0x9b, 0x5d, 0xbf, 0xcd, 0x2a, 0x50, 0x8e, 0x9f, 0x71, 0x92, 0x96, 0x44,
- 0xbd, 0x45, 0xed, 0x99, 0x54, 0x8f, 0x8e, 0x66, 0xed, 0xd6, 0x87, 0x4e,
- 0x1e, 0x3d, 0x4d, 0xec, 0x2d, 0x9d, 0x32, 0x67, 0xab, 0x92, 0x79, 0xf6,
- 0xc1, 0x9d, 0x75, 0xe2, 0x01, 0x59, 0x3a, 0xbe, 0x4e, 0x0a, 0x3a, 0x02,
- 0x65, 0xc7, 0x46, 0xa4, 0xf3, 0xfb, 0x41, 0x51, 0x5e, 0x6d, 0xa7, 0xe5,
- 0xf8, 0x3a, 0xbf, 0xa5, 0xc5, 0x78, 0xfe, 0xfc, 0x93, 0x3e, 0xfd, 0xf3,
- 0xfc, 0xe7, 0xed, 0xdb, 0x62, 0x4a, 0x6b, 0xf3, 0xf4, 0xe7, 0x6d, 0xde,
- 0xe4, 0xff, 0x48, 0x7b, 0xa3, 0xde, 0xf8, 0x1f, 0x83, 0xeb, 0x7a, 0x36,
- 0x5d, 0x49, 0x3a, 0xd4, 0x58, 0x92, 0xce, 0x8a, 0xe5, 0xbc, 0x76, 0xe4,
- 0x42, 0x54, 0x57, 0x07, 0xec, 0x89, 0x0e, 0x2c, 0x9d, 0x52, 0x26, 0x6e,
- 0xa6, 0x22, 0x3e, 0x77, 0x74, 0x44, 0xfd, 0x81, 0xac, 0xc7, 0xd7, 0x34,
- 0x77, 0x22, 0x9f, 0x54, 0xe7, 0x5f, 0xe7, 0x29, 0x1f, 0x4d, 0xe2, 0x10,
- 0xcc, 0xb1, 0xd0, 0x94, 0x74, 0x96, 0xd3, 0x73, 0x45, 0x39, 0xc9, 0xca,
- 0x26, 0x21, 0x63, 0x38, 0x7e, 0x3c, 0x09, 0xad, 0xe5, 0x82, 0x3a, 0x5f,
- 0x32, 0xb3, 0xc3, 0x59, 0xe3, 0x16, 0xe8, 0x94, 0x5e, 0xd1, 0x32, 0xd1,
- 0xd2, 0x30, 0x69, 0xf1, 0xca, 0xdd, 0x27, 0x6f, 0x69, 0xff, 0x84, 0x43,
- 0x04, 0x14, 0x28, 0xbb, 0xd5, 0xb1, 0x6a, 0x77, 0x77, 0x77, 0xab, 0x49,
- 0x69, 0x7f, 0x37, 0xa2, 0xa6, 0xe0, 0xb5, 0x2e, 0x0a, 0xd8, 0xdf, 0x6b,
- 0xbe, 0xf0, 0x1d, 0x31, 0x51, 0x4f, 0xce, 0x34, 0x90, 0xff, 0xf8, 0x47,
- 0x40, 0x0f, 0x77, 0xfc, 0x6d, 0x3e, 0xbf, 0x2d, 0x6e, 0x68, 0x0d, 0x70,
- 0xcb, 0xa5, 0x8d, 0xf5, 0x4d, 0x98, 0x4f, 0xcc, 0x16, 0xb5, 0xbb, 0x3e,
- 0x98, 0x50, 0xe8, 0xa3, 0x51, 0x3a, 0x9a, 0xde, 0x27, 0xd7, 0xe9, 0x6d,
- 0xc6, 0x53, 0x5f, 0x10, 0x05, 0xf1, 0x62, 0x10, 0x5b, 0x9f, 0x82, 0xcf,
- 0xe8, 0xc1, 0x9d, 0x14, 0xcb, 0x11, 0x1d, 0xfe, 0xbf, 0x2d, 0x8b, 0x5a,
- 0xd6, 0x28, 0xbd, 0x2d, 0xf2, 0x49, 0xe3, 0xae, 0xbc, 0xce, 0x98, 0xe1,
- 0x70, 0xc7, 0xb8, 0x44, 0x88, 0xe1, 0xf1, 0x48, 0x71, 0x04, 0xf2, 0x9a,
- 0xaf, 0x23, 0x62, 0x55, 0xb4, 0x2c, 0x45, 0x92, 0x5c, 0x15, 0x4c, 0xbf,
- 0x60, 0x90, 0x20, 0x40, 0xda, 0x9f, 0xeb, 0x94, 0x6f, 0x1d, 0x5a, 0x01,
- 0x47, 0xa1, 0x65, 0x06, 0x5e, 0x89, 0x4d, 0x4b, 0xa7, 0x3d, 0xb9, 0x5d,
- 0xf8, 0x9d, 0xec, 0x43, 0x3a, 0x63, 0x46, 0xb4, 0xf1, 0xc7, 0x8d, 0x5e,
- 0xb2, 0xf1, 0x6f, 0x1b, 0xe0, 0xf3, 0x1b, 0x7f, 0xda, 0xf0, 0x5b, 0x4e,
- 0xe2, 0xd2, 0x6d, 0x3e, 0xe1, 0x8b, 0x82, 0x66, 0x72, 0x7c, 0x76, 0xfb,
- 0x49, 0xf2, 0x77, 0xbe, 0xdb, 0x89, 0x17, 0x66, 0x1f, 0x8c, 0x5e, 0x6c,
- 0x6e, 0xf4, 0x76, 0x42, 0x4c, 0x31, 0x5d, 0xf0, 0x25, 0x9f, 0x95, 0x63,
- 0x22, 0xae, 0xf4, 0x8a, 0xc8, 0x89, 0xee, 0x4a, 0x6b, 0x8e, 0xdb, 0xe7,
- 0x57, 0x64, 0x5a, 0xc4, 0xc0, 0x92, 0x79, 0x3a, 0x23, 0x7a, 0x3d, 0xe1,
- 0x11, 0xe5, 0xf3, 0x78, 0x43, 0x7f, 0xbc, 0xcc, 0x3e, 0xdb, 0xd9, 0xdf,
- 0x7f, 0xf2, 0x87, 0xbd, 0x67, 0x59, 0x7d, 0xbd, 0xf3, 0xf3, 0xb6, 0x7b,
- 0xe4, 0xf8, 0x12, 0xcb, 0x6e, 0x94, 0x68, 0x83, 0xa0, 0x5b, 0xd8, 0x71,
- 0x71, 0x7a, 0x9f, 0x7e, 0xcf, 0x2e, 0xf3, 0x0f, 0x3d, 0x93, 0x67, 0xe4,
- 0x44, 0xa4, 0x44, 0x21, 0xb4, 0x7f, 0x7c, 0x78, 0xad, 0xb9, 0xab, 0x65,
- 0x56, 0xd1, 0x4a, 0xde, 0x5d, 0xa7, 0x75, 0xe2, 0x1a, 0x90, 0x9d, 0x9d,
- 0xe5, 0x57, 0xd7, 0x75, 0x72, 0x97, 0xf2, 0x65, 0x70, 0x5c, 0x4b, 0x13,
- 0x7c, 0x0b, 0xd3, 0x15, 0x70, 0x99, 0x12, 0x2f, 0xe7, 0x3d, 0xc4, 0x95,
- 0x3b, 0xf2, 0x12, 0x40, 0x4d, 0x14, 0x2f, 0x1b, 0xe2, 0xc5, 0x9d, 0x51,
- 0x5a, 0xf1, 0x99, 0x9a, 0xd3, 0xd1, 0xad, 0xe9, 0x0e, 0x5f, 0xf2, 0x5f,
- 0xd7, 0x74, 0x4b, 0x63, 0x0d, 0x74, 0xa0, 0xb8, 0xc8, 0x5e, 0xf3, 0x76,
- 0xf2, 0xde, 0xb8, 0xcb, 0x85, 0x36, 0xa9, 0xa7, 0xdb, 0xec, 0xde, 0xa8,
- 0xe8, 0xec, 0x11, 0xdf, 0x70, 0x94, 0xb1, 0xce, 0xec, 0x6f, 0x5d, 0xe6,
- 0x89, 0x31, 0xa6, 0x15, 0x5f, 0xe4, 0x72, 0x5d, 0xd3, 0xe0, 0x83, 0xc9,
- 0xd2, 0xa2, 0xa5, 0x37, 0x2c, 0x32, 0xb4, 0x04, 0x13, 0xbc, 0x36, 0x29,
- 0x88, 0xc8, 0x68, 0xb4, 0xc4, 0x26, 0x79, 0x66, 0xcc, 0xfc, 0xb0, 0x2a,
- 0x20, 0x72, 0x6a, 0x93, 0x3f, 0xcc, 0x6b, 0xbe, 0x03, 0x20, 0x65, 0xd2,
- 0x78, 0x69, 0x51, 0x20, 0x28, 0x12, 0x0b, 0x0d, 0xe6, 0x8f, 0xeb, 0x8b,
- 0x9e, 0x4d, 0x6e, 0x49, 0x8a, 0x20, 0x81, 0x31, 0x73, 0x6f, 0xe1, 0xbe,
- 0x1d, 0xb3, 0xec, 0x32, 0xa5, 0xf3, 0x32, 0x2e, 0xca, 0x92, 0x25, 0x72,
- 0xde, 0xc1, 0x91, 0xb0, 0xb8, 0x59, 0x46, 0xd7, 0x7c, 0xb8, 0x9c, 0x39,
- 0x5f, 0x38, 0xc4, 0x6a, 0x48, 0x6e, 0x00, 0x33, 0xa1, 0xfb, 0x1d, 0xdc,
- 0x18, 0x13, 0xc7, 0xe8, 0xb8, 0xed, 0xf1, 0x38, 0x5b, 0xd4, 0x55, 0xd7,
- 0x9c, 0x6c, 0xc3, 0x69, 0x38, 0x65, 0xc6, 0x2b, 0x1f, 0x0a, 0x45, 0x58,
- 0x57, 0x77, 0x29, 0x43, 0x2e, 0x32, 0x39, 0x83, 0xe4, 0xa4, 0xca, 0xad,
- 0x5a, 0x0d, 0xda, 0x20, 0x8e, 0x86, 0x35, 0x9f, 0xf1, 0x40, 0xf9, 0xe1,
- 0x4a, 0x4e, 0x2a, 0x38, 0x27, 0x6f, 0xa4, 0x48, 0xc2, 0xd2, 0x2f, 0x5f,
- 0x2a, 0xb4, 0x9e, 0xae, 0x71, 0xea, 0xd5, 0xed, 0x29, 0x77, 0x5f, 0x91,
- 0x0e, 0x41, 0x37, 0xed, 0xa4, 0xba, 0x26, 0xe1, 0xa8, 0xd2, 0x93, 0x9d,
- 0xcf, 0x88, 0x66, 0x6e, 0x79, 0x7f, 0x17, 0x59, 0x36, 0x19, 0x24, 0xa7,
- 0x97, 0xcc, 0x60, 0x4b, 0x1a, 0x74, 0x8d, 0xaf, 0x99, 0xe7, 0xd3, 0xba,
- 0x4d, 0x20, 0x64, 0xbb, 0xa3, 0x25, 0x43, 0x09, 0x98, 0x37, 0x53, 0x1a,
- 0x2d, 0x76, 0xc2, 0x5c, 0x6e, 0xda, 0xbc, 0x20, 0x70, 0x0e, 0x89, 0x91,
- 0xf3, 0xf0, 0x46, 0x59, 0x02, 0x4a, 0x1c, 0x65, 0xf5, 0x5d, 0x96, 0xb9,
- 0xe6, 0xaa, 0x8c, 0x2e, 0x25, 0xde, 0x34, 0x91, 0xcc, 0xc0, 0x0c, 0x79,
- 0x69, 0xcf, 0xce, 0x4f, 0xbf, 0x3a, 0x3f, 0x1a, 0x0e, 0x93, 0x37, 0x47,
- 0x17, 0x47, 0xe7, 0x8d, 0x95, 0x9e, 0x17, 0xe5, 0x0c, 0x3b, 0x3a, 0xc9,
- 0xab, 0xc5, 0x34, 0xbd, 0xe7, 0xad, 0xa6, 0x99, 0x5c, 0x95, 0x7c, 0xb2,
- 0x66, 0x19, 0x5f, 0x10, 0x93, 0x25, 0x38, 0x59, 0x52, 0x10, 0x7f, 0x48,
- 0x55, 0x22, 0x65, 0x66, 0x02, 0x31, 0x76, 0x7e, 0xe5, 0x57, 0x9a, 0x38,
- 0x8e, 0xde, 0x73, 0x7c, 0xd1, 0xb9, 0xfd, 0x60, 0xd1, 0x10, 0xca, 0x47,
- 0xcf, 0x7f, 0x26, 0xcb, 0x54, 0x61, 0x4e, 0x44, 0xb3, 0xf9, 0x0c, 0xcc,
- 0x8e, 0x7e, 0x7a, 0x69, 0x30, 0xbb, 0x24, 0x51, 0x98, 0xee, 0xbe, 0x16,
- 0x69, 0xb8, 0x71, 0x62, 0x5d, 0xa1, 0xd3, 0xb0, 0x92, 0x43, 0x9d, 0xd3,
- 0x58, 0x67, 0xf9, 0x9c, 0x08, 0x8c, 0x08, 0x52, 0x4f, 0x39, 0x53, 0x02,
- 0x8d, 0xf5, 0x52, 0x78, 0x82, 0xae, 0x48, 0x53, 0x59, 0xa2, 0x97, 0x69,
- 0xb3, 0x89, 0x0b, 0xba, 0xe9, 0x61, 0x50, 0x44, 0x9a, 0xcc, 0xaf, 0x47,
- 0xcc, 0x9a, 0x58, 0x63, 0x20, 0xd1, 0x2e, 0xeb, 0xec, 0xcd, 0xdd, 0x27,
- 0xf4, 0x06, 0x8d, 0x8d, 0x6e, 0x13, 0xbe, 0x20, 0xae, 0xb3, 0xf6, 0x2a,
- 0xd2, 0x21, 0x02, 0x6f, 0xb9, 0xcb, 0x2b, 0x1c, 0xaa, 0xbb, 0x62, 0x39,
- 0x25, 0xf9, 0x9c, 0x1f, 0x58, 0x2e, 0xf0, 0x02, 0x75, 0xb5, 0xf0, 0xa7,
- 0x67, 0x96, 0x7f, 0xe0, 0x55, 0x6f, 0xb7, 0x42, 0x43, 0xa3, 0x3f, 0x17,
- 0xb4, 0x09, 0x32, 0x9c, 0x41, 0x9b, 0xb7, 0x82, 0x6b, 0x44, 0x7b, 0xc8,
- 0xa7, 0x05, 0xec, 0xee, 0xec, 0x74, 0x78, 0xc1, 0x77, 0xe7, 0xd9, 0xbb,
- 0x0b, 0x6a, 0x88, 0x2e, 0xcf, 0xaa, 0xa6, 0xed, 0xe4, 0x17, 0xe7, 0x19,
- 0x94, 0x23, 0x6b, 0x8e, 0x76, 0x2d, 0xc7, 0x11, 0x87, 0x6c, 0x60, 0x5d,
- 0xca, 0x18, 0x45, 0x7b, 0x64, 0xe2, 0x35, 0xdd, 0x51, 0x6e, 0x3f, 0xff,
- 0x52, 0xb2, 0xf9, 0xf9, 0x16, 0x6d, 0x77, 0xdf, 0x35, 0xf7, 0x23, 0x3f,
- 0x8d, 0x5b, 0xbb, 0xca, 0x67, 0xf9, 0x34, 0x0d, 0x24, 0x14, 0xe5, 0x44,
- 0x4c, 0xd7, 0xee, 0x3c, 0x8e, 0x89, 0xed, 0x62, 0xd0, 0x5e, 0x45, 0xe2,
- 0x15, 0xc4, 0x69, 0xf6, 0x1b, 0x35, 0xe1, 0x8b, 0x14, 0x32, 0xe0, 0x22,
- 0x77, 0x0b, 0xc7, 0x3b, 0xc6, 0xc7, 0xbc, 0xb1, 0x4c, 0xed, 0x5d, 0x8b,
- 0x96, 0x8d, 0x39, 0x39, 0x74, 0x70, 0xb7, 0x70, 0xeb, 0xa3, 0xb4, 0x5c,
- 0x77, 0x1c, 0x4c, 0x14, 0x63, 0x6a, 0xf4, 0x6a, 0x49, 0x83, 0x97, 0x55,
- 0xed, 0x25, 0xfd, 0xdf, 0xf3, 0xc8, 0x59, 0x3f, 0x72, 0x27, 0x9a, 0xe4,
- 0xee, 0xf9, 0x64, 0xb0, 0x76, 0x0a, 0xbd, 0xdc, 0x29, 0xf1, 0xa7, 0xa2,
- 0xbe, 0x27, 0xc2, 0xfe, 0x45, 0x1f, 0x48, 0x44, 0xe3, 0x26, 0xe9, 0xeb,
- 0x8e, 0x68, 0x30, 0xa5, 0x25, 0x24, 0x66, 0xf2, 0x86, 0x87, 0xae, 0x9d,
- 0xa9, 0xce, 0x8f, 0x7d, 0xa2, 0x65, 0xa5, 0x59, 0xb9, 0x2b, 0x79, 0x32,
- 0xc9, 0xf9, 0x3b, 0x22, 0x76, 0x62, 0xd4, 0xcb, 0x0c, 0xc2, 0xad, 0xce,
- 0x71, 0xe6, 0xe7, 0xc6, 0xda, 0x52, 0x75, 0x4d, 0xc2, 0x71, 0xb2, 0x2e,
- 0x0c, 0xa5, 0xcf, 0xdd, 0xac, 0xf3, 0xc2, 0xce, 0x5a, 0x9d, 0xd0, 0x5c,
- 0x26, 0x7a, 0x59, 0xa9, 0x80, 0x41, 0xdb, 0x37, 0x4b, 0xef, 0x43, 0x49,
- 0x14, 0x2c, 0x07, 0x23, 0x2f, 0x4a, 0x77, 0x6f, 0xd3, 0xcd, 0xb0, 0x60,
- 0x99, 0x40, 0x59, 0x11, 0x78, 0x3a, 0xce, 0x4f, 0x25, 0x43, 0xeb, 0x91,
- 0xd0, 0xc3, 0x4f, 0x5e, 0x5d, 0xdb, 0xa3, 0xc1, 0xfd, 0x90, 0xd2, 0xdc,
- 0x98, 0xc7, 0xb1, 0xda, 0x36, 0x31, 0xf6, 0x55, 0x94, 0xa2, 0xbc, 0x4f,
- 0x0b, 0xe6, 0x3a, 0xeb, 0x22, 0x7a, 0xe9, 0xc8, 0x31, 0x74, 0x26, 0xac,
- 0x3e, 0x76, 0x95, 0xff, 0xb4, 0xe6, 0xdc, 0xb0, 0x75, 0xb9, 0xaa, 0x47,
- 0x87, 0xe6, 0x17, 0x6a, 0x88, 0x45, 0xa2, 0x1b, 0xa0, 0x62, 0xb2, 0xb2,
- 0x75, 0x07, 0xb5, 0x11, 0xc7, 0xde, 0xa8, 0xe5, 0x70, 0x40, 0x90, 0x6f,
- 0xad, 0x7c, 0x05, 0xd9, 0x5a, 0xf9, 0xb1, 0x9b, 0x19, 0xcd, 0x68, 0x92,
- 0x13, 0x4b, 0x23, 0xbe, 0x6a, 0x3b, 0xe3, 0xf5, 0x8d, 0x0e, 0x59, 0xee,
- 0x3e, 0x12, 0xd2, 0x59, 0x75, 0x0e, 0x39, 0xab, 0x8d, 0xa9, 0x7f, 0x4a,
- 0x3b, 0x75, 0x82, 0x79, 0xf4, 0x6f, 0x13, 0x3e, 0x0d, 0x24, 0xfd, 0xf2,
- 0xd1, 0xe8, 0x9f, 0x9e, 0xdc, 0x06, 0x54, 0xcd, 0x0a, 0xe2, 0x9c, 0xaf,
- 0xdb, 0x1e, 0x94, 0xf0, 0x51, 0x51, 0x90, 0x1e, 0xe6, 0xa7, 0xc6, 0xca,
- 0x53, 0x36, 0x67, 0x66, 0xa5, 0x3b, 0xda, 0xef, 0xcb, 0x57, 0x68, 0xf9,
- 0x9e, 0x14, 0x80, 0xf4, 0x2a, 0xcd, 0x1d, 0xbd, 0x29, 0x63, 0x73, 0xcf,
- 0xce, 0x0b, 0x7d, 0x9c, 0x77, 0x8a, 0x2f, 0x72, 0xe5, 0x21, 0x4b, 0xdc,
- 0x77, 0x19, 0xcf, 0x8b, 0x98, 0x00, 0x4e, 0xb2, 0x36, 0x0b, 0xe9, 0xc7,
- 0x9a, 0x1b, 0x41, 0xde, 0x63, 0xd1, 0x09, 0x9c, 0x10, 0x82, 0x10, 0x35,
- 0xb9, 0x3e, 0x48, 0xbe, 0x2e, 0xee, 0x32, 0x98, 0xa4, 0x20, 0xa6, 0xe6,
- 0x6c, 0x54, 0x21, 0x89, 0xe6, 0x2e, 0x4b, 0x66, 0x24, 0x41, 0xd1, 0x6a,
- 0xe2, 0x12, 0xc5, 0x67, 0x34, 0x4e, 0x2f, 0x7a, 0x17, 0x77, 0xe8, 0xd6,
- 0x4d, 0xc2, 0xed, 0xe4, 0xa5, 0x9c, 0x88, 0x64, 0x13, 0x97, 0xf4, 0x98,
- 0x17, 0x6b, 0x51, 0xfb, 0x59, 0xb8, 0xf5, 0x20, 0xb6, 0x59, 0x05, 0x87,
- 0x8b, 0x6f, 0x2c, 0x1a, 0x41, 0xf2, 0xe9, 0x60, 0xf7, 0xf9, 0x60, 0x67,
- 0xc0, 0x22, 0x75, 0x76, 0x9b, 0x17, 0xcb, 0x8a, 0x7a, 0xc7, 0x50, 0x92,
- 0xe0, 0xcd, 0xac, 0x64, 0x51, 0xbb, 0xb8, 0xba, 0x9a, 0xca, 0x05, 0xbe,
- 0x5d, 0x5c, 0x5e, 0x06, 0x77, 0x7c, 0x99, 0x2d, 0x44, 0x94, 0xe7, 0xc5,
- 0xd1, 0x43, 0x27, 0x3c, 0x2e, 0xbc, 0xdc, 0x75, 0x39, 0xbd, 0x7e, 0xdc,
- 0xff, 0x3d, 0x6d, 0x74, 0xdf, 0xb8, 0x51, 0x9f, 0x98, 0x51, 0xcb, 0xe4,
- 0xf8, 0x86, 0x4d, 0x33, 0xe1, 0x95, 0xe8, 0x59, 0x97, 0x08, 0x6c, 0x39,
- 0x48, 0xcb, 0x7d, 0x48, 0x2d, 0x24, 0x8e, 0x9d, 0x05, 0x06, 0x9f, 0x80,
- 0xc8, 0x88, 0x39, 0xcd, 0x27, 0x69, 0x49, 0x9a, 0x34, 0xdb, 0x8d, 0xe8,
- 0x61, 0x3e, 0x6d, 0xa9, 0x90, 0x7b, 0x4f, 0x78, 0x9e, 0x27, 0xb1, 0xfe,
- 0x3e, 0x0f, 0x30, 0xd4, 0xaa, 0x8d, 0xeb, 0xd0, 0x55, 0x50, 0xc9, 0xc8,
- 0x54, 0x14, 0x4d, 0xbd, 0x64, 0xe2, 0x99, 0xb7, 0xe9, 0x9d, 0x97, 0xc5,
- 0x74, 0x5a, 0xdc, 0xf1, 0x25, 0xc2, 0xc2, 0x64, 0xb0, 0xad, 0xb6, 0x1d,
- 0x55, 0x55, 0x8c, 0x73, 0x31, 0x1c, 0xe9, 0xa2, 0x43, 0x57, 0x86, 0x95,
- 0x93, 0x5f, 0xad, 0xf4, 0x76, 0x67, 0xb1, 0xb5, 0x22, 0x4e, 0x92, 0x38,
- 0xbd, 0x1f, 0xa6, 0xa2, 0x56, 0x73, 0xfe, 0xd2, 0x93, 0x23, 0xa9, 0xac,
- 0x98, 0x46, 0x92, 0xb3, 0x3e, 0x76, 0x67, 0x7a, 0x7b, 0x3e, 0xf6, 0xac,
- 0x31, 0x38, 0xaa, 0xbd, 0x56, 0x73, 0xd5, 0x92, 0xda, 0xa0, 0xf5, 0x9e,
- 0xe4, 0x6c, 0x1f, 0x24, 0xed, 0x49, 0x4c, 0x7e, 0x22, 0xeb, 0xd3, 0x6b,
- 0xe3, 0x65, 0x55, 0x93, 0xa0, 0x69, 0xbd, 0x4a, 0x53, 0xd4, 0x2f, 0x91,
- 0xe4, 0x01, 0xd3, 0x59, 0xab, 0x39, 0x22, 0xba, 0x4f, 0x07, 0x4f, 0x3e,
- 0x19, 0xec, 0x04, 0x84, 0xb0, 0xc3, 0xeb, 0xcc, 0xaa, 0xd5, 0xee, 0x60,
- 0xa7, 0xf5, 0xf8, 0x26, 0xdf, 0xe9, 0x5b, 0xb6, 0xe4, 0x8d, 0x35, 0xc7,
- 0x6d, 0x6f, 0xe7, 0x80, 0xde, 0x0c, 0x6f, 0x32, 0xb9, 0xb3, 0x73, 0x6f,
- 0x9e, 0x72, 0xbd, 0xd3, 0x0e, 0xcf, 0x21, 0x0e, 0xca, 0x7d, 0x48, 0xf7,
- 0xf9, 0xbe, 0xb4, 0xb4, 0x3b, 0xd8, 0x0d, 0xb6, 0x5e, 0x87, 0xb3, 0xdb,
- 0x3d, 0x9c, 0x98, 0x00, 0x5a, 0x83, 0xd9, 0x35, 0xa1, 0x59, 0x24, 0x25,
- 0xd7, 0x6f, 0xab, 0x39, 0x53, 0xd5, 0xf4, 0x45, 0x5b, 0x32, 0x5d, 0xa4,
- 0x27, 0x8d, 0x45, 0xc2, 0x88, 0xf6, 0x3e, 0x62, 0x79, 0x40, 0x26, 0x39,
- 0x69, 0x59, 0xdc, 0x2f, 0x6d, 0x88, 0xdf, 0x1a, 0x59, 0x15, 0x0c, 0x75,
- 0x4f, 0x06, 0xd8, 0x41, 0x3a, 0xb8, 0x58, 0x70, 0x31, 0xf0, 0xc8, 0x97,
- 0x74, 0x6f, 0x95, 0x53, 0x68, 0x4d, 0x66, 0xf8, 0x24, 0x46, 0x42, 0xfc,
- 0x2d, 0x9f, 0xd6, 0x4a, 0x90, 0x62, 0x9d, 0xe2, 0xbe, 0x06, 0xed, 0xd1,
- 0x3d, 0x30, 0x1b, 0xe2, 0x86, 0xf3, 0xc5, 0xbc, 0xf5, 0xc2, 0x2b, 0xe1,
- 0xc2, 0x2a, 0x6a, 0xbf, 0x3d, 0x7b, 0x4b, 0x33, 0x3b, 0x19, 0xf2, 0xcd,
- 0x47, 0xaa, 0xa9, 0xac, 0x10, 0x3e, 0xa5, 0x65, 0x35, 0xde, 0xee, 0x45,
- 0x61, 0x92, 0x82, 0x5b, 0xcd, 0xc5, 0x23, 0x36, 0x83, 0x00, 0x1b, 0xa0,
- 0xe9, 0xdb, 0x32, 0x25, 0xad, 0x0d, 0x73, 0xd5, 0x59, 0x54, 0xdc, 0xfc,
- 0x40, 0x7a, 0x8e, 0x56, 0x07, 0xd2, 0x01, 0x94, 0x41, 0xd7, 0x72, 0xf3,
- 0x5d, 0x59, 0x59, 0x5e, 0x95, 0x79, 0x76, 0x55, 0xd4, 0x7c, 0xa4, 0xed,
- 0x33, 0x7a, 0xa6, 0xdf, 0x6a, 0x0e, 0xab, 0x86, 0x01, 0x81, 0x33, 0x89,
- 0x7e, 0xa6, 0xaa, 0x08, 0xef, 0x35, 0x69, 0x5a, 0xc4, 0xd5, 0xc0, 0x0d,
- 0xd6, 0x1e, 0x5a, 0xd8, 0x4f, 0xa2, 0x85, 0x4d, 0xa7, 0x2b, 0x57, 0x96,
- 0xbb, 0x3a, 0x38, 0xa1, 0xe9, 0xf1, 0xba, 0x06, 0xcb, 0x8a, 0xcf, 0x82,
- 0x65, 0x85, 0xb9, 0xd7, 0x16, 0x76, 0xf5, 0xca, 0x62, 0x69, 0x3f, 0x7a,
- 0x6d, 0xb9, 0x13, 0xe9, 0xaa, 0x7d, 0x2c, 0x2b, 0xd5, 0xf6, 0x3e, 0x66,
- 0x6d, 0x83, 0xc5, 0x95, 0x4f, 0x93, 0xbd, 0x88, 0x65, 0x2d, 0x7e, 0x9b,
- 0xc5, 0xdd, 0x65, 0x46, 0x55, 0x4f, 0xab, 0xdb, 0x88, 0x2f, 0xd0, 0xa4,
- 0xb7, 0xd8, 0x42, 0xc2, 0x86, 0xba, 0x90, 0x2f, 0xf0, 0x32, 0x7b, 0xb6,
- 0xf0, 0x41, 0x8c, 0x78, 0x36, 0x01, 0x67, 0x24, 0x49, 0xa3, 0x73, 0x38,
- 0x2b, 0x6a, 0x79, 0x59, 0x86, 0x3e, 0xf0, 0x46, 0x57, 0x6e, 0xd5, 0xdf,
- 0xcd, 0x3a, 0x9c, 0xc1, 0x4e, 0xcf, 0xff, 0xbe, 0xdb, 0x66, 0xe1, 0x7c,
- 0x07, 0xbb, 0x6f, 0xb1, 0x86, 0x24, 0x27, 0xd4, 0x65, 0x01, 0x83, 0x51,
- 0x63, 0x88, 0xb8, 0x15, 0x89, 0x33, 0x8e, 0x49, 0x87, 0x23, 0x1e, 0xb9,
- 0x99, 0x37, 0xbc, 0x65, 0x26, 0x4b, 0xd2, 0x06, 0x8f, 0xd2, 0xf1, 0x0d,
- 0xdf, 0x44, 0xb9, 0xda, 0xa1, 0x6d, 0x9b, 0xe4, 0xb6, 0x20, 0xdd, 0xf6,
- 0x36, 0x63, 0x8f, 0x92, 0x75, 0xb4, 0x15, 0xb0, 0xd6, 0x3d, 0x5e, 0xc4,
- 0xaa, 0x9a, 0xde, 0xee, 0x7d, 0xec, 0x22, 0x72, 0x87, 0x36, 0xc2, 0xbd,
- 0x78, 0x09, 0xf5, 0x82, 0x5b, 0xb1, 0x88, 0x78, 0xdb, 0x2f, 0xe3, 0xb0,
- 0xa0, 0x5b, 0x3e, 0x9f, 0x59, 0x0f, 0x79, 0xc8, 0x19, 0x58, 0xda, 0xa7,
- 0xa7, 0x6f, 0x57, 0x1e, 0xd7, 0x81, 0x7e, 0x9d, 0xb3, 0xf3, 0x68, 0x92,
- 0xc1, 0x4c, 0x44, 0x07, 0x68, 0x02, 0xe7, 0x10, 0x5d, 0x3f, 0x19, 0xb5,
- 0x19, 0x08, 0xdd, 0xfd, 0x27, 0x36, 0xd5, 0x27, 0xbf, 0x66, 0xaa, 0x4f,
- 0xfe, 0x05, 0x53, 0x7d, 0xb2, 0x72, 0xaa, 0x7e, 0x16, 0x4f, 0x79, 0x16,
- 0xf9, 0xe2, 0xf6, 0x69, 0x5b, 0x0c, 0xe2, 0x1b, 0x4e, 0xe5, 0xd1, 0xba,
- 0x71, 0x23, 0xd2, 0x15, 0x52, 0x4c, 0x6f, 0x33, 0x15, 0x12, 0xe8, 0x83,
- 0xe3, 0xb3, 0xdb, 0xa7, 0x2c, 0x76, 0xb2, 0x9c, 0xc6, 0xf6, 0x20, 0x96,
- 0x72, 0xbb, 0xa8, 0x94, 0x55, 0xdd, 0x50, 0x6d, 0x60, 0x83, 0x25, 0xdb,
- 0x77, 0x83, 0xd1, 0x7c, 0xa2, 0xa3, 0xf9, 0xa4, 0x6b, 0x34, 0x1f, 0x3f,
- 0x9c, 0x4f, 0x82, 0xe1, 0xfc, 0xc2, 0xd1, 0x3c, 0x0d, 0x46, 0x93, 0xf2,
- 0x68, 0xd2, 0x05, 0xbb, 0xe5, 0xda, 0x5b, 0x4c, 0x8a, 0xfd, 0x36, 0x7b,
- 0x76, 0xb7, 0xcc, 0xae, 0xaf, 0x2e, 0x8e, 0xb9, 0xf3, 0x88, 0x42, 0xfe,
- 0x67, 0x07, 0xa4, 0x0e, 0x55, 0xda, 0x51, 0x2d, 0xb7, 0x2d, 0xbd, 0xa6,
- 0x25, 0x7b, 0x2d, 0xd4, 0x41, 0x1a, 0x48, 0xb9, 0xf4, 0x3f, 0xda, 0x6e,
- 0xe7, 0x99, 0x63, 0x4b, 0x3c, 0xab, 0xfc, 0xaa, 0xcc, 0x83, 0x2e, 0xf8,
- 0x9d, 0xb6, 0xe4, 0x51, 0x64, 0x15, 0xab, 0x7d, 0xd9, 0x87, 0x9c, 0x1d,
- 0xb2, 0xb9, 0x1a, 0x90, 0x49, 0xcd, 0x4b, 0xc6, 0x62, 0x98, 0x1f, 0xb0,
- 0x53, 0x0a, 0x54, 0x25, 0x16, 0x46, 0x0c, 0x36, 0xb9, 0x9c, 0xa6, 0x57,
- 0x1d, 0x57, 0x63, 0x7e, 0x35, 0x2f, 0xd4, 0x41, 0x5a, 0x11, 0xd5, 0xc1,
- 0xa3, 0xad, 0x84, 0x58, 0x11, 0x17, 0x99, 0x8f, 0xa7, 0x4b, 0xb8, 0xc8,
- 0x4e, 0x69, 0x82, 0xc3, 0xe1, 0xd7, 0x21, 0x3b, 0x38, 0xe0, 0x15, 0x64,
- 0x91, 0xb2, 0x9f, 0x5e, 0xb1, 0x74, 0xf9, 0x42, 0x7e, 0x54, 0x35, 0xf3,
- 0xea, 0xcf, 0xbb, 0xe5, 0x9d, 0xa1, 0xea, 0x90, 0xb0, 0xf3, 0xf3, 0xab,
- 0x07, 0xc1, 0x3b, 0xbc, 0x7e, 0x95, 0x5f, 0x47, 0xb9, 0x23, 0xf4, 0x50,
- 0xb4, 0x39, 0x19, 0x8f, 0x95, 0x78, 0xd9, 0x84, 0xb5, 0x1e, 0x58, 0x2e,
- 0x93, 0xc3, 0xaf, 0x8e, 0x79, 0x9a, 0x69, 0x3e, 0x15, 0xb3, 0x9a, 0x4e,
- 0x3b, 0xcf, 0xa6, 0xac, 0x31, 0x61, 0xcd, 0xe0, 0xf8, 0x4c, 0x42, 0x33,
- 0xbd, 0xfe, 0xb7, 0xfe, 0xa6, 0xf8, 0x3b, 0xad, 0x62, 0xba, 0xfd, 0x74,
- 0xb0, 0xb3, 0xce, 0x22, 0x3c, 0x5d, 0x56, 0xd9, 0x7c, 0x5c, 0xb0, 0xa7,
- 0x62, 0x34, 0x4d, 0xe7, 0x37, 0x95, 0x28, 0x5d, 0xa2, 0x89, 0xf0, 0x58,
- 0x7b, 0x74, 0xfc, 0xca, 0xb2, 0x58, 0xce, 0x27, 0x1d, 0x5b, 0xae, 0xd3,
- 0xc1, 0x91, 0x57, 0x73, 0x29, 0xdc, 0x33, 0x44, 0x32, 0xe5, 0x8d, 0x99,
- 0x65, 0xf9, 0x4a, 0x80, 0xd3, 0x85, 0xb7, 0x0e, 0xe3, 0x72, 0xe2, 0x7e,
- 0xab, 0xb9, 0xfe, 0xd7, 0x10, 0xb3, 0x89, 0x6c, 0xd8, 0x1d, 0x2e, 0xe7,
- 0xa4, 0x30, 0x23, 0x6e, 0x74, 0x0b, 0x1e, 0x5f, 0xca, 0xd4, 0xf5, 0x41,
- 0xbb, 0xa1, 0x4d, 0xf1, 0x00, 0x5f, 0x11, 0x07, 0xfb, 0x34, 0xad, 0x6a,
- 0x18, 0x7a, 0x8c, 0x82, 0xf8, 0xc1, 0x50, 0x94, 0x4e, 0xe7, 0xf7, 0x1c,
- 0x20, 0xf0, 0x31, 0xa2, 0xf4, 0x65, 0x7e, 0x45, 0x1c, 0x54, 0x2c, 0x5c,
- 0x88, 0x29, 0xb0, 0x50, 0x02, 0xd6, 0xcd, 0xae, 0x0b, 0x10, 0x18, 0xc9,
- 0xb4, 0xd9, 0xf4, 0xb2, 0xeb, 0xbc, 0x9a, 0x72, 0x0e, 0xfd, 0x55, 0x98,
- 0x31, 0x06, 0x16, 0x1c, 0x05, 0x76, 0x40, 0x27, 0xe3, 0x69, 0x9a, 0xcf,
- 0xaa, 0x86, 0xf8, 0x3a, 0xe8, 0xe2, 0x26, 0x6c, 0x7e, 0xe5, 0xf7, 0x47,
- 0x6c, 0x52, 0x2f, 0x2b, 0x36, 0x95, 0xf0, 0x86, 0xa4, 0x26, 0x51, 0x8b,
- 0xc1, 0xfa, 0x3a, 0x1b, 0xdf, 0x80, 0xec, 0x02, 0x33, 0x62, 0x9b, 0xa3,
- 0xca, 0xaa, 0x63, 0xc1, 0x96, 0x1c, 0x4e, 0x40, 0xa2, 0x07, 0x3b, 0xe5,
- 0xf2, 0xf9, 0x64, 0x39, 0xc6, 0xb1, 0x65, 0xcb, 0x08, 0x89, 0x63, 0x65,
- 0xca, 0xe2, 0x4d, 0x2d, 0xe1, 0x1b, 0xa0, 0x8b, 0x3e, 0x11, 0xc1, 0xa2,
- 0x73, 0x74, 0x70, 0x6e, 0x88, 0x4c, 0xda, 0x60, 0x07, 0x95, 0xba, 0x02,
- 0x60, 0x65, 0x37, 0x4d, 0xaf, 0xb9, 0x9a, 0xad, 0xe6, 0x64, 0x6d, 0x7b,
- 0x74, 0xdd, 0xe4, 0x74, 0x7b, 0x9b, 0x7f, 0x79, 0x52, 0x28, 0x29, 0xf5,
- 0x49, 0x37, 0xaf, 0xf2, 0xb1, 0x18, 0xa5, 0xf2, 0xab, 0x8c, 0x19, 0x06,
- 0x0b, 0x9a, 0xf5, 0x74, 0x26, 0x41, 0x18, 0x6d, 0x42, 0xeb, 0x3b, 0x09,
- 0x2d, 0x22, 0xab, 0x90, 0xa3, 0x88, 0x3a, 0xe2, 0xe8, 0xc3, 0x4c, 0xa4,
- 0xa1, 0xc1, 0x2c, 0x17, 0xdb, 0x25, 0x0d, 0x45, 0x78, 0x66, 0x9b, 0xef,
- 0xc0, 0xc7, 0x51, 0xd5, 0xc4, 0x5b, 0x7a, 0x7c, 0x44, 0xc6, 0x30, 0x3c,
- 0xb3, 0x51, 0xcf, 0x2c, 0x8a, 0x66, 0x1a, 0x1d, 0xb1, 0x10, 0xc8, 0xde,
- 0xa6, 0xbb, 0x7c, 0x2c, 0x8e, 0x06, 0x38, 0xcb, 0x3a, 0x4c, 0x04, 0xe3,
- 0x69, 0xce, 0x0f, 0xce, 0x48, 0xad, 0xe5, 0xb7, 0x44, 0x6a, 0xe6, 0x3b,
- 0x84, 0x34, 0x78, 0x62, 0x8a, 0xc7, 0x62, 0xdf, 0x80, 0xb9, 0xac, 0xba,
- 0x86, 0x89, 0x3b, 0x2d, 0x73, 0x78, 0xa3, 0xa2, 0xe6, 0x64, 0xcc, 0x3c,
- 0xc9, 0x70, 0x9c, 0x50, 0xab, 0xc4, 0xe0, 0xeb, 0x6d, 0x05, 0x38, 0x3b,
- 0xcc, 0x75, 0x82, 0x83, 0x33, 0xe2, 0xf3, 0x2a, 0x91, 0x31, 0xc9, 0x0b,
- 0xbe, 0xbb, 0x5e, 0xf2, 0x6c, 0x56, 0xb0, 0xc4, 0x33, 0xf8, 0xc0, 0xae,
- 0x9b, 0xc6, 0xe0, 0x80, 0xf5, 0x89, 0xc9, 0x44, 0x5a, 0x83, 0xc3, 0x90,
- 0xa9, 0xa7, 0xf3, 0xee, 0x27, 0x8a, 0x62, 0x76, 0xe8, 0xda, 0x5a, 0x78,
- 0xcb, 0x10, 0x6d, 0x4d, 0x96, 0xdf, 0x9a, 0xfb, 0x39, 0x90, 0xac, 0xe1,
- 0xba, 0x5f, 0x1f, 0x66, 0x75, 0xbb, 0xb9, 0x43, 0x74, 0xb8, 0xbf, 0x1e,
- 0x44, 0x00, 0x48, 0xab, 0xba, 0x76, 0xa3, 0xcc, 0xfc, 0xb5, 0x62, 0x89,
- 0x21, 0x26, 0xca, 0x11, 0x64, 0xbb, 0x2f, 0xbf, 0x3d, 0x38, 0x79, 0x77,
- 0xb4, 0xfb, 0x97, 0x36, 0xf9, 0xd0, 0x77, 0x7b, 0xf2, 0xdd, 0xde, 0x7a,
- 0x17, 0xcf, 0x22, 0x0a, 0x4a, 0x92, 0x8d, 0x97, 0x1b, 0x49, 0x75, 0x3f,
- 0x1b, 0x15, 0x53, 0xc7, 0xb7, 0xb4, 0x13, 0x1e, 0x45, 0x4f, 0x5d, 0x1f,
- 0xe6, 0x80, 0xc6, 0xc2, 0xf0, 0x15, 0xd9, 0x1e, 0x3b, 0x1c, 0xa0, 0x2a,
- 0x97, 0x81, 0x02, 0xd2, 0x49, 0xb8, 0x18, 0x55, 0x8d, 0x2b, 0x4f, 0x37,
- 0x88, 0x5b, 0xae, 0x84, 0x20, 0x7b, 0x89, 0x9c, 0xa4, 0x36, 0x3b, 0x97,
- 0x19, 0x3b, 0xd7, 0x96, 0x19, 0x00, 0x55, 0x11, 0x49, 0x44, 0xd6, 0xbe,
- 0x27, 0xf2, 0xad, 0xd9, 0x7a, 0xf2, 0xae, 0x12, 0xa6, 0x92, 0x57, 0x7a,
- 0x3e, 0xdb, 0x0c, 0x8f, 0x99, 0x3e, 0xfb, 0x2b, 0x6f, 0xd3, 0x5a, 0x1d,
- 0x32, 0xeb, 0x3a, 0x96, 0x45, 0x4a, 0x1c, 0xbd, 0x5c, 0xd7, 0xf3, 0xec,
- 0xc3, 0x9c, 0xd4, 0x3e, 0xc0, 0x07, 0xac, 0x8c, 0xed, 0x32, 0x74, 0xea,
- 0xb8, 0x47, 0x0d, 0xc5, 0xe2, 0xe8, 0x3a, 0xe3, 0x08, 0x7c, 0xa0, 0x68,
- 0xd4, 0xec, 0x12, 0xbc, 0xd7, 0x23, 0xb9, 0x51, 0x66, 0x7a, 0x7e, 0xc5,
- 0xfb, 0xd7, 0x26, 0x7d, 0x6a, 0x6c, 0x94, 0xcf, 0x8d, 0xb6, 0x55, 0x0d,
- 0xeb, 0x9f, 0x30, 0x45, 0x4f, 0x0b, 0x65, 0xe9, 0xde, 0xc0, 0xaa, 0xfe,
- 0x4d, 0x47, 0x03, 0x9d, 0xb6, 0x3b, 0x8b, 0x0d, 0x2b, 0x12, 0xd9, 0x0a,
- 0x1b, 0xa8, 0x9c, 0x2d, 0x47, 0x4e, 0x0b, 0x62, 0xee, 0x73, 0xa1, 0x7c,
- 0xe5, 0xba, 0x49, 0x51, 0x76, 0x34, 0xf7, 0x36, 0xab, 0x11, 0x15, 0xb0,
- 0xad, 0x97, 0xb6, 0x6d, 0x24, 0x7a, 0x91, 0x81, 0x44, 0x04, 0xe6, 0x46,
- 0xea, 0xfd, 0x99, 0x62, 0x69, 0x0d, 0x8f, 0xaa, 0x79, 0x42, 0xb1, 0xc9,
- 0x29, 0xae, 0xfc, 0xc5, 0x92, 0xa5, 0xb2, 0xb7, 0x45, 0xb4, 0x48, 0x32,
- 0x03, 0x17, 0x11, 0x03, 0x2f, 0x1c, 0xe9, 0xe4, 0x76, 0x7e, 0xb9, 0xaf,
- 0x01, 0x8b, 0x11, 0xa0, 0x35, 0x1f, 0x25, 0xa7, 0x17, 0x5d, 0x9b, 0xef,
- 0x8e, 0xfd, 0x28, 0xfa, 0x7f, 0x4d, 0xed, 0x92, 0xff, 0x0d, 0xaf, 0xf6,
- 0x2f, 0x55, 0x76, 0xeb, 0xa7, 0xd5, 0x38, 0xcf, 0xbb, 0x04, 0x60, 0x0e,
- 0x81, 0xdc, 0x4a, 0x8e, 0x60, 0x55, 0x48, 0x0e, 0x86, 0x87, 0xc7, 0xc7,
- 0xce, 0x43, 0x3a, 0x90, 0x88, 0x02, 0xc4, 0x3e, 0xaa, 0x98, 0x05, 0x07,
- 0x81, 0x84, 0x90, 0x8c, 0xda, 0xb3, 0xcb, 0xd8, 0x56, 0x3b, 0x36, 0xd3,
- 0x84, 0xd0, 0x1e, 0x3d, 0xce, 0x26, 0x55, 0x5c, 0x27, 0x74, 0x61, 0x54,
- 0x6a, 0x69, 0xff, 0x4b, 0x7d, 0xbf, 0xc8, 0x5e, 0x1e, 0xac, 0x0f, 0x42,
- 0x15, 0xa5, 0xbd, 0xf6, 0xe9, 0x92, 0x45, 0x7f, 0xe1, 0x45, 0xb8, 0x19,
- 0x78, 0x95, 0x27, 0xea, 0x0d, 0x55, 0xb6, 0xc4, 0x9e, 0x8d, 0x19, 0x8b,
- 0x6f, 0x97, 0xf0, 0x07, 0xcd, 0x9f, 0x90, 0x66, 0x78, 0x4f, 0x57, 0xed,
- 0xac, 0x0a, 0xe5, 0x1b, 0xdc, 0x8e, 0x1f, 0x6b, 0x28, 0x54, 0x93, 0xc5,
- 0x97, 0xfc, 0x4e, 0xd2, 0x16, 0x72, 0x56, 0xca, 0x6e, 0xa6, 0xe0, 0x71,
- 0x98, 0xc5, 0x20, 0xbc, 0xff, 0x71, 0x30, 0xcc, 0x4e, 0x23, 0x71, 0x2c,
- 0xad, 0x9d, 0x5d, 0xb2, 0xb5, 0x33, 0x62, 0xf2, 0x39, 0xdd, 0xde, 0xc4,
- 0x77, 0x88, 0x94, 0xe6, 0xfc, 0xd3, 0xf9, 0x36, 0x72, 0x4c, 0x9f, 0x35,
- 0x8a, 0x92, 0x03, 0x6c, 0x1a, 0xdc, 0x9f, 0xa5, 0xcb, 0xce, 0xb5, 0x94,
- 0xeb, 0x9c, 0xa3, 0x01, 0x21, 0x74, 0x78, 0x4b, 0xf1, 0x0a, 0x21, 0x6e,
- 0xd3, 0x6c, 0xca, 0x2a, 0x44, 0x44, 0xf2, 0x83, 0x49, 0x19, 0xb4, 0xea,
- 0x81, 0x30, 0xb1, 0x15, 0x51, 0xf2, 0xbb, 0x0a, 0x1e, 0x5d, 0x52, 0x8c,
- 0xae, 0xb3, 0x52, 0x8f, 0xe2, 0xd2, 0xf4, 0x09, 0x71, 0x21, 0x7d, 0x50,
- 0x27, 0xc3, 0x87, 0xfb, 0xe8, 0xed, 0x61, 0x96, 0x09, 0xb1, 0xe9, 0x03,
- 0xb2, 0x91, 0xc1, 0xce, 0xb6, 0xcf, 0xd3, 0x0b, 0x9c, 0x7d, 0xbe, 0x16,
- 0x1e, 0xd3, 0x4b, 0x0a, 0xe5, 0x9c, 0x78, 0xc1, 0x39, 0xad, 0x8d, 0x0e,
- 0xc4, 0xd7, 0x8e, 0xd0, 0x51, 0x3d, 0xd2, 0x6d, 0xde, 0x7e, 0xc9, 0x2e,
- 0x6d, 0x89, 0xef, 0x22, 0xc5, 0x93, 0x6f, 0x29, 0x27, 0x2a, 0x0c, 0x92,
- 0x43, 0xd8, 0x34, 0xb9, 0x8d, 0x0a, 0x8d, 0x18, 0x1b, 0xf1, 0x5b, 0x15,
- 0x51, 0x4f, 0xea, 0x22, 0xc6, 0x3c, 0xe7, 0xc2, 0xd8, 0x68, 0x13, 0xee,
- 0x32, 0x44, 0xe5, 0x34, 0x9a, 0x72, 0x17, 0x3d, 0x5e, 0xeb, 0x26, 0x46,
- 0xb9, 0xfa, 0x37, 0xab, 0x2d, 0x08, 0x45, 0xf3, 0xc2, 0xbd, 0xcc, 0xae,
- 0xb7, 0x9b, 0x79, 0x71, 0x47, 0xb2, 0xce, 0xbc, 0x90, 0x13, 0x66, 0xfc,
- 0x83, 0x47, 0xdd, 0xbe, 0x66, 0x89, 0xdf, 0x05, 0x77, 0x40, 0xf8, 0x64,
- 0xed, 0xc2, 0xe1, 0xd4, 0x20, 0xac, 0x2c, 0xdb, 0x96, 0x2d, 0xe9, 0xd2,
- 0x6c, 0x95, 0x75, 0x8b, 0x34, 0x00, 0xb7, 0x09, 0xb4, 0x22, 0x7f, 0x83,
- 0xd8, 0xb5, 0x9e, 0x9a, 0x52, 0xc5, 0x8e, 0xd7, 0x5e, 0xb2, 0xde, 0x5f,
- 0xef, 0x75, 0x9c, 0x3c, 0x9b, 0x54, 0x7b, 0x5c, 0x8e, 0x5d, 0x74, 0x5c,
- 0x12, 0x70, 0xc4, 0x45, 0xae, 0x2f, 0x8d, 0xf9, 0xd1, 0x1b, 0x5b, 0x06,
- 0x64, 0xf3, 0xc8, 0xe6, 0x57, 0x88, 0xe0, 0xe3, 0x93, 0xd4, 0x16, 0xce,
- 0xbd, 0x7d, 0x40, 0x2e, 0x6e, 0xa7, 0xea, 0xe8, 0xd0, 0x06, 0xc9, 0xc1,
- 0x5c, 0x82, 0xba, 0xee, 0x52, 0x90, 0x9e, 0xeb, 0x02, 0x72, 0x4e, 0x7b,
- 0xb5, 0x0b, 0xa7, 0x26, 0x35, 0x6e, 0xad, 0x87, 0xee, 0x0a, 0xeb, 0x2a,
- 0xe1, 0x43, 0x40, 0x3c, 0x7a, 0x03, 0x92, 0xb1, 0xda, 0x09, 0xe0, 0x2a,
- 0x77, 0x8b, 0x22, 0xf7, 0xc6, 0xdd, 0x75, 0x31, 0x15, 0xd7, 0x5d, 0xab,
- 0x39, 0x2f, 0xf0, 0x26, 0x77, 0x70, 0x3b, 0x8b, 0xa6, 0xcd, 0x36, 0x96,
- 0x5b, 0x7a, 0xbf, 0xcc, 0x60, 0xb7, 0xe5, 0x88, 0x3d, 0xd2, 0x8a, 0xa9,
- 0xaf, 0x69, 0x96, 0x96, 0xd3, 0x7b, 0x13, 0x86, 0xfa, 0xb7, 0xad, 0xe6,
- 0xb0, 0xa2, 0x6c, 0x16, 0x21, 0x0a, 0x4b, 0xcb, 0x39, 0x3f, 0xa3, 0xae,
- 0x42, 0x0b, 0x96, 0xad, 0xc5, 0x79, 0x2b, 0x1e, 0x66, 0xbe, 0x95, 0x6f,
- 0x73, 0x56, 0xbd, 0x88, 0xd8, 0x48, 0x80, 0x6f, 0x53, 0x22, 0x1b, 0x35,
- 0x41, 0x32, 0x68, 0x52, 0x22, 0x63, 0xae, 0xf3, 0x40, 0x5f, 0xa3, 0xa3,
- 0x78, 0x4d, 0x37, 0x24, 0x29, 0x91, 0xcb, 0x74, 0xd5, 0x72, 0xe9, 0x55,
- 0x66, 0x5e, 0xe1, 0xc7, 0x6e, 0xd7, 0xe6, 0x79, 0xec, 0x92, 0x40, 0x57,
- 0xdc, 0xbd, 0x87, 0xb2, 0x79, 0xc4, 0x5c, 0xe7, 0x4b, 0xba, 0x80, 0xeb,
- 0xe4, 0x45, 0x71, 0x79, 0x49, 0xa4, 0xfe, 0x79, 0x24, 0x81, 0xcb, 0x23,
- 0xdb, 0xe7, 0x88, 0xa0, 0x0f, 0x58, 0x7a, 0x33, 0xa8, 0x2c, 0x49, 0xed,
- 0x94, 0x5c, 0xe5, 0xbc, 0x17, 0x89, 0x34, 0x37, 0xe8, 0x10, 0x81, 0x9a,
- 0x4f, 0x04, 0x17, 0x91, 0x78, 0xc5, 0x7d, 0xc8, 0x3d, 0x5d, 0xd5, 0xb5,
- 0x79, 0x93, 0x74, 0x1a, 0x6d, 0xa1, 0xf8, 0x26, 0x5f, 0x2c, 0x78, 0xb3,
- 0x10, 0xac, 0xeb, 0x54, 0x25, 0x6e, 0x6d, 0x94, 0xd1, 0x99, 0xc0, 0x9e,
- 0x9a, 0x4f, 0xb9, 0x58, 0x92, 0x00, 0x60, 0x72, 0xe0, 0x28, 0xa3, 0x93,
- 0xde, 0x6e, 0xce, 0x24, 0x7b, 0x1f, 0x97, 0xa5, 0x92, 0xd4, 0x84, 0x63,
- 0xb0, 0xe6, 0xca, 0x40, 0x79, 0x9b, 0x7c, 0xa8, 0x87, 0x6a, 0x96, 0x5d,
- 0x87, 0xdf, 0x5b, 0xb1, 0xdc, 0x81, 0x1e, 0x1e, 0xff, 0xef, 0x23, 0x1f,
- 0x45, 0xe7, 0xc2, 0xd4, 0xee, 0x41, 0xed, 0x5d, 0x17, 0x14, 0x31, 0x96,
- 0xc3, 0xa4, 0xbf, 0x8e, 0x81, 0x30, 0xa7, 0xb5, 0x4b, 0x80, 0xae, 0xc6,
- 0x82, 0x5d, 0xcf, 0x12, 0x6e, 0x88, 0x38, 0x7e, 0x26, 0x38, 0xd6, 0x23,
- 0xcb, 0x6c, 0x9b, 0x1d, 0xfe, 0xb1, 0x81, 0x49, 0x92, 0x20, 0x74, 0xb1,
- 0xbd, 0x1c, 0x75, 0x5c, 0x4b, 0xe4, 0x27, 0x24, 0x1a, 0xfe, 0x4e, 0xf6,
- 0x47, 0x42, 0x99, 0xb6, 0x21, 0x7e, 0x4a, 0x20, 0x5e, 0xcc, 0x0b, 0xd4,
- 0xe0, 0x22, 0x61, 0x47, 0x1d, 0xcc, 0xec, 0x9f, 0x68, 0x06, 0x1a, 0xe7,
- 0x8b, 0x6b, 0x96, 0xc6, 0x5f, 0x20, 0xba, 0x81, 0x2d, 0x4f, 0xf2, 0xc1,
- 0xe7, 0x9d, 0xb6, 0xf1, 0xa1, 0x9e, 0x8b, 0x4a, 0x6f, 0x52, 0x7b, 0x5b,
- 0xf9, 0x57, 0x6e, 0xf1, 0xe5, 0x16, 0x2f, 0xa9, 0x11, 0x35, 0xd4, 0x74,
- 0x9b, 0xe5, 0xd0, 0x91, 0xb4, 0x97, 0x45, 0xab, 0xf7, 0x21, 0x28, 0x88,
- 0x01, 0xb5, 0x6f, 0x07, 0xc9, 0x39, 0xdf, 0x93, 0xcb, 0x05, 0x87, 0x28,
- 0x22, 0x43, 0x05, 0x9f, 0x47, 0x9e, 0xaf, 0xaa, 0x0e, 0x1d, 0xb8, 0x48,
- 0xe1, 0x08, 0xbb, 0x9b, 0x37, 0x04, 0xa3, 0x3c, 0xfc, 0x8e, 0x64, 0xd5,
- 0xfd, 0xb6, 0x61, 0xc8, 0x47, 0x88, 0x13, 0x6f, 0x9c, 0x57, 0xd5, 0x14,
- 0x61, 0xf9, 0x93, 0x62, 0x5c, 0x6d, 0xa7, 0x8b, 0x45, 0xb5, 0x6d, 0x83,
- 0x6b, 0x04, 0xe0, 0x9b, 0x36, 0x3c, 0x1c, 0x06, 0x73, 0xe3, 0x6b, 0x57,
- 0xec, 0x55, 0x4e, 0x00, 0x9b, 0xc2, 0x03, 0x37, 0x57, 0xb3, 0xab, 0x04,
- 0xd5, 0x7c, 0x35, 0x5f, 0x5e, 0x9c, 0x0c, 0xb1, 0x5c, 0xed, 0x9b, 0x93,
- 0x43, 0xc2, 0x6d, 0x73, 0xb8, 0x6d, 0x6b, 0x1a, 0x0a, 0x9e, 0x28, 0x4d,
- 0xc3, 0xe1, 0x21, 0x3e, 0x1c, 0x2e, 0x59, 0x84, 0xa1, 0x2e, 0xca, 0xfb,
- 0xc4, 0xac, 0xc3, 0x6d, 0xda, 0xa7, 0xd9, 0x26, 0x1f, 0xfd, 0x9f, 0x2e,
- 0xc4, 0x55, 0x5e, 0x0f, 0x2e, 0xb3, 0x49, 0x51, 0xa6, 0x91, 0x09, 0xad,
- 0xe0, 0x04, 0x09, 0xac, 0xce, 0x98, 0x9e, 0xda, 0x26, 0xb9, 0xfc, 0x3d,
- 0xad, 0xd7, 0x80, 0x7f, 0x87, 0xce, 0x27, 0x8b, 0x66, 0x1f, 0xf3, 0x7a,
- 0xfd, 0xfe, 0x15, 0x62, 0xf5, 0xe8, 0x30, 0x54, 0xbf, 0x25, 0x5d, 0x93,
- 0x8c, 0x06, 0x47, 0xc2, 0xa4, 0x5b, 0x28, 0x3c, 0x37, 0x63, 0x61, 0xe2,
- 0x9f, 0xf4, 0xb1, 0x7b, 0xed, 0xcc, 0x34, 0x12, 0xc3, 0xae, 0x0a, 0xba,
- 0x4e, 0xaf, 0x67, 0xed, 0xf5, 0x14, 0xe5, 0xdd, 0x3c, 0x6d, 0x9a, 0xfe,
- 0x94, 0x54, 0x1c, 0xd7, 0x2f, 0x0c, 0x61, 0x39, 0x0f, 0x3a, 0xa0, 0xc5,
- 0x20, 0x56, 0x31, 0x57, 0x41, 0xa8, 0x63, 0x7b, 0x5a, 0x33, 0xb7, 0x18,
- 0x78, 0x65, 0x77, 0xb0, 0xa0, 0x57, 0x62, 0x97, 0x5c, 0xce, 0x7d, 0x9a,
- 0x9c, 0xd8, 0xb3, 0xd9, 0x72, 0xdd, 0x35, 0x3a, 0x2c, 0x51, 0xeb, 0x12,
- 0x6f, 0x2e, 0x15, 0x8e, 0x6b, 0x9f, 0x97, 0x97, 0x99, 0xdd, 0x8b, 0x8a,
- 0x24, 0x1a, 0xea, 0xe7, 0xf3, 0x28, 0xf2, 0xe7, 0x43, 0x3e, 0x5b, 0xce,
- 0x12, 0xec, 0x83, 0xd8, 0xcc, 0xf5, 0x49, 0x53, 0x36, 0xf8, 0x96, 0x46,
- 0x6c, 0x0c, 0x3a, 0xde, 0xa8, 0x02, 0x4e, 0x10, 0xb3, 0xcd, 0x9a, 0x44,
- 0x28, 0xd3, 0x9a, 0x34, 0xbe, 0x6a, 0xc6, 0x91, 0x11, 0x4d, 0x0e, 0x92,
- 0x2c, 0xae, 0xd3, 0x2a, 0xf3, 0x01, 0xb5, 0xb2, 0xde, 0x61, 0x6c, 0x74,
- 0x23, 0x44, 0xda, 0x12, 0x27, 0x3c, 0xbf, 0x25, 0xd9, 0x26, 0x2f, 0x26,
- 0xce, 0x97, 0x62, 0x77, 0x73, 0xd2, 0xe7, 0xe6, 0xf8, 0xb6, 0xd0, 0x6f,
- 0xda, 0x8a, 0xed, 0x07, 0xf8, 0x6c, 0x86, 0x30, 0x5f, 0x9a, 0xef, 0xef,
- 0xd3, 0xc1, 0x93, 0x3d, 0x76, 0xea, 0x86, 0x44, 0xaa, 0x91, 0xe4, 0xc4,
- 0x74, 0xc6, 0xf9, 0xcc, 0x85, 0xe7, 0xad, 0x56, 0x6b, 0x20, 0xe3, 0xcd,
- 0x58, 0x4c, 0x98, 0xa5, 0x1f, 0xb0, 0xe6, 0xbf, 0xbd, 0x45, 0xa0, 0x2f,
- 0x52, 0x21, 0x69, 0x70, 0x65, 0x9b, 0xe0, 0x1a, 0x5e, 0x30, 0x5a, 0x9c,
- 0xbf, 0x12, 0xbd, 0xb6, 0xec, 0x43, 0x16, 0xae, 0xd6, 0x4a, 0x8c, 0x90,
- 0x36, 0xbb, 0x4c, 0x42, 0xb4, 0x15, 0x44, 0xee, 0x1c, 0x69, 0x90, 0xb0,
- 0x59, 0x89, 0x23, 0xc5, 0xf8, 0xc4, 0x17, 0xf4, 0xc1, 0x75, 0x4e, 0x63,
- 0x2f, 0xc7, 0xd7, 0xf7, 0xac, 0xdb, 0xb0, 0xb9, 0x96, 0x5d, 0x5a, 0x0f,
- 0xd8, 0x03, 0xd0, 0x87, 0x9a, 0x50, 0x69, 0xf0, 0x09, 0x1f, 0x1e, 0x7a,
- 0xcc, 0xa4, 0x84, 0xd6, 0xf8, 0x58, 0xe2, 0xe6, 0x83, 0x9b, 0x4d, 0xab,
- 0x0c, 0x47, 0xac, 0x6b, 0x74, 0xfd, 0x22, 0xd0, 0x38, 0x70, 0x39, 0xb3,
- 0x3e, 0x94, 0x97, 0x2c, 0xef, 0x8a, 0xb5, 0x4f, 0xba, 0x62, 0x9b, 0xb5,
- 0xf4, 0xc6, 0x5a, 0x18, 0x6b, 0x6b, 0xf7, 0x31, 0x8d, 0xb0, 0x3e, 0xac,
- 0xaf, 0xdb, 0xda, 0x9b, 0xa7, 0x2e, 0xd2, 0x40, 0x0a, 0xfd, 0xca, 0x54,
- 0x35, 0x5b, 0x95, 0xdc, 0xd2, 0x88, 0x84, 0xeb, 0xb0, 0x78, 0x43, 0x43,
- 0x91, 0xf4, 0x53, 0xe6, 0xe4, 0xb4, 0x7f, 0x97, 0x75, 0x64, 0x12, 0x0e,
- 0xb6, 0xb4, 0xb9, 0xd3, 0xd3, 0x4b, 0x96, 0x2e, 0x89, 0x46, 0xea, 0xe4,
- 0xe4, 0x35, 0xdf, 0xcc, 0x87, 0xe7, 0xf4, 0x33, 0x37, 0x07, 0x27, 0x8b,
- 0xed, 0x48, 0x1f, 0x65, 0xeb, 0xc9, 0x9b, 0x6f, 0x87, 0xc9, 0xe6, 0xe9,
- 0x70, 0xfb, 0xc9, 0xf3, 0x9d, 0x58, 0x8f, 0xdf, 0xe4, 0x1c, 0x57, 0x0d,
- 0x4b, 0x44, 0xdc, 0xc5, 0xd3, 0x9d, 0x66, 0x50, 0x0b, 0xf7, 0xc5, 0x2b,
- 0x09, 0x0d, 0xbc, 0x53, 0xf9, 0x1e, 0x6e, 0x73, 0x96, 0xee, 0x96, 0xcf,
- 0x0d, 0x12, 0x9b, 0xae, 0xce, 0xf4, 0xec, 0xe8, 0x8d, 0x19, 0x17, 0x25,
- 0xe0, 0x22, 0x39, 0xa4, 0x51, 0xb3, 0x67, 0x24, 0x26, 0xac, 0xf3, 0xec,
- 0xd6, 0x2c, 0x94, 0x27, 0x7c, 0x19, 0x82, 0xe1, 0xb0, 0x09, 0xd4, 0xc4,
- 0x86, 0x45, 0xc6, 0xf2, 0xa0, 0x7f, 0x5f, 0x05, 0x5c, 0xb9, 0x80, 0x23,
- 0xe6, 0x33, 0xca, 0xc2, 0x20, 0x01, 0x12, 0xbd, 0x39, 0x7f, 0xeb, 0xb7,
- 0x3b, 0x81, 0x1d, 0x41, 0x2c, 0xbb, 0xcf, 0x07, 0x9f, 0x6e, 0xb9, 0xb5,
- 0x9c, 0xf4, 0x2c, 0xb6, 0xf8, 0xc5, 0x03, 0xee, 0x04, 0xe2, 0x22, 0xca,
- 0x6d, 0xb3, 0x30, 0x7b, 0x03, 0xef, 0xc1, 0xd8, 0x8f, 0x30, 0x7b, 0xf3,
- 0x83, 0x05, 0xee, 0x86, 0xb6, 0x7c, 0xaf, 0x09, 0xd8, 0x96, 0xc4, 0x07,
- 0x85, 0x26, 0xd5, 0xc0, 0xa0, 0x34, 0x19, 0x95, 0xc5, 0x1d, 0x9b, 0x6a,
- 0x24, 0xd0, 0x5d, 0x68, 0x93, 0x4d, 0x48, 0xb0, 0xdf, 0x24, 0xd7, 0x69,
- 0xe4, 0xef, 0xa1, 0x39, 0x6b, 0xe8, 0x6a, 0xca, 0x46, 0xde, 0x37, 0x27,
- 0x12, 0xea, 0xcd, 0xb7, 0xd7, 0x42, 0xbd, 0xf9, 0xe8, 0x67, 0x39, 0x22,
- 0x0e, 0xcf, 0x1a, 0x60, 0x2d, 0xa2, 0x61, 0x5e, 0x75, 0xb1, 0x5e, 0x18,
- 0x01, 0x9d, 0x44, 0xbe, 0xe8, 0x72, 0xa1, 0xe8, 0x7d, 0x68, 0xb6, 0x6e,
- 0x6c, 0x26, 0xa9, 0xba, 0x74, 0x87, 0xdd, 0x2f, 0xda, 0x94, 0x43, 0x02,
- 0xdb, 0x54, 0x4d, 0x5d, 0xdb, 0x1f, 0xfa, 0x24, 0xd3, 0xf5, 0x79, 0x70,
- 0x7d, 0x6a, 0x5e, 0xbc, 0xc0, 0xec, 0x53, 0x3f, 0xa4, 0x2b, 0x9a, 0x09,
- 0x85, 0x9a, 0xef, 0xbf, 0xe6, 0xad, 0xe0, 0x47, 0xa2, 0xed, 0xe3, 0x5d,
- 0x72, 0x21, 0xe0, 0x4e, 0xbd, 0xc2, 0xea, 0x89, 0xdd, 0x8c, 0xbf, 0x11,
- 0xab, 0x2b, 0xec, 0xc3, 0x9c, 0x56, 0xad, 0xde, 0x1a, 0x12, 0xe7, 0x23,
- 0x03, 0x10, 0x9b, 0xe2, 0xcb, 0x7b, 0x89, 0x60, 0x56, 0x4b, 0xb9, 0xb9,
- 0x0c, 0x9d, 0x31, 0x40, 0x9a, 0x94, 0x27, 0xbd, 0x69, 0xbe, 0x60, 0x31,
- 0xae, 0x1f, 0x99, 0x62, 0xe1, 0xd3, 0xe6, 0xd7, 0x24, 0x38, 0x9f, 0x93,
- 0x73, 0x65, 0x23, 0xc4, 0x51, 0x8e, 0xfc, 0xb4, 0x14, 0x26, 0x70, 0x6b,
- 0xd8, 0x2d, 0x42, 0xa7, 0xce, 0xec, 0x73, 0x02, 0x2a, 0x1f, 0x09, 0x6e,
- 0x87, 0x00, 0x41, 0x49, 0x90, 0x63, 0x11, 0x0a, 0x5e, 0xcc, 0x1b, 0x11,
- 0xc6, 0xfd, 0xc8, 0x5e, 0xa2, 0x66, 0x97, 0x5e, 0xe0, 0xc2, 0xca, 0xf9,
- 0x9e, 0x08, 0xb3, 0x90, 0x9c, 0xc5, 0x9d, 0x38, 0x6f, 0x79, 0xc5, 0x9f,
- 0x98, 0x19, 0x31, 0x32, 0x31, 0x20, 0xe0, 0xc6, 0xa5, 0x1e, 0xc1, 0x1a,
- 0xf5, 0xc7, 0xbe, 0xb8, 0x97, 0x20, 0x54, 0x2c, 0x59, 0x16, 0x53, 0x33,
- 0xd5, 0x46, 0x7f, 0x92, 0xa8, 0xa7, 0x6e, 0x4e, 0x2b, 0x41, 0xfb, 0x18,
- 0xeb, 0xbb, 0xd3, 0xe9, 0xcb, 0x29, 0x69, 0xdf, 0xf7, 0x1b, 0x89, 0xa6,
- 0xc8, 0x68, 0x20, 0x3b, 0xdb, 0x77, 0xd3, 0x44, 0xb6, 0x32, 0x19, 0x5f,
- 0x2f, 0xe7, 0x37, 0x26, 0xec, 0x4c, 0x8b, 0x82, 0x43, 0x07, 0x38, 0xa8,
- 0xbe, 0xd5, 0xdc, 0x46, 0xd0, 0xd9, 0x1f, 0xc3, 0xb6, 0x3b, 0x57, 0x59,
- 0xac, 0x61, 0x92, 0x9f, 0xe1, 0xd6, 0xc6, 0xdd, 0x6e, 0x92, 0xa1, 0x9a,
- 0x7c, 0xd1, 0x33, 0x4f, 0x76, 0x1d, 0x78, 0x55, 0xd2, 0xf8, 0x20, 0x7a,
- 0x4b, 0x1a, 0xec, 0x8b, 0xae, 0x41, 0x71, 0x81, 0xb1, 0xe9, 0xd6, 0xdc,
- 0xb7, 0xde, 0xf8, 0xe9, 0xbc, 0x37, 0x1d, 0xd7, 0xa5, 0x47, 0x6f, 0x80,
- 0xa3, 0x74, 0x90, 0xbc, 0x09, 0x93, 0xdf, 0x9a, 0x91, 0x0e, 0x6e, 0x27,
- 0x07, 0xc9, 0x19, 0xad, 0x57, 0x3f, 0x72, 0x66, 0x5d, 0x05, 0xcd, 0xa5,
- 0x7e, 0xb4, 0x93, 0x64, 0xe3, 0xb2, 0x28, 0x46, 0x69, 0xe9, 0x17, 0x1f,
- 0x1e, 0x79, 0x50, 0x82, 0x04, 0x80, 0xf0, 0x7a, 0xc4, 0x06, 0x69, 0x1c,
- 0xc4, 0x2f, 0xe4, 0xdd, 0x81, 0xca, 0x32, 0xe1, 0x01, 0xad, 0x8b, 0xe9,
- 0xc4, 0x2d, 0x45, 0xd8, 0x6b, 0xc7, 0xa6, 0xf1, 0xa6, 0xf6, 0x68, 0x3a,
- 0x65, 0x99, 0x73, 0x26, 0x6a, 0x99, 0xd5, 0xcb, 0x72, 0x2e, 0x99, 0x62,
- 0xf3, 0xec, 0x4e, 0x1c, 0x89, 0xc6, 0xdc, 0x39, 0x06, 0x84, 0x0d, 0x24,
- 0x4d, 0xe5, 0xbc, 0xff, 0x0a, 0x4c, 0x7c, 0x39, 0x5b, 0x58, 0x3c, 0x47,
- 0xe7, 0xc5, 0xf8, 0x1d, 0xec, 0xcc, 0x9a, 0xaa, 0x25, 0xa9, 0xa3, 0xe6,
- 0x12, 0x33, 0xee, 0xd6, 0xb0, 0x3e, 0x75, 0x9b, 0x32, 0xfd, 0x95, 0x24,
- 0x0e, 0x40, 0x97, 0x7d, 0x49, 0x4b, 0x10, 0x64, 0x71, 0xaa, 0x8f, 0x4a,
- 0x38, 0x95, 0x76, 0xd3, 0xe9, 0x27, 0x60, 0x95, 0x42, 0x1c, 0xd3, 0x39,
- 0xac, 0xc8, 0x7c, 0xcf, 0xd0, 0xeb, 0xd4, 0xd4, 0x40, 0xdd, 0xc5, 0x41,
- 0xee, 0xa2, 0x8d, 0x77, 0xcc, 0x9b, 0x15, 0x13, 0x0d, 0x12, 0x53, 0xb0,
- 0xe6, 0xb8, 0x94, 0x54, 0x4b, 0x70, 0x30, 0x21, 0x73, 0x77, 0x93, 0x07,
- 0x4e, 0x23, 0x95, 0xcd, 0x46, 0xb1, 0xdb, 0xc1, 0xac, 0xb1, 0x32, 0xe3,
- 0xdf, 0xc1, 0xa2, 0xb0, 0xc2, 0xa9, 0x26, 0xb9, 0x3d, 0x23, 0x39, 0x32,
- 0x62, 0x77, 0x8d, 0xa2, 0x77, 0x02, 0x97, 0x5d, 0xb4, 0xb2, 0x0d, 0x61,
- 0x58, 0xe4, 0x2f, 0xea, 0x2c, 0xb0, 0x37, 0x39, 0x05, 0x51, 0x1d, 0xcb,
- 0x10, 0x2e, 0xbc, 0x20, 0x11, 0x09, 0x19, 0x3c, 0xb3, 0x75, 0x5d, 0xad,
- 0x75, 0xd5, 0xe6, 0x96, 0x62, 0x8b, 0x67, 0x15, 0x11, 0xe7, 0xb3, 0xfc,
- 0x4d, 0xc3, 0x7c, 0xfc, 0x95, 0xd4, 0x2d, 0x59, 0xb0, 0x5e, 0xe2, 0xa5,
- 0x8f, 0xe8, 0x4d, 0xbd, 0x79, 0x1e, 0x14, 0x4a, 0xc4, 0xef, 0xc5, 0x1c,
- 0x52, 0x3d, 0x77, 0x30, 0x38, 0x4e, 0x21, 0xe2, 0xb7, 0x5c, 0xb2, 0x24,
- 0x2a, 0x4b, 0x3c, 0x0d, 0x91, 0x7e, 0x24, 0xd0, 0xb2, 0xc7, 0x9d, 0x23,
- 0xab, 0x88, 0x1e, 0xab, 0x22, 0xbb, 0x0d, 0x93, 0x3e, 0x5a, 0x79, 0xdc,
- 0x60, 0x96, 0x1f, 0xc5, 0x2b, 0x43, 0xff, 0x7e, 0x27, 0xbb, 0x94, 0x9c,
- 0xf2, 0x24, 0x79, 0xe5, 0x2e, 0xf5, 0x05, 0x4c, 0x1a, 0x8a, 0x7b, 0x20,
- 0x49, 0x83, 0x06, 0x7a, 0xd0, 0xba, 0xe4, 0x3b, 0xa2, 0xf7, 0x7a, 0x34,
- 0x3f, 0xe4, 0xfa, 0xe0, 0x54, 0x39, 0xc6, 0x21, 0x39, 0xb4, 0xca, 0x5a,
- 0x1c, 0x6f, 0x11, 0xf2, 0x61, 0x09, 0x89, 0xa9, 0x6b, 0xd2, 0x11, 0x3b,
- 0x35, 0x86, 0x20, 0x5f, 0xb9, 0xdc, 0xa9, 0x79, 0x86, 0x88, 0x69, 0xda,
- 0xf0, 0x8f, 0x33, 0x72, 0xaf, 0xa4, 0x1b, 0x40, 0x53, 0xf8, 0x14, 0x98,
- 0xd8, 0xc8, 0x2a, 0xa1, 0x55, 0xe2, 0x1c, 0x91, 0x00, 0x48, 0xac, 0x75,
- 0x5a, 0x29, 0x98, 0xc9, 0x48, 0x96, 0xe8, 0x01, 0xd2, 0x71, 0xb2, 0xc5,
- 0x83, 0xd4, 0x73, 0xa1, 0xa6, 0x7c, 0xa5, 0x9d, 0x9e, 0x5b, 0x72, 0xe5,
- 0x85, 0xe2, 0x43, 0x51, 0x9e, 0x6e, 0x32, 0x48, 0xc7, 0x6d, 0x20, 0xe9,
- 0x5f, 0xbc, 0xf4, 0x30, 0x36, 0x48, 0xa6, 0x04, 0x37, 0x9d, 0x95, 0x2c,
- 0x02, 0x55, 0x90, 0x98, 0xcc, 0x4c, 0xd2, 0x4c, 0xe9, 0xd8, 0xfd, 0x8c,
- 0xd5, 0x9a, 0x48, 0x59, 0x03, 0xc9, 0x1c, 0x7e, 0x75, 0x0c, 0x53, 0xd2,
- 0x34, 0x27, 0x7e, 0xda, 0x93, 0x6e, 0x64, 0x3a, 0x82, 0xb6, 0xe2, 0xee,
- 0xe2, 0xab, 0x7c, 0x6e, 0x4a, 0x4c, 0x98, 0x72, 0xe6, 0xdc, 0x5f, 0xbc,
- 0xd2, 0x16, 0x4b, 0xef, 0x12, 0x0e, 0xb1, 0xc7, 0xa9, 0x09, 0xaf, 0x2e,
- 0x2e, 0x2c, 0xf5, 0xa6, 0xd3, 0xee, 0xb5, 0x43, 0xd7, 0x9a, 0x00, 0xc8,
- 0xf2, 0xb1, 0x58, 0xd4, 0xc1, 0x5e, 0x23, 0xcb, 0x95, 0xdf, 0x64, 0x81,
- 0xae, 0xc9, 0xaa, 0xfd, 0xb5, 0xc8, 0x9b, 0x86, 0xfe, 0xbb, 0xb1, 0xa5,
- 0xe4, 0x74, 0xfb, 0x70, 0x15, 0xf4, 0xe2, 0x16, 0x33, 0x0b, 0xa5, 0x6f,
- 0x11, 0xf8, 0x45, 0x5e, 0x4f, 0x57, 0x34, 0xc7, 0x13, 0xfb, 0x77, 0x8d,
- 0xe2, 0xa2, 0x13, 0x01, 0x4d, 0x14, 0x56, 0x11, 0x4d, 0x6d, 0xb1, 0xa6,
- 0x5c, 0x2c, 0x2c, 0x3e, 0x49, 0xa3, 0x50, 0x16, 0x77, 0x48, 0xe8, 0x06,
- 0x79, 0x09, 0x7c, 0x90, 0xe4, 0x8b, 0x44, 0xe3, 0x8b, 0x88, 0xc6, 0xd3,
- 0xd0, 0xbf, 0x81, 0x2b, 0x09, 0x83, 0xc7, 0xed, 0x8a, 0x65, 0xe8, 0x6e,
- 0x0e, 0x51, 0x3e, 0xe1, 0xea, 0x09, 0xf9, 0x71, 0x5a, 0x70, 0x25, 0xf0,
- 0x45, 0xbf, 0x6b, 0x2f, 0xde, 0xcb, 0xc7, 0x57, 0xef, 0x17, 0x2e, 0xde,
- 0x23, 0xab, 0x77, 0x71, 0x2d, 0xc9, 0x00, 0x19, 0x62, 0xd8, 0x5e, 0x06,
- 0x31, 0x55, 0xb0, 0x66, 0x21, 0xaa, 0xd7, 0xc7, 0x56, 0x35, 0x8f, 0x66,
- 0xe0, 0xc1, 0x7a, 0xf9, 0x4f, 0xdb, 0x75, 0x50, 0xa3, 0x8d, 0xbe, 0xbb,
- 0x39, 0xf1, 0x64, 0xd0, 0xe0, 0x11, 0x69, 0xe8, 0x36, 0x5b, 0xc0, 0x2c,
- 0xf8, 0x75, 0x4e, 0x72, 0xf9, 0x40, 0xe4, 0x5f, 0x0b, 0x29, 0xe3, 0xec,
- 0x75, 0xe8, 0x38, 0x0d, 0x55, 0x67, 0x62, 0x66, 0x99, 0x68, 0x7e, 0x5f,
- 0x18, 0x67, 0x7f, 0x74, 0x72, 0x8d, 0x10, 0x2c, 0x44, 0xff, 0x25, 0x9a,
- 0xe1, 0xcb, 0xb2, 0x4e, 0xe8, 0x79, 0xeb, 0x70, 0x04, 0x1a, 0x27, 0xf3,
- 0x91, 0xd4, 0x4c, 0x8e, 0xc6, 0xf4, 0xb7, 0x7a, 0xcd, 0x05, 0x4b, 0x55,
- 0x17, 0x14, 0x0b, 0xf1, 0xea, 0xb5, 0xca, 0x79, 0xa5, 0x6c, 0xfb, 0x58,
- 0xa1, 0xef, 0xdc, 0xbe, 0xff, 0xd3, 0xa7, 0x08, 0x97, 0x8c, 0x85, 0x5d,
- 0xcb, 0x34, 0xd5, 0x8d, 0xe9, 0x89, 0xe2, 0x8a, 0x63, 0x57, 0xd8, 0x62,
- 0xfd, 0xb7, 0x25, 0xfc, 0xbb, 0x57, 0xab, 0x98, 0x00, 0x2e, 0x28, 0xf6,
- 0x57, 0xb2, 0x2b, 0x6e, 0x0a, 0x6d, 0x90, 0x9a, 0x06, 0x95, 0x7b, 0x35,
- 0xbf, 0x8f, 0x68, 0x42, 0x25, 0x5a, 0xa1, 0xc4, 0x07, 0x88, 0xd5, 0x91,
- 0x67, 0x8b, 0x32, 0x47, 0x59, 0x30, 0xe5, 0x0e, 0x0a, 0xa4, 0x9b, 0x2a,
- 0x9b, 0x66, 0x57, 0x6a, 0xa9, 0x3a, 0xfa, 0xf6, 0xe8, 0x24, 0x12, 0xb8,
- 0x6a, 0xf9, 0xdc, 0xf9, 0x1e, 0x03, 0x83, 0x86, 0xc1, 0x93, 0x00, 0xb3,
- 0x47, 0x6e, 0x0c, 0x06, 0x8a, 0x90, 0x16, 0x3b, 0xa3, 0x59, 0xe9, 0x61,
- 0xba, 0x9f, 0x32, 0x73, 0xc1, 0x95, 0x6c, 0x17, 0x9c, 0x08, 0x54, 0x53,
- 0x35, 0x90, 0x50, 0x1c, 0x5c, 0x4b, 0x5f, 0x0d, 0x87, 0xdb, 0x37, 0x59,
- 0x39, 0x62, 0x34, 0xac, 0x98, 0xa0, 0xa0, 0x63, 0x25, 0xaf, 0xe0, 0xfc,
- 0x17, 0x03, 0x3e, 0x6f, 0xb3, 0x9f, 0x49, 0xf4, 0xc6, 0xa2, 0x98, 0xe6,
- 0xe3, 0xfb, 0xe4, 0x95, 0x8e, 0xac, 0x62, 0xa5, 0x92, 0x37, 0x1d, 0x86,
- 0x7c, 0xb5, 0xa2, 0x9e, 0x7e, 0xd3, 0x3f, 0x18, 0xf6, 0x5f, 0x1d, 0x9d,
- 0x1c, 0x7d, 0x75, 0x70, 0x71, 0xe4, 0x92, 0x14, 0x10, 0xfa, 0xb1, 0x82,
- 0x2e, 0x8c, 0x1e, 0xbe, 0xd1, 0x91, 0x8a, 0xa9, 0x8a, 0x83, 0x83, 0x19,
- 0xbe, 0xee, 0x26, 0xab, 0x2d, 0x8a, 0x53, 0x24, 0xfd, 0x59, 0x0a, 0x81,
- 0x2f, 0x0a, 0x4c, 0xf4, 0x11, 0x36, 0xd3, 0x99, 0x0e, 0x35, 0x9a, 0x41,
- 0x3a, 0xbd, 0x63, 0x38, 0x8f, 0x77, 0x73, 0xd6, 0x4d, 0x34, 0xb7, 0x9e,
- 0x65, 0x56, 0xcc, 0x3e, 0xd8, 0x92, 0x60, 0xfd, 0x1b, 0xbb, 0x8c, 0x60,
- 0xa8, 0x6e, 0x99, 0x46, 0x02, 0xeb, 0x34, 0x3b, 0xee, 0x15, 0x1e, 0x6c,
- 0xc5, 0x5c, 0xf9, 0x44, 0x54, 0xc4, 0xd6, 0xe9, 0x77, 0x91, 0x44, 0xac,
- 0x5a, 0x52, 0x35, 0xbe, 0xce, 0x66, 0x2e, 0x40, 0x9b, 0x03, 0x05, 0xe8,
- 0x69, 0x45, 0xfb, 0xa0, 0x33, 0x76, 0xc7, 0xe1, 0x27, 0x38, 0xcc, 0xa2,
- 0x70, 0x20, 0x70, 0x8e, 0x83, 0xc5, 0x3a, 0x44, 0xa4, 0xbb, 0x1c, 0x09,
- 0xd6, 0x12, 0xc3, 0x81, 0x50, 0x3a, 0x10, 0x89, 0xc5, 0x8b, 0x76, 0x47,
- 0x88, 0x2a, 0x5a, 0x4b, 0x5b, 0x33, 0x5b, 0xc2, 0x1a, 0x26, 0x46, 0x41,
- 0x93, 0x39, 0x25, 0x19, 0xba, 0x36, 0x5b, 0xe1, 0x5c, 0x6c, 0x63, 0x7a,
- 0x37, 0xf0, 0x40, 0x07, 0xce, 0x13, 0x12, 0xc7, 0xa7, 0x23, 0x74, 0x3d,
- 0x08, 0x2d, 0x93, 0x58, 0x31, 0x17, 0x89, 0xce, 0x06, 0x6b, 0xc3, 0xf2,
- 0xb3, 0x8c, 0xec, 0x5f, 0xa7, 0x39, 0x09, 0x99, 0x5a, 0xf4, 0x51, 0x89,
- 0xbc, 0x7a, 0x3e, 0x01, 0x9d, 0xc9, 0xa5, 0xcd, 0x5d, 0x47, 0xc2, 0x66,
- 0x3f, 0x5b, 0x94, 0x75, 0x47, 0x60, 0xa5, 0x84, 0x16, 0x3a, 0xd3, 0xe5,
- 0x24, 0x48, 0xef, 0x0c, 0xb2, 0xf0, 0x8f, 0xce, 0xce, 0x05, 0x31, 0xf2,
- 0x84, 0x7f, 0xd1, 0x10, 0x86, 0x76, 0xcf, 0x50, 0xe4, 0x35, 0xb3, 0x01,
- 0xce, 0x52, 0xa8, 0xa1, 0x0e, 0x6b, 0xc8, 0xe2, 0xcd, 0x24, 0xe4, 0x41,
- 0xb1, 0x74, 0x94, 0xa4, 0x31, 0xa3, 0x36, 0xb5, 0x7b, 0x14, 0x2b, 0x0c,
- 0x85, 0xc7, 0xd0, 0x13, 0xc1, 0x08, 0xa3, 0x90, 0xb8, 0x0d, 0xb3, 0xcb,
- 0x9f, 0xf2, 0x97, 0x1c, 0xa8, 0xa3, 0x24, 0xb0, 0xc2, 0x4d, 0xe9, 0x33,
- 0x94, 0xb8, 0x49, 0x7e, 0x2b, 0x29, 0x81, 0x7f, 0x95, 0xd2, 0x38, 0x06,
- 0x7e, 0x9e, 0xd2, 0x85, 0x68, 0x3b, 0xc8, 0x6e, 0x6d, 0x13, 0xba, 0x28,
- 0x38, 0x20, 0x1e, 0xec, 0x49, 0x41, 0xcd, 0x00, 0x52, 0x07, 0x93, 0x76,
- 0x76, 0x92, 0x9e, 0x60, 0x4b, 0x92, 0x5e, 0xcf, 0x92, 0x0e, 0xd2, 0x31,
- 0xd8, 0x01, 0x17, 0x19, 0x90, 0x35, 0xc5, 0xc9, 0x62, 0x8d, 0xb2, 0x7b,
- 0x4d, 0xa0, 0x15, 0x9b, 0xe5, 0xa5, 0x7a, 0xb8, 0xd2, 0x69, 0x5e, 0xdf,
- 0x8b, 0x9a, 0x17, 0x5a, 0x0c, 0xae, 0xd3, 0xae, 0xfc, 0x03, 0x5a, 0x78,
- 0x07, 0xc0, 0x81, 0x89, 0xea, 0xb6, 0xc5, 0x36, 0x62, 0xd0, 0x46, 0x88,
- 0xce, 0x01, 0x14, 0x8e, 0x0f, 0x6c, 0x83, 0xce, 0x59, 0x29, 0xd6, 0xa1,
- 0xc8, 0xe2, 0x30, 0xd8, 0x85, 0x52, 0xf9, 0xbc, 0xe8, 0xa2, 0x2a, 0xe1,
- 0x10, 0x34, 0xd4, 0x54, 0x72, 0xf8, 0x9b, 0x24, 0x18, 0xf5, 0x2e, 0x09,
- 0xc5, 0xbc, 0x87, 0x68, 0x1f, 0x64, 0x3e, 0xbe, 0x56, 0x84, 0x3d, 0x76,
- 0x63, 0x0b, 0x29, 0x8d, 0xb2, 0xeb, 0xf4, 0x36, 0x67, 0xc0, 0x93, 0x10,
- 0xbd, 0xa7, 0xc3, 0x5a, 0x42, 0xfb, 0xcf, 0x58, 0x05, 0xbc, 0x31, 0x7c,
- 0x80, 0xf9, 0x5d, 0x09, 0xbd, 0x0d, 0xa1, 0x7b, 0xb0, 0x1b, 0x30, 0x2a,
- 0x9f, 0xf5, 0xd4, 0x57, 0x05, 0x5f, 0x73, 0x14, 0xe0, 0x8d, 0x50, 0x61,
- 0x07, 0xbd, 0xa1, 0x4f, 0xa6, 0xd5, 0x6d, 0xf7, 0x09, 0xab, 0x6e, 0x7f,
- 0xf9, 0x09, 0x13, 0x00, 0x28, 0x26, 0xa1, 0xa3, 0xb3, 0xe1, 0xb7, 0x89,
- 0x8b, 0x0f, 0xea, 0xba, 0x39, 0xe5, 0x70, 0xf9, 0x79, 0x81, 0xd4, 0x82,
- 0x03, 0xf6, 0x2b, 0x4f, 0x98, 0x3b, 0x60, 0xd4, 0xbf, 0x9e, 0xaa, 0xb3,
- 0x83, 0xe1, 0xb7, 0xad, 0xf3, 0xe4, 0x5d, 0xaa, 0x79, 0x9d, 0x74, 0x39,
- 0x41, 0x00, 0x4b, 0x54, 0x1a, 0x8e, 0x26, 0xb7, 0xd6, 0x49, 0x6a, 0xd5,
- 0xed, 0xc7, 0x90, 0x1a, 0x0d, 0x25, 0x22, 0xb5, 0x68, 0x79, 0x1f, 0x22,
- 0xb5, 0x70, 0x8f, 0x3a, 0x48, 0x8d, 0xda, 0x8f, 0x48, 0xcd, 0xd6, 0xb5,
- 0x9b, 0xd6, 0x56, 0x91, 0x9a, 0x05, 0x4a, 0x66, 0x42, 0x66, 0x21, 0x95,
- 0xc5, 0x14, 0xd6, 0xa0, 0x9b, 0x79, 0xd5, 0xf7, 0x48, 0x81, 0x2f, 0xdc,
- 0xaf, 0x9f, 0x77, 0xa0, 0x84, 0x84, 0x90, 0x0c, 0x82, 0xdc, 0x51, 0x2c,
- 0xeb, 0x2b, 0x90, 0xc3, 0xab, 0xb7, 0x43, 0x8f, 0xcc, 0x50, 0x5f, 0x97,
- 0x00, 0x10, 0x0a, 0x5a, 0x1b, 0x3c, 0x6c, 0x8b, 0x4d, 0x0d, 0xde, 0x52,
- 0xa0, 0x58, 0xb9, 0x83, 0x7e, 0x30, 0xac, 0x64, 0x53, 0x84, 0x17, 0x75,
- 0xac, 0x05, 0x18, 0x78, 0x2e, 0xc4, 0xf8, 0x12, 0x30, 0x56, 0x34, 0x0c,
- 0x85, 0x12, 0xe6, 0x20, 0x8f, 0x29, 0xdb, 0xcf, 0x34, 0xef, 0xd0, 0x65,
- 0x40, 0xcd, 0x5b, 0xc0, 0x88, 0xc9, 0x66, 0x47, 0x73, 0x73, 0xcb, 0xa7,
- 0xdd, 0x7a, 0xd0, 0x8a, 0xdc, 0x44, 0x98, 0xe8, 0x82, 0x11, 0xf0, 0x1e,
- 0x17, 0x4d, 0xdb, 0x2d, 0x3b, 0xa2, 0x34, 0x33, 0x49, 0xe0, 0x0a, 0x01,
- 0x02, 0x94, 0xd6, 0x5d, 0x94, 0x34, 0xd0, 0x91, 0xfb, 0x29, 0xf7, 0xe5,
- 0x92, 0xd5, 0xab, 0x0e, 0xf3, 0x13, 0xc8, 0x09, 0x01, 0xe9, 0x6c, 0xeb,
- 0x7a, 0x10, 0xb3, 0x02, 0x3b, 0xbf, 0xb8, 0x7d, 0xda, 0xe7, 0xa9, 0xd2,
- 0x5e, 0x2d, 0xfa, 0x3a, 0xe7, 0xce, 0xad, 0x37, 0xce, 0x31, 0xca, 0x25,
- 0x17, 0x35, 0x7c, 0x5e, 0x2e, 0x5d, 0x52, 0x97, 0x78, 0xa1, 0x91, 0x1c,
- 0x1d, 0x92, 0x43, 0x04, 0xc1, 0x52, 0x04, 0xaa, 0x42, 0x83, 0x6e, 0xf4,
- 0xfa, 0xe2, 0x1c, 0x5f, 0xb1, 0x98, 0x33, 0x65, 0x48, 0x1f, 0xb2, 0x02,
- 0x69, 0x79, 0xb5, 0x8c, 0x3c, 0x64, 0xb0, 0x00, 0x79, 0xd7, 0x8e, 0xc5,
- 0x41, 0x87, 0x49, 0xda, 0xff, 0x67, 0x6f, 0xe2, 0xc7, 0xec, 0xe2, 0x27,
- 0xff, 0xfc, 0x5d, 0xfc, 0xe4, 0x7f, 0xc8, 0x2e, 0x7e, 0xf2, 0xff, 0x91,
- 0x5d, 0xb4, 0x04, 0xf3, 0x60, 0x4f, 0x7a, 0xab, 0xb7, 0x93, 0xd5, 0xe1,
- 0x5a, 0x63, 0x44, 0xf9, 0xf6, 0xe6, 0x2d, 0xb0, 0x16, 0x44, 0xdd, 0xee,
- 0x48, 0xa6, 0x15, 0xbf, 0x3b, 0x72, 0x7e, 0xba, 0xb1, 0x7b, 0xd4, 0x96,
- 0x60, 0x8d, 0x1e, 0x9f, 0x05, 0xb8, 0x02, 0x7e, 0x77, 0x0c, 0x1d, 0x4a,
- 0x55, 0xe4, 0x4e, 0xb7, 0x75, 0xc5, 0xbe, 0x4c, 0xe2, 0xe5, 0x12, 0x3d,
- 0x5d, 0x41, 0xfa, 0x84, 0xbf, 0x53, 0xf6, 0x0b, 0x52, 0xc1, 0xc8, 0x62,
- 0xcd, 0x68, 0x93, 0xf6, 0x5f, 0xf0, 0x6a, 0xf7, 0xe5, 0xf1, 0xcf, 0x3b,
- 0x33, 0x48, 0x80, 0xff, 0xe4, 0x87, 0xd4, 0x4d, 0x0e, 0x4e, 0xa3, 0x72,
- 0x04, 0x61, 0x6e, 0xe7, 0x90, 0x24, 0x42, 0x8c, 0x97, 0xc7, 0xc8, 0xe1,
- 0xd7, 0x50, 0xc3, 0x7f, 0x8f, 0x1c, 0x32, 0xbe, 0xac, 0x01, 0xe8, 0xc4,
- 0xbe, 0xd0, 0x77, 0xe7, 0x27, 0xab, 0x12, 0x74, 0xc4, 0xdb, 0xc8, 0xb9,
- 0x92, 0xe7, 0x02, 0xff, 0x54, 0x26, 0x67, 0xe9, 0x55, 0xb6, 0x1e, 0x42,
- 0x81, 0x7d, 0x04, 0x70, 0x40, 0x94, 0x7a, 0xcf, 0x9a, 0xa8, 0x8f, 0x13,
- 0x0b, 0x33, 0xed, 0x61, 0x8c, 0xf0, 0x79, 0xf6, 0xe2, 0xfa, 0xeb, 0x42,
- 0x16, 0x12, 0x51, 0xb5, 0x99, 0x22, 0x69, 0xb9, 0xd8, 0xea, 0x18, 0x59,
- 0xff, 0x0b, 0x47, 0x8d, 0xaf, 0xdb, 0x00, 0xdd, 0x94, 0xe3, 0xc8, 0x5b,
- 0x7e, 0xc4, 0x9b, 0x53, 0x9b, 0xb1, 0xe6, 0x95, 0x1e, 0x04, 0x97, 0x07,
- 0x00, 0x94, 0xe2, 0x6b, 0xc1, 0x0f, 0xbc, 0x2c, 0xa6, 0x6d, 0xd2, 0x14,
- 0x04, 0x32, 0xe2, 0x02, 0x27, 0x3a, 0xac, 0x7d, 0x75, 0xcb, 0xca, 0x5e,
- 0xda, 0xa0, 0x54, 0x6c, 0x08, 0x85, 0xc4, 0x74, 0xca, 0x50, 0xef, 0xed,
- 0xe8, 0x11, 0xa6, 0x5f, 0x97, 0xd8, 0xcd, 0x76, 0x20, 0x1e, 0x10, 0xa4,
- 0x8c, 0x1c, 0xb8, 0xdf, 0x6e, 0x5a, 0xbf, 0xa1, 0xb7, 0xf2, 0x08, 0x5e,
- 0x5d, 0x8e, 0x5c, 0x7b, 0x11, 0x44, 0x72, 0xfd, 0xb8, 0x6f, 0xc6, 0x83,
- 0x9f, 0xbb, 0xa3, 0xd2, 0xe3, 0x7c, 0xbe, 0xa6, 0x17, 0xdd, 0xb2, 0xc7,
- 0xc3, 0xf0, 0xb0, 0xce, 0x2c, 0x25, 0x2c, 0xb7, 0x81, 0xf6, 0xa6, 0x96,
- 0xfa, 0x44, 0x04, 0xa0, 0x75, 0x25, 0x38, 0x98, 0x2d, 0x81, 0xdb, 0x46,
- 0xfc, 0x02, 0xd4, 0x7b, 0x5f, 0x90, 0x9a, 0xa1, 0xa2, 0x46, 0xf6, 0x1b,
- 0x8e, 0x45, 0xc1, 0xc1, 0x0a, 0xfa, 0x35, 0x01, 0x8e, 0x0e, 0xcc, 0xd9,
- 0x37, 0x87, 0xc3, 0xdf, 0xef, 0xee, 0x59, 0x0c, 0x1c, 0x87, 0xb7, 0xaa,
- 0x33, 0x7c, 0x08, 0x98, 0x84, 0x36, 0x79, 0xb3, 0x6e, 0x22, 0xf5, 0x1d,
- 0xe0, 0xef, 0xe0, 0xf0, 0x39, 0x97, 0x9c, 0xeb, 0x5f, 0x46, 0xd4, 0x0e,
- 0x86, 0x27, 0xf9, 0x4b, 0x16, 0x6b, 0x9c, 0x75, 0xea, 0xf0, 0xb4, 0x41,
- 0xce, 0x86, 0x24, 0x40, 0x1a, 0x6e, 0xdd, 0x1a, 0x00, 0x24, 0x74, 0x29,
- 0x96, 0x88, 0x48, 0xa0, 0x9e, 0x25, 0xd6, 0x27, 0x4a, 0x18, 0x53, 0x88,
- 0xd3, 0x2e, 0x80, 0x12, 0x8b, 0x95, 0x05, 0xca, 0x34, 0x8b, 0xc9, 0xeb,
- 0xc1, 0x92, 0xac, 0x77, 0x6d, 0x45, 0x98, 0x22, 0xb4, 0x28, 0x25, 0x73,
- 0xea, 0x26, 0xbb, 0x77, 0x20, 0x01, 0x89, 0xfb, 0xb4, 0xb9, 0xab, 0x8c,
- 0xb5, 0xc8, 0x71, 0x91, 0x91, 0xc9, 0x9c, 0xd8, 0xfc, 0xef, 0xc4, 0xdb,
- 0x2d, 0x14, 0x26, 0xaa, 0x10, 0x37, 0xc9, 0x51, 0x12, 0x1e, 0xba, 0x64,
- 0x06, 0xc0, 0x72, 0xad, 0xe8, 0x30, 0xbd, 0xef, 0xf4, 0xb3, 0xfa, 0x7a,
- 0x27, 0xc2, 0x80, 0xa1, 0x5c, 0x55, 0xb5, 0x05, 0xe3, 0xb7, 0xc0, 0xb6,
- 0xb2, 0x79, 0x78, 0x3e, 0x22, 0x1b, 0xdf, 0x3c, 0xcc, 0x40, 0x61, 0xab,
- 0x73, 0x3e, 0xbe, 0x81, 0x40, 0xaf, 0xe6, 0xa2, 0x70, 0x7a, 0x16, 0xe5,
- 0x21, 0x41, 0xce, 0x1d, 0xbb, 0x80, 0xe4, 0x03, 0xb6, 0xc1, 0x33, 0x59,
- 0xf2, 0x6d, 0x98, 0xcf, 0xc5, 0xeb, 0x08, 0xff, 0xe8, 0xfc, 0x36, 0x2f,
- 0x8b, 0x39, 0x64, 0x94, 0xdb, 0xb4, 0xcc, 0xa1, 0x1d, 0xd2, 0x58, 0xdf,
- 0xbf, 0x3a, 0x3e, 0x4f, 0x36, 0x69, 0x63, 0x47, 0xf7, 0x2b, 0xa0, 0xf0,
- 0xb6, 0xb3, 0x7a, 0xbc, 0xbd, 0xb8, 0xc9, 0xb7, 0xe7, 0x55, 0x35, 0x19,
- 0x6d, 0x39, 0xc0, 0x05, 0x74, 0x07, 0x3a, 0x14, 0x5a, 0xde, 0x85, 0x79,
- 0x60, 0xc9, 0x99, 0x40, 0x9b, 0xb4, 0x00, 0xd1, 0x2e, 0x54, 0xb4, 0xd0,
- 0xb3, 0x41, 0x55, 0x6c, 0x69, 0xb5, 0x98, 0xdb, 0x34, 0x9f, 0x3a, 0x6c,
- 0xb9, 0xb9, 0x34, 0x25, 0x71, 0x45, 0x9a, 0xdd, 0xce, 0xfe, 0x8a, 0x6c,
- 0x62, 0xba, 0x63, 0xfb, 0xb8, 0x6a, 0x8c, 0x8b, 0x60, 0x3d, 0x4a, 0x8a,
- 0xb8, 0x85, 0xa8, 0xd0, 0x72, 0x22, 0xd9, 0xd5, 0x85, 0x1e, 0xf7, 0x18,
- 0x18, 0x9d, 0x17, 0x45, 0x7c, 0x67, 0x6c, 0x87, 0xe8, 0x0c, 0x2a, 0x5b,
- 0x1f, 0x6c, 0xaf, 0x27, 0x0e, 0x0a, 0x9e, 0x56, 0x19, 0x85, 0x0d, 0x3c,
- 0xf6, 0x3e, 0x11, 0xd8, 0xe5, 0xb2, 0x72, 0xf6, 0xd1, 0xd4, 0xed, 0xd7,
- 0xa0, 0x3b, 0x49, 0xcf, 0x6d, 0xa7, 0xfa, 0x31, 0xab, 0x64, 0x7d, 0x7f,
- 0x1d, 0x47, 0x6b, 0x0e, 0x28, 0x6a, 0x11, 0x72, 0x74, 0x50, 0xd8, 0xaa,
- 0xf5, 0x9f, 0xd6, 0x93, 0x24, 0xb2, 0x8f, 0xca, 0x71, 0xca, 0x3d, 0x68,
- 0x31, 0xe7, 0x1d, 0x5e, 0xcd, 0xf3, 0xbf, 0x4b, 0x3e, 0xbb, 0x3b, 0xc4,
- 0x93, 0x0c, 0x71, 0xf4, 0xc0, 0x9a, 0x0a, 0x86, 0xd0, 0x09, 0xa3, 0xe0,
- 0x87, 0xf4, 0x53, 0x3c, 0x24, 0x83, 0xe7, 0x4f, 0xf9, 0x6b, 0x1a, 0x92,
- 0x79, 0x69, 0x65, 0x08, 0x1d, 0xe6, 0x8a, 0xe6, 0x80, 0x1c, 0xc0, 0xbf,
- 0xaf, 0x32, 0x10, 0xc7, 0xc3, 0xe6, 0xa7, 0x43, 0x75, 0x16, 0xbd, 0x49,
- 0xc7, 0x09, 0xfd, 0xf1, 0x3d, 0xe4, 0x8b, 0x2d, 0x1e, 0x79, 0x13, 0x1e,
- 0xcb, 0x8e, 0x98, 0x70, 0x46, 0xe1, 0x85, 0x5d, 0x08, 0x59, 0x3d, 0x3b,
- 0x70, 0xcd, 0x83, 0x13, 0x5c, 0x83, 0x59, 0x0e, 0xe6, 0x38, 0xd2, 0x64,
- 0x4f, 0x31, 0x51, 0xb3, 0x54, 0x99, 0x46, 0x01, 0x29, 0xee, 0xfd, 0x6d,
- 0xc7, 0x6c, 0x98, 0x61, 0xb8, 0xb8, 0x59, 0x48, 0xa0, 0xcc, 0x8b, 0x61,
- 0xed, 0xa6, 0xaf, 0x68, 0xaa, 0x0c, 0x26, 0x22, 0x10, 0xa3, 0x91, 0xd3,
- 0xbe, 0x16, 0xfb, 0x86, 0xf1, 0x7d, 0xe7, 0x44, 0x0a, 0x07, 0x2a, 0x31,
- 0xb3, 0xbe, 0x33, 0x9f, 0x32, 0xfb, 0x2f, 0x20, 0x7e, 0xd0, 0xfe, 0xaf,
- 0x22, 0xfd, 0xdf, 0x2e, 0x80, 0x49, 0x93, 0x70, 0x5f, 0x74, 0x25, 0x78,
- 0x0f, 0xb3, 0xa9, 0x41, 0x85, 0x5b, 0x32, 0xd5, 0xb8, 0xbc, 0x5f, 0xb0,
- 0x15, 0x4c, 0xde, 0xd2, 0xf5, 0x01, 0xbe, 0xb4, 0xe4, 0x4d, 0x85, 0x78,
- 0xf2, 0x83, 0x8e, 0xbc, 0x40, 0xdf, 0xa3, 0x26, 0x95, 0xc1, 0xf6, 0x49,
- 0xc4, 0x53, 0x43, 0xd8, 0x92, 0xcf, 0x38, 0x87, 0x92, 0xa8, 0x72, 0x22,
- 0xe9, 0x1b, 0x2e, 0x0f, 0x27, 0x0a, 0xc8, 0xe5, 0x76, 0xaa, 0xd0, 0xe9,
- 0xcd, 0xc7, 0x84, 0x33, 0xba, 0x99, 0xd9, 0xc2, 0xeb, 0xb6, 0x15, 0x28,
- 0x34, 0xfa, 0x7c, 0x84, 0x7f, 0x6d, 0xca, 0x83, 0x63, 0x96, 0xd4, 0x50,
- 0xb9, 0x9c, 0xa3, 0xf3, 0xe6, 0x4a, 0x39, 0xf6, 0xde, 0x3e, 0x67, 0xe7,
- 0xc7, 0xc3, 0xc3, 0x84, 0xcf, 0xd7, 0xe9, 0xdb, 0x93, 0x1f, 0x58, 0xe0,
- 0xae, 0x01, 0x82, 0xcd, 0xd6, 0x3a, 0xee, 0xbf, 0xeb, 0x62, 0xa8, 0x7a,
- 0x3e, 0xbc, 0xba, 0x83, 0x77, 0xc8, 0xcd, 0xdc, 0xbf, 0xb3, 0x2d, 0xf6,
- 0x19, 0x50, 0x4c, 0x2e, 0x70, 0xa2, 0x11, 0xc1, 0xe5, 0x2c, 0x85, 0x70,
- 0xc0, 0xd7, 0xd8, 0x80, 0xad, 0x96, 0x31, 0x0c, 0x13, 0x87, 0x80, 0x84,
- 0x82, 0xbe, 0x68, 0x49, 0x6c, 0x35, 0xa4, 0xde, 0x69, 0xa2, 0xad, 0x24,
- 0x4e, 0x9a, 0xe8, 0x95, 0x38, 0x73, 0x57, 0x24, 0x1e, 0x40, 0x26, 0x74,
- 0x59, 0xff, 0x2a, 0x2c, 0xf0, 0xe1, 0xd3, 0xb3, 0xae, 0x72, 0xfa, 0x11,
- 0x63, 0x20, 0x2e, 0xee, 0x93, 0xaf, 0x52, 0xe6, 0x07, 0x30, 0xfe, 0xa5,
- 0xd9, 0x2c, 0xba, 0xa0, 0xab, 0x82, 0xfd, 0x8e, 0x6a, 0x8c, 0xc3, 0xef,
- 0x8e, 0x9c, 0x01, 0x69, 0x26, 0x41, 0x7c, 0x09, 0x2f, 0xe6, 0x84, 0xfd,
- 0xe9, 0x46, 0x3d, 0xa0, 0x39, 0x1a, 0x4a, 0x1c, 0x6b, 0x63, 0xb5, 0x24,
- 0x06, 0xad, 0xa4, 0xa0, 0xbe, 0x34, 0x21, 0x53, 0x6b, 0xe7, 0x04, 0x89,
- 0xd4, 0x82, 0xf8, 0xf6, 0xe4, 0x05, 0xff, 0xbb, 0x62, 0xda, 0x81, 0x2c,
- 0x0c, 0x67, 0x72, 0x43, 0x7a, 0xe0, 0x97, 0x35, 0xf0, 0x94, 0xb3, 0x31,
- 0x1a, 0x9c, 0x27, 0xb6, 0x06, 0x73, 0xb4, 0x2f, 0x5d, 0xc8, 0xbd, 0xe4,
- 0xd5, 0xd1, 0x39, 0xf8, 0xd2, 0xd1, 0xdb, 0xaf, 0xe0, 0xc4, 0x09, 0x18,
- 0x3d, 0x37, 0x59, 0x09, 0x8f, 0x12, 0x40, 0x7c, 0x93, 0x1d, 0x5b, 0xcd,
- 0xf1, 0xc5, 0xce, 0xf6, 0x13, 0x08, 0x80, 0x93, 0xdf, 0x34, 0xd5, 0x29,
- 0x15, 0x05, 0xe2, 0xf0, 0x20, 0x9c, 0xdd, 0xaf, 0x53, 0x1c, 0xc2, 0xc5,
- 0x93, 0xb4, 0xec, 0x82, 0x73, 0xc1, 0x88, 0xac, 0x3a, 0x5c, 0x44, 0x9c,
- 0x80, 0x12, 0x40, 0x26, 0xf0, 0x21, 0xd6, 0xfb, 0x35, 0xf1, 0x45, 0x3d,
- 0x12, 0x1a, 0x56, 0x23, 0x4b, 0x45, 0x2c, 0x15, 0xab, 0x6f, 0x9e, 0xcd,
- 0x6a, 0x2b, 0x69, 0xe8, 0x0c, 0x2e, 0x67, 0x86, 0xf9, 0x8a, 0xba, 0x25,
- 0x9a, 0x57, 0x65, 0x64, 0x5b, 0x97, 0x2b, 0xc2, 0x64, 0x39, 0x83, 0xd2,
- 0xc1, 0x8a, 0xf7, 0xe4, 0x5a, 0x6f, 0x2c, 0x3d, 0xed, 0xa9, 0xea, 0xa4,
- 0x4a, 0xe5, 0x91, 0xe7, 0x9c, 0xcf, 0xa7, 0x44, 0x7b, 0x04, 0x6d, 0x46,
- 0x9b, 0xea, 0x71, 0x8d, 0x40, 0x2c, 0xd5, 0x6a, 0x19, 0x54, 0x83, 0xc0,
- 0x0f, 0x49, 0xe5, 0x7d, 0x7f, 0x78, 0xf0, 0xfe, 0xcb, 0x77, 0x6f, 0x5f,
- 0x9d, 0x1c, 0x6d, 0xb4, 0x29, 0xf2, 0x52, 0x23, 0x23, 0x2a, 0x0e, 0x03,
- 0x50, 0xb8, 0x85, 0x30, 0xb3, 0x1a, 0x67, 0x1c, 0xb8, 0x51, 0x72, 0xda,
- 0x99, 0x73, 0xa7, 0x7e, 0xc5, 0xdb, 0x66, 0x91, 0xe5, 0x7c, 0x02, 0x1c,
- 0x9f, 0x60, 0xf2, 0x86, 0xb0, 0xa2, 0xd6, 0x37, 0x1b, 0x5f, 0x27, 0xe2,
- 0x10, 0x23, 0xcf, 0x4c, 0xa0, 0x83, 0x5b, 0x76, 0xa0, 0x24, 0x35, 0xfb,
- 0x3a, 0x32, 0x0d, 0xf5, 0x9e, 0xb3, 0x05, 0xb0, 0xea, 0x29, 0x0d, 0xa8,
- 0x63, 0xbb, 0xab, 0x46, 0x38, 0x3c, 0xb7, 0x42, 0x94, 0xdc, 0xd7, 0x41,
- 0x8e, 0xcb, 0x7a, 0xa3, 0x67, 0x82, 0x4b, 0x98, 0xb4, 0x83, 0x0b, 0x3e,
- 0x82, 0xee, 0xe0, 0x44, 0xbb, 0x54, 0xe8, 0x7a, 0x90, 0x7d, 0xc8, 0x20,
- 0x8f, 0xe8, 0x5b, 0x87, 0x2a, 0x19, 0x7c, 0x57, 0x94, 0xb0, 0x8f, 0xbe,
- 0xf2, 0x12, 0x82, 0x3c, 0x44, 0xda, 0x63, 0x1c, 0xbb, 0xc8, 0x52, 0x40,
- 0x8a, 0xba, 0x08, 0xa8, 0xc9, 0x77, 0x76, 0x70, 0xf1, 0x75, 0xd7, 0x11,
- 0xee, 0x96, 0xd8, 0x14, 0x25, 0x84, 0x35, 0x05, 0x20, 0xa1, 0xaa, 0x62,
- 0xd4, 0x0b, 0xbf, 0x20, 0xaa, 0x6e, 0x33, 0x8c, 0x2e, 0x7d, 0x22, 0xd4,
- 0x1f, 0x44, 0x54, 0x55, 0x59, 0xd5, 0xdf, 0x8d, 0x46, 0xd8, 0xdd, 0x79,
- 0xb5, 0x56, 0x84, 0x91, 0x18, 0xe0, 0x82, 0x11, 0xb4, 0x7f, 0x5b, 0x46,
- 0x04, 0x32, 0x6c, 0x31, 0x22, 0x2f, 0x93, 0xfd, 0xf7, 0x59, 0x52, 0x90,
- 0x57, 0x19, 0x9f, 0x52, 0xe1, 0x53, 0x76, 0xfd, 0x81, 0x37, 0xf9, 0xdc,
- 0x0d, 0x1e, 0x99, 0x2b, 0x21, 0xe1, 0x6e, 0x03, 0xc6, 0x09, 0x75, 0xf9,
- 0x34, 0x31, 0x87, 0x9b, 0xa9, 0x90, 0xb8, 0xbf, 0x9e, 0x6c, 0x66, 0x83,
- 0x2b, 0x6a, 0x6f, 0x9d, 0xdb, 0xd9, 0xdd, 0xe7, 0x7f, 0xf7, 0xf0, 0xef,
- 0x93, 0xf5, 0xad, 0xc8, 0xe2, 0x51, 0x81, 0x7d, 0xc5, 0xf9, 0x77, 0x88,
- 0xf6, 0x09, 0x6c, 0x18, 0x96, 0x3b, 0x9d, 0xaf, 0x22, 0x24, 0x15, 0xf1,
- 0xba, 0x20, 0x21, 0xfc, 0x42, 0x80, 0x55, 0xa2, 0xac, 0xda, 0x88, 0x6b,
- 0x6f, 0xd0, 0xdc, 0xc6, 0x92, 0x7a, 0x1d, 0xa6, 0x19, 0x8c, 0xdf, 0x97,
- 0xd9, 0x75, 0x5a, 0x11, 0x8f, 0x58, 0xd6, 0x39, 0x87, 0x01, 0x74, 0x40,
- 0x55, 0x4f, 0x35, 0x23, 0x89, 0x66, 0xac, 0x1d, 0x3b, 0xc0, 0x13, 0xdb,
- 0x5a, 0x31, 0x35, 0xb2, 0xa8, 0xa3, 0x4f, 0xf4, 0xb5, 0x24, 0x65, 0x17,
- 0x23, 0x34, 0xd3, 0x1f, 0x3f, 0x16, 0x16, 0x94, 0x9a, 0xb1, 0x29, 0x15,
- 0x81, 0x09, 0x49, 0x76, 0x49, 0x2b, 0x96, 0x0b, 0x42, 0x80, 0xa4, 0x56,
- 0xc9, 0xa8, 0xe3, 0x94, 0x08, 0xb9, 0xe3, 0x34, 0xce, 0xca, 0xfd, 0x0d,
- 0x0e, 0xe2, 0x74, 0x3a, 0x14, 0x9d, 0x6a, 0x12, 0xdf, 0xc7, 0xc4, 0xcb,
- 0x80, 0xbb, 0x0a, 0x38, 0x87, 0xf0, 0x76, 0x9d, 0xac, 0xe4, 0x94, 0x19,
- 0xb1, 0x2b, 0xb4, 0x6c, 0x17, 0xde, 0xa7, 0xe3, 0xd3, 0xbf, 0xfa, 0xe4,
- 0x2c, 0x72, 0x5a, 0x9e, 0xc9, 0x62, 0x39, 0x62, 0x65, 0xeb, 0x85, 0xfc,
- 0x95, 0xd0, 0x9f, 0xd3, 0x7c, 0xcc, 0x2a, 0xd1, 0xaf, 0x3b, 0x38, 0xfe,
- 0x7d, 0x77, 0x95, 0xaf, 0xbe, 0xcb, 0xed, 0xc0, 0x5c, 0x38, 0x7c, 0x22,
- 0xd0, 0x95, 0xdd, 0xe7, 0xce, 0xad, 0x13, 0x34, 0xaa, 0x77, 0x73, 0x14,
- 0xf4, 0xc0, 0xc2, 0xd3, 0x0a, 0xe0, 0xba, 0xef, 0xda, 0x40, 0xd2, 0x29,
- 0x60, 0xbf, 0x8b, 0xb2, 0x55, 0x8a, 0xd5, 0x58, 0x65, 0x1b, 0x05, 0x60,
- 0xb5, 0xd4, 0x10, 0x16, 0xca, 0x92, 0x7a, 0x03, 0x39, 0x82, 0x02, 0x6b,
- 0xd2, 0x27, 0x0f, 0x1a, 0xa3, 0xae, 0x4c, 0x3e, 0x8f, 0xa8, 0xd6, 0x7b,
- 0xbd, 0xda, 0xfa, 0xa9, 0xec, 0xb0, 0xab, 0x82, 0x64, 0xe9, 0x1e, 0x12,
- 0x3c, 0x2d, 0xcb, 0xb7, 0x8c, 0x6c, 0x3f, 0xdc, 0x23, 0xba, 0x74, 0xec,
- 0xa6, 0x2e, 0x9a, 0xa1, 0x10, 0xc1, 0xd5, 0x39, 0x2a, 0xca, 0xba, 0x05,
- 0x04, 0x10, 0x31, 0x10, 0x84, 0x56, 0xf0, 0x52, 0x20, 0xe0, 0xbd, 0x54,
- 0x74, 0x2c, 0xb3, 0x80, 0x76, 0xc6, 0x3d, 0x5b, 0xd0, 0x9d, 0xea, 0xc7,
- 0x56, 0xd8, 0x05, 0x15, 0x4b, 0x58, 0x22, 0xf1, 0x61, 0xd3, 0x9e, 0xd9,
- 0x28, 0x34, 0x47, 0x17, 0xa4, 0xea, 0x57, 0xc3, 0x6f, 0x38, 0x9d, 0x55,
- 0xdc, 0x25, 0xd5, 0x3f, 0xff, 0x2e, 0x59, 0x9d, 0x3c, 0xfc, 0xe4, 0x79,
- 0x2b, 0x13, 0x9b, 0x75, 0x83, 0xaa, 0x4e, 0xeb, 0x65, 0xf5, 0x11, 0x87,
- 0x43, 0xaf, 0x06, 0x2d, 0xbd, 0x42, 0xef, 0x38, 0x2c, 0x1f, 0x25, 0xb0,
- 0xd5, 0x6a, 0x81, 0xab, 0xec, 0x0a, 0x61, 0x22, 0xa0, 0x8b, 0xa1, 0x34,
- 0x64, 0xb0, 0x1a, 0x9b, 0xe9, 0x4d, 0x3a, 0x48, 0x4e, 0x0f, 0x87, 0x67,
- 0xdc, 0xc5, 0x82, 0xe3, 0x44, 0xb6, 0x98, 0xb8, 0xa3, 0x0c, 0x7a, 0xab,
- 0x75, 0xf0, 0xf8, 0xe2, 0x59, 0x11, 0x84, 0x16, 0x26, 0x86, 0x1c, 0x06,
- 0x38, 0x2a, 0x04, 0x38, 0x46, 0x2e, 0xa7, 0xa8, 0xa3, 0x05, 0x5d, 0x11,
- 0x93, 0x2d, 0x97, 0xc1, 0xd5, 0x33, 0xee, 0xe9, 0x52, 0xba, 0xaa, 0xe5,
- 0xd5, 0x95, 0x86, 0x7d, 0xa8, 0x3b, 0xd8, 0x40, 0x86, 0xb2, 0x32, 0x12,
- 0xb1, 0x6c, 0xda, 0xd7, 0xec, 0x84, 0xcb, 0x00, 0x92, 0x85, 0x14, 0x72,
- 0x88, 0x51, 0xf3, 0xc2, 0xb7, 0x8a, 0xdc, 0xba, 0xa9, 0x5a, 0x8b, 0x0d,
- 0xc0, 0xad, 0xd7, 0xc1, 0x72, 0xb0, 0x29, 0x06, 0xc9, 0x77, 0xa9, 0x25,
- 0x88, 0x57, 0x01, 0x0c, 0x7b, 0x02, 0x5e, 0x49, 0xc1, 0x8e, 0x80, 0x95,
- 0x7e, 0x63, 0xf2, 0x65, 0xc9, 0xcb, 0x11, 0x6f, 0x93, 0xbe, 0x9e, 0xee,
- 0x36, 0xe9, 0xeb, 0x92, 0xb4, 0xd4, 0xac, 0x8f, 0xbc, 0xab, 0xb5, 0x8f,
- 0xe4, 0xbe, 0x78, 0x45, 0x53, 0xb5, 0xac, 0x94, 0x1f, 0x4e, 0x16, 0x0e,
- 0x93, 0x2b, 0x64, 0xd8, 0xde, 0xa8, 0xd7, 0x78, 0xcd, 0xf2, 0x61, 0xa5,
- 0xa4, 0xb8, 0x86, 0x9c, 0x01, 0x83, 0x49, 0x79, 0xa4, 0x7a, 0x74, 0xa4,
- 0xb4, 0x34, 0x9e, 0x55, 0x4e, 0xb0, 0x3a, 0xf9, 0x5b, 0x42, 0xd3, 0x95,
- 0x6f, 0xc8, 0x11, 0x30, 0x42, 0x96, 0x8d, 0xde, 0xa8, 0x92, 0xd7, 0xf9,
- 0x3c, 0xaf, 0xb8, 0xea, 0x2d, 0x17, 0xc8, 0x4b, 0xaf, 0xb2, 0x78, 0xa3,
- 0x88, 0xc6, 0x2b, 0xb1, 0x4c, 0xa4, 0x89, 0x42, 0x84, 0x97, 0xf9, 0x42,
- 0x3c, 0x47, 0x9a, 0x6b, 0xa4, 0xce, 0x23, 0xc6, 0xed, 0x09, 0xa6, 0xb9,
- 0x6a, 0x2f, 0x1f, 0xe7, 0x45, 0xbc, 0x4f, 0x00, 0xb9, 0x7a, 0xc4, 0xf4,
- 0x99, 0x6c, 0xf2, 0x41, 0x39, 0x1d, 0xd2, 0xfe, 0xed, 0xa0, 0x60, 0x6e,
- 0x8a, 0x62, 0x71, 0xf4, 0x1b, 0x5b, 0x59, 0xbf, 0x4f, 0x92, 0xdd, 0x9d,
- 0xc1, 0x73, 0x71, 0x1d, 0xe1, 0xab, 0xad, 0x24, 0xe0, 0x5d, 0xab, 0x79,
- 0xcd, 0xd3, 0xbd, 0x06, 0x2d, 0x5c, 0x22, 0x02, 0x8b, 0xe8, 0x73, 0x45,
- 0x36, 0xe0, 0x6b, 0x80, 0xb4, 0x57, 0x9c, 0x9d, 0xc0, 0x93, 0xda, 0xe4,
- 0x6a, 0x57, 0x52, 0xbd, 0x2f, 0x85, 0xed, 0x6b, 0x8b, 0xdd, 0x47, 0x7a,
- 0xb2, 0x00, 0x45, 0x53, 0x75, 0x16, 0xbd, 0x61, 0x80, 0x5d, 0xa9, 0xbd,
- 0x85, 0x04, 0x60, 0x88, 0xf9, 0x08, 0xd2, 0xd4, 0xa0, 0x36, 0x14, 0xd4,
- 0xa6, 0xc3, 0x9a, 0xd5, 0xe3, 0xe0, 0xcb, 0x49, 0x96, 0x4e, 0x3b, 0x93,
- 0x85, 0x2f, 0xa5, 0x10, 0xb7, 0x45, 0xe9, 0xc1, 0x64, 0x31, 0xb7, 0xc0,
- 0x66, 0xcd, 0xef, 0xc1, 0x1e, 0xa6, 0xf3, 0x06, 0x3e, 0x33, 0x0e, 0x62,
- 0x2c, 0x5c, 0xb3, 0x91, 0x1d, 0xf0, 0xcd, 0x0e, 0xd1, 0x07, 0xe6, 0xf3,
- 0x20, 0xb3, 0x0f, 0xe9, 0xb4, 0x6f, 0x4e, 0x12, 0xf7, 0x00, 0x68, 0x5a,
- 0xee, 0xe3, 0xc8, 0xb6, 0x6f, 0x61, 0x61, 0x28, 0xf6, 0xaa, 0x58, 0xab,
- 0x96, 0x66, 0xc7, 0xe3, 0xba, 0x77, 0x45, 0xd5, 0xb7, 0x54, 0x61, 0x85,
- 0xff, 0x1a, 0xd4, 0xbf, 0x28, 0x23, 0x83, 0x1a, 0x87, 0x87, 0xcb, 0x59,
- 0xc4, 0x1d, 0x2e, 0xcb, 0x5f, 0x0b, 0xb1, 0xa7, 0xb5, 0x16, 0x73, 0xe4,
- 0x81, 0x2a, 0xa0, 0xdf, 0xde, 0x5e, 0x37, 0x79, 0x2a, 0x30, 0xa8, 0xfa,
- 0x1b, 0x78, 0x29, 0xfa, 0x55, 0x7a, 0x99, 0x19, 0x07, 0xe6, 0xc3, 0xc8,
- 0x58, 0xee, 0x63, 0x5a, 0x3e, 0x49, 0xcb, 0xc3, 0x67, 0x6c, 0xd7, 0xec,
- 0xc7, 0xe5, 0xaa, 0x58, 0x0c, 0x67, 0x4b, 0x9f, 0x67, 0x8d, 0x09, 0x5b,
- 0xbf, 0x5d, 0x96, 0x4a, 0x35, 0xcd, 0x17, 0x16, 0x71, 0x47, 0xba, 0xae,
- 0x16, 0x20, 0xa6, 0xfd, 0xef, 0x08, 0xdd, 0x6c, 0x01, 0x98, 0xc2, 0x56,
- 0x75, 0xcb, 0xb1, 0x0f, 0x93, 0x64, 0xd3, 0x35, 0x2f, 0xad, 0x3f, 0xdd,
- 0xd9, 0xc5, 0x78, 0x9f, 0xee, 0x7c, 0x1a, 0xd6, 0x37, 0x70, 0x20, 0x0f,
- 0x8a, 0xe1, 0xad, 0x69, 0x21, 0x0f, 0x25, 0x29, 0x4e, 0xd9, 0x68, 0x8a,
- 0x55, 0xcd, 0x66, 0xcb, 0x29, 0x64, 0x21, 0x45, 0xbe, 0xe8, 0xe7, 0x73,
- 0xc1, 0x59, 0xe0, 0x1c, 0x40, 0xd9, 0x49, 0x45, 0xcb, 0x68, 0xa3, 0x65,
- 0x71, 0x14, 0x8f, 0x61, 0x41, 0xa9, 0x4c, 0x27, 0x98, 0x18, 0x4d, 0x50,
- 0x0c, 0x85, 0xc1, 0x35, 0x76, 0x0a, 0x54, 0x0f, 0xe6, 0x5e, 0x91, 0x5d,
- 0xc7, 0x18, 0x18, 0xf0, 0x04, 0x19, 0xff, 0xe2, 0x82, 0x4d, 0x7c, 0x6a,
- 0x6e, 0x22, 0xae, 0xb8, 0x0d, 0xa8, 0x0b, 0xcd, 0xc9, 0x19, 0x33, 0x4e,
- 0xa5, 0xab, 0xb4, 0x7b, 0xfe, 0xfa, 0xb0, 0xd5, 0xdc, 0xde, 0x93, 0xcf,
- 0x3e, 0x73, 0x30, 0xb6, 0x99, 0xe6, 0x30, 0x78, 0xb4, 0x74, 0x36, 0x7a,
- 0x4b, 0x36, 0xb0, 0x78, 0xe8, 0xb8, 0x46, 0x2a, 0xe7, 0x49, 0x4a, 0x54,
- 0x6f, 0xac, 0x93, 0x6d, 0xe8, 0x9a, 0x6e, 0x48, 0x32, 0x8f, 0x2a, 0xea,
- 0x5a, 0xbe, 0x53, 0xcb, 0xf0, 0x05, 0x08, 0xd2, 0x62, 0x9b, 0xd5, 0xd8,
- 0x26, 0x3a, 0x04, 0x5f, 0x44, 0x31, 0xe2, 0x57, 0x73, 0xa9, 0xde, 0xf0,
- 0x57, 0x16, 0xc5, 0xaf, 0xb2, 0x3a, 0x4e, 0x42, 0x0b, 0x52, 0xfc, 0x1b,
- 0x5d, 0xac, 0x06, 0x71, 0xb4, 0x52, 0x44, 0x92, 0x43, 0xf7, 0x42, 0x94,
- 0x57, 0x43, 0x6a, 0x0b, 0x6a, 0x38, 0x7e, 0x01, 0x22, 0x7a, 0xe1, 0x60,
- 0x3f, 0xba, 0xc1, 0x76, 0xbf, 0x30, 0x60, 0x50, 0x75, 0xc8, 0x00, 0xb1,
- 0xb2, 0xae, 0x53, 0x2b, 0xa4, 0x0e, 0x33, 0x21, 0x23, 0x49, 0x38, 0x74,
- 0x73, 0xab, 0x3a, 0x12, 0x05, 0x22, 0xe4, 0x1a, 0xd5, 0xfc, 0xc2, 0xb5,
- 0x08, 0xdc, 0x63, 0x41, 0xf2, 0xe0, 0xb1, 0x60, 0x15, 0xd0, 0x83, 0x81,
- 0x96, 0x62, 0x21, 0xaa, 0x46, 0x71, 0xca, 0x46, 0x46, 0x93, 0x7f, 0x3f,
- 0x58, 0xa7, 0xe8, 0xe4, 0x1f, 0xb9, 0x32, 0x9c, 0x56, 0xb1, 0x03, 0x36,
- 0x1f, 0x9f, 0x68, 0xa2, 0xca, 0x93, 0xbf, 0x37, 0x7b, 0x7a, 0xf0, 0x37,
- 0xf8, 0x99, 0xf6, 0xc9, 0xe7, 0x77, 0x36, 0xcc, 0x91, 0x1f, 0xba, 0xb5,
- 0x41, 0x99, 0x32, 0x1c, 0x07, 0xcc, 0x2b, 0x6e, 0x66, 0xee, 0x69, 0xb2,
- 0x02, 0x99, 0x52, 0x0a, 0x82, 0x13, 0x3b, 0xdb, 0xef, 0xb4, 0x36, 0xf6,
- 0x5f, 0xbb, 0x81, 0xbe, 0xfc, 0xa2, 0xd1, 0xda, 0xdd, 0xdd, 0x60, 0x76,
- 0x6f, 0xdf, 0xa1, 0xe0, 0x7b, 0x07, 0x3e, 0x93, 0x22, 0x98, 0x0b, 0x45,
- 0x79, 0xd0, 0x8b, 0xb0, 0x86, 0x9d, 0xaf, 0x3f, 0xcb, 0x10, 0x62, 0x69,
- 0xe5, 0xe8, 0xab, 0xcb, 0xc1, 0xaa, 0xc7, 0x19, 0x85, 0xd7, 0xd9, 0x30,
- 0x35, 0x2a, 0x88, 0xde, 0x8c, 0x94, 0x18, 0x36, 0xa0, 0x2e, 0x97, 0xe3,
- 0x3a, 0x16, 0xf4, 0xac, 0xaa, 0x94, 0x80, 0x6e, 0xd7, 0x41, 0xc8, 0xb2,
- 0xd4, 0x1c, 0x6f, 0x9e, 0x76, 0x3e, 0xcd, 0x08, 0x7e, 0x77, 0x68, 0x0a,
- 0xed, 0x93, 0x08, 0xe4, 0xed, 0x8d, 0x9e, 0x24, 0x3b, 0x68, 0x2e, 0xbb,
- 0xcf, 0xb3, 0x5e, 0xb9, 0x94, 0xeb, 0x77, 0xd9, 0xe8, 0xe5, 0x17, 0xa8,
- 0xdf, 0x0e, 0xe4, 0x3e, 0x41, 0xf0, 0x66, 0x3a, 0xda, 0xe6, 0x3f, 0xd7,
- 0x13, 0x36, 0x30, 0x76, 0xac, 0x24, 0xd1, 0xdf, 0xaa, 0x16, 0x03, 0x64,
- 0x94, 0xa0, 0xb5, 0xcb, 0xa2, 0x58, 0xd9, 0xd8, 0x0f, 0xae, 0x46, 0x29,
- 0x56, 0x23, 0x08, 0x6f, 0x97, 0x68, 0x73, 0x4f, 0x58, 0x42, 0x4c, 0x6e,
- 0x8f, 0xf4, 0x68, 0x75, 0xa5, 0x4e, 0xc3, 0xd0, 0x25, 0x37, 0xa2, 0xa5,
- 0x51, 0xbe, 0xd4, 0xf2, 0xa8, 0xac, 0x74, 0xac, 0x5e, 0x10, 0x7e, 0xfa,
- 0xe5, 0x17, 0x00, 0x35, 0xe3, 0x5f, 0xff, 0xe2, 0xde, 0xe6, 0x7f, 0x88,
- 0x2e, 0xe9, 0x6c, 0xaf, 0x9c, 0x08, 0x69, 0x34, 0xf6, 0xf8, 0xb6, 0x98,
- 0x8f, 0xcc, 0x52, 0xb3, 0xd1, 0xdb, 0x60, 0xa9, 0x6c, 0xe3, 0x2f, 0x1b,
- 0x90, 0x22, 0xcc, 0xda, 0x8f, 0xb2, 0x32, 0x13, 0xa9, 0xf9, 0x56, 0x44,
- 0x91, 0xa6, 0x1c, 0x98, 0x8f, 0x27, 0x2a, 0x0c, 0xfc, 0xb1, 0x31, 0xff,
- 0xb4, 0xee, 0x46, 0xfd, 0xd3, 0xba, 0x1f, 0xf7, 0x4f, 0xeb, 0x7e, 0xe4,
- 0x3f, 0xad, 0xff, 0x8a, 0x1d, 0xdd, 0x90, 0xe6, 0x7d, 0xeb, 0x41, 0xe3,
- 0x41, 0xdb, 0xeb, 0x1b, 0xab, 0x9a, 0x0e, 0x83, 0x85, 0x38, 0x88, 0x29,
- 0x4d, 0x5a, 0xcb, 0x44, 0x07, 0xc8, 0xaf, 0x84, 0x56, 0xe5, 0x95, 0x89,
- 0xf7, 0x3a, 0xac, 0xd5, 0xe1, 0x03, 0xbc, 0xa8, 0x2c, 0xe1, 0x56, 0x53,
- 0xb6, 0xf5, 0x05, 0xc8, 0x80, 0xd6, 0x81, 0x5b, 0x6a, 0x8b, 0x75, 0x88,
- 0x02, 0x60, 0xdc, 0xeb, 0x9d, 0x80, 0x7e, 0x97, 0xcb, 0x52, 0x02, 0xad,
- 0x84, 0x67, 0x0a, 0xce, 0x83, 0xa1, 0x8f, 0x6a, 0x5f, 0x6f, 0x0e, 0xde,
- 0xbe, 0x3b, 0x38, 0x79, 0x30, 0xe6, 0x37, 0x0c, 0xce, 0x73, 0x9e, 0x22,
- 0x98, 0x07, 0x42, 0xab, 0x18, 0x67, 0x3d, 0xf0, 0x1d, 0xce, 0x85, 0xce,
- 0x7f, 0xe4, 0x2b, 0xfd, 0xe7, 0xce, 0xfc, 0x98, 0xef, 0x54, 0x8a, 0x7d,
- 0x1d, 0x16, 0x19, 0xb9, 0x11, 0xfe, 0xb3, 0x6e, 0xef, 0xf3, 0xeb, 0xeb,
- 0xea, 0x68, 0x75, 0x85, 0x43, 0x3b, 0x6c, 0x79, 0x8e, 0xeb, 0x3b, 0x3d,
- 0xd7, 0xac, 0x37, 0xbd, 0xa0, 0x10, 0x3a, 0xac, 0x86, 0x9c, 0x73, 0x78,
- 0x79, 0x19, 0x98, 0x59, 0x5b, 0xcd, 0x1d, 0x1c, 0x1e, 0xfa, 0xac, 0xa9,
- 0x26, 0xfe, 0x42, 0x23, 0x6a, 0xf4, 0x9f, 0x6f, 0x88, 0xc7, 0xc2, 0x4d,
- 0x51, 0xea, 0x93, 0x33, 0x4b, 0xfa, 0x75, 0x21, 0x49, 0x8b, 0x2f, 0x74,
- 0x34, 0x9f, 0x77, 0xae, 0xa3, 0x20, 0x60, 0x05, 0x82, 0xa6, 0x15, 0x7d,
- 0x42, 0x79, 0xab, 0xa1, 0xba, 0x44, 0xcf, 0x0e, 0x18, 0x91, 0x55, 0x53,
- 0xf8, 0x44, 0x5b, 0x88, 0x22, 0xcc, 0x33, 0x2b, 0x00, 0xe0, 0xa7, 0x6f,
- 0x58, 0x45, 0x66, 0xde, 0x32, 0xa1, 0xec, 0x62, 0x39, 0x23, 0xea, 0x25,
- 0x89, 0x63, 0x42, 0xca, 0xe8, 0x23, 0x51, 0x80, 0xde, 0x1e, 0x58, 0xe0,
- 0x5f, 0x04, 0x27, 0x5a, 0x0c, 0xa0, 0x29, 0xc8, 0x81, 0x25, 0xa7, 0xd7,
- 0x79, 0x37, 0xac, 0x0f, 0x8f, 0x2f, 0x8e, 0x92, 0x83, 0x77, 0x17, 0x5f,
- 0xaf, 0x2b, 0x58, 0x42, 0x2b, 0x25, 0x19, 0xf0, 0x49, 0xa4, 0xe3, 0xd2,
- 0xc2, 0x2b, 0xa0, 0x69, 0xc5, 0x2b, 0xc9, 0xc2, 0x5a, 0x07, 0x0a, 0x7d,
- 0x2b, 0xee, 0xa6, 0xb5, 0xd1, 0xcf, 0x06, 0xcf, 0xb6, 0x5a, 0x1b, 0xb3,
- 0x1a, 0x99, 0x32, 0x28, 0xd5, 0xa6, 0xab, 0xc5, 0x97, 0x40, 0x80, 0x8e,
- 0xc8, 0x11, 0xb2, 0xdb, 0x1e, 0xbb, 0x1c, 0x22, 0xb3, 0xfa, 0xfe, 0x3a,
- 0x10, 0x14, 0x0c, 0x4f, 0xc2, 0xeb, 0xdb, 0x80, 0x6f, 0x74, 0xc0, 0x65,
- 0x2a, 0xca, 0x84, 0xf5, 0x88, 0x5d, 0xee, 0x52, 0x47, 0xed, 0x13, 0x73,
- 0x51, 0x30, 0x5a, 0x33, 0x17, 0x08, 0x0a, 0x2b, 0xc3, 0xc4, 0x06, 0x4d,
- 0x13, 0x20, 0x7c, 0x92, 0x58, 0x27, 0x9a, 0x63, 0x32, 0xcb, 0x05, 0x03,
- 0x27, 0x80, 0x86, 0x6c, 0x53, 0xb2, 0x2a, 0x65, 0x3f, 0xca, 0xcf, 0x6e,
- 0x1e, 0x70, 0xa8, 0x85, 0x24, 0x21, 0x2d, 0xe8, 0x0b, 0x18, 0x8c, 0xc6,
- 0xbe, 0xfb, 0xda, 0x39, 0xa8, 0x0b, 0x29, 0x01, 0x07, 0x58, 0xe0, 0x18,
- 0x6a, 0x7b, 0x93, 0xe1, 0x1b, 0xad, 0x7a, 0x21, 0x4b, 0xc7, 0xda, 0x1e,
- 0x67, 0x3f, 0xb4, 0xb2, 0x1d, 0x22, 0xd4, 0x91, 0x2e, 0x04, 0xb0, 0xe0,
- 0x24, 0xc6, 0x17, 0x2d, 0xb8, 0xdf, 0xf8, 0x6e, 0xd2, 0x9d, 0xcf, 0x2d,
- 0x55, 0xa7, 0x0b, 0x29, 0xb1, 0x2e, 0x06, 0xf8, 0xc3, 0xef, 0x5e, 0xb5,
- 0x6a, 0x3b, 0x4b, 0x75, 0x65, 0xf1, 0x00, 0x4b, 0x16, 0xd6, 0x2a, 0xec,
- 0x90, 0x00, 0xf9, 0x80, 0x28, 0x49, 0x0a, 0x9f, 0x4c, 0xb2, 0x6c, 0xe1,
- 0x40, 0x4a, 0x51, 0x70, 0x47, 0x14, 0x61, 0x3a, 0x73, 0x6c, 0x33, 0xba,
- 0x87, 0x57, 0x65, 0xc5, 0xe8, 0x94, 0x0b, 0xf8, 0xdc, 0x6e, 0x86, 0x0b,
- 0x27, 0x35, 0x2b, 0xd9, 0xfd, 0xf4, 0xc9, 0x67, 0x49, 0xc5, 0x89, 0x83,
- 0x79, 0x0b, 0x91, 0x48, 0x90, 0x7c, 0x56, 0x23, 0x38, 0xa8, 0xdc, 0x6c,
- 0xae, 0x18, 0xcd, 0x67, 0x25, 0x5d, 0xb9, 0xb8, 0xcb, 0x70, 0x73, 0x69,
- 0x6e, 0x5d, 0x9c, 0xd0, 0x4f, 0x8b, 0x68, 0x32, 0xa3, 0x25, 0x9b, 0x25,
- 0x58, 0x2d, 0xb1, 0xc2, 0x0c, 0x02, 0xe2, 0x9c, 0x14, 0xc0, 0x4f, 0xef,
- 0x25, 0xe7, 0x47, 0x17, 0xe7, 0xbd, 0x64, 0x78, 0x71, 0x7a, 0xbe, 0x02,
- 0x76, 0xa3, 0x1e, 0x83, 0xe9, 0xf1, 0x9a, 0x99, 0x85, 0xcb, 0xa2, 0xda,
- 0x02, 0x8e, 0x01, 0x2f, 0xb7, 0x30, 0x91, 0xaa, 0x13, 0x0c, 0x30, 0xc0,
- 0x04, 0xac, 0x9a, 0x25, 0x99, 0x2f, 0x89, 0x97, 0x3f, 0x38, 0x31, 0xd9,
- 0xf6, 0x8f, 0xa0, 0x10, 0xa6, 0x45, 0x9e, 0xae, 0x63, 0xd9, 0x18, 0xad,
- 0xd6, 0x6b, 0xf4, 0xee, 0x42, 0x35, 0x65, 0xac, 0xa0, 0x10, 0xa1, 0x2c,
- 0xb4, 0xe6, 0xe4, 0x06, 0x2e, 0x19, 0x2f, 0x61, 0x17, 0xeb, 0x70, 0x4a,
- 0xdf, 0x64, 0x01, 0x6e, 0xc1, 0x23, 0xf4, 0x9b, 0x56, 0x6c, 0xc0, 0x09,
- 0xec, 0xb8, 0x5c, 0x96, 0x51, 0x44, 0x7a, 0x78, 0x00, 0x8d, 0xf1, 0x54,
- 0x89, 0xc3, 0x1c, 0xea, 0x4a, 0x48, 0x76, 0x30, 0x83, 0xbc, 0xcb, 0x1b,
- 0x2e, 0xb1, 0xb4, 0x50, 0xea, 0x90, 0x7d, 0x21, 0x01, 0x67, 0x5a, 0x03,
- 0xbf, 0x71, 0xc3, 0x46, 0xb5, 0xe1, 0x48, 0xad, 0xc5, 0x95, 0x77, 0xdb,
- 0x5c, 0x99, 0xb3, 0x72, 0x3b, 0x39, 0x0b, 0x87, 0xc8, 0x59, 0x66, 0xa7,
- 0xab, 0xc1, 0xe3, 0x90, 0xb8, 0x42, 0xe0, 0xf7, 0x33, 0xcb, 0xab, 0xed,
- 0x4e, 0x23, 0xb1, 0xda, 0xdb, 0x3e, 0xc6, 0xd8, 0xf6, 0x5c, 0x32, 0x65,
- 0x97, 0x6d, 0x76, 0xda, 0xca, 0x73, 0x6d, 0x0b, 0xa8, 0x71, 0x6d, 0x9c,
- 0xa4, 0x7f, 0xb6, 0x1d, 0x24, 0x23, 0x2b, 0x76, 0x66, 0x63, 0xe6, 0xbb,
- 0xbf, 0x5a, 0xf0, 0xf8, 0x65, 0x08, 0x02, 0x49, 0xf2, 0x6e, 0xae, 0xe9,
- 0xc6, 0x28, 0x29, 0x68, 0x45, 0x93, 0x6c, 0x25, 0x19, 0xa8, 0x82, 0x6d,
- 0xbf, 0xb8, 0xa0, 0x26, 0x05, 0x0c, 0x9c, 0xbc, 0x08, 0x71, 0xd4, 0x27,
- 0x04, 0x56, 0x44, 0xb8, 0xda, 0x95, 0xa2, 0x8d, 0xa9, 0x31, 0xa4, 0x64,
- 0xc2, 0x6e, 0x27, 0x62, 0xc3, 0x81, 0x1e, 0x1d, 0xa5, 0xb3, 0x70, 0x1b,
- 0x85, 0xc3, 0x41, 0x0a, 0xf7, 0x8c, 0xa1, 0x96, 0xf0, 0x75, 0x49, 0xf0,
- 0xb5, 0x54, 0x6a, 0x99, 0x6d, 0xec, 0x4d, 0xc0, 0xa0, 0x24, 0xd3, 0x59,
- 0xab, 0x17, 0x35, 0x13, 0x88, 0x6d, 0x25, 0xdb, 0xf7, 0x19, 0xd7, 0x9a,
- 0x00, 0xbd, 0xf5, 0xf3, 0xc5, 0xe3, 0x09, 0xdf, 0x96, 0x6a, 0xce, 0xc3,
- 0xf2, 0x29, 0x54, 0x0d, 0x7f, 0x90, 0xb9, 0x71, 0xf2, 0x18, 0x2a, 0xa5,
- 0xf2, 0xc6, 0x47, 0xc5, 0xcb, 0x22, 0x31, 0x8b, 0xc7, 0xec, 0x66, 0x07,
- 0x1b, 0x30, 0x3a, 0x53, 0x5a, 0xd6, 0x52, 0xf1, 0x1d, 0xd6, 0xb7, 0x90,
- 0xd8, 0x93, 0x63, 0x4b, 0x4f, 0x0b, 0x11, 0xb2, 0xcb, 0xac, 0x0f, 0xbd,
- 0xdc, 0x85, 0xeb, 0x04, 0x23, 0x8e, 0x02, 0x70, 0x15, 0x49, 0x46, 0xc4,
- 0x18, 0x3b, 0x55, 0x56, 0x11, 0x3a, 0xec, 0xab, 0x41, 0xc1, 0x4f, 0x07,
- 0x7b, 0x5b, 0x0f, 0xa9, 0x16, 0x2c, 0xb7, 0x33, 0xe8, 0x9e, 0xe4, 0x15,
- 0x93, 0x7e, 0x25, 0xd8, 0x0e, 0x82, 0x0e, 0x50, 0xca, 0xce, 0x1a, 0x89,
- 0x1b, 0x49, 0xc5, 0xa5, 0x1a, 0x78, 0x89, 0xda, 0xfb, 0x46, 0xc7, 0xac,
- 0x1b, 0x02, 0x23, 0x4c, 0xb1, 0x36, 0x13, 0x52, 0x9a, 0x9c, 0xd1, 0xe5,
- 0xe2, 0x56, 0x39, 0xc8, 0x8b, 0x4f, 0x36, 0x11, 0x59, 0x48, 0xe3, 0xd8,
- 0x6a, 0x5f, 0x84, 0xec, 0x5e, 0x4c, 0xf3, 0x50, 0x93, 0xa1, 0x83, 0x37,
- 0xa3, 0x4f, 0xd8, 0x29, 0x50, 0xd2, 0x18, 0x18, 0x8e, 0xd7, 0x4a, 0x4a,
- 0xaa, 0x84, 0xcd, 0xb6, 0x67, 0xe3, 0xa2, 0x6b, 0x9d, 0xf7, 0xb3, 0x46,
- 0x66, 0x06, 0xa1, 0x33, 0x1c, 0xd3, 0x4b, 0x67, 0xb3, 0x0a, 0xcb, 0x2e,
- 0x2d, 0x17, 0xa2, 0xcb, 0x15, 0x77, 0x73, 0xd4, 0x21, 0x89, 0xa9, 0x09,
- 0x83, 0xe7, 0xb3, 0xd3, 0x72, 0x9d, 0xed, 0xed, 0x0c, 0x3e, 0xb4, 0xd9,
- 0x69, 0x55, 0x4d, 0xfb, 0xe3, 0xf1, 0x78, 0x25, 0x47, 0x3d, 0x3c, 0x3c,
- 0x4c, 0x36, 0x0f, 0x01, 0xc9, 0x72, 0xa8, 0xa3, 0x3c, 0xbc, 0x66, 0x33,
- 0xcd, 0x94, 0x03, 0x59, 0xaf, 0x97, 0x6c, 0xd5, 0xe3, 0xa1, 0x28, 0xc3,
- 0x19, 0x0e, 0x4f, 0xb6, 0x63, 0x5f, 0x2a, 0xd7, 0xd7, 0x29, 0x55, 0xa7,
- 0x6b, 0xea, 0x2d, 0x22, 0xb7, 0x01, 0x0f, 0xd1, 0x72, 0x4a, 0x8c, 0xae,
- 0xa4, 0x97, 0xce, 0xd4, 0xc7, 0xe5, 0xdc, 0xec, 0xeb, 0x4e, 0xb1, 0x9a,
- 0x67, 0x73, 0xc4, 0x57, 0x3b, 0xd0, 0x76, 0x44, 0xbf, 0x54, 0xc9, 0xdb,
- 0x83, 0x0b, 0x76, 0x86, 0xd5, 0x9a, 0xb4, 0xb9, 0x22, 0x5d, 0xcd, 0x81,
- 0x69, 0x02, 0x64, 0x21, 0x0d, 0x0a, 0x84, 0xd8, 0x15, 0x00, 0x56, 0x94,
- 0x57, 0xc6, 0x17, 0x07, 0x9a, 0xaf, 0xd3, 0x81, 0x7e, 0xae, 0x2b, 0xda,
- 0x77, 0x77, 0x90, 0x64, 0x3c, 0xf1, 0x9f, 0x6d, 0x5f, 0xe6, 0xee, 0x27,
- 0xf1, 0xfd, 0xd6, 0x78, 0xfd, 0x47, 0x41, 0x1c, 0xd8, 0xd6, 0x5e, 0x7f,
- 0xfe, 0x55, 0xdb, 0x84, 0x90, 0x6a, 0xb5, 0xc5, 0xd3, 0x63, 0x46, 0x19,
- 0x17, 0x1d, 0x69, 0x00, 0x0d, 0x1c, 0x0d, 0xe1, 0x14, 0x82, 0xdc, 0x96,
- 0x0b, 0xea, 0x0d, 0xd8, 0x05, 0x6d, 0xfa, 0x04, 0xc5, 0xba, 0xf8, 0x1e,
- 0x30, 0x5e, 0x7f, 0x97, 0x46, 0x6c, 0xc3, 0x38, 0x45, 0x80, 0x56, 0x54,
- 0x10, 0x73, 0x91, 0x00, 0x49, 0x57, 0x11, 0xa7, 0xcc, 0x16, 0xd3, 0x7b,
- 0x27, 0xa6, 0x69, 0xdb, 0xab, 0xf4, 0xb7, 0x50, 0xd8, 0x0f, 0xc1, 0x18,
- 0x6c, 0x80, 0x55, 0xb3, 0x15, 0x74, 0x94, 0x32, 0x73, 0x8d, 0x0d, 0xcf,
- 0xa9, 0xf6, 0xdc, 0xaa, 0x4c, 0x1a, 0xef, 0xd0, 0x5e, 0xe7, 0x0e, 0x09,
- 0x95, 0x76, 0xee, 0xc7, 0xb9, 0x9e, 0x7b, 0x3d, 0x0b, 0x6e, 0x1d, 0x80,
- 0xe2, 0x31, 0x2d, 0xae, 0x72, 0x94, 0x2b, 0xc0, 0x5e, 0xc9, 0x81, 0x77,
- 0x85, 0x79, 0xda, 0x76, 0x09, 0x21, 0x61, 0xab, 0x4c, 0xdc, 0xf2, 0x2d,
- 0xc9, 0xfa, 0x33, 0x57, 0x71, 0xa4, 0xaf, 0x40, 0xe4, 0x06, 0x14, 0xd2,
- 0xb1, 0x1f, 0x16, 0xc7, 0x35, 0xe6, 0xec, 0x8d, 0xd7, 0xe2, 0x41, 0xbc,
- 0x0e, 0x6a, 0x3a, 0xe5, 0xcd, 0x68, 0x0b, 0x87, 0x74, 0xb8, 0xa2, 0xe8,
- 0xbb, 0xcd, 0x31, 0x5e, 0xb5, 0x9d, 0x2d, 0xbd, 0xb2, 0x49, 0xaa, 0x20,
- 0x1e, 0xe6, 0xcd, 0x1f, 0x2a, 0x13, 0x46, 0xa8, 0x22, 0x23, 0x29, 0x3e,
- 0x70, 0x6b, 0xf8, 0xa6, 0x97, 0xcb, 0x7a, 0x59, 0xba, 0xfa, 0x16, 0x0d,
- 0x16, 0xcf, 0xe6, 0x79, 0xcd, 0x9a, 0x11, 0x17, 0xd9, 0xc3, 0xb5, 0xbf,
- 0x3d, 0x6a, 0xa7, 0xfa, 0xd5, 0x42, 0x1c, 0x54, 0x8f, 0x49, 0x6e, 0x89,
- 0x38, 0xba, 0x27, 0x9d, 0xa9, 0x05, 0x80, 0x8e, 0x2b, 0xe9, 0x17, 0x94,
- 0xdb, 0xb3, 0xdb, 0x69, 0xca, 0x39, 0x4d, 0x2c, 0x26, 0x0d, 0x92, 0x93,
- 0x4c, 0x3c, 0x52, 0x1b, 0x5f, 0x6c, 0x80, 0xfa, 0x36, 0x5e, 0x6c, 0x68,
- 0x92, 0x51, 0x5c, 0xc5, 0xae, 0xac, 0x7a, 0x2e, 0x62, 0x64, 0x43, 0x4c,
- 0xce, 0x1b, 0x36, 0x08, 0xb5, 0xd0, 0xc9, 0xc8, 0x10, 0x33, 0x38, 0xd7,
- 0x54, 0x40, 0x12, 0xf4, 0x58, 0x22, 0xea, 0xd0, 0x5f, 0x9b, 0x70, 0x59,
- 0x0b, 0xc9, 0x89, 0x65, 0x4f, 0x91, 0x9f, 0xb9, 0x6c, 0x6f, 0x99, 0x6d,
- 0x54, 0x88, 0x44, 0x92, 0x3a, 0x65, 0x5d, 0x61, 0x86, 0x3e, 0xd0, 0x44,
- 0xc6, 0x23, 0x03, 0x41, 0x86, 0xf9, 0x78, 0x8c, 0x80, 0x2d, 0x88, 0x85,
- 0xf4, 0x25, 0x89, 0x34, 0x42, 0xde, 0x98, 0x33, 0x5c, 0xf8, 0x34, 0xe9,
- 0x36, 0xe9, 0x65, 0x29, 0xef, 0x26, 0xa2, 0x79, 0xda, 0x08, 0xf6, 0xfd,
- 0x2b, 0x96, 0x08, 0xaf, 0xa6, 0xc5, 0xa8, 0xb8, 0xbc, 0x7c, 0x40, 0x5e,
- 0x10, 0x18, 0x16, 0xb4, 0x21, 0x44, 0xba, 0xce, 0x69, 0xc8, 0xfc, 0xde,
- 0x88, 0x47, 0xa8, 0x35, 0x6c, 0x07, 0x62, 0x90, 0x01, 0x16, 0x6f, 0x24,
- 0x05, 0x34, 0x4c, 0x20, 0x96, 0x2a, 0x6d, 0x09, 0x96, 0xd4, 0x9a, 0x89,
- 0x99, 0x1a, 0x4b, 0xe7, 0x81, 0x7b, 0xe9, 0x10, 0xfe, 0xc7, 0x3f, 0x7e,
- 0xfc, 0xb9, 0x23, 0x31, 0x09, 0x25, 0xb8, 0x34, 0x21, 0x04, 0x81, 0xa8,
- 0x02, 0x74, 0x06, 0x1d, 0x82, 0xe5, 0x10, 0x5f, 0xeb, 0x4b, 0xeb, 0x90,
- 0x07, 0x39, 0x37, 0x31, 0x83, 0xab, 0x7c, 0x87, 0xc0, 0xd4, 0x2d, 0x6a,
- 0x8b, 0x03, 0x60, 0x98, 0x37, 0xc0, 0x5c, 0x7a, 0x6f, 0x9a, 0x83, 0x90,
- 0x52, 0xbd, 0x3d, 0x3e, 0x50, 0x0e, 0x0a, 0xd0, 0xf9, 0x57, 0x95, 0xcf,
- 0xbe, 0x3b, 0x3f, 0x76, 0x1a, 0x5d, 0xb0, 0x13, 0x5f, 0x61, 0x27, 0xa2,
- 0x65, 0x13, 0x13, 0x17, 0x93, 0x7a, 0xaf, 0x0d, 0xe4, 0xeb, 0x61, 0x38,
- 0x59, 0xad, 0x96, 0xe2, 0xa8, 0xad, 0x52, 0xb7, 0x93, 0x5e, 0x27, 0x3a,
- 0x7a, 0xaf, 0x5d, 0x41, 0xa0, 0x8c, 0xd1, 0x79, 0x03, 0x94, 0x05, 0x29,
- 0xe0, 0xd0, 0x55, 0x31, 0xe2, 0x2b, 0x92, 0xde, 0x5c, 0x61, 0x89, 0xc0,
- 0x1d, 0x66, 0x18, 0x95, 0xbe, 0xe8, 0x04, 0x90, 0x3e, 0x99, 0xfe, 0xef,
- 0x50, 0x7f, 0x5b, 0x6d, 0x43, 0x9d, 0x5a, 0xd1, 0x85, 0x47, 0x70, 0x16,
- 0xd6, 0x65, 0x40, 0x8e, 0x7e, 0x05, 0x4f, 0x2c, 0xd5, 0x6c, 0xe3, 0xdf,
- 0x36, 0x3c, 0x6e, 0x6e, 0x47, 0xaa, 0xa5, 0x2f, 0x61, 0xd3, 0x02, 0xb0,
- 0xeb, 0x1f, 0xf7, 0xfc, 0x28, 0xc5, 0x13, 0x2e, 0x77, 0xae, 0x43, 0x94,
- 0x18, 0x75, 0x54, 0x8c, 0x58, 0x35, 0x8c, 0xaf, 0x8f, 0x0e, 0x5e, 0xd9,
- 0x5c, 0x7f, 0x09, 0x04, 0x73, 0x5b, 0x7f, 0x84, 0xfa, 0x28, 0x26, 0x85,
- 0x52, 0xcd, 0xd7, 0x2b, 0x54, 0x47, 0x33, 0x8f, 0x8c, 0x32, 0xa9, 0x8b,
- 0xb1, 0x9c, 0x5b, 0xbd, 0x7b, 0xde, 0x13, 0xbb, 0x3b, 0x40, 0x1d, 0x24,
- 0x6a, 0x73, 0x60, 0x1b, 0x93, 0x6c, 0x87, 0xea, 0xa8, 0x76, 0xa7, 0x95,
- 0xca, 0x63, 0x60, 0x98, 0x33, 0x1b, 0x1f, 0x9f, 0x5e, 0x61, 0x71, 0x01,
- 0xfd, 0x86, 0x30, 0x0a, 0x2f, 0xe4, 0xe7, 0x2a, 0x64, 0xf0, 0x23, 0x60,
- 0x7d, 0xeb, 0xb3, 0xb4, 0x98, 0x0a, 0x4e, 0x6b, 0x8c, 0xd7, 0x68, 0x06,
- 0x4a, 0x97, 0x45, 0x72, 0x76, 0x10, 0x9f, 0x94, 0x05, 0x55, 0xc9, 0xe1,
- 0x07, 0xad, 0x62, 0x61, 0x1c, 0x05, 0x78, 0xa4, 0xae, 0xb4, 0xa1, 0xa0,
- 0x8b, 0x1b, 0x40, 0xbd, 0xe6, 0xa2, 0x77, 0xa6, 0x96, 0x5f, 0x86, 0x75,
- 0x37, 0x48, 0x2b, 0x63, 0x9b, 0x39, 0x29, 0xd7, 0x24, 0xa7, 0xd8, 0x78,
- 0xf9, 0xb1, 0x6b, 0xf5, 0xf0, 0x42, 0x7d, 0x83, 0xd5, 0x3b, 0xaa, 0x7e,
- 0x12, 0x58, 0x3d, 0x9d, 0x51, 0x03, 0xf0, 0xda, 0xa2, 0x48, 0x8b, 0xb1,
- 0x6f, 0xc9, 0x1b, 0x23, 0x9e, 0x74, 0x04, 0x3d, 0x96, 0x82, 0x1c, 0xd2,
- 0xc1, 0x3e, 0xb5, 0xf7, 0xd0, 0x99, 0xd1, 0x3e, 0x70, 0x61, 0x37, 0x4d,
- 0x41, 0x3c, 0xde, 0x75, 0x0b, 0x3b, 0x07, 0xbe, 0x03, 0xdd, 0x24, 0xe3,
- 0x1b, 0xce, 0xc9, 0xab, 0xea, 0x25, 0xf8, 0x7b, 0x3a, 0x37, 0x85, 0x55,
- 0x86, 0xe9, 0x80, 0xce, 0x88, 0xb0, 0x06, 0xf0, 0xbd, 0xae, 0x28, 0x97,
- 0xce, 0x4c, 0x13, 0xb2, 0x1d, 0xc3, 0x4f, 0xd9, 0x78, 0x14, 0xc5, 0xc2,
- 0xaa, 0x03, 0x18, 0xe7, 0xe6, 0xaa, 0xb3, 0xb8, 0x3c, 0xe2, 0x38, 0x4a,
- 0xd6, 0x4a, 0x39, 0xc4, 0x87, 0xb5, 0x2e, 0xd8, 0xc1, 0xb4, 0x88, 0x39,
- 0x48, 0x9c, 0x4b, 0xff, 0xb1, 0xac, 0xe2, 0xb0, 0xae, 0x78, 0xca, 0xba,
- 0x3c, 0xc4, 0xee, 0xaf, 0xf2, 0xdb, 0x2e, 0xfb, 0xb2, 0x00, 0xe3, 0x60,
- 0x60, 0x12, 0x76, 0xe5, 0x2e, 0x10, 0x07, 0x2d, 0x5d, 0xa8, 0x22, 0x25,
- 0x60, 0x85, 0x8c, 0xdd, 0xaf, 0x2b, 0x1b, 0xe3, 0x37, 0xf0, 0x1d, 0x96,
- 0xf2, 0x55, 0xbf, 0x4f, 0x84, 0x9f, 0xac, 0x7f, 0x5d, 0x54, 0xf5, 0xfe,
- 0xba, 0x83, 0x32, 0x53, 0xd7, 0x4e, 0xd6, 0xa2, 0x1c, 0x85, 0xba, 0x8f,
- 0xc2, 0xb2, 0x44, 0x02, 0x92, 0x03, 0x48, 0x57, 0x8b, 0x3e, 0x6d, 0x3e,
- 0x48, 0x05, 0x50, 0x70, 0x70, 0x34, 0x4c, 0xf2, 0xb3, 0x5c, 0xc7, 0xc0,
- 0x80, 0x2b, 0x6d, 0x2e, 0x55, 0x61, 0x48, 0xdf, 0xf7, 0x0f, 0xd1, 0x79,
- 0xff, 0x6b, 0x34, 0xf7, 0x97, 0x75, 0xa7, 0x74, 0xb7, 0xbf, 0xa2, 0x81,
- 0xaf, 0xad, 0xac, 0x0f, 0x27, 0x0c, 0xc4, 0x55, 0x9d, 0x84, 0x15, 0x5d,
- 0x07, 0x28, 0x15, 0x4a, 0xe8, 0x88, 0x6c, 0xdb, 0x86, 0x2b, 0x8a, 0xeb,
- 0xbc, 0x33, 0x89, 0x58, 0x13, 0x0c, 0x17, 0x88, 0xd5, 0x9b, 0xf4, 0x8b,
- 0xcb, 0x3e, 0xca, 0xed, 0xce, 0xd2, 0xf2, 0x86, 0x1d, 0x2c, 0xc1, 0xa9,
- 0x43, 0x34, 0x25, 0x52, 0x62, 0x27, 0x93, 0xae, 0xbb, 0x5a, 0x73, 0xb9,
- 0x4a, 0xa7, 0xb6, 0xea, 0x80, 0x74, 0x23, 0xf7, 0x59, 0xd5, 0xb1, 0xd7,
- 0x1d, 0xd4, 0x3e, 0x17, 0xa8, 0x55, 0xa4, 0xfd, 0xa8, 0x4e, 0x27, 0x82,
- 0xf3, 0x7a, 0x72, 0x9f, 0x63, 0xd6, 0x60, 0xc3, 0x33, 0xb1, 0x20, 0xc1,
- 0x04, 0x40, 0x7a, 0x3f, 0x4b, 0xa6, 0x5c, 0xf6, 0xe2, 0xe1, 0x0a, 0x6e,
- 0x07, 0x56, 0xd0, 0xba, 0x4f, 0x1d, 0x29, 0x7a, 0x77, 0x13, 0xf0, 0x66,
- 0x15, 0x44, 0xe9, 0x90, 0xc3, 0x55, 0x55, 0xfc, 0xfc, 0x74, 0xf0, 0xe4,
- 0x53, 0x2e, 0x28, 0xe7, 0x70, 0xee, 0xac, 0xe8, 0xb5, 0xe7, 0x99, 0xd8,
- 0xca, 0x80, 0xbe, 0xa2, 0xb2, 0x3f, 0x5c, 0xaa, 0x8c, 0xd7, 0x63, 0xa2,
- 0xe8, 0x1c, 0x28, 0xae, 0xd0, 0x51, 0x58, 0x5b, 0x03, 0x7b, 0x22, 0x9f,
- 0xcb, 0xef, 0xd5, 0x97, 0x0f, 0x5a, 0x7a, 0xcd, 0xd7, 0x51, 0xff, 0x2d,
- 0x31, 0xba, 0xfd, 0xe4, 0xdf, 0x8b, 0x6c, 0xdd, 0x2a, 0x40, 0xee, 0x3e,
- 0xdf, 0x23, 0x85, 0xe3, 0xb3, 0xc1, 0xce, 0x60, 0x77, 0x3b, 0x4a, 0x63,
- 0x38, 0x38, 0x7f, 0x7b, 0xfc, 0xf6, 0xab, 0x7d, 0x77, 0xf0, 0x01, 0x00,
- 0x6b, 0x45, 0xd3, 0x23, 0x41, 0x06, 0x8e, 0x0f, 0xa9, 0x50, 0x8b, 0xa0,
- 0x8e, 0x69, 0xb4, 0x4d, 0x0a, 0xc0, 0x95, 0xf4, 0x15, 0x96, 0xc6, 0x2a,
- 0x6f, 0x97, 0x99, 0x58, 0x6d, 0x44, 0x6e, 0x33, 0x4c, 0x7d, 0x0d, 0xdc,
- 0xc0, 0x25, 0xc2, 0x05, 0x5f, 0xba, 0x68, 0xb2, 0x09, 0xe0, 0x33, 0xf0,
- 0x48, 0x41, 0x53, 0x14, 0xc9, 0x29, 0x42, 0xea, 0x12, 0xd9, 0x52, 0x3c,
- 0xda, 0x1d, 0x86, 0x66, 0xd8, 0x19, 0x50, 0xf7, 0xb2, 0x12, 0x06, 0x0a,
- 0x98, 0x78, 0x03, 0x2c, 0xe5, 0xcf, 0x91, 0x53, 0xc9, 0x77, 0x71, 0x8e,
- 0xbb, 0xd4, 0xad, 0xca, 0x0a, 0xf9, 0xd1, 0xc3, 0x0c, 0xd1, 0x05, 0x2f,
- 0x96, 0x6e, 0xc8, 0x30, 0xf6, 0xa9, 0x07, 0xf0, 0x77, 0xf3, 0xff, 0xe8,
- 0x68, 0x82, 0x20, 0xf1, 0x14, 0x82, 0x87, 0x26, 0x45, 0xfa, 0xa3, 0xbc,
- 0x2d, 0xea, 0x60, 0x97, 0x1b, 0x8e, 0xdf, 0xb2, 0x7b, 0x34, 0x50, 0x0c,
- 0x79, 0x86, 0x8b, 0xe5, 0x68, 0x36, 0x79, 0x96, 0xbc, 0xa0, 0x7f, 0xe2,
- 0x64, 0x9c, 0x43, 0xe7, 0xb5, 0x3d, 0x03, 0x9a, 0x7d, 0xea, 0xc0, 0x17,
- 0x44, 0xe2, 0xe7, 0x5f, 0x9f, 0xec, 0x51, 0xd3, 0x1f, 0x52, 0xab, 0x99,
- 0x38, 0xa1, 0xd5, 0xab, 0xab, 0xae, 0xea, 0xa7, 0xfa, 0xaa, 0xf7, 0x31,
- 0xf2, 0x6a, 0xef, 0xee, 0x7d, 0x96, 0x8c, 0xf2, 0x3a, 0x79, 0xf3, 0xea,
- 0x19, 0xe9, 0x7d, 0xd9, 0xf8, 0xa6, 0x5a, 0xce, 0x8c, 0x45, 0x58, 0x71,
- 0x3d, 0xec, 0xc4, 0x46, 0xfb, 0xae, 0xf6, 0x99, 0x2f, 0xbd, 0x46, 0x6d,
- 0xcc, 0x4b, 0xb3, 0x29, 0x07, 0x85, 0x27, 0x1d, 0x33, 0xe3, 0x96, 0xd4,
- 0xa6, 0xdd, 0x61, 0x2d, 0xa1, 0x35, 0xa0, 0xee, 0x2b, 0xc9, 0x7e, 0x69,
- 0x59, 0x67, 0x3f, 0x6d, 0x5a, 0x9e, 0x24, 0x69, 0xca, 0x20, 0xc8, 0xfb,
- 0x24, 0x80, 0x5f, 0x45, 0x81, 0xca, 0x2a, 0x3a, 0x1d, 0xe3, 0x51, 0xc9,
- 0xb2, 0xd0, 0xc7, 0x4f, 0xf0, 0xb8, 0x03, 0x79, 0x0a, 0xbc, 0x48, 0xcc,
- 0x22, 0xf3, 0xf1, 0x72, 0xca, 0x55, 0xb9, 0x63, 0x19, 0x12, 0x41, 0xb7,
- 0xcc, 0x18, 0x0c, 0x56, 0xad, 0x5c, 0x4a, 0x01, 0xe7, 0x83, 0x05, 0x07,
- 0x26, 0x26, 0xbb, 0x83, 0x0f, 0x3d, 0x8d, 0xbf, 0x0b, 0x2b, 0x85, 0x92,
- 0xac, 0x56, 0x44, 0xf7, 0x35, 0xbc, 0x0b, 0xad, 0x01, 0x71, 0xd3, 0x12,
- 0x11, 0x3a, 0x65, 0xef, 0x5a, 0x29, 0xa7, 0x62, 0x8f, 0xee, 0xe7, 0xab,
- 0x14, 0x95, 0xa6, 0x03, 0xea, 0xc9, 0x7b, 0xc0, 0xc3, 0x84, 0x14, 0xb8,
- 0x62, 0xe2, 0x2a, 0x22, 0x1a, 0xd4, 0x97, 0x71, 0x42, 0xcb, 0xcb, 0x91,
- 0x60, 0x66, 0x4b, 0xcd, 0x0a, 0x9e, 0x88, 0x44, 0x01, 0xb4, 0x03, 0x9b,
- 0x1c, 0x38, 0xbb, 0x70, 0x09, 0x5d, 0x84, 0x3e, 0x8b, 0x72, 0x3d, 0x56,
- 0x07, 0x9c, 0xec, 0xe6, 0x03, 0xb9, 0xd1, 0x68, 0x9c, 0x4d, 0x89, 0x1c,
- 0x5f, 0x8b, 0xc3, 0x1e, 0x0c, 0x82, 0x59, 0x1d, 0x9b, 0x44, 0xdc, 0x35,
- 0x25, 0xae, 0x80, 0xb8, 0xfd, 0xfa, 0xf8, 0xe4, 0x68, 0x2b, 0x79, 0x9d,
- 0x59, 0x82, 0x54, 0x38, 0x33, 0xbe, 0x83, 0x7e, 0x27, 0x9f, 0xd8, 0x0e,
- 0xa9, 0x26, 0xdf, 0x95, 0x98, 0xe6, 0xac, 0xd8, 0xd0, 0x44, 0x64, 0xdb,
- 0xc0, 0x64, 0x25, 0x19, 0xba, 0x40, 0x44, 0xa8, 0xd5, 0xc1, 0x34, 0x7f,
- 0x71, 0xe7, 0x0a, 0x21, 0x50, 0xce, 0x17, 0xa4, 0xf5, 0xb5, 0x8f, 0x0a,
- 0x17, 0x3f, 0x44, 0x3b, 0xcb, 0x23, 0xd7, 0x90, 0x47, 0x73, 0x27, 0x4b,
- 0x2d, 0xf7, 0xae, 0xb3, 0x00, 0xff, 0x68, 0x95, 0xff, 0x5d, 0x42, 0xc4,
- 0x11, 0x98, 0x33, 0x2b, 0x26, 0x3e, 0xad, 0x45, 0xaa, 0x9d, 0xce, 0xa7,
- 0x0d, 0xbc, 0xfc, 0x00, 0xb5, 0xb5, 0x0b, 0xe3, 0xe3, 0x4c, 0x92, 0x2a,
- 0xe0, 0x39, 0x0b, 0x83, 0x3d, 0x44, 0x07, 0xf2, 0x7a, 0xb0, 0x6b, 0x66,
- 0xe0, 0xc2, 0x27, 0x39, 0x8b, 0xa2, 0xec, 0xf2, 0x3b, 0x3a, 0xd0, 0xd4,
- 0x5e, 0xe8, 0x92, 0xa1, 0xd9, 0xe2, 0xa8, 0x4b, 0xe4, 0xe6, 0xc1, 0xdc,
- 0xc2, 0xba, 0x12, 0xa9, 0x73, 0x25, 0x15, 0xdf, 0xa2, 0xac, 0xb6, 0x8e,
- 0xd0, 0x3b, 0xbd, 0x50, 0x83, 0x99, 0x91, 0x3a, 0xb5, 0xb3, 0xbf, 0x1b,
- 0xd6, 0x95, 0x9e, 0x67, 0x35, 0x62, 0xce, 0x38, 0x24, 0x6e, 0xfb, 0xb7,
- 0x0b, 0x7e, 0xfa, 0x2b, 0x93, 0xe6, 0x5f, 0x97, 0xf3, 0x1b, 0xa2, 0xad,
- 0x8a, 0x29, 0x58, 0x8b, 0x66, 0x55, 0xdd, 0xa7, 0xef, 0x3b, 0xe7, 0xfe,
- 0x6a, 0x57, 0x4f, 0x1b, 0x87, 0x35, 0xc0, 0xd2, 0xa0, 0x60, 0x44, 0xef,
- 0x81, 0x74, 0x6b, 0x2f, 0x59, 0x72, 0xbe, 0x60, 0x4e, 0x13, 0x2e, 0x27,
- 0x92, 0x0d, 0xb5, 0xae, 0xc3, 0x49, 0xac, 0xe1, 0xf5, 0x41, 0x58, 0xb4,
- 0x22, 0x8a, 0xc2, 0xab, 0x34, 0x8d, 0x5e, 0xcc, 0x74, 0x5e, 0x25, 0x53,
- 0xc7, 0x56, 0x2a, 0x05, 0x08, 0x58, 0x0a, 0x4c, 0xac, 0x65, 0x8e, 0x4a,
- 0x63, 0x51, 0x2b, 0xce, 0xa4, 0xbb, 0x10, 0x80, 0x03, 0xab, 0x73, 0x59,
- 0x19, 0xac, 0xb3, 0x8d, 0x30, 0x69, 0x0f, 0xce, 0x6a, 0x60, 0xb2, 0xe0,
- 0xb8, 0x11, 0x9d, 0xcb, 0xf1, 0xb4, 0x90, 0xda, 0xce, 0x77, 0xa1, 0x05,
- 0xf5, 0xdf, 0x45, 0x16, 0xe4, 0xcb, 0x48, 0x4f, 0x7a, 0xbf, 0x23, 0xc8,
- 0x2e, 0x4c, 0x30, 0xb0, 0x1c, 0x75, 0xa4, 0x52, 0x41, 0xc8, 0x3c, 0x0d,
- 0xda, 0x90, 0xd8, 0x69, 0x97, 0xc6, 0xae, 0x17, 0x56, 0x27, 0xf2, 0x79,
- 0x3f, 0x80, 0xbe, 0x73, 0xdc, 0xfa, 0x15, 0x1d, 0xdb, 0xa2, 0xca, 0x45,
- 0x10, 0xf3, 0x11, 0x90, 0x81, 0x1d, 0x24, 0x0e, 0x72, 0x32, 0xe8, 0x16,
- 0x87, 0x86, 0x27, 0x71, 0xb6, 0x66, 0xcc, 0xe7, 0xa8, 0x99, 0x0e, 0x68,
- 0x04, 0x58, 0x3e, 0x11, 0x6f, 0x12, 0x60, 0x62, 0xd3, 0x55, 0xcf, 0xc6,
- 0xa6, 0x3f, 0x10, 0x1d, 0x92, 0x78, 0x37, 0xe7, 0xc2, 0x8f, 0x9b, 0xf7,
- 0x59, 0xbd, 0xe5, 0xc2, 0xe2, 0x35, 0xae, 0x70, 0x55, 0x45, 0xc3, 0x08,
- 0xa8, 0x82, 0x6d, 0x00, 0xfa, 0x92, 0xc0, 0x4a, 0xf3, 0x75, 0x5d, 0x02,
- 0xcb, 0x85, 0x1d, 0x55, 0x5a, 0xb2, 0x63, 0x55, 0x73, 0xe1, 0xa5, 0x74,
- 0x23, 0x97, 0x52, 0xd5, 0x15, 0x6d, 0x67, 0xa8, 0x2a, 0xa1, 0x18, 0x1b,
- 0x84, 0x20, 0xab, 0xda, 0xed, 0x6a, 0x95, 0x2a, 0xaf, 0x5a, 0xb7, 0xd6,
- 0xd6, 0xdb, 0xb2, 0x7f, 0x23, 0xaf, 0x57, 0xe2, 0x45, 0x03, 0xc8, 0xf1,
- 0x03, 0x3a, 0x1a, 0xd1, 0x23, 0x9c, 0x66, 0x23, 0xeb, 0x18, 0x4d, 0xc7,
- 0x2a, 0xe5, 0xcc, 0x88, 0xbc, 0xcc, 0x81, 0xd1, 0xcc, 0xd0, 0x6c, 0x62,
- 0x0f, 0x08, 0x9c, 0x04, 0x76, 0x3c, 0xe5, 0xc4, 0x95, 0x38, 0xb9, 0xd3,
- 0xe1, 0xa7, 0x4a, 0x02, 0x10, 0x52, 0x0f, 0xe4, 0xc4, 0x86, 0x63, 0x0a,
- 0x6b, 0xe7, 0xae, 0x9e, 0x2c, 0xc7, 0xc5, 0xb9, 0x58, 0x80, 0xc6, 0x22,
- 0xc7, 0xb1, 0x00, 0x81, 0x8e, 0xe5, 0x6c, 0xc8, 0x02, 0x36, 0x0a, 0x30,
- 0x1d, 0xc1, 0xba, 0x5d, 0xb2, 0xa9, 0x4a, 0x7d, 0x2c, 0xc0, 0x0d, 0x92,
- 0xe8, 0x5b, 0xe4, 0x63, 0x21, 0xe6, 0x76, 0xbf, 0x6d, 0x4b, 0x11, 0x7e,
- 0x0b, 0x20, 0x8c, 0xeb, 0xf4, 0xc3, 0x87, 0x41, 0x95, 0x49, 0x3d, 0xfa,
- 0xaa, 0x9a, 0x02, 0x74, 0x03, 0x61, 0xed, 0x9e, 0x12, 0xbe, 0x91, 0xaa,
- 0x82, 0xf3, 0xcb, 0xfc, 0x8a, 0xa3, 0x43, 0xf1, 0xb3, 0x0b, 0x62, 0xc8,
- 0xb0, 0x85, 0xe4, 0xfa, 0x0d, 0x1e, 0xf4, 0xec, 0x12, 0x00, 0x9f, 0x1a,
- 0x22, 0x27, 0x5c, 0x53, 0x0b, 0x7a, 0x75, 0x94, 0x2e, 0xe7, 0xb7, 0x35,
- 0x0b, 0x26, 0x0f, 0x32, 0x3d, 0xb0, 0x53, 0xae, 0x8f, 0x99, 0x2b, 0xa1,
- 0x1a, 0xb4, 0x2b, 0xb2, 0x7e, 0x5b, 0xe3, 0x29, 0xf3, 0x9a, 0xf3, 0xc8,
- 0x4c, 0x38, 0xc8, 0xe6, 0x4d, 0x6b, 0x92, 0x30, 0x4b, 0x51, 0x82, 0x39,
- 0x6f, 0xc3, 0x9e, 0x37, 0xbb, 0x48, 0x5b, 0x0b, 0x1f, 0xd7, 0x5c, 0x7e,
- 0x27, 0x1c, 0x41, 0xb4, 0x6f, 0xa7, 0x5a, 0x98, 0xcd, 0x5c, 0x2d, 0x79,
- 0xe9, 0x5d, 0x38, 0x95, 0xb3, 0x70, 0x78, 0xb6, 0xd4, 0xac, 0x16, 0xdb,
- 0xb9, 0x20, 0x5a, 0xa7, 0x93, 0x2b, 0xc6, 0x7a, 0x9c, 0xde, 0x11, 0xd6,
- 0x9c, 0x64, 0x4a, 0x12, 0x5d, 0x21, 0x91, 0x88, 0x75, 0x24, 0x51, 0x67,
- 0x52, 0x22, 0xa5, 0x82, 0xaa, 0xee, 0xd4, 0xa1, 0x13, 0x06, 0x30, 0x71,
- 0xba, 0xa8, 0x80, 0x58, 0x8d, 0x21, 0x55, 0xc4, 0x48, 0xbe, 0xca, 0x95,
- 0x64, 0x6b, 0xbb, 0x98, 0x48, 0x18, 0x70, 0x65, 0x10, 0xa9, 0x12, 0x7b,
- 0x4e, 0x52, 0x65, 0x75, 0xad, 0xb1, 0xe0, 0xb4, 0xce, 0x55, 0xd1, 0x33,
- 0xc9, 0x6d, 0x0a, 0x90, 0x98, 0xb6, 0x44, 0x22, 0x43, 0x4e, 0x3c, 0x4c,
- 0x5e, 0xa5, 0xf9, 0x0e, 0xc1, 0x7e, 0x39, 0xcb, 0x77, 0xe5, 0xa0, 0x17,
- 0x9d, 0x6c, 0xd0, 0x9e, 0x6c, 0xd3, 0x33, 0x00, 0xeb, 0x24, 0xc9, 0xe4,
- 0x77, 0x85, 0x8e, 0x4b, 0xc0, 0x04, 0x50, 0xb7, 0x52, 0x3b, 0x01, 0xab,
- 0x7e, 0x64, 0x74, 0x6e, 0x70, 0x2e, 0x23, 0x2a, 0x18, 0x03, 0x66, 0x5a,
- 0x57, 0x7e, 0xcb, 0xbb, 0xb3, 0xb9, 0xb3, 0xc0, 0xad, 0x27, 0x91, 0xb3,
- 0xe6, 0x03, 0x0a, 0xf7, 0xb4, 0xf9, 0x9c, 0x92, 0x4e, 0x5c, 0xea, 0x58,
- 0xee, 0x5c, 0x8d, 0xe9, 0x97, 0x74, 0x00, 0x46, 0xf1, 0x55, 0x60, 0x4c,
- 0xdd, 0x89, 0xc4, 0xf2, 0x04, 0x34, 0x50, 0xcb, 0x34, 0xe9, 0x76, 0x73,
- 0x82, 0x53, 0x98, 0xf8, 0xab, 0x49, 0x6a, 0x95, 0x38, 0x54, 0x99, 0xfd,
- 0x24, 0xf9, 0xe9, 0xa7, 0x5e, 0xc2, 0x20, 0x89, 0x3f, 0x91, 0x82, 0xf0,
- 0x13, 0x91, 0xdc, 0x4f, 0x52, 0xbc, 0xef, 0xa7, 0x5b, 0xe2, 0xda, 0xab,
- 0x72, 0x06, 0x82, 0x32, 0x6d, 0x1e, 0x94, 0x55, 0x8b, 0x54, 0xb2, 0x51,
- 0x5f, 0x30, 0x34, 0x06, 0xe6, 0x38, 0xb0, 0x50, 0xb2, 0xd8, 0x0a, 0xb9,
- 0x9c, 0xcd, 0x45, 0x5c, 0x57, 0x56, 0x03, 0x2e, 0x00, 0x56, 0xb1, 0xf1,
- 0xfb, 0x0d, 0xbf, 0x37, 0x41, 0xdd, 0x4b, 0x55, 0x6a, 0xf8, 0xc1, 0xc8,
- 0x1e, 0x22, 0xac, 0xa0, 0x96, 0x32, 0xf5, 0x62, 0x64, 0xe3, 0xc3, 0x0d,
- 0x2d, 0xe0, 0x94, 0x0d, 0x62, 0x77, 0xa8, 0x50, 0x0b, 0xca, 0x91, 0x0d,
- 0x66, 0x5b, 0xde, 0xe2, 0xfa, 0x1e, 0x42, 0x58, 0x24, 0x00, 0xcf, 0xb3,
- 0xe6, 0x69, 0xe9, 0x4e, 0x2b, 0x6b, 0xc2, 0xb1, 0x79, 0xf1, 0x83, 0xdd,
- 0xa6, 0x21, 0xdb, 0xa5, 0xe1, 0x6c, 0xf4, 0x37, 0x9a, 0x40, 0xc9, 0x2b,
- 0x4a, 0x13, 0x7b, 0xcc, 0x43, 0x29, 0x4d, 0xdc, 0x99, 0x59, 0x22, 0x3e,
- 0x56, 0xc9, 0x3d, 0x1c, 0x09, 0x83, 0x76, 0x9e, 0x03, 0x38, 0x76, 0x4c,
- 0xb1, 0xd4, 0xfe, 0x4d, 0xd7, 0x89, 0x2d, 0xe9, 0xb0, 0xcf, 0x49, 0xcd,
- 0x08, 0x9b, 0x4b, 0x5e, 0x87, 0x49, 0x98, 0x7d, 0x76, 0xaa, 0x39, 0xcf,
- 0x27, 0x0a, 0x07, 0x17, 0x92, 0x6b, 0xc4, 0x49, 0xdd, 0xf7, 0x1d, 0x5c,
- 0xda, 0xde, 0xe4, 0x71, 0x14, 0x62, 0x14, 0xe6, 0x88, 0x0a, 0xb0, 0xd8,
- 0x64, 0x58, 0xf4, 0xa4, 0xba, 0x97, 0xd3, 0x3d, 0x12, 0x97, 0xb4, 0x15,
- 0xdb, 0xa5, 0x3a, 0xf3, 0x96, 0x78, 0x3c, 0x2f, 0x93, 0xf5, 0x95, 0xd7,
- 0xe0, 0x7a, 0x27, 0x22, 0x89, 0xc9, 0xff, 0x9c, 0x53, 0x7b, 0xa3, 0x30,
- 0xc0, 0x2a, 0x21, 0x6f, 0xda, 0x75, 0xfe, 0x37, 0xbb, 0xc2, 0xb7, 0xd4,
- 0x02, 0x23, 0xa6, 0xc7, 0x15, 0xf0, 0xb1, 0xe1, 0x0d, 0xe9, 0x80, 0xbb,
- 0x72, 0x41, 0x3c, 0xbe, 0xe4, 0x24, 0x7a, 0xd3, 0xe7, 0xed, 0x85, 0x07,
- 0x18, 0x2f, 0x1b, 0xee, 0xb8, 0x47, 0xb5, 0x76, 0x5a, 0x46, 0x8f, 0x33,
- 0x92, 0xc1, 0xac, 0xa5, 0xd9, 0x37, 0x2c, 0x2d, 0x32, 0x84, 0x65, 0xb4,
- 0x30, 0xbb, 0x5b, 0xae, 0x06, 0x48, 0x99, 0xab, 0x59, 0xec, 0x32, 0x57,
- 0x63, 0xfe, 0xfa, 0x75, 0x21, 0xd0, 0x5a, 0xeb, 0xfb, 0xc9, 0x71, 0xad,
- 0x1e, 0xba, 0x60, 0x96, 0xf1, 0x15, 0x09, 0xe0, 0xb2, 0xaf, 0x4f, 0xdf,
- 0x1c, 0xb9, 0x78, 0x62, 0xd1, 0xf2, 0xf9, 0x93, 0x4e, 0x6c, 0xc5, 0x01,
- 0xc2, 0x42, 0x2c, 0x23, 0xbb, 0x17, 0xd7, 0x74, 0x93, 0x25, 0x22, 0x5d,
- 0x7e, 0x71, 0xb7, 0xcc, 0x27, 0x9b, 0x48, 0x9a, 0x7f, 0x37, 0xcf, 0x3f,
- 0xf4, 0x61, 0xc5, 0x10, 0xe0, 0xd1, 0xca, 0xf2, 0xc6, 0x2d, 0xeb, 0x5c,
- 0x8c, 0x55, 0xb3, 0x0e, 0x70, 0x24, 0xbd, 0xd5, 0x42, 0x6c, 0x50, 0xa4,
- 0xc0, 0xe4, 0x73, 0xf1, 0x49, 0x49, 0x83, 0x5b, 0x7c, 0xfe, 0x89, 0x87,
- 0x02, 0xd7, 0x4c, 0x12, 0xda, 0x3b, 0x62, 0xa3, 0x9b, 0x2b, 0x91, 0x1c,
- 0x9c, 0x9d, 0xbd, 0x3a, 0xb8, 0x38, 0x70, 0x73, 0x03, 0xe0, 0x00, 0x98,
- 0x0a, 0x74, 0x53, 0x96, 0xdb, 0x14, 0xcb, 0x65, 0xe3, 0x0f, 0x9c, 0x36,
- 0xd3, 0xbe, 0xeb, 0xcf, 0xce, 0x4f, 0xd9, 0xc6, 0xf0, 0x87, 0x9f, 0x0e,
- 0x02, 0xa8, 0x06, 0xae, 0xc6, 0x1b, 0x57, 0x4b, 0xdf, 0xdb, 0xe2, 0xf1,
- 0xdd, 0xb9, 0xf1, 0x69, 0x9c, 0x85, 0x24, 0xa8, 0x27, 0xef, 0x79, 0x43,
- 0xcb, 0xb1, 0x13, 0x9c, 0x6c, 0x35, 0xb0, 0x00, 0x28, 0xb4, 0xb3, 0x7a,
- 0x22, 0x85, 0x67, 0x62, 0x86, 0xab, 0x66, 0x8b, 0x35, 0x25, 0x79, 0x9f,
- 0x84, 0xd6, 0x1a, 0xdc, 0x83, 0x63, 0xd3, 0x98, 0xbe, 0x26, 0xbc, 0x52,
- 0x6d, 0xf4, 0xd0, 0xf6, 0xf6, 0x78, 0xfc, 0x6c, 0x61, 0x00, 0x12, 0x4f,
- 0x5b, 0x48, 0x0d, 0xc6, 0x81, 0x8e, 0xd6, 0x57, 0x61, 0x8c, 0xce, 0x8e,
- 0x38, 0x84, 0x88, 0xce, 0x8d, 0x1e, 0x07, 0xb1, 0xe9, 0xbe, 0xdf, 0xef,
- 0x9b, 0x61, 0x5f, 0x26, 0x4e, 0x1f, 0x44, 0x0f, 0xd5, 0x56, 0x6b, 0xce,
- 0xf8, 0x7c, 0x37, 0x9b, 0x08, 0xf9, 0x43, 0x5b, 0x96, 0x57, 0x08, 0x07,
- 0x7d, 0x0a, 0x45, 0xab, 0x91, 0x02, 0x1a, 0x9b, 0x1b, 0xcd, 0x21, 0x42,
- 0x8f, 0x56, 0x4b, 0xb6, 0xd7, 0xf0, 0x5f, 0xdb, 0xbb, 0x83, 0x9d, 0xf5,
- 0x78, 0xf4, 0x88, 0x27, 0x86, 0x51, 0xcc, 0x10, 0xd5, 0x05, 0x24, 0xbf,
+ 0x2d, 0x7e, 0xef, 0xa7, 0xf7, 0xfc, 0x2b, 0x7d, 0xb2, 0xb6, 0xf6, 0x76,
+ 0xff, 0xcd, 0xa1, 0xbd, 0x3a, 0x5e, 0x96, 0xd3, 0x64, 0x90, 0xd4, 0x65,
+ 0x3a, 0xaf, 0x2e, 0xb3, 0x32, 0x49, 0x93, 0x77, 0x67, 0xc7, 0x6b, 0x6b,
+ 0xe7, 0x3f, 0xbc, 0x3d, 0x39, 0x3d, 0x3f, 0x3a, 0x6f, 0x3c, 0xf6, 0x63,
+ 0xb1, 0xa8, 0xf3, 0x62, 0x5e, 0xfd, 0x9c, 0xfc, 0x48, 0x0f, 0x0d, 0x87,
+ 0xc3, 0x9f, 0xd7, 0xd6, 0x5e, 0x1d, 0x9e, 0x1f, 0x9c, 0x1d, 0x9d, 0x5e,
+ 0x1c, 0x9d, 0xbc, 0x6d, 0x3c, 0x9b, 0xe4, 0x55, 0x42, 0x8d, 0xd5, 0x45,
+ 0x31, 0xa5, 0x7f, 0x7c, 0xfb, 0x93, 0xb4, 0x4e, 0x93, 0xcb, 0xb2, 0x98,
+ 0x25, 0x45, 0xc9, 0x5f, 0xa4, 0x49, 0x95, 0x95, 0xb7, 0x59, 0xd9, 0x4f,
+ 0x96, 0x55, 0x3e, 0xbf, 0x4a, 0x8a, 0x79, 0x96, 0x14, 0x97, 0x49, 0x7d,
+ 0x9d, 0x59, 0x73, 0xd5, 0x72, 0xb1, 0x28, 0xca, 0x3a, 0x9b, 0x24, 0x8b,
+ 0xb2, 0xa8, 0x8b, 0x71, 0x31, 0xad, 0x92, 0x8d, 0x57, 0x47, 0x07, 0x17,
+ 0xfd, 0xe4, 0xf5, 0xd1, 0xf1, 0x21, 0xfd, 0x7b, 0x71, 0x8a, 0x7f, 0xce,
+ 0xfb, 0xc9, 0x57, 0x27, 0xa7, 0x5f, 0x1f, 0x9e, 0xf5, 0x93, 0xaf, 0x2f,
+ 0xf8, 0x33, 0xfe, 0x97, 0x3e, 0x4c, 0x8e, 0xde, 0xec, 0x9f, 0xf6, 0xad,
+ 0x39, 0xfe, 0x83, 0x3f, 0x3c, 0x7e, 0x45, 0x1f, 0xca, 0x0f, 0xfe, 0xf3,
+ 0xf4, 0xe4, 0xf4, 0x89, 0xfe, 0xe0, 0x3f, 0xcf, 0x2e, 0xde, 0xd0, 0xb7,
+ 0x67, 0x17, 0xe7, 0xf4, 0xef, 0xf9, 0x01, 0xff, 0x83, 0x5e, 0xce, 0xdf,
+ 0x7c, 0x89, 0x7f, 0xce, 0x5d, 0x73, 0xe7, 0x6f, 0xe4, 0x73, 0xf4, 0x74,
+ 0x71, 0x78, 0xfc, 0xf6, 0xf0, 0x22, 0x49, 0xe7, 0x93, 0xe4, 0x82, 0x9e,
+ 0xdf, 0x1c, 0x26, 0x17, 0xd7, 0x59, 0x32, 0x2e, 0x66, 0x33, 0xfe, 0x88,
+ 0x56, 0x64, 0x92, 0x55, 0xf9, 0xd5, 0x9c, 0xa6, 0x42, 0x33, 0xbf, 0x2b,
+ 0xca, 0x9b, 0x24, 0xb9, 0xcb, 0xeb, 0xeb, 0x62, 0x59, 0x5b, 0x73, 0x4b,
+ 0x5a, 0x8d, 0x24, 0x9f, 0xd7, 0x59, 0x99, 0x8e, 0x79, 0xad, 0x87, 0x6b,
+ 0x8d, 0x55, 0x2d, 0x2e, 0x69, 0x0d, 0x2b, 0x5a, 0xb4, 0xd1, 0xb2, 0x9a,
+ 0x16, 0xe9, 0x84, 0x97, 0x8a, 0x5e, 0xb9, 0x5c, 0xd2, 0x22, 0x97, 0xf9,
+ 0xf8, 0xa6, 0x4a, 0xa6, 0xf9, 0x4d, 0xc6, 0x0b, 0xf5, 0xe1, 0xde, 0x16,
+ 0xae, 0x2f, 0x8d, 0xa6, 0x4b, 0x5a, 0xd3, 0xf9, 0xc0, 0x9a, 0xab, 0xf3,
+ 0x71, 0xca, 0x1d, 0x60, 0xe5, 0x92, 0xe5, 0x82, 0x5b, 0x93, 0x15, 0x4b,
+ 0x16, 0x45, 0x45, 0x2f, 0x9d, 0x9f, 0x1f, 0xd3, 0xc8, 0xe7, 0xf3, 0x0c,
+ 0xe3, 0xa8, 0xfa, 0xf4, 0x47, 0x71, 0x93, 0x67, 0xf4, 0xcb, 0x65, 0x3e,
+ 0xcd, 0x12, 0xd9, 0x51, 0xd7, 0x1c, 0x6f, 0x6d, 0x52, 0x66, 0xd5, 0x72,
+ 0x96, 0xd1, 0xea, 0xbd, 0xc9, 0xea, 0x74, 0x9a, 0xcf, 0x6f, 0xe8, 0x57,
+ 0x9e, 0xf8, 0xac, 0x28, 0xb3, 0x61, 0xb2, 0x5f, 0x25, 0xf7, 0xc5, 0x92,
+ 0x26, 0x3c, 0x9d, 0xd2, 0x9e, 0x67, 0xc9, 0x28, 0x9b, 0x16, 0x77, 0x7d,
+ 0xde, 0xe9, 0x64, 0xbe, 0x9c, 0x8d, 0xa8, 0x81, 0xe2, 0xd2, 0x37, 0x97,
+ 0xd6, 0x4b, 0x6a, 0x4e, 0x9e, 0x9e, 0xa5, 0x34, 0x27, 0x7a, 0xb7, 0x4c,
+ 0xae, 0x33, 0x9a, 0x73, 0xb5, 0xc8, 0xe7, 0xbf, 0x6b, 0xae, 0x0b, 0x2d,
+ 0xed, 0xa2, 0xb8, 0xcb, 0x4a, 0x5a, 0xd9, 0xd1, 0x7d, 0x42, 0x8b, 0x30,
+ 0x12, 0x22, 0xbc, 0x24, 0x22, 0x4b, 0x52, 0x6a, 0xc2, 0x11, 0xe0, 0xa0,
+ 0xcc, 0xa6, 0x29, 0x13, 0x93, 0xeb, 0x63, 0x48, 0x9b, 0x98, 0x39, 0x6a,
+ 0xd3, 0x57, 0x37, 0x9e, 0x6c, 0xe2, 0xe5, 0x09, 0xcd, 0x24, 0x9f, 0x56,
+ 0xb4, 0x0d, 0x7c, 0x2c, 0xf4, 0x19, 0xde, 0x54, 0x3e, 0x26, 0x44, 0x9b,
+ 0xf7, 0xf3, 0x3a, 0xfd, 0x80, 0xee, 0x95, 0x36, 0x07, 0x93, 0x6c, 0x91,
+ 0xcd, 0x27, 0xd9, 0xbc, 0x1e, 0x26, 0x3f, 0x14, 0xcb, 0x75, 0xea, 0xfb,
+ 0x32, 0xa7, 0x35, 0x48, 0xb5, 0x29, 0xea, 0x99, 0x88, 0x60, 0x5c, 0xe6,
+ 0x8b, 0x60, 0x2b, 0x8a, 0x39, 0xed, 0x79, 0x72, 0xf6, 0xfa, 0x20, 0x79,
+ 0xf2, 0xfc, 0xb3, 0x4f, 0xfc, 0x9e, 0x53, 0x03, 0xc9, 0x38, 0x9d, 0xd3,
+ 0x8c, 0xb3, 0x71, 0x7e, 0x79, 0x9f, 0xcc, 0x96, 0xd3, 0x3a, 0x5f, 0xd0,
+ 0xea, 0x53, 0xe7, 0x15, 0x1f, 0xa0, 0x45, 0x5a, 0xd6, 0x15, 0x13, 0x01,
+ 0x3e, 0xc0, 0xdc, 0xef, 0xca, 0xbc, 0xe6, 0x83, 0x84, 0xef, 0x68, 0x84,
+ 0x59, 0x5d, 0x59, 0x73, 0x4c, 0x6b, 0xd4, 0xcf, 0x88, 0x68, 0x8b, 0x96,
+ 0x36, 0xad, 0xa8, 0xd3, 0xbd, 0x35, 0xcf, 0x43, 0xae, 0xeb, 0x7a, 0xb1,
+ 0xb7, 0xb5, 0x55, 0xe5, 0x75, 0x36, 0xfc, 0x0f, 0x3a, 0x87, 0xfd, 0xfa,
+ 0xae, 0xe8, 0xd7, 0xd7, 0x65, 0x96, 0xfd, 0x63, 0x48, 0x34, 0xec, 0x9e,
+ 0xa4, 0x7e, 0xef, 0x75, 0x60, 0x57, 0x59, 0x4d, 0x3d, 0xfc, 0x6d, 0x99,
+ 0xcd, 0xb9, 0x45, 0x1a, 0x47, 0x3a, 0x5d, 0x5c, 0xa7, 0xb4, 0x9d, 0x19,
+ 0x51, 0x23, 0x9f, 0x6c, 0x22, 0x18, 0x1e, 0x95, 0x9c, 0xed, 0x1f, 0x7f,
+ 0x8e, 0x3b, 0xbd, 0x44, 0x9f, 0xf4, 0xef, 0x50, 0xdf, 0x4a, 0x69, 0xb5,
+ 0xa9, 0xb7, 0x2d, 0xa6, 0xb2, 0x1f, 0x77, 0x06, 0x3b, 0xdb, 0xdb, 0x3f,
+ 0x0f, 0xeb, 0x0f, 0xf5, 0x47, 0xbf, 0xb2, 0xbd, 0xed, 0x5f, 0xe2, 0xa7,
+ 0x37, 0x78, 0xd6, 0xc9, 0x94, 0x08, 0x87, 0x87, 0xf0, 0xf7, 0xac, 0x2c,
+ 0xaa, 0xcd, 0xce, 0xc6, 0xa6, 0x59, 0x4d, 0xc7, 0x2e, 0x68, 0x29, 0x1d,
+ 0xfc, 0xbd, 0xd9, 0xf5, 0xdb, 0xac, 0x02, 0xe5, 0xf8, 0x19, 0x27, 0x69,
+ 0x49, 0xd4, 0x5b, 0xd4, 0x9e, 0x49, 0xf5, 0xe9, 0x68, 0xd6, 0x6e, 0x7d,
+ 0xe8, 0xe4, 0xd1, 0xd3, 0xc4, 0xde, 0xd2, 0x29, 0x73, 0xb6, 0x2a, 0x99,
+ 0x67, 0x1f, 0xdc, 0x59, 0x27, 0x1e, 0x90, 0xa5, 0xe3, 0xeb, 0xa4, 0xa0,
+ 0x23, 0x50, 0x76, 0x6c, 0x44, 0x3a, 0xbf, 0x1f, 0x16, 0xe5, 0xd5, 0x56,
+ 0x5a, 0x8e, 0xaf, 0xf3, 0x5b, 0x5a, 0x8c, 0xe7, 0xcf, 0x3f, 0x19, 0xd0,
+ 0x3f, 0xcf, 0x7f, 0xde, 0xba, 0x2d, 0xa6, 0xb4, 0x36, 0x4f, 0x7f, 0xde,
+ 0xe2, 0x4d, 0xfe, 0x8f, 0xb4, 0x3f, 0xea, 0x8f, 0xff, 0x31, 0xbc, 0xae,
+ 0x67, 0xd3, 0x95, 0xa4, 0x43, 0x8d, 0x25, 0xe9, 0xac, 0x58, 0xce, 0x6b,
+ 0x47, 0x2e, 0x44, 0x75, 0x75, 0xc0, 0x9e, 0xe8, 0xc0, 0xd2, 0x29, 0x65,
+ 0xe2, 0x66, 0x2a, 0xe2, 0x73, 0x47, 0x47, 0xd4, 0x1f, 0xc8, 0x7a, 0x7c,
+ 0x4d, 0x73, 0x27, 0xf2, 0x49, 0x75, 0xfe, 0x75, 0x9e, 0xf2, 0xd1, 0x24,
+ 0x0e, 0xc1, 0x1c, 0x0b, 0x4d, 0x49, 0x67, 0x39, 0x3d, 0x57, 0x94, 0x93,
+ 0xac, 0x6c, 0x12, 0x32, 0x86, 0xe3, 0xc7, 0x93, 0xd0, 0x5a, 0x2e, 0xa8,
+ 0xf3, 0x25, 0x33, 0x3b, 0x9c, 0x35, 0x6e, 0x81, 0x4e, 0xe9, 0x15, 0x2d,
+ 0x13, 0x2d, 0x0d, 0x93, 0x16, 0xaf, 0xdc, 0x7d, 0xf2, 0x96, 0xf6, 0x4f,
+ 0x38, 0x44, 0x40, 0x81, 0xb2, 0x5b, 0x1d, 0xab, 0x76, 0x77, 0x77, 0xb7,
+ 0x9a, 0x94, 0xf6, 0x76, 0x22, 0x6a, 0x0a, 0x5e, 0xeb, 0xa2, 0x80, 0xbd,
+ 0xdd, 0xe6, 0x0b, 0xdf, 0x11, 0x13, 0xf5, 0xe4, 0x4c, 0x03, 0xf9, 0x8f,
+ 0x7f, 0x04, 0xf4, 0x70, 0xc7, 0xdf, 0xe6, 0xf3, 0xdb, 0xe2, 0x86, 0xd6,
+ 0x00, 0xb7, 0x5c, 0xda, 0x58, 0xdf, 0x84, 0xf9, 0xc4, 0x6c, 0x51, 0xbb,
+ 0xeb, 0x83, 0x09, 0x85, 0x3e, 0x1a, 0xa5, 0xa3, 0xe9, 0x7d, 0x72, 0x9d,
+ 0xde, 0x66, 0x3c, 0xf5, 0x05, 0x51, 0x10, 0x2f, 0x06, 0xb1, 0xf5, 0x29,
+ 0xf8, 0x8c, 0x1e, 0xdc, 0x49, 0xb1, 0x1c, 0xd1, 0xe1, 0xff, 0xdb, 0xb2,
+ 0xa8, 0x65, 0x8d, 0xd2, 0xdb, 0x22, 0x9f, 0x34, 0xee, 0xca, 0xeb, 0x8c,
+ 0x19, 0x0e, 0x77, 0x8c, 0x4b, 0x84, 0x18, 0x1e, 0x8f, 0x14, 0x47, 0x20,
+ 0xaf, 0xf9, 0x3a, 0x22, 0x56, 0x45, 0xcb, 0x52, 0x24, 0xc9, 0x55, 0xc1,
+ 0xf4, 0x0b, 0x06, 0x09, 0x02, 0xa4, 0xfd, 0xb9, 0x4e, 0xf9, 0xd6, 0xa1,
+ 0x15, 0x70, 0x14, 0x5a, 0x66, 0xe0, 0x95, 0xd8, 0xb4, 0x74, 0xda, 0x97,
+ 0xdb, 0x85, 0xdf, 0xc9, 0x3e, 0xa4, 0x33, 0x66, 0x44, 0xeb, 0x7f, 0x5c,
+ 0xef, 0x27, 0xeb, 0xff, 0xb6, 0x0e, 0x3e, 0xbf, 0xfe, 0xa7, 0x75, 0xbf,
+ 0xe5, 0x24, 0x2e, 0xdd, 0xe6, 0x13, 0xbe, 0x28, 0x68, 0x26, 0x47, 0xa7,
+ 0xb7, 0x9f, 0x24, 0x7f, 0xe7, 0xbb, 0x9d, 0x78, 0x61, 0xf6, 0xc1, 0xe8,
+ 0xc5, 0xe6, 0x46, 0x6f, 0x27, 0xc4, 0x14, 0xd3, 0x05, 0x5f, 0xf2, 0x59,
+ 0x39, 0x26, 0xe2, 0x4a, 0xaf, 0x88, 0x9c, 0xe8, 0xae, 0xb4, 0xe6, 0xb8,
+ 0x7d, 0x7e, 0x45, 0xa6, 0x45, 0x0c, 0x2c, 0x99, 0xa7, 0x33, 0xa2, 0xd7,
+ 0x63, 0x1e, 0x51, 0x3e, 0x8f, 0x37, 0xf4, 0xc7, 0xcb, 0xec, 0xb3, 0xed,
+ 0xbd, 0xbd, 0x27, 0x7f, 0xd8, 0x7d, 0x96, 0xd5, 0xd7, 0xdb, 0x3f, 0x6f,
+ 0xb9, 0x47, 0x8e, 0x2e, 0xb1, 0xec, 0x46, 0x89, 0x36, 0x08, 0xba, 0x85,
+ 0x1d, 0x17, 0xa7, 0xf7, 0xe9, 0xf7, 0xec, 0x32, 0xff, 0xd0, 0x37, 0x79,
+ 0x46, 0x4e, 0x44, 0x4a, 0x14, 0x42, 0xfb, 0xc7, 0x87, 0xd7, 0x9a, 0xbb,
+ 0x5a, 0x66, 0x15, 0xad, 0xe4, 0xdd, 0x75, 0x5a, 0x27, 0xae, 0x01, 0xd9,
+ 0xd9, 0x59, 0x7e, 0x75, 0x5d, 0x27, 0x77, 0x29, 0x5f, 0x06, 0x47, 0xb5,
+ 0x34, 0xc1, 0xb7, 0x30, 0x5d, 0x01, 0x97, 0x29, 0xf1, 0x72, 0xde, 0x43,
+ 0x5c, 0xb9, 0x23, 0x2f, 0x01, 0xd4, 0x44, 0xf1, 0xb2, 0x21, 0x5e, 0xdc,
+ 0x19, 0xa5, 0x15, 0x9f, 0xa9, 0x39, 0x1d, 0xdd, 0x9a, 0xee, 0xf0, 0x25,
+ 0xff, 0x75, 0x4d, 0xb7, 0x34, 0xd6, 0x40, 0x07, 0x8a, 0x8b, 0xec, 0x35,
+ 0x6f, 0x27, 0xef, 0x8d, 0xbb, 0x5c, 0x68, 0x93, 0xfa, 0xba, 0xcd, 0xee,
+ 0x8d, 0x8a, 0xce, 0x1e, 0xf1, 0x0d, 0x47, 0x19, 0x3d, 0x66, 0x7f, 0x3d,
+ 0x99, 0x27, 0xc6, 0x98, 0x56, 0x7c, 0x91, 0xcb, 0x75, 0x4d, 0x83, 0x0f,
+ 0x26, 0x4b, 0x8b, 0x96, 0xde, 0xb0, 0xc8, 0xd0, 0x12, 0x4c, 0xf0, 0xda,
+ 0xa4, 0x20, 0x22, 0xa3, 0xd1, 0x12, 0x9b, 0xe4, 0x99, 0x31, 0xf3, 0xc3,
+ 0xaa, 0x80, 0xc8, 0xa9, 0x4d, 0xfe, 0x30, 0xaf, 0xf9, 0x0e, 0x80, 0x94,
+ 0x49, 0xe3, 0xa5, 0x45, 0x81, 0xa0, 0x48, 0x2c, 0x34, 0x98, 0x3f, 0xae,
+ 0x2f, 0x7a, 0x36, 0xb9, 0x25, 0x29, 0x82, 0x04, 0xc6, 0xcc, 0xbd, 0x85,
+ 0xfb, 0x76, 0xcc, 0xb2, 0xcb, 0x94, 0xce, 0xcb, 0xb8, 0x28, 0x4b, 0x96,
+ 0xc8, 0x79, 0x07, 0x47, 0xc2, 0xe2, 0x66, 0x19, 0x5d, 0xf3, 0xe1, 0x72,
+ 0xe6, 0x7c, 0xe1, 0x10, 0xab, 0x21, 0xb9, 0x01, 0xcc, 0x84, 0xee, 0x77,
+ 0x70, 0x63, 0x4c, 0x1c, 0xa3, 0xe3, 0xb6, 0xc7, 0xe3, 0x6c, 0x51, 0x57,
+ 0x5d, 0x73, 0xb2, 0x0d, 0xa7, 0xe1, 0x94, 0x19, 0xaf, 0x7c, 0x28, 0x14,
+ 0x61, 0x5d, 0xdd, 0xa5, 0x0c, 0xb9, 0xc8, 0xe4, 0x0c, 0x92, 0x93, 0x2a,
+ 0xb7, 0x6a, 0x35, 0x68, 0x83, 0x38, 0x1a, 0xd6, 0x7c, 0xc6, 0x03, 0xe5,
+ 0x87, 0x2b, 0x39, 0xa9, 0xe0, 0x9c, 0xbc, 0x91, 0x22, 0x09, 0x4b, 0xbf,
+ 0x7c, 0xa9, 0xd0, 0x7a, 0xba, 0xc6, 0xa9, 0x57, 0xb7, 0xa7, 0xdc, 0x7d,
+ 0x45, 0x3a, 0x04, 0xdd, 0xb4, 0x93, 0xea, 0x9a, 0x84, 0xa3, 0x4a, 0x4f,
+ 0x76, 0x3e, 0x23, 0x9a, 0xb9, 0xe5, 0xfd, 0x5d, 0x64, 0xd9, 0x64, 0x98,
+ 0x9c, 0x5c, 0x32, 0x83, 0x2d, 0x69, 0xd0, 0x35, 0xbe, 0x66, 0x9e, 0x4f,
+ 0xeb, 0x36, 0x81, 0x90, 0xed, 0x8e, 0x96, 0x0c, 0x25, 0x60, 0xde, 0x4c,
+ 0x69, 0xb4, 0xd8, 0x09, 0x73, 0xb9, 0x69, 0xf3, 0x82, 0xc0, 0x39, 0x24,
+ 0x46, 0xce, 0xc3, 0x1b, 0x65, 0x09, 0x28, 0x71, 0x94, 0xd5, 0x77, 0x59,
+ 0xe6, 0x9a, 0xab, 0x32, 0xba, 0x94, 0x78, 0xd3, 0x44, 0x32, 0x03, 0x33,
+ 0xe4, 0xa5, 0x3d, 0x3d, 0x3b, 0xf9, 0xea, 0xec, 0xf0, 0xfc, 0x3c, 0x79,
+ 0x73, 0x78, 0x71, 0x78, 0xd6, 0x58, 0xe9, 0x79, 0x51, 0xce, 0xb0, 0xa3,
+ 0x93, 0xbc, 0x5a, 0x4c, 0xd3, 0x7b, 0xde, 0x6a, 0x9a, 0xc9, 0x55, 0xc9,
+ 0x27, 0x6b, 0x96, 0xf1, 0x05, 0x31, 0x59, 0x82, 0x93, 0x25, 0x05, 0xf1,
+ 0x87, 0x54, 0x25, 0x52, 0x66, 0x26, 0x10, 0x63, 0xe7, 0x57, 0x7e, 0xa5,
+ 0x89, 0xe3, 0xe8, 0x3d, 0xc7, 0x17, 0x9d, 0xdb, 0x0f, 0x16, 0x0d, 0xa1,
+ 0x7c, 0xf4, 0xfd, 0x67, 0xb2, 0x4c, 0x15, 0xe6, 0x44, 0x34, 0x9b, 0xcf,
+ 0xc0, 0xec, 0xe8, 0xa7, 0x97, 0x06, 0xb3, 0x4b, 0x12, 0x85, 0xe9, 0xee,
+ 0x6b, 0x91, 0x86, 0x1b, 0x27, 0xd6, 0x15, 0x3a, 0x0d, 0x2b, 0x39, 0xd4,
+ 0x39, 0x8d, 0x75, 0x96, 0xcf, 0x89, 0xc0, 0x88, 0x20, 0xf5, 0x94, 0x33,
+ 0x25, 0xd0, 0x58, 0x2f, 0x85, 0x27, 0xe8, 0x8a, 0x34, 0x95, 0x25, 0x7a,
+ 0x99, 0x36, 0x9b, 0xb8, 0xa0, 0x9b, 0x1e, 0x06, 0x45, 0xa4, 0xc9, 0xfc,
+ 0x7a, 0xc4, 0xac, 0x89, 0x35, 0x06, 0x12, 0xed, 0xb2, 0xce, 0xde, 0xdc,
+ 0x7d, 0x42, 0x6f, 0xd0, 0xd8, 0xe8, 0x36, 0xe1, 0x0b, 0xe2, 0x3a, 0x6b,
+ 0xaf, 0x22, 0x1d, 0x22, 0xf0, 0x96, 0xbb, 0xbc, 0xc2, 0xa1, 0xba, 0x2b,
+ 0x96, 0x53, 0x92, 0xcf, 0xf9, 0x81, 0xe5, 0x02, 0x2f, 0x50, 0x57, 0x0b,
+ 0x7f, 0x7a, 0x66, 0xf9, 0x07, 0x5e, 0xf5, 0x76, 0x2b, 0x34, 0x34, 0xfa,
+ 0x73, 0x41, 0x9b, 0x20, 0xc3, 0x19, 0xb6, 0x79, 0x2b, 0xb8, 0x46, 0xb4,
+ 0x87, 0x7c, 0x5a, 0xc0, 0xee, 0x4e, 0x4f, 0xce, 0x2f, 0xf8, 0xee, 0x3c,
+ 0x7d, 0x77, 0x41, 0x0d, 0xd1, 0xe5, 0x59, 0xd5, 0xb4, 0x9d, 0xfc, 0xe2,
+ 0x3c, 0x83, 0x72, 0x64, 0xcd, 0xd1, 0xae, 0xe5, 0x38, 0xe2, 0x90, 0x0d,
+ 0xac, 0x4b, 0x19, 0xa3, 0x68, 0x8f, 0x4c, 0xbc, 0xa6, 0x3b, 0xca, 0xed,
+ 0xe7, 0x5f, 0x4a, 0x36, 0x3e, 0xdf, 0xa4, 0xed, 0x1e, 0xb8, 0xe6, 0x7e,
+ 0xe4, 0xa7, 0x71, 0x6b, 0x57, 0xf9, 0x2c, 0x9f, 0xa6, 0x81, 0x84, 0xa2,
+ 0x9c, 0x88, 0xe9, 0xda, 0x9d, 0xc7, 0x31, 0xb1, 0x5d, 0x0c, 0xda, 0xab,
+ 0x48, 0xbc, 0x82, 0x38, 0xcd, 0x7e, 0xa3, 0x26, 0x7c, 0x91, 0x42, 0x06,
+ 0x5c, 0xe4, 0x6e, 0xe1, 0x78, 0xc7, 0xf8, 0x98, 0x37, 0x96, 0xa9, 0xbd,
+ 0x6b, 0xd1, 0xb2, 0x31, 0x27, 0x87, 0x0e, 0xee, 0x16, 0xae, 0x37, 0x4a,
+ 0xcb, 0x9e, 0xe3, 0x60, 0xa2, 0x18, 0x53, 0xa3, 0x57, 0x4b, 0x1a, 0xbc,
+ 0xac, 0x6a, 0x3f, 0x19, 0xfc, 0x9e, 0x47, 0xce, 0xfa, 0x91, 0x3b, 0xd1,
+ 0x24, 0x77, 0xcf, 0x27, 0xc3, 0xb5, 0x13, 0xe8, 0xe5, 0x4e, 0x89, 0x3f,
+ 0x11, 0xf5, 0x3d, 0x11, 0xf6, 0x2f, 0xfa, 0x40, 0x22, 0x1a, 0x37, 0x49,
+ 0x5f, 0x77, 0x44, 0x83, 0x29, 0x2d, 0x21, 0x31, 0x93, 0x37, 0x3c, 0x74,
+ 0xed, 0x4c, 0x75, 0x7e, 0xec, 0x13, 0x2d, 0x2b, 0xcd, 0xca, 0x5d, 0xc9,
+ 0x93, 0x49, 0xce, 0xdf, 0x11, 0xb1, 0x13, 0xa3, 0x5e, 0x66, 0x10, 0x6e,
+ 0x75, 0x8e, 0x33, 0x3f, 0x37, 0xd6, 0x96, 0xaa, 0x6b, 0x12, 0x8e, 0x93,
+ 0x9e, 0x30, 0x94, 0x01, 0x77, 0xd3, 0xe3, 0x85, 0x9d, 0xb5, 0x3a, 0xa1,
+ 0xb9, 0x4c, 0xf4, 0xb2, 0x52, 0x01, 0x83, 0xb6, 0x6f, 0x96, 0xde, 0x87,
+ 0x92, 0x28, 0x58, 0x0e, 0x46, 0x5e, 0x94, 0xee, 0xde, 0xa6, 0x9b, 0x61,
+ 0xc1, 0x32, 0x81, 0xb2, 0x22, 0xf0, 0x74, 0x9c, 0x9f, 0x4a, 0x86, 0xd6,
+ 0x27, 0xa1, 0x87, 0x9f, 0xbc, 0xba, 0xb6, 0x47, 0x83, 0xfb, 0x21, 0xa5,
+ 0xb9, 0x31, 0x8f, 0x63, 0xb5, 0x6d, 0x62, 0xec, 0xab, 0x28, 0x45, 0x79,
+ 0x9f, 0x16, 0xcc, 0x75, 0x7a, 0x22, 0x7a, 0xe9, 0xc8, 0x31, 0x74, 0x26,
+ 0xac, 0x01, 0x76, 0x95, 0xff, 0xb4, 0xe6, 0xdc, 0xb0, 0x75, 0xb9, 0xaa,
+ 0x47, 0x87, 0xe6, 0x17, 0xea, 0x1c, 0x8b, 0x44, 0x37, 0x40, 0xc5, 0x64,
+ 0x65, 0xeb, 0x0e, 0x6a, 0x23, 0x8e, 0xbd, 0x5e, 0xcb, 0xe1, 0x80, 0x20,
+ 0xdf, 0x5a, 0xf9, 0x0a, 0xb2, 0xb5, 0xf2, 0x63, 0x37, 0x33, 0x9a, 0xd1,
+ 0x24, 0x27, 0x96, 0x46, 0x7c, 0xd5, 0x76, 0xc6, 0xeb, 0x1b, 0x1d, 0xb2,
+ 0xdc, 0x7d, 0x24, 0xa4, 0xb3, 0xea, 0x1c, 0x72, 0x56, 0x1b, 0xd3, 0xe0,
+ 0x84, 0x76, 0xea, 0x18, 0xf3, 0x18, 0xdc, 0x26, 0x7c, 0x1a, 0x48, 0xfa,
+ 0xe5, 0xa3, 0x31, 0x38, 0x39, 0xbe, 0x0d, 0xa8, 0x9a, 0x15, 0xc4, 0x39,
+ 0x5f, 0xb7, 0x7d, 0x28, 0xe1, 0xa3, 0xa2, 0x20, 0x3d, 0xcc, 0x4f, 0x8d,
+ 0x95, 0xa7, 0x6c, 0xce, 0xcc, 0x4a, 0x77, 0x74, 0x30, 0x90, 0xaf, 0xd0,
+ 0xf2, 0x3d, 0x29, 0x00, 0xe9, 0x55, 0x9a, 0x3b, 0x7a, 0x53, 0xc6, 0xe6,
+ 0x9e, 0x9d, 0x17, 0xfa, 0x38, 0xef, 0x14, 0x5f, 0xe4, 0xca, 0x43, 0x96,
+ 0xb8, 0xef, 0x32, 0x9e, 0x17, 0x31, 0x01, 0x9c, 0x64, 0x6d, 0x16, 0xd2,
+ 0x8f, 0x35, 0x37, 0x82, 0xbc, 0xc7, 0xa2, 0x13, 0x38, 0x21, 0x04, 0x21,
+ 0x6a, 0xb2, 0x37, 0x4c, 0xbe, 0x2e, 0xee, 0x32, 0x98, 0xa4, 0x20, 0xa6,
+ 0xe6, 0x6c, 0x54, 0x21, 0x89, 0xe6, 0x2e, 0x4b, 0x66, 0x24, 0x41, 0xd1,
+ 0x6a, 0xe2, 0x12, 0xc5, 0x67, 0x34, 0x4e, 0x2f, 0x7a, 0x17, 0x77, 0xe8,
+ 0xd6, 0x4d, 0xc2, 0xed, 0xe4, 0xa5, 0x9c, 0x88, 0x64, 0x03, 0x97, 0xf4,
+ 0x98, 0x17, 0x6b, 0x51, 0xfb, 0x59, 0xb8, 0xf5, 0x20, 0xb6, 0x59, 0x05,
+ 0x87, 0x8b, 0x6f, 0x2c, 0x1a, 0x41, 0xf2, 0xe9, 0x70, 0xe7, 0xf9, 0x70,
+ 0x7b, 0xc8, 0x22, 0x75, 0x76, 0x9b, 0x17, 0xcb, 0x8a, 0x7a, 0xc7, 0x50,
+ 0x92, 0xe0, 0xcd, 0xac, 0x64, 0x51, 0xbb, 0xb8, 0xba, 0x9a, 0xca, 0x05,
+ 0xbe, 0x55, 0x5c, 0x5e, 0x06, 0x77, 0x7c, 0x99, 0x2d, 0x44, 0x94, 0xe7,
+ 0xc5, 0xd1, 0x43, 0x27, 0x3c, 0x2e, 0xbc, 0xdc, 0x75, 0x39, 0xbd, 0x7e,
+ 0x3c, 0xf8, 0x3d, 0x6d, 0xf4, 0xc0, 0xb8, 0xd1, 0x80, 0x98, 0x51, 0xcb,
+ 0xe4, 0xf8, 0x86, 0x4d, 0x33, 0xe1, 0x95, 0xe8, 0x59, 0x97, 0x08, 0x6c,
+ 0x39, 0x48, 0xcb, 0x7d, 0x48, 0x2d, 0x24, 0x8e, 0x9d, 0x05, 0x06, 0x9f,
+ 0x80, 0xc8, 0x88, 0x39, 0xcd, 0x27, 0x69, 0x49, 0x9a, 0x34, 0xdb, 0x8d,
+ 0xe8, 0x61, 0x3e, 0x6d, 0xa9, 0x90, 0x7b, 0x5f, 0x78, 0x9e, 0x27, 0xb1,
+ 0xc1, 0x1e, 0x0f, 0x30, 0xd4, 0xaa, 0x8d, 0xeb, 0xd0, 0x55, 0x50, 0xc9,
+ 0xc8, 0x54, 0x14, 0x4d, 0xbd, 0x64, 0xe2, 0x99, 0xb7, 0xe9, 0x9d, 0x97,
+ 0xc5, 0x74, 0x5a, 0xdc, 0xf1, 0x25, 0xc2, 0xc2, 0x64, 0xb0, 0xad, 0xb6,
+ 0x1d, 0x55, 0x55, 0x8c, 0x73, 0x31, 0x1c, 0xe9, 0xa2, 0x43, 0x57, 0x86,
+ 0x95, 0x93, 0x5f, 0xad, 0xf4, 0x76, 0x67, 0xb1, 0xb5, 0x22, 0x4e, 0x92,
+ 0x38, 0xbd, 0x1f, 0xa6, 0xa2, 0x56, 0x73, 0xfe, 0xd2, 0x93, 0x23, 0xa9,
+ 0xac, 0x98, 0x46, 0x92, 0xb3, 0x3e, 0x76, 0x67, 0x7a, 0x7b, 0x3e, 0xf6,
+ 0xac, 0x31, 0x38, 0xaa, 0xfd, 0x56, 0x73, 0xd5, 0x92, 0xda, 0xa0, 0xf5,
+ 0x9e, 0xe4, 0x6c, 0x1f, 0x24, 0xed, 0x49, 0x4c, 0x7e, 0x22, 0xeb, 0xd3,
+ 0x6b, 0xe3, 0x65, 0x55, 0x93, 0xa0, 0x69, 0xbd, 0x4a, 0x53, 0xd4, 0x2f,
+ 0x91, 0xe4, 0x3e, 0xd3, 0x59, 0xab, 0x39, 0x22, 0xba, 0x4f, 0x87, 0x4f,
+ 0x3e, 0x19, 0x6e, 0x07, 0x84, 0xb0, 0xcd, 0xeb, 0xcc, 0xaa, 0xd5, 0xce,
+ 0x70, 0xbb, 0xf5, 0xf8, 0x06, 0xdf, 0xe9, 0x9b, 0xb6, 0xe4, 0x8d, 0x35,
+ 0xc7, 0x6d, 0x6f, 0xe7, 0x80, 0xde, 0x0c, 0x6f, 0x32, 0xb9, 0xb3, 0x73,
+ 0x6f, 0x9e, 0x72, 0xbd, 0xd3, 0x0e, 0xcf, 0x21, 0x0e, 0xca, 0x7d, 0x48,
+ 0xf7, 0xf9, 0x9e, 0xb4, 0xb4, 0x33, 0xdc, 0x09, 0xb6, 0x5e, 0x87, 0xb3,
+ 0xd3, 0x3d, 0x9c, 0x98, 0x00, 0x5a, 0x83, 0xd9, 0x31, 0xa1, 0x59, 0x24,
+ 0x25, 0xd7, 0x6f, 0xab, 0x39, 0x53, 0xd5, 0xf4, 0x45, 0x5b, 0x32, 0x5d,
+ 0xa4, 0x27, 0x8d, 0x45, 0xc2, 0x88, 0x76, 0x3f, 0x62, 0x79, 0x40, 0x26,
+ 0x39, 0x69, 0x59, 0xdc, 0x2f, 0x6d, 0x88, 0xdf, 0x1a, 0x59, 0x15, 0x0c,
+ 0x75, 0x57, 0x06, 0xd8, 0x41, 0x3a, 0xb8, 0x58, 0x70, 0x31, 0xf0, 0xc8,
+ 0x97, 0x74, 0x6f, 0x95, 0x53, 0x68, 0x4d, 0x66, 0xf8, 0x24, 0x46, 0x42,
+ 0xfc, 0x2d, 0x9f, 0xd6, 0x4a, 0x90, 0x62, 0x9d, 0xe2, 0xbe, 0x86, 0xed,
+ 0xd1, 0x3d, 0x30, 0x1b, 0xe2, 0x86, 0xf3, 0xc5, 0xbc, 0xf5, 0xc2, 0x2b,
+ 0xe1, 0xc2, 0x2a, 0x6a, 0xbf, 0x3d, 0x7d, 0x4b, 0x33, 0x3b, 0x3e, 0xe7,
+ 0x9b, 0x8f, 0x54, 0x53, 0x59, 0x21, 0x7c, 0x4a, 0xcb, 0x6a, 0xbc, 0xdd,
+ 0x8b, 0xc2, 0x24, 0x05, 0xb7, 0x9a, 0x8b, 0x47, 0x6c, 0x06, 0x01, 0x36,
+ 0x40, 0xd3, 0xb7, 0x65, 0x4a, 0x5a, 0x1b, 0xe6, 0xaa, 0xb3, 0xa8, 0xb8,
+ 0xf9, 0xa1, 0xf4, 0x1c, 0xad, 0x0e, 0xa4, 0x03, 0x28, 0x83, 0xae, 0xe5,
+ 0xe6, 0xbb, 0xb2, 0xb2, 0xbc, 0x2a, 0xf3, 0xec, 0xaa, 0xa8, 0xf9, 0x48,
+ 0xdb, 0x67, 0xf4, 0xcc, 0xa0, 0xd5, 0x1c, 0x56, 0x0d, 0x03, 0x02, 0x67,
+ 0x12, 0xfd, 0x4c, 0x55, 0x11, 0xde, 0x6b, 0xd2, 0xb4, 0x88, 0xab, 0x81,
+ 0x1b, 0xac, 0x3d, 0xb4, 0xb0, 0x9f, 0x44, 0x0b, 0x9b, 0x4e, 0x57, 0xae,
+ 0x2c, 0x77, 0xb5, 0x7f, 0x4c, 0xd3, 0xe3, 0x75, 0x0d, 0x96, 0x15, 0x9f,
+ 0x05, 0xcb, 0x0a, 0x73, 0xaf, 0x2d, 0xec, 0xea, 0x95, 0xc5, 0xd2, 0x7e,
+ 0xf4, 0xda, 0x72, 0x27, 0xd2, 0x55, 0xfb, 0x58, 0x56, 0xaa, 0xed, 0x7d,
+ 0xcc, 0xda, 0x06, 0x8b, 0x2b, 0x9f, 0x26, 0xbb, 0x11, 0xcb, 0x5a, 0xfc,
+ 0x36, 0x8b, 0xbb, 0xc3, 0x8c, 0xaa, 0x9e, 0x56, 0xb7, 0x11, 0x5f, 0xa0,
+ 0x49, 0x6f, 0xb2, 0x85, 0x84, 0x0d, 0x75, 0x21, 0x5f, 0xe0, 0x65, 0xf6,
+ 0x6c, 0xe1, 0x83, 0x18, 0xf1, 0x6c, 0x02, 0xce, 0x48, 0x92, 0x46, 0xe7,
+ 0x70, 0x56, 0xd4, 0xf2, 0xb2, 0x0c, 0x7d, 0xe8, 0x8d, 0xae, 0xdc, 0xaa,
+ 0xbf, 0x9b, 0x75, 0x38, 0xc3, 0xed, 0xbe, 0xff, 0x7d, 0xa7, 0xcd, 0xc2,
+ 0xf9, 0x0e, 0x76, 0xdf, 0x62, 0x0d, 0x49, 0x4e, 0xa8, 0xcb, 0x02, 0x06,
+ 0xa3, 0xc6, 0x10, 0x71, 0x2b, 0x12, 0x67, 0x1c, 0x93, 0x0e, 0x47, 0x3c,
+ 0x72, 0x23, 0x6f, 0x78, 0xcb, 0x4c, 0x96, 0xa4, 0x0d, 0x1e, 0xa5, 0xe3,
+ 0x1b, 0xbe, 0x89, 0x72, 0xb5, 0x43, 0xdb, 0x36, 0xc9, 0x6d, 0x41, 0xba,
+ 0xed, 0x6d, 0xc6, 0x1e, 0x25, 0xeb, 0x68, 0x33, 0x60, 0xad, 0xbb, 0xbc,
+ 0x88, 0x55, 0x35, 0xbd, 0xdd, 0xfd, 0xd8, 0x45, 0xe4, 0x0e, 0x6d, 0x84,
+ 0xbb, 0xf1, 0x12, 0xea, 0x05, 0xb7, 0x62, 0x11, 0xf1, 0xb6, 0x5f, 0xc6,
+ 0xf3, 0x82, 0x6e, 0xf9, 0x7c, 0x66, 0x3d, 0xe4, 0x21, 0x67, 0x60, 0x69,
+ 0x9f, 0x9e, 0xbe, 0x5d, 0x79, 0x5c, 0x87, 0xfa, 0x75, 0xce, 0xce, 0xa3,
+ 0x49, 0x06, 0x33, 0x11, 0x1d, 0xa0, 0x09, 0x9c, 0x43, 0x74, 0xfd, 0x64,
+ 0xd4, 0x66, 0x20, 0x74, 0x0f, 0x9e, 0xd8, 0x54, 0x9f, 0xfc, 0x9a, 0xa9,
+ 0x3e, 0xf9, 0x17, 0x4c, 0xf5, 0xc9, 0xca, 0xa9, 0xfa, 0x59, 0x3c, 0xe5,
+ 0x59, 0xe4, 0x8b, 0xdb, 0xa7, 0x6d, 0x31, 0x88, 0x6f, 0x38, 0x95, 0x47,
+ 0xeb, 0xc6, 0x8d, 0x48, 0x57, 0x48, 0x31, 0xbd, 0xcd, 0x54, 0x48, 0xa0,
+ 0x0f, 0x8e, 0x4e, 0x6f, 0x9f, 0xb2, 0xd8, 0xc9, 0x72, 0x1a, 0xdb, 0x83,
+ 0x58, 0xca, 0xed, 0xa2, 0x52, 0x56, 0x75, 0x43, 0xb5, 0x81, 0x0d, 0x96,
+ 0x6c, 0xdf, 0x0d, 0x46, 0xf3, 0x89, 0x8e, 0xe6, 0x93, 0xae, 0xd1, 0x7c,
+ 0xfc, 0x70, 0x3e, 0x09, 0x86, 0xf3, 0x0b, 0x47, 0xf3, 0x34, 0x18, 0x4d,
+ 0xca, 0xa3, 0x49, 0x17, 0xec, 0x96, 0x6b, 0x6f, 0x31, 0x29, 0xf6, 0x5b,
+ 0xec, 0xd9, 0xdd, 0x34, 0xbb, 0xbe, 0xba, 0x38, 0xe6, 0xce, 0x23, 0x0a,
+ 0xf9, 0x9f, 0x1d, 0x90, 0x3a, 0x54, 0x69, 0x47, 0xb5, 0xdc, 0xb6, 0xf4,
+ 0x9a, 0x96, 0xec, 0xb5, 0x50, 0x07, 0x69, 0x20, 0xe5, 0xd2, 0xff, 0x68,
+ 0xbb, 0x9d, 0x67, 0x8e, 0x2d, 0xf1, 0xac, 0xf2, 0xab, 0x32, 0x0f, 0xba,
+ 0xe0, 0x77, 0xda, 0x92, 0x47, 0x91, 0x55, 0xac, 0xf6, 0x65, 0x1f, 0x72,
+ 0x76, 0xc8, 0xe6, 0x6a, 0x40, 0x26, 0x35, 0x2f, 0x19, 0x8b, 0x61, 0x7e,
+ 0xc8, 0x4e, 0x29, 0x50, 0x95, 0x58, 0x18, 0x31, 0xd8, 0xe4, 0x72, 0x9a,
+ 0x5e, 0x75, 0x5c, 0x8d, 0xf9, 0xd5, 0xbc, 0x50, 0x07, 0x69, 0x45, 0x54,
+ 0x07, 0x8f, 0xb6, 0x12, 0x62, 0x45, 0x5c, 0x64, 0x3e, 0x9e, 0x2e, 0xe1,
+ 0x22, 0x3b, 0xa1, 0x09, 0x9e, 0x9f, 0x7f, 0x1d, 0xb2, 0x83, 0x7d, 0x5e,
+ 0x41, 0x16, 0x29, 0x07, 0xe9, 0x15, 0x4b, 0x97, 0x2f, 0xe4, 0x47, 0x55,
+ 0x33, 0xaf, 0xfe, 0xbc, 0x5b, 0xde, 0x39, 0x57, 0x1d, 0x12, 0x76, 0x7e,
+ 0x7e, 0x75, 0x3f, 0x78, 0x87, 0xd7, 0xaf, 0xf2, 0xeb, 0x28, 0x77, 0x84,
+ 0x1e, 0x8a, 0x36, 0x27, 0xe3, 0xb1, 0x12, 0x2f, 0x9b, 0xb0, 0xd6, 0x03,
+ 0xcb, 0x65, 0x72, 0xf0, 0xd5, 0x11, 0x4f, 0x33, 0xcd, 0xa7, 0x62, 0x56,
+ 0xd3, 0x69, 0xe7, 0xd9, 0x94, 0x35, 0x26, 0xac, 0x19, 0x1c, 0x9f, 0x49,
+ 0x68, 0xa6, 0xd7, 0xff, 0x7a, 0x6f, 0x8a, 0xbf, 0xd3, 0x2a, 0xa6, 0x5b,
+ 0x4f, 0x87, 0xdb, 0x3d, 0x16, 0xe1, 0xe9, 0xb2, 0xca, 0xe6, 0xe3, 0x82,
+ 0x3d, 0x15, 0xa3, 0x69, 0x3a, 0xbf, 0xa9, 0x44, 0xe9, 0x12, 0x4d, 0x84,
+ 0xc7, 0xda, 0xa7, 0xe3, 0x57, 0x96, 0xc5, 0x72, 0x3e, 0xe9, 0xd8, 0x72,
+ 0x9d, 0x0e, 0x8e, 0xbc, 0x9a, 0x4b, 0xe1, 0x9e, 0x21, 0x92, 0x29, 0x6f,
+ 0xcc, 0x2c, 0xcb, 0x57, 0x02, 0x9c, 0x2e, 0xbc, 0x75, 0x18, 0x97, 0x13,
+ 0xf7, 0x5b, 0xcd, 0x0d, 0xbe, 0x86, 0x98, 0x4d, 0x64, 0xc3, 0xee, 0x70,
+ 0x39, 0x27, 0x85, 0x19, 0x71, 0xa3, 0x5b, 0xf0, 0xe8, 0x52, 0xa6, 0xae,
+ 0x0f, 0xda, 0x0d, 0x6d, 0x8a, 0x07, 0xf8, 0x8a, 0x38, 0xd8, 0xa7, 0x69,
+ 0x55, 0xc3, 0xd0, 0x63, 0x14, 0xc4, 0x0f, 0x86, 0xa2, 0x74, 0x3a, 0xbf,
+ 0xe7, 0x00, 0x81, 0x8f, 0x11, 0xa5, 0x2f, 0xf3, 0x2b, 0xe2, 0xa0, 0x62,
+ 0xe1, 0x42, 0x4c, 0x81, 0x85, 0x12, 0xb0, 0x6e, 0x76, 0x5d, 0x80, 0xc0,
+ 0x48, 0xa6, 0xcd, 0xa6, 0x97, 0x5d, 0xe7, 0xd5, 0x94, 0x73, 0xe8, 0xaf,
+ 0xc2, 0x8c, 0x31, 0xb0, 0xe0, 0x28, 0xb0, 0x03, 0x3a, 0x19, 0x4f, 0xd3,
+ 0x7c, 0x56, 0x35, 0xc4, 0xd7, 0x61, 0x17, 0x37, 0x61, 0xf3, 0x2b, 0xbf,
+ 0x3f, 0x62, 0x93, 0x7a, 0x59, 0xb1, 0xa9, 0x84, 0x37, 0x24, 0x35, 0x89,
+ 0x5a, 0x0c, 0xd6, 0xd7, 0xd9, 0xf8, 0x06, 0x64, 0x17, 0x98, 0x11, 0xdb,
+ 0x1c, 0x55, 0x56, 0x1d, 0x0b, 0xb6, 0xe4, 0x70, 0x02, 0x12, 0x3d, 0xd8,
+ 0x29, 0x97, 0xcf, 0x27, 0xcb, 0x31, 0x8e, 0x2d, 0x5b, 0x46, 0x48, 0x1c,
+ 0x2b, 0x53, 0x16, 0x6f, 0x6a, 0x09, 0xdf, 0x00, 0x5d, 0x0c, 0x88, 0x08,
+ 0x16, 0x9d, 0xa3, 0x83, 0x73, 0x43, 0x64, 0xd2, 0x06, 0x3b, 0xa8, 0xd4,
+ 0x15, 0x00, 0x2b, 0xbb, 0x69, 0x7a, 0xcd, 0xd5, 0x6c, 0x35, 0x27, 0x6b,
+ 0xdb, 0xa7, 0xeb, 0x26, 0xa7, 0xdb, 0xdb, 0xfc, 0xcb, 0x93, 0x42, 0x49,
+ 0x69, 0x40, 0xba, 0x79, 0x95, 0x8f, 0xc5, 0x28, 0x95, 0x5f, 0x65, 0xcc,
+ 0x30, 0x58, 0xd0, 0xac, 0xa7, 0x33, 0x09, 0xc2, 0x68, 0x13, 0xda, 0xc0,
+ 0x49, 0x68, 0x11, 0x59, 0x85, 0x1c, 0x45, 0xd4, 0x11, 0x47, 0x1f, 0x66,
+ 0x22, 0x0d, 0x0d, 0x66, 0xb9, 0xd8, 0x2e, 0x69, 0x28, 0xc2, 0x33, 0xdb,
+ 0x7c, 0x07, 0x3e, 0x8e, 0xaa, 0x26, 0xde, 0xd2, 0xe7, 0x23, 0x32, 0x86,
+ 0xe1, 0x99, 0x8d, 0x7a, 0x66, 0x51, 0x34, 0xd3, 0xe8, 0x88, 0x85, 0x40,
+ 0xf6, 0x36, 0xdd, 0xe5, 0x63, 0x71, 0x34, 0xc0, 0x59, 0xd6, 0x61, 0x22,
+ 0x18, 0x4f, 0x73, 0x7e, 0x70, 0x46, 0x6a, 0x2d, 0xbf, 0x25, 0x52, 0x33,
+ 0xdf, 0x21, 0xa4, 0xc1, 0x13, 0x53, 0x3c, 0x12, 0xfb, 0x06, 0xcc, 0x65,
+ 0xd5, 0x35, 0x4c, 0xdc, 0x69, 0x99, 0xc3, 0x1b, 0x15, 0x35, 0x27, 0x63,
+ 0xe6, 0x49, 0x86, 0xe3, 0x84, 0x5a, 0x25, 0x06, 0x5f, 0x6f, 0x2b, 0xc0,
+ 0xd9, 0x61, 0xae, 0x13, 0x1c, 0x9c, 0x11, 0x9f, 0x57, 0x89, 0x8c, 0x49,
+ 0x5e, 0xf0, 0xdd, 0xf5, 0x92, 0x67, 0xb3, 0x82, 0x25, 0x9e, 0xc2, 0x07,
+ 0x76, 0xdd, 0x34, 0x06, 0x07, 0xac, 0x4f, 0x4c, 0x26, 0xd2, 0x1a, 0x1c,
+ 0x86, 0x4c, 0x3d, 0x9d, 0x77, 0x3f, 0x51, 0x14, 0xb3, 0x43, 0xd7, 0xd6,
+ 0xc2, 0x5b, 0x86, 0x68, 0x6b, 0xb2, 0xfc, 0xd6, 0xdc, 0xcf, 0x81, 0x64,
+ 0x0d, 0xd7, 0x7d, 0xef, 0x3c, 0xab, 0xdb, 0xcd, 0x1d, 0xa0, 0xc3, 0xbd,
+ 0x5e, 0x10, 0x01, 0x20, 0xad, 0xea, 0xda, 0x8d, 0x32, 0xf3, 0xd7, 0x8a,
+ 0x25, 0x86, 0x98, 0x28, 0x47, 0x90, 0xed, 0xbc, 0xfc, 0x76, 0xff, 0xf8,
+ 0xdd, 0xe1, 0xce, 0x5f, 0xda, 0xe4, 0x43, 0xdf, 0xed, 0xca, 0x77, 0xbb,
+ 0xbd, 0x2e, 0x9e, 0x45, 0x14, 0x94, 0x24, 0xeb, 0x2f, 0xd7, 0x93, 0xea,
+ 0x7e, 0x36, 0x2a, 0xa6, 0x8e, 0x6f, 0x69, 0x27, 0x3c, 0x8a, 0xbe, 0xba,
+ 0x3e, 0xcc, 0x01, 0x8d, 0x85, 0xe1, 0x2b, 0xb2, 0x3d, 0x76, 0x38, 0x40,
+ 0x55, 0x2e, 0x03, 0x05, 0xa4, 0x93, 0x70, 0x31, 0xaa, 0x1a, 0x57, 0x9e,
+ 0x6e, 0x10, 0xb7, 0x5c, 0x09, 0x41, 0xf6, 0x13, 0x39, 0x49, 0x6d, 0x76,
+ 0x2e, 0x33, 0x76, 0xae, 0x2d, 0x33, 0x00, 0xaa, 0x22, 0x92, 0x88, 0xac,
+ 0x7d, 0x4f, 0xe4, 0x5b, 0xb3, 0xf5, 0xe4, 0x5d, 0x25, 0x4c, 0x25, 0xaf,
+ 0xf4, 0x7c, 0xb6, 0x19, 0x1e, 0x33, 0x7d, 0xf6, 0x57, 0xde, 0xa6, 0xb5,
+ 0x3a, 0x64, 0x7a, 0x3a, 0x96, 0x45, 0x4a, 0x1c, 0xbd, 0xec, 0xe9, 0x79,
+ 0xf6, 0x61, 0x4e, 0x6a, 0x1f, 0xe0, 0x03, 0x56, 0xc6, 0x76, 0x19, 0x3a,
+ 0x75, 0xdc, 0xa3, 0x86, 0x62, 0x71, 0x74, 0x9d, 0x71, 0x04, 0x3e, 0x50,
+ 0x34, 0x6a, 0x76, 0x09, 0xde, 0xeb, 0x91, 0x5c, 0x2f, 0x33, 0x3d, 0xbf,
+ 0xe2, 0xfd, 0x6b, 0x93, 0x3e, 0x35, 0x36, 0xca, 0xe7, 0x46, 0xdb, 0xaa,
+ 0x86, 0x0d, 0x8e, 0x99, 0xa2, 0xa7, 0x85, 0xb2, 0x74, 0x6f, 0x60, 0x55,
+ 0xff, 0xa6, 0xa3, 0x81, 0x4e, 0xdb, 0x9d, 0xc5, 0x86, 0x15, 0x89, 0x6c,
+ 0x85, 0x0d, 0x54, 0xce, 0x96, 0x23, 0xa7, 0x05, 0x31, 0xf7, 0xb9, 0x50,
+ 0xbe, 0x72, 0xdd, 0xa4, 0x28, 0x3b, 0x9a, 0x7b, 0x9b, 0xd5, 0x88, 0x0a,
+ 0xd8, 0xd2, 0x4b, 0xdb, 0x36, 0x12, 0xbd, 0xc8, 0x40, 0x22, 0x02, 0x73,
+ 0x23, 0xf5, 0xfe, 0x4c, 0xb1, 0xb4, 0x86, 0x47, 0xd5, 0x3c, 0xa1, 0xd8,
+ 0xe4, 0x14, 0x57, 0xfe, 0x62, 0xc9, 0x52, 0xd9, 0xdb, 0x22, 0x5a, 0x24,
+ 0x99, 0x81, 0x8b, 0x88, 0x81, 0x17, 0x8e, 0x74, 0x72, 0x3b, 0xbf, 0xdc,
+ 0xd7, 0x90, 0xc5, 0x08, 0xd0, 0x9a, 0x8f, 0x92, 0xd3, 0x8b, 0xae, 0xcd,
+ 0x77, 0xc7, 0x7e, 0x14, 0x83, 0xbf, 0xa6, 0x76, 0xc9, 0xff, 0x86, 0x57,
+ 0xfb, 0x97, 0x2a, 0xbb, 0x0d, 0xd2, 0x6a, 0x9c, 0xe7, 0x5d, 0x02, 0x30,
+ 0x87, 0x40, 0x6e, 0x26, 0x87, 0xb0, 0x2a, 0x24, 0xfb, 0xe7, 0x07, 0x47,
+ 0x47, 0xce, 0x43, 0x3a, 0x94, 0x88, 0x02, 0xc4, 0x3e, 0xaa, 0x98, 0x05,
+ 0x07, 0x81, 0x84, 0x90, 0x8c, 0xda, 0xb3, 0xcb, 0xd8, 0x56, 0x3b, 0x36,
+ 0xd3, 0x84, 0xd0, 0x1e, 0x3d, 0xce, 0x26, 0x55, 0x5c, 0x27, 0x74, 0x61,
+ 0x54, 0x6a, 0x69, 0xff, 0x4b, 0x7d, 0xbf, 0xc8, 0x5e, 0xee, 0xf7, 0x86,
+ 0xa1, 0x8a, 0xd2, 0x5e, 0xfb, 0x74, 0xc9, 0xa2, 0xbf, 0xf0, 0x22, 0xdc,
+ 0x0c, 0xbc, 0xca, 0x13, 0xf5, 0x86, 0x2a, 0x5b, 0x62, 0xcf, 0xc6, 0x8c,
+ 0xc5, 0xb7, 0x4b, 0xf8, 0x83, 0xe6, 0x4f, 0x48, 0x33, 0xbc, 0xa7, 0xab,
+ 0x76, 0x56, 0x85, 0xf2, 0x0d, 0x6e, 0xc7, 0x8f, 0x35, 0x14, 0xaa, 0xc9,
+ 0xe2, 0x4b, 0x7e, 0x27, 0x69, 0x0b, 0x39, 0x2b, 0x65, 0x37, 0x53, 0xf0,
+ 0x38, 0xcc, 0x62, 0x18, 0xde, 0xff, 0x38, 0x18, 0x66, 0xa7, 0x91, 0x38,
+ 0x96, 0xd6, 0xce, 0x2e, 0xd9, 0xda, 0x19, 0x31, 0xf9, 0x9c, 0x6e, 0x6f,
+ 0xe2, 0x3b, 0x44, 0x4a, 0x73, 0xfe, 0xe9, 0x7c, 0x1b, 0x39, 0xa6, 0xcf,
+ 0x1a, 0x45, 0xc9, 0x01, 0x36, 0x0d, 0xee, 0xcf, 0xd2, 0x65, 0xe7, 0x5a,
+ 0xca, 0x75, 0xce, 0xd1, 0x80, 0x10, 0x3a, 0xbc, 0xa5, 0x78, 0x85, 0x10,
+ 0xb7, 0x61, 0x36, 0x65, 0x15, 0x22, 0x22, 0xf9, 0xc1, 0xa4, 0x0c, 0x5a,
+ 0xf5, 0x40, 0x98, 0xd8, 0x8c, 0x28, 0xf9, 0x5d, 0x05, 0x8f, 0x2e, 0x29,
+ 0x46, 0xd7, 0x59, 0xa9, 0x47, 0x71, 0x69, 0xfa, 0x84, 0xb8, 0x90, 0x3e,
+ 0xa8, 0x93, 0xe1, 0xc3, 0x7d, 0xf4, 0xf6, 0x79, 0x96, 0x09, 0xb1, 0xe9,
+ 0x03, 0xb2, 0x91, 0xc1, 0xce, 0xb6, 0xcf, 0xd3, 0x0b, 0x9c, 0x7d, 0xbe,
+ 0x16, 0x1e, 0xd3, 0x4b, 0x0a, 0xe5, 0x9c, 0x78, 0xc1, 0x39, 0xad, 0x8d,
+ 0x0e, 0xc4, 0xd7, 0x8e, 0xd0, 0x51, 0x3d, 0xd2, 0x6d, 0xde, 0x7e, 0xc9,
+ 0x2e, 0x6d, 0x89, 0xef, 0x22, 0xc5, 0x93, 0x6f, 0x29, 0x27, 0x2a, 0x0c,
+ 0x93, 0x03, 0xd8, 0x34, 0xb9, 0x8d, 0x0a, 0x8d, 0x18, 0x1b, 0xf1, 0x5b,
+ 0x15, 0x51, 0x4f, 0xea, 0x22, 0xc6, 0x3c, 0xe7, 0xc2, 0xd8, 0x68, 0x13,
+ 0xee, 0x32, 0x44, 0xe5, 0x34, 0x9a, 0x72, 0x17, 0x3d, 0x5e, 0xeb, 0x26,
+ 0x46, 0xb9, 0xfa, 0x37, 0xaa, 0x4d, 0x08, 0x45, 0xf3, 0xc2, 0xbd, 0xcc,
+ 0xae, 0xb7, 0x9b, 0x79, 0x71, 0x47, 0xb2, 0xce, 0xbc, 0x90, 0x13, 0x66,
+ 0xfc, 0x83, 0x47, 0xdd, 0xbe, 0x66, 0x89, 0xdf, 0x05, 0x77, 0x40, 0xf8,
+ 0x64, 0xed, 0xc2, 0xe1, 0xd4, 0x20, 0xac, 0x2c, 0xdb, 0x96, 0x2d, 0xe9,
+ 0xd2, 0x6c, 0x95, 0x75, 0x8b, 0x34, 0x00, 0xb7, 0x09, 0xb4, 0x22, 0x7f,
+ 0x83, 0xd8, 0xb5, 0x9e, 0x9a, 0x52, 0xc5, 0x8e, 0xd7, 0x7e, 0xd2, 0x1b,
+ 0xf4, 0xfa, 0x1d, 0x27, 0xcf, 0x26, 0xd5, 0x1e, 0x97, 0x63, 0x17, 0x1d,
+ 0x97, 0x04, 0x1c, 0x71, 0x91, 0xeb, 0x4b, 0x63, 0x7e, 0xf4, 0xc6, 0x96,
+ 0x01, 0xd9, 0x3c, 0xb2, 0xf9, 0x15, 0x22, 0xf8, 0xf8, 0x24, 0xb5, 0x85,
+ 0x73, 0x6f, 0x1f, 0x90, 0x8b, 0xdb, 0xa9, 0x3a, 0x3a, 0xb4, 0x61, 0xb2,
+ 0x3f, 0x97, 0xa0, 0xae, 0xbb, 0x14, 0xa4, 0xe7, 0xba, 0x80, 0x9c, 0xd3,
+ 0x5e, 0xed, 0xc2, 0xa9, 0x49, 0x8d, 0x5b, 0xeb, 0xa1, 0xbb, 0xc2, 0xba,
+ 0x4a, 0xf8, 0x10, 0x10, 0x8f, 0x5e, 0x87, 0x64, 0xac, 0x76, 0x02, 0xb8,
+ 0xca, 0xdd, 0xa2, 0xc8, 0xbd, 0x71, 0x77, 0x5d, 0x4c, 0xc5, 0x75, 0xd7,
+ 0x6a, 0xce, 0x0b, 0xbc, 0xc9, 0x1d, 0xdc, 0xce, 0xa2, 0x69, 0xb3, 0x8d,
+ 0xe5, 0x96, 0xde, 0x2f, 0x33, 0xd8, 0x6d, 0x39, 0x62, 0x8f, 0xb4, 0x62,
+ 0xea, 0x6b, 0x9a, 0xa5, 0xe5, 0xf4, 0xde, 0x84, 0xa1, 0xc1, 0x6d, 0xab,
+ 0x39, 0xac, 0x28, 0x9b, 0x45, 0x88, 0xc2, 0xd2, 0x72, 0xce, 0xcf, 0xa8,
+ 0xab, 0xd0, 0x82, 0x65, 0x6b, 0x71, 0xde, 0x8a, 0x87, 0x99, 0x6f, 0xe5,
+ 0xdb, 0x9c, 0x55, 0x2f, 0x22, 0x36, 0x12, 0xe0, 0xdb, 0x94, 0xc8, 0x46,
+ 0x4d, 0x90, 0x0c, 0x9a, 0x94, 0xc8, 0x98, 0xeb, 0x3c, 0xd0, 0xd7, 0xe8,
+ 0x28, 0x5e, 0xd3, 0x0d, 0x49, 0x4a, 0xe4, 0x32, 0x5d, 0xb5, 0x5c, 0x7a,
+ 0x95, 0x99, 0x57, 0xf8, 0xb1, 0xdb, 0xb5, 0x79, 0x1e, 0xbb, 0x24, 0xd0,
+ 0x15, 0x77, 0xef, 0x81, 0x6c, 0x1e, 0x31, 0xd7, 0xf9, 0x92, 0x2e, 0xe0,
+ 0x3a, 0x79, 0x51, 0x5c, 0x5e, 0x12, 0xa9, 0x7f, 0x1e, 0x49, 0xe0, 0xf2,
+ 0xc8, 0xd6, 0x19, 0x22, 0xe8, 0x03, 0x96, 0xde, 0x0c, 0x2a, 0x4b, 0x52,
+ 0x3b, 0x25, 0x57, 0x39, 0xef, 0x45, 0x22, 0xcd, 0x0d, 0x3b, 0x44, 0xa0,
+ 0xe6, 0x13, 0xc1, 0x45, 0x24, 0x5e, 0x71, 0x1f, 0x72, 0x4f, 0x57, 0x75,
+ 0x6d, 0xde, 0x24, 0x9d, 0x46, 0x5b, 0x28, 0xbe, 0xc9, 0x17, 0x0b, 0xde,
+ 0x2c, 0x04, 0xeb, 0x3a, 0x55, 0x89, 0x5b, 0x1b, 0x65, 0x74, 0x26, 0xb0,
+ 0xa7, 0xe6, 0x53, 0x2e, 0x96, 0x24, 0x00, 0x98, 0x1c, 0x38, 0xca, 0xe8,
+ 0xa4, 0xb7, 0x9b, 0x33, 0xc9, 0xde, 0xc7, 0x65, 0xa9, 0x24, 0x35, 0xe1,
+ 0x18, 0xac, 0xb9, 0x32, 0x50, 0xde, 0x26, 0x1f, 0xea, 0xa1, 0x9a, 0x65,
+ 0xd7, 0xe1, 0xf7, 0x56, 0x2c, 0x77, 0xa0, 0xcf, 0x8f, 0xfe, 0xf7, 0xa1,
+ 0x8f, 0xa2, 0x73, 0x61, 0x6a, 0xf7, 0xa0, 0xf6, 0xae, 0x0b, 0x8a, 0x18,
+ 0xcb, 0x41, 0x32, 0xe8, 0x61, 0x20, 0xcc, 0x69, 0xed, 0x12, 0xa0, 0xab,
+ 0xb1, 0x60, 0xd7, 0xb3, 0x84, 0x1b, 0x22, 0x8e, 0x9f, 0x09, 0x8e, 0xf5,
+ 0xc8, 0x32, 0xdb, 0x62, 0x87, 0x7f, 0x6c, 0x60, 0x92, 0x24, 0x08, 0x5d,
+ 0x6c, 0x2f, 0x47, 0x1d, 0xd5, 0x12, 0xf9, 0x09, 0x89, 0x86, 0xbf, 0x93,
+ 0xfd, 0x91, 0x50, 0xa6, 0x2d, 0x88, 0x9f, 0x12, 0x88, 0x17, 0xf3, 0x02,
+ 0x35, 0xb8, 0x48, 0xd8, 0x51, 0x07, 0x33, 0xfb, 0x27, 0x9a, 0x81, 0xc6,
+ 0xf9, 0xe2, 0x9a, 0xa5, 0xf1, 0x17, 0x88, 0x6e, 0x60, 0xcb, 0x93, 0x7c,
+ 0xf0, 0x79, 0xa7, 0x6d, 0xfc, 0x5c, 0xcf, 0x45, 0xa5, 0x37, 0xa9, 0xbd,
+ 0xad, 0xfc, 0x2b, 0xb7, 0xf8, 0x72, 0x8b, 0x97, 0xd4, 0x88, 0x1a, 0x6a,
+ 0xba, 0xcd, 0x72, 0xe8, 0x48, 0xda, 0xcb, 0xa2, 0xd5, 0xfb, 0x10, 0x14,
+ 0xc4, 0x80, 0xda, 0xb7, 0xc3, 0xe4, 0x8c, 0xef, 0xc9, 0xe5, 0x82, 0x43,
+ 0x14, 0x91, 0xa1, 0x82, 0xcf, 0x23, 0xcf, 0x57, 0x55, 0x87, 0x0e, 0x5c,
+ 0xa4, 0x70, 0x84, 0xdd, 0xcd, 0x1b, 0x82, 0x51, 0x1e, 0x7e, 0x47, 0xb2,
+ 0xea, 0x5e, 0xdb, 0x30, 0xc4, 0xbe, 0x28, 0x0d, 0x11, 0x27, 0xe6, 0x38,
+ 0xaf, 0xaa, 0x29, 0xe2, 0xf2, 0x27, 0xc5, 0xb8, 0xda, 0x4a, 0x17, 0x8b,
+ 0x6a, 0xcb, 0x46, 0xd7, 0x88, 0xc0, 0x37, 0x75, 0xf8, 0xfc, 0x3c, 0x98,
+ 0x1c, 0xdf, 0xbb, 0x62, 0xb0, 0x72, 0x12, 0xd8, 0x14, 0x2e, 0xb8, 0xb9,
+ 0xda, 0x5d, 0x25, 0xaa, 0xe6, 0xab, 0xf9, 0xf2, 0xe2, 0xf8, 0x1c, 0xeb,
+ 0xd5, 0xbe, 0x3a, 0x39, 0x26, 0xdc, 0x76, 0x87, 0xdb, 0xb6, 0xa6, 0xa1,
+ 0xe1, 0x89, 0xd6, 0x74, 0x7e, 0x7e, 0x80, 0x0f, 0xcf, 0x97, 0x2c, 0xc3,
+ 0x50, 0x17, 0xe5, 0x7d, 0x62, 0xe6, 0xe1, 0x36, 0xf1, 0xd3, 0x74, 0x93,
+ 0x8f, 0xfd, 0xcf, 0x16, 0xe2, 0x2a, 0xaf, 0x87, 0x97, 0xd9, 0xa4, 0x28,
+ 0xd3, 0xc8, 0x86, 0x56, 0x70, 0x86, 0x04, 0x56, 0x67, 0x4c, 0x4f, 0x6d,
+ 0x91, 0x60, 0xfe, 0x9e, 0xd6, 0x6b, 0xc8, 0xbf, 0x43, 0xe9, 0x93, 0x45,
+ 0xb3, 0x8f, 0x79, 0xbd, 0x7e, 0xff, 0x0a, 0xc1, 0x7a, 0x74, 0x1a, 0xaa,
+ 0xdf, 0x92, 0xb0, 0x49, 0x48, 0x83, 0x27, 0x61, 0xd2, 0x2d, 0x15, 0x9e,
+ 0x99, 0xb5, 0x30, 0xf1, 0x4f, 0xfa, 0xe0, 0xbd, 0x76, 0x6a, 0x1a, 0xc9,
+ 0x61, 0x57, 0x05, 0xdd, 0xa7, 0xd7, 0xb3, 0xf6, 0x7a, 0x8a, 0xf6, 0x6e,
+ 0xae, 0x36, 0xcd, 0x7f, 0x4a, 0x2a, 0x0e, 0xec, 0x17, 0x8e, 0xb0, 0x9c,
+ 0x07, 0x1d, 0xd0, 0x62, 0x10, 0xaf, 0x98, 0xab, 0x24, 0xd4, 0xb1, 0x3d,
+ 0xad, 0x99, 0x5b, 0x10, 0xbc, 0xf2, 0x3b, 0x98, 0xd0, 0x2b, 0x31, 0x4c,
+ 0x2e, 0xe7, 0x3e, 0x4f, 0x4e, 0x0c, 0xda, 0x6c, 0xba, 0xee, 0x1a, 0x1d,
+ 0x96, 0xa8, 0x75, 0x8b, 0x37, 0x97, 0x0a, 0xe7, 0x75, 0xc0, 0xcb, 0xcb,
+ 0xdc, 0xee, 0x45, 0x45, 0x22, 0x0d, 0xf5, 0xf3, 0x79, 0x14, 0xfa, 0xf3,
+ 0x21, 0x9f, 0x2d, 0x67, 0x09, 0xf6, 0x41, 0x8c, 0xe6, 0xfa, 0xa4, 0x69,
+ 0x1b, 0x7c, 0x4d, 0x23, 0x38, 0x06, 0x1d, 0xaf, 0x57, 0x01, 0x2b, 0x88,
+ 0xf9, 0x66, 0x4d, 0x32, 0x94, 0xa9, 0x4d, 0x1a, 0x60, 0x35, 0xe3, 0xd0,
+ 0x88, 0x26, 0x0b, 0x49, 0x16, 0xd7, 0x69, 0x95, 0xf9, 0x88, 0x5a, 0x59,
+ 0xef, 0x30, 0x38, 0xba, 0x11, 0x23, 0x6d, 0x99, 0x13, 0x9e, 0xe1, 0x92,
+ 0x70, 0x93, 0x17, 0x13, 0xe7, 0x4c, 0xb1, 0xcb, 0x39, 0x19, 0x70, 0x73,
+ 0x7c, 0x5d, 0xe8, 0x37, 0x6d, 0xcd, 0xf6, 0x03, 0x9c, 0x36, 0xe7, 0xb0,
+ 0x5f, 0x9a, 0xf3, 0xef, 0xd3, 0xe1, 0x93, 0x5d, 0xf6, 0xea, 0x86, 0x44,
+ 0xaa, 0xa1, 0xe4, 0xc4, 0x75, 0xc6, 0xf9, 0xcc, 0xc5, 0xe7, 0xad, 0xd6,
+ 0x6b, 0x20, 0xe4, 0xcd, 0x58, 0x4e, 0x98, 0xa5, 0x1f, 0xb0, 0xe6, 0xbf,
+ 0xbd, 0x49, 0x60, 0x20, 0x62, 0x21, 0xa9, 0x70, 0x65, 0x9b, 0xe0, 0x1a,
+ 0x6e, 0x30, 0x5a, 0x9c, 0xbf, 0x12, 0xbd, 0xb6, 0x0c, 0x44, 0x16, 0xaf,
+ 0xd6, 0xca, 0x8c, 0x90, 0x36, 0xbb, 0x6c, 0x42, 0xb4, 0x15, 0x44, 0xee,
+ 0x1c, 0x6a, 0x90, 0xb0, 0x5d, 0x89, 0x43, 0xc5, 0xf8, 0xc4, 0x17, 0xf4,
+ 0xc1, 0x75, 0x4e, 0x63, 0x2f, 0xc7, 0xd7, 0xf7, 0xac, 0xdc, 0xb0, 0xbd,
+ 0x96, 0x7d, 0x5a, 0x0f, 0x18, 0x04, 0xd0, 0x87, 0xda, 0x50, 0x69, 0xf0,
+ 0x09, 0x1f, 0x1e, 0x7a, 0xcc, 0xc4, 0x84, 0xd6, 0xf8, 0x58, 0xe4, 0xe6,
+ 0x83, 0x9b, 0x4d, 0xab, 0x0c, 0x47, 0xac, 0x6b, 0x74, 0x83, 0x22, 0x50,
+ 0x39, 0x70, 0x3b, 0xb3, 0x42, 0x94, 0x97, 0x2c, 0xf0, 0x8a, 0xb9, 0x4f,
+ 0xba, 0x62, 0xa3, 0xb5, 0xf4, 0xc6, 0x6a, 0x18, 0xab, 0x6b, 0xf7, 0x31,
+ 0x8d, 0xb0, 0x42, 0xac, 0xaf, 0xdb, 0xda, 0x9b, 0xab, 0x2e, 0x52, 0x41,
+ 0x0a, 0xfd, 0xca, 0x74, 0x35, 0x5b, 0x95, 0xdc, 0xf2, 0x88, 0x84, 0xeb,
+ 0xb0, 0x7c, 0x43, 0x43, 0x91, 0xfc, 0x53, 0xe6, 0xe4, 0xb4, 0x7f, 0x97,
+ 0x75, 0x64, 0x13, 0x0e, 0xb6, 0xb4, 0xb9, 0xd3, 0xd3, 0x4b, 0x16, 0x2f,
+ 0x89, 0x46, 0xea, 0xe4, 0xf8, 0x35, 0x5f, 0xcd, 0x07, 0x67, 0xf4, 0x33,
+ 0x37, 0x0f, 0x27, 0xcb, 0xed, 0xc8, 0x1f, 0x65, 0xf3, 0xc9, 0x9b, 0x6f,
+ 0xcf, 0x93, 0x8d, 0x93, 0xf3, 0xad, 0x27, 0xcf, 0xb7, 0x63, 0x45, 0x7e,
+ 0x83, 0x93, 0x5c, 0x35, 0x2e, 0x11, 0x81, 0x17, 0x4f, 0xb7, 0x9b, 0x51,
+ 0x2d, 0xdc, 0x17, 0xaf, 0x24, 0x54, 0xf0, 0x4e, 0xed, 0xfb, 0x7c, 0x8b,
+ 0xd3, 0x74, 0x37, 0x7d, 0x72, 0x90, 0x18, 0x75, 0x75, 0xa6, 0xa7, 0x87,
+ 0x6f, 0xcc, 0xba, 0x28, 0x11, 0x17, 0xc9, 0x01, 0x8d, 0x9a, 0x5d, 0x23,
+ 0x31, 0x61, 0x9d, 0x65, 0xb7, 0x66, 0xa2, 0x3c, 0xe6, 0xcb, 0x10, 0x0c,
+ 0x87, 0x6d, 0xa0, 0x26, 0x37, 0x2c, 0x32, 0x16, 0x08, 0xfd, 0xfb, 0x2a,
+ 0xe1, 0xca, 0x05, 0x1c, 0x31, 0x9f, 0x51, 0x16, 0x46, 0x09, 0x90, 0xec,
+ 0xcd, 0x09, 0x5c, 0xbf, 0xdd, 0x09, 0xec, 0x88, 0x62, 0xd9, 0x79, 0x3e,
+ 0xfc, 0x74, 0xd3, 0xad, 0xe5, 0xa4, 0x6f, 0xc1, 0xc5, 0x2f, 0x1e, 0xf0,
+ 0x27, 0x10, 0x17, 0x51, 0x6e, 0x9b, 0x85, 0xe9, 0x1b, 0x78, 0x0f, 0xd6,
+ 0x7e, 0xc4, 0xd9, 0x9b, 0x23, 0x2c, 0xf0, 0x37, 0xb4, 0x05, 0x7c, 0xcd,
+ 0xc0, 0xb6, 0x2c, 0x3e, 0x68, 0x34, 0xa9, 0x46, 0x06, 0xa5, 0xc9, 0xa8,
+ 0x2c, 0xee, 0xd8, 0x56, 0x23, 0x91, 0xee, 0x42, 0x9b, 0x6c, 0x43, 0x82,
+ 0x01, 0x27, 0xb9, 0x4e, 0x23, 0x87, 0x0f, 0xcd, 0x59, 0x63, 0x57, 0x53,
+ 0xb6, 0xf2, 0xbe, 0x39, 0x96, 0x58, 0x6f, 0xbe, 0xbd, 0x16, 0xea, 0xce,
+ 0x47, 0x3f, 0xcb, 0x11, 0x71, 0x78, 0x56, 0x01, 0x6b, 0x91, 0x0d, 0xf3,
+ 0xaa, 0x8b, 0xf5, 0xc2, 0x0a, 0xe8, 0x44, 0xf2, 0x45, 0x97, 0x0f, 0x45,
+ 0xef, 0x43, 0x33, 0x76, 0x63, 0x33, 0x49, 0xd7, 0xa5, 0x3b, 0xec, 0x7e,
+ 0xd1, 0xa6, 0x1c, 0x12, 0xd8, 0xa6, 0x6a, 0xeb, 0xda, 0xfa, 0x30, 0x20,
+ 0x99, 0x6e, 0xc0, 0x83, 0x1b, 0x50, 0xf3, 0xe2, 0x06, 0x66, 0xa7, 0xfa,
+ 0x01, 0x5d, 0xd1, 0x4c, 0x28, 0xd4, 0xfc, 0xe0, 0x35, 0x6f, 0x05, 0x3f,
+ 0x12, 0x6d, 0x5f, 0xb0, 0x4b, 0xaa, 0xbd, 0x62, 0xe5, 0x60, 0x33, 0xe3,
+ 0x4f, 0xc5, 0xe2, 0x3a, 0xb4, 0xbf, 0xca, 0xf4, 0x0e, 0xd1, 0xe6, 0x53,
+ 0xb8, 0x3e, 0x3b, 0x5c, 0xc9, 0xfc, 0x32, 0xeb, 0xc3, 0x2e, 0xa1, 0x00,
+ 0xf9, 0x80, 0xa9, 0x65, 0xdf, 0x49, 0x80, 0x22, 0x2d, 0x60, 0x9d, 0xd6,
+ 0x3e, 0xac, 0x38, 0xf9, 0x42, 0xf3, 0xf6, 0x62, 0x93, 0x4d, 0xa9, 0xee,
+ 0xed, 0x05, 0x42, 0x85, 0x25, 0x54, 0x7d, 0x41, 0x9a, 0x04, 0x7b, 0x8e,
+ 0xd8, 0xf0, 0x5f, 0xde, 0x4b, 0xbc, 0xb4, 0xda, 0xe5, 0xcd, 0x41, 0xb9,
+ 0xc2, 0x70, 0x2d, 0x93, 0x90, 0xf7, 0x9c, 0x5b, 0x80, 0xdb, 0x27, 0x11,
+ 0x72, 0xa0, 0x1e, 0x74, 0x1e, 0x8f, 0xa4, 0x02, 0x70, 0x2a, 0xb0, 0xd8,
+ 0x79, 0xd4, 0x31, 0xdf, 0x6a, 0x0e, 0xd9, 0x71, 0x29, 0x0c, 0xf0, 0xd6,
+ 0xb4, 0xdb, 0x81, 0x4e, 0x8d, 0xdd, 0x67, 0x24, 0x54, 0x3e, 0x0e, 0xdd,
+ 0x4e, 0x20, 0x42, 0xa2, 0x20, 0x44, 0x23, 0x10, 0xbd, 0x98, 0x37, 0xe2,
+ 0x9b, 0x07, 0x91, 0xb5, 0x46, 0x8d, 0x3e, 0xfd, 0xc0, 0x81, 0x96, 0xf3,
+ 0x25, 0x15, 0xe6, 0x40, 0x39, 0x7b, 0x3f, 0xb1, 0xfd, 0xf2, 0x8a, 0x3f,
+ 0x31, 0x23, 0x66, 0x64, 0xe0, 0x40, 0xb8, 0x8f, 0x4b, 0x7c, 0x82, 0x2d,
+ 0xec, 0x8f, 0x03, 0x71, 0x6e, 0x41, 0xa2, 0x59, 0xb2, 0x20, 0xa8, 0x46,
+ 0xb2, 0xf5, 0xc1, 0x24, 0x51, 0x3f, 0xe1, 0x9c, 0xd6, 0x85, 0x88, 0x28,
+ 0xd6, 0xb6, 0xa7, 0xd3, 0x97, 0x53, 0xd2, 0xfd, 0xef, 0xd7, 0x13, 0x4d,
+ 0xd0, 0xd1, 0x30, 0x7a, 0xb6, 0x2e, 0xa7, 0xb6, 0x9f, 0xe3, 0xeb, 0xe5,
+ 0xfc, 0xc6, 0x24, 0xad, 0x69, 0x51, 0x70, 0xe0, 0x02, 0x87, 0xf4, 0xb7,
+ 0x9a, 0x5b, 0x0f, 0x3a, 0xfb, 0x63, 0xd8, 0x76, 0xe7, 0x2a, 0x8b, 0x2d,
+ 0x4e, 0xb2, 0x43, 0xdc, 0xda, 0xb8, 0xab, 0x55, 0xf2, 0x63, 0x93, 0x2f,
+ 0xfa, 0xe6, 0x47, 0xaf, 0x03, 0x9f, 0x4e, 0x1a, 0x73, 0x01, 0x6f, 0xc7,
+ 0x83, 0x75, 0xd3, 0x35, 0x28, 0x0e, 0x38, 0x36, 0x1c, 0x9b, 0xf3, 0xd8,
+ 0x9b, 0x5e, 0x9d, 0xef, 0xa8, 0xe3, 0xae, 0xf6, 0xd8, 0x11, 0x70, 0xd3,
+ 0x0e, 0x93, 0x37, 0x61, 0xea, 0x5d, 0x33, 0xce, 0xc2, 0xed, 0xe4, 0x30,
+ 0x39, 0xa5, 0xf5, 0x1a, 0x44, 0xae, 0xb4, 0xab, 0xa0, 0xb9, 0xd4, 0x8f,
+ 0x76, 0x92, 0xac, 0x5f, 0x16, 0xc5, 0x28, 0x2d, 0xfd, 0xe2, 0x23, 0x1e,
+ 0x00, 0x94, 0x20, 0xe1, 0x27, 0xbc, 0x1e, 0x9d, 0xa7, 0x23, 0x49, 0xbe,
+ 0x90, 0x77, 0x87, 0x2a, 0x48, 0xb9, 0xcf, 0x99, 0x3f, 0x14, 0xd3, 0x89,
+ 0x5b, 0x8a, 0xb0, 0xd7, 0x8e, 0x4d, 0xe3, 0x4d, 0xed, 0xd3, 0x74, 0xca,
+ 0x32, 0xe7, 0x3c, 0x58, 0x3a, 0xf2, 0xcb, 0x72, 0x2e, 0x79, 0x6a, 0xf3,
+ 0xec, 0x4e, 0xdc, 0x98, 0x76, 0xb3, 0x70, 0x04, 0x0a, 0x9b, 0x67, 0x60,
+ 0x1a, 0xd0, 0x44, 0xa2, 0x28, 0x90, 0x08, 0x66, 0x3c, 0x49, 0xe5, 0x0c,
+ 0x58, 0x06, 0x6f, 0x26, 0x8d, 0xe8, 0x61, 0x36, 0x43, 0x07, 0xac, 0x9b,
+ 0x15, 0x80, 0x9f, 0x09, 0xcf, 0x08, 0x24, 0x8e, 0x57, 0xe0, 0x89, 0xcb,
+ 0xd9, 0xc2, 0xa2, 0x58, 0x3a, 0xa5, 0x81, 0xef, 0x60, 0x5d, 0xd7, 0x04,
+ 0x35, 0x49, 0x98, 0x35, 0x47, 0xa0, 0xb1, 0xf4, 0x86, 0xcd, 0xad, 0xdb,
+ 0x80, 0xeb, 0xef, 0x61, 0x71, 0x7b, 0xba, 0x9c, 0x53, 0x5a, 0xfa, 0x20,
+ 0x77, 0x55, 0x3d, 0x73, 0x72, 0x4d, 0x6a, 0x37, 0x9d, 0xde, 0x11, 0xd6,
+ 0xa3, 0xc4, 0x1d, 0x9f, 0xc3, 0x76, 0xce, 0x97, 0x2b, 0xbd, 0x4e, 0x4d,
+ 0x0d, 0xd5, 0x49, 0x1e, 0x64, 0x6c, 0xda, 0x78, 0xc7, 0x4c, 0x24, 0x31,
+ 0xb1, 0x22, 0x1d, 0x07, 0x7b, 0x8d, 0x9b, 0x58, 0x55, 0x23, 0x07, 0x8e,
+ 0x32, 0x77, 0xe2, 0x4b, 0xe0, 0x2a, 0x53, 0x81, 0x74, 0x14, 0x3b, 0x5b,
+ 0xcc, 0x06, 0x2d, 0x33, 0xfe, 0x1d, 0xec, 0x28, 0x2b, 0x5c, 0x89, 0x92,
+ 0xd1, 0x34, 0x92, 0xa3, 0x2a, 0xd6, 0xe6, 0x28, 0x66, 0x29, 0x70, 0x54,
+ 0x46, 0x2b, 0xdb, 0xd0, 0x00, 0x44, 0xe8, 0xa4, 0xce, 0x02, 0x2b, 0x9b,
+ 0xd3, 0x8a, 0xd5, 0x9d, 0x0e, 0x89, 0xca, 0x4b, 0x4f, 0x91, 0x64, 0xc5,
+ 0x33, 0xeb, 0xe9, 0x6a, 0xf5, 0x54, 0x85, 0x5d, 0x8a, 0x07, 0x82, 0xf5,
+ 0x62, 0xf0, 0x85, 0xf2, 0x37, 0x0d, 0x6e, 0xf2, 0x97, 0x71, 0xb7, 0x38,
+ 0xc5, 0xca, 0x98, 0xbf, 0xcc, 0xa3, 0x37, 0xf5, 0xce, 0x7b, 0x50, 0x12,
+ 0x13, 0x6f, 0x1f, 0x73, 0x66, 0xf5, 0x57, 0xc2, 0xcc, 0x3a, 0x85, 0x5e,
+ 0xd3, 0x72, 0x44, 0x93, 0x7e, 0x20, 0x51, 0x44, 0x44, 0xfa, 0x91, 0x14,
+ 0xcf, 0x71, 0x06, 0x1c, 0x4f, 0x46, 0xf4, 0x58, 0x15, 0xd9, 0x6d, 0x98,
+ 0xea, 0xd2, 0xca, 0x5e, 0x07, 0x93, 0xfe, 0x28, 0x1e, 0x1d, 0x46, 0x35,
+ 0x74, 0xb2, 0x69, 0xc9, 0xa4, 0x4f, 0x92, 0x57, 0xc6, 0xab, 0x30, 0x11,
+ 0x87, 0xf6, 0x20, 0xa9, 0x92, 0x06, 0xf5, 0xd0, 0x12, 0x6f, 0x3a, 0x62,
+ 0x16, 0xfb, 0x34, 0x3f, 0x64, 0x38, 0xe1, 0x54, 0x39, 0x86, 0x25, 0x99,
+ 0xc3, 0xca, 0xd2, 0x1c, 0x4f, 0x13, 0xf2, 0x61, 0xb1, 0x90, 0xa9, 0x6b,
+ 0xd2, 0x11, 0x31, 0x36, 0x86, 0xf6, 0x52, 0xb9, 0x8c, 0xb1, 0x79, 0x86,
+ 0x38, 0x71, 0xda, 0xf0, 0x8f, 0x33, 0xed, 0xaf, 0xa4, 0x1b, 0x00, 0x72,
+ 0xf8, 0xc4, 0x9f, 0x58, 0xe6, 0x91, 0x80, 0x32, 0x71, 0x09, 0x49, 0xd8,
+ 0x27, 0xd6, 0x3a, 0xad, 0x14, 0xc2, 0x65, 0x24, 0x4b, 0xf4, 0x00, 0xe9,
+ 0x30, 0x8f, 0x7c, 0x88, 0x6e, 0x2e, 0xd4, 0x75, 0x61, 0x54, 0xa3, 0x6b,
+ 0x3d, 0x05, 0x2f, 0xd3, 0xcb, 0x83, 0x45, 0x42, 0x0b, 0x07, 0x36, 0x49,
+ 0x3f, 0xa2, 0x1b, 0x66, 0xdc, 0x8f, 0x08, 0x88, 0x10, 0x08, 0x5b, 0xa4,
+ 0x9e, 0x3c, 0x90, 0x00, 0xf4, 0xb4, 0x95, 0x0d, 0xd2, 0x14, 0xd2, 0x7e,
+ 0xc9, 0xb4, 0xfa, 0x8e, 0x86, 0x94, 0xb9, 0x8b, 0x2b, 0x4c, 0xe7, 0x67,
+ 0xc2, 0x5c, 0xc7, 0xb5, 0x2a, 0x59, 0x7c, 0x4c, 0x4b, 0x30, 0x19, 0x49,
+ 0xc2, 0x0b, 0x37, 0x9d, 0x95, 0x2c, 0x5a, 0x56, 0x5e, 0xf6, 0xa4, 0x0d,
+ 0x6c, 0x66, 0xe6, 0xec, 0x7c, 0xc6, 0xa3, 0x8f, 0x54, 0x6e, 0x9c, 0x81,
+ 0x83, 0xaf, 0x8e, 0x60, 0x10, 0x9c, 0xe6, 0x74, 0x41, 0xf4, 0xa5, 0x1b,
+ 0x99, 0x8e, 0x80, 0xe6, 0x38, 0xa1, 0xe6, 0x2a, 0x9f, 0x9b, 0x2a, 0x1a,
+ 0x66, 0x0e, 0x3a, 0x2f, 0x26, 0x93, 0x8e, 0xa5, 0x44, 0xb8, 0xbc, 0x51,
+ 0x10, 0x6d, 0x6a, 0x2a, 0x88, 0x0b, 0xef, 0x4b, 0xbd, 0x05, 0xbc, 0x7b,
+ 0xed, 0xd0, 0xb5, 0xe6, 0x71, 0xb2, 0x96, 0x23, 0x8e, 0x11, 0xdc, 0x17,
+ 0x91, 0xfd, 0xd1, 0x53, 0xad, 0x20, 0x10, 0x65, 0xd5, 0xde, 0x5a, 0xe4,
+ 0x14, 0x45, 0xff, 0xdd, 0x10, 0x61, 0xc2, 0xae, 0x7c, 0xd4, 0x11, 0x7a,
+ 0x69, 0x09, 0xf2, 0x36, 0x01, 0xa8, 0x6d, 0xa2, 0x75, 0xa5, 0x2b, 0x9a,
+ 0xe3, 0x89, 0xfd, 0xbb, 0x06, 0xe3, 0xd1, 0x11, 0x87, 0x3d, 0x01, 0xb6,
+ 0x2d, 0xcd, 0x50, 0xb2, 0xa6, 0x5c, 0x48, 0x33, 0x3e, 0x49, 0xa3, 0x88,
+ 0x24, 0x77, 0xea, 0xe9, 0x4a, 0x7c, 0x09, 0x98, 0x17, 0xa2, 0x5e, 0x0d,
+ 0x13, 0xa3, 0x43, 0x9b, 0x86, 0x6e, 0x2a, 0xdc, 0xb1, 0x18, 0x3c, 0xc4,
+ 0x05, 0x2c, 0x43, 0x77, 0x73, 0x08, 0xd6, 0x0a, 0x57, 0x4f, 0xc8, 0x8f,
+ 0xb3, 0xbb, 0x2b, 0x41, 0xa1, 0xfa, 0x5d, 0x7b, 0xf1, 0x5e, 0x3e, 0xbe,
+ 0x7a, 0xbf, 0x70, 0xf1, 0x1e, 0x59, 0xbd, 0x8b, 0x6b, 0xc9, 0xe9, 0xc8,
+ 0x10, 0x8a, 0xf8, 0x32, 0x08, 0x8d, 0x83, 0x4d, 0x12, 0xc1, 0xd9, 0x3e,
+ 0x44, 0xae, 0xc9, 0x6b, 0x02, 0x47, 0xe4, 0xcb, 0x7f, 0xda, 0xae, 0x83,
+ 0x1a, 0x6d, 0xf4, 0xdd, 0xcd, 0x89, 0x43, 0x8a, 0x06, 0x8f, 0x80, 0x51,
+ 0xb7, 0xd9, 0x82, 0x49, 0xc2, 0xaf, 0x73, 0xae, 0xd2, 0x07, 0x22, 0xff,
+ 0x5a, 0x48, 0x19, 0x67, 0x8f, 0xbb, 0xeb, 0x6e, 0x4e, 0xd5, 0x6f, 0x33,
+ 0xae, 0x45, 0xf3, 0xfb, 0xc2, 0xae, 0xaa, 0x47, 0x27, 0xd7, 0x88, 0xa4,
+ 0x43, 0x10, 0xa7, 0x6a, 0xbf, 0x10, 0xde, 0x42, 0x07, 0x6a, 0x87, 0x3f,
+ 0xd7, 0x38, 0x99, 0x0f, 0x88, 0x67, 0x72, 0xb4, 0x5b, 0x6c, 0xb3, 0xdf,
+ 0x5c, 0x30, 0xce, 0xcd, 0x46, 0xd3, 0xb0, 0xf3, 0xaf, 0x5e, 0xab, 0x9c,
+ 0x57, 0xca, 0xb6, 0x8f, 0xcd, 0x32, 0x9d, 0xdb, 0xf7, 0x7f, 0xfa, 0x14,
+ 0xe1, 0x59, 0xb3, 0xe8, 0x79, 0x99, 0xa6, 0x7a, 0xa3, 0x3d, 0x51, 0x5c,
+ 0x71, 0x08, 0x12, 0xfb, 0x1d, 0xfe, 0xb6, 0x84, 0x9b, 0xfe, 0x6a, 0x15,
+ 0x13, 0xc0, 0x8d, 0xcb, 0x6e, 0x67, 0xf6, 0xa8, 0x4e, 0xa1, 0x56, 0x53,
+ 0xd3, 0xa0, 0x72, 0x6f, 0xac, 0x19, 0x20, 0x28, 0x54, 0x89, 0x56, 0x28,
+ 0xf1, 0x01, 0x62, 0x75, 0xe4, 0xd9, 0xa2, 0xcc, 0x51, 0x16, 0x4c, 0xb9,
+ 0x83, 0x02, 0xe9, 0xa6, 0xca, 0xa6, 0xd9, 0x95, 0xda, 0x1b, 0x0f, 0xbf,
+ 0x3d, 0x3c, 0x8e, 0x24, 0xc8, 0x5a, 0x3e, 0x77, 0x2e, 0xe4, 0xc0, 0x2c,
+ 0x65, 0x28, 0x33, 0x30, 0xfe, 0xc8, 0x8d, 0xc1, 0x78, 0x1f, 0xd2, 0x62,
+ 0x67, 0x50, 0x32, 0x3d, 0x4c, 0xf7, 0x53, 0x66, 0x9e, 0xd4, 0x92, 0xad,
+ 0xbb, 0x13, 0x41, 0xdc, 0xaa, 0x86, 0x12, 0x51, 0x85, 0x6b, 0xe9, 0xab,
+ 0xf3, 0xf3, 0xad, 0x9b, 0xac, 0x1c, 0x31, 0xa8, 0x59, 0x4c, 0x50, 0x50,
+ 0x56, 0x93, 0x57, 0x50, 0xfe, 0xc4, 0x0d, 0xc3, 0xdb, 0xec, 0x67, 0x12,
+ 0xbd, 0xb1, 0x28, 0xa6, 0xf9, 0xf8, 0x3e, 0x79, 0xa5, 0x23, 0xab, 0x58,
+ 0x3b, 0xe7, 0x4d, 0x87, 0x3b, 0x46, 0x6d, 0xe1, 0x27, 0xdf, 0x0c, 0xf6,
+ 0xcf, 0x07, 0xaf, 0x0e, 0x8f, 0x0f, 0xbf, 0xda, 0xbf, 0x38, 0x74, 0xb9,
+ 0x26, 0x88, 0xe0, 0x59, 0x41, 0x17, 0x46, 0x0f, 0xdf, 0xe8, 0x48, 0xc5,
+ 0xe0, 0xc8, 0x31, 0xde, 0x8c, 0x42, 0x78, 0x93, 0xd5, 0x16, 0x8c, 0x2b,
+ 0xaa, 0xcb, 0x2c, 0x85, 0x04, 0x1b, 0xc5, 0x97, 0xfa, 0x40, 0xa9, 0xe9,
+ 0x4c, 0x87, 0x1a, 0xcd, 0x20, 0x9d, 0xde, 0x31, 0x2a, 0xcb, 0xbb, 0x39,
+ 0x2b, 0x5b, 0x0a, 0x91, 0xc0, 0x42, 0x38, 0x66, 0x1f, 0x6c, 0x49, 0xb0,
+ 0xfe, 0x8d, 0x5d, 0x46, 0x4c, 0x5b, 0xb7, 0x4c, 0x23, 0xf1, 0x91, 0x9a,
+ 0xe4, 0xf8, 0x0a, 0x0f, 0xb6, 0x42, 0xe7, 0x7c, 0x3e, 0x31, 0x42, 0x24,
+ 0xf5, 0xbb, 0x48, 0x54, 0x53, 0xb5, 0xaf, 0x1a, 0x5f, 0x67, 0x33, 0x17,
+ 0x67, 0xcf, 0xf1, 0x1e, 0xf4, 0xb4, 0x82, 0xb6, 0xd0, 0x19, 0xbb, 0xe3,
+ 0x28, 0x22, 0x1c, 0x66, 0xd1, 0xa0, 0x10, 0xff, 0xc8, 0x31, 0x7f, 0x1d,
+ 0x22, 0xd2, 0x5d, 0x8e, 0x3c, 0x79, 0x09, 0xc5, 0x41, 0x44, 0x24, 0x88,
+ 0xc4, 0xc2, 0x7e, 0xbb, 0x03, 0x7d, 0x15, 0x74, 0xa7, 0xad, 0x6a, 0x2e,
+ 0x91, 0x37, 0x20, 0xa6, 0x5d, 0x13, 0xa2, 0x25, 0xa7, 0xbd, 0x36, 0x8b,
+ 0x2f, 0x4e, 0x90, 0xbb, 0x1b, 0x78, 0xa0, 0x43, 0xe7, 0xcf, 0x8a, 0xd3,
+ 0x0c, 0x90, 0x81, 0x10, 0x44, 0x08, 0x4a, 0xc8, 0x9f, 0x4b, 0x28, 0x60,
+ 0xb7, 0x83, 0x41, 0x32, 0x5a, 0x62, 0xfd, 0xaf, 0x53, 0x05, 0x85, 0x4c,
+ 0x2d, 0x88, 0xac, 0x04, 0x3c, 0x02, 0x9f, 0x80, 0xce, 0x1c, 0xe1, 0xe6,
+ 0xae, 0x23, 0xef, 0x76, 0x90, 0x2d, 0xca, 0xba, 0x23, 0x3e, 0x56, 0x22,
+ 0x44, 0x9d, 0x01, 0x7a, 0x12, 0x64, 0xe9, 0x06, 0x60, 0x0a, 0x87, 0xa7,
+ 0x67, 0x02, 0xfc, 0x79, 0xcc, 0xbf, 0x68, 0x24, 0x4a, 0xbb, 0x67, 0x58,
+ 0x26, 0x34, 0x41, 0x05, 0x2e, 0x6f, 0xe8, 0xd5, 0x0e, 0x32, 0xca, 0xc2,
+ 0x06, 0x25, 0x72, 0x45, 0x21, 0x91, 0x94, 0xa4, 0x31, 0xa3, 0x36, 0xb5,
+ 0x7b, 0x30, 0x32, 0x0c, 0x85, 0xc7, 0xd0, 0x17, 0xc1, 0x08, 0xa3, 0x90,
+ 0xf0, 0x1b, 0xf3, 0xae, 0x9c, 0xf0, 0x97, 0xa6, 0x4c, 0xac, 0x76, 0x36,
+ 0xfb, 0x44, 0x33, 0x6e, 0x92, 0xdf, 0x4a, 0x4a, 0xc0, 0x98, 0xa5, 0x34,
+ 0x8e, 0xa1, 0x9f, 0xa7, 0x74, 0x21, 0xea, 0x1b, 0x92, 0x94, 0xdb, 0x84,
+ 0x2e, 0x1a, 0x1b, 0x88, 0x07, 0x7b, 0x52, 0x50, 0x33, 0x40, 0x46, 0xc2,
+ 0xa4, 0x9d, 0xe1, 0xa7, 0x2f, 0x10, 0xa1, 0xe9, 0x3d, 0x24, 0x1d, 0x64,
+ 0xd5, 0xb0, 0x1b, 0x35, 0x72, 0x03, 0x68, 0xa6, 0x9a, 0x85, 0x8c, 0x65,
+ 0xf7, 0x9a, 0x07, 0x2d, 0xc6, 0xdf, 0x4b, 0xf5, 0x53, 0xa6, 0xd3, 0xbc,
+ 0xbe, 0x17, 0xbd, 0x35, 0x34, 0x81, 0x5c, 0xa7, 0x5d, 0x69, 0x24, 0xb4,
+ 0xf0, 0x0e, 0x47, 0x05, 0x13, 0xd5, 0x6d, 0x8b, 0x2d, 0xfd, 0xa0, 0x8d,
+ 0x10, 0x64, 0x05, 0x60, 0x2a, 0x1f, 0xd8, 0x93, 0x90, 0xb3, 0x96, 0xaf,
+ 0x43, 0x91, 0xc5, 0x61, 0xcc, 0x12, 0xa5, 0xf2, 0x79, 0xd1, 0x45, 0x55,
+ 0xc2, 0x21, 0x68, 0xa8, 0xa9, 0x40, 0x31, 0x34, 0x49, 0x30, 0xea, 0x5d,
+ 0xf2, 0xc2, 0x79, 0x0f, 0xd1, 0x3e, 0xc8, 0x9c, 0x54, 0x3a, 0x01, 0x4a,
+ 0xe4, 0x60, 0x04, 0x21, 0xa5, 0x51, 0x76, 0x9d, 0xde, 0xe6, 0x8c, 0x5b,
+ 0x13, 0x82, 0x30, 0x75, 0x98, 0x7f, 0x68, 0xff, 0x19, 0x72, 0x82, 0x37,
+ 0x86, 0x0f, 0x30, 0xbf, 0x2b, 0x11, 0xd4, 0x21, 0x02, 0x13, 0x76, 0x03,
+ 0xd6, 0xf9, 0xd3, 0xbe, 0x7a, 0x1c, 0x11, 0x31, 0x10, 0xc5, 0xe9, 0x23,
+ 0xe2, 0xdb, 0x21, 0xa8, 0xe8, 0x93, 0x69, 0x75, 0xdb, 0x7d, 0xc2, 0xaa,
+ 0xdb, 0x5f, 0x7e, 0xc2, 0x04, 0xc7, 0x8b, 0x49, 0xe8, 0xf0, 0xf4, 0xfc,
+ 0xdb, 0xc4, 0x85, 0x79, 0x75, 0xdd, 0x9c, 0x72, 0xb8, 0xfc, 0xbc, 0x40,
+ 0x6a, 0xc1, 0x01, 0xfb, 0x95, 0x27, 0xcc, 0x1d, 0x30, 0xea, 0x5f, 0x4f,
+ 0xd5, 0xe9, 0xfe, 0xf9, 0xb7, 0xad, 0xf3, 0xe4, 0x1d, 0xe3, 0x79, 0x9d,
+ 0x74, 0xb9, 0xb2, 0x80, 0x2e, 0x55, 0x1a, 0x1c, 0x2a, 0xb7, 0xd6, 0x49,
+ 0x6a, 0xd5, 0xed, 0xc7, 0x90, 0x1a, 0x0d, 0x25, 0x22, 0xb5, 0x68, 0x79,
+ 0x1f, 0x22, 0xb5, 0x70, 0x8f, 0x3a, 0x48, 0x8d, 0xda, 0x8f, 0x48, 0xcd,
+ 0xd6, 0xb5, 0x9b, 0xd6, 0x56, 0x91, 0x9a, 0xc5, 0xbb, 0x66, 0x42, 0x66,
+ 0x21, 0x95, 0xc5, 0x14, 0xd6, 0xa0, 0x9b, 0x79, 0x35, 0xf0, 0x80, 0x8f,
+ 0x2f, 0xdc, 0xaf, 0x9f, 0x77, 0x80, 0xbd, 0x84, 0xc8, 0x1a, 0x02, 0xc0,
+ 0x52, 0x2c, 0xeb, 0x2b, 0x90, 0xc3, 0xab, 0xb7, 0xe7, 0x1e, 0x60, 0xa3,
+ 0xbe, 0x2e, 0x81, 0x03, 0x15, 0xb4, 0x36, 0x7c, 0xd8, 0xb8, 0x9c, 0x1a,
+ 0x4a, 0xa9, 0x20, 0xea, 0x72, 0x07, 0x83, 0x60, 0x58, 0xc9, 0x86, 0x08,
+ 0x2f, 0xea, 0x1e, 0x0d, 0xa0, 0x0c, 0x5d, 0xa4, 0xf8, 0x25, 0xd0, 0xc8,
+ 0x68, 0x18, 0x8a, 0x08, 0xcd, 0xa1, 0x3a, 0x53, 0x36, 0x08, 0x6a, 0xfa,
+ 0xa8, 0x4b, 0x64, 0x9b, 0xb7, 0xf0, 0x2d, 0x93, 0x8d, 0x8e, 0xe6, 0xe6,
+ 0x96, 0x16, 0xbd, 0xf9, 0xa0, 0x59, 0xbc, 0x09, 0x14, 0xd2, 0x85, 0x06,
+ 0xe1, 0x5d, 0x57, 0x9a, 0x7d, 0x5d, 0x76, 0x04, 0xdb, 0x66, 0x92, 0x87,
+ 0x17, 0xe2, 0x3c, 0x28, 0xad, 0xbb, 0x60, 0x77, 0x80, 0x5c, 0x0f, 0x52,
+ 0xee, 0xcb, 0x61, 0x0e, 0x54, 0x1d, 0xf6, 0x34, 0x90, 0x13, 0xf2, 0x0a,
+ 0xd8, 0x78, 0xf7, 0x20, 0xf4, 0x08, 0x76, 0x7e, 0x71, 0xfb, 0x74, 0xc0,
+ 0x53, 0xa5, 0xbd, 0x5a, 0x0c, 0x74, 0xce, 0x9d, 0x5b, 0x6f, 0x9c, 0x63,
+ 0x94, 0x4b, 0x4a, 0x71, 0xf8, 0xbc, 0x5c, 0xba, 0xa4, 0x2e, 0xf1, 0x42,
+ 0x23, 0xc7, 0x3d, 0x24, 0x87, 0x08, 0x49, 0xa7, 0x08, 0x54, 0x85, 0x06,
+ 0xdd, 0xe8, 0xf5, 0xc5, 0xa9, 0xda, 0xe2, 0x02, 0x60, 0xca, 0x90, 0x3e,
+ 0x64, 0x05, 0xd2, 0xf2, 0x6a, 0x19, 0xb9, 0x1a, 0x61, 0x01, 0xf2, 0x3e,
+ 0x32, 0x0b, 0x67, 0x0f, 0x73, 0xed, 0xff, 0xcf, 0xde, 0xc4, 0x8f, 0xd9,
+ 0xc5, 0x4f, 0xfe, 0xf9, 0xbb, 0xf8, 0xc9, 0xff, 0x90, 0x5d, 0xfc, 0xe4,
+ 0xff, 0x23, 0xbb, 0x68, 0x38, 0x01, 0xc1, 0x9e, 0xf4, 0x57, 0x6f, 0x27,
+ 0xab, 0xc3, 0xb5, 0x86, 0xfa, 0xf2, 0xed, 0xcd, 0x5b, 0x60, 0x2d, 0x88,
+ 0xba, 0xdd, 0x91, 0x13, 0x2d, 0xb6, 0x6d, 0xa4, 0x6e, 0x75, 0x43, 0x30,
+ 0xa9, 0x2d, 0xc1, 0x1a, 0x3d, 0x3a, 0x0d, 0xe0, 0x21, 0xfc, 0xee, 0x18,
+ 0xc8, 0x97, 0xaa, 0xc8, 0x9d, 0xfe, 0xff, 0x8a, 0x9d, 0xc2, 0xc4, 0xcb,
+ 0x25, 0x08, 0xbe, 0x82, 0xf4, 0x09, 0xc7, 0xb1, 0xec, 0x17, 0xa4, 0x82,
+ 0x91, 0x45, 0x0c, 0xd2, 0x26, 0xed, 0xbd, 0xe0, 0xd5, 0x1e, 0xc8, 0xe3,
+ 0x9f, 0x77, 0x26, 0x02, 0x01, 0xc6, 0xcb, 0x0f, 0xa9, 0x9b, 0x1c, 0x9c,
+ 0x46, 0xe5, 0x08, 0xc2, 0xfc, 0xf7, 0x21, 0x49, 0x84, 0x50, 0x3d, 0x8f,
+ 0x91, 0xc3, 0xaf, 0xa1, 0x86, 0xff, 0x1e, 0x39, 0x64, 0x7c, 0x59, 0x03,
+ 0x97, 0x8b, 0x9d, 0xbb, 0xef, 0xce, 0x8e, 0x57, 0xe5, 0x59, 0x89, 0xfb,
+ 0x94, 0x53, 0x5e, 0xcf, 0x04, 0xc5, 0xab, 0x4c, 0x4e, 0xd3, 0xab, 0xac,
+ 0x17, 0x22, 0xba, 0x7d, 0x04, 0xfe, 0x43, 0x84, 0xa0, 0xc0, 0x9a, 0xa8,
+ 0x8f, 0xf6, 0x0b, 0x01, 0x13, 0x60, 0x8c, 0xf0, 0x70, 0x09, 0xe2, 0xcb,
+ 0xec, 0x02, 0x88, 0x12, 0x51, 0xb5, 0x99, 0xe9, 0x6a, 0x29, 0xf5, 0xea,
+ 0xe9, 0xe9, 0xfd, 0x85, 0x83, 0xff, 0x7b, 0x36, 0x40, 0x37, 0xe5, 0x38,
+ 0x7e, 0x9a, 0x1f, 0xf1, 0xe6, 0xd4, 0x66, 0xca, 0x40, 0xa5, 0x07, 0xc1,
+ 0xa5, 0x73, 0x00, 0x6c, 0xfa, 0x5a, 0x60, 0x20, 0x2f, 0x8b, 0x69, 0x9b,
+ 0x34, 0x05, 0x48, 0x8e, 0xb8, 0xc0, 0xb1, 0x0e, 0x6b, 0x4f, 0xfd, 0xcc,
+ 0xb2, 0x97, 0x36, 0x28, 0x15, 0x1b, 0x42, 0x21, 0x31, 0x9d, 0x32, 0x62,
+ 0x7f, 0x3b, 0x22, 0x91, 0xe9, 0xd7, 0xe5, 0xe7, 0xb3, 0x1d, 0x88, 0x07,
+ 0x04, 0x29, 0x23, 0x07, 0x7c, 0xbb, 0x9b, 0xd6, 0x6f, 0xe8, 0x7e, 0x3d,
+ 0x84, 0x9b, 0x9a, 0xe3, 0x0f, 0x5f, 0x04, 0xf1, 0x78, 0x3f, 0xee, 0x99,
+ 0xf1, 0xe0, 0xe7, 0xee, 0xe4, 0x82, 0x38, 0x2d, 0xb3, 0x19, 0x16, 0x60,
+ 0x20, 0x00, 0x61, 0x90, 0x5f, 0x67, 0xb2, 0x19, 0x96, 0xdb, 0xb0, 0x97,
+ 0x53, 0xcb, 0x60, 0x23, 0x02, 0xd0, 0xf2, 0x20, 0x1c, 0x92, 0x98, 0xc0,
+ 0x6d, 0x23, 0x7e, 0x01, 0xea, 0x7d, 0x20, 0x80, 0xdb, 0x50, 0x51, 0x23,
+ 0xfb, 0x0d, 0x07, 0xf5, 0xe0, 0x60, 0x05, 0xfd, 0x9a, 0x00, 0x47, 0x07,
+ 0xe6, 0xf4, 0x9b, 0x83, 0xf3, 0xdf, 0xef, 0xec, 0x5a, 0x24, 0x23, 0x07,
+ 0x29, 0xab, 0x77, 0xff, 0x1c, 0x68, 0x17, 0x6d, 0xf2, 0x66, 0xdd, 0x44,
+ 0xca, 0x74, 0xc0, 0xdf, 0xc1, 0x41, 0x90, 0x2e, 0xc7, 0xda, 0xbf, 0x8c,
+ 0xf0, 0x27, 0x0c, 0x4f, 0xd2, 0xd0, 0x2c, 0x62, 0x3c, 0xeb, 0xd4, 0xe1,
+ 0x69, 0x83, 0x9c, 0x0d, 0x49, 0xf0, 0x50, 0xdc, 0xba, 0x35, 0x70, 0x64,
+ 0xe8, 0x52, 0x2c, 0x11, 0x62, 0x41, 0x3d, 0x4b, 0xd0, 0x54, 0x1c, 0x44,
+ 0x26, 0x48, 0xb5, 0x5d, 0x38, 0x33, 0x16, 0xf1, 0x0c, 0xb0, 0x70, 0x16,
+ 0x93, 0x7b, 0xc1, 0x92, 0xf4, 0xba, 0xb6, 0x22, 0xcc, 0xf4, 0x5a, 0x94,
+ 0x92, 0x00, 0x77, 0x93, 0xdd, 0x3b, 0xac, 0x87, 0xc4, 0x7d, 0xda, 0xdc,
+ 0x55, 0x86, 0xcc, 0xe4, 0xe8, 0xd6, 0xc8, 0x64, 0x4e, 0x6c, 0xfe, 0x77,
+ 0xe2, 0xd3, 0x14, 0x0a, 0x13, 0x55, 0x88, 0x9b, 0xe4, 0xb0, 0x0f, 0x8f,
+ 0x40, 0x33, 0x03, 0xee, 0xbc, 0x16, 0xe6, 0x98, 0xde, 0x77, 0x3a, 0x8e,
+ 0x7d, 0xd9, 0x1a, 0x61, 0xc0, 0x50, 0xae, 0x24, 0x52, 0x0f, 0x89, 0x16,
+ 0x4d, 0xcc, 0xb4, 0x6c, 0x1e, 0x9e, 0x8f, 0xc8, 0xc6, 0x37, 0x0f, 0x13,
+ 0x89, 0xd8, 0xea, 0x9c, 0x8f, 0x6f, 0x20, 0xd0, 0xab, 0xb9, 0x28, 0x9c,
+ 0x9e, 0x85, 0xad, 0x48, 0xa8, 0x7a, 0xc7, 0x2e, 0x20, 0x85, 0x84, 0x6d,
+ 0xf0, 0x4c, 0x96, 0x7c, 0x1b, 0xe6, 0x73, 0xf1, 0x3a, 0xc2, 0x3f, 0x3a,
+ 0xbf, 0xcd, 0xcb, 0x62, 0x0e, 0x19, 0xe5, 0x36, 0x2d, 0x73, 0x68, 0x87,
+ 0x34, 0xd6, 0xf7, 0xaf, 0x8e, 0xce, 0x92, 0x0d, 0xda, 0xd8, 0xd1, 0xfd,
+ 0x0a, 0x44, 0xc3, 0xad, 0xac, 0x1e, 0x6f, 0x2d, 0x6e, 0xf2, 0xad, 0x79,
+ 0x55, 0x4d, 0x46, 0x9b, 0x0e, 0x37, 0x03, 0xdd, 0x81, 0x0e, 0x85, 0x96,
+ 0x77, 0x60, 0x1e, 0x58, 0x72, 0x42, 0xd7, 0x06, 0x2d, 0x40, 0xb4, 0x0b,
+ 0x15, 0x2d, 0xf4, 0x6c, 0x58, 0x15, 0x9b, 0x5a, 0xf4, 0xe7, 0x36, 0xcd,
+ 0xa7, 0x0e, 0x22, 0x70, 0x2e, 0x4d, 0x49, 0x80, 0x96, 0x82, 0x14, 0xb0,
+ 0xbf, 0x22, 0x9b, 0xac, 0x08, 0x56, 0xb2, 0xa0, 0x1d, 0x81, 0xec, 0x94,
+ 0x4c, 0x7f, 0x8b, 0xb9, 0xa1, 0xe5, 0x44, 0xce, 0xb2, 0x0b, 0x20, 0xef,
+ 0x33, 0xbe, 0x3d, 0x2f, 0x8a, 0xf8, 0xce, 0xd8, 0x0e, 0xd1, 0x19, 0x9d,
+ 0xd7, 0x1b, 0x6e, 0xf5, 0x12, 0x87, 0xe8, 0x4f, 0xab, 0x8c, 0xfa, 0x14,
+ 0xbe, 0x84, 0x02, 0x11, 0xd8, 0xe5, 0xb2, 0x72, 0xf6, 0xd1, 0xd4, 0xed,
+ 0xd7, 0xb0, 0x3b, 0xd7, 0xd2, 0x6d, 0xa7, 0xfa, 0x31, 0xab, 0xa4, 0xb7,
+ 0xd7, 0xc3, 0xd1, 0x9a, 0x03, 0x51, 0x5c, 0x84, 0x1c, 0x1d, 0x14, 0xb6,
+ 0xaa, 0xf7, 0x53, 0x2f, 0x49, 0x22, 0xfb, 0xa8, 0x1c, 0xa7, 0xdc, 0x63,
+ 0x4f, 0x73, 0xfa, 0xe8, 0xd5, 0x3c, 0xff, 0xbb, 0xc0, 0x12, 0xb8, 0x43,
+ 0x3c, 0xc9, 0x90, 0x0d, 0x81, 0x90, 0xce, 0x60, 0x08, 0x9d, 0x68, 0x18,
+ 0x7e, 0x48, 0x3f, 0xc5, 0x43, 0xb2, 0x2a, 0x0b, 0x29, 0x7f, 0x4d, 0x43,
+ 0x32, 0x2f, 0xad, 0x0c, 0xa1, 0xc3, 0x5c, 0xd1, 0x1c, 0x90, 0xab, 0xd3,
+ 0x10, 0xc4, 0x14, 0x44, 0x51, 0xcd, 0xf9, 0xc9, 0xb9, 0x3a, 0x8b, 0xde,
+ 0xa4, 0xe3, 0x84, 0xfe, 0xf8, 0x1e, 0xf2, 0xc5, 0x26, 0x8f, 0xbc, 0x89,
+ 0x72, 0x66, 0x47, 0x4c, 0x38, 0xa3, 0xf0, 0xc2, 0x2e, 0xa0, 0xb3, 0xbe,
+ 0x1d, 0xb8, 0xe6, 0xc1, 0x09, 0xae, 0xc1, 0x2c, 0x07, 0x73, 0x1c, 0x69,
+ 0xce, 0xae, 0x98, 0xa8, 0x59, 0xaa, 0x4c, 0xa3, 0x08, 0x1b, 0xf7, 0xfe,
+ 0x96, 0x63, 0x36, 0xcc, 0x30, 0x5c, 0xf4, 0x33, 0x24, 0x50, 0xe6, 0xc5,
+ 0xb0, 0x76, 0xd3, 0x57, 0x34, 0x55, 0xc6, 0x84, 0x11, 0xa4, 0xd8, 0xc8,
+ 0x69, 0x5f, 0x8b, 0x7d, 0xc3, 0xf8, 0xbe, 0x73, 0x22, 0x85, 0x03, 0x95,
+ 0xc8, 0x67, 0xdf, 0x99, 0xcf, 0x7c, 0xfe, 0x17, 0x10, 0x3f, 0x68, 0xff,
+ 0x57, 0x91, 0xfe, 0x6f, 0x17, 0x91, 0xa5, 0xb9, 0xd4, 0x2f, 0xba, 0xf2,
+ 0xf4, 0xcf, 0xb3, 0xa9, 0x21, 0xbe, 0x5b, 0x4a, 0xdc, 0xb8, 0xbc, 0x5f,
+ 0xb0, 0x15, 0x4c, 0xde, 0xd2, 0xf5, 0x01, 0x4c, 0xb8, 0x64, 0xbf, 0x85,
+ 0x65, 0x01, 0x86, 0x1d, 0xe9, 0x9d, 0xbe, 0x47, 0xcd, 0x0d, 0x84, 0xed,
+ 0x93, 0x88, 0xa7, 0x86, 0xb0, 0x25, 0x9f, 0x71, 0x2a, 0x2c, 0x51, 0xe5,
+ 0x44, 0x92, 0x70, 0x5c, 0x36, 0x55, 0x04, 0x71, 0xc1, 0xed, 0x54, 0xa1,
+ 0xd3, 0x9b, 0x8f, 0x09, 0x27, 0xe6, 0x33, 0xb3, 0x85, 0xd7, 0x6d, 0x33,
+ 0x50, 0x68, 0xf4, 0xf9, 0x08, 0xc6, 0xdc, 0x94, 0x07, 0xc7, 0x2c, 0xa9,
+ 0xa1, 0x72, 0x39, 0x47, 0xe7, 0xcd, 0x95, 0x72, 0xec, 0xbd, 0x7d, 0xce,
+ 0xce, 0x8e, 0xce, 0x0f, 0x12, 0x3e, 0x5f, 0x27, 0x6f, 0x8f, 0x7f, 0x60,
+ 0x81, 0xbb, 0x06, 0x96, 0x39, 0x5b, 0xeb, 0xb8, 0xff, 0xae, 0x8b, 0xa1,
+ 0xea, 0xfb, 0x20, 0xf9, 0x0e, 0xde, 0x21, 0x37, 0xf3, 0xe0, 0xce, 0xb6,
+ 0xd8, 0xe7, 0xb1, 0x31, 0xb9, 0xc0, 0x89, 0x46, 0x04, 0x97, 0xb3, 0x14,
+ 0xc2, 0x11, 0x6c, 0x63, 0x0b, 0x33, 0x5a, 0xc6, 0x68, 0x5a, 0x1c, 0x02,
+ 0x12, 0x0a, 0xfa, 0xa2, 0x25, 0xb1, 0xd5, 0x90, 0x7a, 0xa7, 0x89, 0xb6,
+ 0x72, 0x71, 0x69, 0xa2, 0x57, 0xe2, 0xcc, 0x5d, 0x91, 0x3e, 0x02, 0x99,
+ 0xd0, 0x81, 0x37, 0xa8, 0xb0, 0xc0, 0x87, 0x4f, 0xcf, 0xba, 0xca, 0xe9,
+ 0x87, 0x0c, 0x65, 0xb9, 0xb8, 0x4f, 0xbe, 0x4a, 0x99, 0x1f, 0xc0, 0xf8,
+ 0x97, 0x66, 0xb3, 0xe8, 0x82, 0xae, 0x0a, 0xf6, 0x3b, 0xaa, 0x31, 0x0e,
+ 0xbf, 0x3b, 0x72, 0x06, 0x32, 0x9d, 0x44, 0x25, 0x26, 0xbc, 0x98, 0x13,
+ 0xf6, 0xa7, 0x1b, 0xf5, 0x80, 0xe6, 0x68, 0x28, 0x71, 0xac, 0x8d, 0x95,
+ 0x04, 0x19, 0xb6, 0x52, 0xbb, 0x06, 0xd2, 0x84, 0x4c, 0xad, 0x9d, 0xd9,
+ 0x25, 0x52, 0x0b, 0xb2, 0x14, 0x92, 0x17, 0xfc, 0xef, 0x8a, 0x69, 0x07,
+ 0xb2, 0x30, 0x9c, 0xc9, 0x0d, 0xe9, 0x81, 0x5f, 0xd6, 0x48, 0x5a, 0xce,
+ 0xa9, 0x69, 0x70, 0x9e, 0xd8, 0x1a, 0xcc, 0x61, 0xd3, 0x74, 0x21, 0xf7,
+ 0x93, 0x57, 0x87, 0x67, 0xe0, 0x4b, 0x87, 0x6f, 0xbf, 0x82, 0x13, 0x27,
+ 0x60, 0xf4, 0xdc, 0x64, 0x25, 0x3c, 0x4a, 0xea, 0x1a, 0x98, 0xec, 0xd8,
+ 0x6a, 0x8e, 0x2f, 0x76, 0xb6, 0x9f, 0x40, 0x00, 0x9c, 0xfc, 0xa6, 0x09,
+ 0x6b, 0xa9, 0x28, 0x10, 0x07, 0xfb, 0xe1, 0xec, 0x7e, 0x9d, 0xe2, 0x10,
+ 0x2e, 0x9e, 0x64, 0xd7, 0x17, 0x9c, 0xd1, 0x47, 0x64, 0xd5, 0xe1, 0x22,
+ 0xe2, 0x34, 0xa2, 0x00, 0xf9, 0x82, 0x0f, 0xb1, 0xde, 0xaf, 0x89, 0xaf,
+ 0xcd, 0x92, 0xd0, 0xb0, 0x1a, 0xb9, 0x46, 0x62, 0xa9, 0x58, 0x7d, 0xf3,
+ 0x6c, 0x54, 0x9b, 0x49, 0x43, 0x67, 0x70, 0x99, 0x4f, 0xcc, 0x57, 0xd4,
+ 0x2d, 0xd1, 0xbc, 0x2a, 0x23, 0xdb, 0xba, 0x5c, 0x11, 0x26, 0xcb, 0x19,
+ 0x22, 0x12, 0x56, 0xbc, 0x2f, 0xd7, 0x7a, 0x63, 0xe9, 0x69, 0x4f, 0x55,
+ 0x27, 0x55, 0x2a, 0x8f, 0x3c, 0xe7, 0x88, 0x06, 0x47, 0xb4, 0x47, 0xd0,
+ 0x66, 0xb4, 0xa9, 0x1e, 0x9e, 0x0a, 0xc4, 0x52, 0xad, 0x96, 0x41, 0x35,
+ 0x9a, 0xfe, 0x80, 0x54, 0xde, 0xf7, 0x07, 0xfb, 0xef, 0xbf, 0x7c, 0xf7,
+ 0xf6, 0xd5, 0xf1, 0xe1, 0x7a, 0x9b, 0x22, 0x2f, 0x35, 0x32, 0xa2, 0xe2,
+ 0x30, 0x00, 0x45, 0xcd, 0x08, 0x13, 0xe4, 0x71, 0xc6, 0x01, 0xff, 0x25,
+ 0xa7, 0x9d, 0x39, 0x77, 0xea, 0x57, 0xbc, 0x6d, 0x16, 0x59, 0xce, 0x27,
+ 0x80, 0x63, 0x0a, 0x26, 0x6f, 0x40, 0x39, 0x6a, 0x7d, 0xb3, 0xf1, 0x75,
+ 0x02, 0x47, 0x31, 0x80, 0xd0, 0x04, 0x3a, 0xb8, 0xe5, 0x78, 0x4a, 0x6e,
+ 0xba, 0x2f, 0x07, 0xd4, 0x50, 0xef, 0x39, 0xed, 0x02, 0xab, 0x9e, 0xd2,
+ 0x80, 0x3a, 0xb6, 0xbb, 0x6a, 0xe4, 0x15, 0x70, 0x2b, 0x44, 0xc9, 0x03,
+ 0x1d, 0xe4, 0xb8, 0xac, 0xd7, 0xfb, 0x26, 0xb8, 0x84, 0xa9, 0x57, 0xb8,
+ 0xe0, 0xa3, 0x74, 0x1e, 0x4e, 0x97, 0x4c, 0x85, 0xae, 0x87, 0xd9, 0x87,
+ 0x0c, 0xf2, 0x88, 0xbe, 0x75, 0xa0, 0x92, 0xc1, 0x77, 0x45, 0x09, 0xfb,
+ 0xe8, 0x2b, 0x2f, 0x21, 0xc8, 0x43, 0xa4, 0x3d, 0xc6, 0xb1, 0x8b, 0x2c,
+ 0x05, 0xa4, 0x28, 0x6f, 0x81, 0xd2, 0x8a, 0xa7, 0xfb, 0x17, 0x5f, 0x77,
+ 0x1d, 0xe1, 0x6e, 0x89, 0x4d, 0xc1, 0x5e, 0x58, 0x53, 0x00, 0xa0, 0xad,
+ 0x2a, 0x46, 0xfd, 0xf0, 0x0b, 0xa2, 0xea, 0x36, 0xc3, 0xe8, 0xd2, 0x27,
+ 0x42, 0xfd, 0x41, 0x44, 0x55, 0x95, 0x55, 0xfd, 0xdd, 0x68, 0x84, 0xdd,
+ 0x9d, 0x1d, 0x6d, 0xb5, 0x34, 0x89, 0x01, 0x2e, 0x18, 0x08, 0xfd, 0xb7,
+ 0x65, 0x44, 0x20, 0xc3, 0x16, 0x23, 0xf2, 0x32, 0xd9, 0x7f, 0x9f, 0x25,
+ 0x05, 0xd9, 0xb1, 0xf1, 0x29, 0x15, 0x3e, 0x65, 0xd7, 0x1f, 0x78, 0x93,
+ 0x4f, 0x82, 0xe1, 0x91, 0xb9, 0x4a, 0x20, 0xee, 0x36, 0x60, 0xb8, 0x57,
+ 0x97, 0x98, 0x14, 0x73, 0xb8, 0x99, 0x0a, 0x89, 0x7b, 0xbd, 0x64, 0x23,
+ 0x1b, 0x5e, 0x51, 0x7b, 0x3d, 0x6e, 0x67, 0x67, 0x8f, 0xff, 0xdd, 0xc5,
+ 0xbf, 0x4f, 0x7a, 0x9b, 0x91, 0xc5, 0xa3, 0x02, 0xfb, 0x8a, 0xb3, 0x28,
+ 0x11, 0xed, 0x13, 0xd8, 0x30, 0x2c, 0x03, 0x3e, 0x5f, 0x45, 0x48, 0x2a,
+ 0xe2, 0x75, 0x21, 0x7b, 0xf8, 0x85, 0x00, 0xab, 0x44, 0x9a, 0xca, 0x88,
+ 0x4b, 0xa8, 0xd0, 0xdc, 0xc6, 0x92, 0x40, 0x1f, 0xe6, 0x4d, 0x8c, 0xdf,
+ 0x97, 0xd9, 0x75, 0x5a, 0x11, 0x8f, 0x58, 0xd6, 0x39, 0x87, 0x01, 0x74,
+ 0x20, 0x8e, 0x4f, 0x35, 0xb5, 0x8b, 0x66, 0xac, 0x1d, 0x3b, 0xdc, 0x1a,
+ 0xdb, 0x5a, 0x31, 0x35, 0xb2, 0xa8, 0xa3, 0x4f, 0x0c, 0xb4, 0xb2, 0x68,
+ 0x17, 0x23, 0x34, 0xd3, 0x1f, 0x3f, 0x16, 0xd6, 0x05, 0x9b, 0xb1, 0x29,
+ 0x15, 0x81, 0x09, 0x49, 0x76, 0x49, 0x2b, 0x96, 0x0b, 0xce, 0x83, 0xe4,
+ 0xa8, 0xc9, 0xa8, 0xe3, 0x1c, 0x0f, 0xb9, 0xe3, 0x34, 0xce, 0xca, 0xfd,
+ 0x0d, 0x0e, 0xe2, 0x74, 0x3a, 0xd4, 0x0e, 0x6b, 0x12, 0xdf, 0xc7, 0xc4,
+ 0xcb, 0x80, 0xbb, 0x0a, 0xc6, 0x8a, 0xf0, 0x76, 0x9d, 0xac, 0x24, 0xeb,
+ 0x19, 0xb1, 0x2b, 0x42, 0x70, 0x17, 0x6c, 0xab, 0xe3, 0xd3, 0xbf, 0xfa,
+ 0xe4, 0x2c, 0x72, 0x5a, 0x9e, 0xc9, 0x62, 0x39, 0x62, 0x65, 0xeb, 0x85,
+ 0xfc, 0x95, 0xd0, 0x9f, 0xd3, 0x7c, 0xcc, 0x2a, 0xd1, 0xaf, 0x3b, 0x38,
+ 0xfe, 0x7d, 0x77, 0x95, 0xaf, 0xbe, 0xcb, 0xed, 0xc0, 0x5c, 0x38, 0x98,
+ 0x29, 0xd0, 0x95, 0xdd, 0xe7, 0xce, 0xad, 0x13, 0x34, 0xaa, 0x77, 0x73,
+ 0x14, 0xf4, 0xc0, 0xc2, 0xd3, 0x0a, 0xfc, 0xc1, 0xef, 0xda, 0x78, 0xe0,
+ 0x29, 0xd0, 0xdb, 0x8b, 0xb2, 0x55, 0x51, 0xd7, 0x58, 0x65, 0x1b, 0xcb,
+ 0x61, 0xb5, 0xd4, 0x10, 0xd6, 0x3b, 0x93, 0xb2, 0x11, 0x39, 0x82, 0x02,
+ 0x6b, 0xd2, 0x27, 0xf7, 0x1b, 0xa3, 0xae, 0x4c, 0x3e, 0x8f, 0xa8, 0xd6,
+ 0x7b, 0xbd, 0xda, 0xfa, 0xa9, 0xec, 0xb0, 0xcb, 0x3d, 0xb5, 0xfc, 0x15,
+ 0x09, 0x9e, 0x96, 0xe5, 0x5b, 0x46, 0xb6, 0x1f, 0xee, 0x11, 0x5d, 0x3a,
+ 0x76, 0x53, 0x17, 0xcd, 0x50, 0x88, 0xe0, 0xea, 0x1c, 0x15, 0x65, 0xdd,
+ 0x82, 0x73, 0x88, 0x18, 0x08, 0x42, 0x2b, 0x78, 0x29, 0x10, 0xf0, 0x5e,
+ 0x2a, 0xc8, 0x99, 0x59, 0x40, 0x3b, 0xe3, 0x9e, 0x43, 0x57, 0xc5, 0xf3,
+ 0xe1, 0x36, 0x2e, 0x0b, 0xc7, 0x55, 0x04, 0x48, 0x45, 0x30, 0x55, 0xce,
+ 0xbf, 0x61, 0x0c, 0x87, 0xfd, 0xb0, 0xb0, 0x0e, 0xe7, 0x38, 0xc4, 0xf1,
+ 0x2c, 0xb8, 0xbe, 0xf8, 0x95, 0xbb, 0x62, 0x7a, 0x49, 0xcd, 0x6c, 0x1d,
+ 0xdc, 0xa7, 0x60, 0x15, 0x27, 0x66, 0x20, 0x36, 0x77, 0x4a, 0xd5, 0x2c,
+ 0xfe, 0xfa, 0x9b, 0xde, 0x3c, 0xac, 0x29, 0x54, 0x75, 0x5a, 0x2f, 0xab,
+ 0x47, 0x95, 0x04, 0x27, 0xd1, 0x5a, 0x41, 0x1d, 0x7a, 0xc9, 0x21, 0x34,
+ 0x29, 0x56, 0xd2, 0x4a, 0x25, 0xc1, 0x95, 0xeb, 0x85, 0x68, 0x11, 0x50,
+ 0xc9, 0xb9, 0xb4, 0x63, 0x50, 0x29, 0x1b, 0xe9, 0x4d, 0x4a, 0x4b, 0x72,
+ 0x70, 0x7e, 0xca, 0x3d, 0x2c, 0x38, 0x6a, 0x64, 0x93, 0x49, 0x3d, 0x42,
+ 0x45, 0xb0, 0x02, 0x16, 0x2b, 0xb3, 0x75, 0xfc, 0xea, 0x58, 0x69, 0x8b,
+ 0x16, 0xd0, 0x89, 0x9c, 0x0d, 0xf8, 0x2d, 0x04, 0x0e, 0x08, 0x57, 0x55,
+ 0xd4, 0xd1, 0x82, 0x2e, 0x8c, 0xc9, 0xa6, 0x4b, 0x50, 0xeb, 0x1b, 0x2f,
+ 0x75, 0x19, 0x6b, 0xd5, 0xf2, 0xea, 0x4a, 0x83, 0x40, 0xd4, 0x39, 0xec,
+ 0x57, 0x23, 0x12, 0xb8, 0xdc, 0xa9, 0xbb, 0x86, 0x9b, 0x96, 0x2f, 0x1e,
+ 0x43, 0x06, 0x80, 0x5c, 0x35, 0x2f, 0x7c, 0xc3, 0xa9, 0x58, 0x00, 0x72,
+ 0x8f, 0xca, 0xd7, 0xef, 0x60, 0x40, 0xd8, 0x13, 0xc3, 0x59, 0xbc, 0xd4,
+ 0xba, 0xd2, 0x1d, 0xde, 0xae, 0xbc, 0x32, 0x63, 0x8f, 0x15, 0x9b, 0x42,
+ 0x15, 0x25, 0x16, 0xaf, 0x7d, 0x0e, 0x80, 0xa7, 0x71, 0x23, 0xf2, 0x0e,
+ 0x98, 0x67, 0x26, 0x64, 0x23, 0xd5, 0x96, 0x5b, 0xef, 0xe9, 0x4e, 0xd3,
+ 0xcb, 0x7b, 0x49, 0x3a, 0x6b, 0x36, 0x40, 0x5a, 0xd9, 0xda, 0x43, 0x04,
+ 0xe6, 0xc3, 0x6c, 0x60, 0x84, 0xe1, 0xb7, 0x34, 0x19, 0x4d, 0x4b, 0x77,
+ 0x58, 0xbd, 0x0a, 0x57, 0x9d, 0xb2, 0xbd, 0x51, 0xaf, 0x83, 0x77, 0x24,
+ 0xe2, 0x97, 0xa3, 0x82, 0x80, 0xa9, 0xc5, 0xa2, 0x3d, 0xa6, 0x62, 0xce,
+ 0x1d, 0x09, 0x76, 0xd7, 0x8c, 0x64, 0xe5, 0x0b, 0xab, 0x13, 0xfa, 0x25,
+ 0x50, 0x5d, 0xb9, 0x88, 0x9c, 0x00, 0x1b, 0x91, 0x6c, 0xf4, 0x7a, 0x95,
+ 0xbc, 0xce, 0xe7, 0x79, 0xc5, 0xa5, 0x8c, 0xb9, 0xea, 0x61, 0x7a, 0x95,
+ 0xc5, 0x1b, 0x45, 0x34, 0x5e, 0x89, 0x9d, 0x22, 0x4d, 0x14, 0xf7, 0xbd,
+ 0xcc, 0x17, 0xe2, 0x47, 0xd2, 0xcc, 0x23, 0x75, 0x25, 0x31, 0x16, 0x53,
+ 0x30, 0xcd, 0x5f, 0xbd, 0x97, 0xc6, 0x6f, 0xd4, 0x0e, 0xba, 0xda, 0x10,
+ 0x4a, 0x7b, 0x81, 0x10, 0x7b, 0xb6, 0xb0, 0x7e, 0x4a, 0xbc, 0x0e, 0x2e,
+ 0x23, 0x0e, 0x9e, 0x2d, 0x41, 0x92, 0xb0, 0xb5, 0xee, 0x6c, 0x0f, 0x9f,
+ 0xa3, 0x42, 0x32, 0x7f, 0xbc, 0xe9, 0xb7, 0xff, 0x01, 0xf0, 0x89, 0xa7,
+ 0xbb, 0x0d, 0x5a, 0xb8, 0x44, 0x3c, 0x16, 0xd1, 0x67, 0xb7, 0x67, 0xf7,
+ 0x35, 0xc3, 0x01, 0x56, 0x9c, 0xa9, 0xc0, 0x73, 0xda, 0xe0, 0x02, 0x66,
+ 0x52, 0x90, 0x51, 0x4e, 0xc1, 0x26, 0xbb, 0x92, 0xec, 0x56, 0x03, 0xba,
+ 0x90, 0x95, 0xca, 0x8a, 0xad, 0x11, 0x56, 0x51, 0x0d, 0x89, 0xd5, 0x90,
+ 0xfa, 0x11, 0xb3, 0xa9, 0x31, 0x6e, 0x28, 0x93, 0x4e, 0xa7, 0x35, 0xab,
+ 0xc7, 0xc1, 0x97, 0x93, 0x4c, 0xcb, 0xb7, 0xb6, 0x19, 0xb7, 0x54, 0x57,
+ 0xd7, 0x90, 0x3d, 0xea, 0xf3, 0x68, 0xae, 0x31, 0x7e, 0x9a, 0xea, 0x83,
+ 0x0d, 0x4c, 0x15, 0x77, 0xd8, 0x8d, 0xf0, 0x52, 0xc0, 0xc1, 0x22, 0x51,
+ 0x9b, 0x4d, 0xee, 0xb7, 0x82, 0xf0, 0xe9, 0x70, 0x9a, 0x34, 0xb2, 0xcf,
+ 0xe7, 0x2e, 0x22, 0x61, 0xf8, 0xcd, 0xb1, 0x7b, 0x00, 0xbc, 0x16, 0xe1,
+ 0xda, 0xed, 0xe6, 0x34, 0x48, 0x0c, 0x05, 0x7c, 0xc5, 0x3c, 0x64, 0x39,
+ 0x84, 0x3c, 0x30, 0x71, 0x81, 0xb1, 0xc0, 0xb8, 0xa9, 0xca, 0xab, 0x04,
+ 0xd6, 0x0b, 0xf9, 0x2f, 0xca, 0xc8, 0xbc, 0xc6, 0xc1, 0xe2, 0x72, 0x12,
+ 0x71, 0xa3, 0xcb, 0x06, 0xd4, 0x42, 0xec, 0x69, 0xad, 0x15, 0x3a, 0x79,
+ 0x94, 0x8a, 0xd2, 0xb8, 0xbb, 0xbb, 0x22, 0x22, 0x41, 0xe1, 0x5e, 0xd5,
+ 0xfd, 0xc0, 0x8b, 0x31, 0xa8, 0xd2, 0xcb, 0xcc, 0x38, 0x30, 0x1f, 0x49,
+ 0x46, 0xe8, 0x1f, 0xd3, 0x12, 0x4a, 0x96, 0x1e, 0x3e, 0x9b, 0xc7, 0x80,
+ 0x4b, 0xd5, 0x72, 0xcc, 0x42, 0x39, 0xdb, 0xfd, 0x1c, 0x5b, 0x64, 0x4b,
+ 0x78, 0x65, 0x67, 0x78, 0x4a, 0x67, 0xc8, 0xa2, 0xef, 0xb8, 0xee, 0x99,
+ 0xe6, 0x9b, 0xb3, 0x58, 0xdc, 0x11, 0xc8, 0xd9, 0x42, 0xa5, 0x85, 0xe5,
+ 0xea, 0x96, 0x23, 0x21, 0x88, 0xf9, 0xb7, 0xda, 0x7f, 0xba, 0xbd, 0x83,
+ 0xe1, 0x3e, 0xdd, 0xfe, 0x34, 0x2c, 0x5a, 0xe1, 0x80, 0x3b, 0x14, 0x98,
+ 0x5d, 0x93, 0x44, 0x1e, 0xce, 0xe0, 0x9d, 0xb2, 0x11, 0x15, 0xeb, 0x9a,
+ 0xcd, 0x96, 0x53, 0xc8, 0x46, 0x8a, 0x67, 0x32, 0xc8, 0xe7, 0x82, 0x67,
+ 0xc1, 0x39, 0x81, 0xd8, 0xcb, 0x14, 0x1e, 0x82, 0x36, 0x02, 0x5a, 0x5a,
+ 0x25, 0x06, 0xef, 0xb5, 0x0a, 0xe4, 0x44, 0x71, 0x8d, 0x83, 0x80, 0x45,
+ 0x00, 0xb5, 0x80, 0x7b, 0x45, 0x56, 0x1e, 0xaf, 0xe0, 0x1c, 0x28, 0xa8,
+ 0xc9, 0x05, 0x5b, 0xfc, 0xd4, 0xfa, 0x44, 0x7c, 0x71, 0x0b, 0xf8, 0x25,
+ 0x9a, 0xa2, 0x33, 0x66, 0xf4, 0x51, 0xab, 0x9f, 0x7c, 0xf6, 0xfa, 0xa0,
+ 0xd5, 0xdc, 0xee, 0x93, 0xcf, 0x3e, 0xd3, 0x41, 0x64, 0x9a, 0xcf, 0xe0,
+ 0x01, 0xf0, 0xd9, 0x00, 0x2e, 0xa9, 0xce, 0xe2, 0xad, 0xe3, 0xb2, 0xb7,
+ 0xc8, 0x99, 0x94, 0x10, 0xdf, 0x0e, 0x0d, 0x6d, 0x5d, 0xd7, 0x74, 0x5d,
+ 0xb3, 0x17, 0x5d, 0x96, 0x57, 0x9a, 0x68, 0x61, 0x56, 0x2d, 0xb0, 0x68,
+ 0x40, 0xd9, 0x86, 0x96, 0x29, 0x55, 0xa8, 0xbe, 0x88, 0x22, 0xc6, 0xaf,
+ 0xe6, 0xe8, 0xf1, 0xaf, 0x2c, 0x97, 0x5f, 0x65, 0x75, 0x9c, 0x91, 0x16,
+ 0x00, 0x27, 0x34, 0x1a, 0x5f, 0x89, 0xcc, 0xe9, 0xe1, 0x9a, 0x2d, 0xa7,
+ 0xee, 0x85, 0x28, 0xb3, 0x86, 0xbf, 0x17, 0x94, 0xe6, 0xfc, 0x02, 0x64,
+ 0xf4, 0x42, 0x3d, 0xd4, 0x9d, 0x08, 0xca, 0x5f, 0x28, 0xd6, 0xab, 0x3a,
+ 0x67, 0x00, 0x42, 0x5a, 0xd7, 0xe9, 0xf8, 0xda, 0x33, 0x73, 0xc0, 0x73,
+ 0xc0, 0x62, 0xa5, 0x28, 0x98, 0x5a, 0x4a, 0x26, 0x0a, 0x4b, 0xc8, 0x5d,
+ 0x15, 0xb5, 0x17, 0x06, 0x21, 0x4b, 0x2f, 0x01, 0xd0, 0x5a, 0x6a, 0x99,
+ 0xf0, 0x68, 0xba, 0x96, 0xa2, 0x0a, 0x2b, 0x8e, 0x36, 0xf2, 0x9b, 0xfc,
+ 0xbb, 0xc1, 0x42, 0x45, 0x27, 0xff, 0xd0, 0x8a, 0x94, 0x5a, 0x15, 0x16,
+ 0x18, 0x80, 0x7c, 0xd6, 0x89, 0x6a, 0x52, 0xfe, 0xda, 0xec, 0xeb, 0xb1,
+ 0x4f, 0xd6, 0xf9, 0xa1, 0xf6, 0xc9, 0xe7, 0x97, 0xd6, 0xcd, 0xad, 0x1f,
+ 0x3a, 0xb9, 0x41, 0x98, 0x32, 0x1c, 0x87, 0xb6, 0x2c, 0x4e, 0x67, 0xee,
+ 0x6a, 0xb2, 0x02, 0x6e, 0x54, 0xaa, 0xbc, 0x13, 0x3b, 0xdb, 0xeb, 0xb4,
+ 0x3d, 0x0e, 0x5e, 0xbb, 0x91, 0xbe, 0xfc, 0xa2, 0xd1, 0xda, 0xdd, 0xdd,
+ 0x70, 0x76, 0x6f, 0xdf, 0x55, 0xc3, 0x71, 0x31, 0xeb, 0xc0, 0xdc, 0x52,
+ 0x58, 0x7a, 0x21, 0x29, 0x8f, 0x25, 0x12, 0x16, 0x26, 0xf4, 0x45, 0x85,
+ 0x19, 0x16, 0x2e, 0xad, 0x1c, 0xf5, 0x76, 0xb9, 0x5b, 0xf5, 0x34, 0x5d,
+ 0x15, 0x99, 0x04, 0x58, 0x8f, 0x0a, 0x22, 0x37, 0x23, 0x24, 0x46, 0x45,
+ 0xa8, 0xcb, 0xe5, 0xb8, 0x8e, 0x05, 0xbd, 0x1f, 0x5c, 0xb1, 0x55, 0xc1,
+ 0x52, 0xaf, 0x83, 0x10, 0x66, 0x29, 0x25, 0xdf, 0x3c, 0xee, 0x7c, 0xb2,
+ 0x78, 0x40, 0x26, 0x9d, 0xb7, 0x4f, 0x22, 0xe0, 0xd4, 0xd7, 0xfb, 0x92,
+ 0xfa, 0xa0, 0xa9, 0xfa, 0x3e, 0xeb, 0x7a, 0xe5, 0x52, 0xf6, 0xee, 0xb2,
+ 0xd1, 0xcb, 0x2f, 0x38, 0x38, 0xe2, 0x03, 0xd0, 0x18, 0x05, 0x96, 0x9d,
+ 0xe9, 0x68, 0x8b, 0xff, 0xec, 0x25, 0x6c, 0x6e, 0xec, 0x58, 0x49, 0xa2,
+ 0xbf, 0x55, 0x2d, 0x06, 0x80, 0x33, 0x41, 0x6b, 0x97, 0x45, 0xb1, 0xb2,
+ 0x31, 0x2b, 0x9b, 0x86, 0x95, 0x08, 0x42, 0xdd, 0x25, 0xf2, 0xdc, 0x93,
+ 0x95, 0x90, 0x92, 0x42, 0x0b, 0x05, 0x47, 0xab, 0x2b, 0x91, 0x1a, 0x66,
+ 0x2f, 0xb9, 0x11, 0x2d, 0xa9, 0xf2, 0xa5, 0xd6, 0xbc, 0x65, 0x9d, 0x63,
+ 0xf5, 0x82, 0xf0, 0xd3, 0x2f, 0xbf, 0x00, 0x50, 0x1d, 0xff, 0xfa, 0x17,
+ 0xf7, 0x36, 0xff, 0x43, 0x74, 0x49, 0xa7, 0x7b, 0xe5, 0x44, 0x58, 0xa3,
+ 0xb1, 0xe7, 0xb7, 0xc4, 0x9a, 0x64, 0x86, 0x9b, 0xf5, 0xfe, 0x3a, 0x0b,
+ 0x65, 0xeb, 0x7f, 0x59, 0x87, 0x4f, 0xde, 0x8c, 0xff, 0x28, 0x16, 0x24,
+ 0x15, 0x12, 0x8b, 0x28, 0xee, 0x94, 0xc3, 0xf4, 0xf1, 0x40, 0x85, 0x81,
+ 0x3f, 0x36, 0xe6, 0x9f, 0x7a, 0x6e, 0xd4, 0x3f, 0xf5, 0xfc, 0xb8, 0x7f,
+ 0xea, 0xf9, 0x91, 0xff, 0xd4, 0xfb, 0x15, 0x3b, 0xba, 0x2e, 0xcd, 0xfb,
+ 0xd6, 0x83, 0xc6, 0x83, 0xb6, 0x7b, 0xeb, 0xab, 0x9a, 0xf6, 0xae, 0xd2,
+ 0xdc, 0x4e, 0x97, 0x5f, 0x21, 0xbe, 0x75, 0x75, 0x15, 0xa4, 0xa0, 0xa1,
+ 0x54, 0x5a, 0x96, 0x79, 0xc3, 0x7c, 0x18, 0xc5, 0xaf, 0x04, 0x4f, 0xf0,
+ 0x9a, 0xb2, 0x84, 0x5b, 0x4d, 0xd9, 0xf2, 0x17, 0xa0, 0x3d, 0x5a, 0x27,
+ 0x6e, 0xa5, 0x2d, 0xf2, 0x21, 0x0a, 0x87, 0x71, 0xaf, 0x77, 0x82, 0x34,
+ 0x5e, 0x2e, 0x4b, 0x09, 0xbb, 0x12, 0x9e, 0x29, 0x30, 0x16, 0x06, 0x29,
+ 0xab, 0x7d, 0xbd, 0xd9, 0x7f, 0xfb, 0x6e, 0xff, 0xf8, 0xc1, 0x08, 0xe0,
+ 0x30, 0x54, 0xcf, 0xf9, 0x8d, 0xa0, 0xfe, 0x87, 0x3a, 0x3e, 0xe7, 0x40,
+ 0xf0, 0x15, 0xce, 0xd5, 0xeb, 0x7f, 0xe4, 0x1b, 0xfd, 0xe7, 0xce, 0x6c,
+ 0x99, 0xef, 0x54, 0x90, 0x7d, 0x1d, 0x56, 0x8e, 0xb9, 0x11, 0xfe, 0xd3,
+ 0xb3, 0xf7, 0xf9, 0xf5, 0x9e, 0xba, 0x5d, 0x5d, 0x35, 0xd8, 0xae, 0xa2,
+ 0x83, 0x8e, 0xef, 0xb3, 0xe8, 0x62, 0xf6, 0x55, 0x18, 0x73, 0xfa, 0x41,
+ 0x79, 0x7b, 0x18, 0x11, 0x39, 0x05, 0xf1, 0xf2, 0x72, 0xa5, 0x0b, 0x79,
+ 0xff, 0xe0, 0xc0, 0xe7, 0x50, 0x35, 0xd1, 0x18, 0x1a, 0x31, 0xa4, 0xff,
+ 0x7c, 0xe3, 0x08, 0x16, 0x6e, 0x8a, 0xfa, 0xad, 0x9c, 0x67, 0x32, 0xa8,
+ 0x0b, 0x49, 0x61, 0x7c, 0xa1, 0xa3, 0xf9, 0xbc, 0x73, 0x1d, 0x69, 0x00,
+ 0xa1, 0x98, 0x69, 0x75, 0xbc, 0x50, 0xb1, 0xec, 0x5c, 0xdd, 0xa3, 0xa7,
+ 0xfb, 0xc0, 0xef, 0xd5, 0x7c, 0x3e, 0x55, 0x17, 0xa2, 0x78, 0x73, 0x8d,
+ 0xcc, 0x46, 0x7d, 0x0c, 0x9b, 0xbf, 0x61, 0x40, 0x99, 0xb5, 0x4b, 0x85,
+ 0xb2, 0xe4, 0x62, 0x39, 0x23, 0xf2, 0x25, 0x81, 0x63, 0x42, 0xda, 0xe8,
+ 0xc3, 0x31, 0x81, 0xb6, 0xbb, 0xec, 0xc2, 0x92, 0x38, 0x45, 0x95, 0x07,
+ 0xd3, 0xce, 0xf0, 0xc7, 0x7e, 0xb7, 0x69, 0xb9, 0x77, 0x7e, 0x74, 0x71,
+ 0x48, 0xbb, 0xf3, 0xee, 0xe2, 0xeb, 0x9e, 0xaa, 0x14, 0xed, 0x14, 0x65,
+ 0xe0, 0x52, 0x91, 0x96, 0x4b, 0x4b, 0x6f, 0x69, 0x57, 0xa5, 0xb0, 0xdc,
+ 0xb8, 0xb4, 0x40, 0x2b, 0x0a, 0xa7, 0xb5, 0xd1, 0xcf, 0x86, 0xcf, 0x36,
+ 0x5b, 0x1b, 0xb3, 0x1a, 0x6d, 0xb4, 0x5d, 0x7f, 0x4f, 0x69, 0x5a, 0xe1,
+ 0x2e, 0x39, 0x58, 0x76, 0xcb, 0xa3, 0xd1, 0x8b, 0xcc, 0x9c, 0x9a, 0xdb,
+ 0xbf, 0x03, 0x4f, 0xc1, 0xa3, 0x4b, 0x38, 0x8d, 0x1b, 0x98, 0x9c, 0x0e,
+ 0x10, 0x4e, 0x85, 0x99, 0xb0, 0xca, 0xb4, 0x4b, 0x65, 0x8a, 0x13, 0x8e,
+ 0xcd, 0x61, 0xc1, 0x10, 0xdc, 0x5c, 0xf5, 0x29, 0x2c, 0xf7, 0x13, 0x9b,
+ 0x37, 0x4d, 0x80, 0xf0, 0x29, 0x63, 0x9d, 0x08, 0x9d, 0xc9, 0x2c, 0x17,
+ 0x88, 0x9f, 0x00, 0xee, 0xb3, 0x4d, 0xc9, 0xaa, 0x93, 0xfd, 0x28, 0x3f,
+ 0xbb, 0x79, 0x00, 0xc4, 0x03, 0x2e, 0x0f, 0x0a, 0x61, 0x41, 0xdf, 0xc0,
+ 0x68, 0x34, 0x14, 0xde, 0x57, 0x44, 0x82, 0xaa, 0x22, 0xf1, 0x07, 0xbc,
+ 0xc4, 0x31, 0x7e, 0xfa, 0xc6, 0xf9, 0xa6, 0xab, 0x48, 0xc9, 0xa2, 0xb1,
+ 0xb6, 0xc6, 0xa9, 0x10, 0xad, 0xd4, 0x87, 0x00, 0x44, 0x43, 0x31, 0x48,
+ 0xba, 0x80, 0xd5, 0x82, 0x93, 0x18, 0x5f, 0xb4, 0xe0, 0x7e, 0xe3, 0xbb,
+ 0x49, 0x77, 0x76, 0xb7, 0x08, 0x40, 0x92, 0x49, 0xc5, 0xa8, 0x59, 0x62,
+ 0x91, 0x3f, 0xf8, 0xee, 0x55, 0xab, 0x66, 0x37, 0x66, 0x05, 0x42, 0x10,
+ 0xa4, 0x89, 0xf9, 0xaa, 0xac, 0x7f, 0xf3, 0x23, 0x13, 0x2d, 0x49, 0x31,
+ 0x9b, 0x49, 0x96, 0x2d, 0x1c, 0xee, 0x2c, 0x8a, 0x28, 0x49, 0xf9, 0x26,
+ 0x3a, 0x72, 0x6c, 0x32, 0xba, 0x07, 0x3e, 0xe0, 0xfd, 0x8a, 0xd1, 0x29,
+ 0x1b, 0x68, 0x94, 0x77, 0x61, 0x18, 0x78, 0xd2, 0xb4, 0x92, 0x9d, 0x4f,
+ 0x9f, 0x7c, 0x96, 0x54, 0x9c, 0x49, 0x98, 0x87, 0x4b, 0x26, 0x40, 0x45,
+ 0xab, 0xf1, 0x1c, 0x54, 0x6e, 0x36, 0xc7, 0x8c, 0x66, 0xb7, 0x92, 0xba,
+ 0x5c, 0xdc, 0x65, 0xb8, 0xb9, 0x34, 0xd3, 0x2e, 0x4e, 0xef, 0xa7, 0x45,
+ 0xd4, 0x05, 0x53, 0xab, 0x3d, 0xd6, 0x49, 0x8c, 0x30, 0xc3, 0x80, 0x32,
+ 0x27, 0xc4, 0x74, 0x18, 0x12, 0x9f, 0xd8, 0xc3, 0xd9, 0xe1, 0xc5, 0x19,
+ 0xfd, 0x38, 0xbf, 0x38, 0x39, 0x5b, 0x01, 0xc2, 0x51, 0x8f, 0xc1, 0xf6,
+ 0x78, 0xd1, 0xcc, 0xc2, 0x65, 0x31, 0x6e, 0x01, 0xbf, 0x80, 0xcf, 0x5b,
+ 0x58, 0x48, 0xd5, 0x89, 0xb1, 0x18, 0x40, 0x2d, 0x56, 0xcd, 0x3a, 0xdb,
+ 0x97, 0xc4, 0xcb, 0x1f, 0x9c, 0x98, 0xec, 0xf9, 0xc3, 0x14, 0x82, 0x09,
+ 0x33, 0x31, 0xf2, 0x8c, 0x1d, 0xd3, 0xc6, 0x68, 0xb5, 0x08, 0xa7, 0x77,
+ 0x1e, 0xaa, 0x25, 0x63, 0x05, 0x85, 0x08, 0x59, 0x49, 0xbd, 0xd3, 0x46,
+ 0x0d, 0xab, 0x9e, 0xe5, 0x87, 0xf6, 0xd8, 0x4b, 0x7d, 0xe3, 0xe0, 0xec,
+ 0x1f, 0xa1, 0xdf, 0xb4, 0x72, 0x26, 0x1c, 0xbe, 0x32, 0x8b, 0x59, 0x26,
+ 0xd2, 0xbc, 0x38, 0x03, 0x8d, 0xeb, 0xc8, 0x3d, 0x21, 0x00, 0x44, 0x49,
+ 0x57, 0x7a, 0xb2, 0x43, 0x6f, 0xe4, 0x5d, 0x5e, 0x8f, 0x30, 0xa0, 0x64,
+ 0x5f, 0x48, 0xc0, 0x99, 0xd6, 0x80, 0xc5, 0x5c, 0xb7, 0x51, 0xad, 0x3f,
+ 0x0c, 0x32, 0xfb, 0x6c, 0xb8, 0xd3, 0xe6, 0xce, 0x9c, 0xab, 0xdb, 0xcd,
+ 0x61, 0x10, 0x39, 0x67, 0x19, 0x9f, 0xae, 0xc4, 0x92, 0x83, 0x1c, 0x0b,
+ 0x71, 0xfd, 0x4f, 0xf5, 0xa9, 0xce, 0x5c, 0x23, 0x2b, 0xac, 0xee, 0x69,
+ 0x5c, 0xb7, 0x5e, 0xd2, 0x67, 0x97, 0x6d, 0xae, 0xda, 0x10, 0x96, 0x62,
+ 0x3e, 0xda, 0x51, 0xf8, 0x28, 0x19, 0x9c, 0x6e, 0x05, 0x29, 0xca, 0x0a,
+ 0x4e, 0xda, 0x98, 0xf9, 0x4e, 0xb7, 0x00, 0xb2, 0x0a, 0x2e, 0xac, 0x2d,
+ 0x85, 0xc0, 0x72, 0x2b, 0x72, 0x65, 0xa9, 0xb2, 0x48, 0x37, 0xae, 0x40,
+ 0xf2, 0x6e, 0xae, 0x09, 0xfe, 0x73, 0x5f, 0x0e, 0xcb, 0x16, 0x91, 0xb1,
+ 0x2b, 0xd8, 0x02, 0x2c, 0xb7, 0xd4, 0xa4, 0x90, 0x28, 0x69, 0x5e, 0x84,
+ 0x8e, 0x58, 0x50, 0x08, 0xae, 0x88, 0x7b, 0xb5, 0xab, 0x45, 0xdb, 0x53,
+ 0x53, 0x40, 0xc9, 0x04, 0xde, 0x4e, 0xcf, 0x86, 0x5b, 0x3d, 0xa2, 0x81,
+ 0xd3, 0x70, 0x13, 0x85, 0xd5, 0x41, 0x1c, 0xf7, 0x3c, 0xa2, 0x96, 0xa0,
+ 0x76, 0x49, 0xfb, 0xb5, 0x04, 0x6b, 0x99, 0x6b, 0xec, 0x55, 0xc0, 0xa0,
+ 0x24, 0xff, 0x59, 0x4b, 0x53, 0x35, 0xd3, 0x8a, 0x4d, 0x94, 0x6b, 0xdf,
+ 0x6b, 0x5c, 0x48, 0x04, 0xf4, 0x36, 0xc8, 0x17, 0x8f, 0xa7, 0x81, 0x5b,
+ 0x02, 0x3a, 0x0f, 0xcb, 0x27, 0x56, 0x35, 0xdc, 0x42, 0xe6, 0xce, 0xc9,
+ 0x63, 0x00, 0x95, 0x2a, 0xf1, 0x66, 0x48, 0x85, 0xd1, 0x22, 0x71, 0x8b,
+ 0x07, 0xed, 0xa6, 0x07, 0x7b, 0x30, 0x7a, 0x53, 0x52, 0xf6, 0xc0, 0xc2,
+ 0x2b, 0xe3, 0xfb, 0xd8, 0xaa, 0x2c, 0x9b, 0x11, 0x62, 0xe9, 0x0f, 0x90,
+ 0xa6, 0x2e, 0xee, 0x5c, 0x18, 0x9d, 0x68, 0xbc, 0x6e, 0xc0, 0x71, 0x58,
+ 0xae, 0xe2, 0xcb, 0x88, 0x44, 0x63, 0x67, 0xca, 0xca, 0x7d, 0x87, 0x7d,
+ 0x35, 0x28, 0xf8, 0xe9, 0x70, 0x77, 0xf3, 0xc1, 0xac, 0x32, 0x96, 0xdf,
+ 0x19, 0x5c, 0x50, 0xd2, 0x8d, 0x49, 0xd5, 0x12, 0xc8, 0x07, 0x01, 0x0d,
+ 0x28, 0x65, 0x6b, 0x7d, 0xad, 0x45, 0xcc, 0x22, 0xae, 0xc3, 0xc1, 0x2b,
+ 0xd4, 0xde, 0x37, 0x86, 0x94, 0x7b, 0x7c, 0xbf, 0x20, 0x04, 0xa7, 0xc9,
+ 0x29, 0xdd, 0x31, 0x6e, 0x89, 0x83, 0x5c, 0x79, 0x7a, 0x07, 0xea, 0x06,
+ 0x0f, 0x63, 0xb3, 0x7d, 0x21, 0xb2, 0x9b, 0x11, 0x31, 0x75, 0xaf, 0xbd,
+ 0x69, 0x9e, 0x95, 0xbf, 0x19, 0x7d, 0xc8, 0xee, 0x81, 0x92, 0x86, 0x01,
+ 0x24, 0x20, 0xa9, 0x18, 0x8a, 0x43, 0xcb, 0x36, 0x68, 0xe3, 0xa7, 0x6b,
+ 0x9d, 0xf7, 0x34, 0xd6, 0xd6, 0x5f, 0x04, 0x1c, 0xe6, 0x4b, 0x27, 0xb3,
+ 0x0a, 0x0b, 0x6a, 0x2d, 0x17, 0xaa, 0x05, 0x4d, 0x8a, 0xbb, 0x39, 0x6a,
+ 0xcc, 0x24, 0x31, 0x35, 0x61, 0xf8, 0x7c, 0x76, 0x5a, 0x2e, 0xb4, 0xdd,
+ 0xed, 0xe1, 0x87, 0x36, 0x3b, 0xad, 0xaa, 0xe9, 0x60, 0x3c, 0x1e, 0x3f,
+ 0xc0, 0x51, 0x0f, 0x0e, 0x0e, 0xe8, 0x83, 0x03, 0x60, 0xb5, 0x30, 0xd2,
+ 0x34, 0x46, 0x7a, 0x70, 0xcd, 0x26, 0x9b, 0xe9, 0x66, 0x72, 0x7e, 0xbd,
+ 0x64, 0xd4, 0x3c, 0x1a, 0x0d, 0xa8, 0x82, 0xbd, 0xcf, 0xb1, 0x4f, 0x95,
+ 0x8b, 0x27, 0x95, 0xaa, 0xdb, 0x35, 0x35, 0x18, 0x11, 0xe0, 0x00, 0xfb,
+ 0x68, 0x99, 0x26, 0x46, 0x57, 0xd2, 0x43, 0x67, 0x42, 0xe4, 0x72, 0x1e,
+ 0x54, 0xb7, 0x53, 0x0d, 0x6b, 0x9e, 0xcd, 0x11, 0x76, 0xed, 0x10, 0xf9,
+ 0x11, 0x14, 0x53, 0x25, 0x6f, 0xf7, 0x2f, 0xd8, 0x2b, 0x56, 0x6b, 0x2e,
+ 0x67, 0x77, 0x12, 0x9b, 0xc3, 0x0c, 0x05, 0xf4, 0x42, 0x1a, 0x54, 0x7f,
+ 0xb1, 0x3b, 0x00, 0xac, 0x28, 0xaf, 0x8c, 0x35, 0x2a, 0x32, 0x61, 0x17,
+ 0xb2, 0xbd, 0xae, 0xe8, 0xc0, 0xdd, 0x40, 0x92, 0x07, 0xc5, 0x7f, 0xb6,
+ 0x7d, 0x9a, 0x3b, 0x9f, 0xc4, 0xf7, 0x5b, 0xe3, 0xf5, 0x1f, 0x05, 0x87,
+ 0x60, 0x4b, 0x7b, 0xfd, 0xf9, 0xd7, 0x6f, 0x53, 0xa6, 0xdc, 0x82, 0x1f,
+ 0x13, 0xd2, 0xb8, 0xe8, 0x48, 0x0e, 0x08, 0xd8, 0xae, 0xab, 0x47, 0x24,
+ 0xb9, 0x77, 0x0a, 0x7f, 0x5b, 0xd1, 0x76, 0x4f, 0x50, 0x86, 0x4d, 0xae,
+ 0x01, 0x97, 0x11, 0x7b, 0x97, 0x46, 0x6c, 0xc3, 0x38, 0x45, 0x80, 0x61,
+ 0x54, 0x10, 0x73, 0x91, 0xb0, 0x49, 0xd7, 0x7c, 0x99, 0x2d, 0x04, 0x3e,
+ 0x32, 0x6c, 0x7e, 0x95, 0x1e, 0x17, 0x4a, 0xfd, 0x21, 0x44, 0x83, 0x8d,
+ 0xb1, 0x6a, 0xb6, 0x82, 0x8e, 0xd2, 0xbc, 0xd3, 0x00, 0x9d, 0x6a, 0xcf,
+ 0xad, 0xb2, 0xb3, 0xf1, 0x0e, 0xed, 0x76, 0xee, 0x90, 0x50, 0x69, 0xf7,
+ 0x7e, 0x9c, 0xe9, 0xb1, 0xb7, 0xd3, 0xa0, 0x71, 0xd8, 0x46, 0x63, 0xd3,
+ 0xe2, 0x8a, 0xf3, 0x33, 0x04, 0xfd, 0x08, 0x8b, 0x64, 0x55, 0x97, 0xda,
+ 0xf6, 0x09, 0xa1, 0x60, 0xad, 0x3a, 0xdd, 0xf4, 0x30, 0x89, 0x2c, 0xc2,
+ 0x3c, 0xc5, 0xd1, 0xbd, 0x41, 0xaa, 0x39, 0xf8, 0x90, 0x8e, 0xfd, 0x70,
+ 0xe1, 0x5d, 0x63, 0x4e, 0xea, 0x80, 0x6b, 0xb4, 0x32, 0x6c, 0x19, 0x29,
+ 0xd9, 0x95, 0x37, 0xc2, 0x2e, 0x4c, 0x45, 0xed, 0xac, 0xea, 0x4b, 0xf7,
+ 0xb7, 0xce, 0x30, 0x5e, 0xb5, 0xed, 0x4d, 0xbd, 0xb2, 0x49, 0xae, 0x20,
+ 0x36, 0xe6, 0xcd, 0x20, 0x2a, 0x1b, 0x46, 0x58, 0x23, 0x23, 0x29, 0x2c,
+ 0x71, 0x6b, 0x30, 0xae, 0x97, 0xcb, 0x7a, 0x59, 0xba, 0xda, 0x25, 0x0d,
+ 0x16, 0xcf, 0x66, 0x7a, 0xcd, 0xa5, 0x11, 0x57, 0xd9, 0x83, 0x85, 0xdd,
+ 0x93, 0x73, 0x35, 0x2b, 0x2b, 0x12, 0x06, 0x9c, 0x62, 0x21, 0xe2, 0xab,
+ 0x47, 0x81, 0xd7, 0x46, 0x2f, 0x3b, 0x53, 0x67, 0x24, 0x2a, 0x96, 0x23,
+ 0x13, 0x49, 0xdf, 0xe4, 0x85, 0xd2, 0xab, 0x69, 0xca, 0x79, 0x4e, 0x2c,
+ 0x27, 0x0d, 0x93, 0xe3, 0x4c, 0x3c, 0x53, 0xeb, 0x5f, 0xac, 0x0b, 0x97,
+ 0x5e, 0x7f, 0xb1, 0x9e, 0xac, 0xc6, 0xbb, 0xaf, 0xfa, 0x2e, 0x70, 0x64,
+ 0x5d, 0x4c, 0xcf, 0xeb, 0x36, 0x04, 0x15, 0xde, 0x65, 0x58, 0x88, 0x24,
+ 0x9c, 0x17, 0x0e, 0xf1, 0x9a, 0x25, 0xa2, 0x0e, 0x3d, 0xb6, 0x09, 0xa2,
+ 0xb5, 0x90, 0x4c, 0x59, 0xf6, 0x17, 0x01, 0x9b, 0x55, 0x7c, 0x81, 0x97,
+ 0xe2, 0x24, 0x5d, 0xaf, 0x10, 0x9f, 0x24, 0x45, 0xe8, 0xba, 0x82, 0x0f,
+ 0x2d, 0x6f, 0x32, 0x73, 0x25, 0xe3, 0x75, 0x2c, 0x48, 0x3d, 0x1f, 0x8f,
+ 0x11, 0xc9, 0x05, 0xe1, 0x90, 0xbe, 0x25, 0xa9, 0x46, 0x4e, 0x3a, 0xcf,
+ 0x9b, 0x8d, 0xc6, 0x2f, 0xda, 0x61, 0xd3, 0x97, 0x59, 0xca, 0xbb, 0x89,
+ 0xa0, 0x9e, 0x76, 0x75, 0x82, 0xc1, 0x15, 0x4b, 0x84, 0x57, 0xd3, 0x62,
+ 0x54, 0x5c, 0x5e, 0x3e, 0x60, 0x92, 0x14, 0x70, 0x16, 0xb4, 0x21, 0x24,
+ 0xda, 0xe3, 0xe4, 0x64, 0x7e, 0x6f, 0xc4, 0xe3, 0xd3, 0x02, 0xc5, 0x43,
+ 0xb1, 0xcc, 0x00, 0x72, 0x38, 0x92, 0x02, 0x42, 0xe1, 0xb9, 0xef, 0x32,
+ 0xa8, 0x2d, 0xef, 0x92, 0x9a, 0x33, 0x39, 0x53, 0x43, 0xec, 0x3c, 0x40,
+ 0x71, 0x95, 0xfc, 0xc7, 0x3f, 0x7e, 0xfc, 0xb9, 0x23, 0x5d, 0x89, 0x35,
+ 0x1c, 0xcd, 0x12, 0x41, 0x74, 0xaa, 0xa0, 0x9f, 0x39, 0x64, 0x5b, 0x5f,
+ 0xc7, 0x4d, 0x6b, 0xcc, 0x0f, 0x83, 0xc4, 0xd4, 0x98, 0xc1, 0x31, 0x23,
+ 0xb7, 0x0e, 0x81, 0x1d, 0x5c, 0xd4, 0x16, 0x13, 0xc0, 0xe8, 0x6f, 0x40,
+ 0xbf, 0xf4, 0x5e, 0x35, 0x87, 0x2c, 0x25, 0xda, 0x7b, 0x7c, 0xa0, 0x1c,
+ 0x40, 0xa0, 0x73, 0xb3, 0x2a, 0x9f, 0x7d, 0x77, 0x76, 0xe4, 0x74, 0xbb,
+ 0x60, 0x27, 0xbe, 0xc2, 0x4e, 0x44, 0xcb, 0xe6, 0x20, 0xb6, 0x9b, 0xa5,
+ 0x83, 0x3c, 0x30, 0x27, 0xca, 0x8e, 0x0a, 0xf3, 0x69, 0x54, 0x24, 0x40,
+ 0xa5, 0xf7, 0x49, 0xbf, 0x13, 0x8f, 0xbd, 0x1f, 0xd5, 0x68, 0x28, 0x63,
+ 0xd0, 0xde, 0x00, 0x7c, 0x21, 0x77, 0xb1, 0x10, 0xad, 0xe6, 0xbe, 0x3a,
+ 0xf4, 0x35, 0x43, 0x02, 0xaf, 0x98, 0x01, 0x57, 0xfa, 0x7a, 0x22, 0x80,
+ 0xff, 0x64, 0xf2, 0xbf, 0x43, 0x6d, 0x75, 0xc3, 0x98, 0xee, 0xd4, 0x8a,
+ 0x2e, 0x3c, 0x50, 0xb5, 0xb0, 0x2e, 0x83, 0x77, 0xf4, 0x2b, 0x78, 0x6c,
+ 0x09, 0x68, 0xeb, 0xff, 0xb6, 0xee, 0xd1, 0x74, 0x3b, 0x12, 0x30, 0x1d,
+ 0x78, 0x44, 0x47, 0x09, 0xeb, 0xc1, 0x51, 0xdf, 0x8f, 0xd4, 0x77, 0x68,
+ 0xf3, 0x18, 0x75, 0x54, 0x03, 0x59, 0x35, 0x8c, 0xaf, 0x0f, 0xf7, 0x5f,
+ 0xd9, 0x64, 0xff, 0x25, 0x90, 0x74, 0xde, 0x20, 0x34, 0xca, 0xa4, 0xe8,
+ 0xc9, 0xd2, 0x74, 0x49, 0x6c, 0x8a, 0xdd, 0x1d, 0x20, 0x11, 0x92, 0xb6,
+ 0x39, 0xc2, 0x8d, 0x49, 0x36, 0x56, 0x1d, 0xd5, 0xfa, 0xb4, 0x52, 0x79,
+ 0x0c, 0x0c, 0x74, 0x66, 0xec, 0xe3, 0xc3, 0x2b, 0x2c, 0x2e, 0xa0, 0xdf,
+ 0x10, 0x5c, 0xe1, 0x85, 0xfc, 0x5c, 0x71, 0x29, 0x1c, 0x02, 0xd1, 0x5c,
+ 0x1f, 0xa5, 0xb5, 0x54, 0xc4, 0x5a, 0xe3, 0xbb, 0x46, 0x33, 0x50, 0xb9,
+ 0x2c, 0xbc, 0xb3, 0x8b, 0xf8, 0x34, 0xbd, 0xc3, 0x64, 0x87, 0x1f, 0xb4,
+ 0x4c, 0x88, 0xb1, 0x14, 0xe0, 0x94, 0xba, 0xca, 0x95, 0x59, 0xd0, 0x69,
+ 0xd5, 0x09, 0xfe, 0x69, 0x4e, 0xa7, 0xa0, 0xcc, 0x09, 0xa9, 0x65, 0x8c,
+ 0xe8, 0x44, 0xca, 0x35, 0xc9, 0x29, 0x36, 0x60, 0x7e, 0xec, 0x3a, 0x0d,
+ 0x8a, 0xb8, 0xcc, 0xa5, 0x92, 0x4b, 0x04, 0x93, 0x11, 0xa2, 0x91, 0x39,
+ 0xbb, 0x86, 0x20, 0x89, 0x8b, 0x42, 0x68, 0xb6, 0xd7, 0xbe, 0x38, 0xd5,
+ 0x39, 0xfa, 0xb1, 0x9c, 0x1b, 0x16, 0x44, 0x3b, 0x56, 0x44, 0x7a, 0x0f,
+ 0x9d, 0x1a, 0xed, 0x13, 0xe7, 0xfa, 0x00, 0x2e, 0x47, 0x28, 0x87, 0xc7,
+ 0xbb, 0xce, 0x6b, 0x27, 0xb0, 0xb0, 0xc0, 0x7d, 0xe0, 0x9b, 0x64, 0x7c,
+ 0x93, 0x23, 0xb6, 0xb8, 0x5e, 0x82, 0xc7, 0xa7, 0xf3, 0x70, 0x94, 0x0e,
+ 0x00, 0x6d, 0x52, 0x60, 0xa5, 0xbb, 0x89, 0xc8, 0x64, 0x4a, 0x86, 0xa4,
+ 0xb2, 0xd1, 0x28, 0xb2, 0x85, 0x95, 0x40, 0x30, 0xbe, 0x8d, 0x8a, 0xc2,
+ 0x82, 0xbf, 0x16, 0xc7, 0x53, 0xb2, 0x52, 0x4a, 0xef, 0x41, 0xf1, 0x82,
+ 0x49, 0x4c, 0x2b, 0xd4, 0x83, 0xc2, 0xb9, 0xae, 0x23, 0xcb, 0x2a, 0x0e,
+ 0x01, 0x8b, 0xa7, 0xac, 0xcb, 0x43, 0xfc, 0xfe, 0x2a, 0xbf, 0xed, 0xb4,
+ 0x33, 0xdb, 0xc0, 0x60, 0xa5, 0xb6, 0x51, 0x38, 0xb0, 0x69, 0x67, 0xd0,
+ 0x13, 0xfc, 0xc2, 0x84, 0x0b, 0x14, 0xb8, 0xed, 0x8b, 0x51, 0x1d, 0xf8,
+ 0x0a, 0x4b, 0xf9, 0xaa, 0xdf, 0x23, 0xc2, 0x4f, 0x7a, 0x5f, 0x17, 0x55,
+ 0xbd, 0xd7, 0x73, 0x00, 0x67, 0x55, 0xa6, 0x92, 0x45, 0x93, 0x72, 0x14,
+ 0xd1, 0x3f, 0x0a, 0xcf, 0xc2, 0xdd, 0x2e, 0xe7, 0x8f, 0x2e, 0x16, 0x7d,
+ 0xd8, 0x5c, 0x91, 0x8a, 0xaa, 0xe0, 0x30, 0x6a, 0x18, 0x3c, 0x7c, 0x96,
+ 0xeb, 0x10, 0x00, 0xc3, 0xd2, 0xe6, 0x52, 0x15, 0x86, 0xf4, 0xfd, 0xe0,
+ 0x00, 0x9d, 0x0f, 0xbe, 0x46, 0x7b, 0x7f, 0xe9, 0x39, 0xb5, 0xbb, 0xfd,
+ 0x15, 0x0d, 0xbc, 0x3b, 0x71, 0x2b, 0x04, 0x0f, 0xae, 0x96, 0xa5, 0x21,
+ 0x3a, 0xc0, 0x9c, 0xae, 0xa3, 0x44, 0xd5, 0xbe, 0xc9, 0x64, 0xcb, 0x6d,
+ 0xba, 0x78, 0xfe, 0xba, 0x52, 0x8b, 0x35, 0xed, 0x70, 0x81, 0x90, 0xbd,
+ 0xc9, 0xa0, 0xb8, 0x1c, 0xa0, 0x96, 0xf2, 0x2c, 0x2d, 0x6f, 0xd8, 0xcf,
+ 0x12, 0x9c, 0x3a, 0x44, 0x55, 0x22, 0x51, 0x76, 0x32, 0xe9, 0xba, 0xab,
+ 0x35, 0xc3, 0xab, 0x74, 0x6a, 0xab, 0x0e, 0x46, 0x37, 0x73, 0x8f, 0x55,
+ 0x1d, 0x7b, 0xdd, 0x55, 0x14, 0xe0, 0xea, 0xc3, 0x5a, 0x50, 0x20, 0x2a,
+ 0xc2, 0x8a, 0x08, 0xbd, 0xbe, 0x5c, 0xe7, 0x98, 0x34, 0x58, 0xf1, 0x4c,
+ 0x2c, 0x48, 0xb0, 0x02, 0x90, 0xea, 0xcf, 0x82, 0x29, 0x57, 0xf7, 0x78,
+ 0xb8, 0x3a, 0xdf, 0xbe, 0x55, 0x2b, 0x1f, 0x50, 0x47, 0x8a, 0xe9, 0xdd,
+ 0x84, 0xc1, 0x59, 0x05, 0x5c, 0x7a, 0xce, 0x71, 0xab, 0x2a, 0x7e, 0x7e,
+ 0x3a, 0x7c, 0xf2, 0x29, 0x17, 0x0b, 0x74, 0xe8, 0x77, 0x56, 0xd1, 0xdc,
+ 0x33, 0x4d, 0x6c, 0x65, 0x40, 0x5f, 0x6d, 0xaa, 0x42, 0x99, 0x4f, 0x5e,
+ 0x8f, 0x89, 0x62, 0x76, 0xa0, 0x86, 0x44, 0x47, 0xd5, 0x74, 0x0d, 0xf0,
+ 0x89, 0x7c, 0x2f, 0xbf, 0x57, 0x9f, 0x3e, 0x68, 0xe9, 0x35, 0x5f, 0x48,
+ 0x83, 0xb7, 0xc4, 0xe8, 0xf6, 0x92, 0x7f, 0x2f, 0xb2, 0x1e, 0xca, 0x7b,
+ 0xee, 0x6d, 0x6d, 0xed, 0x3c, 0xdf, 0x25, 0x85, 0xe3, 0xb3, 0xe1, 0xf6,
+ 0x70, 0x67, 0x2b, 0x4a, 0x6e, 0xd8, 0x3f, 0x7b, 0x7b, 0xf4, 0xf6, 0xab,
+ 0x3d, 0x57, 0x47, 0x45, 0x81, 0x61, 0x2d, 0xc8, 0x2a, 0xb4, 0xa5, 0xfa,
+ 0x02, 0x4a, 0xfc, 0x48, 0xde, 0x85, 0xe9, 0xe9, 0x60, 0xb9, 0x06, 0xc2,
+ 0xb2, 0xc4, 0xa2, 0x51, 0x66, 0x62, 0xb3, 0x11, 0x91, 0xcd, 0xc1, 0xec,
+ 0xf7, 0xa5, 0xbe, 0x91, 0x15, 0x20, 0xe3, 0x7a, 0x3a, 0x9d, 0x58, 0x0f,
+ 0x8c, 0xeb, 0x13, 0x00, 0xfb, 0x0c, 0x3d, 0x82, 0xd0, 0x14, 0x55, 0x88,
+ 0x8a, 0x90, 0xbe, 0x02, 0x70, 0xdd, 0xd8, 0xd0, 0x0c, 0x3b, 0xc3, 0x75,
+ 0xa1, 0x01, 0xe3, 0x72, 0x93, 0x39, 0x14, 0x53, 0xfe, 0x1c, 0x89, 0x96,
+ 0x7c, 0x13, 0xe7, 0xb8, 0x4a, 0xfd, 0x9a, 0xac, 0x90, 0x1f, 0x3d, 0xf8,
+ 0x10, 0xdd, 0xef, 0x62, 0xea, 0x86, 0x00, 0x63, 0x9f, 0x7a, 0x58, 0x7f,
+ 0xb7, 0x06, 0x8f, 0x00, 0x49, 0x21, 0x82, 0x88, 0xd7, 0xb8, 0x23, 0xb2,
+ 0x00, 0x49, 0xdb, 0xfe, 0x20, 0x6f, 0x89, 0x3a, 0xd8, 0xe5, 0x8e, 0xe3,
+ 0x57, 0xec, 0x1a, 0x0d, 0x14, 0x43, 0x9e, 0xe2, 0x62, 0x39, 0x9a, 0x4d,
+ 0x9e, 0x25, 0x2f, 0xe8, 0x9f, 0x38, 0x45, 0xe7, 0xc0, 0xbc, 0xb7, 0x6c,
+ 0x60, 0x66, 0x36, 0xa6, 0x80, 0x0c, 0x22, 0xee, 0xf3, 0xaf, 0x4f, 0x76,
+ 0xa9, 0xe1, 0x0f, 0xa9, 0x55, 0xc3, 0x4c, 0x26, 0xb4, 0x7a, 0x75, 0x77,
+ 0x7e, 0xac, 0xe9, 0x45, 0x41, 0xb5, 0x12, 0x5e, 0xf0, 0x9d, 0xdd, 0xcf,
+ 0x92, 0x51, 0x5e, 0x27, 0x6f, 0x5e, 0x3d, 0x23, 0xcd, 0x2f, 0x1b, 0xdf,
+ 0x54, 0xcb, 0x99, 0x31, 0x09, 0xad, 0x9c, 0xc8, 0xe3, 0x5c, 0x6f, 0xdf,
+ 0xd5, 0x3e, 0x1f, 0xa6, 0xdf, 0xb0, 0xd5, 0x5e, 0x9a, 0x4d, 0x39, 0x28,
+ 0x2a, 0xea, 0x98, 0x19, 0xb7, 0xa4, 0x36, 0xed, 0x0e, 0x6b, 0x09, 0xad,
+ 0x01, 0x75, 0x5e, 0x49, 0x4e, 0x4c, 0xcb, 0x3a, 0xfb, 0x69, 0xd3, 0xf2,
+ 0x24, 0xa9, 0x54, 0x06, 0x4c, 0x3e, 0x20, 0xf9, 0xfb, 0x2a, 0x0a, 0x58,
+ 0x36, 0x7d, 0xfa, 0x08, 0xcf, 0xb6, 0x82, 0x3c, 0x8f, 0xf1, 0x46, 0x80,
+ 0xfe, 0x24, 0x92, 0x21, 0xb3, 0xc8, 0x7c, 0xbc, 0x44, 0x8d, 0x90, 0x58,
+ 0x86, 0xb4, 0x3a, 0x8e, 0x86, 0xb5, 0x56, 0x2e, 0xa5, 0x38, 0xf7, 0xfe,
+ 0x82, 0x23, 0x14, 0x93, 0x9d, 0xe1, 0x87, 0xbe, 0x86, 0xe1, 0x85, 0x45,
+ 0x60, 0x59, 0x58, 0x2b, 0xa2, 0xfb, 0x1a, 0xde, 0x85, 0xd6, 0x68, 0xb8,
+ 0x6d, 0x89, 0x0d, 0x9d, 0xb2, 0x97, 0xad, 0x94, 0x63, 0xb1, 0x4b, 0xf7,
+ 0xf3, 0x55, 0x8a, 0x32, 0xe2, 0x01, 0xf5, 0xe4, 0x7d, 0xa0, 0x64, 0x42,
+ 0x0c, 0x5c, 0x35, 0x71, 0x15, 0x12, 0x65, 0xe6, 0xfc, 0xa1, 0x31, 0x43,
+ 0x15, 0x1b, 0x25, 0xac, 0x59, 0xb4, 0x87, 0xe0, 0xeb, 0x48, 0x14, 0x40,
+ 0x33, 0x8e, 0xb1, 0x83, 0x4b, 0xc8, 0x12, 0x0c, 0x58, 0x8e, 0xeb, 0xb3,
+ 0x22, 0x90, 0x79, 0xb9, 0x2d, 0x88, 0xe6, 0x46, 0xa3, 0x71, 0x8e, 0x25,
+ 0x32, 0x7f, 0x2d, 0x22, 0x7b, 0x38, 0x0c, 0x66, 0x75, 0x64, 0x12, 0x71,
+ 0xd7, 0x94, 0xb8, 0xba, 0xe5, 0xd6, 0xeb, 0xa3, 0xe3, 0xc3, 0xcd, 0xe4,
+ 0x75, 0x66, 0x69, 0x53, 0xe1, 0xb4, 0xf8, 0x0e, 0xfa, 0x9d, 0x7c, 0x62,
+ 0x5b, 0xa4, 0x9a, 0x7c, 0x57, 0x8c, 0x85, 0xda, 0x1c, 0xa1, 0x87, 0xc8,
+ 0xae, 0x81, 0xc1, 0x4a, 0x82, 0x74, 0x81, 0xa0, 0x50, 0xab, 0x70, 0x0a,
+ 0xdb, 0x61, 0x50, 0xdf, 0xaa, 0xa3, 0xbe, 0x76, 0x10, 0xc6, 0x3e, 0x0c,
+ 0x8a, 0x3c, 0x15, 0x61, 0xd4, 0x05, 0x8f, 0x5d, 0x83, 0x1f, 0xc5, 0xcd,
+ 0x9a, 0x57, 0xc4, 0x3a, 0xee, 0xbb, 0xce, 0x02, 0x9c, 0xa4, 0x55, 0xfe,
+ 0x77, 0x89, 0x14, 0x47, 0x80, 0xce, 0xac, 0x98, 0xf8, 0xf4, 0x16, 0xa9,
+ 0x64, 0x3b, 0x9f, 0x36, 0x50, 0xf4, 0x03, 0x2c, 0xd7, 0x2e, 0xe4, 0x8f,
+ 0x53, 0x49, 0xae, 0xe0, 0x01, 0x85, 0x61, 0x1f, 0x22, 0xea, 0x79, 0x45,
+ 0xd8, 0xb5, 0x32, 0x74, 0x91, 0x83, 0x5c, 0xe4, 0xba, 0x83, 0x2e, 0x1c,
+ 0x44, 0xab, 0x90, 0x41, 0xe8, 0x46, 0x2a, 0x84, 0xb3, 0x6b, 0x0c, 0xe7,
+ 0xfe, 0xdc, 0x02, 0xbc, 0xa4, 0x9e, 0x17, 0x32, 0xbb, 0xa3, 0x5c, 0xb7,
+ 0x8e, 0x10, 0x3c, 0xbd, 0x50, 0x83, 0x99, 0x91, 0x3a, 0xb5, 0xbd, 0xb7,
+ 0x63, 0x97, 0x29, 0x07, 0xa5, 0xce, 0xb3, 0x1a, 0xb1, 0x67, 0x1c, 0x1a,
+ 0xb7, 0xf5, 0xdb, 0x05, 0x41, 0xfd, 0x95, 0x49, 0xf3, 0xaf, 0xcb, 0xf9,
+ 0x0d, 0xd1, 0x56, 0xc5, 0x14, 0xac, 0xb5, 0xc1, 0xaa, 0xee, 0xd3, 0xf7,
+ 0x9d, 0xf3, 0x7e, 0xb5, 0x8b, 0xd3, 0x8d, 0xc3, 0x52, 0x67, 0x69, 0x50,
+ 0x46, 0xa2, 0xff, 0x40, 0x12, 0x76, 0x43, 0xb2, 0xe4, 0x24, 0x09, 0xa2,
+ 0x9d, 0x31, 0xc7, 0xd7, 0xb0, 0x2d, 0xa3, 0xa7, 0x23, 0xb2, 0xa6, 0x7b,
+ 0xab, 0xab, 0x7d, 0x8e, 0xd2, 0x4a, 0x93, 0xeb, 0x61, 0xa5, 0x73, 0x0a,
+ 0x99, 0x7a, 0xb5, 0x52, 0x29, 0x4a, 0xc0, 0x32, 0x60, 0x62, 0x8d, 0x4a,
+ 0xf9, 0x01, 0x16, 0xb5, 0x78, 0x3d, 0x5a, 0xb7, 0xa5, 0xc0, 0x1e, 0x24,
+ 0x56, 0xc4, 0xb4, 0x72, 0x35, 0x02, 0xdc, 0x00, 0x93, 0xd6, 0xe0, 0x44,
+ 0xbe, 0x60, 0xc1, 0x71, 0x3d, 0x3a, 0x97, 0xe3, 0x69, 0x21, 0x75, 0xbb,
+ 0xef, 0x42, 0x0b, 0xea, 0xbf, 0x8b, 0x2c, 0xc8, 0x77, 0x91, 0x9e, 0xf4,
+ 0x41, 0x47, 0xb0, 0x5d, 0x58, 0x1b, 0xc9, 0x32, 0xd7, 0x91, 0x51, 0x05,
+ 0x21, 0xf3, 0x24, 0x68, 0x43, 0x62, 0xa8, 0x5d, 0x72, 0x7b, 0x77, 0x41,
+ 0x4e, 0x65, 0x70, 0x81, 0x7d, 0xc8, 0x71, 0xeb, 0x57, 0x74, 0x6c, 0x8b,
+ 0x2a, 0x97, 0x7d, 0xf1, 0x91, 0x90, 0x81, 0x77, 0x21, 0x0e, 0x76, 0x32,
+ 0x40, 0x17, 0x87, 0x91, 0xe7, 0xc2, 0xbf, 0xcc, 0x2e, 0xd2, 0x05, 0x98,
+ 0x00, 0xcb, 0xe7, 0xbc, 0x08, 0x71, 0xb2, 0xe9, 0xaa, 0x67, 0x4b, 0xd3,
+ 0x1f, 0x88, 0x0a, 0x49, 0xb8, 0x9b, 0x73, 0x55, 0xcd, 0x8d, 0xfb, 0xac,
+ 0xde, 0xf4, 0x75, 0x20, 0x2c, 0xbc, 0x70, 0x55, 0xc1, 0xc8, 0x08, 0xbe,
+ 0x82, 0x2d, 0x00, 0xfa, 0x92, 0x80, 0x4d, 0xf3, 0x75, 0x5d, 0x02, 0xe1,
+ 0x85, 0xfd, 0x54, 0x5a, 0xc8, 0x63, 0x55, 0x73, 0xe1, 0xa5, 0x74, 0x23,
+ 0x97, 0x52, 0xd5, 0x15, 0x75, 0xa7, 0x19, 0xc7, 0x41, 0xbf, 0x41, 0x28,
+ 0xb2, 0x2a, 0xdd, 0xe6, 0xeb, 0xb4, 0x3c, 0xb0, 0x24, 0xe9, 0x59, 0x6b,
+ 0xbd, 0xb6, 0xec, 0xdf, 0xc8, 0xf6, 0x95, 0xb8, 0xd1, 0x00, 0x88, 0x7c,
+ 0x9f, 0x8e, 0x45, 0xf4, 0x08, 0x7b, 0x25, 0x64, 0x25, 0xa3, 0xe9, 0x88,
+ 0xe5, 0x6e, 0x46, 0xc4, 0x65, 0xfe, 0x8b, 0x66, 0x9e, 0x66, 0x13, 0x8f,
+ 0x40, 0x81, 0x30, 0x64, 0xc7, 0x53, 0x4e, 0x5f, 0x89, 0x93, 0x3c, 0x1b,
+ 0xb0, 0xaa, 0x48, 0x05, 0xd2, 0x14, 0x84, 0xe9, 0xb4, 0x31, 0xaa, 0xa0,
+ 0x30, 0xf2, 0xca, 0xc9, 0x72, 0x7c, 0x9c, 0x8b, 0x05, 0x68, 0x2c, 0x72,
+ 0x1c, 0x0b, 0x10, 0xe8, 0x58, 0xce, 0x84, 0x0c, 0x4b, 0x19, 0x10, 0x76,
+ 0x04, 0x00, 0x77, 0x89, 0x84, 0x13, 0x75, 0xb1, 0x24, 0x2e, 0x08, 0x57,
+ 0xf2, 0xb2, 0x10, 0x7b, 0xbb, 0xd7, 0xb6, 0xa5, 0x08, 0xbf, 0x05, 0x3c,
+ 0xc6, 0x75, 0xfa, 0xe1, 0xc3, 0xb0, 0xca, 0xb6, 0xe8, 0xbe, 0xab, 0xb6,
+ 0xaa, 0x6a, 0x0a, 0x28, 0x0e, 0x84, 0xb7, 0x7b, 0x4a, 0xf8, 0x46, 0x8a,
+ 0x27, 0xce, 0x2f, 0xf3, 0x2b, 0x8e, 0x12, 0xc5, 0xcf, 0x2e, 0xe0, 0x21,
+ 0x87, 0x38, 0x24, 0x37, 0x70, 0xf0, 0xa4, 0xe7, 0x97, 0xc0, 0xfd, 0xd4,
+ 0x60, 0x39, 0x61, 0x9b, 0x8a, 0x97, 0x10, 0x67, 0x49, 0xb9, 0x97, 0x91,
+ 0xf8, 0xa8, 0xf9, 0x1a, 0xd3, 0xcc, 0x27, 0x15, 0xd9, 0xad, 0x8f, 0xd5,
+ 0xf0, 0x8d, 0x9a, 0xa0, 0xdf, 0xd6, 0x78, 0xca, 0xbc, 0xe6, 0x84, 0x32,
+ 0x7d, 0x59, 0x2c, 0x0e, 0x0d, 0x7b, 0x92, 0x30, 0x4c, 0x51, 0x83, 0x39,
+ 0x85, 0xc3, 0xde, 0xe8, 0x84, 0x7b, 0x24, 0x06, 0xc0, 0x45, 0x79, 0xc2,
+ 0x31, 0x44, 0xfb, 0x76, 0xb2, 0x08, 0xe8, 0xf9, 0x3a, 0xcb, 0x4b, 0xef,
+ 0xc2, 0xa9, 0x9c, 0x85, 0xc3, 0x73, 0xa5, 0xb0, 0x16, 0xef, 0xaa, 0x05,
+ 0xd1, 0x88, 0x2b, 0x29, 0xc9, 0x1b, 0x00, 0xf8, 0x32, 0x95, 0xd2, 0xc4,
+ 0x48, 0xae, 0x24, 0xf9, 0x95, 0x65, 0x12, 0xb1, 0x90, 0xa8, 0x1b, 0x14,
+ 0x05, 0x84, 0xaa, 0xce, 0x14, 0xa2, 0x63, 0x46, 0x35, 0xd1, 0x43, 0x2c,
+ 0xb8, 0x56, 0x63, 0xc8, 0x14, 0x31, 0xb8, 0xaf, 0xe7, 0x4a, 0xb2, 0xb3,
+ 0x5d, 0x4c, 0xc4, 0xdb, 0xb7, 0xc4, 0x22, 0x27, 0xd0, 0xa9, 0x12, 0x85,
+ 0x4e, 0xa2, 0x65, 0x75, 0xad, 0x51, 0xe1, 0xb4, 0xce, 0x55, 0xd1, 0x57,
+ 0xd9, 0x6d, 0xca, 0xc8, 0x33, 0x6d, 0x89, 0x44, 0x86, 0xec, 0xb1, 0xf3,
+ 0xaa, 0x26, 0x84, 0x6b, 0xe5, 0xcd, 0xde, 0xd5, 0x50, 0xa3, 0x93, 0xb2,
+ 0x30, 0x38, 0xa9, 0x3d, 0xd9, 0xb6, 0x6f, 0x40, 0xec, 0x93, 0xec, 0x99,
+ 0xbb, 0x2b, 0x12, 0x1d, 0x9a, 0xe0, 0x0c, 0x70, 0xc1, 0x4f, 0xe9, 0x8a,
+ 0xb8, 0xf5, 0x47, 0x8e, 0xce, 0xe5, 0x45, 0x41, 0x14, 0x57, 0xb0, 0x4f,
+ 0x9e, 0x67, 0x5d, 0xf9, 0x3d, 0xef, 0xb6, 0x8c, 0x67, 0x4d, 0xbf, 0x1e,
+ 0x07, 0xe0, 0xa8, 0x0b, 0x28, 0xdc, 0xcf, 0xe6, 0x73, 0x4a, 0x3b, 0x11,
+ 0xde, 0x9a, 0xde, 0xb9, 0x0e, 0x1f, 0x53, 0x32, 0x03, 0x18, 0xdd, 0x57,
+ 0x3f, 0xd0, 0x9d, 0x48, 0x2c, 0x65, 0xa0, 0x51, 0x20, 0xaf, 0xdd, 0x9c,
+ 0xa0, 0x17, 0xfa, 0xbb, 0x09, 0x3c, 0xd7, 0x80, 0x66, 0xf6, 0x92, 0x9f,
+ 0x7e, 0xea, 0x27, 0x0c, 0x9b, 0xf8, 0x13, 0x69, 0x07, 0x3f, 0xb1, 0x35,
+ 0xee, 0xa7, 0x52, 0x03, 0x44, 0x7e, 0xba, 0xa5, 0x2e, 0xf7, 0x57, 0xe5,
+ 0x0e, 0x24, 0x41, 0xf5, 0x36, 0xa9, 0x5f, 0x27, 0xd6, 0x03, 0x2d, 0xc7,
+ 0xc9, 0xca, 0x9b, 0x80, 0x6b, 0x38, 0x94, 0xcd, 0xae, 0x72, 0x13, 0xb4,
+ 0x31, 0xcb, 0xd9, 0x5c, 0x32, 0x5c, 0x94, 0xd3, 0x80, 0x0f, 0x80, 0x59,
+ 0xac, 0xff, 0x7e, 0xdd, 0xef, 0x4d, 0x50, 0xde, 0x53, 0x75, 0x61, 0x7e,
+ 0x30, 0xb2, 0x87, 0x08, 0x23, 0xa8, 0x11, 0x79, 0x2c, 0x00, 0x8e, 0x38,
+ 0xdc, 0xd0, 0x01, 0x4e, 0xd8, 0x20, 0x76, 0x87, 0x42, 0xbc, 0x08, 0xeb,
+ 0x95, 0x0d, 0x66, 0x5b, 0xde, 0xe2, 0xfa, 0x1e, 0x42, 0x58, 0x24, 0x00,
+ 0xcf, 0x9d, 0x41, 0x3f, 0xe0, 0x83, 0x31, 0x67, 0xf7, 0xb8, 0xab, 0x5e,
+ 0x92, 0x60, 0x9f, 0x69, 0xc8, 0x73, 0x69, 0x2c, 0xeb, 0x83, 0xf5, 0xc0,
+ 0x66, 0x6d, 0xc0, 0x52, 0x9d, 0x95, 0x9f, 0x3d, 0x12, 0xa2, 0x54, 0x7e,
+ 0xee, 0xcc, 0x30, 0x31, 0x27, 0xab, 0xe4, 0x20, 0x4a, 0x09, 0x11, 0x8f,
+ 0x02, 0x9b, 0xc2, 0xb7, 0x13, 0x0f, 0xbf, 0xdf, 0x61, 0x49, 0xb7, 0xea,
+ 0x14, 0xf6, 0x6e, 0x5e, 0x07, 0x57, 0xed, 0x80, 0xfd, 0x69, 0xbe, 0xd4,
+ 0x07, 0x88, 0x83, 0x4d, 0x93, 0xb8, 0x53, 0x2b, 0xce, 0xee, 0xbe, 0xef,
+ 0xe0, 0xd2, 0x3e, 0x8d, 0x93, 0x87, 0x81, 0x62, 0x70, 0x0c, 0x47, 0x7f,
+ 0x37, 0x17, 0x2e, 0x9b, 0x9c, 0x17, 0x7d, 0x29, 0xfb, 0x65, 0xda, 0x47,
+ 0x90, 0xbd, 0xd5, 0xe1, 0x75, 0x8d, 0x14, 0x11, 0x1e, 0xd3, 0xcb, 0xa4,
+ 0xb7, 0xf2, 0x1a, 0xec, 0x75, 0xe2, 0x94, 0x98, 0xfc, 0xcf, 0xb9, 0xb5,
+ 0x37, 0x0a, 0x0e, 0xac, 0xf2, 0xf1, 0x86, 0x5d, 0xe7, 0x7f, 0xb3, 0x2b,
+ 0x7c, 0x53, 0xed, 0x2f, 0x62, 0x7a, 0x5c, 0x01, 0x2a, 0x6b, 0x4b, 0xab,
+ 0xac, 0x13, 0xab, 0x03, 0x8d, 0x35, 0x87, 0x23, 0xe6, 0x92, 0xf3, 0xe9,
+ 0x9b, 0x91, 0x40, 0xab, 0x19, 0x2f, 0x9b, 0xed, 0xb8, 0x47, 0xb5, 0x76,
+ 0x5a, 0x66, 0x8f, 0x33, 0x92, 0xc1, 0xac, 0xa5, 0x59, 0x38, 0x2c, 0xb5,
+ 0x31, 0xb0, 0x65, 0xb4, 0x30, 0x3b, 0x9b, 0x2a, 0xb5, 0x95, 0xb9, 0xe8,
+ 0xcd, 0x97, 0xb9, 0x5a, 0xf2, 0x7b, 0xd7, 0x85, 0xa0, 0x6d, 0xf5, 0xf6,
+ 0x92, 0xa3, 0xda, 0x1c, 0x74, 0x3a, 0x47, 0x17, 0x62, 0xd2, 0x8e, 0x54,
+ 0x63, 0x38, 0xb3, 0xaf, 0x4f, 0xde, 0x1c, 0xba, 0xb8, 0x62, 0xd1, 0xf2,
+ 0xf9, 0x93, 0x4e, 0xc4, 0xc5, 0x21, 0x82, 0x42, 0x2c, 0x33, 0xbb, 0x1f,
+ 0x57, 0x7a, 0xc3, 0xea, 0x90, 0x32, 0xbf, 0xb8, 0x5b, 0xe6, 0x93, 0x0d,
+ 0x64, 0xcf, 0xbf, 0x9b, 0xe7, 0x1f, 0x06, 0x62, 0xc6, 0x00, 0x1a, 0x69,
+ 0x65, 0xe9, 0xe3, 0x96, 0x79, 0x2e, 0xaa, 0x7e, 0x31, 0xeb, 0x80, 0x4c,
+ 0xb2, 0xba, 0x7f, 0x21, 0x64, 0x28, 0x72, 0x61, 0xf2, 0xb9, 0xb8, 0xa4,
+ 0xa4, 0xc9, 0x4d, 0x66, 0x00, 0xc4, 0x42, 0x01, 0x77, 0x86, 0x7d, 0xef,
+ 0x88, 0x91, 0x0e, 0xf6, 0x9b, 0x9b, 0xdb, 0x3f, 0x3d, 0x7d, 0xb5, 0x7f,
+ 0xb1, 0xef, 0xe6, 0x86, 0xab, 0x18, 0x4c, 0x05, 0xba, 0x29, 0x0b, 0x6e,
+ 0x8a, 0xf0, 0xb2, 0xfe, 0x07, 0x4e, 0xa0, 0x69, 0xdf, 0xf5, 0xa7, 0x67,
+ 0x27, 0x6c, 0x61, 0xf8, 0xc3, 0x4f, 0xfb, 0x01, 0x64, 0x03, 0x17, 0x1d,
+ 0x8e, 0xa3, 0x96, 0x77, 0x37, 0x13, 0x1e, 0x9f, 0xe1, 0xb1, 0xf5, 0x5d,
+ 0xa4, 0x85, 0x64, 0xaa, 0x27, 0xef, 0x79, 0x4f, 0xcb, 0xb1, 0x13, 0x9e,
+ 0xc4, 0x78, 0x27, 0xdb, 0xd9, 0x8f, 0x23, 0x2e, 0x83, 0x89, 0x14, 0x9e,
+ 0x89, 0x19, 0xda, 0x9a, 0xad, 0xd5, 0x94, 0x24, 0x7e, 0x12, 0x5a, 0x6b,
+ 0xb0, 0x0e, 0x36, 0xb6, 0x31, 0x7d, 0x4d, 0x78, 0xa1, 0xda, 0x98, 0xa2,
+ 0x6e, 0x7f, 0x6c, 0x83, 0x04, 0x19, 0x00, 0x0c, 0x57, 0x58, 0x80, 0x44,
+ 0xd4, 0x16, 0x52, 0x9b, 0x71, 0x68, 0xa3, 0x55, 0x75, 0x2a, 0x3a, 0x3b,
+ 0xe2, 0x11, 0x22, 0x3a, 0xb7, 0x39, 0x0c, 0x63, 0xd3, 0xfd, 0x60, 0x30,
+ 0x30, 0xc3, 0xbe, 0x4c, 0x9b, 0x3e, 0x88, 0x1e, 0xaa, 0xad, 0x02, 0x9d,
+ 0xf1, 0xf9, 0x6e, 0x36, 0x11, 0xf2, 0x87, 0xb6, 0x2c, 0xaf, 0x60, 0x0e,
+ 0xfa, 0x14, 0x6a, 0x73, 0x23, 0x15, 0x34, 0x36, 0x37, 0x9a, 0x43, 0x84,
+ 0x1e, 0xad, 0x96, 0x6c, 0xb0, 0xe1, 0xbf, 0xb6, 0x76, 0x86, 0xdb, 0xbd,
+ 0x78, 0xf4, 0x08, 0xc7, 0x84, 0x51, 0xcc, 0x70, 0xd6, 0x05, 0x3a, 0xbf,
0x78, 0x7c, 0x80, 0xc2, 0xc0, 0x48, 0x22, 0x5d, 0x50, 0x07, 0x9d, 0x63,
- 0xe9, 0x9f, 0x46, 0xc6, 0x4b, 0x71, 0xcc, 0x78, 0x8e, 0x38, 0x2f, 0x90,
- 0xb9, 0x9c, 0xb2, 0x36, 0x04, 0x43, 0xcc, 0x7a, 0xf7, 0x02, 0xcf, 0x27,
- 0xe2, 0x5b, 0x6e, 0xad, 0xf3, 0x83, 0x75, 0x1b, 0x56, 0x27, 0xf5, 0x39,
- 0x1a, 0x70, 0x1f, 0xaf, 0xe4, 0x76, 0x0d, 0xcb, 0xfb, 0x4d, 0x46, 0x52,
- 0xe0, 0x14, 0x19, 0x6c, 0x6c, 0x47, 0x7b, 0x21, 0x65, 0xd5, 0xe3, 0x02,
- 0x29, 0x61, 0x38, 0x4f, 0xa6, 0x01, 0xcc, 0x78, 0x23, 0x0d, 0xb5, 0xb8,
- 0x10, 0x41, 0x8f, 0x8d, 0xe6, 0xc0, 0xa9, 0xcc, 0x27, 0x51, 0xa2, 0xbc,
- 0xc6, 0xea, 0x3a, 0xff, 0xbc, 0x1b, 0x05, 0x6b, 0xdf, 0x23, 0x95, 0x73,
- 0x5d, 0x17, 0x26, 0x1d, 0x32, 0xfc, 0x14, 0xa9, 0xe6, 0xcb, 0x48, 0x5e,
- 0x68, 0xbf, 0x3e, 0x60, 0x16, 0xdb, 0x80, 0x41, 0x11, 0x93, 0x0e, 0x3f,
- 0x51, 0x38, 0x8b, 0x1f, 0xaa, 0x17, 0xe3, 0x50, 0x45, 0x46, 0xcc, 0xcb,
- 0x2c, 0xc4, 0x96, 0x39, 0x3c, 0x7b, 0xff, 0xcd, 0xd1, 0xd1, 0xd9, 0xf1,
- 0xab, 0x93, 0x23, 0x85, 0x93, 0x73, 0x1f, 0xbd, 0xbd, 0xf8, 0xf6, 0xc4,
- 0xe0, 0x5c, 0x6d, 0x9b, 0x22, 0x33, 0x18, 0x47, 0x7d, 0x71, 0x73, 0x27,
- 0xf9, 0x7c, 0xf9, 0xa1, 0x07, 0xc0, 0x1e, 0xa2, 0xe5, 0x83, 0xe3, 0xef,
- 0x7b, 0xc9, 0xd7, 0x67, 0xfd, 0x77, 0xdf, 0x47, 0x40, 0x1c, 0x41, 0x9c,
- 0x35, 0x31, 0xa1, 0xb6, 0x60, 0xe9, 0xc2, 0xae, 0x51, 0x74, 0xcb, 0xcf,
- 0xdd, 0xf4, 0xdf, 0x8e, 0x3a, 0xd4, 0xbf, 0x2d, 0x88, 0x14, 0x47, 0xca,
- 0xcc, 0x03, 0x84, 0xff, 0x40, 0x8a, 0xd7, 0xbb, 0x17, 0xe4, 0xf9, 0xc9,
- 0x4e, 0xa2, 0xd4, 0xd5, 0x24, 0xc0, 0xfb, 0xe4, 0xc5, 0x0a, 0x00, 0xb6,
- 0xed, 0xe1, 0xf0, 0xeb, 0xad, 0xe4, 0x2c, 0x40, 0xea, 0x77, 0xb6, 0x96,
- 0x81, 0xc5, 0x58, 0xb2, 0x99, 0x86, 0xad, 0x24, 0xde, 0x6a, 0x53, 0x32,
- 0xb4, 0x72, 0xec, 0x27, 0x37, 0xa0, 0x6d, 0xbb, 0xc4, 0x4d, 0x01, 0x14,
- 0xd1, 0x12, 0x89, 0x5a, 0xd4, 0x1d, 0x6e, 0x80, 0x26, 0xea, 0x2c, 0x18,
- 0x76, 0x5b, 0x32, 0xd2, 0x1b, 0xbe, 0xa1, 0x01, 0xe0, 0x7c, 0x4e, 0xf2,
- 0x09, 0xc2, 0x59, 0xe1, 0x88, 0x14, 0x41, 0x81, 0xd3, 0x6a, 0xfe, 0x6b,
- 0x7b, 0x50, 0x55, 0xd7, 0xdb, 0xf9, 0xe4, 0x7d, 0x59, 0xa5, 0x1b, 0xed,
- 0xcb, 0x39, 0xf8, 0x7a, 0xc2, 0x5f, 0x27, 0x1b, 0x03, 0xf7, 0xa8, 0xfe,
- 0xce, 0x9f, 0xff, 0x96, 0xc8, 0x92, 0xb4, 0x34, 0x8f, 0x03, 0x01, 0x47,
- 0x5b, 0xc1, 0xcf, 0x0e, 0x5a, 0xa6, 0x0b, 0xb4, 0x82, 0x7d, 0x90, 0xdd,
- 0xa5, 0xad, 0x89, 0x76, 0x03, 0x58, 0x6d, 0x61, 0x09, 0x86, 0x9c, 0x0e,
- 0xed, 0xab, 0xa3, 0xf3, 0x9e, 0x80, 0x03, 0x87, 0xc0, 0xc0, 0x1e, 0x0a,
- 0x5b, 0x95, 0x9a, 0xb8, 0x24, 0x59, 0xb0, 0x57, 0xff, 0x3a, 0x4c, 0xe0,
- 0x9b, 0x72, 0x94, 0xbc, 0x98, 0xd2, 0x8b, 0xd3, 0x15, 0xb9, 0xbe, 0x52,
- 0xb1, 0xd5, 0x97, 0x9d, 0x6d, 0x01, 0xcc, 0xa8, 0xcc, 0x2a, 0x16, 0x1c,
- 0xb4, 0xb3, 0x52, 0x31, 0xad, 0x61, 0x14, 0xe3, 0x17, 0xa2, 0xbc, 0xc8,
- 0x0d, 0x84, 0x23, 0x33, 0x95, 0x30, 0x8a, 0x0e, 0xff, 0x04, 0xdf, 0xd7,
- 0x6a, 0xbd, 0x1b, 0xbd, 0x58, 0xf9, 0xde, 0xd0, 0x65, 0xdf, 0x18, 0x70,
- 0x1a, 0x80, 0x28, 0x02, 0x08, 0xc6, 0x40, 0x5a, 0x09, 0xc3, 0x91, 0x63,
- 0x2c, 0x56, 0x2b, 0x83, 0xcf, 0x82, 0x8f, 0x46, 0xaa, 0x22, 0xf4, 0x2a,
- 0xd7, 0x5c, 0x33, 0x29, 0x35, 0x5a, 0xb0, 0x8e, 0x8b, 0xc4, 0x55, 0x21,
- 0x4a, 0x5d, 0x61, 0x8b, 0x66, 0x39, 0x2a, 0xab, 0x2d, 0xfc, 0xd4, 0x11,
- 0xc1, 0x60, 0x25, 0x7a, 0x19, 0x8f, 0x13, 0xc9, 0x94, 0x2c, 0x8e, 0xb0,
- 0x3b, 0x9e, 0x43, 0x6a, 0xfb, 0xdf, 0xb2, 0x16, 0x68, 0x7e, 0x36, 0x81,
- 0xd6, 0xd6, 0x28, 0xad, 0xb2, 0xeb, 0x58, 0xbb, 0x4a, 0x46, 0x79, 0xfd,
- 0x1b, 0x92, 0xce, 0x14, 0x71, 0x03, 0x79, 0x55, 0xf7, 0xd9, 0x6d, 0xb5,
- 0x3a, 0xe1, 0x5e, 0x73, 0x48, 0xcc, 0x71, 0x16, 0x00, 0xef, 0x0b, 0x03,
- 0x93, 0xea, 0x86, 0x08, 0xb6, 0xe3, 0x35, 0x04, 0x5f, 0xec, 0x77, 0x55,
- 0x56, 0xa2, 0xf3, 0x96, 0xdd, 0x35, 0xbc, 0xbb, 0x01, 0x14, 0x92, 0x73,
- 0xe7, 0xe6, 0x6a, 0x30, 0x80, 0x10, 0xcf, 0x95, 0x00, 0x3a, 0x30, 0xaa,
- 0x66, 0xe9, 0xf8, 0x9a, 0xc4, 0xc7, 0x3e, 0x62, 0x76, 0x43, 0xac, 0x1c,
- 0x04, 0x08, 0xb7, 0x07, 0xca, 0x99, 0x95, 0xe3, 0xec, 0x81, 0x72, 0xbf,
- 0x41, 0xc2, 0x0c, 0x0f, 0xd1, 0x45, 0x1e, 0x0a, 0xb8, 0xb4, 0x4b, 0x99,
- 0x86, 0x9e, 0x5a, 0x94, 0x0e, 0xa3, 0xda, 0xb9, 0x15, 0x3b, 0x1c, 0x67,
- 0x8a, 0x40, 0x1d, 0xdc, 0x41, 0x0a, 0x7c, 0x94, 0x26, 0x6f, 0x4f, 0x86,
- 0x3e, 0x5d, 0x48, 0xd4, 0x77, 0x17, 0x91, 0x91, 0xac, 0x74, 0x7c, 0x84,
- 0x81, 0x72, 0x27, 0xc7, 0x1d, 0x95, 0xd3, 0xd9, 0x24, 0x40, 0x3c, 0x7e,
- 0x08, 0xb5, 0x00, 0xa9, 0x02, 0xe6, 0x72, 0x35, 0x64, 0x7f, 0xde, 0x03,
- 0xf1, 0x66, 0x8b, 0x3e, 0x90, 0x97, 0x61, 0xce, 0x58, 0xbb, 0x39, 0x1a,
- 0xe5, 0x5f, 0xc4, 0x92, 0xaa, 0xa1, 0x48, 0x16, 0xe1, 0x58, 0x2d, 0x47,
- 0xfd, 0x20, 0x89, 0x5b, 0x18, 0x02, 0x40, 0x86, 0xf2, 0x31, 0xeb, 0xf7,
- 0x37, 0x71, 0x0c, 0xc7, 0xe6, 0xd9, 0xe9, 0xd9, 0x13, 0x25, 0x27, 0xcd,
- 0xb8, 0x6f, 0xf8, 0x38, 0xc7, 0x09, 0x0b, 0x69, 0x8a, 0xe9, 0xc5, 0xcf,
- 0xba, 0x38, 0x61, 0xa1, 0xae, 0xae, 0x62, 0xab, 0x5a, 0x21, 0xea, 0x38,
- 0x5a, 0x4c, 0xf5, 0x54, 0x34, 0x63, 0x0b, 0x39, 0xff, 0xd7, 0x05, 0x9c,
- 0x76, 0xe0, 0xa6, 0x58, 0x8c, 0x81, 0x91, 0xa1, 0xe6, 0x31, 0x34, 0x88,
- 0xd0, 0x8e, 0x6d, 0x30, 0x6c, 0x0e, 0xb0, 0x8a, 0xf2, 0x77, 0x48, 0x6a,
- 0x27, 0x69, 0x53, 0x72, 0xf0, 0xab, 0x66, 0x12, 0xbe, 0x64, 0x94, 0xa0,
- 0x5a, 0x19, 0xbb, 0x92, 0x01, 0x26, 0xbb, 0x6a, 0x27, 0x0d, 0x46, 0x41,
- 0x03, 0x66, 0x34, 0xda, 0xe7, 0x7b, 0xf1, 0x9b, 0x49, 0x74, 0xa9, 0x83,
- 0x79, 0xe8, 0x3d, 0x52, 0x86, 0x27, 0x28, 0xa2, 0x2a, 0x49, 0x6b, 0xa4,
- 0x72, 0x93, 0x20, 0xe9, 0x56, 0x4e, 0x57, 0x4a, 0x3d, 0x51, 0x3a, 0x6f,
- 0x76, 0x43, 0xd1, 0x2f, 0x5d, 0xae, 0x7a, 0x6c, 0x17, 0xbb, 0xc2, 0x96,
- 0xf3, 0xfc, 0x6f, 0x1c, 0xf9, 0x27, 0xac, 0xfe, 0x32, 0x47, 0x2c, 0x93,
- 0x78, 0xaa, 0x10, 0x2b, 0x91, 0xd7, 0x1b, 0x95, 0x21, 0x0e, 0xf2, 0xa2,
- 0x74, 0x1c, 0xe5, 0x9b, 0x2c, 0x8c, 0x98, 0x6d, 0xca, 0x8d, 0x7b, 0xbb,
- 0x0d, 0x58, 0x85, 0x46, 0xa8, 0x53, 0x67, 0x44, 0x02, 0xaa, 0x59, 0x6d,
- 0x99, 0x51, 0x56, 0x17, 0x5d, 0xc2, 0x3e, 0x02, 0xf4, 0x4b, 0xed, 0x4b,
- 0xd2, 0x31, 0xae, 0x32, 0xa0, 0x97, 0xb5, 0xc7, 0x85, 0x4c, 0x12, 0x84,
- 0xe7, 0x1a, 0x66, 0x56, 0x9d, 0xb8, 0x32, 0x69, 0x9b, 0x8a, 0x41, 0xeb,
- 0x03, 0x1a, 0xdb, 0xa5, 0xca, 0x3a, 0x10, 0x47, 0xd2, 0xe4, 0xc9, 0xf7,
- 0xdf, 0x27, 0x0d, 0x10, 0xb7, 0xad, 0xc6, 0xc6, 0x05, 0x4e, 0x65, 0x87,
- 0x30, 0x3f, 0xe9, 0xe4, 0x09, 0x46, 0x00, 0x4a, 0x5c, 0xec, 0x1b, 0x86,
- 0xf2, 0x3e, 0x70, 0xf1, 0xe2, 0x75, 0x71, 0x95, 0x61, 0x1b, 0x84, 0x6c,
- 0xc2, 0xe8, 0x94, 0xf8, 0x32, 0xf6, 0x61, 0x1e, 0x3d, 0x17, 0xd3, 0x25,
- 0xde, 0x70, 0x04, 0xcd, 0xd8, 0x62, 0xf1, 0x5a, 0x55, 0xee, 0x3a, 0x21,
- 0x21, 0xe0, 0x6e, 0x3e, 0xe8, 0xaa, 0x2e, 0xd7, 0x12, 0x31, 0x5c, 0xa8,
- 0xb8, 0x06, 0x26, 0x49, 0x99, 0x3d, 0x60, 0x9b, 0xb2, 0x59, 0x70, 0x4c,
- 0x93, 0x14, 0x39, 0xa1, 0xd2, 0x70, 0xb5, 0x28, 0xae, 0x41, 0x7c, 0x10,
- 0x1c, 0xc1, 0x80, 0x09, 0xa6, 0x2e, 0x5c, 0x2c, 0xa9, 0xe1, 0xc6, 0x33,
- 0x27, 0x65, 0xb8, 0x57, 0x1a, 0xaf, 0xd6, 0x51, 0x0e, 0x06, 0x25, 0xe0,
- 0xc0, 0x76, 0xcd, 0x6c, 0x8a, 0x68, 0x06, 0xcd, 0xe9, 0x11, 0xe2, 0xff,
- 0x73, 0x5c, 0xd4, 0x5d, 0x49, 0x2f, 0xc6, 0x4b, 0x2d, 0xe6, 0xfd, 0xba,
- 0x5c, 0x62, 0x85, 0x58, 0x5d, 0xe2, 0x6c, 0xc0, 0xc2, 0x23, 0x38, 0xb1,
- 0x48, 0x69, 0x51, 0x1b, 0x28, 0x5f, 0x24, 0x11, 0xe9, 0x33, 0x80, 0xd5,
- 0xc4, 0x7e, 0x69, 0x1f, 0x08, 0xc8, 0x76, 0x3b, 0xc8, 0xf4, 0x4d, 0xbf,
- 0x67, 0xbf, 0x3f, 0x4b, 0x3f, 0xf4, 0xf1, 0x58, 0x15, 0x95, 0xd2, 0x68,
- 0x24, 0x5c, 0x08, 0x4c, 0x62, 0x21, 0x0a, 0x4a, 0xb0, 0x66, 0xa6, 0xd5,
- 0xba, 0x9c, 0x07, 0x8d, 0x54, 0x65, 0x12, 0xa2, 0x53, 0xf7, 0xd5, 0xd1,
- 0x45, 0xfb, 0x68, 0x21, 0xf3, 0x4b, 0x4d, 0x04, 0x48, 0x36, 0xa0, 0xbf,
- 0xcf, 0xde, 0x5d, 0x6c, 0x79, 0x33, 0xd0, 0xa4, 0x68, 0xd9, 0x2a, 0x5d,
- 0x00, 0x7c, 0x0c, 0x58, 0x29, 0xe1, 0xfd, 0xca, 0x61, 0x81, 0x48, 0xe9,
- 0xce, 0x04, 0x17, 0x7e, 0x7c, 0xb2, 0xb3, 0xdb, 0xa3, 0x7f, 0xf6, 0x60,
- 0x6d, 0x7b, 0xb2, 0xf3, 0xc4, 0xb9, 0x85, 0xec, 0xa9, 0xc8, 0x89, 0x30,
- 0x91, 0x17, 0xbd, 0x23, 0xe2, 0xc9, 0x87, 0x0f, 0xf8, 0xb8, 0xd7, 0xce,
- 0x59, 0xae, 0x32, 0x57, 0x63, 0x6d, 0x95, 0xc7, 0xc4, 0x06, 0xee, 0x57,
- 0x1c, 0x66, 0xb3, 0xe5, 0x5c, 0xc2, 0x7d, 0x00, 0xa0, 0xca, 0x19, 0x04,
- 0x83, 0xd5, 0x68, 0x5e, 0x75, 0x23, 0x4b, 0x98, 0xd7, 0x36, 0xc4, 0xf3,
- 0x22, 0x72, 0xe1, 0xf9, 0x5b, 0x3f, 0x9a, 0x8f, 0x10, 0x31, 0x46, 0x7e,
- 0x46, 0x33, 0x5e, 0x69, 0x15, 0x3e, 0xf8, 0x35, 0x72, 0x50, 0x68, 0x3a,
- 0x11, 0x62, 0x96, 0xca, 0x8a, 0x4c, 0xf3, 0x5f, 0x85, 0x93, 0xb7, 0xcf,
- 0x31, 0xb8, 0x74, 0x2a, 0xb0, 0xc2, 0xf6, 0xeb, 0x9e, 0xc4, 0xf7, 0xca,
- 0x1f, 0x4f, 0x42, 0xd5, 0xc2, 0xca, 0x71, 0x76, 0x96, 0xa2, 0x39, 0x90,
- 0x02, 0x91, 0xad, 0x28, 0x58, 0x3e, 0x83, 0xbc, 0x0b, 0x9c, 0x2c, 0xc4,
- 0x82, 0xb4, 0xa6, 0x9b, 0x7b, 0xf7, 0xaa, 0x28, 0x55, 0x1d, 0x25, 0x9f,
- 0x78, 0x87, 0x80, 0x29, 0x68, 0x55, 0x40, 0xfb, 0x32, 0xc7, 0xc3, 0x44,
- 0x9d, 0xe3, 0xb2, 0xcd, 0xea, 0xcf, 0xd5, 0xb0, 0x56, 0x71, 0x2c, 0xaf,
- 0x40, 0xc4, 0x91, 0x9a, 0x1c, 0x24, 0xdb, 0xdf, 0xa6, 0x53, 0x81, 0x70,
- 0x72, 0x71, 0xf8, 0xa5, 0x8d, 0x49, 0xe2, 0xb7, 0x7d, 0xec, 0x15, 0xbf,
- 0xf7, 0xbb, 0x47, 0x73, 0x5f, 0x1e, 0x13, 0xba, 0x7d, 0x04, 0x51, 0x17,
- 0xf8, 0x54, 0x43, 0x1c, 0x7f, 0x30, 0x9d, 0x17, 0xec, 0xa2, 0x0f, 0xeb,
- 0xc0, 0x0b, 0x12, 0x39, 0xb2, 0xc9, 0x2a, 0x67, 0x3d, 0x82, 0x35, 0xd3,
- 0x0f, 0xf9, 0x6c, 0x39, 0xf3, 0xa9, 0x98, 0x78, 0xcf, 0x55, 0x25, 0xf7,
- 0x65, 0xc1, 0xa1, 0x60, 0xf5, 0xbb, 0x68, 0x04, 0x18, 0x7e, 0x3e, 0x2f,
- 0x1c, 0xaa, 0x21, 0x80, 0xe6, 0x0c, 0xca, 0x44, 0x83, 0xf7, 0x74, 0x01,
- 0x54, 0x4e, 0xe2, 0x2e, 0x10, 0xba, 0x94, 0x46, 0x72, 0x30, 0x17, 0x6b,
- 0xa3, 0x6b, 0x23, 0x5f, 0x64, 0xb6, 0xed, 0x1b, 0x13, 0x11, 0x8f, 0xb1,
- 0x09, 0x6e, 0xa8, 0xa8, 0x08, 0x2f, 0x81, 0x3f, 0xf8, 0x82, 0xaf, 0x83,
- 0x28, 0x5e, 0x65, 0x44, 0x4d, 0xdc, 0xe5, 0x93, 0xfa, 0x1a, 0xd0, 0x9c,
- 0x16, 0x7a, 0x05, 0xbc, 0x18, 0x27, 0x6c, 0x74, 0xa4, 0x67, 0x75, 0x57,
- 0x38, 0x91, 0x2d, 0xc2, 0xa2, 0x26, 0x82, 0x82, 0xc3, 0x09, 0x02, 0xd8,
- 0x07, 0x04, 0x76, 0x6e, 0x8b, 0x8d, 0xc8, 0x01, 0x3e, 0x90, 0xcc, 0xb7,
- 0xbc, 0x64, 0xcc, 0xcd, 0x48, 0x7a, 0xb4, 0x8c, 0xaa, 0x81, 0x9d, 0x09,
- 0xa4, 0x6f, 0xde, 0x08, 0xec, 0xdd, 0x37, 0xaa, 0x8f, 0x0a, 0x34, 0x19,
- 0x8e, 0xbf, 0xe4, 0xf3, 0xb0, 0x1b, 0x21, 0xb9, 0xc9, 0xa7, 0x91, 0x4d,
- 0x02, 0xbd, 0xd3, 0xb5, 0xb5, 0x31, 0x93, 0x64, 0xc8, 0x37, 0x1b, 0x1a,
- 0xaa, 0xc2, 0xe8, 0x79, 0x99, 0x86, 0x9d, 0xf6, 0x14, 0x45, 0x73, 0xe3,
- 0x4a, 0xba, 0xf9, 0xca, 0x3f, 0xd4, 0x6a, 0xce, 0x47, 0xaa, 0x9a, 0x2d,
- 0xbd, 0xda, 0x4f, 0xf6, 0x76, 0x76, 0xbe, 0x21, 0x16, 0x3b, 0xc3, 0xa6,
- 0xec, 0x7e, 0xd5, 0xb9, 0x42, 0xb2, 0x40, 0xa0, 0x21, 0x05, 0xb0, 0x49,
- 0x6f, 0x61, 0xf1, 0xd6, 0x45, 0x93, 0x62, 0xf0, 0xc4, 0x00, 0x1a, 0x00,
- 0xd8, 0x9d, 0x1b, 0xe7, 0xd2, 0x93, 0xd9, 0x1e, 0xda, 0x46, 0xe3, 0x98,
- 0x21, 0x51, 0x85, 0x77, 0xfe, 0x9a, 0x7e, 0xcb, 0x02, 0xa2, 0x40, 0x3f,
- 0x1d, 0xe8, 0x04, 0x24, 0x77, 0x30, 0xce, 0xe1, 0xb2, 0xe4, 0x92, 0xd7,
- 0x88, 0x03, 0x05, 0x48, 0x18, 0x6c, 0xb4, 0x79, 0x2d, 0xde, 0xa5, 0x79,
- 0x21, 0xa8, 0x33, 0x2e, 0x8a, 0xdd, 0x4f, 0xa7, 0xc3, 0x6c, 0xc8, 0x14,
- 0x8c, 0x1b, 0xde, 0x42, 0xa5, 0xfb, 0x3f, 0x30, 0x7f, 0xc4, 0x00, 0xe4,
- 0x10, 0x3a, 0xd7, 0xa7, 0x80, 0xf9, 0x85, 0x41, 0xff, 0xed, 0xc9, 0x32,
- 0x5d, 0x6a, 0x29, 0x3a, 0xd6, 0x3a, 0x61, 0x54, 0xc5, 0x1c, 0x19, 0xd5,
- 0x79, 0xa1, 0xd0, 0xa7, 0x3c, 0x10, 0x69, 0x19, 0xf6, 0xdf, 0x29, 0x3f,
- 0x30, 0x65, 0x8d, 0xba, 0x88, 0x52, 0xa6, 0xa6, 0x0b, 0x18, 0x96, 0xdd,
- 0x65, 0x14, 0x0c, 0x8a, 0x73, 0xc1, 0xc7, 0xa8, 0xfa, 0xc2, 0x29, 0x45,
- 0xbf, 0xa1, 0x91, 0x09, 0x08, 0x88, 0x02, 0xb8, 0xf2, 0x82, 0x08, 0xf8,
- 0xf3, 0x1f, 0xb9, 0x08, 0xf4, 0xcf, 0x1d, 0xe5, 0xae, 0x53, 0xcd, 0xa9,
- 0xe3, 0xa3, 0x64, 0x99, 0x6b, 0xa5, 0x2f, 0xc6, 0x86, 0x76, 0x24, 0xf1,
- 0xdb, 0x8a, 0x4e, 0xfb, 0x32, 0x76, 0xdd, 0x21, 0xc1, 0x66, 0xd3, 0xdf,
- 0xac, 0x18, 0x5e, 0xa8, 0x01, 0xa9, 0x28, 0x48, 0x71, 0xd6, 0x10, 0xdf,
- 0x8b, 0x73, 0x61, 0x4f, 0x88, 0x2b, 0x6b, 0x53, 0xcd, 0x38, 0xe5, 0x5b,
- 0xc4, 0xc5, 0x5a, 0xa1, 0x09, 0x9b, 0xef, 0x68, 0x59, 0xdd, 0x33, 0x7a,
- 0x94, 0xf8, 0x30, 0x90, 0xe2, 0x60, 0xa0, 0xd2, 0xb4, 0x6c, 0x18, 0x7e,
- 0x1c, 0x9e, 0xc6, 0x00, 0x47, 0x12, 0x8b, 0x5c, 0x17, 0x74, 0xcb, 0xa7,
- 0x65, 0x49, 0xa2, 0x9a, 0x6e, 0xb5, 0xa6, 0x33, 0xd2, 0xd8, 0x59, 0xf5,
- 0x81, 0x39, 0xc8, 0x39, 0x27, 0xa8, 0xed, 0xe5, 0xa2, 0x23, 0x9e, 0x8c,
- 0xf3, 0x9b, 0x23, 0x50, 0xb9, 0x06, 0x78, 0x80, 0xa9, 0x1f, 0x26, 0x6e,
- 0x3e, 0xa4, 0x01, 0x9d, 0x30, 0x97, 0x6d, 0x2a, 0x4c, 0x9a, 0x3e, 0x29,
- 0xc2, 0x90, 0x14, 0x77, 0x71, 0xae, 0x8f, 0x15, 0xf9, 0xea, 0xc9, 0x9f,
- 0x3d, 0x4e, 0xa2, 0x14, 0xbf, 0xf3, 0xe9, 0x21, 0x9a, 0xdf, 0xcd, 0xf1,
- 0x14, 0xac, 0x29, 0x7a, 0x91, 0xbc, 0xe8, 0x44, 0x3d, 0xe7, 0x67, 0x0a,
- 0x51, 0x2a, 0xc5, 0x9a, 0x50, 0x97, 0xc5, 0x64, 0x39, 0x86, 0x85, 0x85,
- 0x23, 0xe7, 0xf2, 0xfa, 0x3e, 0x19, 0x09, 0x6c, 0x9b, 0x81, 0x08, 0x70,
- 0xd3, 0x4e, 0x1e, 0x6e, 0x35, 0x07, 0x5b, 0xa1, 0x96, 0xc1, 0xc2, 0x83,
- 0xf8, 0x43, 0x4c, 0xbf, 0x7c, 0xcf, 0xb0, 0x6b, 0xd2, 0x21, 0xfc, 0xb6,
- 0x41, 0xb5, 0xe7, 0x97, 0x2b, 0x60, 0xca, 0xc5, 0x09, 0xca, 0xea, 0xc0,
- 0x87, 0xda, 0x85, 0x7e, 0x70, 0x71, 0x49, 0x22, 0x5e, 0x48, 0xaa, 0x5f,
- 0x72, 0xb8, 0x6e, 0xab, 0xbd, 0x10, 0x7c, 0x7b, 0xd6, 0x53, 0x01, 0xfd,
- 0x41, 0x3f, 0xd6, 0x1b, 0xbb, 0xab, 0xc1, 0xb3, 0xe6, 0xe6, 0x90, 0x90,
- 0x55, 0x15, 0x6e, 0x64, 0xa0, 0x22, 0x34, 0xa5, 0x82, 0x85, 0x1c, 0x2f,
- 0xa3, 0x74, 0x04, 0x48, 0x30, 0x0a, 0x7f, 0x80, 0xab, 0xa6, 0x77, 0x33,
- 0x4b, 0xed, 0x8c, 0x18, 0xc5, 0x23, 0xb5, 0xfa, 0x56, 0x23, 0x14, 0x32,
- 0xf9, 0x6b, 0x31, 0x52, 0x05, 0x8f, 0xe5, 0xd2, 0xae, 0x54, 0xc3, 0x4b,
- 0x44, 0x8c, 0x13, 0x8f, 0x25, 0xfe, 0x2e, 0x91, 0x25, 0x3c, 0xa0, 0x79,
- 0x56, 0x33, 0xb7, 0x41, 0x3c, 0x39, 0x2c, 0x3d, 0xc9, 0x95, 0x40, 0x3f,
- 0x21, 0x40, 0x98, 0x79, 0x00, 0x5b, 0xda, 0x5a, 0xcd, 0x7d, 0x3a, 0x78,
- 0xb2, 0xc7, 0x89, 0x60, 0x21, 0x33, 0x4a, 0xc7, 0xac, 0x6d, 0x55, 0x89,
- 0x65, 0xc9, 0x20, 0x7f, 0x50, 0xb9, 0x79, 0x2d, 0xd8, 0x1c, 0x4b, 0xe5,
- 0x51, 0xfd, 0xd8, 0x5d, 0xab, 0x2a, 0x47, 0xc6, 0xc8, 0x82, 0x15, 0x16,
- 0x90, 0xda, 0x5b, 0x96, 0xe9, 0xf8, 0xde, 0x50, 0x8b, 0x7d, 0xa4, 0x18,
- 0x37, 0x51, 0x00, 0x67, 0x44, 0x9e, 0x8e, 0xc0, 0xf8, 0xe7, 0x6e, 0x10,
- 0xcc, 0xb5, 0xf3, 0x4a, 0x40, 0x8f, 0x5a, 0xe5, 0x0b, 0xf5, 0xf8, 0xf6,
- 0xad, 0xb5, 0x15, 0x7a, 0xd7, 0x3f, 0x95, 0xe5, 0x5e, 0xe5, 0xf3, 0xbe,
- 0x09, 0xf4, 0x2f, 0xf4, 0x97, 0x87, 0x04, 0x40, 0xbc, 0xe1, 0x54, 0x00,
- 0xe5, 0xab, 0x7a, 0x3b, 0x9b, 0xf5, 0xa9, 0x41, 0xb7, 0x0f, 0x68, 0x30,
- 0x0e, 0xdb, 0x49, 0x5b, 0xf5, 0x9a, 0x45, 0x10, 0x64, 0x84, 0xc2, 0xe0,
- 0xe3, 0x62, 0xea, 0xcc, 0x61, 0x9d, 0x91, 0xf2, 0x4a, 0xd5, 0x5a, 0xf4,
- 0x18, 0xeb, 0xa1, 0x83, 0x6a, 0x8d, 0x26, 0x39, 0xa8, 0x01, 0x20, 0xaf,
- 0x79, 0xac, 0x91, 0x49, 0xfa, 0xf8, 0xcd, 0xc1, 0x19, 0x09, 0x46, 0x6c,
- 0x1e, 0x94, 0x9a, 0x11, 0x6f, 0x18, 0x3c, 0x49, 0x4c, 0xe5, 0xcd, 0xc9,
- 0x8b, 0x1b, 0x0d, 0x02, 0x40, 0x50, 0x7c, 0xb3, 0x2d, 0xb7, 0x8d, 0x2c,
- 0xc6, 0xb1, 0xb9, 0x70, 0x5a, 0x4d, 0x96, 0x6d, 0x7d, 0x0c, 0x70, 0xb8,
- 0xf7, 0xe4, 0xb3, 0xa7, 0x3d, 0xfc, 0xf6, 0x6c, 0xe7, 0xf9, 0x9e, 0x3a,
- 0x5e, 0x8f, 0x8f, 0x2e, 0x5e, 0xb7, 0x35, 0x8e, 0x92, 0x94, 0x35, 0xf9,
- 0xb7, 0x9f, 0xa5, 0xe5, 0x75, 0x5a, 0xd6, 0x1c, 0x33, 0xd5, 0xaf, 0x66,
- 0xf5, 0xa2, 0xbf, 0xb3, 0x33, 0xa8, 0x89, 0xa1, 0x34, 0xca, 0xdc, 0x3c,
- 0x1d, 0xec, 0x6c, 0xfd, 0x96, 0x04, 0xc4, 0x16, 0xba, 0x3e, 0x2f, 0x71,
- 0xf2, 0x42, 0xb3, 0x40, 0x62, 0x6f, 0xda, 0x1b, 0x78, 0x88, 0x5c, 0xfc,
- 0x5a, 0x6a, 0x20, 0x84, 0x96, 0x37, 0xa2, 0x62, 0x7f, 0x23, 0xc4, 0xd6,
- 0x13, 0x40, 0xc7, 0x85, 0xdd, 0x76, 0x2e, 0x69, 0xfa, 0xc9, 0xa6, 0x95,
- 0x68, 0xd2, 0x9a, 0xb0, 0xa9, 0x15, 0x07, 0x80, 0x04, 0xa9, 0xe6, 0xc1,
- 0x15, 0x55, 0xd2, 0x25, 0x67, 0xb1, 0xcc, 0x18, 0x03, 0x4a, 0x2e, 0x21,
- 0x8d, 0xa7, 0xd0, 0xac, 0xf9, 0xb5, 0x07, 0xea, 0x7b, 0xec, 0x3d, 0x6b,
- 0xd6, 0x7a, 0xc1, 0x9a, 0x80, 0xef, 0xfd, 0x82, 0x35, 0x69, 0x2e, 0x89,
- 0xbf, 0xf9, 0x44, 0xa4, 0x84, 0xdd, 0x5a, 0xfd, 0x61, 0x31, 0xf2, 0x45,
- 0x65, 0x68, 0xeb, 0x0f, 0x0f, 0x73, 0xa7, 0x3d, 0xcc, 0x0f, 0xa8, 0x94,
- 0x0a, 0x1b, 0xf1, 0x0b, 0x88, 0xef, 0x1f, 0xa3, 0xf9, 0xe1, 0xf1, 0x4d,
- 0xd3, 0x60, 0xb6, 0x02, 0xb8, 0x70, 0xdc, 0x8d, 0xa6, 0xd8, 0xc1, 0x7f,
- 0xd9, 0x25, 0x6c, 0xe1, 0x51, 0x6f, 0xed, 0xcb, 0x9b, 0x59, 0x6f, 0xa0,
- 0x4b, 0xf0, 0xe9, 0x5e, 0x13, 0xf2, 0xa7, 0x43, 0x08, 0x86, 0xe7, 0x1a,
- 0xa5, 0x6b, 0xd2, 0xf9, 0xa4, 0x91, 0x8d, 0x88, 0xd2, 0x1c, 0x30, 0x49,
- 0x66, 0x1f, 0x10, 0x01, 0x48, 0x4a, 0xfd, 0x27, 0x4f, 0x62, 0x13, 0xf8,
- 0xe9, 0xc5, 0xd1, 0xbe, 0x2f, 0x38, 0x2a, 0xc6, 0x72, 0x35, 0x53, 0x49,
- 0xb8, 0x1e, 0x67, 0xde, 0x33, 0x48, 0x0d, 0x43, 0xd8, 0x86, 0xb3, 0xeb,
- 0x75, 0x55, 0xb3, 0x42, 0x8a, 0x20, 0x17, 0xa3, 0x13, 0xf7, 0x47, 0xbd,
- 0x12, 0x45, 0x0e, 0x39, 0xb9, 0x2a, 0x7e, 0x88, 0x67, 0xb9, 0xab, 0x22,
- 0xcd, 0xa5, 0xe4, 0x7f, 0x23, 0xa5, 0x5a, 0xc8, 0x33, 0x5a, 0x28, 0x21,
- 0x0e, 0x51, 0x81, 0x9d, 0xcb, 0x8b, 0x6e, 0x91, 0x71, 0x56, 0x46, 0x91,
- 0x19, 0x50, 0xbb, 0xd9, 0x63, 0xc3, 0x8b, 0x05, 0x29, 0xc3, 0xe7, 0x4d,
- 0xb4, 0x89, 0xb7, 0x1c, 0x2f, 0xea, 0xc7, 0x88, 0x77, 0xe8, 0x82, 0x40,
- 0x9b, 0xa4, 0xdb, 0xf3, 0x78, 0xd8, 0x22, 0x89, 0x49, 0x98, 0x1e, 0xbc,
- 0x43, 0x5d, 0x55, 0xde, 0xc5, 0x8a, 0xd8, 0xa8, 0xfc, 0x03, 0x6a, 0xb7,
- 0xd1, 0x59, 0x4c, 0xee, 0x38, 0x5f, 0xe4, 0x01, 0x5a, 0xae, 0x8b, 0x41,
- 0x8d, 0x31, 0x02, 0xd8, 0x2b, 0x82, 0x26, 0xdc, 0x61, 0x2a, 0x3c, 0xd0,
- 0x80, 0xb4, 0x5d, 0x0c, 0x1e, 0x38, 0x1a, 0xe1, 0xc0, 0xc2, 0x71, 0xcd,
- 0x13, 0xd7, 0x62, 0xb3, 0xd8, 0x54, 0xb2, 0xf9, 0xed, 0xf9, 0xeb, 0x1f,
- 0x5c, 0x6a, 0xe1, 0x56, 0xaf, 0xdb, 0x98, 0x6e, 0x33, 0x08, 0x1c, 0xdb,
- 0x5e, 0x82, 0x50, 0x91, 0xa2, 0xb1, 0x76, 0xfe, 0x8f, 0x98, 0xd8, 0x26,
- 0x05, 0x02, 0x8e, 0x36, 0xb9, 0x72, 0x3d, 0x3d, 0x35, 0x54, 0xb1, 0xff,
- 0xc9, 0xe0, 0x19, 0x1c, 0x51, 0xaf, 0x0f, 0x9f, 0x3d, 0xd9, 0xdb, 0xdd,
- 0x1a, 0xc4, 0xb7, 0xc1, 0xa3, 0xd3, 0x6c, 0x6e, 0x59, 0xf6, 0x61, 0xc1,
- 0x04, 0xb3, 0x79, 0xf4, 0xfd, 0xd9, 0xdb, 0x60, 0x82, 0x6e, 0x4f, 0x22,
- 0xb1, 0x2e, 0x9c, 0xa1, 0x78, 0x1d, 0xdd, 0x1c, 0xbd, 0xb1, 0x33, 0xa2,
- 0x0a, 0x01, 0x68, 0x88, 0xb1, 0x41, 0xd6, 0x5f, 0x97, 0x39, 0x1f, 0x82,
- 0x75, 0x5e, 0x8f, 0xf5, 0x13, 0x92, 0x5f, 0x49, 0x31, 0x39, 0x65, 0x78,
- 0xb0, 0x6c, 0xbd, 0x05, 0xe7, 0xd5, 0x9c, 0x5d, 0xc3, 0x80, 0x0d, 0x75,
- 0xb2, 0x43, 0x91, 0x34, 0x9e, 0xe6, 0xe1, 0x4f, 0x9c, 0x26, 0xc0, 0x0a,
- 0x90, 0x33, 0xde, 0x56, 0xaa, 0xc9, 0xb8, 0xb0, 0x0c, 0x52, 0x79, 0x22,
- 0xb8, 0x20, 0xe7, 0xb6, 0xd1, 0xfb, 0xb4, 0xf7, 0x00, 0xf8, 0xaa, 0x49,
- 0xcc, 0xbe, 0xc8, 0x50, 0x5c, 0x33, 0xb6, 0x95, 0xb3, 0x0e, 0xb1, 0x61,
- 0x9d, 0xa5, 0xd0, 0x51, 0xb5, 0x2c, 0x27, 0xcb, 0x19, 0xcd, 0xff, 0x4b,
- 0x97, 0x6f, 0xa4, 0x29, 0x12, 0xa2, 0xb1, 0x77, 0xe4, 0x34, 0x64, 0xe2,
- 0xf8, 0x7d, 0xb6, 0xd3, 0x68, 0x6f, 0x80, 0x55, 0x08, 0x87, 0xc9, 0xd1,
- 0xe4, 0xbb, 0x2e, 0x78, 0x9c, 0xb5, 0x7f, 0x58, 0x07, 0xdb, 0x36, 0x37,
- 0xbe, 0xb5, 0x7f, 0x4b, 0xa9, 0x22, 0xab, 0x53, 0x96, 0xfc, 0x1f, 0x49,
- 0xd2, 0xaf, 0x43, 0x60, 0x53, 0xf1, 0xd2, 0x03, 0x73, 0x5f, 0x4a, 0x96,
- 0xf2, 0xfd, 0xaf, 0x0c, 0x92, 0x81, 0xa4, 0x62, 0xda, 0x7a, 0xa3, 0xbd,
- 0x58, 0xea, 0xd0, 0x26, 0x58, 0xa4, 0xcb, 0x54, 0x16, 0xf9, 0xef, 0x69,
- 0xb2, 0x09, 0xb1, 0xec, 0xb3, 0x67, 0x4f, 0xb7, 0xa0, 0xf2, 0xbb, 0x08,
- 0x9d, 0xad, 0x0e, 0xe7, 0x1b, 0x56, 0x6d, 0x59, 0xb9, 0x9c, 0xe8, 0x59,
- 0x8e, 0x02, 0x5d, 0xa0, 0x73, 0x9f, 0x6d, 0x81, 0x84, 0x6f, 0x3a, 0x01,
- 0xb0, 0x28, 0x69, 0x24, 0x42, 0x64, 0xcf, 0x42, 0x38, 0x90, 0xd4, 0xf7,
- 0x4a, 0x36, 0xf5, 0x70, 0xf8, 0x1b, 0xc3, 0x65, 0xa3, 0x4b, 0x88, 0x3c,
- 0xae, 0x07, 0x97, 0x6d, 0xb1, 0xc5, 0x36, 0xb0, 0x2e, 0x7b, 0x30, 0x74,
- 0x8d, 0xa0, 0x78, 0x21, 0x4a, 0xb8, 0x16, 0xc1, 0x45, 0xa4, 0x38, 0x11,
- 0x62, 0xf1, 0xd7, 0xbb, 0x2e, 0xe9, 0x02, 0xb7, 0x24, 0xf9, 0xd5, 0xd5,
- 0xde, 0xf6, 0x0b, 0x29, 0x91, 0xc3, 0x00, 0x10, 0xe3, 0xfd, 0xb7, 0x16,
- 0x34, 0x9e, 0xc7, 0x97, 0x92, 0x8d, 0xac, 0x6d, 0xb3, 0x6c, 0x66, 0x60,
- 0xd2, 0x72, 0xab, 0x17, 0xa5, 0x2f, 0xf8, 0x23, 0xf6, 0x1c, 0xb9, 0xa2,
- 0x11, 0xc3, 0xb8, 0x0a, 0x99, 0xc3, 0xd4, 0x91, 0xd4, 0x30, 0x0c, 0x1a,
- 0x03, 0x5b, 0x51, 0xe0, 0xc3, 0x11, 0x5b, 0x98, 0x5c, 0xac, 0x6e, 0x28,
- 0x84, 0xb4, 0xda, 0xef, 0x8e, 0x28, 0xe3, 0xb2, 0x37, 0xd2, 0x69, 0x6b,
- 0x19, 0x56, 0x0c, 0x5e, 0x2a, 0xdf, 0x20, 0x2b, 0x1c, 0xaa, 0x4d, 0x3f,
- 0xce, 0x56, 0x49, 0x36, 0x31, 0xde, 0xed, 0xed, 0xad, 0x47, 0xc7, 0xac,
- 0x0f, 0x3e, 0x36, 0xc6, 0x33, 0x51, 0x37, 0x78, 0x71, 0x33, 0x8f, 0xdf,
- 0xe4, 0x07, 0xc1, 0x9d, 0xe6, 0xc8, 0xdf, 0x45, 0x89, 0xc8, 0x5e, 0x23,
- 0x2e, 0x9c, 0x24, 0xa1, 0xd8, 0x2e, 0x25, 0x53, 0x96, 0xd9, 0x35, 0x27,
- 0xae, 0x82, 0xab, 0xa4, 0xaa, 0x2b, 0x4f, 0xb0, 0x64, 0x0d, 0x36, 0x5f,
- 0x4f, 0xa3, 0xea, 0x6d, 0xf3, 0x56, 0x05, 0x93, 0x60, 0x7e, 0xa2, 0x09,
- 0x79, 0xa7, 0xb2, 0x1c, 0x0b, 0x81, 0xe6, 0x30, 0xe7, 0x73, 0xcc, 0x8a,
- 0xed, 0xe9, 0x56, 0xb1, 0xdd, 0x18, 0x0b, 0x4c, 0x1e, 0xe4, 0xc3, 0x63,
- 0x0e, 0xe9, 0x98, 0x36, 0x15, 0x14, 0xc3, 0x6a, 0xae, 0x49, 0x9b, 0xa4,
- 0xe5, 0xdf, 0xf8, 0x79, 0x0b, 0xaa, 0x9f, 0x25, 0xac, 0x79, 0xc0, 0x00,
- 0x24, 0x9f, 0x76, 0xe3, 0x2a, 0x38, 0xea, 0xc6, 0x9a, 0x59, 0xad, 0x3a,
- 0x7c, 0xda, 0x58, 0xce, 0x9e, 0x1c, 0x52, 0x84, 0xda, 0x77, 0x09, 0xc1,
- 0xa8, 0x9d, 0xf0, 0xa0, 0xd8, 0x0f, 0x7c, 0x1c, 0x1a, 0x56, 0xb3, 0x16,
- 0xb4, 0x24, 0x37, 0x8d, 0xdc, 0x42, 0x6b, 0x50, 0xda, 0x20, 0xb8, 0x41,
- 0xe7, 0x6c, 0x65, 0x9a, 0x67, 0x75, 0x39, 0x8e, 0x0c, 0x4b, 0xc8, 0x6a,
- 0x15, 0x67, 0x4f, 0x25, 0xce, 0x48, 0x5e, 0xa4, 0x01, 0x1e, 0xa6, 0xee,
- 0xdf, 0xeb, 0x2f, 0x85, 0x4b, 0x86, 0xd8, 0x0a, 0x0f, 0x45, 0x47, 0xcc,
- 0xfb, 0x46, 0xe5, 0x82, 0xf4, 0x35, 0x48, 0x8a, 0x99, 0xa4, 0xe8, 0xcc,
- 0x26, 0x01, 0x25, 0xde, 0x5b, 0xee, 0x20, 0xef, 0xef, 0x17, 0x51, 0xf4,
- 0xeb, 0xd8, 0x45, 0x7a, 0x49, 0x82, 0x0b, 0x70, 0x18, 0x24, 0xf9, 0xc3,
- 0x07, 0x2e, 0x40, 0x39, 0x60, 0x29, 0x38, 0x84, 0x31, 0x91, 0x92, 0x6d,
- 0x1d, 0xa3, 0x8b, 0x8c, 0x08, 0x6c, 0xb8, 0xc1, 0x1c, 0x37, 0xe9, 0x56,
- 0x60, 0x6e, 0x5e, 0x2f, 0x36, 0x77, 0xb7, 0xd0, 0x9d, 0x55, 0xaf, 0x59,
- 0x91, 0x0c, 0x2a, 0x57, 0x8d, 0x05, 0x77, 0x71, 0x39, 0x79, 0xf3, 0x1c,
- 0xc3, 0x83, 0xcb, 0xa8, 0xf5, 0x2c, 0xd7, 0x81, 0x8c, 0x52, 0x4d, 0x62,
- 0xb5, 0x48, 0x31, 0xf6, 0x7f, 0x75, 0x10, 0xa7, 0xa0, 0x70, 0x2d, 0x38,
- 0xd9, 0xa1, 0x92, 0x3a, 0x82, 0x9b, 0xb9, 0x93, 0x93, 0xe5, 0x7a, 0x48,
- 0xb2, 0x5c, 0xc2, 0x34, 0x8a, 0x72, 0x3a, 0xe9, 0x23, 0xdb, 0xf3, 0xaa,
- 0x2c, 0x62, 0xb4, 0x54, 0x4e, 0x14, 0xd3, 0x1b, 0x44, 0x3c, 0x58, 0x5d,
- 0xc9, 0x37, 0xc9, 0x3a, 0xe7, 0xe5, 0xac, 0xbb, 0x1b, 0x3e, 0x48, 0xfd,
- 0x69, 0xfb, 0x15, 0x1a, 0x5b, 0x1a, 0x91, 0xe9, 0x41, 0xf2, 0xb7, 0x65,
- 0x4e, 0x64, 0xcd, 0x7b, 0x8b, 0x70, 0x46, 0xa4, 0x79, 0x64, 0x2e, 0x08,
- 0x80, 0xb8, 0x07, 0xc7, 0x39, 0x48, 0xca, 0x18, 0xdb, 0xb3, 0xa1, 0xd3,
- 0x1b, 0x95, 0x45, 0x06, 0x4a, 0x35, 0x36, 0x9b, 0x40, 0x00, 0xa0, 0xe4,
- 0x42, 0xc5, 0x4d, 0x44, 0xf2, 0x49, 0x6c, 0x87, 0x48, 0xce, 0xcc, 0xda,
- 0x85, 0x0a, 0x56, 0x95, 0xef, 0xd9, 0x98, 0xdd, 0xf3, 0x45, 0xb6, 0xd1,
- 0xac, 0xe3, 0xb3, 0x51, 0xb1, 0x41, 0xb0, 0xde, 0xb0, 0xf5, 0x45, 0xb8,
- 0xde, 0x03, 0xa5, 0xc0, 0x56, 0x75, 0x2d, 0xa4, 0x2d, 0x5d, 0xf8, 0xd6,
- 0xa5, 0x71, 0x7f, 0x04, 0xdf, 0xf6, 0x24, 0xf0, 0x7d, 0xb4, 0xe4, 0x80,
- 0x93, 0x76, 0x61, 0x6c, 0xe1, 0xd6, 0x22, 0x15, 0xc8, 0x13, 0x5a, 0x66,
- 0x10, 0x01, 0x81, 0x92, 0x70, 0x52, 0x71, 0x9a, 0xe2, 0x6c, 0xc0, 0xc5,
- 0x3a, 0x15, 0xa3, 0x93, 0x6d, 0xab, 0x6c, 0xcc, 0x6e, 0xef, 0xfd, 0x12,
- 0xb4, 0x5d, 0xf5, 0x9a, 0x10, 0xec, 0xad, 0xe8, 0x44, 0xe9, 0x86, 0x63,
- 0x50, 0xc2, 0xe6, 0xbb, 0x9c, 0xe3, 0x78, 0x1d, 0x1e, 0x5b, 0x78, 0xc8,
- 0x45, 0xf3, 0x95, 0x9b, 0x47, 0x4d, 0xab, 0xda, 0x84, 0x2b, 0x7e, 0xc0,
- 0xe0, 0x93, 0xd7, 0xcb, 0xf9, 0x0d, 0x0d, 0x21, 0x0e, 0x7b, 0x36, 0x27,
- 0x47, 0xce, 0x67, 0xdb, 0x0a, 0x66, 0x7b, 0x54, 0x09, 0x69, 0x81, 0x61,
- 0xcb, 0x6e, 0x21, 0x96, 0x44, 0xc5, 0x64, 0xba, 0x46, 0xa7, 0xd7, 0x9d,
- 0x8c, 0xca, 0x2d, 0xe0, 0x43, 0x69, 0x90, 0x41, 0xa5, 0x8d, 0x79, 0x76,
- 0x85, 0x70, 0x08, 0x95, 0x47, 0x25, 0x19, 0xd3, 0xd0, 0x60, 0xa0, 0x28,
- 0x98, 0xa1, 0xb3, 0xab, 0x04, 0x2e, 0xaa, 0xdf, 0xe9, 0xb6, 0x32, 0x95,
- 0x86, 0x38, 0x92, 0x1d, 0x23, 0x51, 0x3e, 0xdc, 0xef, 0xa8, 0xc3, 0x78,
- 0xd1, 0xc6, 0xcb, 0xac, 0x42, 0x24, 0x61, 0xbc, 0xd6, 0x6b, 0x60, 0x09,
- 0x0b, 0x26, 0xa5, 0x64, 0x10, 0xd4, 0x1d, 0xe8, 0xda, 0x74, 0x24, 0x36,
- 0x49, 0xc7, 0x28, 0xa6, 0x4b, 0x29, 0x00, 0xc6, 0x46, 0x31, 0xce, 0x26,
- 0xd9, 0xb2, 0xd3, 0x24, 0xe7, 0x4f, 0x0c, 0x17, 0x52, 0x4d, 0x4f, 0x2e,
- 0x82, 0x2e, 0x78, 0x2e, 0x04, 0x7d, 0x87, 0x36, 0x5f, 0x89, 0xd1, 0x35,
- 0xed, 0x9d, 0x95, 0x80, 0xa0, 0xb9, 0x05, 0x22, 0x50, 0x6f, 0x1d, 0xca,
- 0x58, 0x64, 0x41, 0x32, 0x65, 0x22, 0x5c, 0x0f, 0x67, 0x53, 0x65, 0xd1,
- 0xc0, 0x57, 0xd7, 0x0a, 0x0b, 0x4c, 0x40, 0xe1, 0xe0, 0xce, 0x1e, 0x0c,
- 0x92, 0x78, 0x20, 0x26, 0xb0, 0x73, 0xad, 0xad, 0x64, 0x06, 0xb2, 0xf6,
- 0xef, 0x4d, 0xec, 0xd7, 0xa1, 0xa9, 0xb4, 0x7e, 0x8f, 0x51, 0xcd, 0x96,
- 0xec, 0x68, 0x88, 0x6c, 0xcd, 0xb4, 0x2b, 0xd3, 0xa5, 0xe0, 0xb4, 0xb3,
- 0xd3, 0xda, 0x8b, 0xe8, 0xe9, 0x88, 0x37, 0x67, 0x74, 0xef, 0xe6, 0x69,
- 0x19, 0xf6, 0xc8, 0x87, 0x37, 0x7d, 0x3a, 0x26, 0x0f, 0x7b, 0xac, 0xd5,
- 0xcf, 0xb7, 0xca, 0x5b, 0x23, 0xb2, 0x10, 0x47, 0x48, 0x08, 0x09, 0x72,
- 0xa3, 0xec, 0xc4, 0x98, 0xec, 0xb2, 0xc3, 0x66, 0xea, 0x06, 0x63, 0xe2,
- 0x3a, 0xdb, 0x04, 0x52, 0xa9, 0x06, 0xa3, 0xb8, 0x2b, 0xba, 0x06, 0x96,
- 0x18, 0x53, 0x34, 0xf3, 0xb0, 0xe8, 0xe8, 0x14, 0x00, 0x42, 0xef, 0xc6,
- 0x72, 0x39, 0xd2, 0xca, 0xa9, 0x6f, 0xed, 0xb1, 0x64, 0x73, 0x78, 0xf6,
- 0xf6, 0xe8, 0xab, 0xd3, 0xad, 0xc7, 0x5c, 0x0b, 0xac, 0x9a, 0xc3, 0x65,
- 0x87, 0x60, 0x14, 0x1c, 0x2b, 0x1c, 0xf0, 0x8e, 0x96, 0xc4, 0x6d, 0x55,
- 0x7c, 0xb8, 0x0f, 0xda, 0xec, 0x0a, 0xba, 0xeb, 0x49, 0x36, 0xaa, 0x9c,
- 0x57, 0x81, 0x16, 0x74, 0xc3, 0xff, 0xa5, 0x01, 0xff, 0x22, 0x81, 0xe1,
- 0xd2, 0xf9, 0x6a, 0x38, 0xec, 0x1f, 0x9c, 0x1d, 0xe3, 0x26, 0x1e, 0x0e,
- 0xe9, 0x97, 0x55, 0xd8, 0xe5, 0xe0, 0x65, 0x1c, 0x4a, 0xf3, 0x6d, 0x2f,
- 0x09, 0xc2, 0xfb, 0xf5, 0x4e, 0xcc, 0x44, 0x60, 0x76, 0x21, 0xfe, 0x3e,
- 0xa8, 0x9f, 0x3b, 0x68, 0x5f, 0xb7, 0x67, 0xc7, 0xdb, 0xe8, 0x0b, 0x7e,
- 0x0d, 0xac, 0x43, 0x77, 0x4c, 0xdf, 0x32, 0xae, 0xc4, 0xc5, 0xab, 0x8a,
- 0x8c, 0x0d, 0xd0, 0xa7, 0xb1, 0x8f, 0x94, 0xc4, 0x4f, 0x76, 0x00, 0x2f,
- 0x31, 0xb6, 0x8e, 0x7a, 0xbd, 0x41, 0xc4, 0x96, 0x20, 0xe1, 0x1b, 0x3c,
- 0x7f, 0xcb, 0x84, 0x0f, 0x0b, 0xad, 0x60, 0x5e, 0x32, 0x3e, 0xf9, 0x50,
- 0xfd, 0xc5, 0x6d, 0xe3, 0xde, 0x46, 0x7f, 0x99, 0xec, 0x6f, 0x48, 0x2d,
- 0x7b, 0x2e, 0x73, 0xdc, 0xb0, 0x9a, 0x29, 0x0b, 0x86, 0xc2, 0xe0, 0x2e,
- 0x54, 0x9f, 0x1d, 0x4a, 0x23, 0x5c, 0x76, 0x8f, 0x8e, 0x4e, 0x28, 0x4b,
- 0x57, 0xe2, 0x0d, 0x94, 0xe0, 0xec, 0xc9, 0xbf, 0x04, 0x9a, 0x38, 0x3c,
- 0x12, 0x41, 0x72, 0xdb, 0x43, 0xd7, 0xbc, 0x32, 0x19, 0x9f, 0x08, 0xa7,
- 0x6e, 0x0d, 0x17, 0x01, 0x7e, 0x71, 0x78, 0x16, 0x84, 0x01, 0xf4, 0x62,
- 0xab, 0x87, 0xc7, 0xa8, 0xd1, 0xe4, 0xdc, 0xb9, 0x6b, 0x7d, 0x36, 0x78,
- 0xa8, 0xb6, 0x64, 0x6d, 0x09, 0x15, 0xab, 0x6e, 0xbf, 0xf0, 0xf2, 0xd3,
- 0x58, 0xd4, 0xd5, 0x57, 0x9f, 0x9f, 0x41, 0x70, 0xfb, 0xb9, 0x0f, 0x5b,
- 0x4b, 0xa3, 0x70, 0x52, 0xf9, 0xa4, 0x33, 0x53, 0x4b, 0x17, 0xc8, 0xca,
- 0xd1, 0xe8, 0x12, 0x31, 0x0c, 0x90, 0x41, 0x76, 0x1d, 0xbf, 0xa2, 0xc1,
- 0xb0, 0x1c, 0xc6, 0x0a, 0xe8, 0x97, 0xf7, 0x2e, 0x4d, 0x3e, 0x16, 0x20,
- 0x7d, 0x1c, 0x91, 0xdc, 0x27, 0xa8, 0x9d, 0xee, 0xed, 0x96, 0xdc, 0x4a,
- 0x16, 0x60, 0xa3, 0x6b, 0x84, 0x94, 0xc2, 0xc5, 0x75, 0x43, 0xfd, 0x32,
- 0x71, 0x20, 0xe8, 0xf0, 0x7a, 0x29, 0x95, 0x53, 0x15, 0x8c, 0xc8, 0xd5,
- 0x2c, 0x2c, 0x33, 0x38, 0x42, 0x79, 0xc0, 0xc1, 0x88, 0xa3, 0x32, 0x88,
- 0xa2, 0x92, 0xd3, 0x99, 0x9f, 0x69, 0x0a, 0xc2, 0xa8, 0x2c, 0x6e, 0xe8,
- 0xb4, 0xf2, 0x7b, 0xae, 0xe8, 0xbd, 0xc8, 0x70, 0xa6, 0x5b, 0xd2, 0x8d,
- 0x32, 0x71, 0x8e, 0xd1, 0x8e, 0x08, 0x54, 0xae, 0xff, 0xa0, 0x39, 0x85,
- 0x5e, 0x16, 0x12, 0x60, 0x7e, 0x64, 0xf3, 0x19, 0x94, 0x2b, 0x2c, 0xe8,
- 0x5c, 0x81, 0x3c, 0xb8, 0x26, 0x63, 0x0f, 0xb7, 0x56, 0x54, 0xf8, 0xd7,
- 0xd1, 0x90, 0x23, 0x8b, 0x90, 0x86, 0x3a, 0xf6, 0xbc, 0x41, 0x4c, 0xc2,
- 0xf4, 0x5f, 0x10, 0x55, 0x09, 0x37, 0x67, 0xd3, 0x5c, 0xdb, 0x36, 0x8c,
- 0xe2, 0x24, 0x7d, 0x8f, 0x9a, 0x03, 0x33, 0x35, 0xb4, 0x11, 0x8e, 0x4a,
- 0x91, 0x20, 0x8e, 0x89, 0xaf, 0xa5, 0xa4, 0x80, 0xb1, 0x3d, 0x61, 0xc6,
- 0xb1, 0x98, 0x81, 0x14, 0x13, 0x77, 0x6b, 0x8b, 0x66, 0x05, 0x26, 0xc1,
- 0xfb, 0x03, 0xc0, 0xb4, 0x3c, 0xa8, 0xc8, 0xf7, 0xa7, 0x10, 0x8f, 0x04,
- 0x7d, 0x45, 0x2a, 0x85, 0x54, 0x18, 0x70, 0x71, 0x32, 0x12, 0xee, 0xea,
- 0xd2, 0x7e, 0xb9, 0xba, 0x4f, 0xc8, 0x33, 0x04, 0xcd, 0x36, 0x39, 0xe2,
- 0xa0, 0x97, 0x0e, 0x3d, 0x47, 0x6a, 0xaf, 0xe5, 0x2e, 0x83, 0x27, 0x57,
- 0x28, 0x4e, 0x71, 0x4a, 0xa8, 0xe2, 0x98, 0x9a, 0xc3, 0xc1, 0x21, 0x36,
- 0x49, 0xe5, 0xdd, 0x2e, 0x9d, 0xaf, 0xaa, 0xc5, 0xa2, 0xaf, 0xf8, 0x06,
- 0xf6, 0x81, 0xab, 0x2c, 0xf0, 0xda, 0xc7, 0x79, 0xf7, 0x12, 0x31, 0x21,
- 0x41, 0x25, 0x92, 0x60, 0xca, 0xae, 0xc9, 0x26, 0xc1, 0x63, 0xe1, 0x2b,
- 0xfb, 0x9f, 0xed, 0xf4, 0x94, 0xe3, 0xb3, 0xd5, 0x2e, 0x7c, 0x06, 0x41,
- 0x48, 0xb1, 0x1a, 0x01, 0xe4, 0xc0, 0xa2, 0x76, 0x4f, 0xb6, 0x4b, 0x82,
- 0x3c, 0x1f, 0x3c, 0xdd, 0x6a, 0xd0, 0x4b, 0x3d, 0x9d, 0xb5, 0xe5, 0x92,
- 0xe4, 0xed, 0xc5, 0xc9, 0x9b, 0x24, 0xb2, 0x09, 0x88, 0xc2, 0xdc, 0xf5,
- 0x5d, 0x64, 0xec, 0x44, 0x2c, 0x36, 0x07, 0x93, 0x93, 0xf0, 0x98, 0x5f,
- 0xcd, 0x05, 0x97, 0xe9, 0x4d, 0x3e, 0x2e, 0x8b, 0xaa, 0xb8, 0x14, 0x77,
- 0xa6, 0x29, 0xd7, 0xf4, 0xc5, 0xf1, 0xf1, 0x30, 0xb9, 0xcb, 0x46, 0x96,
- 0x69, 0x15, 0x85, 0x16, 0xd6, 0x42, 0x3e, 0x7c, 0x7d, 0x96, 0x79, 0x56,
- 0xb3, 0xa4, 0x61, 0x46, 0x3d, 0x4e, 0xc0, 0xe6, 0x77, 0xb2, 0x7e, 0x36,
- 0x27, 0x7d, 0x33, 0x83, 0xea, 0xc6, 0x95, 0x1e, 0xa6, 0xe0, 0x4a, 0x24,
- 0x70, 0x17, 0x1d, 0x96, 0x5d, 0x19, 0x80, 0xb1, 0x14, 0x2d, 0x0b, 0xc0,
- 0x77, 0xc5, 0x28, 0xad, 0x1c, 0xf6, 0x54, 0x8e, 0x32, 0x2d, 0x2c, 0x6b,
- 0xa8, 0x39, 0xe6, 0x26, 0x47, 0x96, 0x7f, 0x94, 0xfd, 0xae, 0x15, 0x40,
- 0x5b, 0xf6, 0x88, 0xf9, 0xa4, 0x28, 0xe1, 0x24, 0x09, 0xe0, 0xac, 0x51,
- 0x09, 0x62, 0x89, 0xf0, 0x4f, 0x70, 0xcd, 0xfb, 0x0e, 0x89, 0xfd, 0xba,
- 0x50, 0x68, 0x0f, 0x59, 0x69, 0x66, 0x4c, 0x92, 0x1a, 0x88, 0xc4, 0x0c,
- 0x85, 0xa7, 0x95, 0xca, 0x53, 0xc6, 0x49, 0x1e, 0x91, 0xf0, 0x6c, 0x3f,
- 0x7c, 0x76, 0x92, 0x1a, 0xdb, 0x5f, 0xe5, 0x57, 0x2b, 0x8a, 0x14, 0xb8,
- 0x78, 0xe7, 0x40, 0xc4, 0xe4, 0xd1, 0x28, 0xbb, 0x34, 0xc9, 0x32, 0x2a,
- 0x85, 0xd3, 0x85, 0x06, 0xd2, 0x90, 0x2c, 0x89, 0xda, 0x06, 0x0f, 0x2b,
- 0x1d, 0x0f, 0x8b, 0x95, 0xb8, 0xf4, 0x34, 0x7b, 0xd4, 0x92, 0x42, 0x23,
- 0xeb, 0xe8, 0x03, 0x29, 0xa2, 0x5e, 0x7e, 0xe4, 0xf9, 0x0c, 0xfe, 0x15,
- 0xa5, 0xfd, 0xfc, 0x61, 0x2b, 0xd8, 0xd8, 0xa1, 0x46, 0x81, 0xce, 0x6c,
- 0x80, 0xef, 0x04, 0x56, 0x49, 0xcd, 0x06, 0x85, 0x3e, 0x14, 0x26, 0xe0,
- 0x55, 0xf5, 0xa4, 0x58, 0xd6, 0x0e, 0x5e, 0x9e, 0x6f, 0x70, 0xb9, 0xbc,
- 0xff, 0xe3, 0x1f, 0x71, 0x3e, 0xd2, 0x8f, 0x3f, 0xc3, 0x74, 0x05, 0xf8,
- 0x0c, 0x87, 0x24, 0x61, 0x64, 0x53, 0xf9, 0xd2, 0x2b, 0xbc, 0x43, 0x0c,
- 0x13, 0xe5, 0x00, 0xb3, 0xa5, 0x50, 0x7c, 0x5b, 0x38, 0xb5, 0x98, 0x6b,
- 0xab, 0x65, 0xa9, 0xa3, 0x33, 0xc6, 0x8f, 0x7a, 0x50, 0x69, 0x60, 0x45,
- 0x33, 0xe5, 0x53, 0x81, 0xa4, 0x27, 0xab, 0xa0, 0xe0, 0x0d, 0x6f, 0x46,
- 0x91, 0x9c, 0x0d, 0x36, 0x86, 0x81, 0x3e, 0xc4, 0xef, 0x83, 0x19, 0xf0,
- 0xc5, 0x82, 0x68, 0xcc, 0x7c, 0x1e, 0xc3, 0xa9, 0xca, 0xde, 0xaa, 0x7f,
- 0xe3, 0x3f, 0x68, 0x33, 0x7a, 0xf5, 0x5d, 0xf1, 0x8f, 0x01, 0x47, 0x34,
- 0x82, 0xf3, 0xf6, 0x0b, 0xa9, 0x72, 0xfe, 0xfe, 0xf7, 0xbb, 0x1c, 0x42,
- 0xb4, 0x1e, 0x57, 0x2f, 0xc7, 0x22, 0xd8, 0x3e, 0x3b, 0x14, 0x9e, 0x15,
- 0xe8, 0xad, 0xcd, 0xee, 0xb8, 0x97, 0x1e, 0x5f, 0x02, 0xff, 0x18, 0xf0,
- 0xbf, 0x3f, 0xee, 0xf6, 0x9f, 0xfd, 0xec, 0x7a, 0xfd, 0xfd, 0xee, 0xfb,
- 0xdf, 0xef, 0xad, 0x77, 0x85, 0x88, 0x69, 0x5e, 0x60, 0x33, 0xa0, 0xaf,
- 0x42, 0xf9, 0x58, 0x8d, 0xa0, 0x55, 0xe1, 0xdf, 0x3b, 0x6f, 0x51, 0x1b,
- 0xa7, 0x23, 0xed, 0x83, 0xad, 0x50, 0xdd, 0x48, 0x89, 0xd0, 0x66, 0x2c,
- 0xfa, 0xce, 0x17, 0x52, 0x0e, 0xbc, 0xa1, 0x5a, 0x57, 0xd8, 0xbb, 0x72,
- 0xd4, 0x9c, 0x19, 0x59, 0x4e, 0x39, 0x49, 0x75, 0x72, 0x4f, 0x17, 0x9d,
- 0x00, 0xad, 0x3a, 0xa0, 0x00, 0x13, 0x1d, 0x95, 0x6c, 0x15, 0x9e, 0x6b,
- 0xd3, 0x47, 0x41, 0x01, 0x56, 0x6e, 0xab, 0xcb, 0x32, 0xe1, 0x4d, 0x42,
- 0x9e, 0xe6, 0x47, 0x2a, 0x93, 0xf2, 0xe1, 0x15, 0x62, 0xf7, 0x07, 0xa8,
- 0x8d, 0x76, 0xda, 0x79, 0x7c, 0x82, 0xb6, 0xd2, 0xd0, 0x3b, 0x25, 0x85,
- 0xa3, 0x34, 0xab, 0x38, 0x33, 0x0f, 0x9a, 0x40, 0xf5, 0x65, 0x2c, 0xbf,
- 0xb6, 0xef, 0x9d, 0xcd, 0x53, 0xaf, 0xe7, 0x4c, 0xb3, 0x46, 0x99, 0x81,
- 0xf0, 0xe5, 0xc0, 0x1b, 0x9e, 0x25, 0x56, 0x8f, 0x9e, 0x28, 0xa4, 0x8e,
- 0x81, 0x48, 0x06, 0x5b, 0x9d, 0x59, 0x14, 0x06, 0x48, 0x2e, 0xa6, 0x73,
- 0x87, 0x7a, 0xa6, 0x01, 0xdd, 0x49, 0x25, 0x65, 0x8d, 0x58, 0x29, 0x14,
- 0xb4, 0x55, 0xb6, 0xfb, 0x2b, 0xc2, 0x6a, 0x94, 0xa7, 0xa0, 0xb5, 0x8a,
- 0x7b, 0x0e, 0xe1, 0x39, 0x9b, 0x56, 0x31, 0x6d, 0x1c, 0xb2, 0xab, 0x87,
- 0xa1, 0xec, 0x6a, 0xa4, 0x8d, 0xf7, 0xfc, 0x2c, 0x5d, 0x5a, 0x62, 0x7a,
- 0xeb, 0x5d, 0x38, 0xee, 0x88, 0x5a, 0x94, 0xfc, 0xaa, 0xcc, 0xef, 0x41,
- 0xeb, 0xf6, 0x70, 0x91, 0x47, 0xa9, 0x2b, 0x28, 0xe6, 0x53, 0x0b, 0x7d,
- 0x0a, 0x7c, 0x57, 0x32, 0x2b, 0x2a, 0x4d, 0x80, 0x43, 0x49, 0xd2, 0x97,
- 0x0d, 0x41, 0x47, 0x10, 0x38, 0x52, 0x14, 0x7f, 0x86, 0x9f, 0x15, 0x40,
- 0xb2, 0xee, 0x12, 0x16, 0xca, 0x6d, 0x62, 0xc8, 0xdc, 0xcb, 0x69, 0x7a,
- 0xf5, 0xbb, 0x4e, 0x94, 0x5a, 0xf5, 0x0f, 0x32, 0x27, 0x02, 0x3a, 0x2d,
- 0xfa, 0x05, 0x7e, 0x42, 0xe0, 0xda, 0x12, 0x00, 0x13, 0x9a, 0x76, 0x2e,
- 0xc5, 0x60, 0xfe, 0xb0, 0xb7, 0x13, 0xb3, 0x62, 0x8f, 0x5d, 0x64, 0xc5,
- 0xa0, 0x98, 0x9c, 0x2a, 0xa3, 0x27, 0x91, 0x27, 0x7d, 0xd5, 0x89, 0x0c,
- 0x39, 0x43, 0xec, 0xd2, 0xef, 0x33, 0x31, 0x45, 0x3a, 0xae, 0xef, 0xb8,
- 0x33, 0xf8, 0xf4, 0xd7, 0xb2, 0x96, 0xc7, 0x38, 0x0b, 0xdd, 0x5e, 0x7c,
- 0xe3, 0xef, 0xf5, 0x47, 0x19, 0xdd, 0x3c, 0xed, 0x39, 0x6e, 0x4a, 0x68,
- 0xa9, 0x24, 0x9e, 0x37, 0x63, 0xa8, 0xb8, 0xaf, 0x2f, 0xf1, 0x4e, 0x72,
- 0x01, 0x9d, 0x8e, 0xe9, 0xfa, 0x94, 0x6b, 0xca, 0x27, 0x7b, 0x83, 0x1d,
- 0x15, 0xfc, 0x1e, 0x4c, 0x7f, 0x15, 0x64, 0x8d, 0x46, 0x1b, 0x76, 0x3b,
- 0xa3, 0xa6, 0xd3, 0xfc, 0xaf, 0xcb, 0x79, 0x13, 0x95, 0xbf, 0xcb, 0xcd,
- 0x85, 0xfd, 0x56, 0x09, 0x5f, 0xe2, 0x55, 0x1a, 0x01, 0x4a, 0x76, 0xc4,
- 0xd5, 0x9c, 0x02, 0xb4, 0x3e, 0x58, 0xb0, 0xfa, 0xcb, 0x58, 0xca, 0x40,
- 0x83, 0xab, 0x4a, 0x78, 0xe0, 0x5c, 0xeb, 0x68, 0x75, 0xb8, 0x86, 0x11,
- 0x62, 0x11, 0x4f, 0x28, 0x50, 0xc1, 0x5e, 0xb2, 0xba, 0x5d, 0x1a, 0xec,
- 0xfc, 0xf5, 0x61, 0xab, 0xb9, 0x4f, 0x3e, 0x7d, 0xb6, 0xf3, 0x5b, 0xc6,
- 0xa3, 0x34, 0x4a, 0x8a, 0x3c, 0x5c, 0xb2, 0xe9, 0xd7, 0x54, 0x6c, 0x5a,
- 0x59, 0xb2, 0x49, 0x35, 0xb7, 0x8f, 0xa9, 0xd8, 0xe4, 0x0a, 0x36, 0x75,
- 0xa3, 0x0f, 0xb4, 0xb3, 0x14, 0x7d, 0xb4, 0x4f, 0x58, 0x8d, 0x0a, 0xa5,
- 0x32, 0xab, 0xc0, 0x36, 0x8a, 0x88, 0xaf, 0xe5, 0xbc, 0xc3, 0xc7, 0xaa,
- 0x26, 0x70, 0x48, 0x7a, 0xae, 0x86, 0xf7, 0xe1, 0xe9, 0xdb, 0xb7, 0x47,
- 0x87, 0x17, 0xbe, 0x02, 0xc9, 0x9d, 0x55, 0xb9, 0x03, 0xbf, 0x4b, 0x1d,
- 0x0e, 0x51, 0x77, 0xc9, 0x26, 0xc4, 0xb1, 0xaa, 0x93, 0x41, 0xfa, 0xa7,
- 0x3f, 0xee, 0x34, 0x42, 0xd7, 0xbe, 0x14, 0xe2, 0xd3, 0xd0, 0x7d, 0xbd,
- 0x1b, 0x3a, 0x54, 0xd0, 0xee, 0x4a, 0x3d, 0xea, 0xd4, 0x92, 0xe4, 0x77,
- 0xb0, 0xd0, 0xb8, 0x5a, 0x0f, 0x04, 0xc7, 0xa0, 0x56, 0x8f, 0xf6, 0xfd,
- 0xff, 0xa5, 0x4a, 0x3d, 0x5f, 0x5b, 0xc5, 0x95, 0x26, 0x14, 0x6e, 0x57,
- 0x2d, 0x1a, 0xd4, 0xb1, 0x1a, 0x65, 0x41, 0x5c, 0x43, 0x1c, 0x41, 0xe1,
- 0xc8, 0xc1, 0x27, 0xe4, 0x71, 0x60, 0x6d, 0xe5, 0xfd, 0xde, 0xa3, 0xcc,
- 0xed, 0xef, 0xaa, 0xea, 0x3b, 0x31, 0x38, 0x1c, 0xba, 0x5d, 0x01, 0x0f,
- 0xf7, 0x2b, 0x2a, 0xb4, 0xac, 0x0e, 0xa1, 0xe0, 0x12, 0x43, 0x4e, 0x40,
- 0xeb, 0x2f, 0x7a, 0xc6, 0x11, 0x6a, 0xce, 0xbd, 0x9a, 0x76, 0x59, 0xd0,
- 0x69, 0x74, 0x08, 0xb1, 0x15, 0x2a, 0x36, 0xd6, 0xb3, 0xd9, 0xff, 0xe0,
- 0xde, 0xed, 0xc2, 0x64, 0x40, 0x4c, 0x4a, 0x14, 0x1b, 0x33, 0xef, 0xa3,
- 0x29, 0xa7, 0xd3, 0x5b, 0x0d, 0x1a, 0x85, 0x86, 0x97, 0x33, 0x81, 0x91,
- 0x30, 0x31, 0x97, 0xb0, 0x8b, 0xfb, 0x23, 0x14, 0x19, 0x7b, 0x9c, 0xae,
- 0x34, 0xa3, 0x1b, 0x7c, 0x6a, 0x39, 0xff, 0x79, 0xad, 0x95, 0x6f, 0x51,
- 0x46, 0x03, 0x07, 0xda, 0xe5, 0x02, 0x55, 0x0a, 0xbc, 0x4d, 0x9d, 0xf4,
- 0x23, 0xaf, 0xec, 0x14, 0xb9, 0xa9, 0x65, 0xc1, 0x07, 0x08, 0x92, 0x1d,
- 0xa0, 0xd4, 0xfd, 0xf1, 0x08, 0x96, 0xa1, 0xc5, 0x1d, 0x3a, 0x82, 0x5a,
- 0x9d, 0x72, 0xeb, 0xc2, 0xdf, 0xd5, 0x45, 0x23, 0xe8, 0x02, 0x9a, 0xfa,
- 0xa5, 0xe6, 0x6d, 0xe3, 0x14, 0x2a, 0x1e, 0xb2, 0xda, 0xda, 0xad, 0x91,
- 0x89, 0x80, 0x63, 0xf0, 0x2a, 0xba, 0x54, 0xb6, 0x52, 0x75, 0x11, 0x30,
- 0xfa, 0x66, 0xd5, 0xf7, 0x95, 0x01, 0xd0, 0x02, 0x79, 0x75, 0x2e, 0x96,
- 0x95, 0xca, 0x25, 0xc8, 0x8b, 0x51, 0x5d, 0x8b, 0xfc, 0x16, 0xe5, 0x36,
- 0x82, 0xfe, 0xe6, 0x9c, 0x23, 0x5d, 0xb0, 0xae, 0x24, 0x95, 0xd1, 0x8b,
- 0x8e, 0x35, 0x94, 0x02, 0x01, 0x58, 0x32, 0x6a, 0x5a, 0x59, 0xb8, 0x9a,
- 0x35, 0x66, 0x1e, 0x7a, 0x42, 0x41, 0xab, 0x04, 0xda, 0xcf, 0xea, 0x23,
- 0x1f, 0xb7, 0x0f, 0xdb, 0x02, 0x05, 0x07, 0xc6, 0xbe, 0xdc, 0x48, 0x2d,
- 0x3e, 0x72, 0x14, 0x45, 0x90, 0xa1, 0xfa, 0x52, 0xc7, 0xb6, 0x94, 0x8c,
- 0xb8, 0xdc, 0x0d, 0x8b, 0x31, 0x9e, 0x72, 0x44, 0xef, 0x46, 0xc8, 0x0b,
- 0x2c, 0x08, 0x1a, 0x71, 0x11, 0xb4, 0x50, 0x96, 0x27, 0x6c, 0x85, 0x99,
- 0x51, 0xeb, 0x38, 0xad, 0x6e, 0xaa, 0xd5, 0x30, 0x43, 0x8d, 0x90, 0x0e,
- 0x1a, 0x5d, 0x50, 0x44, 0xc4, 0x5a, 0x15, 0x70, 0xda, 0x3a, 0x1c, 0x25,
- 0xef, 0x55, 0xb3, 0x39, 0xb7, 0x45, 0x11, 0x58, 0x58, 0xa4, 0x95, 0xba,
- 0x5a, 0x22, 0x91, 0xb6, 0x2a, 0x5f, 0x0f, 0xb2, 0x64, 0x9d, 0xab, 0x8c,
- 0xac, 0x87, 0xc9, 0x47, 0x9a, 0xaf, 0x67, 0xaf, 0x32, 0x16, 0x0d, 0x0d,
- 0xd5, 0x87, 0x81, 0xc7, 0x12, 0xa1, 0x5d, 0x0f, 0x6a, 0x1d, 0xe2, 0x2d,
- 0xdb, 0xe4, 0xd0, 0x23, 0xf0, 0xdf, 0x18, 0x9c, 0xd0, 0xcd, 0xfb, 0x81,
- 0x51, 0x59, 0xe9, 0xb0, 0xdd, 0x9d, 0xc1, 0x6e, 0x63, 0x74, 0xb8, 0xd4,
- 0x39, 0x14, 0x22, 0x6c, 0xa7, 0xe3, 0x2e, 0xec, 0xb2, 0xfa, 0x86, 0x1d,
- 0xcc, 0xee, 0x07, 0x41, 0x78, 0x4a, 0xd4, 0x85, 0x86, 0xb0, 0xb4, 0x5b,
- 0xee, 0x07, 0xda, 0x88, 0x92, 0xda, 0x82, 0xa3, 0x79, 0x1c, 0x98, 0x45,
- 0xb0, 0xa9, 0x96, 0x66, 0x93, 0x4e, 0x39, 0xc2, 0xe8, 0xbe, 0x0b, 0xcf,
- 0x2a, 0x48, 0xa2, 0x68, 0x14, 0x58, 0x77, 0xbe, 0x2c, 0xd7, 0xff, 0x7f,
- 0x43, 0xb0, 0x33, 0x4f, 0xff, 0xab, 0xdc, 0xa7, 0x5b, 0xc0, 0x18, 0x23,
- 0x07, 0x03, 0x07, 0x8c, 0x58, 0xe3, 0xd9, 0xe9, 0xf9, 0x85, 0x42, 0xda,
- 0x08, 0x3b, 0x48, 0xab, 0xdb, 0x81, 0xf3, 0x33, 0xc1, 0x7f, 0xe9, 0x0b,
- 0x73, 0xb4, 0x0a, 0x89, 0x1c, 0x9d, 0x9d, 0x5f, 0xb4, 0x11, 0x8f, 0x5c,
- 0x9b, 0x0e, 0x63, 0xa5, 0xdf, 0x57, 0x13, 0x7d, 0x3f, 0x5b, 0xc0, 0xc9,
- 0x8b, 0xd7, 0xc0, 0x40, 0x69, 0x85, 0x82, 0x50, 0x01, 0x7e, 0xed, 0xcf,
- 0x7f, 0xf6, 0x3c, 0xaa, 0x59, 0xfc, 0x6e, 0xf7, 0xf9, 0xe0, 0x99, 0x37,
- 0x54, 0x09, 0x48, 0x40, 0xb2, 0xbe, 0xff, 0x23, 0xd2, 0x62, 0x7e, 0xee,
- 0xff, 0x48, 0x7f, 0xfe, 0xbc, 0xee, 0x18, 0x25, 0xe2, 0xc4, 0x9a, 0x85,
- 0x1a, 0x5d, 0xd2, 0x06, 0x3f, 0xe3, 0xc2, 0xa9, 0x21, 0x73, 0xb1, 0x27,
- 0x11, 0x07, 0x51, 0x12, 0xab, 0x65, 0xa6, 0x6a, 0xc4, 0x92, 0xfc, 0x7a,
- 0xb8, 0xda, 0x99, 0x52, 0xdc, 0x5a, 0x5a, 0x82, 0x97, 0x24, 0x4d, 0xe3,
- 0xc5, 0x9e, 0xf9, 0x60, 0xd9, 0xda, 0x70, 0x27, 0x6c, 0x27, 0xb5, 0x34,
- 0x7c, 0xe1, 0xd0, 0x83, 0xe4, 0xc0, 0x8c, 0x21, 0xf2, 0xc1, 0x9a, 0x03,
- 0xd1, 0xe1, 0x34, 0x50, 0x92, 0x8d, 0xb8, 0xbe, 0xa5, 0x84, 0x2b, 0x88,
- 0x1c, 0x94, 0xb9, 0x48, 0x22, 0x97, 0x71, 0xa9, 0x53, 0xac, 0x6e, 0x78,
- 0x86, 0x9a, 0xe9, 0x9c, 0x08, 0x28, 0xdb, 0x5a, 0x20, 0x04, 0x63, 0x64,
- 0x96, 0x1e, 0xcc, 0x98, 0xe6, 0x16, 0x34, 0xdd, 0x90, 0xf7, 0xb9, 0xee,
- 0xda, 0x8b, 0xc5, 0x75, 0x49, 0x0d, 0x3f, 0x80, 0xd5, 0x49, 0x4f, 0xc9,
- 0x33, 0x8e, 0x6a, 0x03, 0x94, 0xc7, 0xdf, 0x52, 0x1d, 0x49, 0xeb, 0xeb,
- 0x3e, 0x74, 0xdf, 0xb6, 0x8c, 0xe4, 0x21, 0x61, 0xc0, 0x61, 0x79, 0x8e,
- 0xd7, 0x29, 0x4a, 0x96, 0x78, 0x68, 0x7e, 0x5a, 0x9e, 0xed, 0xc1, 0x60,
- 0x9b, 0xa5, 0xc7, 0x6d, 0xfa, 0x91, 0x07, 0xd0, 0x05, 0x6d, 0x40, 0x66,
- 0xd2, 0xc7, 0xb9, 0x2f, 0x76, 0x78, 0x6a, 0x59, 0x53, 0x1f, 0x2c, 0x59,
- 0xfd, 0x6d, 0x89, 0xe8, 0xf1, 0x92, 0x05, 0x09, 0x41, 0x9d, 0xe1, 0x4d,
- 0x76, 0x8a, 0x5a, 0x1c, 0x9f, 0x67, 0x41, 0x64, 0x95, 0x16, 0x57, 0x37,
- 0x89, 0xd2, 0x43, 0xed, 0x8a, 0xaf, 0x91, 0x27, 0x91, 0xd7, 0x06, 0xd7,
- 0x01, 0xcc, 0x9f, 0xb4, 0x7e, 0x30, 0xc6, 0xf5, 0xe9, 0x5e, 0x33, 0xf5,
- 0x43, 0xe1, 0x67, 0x56, 0x14, 0xd5, 0xbd, 0x90, 0xab, 0xd0, 0x2f, 0x53,
- 0x09, 0x84, 0xc0, 0x5a, 0x32, 0x31, 0x3f, 0xd9, 0xfd, 0x64, 0x9b, 0x38,
- 0xed, 0x93, 0xc1, 0x9e, 0x8b, 0x6f, 0x21, 0x1e, 0x44, 0x9b, 0xd4, 0x96,
- 0x2e, 0xc2, 0xaa, 0xcd, 0xa8, 0x20, 0x59, 0x24, 0x01, 0xe2, 0x8e, 0xde,
- 0xf7, 0x3e, 0x8f, 0x83, 0x4e, 0x05, 0x0d, 0xc9, 0x27, 0x98, 0x44, 0x89,
- 0x33, 0xde, 0x87, 0xc4, 0x32, 0x1f, 0x8f, 0xc5, 0x9c, 0x27, 0x4b, 0xad,
- 0xe2, 0x3e, 0xca, 0x49, 0x3c, 0xaa, 0x8b, 0x25, 0x1c, 0xb4, 0xec, 0x11,
- 0xb2, 0xfa, 0x4b, 0x8c, 0xa8, 0xd6, 0xa5, 0xee, 0x38, 0x80, 0x1a, 0x99,
- 0x01, 0xac, 0xfe, 0xa3, 0xfb, 0x00, 0x25, 0x9e, 0x67, 0xcf, 0x3c, 0x1f,
- 0x45, 0x24, 0xa4, 0x28, 0x0d, 0xcb, 0x2c, 0xe3, 0xfb, 0xf6, 0x45, 0xfb,
- 0x35, 0x1d, 0xdd, 0x5b, 0xd6, 0x69, 0xac, 0x8e, 0xb0, 0x66, 0xe3, 0x8b,
- 0x0f, 0x39, 0x95, 0xc5, 0x40, 0xed, 0x16, 0x78, 0x09, 0xf5, 0x03, 0x49,
- 0x27, 0xe8, 0x2a, 0xbd, 0x1a, 0xa6, 0xa1, 0x34, 0x81, 0x80, 0x05, 0x27,
- 0x85, 0x31, 0x84, 0x01, 0xd4, 0x28, 0x1a, 0xe6, 0x9d, 0xd6, 0xf6, 0x06,
- 0x61, 0x3d, 0x98, 0x7c, 0xf3, 0x50, 0xf9, 0x40, 0x85, 0x22, 0xfa, 0x9f,
- 0x47, 0x16, 0x7b, 0xff, 0x3f, 0x59, 0xfc, 0x2b, 0xc9, 0xe2, 0x79, 0x17,
- 0x59, 0x3c, 0xf9, 0x9f, 0x47, 0x16, 0x4f, 0xfe, 0x7f, 0xb2, 0xf8, 0x17,
- 0x92, 0xc5, 0xde, 0x27, 0xad, 0x4b, 0x84, 0xf5, 0x6d, 0x92, 0x02, 0x4c,
- 0xed, 0xfe, 0xbc, 0xe3, 0xb2, 0xad, 0x92, 0xa4, 0x8d, 0x79, 0xa5, 0x79,
- 0x78, 0x8a, 0xfb, 0xe8, 0x75, 0x76, 0xd4, 0xdc, 0x62, 0x24, 0x42, 0x43,
- 0x1a, 0x8c, 0x4d, 0x36, 0x8c, 0x58, 0x9a, 0x4e, 0x07, 0xc9, 0x99, 0x7b,
- 0x8b, 0xad, 0xa0, 0xfc, 0xd9, 0x52, 0xc2, 0x50, 0xb2, 0x4b, 0x5c, 0x89,
- 0x10, 0xe4, 0x7a, 0xf8, 0x12, 0x82, 0x26, 0x9b, 0xd5, 0xfa, 0x51, 0xfa,
- 0x18, 0xbf, 0x62, 0xd1, 0x11, 0x68, 0x87, 0x55, 0xf4, 0xd4, 0xe7, 0xfb,
- 0x58, 0x96, 0xe9, 0x06, 0x5d, 0xec, 0x8c, 0x9d, 0xec, 0x8b, 0x38, 0x2d,
- 0xca, 0x2c, 0x2e, 0x28, 0xf5, 0x41, 0x22, 0x07, 0xfe, 0x9e, 0x95, 0x45,
- 0x62, 0xb8, 0x07, 0x0a, 0x56, 0x87, 0xca, 0x6b, 0x26, 0x47, 0xf9, 0x0f,
- 0xb9, 0xd7, 0x48, 0x0d, 0xfb, 0x33, 0x0a, 0x52, 0x0a, 0x40, 0x21, 0xe3,
- 0xa0, 0xb8, 0xec, 0x23, 0xe4, 0xf1, 0xe7, 0x66, 0x96, 0xf4, 0x0b, 0x67,
- 0x2a, 0x03, 0xf2, 0x1b, 0xa2, 0x73, 0xc0, 0x52, 0x1d, 0x5b, 0x56, 0xc2,
- 0xc8, 0x6c, 0xa7, 0x89, 0x5f, 0x0a, 0x42, 0x93, 0x0c, 0xc7, 0xd5, 0x5b,
- 0x19, 0x74, 0x28, 0x32, 0xaf, 0xb2, 0xf9, 0xbd, 0x45, 0xc1, 0xf8, 0xd8,
- 0x09, 0x98, 0x16, 0x6e, 0xd5, 0x3c, 0xe2, 0x8a, 0xf6, 0x59, 0x30, 0x90,
- 0x1b, 0x62, 0x3c, 0xa4, 0xe6, 0x98, 0xeb, 0x8e, 0x70, 0xc2, 0x97, 0x6e,
- 0x19, 0x34, 0x5a, 0x30, 0x5c, 0x8b, 0x4d, 0xe4, 0x2b, 0x99, 0xe3, 0x10,
- 0xfd, 0x59, 0x8b, 0x0f, 0x2e, 0x83, 0x24, 0x1e, 0x8b, 0x01, 0xa8, 0x5a,
- 0x8e, 0xfe, 0xca, 0x5c, 0x0a, 0x84, 0x39, 0x4d, 0x91, 0xd6, 0xd7, 0x28,
- 0x25, 0xca, 0x65, 0x75, 0x96, 0x23, 0x75, 0x73, 0xc5, 0xcd, 0xd1, 0x87,
- 0x70, 0x69, 0xba, 0xca, 0x44, 0x4a, 0x67, 0x41, 0x44, 0x54, 0x34, 0xa9,
- 0x20, 0xb0, 0x27, 0xda, 0x77, 0x3b, 0x4f, 0xac, 0x4f, 0x55, 0x1a, 0xc2,
- 0x11, 0x6e, 0x96, 0x5b, 0x4d, 0x15, 0xf3, 0x2d, 0x80, 0x89, 0x1f, 0x5f,
- 0xd9, 0x16, 0x51, 0x6b, 0x8f, 0xdd, 0xcc, 0x55, 0xef, 0xcf, 0xfc, 0xa3,
- 0x5b, 0xa3, 0x6c, 0xa0, 0x43, 0x5b, 0xb4, 0x23, 0x3f, 0x8e, 0xa3, 0x81,
- 0xd7, 0x57, 0x75, 0xf0, 0x92, 0xbf, 0x95, 0x1e, 0x1e, 0x6e, 0x1b, 0x7e,
- 0xe4, 0x5f, 0xd0, 0xc1, 0xbb, 0xb9, 0x21, 0x0b, 0x18, 0x99, 0x2f, 0x1c,
- 0x4e, 0x51, 0x72, 0x97, 0x96, 0x73, 0x09, 0x55, 0x14, 0x9b, 0xa7, 0x5a,
- 0xbf, 0x12, 0x4e, 0x11, 0x63, 0x38, 0x9b, 0x0e, 0xc9, 0x3a, 0xbd, 0x64,
- 0x53, 0x5e, 0x02, 0x83, 0x1e, 0xef, 0xad, 0xe4, 0x83, 0x2a, 0xee, 0xa8,
- 0x85, 0xf6, 0x2d, 0x8a, 0xda, 0x3c, 0x9a, 0xc9, 0x84, 0x55, 0xb3, 0x92,
- 0x2f, 0x87, 0x0e, 0xc4, 0x7a, 0xdb, 0x08, 0x2b, 0xd1, 0xc6, 0xcd, 0x72,
- 0x83, 0xcb, 0x05, 0x8b, 0xe9, 0x8a, 0x85, 0x22, 0x0c, 0x4d, 0x31, 0xb2,
- 0x8c, 0x72, 0xa5, 0xe7, 0x76, 0x08, 0x10, 0xe2, 0x53, 0x70, 0xe5, 0x39,
- 0x08, 0xd5, 0xdb, 0x22, 0x07, 0x3e, 0x30, 0x12, 0x5c, 0x3f, 0xba, 0x1a,
- 0x77, 0xd3, 0xce, 0xdb, 0x0b, 0xaa, 0xfb, 0xa5, 0x55, 0x98, 0x67, 0x12,
- 0xc7, 0xdf, 0x39, 0xa3, 0x04, 0x29, 0x93, 0x0c, 0x90, 0x40, 0x44, 0x3c,
- 0x4f, 0x5d, 0xf9, 0x28, 0xbf, 0x0d, 0x18, 0xa5, 0x14, 0xb3, 0x61, 0x75,
- 0x65, 0x9c, 0x75, 0x80, 0xa7, 0x7a, 0xb8, 0xed, 0xc7, 0xf0, 0x36, 0xf6,
- 0xa2, 0xfb, 0x44, 0x32, 0xd2, 0x1f, 0xbf, 0x55, 0x3a, 0x2e, 0x15, 0xbd,
- 0x53, 0x02, 0xce, 0xa8, 0xb8, 0x9d, 0x76, 0x39, 0x22, 0x2d, 0x6d, 0x05,
- 0x25, 0x0b, 0xd2, 0xd2, 0x5d, 0xf8, 0x76, 0x89, 0xd0, 0x13, 0x81, 0xc2,
- 0xe9, 0xe0, 0x50, 0x8f, 0x4c, 0xe5, 0xc3, 0x7d, 0x3f, 0x9d, 0xdf, 0xb3,
- 0x13, 0xb2, 0x73, 0x02, 0x2e, 0x2b, 0x1b, 0xf9, 0x5d, 0x44, 0x34, 0xb9,
- 0xd4, 0xff, 0x69, 0xc5, 0x7d, 0x5b, 0x28, 0x9c, 0x81, 0x50, 0xcf, 0x96,
- 0x91, 0x75, 0x14, 0x8f, 0xf2, 0x45, 0x2e, 0x30, 0xf9, 0xb5, 0xc7, 0x55,
- 0x34, 0xf7, 0x98, 0x1e, 0x13, 0x01, 0x45, 0x53, 0x54, 0x34, 0xd0, 0x16,
- 0x3b, 0xc6, 0xba, 0x5d, 0x11, 0xdb, 0x2e, 0x9f, 0xb3, 0xe4, 0xea, 0x59,
- 0x7d, 0xe2, 0x75, 0x8b, 0x16, 0x2a, 0xda, 0x93, 0xae, 0x29, 0xa3, 0x8e,
- 0xee, 0x83, 0x13, 0xe6, 0xce, 0x57, 0x62, 0x78, 0x25, 0xe1, 0x4c, 0x6d,
- 0x66, 0xab, 0x1c, 0x4b, 0x32, 0x49, 0x9d, 0xe3, 0x3b, 0xc9, 0x17, 0x42,
- 0x9b, 0xc0, 0xc9, 0x65, 0x36, 0xc3, 0xcb, 0x12, 0xf4, 0x25, 0x18, 0xd1,
- 0xd1, 0x84, 0x61, 0x1d, 0x17, 0x54, 0x63, 0x79, 0x4e, 0x8f, 0x83, 0x97,
- 0xeb, 0xda, 0x83, 0xd4, 0x5d, 0xe9, 0x2a, 0x1a, 0x00, 0xbe, 0x8d, 0x8e,
- 0x78, 0x60, 0x79, 0x33, 0xaf, 0x43, 0xd6, 0x68, 0x82, 0xb0, 0xb9, 0x07,
- 0xc8, 0x3a, 0x5c, 0x25, 0x89, 0xb1, 0x6b, 0x8f, 0x40, 0x4d, 0xe5, 0xbf,
- 0x6e, 0x91, 0xa4, 0xff, 0x8e, 0x55, 0xd2, 0xbe, 0x3a, 0xb1, 0x82, 0xc3,
- 0x65, 0x8a, 0x66, 0xb4, 0x2a, 0x5f, 0xa5, 0xf3, 0xac, 0xa2, 0xab, 0x47,
- 0x53, 0x57, 0x30, 0xc5, 0x28, 0xf3, 0x3b, 0x98, 0xf0, 0x83, 0x53, 0x74,
- 0x03, 0x6a, 0xcc, 0xb2, 0x2d, 0x84, 0xaf, 0x18, 0x88, 0x42, 0x89, 0x37,
- 0x08, 0xe3, 0x41, 0xad, 0xd9, 0x85, 0x26, 0x7e, 0xfc, 0xf4, 0x39, 0x18,
- 0xf2, 0x9f, 0xb9, 0xa7, 0x08, 0xc3, 0x6d, 0xec, 0x28, 0xba, 0x68, 0x4c,
- 0xe5, 0x41, 0x27, 0xb0, 0x4e, 0x63, 0x77, 0xb0, 0x03, 0xde, 0xfb, 0xe1,
- 0x1e, 0xa1, 0x68, 0xfb, 0x7c, 0x93, 0xfd, 0xdc, 0x66, 0xc1, 0xef, 0x9c,
- 0x18, 0x1f, 0x94, 0x81, 0x16, 0x1f, 0x1c, 0xbf, 0x6f, 0x23, 0xb3, 0x92,
- 0x9c, 0x1e, 0x67, 0x52, 0xc1, 0x83, 0x56, 0x17, 0x6c, 0xc9, 0xeb, 0xa0,
- 0x5e, 0x0b, 0x27, 0xca, 0xe3, 0xe5, 0xdd, 0x9d, 0xcf, 0x76, 0x3a, 0x23,
- 0x24, 0x20, 0x50, 0x58, 0x40, 0xd0, 0x38, 0x0b, 0x2a, 0x87, 0xe6, 0xbe,
- 0x6a, 0x54, 0xe0, 0x60, 0x33, 0xe7, 0x28, 0xfb, 0x19, 0xbb, 0xee, 0x01,
- 0x78, 0x1d, 0x73, 0xb5, 0xc6, 0xab, 0x05, 0xdb, 0x61, 0xb8, 0x99, 0x77,
- 0xce, 0x39, 0xc6, 0x9c, 0xf7, 0xad, 0x23, 0xeb, 0xdc, 0x47, 0x22, 0x48,
- 0xff, 0xbc, 0x2e, 0x81, 0x28, 0xef, 0x8c, 0xde, 0xa1, 0x84, 0xa7, 0x0f,
- 0xee, 0x36, 0x36, 0x65, 0x39, 0x7a, 0xa0, 0x26, 0x12, 0xdb, 0x58, 0x25,
- 0xa0, 0xf7, 0xc1, 0x72, 0x48, 0x2e, 0x1d, 0x49, 0xe2, 0x58, 0x35, 0x08,
- 0x38, 0x2a, 0x9b, 0xb5, 0xaa, 0x1a, 0xd2, 0x6f, 0x5c, 0x30, 0x6a, 0xf3,
- 0x00, 0x26, 0xd7, 0x4f, 0x07, 0x4f, 0x9e, 0x73, 0x22, 0xbe, 0xd4, 0x35,
- 0x0e, 0xd6, 0x9e, 0x8e, 0x49, 0xc1, 0xd0, 0x71, 0x92, 0xb6, 0xae, 0x21,
- 0x6c, 0xb2, 0xfa, 0xab, 0xe6, 0xe1, 0x54, 0x91, 0x45, 0xab, 0x44, 0x11,
- 0x2a, 0x2b, 0xc0, 0x0d, 0xd7, 0xcc, 0xdf, 0x82, 0x5f, 0xe1, 0x8a, 0x7d,
- 0x91, 0xfd, 0x38, 0xe5, 0x45, 0x4c, 0xe1, 0xaa, 0x9c, 0x4f, 0x06, 0xed,
- 0x74, 0xd7, 0x85, 0xdf, 0x01, 0xab, 0x66, 0x1e, 0x64, 0xb7, 0x45, 0x60,
- 0xcc, 0x23, 0x63, 0xf1, 0x23, 0x14, 0x4f, 0xe5, 0x2a, 0x93, 0x06, 0x39,
- 0xc0, 0xd5, 0xf3, 0x16, 0xf7, 0x40, 0x68, 0xcd, 0x47, 0x55, 0x75, 0xbd,
- 0x47, 0xd4, 0xb0, 0x37, 0xf8, 0x4c, 0x42, 0x88, 0xc4, 0x21, 0xb0, 0x02,
- 0x9d, 0x4d, 0x21, 0x45, 0x5a, 0xed, 0x9d, 0x2e, 0xb2, 0xf9, 0x70, 0x78,
- 0x12, 0x42, 0x16, 0xfc, 0xcd, 0xe5, 0x6a, 0x49, 0x66, 0x96, 0x83, 0x4c,
- 0xe1, 0x28, 0x64, 0x5f, 0x14, 0xb7, 0x08, 0x94, 0x1a, 0x07, 0x19, 0x6e,
- 0xe5, 0x0a, 0x23, 0xb8, 0x83, 0xb0, 0xf8, 0x66, 0x18, 0xb1, 0x80, 0x3a,
- 0xd5, 0x1a, 0xb5, 0xa4, 0x08, 0xfe, 0x88, 0xa0, 0x0b, 0xab, 0xb1, 0x76,
- 0x40, 0xce, 0x1a, 0x40, 0x80, 0x0e, 0xa2, 0xab, 0xc4, 0x67, 0x95, 0xa5,
- 0x25, 0x49, 0xb5, 0xb0, 0xbd, 0xfb, 0xc9, 0xfd, 0x2f, 0x6e, 0x17, 0x05,
- 0x79, 0x7d, 0x49, 0x8e, 0x0e, 0xd7, 0xf4, 0xf6, 0x50, 0xfc, 0xd3, 0x43,
- 0x20, 0xa7, 0xb3, 0x5b, 0xa8, 0x1c, 0xe5, 0x75, 0x99, 0x6a, 0xb9, 0x20,
- 0x2d, 0x61, 0x12, 0x78, 0xce, 0x01, 0x90, 0x50, 0x26, 0xfc, 0x5a, 0xa7,
- 0xb7, 0x76, 0x90, 0xfc, 0x2f, 0x74, 0xaa, 0x6f, 0x8b, 0xe8, 0x88, 0x70,
- 0x8d, 0x2f, 0x8f, 0x5e, 0x9f, 0x9e, 0x1f, 0x35, 0x81, 0xda, 0xa4, 0x56,
- 0x82, 0x14, 0x8a, 0x68, 0x8f, 0xee, 0xaf, 0x9c, 0x41, 0xd8, 0x00, 0x99,
- 0xb1, 0xaa, 0x0b, 0x67, 0xdf, 0xbd, 0x0a, 0x9c, 0x66, 0x56, 0x5c, 0x27,
- 0xc0, 0x00, 0x2b, 0x3a, 0x6a, 0x45, 0xb1, 0xeb, 0x73, 0xcb, 0xe3, 0x74,
- 0xbb, 0xf1, 0x09, 0x3a, 0x32, 0x82, 0x77, 0x4c, 0x46, 0x46, 0xf6, 0x52,
- 0x55, 0xb1, 0x91, 0xc8, 0x35, 0x1a, 0x39, 0xce, 0x33, 0x86, 0xde, 0x56,
- 0x47, 0x86, 0x48, 0x9b, 0xa9, 0x44, 0xe7, 0x72, 0xc8, 0xee, 0x20, 0x89,
- 0x3b, 0xb2, 0xb0, 0x15, 0xf4, 0xd2, 0x65, 0x52, 0xe3, 0x80, 0x47, 0x09,
- 0xd0, 0x14, 0x66, 0x1d, 0x45, 0x67, 0xf6, 0x92, 0xbf, 0x4a, 0x1d, 0xac,
- 0x4b, 0x01, 0x92, 0xf6, 0x0b, 0xd9, 0x21, 0x1c, 0x50, 0x9f, 0x9b, 0x15,
- 0x2b, 0xf9, 0xc1, 0x50, 0xdd, 0x37, 0x89, 0xdd, 0x86, 0x1b, 0x7f, 0xde,
- 0xf0, 0xf6, 0x10, 0xa9, 0x82, 0xd1, 0x9d, 0x5a, 0xea, 0xf1, 0x31, 0xb6,
- 0x1e, 0x8b, 0x31, 0xb3, 0x19, 0x0f, 0xac, 0xd2, 0x72, 0xb7, 0x5b, 0xdf,
- 0xea, 0xa8, 0x9a, 0xfb, 0xcd, 0x2a, 0x83, 0xea, 0x4d, 0x60, 0xad, 0xc8,
- 0x59, 0x13, 0x14, 0x6f, 0x84, 0x99, 0x44, 0x5c, 0xc9, 0xc7, 0xc4, 0xa0,
- 0xec, 0xb0, 0x56, 0x44, 0xfb, 0xc1, 0x92, 0x50, 0x81, 0xe6, 0x56, 0xdd,
- 0xcf, 0x6b, 0x84, 0x3a, 0x08, 0xde, 0xc7, 0xb8, 0x28, 0x11, 0x1d, 0x92,
- 0xc4, 0x64, 0xec, 0xf6, 0x0b, 0x78, 0xe8, 0x6c, 0x2b, 0x7d, 0xfe, 0xec,
- 0x39, 0x1f, 0x3c, 0x44, 0x51, 0x29, 0x54, 0x84, 0x66, 0xd7, 0x20, 0x6d,
- 0xa9, 0x39, 0xe6, 0x7e, 0x14, 0x7f, 0xcb, 0x6d, 0xa9, 0x3a, 0x36, 0xca,
- 0xa6, 0x52, 0x8a, 0x63, 0x18, 0x34, 0x32, 0x78, 0x30, 0x5c, 0x69, 0x55,
- 0x24, 0x92, 0x5c, 0x2d, 0x5a, 0xf1, 0x89, 0xf6, 0x21, 0xbd, 0xd1, 0x80,
- 0x47, 0x3d, 0x0d, 0xd2, 0x78, 0xcf, 0x76, 0xff, 0x81, 0xd1, 0x29, 0x29,
- 0x70, 0x54, 0x2b, 0x11, 0x26, 0xfb, 0x44, 0x37, 0xff, 0xb4, 0xd5, 0x2c,
- 0x09, 0xcd, 0xfe, 0xf5, 0x7c, 0xbe, 0xcc, 0x1a, 0x60, 0x84, 0xab, 0x9a,
- 0xbb, 0x04, 0xc3, 0xa2, 0xc5, 0x6b, 0x27, 0x8f, 0x8a, 0x27, 0xb0, 0x2e,
- 0x16, 0x49, 0x6a, 0x75, 0x7e, 0x75, 0xef, 0xe3, 0x78, 0x7b, 0x54, 0x8b,
- 0x42, 0xa6, 0xd2, 0x48, 0xca, 0x36, 0x98, 0xc0, 0x40, 0x42, 0xde, 0x1c,
- 0x11, 0x47, 0x4a, 0x8d, 0x7a, 0x49, 0x22, 0xea, 0x82, 0xe6, 0x4a, 0xd7,
- 0x64, 0x07, 0x6b, 0xfa, 0x5b, 0x93, 0x25, 0xe9, 0x0d, 0xa1, 0xe7, 0xc8,
- 0x02, 0x2b, 0x71, 0x94, 0x95, 0xd9, 0x39, 0x66, 0x46, 0x14, 0x12, 0xa3,
- 0x28, 0x48, 0x31, 0x7b, 0x85, 0x8f, 0x45, 0xdb, 0x5c, 0x7f, 0x8e, 0x04,
- 0xdc, 0x7e, 0x55, 0xdf, 0x8b, 0x19, 0x25, 0x9b, 0x31, 0x3e, 0x0f, 0x8a,
- 0xac, 0x23, 0xf4, 0x4e, 0xab, 0x8a, 0x21, 0x5b, 0x2f, 0x22, 0x60, 0x94,
- 0xa1, 0x1f, 0xb0, 0x49, 0xcc, 0x2c, 0xfa, 0xaa, 0x75, 0x99, 0xf5, 0x90,
- 0x93, 0xf7, 0x1c, 0x94, 0x98, 0x2c, 0x8e, 0x4c, 0x69, 0x25, 0xc5, 0xc5,
- 0x58, 0x50, 0xd7, 0x57, 0xe5, 0x42, 0x70, 0x5c, 0x92, 0x0e, 0x60, 0x88,
- 0x30, 0xd4, 0x56, 0x1e, 0x35, 0x4e, 0xe1, 0x8a, 0x9a, 0xca, 0xbb, 0xc7,
- 0xaf, 0x1a, 0x18, 0x60, 0x92, 0x08, 0x30, 0xba, 0xef, 0x6e, 0xce, 0x23,
- 0x90, 0x71, 0x78, 0x98, 0xbf, 0x4b, 0x5c, 0x53, 0x5e, 0x66, 0x1e, 0x59,
- 0x12, 0x10, 0xbe, 0xeb, 0x6e, 0x4e, 0x5b, 0x91, 0x08, 0x33, 0x69, 0xc3,
- 0x1a, 0x06, 0xa9, 0x18, 0x6a, 0x32, 0x13, 0x03, 0x63, 0x5f, 0x5a, 0x37,
- 0x71, 0x78, 0xe7, 0xf5, 0xac, 0x98, 0x48, 0xe8, 0xd1, 0xa3, 0x6b, 0x31,
- 0x2b, 0x26, 0x01, 0xdb, 0x54, 0x03, 0x71, 0x15, 0xe2, 0x93, 0xa2, 0x9d,
- 0x51, 0xee, 0x22, 0xd0, 0xbb, 0x9b, 0xf3, 0x53, 0x95, 0xb2, 0x9a, 0xdc,
- 0x3c, 0xde, 0x0c, 0xa7, 0x30, 0x4f, 0x8a, 0x71, 0x1d, 0xcc, 0x80, 0x1f,
- 0xe8, 0x6e, 0x4e, 0x83, 0x21, 0xe2, 0x99, 0xb1, 0xa5, 0x10, 0x91, 0xd1,
- 0x0f, 0xcf, 0x4c, 0x1e, 0x8c, 0x36, 0x99, 0x3e, 0x14, 0x26, 0x1e, 0xed,
- 0xf0, 0xea, 0x99, 0x75, 0xed, 0x30, 0x46, 0xd0, 0xde, 0x60, 0x0b, 0x9b,
- 0x29, 0x93, 0x4e, 0x46, 0xee, 0xa1, 0xf1, 0x64, 0x75, 0x34, 0x28, 0xfc,
- 0x81, 0x0d, 0xd6, 0x5e, 0xa2, 0x55, 0x98, 0xce, 0xb5, 0x44, 0xcb, 0x7b,
- 0x01, 0x1e, 0x61, 0x28, 0xd4, 0xfa, 0xfd, 0xc3, 0x0b, 0x32, 0x9d, 0x5b,
- 0xd9, 0x38, 0x40, 0x5c, 0x39, 0x66, 0xa1, 0x39, 0x3d, 0x69, 0xb3, 0xa0,
- 0x9c, 0x02, 0x97, 0xad, 0x20, 0x7b, 0xdf, 0x9f, 0xaf, 0xcf, 0xb5, 0x28,
- 0x72, 0x01, 0x3d, 0x77, 0x61, 0xc9, 0xe1, 0x10, 0x93, 0xae, 0x3a, 0x4e,
- 0x41, 0xde, 0x61, 0x34, 0xc5, 0xd9, 0x0d, 0x9b, 0x06, 0x9d, 0x68, 0xf0,
- 0x7e, 0x75, 0xd4, 0x16, 0xe8, 0x58, 0x1e, 0xf7, 0x74, 0x2c, 0xb3, 0x72,
- 0xe1, 0x88, 0x2e, 0xff, 0xe3, 0xf1, 0xdd, 0x6e, 0x76, 0xe9, 0xce, 0x64,
- 0x7b, 0x7c, 0x8b, 0xbb, 0x89, 0x75, 0xce, 0xbf, 0x5a, 0xc7, 0x61, 0xf1,
- 0x74, 0x87, 0x1b, 0xc3, 0xa2, 0xab, 0x34, 0x76, 0x69, 0x82, 0xf5, 0x8a,
- 0xa5, 0xe8, 0xce, 0x5a, 0x89, 0x3a, 0xa7, 0xc7, 0xb8, 0x39, 0xab, 0xab,
- 0x80, 0xed, 0x58, 0xbd, 0x38, 0xfa, 0xb4, 0x1f, 0xa2, 0xf0, 0xf7, 0x10,
- 0x3e, 0x31, 0x5e, 0xa0, 0xd5, 0x0c, 0x4f, 0x7b, 0x6d, 0x1d, 0x88, 0x49,
- 0xc6, 0x25, 0x2b, 0x95, 0x14, 0x38, 0xb1, 0x49, 0x1a, 0x32, 0xbe, 0xf7,
- 0x10, 0x21, 0xad, 0x5c, 0xe3, 0x72, 0xf6, 0xc8, 0x21, 0xa7, 0x07, 0xfc,
- 0xac, 0x38, 0xae, 0x39, 0x98, 0x55, 0x74, 0x32, 0xf5, 0x18, 0xaf, 0x58,
- 0xf9, 0x55, 0x23, 0x68, 0x50, 0xe1, 0x43, 0x23, 0xe1, 0x07, 0xbb, 0x06,
- 0x13, 0x54, 0xba, 0x64, 0x37, 0xd2, 0x7d, 0xc0, 0x29, 0xbb, 0x9b, 0xd3,
- 0xe1, 0xfa, 0xf7, 0x74, 0x79, 0x7a, 0x0e, 0xcf, 0x47, 0x4d, 0x27, 0xac,
- 0x35, 0xc7, 0xb4, 0x61, 0x07, 0xfc, 0x17, 0x31, 0x08, 0x56, 0xd7, 0xa6,
- 0xc1, 0x21, 0xec, 0x97, 0x48, 0x7c, 0x42, 0xac, 0xdb, 0x0b, 0xfc, 0xe8,
- 0xcc, 0xf0, 0xd8, 0x36, 0x0d, 0x6b, 0x9b, 0xd1, 0x13, 0x11, 0x06, 0x0c,
- 0xbf, 0x2d, 0xb3, 0x13, 0x46, 0xc4, 0xd6, 0x68, 0xb9, 0x4d, 0x0e, 0xac,
- 0x94, 0x88, 0x7e, 0x96, 0x11, 0x38, 0xab, 0x34, 0xba, 0xd4, 0x69, 0x6d,
- 0xb6, 0xb4, 0x00, 0x1e, 0x8c, 0x23, 0xdb, 0xbb, 0x83, 0xdd, 0x9e, 0x69,
- 0x63, 0x2a, 0x2f, 0x59, 0xbc, 0x2c, 0x7f, 0x92, 0x6a, 0xe6, 0x7b, 0x02,
- 0xe0, 0xc6, 0xb6, 0x9d, 0xe1, 0x9c, 0xfb, 0xad, 0xe2, 0xbc, 0x1d, 0xf8,
- 0xd7, 0xbd, 0x24, 0xcf, 0xb0, 0xd6, 0xd1, 0x02, 0xee, 0xf4, 0x9f, 0x3e,
- 0x7f, 0xde, 0xb8, 0xd2, 0x42, 0xbd, 0xf9, 0xd9, 0xce, 0x8e, 0x80, 0x7d,
- 0xb7, 0x5f, 0xa3, 0x2f, 0xfa, 0xcf, 0xf1, 0x62, 0xf3, 0x35, 0x29, 0x34,
- 0xb1, 0xfa, 0xbd, 0x3e, 0x7f, 0xd3, 0xd1, 0x1d, 0xec, 0x29, 0x2b, 0xdf,
- 0x7a, 0xce, 0xdd, 0x75, 0xbc, 0x85, 0x87, 0x65, 0x1d, 0x8b, 0xcb, 0x4b,
- 0x8e, 0x22, 0xe3, 0x27, 0xc1, 0xf9, 0x49, 0x18, 0xbc, 0x4b, 0xcb, 0x49,
- 0x3c, 0xdd, 0x9d, 0x5e, 0x7f, 0x77, 0xd5, 0x74, 0x61, 0x11, 0xe0, 0x91,
- 0x60, 0x3b, 0x59, 0x81, 0x22, 0xe1, 0x79, 0xf3, 0xeb, 0xad, 0xae, 0xd9,
- 0x7f, 0xba, 0xb3, 0xd3, 0xfb, 0x84, 0x7f, 0x3e, 0x7f, 0xbe, 0xd2, 0x41,
- 0xe8, 0xfb, 0x78, 0x62, 0x53, 0x6b, 0x8c, 0x96, 0xda, 0xe9, 0x68, 0x7d,
- 0x97, 0x5a, 0xdd, 0x7d, 0xfe, 0xbc, 0xc7, 0xbd, 0x3c, 0xfb, 0xa8, 0xd6,
- 0xeb, 0xbb, 0xc2, 0x5b, 0xb6, 0xf8, 0x75, 0x4f, 0x8e, 0x55, 0x6b, 0x06,
- 0xac, 0x0d, 0xb0, 0x0b, 0x9a, 0x01, 0xd0, 0x93, 0xc0, 0xd6, 0xe3, 0xb3,
- 0x10, 0xc2, 0xc2, 0x96, 0x08, 0xd4, 0x58, 0x00, 0xae, 0x02, 0x0a, 0xa6,
- 0x28, 0x2c, 0xa9, 0x0f, 0x71, 0x31, 0x67, 0x8a, 0xcf, 0x12, 0x3c, 0x15,
- 0xcb, 0xe5, 0x55, 0x5e, 0x7b, 0x30, 0x8b, 0x2a, 0xd9, 0x24, 0x72, 0x11,
- 0x10, 0x5d, 0x41, 0xe9, 0x56, 0xdf, 0xf2, 0x06, 0xa2, 0x55, 0x05, 0x67,
- 0x6f, 0x83, 0x95, 0x09, 0x4e, 0xb5, 0xce, 0xb3, 0xe9, 0xc4, 0x59, 0x97,
- 0x2c, 0xe7, 0x4c, 0x9e, 0xec, 0xcb, 0x33, 0x72, 0xd0, 0xa0, 0x05, 0x7e,
- 0xd0, 0x82, 0x8d, 0x1c, 0x0a, 0xd3, 0xea, 0x35, 0x71, 0x30, 0xe9, 0x3e,
- 0x2d, 0x45, 0x6a, 0x23, 0x21, 0x36, 0xd5, 0x4f, 0x73, 0xa3, 0x0a, 0x0a,
- 0x04, 0x9a, 0x3d, 0x2f, 0xac, 0xf4, 0x3e, 0xc9, 0xac, 0xee, 0x56, 0x0b,
- 0xd9, 0xd1, 0xbd, 0x2f, 0x26, 0x9c, 0x65, 0xd9, 0x02, 0xa7, 0x42, 0xce,
- 0xa1, 0x41, 0x1c, 0x48, 0xc6, 0x31, 0x6b, 0xb5, 0x77, 0x69, 0x99, 0x19,
- 0x38, 0x0b, 0x29, 0xdb, 0xc6, 0x01, 0x5c, 0x41, 0x5d, 0xcd, 0xf8, 0x51,
- 0x08, 0x3d, 0x1f, 0xeb, 0x69, 0xe5, 0xd1, 0xc4, 0xd3, 0x6c, 0xd5, 0x54,
- 0x53, 0xcd, 0x29, 0x93, 0xa0, 0xdc, 0x46, 0x72, 0x08, 0xdf, 0x37, 0xcc,
- 0x3c, 0x2c, 0x1c, 0x57, 0x0a, 0xd7, 0xac, 0xb5, 0x32, 0x42, 0xae, 0x32,
- 0xb1, 0x3a, 0x4a, 0x25, 0x18, 0x4b, 0x83, 0xf7, 0xb3, 0x00, 0x3b, 0x02,
- 0x72, 0x14, 0xff, 0x26, 0x8b, 0xef, 0xab, 0xb8, 0x99, 0x9d, 0x01, 0x06,
- 0x6d, 0x29, 0xab, 0x03, 0x08, 0xc7, 0xc6, 0x8e, 0xd1, 0x5e, 0x39, 0x26,
- 0x48, 0x9b, 0x96, 0x6c, 0x06, 0x31, 0x27, 0xa0, 0xad, 0x40, 0xef, 0xb6,
- 0x82, 0x4b, 0x85, 0x04, 0x50, 0x6c, 0x0d, 0x64, 0x00, 0xf0, 0xed, 0xc9,
- 0x4e, 0x00, 0x62, 0x33, 0xdc, 0xd2, 0xec, 0x43, 0x8d, 0x1a, 0x69, 0x78,
- 0xd2, 0xee, 0xa5, 0xe1, 0xf1, 0xff, 0x3e, 0x1a, 0xfc, 0x33, 0x42, 0xc7,
- 0x5b, 0x41, 0xb8, 0xe7, 0x41, 0x9a, 0x2c, 0xbf, 0xd6, 0x89, 0x6a, 0x2f,
- 0x89, 0xcf, 0xc1, 0xd9, 0xf2, 0xfa, 0x77, 0x10, 0x40, 0x0e, 0x9a, 0x41,
- 0x8e, 0xb7, 0x03, 0xce, 0xed, 0xc7, 0xa1, 0xb3, 0xb3, 0x45, 0x47, 0x76,
- 0x75, 0xcf, 0x30, 0x67, 0x0d, 0x3d, 0x97, 0x6d, 0x1c, 0x2e, 0x12, 0x47,
- 0x63, 0xf3, 0x63, 0x59, 0x24, 0x48, 0xfb, 0x96, 0x6d, 0xe7, 0x52, 0xc1,
- 0x2c, 0x30, 0x61, 0x01, 0xb8, 0xaf, 0xd0, 0x48, 0xcf, 0x37, 0x31, 0xe9,
- 0xa4, 0x78, 0xbc, 0x13, 0x97, 0x41, 0x60, 0x98, 0xc2, 0x64, 0x56, 0x27,
- 0x0e, 0xc9, 0xfc, 0xa6, 0x99, 0x21, 0xc6, 0xc0, 0xb3, 0x15, 0x16, 0xc5,
- 0xea, 0x48, 0x88, 0xa9, 0xe8, 0xc2, 0x2f, 0x25, 0xe3, 0x54, 0xba, 0x06,
- 0xb8, 0xa3, 0x28, 0x10, 0x02, 0x14, 0x59, 0x79, 0x08, 0x60, 0xa0, 0xa0,
- 0x59, 0xb5, 0x4d, 0x79, 0x3c, 0x2a, 0x29, 0xcf, 0xc8, 0x27, 0x30, 0x2e,
- 0x30, 0x3c, 0x86, 0x4f, 0x28, 0xa8, 0xe2, 0x0a, 0x3c, 0xd9, 0xd5, 0x24,
- 0xc4, 0x14, 0x6c, 0xae, 0xc2, 0x9d, 0x0b, 0x0a, 0x74, 0x35, 0xb9, 0xe1,
- 0xd2, 0x71, 0xb1, 0x2a, 0xe9, 0x54, 0xad, 0x16, 0x0c, 0x8e, 0x07, 0x77,
- 0x87, 0x4b, 0x8b, 0x86, 0x0d, 0x2d, 0x9a, 0x69, 0x8d, 0x5c, 0xcc, 0xa0,
- 0x1a, 0x1d, 0xb2, 0x9f, 0x91, 0x9d, 0x07, 0x91, 0xde, 0xce, 0xa6, 0x66,
- 0x01, 0xa9, 0x69, 0x92, 0x0d, 0xfc, 0xa8, 0xc3, 0x19, 0x41, 0x89, 0x50,
- 0xbf, 0x35, 0x2f, 0x5d, 0x8f, 0x56, 0xe2, 0x2e, 0xaa, 0xfa, 0xd8, 0xf0,
- 0x67, 0x07, 0x19, 0xde, 0x1c, 0x46, 0xf3, 0x50, 0xb2, 0x9d, 0x18, 0x30,
- 0x9b, 0xe1, 0x3a, 0xea, 0x06, 0xe0, 0x45, 0xe5, 0x59, 0xbb, 0xc4, 0xfa,
- 0xaa, 0xd3, 0x52, 0x3b, 0xc9, 0x52, 0x43, 0x28, 0xa1, 0x4d, 0x25, 0x72,
- 0x8d, 0xb3, 0xcc, 0xef, 0xb2, 0x32, 0xf3, 0x98, 0xbd, 0x88, 0x55, 0xa3,
- 0xd3, 0x37, 0x48, 0x86, 0x05, 0x3d, 0xdf, 0x51, 0x95, 0xcb, 0x12, 0x6c,
- 0x1a, 0x18, 0x9e, 0x18, 0x8e, 0xaf, 0x9b, 0xcd, 0xf1, 0xeb, 0x62, 0x00,
- 0x6e, 0xce, 0xb7, 0x03, 0xf6, 0x8b, 0x0d, 0xb5, 0xa3, 0xcc, 0xed, 0xaa,
- 0x83, 0xbb, 0x13, 0x86, 0xb3, 0xde, 0x27, 0x3a, 0xeb, 0xaf, 0x6b, 0xb2,
- 0x33, 0x23, 0x92, 0x05, 0xcd, 0x3d, 0x94, 0x39, 0xb8, 0xfb, 0xbc, 0x19,
- 0x53, 0xc8, 0x85, 0xe1, 0xa6, 0xc4, 0xcf, 0x5f, 0xb0, 0xfb, 0x11, 0xde,
- 0xc7, 0xfd, 0x15, 0x49, 0x66, 0x67, 0xe6, 0xd3, 0x4a, 0xd9, 0x94, 0x4c,
- 0xfc, 0x73, 0x16, 0xa4, 0x1d, 0x5d, 0x8a, 0x38, 0xe8, 0x26, 0x8a, 0x24,
- 0x1f, 0x97, 0x38, 0xb5, 0x48, 0xf3, 0x72, 0x10, 0xf9, 0x34, 0xcd, 0x25,
- 0xe4, 0xd3, 0x45, 0x5c, 0x51, 0x6c, 0x30, 0x24, 0x8b, 0x44, 0xdd, 0xac,
- 0xb6, 0x2c, 0xd3, 0x6c, 0xb5, 0xdc, 0xee, 0x46, 0x22, 0x68, 0x7b, 0x5a,
- 0xcc, 0x00, 0xd6, 0x06, 0x57, 0x1a, 0x73, 0x6e, 0x39, 0x03, 0x3a, 0xe9,
- 0x49, 0x50, 0x8f, 0x23, 0x02, 0x09, 0x52, 0x1f, 0x0a, 0x03, 0x2f, 0xf0,
- 0xe9, 0xe7, 0x63, 0x45, 0xf3, 0x2b, 0x24, 0x1f, 0x76, 0x3b, 0xab, 0xc7,
- 0xdb, 0x82, 0xbd, 0x95, 0x80, 0xc2, 0xe7, 0xa9, 0xe4, 0xc0, 0x99, 0x76,
- 0xd0, 0x46, 0x13, 0x98, 0xb7, 0x4c, 0xe3, 0xec, 0xe0, 0x11, 0xfe, 0x11,
- 0x7a, 0x6b, 0x7d, 0xca, 0x58, 0x90, 0xeb, 0xdf, 0x61, 0xa0, 0xb5, 0xe4,
- 0x0e, 0xb7, 0xdc, 0xce, 0xd3, 0x69, 0xf0, 0x56, 0xcd, 0xda, 0x45, 0xfc,
- 0x82, 0x20, 0x7a, 0x4a, 0x9e, 0x4c, 0x57, 0x4d, 0xb9, 0x79, 0x16, 0x5c,
- 0x3b, 0x2e, 0xd6, 0xae, 0x89, 0x2c, 0xe4, 0x50, 0x16, 0x75, 0xd9, 0x74,
- 0x1c, 0x51, 0xec, 0xd7, 0x4c, 0x07, 0x21, 0x71, 0x73, 0x06, 0x1f, 0x01,
- 0x18, 0x9f, 0x8f, 0x8f, 0xac, 0xf2, 0xd8, 0x07, 0x92, 0x3d, 0x9b, 0xc8,
- 0x47, 0xd2, 0xb2, 0x9a, 0x47, 0xe3, 0x8d, 0xd3, 0xad, 0x7d, 0x38, 0x78,
- 0x68, 0x77, 0xf0, 0xa4, 0x79, 0x06, 0x58, 0x25, 0xec, 0x2a, 0xc9, 0x71,
- 0x2c, 0x45, 0x9b, 0xc0, 0x0d, 0xa5, 0x8e, 0x08, 0xc2, 0xc3, 0x98, 0xdf,
- 0x8b, 0x91, 0x21, 0xd3, 0x50, 0x21, 0xf1, 0x31, 0x62, 0xcd, 0x78, 0x9d,
- 0xa4, 0x78, 0x49, 0x14, 0xfa, 0xe2, 0xbd, 0x47, 0x86, 0x38, 0x2c, 0x5d,
- 0xe3, 0x3a, 0xf6, 0x1a, 0x91, 0xcc, 0x5a, 0x2d, 0xc7, 0xcc, 0xc9, 0x10,
- 0x6d, 0xb4, 0x5c, 0x0c, 0xe2, 0x82, 0x21, 0xb5, 0xaf, 0x41, 0xaa, 0xef,
- 0x53, 0xf7, 0x3b, 0x61, 0x8e, 0x26, 0x84, 0x36, 0x8d, 0xe5, 0xad, 0x82,
- 0x7a, 0x7f, 0xf1, 0xbe, 0x29, 0x27, 0x65, 0xff, 0x95, 0x9b, 0xaf, 0x4c,
- 0x57, 0x92, 0xab, 0x04, 0x78, 0x6d, 0x9f, 0x16, 0x44, 0xcb, 0xc1, 0xf5,
- 0x24, 0x55, 0x12, 0x62, 0xd0, 0xd3, 0x0f, 0x1f, 0xe2, 0x9d, 0xf0, 0x05,
- 0xdf, 0x99, 0x4f, 0x99, 0x6b, 0xfe, 0xd9, 0x87, 0x0f, 0xcd, 0x2f, 0x1f,
- 0xaa, 0xe3, 0x0d, 0x9b, 0x9c, 0x94, 0x2c, 0x2b, 0x74, 0xb5, 0xd2, 0x8e,
- 0x75, 0x14, 0x45, 0xe9, 0x2e, 0x45, 0xf8, 0x6a, 0xec, 0x0b, 0x82, 0xf6,
- 0xa7, 0xf1, 0x09, 0xfe, 0x8e, 0x60, 0xac, 0xb0, 0x6b, 0x3a, 0x91, 0x52,
- 0xd4, 0x44, 0x29, 0x5e, 0x1b, 0xa4, 0x75, 0x5b, 0x5a, 0x1a, 0x5e, 0x3b,
- 0x2c, 0x24, 0xcd, 0x75, 0xd9, 0x73, 0x14, 0xc8, 0xae, 0x73, 0x64, 0x07,
- 0xa1, 0x86, 0x23, 0xb5, 0xb0, 0x4b, 0xcb, 0x9f, 0xcf, 0x97, 0x75, 0x66,
- 0xb8, 0x7c, 0xe8, 0xd3, 0xce, 0x63, 0xd7, 0xb2, 0x4f, 0x61, 0xe4, 0xb7,
- 0x48, 0x0a, 0x14, 0xeb, 0x0c, 0x80, 0x6b, 0x30, 0x2e, 0x45, 0x89, 0xb4,
- 0x08, 0x72, 0x21, 0xd9, 0x3e, 0x5e, 0xed, 0x3a, 0xcc, 0xee, 0x12, 0xd2,
- 0x08, 0xe2, 0xec, 0x03, 0xad, 0xb6, 0x84, 0x5a, 0x26, 0x48, 0xad, 0x25,
- 0x4d, 0x8f, 0x39, 0xd7, 0x55, 0x51, 0xd2, 0xa6, 0xce, 0x06, 0x01, 0xf8,
- 0x50, 0x14, 0xa6, 0x21, 0x5d, 0xb9, 0xda, 0x8e, 0xb4, 0x0d, 0xbe, 0x9c,
- 0x7b, 0x5d, 0xd4, 0x2a, 0xa4, 0xba, 0x7a, 0x34, 0x7a, 0x17, 0xd8, 0xb8,
- 0x1f, 0xba, 0x8a, 0xf6, 0xc2, 0x63, 0xf8, 0xcf, 0x4f, 0x4a, 0x0b, 0xd6,
- 0xe8, 0x81, 0x8a, 0x94, 0x3e, 0x57, 0xb4, 0x9a, 0x66, 0xd9, 0xc2, 0x56,
- 0x4c, 0x0b, 0xd5, 0xeb, 0x69, 0xb4, 0xc3, 0x08, 0x29, 0x40, 0xa8, 0x10,
- 0xc7, 0x7e, 0xd5, 0x01, 0xc7, 0xed, 0xcd, 0x7e, 0x27, 0x03, 0x2a, 0xe8,
- 0xe4, 0x22, 0x40, 0xc5, 0x77, 0xc2, 0xcc, 0xea, 0x13, 0xe9, 0xb7, 0x0c,
- 0x63, 0x71, 0xdb, 0xe6, 0x88, 0x46, 0x17, 0x7b, 0xab, 0x9d, 0x89, 0xb0,
- 0xd6, 0x11, 0x6f, 0x0c, 0x71, 0x10, 0x76, 0xc2, 0x2b, 0xc8, 0x3d, 0xca,
- 0xfd, 0x90, 0x0a, 0x2b, 0xa5, 0x80, 0x11, 0x39, 0x10, 0xd4, 0x81, 0x95,
- 0x15, 0x8c, 0x59, 0x2d, 0x02, 0xef, 0x1b, 0xf8, 0x15, 0x3e, 0x29, 0x3c,
- 0x94, 0xcc, 0xc2, 0xc1, 0x87, 0xe8, 0x86, 0x51, 0xbd, 0xcc, 0x7f, 0x0d,
- 0x41, 0x3c, 0x5a, 0xa5, 0xf4, 0x42, 0x8f, 0x9d, 0x5c, 0x3f, 0xca, 0xec,
- 0x51, 0xaf, 0xc8, 0x58, 0x72, 0x08, 0x24, 0xe7, 0xb6, 0xdc, 0x14, 0xa8,
- 0xc8, 0x0c, 0xa6, 0x9c, 0xc5, 0x46, 0x05, 0x3c, 0xa2, 0x94, 0xa7, 0xc1,
- 0x78, 0x21, 0x9b, 0x0c, 0x78, 0xa7, 0x43, 0xdb, 0xe2, 0x8f, 0xa7, 0x05,
- 0x07, 0x4a, 0x57, 0x4e, 0xf1, 0x2a, 0x23, 0x80, 0x1f, 0x54, 0x5e, 0x10,
- 0x6e, 0x33, 0x09, 0xab, 0xae, 0x69, 0xd1, 0xb5, 0xb7, 0x05, 0x27, 0xdb,
- 0xbb, 0x92, 0x2a, 0xae, 0x1d, 0x7d, 0x33, 0xae, 0xaf, 0x80, 0x76, 0x82,
- 0x6a, 0x4d, 0xbd, 0x26, 0x2e, 0x8c, 0x0e, 0x1b, 0x28, 0x0a, 0xf0, 0xe4,
- 0x5e, 0x2b, 0x30, 0x3a, 0x5f, 0x71, 0x1d, 0x35, 0x54, 0xc1, 0x94, 0xd9,
- 0x6f, 0x89, 0xa0, 0x07, 0x9e, 0x4e, 0x47, 0x85, 0x38, 0x6c, 0x00, 0xb5,
- 0x91, 0x17, 0x13, 0x84, 0x4b, 0x68, 0x99, 0xa8, 0xa8, 0x7a, 0xb1, 0x02,
- 0x92, 0xe9, 0x60, 0x36, 0x80, 0xe6, 0x20, 0x15, 0xb2, 0xd0, 0x44, 0x4f,
- 0xd1, 0x0a, 0x1b, 0xe5, 0x67, 0x07, 0x89, 0x2b, 0x22, 0xd5, 0x0d, 0xaf,
- 0x4c, 0x2c, 0x0c, 0xb4, 0x5b, 0x8b, 0x3d, 0xc3, 0x8a, 0x9b, 0x3a, 0x56,
- 0xfb, 0x2f, 0x64, 0x52, 0x15, 0x0a, 0x6e, 0xe7, 0xd3, 0x38, 0xe3, 0x61,
- 0x98, 0x4f, 0x55, 0x17, 0xfb, 0xdb, 0x32, 0xe7, 0xca, 0x60, 0x40, 0x57,
- 0x78, 0x55, 0xf0, 0xe6, 0x57, 0x1a, 0x38, 0x7d, 0x05, 0x29, 0x4c, 0x22,
- 0x88, 0xa0, 0x09, 0x28, 0x5f, 0xa1, 0xee, 0x23, 0x15, 0x96, 0x21, 0x99,
- 0x07, 0x89, 0x2b, 0x95, 0x02, 0x84, 0xfc, 0x19, 0xdd, 0x52, 0x03, 0x07,
- 0xf4, 0x4e, 0x3c, 0xa1, 0xa3, 0x06, 0x02, 0xc0, 0x67, 0xaa, 0x9b, 0x58,
- 0x02, 0xed, 0x35, 0xc2, 0xf7, 0xe1, 0xb4, 0x57, 0x37, 0x44, 0xcd, 0x19,
- 0x21, 0xa4, 0xf9, 0x6d, 0x0b, 0x1e, 0x9c, 0xd5, 0x92, 0xe7, 0x96, 0x2c,
- 0x32, 0xbc, 0x4d, 0x36, 0x8d, 0xc0, 0xc8, 0x2a, 0xad, 0xa6, 0xfd, 0xbc,
- 0x4d, 0xf8, 0x02, 0x76, 0xea, 0x03, 0x74, 0x82, 0x0a, 0x38, 0x9c, 0xfc,
- 0x35, 0x3c, 0x60, 0xb4, 0xe2, 0x08, 0x02, 0xf5, 0x01, 0x76, 0xf3, 0x64,
- 0xb7, 0xa1, 0x0a, 0x0d, 0xb1, 0x15, 0xb4, 0xb2, 0x7d, 0xac, 0x62, 0x37,
- 0x0c, 0xb9, 0xf1, 0xf3, 0xbe, 0x14, 0xa6, 0xf7, 0x62, 0x16, 0xb6, 0x04,
- 0xe2, 0x90, 0xdf, 0x83, 0x0a, 0xb8, 0xa1, 0x6c, 0x0b, 0x89, 0xea, 0xd3,
- 0x23, 0x7e, 0xa1, 0x31, 0xe7, 0x6a, 0x2a, 0xc1, 0x52, 0x5a, 0xea, 0xb5,
- 0x67, 0x85, 0x5f, 0x05, 0x97, 0xeb, 0xa2, 0xbc, 0xb7, 0xb0, 0x48, 0xce,
- 0xf6, 0xbe, 0x38, 0x19, 0x86, 0xb8, 0x04, 0x6a, 0x3e, 0x88, 0x39, 0x0f,
- 0xa7, 0xfd, 0x89, 0xfc, 0x0c, 0x4b, 0x24, 0x0a, 0x4e, 0x87, 0x6f, 0xb8,
- 0x92, 0xd3, 0x62, 0x57, 0xb5, 0xb2, 0x2e, 0x6a, 0x36, 0x6b, 0x53, 0xa4,
- 0x74, 0x3c, 0x48, 0x02, 0x23, 0x85, 0xa0, 0x11, 0xd0, 0xe0, 0xfb, 0x06,
- 0x8f, 0xc0, 0x2c, 0x02, 0xd3, 0x21, 0x9e, 0xf6, 0x37, 0xd1, 0x9d, 0x45,
- 0x05, 0xe8, 0x47, 0x56, 0x90, 0x3a, 0x61, 0xd0, 0xd7, 0x29, 0x5c, 0xda,
- 0xd9, 0x7c, 0x5c, 0xde, 0x37, 0x70, 0xea, 0x27, 0x1f, 0x51, 0x11, 0x31,
- 0xbc, 0xee, 0x18, 0xbd, 0x96, 0x59, 0x12, 0x03, 0xb6, 0x6b, 0x99, 0x4c,
- 0xfa, 0xc4, 0x0d, 0xd0, 0x1a, 0x03, 0xb1, 0xd0, 0xb9, 0xde, 0x45, 0x1d,
- 0xda, 0x76, 0x73, 0x61, 0x95, 0x7b, 0xc1, 0xf5, 0x43, 0xa0, 0x8c, 0x1c,
- 0x0d, 0xa7, 0x9b, 0x8c, 0x96, 0x75, 0x00, 0x96, 0xc9, 0x6e, 0x26, 0xf1,
- 0x6a, 0xb4, 0x37, 0x79, 0x09, 0xb3, 0xa8, 0x66, 0x2e, 0xb6, 0x76, 0x1b,
- 0xcb, 0xd3, 0x11, 0x2c, 0x67, 0x78, 0x6c, 0xe1, 0xee, 0xd3, 0x4e, 0x4a,
- 0xa2, 0xa2, 0xdb, 0x7c, 0xcb, 0x75, 0x69, 0xd4, 0x8a, 0x8f, 0xa6, 0x23,
- 0xe7, 0xb0, 0xf6, 0x49, 0x94, 0x1f, 0xb5, 0xed, 0x6e, 0xa3, 0x3f, 0xba,
- 0x74, 0xeb, 0x8a, 0xdd, 0xf0, 0xdb, 0xa1, 0xfb, 0x81, 0x68, 0x27, 0x4f,
- 0x32, 0x20, 0x90, 0x64, 0x33, 0x9d, 0x74, 0x83, 0x34, 0xa1, 0x10, 0xfc,
- 0x33, 0x29, 0xfc, 0x93, 0xd6, 0x0d, 0x50, 0x6e, 0xde, 0x14, 0xd9, 0x93,
- 0x07, 0xb6, 0x24, 0x46, 0x95, 0x4e, 0x1f, 0xd9, 0x12, 0x88, 0xb0, 0x8c,
- 0x95, 0x17, 0x65, 0x0b, 0x88, 0x41, 0x31, 0x9c, 0x60, 0xdd, 0x48, 0xb2,
- 0xe0, 0x7b, 0x04, 0x65, 0x6c, 0x52, 0xa4, 0x6f, 0x84, 0xc5, 0xdd, 0x19,
- 0xae, 0xf0, 0x2e, 0x1e, 0x0b, 0xaf, 0x3f, 0x35, 0x2a, 0x35, 0xfd, 0x68,
- 0xb5, 0xc3, 0x80, 0xe5, 0xca, 0xd3, 0xef, 0x97, 0x47, 0x07, 0xc3, 0x8b,
- 0x41, 0xfb, 0xca, 0x89, 0xd2, 0x89, 0x78, 0xfb, 0x3c, 0xa8, 0x25, 0x5b,
- 0x15, 0xb9, 0x6e, 0x70, 0xe9, 0x80, 0x05, 0x31, 0x38, 0x19, 0x5b, 0xe5,
- 0x76, 0x83, 0x6d, 0x95, 0x5d, 0x08, 0x4f, 0x10, 0x11, 0xe1, 0xf0, 0x1c,
- 0xe5, 0x53, 0x4c, 0x81, 0x06, 0x46, 0xbc, 0x77, 0x56, 0x69, 0x48, 0x5f,
- 0xc5, 0x55, 0x94, 0x8a, 0x29, 0x9b, 0x45, 0x3a, 0xb0, 0xde, 0xa3, 0x7a,
- 0xaa, 0x07, 0xe7, 0x6f, 0x8f, 0xdf, 0x7e, 0xb5, 0xdf, 0xb8, 0x33, 0xa7,
- 0x45, 0x51, 0x65, 0xea, 0xa3, 0x17, 0x60, 0x7c, 0x59, 0x2e, 0xb1, 0x1f,
- 0x3b, 0x54, 0x92, 0x8e, 0x4b, 0x9c, 0xd1, 0x1f, 0xed, 0x56, 0x12, 0xd3,
- 0x9c, 0xd6, 0xde, 0x01, 0x28, 0xc3, 0xc3, 0x85, 0x90, 0xab, 0x62, 0x7c,
- 0x53, 0x3d, 0x15, 0x63, 0xd7, 0x03, 0xb1, 0xf6, 0xcd, 0x52, 0xea, 0xc3,
- 0xd3, 0xc3, 0x6f, 0x86, 0x4f, 0x1f, 0x0d, 0xb2, 0x97, 0x37, 0xe2, 0x34,
- 0xd5, 0x47, 0xc2, 0xec, 0x9b, 0xd2, 0xc6, 0xb3, 0xd0, 0x26, 0xda, 0x71,
- 0xac, 0x7c, 0x85, 0x17, 0xb6, 0x85, 0xb0, 0x99, 0x2b, 0x2f, 0x96, 0xae,
- 0xc2, 0x40, 0x80, 0xe6, 0xd5, 0x93, 0xc3, 0xc6, 0x68, 0x6b, 0x1d, 0x65,
- 0x1c, 0xad, 0xfc, 0x4b, 0x50, 0xf0, 0x25, 0x8a, 0x8e, 0x63, 0x9c, 0x12,
- 0x31, 0x96, 0x7c, 0xda, 0x6b, 0x8b, 0x3b, 0xc4, 0x29, 0x48, 0xfe, 0x9b,
- 0x2e, 0xb9, 0x6f, 0x00, 0x9a, 0x38, 0x13, 0xde, 0xaa, 0x2a, 0xb8, 0xba,
- 0xf2, 0x16, 0xbf, 0xcf, 0x57, 0xa8, 0x1f, 0xac, 0x6e, 0x76, 0xaa, 0x4f,
- 0xed, 0x6f, 0x6f, 0x7b, 0x8b, 0x96, 0xc4, 0x16, 0x0e, 0x7e, 0x3b, 0xad,
- 0x40, 0xfa, 0x4c, 0x7f, 0x15, 0x51, 0xa4, 0x1f, 0x47, 0x15, 0x91, 0x94,
- 0xfc, 0x0b, 0xa9, 0xe2, 0xb3, 0x55, 0xcc, 0xb6, 0xa3, 0xf2, 0xcf, 0xa3,
- 0x74, 0xa1, 0x65, 0x80, 0xfe, 0x07, 0x51, 0x45, 0x9a, 0x7c, 0x1c, 0x5d,
- 0xa4, 0x6d, 0xc2, 0xe8, 0xc8, 0x09, 0xff, 0x2d, 0x41, 0x37, 0x31, 0x8a,
- 0x67, 0x7d, 0x57, 0x3e, 0xe0, 0x57, 0x50, 0xcc, 0x33, 0x9d, 0xe9, 0x26,
- 0x8c, 0xc0, 0xea, 0xe0, 0x34, 0x68, 0x4b, 0xb3, 0xc5, 0xaf, 0xa8, 0x61,
- 0x20, 0x12, 0xc9, 0x96, 0x5d, 0x06, 0xab, 0x79, 0x50, 0x07, 0x75, 0x45,
- 0xe1, 0xcc, 0xbf, 0x9c, 0xd6, 0xfe, 0x5f, 0xc1, 0x81, 0x9e, 0xf9, 0xe2,
- 0x0f, 0x1f, 0x43, 0x72, 0xcf, 0xae, 0x1d, 0xc9, 0x75, 0x55, 0x45, 0x35,
- 0xde, 0xf4, 0x1b, 0xe7, 0xeb, 0x44, 0x72, 0x95, 0xad, 0x3a, 0xa0, 0x25,
- 0x4a, 0xd2, 0xb0, 0xf9, 0x97, 0xa0, 0xbc, 0x80, 0x38, 0x41, 0x2c, 0xe1,
- 0x24, 0xb2, 0xe8, 0x61, 0x6a, 0x2e, 0x97, 0x3a, 0x70, 0x35, 0x08, 0x5c,
- 0x17, 0x8d, 0x20, 0xba, 0x33, 0x9f, 0x3d, 0x4a, 0xec, 0x51, 0x7e, 0x9a,
- 0xd2, 0xbb, 0x11, 0x77, 0x5f, 0x2a, 0x60, 0x18, 0x8d, 0x3b, 0x47, 0x45,
- 0x47, 0x4c, 0x21, 0x9c, 0xc1, 0xd3, 0xc7, 0xef, 0xda, 0x90, 0xce, 0x1d,
- 0x1b, 0x4d, 0x22, 0x24, 0xd3, 0x87, 0x52, 0xda, 0xfe, 0xdf, 0xc2, 0x43,
- 0x9f, 0x7d, 0x1c, 0x39, 0xff, 0x2b, 0x6e, 0xd6, 0xff, 0x41, 0xc4, 0xdb,
- 0xb5, 0xcd, 0x9b, 0x0a, 0xde, 0x26, 0xca, 0xa1, 0x5c, 0x2c, 0x5b, 0x82,
- 0x34, 0xe3, 0x84, 0x78, 0xac, 0xe2, 0xf1, 0xd9, 0xb7, 0x9f, 0x20, 0xf8,
- 0x6d, 0x18, 0xd7, 0x1e, 0x38, 0x79, 0x75, 0x70, 0xd6, 0x71, 0x33, 0x5c,
- 0x91, 0xca, 0xbf, 0xc8, 0xfb, 0xac, 0x56, 0xb1, 0x09, 0xee, 0x85, 0xfe,
- 0xc2, 0x24, 0xde, 0x65, 0x64, 0x34, 0x03, 0xa9, 0x3d, 0x2f, 0xe0, 0xe6,
- 0xe2, 0x31, 0xc6, 0x2c, 0x55, 0x3f, 0x63, 0x03, 0xe4, 0x78, 0x36, 0xd9,
- 0x96, 0x3f, 0xfb, 0x97, 0x7f, 0x9b, 0xc4, 0xaa, 0x5e, 0x08, 0x1c, 0xde,
- 0xc8, 0x45, 0x54, 0x34, 0xf6, 0xbc, 0x5e, 0x55, 0xa3, 0xba, 0xda, 0x0f,
- 0x8f, 0x79, 0xa2, 0xc9, 0xb5, 0xd0, 0x7d, 0x57, 0x4d, 0x0c, 0xc3, 0x8b,
- 0xca, 0x43, 0xc0, 0x77, 0x89, 0xaa, 0x0c, 0xfc, 0xed, 0x76, 0xd0, 0x90,
- 0x6b, 0xfd, 0xa1, 0xc6, 0x3b, 0x12, 0x78, 0x7c, 0x5f, 0xdb, 0x8c, 0x41,
- 0xa8, 0x2f, 0x4a, 0x47, 0xa2, 0xd6, 0x44, 0x5f, 0x5e, 0x02, 0x82, 0xb8,
- 0x8a, 0xf2, 0x00, 0xef, 0x00, 0x0f, 0xef, 0x52, 0x48, 0xfb, 0x5a, 0xdb,
- 0x49, 0x77, 0x5d, 0x6a, 0xfa, 0x68, 0x02, 0xe3, 0x7c, 0x9c, 0x2f, 0xd2,
- 0xa9, 0x26, 0x76, 0x3e, 0x58, 0x5c, 0xaa, 0x5d, 0x9b, 0xa7, 0x39, 0x21,
- 0x52, 0xb6, 0xdb, 0xf5, 0xee, 0x98, 0xfc, 0x03, 0x48, 0x65, 0xab, 0xb9,
- 0x67, 0xd9, 0xd3, 0xd8, 0x3d, 0x1c, 0x50, 0xd5, 0xd3, 0x11, 0xbb, 0xcf,
- 0x2c, 0x0f, 0x0f, 0xc4, 0x49, 0x49, 0x6c, 0x24, 0xe1, 0xec, 0xa1, 0xdd,
- 0xe7, 0x9f, 0xec, 0x26, 0x55, 0x7a, 0x0f, 0x74, 0x94, 0x4a, 0x5f, 0x7e,
- 0x3a, 0x78, 0xb2, 0xfd, 0x74, 0xf0, 0x34, 0xf1, 0xa5, 0x77, 0x91, 0xf0,
- 0xa3, 0xcd, 0x13, 0xeb, 0x8c, 0x50, 0x31, 0x6a, 0xe5, 0xe2, 0x6f, 0x8f,
- 0x0e, 0x59, 0x1a, 0xb1, 0x2c, 0xdf, 0x96, 0x82, 0x97, 0xc8, 0xba, 0xf1,
- 0xc2, 0x59, 0xe9, 0xa8, 0x2e, 0xa5, 0xb4, 0x63, 0x39, 0x8c, 0x34, 0x11,
- 0xbc, 0x3f, 0x77, 0x03, 0x61, 0x5e, 0x29, 0x54, 0xaa, 0xeb, 0xd2, 0x09,
- 0x01, 0x12, 0x2e, 0x49, 0xb0, 0x60, 0x83, 0x87, 0xcb, 0x25, 0x55, 0x35,
- 0x69, 0xa9, 0x65, 0x77, 0x94, 0xd0, 0xb9, 0x1a, 0x23, 0x25, 0xe0, 0x82,
- 0x0b, 0x82, 0x8b, 0xfb, 0x56, 0xdf, 0x51, 0x6b, 0x66, 0x33, 0xa7, 0xc2,
- 0x22, 0x60, 0x3a, 0x4a, 0x81, 0x36, 0xb2, 0x19, 0xb4, 0x02, 0x12, 0x4a,
- 0x27, 0x6f, 0xf4, 0x37, 0xec, 0x9a, 0xb2, 0xf8, 0x19, 0xee, 0xac, 0x16,
- 0x8b, 0x69, 0xbb, 0x68, 0xc6, 0x3f, 0x5d, 0x6e, 0xad, 0xf9, 0x36, 0xa8,
- 0xb3, 0xe9, 0x3c, 0xab, 0xb5, 0x1e, 0x67, 0xf2, 0xe2, 0xf4, 0xec, 0xe2,
- 0xe5, 0x6d, 0x3a, 0x8d, 0x62, 0x3c, 0x18, 0x66, 0xd2, 0xaa, 0x97, 0x3a,
- 0x6b, 0x2e, 0xbf, 0x19, 0xe4, 0x46, 0x0d, 0x5d, 0x92, 0x50, 0x50, 0xe7,
- 0x34, 0xca, 0x05, 0xba, 0xb8, 0xf8, 0xe1, 0xec, 0xe8, 0xe5, 0x0b, 0xb6,
- 0x05, 0x7f, 0xce, 0xf6, 0xf8, 0xaa, 0x61, 0x1a, 0xe6, 0x3a, 0xd9, 0xf1,
- 0xcd, 0xf8, 0xfd, 0xab, 0xe3, 0xe1, 0xd9, 0xc9, 0xe9, 0xe1, 0xcb, 0x17,
- 0xdf, 0xb3, 0x07, 0x93, 0x56, 0xef, 0x3e, 0x78, 0xd7, 0x7d, 0xe6, 0xf2,
- 0x1d, 0xe2, 0xea, 0x80, 0x47, 0xdf, 0xbd, 0x3f, 0x7a, 0xfb, 0xed, 0xcb,
- 0x17, 0xb7, 0x69, 0xd9, 0xe3, 0xf9, 0xc9, 0xdb, 0x0c, 0xbd, 0xd1, 0x51,
- 0x36, 0x3a, 0x58, 0xa3, 0x0b, 0x5e, 0xa3, 0xe5, 0x82, 0x43, 0x07, 0x1f,
- 0x08, 0x2b, 0x03, 0x97, 0xf5, 0xe5, 0xf8, 0x9a, 0xd4, 0x11, 0x84, 0xb0,
- 0x59, 0x82, 0x97, 0xd5, 0x09, 0x79, 0x77, 0x7e, 0x02, 0xa9, 0xbd, 0xb3,
- 0x7e, 0x9e, 0x94, 0xac, 0xf0, 0x15, 0x4b, 0xd4, 0x36, 0xe4, 0x1b, 0x46,
- 0x75, 0x90, 0x43, 0x97, 0xdc, 0xa6, 0x98, 0xaa, 0x0f, 0xc6, 0xd0, 0x09,
- 0xef, 0x42, 0x30, 0xad, 0xab, 0xb0, 0x8b, 0xe8, 0x21, 0x29, 0x0e, 0x47,
- 0x53, 0xc8, 0x81, 0x59, 0xb0, 0x6d, 0x39, 0xbf, 0xd3, 0xd8, 0xe4, 0x15,
- 0xc4, 0xcc, 0xc3, 0xf5, 0xae, 0x40, 0x5c, 0x85, 0x14, 0x48, 0xc4, 0x78,
- 0x0c, 0x14, 0xbb, 0x39, 0x0b, 0x85, 0xf1, 0xea, 0x2e, 0xea, 0x31, 0x9d,
- 0x02, 0xed, 0xfd, 0xc6, 0x8d, 0xab, 0x14, 0xfa, 0x6d, 0x26, 0x3f, 0x58,
- 0x6e, 0x5a, 0x10, 0x58, 0xd8, 0x91, 0x1e, 0xd7, 0x44, 0x80, 0x95, 0x70,
- 0x46, 0x16, 0x29, 0x39, 0x75, 0x8f, 0x91, 0x41, 0x5d, 0xd8, 0xb0, 0x6c,
- 0xac, 0xc7, 0x0f, 0x8f, 0x7d, 0x99, 0x28, 0x5a, 0xef, 0xce, 0x9c, 0x1d,
- 0xb6, 0xc2, 0xe1, 0xa6, 0x6f, 0x0e, 0xb7, 0x5c, 0xb6, 0x23, 0xb7, 0x78,
- 0xf6, 0xce, 0x43, 0xea, 0x76, 0xa0, 0x11, 0x44, 0x87, 0xb0, 0x2d, 0x28,
- 0xfb, 0x85, 0x5a, 0xef, 0xaf, 0x73, 0xed, 0x1d, 0xf5, 0x74, 0xa1, 0xf2,
- 0x8e, 0x59, 0xfa, 0x89, 0x33, 0x70, 0xe1, 0x75, 0x0f, 0x5e, 0x90, 0x76,
- 0x56, 0x8f, 0x91, 0x54, 0xaf, 0xe4, 0x40, 0xe3, 0x90, 0xb2, 0x46, 0x79,
- 0x18, 0xe9, 0x63, 0xb0, 0x9e, 0x34, 0x0a, 0xfc, 0x88, 0xe7, 0x6d, 0x2b,
- 0x4a, 0xea, 0xbb, 0x97, 0x2b, 0x22, 0x90, 0xe2, 0x5d, 0xc0, 0x1f, 0x75,
- 0xcf, 0x43, 0x6d, 0x0d, 0x0d, 0x6e, 0x85, 0x11, 0x51, 0x5e, 0x47, 0x91,
- 0x19, 0x70, 0x6a, 0x00, 0xc3, 0x4b, 0x19, 0x74, 0xce, 0x4e, 0x47, 0xf8,
- 0x82, 0x4b, 0x21, 0x10, 0x57, 0x93, 0x7a, 0x14, 0xb5, 0x4d, 0x08, 0xf3,
- 0x5d, 0xa0, 0x4d, 0xb2, 0x89, 0x1d, 0x8b, 0xfa, 0x43, 0x4b, 0x40, 0x66,
- 0x56, 0xd8, 0xbf, 0xf0, 0x51, 0x7b, 0x1c, 0x74, 0xd7, 0x91, 0x5f, 0xaf,
- 0xf5, 0x07, 0xfb, 0x17, 0x11, 0x1e, 0x9c, 0xa0, 0xcc, 0xe6, 0x65, 0x10,
- 0xca, 0x8e, 0x08, 0x51, 0x9e, 0xbb, 0x50, 0x92, 0xe6, 0xdc, 0x40, 0xa8,
- 0x18, 0x68, 0xf8, 0x2c, 0xbb, 0x43, 0x56, 0xe4, 0x35, 0x57, 0xc9, 0xfa,
- 0xd5, 0xb4, 0x18, 0x8d, 0x68, 0x52, 0xeb, 0x76, 0xc7, 0xd1, 0x08, 0xd3,
- 0xf2, 0x0a, 0x42, 0x6f, 0xcf, 0x10, 0x03, 0xfd, 0x61, 0x45, 0x95, 0x2f,
- 0xf4, 0xb5, 0x2a, 0x37, 0x97, 0x77, 0x57, 0x5d, 0x3b, 0xba, 0xab, 0xa8,
- 0xbf, 0x75, 0x1f, 0xd4, 0x06, 0x95, 0x48, 0x2c, 0x7c, 0x9e, 0x58, 0xff,
- 0x51, 0x18, 0x2f, 0xe7, 0x92, 0xfa, 0xb4, 0x4f, 0x65, 0x3e, 0x60, 0x39,
- 0x5a, 0x79, 0x29, 0xef, 0xc8, 0xf3, 0xe4, 0x09, 0xd3, 0x04, 0xd6, 0xff,
- 0x83, 0x47, 0xb1, 0xdb, 0xe3, 0x7f, 0xf7, 0xfe, 0xb1, 0x6e, 0x05, 0xb6,
- 0xb8, 0xa4, 0xa1, 0x0c, 0xbe, 0xe6, 0x9a, 0x46, 0x95, 0x55, 0xf5, 0xea,
- 0x28, 0xe2, 0xc5, 0x6e, 0xc3, 0x95, 0xad, 0xe7, 0xb3, 0xab, 0x1f, 0x77,
- 0xfb, 0xbb, 0x3b, 0x3b, 0x3b, 0x3f, 0x0f, 0x16, 0xbc, 0x74, 0x97, 0x68,
- 0x9e, 0xfe, 0x1d, 0x2c, 0xf2, 0x31, 0x1b, 0xf2, 0x69, 0x33, 0xf3, 0x94,
- 0x9b, 0xde, 0x96, 0xfe, 0xb6, 0x83, 0x9b, 0xbf, 0x1e, 0x2f, 0xfa, 0xf3,
- 0xa2, 0x2b, 0x44, 0xe6, 0x62, 0x59, 0xa2, 0x52, 0x88, 0x95, 0xa7, 0x7d,
- 0xff, 0xf6, 0xf4, 0xd5, 0xd1, 0xc9, 0xc1, 0x0f, 0x16, 0x63, 0xeb, 0x80,
- 0x13, 0x78, 0x24, 0xef, 0xb3, 0xb4, 0xba, 0x7f, 0x5f, 0x65, 0x35, 0x7d,
- 0xb9, 0xf9, 0x64, 0x8b, 0x83, 0xd0, 0xa2, 0x02, 0xe5, 0x57, 0x22, 0xb6,
- 0x1b, 0x8e, 0x82, 0xc6, 0x2b, 0xf9, 0xdb, 0xbb, 0x25, 0xa3, 0xec, 0x36,
- 0x03, 0x5f, 0x6b, 0xf6, 0x87, 0x8c, 0xa6, 0x37, 0x55, 0xfe, 0x77, 0xba,
- 0x77, 0x18, 0x5b, 0x31, 0x8e, 0x67, 0xbe, 0x00, 0x82, 0x02, 0xbb, 0xb5,
- 0xf9, 0xb7, 0xe4, 0xcb, 0x93, 0x6f, 0x38, 0x8c, 0xdc, 0xe9, 0x34, 0x33,
- 0x49, 0xd9, 0x4f, 0x3e, 0x7f, 0xb6, 0xbb, 0xb7, 0xe5, 0x2a, 0xae, 0x48,
- 0x32, 0x0a, 0x1f, 0xce, 0xc8, 0xad, 0xfe, 0xf7, 0x2c, 0x28, 0x7d, 0x21,
- 0x5c, 0xd9, 0x7b, 0x18, 0x11, 0xda, 0x62, 0xd7, 0x1c, 0x50, 0xff, 0xe0,
- 0x09, 0xae, 0x01, 0xb3, 0xc8, 0x89, 0x22, 0x11, 0x58, 0xd1, 0x85, 0xcf,
- 0x06, 0x1f, 0x70, 0xa0, 0x92, 0x69, 0x36, 0x34, 0x1c, 0xcd, 0x2f, 0xe9,
+ 0x19, 0x9c, 0x44, 0xc6, 0x4b, 0x71, 0xcc, 0x78, 0x8e, 0x38, 0x2f, 0x90,
+ 0xc2, 0x9c, 0xb2, 0x36, 0x04, 0x43, 0x4c, 0xaf, 0x7b, 0x81, 0xe7, 0x13,
+ 0xf1, 0x2c, 0xb7, 0xd6, 0xf9, 0x57, 0xa5, 0xf6, 0xb9, 0xfd, 0x0f, 0xa0,
+ 0x22, 0x57, 0x72, 0xbb, 0x86, 0xe5, 0xfd, 0x26, 0x23, 0x41, 0x70, 0x8a,
+ 0x4c, 0x36, 0xb6, 0xa3, 0xbd, 0x90, 0xea, 0xf1, 0x71, 0xd9, 0x94, 0x86,
+ 0x2f, 0xa0, 0xe2, 0x98, 0x44, 0x61, 0x0d, 0x78, 0x2b, 0x09, 0x63, 0xf4,
+ 0x3d, 0x0a, 0x74, 0x99, 0x71, 0x54, 0x6d, 0x92, 0x4f, 0xa2, 0x84, 0xf9,
+ 0x16, 0xfc, 0x92, 0x1b, 0x04, 0x2b, 0xdf, 0xa3, 0xcc, 0x89, 0xfc, 0xd2,
+ 0xba, 0x09, 0x87, 0x00, 0xa5, 0x22, 0xd5, 0x7c, 0x19, 0xc9, 0x0b, 0xed,
+ 0xf7, 0x87, 0xcc, 0x65, 0x1b, 0x78, 0x28, 0x62, 0xd4, 0xe1, 0x27, 0x0a,
+ 0x67, 0xf2, 0x43, 0x4d, 0x63, 0x9c, 0xa9, 0xc8, 0x88, 0x79, 0x29, 0x88,
+ 0xae, 0x32, 0xc5, 0x8b, 0x83, 0xd3, 0xf7, 0xdf, 0x1c, 0x1e, 0x9e, 0x1e,
+ 0xbd, 0x3a, 0x3e, 0xd4, 0x7b, 0xc6, 0x7d, 0xf4, 0xf6, 0xe2, 0xdb, 0x63,
+ 0x03, 0x79, 0xb5, 0xf5, 0x89, 0xcc, 0x60, 0x1c, 0xf5, 0x85, 0xe6, 0x8e,
+ 0xf3, 0xf9, 0xf2, 0x43, 0x1f, 0xc8, 0x3d, 0x44, 0xcc, 0xfb, 0x47, 0xdf,
+ 0xf7, 0x93, 0xaf, 0x4f, 0x07, 0xef, 0xbe, 0x8f, 0x30, 0x39, 0x1a, 0x71,
+ 0xd6, 0x6d, 0xc1, 0xd2, 0x45, 0x5d, 0xa3, 0x14, 0x97, 0x9f, 0xbb, 0xe9,
+ 0xbf, 0x1d, 0xd5, 0xa9, 0xff, 0xd9, 0xa6, 0xc0, 0xa8, 0xb9, 0xe5, 0x3c,
+ 0xc0, 0xfd, 0x0f, 0xa4, 0x78, 0xbd, 0x7a, 0x41, 0x0e, 0x9f, 0x6c, 0x27,
+ 0x4a, 0x5d, 0x4d, 0x02, 0xbc, 0x4f, 0x5e, 0xac, 0x80, 0x65, 0xdb, 0x3a,
+ 0x3f, 0xff, 0x7a, 0x33, 0x39, 0x0d, 0xf0, 0xfb, 0x9d, 0xad, 0x65, 0x68,
+ 0x31, 0x96, 0x6c, 0xa6, 0xa1, 0xc6, 0x03, 0xab, 0x4d, 0xc9, 0x80, 0xcb,
+ 0xb1, 0x9f, 0x5c, 0x5b, 0xb0, 0x3b, 0xdc, 0x94, 0x3f, 0x91, 0x2c, 0x91,
+ 0xb0, 0x45, 0xbd, 0x81, 0xfd, 0x37, 0xa1, 0x68, 0x45, 0x60, 0x6c, 0x4b,
+ 0x46, 0xb8, 0xe3, 0x93, 0x30, 0x3f, 0x0d, 0x3b, 0x4c, 0x47, 0x74, 0x92,
+ 0x4f, 0x24, 0xcd, 0x87, 0x35, 0x06, 0x91, 0x14, 0x92, 0x64, 0xfd, 0xbf,
+ 0xb6, 0x86, 0x55, 0x75, 0xbd, 0x95, 0x4f, 0xde, 0x97, 0x55, 0xba, 0xde,
+ 0xbe, 0x9c, 0x83, 0xaf, 0x27, 0xfc, 0x75, 0xb2, 0x3e, 0x74, 0x8f, 0xea,
+ 0xef, 0xfc, 0xf9, 0x6f, 0x89, 0xfa, 0x45, 0x6b, 0xf3, 0x28, 0x3c, 0x70,
+ 0xb4, 0x13, 0xfc, 0xe8, 0xd0, 0x89, 0xe1, 0xea, 0x3a, 0xe0, 0x46, 0xb0,
+ 0x0d, 0xb2, 0xb9, 0xbc, 0x35, 0xd1, 0x6e, 0x00, 0xc1, 0x2d, 0x69, 0xc1,
+ 0xa2, 0xd3, 0xb9, 0x7d, 0x75, 0x78, 0xd6, 0x17, 0xd4, 0xe0, 0x10, 0x31,
+ 0xd8, 0xc3, 0x9e, 0x29, 0x52, 0xf0, 0x2a, 0xf5, 0xb4, 0xff, 0x2f, 0x44,
+ 0x0a, 0xbe, 0x29, 0x47, 0xc9, 0x8b, 0x29, 0xbd, 0x38, 0xed, 0xce, 0xf9,
+ 0x95, 0x32, 0xae, 0xbe, 0x16, 0x6d, 0x0b, 0x67, 0x46, 0x11, 0x68, 0x45,
+ 0x42, 0x45, 0x33, 0xa2, 0x97, 0x76, 0x29, 0xa6, 0x35, 0x6c, 0x62, 0xfc,
+ 0x46, 0x94, 0x20, 0xb9, 0x8e, 0x60, 0x64, 0xa6, 0x12, 0x06, 0xd3, 0xe1,
+ 0x9f, 0xe0, 0xfb, 0x5a, 0xc3, 0x77, 0xbd, 0x1f, 0x2b, 0xdf, 0xeb, 0xba,
+ 0xea, 0xeb, 0xb4, 0x71, 0xd2, 0x1a, 0x1f, 0x21, 0x01, 0xf9, 0x95, 0x71,
+ 0x68, 0xad, 0x80, 0x4a, 0xb5, 0x8d, 0x30, 0x16, 0xa9, 0x8a, 0x50, 0xac,
+ 0x5c, 0x73, 0xed, 0xf8, 0xb7, 0x6e, 0x63, 0xdc, 0xaa, 0xea, 0x44, 0xa9,
+ 0x43, 0x76, 0x0d, 0xab, 0x12, 0x59, 0xc9, 0xe1, 0xa7, 0x46, 0x02, 0xc3,
+ 0x15, 0xc8, 0x57, 0x3c, 0x50, 0xe4, 0x54, 0xb2, 0x30, 0xc2, 0xae, 0x78,
+ 0x0e, 0xa8, 0x1d, 0x7c, 0xcb, 0x6a, 0xa0, 0x79, 0xd9, 0x04, 0x6e, 0x1b,
+ 0x95, 0x4e, 0x40, 0x9d, 0x5d, 0xc7, 0xda, 0xd5, 0x37, 0xca, 0xeb, 0xdf,
+ 0x90, 0x74, 0xa6, 0x28, 0x07, 0x94, 0x57, 0xf5, 0x80, 0xdd, 0x56, 0xdd,
+ 0x91, 0xe8, 0x50, 0x9a, 0x34, 0x8f, 0xc4, 0xfc, 0x66, 0x01, 0x1e, 0xbf,
+ 0xb0, 0x30, 0x29, 0x7a, 0x88, 0x68, 0x3b, 0x16, 0xc4, 0x98, 0x2f, 0x0e,
+ 0xba, 0xea, 0x2d, 0xdd, 0xe6, 0xd9, 0x9d, 0xf7, 0xec, 0x36, 0x00, 0x91,
+ 0xd4, 0x97, 0x8b, 0x65, 0x01, 0x33, 0x93, 0xca, 0xbb, 0x5c, 0x1e, 0xa0,
+ 0x0b, 0xab, 0x6a, 0x96, 0x8e, 0xaf, 0x49, 0x7c, 0x1c, 0x20, 0x66, 0x37,
+ 0x69, 0x42, 0xc5, 0xb0, 0x31, 0xa1, 0x35, 0x50, 0x4e, 0xb1, 0xd4, 0x48,
+ 0xc0, 0xce, 0x22, 0xc0, 0xfe, 0x41, 0x1e, 0xa2, 0x8b, 0x3b, 0x14, 0x62,
+ 0x74, 0x89, 0xd3, 0x50, 0x52, 0x8b, 0xd2, 0x01, 0x57, 0x4b, 0xb6, 0x3b,
+ 0x2f, 0x6a, 0x87, 0xe3, 0x2c, 0x51, 0x60, 0xea, 0x86, 0x45, 0x4b, 0x71,
+ 0x90, 0xd2, 0xe4, 0xed, 0xf1, 0xb9, 0xcf, 0x19, 0xaa, 0xb5, 0xca, 0x93,
+ 0x54, 0x42, 0x58, 0xe5, 0xf8, 0x08, 0x03, 0xe5, 0x8e, 0x8f, 0x3a, 0xea,
+ 0xa9, 0xb3, 0x49, 0x60, 0x8f, 0xd4, 0xea, 0x59, 0x16, 0xe0, 0x24, 0x54,
+ 0x5a, 0x3d, 0x0c, 0x61, 0x99, 0xe2, 0xc9, 0x36, 0x0b, 0x20, 0x6b, 0x4e,
+ 0x2e, 0x63, 0x2c, 0x5e, 0x62, 0x1e, 0xe2, 0x5f, 0xc4, 0x8e, 0xaa, 0xa1,
+ 0x48, 0x16, 0xe2, 0x58, 0x2d, 0x47, 0x83, 0x20, 0x99, 0x5b, 0x18, 0x02,
+ 0xa0, 0x86, 0xf2, 0x31, 0x2b, 0xf7, 0x37, 0x71, 0x0c, 0xc7, 0xc6, 0xe9,
+ 0xc9, 0xe9, 0x13, 0x23, 0x27, 0xcb, 0xbc, 0x6f, 0xb8, 0x39, 0xc7, 0x09,
+ 0x4b, 0x69, 0x8a, 0xee, 0xc5, 0x4f, 0x37, 0x88, 0xab, 0xab, 0x04, 0x2b,
+ 0xaf, 0x23, 0x2f, 0x44, 0x6b, 0x1d, 0xd5, 0x51, 0xd1, 0x8c, 0x2c, 0xe4,
+ 0x34, 0xe0, 0x20, 0x87, 0xb9, 0x03, 0x3f, 0xc5, 0x62, 0x0c, 0x1c, 0x29,
+ 0x6a, 0x1a, 0x03, 0xe8, 0x50, 0xc8, 0xd0, 0x9f, 0xdc, 0x60, 0xd4, 0x74,
+ 0xda, 0xa2, 0xfc, 0x1d, 0x92, 0xda, 0x49, 0xda, 0x94, 0x54, 0xfc, 0xaa,
+ 0x99, 0x8b, 0x2f, 0x19, 0x25, 0xa8, 0x61, 0xc6, 0xae, 0x64, 0x40, 0xcc,
+ 0xae, 0xd8, 0x49, 0xb1, 0x57, 0x34, 0xc2, 0x65, 0x06, 0xdf, 0x8b, 0xd3,
+ 0x4c, 0x62, 0x4b, 0x3d, 0xd8, 0x43, 0xbf, 0x19, 0x8a, 0xd4, 0x51, 0x9c,
+ 0x27, 0x28, 0xad, 0x2a, 0x69, 0x6b, 0xa4, 0x73, 0x93, 0x20, 0xe9, 0xd6,
+ 0x4e, 0xd7, 0x4a, 0x3d, 0x51, 0x3a, 0x6d, 0x76, 0x43, 0xd1, 0x2f, 0x1d,
+ 0xe6, 0x29, 0xec, 0xd5, 0x3a, 0xb1, 0x9e, 0x79, 0x4e, 0x63, 0x51, 0x58,
+ 0xd6, 0x4b, 0x0e, 0xbd, 0x54, 0x2f, 0x95, 0xe0, 0xfe, 0xe6, 0xf5, 0x3a,
+ 0x10, 0xd7, 0x80, 0x3b, 0x98, 0xf0, 0x9a, 0x74, 0x1d, 0xe5, 0x9b, 0x2c,
+ 0x0c, 0x99, 0x6d, 0xca, 0x8d, 0xbb, 0x3b, 0x0d, 0x78, 0x85, 0x46, 0x05,
+ 0xb3, 0xce, 0x88, 0x04, 0xd4, 0xb8, 0xda, 0x4c, 0x9c, 0x31, 0x59, 0x97,
+ 0x5d, 0x22, 0x3f, 0x02, 0x1c, 0x4c, 0xed, 0x0d, 0x09, 0x19, 0x57, 0x9c,
+ 0x21, 0xd1, 0x26, 0x0a, 0xc9, 0x24, 0x41, 0xa5, 0x13, 0x43, 0xce, 0xaa,
+ 0x13, 0x57, 0x3c, 0x6d, 0x43, 0x91, 0x69, 0x7d, 0x44, 0x63, 0xbb, 0x80,
+ 0x59, 0x17, 0xf2, 0x08, 0xdd, 0x2e, 0x4f, 0xbe, 0xff, 0x3e, 0x69, 0xe2,
+ 0xc5, 0x6d, 0xae, 0x0a, 0x8a, 0x87, 0x82, 0x4e, 0x37, 0x6e, 0x17, 0x4f,
+ 0x30, 0x1a, 0x50, 0xe2, 0x62, 0xef, 0x30, 0x94, 0x77, 0x48, 0x26, 0xba,
+ 0xd3, 0x57, 0x19, 0xb6, 0x42, 0x28, 0x27, 0x8c, 0x4e, 0x89, 0x2f, 0x63,
+ 0x1f, 0xe6, 0xd1, 0x77, 0x41, 0x5d, 0xe2, 0x0d, 0x47, 0xd4, 0x4c, 0xb8,
+ 0x54, 0x95, 0xbb, 0x4e, 0x48, 0x08, 0xb8, 0x9b, 0x0f, 0xbb, 0x6a, 0xce,
+ 0xc5, 0x58, 0x76, 0x12, 0xfc, 0x8f, 0x19, 0x49, 0xe9, 0x3d, 0x00, 0x9c,
+ 0xb2, 0x45, 0x70, 0x4c, 0x33, 0x14, 0x29, 0xc1, 0xd7, 0xce, 0x8e, 0xe2,
+ 0x1a, 0xc4, 0x03, 0x81, 0x00, 0x06, 0x29, 0xd3, 0x90, 0xba, 0x80, 0xb1,
+ 0xa4, 0x86, 0x17, 0xcf, 0x1c, 0x95, 0xe1, 0x6e, 0x49, 0xc4, 0x5a, 0x5c,
+ 0x24, 0x06, 0x85, 0xe1, 0x02, 0x8b, 0x29, 0x62, 0x19, 0x34, 0x9d, 0x47,
+ 0x48, 0xff, 0xcf, 0xcd, 0x42, 0xef, 0x0a, 0x59, 0x25, 0xa4, 0x17, 0xe3,
+ 0xa6, 0x16, 0xf3, 0x41, 0x5d, 0x2e, 0xb1, 0x42, 0xbc, 0x21, 0x8c, 0x8f,
+ 0xc0, 0x0e, 0x00, 0x03, 0x73, 0x62, 0x81, 0xd2, 0xe2, 0x36, 0x50, 0xd5,
+ 0x48, 0x42, 0xd2, 0x67, 0x40, 0xad, 0x89, 0xfc, 0xd2, 0x3e, 0x18, 0x50,
+ 0x92, 0x0d, 0x39, 0xb9, 0xb0, 0xe1, 0xf9, 0x1c, 0x0c, 0x66, 0xe9, 0x87,
+ 0x01, 0x1e, 0xab, 0xa2, 0x02, 0x1b, 0x91, 0xad, 0x53, 0x5a, 0xa8, 0xc2,
+ 0x05, 0x33, 0xad, 0xd6, 0xe5, 0x3c, 0x68, 0xa0, 0x2a, 0x53, 0x10, 0xdf,
+ 0x0d, 0x5f, 0x1d, 0x5e, 0xb4, 0x8f, 0x16, 0x10, 0x28, 0xd4, 0x44, 0x80,
+ 0x4c, 0x03, 0xfa, 0xfb, 0xf4, 0xdd, 0xc5, 0xa6, 0x2f, 0xae, 0x26, 0x54,
+ 0xda, 0x08, 0xe8, 0xd3, 0x08, 0xf8, 0x18, 0xb8, 0x52, 0xa2, 0xfb, 0x95,
+ 0xc1, 0x02, 0x9c, 0xd2, 0x1d, 0x08, 0x2e, 0x07, 0xf9, 0x64, 0x7b, 0xa7,
+ 0x4f, 0xff, 0xec, 0xc2, 0xda, 0xf6, 0x64, 0xfb, 0x89, 0xf3, 0x20, 0xd8,
+ 0x53, 0x91, 0x13, 0x81, 0x43, 0xaa, 0x50, 0x5b, 0x34, 0x70, 0x44, 0x24,
+ 0x4f, 0x3e, 0x7c, 0xc0, 0x57, 0xcd, 0x68, 0xb8, 0x81, 0x8b, 0x6b, 0x5e,
+ 0xe5, 0x31, 0xb1, 0x81, 0xfb, 0x15, 0x87, 0xd9, 0x6c, 0x39, 0x97, 0x70,
+ 0x1f, 0x00, 0xa9, 0x72, 0x06, 0xc1, 0x70, 0x15, 0xaa, 0x57, 0xdd, 0x4e,
+ 0xea, 0x0e, 0x61, 0xbd, 0x88, 0x56, 0x78, 0xf2, 0xae, 0x17, 0x4b, 0x47,
+ 0x88, 0x19, 0x23, 0x1e, 0x93, 0x00, 0x51, 0x30, 0x8e, 0xed, 0x0f, 0xe1,
+ 0x7d, 0xdd, 0x20, 0x09, 0x62, 0x97, 0xca, 0x8c, 0x54, 0xf5, 0x5f, 0x81,
+ 0x97, 0xb7, 0xc7, 0x31, 0xb8, 0x74, 0x28, 0xb0, 0xc2, 0xf6, 0xeb, 0xae,
+ 0xc4, 0xf7, 0xca, 0x1f, 0x4f, 0x42, 0xd5, 0xc2, 0x8a, 0x74, 0x76, 0x16,
+ 0xa8, 0xd9, 0x97, 0xb2, 0x91, 0x21, 0xeb, 0xe2, 0xe3, 0xc7, 0x65, 0xfb,
+ 0x38, 0x53, 0x88, 0x25, 0x68, 0x4d, 0x35, 0xd7, 0xe2, 0xe5, 0xea, 0xed,
+ 0xc4, 0xef, 0x1d, 0x85, 0xa0, 0x10, 0x4d, 0x03, 0x78, 0x41, 0x2b, 0x0e,
+ 0x3a, 0x90, 0x09, 0x1e, 0x24, 0xea, 0x1e, 0xc7, 0x3e, 0x9b, 0x3b, 0x57,
+ 0xa3, 0x5a, 0x45, 0xfd, 0xeb, 0x46, 0xc6, 0x31, 0xa7, 0x29, 0xe9, 0x05,
+ 0x53, 0x41, 0x72, 0x72, 0x71, 0xf8, 0xa5, 0x0d, 0x4b, 0xe2, 0xb7, 0x7d,
+ 0xf0, 0x15, 0xbf, 0xf7, 0xbb, 0xff, 0xa6, 0xc8, 0xad, 0x8e, 0x56, 0xf1,
+ 0x07, 0x74, 0xc4, 0xc5, 0x34, 0xc4, 0xf1, 0x07, 0xd3, 0x79, 0xc1, 0x2d,
+ 0x06, 0x30, 0x0f, 0xbc, 0x20, 0x89, 0x23, 0x9b, 0xac, 0x74, 0xd6, 0x43,
+ 0xca, 0x24, 0xbe, 0x90, 0xcf, 0x96, 0x33, 0x9f, 0xc0, 0xc9, 0xf5, 0x7c,
+ 0xea, 0xcc, 0xd7, 0x2b, 0x0f, 0x71, 0xe5, 0x07, 0x1d, 0x34, 0x02, 0x2c,
+ 0x3f, 0x9f, 0x18, 0x0e, 0xdd, 0x10, 0x80, 0x73, 0x06, 0x69, 0xa2, 0xc1,
+ 0x7b, 0xba, 0x04, 0x2a, 0x26, 0x71, 0xf3, 0x88, 0x5d, 0x4a, 0x23, 0x39,
+ 0x98, 0x4b, 0xb8, 0xd1, 0xb5, 0x91, 0x2f, 0x24, 0x6a, 0x8e, 0x33, 0x20,
+ 0x26, 0x22, 0x1e, 0x63, 0x13, 0xdc, 0x38, 0x51, 0x27, 0x5e, 0xc6, 0x25,
+ 0x59, 0x24, 0x74, 0x21, 0x44, 0xf1, 0x2a, 0x23, 0x6a, 0xe2, 0x2e, 0x9f,
+ 0xd4, 0xd7, 0x80, 0xcc, 0xc4, 0x15, 0xc9, 0xc0, 0x33, 0x1c, 0x2b, 0xad,
+ 0x02, 0x47, 0x1e, 0xe7, 0x67, 0x8d, 0xba, 0xeb, 0x9e, 0xc8, 0x1e, 0x61,
+ 0x4d, 0x13, 0x41, 0xc3, 0xe1, 0xe4, 0x00, 0x6c, 0x03, 0xe2, 0x3a, 0xb7,
+ 0xc4, 0x44, 0xe4, 0xf0, 0x1e, 0x48, 0xe2, 0x5b, 0x5e, 0x32, 0xf6, 0x66,
+ 0x2c, 0x3d, 0x5a, 0x46, 0xd5, 0xd0, 0x1d, 0x0a, 0x98, 0x60, 0xd6, 0x6f,
+ 0x24, 0x95, 0xf1, 0x1b, 0xd5, 0x48, 0x05, 0xa4, 0x0c, 0x3c, 0x40, 0xf2,
+ 0x79, 0x88, 0x5f, 0xdd, 0xe4, 0xd3, 0xc8, 0x26, 0x81, 0xee, 0x49, 0x7f,
+ 0x9e, 0xe1, 0xf5, 0x37, 0xeb, 0x1a, 0xa5, 0xc2, 0x10, 0x7a, 0x99, 0x06,
+ 0x9d, 0xf6, 0x15, 0x4b, 0x73, 0xfd, 0x4a, 0xba, 0xf8, 0x6a, 0xdd, 0xc5,
+ 0xb2, 0x44, 0x97, 0x9d, 0x8f, 0x54, 0x35, 0x5b, 0x7a, 0xb5, 0x97, 0xec,
+ 0x6e, 0x6f, 0x7f, 0x43, 0x2c, 0x76, 0x86, 0x4d, 0xd9, 0xf9, 0xaa, 0xbb,
+ 0x32, 0x8c, 0x92, 0x71, 0x29, 0x40, 0xfc, 0x72, 0x9a, 0xd2, 0x5b, 0x18,
+ 0xbd, 0x75, 0xe1, 0xa4, 0x4a, 0xfc, 0x24, 0xc4, 0xc1, 0xee, 0xdc, 0x38,
+ 0x97, 0x9e, 0xcc, 0xf6, 0xd0, 0x36, 0x1a, 0xc7, 0x0c, 0xb9, 0x2a, 0xbc,
+ 0xf3, 0xd7, 0xf4, 0x5b, 0x16, 0x10, 0x05, 0x3a, 0xe9, 0xc0, 0xba, 0x20,
+ 0xb9, 0x83, 0xf1, 0x0e, 0x97, 0x25, 0x17, 0xc2, 0x46, 0x24, 0x28, 0xe0,
+ 0xc2, 0x60, 0xa4, 0x35, 0xf7, 0xd2, 0xbc, 0x10, 0x00, 0x1a, 0x17, 0xc6,
+ 0x2e, 0xb3, 0xe1, 0xc9, 0x74, 0x25, 0xd8, 0x31, 0x09, 0xcb, 0x25, 0x6f,
+ 0xc1, 0xd2, 0x83, 0x1f, 0x98, 0x43, 0x62, 0x08, 0x72, 0x0c, 0x9d, 0x03,
+ 0x54, 0xd2, 0x00, 0xbd, 0xb0, 0xd6, 0x9e, 0x2c, 0xd3, 0xa5, 0x16, 0xa8,
+ 0x63, 0xa5, 0x13, 0x36, 0x55, 0xcc, 0x91, 0xc1, 0x9d, 0x61, 0x2a, 0xe7,
+ 0xab, 0x8c, 0x01, 0xc2, 0xd0, 0x2e, 0xec, 0xbf, 0x53, 0x7e, 0x60, 0xca,
+ 0x0a, 0x75, 0x11, 0xa5, 0x4c, 0x4d, 0x17, 0x30, 0x2c, 0xbb, 0xcb, 0x28,
+ 0x18, 0x12, 0x27, 0x82, 0x8f, 0x51, 0x0b, 0x86, 0x53, 0x8a, 0x7e, 0x43,
+ 0x23, 0x13, 0x90, 0x10, 0x05, 0x70, 0xe5, 0x05, 0x91, 0xef, 0xe7, 0x3f,
+ 0x72, 0x69, 0xe8, 0x9f, 0x3b, 0x8a, 0x60, 0xa7, 0x9a, 0x53, 0xc7, 0x67,
+ 0xc9, 0xf2, 0xd6, 0x4a, 0x5f, 0xa2, 0x0d, 0xed, 0x48, 0xe2, 0xb7, 0x95,
+ 0xa2, 0xf6, 0xc5, 0xed, 0x3a, 0x43, 0x82, 0xcd, 0x9c, 0xbf, 0x51, 0x6d,
+ 0x0e, 0x43, 0x60, 0x45, 0x45, 0x07, 0xb7, 0x56, 0xe0, 0x8b, 0x9e, 0x0b,
+ 0x73, 0x92, 0x2c, 0x8a, 0x36, 0x33, 0xe2, 0xd8, 0xc7, 0x71, 0xe6, 0x83,
+ 0xad, 0xd0, 0x8a, 0xcd, 0x77, 0xb4, 0xac, 0xee, 0x19, 0x48, 0x4a, 0xbc,
+ 0x18, 0xc8, 0x71, 0x30, 0x70, 0x69, 0x86, 0xb8, 0xe7, 0xe1, 0xc7, 0xe1,
+ 0x69, 0x8c, 0x75, 0x24, 0xd1, 0xc8, 0x75, 0x41, 0x17, 0x7d, 0x5a, 0x96,
+ 0x24, 0xaa, 0xe9, 0x56, 0x6b, 0x36, 0x23, 0x0d, 0x9e, 0x95, 0x1f, 0x18,
+ 0x84, 0x9c, 0x63, 0x82, 0xda, 0x5e, 0x2e, 0x3a, 0xe2, 0xc9, 0x38, 0xbf,
+ 0x39, 0x02, 0x97, 0x6b, 0x80, 0x07, 0x98, 0xfa, 0x61, 0xe2, 0xe6, 0x83,
+ 0x1a, 0xd0, 0x31, 0xac, 0x10, 0xad, 0xe4, 0x10, 0x85, 0x5d, 0x90, 0xfa,
+ 0x14, 0x90, 0x2d, 0xcd, 0xf9, 0xd1, 0x9d, 0xaf, 0x9e, 0xfc, 0xd9, 0xc3,
+ 0x25, 0x4a, 0x49, 0x3c, 0x9f, 0x1f, 0xa2, 0xb8, 0x5d, 0x1c, 0x4f, 0xc1,
+ 0x9a, 0xa2, 0x17, 0xc8, 0x8b, 0x61, 0x17, 0xfa, 0x39, 0x3f, 0x53, 0x88,
+ 0x52, 0x29, 0xd6, 0x84, 0xba, 0x2c, 0x26, 0xcb, 0x31, 0x4c, 0x2c, 0x1c,
+ 0x39, 0x97, 0xd7, 0xf7, 0xc9, 0x48, 0xd0, 0xdb, 0x0c, 0x42, 0x80, 0x9b,
+ 0x76, 0xf2, 0x70, 0xab, 0x39, 0x35, 0xb8, 0xa7, 0xf2, 0x94, 0x83, 0xdb,
+ 0xc5, 0x1d, 0x03, 0xf8, 0xed, 0x4c, 0x05, 0x8d, 0x32, 0xd2, 0x47, 0x50,
+ 0xa7, 0xaf, 0x1b, 0xae, 0x5c, 0x9c, 0xa0, 0xac, 0x10, 0x7c, 0xa8, 0x5d,
+ 0xec, 0x04, 0x97, 0x9c, 0x24, 0xe2, 0x85, 0xa4, 0xfa, 0x25, 0x87, 0xeb,
+ 0xb6, 0x1a, 0x0c, 0x41, 0xb8, 0x67, 0x7d, 0x15, 0xd0, 0x1f, 0xf4, 0x63,
+ 0xbd, 0x71, 0x37, 0x35, 0xfc, 0x56, 0x39, 0x9c, 0x59, 0x78, 0x52, 0x16,
+ 0x16, 0x29, 0x69, 0x53, 0xc3, 0x15, 0xb9, 0xbb, 0x2e, 0xa6, 0xa1, 0x90,
+ 0x12, 0x07, 0x48, 0x30, 0x1a, 0xbf, 0xb7, 0x42, 0x06, 0x89, 0x11, 0x0c,
+ 0x18, 0xc5, 0x03, 0xb5, 0xa2, 0x57, 0x23, 0x54, 0x37, 0xf9, 0x6b, 0x31,
+ 0x52, 0xfd, 0x8e, 0xd1, 0xfc, 0xaf, 0xba, 0x52, 0x0d, 0x25, 0x1c, 0xe0,
+ 0x9a, 0x0b, 0x8b, 0x13, 0x7f, 0x97, 0xc0, 0x12, 0x1e, 0xcf, 0x3c, 0xab,
+ 0x99, 0xdf, 0x20, 0x9e, 0x1c, 0xb6, 0x9e, 0xe4, 0x0a, 0x19, 0xbb, 0x88,
+ 0x10, 0x66, 0xa8, 0x04, 0xe2, 0x79, 0xad, 0xe6, 0x3e, 0x1d, 0x3e, 0xd9,
+ 0xe5, 0x44, 0xb0, 0x90, 0x19, 0xa5, 0x63, 0xd6, 0xb7, 0xaa, 0xc4, 0xf2,
+ 0x64, 0x90, 0x3f, 0xa8, 0xdc, 0xbc, 0x16, 0x6c, 0x8e, 0xa5, 0xf2, 0xa8,
+ 0x41, 0xec, 0xae, 0x55, 0x95, 0x23, 0x63, 0x84, 0xc1, 0x0a, 0xde, 0x6d,
+ 0x6a, 0x6f, 0x59, 0xa6, 0xe3, 0x7b, 0x43, 0x2f, 0xf6, 0x91, 0x62, 0xdc,
+ 0x04, 0xbf, 0x42, 0x03, 0xc3, 0xd3, 0x11, 0x28, 0xff, 0xdc, 0x0d, 0x82,
+ 0xb9, 0x76, 0x0e, 0xb0, 0x88, 0x76, 0x46, 0x9c, 0xd5, 0x3a, 0x1a, 0x58,
+ 0x6b, 0x2b, 0xf4, 0xae, 0x7f, 0x2a, 0xcb, 0xbd, 0xca, 0xe7, 0x03, 0x93,
+ 0xe7, 0x5f, 0xe8, 0x2f, 0x9f, 0x3f, 0x10, 0x7a, 0x84, 0x37, 0x9c, 0x06,
+ 0xa0, 0x7c, 0x55, 0xef, 0x66, 0xb3, 0x3e, 0x35, 0xe8, 0x76, 0xa5, 0x06,
+ 0x63, 0x97, 0xa0, 0x36, 0xe9, 0xda, 0x84, 0x7e, 0x6e, 0x31, 0x42, 0x52,
+ 0x2d, 0x7c, 0x5c, 0x4c, 0x9d, 0xe3, 0x63, 0xdc, 0x19, 0x29, 0x5f, 0x69,
+ 0x9c, 0x92, 0xd6, 0x42, 0xc6, 0x82, 0xe8, 0xa8, 0x5a, 0xc3, 0x49, 0xf6,
+ 0x6b, 0x40, 0xc9, 0x43, 0x58, 0x8f, 0x4d, 0xd2, 0x47, 0x6f, 0xf6, 0x4f,
+ 0xfb, 0xb0, 0x0d, 0x4a, 0xed, 0x88, 0x37, 0x6c, 0xe5, 0x14, 0x4b, 0x79,
+ 0x73, 0xee, 0xe2, 0x46, 0x13, 0x00, 0xba, 0xa0, 0x24, 0x67, 0x5b, 0x6e,
+ 0x1b, 0xb9, 0x10, 0xc7, 0xd6, 0xd2, 0x69, 0x95, 0x59, 0x36, 0xf6, 0x31,
+ 0xce, 0xe1, 0xee, 0x93, 0xcf, 0x9e, 0xf6, 0xf1, 0xdb, 0xb3, 0xed, 0xe7,
+ 0xa2, 0x2d, 0x1d, 0x1d, 0x5e, 0xbc, 0x6e, 0x6b, 0x1c, 0x25, 0xe9, 0x6a,
+ 0xf2, 0xef, 0x20, 0x4b, 0xcb, 0xeb, 0xb4, 0xac, 0x39, 0x6e, 0x6a, 0x50,
+ 0xcd, 0xea, 0xc5, 0x60, 0x7b, 0x7b, 0x58, 0x13, 0x43, 0x09, 0x79, 0xfb,
+ 0x93, 0xa7, 0xc3, 0xed, 0xcd, 0xdf, 0x92, 0x80, 0xd8, 0x44, 0x37, 0xe0,
+ 0x15, 0x4e, 0x5e, 0x68, 0x0e, 0x48, 0xec, 0x4d, 0x7b, 0xc3, 0x46, 0xfe,
+ 0x73, 0x17, 0x30, 0xa6, 0xe8, 0x93, 0xfa, 0x78, 0x90, 0xb3, 0xe0, 0x33,
+ 0xee, 0x42, 0x12, 0xe8, 0x2a, 0x39, 0xd5, 0x66, 0xb5, 0x0e, 0x14, 0x6c,
+ 0xc3, 0x6a, 0x37, 0x49, 0xb1, 0xd8, 0x54, 0x0b, 0x05, 0xd4, 0xbe, 0x30,
+ 0xc9, 0x8a, 0xda, 0xe9, 0x92, 0xb1, 0x58, 0x66, 0x8c, 0x01, 0x25, 0x97,
+ 0x90, 0xc6, 0x53, 0x68, 0xce, 0xfc, 0x43, 0xf8, 0x7f, 0xbb, 0xcf, 0x9a,
+ 0x35, 0x5f, 0xb0, 0x26, 0x60, 0x7c, 0xbf, 0x72, 0x4d, 0xfc, 0xbd, 0x27,
+ 0x02, 0x25, 0x6c, 0xd6, 0x2e, 0x83, 0x2f, 0x46, 0xbe, 0xa8, 0x0c, 0x75,
+ 0xfd, 0xe1, 0x61, 0x6e, 0xb7, 0x87, 0xf9, 0x01, 0xf5, 0x53, 0x61, 0x23,
+ 0x7e, 0x01, 0xf1, 0xfd, 0x23, 0x35, 0x3f, 0xbc, 0xb1, 0x61, 0x5a, 0xcc,
+ 0xa6, 0x47, 0x77, 0x17, 0xf4, 0x24, 0xd1, 0xec, 0xd8, 0xa0, 0xb2, 0x2a,
+ 0xe6, 0xd0, 0x1b, 0xfb, 0xf2, 0x66, 0xd2, 0x1b, 0xc8, 0x12, 0x6c, 0xba,
+ 0xdf, 0xc4, 0xfb, 0xe9, 0x12, 0x82, 0xe1, 0xba, 0x46, 0x0d, 0x9b, 0x74,
+ 0xde, 0x44, 0x8e, 0x43, 0x89, 0x0e, 0x98, 0x24, 0xb3, 0x0f, 0x08, 0xff,
+ 0x23, 0x9d, 0xfe, 0x93, 0x27, 0xb1, 0x09, 0xfc, 0xe4, 0xe2, 0x70, 0x2f,
+ 0xac, 0x5c, 0x26, 0xe6, 0x72, 0xb5, 0x54, 0x49, 0xc0, 0x1e, 0x27, 0xdf,
+ 0x33, 0x4c, 0x0d, 0x63, 0xd9, 0x06, 0xb3, 0xeb, 0x77, 0x00, 0xf8, 0x21,
+ 0x47, 0x90, 0x4b, 0xd4, 0x89, 0x0b, 0xa4, 0x8e, 0x82, 0x1b, 0x2c, 0x9c,
+ 0x01, 0x59, 0xb9, 0xf9, 0x65, 0x60, 0x5b, 0xe8, 0xaa, 0x4c, 0x83, 0x69,
+ 0x4b, 0xf9, 0x32, 0xc6, 0x53, 0x13, 0x0a, 0x8d, 0x16, 0x4b, 0x28, 0x04,
+ 0x92, 0xba, 0xe5, 0xe4, 0x16, 0x74, 0x3b, 0x96, 0x51, 0x64, 0x06, 0xd4,
+ 0x6e, 0xf6, 0xd9, 0x20, 0xfb, 0xed, 0xc2, 0x50, 0xc4, 0x2e, 0x5b, 0xd9,
+ 0xa9, 0x20, 0xde, 0x72, 0xbc, 0xa8, 0x7f, 0x2d, 0xf1, 0xf6, 0x3d, 0x2e,
+ 0xb6, 0x48, 0x62, 0x12, 0xa6, 0x07, 0x0f, 0x51, 0x57, 0xed, 0xf7, 0xef,
+ 0xa2, 0x02, 0x40, 0x20, 0x77, 0x1b, 0x9c, 0x85, 0xe4, 0x8e, 0xf3, 0x45,
+ 0x1e, 0xa0, 0xe6, 0xba, 0xfb, 0x21, 0x8d, 0x31, 0x02, 0xd8, 0x2b, 0x82,
+ 0x36, 0xdc, 0x71, 0x2a, 0x3c, 0xd0, 0x80, 0x34, 0x5e, 0x0c, 0x1f, 0x38,
+ 0x1a, 0xe1, 0xc0, 0xc2, 0x91, 0xa1, 0x30, 0x8d, 0x63, 0x35, 0x8d, 0xb2,
+ 0x53, 0xc9, 0xc6, 0xb7, 0x67, 0xaf, 0x7f, 0x30, 0x7b, 0xcf, 0x66, 0xbf,
+ 0xd3, 0x98, 0xde, 0x9a, 0x42, 0x23, 0xa0, 0x5f, 0x25, 0x8a, 0xc6, 0xd2,
+ 0xf9, 0x3f, 0x3a, 0x88, 0x6d, 0x52, 0x20, 0xde, 0x68, 0x83, 0x0b, 0xa3,
+ 0x70, 0xf5, 0x34, 0x15, 0xfb, 0x9f, 0x0c, 0x9f, 0xc1, 0x15, 0xf5, 0xfa,
+ 0xe0, 0xd9, 0x93, 0xdd, 0x9d, 0xcd, 0x61, 0x7c, 0x1b, 0xac, 0x7d, 0xd4,
+ 0xfa, 0xbb, 0x2d, 0xcb, 0x3e, 0x2c, 0x98, 0x60, 0x36, 0x0e, 0xbf, 0x3f,
+ 0x7d, 0xdb, 0x9c, 0x9f, 0xcc, 0x28, 0x12, 0xeb, 0x56, 0xcd, 0xd0, 0x1b,
+ 0x12, 0x1b, 0xed, 0x5b, 0x12, 0x21, 0x0e, 0x4e, 0x8c, 0x0d, 0xd2, 0x7b,
+ 0x5d, 0xe6, 0x7c, 0x06, 0x7a, 0xbc, 0x20, 0xbd, 0x63, 0x12, 0x5e, 0x49,
+ 0x31, 0x39, 0x61, 0x74, 0xb0, 0xac, 0xd7, 0x82, 0xf3, 0x6a, 0xce, 0xae,
+ 0x61, 0xc0, 0x86, 0x3a, 0xd9, 0xa1, 0x48, 0x7a, 0x96, 0xa6, 0x6a, 0x24,
+ 0x5c, 0xff, 0xa6, 0x0c, 0xb0, 0x0e, 0xe4, 0xec, 0xb7, 0x8a, 0x10, 0xa2,
+ 0x61, 0x19, 0xa4, 0xf0, 0x44, 0x70, 0x41, 0xce, 0x6d, 0xe3, 0x3c, 0x11,
+ 0xab, 0xd0, 0x57, 0x11, 0xc2, 0x93, 0x35, 0x8b, 0x0d, 0xc5, 0x95, 0x64,
+ 0x2d, 0xcc, 0x26, 0x18, 0x4e, 0x85, 0xcc, 0x28, 0x12, 0x2a, 0xaa, 0x65,
+ 0x39, 0x59, 0xce, 0x68, 0x05, 0xbe, 0xbc, 0xb7, 0xb0, 0x23, 0xbd, 0xb0,
+ 0xa1, 0xb2, 0xc7, 0x39, 0x0d, 0x19, 0x4c, 0x5f, 0xcf, 0xb6, 0x1b, 0xad,
+ 0x0d, 0xb1, 0x08, 0x2d, 0xe3, 0xea, 0x60, 0xc7, 0xd5, 0xdf, 0xe4, 0x84,
+ 0x43, 0xb1, 0x0e, 0xb6, 0x6d, 0x6e, 0x7c, 0x71, 0xff, 0x96, 0x52, 0x45,
+ 0x56, 0xa7, 0x2c, 0xf7, 0x3f, 0x9e, 0xa4, 0xdf, 0x30, 0x83, 0x8b, 0xa3,
+ 0x9e, 0xc9, 0x55, 0x6b, 0x99, 0xba, 0x3c, 0x4b, 0x46, 0x92, 0x8a, 0x68,
+ 0xeb, 0x8d, 0xf6, 0x22, 0x3c, 0x78, 0x03, 0x0c, 0xd2, 0x02, 0x28, 0x44,
+ 0xfa, 0x7b, 0x9a, 0x6c, 0xb0, 0x44, 0x96, 0x3c, 0xfb, 0xec, 0xd9, 0xd3,
+ 0x4d, 0x55, 0xf9, 0x5d, 0x7c, 0xce, 0x66, 0x97, 0xf3, 0x0d, 0xeb, 0xb6,
+ 0xac, 0x1c, 0x9e, 0xf7, 0x2c, 0x47, 0xa9, 0x2e, 0xd0, 0xba, 0xba, 0xf1,
+ 0xa4, 0xe2, 0x11, 0x94, 0x71, 0x98, 0x94, 0x2c, 0x06, 0xb7, 0xdd, 0x1c,
+ 0x75, 0x26, 0x75, 0xbe, 0x92, 0x0d, 0x1c, 0x8e, 0xa0, 0x64, 0x4a, 0xe2,
+ 0xb2, 0xd1, 0x71, 0x55, 0xc9, 0xd5, 0xe0, 0xf2, 0x2d, 0xd8, 0x86, 0x71,
+ 0x54, 0x77, 0x9a, 0xbe, 0xc5, 0xc5, 0x14, 0xd6, 0xbb, 0x45, 0x6d, 0xd7,
+ 0x22, 0xb8, 0x8b, 0xc4, 0x19, 0x00, 0x83, 0xbf, 0xde, 0x75, 0x5d, 0xe0,
+ 0x96, 0x24, 0xbd, 0xc2, 0xdc, 0xc7, 0x77, 0x67, 0x73, 0x1d, 0x05, 0x40,
+ 0x8c, 0xb7, 0xdf, 0xde, 0xd7, 0x70, 0x1e, 0x5f, 0x5f, 0x36, 0xb6, 0xb6,
+ 0xcd, 0xb2, 0x99, 0x81, 0x4a, 0xcb, 0xad, 0x5e, 0x94, 0xbe, 0xf4, 0x8f,
+ 0xd8, 0x73, 0xe4, 0x82, 0x46, 0x0c, 0xe3, 0x2a, 0x64, 0x0e, 0x53, 0x47,
+ 0x52, 0x83, 0x30, 0x68, 0x8c, 0x6c, 0x45, 0xa1, 0x0f, 0x47, 0x6c, 0x61,
+ 0x72, 0xb1, 0xba, 0xa1, 0x10, 0xd2, 0x6a, 0xbf, 0x3b, 0xa2, 0x8c, 0xcb,
+ 0xdf, 0x48, 0xa7, 0xad, 0x75, 0x58, 0x31, 0x78, 0xa9, 0x80, 0x83, 0x9c,
+ 0x70, 0xe8, 0x36, 0x83, 0x38, 0x5b, 0x25, 0xd9, 0xc0, 0x78, 0xb7, 0xb6,
+ 0x36, 0x1f, 0x1d, 0xb3, 0x3e, 0xf8, 0xd8, 0x18, 0x4f, 0x45, 0xd9, 0x98,
+ 0x87, 0x25, 0x43, 0xfc, 0x10, 0xb8, 0x4b, 0xde, 0x2f, 0x01, 0x1b, 0x96,
+ 0xa0, 0x46, 0xb1, 0xbf, 0xb3, 0xd0, 0x92, 0x90, 0x1c, 0xd4, 0x81, 0x89,
+ 0x04, 0x70, 0xde, 0x54, 0xe7, 0xd7, 0x9c, 0xba, 0x0a, 0xaf, 0x92, 0xac,
+ 0xae, 0x5c, 0x41, 0xb3, 0x35, 0x38, 0x94, 0x31, 0xaa, 0xe2, 0x36, 0x0f,
+ 0xf2, 0x4c, 0x38, 0x36, 0x27, 0x98, 0x9f, 0x9c, 0x2a, 0xef, 0x54, 0x96,
+ 0x33, 0x68, 0x4a, 0x82, 0x38, 0x9f, 0x63, 0x56, 0xec, 0x9e, 0x6e, 0xd5,
+ 0xe0, 0x1d, 0x46, 0x58, 0x60, 0xf2, 0x24, 0x1f, 0x1f, 0xf3, 0x48, 0xe7,
+ 0xf3, 0x0e, 0xa9, 0xd5, 0xbb, 0x0e, 0xd1, 0x20, 0xe9, 0xf8, 0x37, 0x7e,
+ 0xce, 0x82, 0xe9, 0x67, 0xc9, 0x6a, 0x01, 0x5e, 0x40, 0x85, 0xe1, 0x76,
+ 0xe3, 0x2a, 0x38, 0xea, 0xc6, 0x8a, 0x59, 0xd5, 0x3a, 0x7c, 0xda, 0x58,
+ 0xcc, 0xbe, 0x9c, 0x50, 0x84, 0xda, 0x77, 0x09, 0xc1, 0xa8, 0xa1, 0xf0,
+ 0xa0, 0xd8, 0x0f, 0x7c, 0x1c, 0x1a, 0x58, 0xb3, 0x42, 0xb4, 0x5c, 0x16,
+ 0x23, 0xb7, 0xd0, 0x1a, 0x90, 0x36, 0x0c, 0x6e, 0xd0, 0x39, 0x5b, 0x99,
+ 0xe6, 0x59, 0x5d, 0x8e, 0x23, 0xc3, 0x92, 0x73, 0x86, 0x57, 0x63, 0x35,
+ 0x7d, 0x0f, 0xf1, 0x20, 0x75, 0xfd, 0x5e, 0x7f, 0x61, 0x16, 0xad, 0x89,
+ 0x10, 0x9b, 0xe6, 0xa7, 0xd2, 0xa0, 0xa0, 0x8e, 0x98, 0xf7, 0xf5, 0xca,
+ 0x05, 0xe9, 0x6b, 0x90, 0x14, 0xf3, 0x48, 0xd1, 0x98, 0x05, 0x35, 0x6c,
+ 0x3e, 0x49, 0xbc, 0xbf, 0xdc, 0x41, 0xdf, 0xdf, 0x2f, 0xa2, 0xe8, 0x57,
+ 0xc9, 0x73, 0x07, 0x89, 0x70, 0x1b, 0x00, 0x61, 0x90, 0xe4, 0x0f, 0x1f,
+ 0xb7, 0x00, 0xdd, 0x80, 0x85, 0xe0, 0xd0, 0x6f, 0xab, 0xc5, 0xdb, 0x3a,
+ 0x46, 0x17, 0xd9, 0x10, 0xd8, 0x70, 0x83, 0x79, 0x6e, 0x3c, 0xdb, 0x4c,
+ 0x2e, 0xeb, 0xc5, 0xc6, 0xce, 0xa6, 0xc0, 0x22, 0x6b, 0x09, 0x9b, 0xc2,
+ 0xef, 0x6d, 0xac, 0x24, 0x20, 0xae, 0xeb, 0xc0, 0x75, 0x0b, 0xe7, 0x2d,
+ 0xc3, 0xd6, 0x23, 0x7e, 0xfc, 0x52, 0xcf, 0x81, 0x2c, 0x98, 0xab, 0xbd,
+ 0x01, 0xd7, 0x57, 0x97, 0x54, 0x09, 0x4b, 0xf0, 0x82, 0x13, 0x1d, 0x2a,
+ 0x29, 0x25, 0xb8, 0xe1, 0xeb, 0x24, 0xc8, 0xdd, 0x90, 0x64, 0xb9, 0x84,
+ 0x68, 0x14, 0xe5, 0x74, 0x32, 0xe0, 0xab, 0xe3, 0xaa, 0x2c, 0x96, 0x8b,
+ 0x41, 0xd9, 0x81, 0x85, 0xa4, 0xd7, 0xc7, 0x05, 0x9c, 0x2c, 0x71, 0xda,
+ 0x4d, 0xd2, 0xe3, 0x8c, 0x9c, 0x9e, 0xbb, 0xdb, 0xc3, 0xbc, 0x9f, 0x15,
+ 0x89, 0x33, 0xb2, 0x9b, 0x71, 0x79, 0x61, 0x4e, 0x2c, 0xcc, 0xc7, 0x76,
+ 0xc0, 0xa5, 0x44, 0x04, 0x72, 0x3c, 0x18, 0x68, 0x4d, 0xd9, 0x39, 0xf1,
+ 0x0e, 0x0d, 0x73, 0x80, 0x35, 0x9b, 0xb8, 0x8d, 0x52, 0x59, 0x64, 0x9b,
+ 0x14, 0x33, 0xa6, 0xc9, 0x01, 0x80, 0x48, 0x2e, 0x54, 0xd6, 0x44, 0x0c,
+ 0x9f, 0x04, 0x75, 0x88, 0xcc, 0xcc, 0x4c, 0x5d, 0x08, 0x40, 0xc2, 0xff,
+ 0x3a, 0x9c, 0xa7, 0xeb, 0xb3, 0x7b, 0xbe, 0xc4, 0xd6, 0x1b, 0x54, 0x97,
+ 0xac, 0x57, 0x6c, 0x0b, 0xac, 0xd7, 0x6d, 0x79, 0x5b, 0xf9, 0x64, 0x71,
+ 0x4d, 0x8e, 0x15, 0x7d, 0x0b, 0x55, 0x4b, 0x17, 0xbe, 0x75, 0x69, 0xdc,
+ 0x9f, 0xbe, 0xb7, 0x7d, 0x89, 0x79, 0x1f, 0x2d, 0x39, 0xd2, 0xa4, 0x5d,
+ 0x29, 0x5b, 0x58, 0xb5, 0x48, 0x04, 0xf2, 0x84, 0xd6, 0x1a, 0xf4, 0x00,
+ 0x2f, 0x0c, 0xfd, 0x93, 0xa5, 0xb3, 0xb0, 0x62, 0x27, 0x1b, 0x55, 0xd9,
+ 0x94, 0xdd, 0xde, 0xf6, 0x25, 0xc8, 0xba, 0x0a, 0x0f, 0x43, 0x2b, 0x2c,
+ 0x51, 0xfa, 0x40, 0xec, 0x89, 0x34, 0xae, 0xad, 0x77, 0x42, 0x84, 0xa2,
+ 0x01, 0x07, 0x34, 0xa1, 0x4a, 0xaf, 0x5c, 0x3b, 0x6a, 0x55, 0xd5, 0x46,
+ 0x5c, 0xd5, 0x03, 0x5a, 0x8f, 0xf1, 0xf5, 0x72, 0x7e, 0x43, 0x43, 0x88,
+ 0x23, 0x9e, 0xcd, 0xbf, 0x91, 0xa3, 0xf2, 0x8c, 0x14, 0xd0, 0x36, 0x34,
+ 0x09, 0x79, 0x9d, 0xe1, 0xca, 0x6e, 0x91, 0xbd, 0xaa, 0xd5, 0x64, 0x1e,
+ 0x8a, 0x54, 0x13, 0xb3, 0xae, 0x2c, 0xa0, 0x8c, 0xca, 0x2d, 0xe0, 0xc3,
+ 0x19, 0x90, 0x56, 0x9b, 0x44, 0x62, 0xa1, 0xae, 0x82, 0x50, 0x08, 0x61,
+ 0x51, 0x06, 0x04, 0xc3, 0xf7, 0x8c, 0x1a, 0x39, 0xbb, 0xaa, 0xe0, 0xc2,
+ 0x2f, 0xae, 0xdb, 0xca, 0x64, 0x1a, 0x42, 0x48, 0x76, 0x8c, 0x44, 0x59,
+ 0xf0, 0xa0, 0x83, 0x97, 0x5c, 0xb4, 0xca, 0xd1, 0x3b, 0x52, 0xb4, 0x97,
+ 0xfa, 0x0d, 0x04, 0x61, 0xf8, 0x1f, 0x2d, 0x77, 0xa0, 0x83, 0x97, 0x48,
+ 0x05, 0xa0, 0x0d, 0xd2, 0x2e, 0x8a, 0xe9, 0xb2, 0x96, 0x9c, 0x67, 0xb6,
+ 0x88, 0x71, 0x2a, 0xc9, 0xa6, 0x1d, 0x28, 0x39, 0x80, 0x2e, 0x22, 0x42,
+ 0xf8, 0x58, 0x27, 0x32, 0x17, 0x02, 0xbe, 0x9d, 0xb5, 0x57, 0x02, 0xb2,
+ 0x54, 0x6b, 0x67, 0xd9, 0x5f, 0xaf, 0x09, 0xe1, 0x73, 0xac, 0xc2, 0x22,
+ 0x5d, 0xd2, 0x18, 0x6c, 0x6c, 0x3c, 0x32, 0x3d, 0xa2, 0xb1, 0x20, 0x81,
+ 0xf9, 0x17, 0x82, 0x81, 0xaf, 0xb1, 0xe5, 0x4a, 0x4b, 0x98, 0xb2, 0xf1,
+ 0x60, 0x7c, 0xc4, 0x03, 0xe1, 0x80, 0x1d, 0x6b, 0x6d, 0xb5, 0x32, 0x04,
+ 0x9e, 0x58, 0xa5, 0x7d, 0x1d, 0x16, 0x8b, 0xe9, 0x12, 0xd0, 0x2a, 0x23,
+ 0x9a, 0x2d, 0xd9, 0xc7, 0x10, 0x99, 0x99, 0x69, 0x5f, 0xa6, 0x4b, 0x81,
+ 0x68, 0x67, 0x7f, 0xb5, 0xba, 0xca, 0x48, 0x38, 0x4f, 0x47, 0xbc, 0x3b,
+ 0xa3, 0x7b, 0x37, 0x4d, 0xcb, 0xaf, 0x47, 0x22, 0xbc, 0x69, 0xd3, 0x31,
+ 0x79, 0xd8, 0x63, 0xad, 0x7e, 0xbe, 0x35, 0xc6, 0x1a, 0x51, 0x86, 0x38,
+ 0x41, 0x42, 0x38, 0x90, 0x1b, 0xe5, 0x27, 0xca, 0x64, 0x97, 0x1d, 0xe6,
+ 0x52, 0x37, 0x18, 0x93, 0xd4, 0xd9, 0x1c, 0x90, 0x4a, 0x41, 0x18, 0x85,
+ 0x5c, 0xd1, 0x65, 0xb0, 0x9c, 0x98, 0xa2, 0x99, 0x82, 0x45, 0xe7, 0xa6,
+ 0x00, 0x06, 0xfa, 0x0a, 0xc0, 0x53, 0x2d, 0x9f, 0xfa, 0xd6, 0x1e, 0x4b,
+ 0x36, 0xce, 0x4f, 0xdf, 0x1e, 0x7e, 0x75, 0xb2, 0xf9, 0x98, 0x57, 0x41,
+ 0x01, 0x25, 0x11, 0x81, 0x82, 0x43, 0x85, 0xe3, 0xdd, 0xd1, 0x0e, 0x5c,
+ 0x4e, 0x00, 0xf8, 0x0b, 0xed, 0xc8, 0x5d, 0xf1, 0x76, 0x7d, 0x49, 0x44,
+ 0x95, 0xf3, 0x2a, 0xa8, 0x82, 0x6e, 0xf8, 0x1f, 0x1b, 0xeb, 0x9f, 0x76,
+ 0x45, 0xfa, 0x7f, 0x75, 0x7e, 0x3e, 0xd8, 0x3f, 0x3d, 0x42, 0x45, 0xae,
+ 0x73, 0xfa, 0xb9, 0x02, 0xb6, 0xbc, 0x2b, 0xb0, 0x5f, 0x2c, 0xe3, 0x1c,
+ 0x2d, 0xd8, 0x8c, 0xed, 0x0f, 0xc2, 0xf9, 0xd1, 0x7c, 0xfb, 0xba, 0x3d,
+ 0x3d, 0xda, 0x42, 0x57, 0xf0, 0x69, 0x60, 0x25, 0xba, 0xc3, 0xf9, 0xe2,
+ 0xba, 0x31, 0x82, 0xad, 0x88, 0x74, 0x0d, 0x10, 0xa8, 0x31, 0x90, 0x94,
+ 0x44, 0x4f, 0xd2, 0x75, 0x07, 0x4b, 0xc3, 0x71, 0xec, 0x46, 0x30, 0x62,
+ 0x53, 0x3a, 0x27, 0xa3, 0x19, 0x34, 0x7f, 0xcb, 0x74, 0x0f, 0xd3, 0xac,
+ 0x80, 0x5d, 0x32, 0x34, 0x39, 0x09, 0x56, 0x1a, 0xd9, 0xd2, 0xb6, 0xeb,
+ 0xad, 0x0f, 0x88, 0x79, 0xed, 0xad, 0x4b, 0xaa, 0x46, 0x36, 0xe7, 0x72,
+ 0xc7, 0x89, 0x9d, 0xb5, 0x24, 0x30, 0x95, 0x35, 0x6e, 0x6c, 0x07, 0xb4,
+ 0x33, 0x58, 0x76, 0x8f, 0x8e, 0x8e, 0x28, 0x8b, 0x57, 0xe2, 0x08, 0x54,
+ 0xa9, 0xf1, 0x5f, 0x82, 0x4a, 0x1c, 0x1e, 0x89, 0x20, 0xaf, 0xed, 0xa1,
+ 0x6b, 0x5e, 0xf9, 0x8c, 0xcf, 0x81, 0x53, 0x8f, 0x86, 0x93, 0x36, 0x2f,
+ 0x0e, 0x4e, 0x83, 0x08, 0x80, 0x7e, 0x6c, 0xf0, 0x18, 0xdd, 0xfb, 0xf4,
+ 0x70, 0xe4, 0xe5, 0xce, 0x5d, 0xeb, 0xb3, 0xe1, 0xea, 0xf2, 0x92, 0x75,
+ 0x50, 0x67, 0xaa, 0xeb, 0xde, 0x6b, 0x5c, 0x7c, 0xae, 0x04, 0xeb, 0xea,
+ 0xab, 0xcf, 0xcf, 0x20, 0xb8, 0xfd, 0xdc, 0x87, 0xad, 0xa5, 0x51, 0x18,
+ 0xa9, 0x7c, 0xd2, 0x99, 0xa4, 0x65, 0x2b, 0x64, 0x95, 0x68, 0x74, 0x8d,
+ 0x18, 0x02, 0xc8, 0xe0, 0xba, 0x8e, 0x5e, 0xd1, 0x68, 0x58, 0x10, 0x23,
+ 0xdd, 0x33, 0x30, 0x97, 0xc5, 0x02, 0xa4, 0xb7, 0x87, 0x83, 0x73, 0xa3,
+ 0x78, 0xba, 0x37, 0x5a, 0x72, 0x1b, 0xd9, 0x30, 0x58, 0x15, 0xad, 0x34,
+ 0xac, 0x58, 0x71, 0xdd, 0x28, 0xbf, 0x6c, 0xe9, 0x2f, 0x25, 0xe0, 0x30,
+ 0xb9, 0x5e, 0x96, 0x82, 0x66, 0xa0, 0x58, 0x44, 0x8a, 0x73, 0x5e, 0x66,
+ 0x3c, 0xe6, 0xe6, 0x80, 0xa3, 0x4a, 0x88, 0xa2, 0x8f, 0xd3, 0xb1, 0x9f,
+ 0x69, 0xfe, 0xc1, 0xa8, 0x2c, 0x6e, 0xe8, 0xb4, 0xf2, 0x6b, 0xae, 0xf0,
+ 0xbd, 0xc8, 0x70, 0xa6, 0x56, 0xd2, 0x8d, 0x32, 0x71, 0x2e, 0xd1, 0x8e,
+ 0xe0, 0x53, 0x54, 0x7e, 0xd0, 0xf0, 0x06, 0x2f, 0x0c, 0x09, 0x28, 0x3f,
+ 0x12, 0xf9, 0x0c, 0xc6, 0x15, 0xe2, 0x37, 0x57, 0x21, 0xf7, 0x71, 0x84,
+ 0xb1, 0x73, 0x5b, 0x8b, 0x29, 0xfc, 0xeb, 0x68, 0xc8, 0x91, 0x45, 0x48,
+ 0x43, 0x1d, 0x5b, 0xde, 0x20, 0x26, 0xe1, 0xfa, 0x2f, 0x88, 0xaa, 0x84,
+ 0x9b, 0xb3, 0x51, 0xae, 0x6d, 0x16, 0x46, 0x4d, 0x92, 0x41, 0x80, 0x96,
+ 0x23, 0x56, 0x6a, 0xa8, 0x22, 0x1c, 0x92, 0x22, 0x11, 0x1c, 0x13, 0x5f,
+ 0x48, 0x49, 0xd1, 0x62, 0xa1, 0x62, 0xc7, 0x62, 0x06, 0x8b, 0x65, 0xee,
+ 0xd2, 0x16, 0x57, 0x13, 0xf8, 0x04, 0x6f, 0x0f, 0x70, 0xd2, 0x90, 0x55,
+ 0xae, 0x1e, 0x94, 0x3f, 0x85, 0x48, 0x24, 0xd2, 0x53, 0xa4, 0x52, 0x48,
+ 0x71, 0x01, 0x17, 0x22, 0x23, 0xb9, 0x83, 0x2e, 0xe3, 0x97, 0x61, 0xa7,
+ 0x43, 0x9e, 0x21, 0x40, 0xb6, 0xc9, 0x21, 0xc7, 0xbb, 0x74, 0xe8, 0x39,
+ 0x96, 0x1f, 0x8a, 0x39, 0xe6, 0x0a, 0xc1, 0x29, 0xde, 0x08, 0x55, 0x1a,
+ 0x53, 0x73, 0x34, 0x58, 0xe4, 0x8b, 0x2b, 0xbd, 0xdb, 0x21, 0x40, 0xf2,
+ 0x88, 0xd4, 0x9c, 0x6f, 0x95, 0x44, 0xec, 0x23, 0x57, 0x57, 0xe0, 0xb5,
+ 0x0f, 0xf2, 0xee, 0x8b, 0xf1, 0x48, 0xf4, 0xb1, 0x0e, 0x01, 0x12, 0xa3,
+ 0x49, 0xfc, 0x43, 0xfd, 0xe0, 0xf7, 0xbd, 0xcf, 0xb6, 0x2d, 0xcc, 0x97,
+ 0xed, 0x75, 0xe1, 0x33, 0x40, 0x6d, 0xec, 0x50, 0x23, 0x00, 0x1a, 0x58,
+ 0xd4, 0xee, 0xd1, 0x76, 0x35, 0x90, 0xe7, 0xc3, 0xa7, 0x9b, 0x0d, 0x7a,
+ 0xa9, 0xa7, 0x33, 0x07, 0xaa, 0x69, 0x82, 0x49, 0xf2, 0xf6, 0xe2, 0xf8,
+ 0x4d, 0x12, 0xd9, 0x03, 0xc4, 0x87, 0x88, 0xef, 0x9a, 0x5f, 0x45, 0x76,
+ 0x4e, 0xc4, 0x61, 0x73, 0x18, 0x39, 0x89, 0x8f, 0xf9, 0xd5, 0x5c, 0x2a,
+ 0x2f, 0xbc, 0xc9, 0xc7, 0x65, 0x51, 0x15, 0x97, 0xe2, 0xc9, 0xb4, 0x0b,
+ 0x86, 0xbe, 0x38, 0x3a, 0x3a, 0x4f, 0xee, 0xb2, 0x91, 0xe5, 0x59, 0x45,
+ 0x51, 0x85, 0x92, 0xba, 0x08, 0x12, 0x5c, 0x94, 0x79, 0x56, 0xb3, 0xa0,
+ 0x61, 0x26, 0x3d, 0xce, 0xbd, 0xe6, 0x97, 0xb2, 0x41, 0x36, 0x27, 0x85,
+ 0x33, 0x83, 0xfa, 0xc6, 0x65, 0x1e, 0xa6, 0xe0, 0x4a, 0x8b, 0xac, 0xe8,
+ 0x30, 0xea, 0xca, 0x00, 0x8c, 0xa5, 0xc8, 0xda, 0xe0, 0xae, 0x18, 0xa5,
+ 0x95, 0xc3, 0x9d, 0xca, 0x4b, 0xa6, 0x38, 0x16, 0x36, 0xd4, 0x12, 0x73,
+ 0x93, 0x23, 0xc1, 0x3f, 0x4a, 0x7c, 0xd7, 0x1a, 0xa0, 0x8e, 0x1d, 0x9a,
+ 0x41, 0x62, 0x3e, 0x29, 0x4a, 0x78, 0x48, 0x02, 0x2c, 0x6b, 0xae, 0xa5,
+ 0xb0, 0x44, 0xdc, 0x27, 0x0f, 0xef, 0xbe, 0x43, 0x62, 0xbf, 0x2e, 0x24,
+ 0xec, 0x12, 0xcb, 0xcc, 0x5c, 0x49, 0x52, 0x02, 0x11, 0x9f, 0xa5, 0xb8,
+ 0xb4, 0x5a, 0x74, 0xca, 0x58, 0xc9, 0x63, 0x12, 0x9e, 0xed, 0x87, 0x4f,
+ 0x4c, 0x52, 0x43, 0xfb, 0xab, 0xfc, 0x6a, 0x45, 0x7d, 0x02, 0xd1, 0xa2,
+ 0xda, 0x62, 0x26, 0x8f, 0x48, 0xf9, 0x65, 0xa9, 0xc2, 0x65, 0xbb, 0x10,
+ 0x4e, 0x07, 0x10, 0x48, 0x43, 0xb2, 0x24, 0x6a, 0x7b, 0xb0, 0xd6, 0xf1,
+ 0xc3, 0x22, 0x25, 0x2e, 0x10, 0x4d, 0x1b, 0xd5, 0x52, 0x4b, 0x24, 0x38,
+ 0x46, 0x86, 0xd1, 0x38, 0x3f, 0x54, 0xe2, 0xd4, 0xa1, 0xc4, 0x99, 0x00,
+ 0xc9, 0xb3, 0x19, 0xfe, 0x2b, 0xaa, 0xfa, 0xf9, 0xc3, 0x56, 0xb0, 0x10,
+ 0xa9, 0x46, 0x81, 0xce, 0x44, 0x80, 0xef, 0x04, 0x51, 0x49, 0xcd, 0x06,
+ 0x85, 0x3e, 0x14, 0x66, 0xdf, 0x55, 0xf5, 0xa4, 0x60, 0x54, 0x5b, 0x55,
+ 0x04, 0xf8, 0x0a, 0x97, 0xdb, 0xfb, 0x3f, 0xfe, 0x11, 0xa7, 0x22, 0xfd,
+ 0xf8, 0xb3, 0x48, 0xd2, 0x82, 0x9d, 0xe1, 0x81, 0x24, 0x8c, 0x74, 0x2a,
+ 0x5f, 0x77, 0x85, 0x37, 0x89, 0x41, 0xa2, 0x0c, 0x30, 0x1b, 0x57, 0x78,
+ 0xdb, 0x42, 0x21, 0xde, 0x43, 0xbd, 0x7a, 0x75, 0x6c, 0xc6, 0xf7, 0x81,
+ 0x33, 0x9c, 0x06, 0x46, 0x34, 0x0f, 0xe1, 0xad, 0x18, 0xd2, 0x93, 0x55,
+ 0x28, 0xf0, 0x86, 0x34, 0xd3, 0xac, 0xf8, 0x03, 0x8c, 0x0f, 0xf1, 0xf9,
+ 0x60, 0xfc, 0x7c, 0xb3, 0x1c, 0x4b, 0x2d, 0xcd, 0x18, 0x49, 0x55, 0xf6,
+ 0x56, 0x5d, 0x1b, 0xff, 0x41, 0x7b, 0xd1, 0xaf, 0xef, 0x8a, 0x7f, 0x0c,
+ 0x39, 0x9e, 0x11, 0x8c, 0x77, 0x50, 0x48, 0xa1, 0xf3, 0xf7, 0xbf, 0xdf,
+ 0xe1, 0xe8, 0xa1, 0x5e, 0x5c, 0xc0, 0x1c, 0x2b, 0x60, 0x5b, 0xec, 0x00,
+ 0x78, 0x56, 0x00, 0xb7, 0x36, 0xbb, 0xe3, 0x5e, 0xfa, 0x7c, 0x05, 0xfc,
+ 0x63, 0xc8, 0xff, 0xfe, 0xb8, 0x33, 0x78, 0xf6, 0xb3, 0xeb, 0xf5, 0xf7,
+ 0x3b, 0xef, 0x7f, 0xbf, 0xdb, 0xeb, 0x8a, 0x0e, 0xb3, 0x9c, 0xc0, 0x66,
+ 0x30, 0x5f, 0x85, 0x12, 0xb2, 0x1a, 0x3d, 0xab, 0xda, 0xa6, 0xaf, 0x5a,
+ 0x81, 0xb2, 0x38, 0x71, 0xc6, 0x07, 0x5b, 0xa1, 0x1e, 0x01, 0xa2, 0x0f,
+ 0x2b, 0x29, 0x07, 0x5a, 0x8b, 0x16, 0x16, 0xd6, 0xc8, 0xad, 0xb1, 0xc0,
+ 0x6c, 0xc3, 0x9c, 0x19, 0x61, 0x3a, 0x03, 0x1e, 0x61, 0x72, 0x4f, 0xf7,
+ 0x9c, 0x80, 0xac, 0x0e, 0x5d, 0xe4, 0x8c, 0x49, 0x8f, 0x4a, 0xb8, 0x0a,
+ 0xcf, 0xb5, 0xe1, 0x6e, 0x7c, 0x06, 0x93, 0xdb, 0xec, 0xb2, 0x4c, 0x78,
+ 0x93, 0x90, 0xa7, 0x79, 0x2d, 0x7b, 0x8b, 0xc3, 0x2b, 0xc4, 0xee, 0x0f,
+ 0x50, 0x1b, 0xe8, 0xf4, 0x91, 0xe3, 0x93, 0x86, 0x7e, 0x29, 0x29, 0x19,
+ 0x85, 0x84, 0x89, 0x00, 0xfe, 0x1b, 0x5f, 0xdd, 0x65, 0x90, 0x5e, 0xdb,
+ 0xf7, 0xce, 0xc6, 0x89, 0xd3, 0x75, 0xf0, 0x58, 0x58, 0x62, 0x20, 0x7c,
+ 0x3d, 0xf0, 0x84, 0x67, 0x89, 0xd5, 0xa5, 0x1f, 0x2f, 0xeb, 0x18, 0x83,
+ 0x64, 0xb8, 0xd9, 0x95, 0x1e, 0x10, 0xb6, 0x65, 0x78, 0x67, 0x1a, 0xc7,
+ 0x9d, 0x54, 0x52, 0xce, 0x48, 0xf4, 0x41, 0x81, 0x59, 0x65, 0x5e, 0x24,
+ 0x01, 0xa7, 0xb1, 0x6c, 0xe2, 0xea, 0x15, 0xf7, 0x1d, 0xbc, 0x73, 0x36,
+ 0xad, 0x62, 0xda, 0x38, 0x60, 0x37, 0x0f, 0xc3, 0xd8, 0xd5, 0x48, 0x1a,
+ 0xef, 0x87, 0xd5, 0x6b, 0x5d, 0x4e, 0x62, 0x7a, 0xeb, 0xfd, 0x37, 0x76,
+ 0x46, 0x35, 0x40, 0x7e, 0xa5, 0x05, 0xbc, 0x69, 0xa1, 0x70, 0x58, 0xcf,
+ 0xa9, 0x2b, 0x25, 0xe6, 0x53, 0x0a, 0x83, 0xe4, 0xf7, 0xae, 0x3c, 0x56,
+ 0x54, 0x98, 0x00, 0x7b, 0x92, 0x94, 0xaf, 0xd6, 0x08, 0x02, 0x1f, 0x8a,
+ 0x42, 0xcf, 0xf0, 0xb3, 0x82, 0x45, 0xd6, 0xe5, 0x4d, 0x74, 0xdc, 0x26,
+ 0x46, 0xcb, 0xbd, 0x9c, 0xa6, 0x57, 0xbf, 0xeb, 0x04, 0xa8, 0x55, 0xc0,
+ 0x28, 0xe6, 0x44, 0x80, 0xa6, 0x95, 0xe8, 0xdc, 0x79, 0x16, 0x7a, 0x3e,
+ 0x14, 0xbb, 0x84, 0xe6, 0x9d, 0x4b, 0x1d, 0x98, 0x3f, 0xec, 0x6e, 0xc7,
+ 0xac, 0x58, 0x13, 0xe9, 0x80, 0xdf, 0x66, 0x95, 0xa0, 0x98, 0x9e, 0x2a,
+ 0x23, 0x28, 0x91, 0x28, 0x7d, 0xc9, 0x89, 0x0c, 0x09, 0x43, 0x74, 0x96,
+ 0x06, 0xc0, 0xbe, 0x58, 0x05, 0x50, 0xdb, 0x19, 0x77, 0xfa, 0x6b, 0x19,
+ 0xcb, 0xa3, 0x9c, 0x85, 0x6e, 0x2f, 0xbe, 0xf0, 0x77, 0x07, 0xa3, 0x8c,
+ 0x6e, 0x9e, 0xf6, 0x1c, 0x37, 0x7c, 0x54, 0x69, 0x3f, 0x69, 0x86, 0x4f,
+ 0x71, 0x67, 0x5f, 0xe2, 0x9d, 0xe4, 0x02, 0x3a, 0x1d, 0xd3, 0xf6, 0x09,
+ 0x57, 0x95, 0x4f, 0x76, 0x87, 0xdb, 0x2a, 0xf8, 0x3d, 0x98, 0xf9, 0x2a,
+ 0xee, 0x9a, 0x46, 0x1b, 0xbe, 0x1e, 0x29, 0xcb, 0xeb, 0x7f, 0x5d, 0xce,
+ 0x9b, 0x80, 0xfc, 0x5d, 0x1e, 0x2e, 0x55, 0xc3, 0x4c, 0xca, 0xd7, 0x02,
+ 0x08, 0x8d, 0x00, 0xa5, 0xf0, 0x94, 0x2b, 0x5c, 0x5f, 0xc9, 0xf6, 0x9f,
+ 0x48, 0xca, 0x40, 0x83, 0xab, 0xaa, 0x77, 0x44, 0x83, 0x55, 0x70, 0x10,
+ 0xb3, 0xdf, 0x94, 0x99, 0xfa, 0xc8, 0x44, 0x7e, 0x73, 0x35, 0xc1, 0x70,
+ 0x5f, 0x9f, 0xbd, 0x3e, 0x68, 0x35, 0xf7, 0xc9, 0xa7, 0xcf, 0xb6, 0x7f,
+ 0xcb, 0x50, 0x94, 0x46, 0x35, 0x91, 0x87, 0xab, 0x35, 0xfd, 0xaa, 0x72,
+ 0x4d, 0xdd, 0xd5, 0x9a, 0xac, 0x04, 0xc9, 0x2f, 0x2b, 0xd5, 0xa4, 0x5e,
+ 0xd1, 0xae, 0x88, 0xd9, 0x30, 0x43, 0xd1, 0x87, 0xfa, 0x84, 0x95, 0xa8,
+ 0x58, 0x6d, 0xca, 0x2b, 0x8d, 0xe7, 0x67, 0x01, 0x96, 0x83, 0xbd, 0x96,
+ 0xf3, 0x0e, 0xf7, 0xaa, 0xd8, 0xc0, 0xf9, 0x06, 0xb0, 0x0a, 0xde, 0x07,
+ 0x27, 0x6f, 0xdf, 0x1e, 0x1e, 0x5c, 0xf8, 0xca, 0x23, 0x77, 0x56, 0xdd,
+ 0x4e, 0xd8, 0x9d, 0x14, 0x9f, 0x12, 0x95, 0xba, 0xbb, 0x5a, 0x93, 0xc4,
+ 0xb0, 0x5a, 0x6a, 0xb6, 0x8e, 0x00, 0xf9, 0x16, 0x12, 0x9f, 0x1b, 0x00,
+ 0x57, 0x58, 0xd8, 0xbe, 0x30, 0xaa, 0x0e, 0x15, 0xb4, 0xbb, 0x48, 0x8f,
+ 0x4f, 0x79, 0x07, 0xff, 0x8c, 0x0a, 0xf4, 0x68, 0x7a, 0x56, 0x50, 0xa2,
+ 0x47, 0x10, 0xd0, 0xff, 0x3f, 0x56, 0xa4, 0xe7, 0x6b, 0x57, 0x6d, 0xa5,
+ 0x0d, 0x83, 0xdb, 0x55, 0x87, 0x46, 0x15, 0xba, 0x20, 0xa6, 0x61, 0x55,
+ 0x2d, 0x1a, 0x9f, 0x8b, 0xc7, 0x11, 0xb5, 0x95, 0x77, 0x7d, 0x07, 0xa8,
+ 0x24, 0xab, 0x0a, 0xef, 0xac, 0xc2, 0x85, 0x0b, 0x00, 0xe0, 0x84, 0x79,
+ 0x4b, 0xa1, 0xb3, 0x5f, 0x5e, 0x9c, 0x65, 0x75, 0xf4, 0x04, 0x57, 0x17,
+ 0x72, 0x02, 0xda, 0x60, 0xd1, 0x37, 0x8e, 0x50, 0x73, 0xda, 0xd5, 0xb4,
+ 0xcb, 0x82, 0xae, 0xe5, 0xff, 0x94, 0x84, 0x8d, 0xf5, 0x6c, 0x0c, 0x3e,
+ 0xb8, 0x77, 0xbb, 0xb0, 0x18, 0x10, 0x8d, 0x12, 0x85, 0xc5, 0xcc, 0x07,
+ 0xd6, 0x14, 0x34, 0x7a, 0x9b, 0xa0, 0xc2, 0xc2, 0xcb, 0x69, 0xc1, 0x40,
+ 0x78, 0x77, 0x4a, 0xb1, 0x89, 0x1b, 0x18, 0xfc, 0x87, 0xfb, 0xc8, 0xd8,
+ 0xa3, 0x30, 0xf5, 0x44, 0x66, 0x33, 0xba, 0xc2, 0xa7, 0x96, 0xdc, 0x9d,
+ 0xd7, 0x5a, 0xf5, 0x16, 0x25, 0x34, 0x70, 0xa6, 0x5d, 0x1a, 0x90, 0x86,
+ 0x78, 0x51, 0x2f, 0x83, 0xc8, 0x2b, 0x3b, 0xe5, 0xac, 0xd4, 0xb2, 0x48,
+ 0x25, 0xa3, 0x09, 0x20, 0xea, 0xee, 0x68, 0x60, 0xdc, 0xe6, 0x66, 0x31,
+ 0xf6, 0xe0, 0xf3, 0xd1, 0xe3, 0x78, 0x56, 0xa7, 0xde, 0xba, 0xd8, 0x77,
+ 0x55, 0xa3, 0x05, 0x59, 0x40, 0xb3, 0xbe, 0xd4, 0xbc, 0x6d, 0x9c, 0x40,
+ 0xe5, 0x43, 0x56, 0x5b, 0xbb, 0x35, 0x32, 0x39, 0xf9, 0x06, 0xac, 0xa2,
+ 0x6b, 0x65, 0x4b, 0x55, 0x17, 0x01, 0xa3, 0x6f, 0x16, 0x7c, 0x5f, 0x19,
+ 0xfb, 0x0c, 0xc0, 0xa2, 0x33, 0xb1, 0xab, 0x68, 0x61, 0x73, 0xb5, 0xa8,
+ 0x6b, 0x71, 0xdf, 0xa2, 0xdc, 0x42, 0xac, 0xdf, 0x1c, 0x89, 0xd1, 0x05,
+ 0x6c, 0x46, 0x52, 0x5a, 0xa9, 0x03, 0xa6, 0x1b, 0xa6, 0x7a, 0xbe, 0xdb,
+ 0xe4, 0x84, 0x51, 0xe3, 0x0e, 0x3f, 0x46, 0x8d, 0x1b, 0x33, 0x1f, 0x6a,
+ 0x03, 0x63, 0xa3, 0xaf, 0x26, 0xcc, 0x7e, 0xfd, 0xb6, 0xfd, 0x06, 0xb5,
+ 0x06, 0xc6, 0x06, 0x46, 0x20, 0x30, 0xaa, 0xae, 0x18, 0x82, 0x06, 0x0c,
+ 0x82, 0x6a, 0x6c, 0x1d, 0x01, 0xb5, 0xbc, 0x0a, 0x11, 0x63, 0x3c, 0xe5,
+ 0x60, 0xde, 0xf5, 0x2a, 0x94, 0x02, 0x34, 0xfa, 0x19, 0x5e, 0x16, 0x5a,
+ 0x28, 0x4b, 0x12, 0x6e, 0xd4, 0x64, 0x4e, 0xab, 0x9b, 0x6a, 0x35, 0xc2,
+ 0x90, 0x8f, 0xe6, 0x98, 0x87, 0x95, 0x43, 0xac, 0x45, 0xf1, 0xcf, 0xe5,
+ 0x75, 0x6b, 0x9c, 0xbc, 0x57, 0xcd, 0xe6, 0xdc, 0x16, 0x45, 0x38, 0x61,
+ 0x91, 0x56, 0xea, 0xca, 0x88, 0x44, 0xda, 0xaa, 0x7c, 0x3d, 0xa4, 0x13,
+ 0xd3, 0xe3, 0x0a, 0x23, 0xbd, 0x66, 0xf2, 0x91, 0x66, 0xeb, 0xd9, 0xdb,
+ 0xb4, 0x12, 0xc1, 0x80, 0x63, 0x89, 0xd0, 0xae, 0x07, 0xb5, 0x0d, 0xf1,
+ 0x7e, 0x6d, 0x70, 0xd8, 0x11, 0xf8, 0x6f, 0x8c, 0x4b, 0xe8, 0x9a, 0x5a,
+ 0x3d, 0xaa, 0x9e, 0x55, 0x0d, 0xdb, 0xd9, 0x1e, 0xee, 0xf4, 0x42, 0xec,
+ 0x64, 0x04, 0x56, 0x70, 0x2c, 0x44, 0xd8, 0x4e, 0xc7, 0x5d, 0xd8, 0x65,
+ 0xf5, 0x0d, 0x3b, 0x98, 0xdd, 0x0f, 0x83, 0xf0, 0x94, 0xa8, 0x0b, 0x0d,
+ 0x61, 0x69, 0xb7, 0x3c, 0x08, 0xb4, 0x11, 0x90, 0xda, 0x82, 0x43, 0x79,
+ 0x1c, 0x8a, 0x45, 0xb0, 0x4a, 0x96, 0x5f, 0x43, 0xe7, 0x98, 0xe3, 0x8d,
+ 0xee, 0x3b, 0xa1, 0xac, 0x82, 0xfc, 0x89, 0x46, 0x6d, 0x75, 0xe7, 0xcb,
+ 0xfa, 0x8d, 0x31, 0x1d, 0x5f, 0x39, 0xff, 0x87, 0xf3, 0xb2, 0x9d, 0x9e,
+ 0x9c, 0x5d, 0x28, 0xa8, 0x8d, 0x70, 0x85, 0xb4, 0xba, 0x1d, 0x36, 0x1e,
+ 0x0c, 0xb8, 0x70, 0x87, 0x59, 0x4f, 0xd8, 0xf0, 0xe1, 0x29, 0xb5, 0xd2,
+ 0x86, 0x3f, 0x72, 0xcd, 0x3b, 0x74, 0x8d, 0xc1, 0x40, 0x8d, 0xf6, 0x83,
+ 0x6c, 0x11, 0xc3, 0xbe, 0xa1, 0x11, 0x4e, 0x10, 0xce, 0xe0, 0xa2, 0xe4,
+ 0x57, 0xff, 0xfc, 0xe7, 0x47, 0x8a, 0xe2, 0xed, 0x3c, 0x1f, 0x3e, 0xf3,
+ 0x26, 0x2c, 0x01, 0x0f, 0x48, 0x7a, 0x7b, 0x3f, 0x22, 0x5d, 0xe6, 0xe7,
+ 0xc1, 0x8f, 0xf4, 0xe7, 0xcf, 0x3d, 0xc7, 0x45, 0x39, 0x86, 0xac, 0xa3,
+ 0xb6, 0x91, 0xa4, 0x5a, 0x59, 0x56, 0x07, 0x9e, 0x76, 0xd1, 0xd6, 0x90,
+ 0xcb, 0xd8, 0xe1, 0x88, 0x33, 0x2b, 0xa9, 0xd7, 0x42, 0xf3, 0x62, 0xed,
+ 0x8a, 0xec, 0xde, 0x9c, 0x8f, 0x0f, 0xa1, 0xc8, 0xa5, 0x8d, 0xf8, 0x37,
+ 0xfb, 0x56, 0x14, 0x47, 0x51, 0x16, 0x58, 0x12, 0xd0, 0x3c, 0x7d, 0xe1,
+ 0xe3, 0x51, 0xc9, 0x71, 0xb3, 0x9f, 0x28, 0x9b, 0x97, 0x64, 0x51, 0x12,
+ 0xa4, 0xb8, 0x0e, 0xa6, 0x84, 0x36, 0x88, 0xd0, 0x94, 0xb9, 0xb0, 0x23,
+ 0x97, 0x99, 0xd9, 0x19, 0x44, 0x57, 0xdd, 0xf0, 0x8c, 0x35, 0x3f, 0x3a,
+ 0x00, 0x72, 0xc3, 0x18, 0x2d, 0x99, 0x78, 0x14, 0x60, 0xda, 0x37, 0x54,
+ 0x04, 0x2e, 0xd3, 0xf6, 0x62, 0x71, 0x5d, 0x52, 0xf3, 0x0f, 0x20, 0x7b,
+ 0xd2, 0x53, 0xf2, 0x8c, 0x23, 0xf4, 0x85, 0x87, 0x98, 0xfc, 0x2d, 0x35,
+ 0x98, 0xb4, 0xbe, 0x1e, 0x40, 0x5b, 0x6e, 0x8b, 0x55, 0x6d, 0x08, 0x99,
+ 0xeb, 0x14, 0xe5, 0x4d, 0x3c, 0x8c, 0x3f, 0xad, 0xc9, 0xd6, 0x70, 0xb8,
+ 0xc5, 0xd2, 0xe6, 0x16, 0xfd, 0xf0, 0x65, 0x1d, 0x60, 0x4d, 0x69, 0xc3,
+ 0x37, 0xb3, 0x06, 0xcf, 0x9d, 0x21, 0x85, 0x5e, 0x8b, 0xa0, 0x7a, 0xd1,
+ 0xbb, 0xfa, 0xdb, 0x12, 0xa1, 0xe6, 0x25, 0x0b, 0x1f, 0x02, 0x54, 0x33,
+ 0x6b, 0x94, 0x7c, 0x8e, 0x0a, 0xd7, 0x49, 0xe8, 0x59, 0xa5, 0xb9, 0xe4,
+ 0xf5, 0x75, 0x63, 0x45, 0x38, 0xa3, 0x01, 0xde, 0x49, 0x9e, 0x44, 0x5e,
+ 0x1b, 0xb8, 0x07, 0x10, 0x82, 0xd2, 0xfa, 0xc1, 0x88, 0xd8, 0xa7, 0xbb,
+ 0xcd, 0x44, 0x11, 0x05, 0xab, 0x59, 0x51, 0x58, 0x08, 0xf7, 0xa7, 0xad,
+ 0x52, 0x09, 0x38, 0xc1, 0x1a, 0x79, 0x9a, 0xc9, 0xee, 0x27, 0x3b, 0x9f,
+ 0x6c, 0x11, 0x67, 0x7e, 0x32, 0xdc, 0x0d, 0x01, 0xeb, 0x89, 0x6d, 0xd1,
+ 0x26, 0xb5, 0x4f, 0x00, 0x00, 0x8d, 0xbc, 0x38, 0xcc, 0xb7, 0x4a, 0x11,
+ 0x16, 0x85, 0x56, 0x9d, 0xc9, 0xe7, 0x7d, 0xa4, 0x0c, 0x51, 0xe4, 0xd2,
+ 0x35, 0xa2, 0x34, 0x1b, 0xd3, 0xfb, 0x59, 0x48, 0xe4, 0xd1, 0xa8, 0xb3,
+ 0x65, 0x29, 0x15, 0xdf, 0x47, 0x39, 0x49, 0x53, 0x75, 0xb1, 0x54, 0x20,
+ 0x3e, 0x76, 0x21, 0xb9, 0x5a, 0x4d, 0x9c, 0x6c, 0x53, 0x74, 0x96, 0x31,
+ 0x05, 0x9e, 0x8d, 0xab, 0xdb, 0xe1, 0x42, 0x4e, 0x82, 0xb0, 0x01, 0x64,
+ 0x86, 0xe4, 0x52, 0x73, 0x02, 0x15, 0x6c, 0x58, 0xd2, 0x19, 0xdf, 0xb7,
+ 0xcf, 0xe7, 0xd7, 0x74, 0x8e, 0x6f, 0x59, 0x0d, 0x4a, 0xed, 0xd6, 0x97,
+ 0xdc, 0x7d, 0x71, 0x3b, 0xa7, 0xb2, 0x18, 0x1e, 0x34, 0x59, 0x3f, 0x90,
+ 0xcc, 0x83, 0xae, 0x42, 0xad, 0x8d, 0x24, 0x98, 0x61, 0x3b, 0xd8, 0x46,
+ 0xa0, 0x55, 0x18, 0x75, 0x98, 0x13, 0xd2, 0xc5, 0xbd, 0x2a, 0x81, 0x3b,
+ 0x60, 0xae, 0x0f, 0xa5, 0xea, 0x3c, 0x54, 0x6c, 0x50, 0x81, 0x8b, 0xfe,
+ 0x07, 0x92, 0xc5, 0xee, 0xff, 0x4f, 0x16, 0xff, 0x42, 0xb2, 0x78, 0xde,
+ 0x45, 0x16, 0x4f, 0xfe, 0x07, 0x92, 0xc5, 0x93, 0xff, 0x9f, 0x2c, 0xfe,
+ 0x75, 0x64, 0xb1, 0xfb, 0x49, 0xeb, 0x12, 0x61, 0x1d, 0x9d, 0xa4, 0x00,
+ 0x53, 0xd5, 0x3f, 0xef, 0xb8, 0x6c, 0x2b, 0x5b, 0x3a, 0x97, 0x3f, 0x23,
+ 0xde, 0x25, 0xc9, 0x0d, 0x0b, 0xd5, 0x7c, 0x55, 0x82, 0x2a, 0x8f, 0x4b,
+ 0x18, 0x5b, 0x79, 0x18, 0xdd, 0x34, 0x9d, 0x0e, 0x93, 0x53, 0xf7, 0x1a,
+ 0x52, 0xc6, 0x38, 0x7b, 0x1a, 0x91, 0x2b, 0xd3, 0xec, 0x12, 0x5b, 0x00,
+ 0xf1, 0xae, 0x8f, 0x2f, 0x21, 0x89, 0xb2, 0x25, 0x2e, 0x8a, 0xfb, 0x47,
+ 0xb0, 0x8b, 0x04, 0x93, 0xa0, 0x15, 0x56, 0xea, 0x53, 0x9f, 0x1d, 0x64,
+ 0x29, 0xa9, 0xeb, 0x74, 0xa9, 0xaf, 0xf7, 0x93, 0xb0, 0xe8, 0x13, 0xa7,
+ 0x32, 0xc6, 0xe5, 0xa7, 0x3e, 0x88, 0xa3, 0xf4, 0xef, 0x59, 0x59, 0x24,
+ 0x06, 0x93, 0xa0, 0xd0, 0x76, 0xa8, 0xd3, 0x66, 0x72, 0x94, 0xff, 0x90,
+ 0xfb, 0x8d, 0x34, 0xb7, 0x3f, 0xa3, 0x7c, 0xa5, 0xa0, 0x19, 0x32, 0x6a,
+ 0x8a, 0xcb, 0x56, 0x9a, 0xb3, 0x60, 0x9a, 0x9b, 0x21, 0xd3, 0xaf, 0x9c,
+ 0xa9, 0x19, 0xc8, 0x88, 0x88, 0xce, 0x01, 0x5b, 0x43, 0xd9, 0x18, 0x13,
+ 0x46, 0x23, 0x39, 0xfd, 0xfd, 0x52, 0xf0, 0x9c, 0x64, 0x38, 0xae, 0x3a,
+ 0xcb, 0xb0, 0x43, 0xf7, 0x79, 0x95, 0xb1, 0xbb, 0x20, 0x1c, 0x50, 0x1f,
+ 0xa6, 0x88, 0x5b, 0xb5, 0xa6, 0xb8, 0xb0, 0x43, 0x1f, 0x3c, 0xe4, 0x87,
+ 0x18, 0x0f, 0xa9, 0x39, 0xe6, 0xba, 0x23, 0x02, 0xf1, 0xa5, 0x5b, 0x06,
+ 0x73, 0xae, 0x87, 0x8b, 0xb1, 0x81, 0xec, 0x26, 0x73, 0x35, 0xa2, 0xcb,
+ 0x8f, 0x59, 0x06, 0x98, 0xa1, 0x60, 0x08, 0xa9, 0x96, 0xa3, 0xbf, 0xaa,
+ 0x96, 0x4d, 0x43, 0x4e, 0x01, 0x06, 0xd8, 0x28, 0x3b, 0x2a, 0x45, 0x78,
+ 0x96, 0x23, 0xf5, 0x8c, 0xc5, 0xcd, 0xd1, 0x87, 0xf0, 0x82, 0xba, 0x42,
+ 0x40, 0x4a, 0x67, 0x1a, 0x44, 0xc5, 0x63, 0x8a, 0x26, 0x15, 0x44, 0x02,
+ 0x45, 0xfb, 0x6e, 0xe7, 0x89, 0x75, 0xaf, 0x4a, 0x4b, 0xdd, 0x84, 0x9b,
+ 0xe5, 0x56, 0x53, 0x85, 0x7d, 0x8b, 0x79, 0xe2, 0xc7, 0x57, 0xb6, 0x45,
+ 0xe4, 0xda, 0x67, 0xcf, 0x74, 0xd5, 0xff, 0x33, 0xff, 0xe8, 0x56, 0x42,
+ 0x1b, 0x58, 0xd2, 0x16, 0x20, 0xc9, 0x8f, 0xe3, 0x6c, 0xe0, 0xf5, 0x55,
+ 0x1d, 0xbc, 0xe4, 0x6f, 0xa5, 0x87, 0x87, 0xdb, 0x86, 0xef, 0xf9, 0x17,
+ 0x74, 0xf0, 0x6e, 0x2e, 0x28, 0x04, 0x21, 0x87, 0x58, 0x28, 0xae, 0x11,
+ 0xb3, 0xbb, 0xbb, 0xb4, 0x9c, 0x4b, 0x7c, 0x23, 0x58, 0x9d, 0x9a, 0xcc,
+ 0x38, 0xa3, 0x6c, 0x01, 0xc3, 0x57, 0x04, 0x1d, 0x7c, 0xc9, 0xc6, 0x3f,
+ 0x58, 0x00, 0x8b, 0xb9, 0x65, 0x8f, 0x2a, 0x4c, 0xa9, 0xc5, 0x02, 0x2e,
+ 0x8a, 0xda, 0x7c, 0xa0, 0xc9, 0x84, 0x95, 0xb4, 0x12, 0xf7, 0x43, 0x07,
+ 0xbe, 0xbd, 0x6d, 0x84, 0x2f, 0xe8, 0xc6, 0x2d, 0xc3, 0xac, 0xb5, 0x5c,
+ 0xa0, 0x82, 0x86, 0xc2, 0xa7, 0x88, 0xda, 0x93, 0xfa, 0xdd, 0x93, 0xae,
+ 0xdb, 0x51, 0x43, 0x08, 0x6a, 0xc1, 0x85, 0xe7, 0xe0, 0x56, 0x6f, 0x8b,
+ 0x1c, 0x68, 0xc2, 0xc8, 0x87, 0x1d, 0xfe, 0xba, 0xb2, 0x21, 0xfd, 0xa0,
+ 0x1a, 0x60, 0x5a, 0x85, 0xa9, 0x29, 0x71, 0xc8, 0x9e, 0x37, 0x65, 0xa4,
+ 0x82, 0xa7, 0x40, 0x54, 0x3c, 0x4f, 0x6b, 0x3b, 0x62, 0x7e, 0x1b, 0x30,
+ 0x4c, 0xa9, 0x7d, 0xc3, 0xfa, 0xca, 0x38, 0x8b, 0xa3, 0xa0, 0x7c, 0x81,
+ 0x88, 0xc7, 0xd0, 0x39, 0x76, 0xa3, 0xfb, 0x44, 0xf2, 0xd7, 0x1f, 0xbd,
+ 0x55, 0x42, 0xc4, 0x45, 0x63, 0x01, 0xd9, 0x24, 0xa4, 0x16, 0x8f, 0xf0,
+ 0x69, 0x57, 0xa3, 0xa0, 0x0f, 0xad, 0xa0, 0xe4, 0x4b, 0xd4, 0xf1, 0xbd,
+ 0x0b, 0xf9, 0x6a, 0xc9, 0xd6, 0x56, 0xc5, 0xcd, 0xe9, 0xe0, 0x50, 0x8f,
+ 0x4c, 0xe5, 0xc3, 0xfd, 0x20, 0x9d, 0xdf, 0xb3, 0xdf, 0xf2, 0x81, 0x6b,
+ 0x91, 0x19, 0x39, 0xdb, 0x91, 0x18, 0xb5, 0x25, 0x97, 0x72, 0x41, 0xad,
+ 0x68, 0x71, 0x0b, 0x9f, 0x53, 0xd0, 0xea, 0xd9, 0x32, 0x32, 0xa8, 0xe2,
+ 0x49, 0xda, 0x26, 0x73, 0x59, 0x78, 0x88, 0x41, 0x75, 0xa8, 0x59, 0x55,
+ 0x4e, 0xe4, 0xcd, 0x29, 0x84, 0x1a, 0x80, 0x1d, 0xe0, 0x4b, 0xeb, 0xf6,
+ 0x5e, 0x6c, 0xb9, 0xf4, 0xcf, 0x92, 0x0b, 0x6d, 0x0d, 0x88, 0xd7, 0x2d,
+ 0x5a, 0x18, 0x6a, 0x4f, 0xba, 0xa6, 0x8c, 0xaa, 0xbb, 0x8f, 0xc8, 0x01,
+ 0xdc, 0xff, 0x4a, 0xcc, 0xaf, 0x60, 0xa6, 0x36, 0xb3, 0x55, 0xbe, 0x28,
+ 0x99, 0xa5, 0x4e, 0xf2, 0x9d, 0xa4, 0x18, 0xa1, 0x45, 0xa0, 0xea, 0x32,
+ 0x9b, 0x31, 0x6f, 0xa3, 0xf6, 0x24, 0x88, 0xd2, 0xd1, 0x84, 0x61, 0x50,
+ 0x37, 0x0c, 0x64, 0x79, 0xd2, 0x9d, 0x08, 0xe3, 0xbe, 0xdd, 0xbb, 0xd2,
+ 0x51, 0x62, 0x00, 0x7c, 0x1b, 0x1d, 0xf1, 0xc0, 0xf2, 0x66, 0x2a, 0x88,
+ 0xac, 0xd1, 0x04, 0x91, 0x76, 0x8f, 0x92, 0x35, 0x06, 0x2e, 0x51, 0x79,
+ 0x9d, 0x6b, 0xf4, 0xab, 0x17, 0x49, 0xfa, 0xef, 0x58, 0x25, 0xed, 0xac,
+ 0x13, 0x59, 0x58, 0x97, 0xa9, 0xe9, 0x6c, 0x8c, 0x72, 0x44, 0x3e, 0x6e,
+ 0x52, 0x3e, 0x45, 0xc5, 0xe7, 0xa8, 0x44, 0x00, 0x47, 0x77, 0x1d, 0x55,
+ 0xc4, 0xc2, 0x09, 0x3f, 0x38, 0x45, 0x37, 0xa0, 0xc6, 0x2c, 0xdb, 0x42,
+ 0x78, 0x73, 0x2c, 0x6e, 0x28, 0x0a, 0x3c, 0x1e, 0xce, 0xf8, 0x61, 0xad,
+ 0xd9, 0x45, 0x33, 0x7e, 0xe4, 0xf4, 0x3b, 0xe2, 0x69, 0x93, 0xff, 0xe6,
+ 0x9e, 0x22, 0x72, 0xb7, 0xb1, 0xa3, 0xe8, 0xa5, 0x31, 0x95, 0x07, 0xfd,
+ 0xc6, 0x36, 0x0d, 0x56, 0x47, 0xf2, 0xb1, 0x06, 0xc3, 0xbc, 0xd0, 0xbf,
+ 0xba, 0x6a, 0xac, 0x87, 0x57, 0x50, 0xda, 0xa8, 0xd5, 0xa3, 0x31, 0x3a,
+ 0xc2, 0x8a, 0xb4, 0x05, 0x0b, 0xb6, 0xf0, 0xa9, 0x48, 0x91, 0x5f, 0x48,
+ 0xf6, 0xa1, 0xeb, 0xd2, 0xf0, 0x00, 0xab, 0x1d, 0x24, 0x97, 0x68, 0x7b,
+ 0x32, 0xe2, 0xce, 0x79, 0xb4, 0x85, 0x81, 0x62, 0x7c, 0x33, 0x51, 0x18,
+ 0x5b, 0x04, 0xfa, 0xf1, 0xdf, 0x5b, 0xbe, 0x91, 0x56, 0x94, 0xf4, 0xd3,
+ 0x27, 0x0d, 0x40, 0x31, 0xed, 0x60, 0x67, 0xb8, 0x8d, 0x4b, 0xea, 0xc3,
+ 0x3d, 0xc2, 0xfc, 0xf6, 0xf8, 0xba, 0xff, 0xb9, 0xbd, 0x46, 0xef, 0xf4,
+ 0x76, 0xf2, 0xde, 0x24, 0x10, 0x00, 0xbf, 0xab, 0xbb, 0xe7, 0x6a, 0xb3,
+ 0x86, 0xb0, 0x9b, 0xae, 0x38, 0xcb, 0xea, 0x3a, 0x38, 0x40, 0x3c, 0xb1,
+ 0x32, 0x38, 0x8c, 0x3e, 0x80, 0xf7, 0x77, 0xb6, 0x3f, 0xdb, 0xee, 0x06,
+ 0x9d, 0x85, 0xe8, 0x65, 0xe1, 0x56, 0xe3, 0x2c, 0xa8, 0xc8, 0x9a, 0xfb,
+ 0x72, 0x5c, 0x81, 0x13, 0x57, 0x37, 0x96, 0x7d, 0xb8, 0x5d, 0x17, 0x26,
+ 0x3c, 0xba, 0xb9, 0xfa, 0x3a, 0xd4, 0x2d, 0xe0, 0xa0, 0xf1, 0xcc, 0xf7,
+ 0xe9, 0x9c, 0x8e, 0xce, 0xb3, 0xd9, 0x91, 0xcc, 0xef, 0xa3, 0x3c, 0x1a,
+ 0x6b, 0x63, 0x3a, 0x8f, 0x73, 0x1f, 0x84, 0xcc, 0x58, 0x1f, 0xdc, 0x69,
+ 0x6c, 0xca, 0x72, 0xf4, 0x40, 0xa9, 0xa9, 0xaf, 0x89, 0xc1, 0x9c, 0x4a,
+ 0xbc, 0xb4, 0x14, 0x23, 0xfa, 0xc8, 0x42, 0x53, 0x78, 0x25, 0xaa, 0x46,
+ 0xb6, 0xaa, 0xca, 0xd4, 0x6f, 0xec, 0xb3, 0xd9, 0xd8, 0x87, 0x79, 0xfa,
+ 0xd3, 0xe1, 0x93, 0xe7, 0x8c, 0x6f, 0x20, 0xd5, 0xa2, 0x83, 0xb5, 0x27,
+ 0x8e, 0x52, 0x30, 0x22, 0x9f, 0xa0, 0x01, 0x68, 0x80, 0xa0, 0xac, 0xfe,
+ 0xaa, 0x79, 0x78, 0xbd, 0x6d, 0xd1, 0xaa, 0xfd, 0x84, 0x8a, 0x15, 0xf0,
+ 0x71, 0x36, 0x73, 0xe3, 0x78, 0x16, 0x57, 0xec, 0xea, 0x1d, 0xc4, 0xe9,
+ 0x44, 0xe2, 0x33, 0x50, 0x2b, 0xc6, 0x64, 0xd8, 0xce, 0x85, 0xd1, 0x80,
+ 0x75, 0xee, 0xc1, 0x8a, 0xc4, 0x07, 0x41, 0xde, 0x11, 0xc6, 0xf5, 0xc8,
+ 0x1b, 0x0e, 0x46, 0xa8, 0x4a, 0xcb, 0xe5, 0x3b, 0x0d, 0xcb, 0x81, 0x2b,
+ 0xd2, 0x2d, 0xee, 0x01, 0x7d, 0x9b, 0x8f, 0xaa, 0xea, 0x7a, 0x97, 0xe8,
+ 0x61, 0x77, 0xf8, 0x19, 0x2b, 0xde, 0xe2, 0x46, 0x59, 0x01, 0x7a, 0xa7,
+ 0x50, 0x2d, 0xad, 0xd6, 0x4e, 0x16, 0xd9, 0xfc, 0xfc, 0xfc, 0x38, 0x44,
+ 0x82, 0xf8, 0x9b, 0xed, 0xa0, 0x55, 0x54, 0xf6, 0xd1, 0xdd, 0xbe, 0xd2,
+ 0x70, 0x11, 0xe8, 0x7e, 0x5a, 0xe6, 0xda, 0xa2, 0x27, 0xa5, 0x50, 0x63,
+ 0x74, 0x81, 0x05, 0x25, 0x4d, 0xc3, 0x70, 0x10, 0x94, 0xff, 0xd6, 0xa8,
+ 0x30, 0xad, 0x8d, 0x80, 0x90, 0xb3, 0xb0, 0xd0, 0x6d, 0x8c, 0xe4, 0xdb,
+ 0x82, 0x5e, 0x68, 0xd6, 0x41, 0xd5, 0x60, 0xcb, 0x2c, 0x2d, 0x49, 0xfc,
+ 0x87, 0x8f, 0xc2, 0x4f, 0xee, 0x7f, 0x71, 0xb3, 0xa8, 0x72, 0xec, 0x6b,
+ 0x9d, 0x74, 0xb8, 0xfd, 0xb7, 0xce, 0xe1, 0xfb, 0x3f, 0xd7, 0xc2, 0x26,
+ 0x69, 0x39, 0xca, 0xeb, 0x32, 0xd5, 0x2a, 0x4c, 0x5a, 0x19, 0x26, 0x88,
+ 0x49, 0x60, 0x0c, 0x02, 0x64, 0xc1, 0xf0, 0x6b, 0x9d, 0x9e, 0x70, 0xe2,
+ 0xac, 0xff, 0x0b, 0xbd, 0x6a, 0x03, 0x22, 0x64, 0x23, 0x16, 0xe6, 0xcb,
+ 0xc3, 0xd7, 0x27, 0x67, 0x87, 0x4d, 0x04, 0x3c, 0xa9, 0x40, 0x81, 0xb0,
+ 0x96, 0xf6, 0xe8, 0xfe, 0x8a, 0xe4, 0x4c, 0x87, 0xdb, 0x63, 0x95, 0x2c,
+ 0x4e, 0xbf, 0x7b, 0x15, 0xf8, 0x1e, 0xad, 0x5e, 0x51, 0x80, 0xac, 0xa6,
+ 0xe4, 0x14, 0xa5, 0x26, 0x13, 0x31, 0x6e, 0x7a, 0xf8, 0x73, 0x37, 0x3c,
+ 0x01, 0x9d, 0x46, 0x68, 0x94, 0x74, 0x96, 0x4a, 0x62, 0x58, 0x55, 0xb1,
+ 0x25, 0xcd, 0x35, 0x1b, 0x05, 0x25, 0x64, 0x0c, 0x69, 0x0e, 0x77, 0x8f,
+ 0xde, 0xc0, 0x1c, 0xf5, 0xcc, 0x81, 0xd0, 0xc3, 0xc4, 0x75, 0xe2, 0x7b,
+ 0x41, 0x60, 0xbc, 0x44, 0x83, 0xa1, 0x97, 0x2e, 0xdb, 0x23, 0x07, 0x93,
+ 0xca, 0xc5, 0x2a, 0xbc, 0x3a, 0x8a, 0x7c, 0xed, 0x27, 0x7f, 0x95, 0xba,
+ 0xd7, 0x97, 0x82, 0xcf, 0xed, 0xd7, 0xb1, 0x43, 0x8a, 0xa2, 0x6e, 0x37,
+ 0x2a, 0x62, 0xe1, 0x7e, 0xa4, 0x6e, 0xd9, 0x74, 0xc0, 0xeb, 0x7f, 0x5e,
+ 0x4f, 0xd4, 0x6a, 0x84, 0xdb, 0x48, 0x52, 0x3d, 0x57, 0xa4, 0xed, 0x22,
+ 0x0a, 0x59, 0x80, 0x47, 0x36, 0x1f, 0x0b, 0xe0, 0xb3, 0x59, 0x5b, 0xf5,
+ 0x89, 0xee, 0x90, 0x09, 0xab, 0x4f, 0x6b, 0xfe, 0x49, 0x2b, 0xb8, 0xaa,
+ 0x37, 0x81, 0x35, 0xd2, 0x0f, 0xc0, 0xd1, 0x11, 0xc1, 0x13, 0x71, 0xa5,
+ 0x30, 0x74, 0x0b, 0xa5, 0x49, 0xb4, 0xd0, 0xdc, 0x0f, 0x96, 0xe1, 0x0b,
+ 0x98, 0xbc, 0xea, 0x7e, 0x5e, 0x23, 0x90, 0x44, 0x3c, 0x78, 0x45, 0x89,
+ 0xd0, 0x9b, 0x98, 0x8c, 0x3d, 0xdd, 0x56, 0x30, 0x71, 0x3f, 0x7f, 0xf6,
+ 0x9c, 0x8f, 0x1d, 0xe2, 0xd3, 0x14, 0x85, 0x43, 0xf3, 0x96, 0x50, 0x64,
+ 0x43, 0x47, 0x6c, 0x16, 0xe3, 0x08, 0x52, 0x4a, 0xb7, 0xdf, 0xac, 0xa1,
+ 0xa3, 0x8c, 0x21, 0x3d, 0x40, 0xa2, 0xe7, 0x41, 0x53, 0xc3, 0x95, 0xfa,
+ 0xfe, 0xaa, 0x28, 0x2f, 0xdc, 0x2c, 0x5a, 0x48, 0x8b, 0x76, 0x21, 0xbd,
+ 0xd1, 0xcc, 0x4b, 0x3d, 0x0f, 0xd2, 0x6e, 0x63, 0xf7, 0x57, 0x8d, 0x4e,
+ 0xc9, 0x81, 0x43, 0x86, 0x89, 0x30, 0xd9, 0x69, 0xbc, 0xf1, 0xa7, 0x4d,
+ 0x87, 0x96, 0xa6, 0x85, 0x28, 0x18, 0x07, 0x79, 0x99, 0x35, 0x30, 0x1e,
+ 0x57, 0x35, 0x77, 0x09, 0x86, 0x45, 0xab, 0xd7, 0x4e, 0xcc, 0x15, 0x87,
+ 0x69, 0x5d, 0x2c, 0x58, 0x98, 0x11, 0x3e, 0xab, 0x7b, 0x1f, 0xfb, 0xfd,
+ 0x79, 0x0e, 0xc8, 0x01, 0x1b, 0x49, 0x3d, 0x0c, 0x93, 0x17, 0x48, 0x18,
+ 0x9e, 0x23, 0x96, 0x4b, 0x69, 0x51, 0xef, 0x48, 0x44, 0xb3, 0xd0, 0x5c,
+ 0xd9, 0xb6, 0xdc, 0xc1, 0x9a, 0x84, 0x0f, 0x06, 0xa7, 0x51, 0xef, 0x88,
+ 0x56, 0x11, 0x53, 0x9c, 0x66, 0x65, 0x78, 0x8e, 0x9b, 0xbd, 0x8e, 0x11,
+ 0x2a, 0x58, 0xa8, 0xa8, 0x0c, 0x94, 0x17, 0x6d, 0x73, 0x59, 0x3f, 0xd2,
+ 0x04, 0x06, 0x55, 0x7d, 0x2f, 0x06, 0xa7, 0x6c, 0xc6, 0xb0, 0x47, 0xa8,
+ 0x5d, 0x8f, 0xb0, 0x46, 0xad, 0xd7, 0x86, 0x54, 0xc8, 0x88, 0x80, 0x39,
+ 0x35, 0x12, 0x30, 0x1f, 0xaf, 0x9d, 0xe7, 0x43, 0xcd, 0xb8, 0x52, 0x81,
+ 0xec, 0x12, 0x99, 0x91, 0x0e, 0xa2, 0x4d, 0x56, 0xe7, 0x6f, 0xc6, 0x65,
+ 0x3b, 0x29, 0x2e, 0x86, 0xd8, 0xba, 0xbe, 0x2a, 0x17, 0x82, 0x91, 0xd3,
+ 0x05, 0xe0, 0x13, 0x08, 0x92, 0xf2, 0xa4, 0xf1, 0x0a, 0x14, 0x8a, 0x85,
+ 0x46, 0x82, 0x57, 0x8f, 0x5e, 0x35, 0x60, 0xd5, 0x24, 0xc9, 0x82, 0x76,
+ 0xba, 0xbb, 0x39, 0x9f, 0x64, 0x20, 0xb1, 0x77, 0xfe, 0x3e, 0x71, 0xad,
+ 0x79, 0xb9, 0x79, 0x74, 0xef, 0xbf, 0xe9, 0x6e, 0x4e, 0xdb, 0x10, 0xa7,
+ 0x8f, 0xb4, 0x60, 0xcd, 0x82, 0x56, 0x0c, 0x8c, 0x9a, 0xa9, 0x81, 0xf1,
+ 0x44, 0xad, 0x93, 0x38, 0x74, 0xf6, 0x7a, 0x56, 0x4c, 0x24, 0xac, 0xeb,
+ 0xb1, 0xb5, 0xe0, 0x07, 0x6d, 0x2d, 0xd4, 0x8c, 0x5e, 0x85, 0xf3, 0x42,
+ 0x23, 0x44, 0xa5, 0x4c, 0x79, 0xca, 0x07, 0xba, 0x9b, 0xf3, 0x13, 0x95,
+ 0x72, 0xa5, 0xdc, 0x3c, 0x5e, 0x0e, 0xa7, 0x30, 0x4f, 0x8a, 0x71, 0x1d,
+ 0xcc, 0x80, 0x1f, 0xe8, 0x6e, 0xce, 0x42, 0x48, 0xa2, 0x99, 0xb1, 0x49,
+ 0x15, 0x81, 0xe7, 0x8f, 0xcd, 0x8c, 0x1f, 0x8c, 0x76, 0x99, 0x3e, 0x14,
+ 0x1e, 0xde, 0xda, 0x62, 0xd9, 0x9c, 0x15, 0x11, 0x4e, 0x8d, 0x0d, 0xb6,
+ 0x1d, 0xc6, 0x18, 0xba, 0x36, 0x58, 0xe3, 0xe8, 0x63, 0x46, 0xee, 0x11,
+ 0x07, 0x65, 0x75, 0xdc, 0x83, 0x2b, 0x37, 0x58, 0xfb, 0x88, 0x56, 0x61,
+ 0x3a, 0xd7, 0xc2, 0x37, 0xef, 0x05, 0xd2, 0x85, 0xe1, 0x65, 0xeb, 0xf7,
+ 0x0f, 0x2f, 0xc8, 0x74, 0x6e, 0xd5, 0xf8, 0x80, 0x1c, 0xe6, 0x78, 0x85,
+ 0x66, 0x4c, 0xa5, 0xcd, 0x3a, 0x7d, 0x8a, 0x06, 0xb7, 0x82, 0xec, 0x7d,
+ 0x7f, 0x89, 0xaf, 0x7b, 0x46, 0xd7, 0x68, 0x2e, 0x70, 0xf2, 0x8e, 0xc7,
+ 0x04, 0x63, 0xec, 0x2a, 0x8f, 0x15, 0xe4, 0x74, 0x46, 0x53, 0x9c, 0xdd,
+ 0xb0, 0x0d, 0xd5, 0x89, 0x06, 0xef, 0x57, 0x47, 0xc4, 0x81, 0xd0, 0xf0,
+ 0xb4, 0xed, 0xb6, 0x4c, 0xc9, 0xdc, 0x9c, 0x3e, 0xb1, 0xc6, 0x1f, 0xe7,
+ 0x07, 0xe8, 0xb8, 0xd9, 0xa5, 0x3b, 0x93, 0xed, 0xf1, 0x2d, 0xee, 0x26,
+ 0xd6, 0x39, 0xff, 0x6a, 0x5d, 0x87, 0x45, 0xe9, 0x1d, 0x24, 0x0f, 0x8b,
+ 0xae, 0xd2, 0xd8, 0xa5, 0x25, 0x1f, 0xad, 0x58, 0x8a, 0xee, 0x8c, 0xa0,
+ 0xa8, 0xf3, 0x12, 0xe6, 0x0c, 0x2b, 0x7e, 0x24, 0xdb, 0xb1, 0x7a, 0x71,
+ 0xf4, 0x69, 0x3f, 0x44, 0xe1, 0xef, 0x21, 0x2c, 0xa5, 0x5f, 0x23, 0x3b,
+ 0x0e, 0x0f, 0x30, 0x3c, 0xed, 0xb6, 0xcd, 0xf2, 0x26, 0x19, 0x97, 0x02,
+ 0x15, 0x5a, 0x40, 0xd6, 0xd8, 0xe3, 0x27, 0x4b, 0x46, 0xbe, 0x72, 0x8d,
+ 0xcb, 0xd9, 0x23, 0x87, 0x9c, 0x1e, 0xf0, 0xb3, 0xe2, 0x98, 0xf1, 0x60,
+ 0x56, 0xd1, 0xb9, 0x94, 0xb9, 0x2e, 0x56, 0xac, 0xfc, 0xaa, 0x11, 0x34,
+ 0xa8, 0x70, 0xf5, 0x48, 0xf4, 0xc9, 0xce, 0xe1, 0xf8, 0xc5, 0x65, 0x87,
+ 0xdb, 0xbd, 0x1f, 0x59, 0x77, 0x73, 0x3a, 0x5c, 0xff, 0x96, 0x2e, 0x4f,
+ 0xdf, 0xe1, 0x24, 0xa9, 0xe9, 0x84, 0xb5, 0xe6, 0x98, 0x36, 0xec, 0x80,
+ 0xff, 0x22, 0x06, 0xc1, 0xda, 0xda, 0x34, 0x38, 0x84, 0x83, 0x12, 0x49,
+ 0x65, 0x30, 0x82, 0xbd, 0xc0, 0x8f, 0xce, 0xec, 0x99, 0x2d, 0xd3, 0xb0,
+ 0xb6, 0x18, 0x96, 0x92, 0x43, 0xac, 0xe1, 0xdf, 0x66, 0x6e, 0xc2, 0x20,
+ 0xe3, 0x1a, 0x61, 0xb8, 0xc1, 0x31, 0xab, 0x92, 0x2c, 0x81, 0x52, 0x7d,
+ 0x9c, 0xae, 0x1b, 0x5d, 0xea, 0xb4, 0x34, 0x9b, 0x96, 0x07, 0x98, 0x8a,
+ 0x61, 0x73, 0x6b, 0x67, 0xb8, 0xd3, 0x4f, 0x9a, 0x3a, 0x99, 0x09, 0xd7,
+ 0x45, 0xe9, 0xb2, 0x21, 0xb9, 0xeb, 0xb6, 0x9d, 0xe1, 0x8c, 0x3b, 0xae,
+ 0x4c, 0xce, 0xf4, 0xa4, 0x80, 0x40, 0x04, 0x2f, 0xc8, 0x33, 0x56, 0x78,
+ 0xb4, 0x80, 0xdb, 0x83, 0xa7, 0xcf, 0x9f, 0x37, 0xae, 0xb4, 0x50, 0x73,
+ 0x7e, 0xb6, 0xbd, 0x2d, 0x00, 0xea, 0xed, 0xd7, 0xe8, 0x8b, 0xc1, 0x73,
+ 0xbc, 0xd8, 0x7c, 0x4d, 0x8a, 0x77, 0xac, 0x7e, 0x6f, 0xc0, 0xdf, 0x74,
+ 0x74, 0x07, 0x7b, 0xca, 0xca, 0xb7, 0x9e, 0x73, 0x77, 0x1d, 0x6f, 0xe1,
+ 0x61, 0x59, 0xc6, 0xe2, 0xf2, 0x92, 0xc3, 0xed, 0xf8, 0x49, 0x70, 0x7e,
+ 0x12, 0x05, 0xef, 0xd2, 0x72, 0x12, 0x4f, 0x77, 0xbb, 0x3f, 0xd8, 0x59,
+ 0x35, 0x5d, 0xd8, 0x04, 0x78, 0x24, 0xd8, 0x4f, 0xd6, 0xa0, 0x48, 0x78,
+ 0xde, 0xf8, 0x7a, 0xb3, 0x6b, 0xf6, 0x9f, 0x6e, 0x6f, 0xf7, 0x3f, 0xe1,
+ 0x9f, 0xcf, 0x9f, 0xaf, 0xf4, 0xa4, 0xfa, 0x3e, 0x9e, 0xd8, 0xd4, 0x1a,
+ 0xa3, 0xa5, 0x76, 0x3a, 0x5a, 0xdf, 0xa1, 0x56, 0x77, 0x9e, 0x3f, 0xef,
+ 0x73, 0x2f, 0xcf, 0x3e, 0xaa, 0xf5, 0xfa, 0xae, 0xf0, 0x96, 0x2d, 0x7e,
+ 0xdd, 0xd3, 0x63, 0xd5, 0x3d, 0x03, 0x56, 0x0a, 0x5e, 0x02, 0x5c, 0x3e,
+ 0xb0, 0xf7, 0xf8, 0x2c, 0x8f, 0x30, 0x18, 0x1f, 0x51, 0x2d, 0x0b, 0xe0,
+ 0x81, 0x40, 0xd1, 0x64, 0xad, 0x25, 0x06, 0x2a, 0x40, 0x72, 0x90, 0xf9,
+ 0xa0, 0xa2, 0x7c, 0x4c, 0xc9, 0xc5, 0x9d, 0xe4, 0x57, 0x79, 0xed, 0xf1,
+ 0x43, 0xaa, 0x64, 0x83, 0x88, 0x68, 0x13, 0x26, 0x05, 0x81, 0x44, 0x57,
+ 0xd7, 0xfc, 0x3a, 0x42, 0x80, 0x05, 0xd9, 0x70, 0x9d, 0x55, 0x8c, 0xf5,
+ 0x28, 0x76, 0x23, 0x9b, 0x4e, 0x5c, 0xf2, 0xa5, 0x3c, 0x3e, 0xc0, 0x83,
+ 0x7a, 0x08, 0xa1, 0x1e, 0x0a, 0x96, 0x66, 0x8a, 0x80, 0x22, 0xe9, 0x5a,
+ 0xfb, 0x8e, 0x46, 0x2f, 0xb1, 0x14, 0x62, 0xa5, 0xb7, 0x44, 0x38, 0x09,
+ 0xfa, 0xf5, 0xeb, 0xb0, 0x5e, 0xb5, 0x11, 0x56, 0xb9, 0xae, 0x11, 0xef,
+ 0x41, 0x14, 0xc9, 0x24, 0x16, 0xdf, 0x49, 0x66, 0x25, 0xd0, 0x1a, 0x85,
+ 0x6f, 0xd7, 0x2b, 0xb5, 0xf7, 0x2c, 0xcb, 0xd5, 0xb5, 0x47, 0x34, 0x5d,
+ 0x00, 0x4e, 0x78, 0x56, 0x82, 0xef, 0x52, 0x4b, 0x07, 0x43, 0x1a, 0xa8,
+ 0xf1, 0x0b, 0x57, 0xdb, 0x58, 0xd3, 0xaf, 0x90, 0xf0, 0x19, 0x19, 0xd2,
+ 0xd8, 0x1a, 0x60, 0xf5, 0xea, 0xd4, 0x9b, 0x6f, 0xf5, 0x6d, 0xd3, 0xda,
+ 0xa7, 0xc1, 0x59, 0xb0, 0x38, 0xed, 0xb7, 0x54, 0x1f, 0x94, 0x25, 0x88,
+ 0xab, 0x0d, 0xad, 0x07, 0x65, 0xc5, 0xaf, 0xb2, 0x3a, 0xa8, 0xcc, 0x63,
+ 0xd0, 0x04, 0x71, 0x1c, 0x85, 0x62, 0xfa, 0x83, 0xa9, 0xc9, 0x16, 0xf9,
+ 0xea, 0x7a, 0xce, 0x52, 0x21, 0x26, 0x75, 0xb9, 0x75, 0x15, 0x66, 0x53,
+ 0xf7, 0x36, 0x8a, 0xbb, 0xe5, 0xad, 0xd6, 0x5d, 0x26, 0x62, 0x0e, 0x42,
+ 0x7d, 0x40, 0xa4, 0x81, 0xe1, 0xc1, 0xea, 0x62, 0x15, 0x12, 0xb6, 0xb2,
+ 0x39, 0xec, 0x30, 0x12, 0xa0, 0x3c, 0x0c, 0x76, 0xcb, 0x99, 0xe6, 0xb2,
+ 0x0f, 0x35, 0x6a, 0xd9, 0x61, 0xe4, 0x76, 0xcd, 0x9d, 0x1f, 0xfd, 0xef,
+ 0xc3, 0xdf, 0x30, 0x8f, 0xf3, 0x2c, 0x48, 0x6d, 0xe6, 0xd7, 0xba, 0x32,
+ 0xb7, 0x02, 0xd0, 0xf6, 0x56, 0x7d, 0xdc, 0x60, 0xfb, 0x40, 0x5c, 0x48,
+ 0xa5, 0xd7, 0xd5, 0xec, 0xaa, 0x1e, 0x44, 0x0b, 0x3b, 0x5b, 0x04, 0x41,
+ 0xf4, 0xe6, 0x56, 0x15, 0x5b, 0xb2, 0x47, 0x0a, 0x16, 0x33, 0x6c, 0xea,
+ 0x83, 0xa1, 0xb4, 0x4c, 0x71, 0x5b, 0x48, 0xf7, 0xb9, 0xfa, 0x42, 0x13,
+ 0x5c, 0xd9, 0x19, 0xe9, 0xf0, 0xbc, 0x00, 0xdc, 0x57, 0x68, 0xfc, 0xe7,
+ 0x1b, 0x9e, 0x74, 0x5d, 0x3c, 0xde, 0x89, 0xa5, 0x21, 0xd0, 0x59, 0x61,
+ 0x02, 0xb2, 0x13, 0xb2, 0x64, 0x86, 0xd3, 0xcc, 0x60, 0x7e, 0xe0, 0x5a,
+ 0x0c, 0x6b, 0x98, 0x75, 0x24, 0x31, 0x55, 0x24, 0x48, 0x00, 0x19, 0x94,
+ 0xd1, 0xd8, 0xa4, 0xf3, 0x04, 0xb0, 0x9c, 0x06, 0x8b, 0x23, 0x08, 0x9f,
+ 0x55, 0x50, 0x1b, 0x5a, 0xcd, 0x76, 0xf2, 0x70, 0xdb, 0xfc, 0x08, 0xb0,
+ 0x1a, 0x58, 0x2d, 0x18, 0xd4, 0xc4, 0x27, 0x81, 0x54, 0x71, 0xc1, 0xa4,
+ 0xec, 0x6a, 0x32, 0x50, 0x61, 0xac, 0x79, 0xdc, 0x79, 0x15, 0xee, 0x5c,
+ 0x54, 0x66, 0xb0, 0xbb, 0x79, 0x10, 0x2c, 0x94, 0x4e, 0xd5, 0x1c, 0xc2,
+ 0x80, 0x86, 0x70, 0xa3, 0xb8, 0x54, 0x76, 0x98, 0xe6, 0xe6, 0x31, 0x2f,
+ 0x63, 0xab, 0x24, 0xa0, 0x8d, 0x5c, 0x5d, 0x12, 0xa4, 0xac, 0x23, 0xa9,
+ 0x52, 0x82, 0x3a, 0xed, 0xf0, 0x3a, 0x38, 0xc5, 0x19, 0x1c, 0x07, 0xc0,
+ 0xce, 0x69, 0x1f, 0x0d, 0xea, 0xb7, 0xe6, 0xa5, 0xeb, 0xd3, 0x4a, 0xdc,
+ 0x45, 0x45, 0x3a, 0x1b, 0x01, 0x05, 0x41, 0x56, 0x3e, 0xc7, 0x31, 0x3d,
+ 0x14, 0x01, 0x73, 0x2d, 0x12, 0x4b, 0xc3, 0x61, 0x2f, 0xde, 0x05, 0x5e,
+ 0x53, 0x9e, 0xb4, 0xc3, 0x42, 0xa8, 0xba, 0x2d, 0xc0, 0x93, 0x2c, 0x35,
+ 0x5c, 0x19, 0xda, 0x53, 0xa2, 0xd4, 0x18, 0x19, 0xe0, 0x2e, 0x2b, 0x33,
+ 0x8f, 0xb1, 0x8c, 0x70, 0x41, 0x3a, 0x7d, 0xc3, 0xe4, 0xbc, 0xa0, 0xe7,
+ 0x3b, 0x8a, 0xa8, 0x59, 0x52, 0x54, 0x03, 0x77, 0x15, 0xe3, 0xf1, 0x55,
+ 0xce, 0x39, 0x81, 0x40, 0x0c, 0xcb, 0xcd, 0xf9, 0x76, 0x40, 0xb5, 0xc1,
+ 0x02, 0x4c, 0x03, 0x17, 0xc4, 0x42, 0x5e, 0x41, 0x49, 0xdf, 0x85, 0x11,
+ 0x93, 0x59, 0x4e, 0x6f, 0x50, 0x24, 0x03, 0x14, 0x8d, 0x00, 0x8a, 0x5c,
+ 0xd0, 0xdc, 0x43, 0xd9, 0x9e, 0x3b, 0xcf, 0x9b, 0x41, 0x9d, 0x5c, 0xc7,
+ 0x6f, 0x4a, 0x42, 0xe8, 0x0b, 0x76, 0x6b, 0xc2, 0xab, 0xb9, 0xb7, 0x22,
+ 0x31, 0xf0, 0xd4, 0xa1, 0x22, 0x8e, 0x69, 0x08, 0x9c, 0xcc, 0xa2, 0x09,
+ 0x50, 0x32, 0x47, 0x3f, 0x49, 0xc9, 0xca, 0x12, 0x5a, 0x11, 0x9e, 0xbc,
+ 0x48, 0xf3, 0x28, 0xc1, 0x25, 0x40, 0xb1, 0xb5, 0xa9, 0xb1, 0x04, 0xea,
+ 0xca, 0x98, 0x6b, 0xd5, 0x6e, 0x89, 0x05, 0xde, 0xa8, 0x36, 0x0d, 0xae,
+ 0x77, 0x85, 0x3e, 0xd0, 0x48, 0xb2, 0xd3, 0xca, 0x13, 0xb0, 0x61, 0xb8,
+ 0x3a, 0xa6, 0x73, 0x4b, 0xd8, 0xd0, 0x29, 0x4f, 0x82, 0x4a, 0x27, 0x51,
+ 0x00, 0x99, 0xd5, 0x69, 0x1a, 0x0a, 0x5c, 0x06, 0x9f, 0x7f, 0x3e, 0x58,
+ 0xd4, 0x7f, 0x21, 0x59, 0xcc, 0x5b, 0x59, 0x3d, 0xde, 0x12, 0xbc, 0x34,
+ 0x90, 0xf8, 0x1c, 0x18, 0xb2, 0x4e, 0xeb, 0x68, 0xe7, 0x1a, 0xc5, 0x8e,
+ 0x23, 0x31, 0x6b, 0x04, 0x25, 0x1c, 0x83, 0x24, 0x3f, 0x70, 0x54, 0xf3,
+ 0x0d, 0x77, 0x18, 0x7e, 0x2f, 0x0d, 0x7b, 0x2c, 0x58, 0x74, 0xe7, 0x44,
+ 0x35, 0x4c, 0xb2, 0xc6, 0x3d, 0xc1, 0xaf, 0xf8, 0xb2, 0xa1, 0x1d, 0xd4,
+ 0x3b, 0xcf, 0x82, 0x5b, 0xc7, 0xc5, 0x3a, 0x36, 0x11, 0x47, 0x1d, 0x2e,
+ 0x66, 0xb0, 0xf1, 0x5d, 0x26, 0x7d, 0x3e, 0x3d, 0x18, 0x81, 0x04, 0x2e,
+ 0x1a, 0xe6, 0x07, 0xa0, 0x97, 0x1e, 0x41, 0x15, 0x35, 0x54, 0x06, 0x0d,
+ 0x6f, 0xf3, 0xa0, 0x15, 0x6c, 0xcd, 0x9e, 0xe8, 0x27, 0x2e, 0xeb, 0xaf,
+ 0x23, 0xf2, 0x4f, 0x37, 0xf7, 0xe1, 0xe8, 0xad, 0x9d, 0xe1, 0x93, 0xe6,
+ 0x19, 0x60, 0x4d, 0xb3, 0xab, 0x82, 0x0a, 0x04, 0x40, 0x70, 0x42, 0x14,
+ 0x7d, 0x41, 0x70, 0x9e, 0x24, 0xaa, 0xb1, 0xe5, 0x22, 0xb3, 0x38, 0x2d,
+ 0x44, 0x7c, 0x08, 0x46, 0x0e, 0x73, 0x1b, 0x2d, 0x35, 0x13, 0x23, 0x7c,
+ 0x06, 0x7e, 0x29, 0x16, 0x27, 0xad, 0x94, 0x53, 0xa9, 0xe1, 0xae, 0x5e,
+ 0xd7, 0x92, 0x39, 0xab, 0x45, 0x9a, 0x78, 0x19, 0x1f, 0x95, 0xe5, 0x62,
+ 0x18, 0xd7, 0x77, 0x71, 0x01, 0x7b, 0xfa, 0x2e, 0x75, 0xbf, 0x1d, 0x66,
+ 0xd4, 0x42, 0xb2, 0xd3, 0x50, 0xea, 0xca, 0x8a, 0x33, 0x5a, 0xb4, 0x53,
+ 0xc4, 0x13, 0xc1, 0x4a, 0xb9, 0xb6, 0xc6, 0x85, 0x9b, 0xb2, 0xce, 0x59,
+ 0xd3, 0xdb, 0x04, 0x32, 0x6f, 0x8f, 0x17, 0x45, 0x0a, 0xf8, 0xf5, 0xcd,
+ 0xc7, 0xf0, 0xf4, 0xc3, 0x87, 0x78, 0x27, 0x44, 0xdc, 0x05, 0x00, 0x2a,
+ 0xf3, 0x08, 0x75, 0xf9, 0x3f, 0xfb, 0xf0, 0xa1, 0xf9, 0xe5, 0x03, 0x65,
+ 0xd7, 0x59, 0x76, 0x40, 0x7d, 0xb9, 0xba, 0xd0, 0x95, 0x4a, 0x83, 0x55,
+ 0x34, 0xac, 0x6d, 0x05, 0x23, 0xbd, 0x4b, 0x25, 0x7c, 0x38, 0xf6, 0x31,
+ 0x41, 0xab, 0x14, 0x8e, 0x54, 0x5f, 0x67, 0xfe, 0x9a, 0x60, 0x84, 0xb7,
+ 0x6b, 0x3a, 0x95, 0x52, 0x19, 0x4d, 0x89, 0xde, 0x55, 0x62, 0x5f, 0x6a,
+ 0x22, 0x64, 0x3b, 0x2e, 0x27, 0x95, 0x6a, 0xb3, 0x28, 0xfe, 0xb0, 0x9c,
+ 0xd7, 0x39, 0xb2, 0xb3, 0x50, 0x71, 0x93, 0x5e, 0xdf, 0xa1, 0xf5, 0xcf,
+ 0xe7, 0x4b, 0xd6, 0xd5, 0x64, 0xb5, 0xd1, 0xa1, 0x2b, 0xfe, 0xd6, 0xb5,
+ 0xec, 0xd3, 0xf4, 0x3e, 0x71, 0x11, 0x1a, 0x56, 0x8c, 0x21, 0x40, 0x1b,
+ 0xc2, 0xb8, 0x04, 0xda, 0xd3, 0xb2, 0x29, 0xb1, 0x16, 0x03, 0xbc, 0xda,
+ 0x71, 0x98, 0xdd, 0x1d, 0xa4, 0xe2, 0x7b, 0xf6, 0x81, 0x16, 0x5b, 0x62,
+ 0x5d, 0x25, 0x1f, 0x9a, 0x14, 0x48, 0xbe, 0x65, 0xae, 0x8a, 0x92, 0x36,
+ 0x74, 0xa6, 0x52, 0x87, 0x44, 0xed, 0x46, 0xe1, 0x1f, 0xd2, 0x95, 0x2b,
+ 0xc5, 0x29, 0x11, 0xd4, 0xa8, 0xc1, 0x23, 0x5e, 0xc7, 0xa2, 0x56, 0x39,
+ 0xd5, 0xca, 0x07, 0x61, 0x75, 0x6d, 0xd4, 0x0f, 0x5d, 0x45, 0xbb, 0xe1,
+ 0x31, 0xfc, 0xe7, 0x67, 0x05, 0x06, 0x6b, 0xf4, 0x40, 0x01, 0x51, 0x13,
+ 0x80, 0xab, 0x69, 0x96, 0x2d, 0x34, 0x3e, 0x66, 0x86, 0x1a, 0xd3, 0x7a,
+ 0x0e, 0xed, 0x18, 0x8a, 0x08, 0xa0, 0x54, 0xa8, 0xe1, 0x5b, 0xab, 0x0e,
+ 0xb8, 0xde, 0xde, 0xec, 0xd1, 0xf2, 0xe8, 0x12, 0x69, 0x12, 0xb0, 0x12,
+ 0x3d, 0x57, 0x1b, 0x79, 0x1d, 0x8a, 0x33, 0xdd, 0x27, 0xd2, 0x6d, 0x99,
+ 0xae, 0xb2, 0x6e, 0x9b, 0x23, 0x19, 0x5d, 0xeb, 0xcd, 0x61, 0x43, 0x4a,
+ 0x8a, 0x61, 0x52, 0x44, 0x53, 0x82, 0x3c, 0x08, 0xf3, 0xe3, 0x15, 0x04,
+ 0x1f, 0x65, 0x7f, 0x88, 0xaa, 0x96, 0xc2, 0xcd, 0x88, 0x48, 0x08, 0xea,
+ 0xf6, 0xca, 0x12, 0x46, 0xac, 0x16, 0x99, 0x0f, 0x2d, 0x35, 0xc2, 0x94,
+ 0x7f, 0x1b, 0xb9, 0xa7, 0x36, 0x1e, 0xfb, 0xd0, 0x53, 0x40, 0x8c, 0xa3,
+ 0xf1, 0xaf, 0x22, 0x88, 0x47, 0x8b, 0xca, 0x8a, 0x89, 0x52, 0xb6, 0x99,
+ 0x1f, 0xd4, 0xf8, 0x2c, 0x0e, 0x0c, 0xe6, 0x09, 0x79, 0x87, 0xbb, 0xb0,
+ 0x1d, 0xb7, 0xe7, 0xaa, 0x42, 0x45, 0xe6, 0x35, 0xe5, 0x2b, 0x36, 0x2a,
+ 0x60, 0x48, 0xa5, 0x3c, 0x0d, 0x86, 0x78, 0xd9, 0x60, 0x90, 0x42, 0x1d,
+ 0xda, 0x26, 0x7f, 0x3c, 0x2d, 0x38, 0x54, 0xbd, 0x72, 0xe5, 0x65, 0xca,
+ 0x08, 0x94, 0x09, 0xe5, 0x32, 0x84, 0xdd, 0x4c, 0x3a, 0x2a, 0xe4, 0xbd,
+ 0x2d, 0x18, 0x20, 0xc1, 0xd5, 0xc0, 0x71, 0xed, 0xe8, 0x9b, 0x11, 0x97,
+ 0xb6, 0x76, 0xb4, 0xb2, 0x56, 0xbf, 0x09, 0xe4, 0xa3, 0x83, 0x06, 0xf4,
+ 0x85, 0x60, 0x91, 0x5e, 0x1b, 0x9c, 0x3d, 0xdf, 0x71, 0x1d, 0x25, 0x6f,
+ 0xe5, 0x72, 0x63, 0x87, 0x28, 0xa2, 0x29, 0x78, 0x3e, 0x1d, 0xe5, 0xfc,
+ 0xb0, 0x03, 0xd4, 0x48, 0x5e, 0x4c, 0x10, 0x87, 0x21, 0x1c, 0x25, 0x2a,
+ 0x36, 0x2d, 0x39, 0xd0, 0x3a, 0x9a, 0xf5, 0xca, 0x55, 0x33, 0xe3, 0xd7,
+ 0xa5, 0xcc, 0x10, 0x4a, 0x05, 0x07, 0xb5, 0x82, 0x87, 0x89, 0x16, 0x3e,
+ 0xab, 0xe3, 0xd2, 0xc9, 0x1e, 0x17, 0x08, 0xb4, 0xab, 0x39, 0xc1, 0x56,
+ 0x8b, 0xd6, 0x31, 0xda, 0x7f, 0x21, 0x93, 0xaa, 0x50, 0x1d, 0x3d, 0x9f,
+ 0xc6, 0x29, 0x27, 0xe7, 0xf8, 0x50, 0x74, 0xb1, 0xbf, 0x2d, 0x73, 0x94,
+ 0x72, 0x03, 0x26, 0xc6, 0xab, 0x82, 0xf7, 0xbf, 0xd2, 0xe0, 0xf5, 0x2b,
+ 0x48, 0x62, 0x1a, 0x9e, 0x54, 0x2a, 0x57, 0xa1, 0xee, 0x23, 0x15, 0x96,
+ 0x61, 0xb4, 0x87, 0x56, 0xd8, 0x06, 0x25, 0x0d, 0x66, 0x74, 0x49, 0x0d,
+ 0x1d, 0x34, 0x3f, 0x31, 0x84, 0x8e, 0xaa, 0x15, 0x0a, 0x19, 0x54, 0xdd,
+ 0xc4, 0x12, 0x68, 0xbf, 0x91, 0x40, 0x81, 0x60, 0x00, 0x75, 0x6e, 0xd4,
+ 0x9c, 0x92, 0x43, 0x9a, 0xdf, 0x96, 0x60, 0xf8, 0xd1, 0x1d, 0x39, 0x55,
+ 0x38, 0x09, 0x17, 0x9b, 0xdf, 0x26, 0x9b, 0x46, 0x64, 0x6a, 0x95, 0x56,
+ 0xd3, 0x41, 0xde, 0x26, 0x7c, 0xc1, 0xa7, 0x75, 0xa1, 0x3f, 0x5e, 0x84,
+ 0x40, 0x46, 0xdf, 0xf9, 0x3e, 0x69, 0xd2, 0x31, 0x68, 0xed, 0x43, 0xec,
+ 0xe6, 0xc9, 0x4e, 0x53, 0x15, 0xfa, 0xe7, 0x85, 0xc2, 0x9a, 0xb9, 0x8e,
+ 0xcf, 0xa1, 0xa0, 0xcc, 0xb1, 0xaa, 0xdf, 0x8d, 0x49, 0x1f, 0x06, 0xbb,
+ 0x36, 0x22, 0x99, 0xe3, 0x31, 0x59, 0x28, 0x6b, 0xa2, 0xc1, 0xac, 0x90,
+ 0x92, 0xbb, 0x82, 0x5d, 0xb7, 0xc4, 0xb0, 0xf7, 0x31, 0xd1, 0xad, 0xe7,
+ 0x20, 0x40, 0x22, 0xa6, 0x01, 0x48, 0x67, 0x95, 0xd1, 0x48, 0x81, 0x22,
+ 0x2a, 0x39, 0xda, 0xbe, 0x36, 0x12, 0x53, 0xa1, 0xe4, 0x16, 0x98, 0x98,
+ 0x08, 0xc0, 0x76, 0xc1, 0xee, 0xcf, 0xeb, 0x8e, 0x4a, 0x4e, 0x8d, 0x00,
+ 0xf9, 0xaa, 0x9a, 0x4a, 0xe8, 0x59, 0x3f, 0x51, 0xe8, 0x38, 0xad, 0x4e,
+ 0x2c, 0x08, 0x72, 0x17, 0xe5, 0xbd, 0x05, 0x99, 0x32, 0xc8, 0xc0, 0xc5,
+ 0xf1, 0x79, 0x88, 0xa0, 0xa1, 0x46, 0x93, 0x98, 0xdf, 0x72, 0xb6, 0xa9,
+ 0x68, 0x0c, 0x30, 0xde, 0xa2, 0x2a, 0x7a, 0xf8, 0x86, 0xab, 0x8b, 0x2e,
+ 0x16, 0x6a, 0xab, 0x40, 0xa4, 0x26, 0xc4, 0xf6, 0x39, 0x94, 0x8e, 0x87,
+ 0x21, 0xa8, 0xa6, 0x00, 0x66, 0xd0, 0xe0, 0x07, 0x06, 0xe4, 0xc1, 0xac,
+ 0x11, 0xd3, 0x21, 0x4e, 0xfe, 0x37, 0x91, 0x80, 0x44, 0xf1, 0x19, 0x44,
+ 0xb6, 0x9f, 0x3a, 0x61, 0x74, 0xe2, 0x29, 0xec, 0xcf, 0xd9, 0x7c, 0x5c,
+ 0xde, 0x37, 0xc0, 0x6f, 0x27, 0x1f, 0x51, 0xb6, 0x33, 0xa4, 0x3f, 0xc6,
+ 0x59, 0x66, 0x46, 0xcc, 0xc5, 0x05, 0xb4, 0x92, 0x2b, 0x7d, 0xe2, 0x06,
+ 0x18, 0xd0, 0x3f, 0x6e, 0xd8, 0x1d, 0xec, 0x7e, 0xbb, 0x39, 0xae, 0xfd,
+ 0x62, 0x52, 0x83, 0x50, 0x1a, 0xf4, 0x30, 0x61, 0x09, 0x4e, 0x85, 0x74,
+ 0x05, 0xef, 0x47, 0x99, 0xba, 0xec, 0xc4, 0x47, 0xd4, 0xde, 0xe4, 0x25,
+ 0x4c, 0xc5, 0x9a, 0x2d, 0xdb, 0xda, 0x6d, 0x2c, 0x4f, 0x47, 0xe8, 0xa1,
+ 0x21, 0x07, 0x86, 0xbb, 0x4f, 0x3b, 0xa9, 0x20, 0xee, 0xb6, 0xf9, 0x81,
+ 0xe2, 0xbb, 0x7a, 0xff, 0x2f, 0x84, 0xfb, 0xd4, 0x6a, 0x20, 0xfa, 0xd8,
+ 0x6d, 0x77, 0x1b, 0xfd, 0xd1, 0xf5, 0x85, 0x57, 0xec, 0x86, 0xdf, 0x0e,
+ 0xdd, 0x0f, 0x58, 0x0d, 0x3d, 0xc9, 0x80, 0x40, 0x92, 0x8d, 0x74, 0xb5,
+ 0x18, 0xf4, 0x6c, 0xf8, 0x0c, 0x4a, 0x18, 0xef, 0x4b, 0x88, 0x20, 0xcf,
+ 0x9b, 0x22, 0x7b, 0xf2, 0xc0, 0x96, 0xc4, 0xf8, 0xe7, 0xe9, 0x23, 0x5b,
+ 0x02, 0x16, 0xc6, 0xa8, 0x8e, 0x51, 0x92, 0x8a, 0x98, 0x51, 0xc3, 0x09,
+ 0xd6, 0x8d, 0x14, 0x07, 0xbe, 0x3d, 0x51, 0x70, 0x29, 0x45, 0xd6, 0x10,
+ 0xb2, 0x9b, 0xe9, 0xbb, 0xbc, 0xe6, 0x48, 0xe3, 0x69, 0x7a, 0xd7, 0x85,
+ 0xc5, 0x8e, 0xa3, 0x2c, 0xb5, 0x27, 0x69, 0xb5, 0xc3, 0xf0, 0xef, 0xca,
+ 0xd3, 0xef, 0x97, 0x87, 0xfb, 0xe7, 0x17, 0xc3, 0xf6, 0x45, 0x1b, 0x65,
+ 0xb1, 0xf1, 0xf6, 0x79, 0xf4, 0x55, 0xb6, 0xa5, 0x72, 0x71, 0xeb, 0xd2,
+ 0x61, 0x60, 0x62, 0x70, 0x32, 0xb6, 0xca, 0xed, 0x06, 0x40, 0x97, 0x3a,
+ 0xb0, 0xc8, 0x20, 0x17, 0xc3, 0x7d, 0x3c, 0xca, 0xa7, 0x98, 0x02, 0x0d,
+ 0x8c, 0x6e, 0x9c, 0x59, 0xa5, 0x02, 0x7c, 0xc5, 0xd5, 0xdb, 0x8a, 0x29,
+ 0x9b, 0x82, 0x3a, 0xaa, 0x12, 0x44, 0x45, 0x7f, 0xf7, 0xcf, 0xde, 0x1e,
+ 0xbd, 0xfd, 0x6a, 0xaf, 0x21, 0x29, 0x4c, 0x8b, 0xa2, 0xca, 0x34, 0xe2,
+ 0x41, 0x0a, 0x22, 0xc8, 0x72, 0x49, 0x5a, 0xb2, 0x43, 0xcb, 0xe9, 0x10,
+ 0x5d, 0x18, 0xa7, 0x54, 0xfc, 0x2c, 0xd5, 0x8d, 0x18, 0x24, 0xb5, 0x4c,
+ 0x14, 0xb0, 0x40, 0x1e, 0xae, 0xd6, 0xcd, 0x77, 0x42, 0xf5, 0x54, 0x4c,
+ 0x7c, 0x1f, 0x9d, 0xb9, 0x70, 0x7e, 0x72, 0xf0, 0xcd, 0xf9, 0xd3, 0x20,
+ 0x6f, 0xa1, 0x6e, 0x99, 0xab, 0xb4, 0x88, 0x34, 0xde, 0x88, 0xb3, 0xa3,
+ 0x1f, 0x49, 0x5a, 0x68, 0xca, 0x58, 0xcf, 0x42, 0x4b, 0x70, 0xc7, 0xb1,
+ 0x6a, 0x56, 0x23, 0x62, 0xf3, 0x5e, 0x5e, 0x2c, 0x5d, 0x29, 0x8c, 0x00,
+ 0x77, 0xae, 0xef, 0x0a, 0xa6, 0xdc, 0x77, 0xd4, 0x1a, 0xb5, 0x42, 0x45,
+ 0x41, 0x69, 0xa2, 0x28, 0xd6, 0x10, 0xb8, 0x38, 0x30, 0x11, 0x7d, 0xda,
+ 0x6f, 0x0b, 0x79, 0xc4, 0x29, 0x48, 0xea, 0x9d, 0x2e, 0xb9, 0x6f, 0x01,
+ 0xd0, 0x31, 0xf8, 0x21, 0x17, 0xfa, 0xda, 0x71, 0x1b, 0x57, 0x4f, 0x5d,
+ 0x36, 0x04, 0x5f, 0xa1, 0x7e, 0xb0, 0xba, 0xd9, 0xa9, 0x3e, 0xb5, 0xb7,
+ 0xb5, 0xe5, 0x8d, 0x78, 0x12, 0xaa, 0x39, 0xfc, 0xed, 0x74, 0x21, 0xe9,
+ 0x33, 0xfd, 0x55, 0x44, 0x91, 0x7e, 0x1c, 0x55, 0xac, 0x70, 0x6c, 0x7e,
+ 0x34, 0x55, 0x7c, 0xb6, 0x8a, 0xd9, 0xba, 0xbb, 0xea, 0x17, 0xd0, 0x85,
+ 0x68, 0x54, 0xff, 0x93, 0xa8, 0x22, 0x4d, 0x3e, 0x8e, 0x2e, 0xd2, 0x36,
+ 0x61, 0x74, 0x40, 0x11, 0xfc, 0x96, 0xf0, 0xb0, 0x18, 0xc5, 0xb3, 0x81,
+ 0x2b, 0x73, 0xf1, 0x2b, 0x28, 0xe6, 0x99, 0xce, 0x74, 0x03, 0xc6, 0x6f,
+ 0xf5, 0xf9, 0x1a, 0x74, 0xa2, 0x79, 0x20, 0x56, 0x54, 0xdb, 0x10, 0x89,
+ 0x64, 0xd3, 0x2e, 0x83, 0xd5, 0x3c, 0xa8, 0x83, 0xba, 0xa2, 0xe0, 0xf0,
+ 0x5f, 0x4e, 0x6b, 0xff, 0xaf, 0xe0, 0x40, 0xcf, 0x7c, 0x91, 0x92, 0x8f,
+ 0x21, 0xb9, 0x67, 0xd7, 0x8e, 0xe4, 0xba, 0x4a, 0xf7, 0x1a, 0x6f, 0xfa,
+ 0x8d, 0xb3, 0x9f, 0x22, 0xb9, 0xca, 0x56, 0x9d, 0x25, 0xab, 0xbb, 0xb2,
+ 0x98, 0x5f, 0x21, 0x28, 0x24, 0xac, 0x84, 0xc1, 0xf6, 0x09, 0x81, 0x4d,
+ 0x8d, 0x40, 0xb3, 0x95, 0x8e, 0x5d, 0x06, 0x7f, 0x60, 0x33, 0x17, 0xec,
+ 0x38, 0x1a, 0x41, 0x74, 0x67, 0x3e, 0x7b, 0x94, 0xd8, 0x1b, 0x5e, 0x18,
+ 0xee, 0x58, 0xe9, 0xdd, 0x88, 0x7b, 0x20, 0xc5, 0x5a, 0x8c, 0xc6, 0x9d,
+ 0x6f, 0xa6, 0x23, 0x42, 0x13, 0x2e, 0xf0, 0xe9, 0xe3, 0x77, 0x6d, 0x48,
+ 0xe7, 0x8e, 0x8d, 0x26, 0x11, 0x1e, 0xdd, 0x43, 0x09, 0x82, 0xff, 0x6f,
+ 0xe1, 0xa1, 0xcf, 0x3e, 0x8e, 0x9c, 0xff, 0x15, 0x37, 0xeb, 0xff, 0x20,
+ 0xe2, 0xed, 0xda, 0xe6, 0x0d, 0x45, 0x0e, 0x14, 0xe5, 0x50, 0x2e, 0x96,
+ 0x4d, 0xc1, 0x37, 0x72, 0x42, 0x3c, 0x56, 0xf1, 0xe8, 0xf4, 0xdb, 0x4f,
+ 0xfa, 0xec, 0xd1, 0x39, 0x8f, 0xab, 0x64, 0x1c, 0xbf, 0xda, 0x3f, 0xed,
+ 0xb8, 0x19, 0xae, 0x48, 0xe5, 0x5f, 0xe4, 0x66, 0xaa, 0x78, 0xc4, 0x72,
+ 0xe2, 0x4d, 0xc3, 0x91, 0x81, 0x44, 0xb7, 0xcb, 0xf4, 0x33, 0x76, 0xb3,
+ 0x8d, 0x67, 0xce, 0x96, 0x71, 0xf9, 0xb7, 0x49, 0xac, 0xea, 0x3d, 0x66,
+ 0x88, 0xc9, 0xeb, 0x47, 0x92, 0x8b, 0x95, 0x8c, 0x5a, 0x29, 0xc5, 0xdd,
+ 0x13, 0x13, 0xdb, 0x4a, 0xdb, 0x19, 0xb4, 0x32, 0xad, 0xd8, 0xb7, 0xfe,
+ 0x50, 0xe3, 0x1d, 0xe9, 0x50, 0xbe, 0xaf, 0x2d, 0x06, 0xc4, 0xd4, 0x17,
+ 0xd5, 0xe4, 0x03, 0xb5, 0x26, 0xfa, 0xf2, 0x12, 0x60, 0xd9, 0x55, 0x94,
+ 0x55, 0x79, 0x87, 0x42, 0x06, 0x2e, 0x21, 0x77, 0xa0, 0x45, 0x5c, 0x75,
+ 0xd7, 0xa5, 0xfa, 0x94, 0x66, 0x83, 0xce, 0xc7, 0xf9, 0x22, 0x9d, 0x6a,
+ 0x8e, 0x6c, 0xf2, 0x50, 0x19, 0xb4, 0x76, 0x15, 0xa9, 0xe6, 0x84, 0x48,
+ 0xd9, 0x6e, 0x43, 0x59, 0x32, 0xf9, 0x07, 0xe0, 0xdf, 0x56, 0x1b, 0x32,
+ 0x48, 0x01, 0x57, 0x20, 0x26, 0xd5, 0xd3, 0x91, 0x09, 0xc1, 0x2c, 0x0f,
+ 0x0f, 0xc4, 0x29, 0x5e, 0x6c, 0x24, 0xe1, 0x6c, 0xac, 0x9d, 0xe7, 0x9f,
+ 0xec, 0x24, 0x55, 0x7a, 0x0f, 0x50, 0x9e, 0x4a, 0x5f, 0x7e, 0x3a, 0x7c,
+ 0xb2, 0xf5, 0x74, 0xf8, 0x34, 0xf1, 0x35, 0xa2, 0xe1, 0x77, 0xd3, 0xe6,
+ 0x89, 0x75, 0x46, 0x60, 0x2c, 0x16, 0xe6, 0xf4, 0xf6, 0xf0, 0x80, 0xa5,
+ 0x11, 0x4b, 0x99, 0x6e, 0x29, 0x78, 0x86, 0x06, 0x46, 0x0b, 0x67, 0x55,
+ 0xce, 0xba, 0x94, 0xd2, 0x8e, 0xe5, 0x30, 0xd2, 0x44, 0xbe, 0xc3, 0xdc,
+ 0x0d, 0x84, 0x79, 0xa5, 0x50, 0xa9, 0xae, 0x4b, 0x27, 0xf2, 0x4c, 0xb8,
+ 0x24, 0x61, 0xce, 0xfc, 0xc3, 0x85, 0xbd, 0xaa, 0x9a, 0xb4, 0xd4, 0xb2,
+ 0x3b, 0x36, 0xea, 0x4c, 0x4d, 0xb0, 0x12, 0x66, 0xc2, 0x45, 0xeb, 0xc5,
+ 0xbd, 0xae, 0xef, 0x58, 0x3a, 0x42, 0x23, 0x43, 0xc5, 0x62, 0x7e, 0x86,
+ 0x71, 0xd1, 0xda, 0x46, 0x6e, 0x88, 0x96, 0xea, 0x42, 0x9d, 0xef, 0xf5,
+ 0xc1, 0xba, 0x5d, 0x53, 0x16, 0x31, 0xc4, 0x9d, 0xd5, 0x62, 0x27, 0x6e,
+ 0x97, 0x77, 0xf9, 0xa7, 0xcb, 0xad, 0x35, 0xdf, 0x06, 0x75, 0x36, 0x9d,
+ 0x67, 0xb5, 0x56, 0x8e, 0x4d, 0x5e, 0x9c, 0x9c, 0x5e, 0xbc, 0xbc, 0x4d,
+ 0xa7, 0x51, 0x64, 0x0b, 0xa3, 0x9b, 0x5a, 0x95, 0x5d, 0x67, 0xc3, 0xe6,
+ 0x37, 0x83, 0x54, 0xb3, 0x73, 0x97, 0x71, 0x65, 0x4f, 0x76, 0xa1, 0x79,
+ 0x5d, 0x5c, 0xfc, 0x70, 0x7a, 0xf8, 0xf2, 0x05, 0x5b, 0xc0, 0x3f, 0x67,
+ 0x37, 0x44, 0xd5, 0x30, 0x88, 0x73, 0x31, 0xf7, 0xf8, 0x66, 0xfc, 0xfe,
+ 0xd5, 0xd1, 0xf9, 0xe9, 0xf1, 0xc9, 0xc1, 0xcb, 0x17, 0xdf, 0xb3, 0xe3,
+ 0x96, 0x56, 0xef, 0x3e, 0x78, 0xd7, 0x7d, 0xe6, 0x92, 0x47, 0xe2, 0x3a,
+ 0x96, 0x87, 0xdf, 0xbd, 0x3f, 0x7c, 0xfb, 0xed, 0xcb, 0x17, 0xb7, 0x69,
+ 0xd9, 0xe7, 0xf9, 0xc9, 0xdb, 0x8c, 0x26, 0xd4, 0x51, 0xe1, 0x3c, 0x58,
+ 0xa3, 0x0b, 0x14, 0x36, 0x5d, 0x70, 0x1c, 0xe5, 0x03, 0xc1, 0x74, 0xe0,
+ 0xb2, 0xbe, 0x72, 0x64, 0x93, 0x3a, 0x82, 0xc0, 0x3d, 0x5d, 0x39, 0x17,
+ 0x0a, 0xf8, 0xee, 0xec, 0xb8, 0xab, 0xca, 0x71, 0x1d, 0x14, 0x57, 0xf1,
+ 0xa5, 0x75, 0xd4, 0x36, 0xe4, 0x1b, 0x46, 0x1d, 0x1b, 0x5f, 0x42, 0x5e,
+ 0x01, 0x7e, 0x1f, 0x8c, 0x1c, 0x14, 0xde, 0xe5, 0xa3, 0x92, 0x5d, 0x55,
+ 0x57, 0x09, 0x1d, 0xa2, 0x29, 0xe4, 0x80, 0xca, 0xd8, 0xb2, 0x78, 0x9c,
+ 0x69, 0x6c, 0xf2, 0x0a, 0x12, 0x60, 0x10, 0x72, 0x00, 0xa9, 0x86, 0x03,
+ 0x5f, 0x30, 0xbf, 0x03, 0x01, 0x1d, 0x97, 0x7c, 0x9f, 0xe6, 0x2c, 0x14,
+ 0x3f, 0x6e, 0x65, 0x5d, 0x06, 0xae, 0x4b, 0x70, 0xe3, 0xc6, 0x55, 0x0a,
+ 0xfd, 0x36, 0x53, 0x49, 0x2c, 0xd1, 0x2f, 0xa8, 0x09, 0xd4, 0x91, 0x6c,
+ 0xd8, 0x00, 0x21, 0x56, 0xff, 0x2b, 0x8b, 0x94, 0x9c, 0x09, 0xc9, 0xc9,
+ 0xac, 0x2e, 0x00, 0x5b, 0x36, 0xd6, 0x03, 0xdd, 0xc7, 0x1e, 0x5c, 0xb6,
+ 0xc7, 0x0f, 0xdd, 0x99, 0xb3, 0xc3, 0x56, 0x38, 0x84, 0xff, 0x8d, 0xf3,
+ 0x4d, 0x97, 0x3c, 0xca, 0x2d, 0x9e, 0xbe, 0xbb, 0x08, 0xf2, 0x86, 0xa3,
+ 0x18, 0xbd, 0xe8, 0x10, 0xb6, 0x05, 0x65, 0xbf, 0x50, 0xbd, 0x41, 0xaf,
+ 0x5d, 0x23, 0xca, 0x2c, 0xfd, 0xc4, 0x19, 0xf2, 0x79, 0x08, 0x05, 0x91,
+ 0x76, 0xd6, 0x39, 0x92, 0xc4, 0xb9, 0x64, 0x5f, 0x83, 0xaf, 0x32, 0x2e,
+ 0x64, 0xd4, 0xea, 0x63, 0xd8, 0x63, 0x3b, 0xab, 0xf3, 0x22, 0xaa, 0xbb,
+ 0x71, 0x33, 0x4a, 0x91, 0xbc, 0xd7, 0x8c, 0x6c, 0x2f, 0xc5, 0x87, 0x85,
+ 0x04, 0x78, 0xa8, 0xad, 0xa1, 0xc1, 0xad, 0x30, 0x22, 0xca, 0xeb, 0x28,
+ 0x87, 0x04, 0x4e, 0x8d, 0x1a, 0x06, 0x53, 0x64, 0xf7, 0x72, 0xaa, 0x3f,
+ 0x22, 0xdd, 0x0c, 0x9c, 0xde, 0xaa, 0xcb, 0xab, 0x23, 0x55, 0xda, 0x84,
+ 0x30, 0xdf, 0x85, 0x15, 0x26, 0x9b, 0xd8, 0xb1, 0xa8, 0x3f, 0xb4, 0x04,
+ 0x64, 0x66, 0x85, 0x83, 0x0b, 0x1f, 0xab, 0xc8, 0xa1, 0x86, 0x9d, 0x61,
+ 0x67, 0xa8, 0x94, 0x39, 0xb8, 0x88, 0x60, 0x08, 0xf9, 0x05, 0x0e, 0xd4,
+ 0x0b, 0x12, 0x03, 0x10, 0x17, 0xcb, 0x73, 0x17, 0x4a, 0xd2, 0xfc, 0x25,
+ 0x08, 0x15, 0x43, 0x0d, 0x1b, 0x66, 0x77, 0xc8, 0x8a, 0x2c, 0xf1, 0x2a,
+ 0xe9, 0x5d, 0x4d, 0x8b, 0xd1, 0x88, 0x26, 0xd5, 0x73, 0x45, 0x75, 0x2e,
+ 0x88, 0x6d, 0x5e, 0x41, 0xe8, 0xed, 0x1b, 0x48, 0xa5, 0x3f, 0xac, 0x28,
+ 0x46, 0x87, 0xbe, 0x56, 0x65, 0x3a, 0xf3, 0xee, 0xaa, 0x6b, 0x47, 0x77,
+ 0x15, 0x95, 0xe2, 0xee, 0x83, 0x32, 0xb6, 0x12, 0x7f, 0x26, 0x58, 0xcd,
+ 0xd6, 0x7f, 0x14, 0xbc, 0xcc, 0x99, 0xb9, 0x3e, 0x87, 0x56, 0x99, 0x0f,
+ 0x58, 0x8e, 0x16, 0x09, 0xcb, 0x3b, 0xb2, 0x66, 0x79, 0xc2, 0x34, 0x81,
+ 0xde, 0x7f, 0xf0, 0x28, 0x76, 0xfa, 0xfc, 0xef, 0xee, 0x3f, 0x7a, 0x56,
+ 0x0a, 0x8e, 0x8b, 0x6f, 0xca, 0xe0, 0x6b, 0xae, 0xbe, 0x55, 0x59, 0xfd,
+ 0xb9, 0x8e, 0x72, 0x73, 0xec, 0x2c, 0x5d, 0xd9, 0x7a, 0x3e, 0xbb, 0xfa,
+ 0x71, 0x67, 0xb0, 0xb3, 0xbd, 0xbd, 0xfd, 0xf3, 0x70, 0xc1, 0x4b, 0x77,
+ 0x89, 0xe6, 0xe9, 0xdf, 0xe1, 0x22, 0x1f, 0xb3, 0x21, 0x9f, 0x36, 0x33,
+ 0x4f, 0xb9, 0xe9, 0x2d, 0xe9, 0x6f, 0x2b, 0xb8, 0xf9, 0xeb, 0xf1, 0x62,
+ 0x30, 0x2f, 0xba, 0x02, 0x83, 0x2e, 0x96, 0xe5, 0x3c, 0x09, 0x0a, 0x29,
+ 0xbf, 0x7f, 0x7b, 0xf2, 0xea, 0xf0, 0x78, 0xff, 0x07, 0x8b, 0x2c, 0x76,
+ 0x28, 0x14, 0x3c, 0x92, 0xf7, 0x59, 0x5a, 0xdd, 0xbf, 0xaf, 0xb2, 0x9a,
+ 0xbe, 0xdc, 0x78, 0xb2, 0xc9, 0x71, 0x77, 0xed, 0x1d, 0x66, 0x37, 0x1f,
+ 0xfc, 0x5c, 0x8a, 0x4a, 0xa1, 0x71, 0x5a, 0xfe, 0xf6, 0x6e, 0xc9, 0x28,
+ 0x3b, 0xcd, 0x70, 0xdf, 0x9a, 0xfd, 0x21, 0xa3, 0xe9, 0x4d, 0x95, 0xff,
+ 0x9d, 0xee, 0x1d, 0x86, 0xf4, 0x8c, 0xa3, 0xb8, 0x2f, 0x14, 0x8f, 0xa2,
+ 0x4e, 0xf8, 0xb7, 0xe4, 0xcb, 0xe3, 0x6f, 0x38, 0x86, 0xde, 0xe9, 0x34,
+ 0x33, 0x01, 0x40, 0x48, 0x3e, 0x7f, 0xb6, 0xb3, 0xbb, 0xe9, 0x6a, 0x03,
+ 0x49, 0x6a, 0x0f, 0x1f, 0xce, 0x28, 0x98, 0xe0, 0xef, 0x59, 0x50, 0xa4,
+ 0x45, 0xb8, 0xb2, 0xf7, 0x30, 0x22, 0xa2, 0xc7, 0xae, 0x39, 0x60, 0x4d,
+ 0xc2, 0x03, 0x5e, 0x03, 0xdd, 0x93, 0xd3, 0x6e, 0x22, 0x8c, 0xac, 0x0b,
+ 0x9f, 0x63, 0x35, 0x0c, 0xea, 0x2e, 0x27, 0x34, 0x1c, 0xcd, 0xd6, 0xe9,
0x96, 0x4d, 0xfe, 0xd9, 0xb2, 0xce, 0xa3, 0x9e, 0x2a, 0x5a, 0xed, 0x69,
- 0xc5, 0x4e, 0x62, 0x96, 0x3f, 0x92, 0x17, 0xf6, 0xdb, 0xe7, 0x71, 0x64,
- 0x5d, 0x02, 0x37, 0x5b, 0x1b, 0x88, 0x0a, 0x62, 0x0b, 0xbc, 0xe7, 0x1c,
- 0xd2, 0xc8, 0x9c, 0x56, 0x4e, 0x9a, 0x16, 0x91, 0xb7, 0x73, 0xb4, 0xa2,
- 0xe8, 0x34, 0xb3, 0xb6, 0xf5, 0xe1, 0xf9, 0xd9, 0x7a, 0x4f, 0x1d, 0x78,
- 0xd4, 0x47, 0x9f, 0xfe, 0xa6, 0x11, 0x03, 0x2f, 0xf5, 0xd9, 0xce, 0xb3,
- 0xa7, 0x6a, 0xdf, 0xc3, 0x40, 0x91, 0x7a, 0x1a, 0x17, 0xa5, 0xc0, 0x77,
- 0xae, 0xa0, 0x34, 0xb0, 0x2f, 0x7c, 0x9e, 0x1d, 0x51, 0x5e, 0x73, 0x92,
- 0x62, 0x31, 0xe9, 0x59, 0xd5, 0x85, 0x95, 0x51, 0x11, 0xba, 0x67, 0xe0,
- 0x29, 0x18, 0x64, 0x5c, 0x7f, 0xfe, 0x69, 0x6b, 0x21, 0xdd, 0x18, 0x5e,
- 0xd8, 0x6f, 0x5d, 0x0b, 0x19, 0xd6, 0xbe, 0xd6, 0xba, 0x7d, 0x0e, 0x59,
- 0x89, 0x17, 0xb9, 0x1b, 0x81, 0x6d, 0xa5, 0x37, 0xc5, 0x60, 0xf0, 0x83,
- 0x39, 0x0e, 0xcc, 0x41, 0xaa, 0x48, 0x42, 0x7e, 0xf1, 0x7c, 0x76, 0x0b,
- 0xa7, 0x1f, 0x0f, 0x1e, 0x0e, 0x0a, 0x6d, 0x4f, 0x0f, 0x2d, 0xbc, 0xe0,
- 0x7f, 0x3b, 0xa7, 0xc5, 0x5f, 0x78, 0xa5, 0xf3, 0xb7, 0x9d, 0x96, 0x66,
- 0x53, 0x34, 0x57, 0xdd, 0x4d, 0x2e, 0x52, 0x9d, 0xeb, 0xc7, 0xf7, 0xee,
- 0x76, 0x77, 0xb0, 0xd3, 0xe9, 0xe4, 0x7c, 0xcd, 0x35, 0xfe, 0x9a, 0xf0,
- 0x71, 0x3c, 0x1d, 0xc3, 0xdf, 0x65, 0x3f, 0x25, 0x18, 0x84, 0xd3, 0xc1,
- 0x0c, 0x1a, 0x6c, 0x05, 0xd0, 0x1b, 0xbf, 0xec, 0x90, 0x0e, 0x1a, 0x45,
- 0x6c, 0x9e, 0x46, 0x27, 0x93, 0x06, 0xb5, 0xfb, 0xeb, 0x06, 0xb5, 0xfb,
- 0x9b, 0x0e, 0x6a, 0xef, 0xd7, 0x0d, 0x6a, 0xef, 0xb7, 0x1a, 0x54, 0xd9,
- 0xb7, 0xbc, 0x8c, 0x6e, 0x8c, 0xe8, 0x73, 0x2b, 0x68, 0xc3, 0x12, 0x0f,
- 0x23, 0x2a, 0x32, 0x3b, 0xbd, 0x50, 0x8e, 0xde, 0x3f, 0xd2, 0x77, 0x7d,
- 0x04, 0x8d, 0xc8, 0x0c, 0x71, 0xe4, 0xac, 0x2b, 0xad, 0xe6, 0x62, 0x0e,
- 0xab, 0x66, 0x55, 0x56, 0x71, 0xd7, 0x2e, 0xe7, 0xd6, 0x8d, 0x8f, 0x1b,
- 0x82, 0x50, 0x17, 0xcd, 0x73, 0x9c, 0xe5, 0x0a, 0x5f, 0xfb, 0x58, 0x84,
- 0xf6, 0x27, 0xcd, 0x09, 0x33, 0x74, 0x4e, 0xa7, 0x4e, 0x66, 0x35, 0x90,
- 0xd9, 0xb7, 0x8f, 0x6b, 0x8c, 0x9f, 0x9c, 0x2c, 0x25, 0x39, 0x09, 0xf5,
- 0xd3, 0xf3, 0xb9, 0xc6, 0xf8, 0x8a, 0x65, 0x91, 0xee, 0xe6, 0xab, 0x02,
- 0x7f, 0xf2, 0x38, 0x7b, 0x91, 0x61, 0x87, 0x8b, 0x46, 0xe1, 0xce, 0xcb,
- 0x04, 0xde, 0x94, 0xe3, 0xfa, 0xf3, 0xb9, 0x54, 0x7e, 0x43, 0xcd, 0x5c,
- 0xc3, 0x97, 0x80, 0xf0, 0xad, 0x32, 0xac, 0xc8, 0xe0, 0xef, 0x22, 0x57,
- 0x3a, 0x8b, 0xcc, 0x1c, 0x97, 0xc2, 0xc1, 0x5c, 0xaa, 0xb1, 0x68, 0xfa,
- 0x9c, 0x2b, 0xa1, 0x69, 0x65, 0xa6, 0x56, 0xd8, 0x01, 0xba, 0x7d, 0x2f,
- 0xa1, 0x75, 0x1a, 0xf1, 0x33, 0xfd, 0xdb, 0x9e, 0x14, 0xd2, 0x1d, 0x15,
- 0x15, 0xa2, 0xad, 0x75, 0xd1, 0x22, 0x9b, 0x51, 0x35, 0xce, 0xf3, 0xdf,
- 0xd2, 0x49, 0x26, 0xbd, 0xa2, 0x9b, 0x87, 0x37, 0x8c, 0x43, 0x62, 0xb1,
- 0x65, 0xba, 0x67, 0x8d, 0x4d, 0x73, 0x7b, 0xc6, 0x5b, 0xe6, 0x76, 0xec,
- 0xff, 0x9c, 0x0d, 0xa3, 0xff, 0xe7, 0x72, 0xd1, 0x9c, 0x74, 0x98, 0x4f,
- 0x53, 0xd8, 0x92, 0x74, 0x69, 0x04, 0x4d, 0x78, 0x9a, 0xa5, 0x9c, 0x9b,
- 0x6e, 0x26, 0xec, 0xeb, 0xec, 0x83, 0x28, 0xff, 0xf1, 0x65, 0x2f, 0x79,
- 0x8c, 0xd7, 0x66, 0x36, 0x3b, 0x18, 0x1e, 0x1e, 0x1f, 0x37, 0x8c, 0x88,
- 0xbc, 0x6c, 0x08, 0xe2, 0xd3, 0x94, 0xac, 0x8a, 0x73, 0x5c, 0xbc, 0x7a,
- 0xd5, 0x05, 0x60, 0x26, 0xc0, 0xa4, 0x5c, 0xf4, 0x3a, 0xad, 0x72, 0xcb,
- 0xa7, 0x4d, 0x25, 0x58, 0x6b, 0x39, 0x67, 0xeb, 0x00, 0x27, 0x36, 0x5c,
- 0x2f, 0x49, 0xd6, 0xad, 0xfe, 0xd9, 0x04, 0x39, 0xf8, 0xad, 0x49, 0xaf,
- 0x23, 0xf7, 0xf1, 0xac, 0xb4, 0xfc, 0xcc, 0x54, 0xa3, 0xf6, 0x35, 0x7f,
- 0x91, 0x41, 0x74, 0x58, 0x09, 0x14, 0x0a, 0xa4, 0x41, 0xda, 0x78, 0x51,
- 0x35, 0xcf, 0x49, 0xc8, 0x91, 0x65, 0x04, 0x66, 0xa8, 0xaa, 0x5d, 0xaa,
- 0xbd, 0xc5, 0xa5, 0x97, 0xf3, 0xfc, 0x03, 0x6c, 0xa0, 0x24, 0x2c, 0xbc,
- 0xe0, 0xfc, 0xc3, 0x15, 0x05, 0x1a, 0x0f, 0xad, 0x98, 0x94, 0xc3, 0x39,
- 0xa4, 0x45, 0x40, 0x85, 0x26, 0xad, 0x70, 0x2f, 0x6d, 0xf4, 0x42, 0x4b,
- 0x00, 0x18, 0x76, 0x87, 0xfd, 0x71, 0x9e, 0xd5, 0xec, 0xc1, 0x68, 0x2a,
- 0x1c, 0x4f, 0x9b, 0x22, 0xf0, 0xb2, 0x67, 0xc5, 0x30, 0x21, 0xdb, 0xec,
- 0xaf, 0x94, 0xdd, 0x82, 0xf4, 0xc9, 0xa0, 0x0c, 0x26, 0x27, 0x75, 0x99,
- 0x04, 0x12, 0x16, 0xbd, 0x15, 0xa5, 0xfe, 0xe1, 0xca, 0xe6, 0x83, 0xe4,
- 0xd4, 0x51, 0x4c, 0x7f, 0xde, 0x03, 0x70, 0x68, 0x5d, 0x8e, 0x35, 0x68,
- 0x10, 0xbf, 0xf7, 0x2d, 0x05, 0x77, 0x55, 0x99, 0x73, 0xe4, 0xf1, 0xde,
- 0x37, 0xea, 0x41, 0xb9, 0xd1, 0xf5, 0x9a, 0x55, 0x15, 0x17, 0xa4, 0xab,
- 0x2c, 0x0c, 0x18, 0x3a, 0x8d, 0xd4, 0x36, 0x99, 0x44, 0x77, 0x29, 0x50,
- 0x91, 0x1e, 0x45, 0xbc, 0x93, 0x94, 0x32, 0x7d, 0x5c, 0xc1, 0xe6, 0x16,
- 0xd3, 0xbc, 0xe6, 0x82, 0x85, 0xae, 0xb0, 0x2c, 0x07, 0x83, 0x8f, 0x8b,
- 0x29, 0xf1, 0x9b, 0xc8, 0xf3, 0x90, 0xbb, 0xaa, 0x69, 0x6c, 0x04, 0x9e,
- 0x2d, 0x0a, 0xd2, 0x88, 0x15, 0x09, 0x5b, 0xec, 0x71, 0x78, 0xcf, 0x74,
- 0xef, 0xb0, 0xe7, 0x0e, 0x64, 0xd8, 0x86, 0x5a, 0x89, 0x04, 0x32, 0xdb,
- 0x8c, 0x71, 0x4a, 0x2b, 0x8a, 0xa8, 0xb8, 0x15, 0x09, 0x35, 0x9a, 0x3d,
- 0xf2, 0x0d, 0xd1, 0x78, 0x56, 0x16, 0x74, 0x1a, 0xbe, 0x7d, 0x66, 0x19,
- 0xf4, 0xdf, 0xe5, 0xf3, 0x09, 0xb3, 0x98, 0x51, 0x2a, 0x87, 0x0f, 0x7b,
- 0xe9, 0xab, 0x45, 0x76, 0xf2, 0x5c, 0x61, 0x8a, 0xf6, 0xa6, 0xd2, 0xaa,
- 0x58, 0xef, 0xe6, 0xed, 0x6d, 0x61, 0xc3, 0x0e, 0x8d, 0x91, 0x67, 0x16,
- 0xe3, 0x0f, 0x86, 0x25, 0xe0, 0x24, 0x81, 0xd6, 0x61, 0xe3, 0xb1, 0x56,
- 0x55, 0x8c, 0xa4, 0xbc, 0x43, 0xea, 0x47, 0x7e, 0x91, 0xf3, 0x89, 0xb0,
- 0xaa, 0xea, 0xed, 0xe3, 0x89, 0x18, 0x69, 0xa8, 0x3b, 0xdc, 0xb2, 0xc5,
- 0x0b, 0xb7, 0xe4, 0x71, 0xae, 0x42, 0x54, 0x5d, 0x73, 0x88, 0x3a, 0x9b,
- 0xbd, 0x60, 0xff, 0x5b, 0xeb, 0x8e, 0xf9, 0x35, 0x70, 0xd7, 0x5e, 0xeb,
- 0x24, 0x44, 0xc0, 0x16, 0x46, 0x9a, 0x16, 0xf7, 0xd0, 0x55, 0xd0, 0xd6,
- 0xc8, 0x34, 0x74, 0x60, 0xca, 0xd2, 0xf5, 0x34, 0x2a, 0xb3, 0x54, 0xdf,
- 0x81, 0x59, 0x04, 0x65, 0x5d, 0xe3, 0x8b, 0x81, 0x53, 0x11, 0x2a, 0x98,
- 0x8b, 0x61, 0x45, 0x95, 0xda, 0x75, 0x97, 0x1e, 0xf0, 0x3e, 0xa6, 0xeb,
- 0x66, 0x11, 0xb5, 0x70, 0xc3, 0x98, 0x0c, 0x25, 0xbd, 0x2b, 0x79, 0x55,
- 0xdc, 0xcd, 0xfb, 0x27, 0x1c, 0x97, 0x9b, 0x9c, 0x14, 0x57, 0xac, 0xb5,
- 0xbe, 0x05, 0x29, 0x46, 0xbb, 0xf6, 0xee, 0xec, 0x6d, 0xb2, 0xf9, 0x8e,
- 0xe7, 0x74, 0xe6, 0x7c, 0x66, 0xfc, 0xe8, 0x96, 0x56, 0xc9, 0x25, 0xf6,
- 0x18, 0xc0, 0xef, 0xf7, 0x92, 0xa3, 0xef, 0x0f, 0xde, 0x9c, 0x9d, 0x1c,
- 0xfd, 0xb4, 0x42, 0xa9, 0xe5, 0x8f, 0xbf, 0xb0, 0xa1, 0x73, 0x31, 0x76,
- 0xad, 0x6a, 0x42, 0x97, 0xf6, 0xf4, 0x7e, 0x15, 0x2f, 0x90, 0xe3, 0x63,
- 0x24, 0x38, 0x1c, 0x9e, 0x1d, 0xf7, 0x15, 0x84, 0x40, 0xf8, 0x80, 0xe2,
- 0xba, 0xc9, 0x01, 0xd6, 0xa4, 0x3c, 0xa6, 0xa2, 0x7e, 0x64, 0xaf, 0xd5,
- 0xf3, 0xd0, 0xf3, 0xf8, 0xc4, 0x3d, 0x41, 0xf4, 0xa5, 0x29, 0x74, 0x43,
- 0x42, 0xd7, 0x56, 0x49, 0x76, 0x1c, 0x59, 0x84, 0x7c, 0xdd, 0x32, 0x16,
- 0x13, 0xb2, 0x69, 0xa6, 0xf8, 0xa9, 0x2b, 0xb8, 0xa8, 0x54, 0x23, 0x13,
- 0xa8, 0x58, 0xf6, 0x53, 0x44, 0x95, 0xdc, 0xd5, 0x6f, 0x31, 0x72, 0x5c,
- 0x4f, 0x7d, 0xfa, 0x42, 0x21, 0xc2, 0x3d, 0xda, 0xd5, 0xab, 0xf6, 0x49,
- 0x94, 0x59, 0x26, 0xfb, 0xeb, 0xbf, 0xa1, 0xac, 0xf7, 0xce, 0x85, 0x19,
- 0xfc, 0x92, 0xeb, 0xe4, 0x23, 0xef, 0x13, 0xad, 0xb3, 0xf9, 0xf0, 0x75,
- 0xf2, 0xcb, 0xc9, 0x42, 0xef, 0x07, 0x25, 0x0c, 0xa1, 0x8c, 0x09, 0xb1,
- 0x1c, 0xa1, 0xfe, 0xb6, 0x3b, 0xc9, 0x61, 0x55, 0x23, 0xbb, 0x02, 0xf4,
- 0x10, 0x9b, 0x84, 0x3c, 0xc8, 0x05, 0x73, 0x84, 0x70, 0xef, 0x23, 0xbd,
- 0xfc, 0xa3, 0x28, 0x01, 0x84, 0x10, 0xfa, 0xab, 0x74, 0xdf, 0xe3, 0x28,
- 0xc2, 0x8f, 0xa5, 0x83, 0x77, 0xbf, 0x2d, 0x1d, 0xa0, 0xec, 0xf6, 0x8b,
- 0x77, 0xe7, 0x27, 0x2b, 0xb7, 0x3c, 0x55, 0x2b, 0x34, 0x33, 0xf7, 0xcb,
- 0xac, 0x1e, 0x5f, 0xc7, 0x35, 0x73, 0x8a, 0x8a, 0x63, 0x78, 0x99, 0x2b,
- 0xdf, 0xbb, 0x22, 0xcd, 0x51, 0xe2, 0xa5, 0x0a, 0xde, 0xda, 0x2c, 0x35,
- 0xc9, 0xb9, 0xe1, 0x08, 0xec, 0x0e, 0xc0, 0x6a, 0x1f, 0x94, 0x58, 0x15,
- 0x50, 0x11, 0x53, 0x6d, 0x22, 0x8a, 0x2a, 0xd6, 0x25, 0xb3, 0x49, 0x57,
- 0xeb, 0x51, 0x2c, 0xfc, 0x5d, 0x37, 0xb0, 0xcc, 0x87, 0x51, 0x34, 0xc4,
- 0x93, 0xdb, 0x73, 0x69, 0x6f, 0xfd, 0x82, 0x8f, 0x85, 0xea, 0x0a, 0x9a,
- 0xa3, 0xd1, 0x40, 0x17, 0xe8, 0xf2, 0x64, 0xb9, 0xb2, 0xe4, 0xb6, 0xa6,
- 0xa1, 0xf4, 0xdc, 0x7a, 0xe1, 0xcb, 0x4c, 0x6a, 0xdd, 0x98, 0xb0, 0xba,
- 0x5d, 0xa7, 0xd3, 0x1b, 0xcd, 0x3f, 0x9f, 0x2c, 0x4b, 0x9f, 0x11, 0xec,
- 0xfc, 0x5d, 0x03, 0x78, 0x9e, 0x50, 0x8f, 0xa8, 0x0b, 0xfd, 0x77, 0xb4,
- 0xbc, 0xba, 0xf2, 0xfa, 0x71, 0x95, 0x65, 0x52, 0xdd, 0x80, 0xa4, 0xdf,
- 0x8d, 0x2a, 0x11, 0xcd, 0x8b, 0x56, 0x6e, 0x7d, 0x39, 0x47, 0x05, 0x71,
- 0x04, 0x6e, 0x15, 0x93, 0x75, 0xae, 0x91, 0xc8, 0x62, 0x72, 0x0c, 0x0c,
- 0x52, 0x7a, 0x4b, 0xc7, 0xc6, 0xe7, 0x1b, 0x9a, 0x3d, 0xbc, 0xae, 0xf5,
- 0xa3, 0x59, 0x87, 0x5b, 0x17, 0x1d, 0x8a, 0x61, 0xc9, 0xf8, 0xa4, 0xd0,
- 0x75, 0xb8, 0xf1, 0x62, 0xa3, 0x3b, 0x37, 0xdd, 0x5e, 0xd3, 0xf7, 0xd4,
- 0x84, 0x20, 0x80, 0x62, 0x63, 0xe7, 0x83, 0xa4, 0x7d, 0xb8, 0xce, 0x49,
- 0xe0, 0x55, 0x97, 0x14, 0xa7, 0xf9, 0x4b, 0x14, 0x48, 0x5b, 0x18, 0x4b,
- 0x11, 0x9b, 0x0f, 0xe9, 0xbe, 0x35, 0xd0, 0x3f, 0xd9, 0x40, 0xad, 0xe8,
- 0x0f, 0x20, 0x00, 0x2f, 0x3d, 0x98, 0x37, 0x70, 0xd4, 0x3a, 0x5c, 0x15,
- 0xb1, 0x13, 0x1a, 0x3e, 0x5f, 0x85, 0x3f, 0xb9, 0x54, 0xd6, 0xa0, 0x75,
- 0xa0, 0x98, 0x82, 0x25, 0x0b, 0x5a, 0xab, 0x3c, 0x9b, 0xac, 0x24, 0xf4,
- 0x42, 0x9b, 0x9e, 0xc7, 0x40, 0xe9, 0x26, 0x6e, 0x39, 0xb5, 0xcd, 0xd7,
- 0xfb, 0x00, 0x74, 0x4e, 0xc9, 0x69, 0x76, 0x05, 0xe0, 0xea, 0x2e, 0x3b,
- 0x6a, 0x97, 0x28, 0x53, 0x34, 0xb7, 0x6b, 0x50, 0xdf, 0x10, 0x19, 0x14,
- 0x96, 0xfd, 0xc1, 0xea, 0x31, 0x1e, 0xcc, 0xe6, 0x52, 0xb0, 0x47, 0xdd,
- 0x19, 0xbd, 0x18, 0x7c, 0x5a, 0x10, 0x11, 0xac, 0x6e, 0xa8, 0x53, 0x9e,
- 0x9a, 0xca, 0xbf, 0x05, 0x4a, 0xfc, 0x5a, 0xfd, 0xb1, 0xd1, 0x58, 0xa8,
- 0x3f, 0x76, 0xf8, 0x54, 0xc3, 0x3c, 0xba, 0x26, 0xaa, 0x2c, 0x92, 0xe7,
- 0x02, 0x5e, 0x75, 0xc7, 0x0f, 0x22, 0xd4, 0x83, 0x8f, 0x68, 0xf2, 0x42,
- 0x64, 0x95, 0xce, 0xb4, 0x60, 0x49, 0x9f, 0xd7, 0x90, 0x83, 0xc0, 0xa0,
- 0x90, 0x60, 0xe9, 0x90, 0xd9, 0x66, 0x60, 0xce, 0x6c, 0xfe, 0x9a, 0x66,
- 0xec, 0x40, 0x83, 0xdb, 0x24, 0xb2, 0xef, 0xb2, 0x45, 0x8f, 0x65, 0x75,
- 0x69, 0x43, 0xe5, 0xbb, 0xba, 0x74, 0x2e, 0x3f, 0xe6, 0x4a, 0x8a, 0x47,
- 0x93, 0x68, 0xd0, 0x08, 0x5d, 0x24, 0x1f, 0x18, 0xaf, 0x81, 0xcb, 0x5c,
- 0x75, 0xd5, 0x25, 0x00, 0xf7, 0x0a, 0xd8, 0x97, 0x05, 0x35, 0x54, 0x8d,
- 0x9e, 0x22, 0x19, 0x95, 0xcb, 0xba, 0x47, 0x10, 0xe9, 0x35, 0x38, 0xfe,
- 0xba, 0x8c, 0x68, 0x1d, 0x80, 0xc3, 0xe6, 0x84, 0x84, 0xf1, 0x43, 0xe1,
- 0x38, 0xd2, 0x89, 0x66, 0xbe, 0x4a, 0xdb, 0x56, 0x45, 0x75, 0xad, 0x03,
- 0xa9, 0x53, 0xc7, 0xb8, 0xfe, 0x85, 0x19, 0x52, 0xd6, 0xcd, 0x67, 0xda,
- 0x90, 0x8d, 0x5c, 0x9b, 0xda, 0x64, 0x87, 0x73, 0x49, 0xbc, 0xc2, 0x40,
- 0xa1, 0xe0, 0x5d, 0xa3, 0x26, 0xfb, 0xeb, 0x9d, 0x2a, 0x9b, 0x5b, 0x80,
- 0x44, 0x4b, 0xc8, 0x34, 0x8f, 0x96, 0x75, 0x71, 0x67, 0x99, 0x5c, 0x28,
- 0x36, 0x55, 0xe7, 0xf5, 0x32, 0xf6, 0xd7, 0x38, 0x9c, 0x58, 0x38, 0xe3,
- 0xc0, 0xc4, 0x79, 0x33, 0xbc, 0xc7, 0x0c, 0x67, 0x89, 0xad, 0x44, 0x35,
- 0x62, 0x41, 0xc5, 0xf2, 0x34, 0x32, 0xf0, 0xe5, 0xb6, 0x89, 0xe3, 0x80,
- 0x7a, 0xf4, 0xa3, 0x6b, 0xfa, 0x6b, 0xe8, 0xed, 0x3f, 0xfc, 0x87, 0x7d,
- 0x09, 0xb4, 0xcb, 0x7f, 0xd8, 0x4a, 0x99, 0x7b, 0x3c, 0x8d, 0x0a, 0xb0,
- 0x83, 0xbf, 0x25, 0x7f, 0xc0, 0xaa, 0x00, 0xad, 0x5b, 0x96, 0x06, 0x60,
- 0x3c, 0xdc, 0xe0, 0x1f, 0x06, 0xce, 0x29, 0xae, 0x8d, 0xa4, 0xc9, 0x3c,
- 0xbb, 0x03, 0xdb, 0x8b, 0x78, 0x98, 0x1c, 0xe3, 0x9f, 0xe6, 0x5c, 0x1b,
- 0x6f, 0x9c, 0xd2, 0x71, 0x64, 0x77, 0xa6, 0xa0, 0x5b, 0xc8, 0x2e, 0xfe,
- 0x54, 0x2a, 0xdb, 0xac, 0xd3, 0x91, 0xa0, 0x0d, 0xeb, 0xe7, 0xb1, 0xed,
- 0x8b, 0x23, 0x4e, 0xf6, 0xb1, 0x1b, 0x7f, 0xe8, 0x0b, 0x94, 0xa9, 0xd2,
- 0xba, 0x22, 0x13, 0xdb, 0x67, 0xb2, 0x31, 0x77, 0xf9, 0xfc, 0xc9, 0x5e,
- 0x3f, 0x90, 0x74, 0x7a, 0x9d, 0x41, 0x7b, 0x62, 0xc5, 0x2d, 0xc6, 0x63,
- 0x38, 0xdd, 0xd8, 0xe2, 0x0e, 0xbb, 0xf4, 0x1f, 0x12, 0x05, 0xc4, 0x41,
- 0x4e, 0xf5, 0x12, 0xd2, 0xdd, 0x9d, 0xd7, 0xd8, 0x56, 0x3a, 0xba, 0x1e,
- 0x21, 0x1e, 0x0f, 0x56, 0xd5, 0x15, 0xd5, 0xc4, 0x87, 0x94, 0x06, 0xfa,
- 0x1e, 0x9e, 0x35, 0x79, 0xf5, 0x50, 0x3e, 0xea, 0x5f, 0xf0, 0x47, 0x16,
- 0xc0, 0xa6, 0x09, 0xcb, 0xd9, 0xc4, 0x87, 0xb6, 0xf6, 0x92, 0x18, 0x37,
- 0x28, 0xe9, 0x0a, 0x08, 0xe2, 0x28, 0x59, 0x3a, 0xdc, 0xd1, 0x38, 0xed,
- 0x28, 0xbd, 0x97, 0x92, 0x52, 0xc4, 0xae, 0x1f, 0x6e, 0x4d, 0xec, 0x18,
- 0x53, 0x92, 0x6b, 0x20, 0xc1, 0x3a, 0x93, 0x66, 0xe8, 0xf9, 0x95, 0x98,
- 0x37, 0x81, 0xd7, 0x18, 0x3c, 0xd6, 0x5c, 0x00, 0xe0, 0x1e, 0x94, 0x38,
- 0xa4, 0x2b, 0x4e, 0xd0, 0xb1, 0xd9, 0x73, 0x38, 0x05, 0xe5, 0x4a, 0xbb,
- 0x8f, 0xcc, 0xb5, 0x10, 0x0b, 0x70, 0xc0, 0x2d, 0xb0, 0x72, 0x4d, 0x10,
- 0x26, 0xf0, 0xfd, 0x4e, 0x43, 0x66, 0xd2, 0xb9, 0xb7, 0xc9, 0x31, 0xcb,
- 0x2c, 0x88, 0x02, 0x5a, 0x8a, 0xc4, 0x93, 0x03, 0x80, 0x78, 0x64, 0xb0,
- 0xa8, 0xae, 0xa7, 0x87, 0x9b, 0x73, 0xa3, 0x90, 0x6b, 0xba, 0x1f, 0x08,
- 0x69, 0x83, 0x76, 0x86, 0xd9, 0x6e, 0x14, 0x70, 0x7c, 0x59, 0x2f, 0xde,
- 0x03, 0x67, 0xf4, 0x3d, 0x60, 0xc7, 0x2e, 0x02, 0x2b, 0x04, 0x3e, 0xc0,
- 0x7a, 0x09, 0x32, 0x1c, 0xe9, 0xec, 0xb9, 0x96, 0xa2, 0x99, 0x16, 0x22,
- 0x86, 0x45, 0x91, 0x94, 0xf1, 0xca, 0xb5, 0x6a, 0x25, 0x98, 0xd3, 0xa8,
- 0x95, 0x4a, 0xf6, 0x34, 0x1a, 0x18, 0x07, 0x68, 0xbc, 0x07, 0x1e, 0x8b,
- 0xa3, 0x10, 0xba, 0x41, 0xb2, 0x92, 0x21, 0xeb, 0x5b, 0x80, 0x2d, 0x02,
- 0xe0, 0x87, 0x9c, 0xda, 0xe5, 0xdc, 0x02, 0x43, 0x1e, 0x1e, 0x18, 0xf4,
- 0x04, 0x2b, 0x1b, 0x69, 0x25, 0x6a, 0x38, 0x72, 0x0a, 0xda, 0x13, 0x0d,
- 0x94, 0xa5, 0x75, 0x8b, 0x2b, 0xa0, 0xad, 0x7a, 0x64, 0x9e, 0x48, 0x46,
- 0xd9, 0x13, 0x14, 0xdf, 0x69, 0x9e, 0x7a, 0x34, 0x44, 0x99, 0x01, 0x8e,
- 0x09, 0xe6, 0x0b, 0x93, 0xd1, 0x75, 0x71, 0xf7, 0xe8, 0xe1, 0x92, 0x80,
- 0x18, 0xbe, 0xca, 0x07, 0x2b, 0x56, 0x46, 0x2c, 0xb1, 0x56, 0xc7, 0xd4,
- 0x2d, 0x8d, 0x2c, 0x89, 0xca, 0x74, 0xed, 0x45, 0xe9, 0x0a, 0x9e, 0x4b,
- 0x56, 0x60, 0xe1, 0x24, 0x9b, 0x56, 0x7a, 0x5c, 0x14, 0xdc, 0x2d, 0x77,
- 0x10, 0x44, 0x2f, 0xb5, 0xa2, 0x37, 0x8f, 0x35, 0x07, 0xee, 0x12, 0x21,
- 0x15, 0xc4, 0x1b, 0x8e, 0x98, 0xc0, 0xf7, 0xf9, 0x22, 0x64, 0x09, 0xc7,
- 0x67, 0x01, 0x5c, 0x96, 0xf3, 0xf0, 0x29, 0x90, 0x2b, 0x87, 0x16, 0x2a,
- 0x13, 0xe3, 0x53, 0xf4, 0xd8, 0x38, 0xc6, 0x88, 0x82, 0x10, 0x4c, 0x8b,
- 0x20, 0xbf, 0xb8, 0x6f, 0x82, 0x87, 0x1a, 0x95, 0x8e, 0xcf, 0x6e, 0x9f,
- 0x76, 0x98, 0x90, 0x5a, 0xff, 0xd1, 0x53, 0x9f, 0x34, 0x0f, 0xd7, 0xf3,
- 0x8e, 0x64, 0x24, 0x99, 0x92, 0x54, 0xfc, 0xb3, 0x29, 0xe9, 0xe0, 0xc3,
- 0x44, 0x91, 0x60, 0x12, 0xcd, 0x71, 0x3e, 0x3c, 0x86, 0x60, 0x12, 0x8f,
- 0x8e, 0x84, 0x7a, 0x32, 0x92, 0xe1, 0xb2, 0xab, 0x6f, 0x5d, 0xc7, 0x74,
- 0xd7, 0x26, 0xee, 0x0b, 0x00, 0x67, 0xe4, 0x86, 0xec, 0x33, 0x06, 0xfe,
- 0x4b, 0xa7, 0x94, 0x98, 0x74, 0x08, 0x8d, 0x8f, 0x42, 0x51, 0xf0, 0x18,
- 0x0c, 0x54, 0xa1, 0x72, 0x63, 0xc0, 0xb6, 0x06, 0x1f, 0x2b, 0xe1, 0x66,
- 0xa8, 0x80, 0xa1, 0x38, 0x3d, 0x1f, 0x73, 0xa2, 0x57, 0x11, 0x5a, 0x3c,
- 0x0e, 0xeb, 0xec, 0xbd, 0x90, 0x31, 0x4c, 0xa7, 0x06, 0xf8, 0xe4, 0xa0,
- 0x44, 0x52, 0x5d, 0x0d, 0x33, 0x7e, 0xf6, 0x4f, 0xc4, 0x22, 0x50, 0x4c,
- 0x1f, 0x59, 0x0b, 0x8e, 0x1f, 0x74, 0xd3, 0xd1, 0x9c, 0x19, 0xbb, 0xb2,
- 0x15, 0xbc, 0x82, 0xf1, 0x17, 0xc0, 0x2a, 0xc6, 0x9c, 0x80, 0xf3, 0x70,
- 0x73, 0x80, 0xe1, 0x73, 0x0d, 0xba, 0x8c, 0x02, 0x00, 0x96, 0x88, 0xba,
- 0x46, 0xb7, 0x61, 0x12, 0x20, 0x06, 0x7c, 0x0c, 0xa3, 0xea, 0x58, 0x12,
- 0x66, 0xd0, 0xee, 0xf0, 0x5d, 0x84, 0x11, 0xc1, 0x74, 0x06, 0xed, 0x08,
- 0xfe, 0xf7, 0x09, 0xb5, 0xf3, 0xb4, 0x15, 0x65, 0xeb, 0x3c, 0x3d, 0x36,
- 0x87, 0x4e, 0x12, 0xd7, 0x39, 0xd8, 0x69, 0x0b, 0xe7, 0xf0, 0x2f, 0x3e,
- 0x6c, 0x1c, 0xb3, 0xf6, 0xde, 0xe0, 0x5d, 0x65, 0x24, 0x82, 0x3e, 0xe5,
- 0x91, 0x9a, 0x24, 0xd2, 0x4c, 0x2e, 0x2e, 0x26, 0x75, 0x7b, 0xba, 0x23,
- 0x42, 0x0c, 0xad, 0x99, 0x69, 0xe1, 0xa1, 0xd6, 0xcc, 0xc9, 0xea, 0x9a,
- 0x82, 0xe2, 0xfe, 0x08, 0xb9, 0x72, 0xa5, 0x8d, 0xce, 0x1e, 0xed, 0x24,
- 0xe8, 0x4a, 0x4a, 0x97, 0x0f, 0xcc, 0x20, 0x50, 0x63, 0x1e, 0xee, 0x31,
- 0x3c, 0x67, 0xdd, 0x5d, 0x6b, 0xe4, 0x6a, 0xf2, 0x71, 0x4b, 0xb7, 0x32,
- 0xd8, 0x96, 0x24, 0xf9, 0x6c, 0xe2, 0xf7, 0x81, 0xdb, 0x4a, 0xd9, 0x60,
- 0x18, 0x60, 0xef, 0xca, 0x33, 0x81, 0x94, 0x49, 0xc2, 0x62, 0xb5, 0x2c,
- 0x05, 0x48, 0xf3, 0xf1, 0x3b, 0xda, 0x74, 0x69, 0xd7, 0x1e, 0x47, 0x14,
- 0xf2, 0xe8, 0x16, 0x8c, 0x90, 0x08, 0xc8, 0xa6, 0x15, 0xa3, 0x72, 0x53,
- 0xc4, 0xe2, 0xda, 0xb0, 0x2c, 0x66, 0xf7, 0x9f, 0x34, 0x2a, 0x69, 0xed,
- 0x63, 0xc6, 0x54, 0x4d, 0xdf, 0xd3, 0x10, 0xf2, 0xcb, 0x7b, 0xda, 0xf6,
- 0x8a, 0xe4, 0xf0, 0xc7, 0xa5, 0x75, 0x79, 0xce, 0x68, 0x8e, 0x61, 0x11,
- 0x68, 0xcc, 0x65, 0x32, 0xce, 0xca, 0x5a, 0xca, 0x24, 0x8b, 0xd1, 0x0f,
- 0xbf, 0x3f, 0x42, 0x82, 0xea, 0xa2, 0x50, 0x19, 0xce, 0xa9, 0x23, 0x03,
- 0x06, 0x07, 0x84, 0x99, 0x8b, 0x7b, 0xb0, 0xb6, 0x3a, 0xb2, 0x77, 0x92,
- 0xb6, 0xe9, 0xb5, 0x0a, 0xbc, 0x72, 0x83, 0x07, 0x20, 0x45, 0x5d, 0xff,
- 0xa4, 0xa8, 0xa4, 0x8b, 0x85, 0x1e, 0xf1, 0xc7, 0xe7, 0x2e, 0x70, 0x4e,
- 0x92, 0xbe, 0x54, 0xa0, 0x24, 0x13, 0x7b, 0x4b, 0x89, 0x50, 0x8b, 0x1b,
- 0xb3, 0x34, 0x88, 0x9f, 0xb0, 0x4e, 0xcb, 0x47, 0x9a, 0x13, 0x48, 0x3e,
- 0x79, 0x9c, 0xb1, 0x4c, 0x86, 0xc3, 0xaf, 0x19, 0xb0, 0xd3, 0xf1, 0x9b,
- 0x6d, 0xef, 0xfb, 0x13, 0x59, 0xfa, 0xb1, 0x4b, 0xd0, 0xd5, 0xa5, 0xc4,
- 0x3a, 0x38, 0x63, 0xcf, 0xc7, 0x2e, 0x43, 0x53, 0xac, 0xfc, 0x8d, 0x26,
- 0x7a, 0x71, 0x78, 0xe6, 0x26, 0x98, 0xb8, 0xfa, 0x1f, 0xe1, 0xd8, 0x37,
- 0x1f, 0xa3, 0x73, 0x95, 0x48, 0x9b, 0x73, 0xec, 0x9c, 0x11, 0xab, 0x43,
- 0x6c, 0x72, 0x5c, 0x2e, 0xfe, 0x1f, 0xd8, 0x58, 0xc4, 0x39, 0xb0, 0x20,
- 0x2f, 0xb9, 0xc4, 0x30, 0xe1, 0x3e, 0x3e, 0x64, 0xae, 0xdb, 0xd4, 0x5d,
- 0xc8, 0xac, 0x4b, 0x6d, 0x56, 0x70, 0x31, 0xb6, 0xc3, 0x75, 0x0c, 0xdb,
- 0x95, 0x3b, 0xfc, 0x45, 0x63, 0x96, 0xd4, 0x20, 0x83, 0x8b, 0xe3, 0x21,
- 0xc3, 0x76, 0xe3, 0xd0, 0x2d, 0xe9, 0x06, 0x27, 0xfd, 0xef, 0xa3, 0xb4,
- 0x70, 0x31, 0x08, 0x0b, 0xbe, 0x33, 0xe3, 0x20, 0xb8, 0x56, 0x7d, 0x45,
- 0x3c, 0x92, 0xe3, 0x39, 0xee, 0xf0, 0x51, 0x36, 0x91, 0x6a, 0xb2, 0x17,
- 0x2a, 0x70, 0x96, 0x01, 0xa6, 0xac, 0xaa, 0x99, 0x28, 0x18, 0x31, 0x5e,
- 0x72, 0x10, 0x53, 0x47, 0x56, 0x5e, 0xa4, 0x9a, 0x8e, 0x8b, 0xa9, 0xf8,
- 0x64, 0x6e, 0x81, 0xb0, 0xdb, 0xbd, 0x17, 0x5e, 0xf2, 0xea, 0x26, 0x10,
- 0x46, 0x97, 0xc4, 0x3a, 0x2b, 0x50, 0xa7, 0x3d, 0xff, 0x28, 0x9b, 0x22,
- 0x16, 0xb7, 0x70, 0xcb, 0x23, 0x44, 0x22, 0x64, 0xda, 0x73, 0x67, 0x43,
- 0x8a, 0xd5, 0x7d, 0x1c, 0x29, 0xc0, 0x1f, 0xe2, 0x01, 0xfe, 0x5a, 0xf0,
- 0x7f, 0x48, 0x63, 0xe3, 0x2f, 0x15, 0x7a, 0xfa, 0x2e, 0xad, 0x1e, 0x1b,
- 0x5d, 0x2a, 0x65, 0xe3, 0x9a, 0x8b, 0xe0, 0x83, 0xbb, 0xdc, 0x25, 0x93,
- 0x64, 0x1f, 0xb2, 0xb8, 0x3e, 0x47, 0x17, 0x8b, 0xd7, 0x70, 0x26, 0x44,
- 0xb8, 0xb8, 0xdc, 0x90, 0x60, 0xbd, 0x42, 0x38, 0xbb, 0x47, 0xa5, 0xd8,
- 0x2e, 0xc1, 0x1e, 0x63, 0xc5, 0xc8, 0x3f, 0xfe, 0xf8, 0xfc, 0x36, 0x2c,
- 0x4e, 0x62, 0x6c, 0x50, 0x43, 0x22, 0x3e, 0x3c, 0xa3, 0xec, 0x63, 0x95,
- 0x2a, 0x20, 0x8b, 0x35, 0x8f, 0x51, 0x9b, 0x41, 0xe8, 0xce, 0x77, 0xc0,
- 0xa1, 0x76, 0x48, 0x06, 0xba, 0x03, 0x8d, 0x20, 0x16, 0x06, 0x53, 0x36,
- 0x34, 0x78, 0xd2, 0x4c, 0xf9, 0xf8, 0xd4, 0xd9, 0xc7, 0xdc, 0x34, 0x7c,
- 0xff, 0x77, 0x9f, 0x19, 0x95, 0x15, 0x1b, 0xf2, 0x5b, 0xbc, 0xce, 0x96,
- 0x91, 0xa7, 0x91, 0x95, 0xf0, 0x00, 0x7e, 0x0c, 0x19, 0xb1, 0x09, 0x23,
- 0xd3, 0x92, 0x58, 0x98, 0x8f, 0x43, 0xab, 0x14, 0xff, 0x87, 0xc5, 0xa7,
- 0xcf, 0xf2, 0x47, 0x55, 0xb5, 0x5c, 0xe1, 0x76, 0xc1, 0x9d, 0x97, 0x9d,
- 0x16, 0x57, 0xa4, 0xd5, 0x98, 0x11, 0x53, 0x26, 0xc4, 0x2a, 0x99, 0x37,
- 0x39, 0xb1, 0x8b, 0x38, 0x93, 0xa2, 0x27, 0x3e, 0x9b, 0x05, 0xda, 0x05,
- 0x0b, 0x2f, 0x8f, 0x8c, 0x40, 0xed, 0x92, 0xe6, 0x7b, 0xdb, 0x00, 0xa2,
- 0x0a, 0x5b, 0x26, 0xcd, 0xeb, 0x20, 0x2a, 0xb0, 0xcb, 0x22, 0xdd, 0x7f,
- 0xb8, 0x39, 0x75, 0xd4, 0xfd, 0x16, 0x25, 0x1b, 0x02, 0x9c, 0x86, 0x17,
- 0x3f, 0x5a, 0x82, 0xed, 0xfe, 0xf6, 0xf6, 0xcf, 0x3f, 0x36, 0x22, 0x29,
- 0xbe, 0xf8, 0xf9, 0x63, 0x0a, 0x44, 0x37, 0x93, 0x46, 0x05, 0x97, 0xa8,
- 0xcb, 0xd4, 0x2d, 0xfd, 0xa9, 0xf7, 0x29, 0xf2, 0x0f, 0x69, 0x3c, 0x58,
- 0x30, 0x98, 0xa0, 0xb8, 0x67, 0xb1, 0xa2, 0xe8, 0x72, 0x03, 0x03, 0x5d,
- 0xda, 0x77, 0x50, 0x66, 0x52, 0x30, 0xdb, 0x01, 0x3b, 0xf5, 0x02, 0x2c,
- 0x9f, 0x5e, 0x27, 0x92, 0x05, 0x77, 0xc9, 0xf1, 0x84, 0x1e, 0x7f, 0x05,
- 0x8e, 0x22, 0x51, 0x9c, 0x1a, 0xa8, 0xe7, 0x40, 0x18, 0x71, 0xe1, 0xf6,
- 0x5d, 0x18, 0xee, 0x0a, 0x67, 0x9b, 0xbc, 0x2d, 0x3c, 0xec, 0x45, 0x00,
- 0x1d, 0xa2, 0xf9, 0x6a, 0xe2, 0xde, 0x60, 0xec, 0x4b, 0x56, 0x9f, 0x5d,
- 0xae, 0x52, 0x84, 0xed, 0xcb, 0xd5, 0xcc, 0xe0, 0xb1, 0x71, 0x15, 0xae,
- 0x05, 0x2e, 0x54, 0x57, 0x55, 0x9b, 0x57, 0x10, 0x3d, 0x6f, 0x9e, 0xcc,
- 0xe7, 0x5d, 0x41, 0xa4, 0x82, 0xff, 0xd1, 0x05, 0x2d, 0xaa, 0x29, 0xf0,
- 0x0f, 0x80, 0x9e, 0x98, 0x39, 0x29, 0xdc, 0x4a, 0xcd, 0x30, 0x8f, 0xc2,
- 0xbd, 0x05, 0x15, 0x45, 0x38, 0xe4, 0x6a, 0x10, 0x94, 0xc8, 0x1f, 0x9b,
- 0x7d, 0xc8, 0x05, 0x23, 0x38, 0x0c, 0x44, 0x09, 0xdc, 0x24, 0x6a, 0x52,
- 0xaa, 0xb2, 0xba, 0x2b, 0x98, 0x4f, 0x31, 0x5f, 0x2c, 0x3f, 0xf7, 0x58,
- 0x03, 0xdb, 0x36, 0x56, 0xa6, 0x62, 0x73, 0x43, 0xe8, 0x2e, 0x8a, 0xd2,
- 0x14, 0xc0, 0x15, 0x07, 0x82, 0x22, 0x99, 0xe8, 0x1f, 0x90, 0xab, 0xb6,
- 0x8e, 0x74, 0x54, 0x1b, 0x73, 0x57, 0x4e, 0x01, 0x7b, 0xde, 0x5c, 0x14,
- 0x44, 0x20, 0xe4, 0x68, 0x2c, 0x18, 0xa7, 0xf8, 0x22, 0x68, 0x75, 0x1e,
- 0x16, 0x2d, 0xd7, 0x74, 0xb8, 0x8e, 0xcb, 0x84, 0x64, 0x21, 0x31, 0x6d,
- 0x80, 0xb6, 0x88, 0xcb, 0x31, 0xbe, 0xa6, 0xf2, 0x79, 0x6e, 0x40, 0xc2,
- 0xb0, 0x55, 0xbd, 0x62, 0x3d, 0x93, 0xbe, 0x66, 0x5f, 0xae, 0x11, 0x47,
- 0x77, 0x1d, 0xf6, 0x71, 0x38, 0x44, 0xf1, 0xf1, 0x6b, 0x3d, 0x67, 0xe7,
- 0x8b, 0xf2, 0x4c, 0x10, 0x80, 0xb5, 0x2c, 0x2a, 0xa4, 0x31, 0x6c, 0xdf,
- 0xa5, 0x5b, 0xa6, 0x7a, 0x49, 0xb2, 0xce, 0x34, 0xae, 0x9c, 0x0e, 0x6f,
- 0xa5, 0x30, 0x24, 0xcd, 0x54, 0xea, 0x2f, 0x8c, 0x07, 0xb5, 0x27, 0x7b,
- 0xaf, 0x8d, 0xac, 0xf0, 0x9a, 0xbd, 0xd3, 0x30, 0xbe, 0x20, 0x78, 0xab,
- 0x11, 0x5a, 0xee, 0xeb, 0xa4, 0xc5, 0xb4, 0xca, 0x7b, 0xb0, 0x16, 0x9b,
- 0xe4, 0xa4, 0x38, 0x89, 0x8f, 0xed, 0xd0, 0x59, 0x37, 0xf1, 0x4c, 0xb8,
- 0x3b, 0x5c, 0x79, 0x41, 0xb1, 0xd3, 0x74, 0x1c, 0xa3, 0x45, 0x94, 0x50,
- 0x58, 0x51, 0xde, 0xe3, 0x0b, 0x9f, 0x16, 0xfb, 0x87, 0xa7, 0x3b, 0xcc,
- 0x5c, 0xac, 0x91, 0x34, 0x0c, 0x9a, 0xfa, 0xc3, 0x93, 0xf4, 0x01, 0x86,
- 0x09, 0x15, 0x2a, 0x62, 0x97, 0x52, 0xe5, 0x87, 0xeb, 0xa3, 0xc3, 0xb5,
- 0x70, 0x97, 0xde, 0x1b, 0x76, 0xb3, 0xbc, 0x16, 0x61, 0x9e, 0x76, 0x1d,
- 0xa6, 0x5e, 0x98, 0xc5, 0x50, 0x87, 0xcc, 0x44, 0x39, 0xef, 0xa6, 0x32,
- 0xaa, 0xad, 0x8e, 0x68, 0x16, 0x8c, 0x80, 0x0b, 0xc1, 0xc2, 0x9b, 0xc4,
- 0x9b, 0xf2, 0xe7, 0xd5, 0xa1, 0xcd, 0xff, 0xbc, 0xab, 0xeb, 0x7b, 0x09,
- 0x68, 0x12, 0xae, 0xbc, 0xb2, 0xf8, 0xb7, 0x04, 0xb8, 0x0f, 0x5d, 0x1a,
- 0x75, 0x6a, 0x95, 0x43, 0xec, 0x4d, 0xcd, 0x8a, 0x0b, 0x13, 0x4f, 0xb9,
- 0xad, 0xe5, 0x9c, 0xad, 0x12, 0x1d, 0xe0, 0xd2, 0x89, 0xa7, 0x5c, 0x9c,
- 0x58, 0x97, 0x2e, 0x75, 0xd1, 0xb8, 0xfd, 0x5a, 0xcd, 0x77, 0x33, 0x74,
- 0x4c, 0x3d, 0x88, 0xa9, 0x87, 0x05, 0x53, 0x5e, 0xf0, 0x35, 0x43, 0x14,
- 0x88, 0x48, 0xeb, 0x26, 0xf8, 0x24, 0xc9, 0xf8, 0xba, 0xf9, 0xea, 0xe8,
- 0x82, 0x73, 0x37, 0xcf, 0x91, 0x2d, 0xef, 0x06, 0x88, 0xfa, 0x59, 0x7a,
- 0xce, 0x53, 0x57, 0xa1, 0xc6, 0x65, 0x0a, 0xcf, 0x19, 0xfc, 0x84, 0x04,
- 0xac, 0x79, 0x67, 0x7c, 0x63, 0xc5, 0xf5, 0x47, 0x66, 0x33, 0x86, 0x21,
- 0xf0, 0x41, 0x49, 0xa1, 0xa9, 0xcf, 0xeb, 0x3a, 0x0c, 0x48, 0x20, 0x52,
- 0xeb, 0xab, 0xa3, 0x93, 0xa3, 0x8b, 0xa3, 0x2e, 0x70, 0x97, 0x32, 0x9b,
- 0xe2, 0x06, 0xab, 0xb3, 0xf1, 0xf5, 0x9c, 0xe8, 0xfe, 0x8a, 0xb7, 0x04,
- 0x59, 0xde, 0xdf, 0x65, 0xa3, 0x57, 0x07, 0xdf, 0x72, 0xfd, 0x37, 0x3e,
- 0x37, 0x67, 0xe7, 0xa7, 0x67, 0xaf, 0x8f, 0xdf, 0xbe, 0xea, 0x25, 0x87,
- 0xa7, 0x67, 0x3f, 0xf4, 0x92, 0x37, 0xa7, 0xdf, 0x1e, 0x75, 0x50, 0x1e,
- 0x07, 0xa1, 0x75, 0x04, 0x3f, 0x69, 0x8d, 0x15, 0x3e, 0xae, 0x12, 0x89,
- 0x3d, 0xcf, 0x0c, 0xa7, 0xdc, 0x1c, 0xa8, 0xcc, 0x96, 0x51, 0x4b, 0x45,
- 0x1d, 0x50, 0xb4, 0x74, 0x74, 0x06, 0xbe, 0x3e, 0x3a, 0x78, 0xd5, 0x1e,
- 0xf6, 0xd9, 0xe9, 0xf0, 0x02, 0x9d, 0xf1, 0xfc, 0xdc, 0xa4, 0x99, 0x85,
- 0x13, 0xc3, 0x64, 0x5b, 0x37, 0x2b, 0x9a, 0x37, 0x59, 0x80, 0x18, 0x4a,
- 0xc7, 0x00, 0x96, 0xb2, 0xc9, 0xca, 0xda, 0xd1, 0x08, 0x83, 0x70, 0x01,
- 0x77, 0x0f, 0xdd, 0x86, 0xec, 0xe9, 0x0e, 0xe1, 0xf9, 0x13, 0xf5, 0x2e,
- 0x00, 0x4e, 0xd5, 0x81, 0x54, 0xe5, 0x56, 0xdc, 0x85, 0x77, 0x66, 0xad,
- 0xd3, 0x81, 0x22, 0x0a, 0x90, 0x83, 0x1b, 0x82, 0xb8, 0x24, 0x21, 0x10,
- 0xa9, 0x86, 0xb1, 0x8d, 0x32, 0x8e, 0xb4, 0xa9, 0x50, 0x5e, 0x28, 0x08,
- 0xe2, 0xee, 0x66, 0xf1, 0x16, 0x08, 0x89, 0x30, 0x27, 0x08, 0x6b, 0x6c,
- 0x87, 0xe4, 0xf5, 0xf3, 0x1d, 0x5a, 0xa9, 0x88, 0xef, 0x65, 0x61, 0x93,
- 0x2e, 0x98, 0x0a, 0x08, 0x15, 0xcb, 0x4b, 0x22, 0xcd, 0x4c, 0x22, 0x46,
- 0x64, 0xab, 0x0a, 0x1f, 0xcb, 0x78, 0xcc, 0xc7, 0xfc, 0x1a, 0x07, 0x64,
- 0x75, 0xf0, 0x84, 0xa5, 0xb6, 0x0a, 0x6f, 0x47, 0xd6, 0x40, 0xa6, 0xc5,
- 0x95, 0xa8, 0xfb, 0x46, 0x25, 0x1a, 0xaf, 0xd1, 0xcb, 0x56, 0x76, 0x27,
- 0x4b, 0xe8, 0x34, 0x83, 0x75, 0x10, 0x98, 0xf7, 0x13, 0x1e, 0x8d, 0x2b,
- 0x76, 0x8b, 0xa0, 0x29, 0x60, 0x7c, 0x10, 0xbb, 0x98, 0x4b, 0xa5, 0xb5,
- 0x8e, 0xc2, 0x5d, 0x7d, 0xd1, 0x34, 0xaa, 0x44, 0xcb, 0xd1, 0x69, 0x55,
- 0x14, 0x09, 0x7a, 0x53, 0xdc, 0xa1, 0x16, 0xbf, 0x48, 0xc7, 0x63, 0xda,
- 0xdf, 0x8e, 0x0c, 0x9b, 0xc2, 0x1f, 0xec, 0x27, 0x3b, 0xad, 0x2a, 0x26,
- 0x55, 0xd2, 0x97, 0xe2, 0xbe, 0x92, 0xf2, 0x15, 0xe7, 0x37, 0xbe, 0x5e,
- 0xc1, 0x0b, 0xc3, 0xe2, 0x70, 0xba, 0xf6, 0x01, 0x57, 0x3a, 0x39, 0xa6,
- 0x13, 0xc0, 0x23, 0x8f, 0xb2, 0x1c, 0x10, 0xef, 0x87, 0xf2, 0xbf, 0x39,
- 0x1f, 0x0a, 0xac, 0x37, 0xb5, 0x15, 0x77, 0xcc, 0x80, 0xd2, 0x9d, 0x3d,
- 0xf3, 0x17, 0x8f, 0x75, 0x1d, 0x19, 0x0d, 0xcf, 0x8f, 0x2e, 0xce, 0x5b,
- 0x31, 0x10, 0x9f, 0x74, 0x58, 0x3e, 0x37, 0x19, 0xc0, 0xba, 0xb3, 0x57,
- 0xfe, 0x62, 0x55, 0xaf, 0x60, 0x07, 0xdc, 0xef, 0x43, 0xa9, 0xda, 0x4f,
- 0xba, 0xc0, 0xa7, 0x37, 0x05, 0x2a, 0xbb, 0xa3, 0x3f, 0xfe, 0xe2, 0x81,
- 0x59, 0x7e, 0x7d, 0x74, 0x72, 0x16, 0xcf, 0xf2, 0xdb, 0xf3, 0xd7, 0x3f,
- 0x0c, 0x1e, 0x48, 0xc2, 0xfd, 0xe7, 0x07, 0x51, 0x7f, 0x48, 0xeb, 0xba,
- 0x13, 0x75, 0xbe, 0x4a, 0x61, 0xe3, 0x34, 0x60, 0x7e, 0x46, 0xfc, 0x90,
- 0x4a, 0x7b, 0x75, 0x04, 0x47, 0xad, 0x51, 0x04, 0x08, 0x88, 0xa8, 0x8b,
- 0x48, 0xc8, 0x32, 0x79, 0x54, 0xa3, 0x6e, 0x88, 0xda, 0x53, 0xe4, 0xea,
- 0xf2, 0x04, 0x5d, 0xad, 0x42, 0x7c, 0xc7, 0x63, 0xc9, 0x47, 0x5c, 0xc4,
- 0x66, 0x10, 0x80, 0x1d, 0x74, 0x88, 0xfa, 0x2c, 0xb7, 0x31, 0x6c, 0x21,
- 0xf7, 0xe6, 0x64, 0xbd, 0x0f, 0x93, 0xab, 0x41, 0x51, 0xe6, 0x6c, 0xcd,
- 0xd4, 0xca, 0x82, 0xd2, 0x58, 0x82, 0x0a, 0xba, 0x7c, 0xac, 0xf9, 0x08,
- 0x75, 0x35, 0x67, 0x01, 0x56, 0x82, 0xb4, 0x90, 0xc4, 0x4d, 0xcf, 0x60,
- 0x0b, 0xe1, 0xef, 0x5c, 0xab, 0xa6, 0x5f, 0x74, 0xc5, 0x21, 0x56, 0xf7,
- 0xb4, 0xcf, 0x33, 0xcf, 0x79, 0x4d, 0x3b, 0x73, 0xb3, 0xf5, 0x13, 0xe5,
- 0xf8, 0x37, 0xe2, 0xac, 0x25, 0x80, 0x58, 0x62, 0x4d, 0x2a, 0x27, 0x4d,
- 0xaa, 0xb1, 0x61, 0xf7, 0x08, 0x39, 0x65, 0xa7, 0x92, 0x96, 0x13, 0xe1,
- 0x7f, 0x3b, 0x0a, 0x48, 0xa5, 0xde, 0x31, 0xc6, 0xb3, 0x61, 0xe7, 0xbb,
- 0xd6, 0xc3, 0x90, 0x97, 0xa5, 0xf4, 0xc5, 0xa8, 0xe5, 0x4e, 0xd2, 0x48,
- 0xee, 0x08, 0x69, 0x23, 0xe8, 0x50, 0x40, 0x7c, 0x7a, 0x0d, 0xff, 0x24,
- 0x57, 0x4f, 0x04, 0x00, 0x89, 0x18, 0x1a, 0xa9, 0xfb, 0xe0, 0x85, 0x68,
- 0x4e, 0x1e, 0x31, 0xdc, 0x41, 0x11, 0x06, 0x43, 0x32, 0x42, 0xdd, 0xb5,
- 0x02, 0x0e, 0x9e, 0xab, 0xff, 0xf0, 0x08, 0x94, 0xa6, 0xc6, 0xcf, 0x57,
- 0x49, 0x80, 0x96, 0xa5, 0xd2, 0xea, 0x52, 0xf5, 0x6b, 0xdc, 0x83, 0xe0,
- 0xcc, 0x58, 0x93, 0xb5, 0x4e, 0xcf, 0x30, 0xe9, 0xa1, 0xf5, 0xb8, 0x81,
- 0xcb, 0x84, 0x48, 0x7f, 0xa2, 0x63, 0x91, 0xa3, 0xe8, 0x96, 0xe8, 0x01,
- 0xb9, 0xc4, 0x62, 0xc7, 0xf4, 0xbd, 0x7e, 0x87, 0x05, 0x8d, 0x0d, 0x85,
- 0x2b, 0x2e, 0xb1, 0x7f, 0xde, 0x29, 0xfe, 0xc1, 0x13, 0x85, 0x2c, 0xe2,
- 0x0b, 0xfc, 0xf1, 0x8b, 0xc8, 0x22, 0x28, 0x93, 0x22, 0x3e, 0xcb, 0x4d,
- 0xa2, 0xfd, 0x06, 0x7d, 0xf4, 0xa3, 0x1c, 0xe1, 0xc9, 0x96, 0x24, 0x61,
- 0xfa, 0xcd, 0x56, 0x93, 0x20, 0xcb, 0x1d, 0x4d, 0x9a, 0x08, 0x9e, 0x01,
- 0x20, 0x49, 0xac, 0xc2, 0xcb, 0x1e, 0x4b, 0xda, 0x54, 0xce, 0x45, 0x82,
- 0xf9, 0x42, 0xc6, 0xe9, 0xc9, 0x7e, 0x4b, 0x9c, 0xba, 0xbf, 0x03, 0xa7,
- 0x8e, 0x6b, 0x8d, 0xe2, 0x00, 0xbc, 0x98, 0xb0, 0xcd, 0x94, 0xa4, 0x63,
- 0x8e, 0x92, 0xa0, 0xa6, 0x3f, 0xff, 0xcf, 0xee, 0x52, 0x9f, 0x56, 0x03,
- 0x5b, 0xcb, 0x24, 0x08, 0xec, 0x81, 0xf8, 0x5a, 0x58, 0x21, 0x75, 0x75,
- 0x14, 0x67, 0xc5, 0x44, 0x81, 0xda, 0xd2, 0xda, 0x2f, 0x75, 0xd6, 0x09,
- 0xa9, 0x25, 0x75, 0x96, 0xf8, 0x14, 0x22, 0x11, 0x8c, 0x56, 0xb6, 0x98,
- 0xaf, 0x6c, 0x2f, 0xf0, 0x0b, 0x44, 0xd8, 0xb3, 0x5a, 0x8f, 0x86, 0xa5,
- 0xa4, 0x68, 0x3e, 0xa6, 0x4d, 0xb2, 0x3c, 0x24, 0xc2, 0x30, 0xdd, 0x46,
- 0x78, 0x48, 0x24, 0xa9, 0x2a, 0xbe, 0x95, 0x68, 0x1f, 0x54, 0x8e, 0x64,
- 0xe1, 0x45, 0x50, 0x2b, 0x39, 0x0e, 0xdc, 0xd5, 0xf8, 0xa4, 0x61, 0x56,
- 0x86, 0x35, 0xc8, 0xe1, 0x2c, 0xa8, 0x21, 0x90, 0xba, 0xd8, 0xcf, 0xb5,
- 0x4e, 0xff, 0x46, 0x2e, 0x95, 0xf4, 0xb4, 0x2e, 0x2f, 0x4e, 0x92, 0x4c,
- 0xce, 0x52, 0x9c, 0x30, 0xa8, 0xcd, 0x19, 0x4f, 0x46, 0xeb, 0x83, 0x77,
- 0x6e, 0x85, 0x83, 0x46, 0x6c, 0xe0, 0x27, 0x51, 0xa3, 0xfc, 0xbe, 0x62,
- 0x27, 0x01, 0x2d, 0x49, 0x2a, 0x07, 0x4a, 0xb3, 0xc1, 0x8a, 0x44, 0x89,
- 0x29, 0x75, 0xb3, 0x4a, 0x8a, 0x65, 0x15, 0xb1, 0xd7, 0xc0, 0x80, 0x26,
- 0xc2, 0x15, 0x35, 0xe3, 0x25, 0x83, 0xa8, 0x25, 0x9b, 0xfd, 0x2d, 0x27,
- 0x22, 0xa3, 0x3a, 0x9b, 0x90, 0x46, 0xec, 0xec, 0x4f, 0x5d, 0x84, 0xae,
- 0xcb, 0x25, 0x91, 0xd2, 0x06, 0x46, 0x21, 0x4a, 0x13, 0xdc, 0xd9, 0xb6,
- 0x58, 0xdc, 0x8d, 0x5b, 0x02, 0x77, 0x38, 0x92, 0xcb, 0x5a, 0x8d, 0xcd,
- 0xb3, 0xbb, 0xb0, 0x31, 0xaf, 0xa4, 0xba, 0x06, 0x7f, 0xc3, 0x33, 0x75,
- 0x2d, 0xf2, 0xfb, 0x74, 0x11, 0x59, 0x6f, 0x10, 0x1a, 0xc1, 0xdf, 0x0c,
- 0x94, 0x79, 0x8b, 0x14, 0x99, 0x4a, 0x74, 0x3e, 0x0a, 0x36, 0x86, 0x68,
- 0x69, 0x0e, 0xeb, 0xb1, 0x13, 0xc0, 0xa4, 0xba, 0xe6, 0x4b, 0xd5, 0x01,
- 0x30, 0x34, 0x2a, 0x6b, 0xbc, 0x91, 0xda, 0x4c, 0xf3, 0x38, 0x2a, 0xeb,
- 0x0d, 0x3e, 0x1c, 0x24, 0xaf, 0x34, 0xc7, 0x02, 0xa9, 0x45, 0xcb, 0xab,
- 0x0c, 0xc3, 0x42, 0xc8, 0x7d, 0xd0, 0xcc, 0xb7, 0x9a, 0x10, 0xd5, 0x41,
- 0x28, 0xfa, 0x7e, 0xd5, 0x48, 0xd2, 0x10, 0xcf, 0x90, 0x40, 0xb3, 0xa9,
- 0x99, 0x64, 0x9a, 0x8f, 0xf0, 0xb7, 0x59, 0x8c, 0x73, 0x04, 0x09, 0x57,
- 0x83, 0x0e, 0x95, 0x46, 0x7c, 0x4d, 0x98, 0xb8, 0xf7, 0x12, 0x99, 0x5b,
- 0xc5, 0xde, 0x67, 0x59, 0x55, 0xf3, 0x97, 0xac, 0xe9, 0x2e, 0x00, 0x07,
- 0xe8, 0xa9, 0x4f, 0xca, 0x09, 0x5c, 0xa9, 0xf7, 0xfc, 0x68, 0x99, 0x96,
- 0xa2, 0x7a, 0xcf, 0x6f, 0xcc, 0xe4, 0x2e, 0x86, 0xa4, 0x6c, 0xbc, 0xac,
- 0x9b, 0xc8, 0x94, 0xa1, 0x53, 0x5a, 0x25, 0x03, 0x19, 0xd6, 0x26, 0x9c,
- 0x67, 0xba, 0x1f, 0xeb, 0x67, 0x66, 0x6e, 0xdf, 0x5f, 0xdf, 0x52, 0x87,
- 0xa2, 0xf8, 0x86, 0xf5, 0xe3, 0x2e, 0x14, 0x08, 0x1b, 0x73, 0x99, 0x09,
- 0x46, 0x5d, 0x5d, 0x98, 0x78, 0xd4, 0xd9, 0x3d, 0x51, 0x64, 0x39, 0xe9,
- 0xea, 0xfb, 0xb5, 0x94, 0xff, 0x0e, 0xba, 0x76, 0x86, 0x4d, 0xad, 0x0c,
- 0x5e, 0x45, 0x19, 0x27, 0x51, 0xcf, 0x30, 0x3d, 0x0c, 0x92, 0x03, 0x17,
- 0x7d, 0x6f, 0xaf, 0xda, 0xfa, 0x47, 0xa1, 0xf8, 0x88, 0x6e, 0xf3, 0xe8,
- 0x7f, 0x2c, 0xd5, 0xe3, 0x23, 0x97, 0x00, 0x19, 0xcd, 0xe2, 0xa6, 0x1c,
- 0x3d, 0xa5, 0x1f, 0xdf, 0xf0, 0x0f, 0x66, 0x40, 0xac, 0x78, 0x09, 0xe4,
- 0xb6, 0xa0, 0x76, 0xc5, 0x9c, 0x86, 0x4b, 0x4a, 0xe9, 0x0f, 0xdd, 0xf4,
- 0xca, 0x72, 0x6d, 0x38, 0x57, 0xc9, 0xd7, 0x6b, 0x81, 0xe7, 0xdc, 0xda,
- 0xe9, 0x99, 0xe5, 0x71, 0x6d, 0x65, 0xac, 0xd6, 0x50, 0x90, 0xa5, 0xa5,
- 0xd8, 0xcf, 0x50, 0xf4, 0x46, 0x5a, 0x84, 0x58, 0x34, 0xa1, 0xa5, 0xfa,
- 0x3b, 0x1b, 0xb2, 0x97, 0xa4, 0xc9, 0x10, 0x61, 0x8f, 0x61, 0x23, 0x9d,
- 0x39, 0x8e, 0x87, 0x2a, 0xce, 0x0e, 0xe1, 0x47, 0x30, 0x01, 0x61, 0xd2,
- 0x86, 0x8e, 0x1a, 0x4b, 0x7c, 0x76, 0x5e, 0x57, 0x4e, 0x59, 0x72, 0x5c,
- 0xe5, 0x47, 0x2b, 0xd3, 0xf5, 0xc1, 0xa5, 0x7a, 0xc5, 0x59, 0x84, 0x26,
- 0x06, 0xba, 0x3a, 0x80, 0x15, 0x92, 0xed, 0x64, 0xb3, 0x47, 0xcb, 0xdc,
- 0x4a, 0x2e, 0xe3, 0x61, 0xb5, 0xee, 0x4a, 0x62, 0xee, 0x8a, 0x71, 0x22,
- 0xcf, 0x11, 0x05, 0xb5, 0x90, 0xfc, 0x75, 0x63, 0x88, 0x30, 0xb3, 0x6c,
- 0xc6, 0x50, 0xa1, 0x3e, 0x75, 0x11, 0x62, 0x22, 0xf2, 0xcd, 0xd1, 0xf9,
- 0x0a, 0x0f, 0xe1, 0x84, 0xd3, 0xda, 0xd9, 0x56, 0x22, 0x59, 0x0c, 0xbf,
- 0x8b, 0xdc, 0x05, 0xd5, 0xfd, 0x7c, 0x7c, 0xfd, 0xea, 0xed, 0x70, 0x6d,
- 0x75, 0xec, 0x45, 0x63, 0x72, 0x78, 0xbe, 0x2c, 0xe6, 0x4c, 0x0c, 0x41,
- 0x48, 0x0a, 0x6b, 0x4d, 0x07, 0xc1, 0x77, 0xdd, 0xcd, 0x35, 0x5e, 0x30,
- 0x61, 0x00, 0x91, 0xd4, 0x62, 0xbb, 0xd1, 0x68, 0x4e, 0x5c, 0xa4, 0xfd,
- 0x94, 0x8f, 0x82, 0xd6, 0x7c, 0x5a, 0x5b, 0xe1, 0x8b, 0xe6, 0x6c, 0xaa,
- 0x6c, 0x62, 0x4d, 0x96, 0x28, 0xbc, 0xc8, 0xb0, 0x27, 0x31, 0x5d, 0x9f,
- 0xbd, 0x3d, 0xfa, 0xea, 0xd4, 0x7e, 0xfc, 0x92, 0x6d, 0x3e, 0x49, 0xcb,
- 0xab, 0xac, 0x03, 0x8e, 0x35, 0x5c, 0xa1, 0x06, 0x40, 0x54, 0xa0, 0x00,
- 0x10, 0xad, 0x4e, 0xf9, 0x75, 0x21, 0xd3, 0x9e, 0x52, 0x2b, 0x3e, 0x2a,
- 0x57, 0x4d, 0x89, 0x16, 0x65, 0xef, 0xab, 0x2f, 0xe3, 0x0b, 0xf2, 0xd5,
- 0xdb, 0x15, 0xdd, 0xf1, 0x37, 0x7d, 0x93, 0x87, 0xd4, 0x62, 0x1a, 0x20,
- 0x1d, 0xc4, 0x6b, 0xa1, 0x18, 0xdc, 0xdd, 0x03, 0x30, 0x80, 0xee, 0x47,
- 0xb8, 0x04, 0x3d, 0xa1, 0x3f, 0x1e, 0x7c, 0x50, 0xd1, 0xfe, 0xba, 0xbb,
- 0x62, 0x18, 0xc0, 0xcd, 0xa1, 0x14, 0x68, 0x3b, 0x97, 0xa8, 0xad, 0x33,
- 0x35, 0xe3, 0x6f, 0x75, 0x6c, 0xd1, 0x4a, 0xac, 0x41, 0x8f, 0x0e, 0x91,
- 0xa0, 0x86, 0xd7, 0x5a, 0xcc, 0x7c, 0xf6, 0xe4, 0xc7, 0xf6, 0x9e, 0x53,
- 0x87, 0x9d, 0x50, 0x8b, 0x43, 0xda, 0xcf, 0x63, 0x3e, 0xf4, 0x86, 0x84,
- 0x31, 0xbe, 0xaf, 0x1e, 0x3f, 0x19, 0x6e, 0x2b, 0xdc, 0x3b, 0xc9, 0xe6,
- 0x88, 0x2e, 0x41, 0x77, 0x6d, 0x4a, 0xc9, 0xab, 0xa7, 0xc0, 0x3c, 0xec,
- 0x6e, 0xee, 0xd9, 0x67, 0xcf, 0x9e, 0x6e, 0x6d, 0xf5, 0xd4, 0x1a, 0x68,
- 0xd9, 0x75, 0xec, 0x1c, 0x63, 0x56, 0xa0, 0xa5, 0xe8, 0x69, 0xcc, 0xd7,
- 0x52, 0xd2, 0xd0, 0x43, 0xbe, 0x74, 0x37, 0xc7, 0x57, 0x83, 0xbd, 0xca,
- 0xeb, 0xc2, 0x60, 0x1f, 0x60, 0x92, 0x0e, 0x70, 0x23, 0x35, 0x36, 0x53,
- 0xd1, 0xdd, 0xa6, 0x5e, 0xa3, 0x95, 0x07, 0x0d, 0xba, 0x85, 0x47, 0xbc,
- 0x11, 0x5f, 0x1d, 0x38, 0x93, 0x5d, 0x5e, 0x8c, 0x40, 0xfe, 0xfa, 0xf8,
- 0xe4, 0xc8, 0xf1, 0x91, 0xff, 0xda, 0x1e, 0xf0, 0x20, 0xcb, 0x71, 0xc4,
- 0x35, 0x45, 0x90, 0x0c, 0xb2, 0xd7, 0x7b, 0x09, 0x2a, 0x82, 0x7e, 0xd3,
- 0x13, 0x6d, 0x16, 0x1f, 0x7b, 0x8f, 0x01, 0x35, 0x7c, 0xf4, 0xf6, 0xdb,
- 0xe3, 0xf3, 0xd3, 0xb7, 0x6f, 0x8e, 0xde, 0xba, 0x2c, 0x11, 0xbe, 0x9e,
- 0xbb, 0xbc, 0xaa, 0x55, 0xec, 0xb0, 0xca, 0x39, 0xcf, 0x88, 0x05, 0x52,
- 0x76, 0x20, 0xf2, 0x2c, 0x68, 0xb7, 0xf4, 0xaf, 0x41, 0xd8, 0x5c, 0xf0,
- 0x90, 0xed, 0x1b, 0x13, 0xc9, 0x82, 0xa3, 0xbb, 0x27, 0x9c, 0x85, 0x37,
- 0x90, 0x94, 0x19, 0x71, 0x8e, 0xe5, 0xe2, 0xd8, 0xfd, 0x30, 0xce, 0xb4,
- 0x04, 0x41, 0x15, 0x94, 0x3c, 0xb4, 0x9c, 0x31, 0x9f, 0x59, 0xd7, 0x18,
- 0x84, 0x27, 0x35, 0x29, 0x09, 0xbf, 0xca, 0x43, 0x0c, 0x28, 0x8d, 0x3a,
- 0xf0, 0x25, 0x5e, 0xab, 0xa7, 0x4d, 0x50, 0x6e, 0xc5, 0xca, 0x1b, 0x96,
- 0x8c, 0xf0, 0x40, 0xb8, 0x16, 0x64, 0xd1, 0x56, 0xff, 0x83, 0x19, 0x34,
- 0xc2, 0x2f, 0x50, 0xeb, 0xe4, 0x73, 0x8d, 0xb5, 0x88, 0xa1, 0x1f, 0xab,
- 0xd0, 0xa1, 0x29, 0x44, 0x10, 0x00, 0x57, 0xc0, 0x11, 0xbc, 0x16, 0xde,
- 0xf5, 0xef, 0xcf, 0xce, 0x4f, 0xbf, 0xff, 0xe1, 0x9f, 0xdc, 0x45, 0x70,
- 0xb4, 0x7f, 0xe4, 0x1b, 0xcf, 0x1a, 0xff, 0xf9, 0x57, 0xf5, 0xf6, 0x60,
- 0x77, 0xcd, 0xf6, 0x7b, 0xcd, 0x5a, 0x0a, 0x91, 0xa9, 0x05, 0x8e, 0x4b,
- 0x41, 0xbf, 0xf7, 0x55, 0xe9, 0x2d, 0xe8, 0xda, 0x31, 0x07, 0x09, 0xb0,
- 0xaa, 0x5a, 0x58, 0xd3, 0xb1, 0x3a, 0x05, 0xe8, 0x74, 0x94, 0x45, 0xf4,
- 0xf2, 0x52, 0x58, 0x1c, 0xb1, 0x87, 0x5a, 0x1c, 0xb8, 0xff, 0xdd, 0x7a,
- 0x1c, 0x9c, 0x9c, 0xfc, 0xfa, 0x45, 0xb0, 0xd8, 0x85, 0xe6, 0x32, 0xc0,
- 0x00, 0xe2, 0x26, 0xd4, 0x77, 0x02, 0xae, 0x91, 0x7f, 0x07, 0x02, 0xa7,
- 0x1b, 0xce, 0xdb, 0x53, 0x1d, 0x8d, 0xb8, 0x49, 0xfb, 0x55, 0x46, 0x8a,
- 0x00, 0x3c, 0x54, 0xac, 0x72, 0xf1, 0xb5, 0xc8, 0x03, 0x8b, 0xca, 0x10,
- 0x87, 0x5f, 0x6a, 0xb9, 0x7b, 0xac, 0xa3, 0x20, 0x32, 0x21, 0x63, 0xbf,
- 0x70, 0x1e, 0x7e, 0xa9, 0x58, 0x83, 0x52, 0x64, 0x08, 0x21, 0xe9, 0x88,
- 0xcb, 0x60, 0xbb, 0x31, 0x47, 0x79, 0x95, 0x79, 0x75, 0x03, 0xb8, 0x03,
- 0x3e, 0x94, 0x5a, 0xac, 0xb7, 0x46, 0xe5, 0x72, 0xd6, 0x18, 0x30, 0x14,
- 0x1a, 0xbb, 0x8c, 0x98, 0xfe, 0xbd, 0x38, 0x3d, 0x3c, 0x3d, 0xa1, 0x5f,
- 0x8e, 0x5e, 0x1f, 0x7f, 0xef, 0x19, 0x9a, 0xd4, 0xb0, 0x51, 0xce, 0x6b,
- 0x0c, 0xc2, 0xd5, 0xb4, 0x89, 0x1d, 0xfe, 0x0a, 0xbb, 0xd1, 0x8e, 0x33,
- 0x5a, 0xf3, 0x51, 0x1e, 0x2e, 0xdc, 0x48, 0x7d, 0xde, 0x01, 0xce, 0xc7,
- 0x43, 0xd1, 0x45, 0x61, 0x54, 0x56, 0xb0, 0x43, 0xb8, 0x88, 0x43, 0xa6,
- 0xd7, 0xdc, 0x5b, 0x19, 0x14, 0xe4, 0xa9, 0xfc, 0xd2, 0x05, 0x23, 0x86,
- 0x06, 0x57, 0xb3, 0xb1, 0xa8, 0x91, 0x85, 0x6d, 0xc3, 0x1e, 0x25, 0x9b,
- 0x35, 0xee, 0x5e, 0x30, 0x49, 0x57, 0xdc, 0xdd, 0x87, 0x08, 0x69, 0x48,
- 0xc9, 0x5a, 0x18, 0xc6, 0xe2, 0x07, 0x0b, 0x6f, 0xb5, 0x6b, 0xae, 0x39,
- 0x27, 0x5d, 0x00, 0xcd, 0x14, 0x47, 0xae, 0x21, 0x02, 0x20, 0xbc, 0x02,
- 0xe4, 0x82, 0xa9, 0x3a, 0x50, 0x0b, 0x60, 0xf0, 0x83, 0x32, 0xf9, 0xb7,
- 0x65, 0x7e, 0x9b, 0x4a, 0x0d, 0xe1, 0x4b, 0x57, 0xe9, 0xa6, 0xd5, 0x46,
- 0xfa, 0xab, 0x1a, 0x49, 0x9b, 0xad, 0x3c, 0xfb, 0x35, 0x8d, 0x3c, 0x6b,
- 0xb5, 0x71, 0xfd, 0xab, 0x1a, 0x71, 0xb5, 0xd8, 0xe8, 0x5a, 0xfc, 0xfe,
- 0xf8, 0x22, 0x39, 0x3c, 0x7d, 0xe5, 0x69, 0xf4, 0xc2, 0x5d, 0xed, 0x29,
- 0xc9, 0x35, 0x24, 0x8c, 0xc3, 0xbe, 0x86, 0x5a, 0xb4, 0x61, 0x11, 0x76,
- 0xf1, 0xdd, 0xa9, 0x2d, 0xec, 0x3a, 0xcb, 0xf1, 0x51, 0x29, 0xae, 0xbd,
- 0xd0, 0x07, 0xd8, 0xac, 0xeb, 0xeb, 0x22, 0xa0, 0x98, 0xb2, 0xb9, 0x24,
- 0x43, 0x5a, 0x1a, 0xf8, 0xca, 0x28, 0x65, 0xdf, 0xf3, 0x5c, 0x1c, 0xf6,
- 0xac, 0x09, 0xd4, 0xae, 0x08, 0x37, 0x8d, 0x60, 0xcd, 0xc9, 0xb6, 0x0a,
- 0x1e, 0x83, 0xd8, 0x2d, 0x51, 0xff, 0xf3, 0x5a, 0x47, 0xd3, 0x48, 0x3d,
- 0xdf, 0x55, 0x4e, 0x38, 0x6f, 0x50, 0x8c, 0x16, 0xe3, 0x80, 0xe4, 0xc5,
- 0x52, 0x1b, 0x7c, 0x59, 0x38, 0x8f, 0x7c, 0x2f, 0xce, 0x9d, 0x2e, 0xaf,
- 0x75, 0x82, 0x23, 0x16, 0xe5, 0x9a, 0x70, 0xfd, 0xec, 0xc9, 0x8f, 0xd7,
- 0x52, 0xb6, 0x9e, 0xce, 0x9f, 0xe6, 0x2c, 0xe7, 0x7f, 0x0f, 0xee, 0xe8,
- 0x27, 0x3e, 0x5c, 0x67, 0x96, 0x4e, 0x25, 0x88, 0x4a, 0xc2, 0x46, 0x49,
- 0xdf, 0xa9, 0xd3, 0x0f, 0x88, 0x7b, 0x63, 0x91, 0x08, 0x6b, 0x38, 0x0e,
- 0xd8, 0xe0, 0x53, 0x65, 0xce, 0x89, 0xa9, 0xf6, 0x72, 0xfe, 0xcc, 0x65,
- 0xe0, 0x73, 0x6b, 0x2d, 0x7a, 0x96, 0x83, 0x7d, 0x14, 0xb3, 0x4b, 0x5c,
- 0x14, 0x15, 0x57, 0x05, 0xee, 0x76, 0xb0, 0xbb, 0x6e, 0x0d, 0xe7, 0xa9,
- 0x90, 0x08, 0x7b, 0x44, 0x57, 0xe4, 0xe3, 0x1c, 0x41, 0x5b, 0x93, 0xbc,
- 0x52, 0x10, 0x28, 0xee, 0x0a, 0x8b, 0xd6, 0x5f, 0x61, 0xaf, 0x2d, 0x1a,
- 0x25, 0xed, 0x4d, 0xfe, 0x98, 0x14, 0x58, 0x49, 0x09, 0x47, 0xe3, 0x9a,
- 0xa8, 0xf4, 0xc5, 0xbd, 0x38, 0xcd, 0xd3, 0x79, 0xd1, 0x01, 0x20, 0xe5,
- 0x36, 0x46, 0x95, 0x60, 0xaf, 0x71, 0x3e, 0x93, 0x1f, 0x87, 0xc6, 0xcb,
- 0xad, 0x2e, 0x9a, 0x31, 0x71, 0x18, 0x7c, 0xc4, 0xf0, 0x68, 0x5c, 0x4b,
- 0x6a, 0x00, 0x8e, 0x25, 0x57, 0x91, 0xe7, 0x1a, 0x87, 0xb4, 0x68, 0x2b,
- 0x81, 0xea, 0xf1, 0xc9, 0x8a, 0x7e, 0xb8, 0x31, 0xd9, 0x37, 0xe9, 0xa4,
- 0x9d, 0xe4, 0xc2, 0xed, 0xc7, 0xad, 0x7d, 0xda, 0x26, 0x11, 0x4b, 0x38,
- 0x61, 0x98, 0xd4, 0x22, 0x4c, 0x3d, 0xfb, 0x4c, 0x9f, 0x64, 0x2b, 0xc4,
- 0x5d, 0xc6, 0x96, 0x23, 0x17, 0x1c, 0x5d, 0x66, 0x8b, 0xa9, 0x9b, 0xa2,
- 0x7d, 0x88, 0x4c, 0x37, 0x38, 0x23, 0xb1, 0xe2, 0x63, 0x1d, 0x6f, 0x1c,
- 0x80, 0x17, 0x0a, 0x8c, 0xcf, 0x7d, 0x27, 0x29, 0x72, 0x93, 0x88, 0x48,
- 0xe6, 0xb9, 0x23, 0x48, 0xad, 0x6e, 0x8c, 0x8f, 0x38, 0xbb, 0x9e, 0xae,
- 0x81, 0xc2, 0xfd, 0x6d, 0x6f, 0xc4, 0x81, 0x3c, 0x72, 0x53, 0xf8, 0xb4,
- 0x07, 0xac, 0xc3, 0xb2, 0x14, 0x8c, 0x1b, 0x5f, 0xa7, 0xc4, 0x02, 0x31,
- 0x64, 0x21, 0x4a, 0xc6, 0x11, 0x1d, 0x24, 0x6f, 0xe2, 0x9c, 0xe9, 0xe2,
- 0xb2, 0x56, 0xa0, 0x38, 0xb6, 0xb4, 0x4f, 0x82, 0x9a, 0x5c, 0xb8, 0x92,
- 0x7d, 0x83, 0x38, 0x01, 0xee, 0xde, 0x41, 0x00, 0x66, 0x12, 0x83, 0x01,
- 0xf8, 0xba, 0xcd, 0x7e, 0x1d, 0x76, 0x77, 0xdb, 0x8b, 0x7d, 0x76, 0x30,
- 0x1c, 0xda, 0x42, 0x1f, 0x86, 0x0b, 0x2a, 0x4b, 0xa8, 0xb9, 0x41, 0xc0,
- 0xd1, 0x54, 0xc8, 0x9c, 0x58, 0xdd, 0xd1, 0x36, 0x5a, 0x39, 0x85, 0xbb,
- 0x4f, 0x5c, 0x5f, 0xae, 0xab, 0x6f, 0xa5, 0xad, 0xde, 0x47, 0x76, 0xd5,
- 0xdd, 0xd7, 0xb7, 0x1d, 0x7d, 0x3d, 0x8d, 0x88, 0x68, 0x6f, 0xef, 0x53,
- 0x03, 0xa0, 0x19, 0x68, 0x15, 0x7b, 0xdf, 0x61, 0xd0, 0x23, 0x3d, 0xd7,
- 0x57, 0x10, 0xd7, 0xac, 0xa3, 0xb2, 0x18, 0xfc, 0x68, 0xf3, 0xb0, 0xab,
- 0x67, 0xae, 0x2b, 0xd2, 0x99, 0x36, 0xe0, 0x34, 0xd3, 0x43, 0x12, 0x9d,
- 0x1d, 0x57, 0xbb, 0xf0, 0x98, 0xd7, 0x80, 0xc4, 0xb0, 0xda, 0x05, 0x01,
- 0xb5, 0xba, 0xb2, 0x51, 0x04, 0xfd, 0x7c, 0xea, 0xa7, 0xe4, 0xc7, 0xcd,
- 0x8a, 0x8d, 0x62, 0xd2, 0x0d, 0x82, 0xc3, 0xea, 0x08, 0xc5, 0xf2, 0x12,
- 0x5c, 0xb8, 0x5c, 0x9b, 0xcf, 0xc8, 0xab, 0xbe, 0x17, 0x39, 0x7e, 0x67,
- 0x4c, 0xc4, 0x5a, 0x13, 0x68, 0x90, 0x9c, 0x42, 0x09, 0x6b, 0x60, 0x07,
- 0x43, 0x95, 0xe5, 0xe3, 0xee, 0xaa, 0x3d, 0x84, 0xa7, 0x7d, 0xf7, 0xb9,
- 0x5f, 0x13, 0x1b, 0x92, 0x39, 0x2d, 0xb7, 0xf5, 0xf8, 0x78, 0xff, 0x88,
- 0xc5, 0x24, 0x64, 0x88, 0x10, 0xe1, 0x6c, 0x33, 0x00, 0x62, 0x46, 0x68,
- 0x86, 0x74, 0xa4, 0xb6, 0x9c, 0x6b, 0xe1, 0x12, 0x9c, 0x24, 0xb8, 0x83,
- 0x3c, 0x25, 0xff, 0x6d, 0xc9, 0x0c, 0x09, 0xb7, 0x2e, 0x43, 0x8d, 0xc9,
- 0x9f, 0xf6, 0x9e, 0xe0, 0xd3, 0x70, 0xe9, 0x30, 0xdc, 0xca, 0x3e, 0x21,
- 0x4b, 0x4f, 0x86, 0x5b, 0x7f, 0x9f, 0x1d, 0x2b, 0x75, 0x3a, 0x84, 0x71,
- 0x3a, 0x8c, 0x8a, 0x81, 0xcb, 0x69, 0x36, 0xbc, 0x16, 0xc0, 0xa2, 0x28,
- 0x03, 0x14, 0x94, 0x87, 0xc8, 0x63, 0xe4, 0x3a, 0x57, 0xa6, 0xaf, 0x83,
- 0x68, 0x46, 0x26, 0x06, 0xd2, 0x85, 0xd6, 0xb3, 0xa1, 0x2b, 0x70, 0x67,
- 0xa7, 0x03, 0x05, 0x21, 0x1d, 0x15, 0xb7, 0x16, 0xe1, 0xab, 0xb8, 0x3b,
- 0x78, 0x4b, 0x94, 0x66, 0x88, 0x16, 0x15, 0x8b, 0xa9, 0xfd, 0x4b, 0xb6,
- 0x09, 0xf0, 0x8a, 0x99, 0x47, 0x28, 0x58, 0x37, 0x39, 0x95, 0xdf, 0x01,
- 0x07, 0xc8, 0x16, 0xad, 0x75, 0x1c, 0x05, 0x24, 0xc8, 0x4a, 0x79, 0xa4,
- 0x41, 0xbd, 0x28, 0x8d, 0x92, 0x88, 0x46, 0x16, 0x85, 0x32, 0xed, 0x3d,
- 0x8b, 0x29, 0x62, 0x78, 0x71, 0x7a, 0xae, 0x14, 0x16, 0x73, 0x5d, 0x4d,
- 0xc2, 0xe4, 0x47, 0x7c, 0x94, 0x73, 0xaf, 0x2b, 0x10, 0xd3, 0x0c, 0xf2,
- 0x92, 0x5f, 0x4b, 0xcb, 0x15, 0xf4, 0x2a, 0x97, 0x18, 0x22, 0x2b, 0x75,
- 0x6a, 0xdf, 0xaa, 0x05, 0xde, 0x6a, 0x0a, 0x59, 0x81, 0xf2, 0xe0, 0x25,
- 0x39, 0x68, 0xa7, 0x4b, 0x10, 0xbb, 0x18, 0x8c, 0x99, 0x8e, 0xd4, 0x74,
- 0xcc, 0x41, 0xc5, 0x6a, 0x4d, 0x73, 0xae, 0xc1, 0x36, 0x2d, 0xca, 0x21,
- 0x3a, 0x75, 0x55, 0xa3, 0x2c, 0x8c, 0xc0, 0xdd, 0x5d, 0x5e, 0x75, 0x85,
- 0xdb, 0x9a, 0x1d, 0x4e, 0x12, 0x94, 0xa1, 0x49, 0xb7, 0x29, 0x67, 0xb1,
- 0xb4, 0x77, 0xdb, 0x62, 0xcb, 0x2c, 0x9a, 0x2c, 0x10, 0x15, 0xbd, 0x94,
- 0xb5, 0xe3, 0xd6, 0xf9, 0xec, 0xf4, 0xfc, 0xc2, 0x86, 0x86, 0x6e, 0xf1,
- 0x41, 0xeb, 0xfc, 0x30, 0xe6, 0x9c, 0xe2, 0x24, 0x81, 0xb3, 0xc8, 0x26,
- 0x44, 0x5a, 0xa9, 0x4a, 0x84, 0xb2, 0x29, 0x68, 0xc7, 0x1a, 0x62, 0x9d,
- 0xad, 0xbc, 0xb7, 0xa8, 0x32, 0xc0, 0x64, 0x1b, 0xcf, 0x11, 0x33, 0x0a,
- 0x33, 0xe8, 0x6e, 0x77, 0xaf, 0x97, 0x69, 0x9e, 0xec, 0xc6, 0xd4, 0xc1,
- 0xca, 0xf3, 0xf9, 0x11, 0x97, 0xb0, 0xbf, 0xb8, 0x96, 0xdf, 0xa2, 0xb1,
- 0x8b, 0x15, 0x57, 0x3f, 0xec, 0x0e, 0x52, 0x01, 0x75, 0x70, 0x76, 0x14,
- 0x87, 0xec, 0x73, 0xfb, 0xce, 0xaa, 0x1c, 0xac, 0xd9, 0x93, 0x20, 0x13,
- 0x1e, 0x6c, 0x53, 0x69, 0x05, 0x99, 0xd5, 0xf8, 0x60, 0x5d, 0x7b, 0x59,
- 0xa7, 0x5b, 0x57, 0x8e, 0x04, 0x63, 0x65, 0xfb, 0x16, 0x9e, 0xfa, 0x16,
- 0x16, 0xcc, 0xdf, 0xb5, 0x81, 0x63, 0xf3, 0xae, 0xf3, 0x87, 0x2e, 0xe8,
- 0xf9, 0x2a, 0x9b, 0x1b, 0x61, 0xc8, 0x73, 0xbe, 0x9d, 0x67, 0xce, 0x7b,
- 0x64, 0xf2, 0x51, 0x30, 0x14, 0xfe, 0xd8, 0x12, 0x90, 0x11, 0xc2, 0xd7,
- 0x22, 0xbb, 0x27, 0x9f, 0xf8, 0x1b, 0x82, 0x55, 0x09, 0x1f, 0x27, 0xa2,
- 0x2b, 0x10, 0xdc, 0x48, 0x1c, 0x67, 0x93, 0xcf, 0x97, 0x19, 0x8c, 0x66,
- 0x69, 0x39, 0x65, 0x30, 0x77, 0x0d, 0xf4, 0x88, 0xdc, 0xd2, 0x9a, 0x4c,
- 0xef, 0xfb, 0xd1, 0x9b, 0xe8, 0xf8, 0xe4, 0xc8, 0x6f, 0x97, 0xc0, 0xc0,
- 0xe3, 0x30, 0x7b, 0x21, 0x8f, 0x0e, 0xee, 0xdc, 0x5d, 0x17, 0x83, 0xe4,
- 0x8c, 0x6b, 0xf8, 0xc1, 0xfd, 0x54, 0xfd, 0x9b, 0x6f, 0x4d, 0x0e, 0x0b,
- 0x8c, 0x31, 0x74, 0x81, 0xc2, 0x28, 0x9a, 0xcf, 0x69, 0x77, 0xf1, 0x09,
- 0xff, 0x1a, 0x94, 0x5f, 0x8b, 0xa6, 0xfc, 0xdc, 0xbf, 0x5c, 0xd1, 0x3c,
- 0x48, 0x55, 0x6b, 0x3f, 0xf2, 0x54, 0x69, 0x8b, 0xf4, 0x38, 0x34, 0xe1,
- 0xd8, 0x33, 0x9f, 0xe9, 0x52, 0xca, 0xa4, 0x4c, 0xa4, 0x85, 0x4b, 0x7b,
- 0xa6, 0xc1, 0xc6, 0x83, 0xa6, 0xe4, 0x52, 0x38, 0x90, 0x75, 0x42, 0xb2,
- 0x01, 0x9d, 0x1c, 0x76, 0x96, 0x50, 0x5b, 0x73, 0xe6, 0xb8, 0x53, 0x87,
- 0xf1, 0x1b, 0xa6, 0x8d, 0x61, 0x61, 0x15, 0x7b, 0x31, 0x86, 0x10, 0x6e,
- 0x15, 0x24, 0x7c, 0x2a, 0xd4, 0xe8, 0x48, 0xc7, 0xdd, 0x63, 0x8d, 0xd1,
- 0x71, 0xc7, 0x3e, 0xe9, 0x8a, 0x77, 0x9b, 0x4d, 0x43, 0x74, 0xcb, 0x87,
- 0xd2, 0xdd, 0xd3, 0x67, 0xbe, 0xa9, 0x4b, 0x54, 0x4a, 0x30, 0xfe, 0x7e,
- 0xd0, 0xe0, 0x41, 0xae, 0x4c, 0x42, 0xee, 0x9e, 0x14, 0x65, 0x41, 0x2c,
- 0xd4, 0x1d, 0xc7, 0x2a, 0xe8, 0x43, 0x88, 0xe1, 0xa2, 0xe0, 0x88, 0x89,
- 0xf9, 0xbd, 0x07, 0x5b, 0x19, 0x48, 0x0c, 0xa2, 0xd8, 0x20, 0xa4, 0x66,
- 0x88, 0x83, 0x61, 0x11, 0x6d, 0x53, 0x15, 0xf4, 0x59, 0xfa, 0x21, 0xba,
- 0xea, 0x67, 0xcb, 0x99, 0x62, 0x4c, 0x04, 0x3d, 0x7d, 0xa6, 0xda, 0xec,
- 0xcd, 0x9c, 0x48, 0xd2, 0xeb, 0x7f, 0x21, 0x33, 0x2d, 0x9c, 0x8b, 0xd8,
- 0x65, 0x6a, 0x4a, 0x50, 0x77, 0xe5, 0x2a, 0xa4, 0x75, 0x80, 0xb9, 0xf3,
- 0x85, 0xac, 0x62, 0xa2, 0x05, 0x45, 0x16, 0x01, 0x46, 0x28, 0xaf, 0xb7,
- 0x3e, 0x26, 0x5f, 0x3d, 0xe0, 0xb3, 0x2f, 0xb3, 0xbf, 0xa2, 0x32, 0xe9,
- 0x40, 0x2e, 0x1d, 0x01, 0xe9, 0x92, 0x59, 0x72, 0xc8, 0x82, 0x67, 0x79,
- 0x4f, 0x9f, 0xab, 0xa9, 0x42, 0x55, 0x61, 0xab, 0x96, 0xd9, 0xb6, 0x34,
- 0x3f, 0xdb, 0xf5, 0xe9, 0x24, 0x59, 0x56, 0x6e, 0x54, 0xc2, 0x1d, 0x02,
- 0x60, 0x07, 0x62, 0x70, 0xc3, 0xe1, 0xd7, 0xc9, 0x9b, 0x57, 0xcf, 0x38,
- 0xb5, 0xf8, 0x2a, 0x2b, 0xb9, 0x12, 0xad, 0xd7, 0xc5, 0x4e, 0xbf, 0x09,
- 0x1a, 0xdb, 0x0b, 0x63, 0x02, 0x44, 0x7f, 0x52, 0x86, 0xa6, 0x92, 0x36,
- 0x6d, 0x21, 0x43, 0x14, 0x5e, 0x99, 0x0b, 0xc5, 0x50, 0xc5, 0x0d, 0xbb,
- 0x13, 0xb2, 0x4b, 0x3b, 0x37, 0xa5, 0xc9, 0xc4, 0x9e, 0x3d, 0xf1, 0x4c,
- 0xac, 0xbc, 0x5f, 0x70, 0xa5, 0x84, 0xf9, 0x15, 0x0b, 0xd4, 0x1d, 0x27,
- 0xea, 0x99, 0x30, 0xce, 0x43, 0x39, 0xf7, 0x2c, 0xcc, 0xc6, 0xaf, 0x01,
- 0x26, 0x11, 0xde, 0x8e, 0xe0, 0xbd, 0x67, 0xa1, 0x3a, 0x49, 0x02, 0x39,
- 0xee, 0x45, 0xad, 0x61, 0x00, 0x49, 0x25, 0x78, 0xf6, 0x13, 0xf7, 0x2c,
- 0xdb, 0x0e, 0xf2, 0x79, 0x50, 0x4d, 0x66, 0xc5, 0x1b, 0x2a, 0x04, 0x8b,
- 0x68, 0xe0, 0xc5, 0x33, 0x91, 0x7b, 0x82, 0xb5, 0x0f, 0x5e, 0x79, 0xde,
- 0xd4, 0x96, 0x51, 0xea, 0xd0, 0x11, 0x26, 0x26, 0x95, 0x2f, 0xae, 0xc3,
- 0xc3, 0xf9, 0x89, 0xdc, 0xd4, 0x67, 0x6d, 0x9c, 0x0e, 0xe3, 0x81, 0x59,
- 0xe8, 0xbb, 0xb3, 0xa3, 0x2e, 0xa4, 0x7f, 0x78, 0x90, 0xd8, 0x2b, 0x51,
- 0x71, 0x79, 0xa6, 0xf5, 0xa0, 0x93, 0x5d, 0x3d, 0x33, 0x34, 0xe5, 0xe2,
- 0x6a, 0x9e, 0xff, 0xdd, 0x80, 0x46, 0xf9, 0x7e, 0xb6, 0x4a, 0x40, 0xc1,
- 0xe3, 0x7b, 0xca, 0x30, 0x6e, 0xd3, 0x69, 0xae, 0x4c, 0x91, 0xed, 0xe8,
- 0xfe, 0x81, 0x27, 0x4a, 0xb5, 0x1f, 0x72, 0x3e, 0xa2, 0x12, 0x29, 0xcb,
- 0x35, 0xe1, 0xd8, 0x83, 0x93, 0x35, 0x60, 0x5f, 0x3e, 0x79, 0xaa, 0xb2,
- 0x97, 0xc9, 0xc7, 0x7c, 0x2f, 0xf1, 0x42, 0x4c, 0x01, 0x11, 0xdf, 0x66,
- 0xd3, 0x9f, 0xe8, 0xd5, 0xa7, 0x5b, 0xe9, 0xaa, 0x01, 0x95, 0x56, 0xc8,
- 0x8a, 0x7f, 0xbd, 0xcb, 0xe7, 0x9a, 0x2d, 0x16, 0xbd, 0xfe, 0xc9, 0x0a,
- 0x13, 0x54, 0x25, 0xf7, 0xe6, 0x11, 0x68, 0x29, 0x78, 0xfe, 0x53, 0x7f,
- 0x12, 0x1a, 0xf0, 0xfa, 0x96, 0x01, 0x85, 0xd8, 0x3d, 0x2b, 0xc2, 0x62,
- 0x67, 0x89, 0x55, 0x97, 0x05, 0xec, 0xb4, 0xf3, 0x49, 0x57, 0x6a, 0xe6,
- 0xa5, 0xeb, 0x7e, 0x5a, 0x30, 0x37, 0x0d, 0xfa, 0x13, 0x92, 0x7a, 0x8d,
- 0xca, 0x9a, 0x5e, 0x41, 0x98, 0x37, 0x0a, 0xe0, 0xf9, 0xa7, 0x9f, 0x2b,
- 0x6d, 0xd8, 0x7d, 0x69, 0x62, 0xea, 0xca, 0x37, 0x3e, 0xdd, 0x09, 0x85,
- 0xd6, 0x09, 0x5b, 0xea, 0x05, 0x70, 0x73, 0xe5, 0x0b, 0x42, 0x19, 0xc7,
- 0x74, 0x8d, 0x5c, 0x11, 0x51, 0xe3, 0x19, 0x0f, 0xfb, 0xec, 0x1f, 0xdb,
- 0x6b, 0x30, 0xdd, 0x8b, 0x50, 0x84, 0x4a, 0x8e, 0x5f, 0x05, 0x0f, 0x3e,
- 0xf1, 0x13, 0x4c, 0xa7, 0x2c, 0x0d, 0xdc, 0x8b, 0x25, 0xa2, 0xd2, 0x1a,
- 0x84, 0xc1, 0xa3, 0x4f, 0x35, 0xe1, 0x47, 0xa2, 0x5d, 0xb0, 0xfc, 0xd1,
- 0x33, 0x42, 0x0e, 0x87, 0xc8, 0xd1, 0xab, 0x81, 0x4f, 0x31, 0x37, 0x6f,
- 0x41, 0x7b, 0xef, 0x3f, 0xfd, 0xe4, 0x81, 0x67, 0xf5, 0xd2, 0xac, 0xdc,
- 0x55, 0x1f, 0xbc, 0xf7, 0x69, 0x7c, 0xcc, 0x4d, 0x2d, 0x30, 0x18, 0x1d,
- 0x3a, 0x6a, 0x7c, 0xd2, 0x92, 0x4d, 0x86, 0x5f, 0xfc, 0x37, 0x33, 0xfd,
- 0x94, 0x9c, 0xab, 0x58, 0xfd, 0x5b, 0x38, 0xde, 0xcf, 0x42, 0x2c, 0x1e,
- 0x31, 0xfa, 0xb8, 0x3a, 0xd8, 0x61, 0x75, 0x4c, 0x1f, 0x51, 0x8e, 0xd5,
- 0x09, 0x5a, 0x90, 0x3d, 0x27, 0x39, 0x62, 0x39, 0xf7, 0x9c, 0x43, 0x94,
- 0x41, 0x85, 0x30, 0xb5, 0xd8, 0x6e, 0x1d, 0xdd, 0xd7, 0xb4, 0xa9, 0xa0,
- 0x8e, 0xc0, 0x78, 0xb6, 0xd3, 0x3a, 0x06, 0xd5, 0xf5, 0x52, 0x54, 0x6f,
- 0x37, 0x23, 0x0f, 0x9d, 0x15, 0xbc, 0xb6, 0xe7, 0xb9, 0x17, 0xc6, 0x06,
- 0xa9, 0xf1, 0x90, 0x46, 0x2b, 0xba, 0x79, 0x02, 0x32, 0x34, 0xc7, 0xc7,
- 0x5d, 0x59, 0xf0, 0xaf, 0x06, 0xe6, 0xbb, 0x99, 0xae, 0x00, 0x3b, 0x53,
- 0x64, 0x9b, 0xa0, 0x1b, 0x15, 0x6d, 0x38, 0x20, 0x9e, 0x76, 0xe9, 0x3a,
- 0x1b, 0xdf, 0xd8, 0x91, 0xd9, 0x4c, 0x5b, 0x78, 0x38, 0xc1, 0x5b, 0x4f,
- 0xdd, 0xd2, 0x42, 0xad, 0x39, 0x3f, 0x6a, 0x6b, 0x02, 0xfe, 0x51, 0xa1,
- 0x9a, 0xf3, 0x8b, 0xe1, 0xd9, 0x3e, 0x8f, 0x59, 0x5c, 0x30, 0x74, 0x20,
- 0x0e, 0x87, 0xd9, 0xdf, 0x34, 0x27, 0xba, 0xf2, 0x4f, 0x7f, 0xb2, 0xe2,
- 0xe9, 0xa1, 0xc6, 0x48, 0x1d, 0x4f, 0x98, 0xfd, 0xd2, 0x3e, 0x84, 0x2f,
- 0x7d, 0xaa, 0xe8, 0x12, 0x66, 0xda, 0x15, 0xcb, 0x11, 0x8f, 0xcc, 0xa5,
- 0xd4, 0xf8, 0x87, 0x3f, 0xf3, 0x7a, 0xcd, 0xf5, 0x72, 0x7e, 0xe3, 0xe4,
- 0x45, 0x0d, 0x60, 0xb3, 0x0d, 0xf6, 0x2f, 0x3c, 0xb7, 0xa3, 0x11, 0x20,
- 0x9c, 0x39, 0xf7, 0x77, 0x4f, 0x2d, 0x15, 0x16, 0xb3, 0x2a, 0xbe, 0x23,
- 0xe2, 0xaf, 0xcb, 0x60, 0x0d, 0x9e, 0xef, 0xb8, 0xeb, 0x77, 0xb1, 0x1c,
- 0x91, 0x40, 0x9a, 0xdc, 0x64, 0xf7, 0xad, 0x82, 0xf5, 0xec, 0x08, 0xc8,
- 0xe7, 0x6c, 0x88, 0xf0, 0x8f, 0xb8, 0x06, 0xbe, 0xff, 0x5e, 0x78, 0xbc,
- 0x8b, 0xa0, 0x52, 0xd7, 0x82, 0xab, 0x21, 0x4d, 0x0c, 0x51, 0xc4, 0x02,
- 0x3e, 0x5e, 0xb0, 0xc7, 0x97, 0xd9, 0x34, 0x63, 0xd0, 0x74, 0xd1, 0x53,
- 0x40, 0xd8, 0x5d, 0x29, 0x98, 0x1c, 0x63, 0x0c, 0xb7, 0x0a, 0x67, 0x3a,
- 0xc3, 0xa0, 0x37, 0xe7, 0xc0, 0x54, 0x35, 0x56, 0xd1, 0x8e, 0x1f, 0xbc,
- 0xbb, 0xf8, 0xfa, 0xf4, 0x7c, 0x98, 0x6c, 0x33, 0x9a, 0xe5, 0xc5, 0xf9,
- 0xf1, 0x97, 0xef, 0x48, 0xff, 0x77, 0x6e, 0x99, 0x57, 0xe9, 0x3c, 0xa7,
- 0x9b, 0x63, 0x58, 0x67, 0x73, 0xda, 0xc7, 0x2b, 0xab, 0x53, 0x2a, 0x55,
- 0x4e, 0xe8, 0xae, 0x2c, 0x4a, 0x29, 0x91, 0x85, 0xf4, 0xb8, 0xeb, 0x42,
- 0x37, 0x43, 0x82, 0x2d, 0x39, 0xad, 0x80, 0xb3, 0x35, 0x0a, 0xaf, 0xdb,
- 0xe6, 0x2d, 0x30, 0x4e, 0xf3, 0xae, 0x26, 0x17, 0x5f, 0x1f, 0xbc, 0xfd,
- 0x66, 0x68, 0x15, 0x01, 0xbe, 0xfb, 0xee, 0xbb, 0xd0, 0xeb, 0xbf, 0xbf,
- 0xbd, 0x0d, 0xf1, 0xf2, 0x3a, 0xfd, 0xf0, 0x61, 0x50, 0x65, 0x6b, 0x6b,
- 0xaf, 0xbd, 0xaf, 0xce, 0x57, 0x99, 0xad, 0x96, 0x24, 0x59, 0xd0, 0xd7,
- 0xdb, 0xb4, 0xbe, 0x5c, 0xd5, 0x76, 0x7b, 0x59, 0xe7, 0x53, 0xba, 0x90,
- 0xb2, 0x0a, 0x6f, 0x6f, 0xaf, 0xad, 0x0d, 0x8f, 0x8e, 0x92, 0x83, 0x93,
- 0xe1, 0x69, 0xf0, 0xee, 0xe6, 0x2e, 0x47, 0xae, 0x5c, 0x65, 0xf5, 0x26,
- 0x03, 0xc3, 0x9e, 0x1c, 0x5c, 0xb0, 0xce, 0xfb, 0xed, 0xd1, 0xf9, 0xf0,
- 0xf8, 0xf4, 0x2d, 0xef, 0x0e, 0x07, 0x2c, 0xa6, 0xd3, 0x3b, 0x8e, 0x57,
- 0xbd, 0xcc, 0x81, 0xd2, 0x73, 0x67, 0x25, 0x63, 0xdb, 0x90, 0xfb, 0x74,
- 0x5f, 0xdd, 0x31, 0x5c, 0xb6, 0x06, 0x3a, 0x70, 0xe0, 0x3a, 0xad, 0x84,
- 0x45, 0x22, 0xae, 0x25, 0xde, 0xee, 0x25, 0x68, 0xbe, 0xd9, 0x48, 0xc2,
- 0xab, 0x7b, 0x82, 0x6d, 0x81, 0xf4, 0x96, 0x20, 0x6e, 0xb2, 0x73, 0xe2,
- 0xc3, 0x63, 0xae, 0xca, 0x92, 0xbc, 0x1b, 0x1e, 0x7c, 0x75, 0xc4, 0x8f,
- 0x7e, 0x95, 0xd5, 0x7e, 0x3f, 0xa4, 0xb4, 0x2d, 0x77, 0xf2, 0x36, 0xab,
- 0xab, 0x71, 0xba, 0xe0, 0x14, 0x7e, 0xea, 0xa6, 0x2f, 0xf7, 0x50, 0xd0,
- 0xb6, 0xe8, 0x02, 0xbe, 0xfe, 0xef, 0x5c, 0x9f, 0x47, 0x71, 0xde, 0xb0,
- 0xdd, 0xf3, 0xa3, 0x83, 0x57, 0x6f, 0x8e, 0x2c, 0x40, 0x5f, 0x2a, 0x61,
- 0x50, 0xa3, 0xd7, 0xc5, 0x2c, 0x0b, 0x6c, 0xe1, 0x2c, 0x1b, 0xf0, 0xe2,
- 0xd3, 0x37, 0x5c, 0x1d, 0xb7, 0xbb, 0x3b, 0xbf, 0x51, 0x78, 0x76, 0x70,
- 0x99, 0x6f, 0x4b, 0xeb, 0xd6, 0x5f, 0xea, 0x96, 0x44, 0x26, 0x91, 0x9a,
- 0xb8, 0x2c, 0x36, 0x0d, 0x18, 0x43, 0x3e, 0xdb, 0xd9, 0xd9, 0x79, 0x60,
- 0x1e, 0xd0, 0x27, 0xf4, 0xd6, 0xa5, 0xa9, 0xec, 0xf3, 0xe3, 0xdb, 0xbe,
- 0x7d, 0x3f, 0xe2, 0xa9, 0xe2, 0x25, 0x70, 0x01, 0xbb, 0xb9, 0xa0, 0xf2,
- 0xe6, 0x75, 0xd6, 0x3d, 0xe4, 0x71, 0x51, 0xb8, 0x1d, 0x68, 0x2c, 0x0e,
- 0x49, 0xc8, 0x90, 0x78, 0x34, 0xb2, 0x13, 0x6f, 0xc8, 0xc0, 0x49, 0xff,
- 0x41, 0x34, 0x5b, 0x79, 0xdf, 0x6e, 0x92, 0xbf, 0xa1, 0x36, 0xf9, 0xc7,
- 0xa0, 0x28, 0xaf, 0xb6, 0x67, 0xfb, 0x10, 0x69, 0xe8, 0xa1, 0xd7, 0x0c,
- 0xa3, 0x92, 0x90, 0x68, 0xec, 0x82, 0xd2, 0x2b, 0x5e, 0x58, 0xce, 0x9f,
- 0xf9, 0x88, 0x71, 0xfd, 0x82, 0x55, 0x90, 0x88, 0xa8, 0x4b, 0x9b, 0xb9,
- 0x55, 0xb1, 0xec, 0xe8, 0xa4, 0xe2, 0x0d, 0x63, 0x8b, 0xe3, 0x80, 0x18,
- 0x08, 0xf5, 0xc2, 0xe1, 0x6e, 0x20, 0x11, 0xfa, 0xb5, 0x24, 0x92, 0x19,
- 0xd4, 0x1f, 0xc0, 0x77, 0xb5, 0xa0, 0xaa, 0x80, 0x4a, 0xb2, 0x07, 0x77,
- 0xc1, 0x49, 0xae, 0x25, 0x6a, 0xb1, 0xa0, 0x07, 0x4e, 0x9c, 0x25, 0xce,
- 0x73, 0xa5, 0x0b, 0x87, 0x18, 0x20, 0x6e, 0xb8, 0xdd, 0x67, 0xbf, 0x0f,
- 0xfa, 0xa9, 0x1c, 0xb5, 0x7c, 0x44, 0xe7, 0xc1, 0xa4, 0x64, 0xf5, 0xe7,
- 0x7a, 0x4d, 0x07, 0xb4, 0x33, 0xa4, 0x51, 0x44, 0x7d, 0x2d, 0x7d, 0x4d,
- 0xd8, 0x4a, 0xba, 0x0b, 0x0a, 0x1a, 0x31, 0x04, 0xdd, 0x36, 0xb2, 0xc8,
- 0x3e, 0xba, 0x8f, 0xc3, 0x33, 0xfd, 0x8d, 0x63, 0x69, 0xf2, 0x5b, 0x9e,
- 0x3c, 0xb3, 0x78, 0xba, 0xac, 0xf9, 0x0e, 0x30, 0x19, 0x17, 0xa1, 0x39,
- 0x50, 0x57, 0x91, 0xf1, 0x10, 0xea, 0x1b, 0x0f, 0x8c, 0x70, 0x9f, 0x96,
- 0x86, 0xaf, 0x94, 0xff, 0xda, 0x1e, 0x54, 0xd5, 0xf5, 0x76, 0x3e, 0x79,
- 0x5f, 0x56, 0x69, 0xf2, 0x53, 0x93, 0xdf, 0x57, 0xe3, 0xf6, 0x24, 0xfe,
- 0x0b, 0x2b, 0xf8, 0x8b, 0x56, 0x6a, 0xf5, 0x2c, 0x7e, 0x8b, 0x19, 0xf4,
- 0xfb, 0x00, 0x77, 0xd0, 0x9e, 0xde, 0xd3, 0x03, 0xef, 0x1d, 0x42, 0xc5,
- 0xaf, 0x98, 0x5d, 0x07, 0x2b, 0xa4, 0x49, 0x4a, 0xa0, 0x39, 0xf1, 0x96,
- 0x6e, 0x42, 0x5f, 0xd7, 0xa3, 0xf3, 0xe3, 0xde, 0xce, 0xce, 0xee, 0xfe,
- 0xee, 0x67, 0xcf, 0x77, 0xf6, 0x77, 0x77, 0x77, 0xf7, 0xf6, 0x77, 0xf7,
- 0xf7, 0xf7, 0x76, 0x7e, 0xde, 0x5e, 0x5f, 0xb5, 0x74, 0x6f, 0xbe, 0x5c,
- 0xd1, 0x20, 0xcd, 0x7a, 0x5d, 0xa2, 0x58, 0x7f, 0x72, 0xb3, 0xc7, 0xac,
- 0x26, 0xeb, 0x49, 0x35, 0x1b, 0x51, 0x57, 0x7a, 0x38, 0xc3, 0xc9, 0x54,
- 0x24, 0x49, 0x67, 0xc1, 0x84, 0x5e, 0x9d, 0x7e, 0xf7, 0xf6, 0xe4, 0xf4,
- 0xe0, 0x55, 0x72, 0x71, 0x9a, 0x1c, 0xc0, 0xee, 0xd7, 0xc1, 0x27, 0x11,
- 0x89, 0xce, 0x19, 0x97, 0x02, 0x8f, 0xe1, 0x7d, 0x04, 0x66, 0xa4, 0x72,
- 0xa1, 0x4f, 0x18, 0x44, 0x7b, 0x9c, 0x05, 0xf4, 0x3a, 0x6e, 0x69, 0x70,
- 0x5d, 0xcf, 0x1e, 0xbf, 0x11, 0x3e, 0xa6, 0xe7, 0x9e, 0xb8, 0xe2, 0xbd,
- 0xea, 0x8e, 0xe1, 0xd8, 0xc9, 0xd7, 0xb4, 0x26, 0x75, 0x68, 0xa9, 0x1b,
- 0xdb, 0x25, 0xe1, 0x6c, 0x4a, 0xe0, 0x16, 0xde, 0xc0, 0xb9, 0x84, 0xf7,
- 0xab, 0x1d, 0x1c, 0xe4, 0x4a, 0xde, 0x6b, 0x9c, 0x04, 0x64, 0x24, 0x16,
- 0x4a, 0xb7, 0xa2, 0x09, 0x9e, 0xae, 0x9c, 0x12, 0xdd, 0xe5, 0xd9, 0x07,
- 0xcc, 0xba, 0xc9, 0x7b, 0x25, 0xcc, 0xd9, 0xcf, 0x0e, 0x55, 0x1a, 0xcc,
- 0x18, 0x91, 0x97, 0x36, 0x64, 0x44, 0x78, 0x75, 0x74, 0xc7, 0xfd, 0x18,
- 0x4b, 0xf6, 0x5d, 0xf0, 0x37, 0xe1, 0x3d, 0xbe, 0xed, 0xec, 0xbb, 0x32,
- 0x80, 0x77, 0xc3, 0xe3, 0xb7, 0x5f, 0xc1, 0x83, 0xfb, 0xdd, 0xe9, 0xf9,
- 0xab, 0x21, 0x35, 0xcb, 0x02, 0xce, 0x1a, 0x4c, 0x7c, 0xcc, 0x09, 0x75,
- 0x54, 0x72, 0x2e, 0xb9, 0xeb, 0x3f, 0x0b, 0x39, 0xf5, 0xc2, 0xda, 0x7e,
- 0xb3, 0x50, 0xe1, 0x61, 0x9c, 0x88, 0xee, 0x5b, 0x23, 0xa0, 0xc6, 0x2f,
- 0x66, 0xe9, 0xf8, 0x9a, 0x35, 0x74, 0x21, 0x56, 0x84, 0xda, 0x6d, 0x73,
- 0xce, 0xcc, 0x36, 0x2b, 0x5e, 0xdb, 0x75, 0x01, 0x72, 0x44, 0x2b, 0x92,
- 0xad, 0x68, 0xd5, 0xe8, 0x02, 0xf3, 0x0c, 0xd1, 0xfa, 0xe5, 0x34, 0xbd,
- 0x42, 0x87, 0xf1, 0x31, 0x08, 0x3a, 0xd3, 0xee, 0x3f, 0xb6, 0x4b, 0xbe,
- 0x36, 0xd0, 0xde, 0x31, 0x08, 0x00, 0xf0, 0x71, 0x00, 0xbf, 0x50, 0xcf,
- 0x93, 0x48, 0x9d, 0xec, 0xa7, 0x47, 0x48, 0x0f, 0x97, 0xd6, 0x6e, 0x17,
- 0x9c, 0x42, 0xad, 0x63, 0xc1, 0xdd, 0x21, 0xc1, 0xbc, 0x1f, 0xe0, 0xf7,
- 0x88, 0x72, 0xca, 0x2d, 0x05, 0x46, 0xa0, 0xca, 0x87, 0x25, 0xa2, 0x26,
- 0x10, 0x4c, 0x1e, 0xb2, 0xe4, 0x3c, 0x18, 0x20, 0x4f, 0x55, 0x16, 0xef,
- 0xa6, 0x62, 0xf0, 0x3a, 0x97, 0x10, 0xe4, 0x80, 0x95, 0x75, 0x03, 0x93,
- 0xf1, 0xc5, 0x45, 0x3c, 0x10, 0x70, 0x55, 0xd3, 0x50, 0x52, 0x2e, 0x46,
- 0x89, 0x32, 0xcb, 0x86, 0x2d, 0x4e, 0xea, 0x94, 0x64, 0x35, 0xaf, 0x5b,
- 0xd8, 0x8b, 0xb4, 0x92, 0x57, 0x92, 0x57, 0xe0, 0x40, 0x32, 0xf8, 0xf2,
- 0x12, 0xdc, 0xab, 0x35, 0x0d, 0x29, 0xf0, 0xf7, 0xa4, 0x37, 0x5d, 0xf2,
- 0x1d, 0x47, 0x42, 0x3c, 0x31, 0x70, 0xa1, 0x1c, 0x4d, 0xc1, 0x0d, 0x6a,
- 0xda, 0x36, 0x96, 0xcd, 0xb2, 0x70, 0xa4, 0x39, 0xe6, 0xcc, 0xde, 0x0c,
- 0xeb, 0x56, 0x70, 0x0d, 0xa1, 0x47, 0xee, 0x16, 0xe8, 0xc8, 0xc7, 0x4f,
- 0x3d, 0x7c, 0x4d, 0xb0, 0x6c, 0x12, 0x6c, 0xe7, 0xdf, 0xa3, 0x3d, 0xe2,
- 0xa6, 0xf2, 0xba, 0xca, 0xa6, 0x97, 0x8a, 0x37, 0x24, 0x57, 0x08, 0xcf,
- 0x32, 0x6d, 0xa1, 0x12, 0xb1, 0xbf, 0x74, 0xee, 0xe0, 0x4f, 0x0a, 0xe5,
- 0x25, 0x57, 0x60, 0xeb, 0xf2, 0x1c, 0x48, 0xb2, 0xc1, 0x43, 0xc4, 0x29,
- 0xfa, 0x17, 0x09, 0xd4, 0x72, 0xcd, 0x35, 0x58, 0x47, 0x23, 0xc2, 0x98,
- 0x6f, 0x1d, 0x5b, 0x3b, 0x5e, 0xad, 0xfb, 0x05, 0x97, 0x0e, 0xe0, 0xa8,
- 0x08, 0x11, 0xce, 0xa1, 0x77, 0x59, 0x1a, 0x0f, 0x20, 0x52, 0xb2, 0x0f,
- 0x9c, 0xd4, 0xa2, 0x73, 0xf3, 0x4a, 0x9e, 0x13, 0xea, 0x75, 0xbe, 0xdc,
- 0x1a, 0x3e, 0x07, 0x2f, 0xe4, 0xd5, 0x66, 0x44, 0x31, 0x56, 0xd4, 0x34,
- 0x12, 0xd7, 0x21, 0x5a, 0x40, 0x35, 0x74, 0xe5, 0x8a, 0x15, 0x16, 0x44,
- 0xf2, 0xcd, 0xee, 0xcd, 0xfb, 0x07, 0xe7, 0x6b, 0x2a, 0x0a, 0x24, 0x84,
- 0xe0, 0xa0, 0x63, 0x26, 0x25, 0xd4, 0x54, 0x69, 0x84, 0x6a, 0x36, 0x66,
- 0xb9, 0x1c, 0xf9, 0x8d, 0x65, 0x1a, 0x41, 0x90, 0x23, 0x37, 0x09, 0x5f,
- 0x33, 0x4e, 0x8d, 0x8b, 0xf1, 0x5d, 0x46, 0x10, 0x51, 0xb9, 0x02, 0x6d,
- 0x11, 0x43, 0x41, 0x02, 0xe3, 0xb2, 0x72, 0x94, 0x43, 0xab, 0x75, 0xa3,
- 0x17, 0xe2, 0x1a, 0xa2, 0x5f, 0x63, 0x76, 0xa3, 0x9c, 0x77, 0x35, 0xbf,
- 0x79, 0x9c, 0xd5, 0xc4, 0x43, 0x32, 0x7d, 0x71, 0x7a, 0x2f, 0xdc, 0x20,
- 0x9f, 0x3f, 0xcc, 0x74, 0x74, 0x10, 0x1f, 0xd5, 0x31, 0xe6, 0xaa, 0xa0,
- 0x3a, 0x70, 0xab, 0xf8, 0xe8, 0x43, 0x89, 0xe4, 0x40, 0x52, 0x4c, 0x2b,
- 0xb9, 0xc3, 0x8c, 0x92, 0x6e, 0x1d, 0x71, 0xe0, 0x25, 0xf5, 0x73, 0x3f,
- 0xf9, 0x32, 0xad, 0xf2, 0x71, 0x4f, 0x4b, 0x52, 0x6a, 0x89, 0x4a, 0x7e,
- 0xc3, 0x97, 0x2a, 0xdc, 0x94, 0xb4, 0x9e, 0xad, 0x41, 0xf2, 0x9d, 0xd5,
- 0x18, 0x25, 0x1d, 0x12, 0x28, 0xb9, 0xec, 0x0b, 0xe0, 0xd6, 0x1a, 0xa8,
- 0x4b, 0x4a, 0x9f, 0x0e, 0xd9, 0x88, 0x3e, 0x45, 0x27, 0xbe, 0x86, 0x10,
- 0x76, 0x35, 0xad, 0x6e, 0x9c, 0x27, 0x0c, 0x7b, 0xa5, 0xac, 0x08, 0xa8,
- 0x8c, 0x22, 0x4b, 0x8b, 0x65, 0xa0, 0x58, 0xba, 0xf0, 0x12, 0xfc, 0xed,
- 0x8e, 0xaf, 0x55, 0x08, 0x86, 0xf5, 0xb5, 0xd2, 0xb8, 0x44, 0x8b, 0x1e,
- 0xe1, 0xeb, 0x97, 0x9b, 0x73, 0x2c, 0xaa, 0xdf, 0xa7, 0x05, 0xe3, 0xa5,
- 0x51, 0x06, 0x7a, 0x7a, 0x71, 0xf4, 0xbb, 0xe4, 0xa0, 0xed, 0x3c, 0xe7,
- 0x9b, 0xa9, 0x01, 0xaf, 0xd4, 0xf3, 0x04, 0x86, 0xb1, 0x4b, 0x28, 0xa2,
- 0x54, 0xd6, 0x4a, 0xb1, 0xfd, 0x6b, 0x9a, 0xf8, 0xec, 0x4d, 0xc4, 0x55,
- 0xa1, 0x91, 0xd5, 0xf5, 0xbd, 0x95, 0x13, 0xe0, 0xd7, 0xe0, 0x52, 0x08,
- 0x2a, 0x0a, 0x49, 0xee, 0x68, 0x9e, 0x4a, 0x64, 0x3b, 0x83, 0xa9, 0xd1,
- 0xa6, 0xcc, 0x85, 0x81, 0x22, 0x08, 0x5b, 0x62, 0x05, 0x05, 0xad, 0x2c,
- 0xaf, 0xa1, 0x6a, 0x49, 0x06, 0x97, 0x54, 0x16, 0x0c, 0xca, 0xc9, 0xa6,
- 0x21, 0xae, 0xdd, 0x7b, 0x3e, 0x72, 0xef, 0xed, 0x62, 0xd1, 0x2b, 0x50,
- 0xc6, 0x72, 0x29, 0x7a, 0x50, 0x93, 0x64, 0xed, 0xd8, 0xc9, 0x6d, 0x76,
- 0x66, 0x61, 0x88, 0xd8, 0x88, 0x31, 0xe0, 0xa2, 0xa6, 0xf7, 0xe2, 0x35,
- 0xc7, 0x9d, 0x6a, 0x5c, 0x33, 0xbc, 0x98, 0x80, 0x03, 0x07, 0xe0, 0x29,
- 0x54, 0xfa, 0xd6, 0xaa, 0x55, 0x12, 0xf4, 0x4d, 0xad, 0x36, 0x43, 0xf5,
- 0x91, 0xbc, 0x83, 0x55, 0xe5, 0x51, 0x08, 0xe8, 0x62, 0x98, 0x2a, 0x40,
- 0xad, 0xa1, 0x23, 0x2b, 0xdc, 0xdc, 0x22, 0x68, 0xe2, 0x86, 0xc7, 0x75,
- 0x8b, 0x3d, 0xb9, 0x7a, 0x50, 0x41, 0x8c, 0xea, 0x6b, 0x07, 0xc0, 0xa7,
- 0xcd, 0x72, 0x5d, 0xcb, 0x71, 0x16, 0x64, 0xe8, 0xcc, 0x8b, 0xb5, 0xe0,
- 0xe6, 0x13, 0xfa, 0x29, 0x2a, 0xe3, 0x89, 0x82, 0xce, 0x26, 0x35, 0xed,
- 0x46, 0x99, 0x14, 0x9a, 0x20, 0x2a, 0x91, 0x5d, 0x04, 0x76, 0x29, 0x9f,
- 0x40, 0xa1, 0xcc, 0x19, 0x88, 0x7b, 0xcd, 0x53, 0x37, 0xdf, 0x41, 0xab,
- 0xe6, 0xc9, 0xa9, 0xba, 0x4c, 0x6e, 0x66, 0x2f, 0x17, 0xd1, 0x89, 0xf5,
- 0x94, 0xb9, 0x56, 0xec, 0x84, 0xf1, 0x48, 0x47, 0xcd, 0xbb, 0x03, 0xc9,
- 0x76, 0xee, 0xe4, 0x2c, 0xdb, 0xf4, 0x06, 0xca, 0x20, 0xf3, 0x94, 0x49,
- 0x32, 0xbb, 0xd7, 0xd4, 0x14, 0x95, 0x0d, 0x18, 0xe3, 0x01, 0x56, 0x89,
- 0xcf, 0x3e, 0x8b, 0x64, 0xc1, 0x0f, 0xee, 0xe9, 0x7d, 0xfa, 0x3a, 0xb0,
- 0x7e, 0x4c, 0x39, 0xd0, 0x84, 0xad, 0x0d, 0x90, 0x43, 0x9d, 0x09, 0xa4,
- 0x43, 0xc3, 0x08, 0x30, 0xd3, 0xa4, 0x47, 0xe7, 0x97, 0x89, 0xa8, 0xac,
- 0xe7, 0xf9, 0xfe, 0x9a, 0xa8, 0xd7, 0x5a, 0x91, 0xb5, 0x92, 0x80, 0xa5,
- 0x15, 0x8a, 0x99, 0xb1, 0xc9, 0xf6, 0x68, 0x03, 0xa9, 0x99, 0x24, 0xf7,
- 0x01, 0x5f, 0xaa, 0xac, 0x04, 0x0c, 0x0b, 0x6d, 0x98, 0x17, 0x59, 0x07,
- 0xe3, 0xa8, 0xa3, 0x45, 0x47, 0xae, 0x9c, 0xa8, 0xe7, 0x11, 0xef, 0x56,
- 0x0f, 0xe7, 0xdd, 0xaf, 0x19, 0xce, 0x41, 0xf2, 0x60, 0x8a, 0x86, 0x40,
- 0x42, 0x80, 0xe3, 0x57, 0x96, 0x9c, 0x56, 0x80, 0xaa, 0x4d, 0xee, 0x91,
- 0x35, 0x42, 0x45, 0xe0, 0x56, 0xd9, 0xbd, 0xd8, 0x30, 0x31, 0x2f, 0xe4,
- 0x69, 0x28, 0x35, 0xdc, 0x7e, 0xcf, 0x86, 0xf2, 0xb1, 0xc3, 0x15, 0xdc,
- 0x1b, 0x97, 0x84, 0xd2, 0x4e, 0xaf, 0xd0, 0xb4, 0xa7, 0xdd, 0xc1, 0x4e,
- 0x28, 0x5f, 0xb9, 0x64, 0xa8, 0x12, 0x00, 0xb4, 0x35, 0xa0, 0xa5, 0xbc,
- 0x88, 0xc2, 0x33, 0x41, 0x76, 0x60, 0xeb, 0x35, 0xfd, 0x6c, 0x57, 0x20,
- 0xbc, 0xe8, 0x24, 0x69, 0xa5, 0x22, 0x46, 0xd0, 0xc9, 0x66, 0x0b, 0x24,
- 0x8d, 0x18, 0x07, 0x0c, 0x85, 0x00, 0x9c, 0xa3, 0xa7, 0xfe, 0x48, 0x3d,
- 0x73, 0xdb, 0xad, 0x63, 0x94, 0x9c, 0x02, 0x2d, 0x01, 0x2f, 0x61, 0xfd,
- 0x10, 0x3e, 0xb3, 0x4c, 0x5a, 0xaa, 0x57, 0x26, 0xb7, 0x1d, 0x36, 0x13,
- 0x4d, 0x99, 0x9e, 0x71, 0xd9, 0x26, 0x97, 0xcb, 0x12, 0x8c, 0x57, 0x21,
- 0x18, 0x15, 0x8d, 0x86, 0x5b, 0xe5, 0xf8, 0xdc, 0x0e, 0x4e, 0x83, 0xf4,
- 0xed, 0x0c, 0x05, 0xdd, 0xf9, 0x5c, 0x8b, 0x75, 0x1c, 0xc8, 0x19, 0x5a,
- 0x6c, 0xcf, 0xfb, 0xde, 0x9c, 0x78, 0x46, 0xed, 0x4e, 0x73, 0x1a, 0xd0,
- 0x06, 0x60, 0x59, 0xac, 0x56, 0xb5, 0xf2, 0x42, 0x87, 0x4e, 0x69, 0x78,
- 0xec, 0xcd, 0x42, 0xd0, 0x71, 0xed, 0xae, 0x36, 0xd3, 0x95, 0x6b, 0xa0,
- 0x97, 0xf4, 0xff, 0x97, 0xae, 0x0c, 0x8b, 0xe7, 0x1c, 0x3b, 0x86, 0x82,
- 0x1d, 0x8b, 0x00, 0xcf, 0x54, 0x53, 0xfc, 0xc0, 0xf0, 0x39, 0x30, 0xd4,
- 0xe6, 0xe1, 0xf2, 0x6e, 0x2d, 0x47, 0x08, 0xfc, 0xef, 0x75, 0x88, 0x5c,
- 0xdb, 0xa8, 0xcf, 0xad, 0xac, 0x42, 0x9a, 0x5b, 0x73, 0x15, 0x40, 0x24,
- 0x56, 0x30, 0x1a, 0xb0, 0xbb, 0xc8, 0xbe, 0xe4, 0x0a, 0x89, 0x87, 0x45,
- 0x1a, 0x2e, 0xab, 0xe9, 0x72, 0x6b, 0x36, 0x52, 0x21, 0x7e, 0x67, 0xca,
- 0x90, 0xfc, 0xd6, 0x3e, 0xbd, 0xd0, 0x7f, 0xa7, 0xe6, 0x8c, 0x2f, 0xa4,
- 0x87, 0x01, 0xcc, 0xee, 0xd2, 0xc3, 0x19, 0x2a, 0x4b, 0xdb, 0x03, 0xfb,
- 0xfa, 0x12, 0x27, 0xc5, 0xae, 0xab, 0x25, 0xa7, 0xb9, 0x2a, 0xf2, 0xbc,
- 0x25, 0xcd, 0x72, 0x59, 0x62, 0x4c, 0xa1, 0x2f, 0x0e, 0x1d, 0x3e, 0x64,
- 0xf2, 0xab, 0xbc, 0xab, 0xca, 0xe3, 0x3d, 0x37, 0x31, 0x90, 0xa8, 0x7b,
- 0xb5, 0xbd, 0xec, 0xed, 0x6e, 0xcb, 0x60, 0xb6, 0xa5, 0x01, 0x91, 0xeb,
- 0x94, 0x24, 0x7d, 0x10, 0x88, 0x01, 0x10, 0x85, 0x37, 0x17, 0xe7, 0x08,
- 0x70, 0xf0, 0xce, 0x4c, 0x23, 0x8f, 0xe1, 0x5d, 0xe3, 0xab, 0x89, 0xee,
- 0x5a, 0xc0, 0x19, 0x69, 0x12, 0x23, 0xd7, 0x4d, 0x70, 0x1b, 0xd4, 0x73,
- 0x22, 0x1f, 0x91, 0x52, 0xff, 0x36, 0xd4, 0x9a, 0x32, 0x45, 0x17, 0x9d,
- 0xde, 0xc3, 0x37, 0xe0, 0x0a, 0xed, 0x69, 0xa8, 0x04, 0x51, 0xf4, 0xf9,
- 0xc1, 0xdb, 0xaf, 0x8e, 0x20, 0x09, 0x38, 0xb8, 0xc9, 0x9c, 0xa9, 0x7d,
- 0xb2, 0x1c, 0x43, 0x15, 0xa2, 0x15, 0x43, 0xec, 0x1b, 0x70, 0x98, 0xad,
- 0x2e, 0x22, 0x4a, 0x3d, 0x82, 0x78, 0xb1, 0xdd, 0x1a, 0xd1, 0xb6, 0x96,
- 0x98, 0x45, 0x15, 0x12, 0x04, 0x2b, 0x8c, 0x34, 0x43, 0x98, 0x5f, 0xab,
- 0xe5, 0x68, 0x91, 0x2a, 0x42, 0x4d, 0x1a, 0x42, 0x98, 0xa8, 0x9d, 0x65,
- 0xd0, 0x3c, 0x8b, 0x6b, 0x96, 0xde, 0xe2, 0x74, 0xfa, 0x12, 0x3a, 0xfd,
- 0x20, 0xb4, 0xaa, 0x09, 0xc4, 0xc6, 0xee, 0xce, 0x8e, 0xaf, 0xb4, 0xe3,
- 0xa1, 0x58, 0x22, 0x6e, 0x59, 0x26, 0x3b, 0xfd, 0xe7, 0xcf, 0x57, 0x31,
- 0x42, 0xd7, 0x28, 0xf0, 0x50, 0x9e, 0x7d, 0x74, 0x9b, 0x7d, 0x7e, 0x74,
- 0x55, 0x9b, 0x1d, 0x1a, 0x4d, 0x95, 0x03, 0x8c, 0x50, 0x56, 0xd4, 0x49,
- 0x2d, 0x6a, 0xe1, 0x11, 0x67, 0x0d, 0x9c, 0x67, 0xae, 0x30, 0x3c, 0x96,
- 0x72, 0xcd, 0x23, 0x65, 0x03, 0x38, 0xc3, 0x8c, 0x41, 0x0b, 0x0e, 0x28,
- 0xcc, 0x9d, 0x0f, 0xf7, 0xa3, 0x16, 0x26, 0x50, 0xe0, 0x57, 0x2c, 0xd1,
- 0x65, 0x3c, 0x1b, 0x13, 0x09, 0xde, 0x9d, 0xb1, 0xfd, 0xef, 0xf8, 0xed,
- 0x57, 0x62, 0x0e, 0x21, 0xdd, 0x1e, 0xb6, 0xf4, 0xed, 0x96, 0xa6, 0xff,
- 0x4e, 0x0a, 0xe6, 0x70, 0x38, 0x29, 0x82, 0x37, 0xa4, 0xde, 0x6d, 0x3e,
- 0x17, 0x56, 0xe0, 0x77, 0x7f, 0x85, 0xad, 0xf2, 0x22, 0xe9, 0x07, 0xc2,
- 0x89, 0xd6, 0xcb, 0x61, 0xc9, 0x64, 0x76, 0x6f, 0x9a, 0x91, 0xf6, 0x80,
- 0xd6, 0xcd, 0x33, 0xe3, 0x9a, 0x15, 0x3d, 0x57, 0xd4, 0x73, 0x50, 0x50,
- 0x24, 0x9b, 0x74, 0x74, 0x29, 0xdd, 0xe0, 0x7c, 0xb7, 0x24, 0x91, 0x8f,
- 0x1b, 0x4a, 0xc3, 0xd4, 0xd9, 0xac, 0xb0, 0xc8, 0x92, 0x55, 0xcf, 0x6c,
- 0x3f, 0x6d, 0x33, 0xa4, 0xd4, 0x70, 0x0f, 0xb9, 0x3a, 0xef, 0x36, 0xaa,
- 0xb1, 0x16, 0xc5, 0x7f, 0x7f, 0x9c, 0x0f, 0x8c, 0x90, 0x0f, 0x2a, 0xdf,
- 0x54, 0xf3, 0x89, 0xb7, 0x69, 0xe8, 0x88, 0x3b, 0x1d, 0x21, 0x17, 0xf2,
- 0xbe, 0x74, 0x9d, 0x76, 0x77, 0x27, 0xef, 0xdb, 0xd2, 0x74, 0x1c, 0x00,
- 0x16, 0x69, 0xb5, 0x9e, 0x92, 0x4b, 0x3d, 0x35, 0x5d, 0x86, 0xa5, 0x70,
- 0x70, 0x8e, 0xbc, 0x29, 0x96, 0xac, 0x25, 0x9a, 0xdf, 0x8e, 0x6a, 0x4b,
- 0x4c, 0x43, 0x80, 0xdf, 0xc7, 0xe5, 0x75, 0x93, 0x6b, 0xbd, 0x41, 0x60,
- 0x4d, 0x33, 0x4b, 0x63, 0xa1, 0x46, 0x31, 0xae, 0x3c, 0xec, 0x77, 0xb9,
- 0x9c, 0x2b, 0xef, 0x63, 0x7d, 0x8b, 0x06, 0x9f, 0x56, 0xd7, 0xa8, 0x60,
- 0xed, 0x4c, 0x51, 0xb1, 0x78, 0x85, 0xee, 0x15, 0xc3, 0x9a, 0xe4, 0x29,
- 0x11, 0xa6, 0x20, 0x5c, 0x37, 0x96, 0xa2, 0xb9, 0x02, 0x6b, 0x6b, 0x6c,
- 0x84, 0xdf, 0x66, 0x53, 0xfc, 0x30, 0x5e, 0x40, 0xb3, 0xa5, 0x3f, 0x68,
- 0x8f, 0xf7, 0x3e, 0x86, 0x47, 0x2c, 0xf3, 0x81, 0xf5, 0xe4, 0x63, 0x4f,
- 0x9c, 0xc8, 0xef, 0x1d, 0x7e, 0x45, 0x1c, 0xba, 0x80, 0x91, 0x75, 0x92,
- 0x7a, 0xd3, 0x9a, 0x16, 0xea, 0x02, 0x30, 0xfa, 0x40, 0x33, 0x03, 0x0a,
- 0x44, 0x6b, 0xbb, 0xa0, 0xb0, 0x03, 0x81, 0x57, 0x90, 0xce, 0x8c, 0xbd,
- 0x87, 0x90, 0x25, 0xbe, 0x38, 0xd4, 0x54, 0xf2, 0x50, 0x58, 0xb6, 0x10,
- 0xf5, 0x17, 0xae, 0x6e, 0xc9, 0x9e, 0x43, 0x9f, 0x98, 0xa1, 0x0c, 0x50,
- 0xc0, 0x0e, 0x6a, 0x44, 0xb5, 0x0f, 0x2f, 0xd8, 0x8c, 0x80, 0xab, 0xcf,
- 0xf4, 0xd1, 0x6f, 0x8f, 0xce, 0xbf, 0x3c, 0x1d, 0x1e, 0xd1, 0x7e, 0xbc,
- 0x3a, 0xfa, 0xf2, 0x1d, 0x73, 0x2d, 0xa6, 0x0e, 0x31, 0x3d, 0x03, 0x3f,
- 0x59, 0xec, 0x5f, 0x80, 0x3b, 0xe3, 0x70, 0x3d, 0x90, 0xa9, 0xc8, 0x41,
- 0x3d, 0xa3, 0x42, 0x13, 0xf1, 0x04, 0x8b, 0x78, 0x9a, 0x89, 0xad, 0x32,
- 0x47, 0x12, 0x82, 0x47, 0x4c, 0xe7, 0x58, 0x3f, 0x2e, 0x6f, 0x0f, 0xf5,
- 0x52, 0x8f, 0x92, 0x60, 0xbb, 0x56, 0xfb, 0xde, 0xa8, 0x79, 0x2b, 0x96,
- 0x69, 0x3d, 0x7c, 0xd4, 0xec, 0xa8, 0x80, 0xd2, 0x8e, 0x7a, 0x15, 0x20,
- 0xde, 0x43, 0x27, 0x47, 0x2b, 0x5c, 0xe7, 0xb4, 0x90, 0x5b, 0x13, 0xa5,
- 0xe4, 0xb9, 0x6d, 0xdc, 0xe3, 0x79, 0x8d, 0x2b, 0x5c, 0x14, 0x0a, 0x2d,
- 0x69, 0x5f, 0x09, 0x71, 0x13, 0x7b, 0x93, 0xb4, 0xf3, 0xa9, 0x5e, 0x07,
- 0xe0, 0x7e, 0x55, 0x26, 0x38, 0x71, 0x72, 0x6b, 0xab, 0x3f, 0x5c, 0x02,
- 0x7d, 0xb5, 0xfa, 0xcc, 0xa6, 0x2a, 0xc1, 0x77, 0x98, 0xa7, 0x96, 0x43,
- 0x95, 0xba, 0xef, 0x56, 0x14, 0x11, 0x2b, 0x1f, 0x84, 0xe4, 0x28, 0xe9,
- 0xdc, 0xae, 0x66, 0x3d, 0x17, 0x32, 0x53, 0xb6, 0x73, 0x88, 0x20, 0x10,
- 0x02, 0x57, 0xb7, 0x4a, 0xa2, 0x7b, 0x01, 0x45, 0xce, 0x2e, 0xe7, 0x13,
- 0x04, 0x2a, 0xe4, 0xea, 0x42, 0xf1, 0x4d, 0x64, 0xb1, 0x20, 0x9b, 0x48,
- 0x98, 0xab, 0x86, 0xe1, 0xf1, 0x96, 0xc2, 0x25, 0x20, 0xc4, 0x17, 0x9f,
- 0x77, 0x69, 0x5d, 0x6a, 0xc4, 0xf3, 0x19, 0x0d, 0x1c, 0x27, 0x6b, 0x6b,
- 0x6b, 0xaf, 0x8e, 0x2e, 0x0e, 0x8e, 0x4f, 0x8e, 0x5e, 0x25, 0xc7, 0x6f,
- 0x5f, 0x9f, 0x9e, 0xbf, 0x39, 0xb8, 0xd0, 0x68, 0x8c, 0x57, 0xce, 0x22,
- 0xe7, 0xc1, 0x9c, 0x14, 0xba, 0x3e, 0xb0, 0xd6, 0x81, 0x84, 0x69, 0x17,
- 0xaf, 0xb4, 0x4a, 0x81, 0x2c, 0x43, 0xd6, 0x58, 0x83, 0xb5, 0x44, 0xa3,
- 0x38, 0x3c, 0xfa, 0x15, 0xcb, 0x05, 0xdb, 0xce, 0xf7, 0x3e, 0xb0, 0xe5,
- 0x34, 0x33, 0x1a, 0x6a, 0x56, 0x3e, 0xd8, 0x54, 0xca, 0x36, 0x90, 0xab,
- 0x69, 0xa6, 0x77, 0x22, 0xa0, 0x95, 0x91, 0xfe, 0x2f, 0x78, 0xc8, 0xc7,
- 0xdb, 0x4d, 0x70, 0x66, 0x18, 0x5a, 0x0c, 0x0c, 0x2d, 0x05, 0x1c, 0x4a,
- 0x08, 0xba, 0x71, 0x59, 0x20, 0xa8, 0x24, 0x6c, 0xd3, 0xc1, 0x49, 0x60,
- 0x47, 0x19, 0x3d, 0x18, 0xb1, 0x3f, 0xf8, 0x24, 0xdc, 0xdf, 0x5c, 0xca,
- 0xc6, 0x4f, 0x39, 0xf4, 0x08, 0x11, 0x45, 0x8c, 0x9f, 0x5a, 0xd1, 0x4e,
- 0xb9, 0xb3, 0x0e, 0x44, 0x57, 0xc7, 0xb0, 0xcd, 0x3b, 0xa7, 0x25, 0x16,
- 0xc3, 0xa6, 0x36, 0x9d, 0xbf, 0x9e, 0x24, 0xa6, 0xfe, 0xb1, 0x16, 0xdf,
- 0xe4, 0xb5, 0x60, 0x78, 0x7b, 0xfe, 0x39, 0x37, 0x44, 0x45, 0x17, 0x3e,
- 0xea, 0x35, 0xfe, 0x9c, 0xa6, 0xac, 0x2e, 0x2a, 0x3d, 0x6d, 0xfe, 0xdc,
- 0x1a, 0x66, 0x4b, 0xff, 0x15, 0x3d, 0x34, 0x59, 0xce, 0x16, 0x5a, 0xbd,
- 0xd9, 0x24, 0x6a, 0xd8, 0xf2, 0x6c, 0x0b, 0x45, 0x68, 0x83, 0xf0, 0x01,
- 0xc3, 0xcf, 0x6b, 0x5d, 0x03, 0x99, 0x07, 0xe8, 0xbb, 0x36, 0x57, 0x60,
- 0x0d, 0x18, 0x5e, 0xf3, 0xde, 0x59, 0x45, 0x18, 0x17, 0x71, 0xd4, 0x90,
- 0x5c, 0xb0, 0x20, 0x43, 0xf7, 0x2c, 0x56, 0x32, 0x78, 0x21, 0xf5, 0x01,
- 0x4a, 0x58, 0xff, 0x4d, 0x2b, 0x2f, 0xc3, 0x24, 0xab, 0x0d, 0xea, 0x55,
- 0x11, 0x3b, 0x1f, 0x1b, 0x93, 0x0a, 0x5f, 0x6c, 0x86, 0xf4, 0x84, 0x9c,
- 0xde, 0xba, 0xf6, 0x28, 0xba, 0xed, 0x11, 0x28, 0x17, 0x27, 0x7e, 0x72,
- 0x6f, 0x35, 0xb3, 0xb9, 0x4a, 0x86, 0xc0, 0x64, 0xae, 0x69, 0x79, 0xa3,
- 0x10, 0x78, 0xdc, 0xc8, 0x77, 0x09, 0xe0, 0xeb, 0xe2, 0x86, 0x75, 0x79,
- 0xa4, 0x76, 0x8e, 0xee, 0xc3, 0x1c, 0x3c, 0x09, 0x3d, 0xd3, 0x02, 0x4d,
- 0x60, 0x7a, 0xf3, 0x35, 0xab, 0xa5, 0x68, 0x2f, 0x59, 0x00, 0x23, 0xb8,
- 0xbf, 0x54, 0x0b, 0x00, 0x93, 0x67, 0xa5, 0x3a, 0x4b, 0x2b, 0x28, 0x54,
- 0xc8, 0xc4, 0x91, 0x3b, 0xc3, 0x99, 0x61, 0x7d, 0x3d, 0x8c, 0x00, 0x2f,
- 0x0b, 0x2c, 0x5a, 0x70, 0x43, 0x53, 0x06, 0xd3, 0xb0, 0x43, 0x21, 0x51,
- 0xf7, 0xae, 0x15, 0x73, 0x70, 0x50, 0x33, 0x08, 0x9d, 0xd6, 0x58, 0xd2,
- 0xb3, 0xa2, 0x92, 0xf3, 0x06, 0x09, 0x7f, 0x9d, 0x59, 0xcf, 0x3a, 0xc8,
- 0x60, 0x7d, 0x71, 0x4d, 0x7d, 0xac, 0x27, 0x57, 0xac, 0x23, 0x8d, 0x68,
- 0xe8, 0x11, 0x03, 0x9d, 0xc8, 0xe3, 0x2f, 0xcf, 0xd3, 0xcb, 0x34, 0x9b,
- 0xfe, 0x61, 0x6f, 0x67, 0x98, 0x5e, 0x2d, 0xa7, 0xe9, 0x1f, 0xf1, 0xe2,
- 0xcb, 0x27, 0x4f, 0xf6, 0x76, 0x3e, 0xfd, 0x6c, 0x67, 0xbd, 0x1d, 0x7d,
- 0xe0, 0x03, 0xb2, 0x10, 0x61, 0xc3, 0x37, 0x19, 0xf8, 0x2e, 0xfa, 0x19,
- 0x8c, 0xaf, 0x72, 0x28, 0x75, 0x2c, 0x28, 0xe9, 0x1a, 0xa4, 0xa2, 0x4d,
- 0x82, 0x4d, 0x0a, 0xec, 0x20, 0xa3, 0xf2, 0x12, 0x5d, 0xff, 0x7e, 0x77,
- 0x5f, 0x58, 0x19, 0x40, 0xa2, 0x71, 0x4f, 0xf0, 0x5a, 0xbc, 0xc8, 0xe7,
- 0x74, 0x03, 0x7d, 0x9e, 0xd4, 0xe9, 0x95, 0xa3, 0x55, 0xcd, 0xa6, 0x97,
- 0x1c, 0x0a, 0xe7, 0xdf, 0xbc, 0x64, 0x22, 0xcf, 0xe7, 0x52, 0xca, 0x86,
- 0xcb, 0xb4, 0x40, 0xc8, 0x5a, 0x64, 0x25, 0x10, 0x04, 0xaf, 0xca, 0x74,
- 0x66, 0x99, 0x2a, 0xfc, 0x3e, 0x47, 0xad, 0x0d, 0x16, 0x53, 0x64, 0x51,
- 0x58, 0xe8, 0x99, 0x48, 0xbc, 0x42, 0x70, 0xd3, 0x45, 0xe5, 0x41, 0xf8,
- 0xe4, 0xba, 0x09, 0x0b, 0xc0, 0xd0, 0x62, 0xc1, 0xa6, 0xb2, 0x8e, 0x59,
- 0x09, 0xcb, 0x00, 0x37, 0x9b, 0xd8, 0x4c, 0x07, 0xf8, 0x1d, 0xe8, 0x0f,
- 0xa9, 0x20, 0x2e, 0xae, 0x2f, 0x24, 0xaf, 0x5a, 0x30, 0x3a, 0xd6, 0x2d,
- 0xad, 0x21, 0x6f, 0xcc, 0x2b, 0xf5, 0x11, 0x9b, 0xc9, 0x0b, 0xb3, 0x12,
- 0xed, 0x7e, 0xfe, 0x12, 0x04, 0xb1, 0xfb, 0xf9, 0x1f, 0xdd, 0x67, 0x7b,
- 0xfa, 0xd9, 0xde, 0xe7, 0x7f, 0x1c, 0x0c, 0x30, 0x3e, 0xa6, 0x90, 0x0d,
- 0xfb, 0x7a, 0x43, 0xd1, 0x56, 0x52, 0x3d, 0xc2, 0xf2, 0x97, 0x03, 0x3f,
- 0x96, 0xbd, 0x5e, 0xb7, 0x9e, 0xc3, 0x55, 0xee, 0xa9, 0x47, 0xd5, 0xf1,
- 0xad, 0xdc, 0xea, 0xba, 0x01, 0xd4, 0xba, 0xea, 0x5a, 0x74, 0xe7, 0x07,
- 0x41, 0x3b, 0x1a, 0x7b, 0x89, 0x97, 0xff, 0xc4, 0x94, 0xfa, 0xa7, 0xb5,
- 0x44, 0xbd, 0x9b, 0xbc, 0x1d, 0xf7, 0x70, 0x78, 0x18, 0xd9, 0xd2, 0xa3,
- 0xa9, 0xd5, 0x9b, 0xe1, 0x96, 0x39, 0xf7, 0x83, 0xef, 0x40, 0x09, 0x19,
- 0xc7, 0x60, 0xff, 0xac, 0xe0, 0x97, 0x2e, 0x69, 0xc6, 0x9e, 0x91, 0x3c,
- 0x19, 0x92, 0x31, 0x6a, 0xa9, 0x78, 0xc4, 0xf5, 0x4f, 0xbe, 0xff, 0x5e,
- 0x05, 0x2a, 0xfa, 0x45, 0x47, 0x7e, 0x4d, 0xbc, 0x68, 0x42, 0xec, 0x6d,
- 0x86, 0xfa, 0xf0, 0x8c, 0x33, 0x48, 0xf3, 0xd0, 0x2b, 0xff, 0x52, 0x67,
- 0x2a, 0x8d, 0xd0, 0xd6, 0x1e, 0x0c, 0x0f, 0x8f, 0x8f, 0x11, 0x66, 0x8a,
- 0x45, 0x3d, 0x12, 0x36, 0x06, 0xda, 0xdc, 0x44, 0x88, 0x87, 0x8f, 0x4a,
- 0x0c, 0x49, 0x9f, 0xf7, 0x0e, 0xdb, 0x0e, 0xea, 0xa7, 0xc6, 0x4c, 0x01,
- 0xd7, 0xad, 0x04, 0xcd, 0x8a, 0x94, 0xf3, 0x72, 0x5d, 0x1e, 0xbc, 0xca,
- 0xd7, 0xd5, 0x89, 0x25, 0x9f, 0xac, 0x7b, 0xf0, 0x1c, 0xd9, 0x0f, 0x6c,
- 0xda, 0x4b, 0x11, 0x9d, 0xf2, 0xbf, 0x67, 0x2f, 0x77, 0x77, 0xba, 0x9f,
- 0x80, 0xd7, 0x96, 0xe1, 0xc4, 0x5f, 0x7a, 0x87, 0xe0, 0x43, 0xcf, 0xe7,
- 0x13, 0x79, 0xfa, 0x3a, 0x9f, 0x4c, 0xe8, 0x4e, 0xb8, 0x4d, 0xa7, 0x4b,
- 0xa2, 0x85, 0x11, 0xdf, 0xb0, 0xfc, 0xff, 0x2b, 0xc6, 0x01, 0x8f, 0x95,
- 0x3e, 0x5b, 0x2d, 0x47, 0xb3, 0xbc, 0x31, 0xe0, 0x6d, 0x9e, 0xe0, 0xe7,
- 0x3c, 0xe1, 0xef, 0x32, 0x47, 0x1d, 0x19, 0x8b, 0x76, 0x22, 0xfb, 0x6d,
- 0x5c, 0x16, 0xc5, 0x28, 0x2d, 0x37, 0xd4, 0x9d, 0x63, 0xe3, 0xdc, 0xd8,
- 0xdd, 0x7b, 0xf2, 0xf4, 0xd9, 0xc6, 0x40, 0xe5, 0x34, 0xb0, 0x88, 0x3a,
- 0x04, 0xa8, 0x90, 0x26, 0x1c, 0xa0, 0x42, 0x80, 0xe5, 0xda, 0xe5, 0x5c,
- 0x65, 0x2e, 0xc6, 0xdd, 0xbd, 0x94, 0xde, 0xfe, 0xc8, 0xfd, 0xbc, 0x44,
- 0x17, 0x7f, 0xcc, 0x27, 0x2f, 0xdd, 0x0c, 0xff, 0xc8, 0x73, 0x79, 0xa9,
- 0x93, 0xa0, 0x7d, 0xb5, 0x0c, 0xc4, 0x2a, 0xac, 0x4d, 0xf3, 0xd8, 0xe6,
- 0xda, 0x26, 0xae, 0x61, 0xd2, 0x88, 0x60, 0xe8, 0x4f, 0xc4, 0xfb, 0x01,
- 0x69, 0xd5, 0x67, 0xe0, 0x6d, 0x7f, 0xe8, 0x53, 0x2b, 0x7d, 0x6e, 0xa5,
- 0xef, 0x19, 0x36, 0x50, 0xe0, 0xfb, 0xbc, 0x11, 0x3d, 0x4d, 0xc3, 0x9c,
- 0xc2, 0xca, 0xa2, 0xa2, 0x40, 0x51, 0x20, 0x08, 0xe0, 0xf0, 0xab, 0xe3,
- 0x8d, 0x2a, 0x2c, 0xc9, 0xd0, 0xeb, 0xb2, 0x4f, 0xbb, 0x10, 0xc3, 0x71,
- 0xba, 0xe0, 0xd3, 0xbf, 0x66, 0x75, 0x14, 0x53, 0x8e, 0x23, 0xe1, 0x7e,
- 0x25, 0x63, 0x9a, 0x3a, 0xd3, 0x5b, 0x67, 0xca, 0x16, 0xef, 0x52, 0x00,
- 0xea, 0x83, 0x66, 0x80, 0xd8, 0x2c, 0x01, 0x25, 0xf0, 0xf9, 0x2c, 0x5c,
- 0xba, 0x65, 0xff, 0xb5, 0x73, 0x7a, 0xba, 0xf4, 0x3e, 0x7d, 0x94, 0xbe,
- 0x12, 0x7e, 0x62, 0x2c, 0x62, 0x1d, 0x0a, 0xb0, 0xe7, 0x13, 0x21, 0xf7,
- 0x40, 0xda, 0xff, 0x28, 0xd3, 0x24, 0x4d, 0x31, 0x9b, 0x88, 0x60, 0xc8,
- 0xfc, 0xf3, 0xc5, 0x17, 0x86, 0xf2, 0xfc, 0x79, 0x82, 0x72, 0xa8, 0xf2,
- 0x96, 0xfa, 0x1d, 0xd5, 0x00, 0x25, 0x36, 0x5b, 0xbc, 0xa4, 0xea, 0x81,
- 0x73, 0x81, 0x05, 0xd1, 0x38, 0x2a, 0x18, 0x28, 0x14, 0x3f, 0x26, 0x3a,
- 0xba, 0x57, 0x63, 0x03, 0xb7, 0xb0, 0xf1, 0x17, 0x1c, 0x82, 0x17, 0xbc,
- 0x0d, 0xf8, 0xfa, 0xf3, 0x8d, 0x35, 0x57, 0x1d, 0xc3, 0x49, 0xee, 0x2d,
- 0x07, 0xb2, 0x10, 0x68, 0x38, 0x1f, 0x12, 0xa8, 0x0d, 0xd2, 0x58, 0xa4,
- 0x31, 0x06, 0xe8, 0x40, 0xcd, 0x70, 0x92, 0xa6, 0xa6, 0x13, 0x05, 0xf4,
- 0x74, 0x06, 0x6a, 0x69, 0x3c, 0xe3, 0xdc, 0x06, 0x96, 0x1e, 0x37, 0x38,
- 0x5a, 0x15, 0xef, 0x6d, 0x38, 0x84, 0x64, 0xd8, 0x4c, 0xc1, 0xf0, 0xca,
- 0xcc, 0x70, 0x26, 0xd7, 0x14, 0xd0, 0xdc, 0x4b, 0xf3, 0xe1, 0xc4, 0xaa,
- 0x40, 0x78, 0xf0, 0x49, 0x8e, 0x82, 0x65, 0x13, 0x1d, 0x91, 0xd7, 0x9c,
- 0x41, 0xac, 0x9d, 0xbe, 0xe4, 0xe5, 0xde, 0x1d, 0x5c, 0xe5, 0x97, 0xb2,
- 0x18, 0xc4, 0x22, 0xaf, 0xb2, 0x6d, 0xfa, 0xb3, 0x47, 0x9f, 0xef, 0xb1,
- 0x54, 0xc6, 0xbf, 0x3c, 0x41, 0x3c, 0x56, 0x78, 0xf7, 0x07, 0x67, 0xc3,
- 0x9d, 0x0b, 0xfe, 0x25, 0x77, 0x77, 0xbe, 0x7a, 0x75, 0x74, 0x94, 0x20,
- 0xf3, 0xa8, 0x02, 0x5c, 0x18, 0x54, 0xc2, 0x8a, 0x16, 0xab, 0xa4, 0x4b,
- 0xce, 0x69, 0x71, 0xc1, 0x23, 0x1a, 0x48, 0xa1, 0x82, 0x3a, 0xcb, 0xdd,
- 0xb9, 0x9a, 0x67, 0x38, 0x07, 0x08, 0x37, 0x6b, 0x76, 0xb7, 0xd5, 0x0b,
- 0x23, 0x6d, 0x89, 0xbd, 0xdf, 0x72, 0x56, 0x3d, 0x43, 0x75, 0xf8, 0x0a,
- 0x57, 0xdc, 0xfd, 0x26, 0x37, 0xcb, 0x42, 0x81, 0x4f, 0x33, 0xc6, 0x36,
- 0xe7, 0xed, 0x1d, 0x0c, 0x2a, 0xc8, 0x9a, 0xb4, 0xc9, 0x1e, 0xb4, 0x2d,
- 0xee, 0x26, 0x9b, 0x56, 0xd0, 0xd5, 0x15, 0xa8, 0xd1, 0x7a, 0x35, 0x30,
- 0x6d, 0x74, 0xb4, 0x11, 0x9e, 0xfd, 0x62, 0x5c, 0x67, 0xa4, 0xeb, 0x32,
- 0xaa, 0xd6, 0x4c, 0xf8, 0xdc, 0xd1, 0x4c, 0x2a, 0x69, 0x82, 0x84, 0xa7,
- 0x7d, 0xb9, 0x3d, 0x55, 0x24, 0xea, 0xbf, 0x1e, 0x24, 0x27, 0x88, 0x18,
- 0xaf, 0x52, 0x41, 0x67, 0xb1, 0x1b, 0xd6, 0xa8, 0x81, 0x48, 0x47, 0x64,
- 0xf0, 0x35, 0x49, 0x7b, 0x61, 0x48, 0x0c, 0x23, 0xa9, 0xdc, 0x60, 0xd2,
- 0x85, 0xb8, 0x44, 0xbe, 0x50, 0x79, 0xa4, 0x07, 0x5b, 0xb8, 0x7b, 0x0e,
- 0x36, 0x7f, 0xb1, 0xfb, 0x21, 0xf9, 0xcb, 0x11, 0x6c, 0xd0, 0x48, 0x08,
- 0x85, 0x1d, 0xb2, 0x75, 0x77, 0x08, 0x24, 0xa4, 0x32, 0x13, 0xa3, 0x0b,
- 0x23, 0x33, 0x30, 0x48, 0x0c, 0x7c, 0xc2, 0xd4, 0x1a, 0xa8, 0x0c, 0xf8,
- 0xd7, 0x44, 0x46, 0xeb, 0xd0, 0x1b, 0xa7, 0x99, 0x53, 0xae, 0x65, 0xaf,
- 0x0a, 0x17, 0x6e, 0x0e, 0x5b, 0x8c, 0x88, 0x1b, 0xde, 0x5d, 0xc7, 0x83,
- 0xe4, 0x71, 0xa5, 0xb7, 0xf4, 0x0b, 0x0b, 0x67, 0xa3, 0x92, 0x76, 0x3d,
- 0x2b, 0xe5, 0x6a, 0x90, 0x18, 0xa1, 0x42, 0x38, 0x89, 0xa8, 0x29, 0x6f,
- 0x4e, 0x12, 0x43, 0xb9, 0xb9, 0xf4, 0xa2, 0xa2, 0x45, 0x66, 0x62, 0x8a,
- 0x6a, 0x19, 0x11, 0x79, 0x48, 0x9f, 0x92, 0x5b, 0x4e, 0xd6, 0x96, 0x33,
- 0xe5, 0x13, 0x5e, 0x9c, 0xc6, 0x91, 0x0d, 0x9e, 0x90, 0x57, 0x99, 0x8e,
- 0x88, 0x4c, 0x36, 0x78, 0x09, 0x36, 0x7a, 0xc9, 0x06, 0x0f, 0x95, 0xbf,
- 0xd8, 0xc0, 0x7a, 0xe2, 0xe3, 0x60, 0xf9, 0x36, 0x06, 0x1d, 0xa7, 0x90,
- 0x9f, 0x79, 0xf9, 0x45, 0x63, 0x95, 0xf0, 0xb9, 0x35, 0xf5, 0x52, 0x92,
- 0x4c, 0x22, 0x99, 0xdb, 0xde, 0x0d, 0xda, 0x7f, 0x79, 0x58, 0x30, 0x42,
- 0x21, 0x35, 0x13, 0x84, 0xb9, 0x8e, 0xdd, 0x67, 0x39, 0x12, 0x66, 0xa3,
- 0x86, 0x1e, 0x3f, 0xc5, 0x17, 0xc6, 0x8a, 0x5c, 0x08, 0xa8, 0x70, 0x37,
- 0x21, 0x01, 0xe3, 0xbc, 0xb4, 0x9b, 0xb9, 0xe8, 0x7d, 0x77, 0x05, 0xac,
- 0x0c, 0xe0, 0x39, 0xbb, 0x03, 0x64, 0x50, 0xfa, 0x82, 0xbe, 0xae, 0x01,
- 0xa7, 0xbc, 0xaf, 0x63, 0x41, 0xd7, 0x5d, 0x54, 0xae, 0xa9, 0xf4, 0xb6,
- 0xca, 0x5d, 0xbc, 0x6b, 0x91, 0x8f, 0x01, 0xa9, 0xfd, 0xf2, 0x8b, 0x49,
- 0x71, 0xc5, 0x9c, 0xab, 0x47, 0x07, 0x8d, 0x7f, 0x22, 0x20, 0x79, 0x4f,
- 0x3b, 0x95, 0x01, 0xe3, 0xac, 0x88, 0x14, 0x6f, 0x7f, 0xaf, 0x08, 0x51,
- 0x7d, 0xcd, 0xa6, 0xd0, 0xb1, 0xb6, 0xed, 0x9a, 0x96, 0xfd, 0xa0, 0xf6,
- 0xdd, 0x17, 0x61, 0x5f, 0xb6, 0x38, 0xa9, 0xb6, 0x0c, 0xd9, 0x88, 0x38,
- 0x45, 0x2d, 0x57, 0x39, 0x3a, 0x2e, 0x10, 0xe8, 0x56, 0x73, 0x22, 0x74,
- 0x26, 0xa5, 0x21, 0xe9, 0x10, 0x48, 0x5a, 0xdf, 0xc6, 0x17, 0x1b, 0x92,
- 0x23, 0xb0, 0xf1, 0x62, 0x03, 0x1c, 0x8c, 0xf9, 0x92, 0xd5, 0xc0, 0xd3,
- 0xcb, 0x69, 0x43, 0x6e, 0xc5, 0xbe, 0xc8, 0x0e, 0x8a, 0xf8, 0xe7, 0x0f,
- 0x08, 0xae, 0x65, 0xaf, 0x46, 0x86, 0xc1, 0x93, 0x30, 0x13, 0x30, 0xe5,
- 0xca, 0xa8, 0x18, 0xbe, 0x74, 0x54, 0x4b, 0xa0, 0x8c, 0x5e, 0xba, 0x10,
- 0xcb, 0x80, 0x96, 0x52, 0x71, 0xfc, 0x82, 0x98, 0x39, 0x97, 0xf3, 0x05,
- 0xe7, 0xc6, 0x8f, 0x6b, 0xa9, 0x67, 0x89, 0xb3, 0x34, 0x48, 0xde, 0xcd,
- 0xa5, 0x94, 0x40, 0xc6, 0xca, 0x72, 0x5e, 0x8e, 0x97, 0x33, 0x36, 0x55,
- 0x8c, 0xd9, 0x40, 0x86, 0x8b, 0x47, 0xc4, 0x83, 0x86, 0x7b, 0x3e, 0x1c,
- 0xb0, 0x18, 0x47, 0xc4, 0x60, 0xae, 0xfd, 0x22, 0x14, 0x85, 0x03, 0xb0,
- 0xd4, 0x20, 0x0e, 0xa9, 0xc0, 0xa1, 0xa6, 0x28, 0x03, 0x62, 0xcf, 0xe0,
- 0xd1, 0xeb, 0xa3, 0xf3, 0xf3, 0xa3, 0x73, 0x5e, 0xef, 0x83, 0x79, 0xa3,
- 0x6c, 0x9c, 0x83, 0x4e, 0xf5, 0xae, 0x46, 0x0b, 0xfb, 0x8d, 0x21, 0xf4,
- 0x85, 0x15, 0xa6, 0x93, 0x09, 0x83, 0x8c, 0x43, 0x83, 0x10, 0x9c, 0x20,
- 0xa9, 0xd2, 0x1d, 0x9a, 0x17, 0x11, 0xf6, 0xed, 0xdc, 0x06, 0x61, 0xd1,
- 0xc6, 0x40, 0xb6, 0xf0, 0x2d, 0x94, 0x5a, 0x95, 0x74, 0x69, 0x29, 0xf9,
- 0xd7, 0x59, 0x43, 0x4c, 0x1d, 0x68, 0xa4, 0x6e, 0xa6, 0xce, 0xf4, 0xa9,
- 0xb3, 0x4f, 0x60, 0xca, 0x97, 0x7c, 0x46, 0x59, 0x77, 0xc2, 0x62, 0x54,
- 0xf5, 0x72, 0x91, 0x4f, 0x9c, 0xb5, 0x97, 0x3e, 0x27, 0xf1, 0x2f, 0x91,
- 0x53, 0x5e, 0x59, 0xac, 0x0b, 0xbc, 0x9a, 0x66, 0x8c, 0x08, 0xad, 0x6d,
- 0x2d, 0xfc, 0xde, 0x04, 0xd9, 0x72, 0x12, 0x34, 0x66, 0x35, 0x93, 0x9a,
- 0xb9, 0xe5, 0x4a, 0xfb, 0x19, 0xac, 0x8c, 0xcc, 0x2d, 0x2c, 0xfc, 0x26,
- 0xe4, 0x0c, 0x6c, 0xcb, 0x9a, 0xf9, 0x78, 0x77, 0x0e, 0x61, 0xdb, 0x17,
- 0x18, 0x14, 0xa4, 0x94, 0x96, 0xfb, 0xc9, 0x8f, 0x55, 0x3e, 0xfe, 0xd9,
- 0x5f, 0x1e, 0x48, 0xff, 0xf1, 0x21, 0xe9, 0x62, 0xa1, 0xa7, 0xc9, 0xeb,
- 0x42, 0xa9, 0x32, 0x2c, 0xa9, 0xdc, 0xef, 0x86, 0x47, 0xe7, 0xc9, 0xc1,
- 0x57, 0x8c, 0x02, 0xfc, 0xdf, 0xdc, 0x60, 0x7e, 0x4e, 0x6f, 0x87, 0x35,
- 0xc5, 0xe1, 0x53, 0x6c, 0x93, 0xcc, 0x4c, 0xe1, 0x82, 0xcb, 0xd5, 0xd8,
- 0xd9, 0xdc, 0xca, 0x6e, 0xfb, 0xeb, 0xbe, 0xb9, 0x87, 0x6b, 0xc9, 0xa3,
- 0xbb, 0xf8, 0x31, 0x7b, 0xc8, 0x87, 0x2c, 0xdc, 0x45, 0x41, 0x45, 0x12,
- 0x97, 0x84, 0xed, 0x8d, 0x8e, 0xbe, 0x8a, 0xd4, 0x4e, 0xd9, 0xa5, 0x83,
- 0x64, 0xe3, 0x4d, 0xf1, 0x77, 0x12, 0x06, 0xd2, 0xed, 0x27, 0x83, 0x9d,
- 0x64, 0xf3, 0xbb, 0x7c, 0xfe, 0xfc, 0xd9, 0x5f, 0x92, 0xe3, 0xad, 0x8d,
- 0x46, 0x30, 0xbf, 0x54, 0x60, 0x1d, 0xa5, 0xf3, 0x1b, 0xb7, 0x65, 0xa7,
- 0x38, 0xd9, 0x12, 0x54, 0x67, 0x55, 0x59, 0xa4, 0x5c, 0xf4, 0xca, 0x16,
- 0x91, 0xf8, 0xa9, 0x79, 0x01, 0xc9, 0xb7, 0x0e, 0xf2, 0x9a, 0xb5, 0x7c,
- 0x7a, 0x6a, 0xc2, 0x4b, 0xf7, 0xfc, 0x59, 0xd4, 0xc4, 0x53, 0xd7, 0xc6,
- 0x3b, 0x69, 0xe3, 0x17, 0x36, 0xb1, 0x37, 0xd8, 0xd9, 0x4b, 0x36, 0x4f,
- 0x87, 0xdb, 0x7b, 0xae, 0x85, 0xb8, 0x89, 0x3d, 0x34, 0xc1, 0x0f, 0x35,
- 0x5f, 0x7e, 0xca, 0xfd, 0xff, 0x98, 0xcd, 0x7f, 0x4e, 0x36, 0xbf, 0xdf,
- 0xdd, 0xa5, 0x06, 0xfe, 0x92, 0x1c, 0x1c, 0x7f, 0x9f, 0x3c, 0x1d, 0x50,
- 0x63, 0x6f, 0xd3, 0x5b, 0x6d, 0x4e, 0xc1, 0x6c, 0x87, 0x68, 0x84, 0xbe,
- 0x8f, 0xda, 0x78, 0xd6, 0x6a, 0xe3, 0x84, 0xf4, 0xc2, 0x0f, 0x74, 0xad,
- 0xec, 0x0c, 0x9e, 0xec, 0x25, 0xf9, 0xb3, 0xcf, 0x3e, 0xb1, 0x86, 0xb4,
- 0x0d, 0x7c, 0xdf, 0xb4, 0x56, 0x0a, 0x5c, 0x0a, 0x89, 0x3a, 0x47, 0x1f,
- 0x88, 0xa1, 0x81, 0x45, 0xa0, 0x52, 0xc6, 0x75, 0x5a, 0x5a, 0x0d, 0x63,
- 0x2e, 0x77, 0x40, 0x3b, 0xa5, 0x30, 0xd2, 0x19, 0xcc, 0x96, 0x74, 0x71,
- 0xee, 0x47, 0xc3, 0x61, 0xdd, 0xd4, 0x1e, 0xfd, 0x4b, 0xf2, 0x66, 0x78,
- 0x7c, 0x44, 0x33, 0xda, 0xa1, 0xa1, 0xf9, 0x35, 0x94, 0x01, 0xe1, 0x2b,
- 0x2c, 0xee, 0x73, 0xa0, 0x92, 0x6a, 0x1b, 0x61, 0xb5, 0x5d, 0x10, 0x1d,
- 0x5d, 0xdc, 0x15, 0xfa, 0xe5, 0x90, 0x94, 0xfe, 0xc1, 0x15, 0xab, 0x10,
- 0x72, 0xd5, 0xa2, 0xeb, 0x6f, 0x8a, 0x39, 0x1d, 0x93, 0xb2, 0x28, 0x39,
- 0x72, 0x6a, 0xa3, 0x21, 0x2d, 0x7c, 0xf3, 0xea, 0x48, 0x52, 0xea, 0xdf,
- 0xa4, 0x73, 0xe2, 0x91, 0x8c, 0x8e, 0x55, 0xdd, 0xb0, 0xff, 0x5f, 0xdc,
- 0x39, 0xf2, 0xfe, 0xc9, 0xfd, 0xfc, 0x03, 0xed, 0xe3, 0xa7, 0x83, 0x5d,
- 0x0e, 0xd9, 0x66, 0xad, 0xf7, 0xf5, 0x1b, 0xfa, 0x7b, 0xf7, 0xe9, 0x46,
- 0xc2, 0x5f, 0x35, 0x35, 0x78, 0x3b, 0xaf, 0x6b, 0x87, 0xa7, 0xa7, 0xdf,
- 0x1c, 0x4b, 0x00, 0xc8, 0xa1, 0x9a, 0x55, 0x59, 0xb8, 0x72, 0x5a, 0xb1,
- 0x70, 0x57, 0xd2, 0xde, 0x7c, 0xb6, 0x12, 0x9c, 0x71, 0x37, 0x59, 0xb6,
- 0xe0, 0x68, 0x84, 0xba, 0xc5, 0x11, 0x6a, 0xe5, 0xd1, 0x2e, 0xb6, 0x89,
- 0xc5, 0x9f, 0x06, 0xb2, 0x57, 0xc5, 0x50, 0xc9, 0x66, 0xc2, 0x1d, 0xdd,
- 0x3b, 0xd8, 0x8e, 0xd4, 0x97, 0x43, 0xd4, 0xba, 0x29, 0xda, 0x94, 0x99,
- 0xa0, 0xa5, 0xe8, 0x08, 0xbd, 0xa8, 0xba, 0xef, 0xc6, 0x90, 0xa4, 0x7b,
- 0x19, 0xf4, 0xbe, 0x5a, 0x6d, 0x37, 0x02, 0x6c, 0x69, 0x48, 0xb4, 0x0b,
- 0x2d, 0xf5, 0x03, 0xd3, 0xb1, 0x45, 0xd4, 0x1b, 0x6f, 0xae, 0x60, 0xcb,
- 0x46, 0x78, 0xde, 0xdb, 0x83, 0x37, 0x47, 0x2f, 0xbf, 0x3d, 0x38, 0x79,
- 0x77, 0x44, 0xaf, 0xe4, 0x80, 0x71, 0x77, 0x21, 0x7c, 0x18, 0xe3, 0x2c,
- 0x47, 0xa5, 0xdf, 0x8a, 0xc4, 0x83, 0x8d, 0x35, 0x09, 0x2f, 0x4f, 0xd6,
- 0xf9, 0xad, 0x5d, 0x79, 0x8d, 0xe8, 0x82, 0xff, 0xda, 0x93, 0xbf, 0xf6,
- 0xfe, 0xb2, 0xbe, 0xd5, 0x98, 0x74, 0xa4, 0x25, 0x33, 0xbd, 0xdc, 0x49,
- 0xbd, 0x27, 0x0e, 0x0f, 0x92, 0xdc, 0x0d, 0x59, 0x95, 0x75, 0xf3, 0xd1,
- 0x84, 0x45, 0x2f, 0x37, 0x47, 0xf7, 0xa1, 0x0e, 0xbe, 0xce, 0x2f, 0xbd,
- 0x84, 0x80, 0xb1, 0x0e, 0xa0, 0xfb, 0xcc, 0x56, 0x4b, 0xda, 0xb0, 0x26,
- 0xb2, 0x0f, 0x0b, 0x8e, 0x88, 0xdc, 0x5c, 0x97, 0x5f, 0x5e, 0xbe, 0x3a,
- 0xb8, 0x38, 0xe2, 0x17, 0xac, 0x7b, 0xab, 0x6d, 0x60, 0x69, 0x14, 0x3c,
- 0x9e, 0x4d, 0x75, 0x4d, 0xbf, 0xe4, 0x09, 0xad, 0x6f, 0x89, 0x2f, 0x03,
- 0x4e, 0xf5, 0xd6, 0xb8, 0x98, 0xa7, 0x49, 0xe0, 0xb6, 0x4f, 0x53, 0xaf,
- 0x2c, 0x62, 0x65, 0x73, 0x5d, 0xbe, 0x5b, 0x77, 0x16, 0x5c, 0xba, 0xcb,
- 0x37, 0x6e, 0x33, 0x73, 0x57, 0x4e, 0x90, 0x64, 0x11, 0x65, 0xd6, 0x4a,
- 0x48, 0x9a, 0xdf, 0x1f, 0x75, 0x56, 0x88, 0xc5, 0x29, 0x40, 0xdb, 0x76,
- 0x1b, 0xaf, 0x79, 0xf0, 0x6c, 0x63, 0x2a, 0x8a, 0xdd, 0xbd, 0x27, 0x7f,
- 0xc1, 0x7a, 0xbe, 0x5c, 0xdf, 0xa6, 0xbb, 0x61, 0xfd, 0x2f, 0xdc, 0x75,
- 0xee, 0x6b, 0x6a, 0xbb, 0xfd, 0x60, 0x7d, 0x4a, 0x29, 0x4a, 0xc2, 0x65,
- 0x78, 0xd7, 0x03, 0x78, 0x1f, 0x2c, 0xe8, 0x9d, 0x64, 0x89, 0x19, 0x18,
- 0x8e, 0x05, 0x0f, 0x60, 0xbf, 0x46, 0xd9, 0x55, 0x3e, 0x47, 0xa9, 0x3f,
- 0x31, 0xea, 0xa2, 0xbb, 0xf0, 0xfe, 0xe8, 0xc9, 0xbb, 0x32, 0x47, 0x05,
- 0x10, 0xe2, 0x3e, 0x67, 0xf7, 0x96, 0x48, 0x56, 0x55, 0xa6, 0xe2, 0xca,
- 0x9e, 0x45, 0x92, 0xf1, 0x48, 0x6d, 0x3b, 0xa6, 0x8c, 0x40, 0x26, 0x20,
- 0xd6, 0x72, 0x0f, 0x41, 0x09, 0xd1, 0x06, 0x61, 0x90, 0x85, 0xdd, 0xd9,
- 0xe9, 0x88, 0x93, 0xcc, 0x5d, 0x6a, 0x4c, 0xa0, 0x95, 0xbb, 0xa5, 0xb7,
- 0xe3, 0x97, 0x07, 0xc8, 0x4c, 0x7c, 0x51, 0xca, 0x5a, 0x56, 0xce, 0x86,
- 0x04, 0x6f, 0xa3, 0x3e, 0xdb, 0xdc, 0xa7, 0x56, 0x3e, 0x1a, 0xa6, 0x21,
- 0x2a, 0xbd, 0xe8, 0xc7, 0xc4, 0x6a, 0xe6, 0x59, 0xf9, 0x60, 0x80, 0x45,
- 0x87, 0x33, 0x0a, 0x53, 0x0c, 0x22, 0x1d, 0xf8, 0x9d, 0xc1, 0x60, 0xe0,
- 0xeb, 0x92, 0xf3, 0xb6, 0xa8, 0x0f, 0x0a, 0xb5, 0x8c, 0x02, 0xfc, 0x58,
- 0xac, 0xf1, 0x26, 0x84, 0x79, 0x08, 0xd4, 0x5b, 0x1a, 0x78, 0xa3, 0x76,
- 0x02, 0x77, 0x34, 0x02, 0x1b, 0xc7, 0x86, 0x76, 0xbb, 0x61, 0xa0, 0x0d,
- 0x37, 0x5d, 0x9b, 0xf0, 0xc0, 0xd8, 0xc4, 0xf6, 0xa8, 0x05, 0x36, 0x1d,
- 0x9f, 0x2a, 0xdc, 0x5a, 0x30, 0x05, 0x73, 0x00, 0x39, 0xe8, 0x44, 0x32,
- 0x8e, 0x65, 0xd1, 0x74, 0x28, 0x5a, 0x6a, 0x8d, 0x99, 0x5c, 0x71, 0x07,
- 0x10, 0x04, 0x29, 0x56, 0xb3, 0x28, 0x59, 0xd3, 0xe3, 0x35, 0xb6, 0x1b,
- 0x64, 0xe1, 0xc4, 0x66, 0x6d, 0x47, 0xb1, 0x84, 0x59, 0x67, 0x86, 0xec,
- 0xaf, 0x59, 0x8e, 0x0a, 0x47, 0x53, 0x59, 0x12, 0x0f, 0x89, 0x6d, 0xc5,
- 0x0c, 0x6e, 0x2f, 0x9d, 0xbc, 0x37, 0x57, 0x71, 0xb4, 0x59, 0x5f, 0x00,
- 0x5d, 0x2c, 0x11, 0xd1, 0xb8, 0x87, 0x82, 0x7a, 0x3c, 0xe4, 0x2f, 0x1f,
- 0x5b, 0x8b, 0xce, 0x59, 0xde, 0x5a, 0x1b, 0x7f, 0x2b, 0x37, 0x59, 0x17,
- 0xad, 0xa8, 0x58, 0x97, 0x05, 0x3a, 0xc3, 0xf3, 0xbd, 0x24, 0xbd, 0xa3,
- 0xab, 0x67, 0x9e, 0x71, 0x7c, 0x26, 0x22, 0x1d, 0x60, 0x95, 0x39, 0x09,
- 0xec, 0x8c, 0x6e, 0x86, 0x4a, 0xb5, 0x1a, 0xd3, 0xc4, 0x7c, 0x67, 0xdf,
- 0x4a, 0x6c, 0x0b, 0x5c, 0xae, 0x19, 0xf4, 0x72, 0xd4, 0x03, 0x67, 0x78,
- 0x53, 0x95, 0xd4, 0x4d, 0x3d, 0xe7, 0x91, 0x6f, 0xa1, 0x5a, 0xb2, 0x88,
- 0xf3, 0x88, 0x4b, 0x64, 0x3b, 0x87, 0xc4, 0x55, 0xd8, 0x6a, 0xa5, 0xf3,
- 0x49, 0xd0, 0x89, 0xf3, 0x4f, 0xab, 0xf9, 0x89, 0xc3, 0x7b, 0xe7, 0x7d,
- 0x00, 0x5d, 0xb8, 0x62, 0xba, 0xa2, 0x5e, 0x5d, 0x5d, 0x59, 0xe5, 0x9d,
- 0xd6, 0xd4, 0xba, 0x89, 0xec, 0x84, 0x57, 0x85, 0xa3, 0xa0, 0xef, 0x57,
- 0xad, 0xe6, 0x85, 0xd9, 0x7c, 0xcc, 0xea, 0xd2, 0x20, 0x66, 0xf3, 0x49,
- 0xca, 0xbe, 0xd5, 0x2e, 0xe9, 0x0a, 0x09, 0x1a, 0x4d, 0x1f, 0xf2, 0xe9,
- 0xf9, 0x1a, 0x0a, 0x27, 0xcc, 0x3d, 0x20, 0x83, 0x6d, 0x3a, 0xd0, 0xf9,
- 0x7c, 0x04, 0x8a, 0x8f, 0x44, 0xbd, 0x73, 0xa1, 0x56, 0x52, 0x19, 0x70,
- 0x94, 0x7a, 0x95, 0x6b, 0x2d, 0x69, 0x58, 0x7b, 0xb9, 0xa0, 0xca, 0xf1,
- 0x5c, 0xf9, 0x50, 0x71, 0x9b, 0x79, 0x80, 0x48, 0x6f, 0x70, 0xf4, 0x28,
- 0xbb, 0x7a, 0xfa, 0x1d, 0x33, 0x69, 0x39, 0x78, 0x1d, 0xbf, 0xc2, 0x24,
- 0x5b, 0xab, 0x32, 0x48, 0x82, 0x26, 0xc5, 0x54, 0x52, 0x84, 0x2c, 0x5e,
- 0xc6, 0xa6, 0x7e, 0x6b, 0x6b, 0x51, 0x68, 0x44, 0x20, 0x5e, 0x02, 0xd5,
- 0x44, 0x0a, 0x8e, 0x18, 0x52, 0xbe, 0x8b, 0xd1, 0xf3, 0xfe, 0x5f, 0x9b,
- 0xe5, 0xba, 0xdb, 0xa4, 0x75, 0xab, 0x49, 0x00, 0x22, 0x00, 0x0d, 0xb0,
- 0x40, 0xe7, 0x5c, 0xf8, 0x07, 0xd3, 0x94, 0x83, 0x58, 0x0a, 0x89, 0x0e,
- 0xc0, 0x96, 0x81, 0xa8, 0x61, 0x4c, 0x6b, 0xf1, 0xd4, 0xe8, 0xf8, 0xb9,
- 0x68, 0x0d, 0xa1, 0x35, 0x16, 0x52, 0xd0, 0x0c, 0x51, 0x09, 0xa2, 0xb9,
- 0xc7, 0x61, 0x91, 0xed, 0xd5, 0xd8, 0x05, 0xa3, 0xc6, 0x19, 0x7d, 0xec,
- 0xc8, 0x9e, 0x9d, 0x9f, 0x7e, 0x75, 0x7e, 0x34, 0x1c, 0x26, 0x6f, 0x8e,
- 0x2e, 0x44, 0xed, 0xbf, 0x90, 0x28, 0xbc, 0x2b, 0xd6, 0xdc, 0x13, 0xb8,
- 0x1d, 0x0c, 0xcc, 0xc9, 0xa2, 0x4f, 0xcc, 0xa6, 0x80, 0xf4, 0xa7, 0x82,
- 0x5d, 0x6a, 0x10, 0xe5, 0xa0, 0xcf, 0x4f, 0x35, 0x78, 0xef, 0x1a, 0x86,
- 0x7f, 0x84, 0x37, 0xc1, 0x37, 0xe9, 0xec, 0xe8, 0xde, 0xa2, 0x0a, 0x19,
- 0x59, 0x02, 0x9e, 0x5c, 0xfa, 0xa1, 0xb7, 0xa6, 0xf3, 0xed, 0x4d, 0x3f,
- 0x31, 0xbd, 0x3f, 0x24, 0x17, 0x45, 0xcd, 0x15, 0xd4, 0xf9, 0xd7, 0x73,
- 0xa3, 0x8f, 0x3f, 0x24, 0xdf, 0x53, 0x9b, 0x13, 0x5a, 0x75, 0x36, 0x26,
- 0xd3, 0x85, 0x3b, 0x44, 0xe1, 0x53, 0x5f, 0x5f, 0x08, 0xd5, 0x4a, 0x83,
- 0xff, 0xb8, 0x26, 0xf1, 0xa0, 0xbb, 0x3c, 0x4f, 0xa3, 0xbe, 0x8e, 0xe0,
- 0x66, 0x6a, 0x78, 0x9d, 0xeb, 0x59, 0x2b, 0x1a, 0x27, 0xc9, 0x49, 0x76,
- 0x59, 0x43, 0x20, 0xe1, 0xee, 0xa8, 0xb9, 0x1d, 0x06, 0x82, 0xde, 0xe5,
- 0x02, 0x68, 0xf4, 0xeb, 0x93, 0xcf, 0x3e, 0xd9, 0xf9, 0x4c, 0x7e, 0xb5,
- 0x7f, 0x9f, 0x3f, 0xdd, 0x51, 0x40, 0x75, 0xfa, 0xeb, 0xe9, 0xfe, 0xd3,
- 0xdd, 0x7d, 0xc6, 0x79, 0xdc, 0xd9, 0xdf, 0xa1, 0xff, 0x7f, 0xaa, 0x9f,
- 0x30, 0x98, 0xe5, 0xf3, 0xbd, 0xcf, 0x3e, 0x45, 0x60, 0x0c, 0xd3, 0xc7,
- 0x94, 0x3a, 0xe9, 0xd7, 0x45, 0x1f, 0x70, 0x53, 0x10, 0x82, 0xfe, 0xd0,
- 0x34, 0x4a, 0xb2, 0xa7, 0x7d, 0xcc, 0x7e, 0xd5, 0x2b, 0x51, 0x6f, 0xa6,
- 0x19, 0x73, 0x00, 0x35, 0xb0, 0x0a, 0x04, 0x8e, 0x05, 0x8b, 0x4b, 0x06,
- 0xb7, 0x4e, 0x43, 0xdf, 0xae, 0xf1, 0x37, 0xf0, 0xdb, 0x1a, 0xef, 0x48,
- 0xcc, 0x79, 0x00, 0x15, 0xf7, 0x4b, 0xbb, 0xb6, 0x9c, 0xf2, 0x35, 0x00,
- 0xc0, 0xe9, 0x56, 0xe9, 0x7b, 0x63, 0x2b, 0x0a, 0xed, 0x9e, 0x62, 0x89,
- 0x70, 0x26, 0xe9, 0x09, 0x97, 0x12, 0xb9, 0xfc, 0x4b, 0xfb, 0x13, 0x23,
- 0x16, 0xbf, 0xa5, 0xd4, 0x90, 0xc4, 0xbd, 0xb9, 0xb4, 0x84, 0x8e, 0xbe,
- 0x1a, 0xc4, 0xb3, 0xe6, 0xb7, 0xdf, 0xaf, 0x14, 0x73, 0x35, 0x7d, 0xc8,
- 0xa5, 0x73, 0x49, 0x8d, 0xdd, 0x8e, 0x29, 0x47, 0xcd, 0x29, 0x19, 0xfd,
- 0x82, 0xe6, 0xfc, 0x8c, 0x40, 0xc1, 0x6e, 0xe7, 0xfa, 0xc1, 0xe6, 0xe4,
- 0x12, 0xe3, 0x66, 0xab, 0xe1, 0x00, 0x46, 0xed, 0xc6, 0x93, 0x57, 0x1d,
- 0xc9, 0xf6, 0xe5, 0x0d, 0x15, 0x3f, 0x5d, 0x8a, 0x1c, 0x9d, 0xc2, 0xdb,
- 0x02, 0xb7, 0xbd, 0x3c, 0x6f, 0x94, 0x1d, 0x75, 0xc5, 0xd4, 0x18, 0xf4,
- 0xa7, 0x7d, 0xe0, 0x3c, 0xb9, 0x43, 0xf7, 0xe0, 0xd4, 0x7c, 0x98, 0xbd,
- 0xab, 0x31, 0xbc, 0xe9, 0xc2, 0xd6, 0xbb, 0x8e, 0xa4, 0x7f, 0x0e, 0x91,
- 0xec, 0xae, 0xb9, 0xf0, 0x22, 0x42, 0x7d, 0x69, 0xad, 0x90, 0xc1, 0xa8,
- 0xa5, 0x0c, 0xf3, 0xbf, 0x65, 0x2c, 0xac, 0xff, 0x7b, 0x17, 0xc1, 0x85,
- 0x7b, 0x4d, 0xcb, 0x85, 0xa6, 0x42, 0xf9, 0xd3, 0x30, 0xad, 0xd6, 0x71,
- 0xbb, 0x51, 0x5a, 0x36, 0x00, 0xf5, 0xd7, 0xa4, 0xac, 0x04, 0xdd, 0xb4,
- 0x74, 0x73, 0x20, 0xf3, 0x51, 0x44, 0x8a, 0xdf, 0xad, 0xad, 0x0d, 0xcf,
- 0x8e, 0x8e, 0x5e, 0x25, 0x27, 0xc7, 0x6f, 0x8e, 0x2f, 0x02, 0x81, 0xdc,
- 0x5d, 0x24, 0x66, 0x74, 0xb5, 0xe2, 0x53, 0xad, 0xe5, 0xf0, 0xf0, 0xcd,
- 0xd2, 0x9f, 0x5d, 0xe5, 0xb3, 0x4c, 0x13, 0x2a, 0xa6, 0xed, 0xf7, 0xa0,
- 0x7a, 0x03, 0xe3, 0x69, 0x90, 0x7c, 0x19, 0xc4, 0x48, 0x26, 0x15, 0x09,
- 0x37, 0x63, 0x57, 0x79, 0xb9, 0xff, 0x83, 0x86, 0x6c, 0x34, 0x25, 0x27,
- 0x45, 0xa1, 0x75, 0xd9, 0x3d, 0x1a, 0xe6, 0xda, 0x1a, 0x15, 0xaf, 0x6d,
- 0x26, 0x51, 0xd6, 0x81, 0x85, 0x0e, 0x11, 0x7c, 0x77, 0x19, 0x80, 0x0f,
- 0x66, 0xb9, 0xa4, 0x5d, 0x86, 0xe1, 0xc5, 0xae, 0x18, 0xed, 0x45, 0x21,
- 0x7c, 0x3c, 0xec, 0x31, 0xac, 0x32, 0x6e, 0xb1, 0xb5, 0xd6, 0x57, 0x58,
- 0xbe, 0xfa, 0xc9, 0x8e, 0xcb, 0x5c, 0x58, 0x80, 0xe7, 0xa8, 0xa8, 0xcf,
- 0x9d, 0xed, 0x26, 0x24, 0x8f, 0x2c, 0x59, 0xaa, 0x2f, 0x97, 0xf3, 0xe8,
- 0xba, 0xfb, 0x41, 0xde, 0xa5, 0xf9, 0x7f, 0xb2, 0x83, 0xeb, 0xed, 0x32,
- 0x2d, 0xfb, 0x24, 0x79, 0xdd, 0xf7, 0xcd, 0xba, 0x2a, 0x14, 0xa1, 0xa1,
- 0xc7, 0x62, 0xfa, 0xc9, 0x7c, 0xdd, 0xdb, 0x96, 0xb4, 0xe8, 0xd3, 0x4f,
- 0x0a, 0xb8, 0x28, 0xa7, 0x7a, 0x00, 0x78, 0xea, 0x9c, 0xf4, 0x6b, 0xc6,
- 0x4e, 0x2f, 0xeb, 0x78, 0x84, 0x62, 0xdb, 0x45, 0xcf, 0xa3, 0x38, 0x19,
- 0x01, 0x6c, 0x95, 0x5b, 0xcd, 0x79, 0x9a, 0x3a, 0x97, 0x58, 0xb4, 0x9e,
- 0x25, 0xbb, 0x9f, 0xf1, 0x3c, 0x3e, 0x6e, 0x3e, 0xaf, 0x8b, 0x72, 0xec,
- 0xd2, 0x8b, 0xa1, 0x2e, 0x04, 0xb9, 0xa6, 0x92, 0x21, 0x81, 0xb2, 0x4d,
- 0xb2, 0xba, 0x16, 0x1f, 0x8b, 0xf8, 0x3d, 0xd6, 0x4f, 0xd4, 0xb5, 0x0e,
- 0xcb, 0x14, 0x7c, 0xdd, 0x22, 0x21, 0xf1, 0x5d, 0xa3, 0xeb, 0xc2, 0xb6,
- 0x56, 0x89, 0xdf, 0xdb, 0x28, 0x5d, 0x2e, 0xaa, 0x2c, 0x03, 0x5b, 0x47,
- 0x88, 0xd6, 0xee, 0xf2, 0x09, 0xa4, 0x6a, 0x8f, 0x55, 0x47, 0xfb, 0x25,
- 0xc4, 0x27, 0x61, 0xd3, 0x70, 0x5f, 0xc2, 0xef, 0xe9, 0x46, 0xa6, 0x02,
- 0x0c, 0x2f, 0x6b, 0x01, 0xe3, 0xc2, 0x26, 0xe4, 0x07, 0x4e, 0x75, 0xf6,
- 0x2e, 0x02, 0x56, 0xa5, 0x98, 0x35, 0xaf, 0xfb, 0x5e, 0x38, 0x6d, 0xa0,
- 0xae, 0xa7, 0x66, 0x57, 0x78, 0xe3, 0x08, 0xbb, 0x39, 0x67, 0x06, 0x6d,
- 0x09, 0xa6, 0xbd, 0xbb, 0x43, 0xf2, 0xeb, 0xb4, 0x68, 0x54, 0x41, 0x27,
- 0xa2, 0x8a, 0x95, 0x52, 0x4c, 0xab, 0x8f, 0xd5, 0xd9, 0xdd, 0xf9, 0x66,
- 0xf5, 0xaa, 0x03, 0x87, 0xff, 0xc1, 0x97, 0xf7, 0x9e, 0x3e, 0xb0, 0x69,
- 0xa7, 0x25, 0xf4, 0xf2, 0xcc, 0xc2, 0x21, 0x21, 0x08, 0x7a, 0x27, 0x4c,
- 0xb4, 0x6d, 0x44, 0xf8, 0xd9, 0x55, 0xca, 0xc3, 0x7f, 0x68, 0xf4, 0x96,
- 0x1e, 0xd2, 0x1a, 0xca, 0x1b, 0x0d, 0xd0, 0x96, 0x2f, 0x2b, 0xb6, 0x90,
- 0x2d, 0x80, 0xd4, 0xe7, 0xd5, 0x58, 0x97, 0x59, 0x2e, 0x30, 0x0d, 0xc1,
- 0xdb, 0xc2, 0x39, 0x7b, 0x4d, 0x26, 0x61, 0xd4, 0x53, 0x66, 0x57, 0x4b,
- 0x01, 0xc5, 0x28, 0x44, 0xed, 0x67, 0x60, 0x6b, 0x3d, 0xaf, 0xc4, 0x9b,
- 0x39, 0x92, 0x48, 0xe8, 0x09, 0x8c, 0x77, 0x9c, 0x9a, 0xc8, 0x2a, 0x22,
- 0x47, 0xfb, 0x62, 0x60, 0xfb, 0xec, 0x98, 0x1d, 0x62, 0xe0, 0x06, 0x6b,
- 0x49, 0xbb, 0x82, 0xb6, 0x20, 0x37, 0x0e, 0x90, 0xf4, 0x2b, 0x84, 0xe2,
- 0x98, 0x3d, 0x67, 0x98, 0xb1, 0x63, 0xac, 0x16, 0x0f, 0x01, 0x1a, 0xe8,
- 0x29, 0xd5, 0xa2, 0x25, 0xd7, 0x15, 0x73, 0xfc, 0xca, 0x10, 0x34, 0x05,
- 0x6d, 0x9f, 0xed, 0xfe, 0x87, 0xa7, 0x6f, 0x5f, 0x1f, 0x7f, 0xe5, 0x50,
- 0x8d, 0x84, 0x89, 0x37, 0xd0, 0x36, 0xc4, 0x92, 0x1c, 0x3a, 0xbd, 0xb5,
- 0x26, 0xa3, 0x06, 0xe2, 0x12, 0x7b, 0x7a, 0x1f, 0x7e, 0x00, 0x06, 0x32,
- 0x7f, 0xc2, 0xb6, 0x72, 0x81, 0x02, 0xa9, 0xb6, 0xbc, 0xe5, 0xa1, 0x85,
- 0x5a, 0x27, 0x09, 0x1b, 0x69, 0x59, 0x2f, 0x17, 0x2e, 0x9e, 0x30, 0xa8,
- 0xe9, 0xa8, 0x38, 0xdc, 0x96, 0x95, 0xbe, 0x5c, 0x08, 0x6b, 0xd2, 0xdc,
- 0xd2, 0x86, 0x61, 0x57, 0xee, 0x00, 0xb6, 0x2c, 0x28, 0xac, 0x8a, 0x5e,
- 0x00, 0x51, 0x88, 0xce, 0x94, 0xd1, 0x3b, 0xc3, 0xd0, 0x79, 0x73, 0xe5,
- 0x4c, 0x50, 0x17, 0x33, 0xac, 0x7d, 0x3e, 0x13, 0xcd, 0x8c, 0xe7, 0x8d,
- 0xe2, 0xd2, 0x2e, 0x2e, 0xc7, 0x05, 0x02, 0x7b, 0x57, 0x51, 0xe5, 0xaa,
- 0x65, 0xbb, 0x50, 0x25, 0xcb, 0x68, 0x4d, 0xe1, 0xb5, 0x84, 0xdb, 0x13,
- 0x9f, 0xbc, 0x64, 0x0f, 0xcd, 0x3e, 0xa3, 0xd1, 0xcf, 0x04, 0x5b, 0x2e,
- 0xcc, 0x44, 0x55, 0x2e, 0xe9, 0x51, 0xe3, 0x8f, 0x2f, 0x83, 0xe4, 0x36,
- 0x09, 0x19, 0x34, 0xa2, 0x13, 0x73, 0x31, 0xdb, 0x5a, 0x36, 0x7e, 0xbf,
- 0xd1, 0xaf, 0xee, 0x67, 0xa3, 0x62, 0x6a, 0x39, 0x18, 0x0e, 0x4b, 0xc2,
- 0x1e, 0x0a, 0x6b, 0xac, 0x25, 0xe2, 0xb4, 0xad, 0x03, 0x0b, 0xa5, 0x0f,
- 0x9b, 0xf2, 0xe3, 0x97, 0x3a, 0x45, 0xf0, 0x14, 0xd9, 0x2c, 0x00, 0xf3,
- 0xc3, 0x3c, 0x3e, 0x9b, 0x8f, 0xa7, 0x85, 0x52, 0x35, 0xe7, 0x9a, 0x63,
- 0xa5, 0x9a, 0x53, 0x67, 0xe7, 0x5f, 0xb1, 0x64, 0x63, 0x07, 0x6a, 0x90,
- 0x90, 0xb8, 0xb3, 0xae, 0xe0, 0x1a, 0x98, 0x20, 0xbf, 0x2d, 0x5f, 0x68,
- 0x80, 0x7e, 0x00, 0x75, 0x23, 0x45, 0x4b, 0x68, 0xa8, 0x3f, 0x89, 0x6d,
- 0x51, 0x5c, 0x80, 0x3f, 0x58, 0xe7, 0xf6, 0x68, 0x6b, 0xe9, 0x89, 0x9e,
- 0xd2, 0xf2, 0x4a, 0x01, 0xfb, 0xd4, 0xa9, 0x06, 0x25, 0xd1, 0x95, 0x92,
- 0x71, 0x36, 0x4a, 0x16, 0x4a, 0x5c, 0x00, 0x0d, 0xc4, 0xa7, 0xa5, 0xa4,
- 0x17, 0x6a, 0xf2, 0x95, 0x58, 0x27, 0x1d, 0x21, 0x06, 0x1c, 0xe7, 0xf7,
- 0x2e, 0x2c, 0x25, 0xf5, 0x77, 0x99, 0x55, 0xb8, 0xf0, 0xa6, 0x5a, 0xbd,
- 0xcc, 0x82, 0xd7, 0xd8, 0x9e, 0x07, 0x4d, 0x38, 0x53, 0x1b, 0x8a, 0x74,
- 0x05, 0x59, 0x82, 0x21, 0x6e, 0x90, 0x07, 0x94, 0x55, 0xbe, 0x09, 0xf9,
- 0xfe, 0xa5, 0x96, 0xb6, 0xa2, 0xf3, 0xac, 0xa0, 0x29, 0x8a, 0x24, 0xf8,
- 0xd9, 0x8e, 0x5a, 0xe2, 0x6a, 0x8d, 0x5c, 0xad, 0x92, 0x83, 0xf3, 0x23,
- 0x92, 0x6c, 0xaf, 0xe6, 0x80, 0xab, 0x98, 0xd7, 0x96, 0x5f, 0x97, 0xcd,
- 0xb5, 0x96, 0xd6, 0xdc, 0xce, 0x07, 0x77, 0x78, 0x17, 0xbc, 0xc9, 0xc4,
- 0xa4, 0x31, 0x02, 0x92, 0xca, 0xed, 0x49, 0x6e, 0x6c, 0xb8, 0xc2, 0xe0,
- 0x3a, 0x8c, 0x98, 0x20, 0x24, 0xc5, 0xde, 0x12, 0xea, 0xaa, 0x30, 0x4c,
- 0xe1, 0xb3, 0x88, 0xad, 0x87, 0x60, 0xc2, 0xb6, 0xd6, 0x38, 0xd5, 0x3e,
- 0x2b, 0xe1, 0x6f, 0x06, 0xd1, 0xa9, 0x7d, 0x35, 0x3c, 0xa0, 0x9e, 0x9c,
- 0x7a, 0xdd, 0xd6, 0xa3, 0xbf, 0xe1, 0x9e, 0x61, 0x59, 0xa4, 0x2d, 0x17,
- 0x64, 0x2e, 0xd8, 0x5e, 0x0c, 0xd9, 0x93, 0x40, 0xf8, 0x95, 0x6c, 0x40,
- 0x0e, 0xb7, 0x16, 0x1b, 0xb5, 0x82, 0x02, 0xa9, 0x89, 0x47, 0xd4, 0x81,
- 0x89, 0x9e, 0x55, 0xa6, 0x0a, 0x8e, 0x1c, 0x1e, 0x31, 0x70, 0x92, 0x54,
- 0xd1, 0x6e, 0xf0, 0xa7, 0x4e, 0x33, 0xef, 0xef, 0xdd, 0x6c, 0xfd, 0x18,
- 0xdc, 0x97, 0xfc, 0xd1, 0x4b, 0x07, 0x74, 0xc7, 0xa3, 0x18, 0x70, 0x47,
- 0x60, 0xa9, 0x70, 0x9f, 0xf2, 0x2f, 0xf8, 0x18, 0x01, 0x70, 0x06, 0x7c,
- 0x0a, 0xae, 0xe3, 0xd0, 0xb4, 0x0a, 0x75, 0xaf, 0xfa, 0x81, 0x88, 0x8f,
- 0x0f, 0x1c, 0x7a, 0x14, 0x8a, 0xc6, 0xfd, 0x6f, 0xb6, 0xad, 0x1c, 0x2e,
- 0x9b, 0x72, 0x38, 0x97, 0xd8, 0x0e, 0x7c, 0x95, 0x35, 0xea, 0xe7, 0xba,
- 0xa4, 0xa1, 0xf5, 0xfe, 0x3a, 0xad, 0xc5, 0xc6, 0x74, 0xea, 0x19, 0xbe,
- 0x3d, 0xc6, 0xbb, 0x8a, 0xfc, 0x3a, 0x2f, 0x30, 0x29, 0xef, 0xe2, 0xc2,
- 0x1c, 0xf7, 0x8d, 0x6c, 0x07, 0xae, 0x6c, 0xc6, 0xc9, 0x40, 0x0e, 0xe3,
- 0x0b, 0x19, 0x23, 0x88, 0x17, 0xb8, 0xcd, 0x2b, 0xf3, 0x43, 0x12, 0x6d,
- 0x8f, 0x25, 0x3c, 0xa2, 0x16, 0x6c, 0x82, 0xac, 0x1e, 0x07, 0x4b, 0x99,
- 0x8d, 0xaf, 0x0b, 0x09, 0xaf, 0xa5, 0x45, 0x0b, 0x92, 0x3e, 0xd7, 0x93,
- 0xff, 0x54, 0x1a, 0xf8, 0xc6, 0xe7, 0xef, 0x31, 0x21, 0x0c, 0x04, 0x92,
- 0x72, 0xe0, 0x09, 0xe2, 0xe8, 0xfb, 0x8b, 0xf3, 0x83, 0xe4, 0xeb, 0xa3,
- 0x83, 0x57, 0x47, 0xe7, 0xc3, 0xd6, 0xa5, 0xaf, 0x91, 0x20, 0x22, 0xa1,
- 0xb1, 0x3d, 0x18, 0xa2, 0xb1, 0x61, 0x10, 0x68, 0x08, 0xbf, 0x71, 0x3d,
- 0x22, 0x1e, 0x3e, 0x48, 0x74, 0x3e, 0x58, 0x21, 0x12, 0xc7, 0x01, 0x00,
- 0x90, 0x2b, 0x30, 0x1b, 0xd7, 0xc6, 0x98, 0x38, 0x14, 0xc7, 0x33, 0x98,
- 0xf5, 0x3c, 0x4c, 0x9e, 0xf1, 0xb0, 0x7d, 0xfe, 0x32, 0x99, 0x14, 0x96,
- 0x17, 0xd8, 0xdc, 0xb9, 0xaf, 0x7d, 0xea, 0x77, 0xc0, 0xb6, 0xf4, 0x92,
- 0x51, 0x03, 0xe2, 0xfa, 0xf7, 0x7d, 0xea, 0xb7, 0x4f, 0x8b, 0xdf, 0x67,
- 0x5c, 0xc7, 0xfb, 0xac, 0x5a, 0x6f, 0x59, 0x03, 0x9b, 0xdd, 0xaf, 0x49,
- 0x35, 0xa7, 0xe8, 0x24, 0x7d, 0xdd, 0xd9, 0x12, 0x9f, 0x2e, 0x2e, 0xf8,
- 0x1c, 0x69, 0x10, 0xb8, 0x54, 0x03, 0x21, 0x59, 0x4f, 0x50, 0x94, 0xe9,
- 0xa2, 0xb1, 0x4a, 0x5e, 0xcd, 0xd4, 0xd0, 0x30, 0x0c, 0x44, 0xa7, 0x00,
- 0x59, 0x87, 0xce, 0x9e, 0x5c, 0xea, 0x53, 0xc1, 0x6a, 0x16, 0x8b, 0x19,
- 0x0d, 0x4b, 0x1f, 0x0a, 0xef, 0x07, 0xf8, 0x42, 0x34, 0x1c, 0xbf, 0x6a,
- 0xb8, 0x4a, 0xd5, 0x2e, 0xaa, 0x30, 0xde, 0xda, 0x1c, 0x8f, 0xc1, 0xd1,
- 0xbc, 0x45, 0xf1, 0x73, 0x97, 0x56, 0x61, 0x44, 0xdf, 0x95, 0x80, 0x30,
- 0x56, 0xea, 0x61, 0xea, 0x94, 0x52, 0xa5, 0x52, 0xaf, 0x50, 0x18, 0x5b,
- 0x90, 0x16, 0x14, 0x12, 0x33, 0xca, 0xa1, 0x21, 0x90, 0xdc, 0x3d, 0x97,
- 0x25, 0x5f, 0x17, 0x15, 0xee, 0x82, 0xf8, 0x71, 0xbe, 0xe4, 0xbb, 0x96,
- 0x1f, 0x6f, 0xa8, 0xab, 0xcb, 0xe1, 0xc5, 0x02, 0x5e, 0x19, 0xec, 0xeb,
- 0xec, 0xe0, 0xe2, 0x6b, 0x38, 0x5a, 0x41, 0xc2, 0xaf, 0x00, 0x9e, 0x62,
- 0xee, 0xb5, 0x38, 0x3b, 0xcb, 0x29, 0x70, 0x22, 0xff, 0x1a, 0x46, 0xa3,
- 0xc9, 0x93, 0x70, 0xe4, 0xe5, 0x12, 0x93, 0x34, 0x95, 0xf2, 0xb0, 0xe0,
- 0xd1, 0x8d, 0x12, 0x7d, 0x88, 0x82, 0x77, 0xa9, 0x77, 0x2e, 0xf4, 0x72,
- 0x43, 0x72, 0xe2, 0x37, 0x64, 0x4e, 0x20, 0x7a, 0x16, 0xe6, 0x58, 0xe3,
- 0x09, 0x41, 0x88, 0xf1, 0x05, 0x27, 0x3d, 0x8b, 0x2f, 0x6a, 0x52, 0x74,
- 0x43, 0x20, 0x06, 0x47, 0xfa, 0x8b, 0xd9, 0xfd, 0x20, 0xc6, 0xe2, 0x49,
- 0xbe, 0x5c, 0xd6, 0x4d, 0xb6, 0xd2, 0x82, 0x42, 0x76, 0x92, 0x65, 0x59,
- 0x14, 0x75, 0x30, 0x06, 0x48, 0x3f, 0x69, 0xad, 0x27, 0x5a, 0xb0, 0x2e,
- 0x65, 0x2c, 0xdc, 0xd4, 0x5c, 0xe5, 0xee, 0x50, 0x30, 0x4c, 0x47, 0x55,
- 0x31, 0x5d, 0xd6, 0x41, 0x20, 0xf6, 0x2f, 0x1b, 0x73, 0x30, 0xe8, 0xcd,
- 0xe3, 0x81, 0xe1, 0x7e, 0xce, 0x05, 0xad, 0x8e, 0x34, 0x7d, 0x12, 0x2f,
- 0xe1, 0x77, 0x2c, 0x8b, 0x79, 0xb3, 0x8e, 0x1c, 0x62, 0xbe, 0xb7, 0xd6,
- 0xd6, 0x86, 0xb6, 0xd9, 0x8c, 0xfc, 0x1a, 0x6f, 0xfa, 0x77, 0x90, 0x26,
- 0x79, 0x0c, 0xe2, 0x37, 0x18, 0xd3, 0x2f, 0x86, 0x07, 0x97, 0xc9, 0x9e,
- 0x82, 0x85, 0xcb, 0x1e, 0xe7, 0x55, 0x73, 0x52, 0xf8, 0xca, 0x79, 0x2e,
- 0x2c, 0xd5, 0xec, 0xa2, 0x30, 0x4c, 0x7f, 0xf5, 0xdc, 0x79, 0x82, 0x68,
- 0x24, 0xc6, 0x77, 0x82, 0x4d, 0xf3, 0x25, 0x60, 0x45, 0x87, 0x5d, 0x64,
- 0x2e, 0x0f, 0x72, 0xfb, 0xbf, 0xb6, 0x93, 0x5e, 0xa2, 0xf5, 0xe0, 0x3b,
- 0xf0, 0x8e, 0xfe, 0x2f, 0xc4, 0x60, 0x29, 0xd2, 0x2f, 0xb7, 0x39, 0x68,
- 0x62, 0xc9, 0x0e, 0x48, 0x85, 0xba, 0x2e, 0xc7, 0x9e, 0xfa, 0x49, 0x3a,
- 0xc8, 0xee, 0x58, 0x7f, 0x31, 0x1d, 0x41, 0x91, 0x43, 0xa4, 0xee, 0xaf,
- 0xc3, 0x62, 0x02, 0xf2, 0xc6, 0xa5, 0xb3, 0xea, 0x71, 0x09, 0x4e, 0xa9,
- 0x47, 0x29, 0x62, 0x3d, 0xca, 0x31, 0x99, 0x07, 0x55, 0x92, 0xeb, 0x9d,
- 0xde, 0x5e, 0x25, 0x55, 0x21, 0x3f, 0x2d, 0xff, 0x48, 0x63, 0xbc, 0x94,
- 0xfc, 0x83, 0x32, 0x7f, 0x41, 0x7d, 0x5c, 0x0b, 0x3e, 0x95, 0xc0, 0x3a,
- 0xf3, 0x4c, 0xda, 0x20, 0x4d, 0x0a, 0x60, 0xc7, 0x25, 0x10, 0x2e, 0x15,
- 0x84, 0x84, 0x83, 0xca, 0x18, 0xce, 0x58, 0xf2, 0xb7, 0xb9, 0x80, 0xa3,
- 0x69, 0x32, 0x76, 0xa5, 0x5a, 0x46, 0xc7, 0x5a, 0x58, 0x4e, 0x5b, 0x86,
- 0xaf, 0x77, 0x3f, 0xf2, 0xf1, 0xe1, 0xa4, 0xbb, 0x4b, 0x19, 0x32, 0xcd,
- 0x8b, 0x04, 0x36, 0x25, 0x2d, 0x01, 0x2b, 0x71, 0x1c, 0x61, 0x6c, 0x8a,
- 0x0f, 0xde, 0xbc, 0xe2, 0x84, 0x0f, 0x35, 0x49, 0x29, 0xac, 0x09, 0xec,
- 0x5f, 0xd7, 0xb9, 0x86, 0x98, 0xca, 0xaa, 0x37, 0x0b, 0x6c, 0xc2, 0xc2,
- 0xc7, 0xd1, 0x05, 0xde, 0xc1, 0xea, 0x62, 0x20, 0x06, 0xf1, 0x81, 0x19,
- 0x38, 0x80, 0x55, 0xbd, 0x44, 0x8e, 0xc3, 0xf4, 0x72, 0x09, 0xc8, 0x70,
- 0x61, 0xcf, 0x1f, 0xd9, 0x7b, 0xd8, 0x25, 0xc7, 0xb3, 0xce, 0x13, 0xc9,
- 0x25, 0x51, 0xd4, 0x38, 0xbe, 0x50, 0xf6, 0x76, 0xa1, 0x98, 0x4a, 0xf8,
- 0x06, 0x20, 0x4b, 0xad, 0x05, 0x83, 0x4e, 0x6b, 0x2f, 0xfe, 0x56, 0x4f,
- 0x57, 0xc9, 0x25, 0xdf, 0xab, 0xb7, 0x59, 0xe4, 0xc2, 0xc0, 0xef, 0xd4,
- 0x28, 0x24, 0x27, 0x09, 0xdd, 0x55, 0x5d, 0x2e, 0xc7, 0x0d, 0xb4, 0x3e,
- 0x50, 0x44, 0xc3, 0x4b, 0xef, 0xd6, 0xb8, 0x08, 0x75, 0xfb, 0xe3, 0x33,
- 0x55, 0xef, 0x45, 0xfb, 0xe0, 0x91, 0x6d, 0xa6, 0x8d, 0x7c, 0x17, 0x57,
- 0x63, 0x34, 0xec, 0x77, 0xcb, 0x51, 0x59, 0xff, 0xcc, 0x25, 0xd7, 0xb7,
- 0x2a, 0xc5, 0x73, 0xa2, 0x42, 0x70, 0xf7, 0xaa, 0x20, 0x06, 0xc1, 0xa3,
- 0x4c, 0x14, 0x87, 0x11, 0x62, 0x0d, 0x9b, 0x2c, 0xd7, 0x1c, 0x56, 0x22,
- 0x0d, 0xa9, 0xaf, 0x51, 0xab, 0xe2, 0x08, 0xde, 0xa6, 0x85, 0xb4, 0x4a,
- 0x41, 0xae, 0x44, 0x56, 0xe5, 0xf1, 0x16, 0x5b, 0x21, 0xab, 0x40, 0x6b,
- 0x72, 0xf2, 0xa1, 0xe2, 0xc6, 0xe9, 0xfa, 0x0d, 0x92, 0x57, 0x7a, 0x28,
- 0xb4, 0x87, 0xb6, 0x38, 0x11, 0xdf, 0x8d, 0x67, 0x82, 0x8a, 0x12, 0xd1,
- 0xd1, 0x2b, 0xb3, 0xa9, 0x82, 0xe5, 0x60, 0x6d, 0x58, 0xb3, 0xb1, 0x4d,
- 0xa2, 0x75, 0xb5, 0x2e, 0x68, 0x08, 0x3c, 0xe3, 0x8d, 0x69, 0xb6, 0xb3,
- 0x11, 0xd4, 0xf8, 0xda, 0x94, 0xf8, 0xff, 0x02, 0xda, 0x8f, 0xc3, 0x2d,
- 0x14, 0xeb, 0x05, 0xc7, 0xb9, 0x6d, 0x75, 0x0c, 0x85, 0x9a, 0xf8, 0xa5,
- 0x83, 0xd9, 0x7d, 0xbe, 0x37, 0xd8, 0xfd, 0xe4, 0xb3, 0xc1, 0xce, 0x60,
- 0x77, 0x87, 0xf9, 0x0b, 0x0f, 0x25, 0x18, 0x9c, 0xac, 0x4b, 0x47, 0x57,
- 0x8d, 0xf7, 0xe2, 0x3e, 0xdf, 0x1e, 0x5d, 0x7c, 0x77, 0x7a, 0xfe, 0x4d,
- 0x72, 0xfc, 0xf6, 0xe2, 0xe8, 0xfc, 0xf5, 0xc1, 0xe1, 0xc7, 0x62, 0xf7,
- 0x87, 0x66, 0xeb, 0xa0, 0xcc, 0x75, 0xe6, 0x17, 0x26, 0xb6, 0x0d, 0xfa,
- 0x35, 0xcb, 0xea, 0xeb, 0x9d, 0xfd, 0xdd, 0x07, 0xd1, 0xa9, 0x3b, 0xcc,
- 0x83, 0xfe, 0x7d, 0x9b, 0xd4, 0x2e, 0x4f, 0x6a, 0x75, 0x2b, 0x0e, 0xa5,
- 0x71, 0x28, 0x61, 0x56, 0x2e, 0x44, 0x17, 0x6c, 0x1e, 0x55, 0x94, 0x00,
- 0xce, 0xaa, 0x8c, 0x7d, 0x24, 0x38, 0xb8, 0x92, 0x69, 0xab, 0x78, 0x33,
- 0x1a, 0x8e, 0xae, 0x3c, 0x77, 0x4d, 0x4a, 0x4a, 0xd7, 0x6a, 0x4e, 0x11,
- 0x64, 0xdb, 0x09, 0x44, 0x3c, 0xe3, 0xca, 0x9a, 0xc6, 0xc6, 0xd4, 0xa2,
- 0x55, 0x4e, 0x05, 0x7b, 0x70, 0xe2, 0x52, 0x46, 0x1c, 0x20, 0x01, 0xa2,
- 0x20, 0x4c, 0x4e, 0xc7, 0x58, 0x9b, 0x55, 0xc1, 0xc3, 0x48, 0xda, 0x16,
- 0x0c, 0x6b, 0x65, 0x21, 0xce, 0x98, 0x58, 0xc3, 0x34, 0x7a, 0xa8, 0x03,
- 0xc1, 0x69, 0x08, 0x46, 0x23, 0x5d, 0x41, 0xa0, 0x62, 0xbc, 0x34, 0x20,
- 0x45, 0x36, 0xc0, 0x92, 0xe5, 0x8e, 0x42, 0x1a, 0x85, 0xc8, 0x7f, 0x56,
- 0xe0, 0x82, 0x5b, 0xaf, 0x1a, 0x78, 0x85, 0x89, 0x54, 0xb6, 0x0a, 0x5f,
- 0x17, 0x51, 0x1b, 0x81, 0x9a, 0x93, 0x32, 0xbd, 0x43, 0x79, 0x96, 0xdc,
- 0xa3, 0x8f, 0xae, 0x25, 0x8d, 0xf2, 0x5c, 0x2c, 0x38, 0xf9, 0x35, 0x4f,
- 0xce, 0x8e, 0xde, 0xf4, 0xad, 0xa8, 0x30, 0xfd, 0x2e, 0xc6, 0x28, 0x83,
- 0x9a, 0x94, 0x34, 0x9f, 0x45, 0x36, 0xb7, 0xb0, 0x1a, 0xf0, 0x44, 0x8d,
- 0x03, 0x0a, 0x27, 0xc0, 0x87, 0xc6, 0x81, 0x51, 0x6a, 0xf4, 0xa8, 0x85,
- 0x5f, 0x4a, 0x9a, 0x61, 0x1b, 0xa1, 0x93, 0xf7, 0x53, 0x63, 0x97, 0x93,
- 0x4d, 0x17, 0xaf, 0xcb, 0xfd, 0x21, 0x28, 0x15, 0x31, 0x03, 0x2e, 0x4c,
- 0xa0, 0xb0, 0x24, 0xec, 0xb3, 0x6f, 0x0e, 0x87, 0xbf, 0xdf, 0xdd, 0xd3,
- 0xe1, 0x6c, 0x99, 0x56, 0xc0, 0xbc, 0xaa, 0x9d, 0x9f, 0x0f, 0x76, 0x1d,
- 0x8e, 0xd1, 0xb2, 0xad, 0x71, 0xc0, 0xb1, 0x19, 0x9b, 0x2e, 0x47, 0x68,
- 0xab, 0x91, 0x24, 0xb4, 0x26, 0xb5, 0xed, 0x4d, 0xc4, 0x74, 0x85, 0x7f,
- 0xd9, 0x25, 0x82, 0xf2, 0x50, 0x5a, 0xa0, 0xa9, 0x76, 0x51, 0x7f, 0xe9,
- 0xdc, 0x3e, 0x92, 0x96, 0xb5, 0x35, 0xa4, 0x93, 0xfb, 0xc8, 0x96, 0xf6,
- 0x9e, 0xf3, 0x7a, 0xfb, 0x6f, 0x19, 0x32, 0x56, 0x6f, 0x76, 0xc3, 0x06,
- 0xf2, 0xdd, 0xe0, 0x00, 0x68, 0x20, 0xfb, 0xc4, 0x4a, 0xc0, 0xcd, 0x7d,
- 0x45, 0x14, 0x7e, 0xfa, 0x94, 0x36, 0x8a, 0x4e, 0x96, 0x40, 0x38, 0x30,
- 0x53, 0x28, 0xa6, 0xac, 0xba, 0xb8, 0x47, 0x5e, 0x95, 0x5c, 0x7a, 0x66,
- 0x21, 0x21, 0xa5, 0x6f, 0x07, 0xc9, 0xd7, 0xd9, 0x9c, 0x73, 0xe8, 0x39,
- 0xf8, 0xce, 0xd2, 0xb0, 0x10, 0x22, 0xc8, 0x35, 0x28, 0x51, 0x93, 0xef,
- 0x24, 0x4b, 0x15, 0x9e, 0x93, 0x78, 0x5d, 0x25, 0x1a, 0xae, 0xd5, 0xa3,
- 0x4a, 0x39, 0x50, 0x4f, 0xb1, 0x44, 0x1d, 0xee, 0x85, 0xe0, 0x45, 0x73,
- 0x03, 0x9b, 0x4d, 0x8c, 0x4d, 0x54, 0x47, 0x40, 0x73, 0x7a, 0xcc, 0xe1,
- 0x6b, 0x52, 0xab, 0xf2, 0x35, 0x90, 0xb5, 0xd9, 0x5a, 0x28, 0x1a, 0x97,
- 0x67, 0x2a, 0x93, 0xf2, 0x9a, 0x4d, 0x1f, 0x15, 0x5d, 0x37, 0xe9, 0x7c,
- 0x7c, 0x3f, 0x98, 0x90, 0x2c, 0xcb, 0xc6, 0xb3, 0xc1, 0xf2, 0x66, 0x3b,
- 0x38, 0xa6, 0xcc, 0xf2, 0xaf, 0x05, 0x2e, 0xa0, 0x69, 0xf8, 0xb6, 0x62,
- 0xc7, 0x31, 0x8a, 0x58, 0xda, 0x38, 0x13, 0x4c, 0x12, 0x96, 0xf8, 0x2f,
- 0xc7, 0x73, 0x25, 0xde, 0xd6, 0x51, 0xe2, 0xc0, 0x8e, 0xb9, 0x85, 0xc1,
- 0x22, 0x9b, 0xed, 0xbb, 0xc4, 0x64, 0xe3, 0x0f, 0x5a, 0x60, 0xc3, 0x29,
- 0x16, 0x81, 0x91, 0x76, 0x9e, 0x5d, 0x4d, 0x55, 0xa0, 0x08, 0x55, 0x17,
- 0xd7, 0x44, 0x47, 0x36, 0x88, 0x28, 0x3c, 0x5a, 0x2d, 0x09, 0x12, 0x3b,
- 0xd1, 0x61, 0xad, 0xd1, 0xb5, 0xf2, 0x70, 0xc9, 0x02, 0xbd, 0x6f, 0x44,
- 0x41, 0x44, 0x80, 0xbb, 0x8c, 0xc2, 0xf2, 0x62, 0xe2, 0xb1, 0xa0, 0x24,
- 0x75, 0x3f, 0x31, 0x26, 0x2c, 0x28, 0x04, 0x88, 0xee, 0x1a, 0x20, 0x0d,
- 0xe7, 0xa7, 0xd5, 0x14, 0x96, 0xb3, 0x42, 0x5f, 0xdf, 0x3e, 0x61, 0x8b,
- 0xf7, 0xc5, 0xc9, 0xd0, 0xbc, 0x22, 0xf3, 0xec, 0x2e, 0x20, 0x2d, 0xa9,
- 0x42, 0xa0, 0xf4, 0xc7, 0x06, 0x20, 0x41, 0x57, 0x06, 0xf0, 0x01, 0x46,
- 0x22, 0x5c, 0xc1, 0xbb, 0xc9, 0x7c, 0x1e, 0x84, 0x2d, 0x82, 0x46, 0x14,
- 0xf3, 0x50, 0xac, 0xf4, 0x99, 0x08, 0x43, 0x0e, 0xf4, 0x85, 0x61, 0xfc,
- 0x48, 0x58, 0x7a, 0xd2, 0x4b, 0xfa, 0x7b, 0x80, 0xd2, 0xd9, 0x6d, 0x2e,
- 0x62, 0x5a, 0x0b, 0x62, 0x20, 0xb7, 0x41, 0x2d, 0x59, 0x2b, 0xca, 0x0e,
- 0x36, 0x95, 0xa4, 0x6f, 0xe9, 0x7d, 0xfe, 0xb1, 0xa7, 0x13, 0xba, 0xdd,
- 0x45, 0xf0, 0xb6, 0x40, 0x58, 0x4e, 0xef, 0x63, 0x91, 0x61, 0xef, 0xc1,
- 0x5d, 0x45, 0x9a, 0xc4, 0x5d, 0xee, 0xb0, 0xa4, 0xa5, 0x7e, 0x02, 0x4c,
- 0xa1, 0x8a, 0x0e, 0x6a, 0x03, 0xa0, 0x25, 0x54, 0x23, 0xf7, 0x3c, 0xb9,
- 0xdd, 0x33, 0x5f, 0x33, 0x7f, 0x63, 0xeb, 0x26, 0xc6, 0x7a, 0xcf, 0x44,
- 0xa2, 0x0c, 0x46, 0x0e, 0x78, 0x0b, 0xa8, 0x96, 0x13, 0xa0, 0x88, 0x66,
- 0x89, 0x8b, 0x34, 0xb8, 0x4c, 0x31, 0x57, 0xb3, 0x82, 0x64, 0xbf, 0x0b,
- 0x34, 0x3d, 0x2b, 0xf0, 0x41, 0x98, 0x13, 0x82, 0xc0, 0x83, 0xe0, 0xc8,
- 0xe3, 0xb9, 0xcb, 0x99, 0x50, 0x53, 0x3e, 0xd0, 0xfa, 0xb0, 0xfd, 0xd7,
- 0xb9, 0x18, 0x26, 0x10, 0x76, 0x8a, 0xeb, 0x9c, 0x4e, 0xfe, 0x46, 0x42,
- 0x87, 0x69, 0xc9, 0x1c, 0xbf, 0x76, 0x75, 0xd8, 0x86, 0x82, 0xf2, 0xb9,
- 0x11, 0xb2, 0xb9, 0xfe, 0xe7, 0x3c, 0x95, 0x6a, 0xc3, 0xcf, 0x5d, 0xd1,
- 0xce, 0x9b, 0x13, 0x51, 0x3f, 0x87, 0x55, 0x1e, 0x3b, 0x2b, 0xad, 0xc0,
- 0xfa, 0xc6, 0xd1, 0x07, 0x96, 0x71, 0x36, 0xb4, 0x27, 0xf9, 0x5a, 0xd2,
- 0xfb, 0xb1, 0x46, 0x67, 0xc7, 0x6f, 0xa5, 0x64, 0xb8, 0x3b, 0x0b, 0x19,
- 0xa3, 0x30, 0xae, 0x49, 0xb5, 0x7b, 0x8c, 0x27, 0x35, 0x38, 0x78, 0x31,
- 0x1c, 0x31, 0xcd, 0x30, 0x8d, 0xe7, 0xda, 0xd7, 0xf9, 0x52, 0x7a, 0xdf,
- 0xe0, 0x7b, 0xae, 0xaa, 0xa6, 0x1b, 0xad, 0x32, 0xb8, 0x6e, 0x4f, 0x5a,
- 0x17, 0x8a, 0xb3, 0x48, 0x8d, 0x27, 0x5e, 0xc0, 0x47, 0xa9, 0x6f, 0x6e,
- 0xa5, 0xc1, 0xe7, 0x7a, 0xad, 0xa4, 0xc7, 0xd0, 0x14, 0xfe, 0xfb, 0x64,
- 0xb0, 0x4d, 0x1d, 0x56, 0xdb, 0xf6, 0xe2, 0xe2, 0x66, 0x5c, 0xd1, 0x0d,
- 0xc7, 0x19, 0xbe, 0x3f, 0x42, 0x21, 0xc7, 0x76, 0xd0, 0x88, 0x27, 0x3f,
- 0x27, 0xfd, 0xf1, 0x14, 0xf3, 0x4b, 0x50, 0x70, 0xfb, 0x47, 0xda, 0x79,
- 0x7e, 0xe2, 0x67, 0xb7, 0x87, 0xaf, 0x73, 0x3e, 0x6f, 0x1f, 0x7a, 0x36,
- 0xf5, 0x53, 0x51, 0x18, 0x04, 0xea, 0x36, 0x39, 0x98, 0xdc, 0x72, 0xfe,
- 0xdd, 0x44, 0xff, 0xe4, 0xf9, 0x1c, 0xcd, 0x51, 0xaa, 0x14, 0x33, 0x4d,
- 0x47, 0x52, 0x9d, 0xfc, 0xdb, 0x9c, 0x94, 0x8e, 0xc3, 0x96, 0x7c, 0xc1,
- 0xa9, 0x80, 0x3c, 0x40, 0xbc, 0x15, 0x7c, 0x69, 0x79, 0x1d, 0x3d, 0x4d,
- 0x5f, 0xf0, 0x91, 0x7f, 0xcc, 0x9d, 0x79, 0xeb, 0x06, 0xc9, 0x97, 0xec,
- 0xe3, 0x2c, 0xb3, 0x00, 0x08, 0x56, 0x2f, 0x3e, 0x29, 0xe9, 0xc7, 0x9b,
- 0x91, 0x0a, 0x14, 0xc5, 0xc0, 0xcd, 0x24, 0x4a, 0x87, 0x71, 0x73, 0x72,
- 0xdf, 0x34, 0x27, 0x87, 0x71, 0x59, 0x76, 0x3b, 0x4d, 0xc5, 0x52, 0x27,
- 0x92, 0x68, 0x2a, 0x01, 0x44, 0xa5, 0x8c, 0x50, 0x2e, 0xcc, 0x49, 0x66,
- 0x39, 0xfe, 0x45, 0x08, 0xac, 0x62, 0x96, 0x63, 0x34, 0x65, 0x12, 0x81,
- 0x23, 0x09, 0xdc, 0xe1, 0x7e, 0xd4, 0x87, 0xd7, 0xc4, 0x9a, 0x33, 0x37,
- 0xd4, 0xa1, 0x98, 0xf4, 0x6c, 0x88, 0x43, 0xbe, 0xa3, 0x6c, 0x13, 0xdc,
- 0x97, 0x96, 0x28, 0x09, 0x29, 0x74, 0x5b, 0x78, 0x97, 0xa3, 0x5d, 0x59,
- 0xdd, 0xe6, 0x14, 0x38, 0xbf, 0x71, 0xf8, 0xee, 0x0d, 0x57, 0x39, 0x41,
- 0x05, 0xeb, 0x8b, 0xf3, 0x83, 0xb7, 0xc3, 0xd7, 0x62, 0x1a, 0xbf, 0x28,
- 0x82, 0xc2, 0xd8, 0xea, 0x57, 0x30, 0xff, 0xb1, 0x43, 0x8c, 0xbb, 0x93,
- 0xd2, 0x1b, 0x16, 0x5a, 0xaf, 0x55, 0xb3, 0x7b, 0x6d, 0xe8, 0x7d, 0x29,
- 0xb9, 0xcd, 0xab, 0xc1, 0x43, 0xdb, 0x1c, 0x6e, 0x39, 0x41, 0xa8, 0x0a,
- 0xcb, 0xb3, 0xf9, 0xca, 0xf5, 0x06, 0x12, 0xad, 0x0f, 0xf1, 0xb2, 0x1c,
- 0xda, 0x60, 0xec, 0x53, 0xb9, 0x7b, 0x57, 0xe2, 0x92, 0x1e, 0x92, 0xaa,
- 0xd8, 0xd7, 0xa2, 0x35, 0x41, 0x31, 0x3a, 0x67, 0x4e, 0x95, 0xbb, 0x57,
- 0x51, 0xfd, 0x5c, 0xe3, 0x61, 0x0a, 0xa8, 0x35, 0xbd, 0xf9, 0xa7, 0xdd,
- 0xad, 0xee, 0xe6, 0x2f, 0x7e, 0x69, 0xf3, 0xdd, 0x63, 0x37, 0xdd, 0xcc,
- 0x67, 0x17, 0x6d, 0xfe, 0x69, 0x6f, 0xeb, 0xc1, 0x19, 0x85, 0x09, 0x92,
- 0xbe, 0x4f, 0x7a, 0x83, 0x07, 0x9b, 0xbc, 0x94, 0x63, 0xe6, 0x64, 0x26,
- 0x17, 0xa1, 0x13, 0x40, 0x0f, 0x37, 0xb0, 0x3b, 0x38, 0x82, 0xdb, 0x49,
- 0xea, 0xde, 0xf1, 0xa6, 0x89, 0x26, 0xc7, 0xff, 0xfb, 0x28, 0x44, 0x94,
- 0x9c, 0x6f, 0xd4, 0xe1, 0x15, 0xc5, 0x40, 0x01, 0x55, 0x31, 0x40, 0xdf,
- 0x7b, 0x0f, 0xf4, 0xed, 0x67, 0x17, 0x98, 0x25, 0xd8, 0x8b, 0xcd, 0x61,
- 0x70, 0x06, 0x8c, 0xad, 0xfd, 0xac, 0xf9, 0x8a, 0xeb, 0xab, 0xfb, 0xbb,
- 0x38, 0x7e, 0x73, 0xc4, 0x00, 0xda, 0xaf, 0x8e, 0x19, 0x87, 0x6e, 0xa8,
- 0x48, 0x90, 0x66, 0x81, 0x70, 0xe0, 0xbc, 0x61, 0xe1, 0x14, 0x71, 0xef,
- 0xba, 0x68, 0x33, 0xc7, 0x39, 0xdc, 0x4e, 0x70, 0xd7, 0x1a, 0x0e, 0x5d,
- 0x59, 0xd2, 0xe5, 0xf1, 0x65, 0xff, 0x4d, 0x31, 0x81, 0x96, 0xdc, 0x1f,
- 0x22, 0x54, 0x90, 0xde, 0xa2, 0x0f, 0xdf, 0xcd, 0x67, 0x8d, 0x8f, 0x07,
- 0x1d, 0x49, 0xbb, 0x6b, 0xab, 0xea, 0xf3, 0xfc, 0x7d, 0xbb, 0xdf, 0xe7,
- 0xc1, 0xf4, 0x25, 0xac, 0x4b, 0x9d, 0x3b, 0x0d, 0xa8, 0x0e, 0x63, 0x2d,
- 0xb4, 0x40, 0xf9, 0xf4, 0x5e, 0x02, 0x11, 0x52, 0x1f, 0x3e, 0xe6, 0x13,
- 0x39, 0xaf, 0x38, 0x99, 0xcc, 0x9b, 0xf8, 0xc4, 0x88, 0xb7, 0x16, 0xe2,
- 0x98, 0x42, 0x91, 0xca, 0xee, 0x7c, 0xfc, 0x93, 0x96, 0x6f, 0x2e, 0x16,
- 0xf7, 0x98, 0xe5, 0x5d, 0x23, 0xb4, 0xa2, 0xd3, 0xbf, 0xfa, 0x77, 0x79,
- 0xa7, 0x51, 0x91, 0x4a, 0xe1, 0xa6, 0x03, 0x0a, 0xd4, 0x4f, 0xb4, 0x80,
- 0xd3, 0x69, 0x19, 0x5c, 0x57, 0x3a, 0x6c, 0x2b, 0x74, 0x17, 0x60, 0x9c,
- 0x06, 0x90, 0xac, 0xcd, 0x71, 0x86, 0x78, 0xb0, 0x05, 0x67, 0xc1, 0xbe,
- 0x2a, 0x9c, 0x73, 0x8c, 0xd8, 0xce, 0xa2, 0x59, 0x20, 0x39, 0x4b, 0x2c,
- 0xdf, 0x5b, 0xd2, 0xf9, 0x37, 0xfa, 0x1b, 0x28, 0xd1, 0x90, 0xcf, 0x3b,
- 0x26, 0xd3, 0xff, 0xe5, 0xb3, 0x89, 0x5c, 0xaf, 0xc9, 0xfa, 0x25, 0x63,
- 0x62, 0xb0, 0x1f, 0x6b, 0x5d, 0x06, 0x20, 0x90, 0x31, 0x42, 0x5c, 0x74,
- 0x41, 0x30, 0x5f, 0x33, 0x45, 0x52, 0x94, 0x6a, 0x17, 0x19, 0xeb, 0x8c,
- 0xe4, 0x62, 0x95, 0x64, 0x46, 0xba, 0x5c, 0x4c, 0x10, 0x94, 0x21, 0xe1,
- 0xa8, 0xff, 0xce, 0xf8, 0xd8, 0xe5, 0x7d, 0xb2, 0xbb, 0xd7, 0x4b, 0xf6,
- 0x76, 0x76, 0xf7, 0x3a, 0xe6, 0xb0, 0xfe, 0xef, 0x1c, 0x14, 0xb5, 0x87,
- 0xaf, 0xd7, 0x3f, 0x76, 0x16, 0x3e, 0xb5, 0x01, 0x37, 0x89, 0x26, 0x01,
- 0x13, 0xf3, 0x61, 0xff, 0x2c, 0x30, 0x99, 0x51, 0x35, 0x19, 0xc8, 0x76,
- 0xb8, 0xb6, 0xc4, 0x48, 0x68, 0xd5, 0x36, 0x5d, 0x15, 0xb1, 0x09, 0x8a,
- 0xea, 0x48, 0xe1, 0x5a, 0x44, 0xbe, 0x38, 0x4b, 0x69, 0x5a, 0xa2, 0x94,
- 0x68, 0x73, 0x8f, 0xf2, 0xda, 0xb6, 0x85, 0x43, 0x6b, 0x78, 0x6f, 0x88,
- 0xde, 0x5f, 0x1d, 0x1f, 0x5e, 0x18, 0xf4, 0xe1, 0x25, 0x0b, 0x4f, 0xe5,
- 0xfd, 0xc7, 0xd5, 0x65, 0x7c, 0xf0, 0x99, 0xc9, 0xfe, 0x75, 0x46, 0x62,
- 0xf4, 0x7c, 0xb4, 0xbc, 0xda, 0xff, 0x6b, 0x5a, 0x5e, 0x15, 0xf3, 0xc7,
- 0x9e, 0x9f, 0x20, 0xb7, 0x6c, 0x9f, 0x38, 0xd4, 0xee, 0xf3, 0xdd, 0x27,
- 0x92, 0xb8, 0x90, 0xa3, 0x36, 0x10, 0x33, 0x88, 0x8d, 0xd9, 0x86, 0x60,
- 0x6d, 0x20, 0x63, 0xc2, 0x01, 0x6c, 0xcc, 0x27, 0x1b, 0x72, 0xdd, 0xa7,
- 0xe1, 0xb3, 0x13, 0x7d, 0x56, 0xb2, 0xd0, 0x37, 0xd6, 0xa4, 0x4c, 0xca,
- 0x06, 0x67, 0x6c, 0x2e, 0x17, 0x1b, 0x4d, 0xb4, 0xf8, 0x47, 0xe6, 0xca,
- 0x5d, 0xb8, 0x32, 0x94, 0x87, 0x0e, 0x03, 0x1f, 0xc9, 0x44, 0x65, 0x96,
- 0xde, 0xf8, 0x32, 0xca, 0x1e, 0x88, 0xc3, 0x5c, 0x1e, 0xe7, 0xaf, 0x0f,
- 0x05, 0xcc, 0xd4, 0x52, 0xa7, 0xb0, 0xd4, 0x89, 0x33, 0x4d, 0x6d, 0xf1,
- 0x28, 0x1f, 0xe9, 0x9f, 0x73, 0x1b, 0xf6, 0x27, 0xa3, 0x8f, 0x78, 0x88,
- 0xce, 0x9d, 0xe0, 0xc6, 0x1d, 0x34, 0xab, 0xf0, 0xb0, 0xa2, 0x86, 0x52,
- 0x22, 0x56, 0x33, 0x79, 0x53, 0x6a, 0xd2, 0x8a, 0xc7, 0x81, 0x87, 0x66,
- 0x95, 0xa8, 0xcd, 0xba, 0x43, 0xe3, 0xe6, 0x7a, 0xaf, 0xaf, 0x0e, 0xce,
- 0x02, 0x45, 0x17, 0x8a, 0xa4, 0x37, 0xea, 0xf1, 0x73, 0xac, 0xe8, 0xa0,
- 0x24, 0xbb, 0x16, 0x66, 0xea, 0x79, 0x15, 0xa5, 0x06, 0x9f, 0x64, 0xd9,
- 0x08, 0x01, 0xf2, 0x85, 0xde, 0x27, 0xb0, 0x3f, 0xa1, 0xb0, 0xc1, 0x74,
- 0x92, 0xc2, 0x11, 0xaa, 0xb7, 0x10, 0x64, 0x2e, 0xb4, 0x95, 0x6b, 0x34,
- 0x14, 0xed, 0xcd, 0x87, 0x44, 0x93, 0x38, 0x34, 0x5b, 0x45, 0x4b, 0x8f,
- 0xe0, 0x31, 0x4e, 0x50, 0xbe, 0xb7, 0x09, 0x08, 0x7f, 0xa6, 0xc1, 0xa7,
- 0xd5, 0x0d, 0xb1, 0x52, 0x71, 0xe0, 0x53, 0xef, 0xb9, 0xba, 0xc0, 0xd9,
- 0xe8, 0x93, 0x4b, 0x20, 0x0d, 0x9b, 0x9f, 0x00, 0x89, 0xd4, 0xd8, 0x30,
- 0xb9, 0x82, 0x58, 0xe3, 0x9c, 0x56, 0x99, 0x00, 0x18, 0x26, 0x17, 0x77,
- 0x85, 0xa8, 0x18, 0x95, 0x85, 0xd7, 0x4a, 0x28, 0x6a, 0xb5, 0xcc, 0x45,
- 0x8a, 0xa4, 0xcd, 0x03, 0x3f, 0x08, 0x0a, 0xca, 0xae, 0x3b, 0xcb, 0xd7,
- 0x2b, 0xe7, 0xf7, 0x1c, 0xbe, 0xfa, 0x26, 0xe1, 0xd4, 0x7a, 0xee, 0xe3,
- 0x90, 0xa1, 0xfd, 0x39, 0x84, 0x61, 0x06, 0xed, 0xef, 0xab, 0x25, 0x9f,
- 0xf7, 0xc3, 0xeb, 0x74, 0xc1, 0x0a, 0xd0, 0xee, 0x0e, 0x9b, 0x4b, 0xbe,
- 0xb3, 0x24, 0x3d, 0x3e, 0xa8, 0x56, 0xf0, 0xbe, 0x5a, 0x0f, 0x2c, 0x29,
- 0x13, 0xae, 0x57, 0xcf, 0x1a, 0x50, 0xd3, 0x48, 0x4b, 0xd7, 0x67, 0xb5,
- 0x2d, 0x80, 0xfe, 0x15, 0x91, 0x46, 0x59, 0x4d, 0x6e, 0xb6, 0xc7, 0xf4,
- 0xcf, 0x93, 0x9d, 0x6d, 0x60, 0x6a, 0xd6, 0xb0, 0x69, 0x32, 0x4d, 0xee,
- 0xed, 0x3d, 0x7b, 0xd6, 0x4b, 0xd6, 0xd9, 0xca, 0x68, 0x1d, 0xf0, 0x91,
- 0xa0, 0x93, 0xb5, 0xde, 0x55, 0x59, 0x77, 0xbb, 0xbc, 0x1c, 0xf3, 0xff,
- 0xf8, 0x35, 0x2b, 0x28, 0x79, 0xa1, 0x59, 0x37, 0x58, 0x87, 0x79, 0x08,
- 0x93, 0x23, 0x64, 0xc5, 0xdf, 0x1d, 0x3b, 0x3b, 0x12, 0x3b, 0x8d, 0x16,
- 0x59, 0xb1, 0x30, 0xef, 0xf0, 0x4c, 0x4b, 0x85, 0xa0, 0xfb, 0xc0, 0xa5,
- 0x06, 0x7f, 0xbe, 0x84, 0xc3, 0x29, 0x1e, 0x42, 0xb5, 0x1c, 0xf5, 0x35,
- 0x31, 0x58, 0xb4, 0xca, 0x9c, 0x4e, 0x2e, 0xfd, 0x39, 0x35, 0x73, 0x7d,
- 0xc4, 0x91, 0xbf, 0x4c, 0xd6, 0x95, 0xb6, 0xf8, 0xc7, 0x00, 0xce, 0xdd,
- 0x6c, 0xcc, 0xd3, 0x28, 0x5e, 0xea, 0x1f, 0xff, 0xf6, 0x6f, 0xd4, 0xec,
- 0xbf, 0x71, 0x2b, 0x2f, 0xff, 0x54, 0xd5, 0xd7, 0xc1, 0x33, 0xeb, 0x4a,
- 0xf0, 0xc7, 0xde, 0xb5, 0x8d, 0x70, 0x35, 0x20, 0xce, 0x22, 0x7f, 0xed,
- 0xcd, 0x89, 0x72, 0xe4, 0x5e, 0x30, 0xbf, 0x1c, 0x99, 0x85, 0x62, 0x24,
- 0x75, 0xd1, 0x22, 0x5f, 0xb2, 0xdb, 0x39, 0xe3, 0x8c, 0x74, 0xba, 0x48,
- 0x00, 0x28, 0xb8, 0x65, 0x22, 0xc6, 0xd1, 0xdb, 0x6f, 0x8f, 0xcf, 0x4f,
- 0xdf, 0xbe, 0x39, 0x7a, 0x7b, 0x91, 0x7c, 0x7b, 0x70, 0x7e, 0x7c, 0xf0,
- 0xe5, 0x89, 0x26, 0xbe, 0xf3, 0x14, 0x38, 0xc8, 0x47, 0x64, 0xef, 0x16,
- 0x20, 0x6c, 0x90, 0x88, 0xd4, 0x59, 0x46, 0xa4, 0x55, 0x20, 0xf9, 0xbd,
- 0xa2, 0x99, 0x43, 0x13, 0x79, 0x8f, 0x8a, 0x48, 0x3d, 0x16, 0x3e, 0xdf,
- 0x5b, 0x71, 0x24, 0x56, 0x9e, 0xee, 0x83, 0x54, 0x6a, 0x8e, 0x3f, 0x62,
- 0x2a, 0x35, 0xfe, 0xe4, 0xcb, 0x02, 0xba, 0x3a, 0x1b, 0x5f, 0x49, 0x36,
- 0xbe, 0x15, 0x1d, 0xb1, 0x57, 0x35, 0x33, 0x0c, 0x76, 0x37, 0x37, 0x86,
- 0x83, 0x93, 0x13, 0xdf, 0xd5, 0xc3, 0xf5, 0x68, 0x14, 0x89, 0x49, 0x92,
- 0xb7, 0xd0, 0x28, 0x3b, 0x06, 0xaf, 0x0a, 0x0f, 0xcd, 0x3e, 0xbf, 0x0f,
- 0x51, 0xd8, 0xb9, 0x33, 0xda, 0x8e, 0x4d, 0x81, 0xd0, 0x60, 0x2f, 0x31,
- 0x1d, 0xa0, 0xbc, 0xba, 0xe9, 0x25, 0x1b, 0x7f, 0xda, 0xd0, 0x92, 0xe2,
- 0xc0, 0x0d, 0x96, 0x6a, 0x37, 0x5b, 0x7e, 0x50, 0x6f, 0x4f, 0xfd, 0x98,
- 0xd4, 0xf1, 0xe9, 0x06, 0xe0, 0x5e, 0xf4, 0x6e, 0xeb, 0xca, 0xe4, 0x19,
- 0xc4, 0x8b, 0xfa, 0xc7, 0xb5, 0x24, 0x84, 0x43, 0x06, 0x50, 0x1a, 0x65,
- 0xc7, 0x56, 0xe7, 0xbb, 0xd0, 0xda, 0xd2, 0x71, 0x00, 0x0f, 0x8d, 0xb9,
- 0xce, 0xd9, 0xd4, 0xe1, 0xca, 0x74, 0x99, 0x35, 0x90, 0x96, 0x9a, 0x6d,
- 0x7a, 0xea, 0x4e, 0x5c, 0x56, 0xca, 0x41, 0x41, 0x55, 0x1f, 0xb6, 0xad,
- 0xea, 0x0d, 0x7c, 0x8c, 0x9c, 0x0f, 0x50, 0xe6, 0x13, 0x85, 0x1b, 0xec,
- 0xa4, 0x8a, 0x01, 0x5c, 0x53, 0xe7, 0x87, 0x40, 0x67, 0x9f, 0x73, 0x7d,
- 0x46, 0x5f, 0x55, 0x03, 0xb1, 0xc3, 0xc4, 0x45, 0x4a, 0x4e, 0xc8, 0x9b,
- 0xab, 0x10, 0x82, 0x78, 0x5c, 0xc8, 0xe8, 0xe9, 0x55, 0x61, 0xf2, 0x77,
- 0xea, 0x9c, 0xe6, 0xae, 0xf6, 0x58, 0x20, 0xd3, 0x3b, 0x0c, 0x31, 0x67,
- 0xb2, 0x84, 0x7b, 0xdd, 0x1c, 0x04, 0x1c, 0x5e, 0xc6, 0x5b, 0x6e, 0xb5,
- 0xa4, 0xab, 0x20, 0x4b, 0xdb, 0x67, 0x2f, 0x30, 0x2f, 0x91, 0x20, 0x7d,
- 0x03, 0xf5, 0x02, 0x90, 0x9a, 0x65, 0x75, 0x23, 0xd0, 0x11, 0xc3, 0xe2,
- 0x07, 0xd1, 0xa4, 0xc6, 0xac, 0xa2, 0x49, 0xb3, 0x5d, 0xd3, 0xe9, 0x99,
- 0x72, 0x02, 0x99, 0x71, 0xa2, 0x34, 0x19, 0xe5, 0x57, 0x82, 0x0e, 0xc0,
- 0xa9, 0xe8, 0x4c, 0x25, 0x00, 0x7b, 0x23, 0xc5, 0x9e, 0xb7, 0x0a, 0x50,
- 0x6e, 0x90, 0xdd, 0xaf, 0x8b, 0x69, 0x88, 0x37, 0x66, 0x33, 0xa9, 0xb4,
- 0xaa, 0x9a, 0x99, 0x3e, 0xe1, 0xfa, 0x58, 0xf2, 0x3a, 0x5a, 0x34, 0x9a,
- 0x02, 0x95, 0x6b, 0x6c, 0x1e, 0xdb, 0xd4, 0x81, 0x9a, 0x38, 0x47, 0x26,
- 0x90, 0x65, 0x55, 0x63, 0x1d, 0x2c, 0x6e, 0x99, 0xb9, 0x05, 0xec, 0x68,
- 0x5c, 0xf1, 0x71, 0xd3, 0x21, 0x8d, 0x73, 0x2b, 0x63, 0xc1, 0x6a, 0x65,
- 0xa2, 0x17, 0x8f, 0x72, 0xb3, 0x34, 0x90, 0x6e, 0x96, 0xa2, 0x68, 0x11,
- 0x4d, 0xf0, 0xa0, 0x69, 0xa5, 0x36, 0x03, 0xc6, 0x33, 0x27, 0x12, 0x91,
- 0xc7, 0x44, 0x81, 0xd4, 0xbf, 0xfa, 0xae, 0xaa, 0x99, 0xfa, 0x9d, 0xb7,
- 0x7c, 0xdc, 0x81, 0x48, 0x01, 0x4c, 0xad, 0x63, 0xad, 0x2b, 0x09, 0x0f,
- 0x3d, 0x17, 0xc5, 0x04, 0x34, 0x54, 0xc3, 0xf6, 0x98, 0x58, 0xbe, 0xcd,
- 0x74, 0x1a, 0x40, 0x8d, 0x8b, 0x39, 0x22, 0x8d, 0x64, 0x0f, 0x76, 0x0e,
- 0x49, 0x1a, 0xaa, 0x46, 0xfe, 0x08, 0x2c, 0x71, 0x30, 0x11, 0x8d, 0x29,
- 0x67, 0xe9, 0xac, 0x65, 0xd2, 0x0c, 0x18, 0x9a, 0x79, 0xc7, 0xc3, 0x8b,
- 0x49, 0x2b, 0x6b, 0xe4, 0xe9, 0x4c, 0x64, 0x47, 0x4f, 0x7d, 0xb3, 0x7b,
- 0x89, 0x3a, 0x5c, 0x5b, 0x3b, 0x7c, 0x37, 0xbc, 0x38, 0x7d, 0x93, 0x9c,
- 0xbe, 0xbb, 0x38, 0x7b, 0x77, 0xa1, 0x37, 0xd7, 0x48, 0x62, 0xb6, 0x25,
- 0x72, 0x41, 0x84, 0x00, 0xdb, 0xcc, 0x99, 0xfa, 0xf7, 0x11, 0x62, 0x52,
- 0x00, 0x60, 0x30, 0xc0, 0x16, 0x72, 0x39, 0x59, 0x40, 0xdd, 0x12, 0xe4,
- 0x62, 0x2c, 0xf9, 0x1d, 0x2d, 0x39, 0xf2, 0x69, 0x61, 0xc8, 0xb3, 0x14,
- 0x2f, 0xa8, 0x3d, 0x76, 0xd6, 0x9a, 0x55, 0x6b, 0xee, 0x9b, 0x6a, 0x0c,
- 0x9c, 0xf3, 0x4d, 0x2c, 0xa7, 0xb0, 0x78, 0xa6, 0xd8, 0x76, 0xbc, 0xe9,
- 0x27, 0x0c, 0xe9, 0xd4, 0xd2, 0x9b, 0x66, 0x80, 0xb6, 0xa8, 0x5a, 0x84,
- 0x1a, 0x35, 0x13, 0x0b, 0xc3, 0xfc, 0xc6, 0xba, 0xa0, 0x19, 0x5e, 0xbb,
- 0x88, 0x78, 0x8e, 0x22, 0x42, 0x24, 0xa0, 0x04, 0x50, 0x70, 0xc8, 0x9d,
- 0x68, 0x0c, 0xa4, 0x07, 0xb2, 0xcb, 0x22, 0xba, 0x65, 0xef, 0x92, 0x8d,
- 0xef, 0xb2, 0xb0, 0xc1, 0x3f, 0xfc, 0x07, 0xa7, 0x6d, 0xbe, 0xb7, 0x4f,
- 0xfe, 0x21, 0x5d, 0xfe, 0x34, 0xdf, 0x40, 0x00, 0x5d, 0xd3, 0x53, 0xfe,
- 0xcd, 0xd1, 0xf9, 0x97, 0x47, 0xe7, 0xa7, 0x43, 0xf0, 0x03, 0x33, 0x77,
- 0xc5, 0xb4, 0x7e, 0x93, 0x95, 0xa3, 0xac, 0x2c, 0xb4, 0xa2, 0x96, 0xfd,
- 0xf5, 0x6c, 0xfb, 0xab, 0xe1, 0xf0, 0xe0, 0xec, 0xd8, 0xd5, 0xac, 0x71,
- 0x09, 0x64, 0xa2, 0x22, 0xcd, 0x25, 0xc5, 0x91, 0xe7, 0x6f, 0xaf, 0x10,
- 0x5d, 0x8c, 0x6f, 0x24, 0xb0, 0x38, 0xf2, 0x49, 0x9b, 0x5d, 0x9d, 0x9d,
- 0xd1, 0x9a, 0x57, 0xc8, 0x0d, 0x1b, 0x26, 0x54, 0x88, 0x3b, 0x2f, 0x00,
- 0xf1, 0xec, 0x0b, 0xe8, 0xb9, 0x08, 0xbc, 0x9b, 0x72, 0xd4, 0x27, 0x6a,
- 0xbf, 0xb1, 0x12, 0xce, 0x92, 0x07, 0x41, 0xac, 0x52, 0x02, 0xa4, 0xbd,
- 0xad, 0x81, 0x64, 0xba, 0xbc, 0xde, 0xbe, 0xe1, 0xf3, 0xc1, 0xf5, 0x54,
- 0xa6, 0x03, 0xe1, 0xee, 0x72, 0xa0, 0x2c, 0xea, 0x95, 0x59, 0xec, 0x43,
- 0x38, 0x15, 0xd4, 0x9b, 0x2b, 0x82, 0x28, 0xf6, 0x2e, 0xfa, 0xe4, 0xa9,
- 0x03, 0xec, 0x0a, 0x2b, 0x8a, 0x5f, 0x92, 0x00, 0xbe, 0xb8, 0x9b, 0xe8,
- 0x25, 0x02, 0xbc, 0xea, 0xb9, 0xb8, 0x27, 0x84, 0x87, 0xb7, 0x1d, 0x54,
- 0x5c, 0xa8, 0x11, 0x09, 0x1b, 0x1a, 0x8e, 0x9e, 0x8c, 0xa6, 0xe9, 0xfc,
- 0x06, 0xb7, 0x19, 0xee, 0x27, 0x56, 0x39, 0x0d, 0x86, 0x8a, 0x0b, 0x68,
- 0xc2, 0x1f, 0xa9, 0xc8, 0x10, 0x10, 0x02, 0xa7, 0xcc, 0xdc, 0xee, 0xc5,
- 0x96, 0xef, 0xd0, 0xb6, 0x02, 0xcf, 0x1b, 0x8e, 0x93, 0x5f, 0x04, 0x36,
- 0x1d, 0x1d, 0x9d, 0xd0, 0xc5, 0xe4, 0x92, 0x4c, 0xa0, 0xa2, 0x67, 0x53,
- 0x36, 0x05, 0x5b, 0x44, 0x90, 0xe4, 0x55, 0xe6, 0x60, 0x64, 0xc2, 0x3d,
- 0x0c, 0x4a, 0x1d, 0xfe, 0x23, 0x90, 0x0b, 0xd2, 0x47, 0x2b, 0x57, 0x70,
- 0x44, 0x39, 0xb7, 0x30, 0x31, 0xe0, 0x84, 0xfa, 0xfa, 0x23, 0x61, 0x25,
- 0x1c, 0x0d, 0xb7, 0x3b, 0xf4, 0xf1, 0x40, 0xae, 0x34, 0x98, 0x0c, 0xc2,
- 0x8b, 0xa5, 0xce, 0xc3, 0xd8, 0xc8, 0x6e, 0x59, 0xb9, 0x4d, 0xf2, 0x7a,
- 0x97, 0x11, 0x40, 0xe0, 0xcd, 0x26, 0xea, 0xef, 0x70, 0xc8, 0x40, 0x16,
- 0xb2, 0xdc, 0x0c, 0x13, 0xb6, 0x81, 0x4b, 0x34, 0x00, 0x1b, 0x6f, 0xa7,
- 0xb5, 0x39, 0x0d, 0x11, 0xe2, 0xaa, 0x37, 0x70, 0x3d, 0x01, 0xcb, 0x29,
- 0x1b, 0xa0, 0xb5, 0x61, 0x74, 0xae, 0x80, 0x57, 0xc0, 0x36, 0x28, 0xf9,
- 0x1a, 0xd0, 0x62, 0x9c, 0x7c, 0xdb, 0x7f, 0xcb, 0xd7, 0x45, 0xd1, 0x1f,
- 0x2d, 0xa1, 0x97, 0x05, 0x25, 0xbb, 0x24, 0x87, 0x93, 0xd4, 0x35, 0xc1,
- 0x55, 0xc3, 0xf7, 0xec, 0x8f, 0x42, 0x76, 0xbc, 0xb8, 0xa8, 0x90, 0x2e,
- 0xd9, 0xc4, 0xdc, 0x71, 0x48, 0x2b, 0x92, 0x83, 0xe0, 0x6b, 0x09, 0xbb,
- 0x09, 0xea, 0x26, 0xbb, 0x68, 0xc1, 0xb9, 0x16, 0x7c, 0x85, 0x67, 0xa5,
- 0x19, 0x71, 0x5d, 0x3b, 0xe8, 0xfb, 0x0b, 0x88, 0x09, 0x99, 0x02, 0xc2,
- 0x5b, 0x28, 0xb5, 0x25, 0x6e, 0xdc, 0xd6, 0x5c, 0x64, 0x4a, 0x40, 0x22,
- 0xd2, 0xa9, 0x54, 0xec, 0x58, 0x79, 0x95, 0xc8, 0x61, 0xaa, 0x2f, 0x2e,
- 0x7e, 0x38, 0x3b, 0x7a, 0x69, 0x6f, 0x3e, 0xb4, 0x67, 0x82, 0x9d, 0x86,
- 0x98, 0x99, 0x4c, 0xb1, 0x4a, 0x83, 0x32, 0xd9, 0x44, 0x64, 0xfd, 0xda,
- 0x7c, 0xf9, 0xd2, 0x4d, 0x3f, 0xf9, 0xfe, 0xd5, 0xf1, 0xf0, 0xec, 0xe4,
- 0xf4, 0xf0, 0xe5, 0x8b, 0xef, 0x8d, 0x25, 0x7f, 0xce, 0x2e, 0x02, 0x91,
- 0xd3, 0xdc, 0x67, 0x1e, 0xdb, 0x41, 0xdf, 0x7b, 0x7b, 0xf4, 0xdd, 0x7b,
- 0xd2, 0x0e, 0x5e, 0x32, 0xc2, 0x7b, 0xef, 0x36, 0x9d, 0xea, 0x4b, 0xac,
- 0x62, 0x75, 0xc8, 0x76, 0x83, 0x26, 0x18, 0x5f, 0x7b, 0x61, 0x5d, 0xa5,
- 0x52, 0x9f, 0xa7, 0x70, 0x6f, 0x61, 0x74, 0x41, 0x51, 0xaa, 0xb4, 0x91,
- 0x56, 0xdb, 0x51, 0x57, 0xd8, 0x5f, 0xff, 0x1b, 0xb5, 0xc4, 0x54, 0x72,
- 0x08, 0x41, 0xe8, 0x99, 0x47, 0xdc, 0xaa, 0x7e, 0xe3, 0xe3, 0x79, 0x15,
- 0x49, 0xb9, 0xe4, 0x00, 0x16, 0x07, 0x45, 0xa9, 0xc5, 0xaa, 0xe1, 0xf3,
- 0x56, 0xbc, 0x4a, 0x05, 0x61, 0xe2, 0x10, 0x5a, 0x8b, 0xa6, 0x37, 0x3e,
- 0xa6, 0x22, 0x8c, 0x1b, 0x4b, 0x6a, 0x65, 0x73, 0x51, 0x9b, 0xe7, 0xec,
- 0xe8, 0x7c, 0x78, 0x3c, 0xbc, 0x60, 0x35, 0x4a, 0x6b, 0x38, 0xaa, 0x0d,
- 0xda, 0x0a, 0x6c, 0x02, 0xb3, 0xa1, 0x09, 0x3d, 0x1a, 0xd6, 0x0d, 0x69,
- 0x9c, 0x68, 0xc7, 0xe6, 0x9a, 0x49, 0x9c, 0x7c, 0x03, 0x48, 0x66, 0x28,
- 0x0b, 0xa2, 0x02, 0xa0, 0x9b, 0x5e, 0xda, 0x01, 0x2e, 0x94, 0x34, 0x5a,
- 0xe5, 0x33, 0x50, 0xfa, 0x06, 0xbb, 0x33, 0xcd, 0x47, 0x41, 0xd1, 0xec,
- 0xa6, 0x0b, 0x99, 0xa3, 0x13, 0x14, 0xac, 0x23, 0x3c, 0x42, 0x66, 0x0f,
- 0xf7, 0x99, 0xd1, 0x5a, 0xd6, 0x57, 0xaf, 0x35, 0xcd, 0x6a, 0x0c, 0xf3,
- 0x57, 0x9d, 0xa2, 0x0a, 0xe5, 0x24, 0x2c, 0x5f, 0x8e, 0x4f, 0x83, 0x20,
- 0x54, 0xc5, 0x7f, 0x02, 0x74, 0xad, 0xb2, 0x6c, 0x66, 0xca, 0xb9, 0x64,
- 0xa2, 0xb1, 0xa1, 0x85, 0xa4, 0x16, 0x64, 0xd6, 0x23, 0x4e, 0x48, 0x67,
- 0x16, 0x89, 0x20, 0x2a, 0x3a, 0x5e, 0x71, 0x0a, 0x1b, 0x40, 0xb6, 0x26,
- 0x2c, 0x6f, 0xc1, 0x02, 0x17, 0x76, 0x66, 0xd7, 0x29, 0xaf, 0xe0, 0x68,
- 0x19, 0x16, 0x85, 0x73, 0xa3, 0x97, 0xfa, 0x24, 0x58, 0x78, 0x44, 0x48,
- 0xa6, 0x25, 0x50, 0x2c, 0x6b, 0x05, 0x8d, 0x37, 0xc5, 0x47, 0xc3, 0x1d,
- 0x07, 0x4d, 0x3c, 0x1f, 0xa3, 0x4b, 0x2b, 0x5c, 0xfa, 0xd0, 0x8a, 0x06,
- 0x55, 0x24, 0x99, 0x7c, 0xcb, 0xcc, 0xe2, 0x96, 0xc4, 0xcc, 0x50, 0xb1,
- 0xc3, 0x61, 0x3e, 0x76, 0x97, 0x31, 0x27, 0x1d, 0xb1, 0x7f, 0xb1, 0x54,
- 0xac, 0x24, 0x62, 0x7f, 0x6c, 0x59, 0x46, 0xe9, 0x49, 0xd4, 0x64, 0x66,
- 0xaf, 0x9b, 0xe1, 0xe8, 0xf9, 0x30, 0x6e, 0x59, 0xee, 0x80, 0xac, 0xc4,
- 0xbc, 0x7e, 0xaf, 0x1d, 0xba, 0x04, 0x79, 0xdb, 0xac, 0x9e, 0xe4, 0x5b,
- 0xa5, 0x48, 0xef, 0x31, 0xbb, 0x6e, 0x90, 0x26, 0x5a, 0x69, 0xf2, 0xad,
- 0x73, 0x4f, 0x83, 0xe1, 0x35, 0xea, 0xef, 0xf2, 0xec, 0x1a, 0xae, 0x41,
- 0x92, 0x2f, 0x17, 0x28, 0xa6, 0x34, 0x56, 0x34, 0x79, 0x04, 0xed, 0xba,
- 0x06, 0xed, 0x12, 0xf1, 0x8b, 0x45, 0xab, 0xfa, 0xe6, 0xdd, 0xc9, 0xc5,
- 0xf1, 0x59, 0xe8, 0x7e, 0x4c, 0xbe, 0x3b, 0xbe, 0xf8, 0x9a, 0xa4, 0xf6,
- 0xe1, 0xf1, 0xdb, 0xaf, 0x4e, 0xd8, 0xc7, 0xf3, 0xe6, 0xcd, 0xc1, 0x5b,
- 0x46, 0x17, 0x78, 0x8b, 0xc8, 0xc6, 0x03, 0x28, 0x0e, 0xcc, 0x8e, 0x68,
- 0x89, 0x99, 0x76, 0x38, 0xef, 0xbc, 0x17, 0xbb, 0x1a, 0x5a, 0xc7, 0x4f,
- 0xea, 0x2b, 0xcf, 0x9b, 0x8b, 0xb4, 0x86, 0x6a, 0xd9, 0xd0, 0x0c, 0xee,
- 0xd9, 0xb0, 0x83, 0x63, 0xcb, 0xca, 0x16, 0x2f, 0x74, 0x1b, 0x46, 0x1e,
- 0x39, 0x8e, 0x22, 0xa1, 0xc3, 0x8d, 0x2e, 0x77, 0xb7, 0x77, 0x5f, 0x60,
- 0x47, 0x1d, 0x08, 0x2d, 0xf4, 0x18, 0x92, 0x99, 0xe6, 0xaa, 0xd7, 0xc8,
- 0x7d, 0xd9, 0xcc, 0x39, 0xa0, 0x1e, 0x31, 0x24, 0xc4, 0x11, 0x14, 0xde,
- 0x22, 0xc8, 0x1a, 0x27, 0x2b, 0xcd, 0xe7, 0x27, 0xe1, 0x85, 0x3a, 0x68,
- 0x54, 0x1f, 0xb3, 0xf0, 0xc0, 0xab, 0x22, 0xf3, 0x27, 0xb7, 0x7f, 0x6a,
- 0xcd, 0x98, 0xf9, 0x17, 0x6a, 0x98, 0x5c, 0x2e, 0x7d, 0xe6, 0x6b, 0x7d,
- 0xda, 0x92, 0x2d, 0x57, 0x71, 0x48, 0xcd, 0x67, 0xfb, 0x22, 0x56, 0x3a,
- 0x98, 0x65, 0x2b, 0xd4, 0x47, 0xcd, 0x59, 0xcb, 0x1a, 0x8a, 0x82, 0x78,
- 0x6c, 0x4d, 0x6b, 0xd2, 0x39, 0x83, 0x5b, 0xda, 0x63, 0x8d, 0xac, 0x6c,
- 0xb9, 0xef, 0x4e, 0xcd, 0xb4, 0x67, 0x69, 0x6d, 0xae, 0x04, 0x9c, 0xf7,
- 0x9c, 0xa2, 0xc8, 0x5a, 0x51, 0x0c, 0xb2, 0x0f, 0x19, 0x3b, 0x39, 0xf9,
- 0xd7, 0xbf, 0x2e, 0xae, 0xc2, 0x8c, 0x37, 0x29, 0x31, 0xbd, 0xe8, 0xda,
- 0x59, 0xc5, 0x74, 0x16, 0xb1, 0x48, 0xcb, 0xda, 0x35, 0x46, 0xa0, 0xb5,
- 0xea, 0x76, 0x57, 0x75, 0xa8, 0xdf, 0xef, 0xc5, 0xdf, 0xef, 0x89, 0xd9,
- 0xf1, 0xf8, 0xec, 0xf6, 0x13, 0x87, 0x85, 0x2a, 0x79, 0xdc, 0xa1, 0xf8,
- 0x66, 0x42, 0x01, 0x53, 0x18, 0x3f, 0x2a, 0x77, 0x4e, 0x2a, 0x3c, 0x51,
- 0x6c, 0xff, 0x1c, 0x41, 0xb6, 0x2c, 0x91, 0x9f, 0x8a, 0x47, 0x60, 0x26,
- 0x96, 0xb0, 0x5f, 0x04, 0xd9, 0x81, 0x4f, 0xf1, 0x75, 0x45, 0x0d, 0xd2,
- 0xf7, 0x4f, 0x5d, 0x2c, 0xbe, 0xe7, 0x69, 0x28, 0xd7, 0xa6, 0xd9, 0x50,
- 0xfd, 0x7c, 0x71, 0x6b, 0xf5, 0x7e, 0xe9, 0xd7, 0x4f, 0x5c, 0xa9, 0x9e,
- 0xaa, 0xe1, 0xa3, 0x6a, 0xe0, 0x0e, 0x1b, 0xf3, 0xc7, 0xe0, 0x10, 0x16,
- 0xc9, 0x9c, 0xc1, 0x2b, 0x19, 0xad, 0x71, 0x65, 0xcd, 0x80, 0xec, 0xa0,
- 0x60, 0x29, 0x0c, 0xcc, 0x53, 0x64, 0xc6, 0x82, 0x1f, 0x05, 0xcc, 0x25,
- 0xc4, 0xfc, 0xd7, 0x5d, 0xff, 0x71, 0x6f, 0x67, 0x67, 0x77, 0x7f, 0xf7,
- 0xb3, 0xe7, 0x3b, 0xfb, 0xbb, 0xbb, 0xbb, 0x7b, 0xfb, 0xbb, 0xfb, 0xfb,
- 0x7b, 0x3b, 0x3f, 0x6f, 0xb3, 0xfd, 0xe8, 0x36, 0xcf, 0xee, 0xcc, 0x31,
- 0x25, 0xb9, 0x78, 0x20, 0x6b, 0xa9, 0xdb, 0xae, 0x1a, 0xbc, 0xea, 0xb9,
- 0x26, 0xf9, 0x38, 0x54, 0x09, 0x09, 0x99, 0x17, 0x30, 0xb9, 0x85, 0xcf,
- 0x34, 0xc5, 0x19, 0x0c, 0x00, 0xaf, 0x31, 0xaa, 0xbf, 0x2d, 0x79, 0xa6,
- 0x23, 0x16, 0x07, 0x20, 0xd3, 0x54, 0x2e, 0xaf, 0xef, 0x6a, 0x5a, 0x8c,
- 0x46, 0xc8, 0x5c, 0x70, 0xa9, 0xad, 0x83, 0x84, 0x51, 0x55, 0x6f, 0x84,
- 0x24, 0xd4, 0x73, 0x80, 0xa0, 0x42, 0x39, 0xe8, 0x7e, 0x75, 0x44, 0xf0,
- 0xd2, 0x40, 0xea, 0x71, 0xc1, 0x15, 0x06, 0x26, 0xcc, 0x94, 0x68, 0x91,
- 0x4a, 0x97, 0xf2, 0x92, 0x5c, 0x66, 0x9f, 0xed, 0xec, 0xef, 0x73, 0x11,
- 0x90, 0x3f, 0xec, 0xf6, 0x34, 0x1e, 0x34, 0x0c, 0x72, 0xef, 0xb9, 0xeb,
- 0x49, 0xda, 0x60, 0xf5, 0x23, 0x9c, 0xe7, 0x7c, 0x39, 0xcb, 0x4a, 0x52,
- 0x44, 0xb8, 0x8c, 0x2c, 0x02, 0x22, 0x61, 0xf4, 0x16, 0xb4, 0x35, 0x00,
- 0xb2, 0xb4, 0x82, 0xf1, 0xf9, 0x46, 0x10, 0xd4, 0x58, 0x97, 0x84, 0x2e,
- 0x70, 0x41, 0x7e, 0x8a, 0xae, 0x6d, 0x14, 0xc2, 0x81, 0x1d, 0x5f, 0x52,
- 0x59, 0x24, 0x89, 0x47, 0xee, 0x5b, 0xe5, 0x0c, 0x38, 0x5c, 0x73, 0x29,
- 0x6e, 0xca, 0x8f, 0x8b, 0x0c, 0x0f, 0x8b, 0x49, 0x20, 0xdc, 0x6a, 0xfe,
- 0xce, 0x8f, 0xc1, 0x64, 0xf7, 0x9e, 0xed, 0xfe, 0x2c, 0xe1, 0x8a, 0x7c,
- 0x20, 0xfc, 0xaa, 0x69, 0x61, 0xb8, 0x49, 0x98, 0xa1, 0x61, 0x84, 0xb4,
- 0x99, 0x0d, 0xae, 0x06, 0x26, 0x55, 0xa8, 0xb5, 0xb1, 0x17, 0x06, 0x8d,
- 0x0b, 0x62, 0xb9, 0x94, 0x2c, 0x86, 0x9e, 0x66, 0x06, 0x25, 0x33, 0x08,
- 0x8b, 0x31, 0xb3, 0x51, 0xe1, 0x87, 0x6e, 0x98, 0xa3, 0x8b, 0x03, 0xba,
- 0x3c, 0xbe, 0x89, 0x15, 0xfd, 0x37, 0x19, 0x69, 0xe5, 0xbc, 0xd9, 0x9b,
- 0x38, 0x0f, 0xb7, 0x0e, 0x27, 0x98, 0xd7, 0xee, 0x69, 0xb2, 0xc9, 0x3e,
- 0x8b, 0x67, 0x9f, 0x3d, 0x7b, 0xba, 0x25, 0x45, 0x19, 0xe4, 0xb5, 0x8c,
- 0xf3, 0x43, 0x60, 0x95, 0x54, 0x70, 0x1a, 0x36, 0x27, 0x3b, 0x96, 0xf4,
- 0xee, 0xfc, 0x58, 0x8e, 0xf4, 0xb5, 0x60, 0x08, 0x88, 0xd2, 0xdb, 0xc6,
- 0x95, 0xc3, 0x7d, 0x1b, 0x08, 0x19, 0xb3, 0x9c, 0x31, 0x0f, 0x91, 0x7b,
- 0xcd, 0x17, 0xa3, 0xcb, 0xfd, 0xc7, 0x0d, 0x4b, 0x07, 0xb4, 0x40, 0xa9,
- 0x42, 0xad, 0x00, 0x85, 0xc1, 0x00, 0x24, 0x91, 0x31, 0x5a, 0x95, 0xce,
- 0x9c, 0x06, 0xc6, 0x7a, 0x90, 0xf0, 0x23, 0xe1, 0xfe, 0x2d, 0x5c, 0xee,
- 0x2d, 0xf1, 0xf8, 0x43, 0x28, 0x64, 0x32, 0xa4, 0x07, 0x2d, 0x74, 0x94,
- 0x47, 0xdc, 0xc8, 0x46, 0xf3, 0xd2, 0x66, 0x80, 0xe9, 0x64, 0x70, 0x2e,
- 0xca, 0x8a, 0xdc, 0x12, 0x8a, 0x3b, 0xbb, 0x86, 0x65, 0x31, 0x6f, 0x98,
- 0x7c, 0x34, 0x97, 0x1e, 0x39, 0xed, 0x08, 0x39, 0x9e, 0xd1, 0x75, 0x54,
- 0xde, 0xab, 0x84, 0x0d, 0x35, 0xc1, 0x55, 0x56, 0x6b, 0x05, 0x04, 0x08,
- 0x6a, 0x44, 0x18, 0x49, 0xef, 0x40, 0x53, 0x4c, 0x69, 0x6e, 0x0c, 0xa0,
- 0xc1, 0xf6, 0xfb, 0x33, 0xfb, 0x2a, 0x88, 0x97, 0x09, 0xd3, 0xcb, 0xec,
- 0x77, 0x7b, 0x2e, 0x08, 0xa5, 0x4c, 0xdb, 0x13, 0x5b, 0x31, 0x34, 0xc1,
- 0xd6, 0x44, 0xf8, 0x94, 0xd3, 0x7e, 0x36, 0x31, 0x92, 0xed, 0xed, 0xad,
- 0x15, 0xa3, 0xd1, 0xaf, 0xbb, 0x7a, 0x3f, 0x03, 0x26, 0x49, 0x90, 0xd1,
- 0x49, 0x7b, 0xde, 0x6c, 0x9c, 0x97, 0x36, 0xaf, 0x78, 0x27, 0x27, 0x1a,
- 0x17, 0x2b, 0x66, 0x54, 0x53, 0xaf, 0x64, 0xf0, 0xc6, 0xbc, 0x9a, 0x93,
- 0xd0, 0x50, 0x1c, 0xc3, 0x88, 0x92, 0xfa, 0xd2, 0xe2, 0xde, 0x1c, 0x24,
- 0x07, 0x4c, 0x0d, 0x8d, 0x8e, 0x83, 0x21, 0x9b, 0x3d, 0xd7, 0x10, 0xd0,
- 0x4d, 0x88, 0x75, 0xe6, 0xbc, 0x5e, 0xf0, 0xa5, 0x89, 0x79, 0x06, 0x09,
- 0xe0, 0x8c, 0xbd, 0xa3, 0x4c, 0xe0, 0x4f, 0x1c, 0xe7, 0x0c, 0x90, 0x8d,
- 0xf3, 0x79, 0xa3, 0x64, 0xa8, 0x36, 0x02, 0x47, 0xb7, 0x9b, 0x04, 0x40,
- 0x13, 0x4b, 0x03, 0xe3, 0x0d, 0xcb, 0x08, 0x02, 0x81, 0x40, 0x83, 0xda,
- 0x45, 0xb0, 0x76, 0x44, 0x2c, 0xde, 0xd6, 0x91, 0x90, 0x57, 0x63, 0x3d,
- 0x7a, 0x42, 0xf1, 0x12, 0xc4, 0x20, 0xf1, 0xb6, 0x74, 0x48, 0x98, 0x61,
- 0x1c, 0x1c, 0x9f, 0x70, 0x54, 0xdc, 0x09, 0xa9, 0x78, 0x43, 0x13, 0x95,
- 0x10, 0x25, 0x8a, 0x78, 0xbd, 0x79, 0xce, 0xe2, 0x7a, 0xcf, 0x95, 0x1e,
- 0xb1, 0x64, 0x29, 0xe8, 0x2d, 0xec, 0xdc, 0x13, 0xd5, 0x5f, 0x31, 0x02,
- 0x69, 0xb7, 0x48, 0x5e, 0xaa, 0xc4, 0x68, 0x0b, 0x28, 0x5e, 0x06, 0xa9,
- 0x87, 0x23, 0x15, 0x2a, 0xb5, 0xb0, 0x69, 0x54, 0x3e, 0x2a, 0xb3, 0x69,
- 0x76, 0xab, 0xd6, 0x55, 0x01, 0x36, 0xfd, 0x4a, 0x7d, 0x98, 0x52, 0xfa,
- 0xb4, 0xf6, 0xae, 0xd8, 0x86, 0x9b, 0x94, 0xfb, 0xdc, 0x16, 0x4c, 0x18,
- 0x0f, 0xf5, 0xc1, 0xdd, 0x7b, 0x34, 0x7e, 0x73, 0x19, 0xf3, 0x7b, 0x7d,
- 0xd6, 0x71, 0x35, 0xb4, 0xf5, 0x5d, 0xa5, 0x68, 0x0e, 0xed, 0x58, 0x71,
- 0xb1, 0x15, 0x5a, 0xf1, 0x3c, 0x31, 0xbe, 0xf7, 0x0c, 0x2f, 0x59, 0x3c,
- 0x06, 0x7c, 0xf1, 0xf4, 0xd8, 0x50, 0x2b, 0xc5, 0xe0, 0x49, 0x21, 0xe3,
- 0xca, 0x18, 0x3d, 0x49, 0x1c, 0x05, 0x6d, 0x14, 0x53, 0xfa, 0x13, 0xe1,
- 0x54, 0x12, 0x60, 0x49, 0xcf, 0x32, 0xde, 0x6b, 0x10, 0xd1, 0x4a, 0x7f,
- 0x4a, 0x32, 0x84, 0xfe, 0x85, 0xa6, 0xca, 0x25, 0x60, 0x85, 0x7b, 0x72,
- 0x19, 0xb2, 0xd3, 0xb1, 0x1e, 0x0f, 0xdc, 0xe8, 0xd5, 0xe7, 0x2f, 0xe3,
- 0x7f, 0x65, 0x2e, 0x69, 0x13, 0x43, 0x8a, 0xd2, 0x56, 0x57, 0x76, 0x61,
- 0x24, 0xb5, 0x0e, 0xbf, 0x5c, 0xb2, 0x33, 0xcc, 0x55, 0xf2, 0xe1, 0x51,
- 0xcc, 0xf8, 0x2a, 0xca, 0xa4, 0xac, 0xa8, 0x6b, 0x9c, 0x35, 0xba, 0x25,
- 0xed, 0xae, 0xb4, 0x7e, 0x52, 0xdc, 0x71, 0x4d, 0xd4, 0xcb, 0xcb, 0x7c,
- 0xcc, 0x85, 0x6e, 0x3c, 0x7c, 0x30, 0xb3, 0x78, 0x79, 0x70, 0x66, 0x65,
- 0x98, 0x68, 0x6e, 0xc9, 0x62, 0x39, 0x9a, 0xd2, 0x5d, 0x6d, 0xd1, 0xec,
- 0x74, 0xa8, 0xb0, 0x4a, 0xa4, 0x6c, 0xa1, 0x39, 0xf1, 0xe5, 0x43, 0xdf,
- 0x6c, 0x45, 0x50, 0x6b, 0xa1, 0x78, 0x96, 0xc0, 0x67, 0x28, 0x0e, 0xcb,
- 0x61, 0xc6, 0xb3, 0x62, 0x6e, 0xc9, 0x30, 0xcb, 0x4a, 0xc0, 0x24, 0xad,
- 0xaa, 0xfc, 0x9a, 0x78, 0x26, 0xf2, 0xa9, 0xa2, 0xb7, 0xab, 0x66, 0x8e,
- 0x37, 0xc2, 0xc9, 0x4c, 0xfa, 0x8b, 0xeb, 0x85, 0xed, 0xb4, 0xc9, 0x43,
- 0x22, 0x2c, 0x69, 0xfa, 0x05, 0x4e, 0xde, 0xd9, 0xd7, 0x67, 0x83, 0xe4,
- 0x88, 0x5b, 0x92, 0x31, 0xa9, 0x9c, 0x0b, 0x13, 0x0d, 0x7d, 0x47, 0x93,
- 0xbd, 0xe2, 0xfb, 0xeb, 0xb4, 0xe4, 0xbf, 0xd0, 0x9a, 0x7e, 0x29, 0x56,
- 0x59, 0x7c, 0xdb, 0xec, 0x95, 0x1a, 0xb2, 0x20, 0xeb, 0x33, 0xfc, 0x4e,
- 0x47, 0x85, 0xa4, 0x2f, 0xb7, 0x4d, 0xbe, 0x87, 0xa2, 0x6c, 0x40, 0xef,
- 0xc8, 0x9b, 0x09, 0x09, 0x65, 0x10, 0xad, 0x16, 0xf7, 0xd8, 0xbf, 0x80,
- 0x37, 0x8a, 0xf8, 0x29, 0x0d, 0x04, 0xa4, 0xa5, 0xe4, 0xe7, 0xc2, 0xf7,
- 0xe4, 0x5c, 0x95, 0x02, 0x3a, 0x53, 0x66, 0x1a, 0xec, 0x58, 0xa8, 0x97,
- 0x54, 0x0c, 0x1a, 0x55, 0xd6, 0x3a, 0xae, 0x81, 0xfa, 0x66, 0x5f, 0xb0,
- 0xd6, 0xcd, 0x63, 0x21, 0xa1, 0x85, 0xb6, 0x60, 0xb0, 0xf6, 0x7f, 0x03,
- 0x31, 0xca, 0x44, 0xd7, 0x30, 0x81, 0x02, 0x00,
+ 0xc5, 0xbe, 0x71, 0x96, 0x3f, 0x92, 0x17, 0xf6, 0xdb, 0xe7, 0x71, 0x3c,
+ 0x61, 0x02, 0x37, 0x5b, 0x1b, 0xab, 0x0a, 0x62, 0x4b, 0xc2, 0xb7, 0x1f,
+ 0x07, 0x72, 0xfa, 0x92, 0x71, 0x8d, 0xd4, 0x8b, 0x38, 0xe8, 0x35, 0xa8,
+ 0xa2, 0xd9, 0x3b, 0x3f, 0x3b, 0xed, 0xf5, 0xd5, 0x81, 0x47, 0x7d, 0x0c,
+ 0xe8, 0x6f, 0x1a, 0x31, 0x60, 0x83, 0x9f, 0x6d, 0x3f, 0x7b, 0xaa, 0xf6,
+ 0x3d, 0x0c, 0x14, 0x89, 0xbc, 0x71, 0xf9, 0x14, 0x7c, 0xe7, 0xea, 0x9e,
+ 0x03, 0x48, 0xc4, 0x67, 0x2d, 0x12, 0xe5, 0x35, 0x27, 0x29, 0x16, 0x13,
+ 0xad, 0x6f, 0xff, 0x40, 0x2c, 0x88, 0xee, 0x19, 0x78, 0x0a, 0x06, 0x39,
+ 0x8c, 0x62, 0x45, 0x9f, 0xb6, 0x16, 0xd2, 0x8d, 0xe1, 0x85, 0xfd, 0xd6,
+ 0xb5, 0x90, 0xbe, 0x44, 0x3b, 0x26, 0x0d, 0x0a, 0x33, 0x40, 0x2f, 0x5e,
+ 0xe4, 0x6e, 0x84, 0xb9, 0x95, 0xde, 0x14, 0xab, 0xd4, 0x10, 0xcc, 0x71,
+ 0x68, 0x0e, 0x52, 0xc5, 0x65, 0xf2, 0x8b, 0x27, 0x6c, 0x59, 0x61, 0x46,
+ 0xea, 0xe1, 0xc3, 0xa1, 0xb0, 0xed, 0xe9, 0xa1, 0x85, 0x17, 0xfc, 0x6f,
+ 0xe7, 0xb4, 0xf8, 0x0b, 0xaf, 0x74, 0xfe, 0xb6, 0xd3, 0x92, 0x79, 0xb5,
+ 0x56, 0xdd, 0x4d, 0x2e, 0x52, 0x9d, 0xeb, 0xc7, 0xf7, 0xee, 0x76, 0x67,
+ 0xb8, 0xdd, 0xe9, 0xe4, 0x7c, 0xcd, 0xd5, 0x28, 0x9b, 0xe0, 0x6d, 0x3c,
+ 0x1d, 0xc3, 0x7c, 0x66, 0x3f, 0x25, 0x18, 0x84, 0xd3, 0xc1, 0x0c, 0x91,
+ 0x6e, 0x05, 0xbe, 0x20, 0xbf, 0xec, 0x60, 0x23, 0x1a, 0xe5, 0x96, 0x9e,
+ 0x46, 0x27, 0x93, 0x06, 0xb5, 0xf3, 0xeb, 0x06, 0xb5, 0xf3, 0x9b, 0x0e,
+ 0x6a, 0xf7, 0xd7, 0x0d, 0x6a, 0xf7, 0xb7, 0x1a, 0x54, 0x39, 0xb0, 0x54,
+ 0x94, 0x6e, 0x68, 0xf2, 0x33, 0x0d, 0x5a, 0x63, 0xb0, 0xa8, 0x19, 0x03,
+ 0x79, 0x32, 0x3b, 0xbd, 0x50, 0x8e, 0x3e, 0x38, 0xd4, 0x77, 0x7d, 0xe0,
+ 0x90, 0xc8, 0x0c, 0x71, 0xbc, 0xb0, 0xaf, 0x0c, 0x62, 0xa1, 0x96, 0x55,
+ 0xb3, 0x7e, 0xb0, 0xb8, 0x6b, 0x97, 0x73, 0xeb, 0xc6, 0xc7, 0x4b, 0x41,
+ 0xa8, 0x8b, 0xe6, 0x39, 0xce, 0x72, 0x05, 0x4e, 0x7e, 0x2c, 0x2e, 0xfd,
+ 0x93, 0xe6, 0x84, 0x19, 0x88, 0xa8, 0x53, 0x27, 0xb3, 0x62, 0xdd, 0xec,
+ 0xdb, 0xc7, 0x35, 0xc6, 0x4f, 0x4e, 0x96, 0xb3, 0x85, 0x01, 0x84, 0x70,
+ 0x35, 0x10, 0x89, 0x6b, 0x16, 0xcb, 0x22, 0xdd, 0xcd, 0x57, 0x05, 0xfe,
+ 0xe4, 0x71, 0xf6, 0x23, 0xc3, 0x0e, 0x57, 0x37, 0xc3, 0x9d, 0x97, 0x09,
+ 0xa8, 0x2e, 0x27, 0x33, 0xe4, 0x73, 0x29, 0x53, 0x28, 0xc5, 0x9d, 0x8b,
+ 0x00, 0x8b, 0x50, 0x65, 0x58, 0x91, 0xc1, 0xdf, 0x45, 0xae, 0x74, 0x16,
+ 0x99, 0x39, 0x2e, 0x85, 0x43, 0xd8, 0x54, 0x63, 0xe1, 0xd4, 0xc2, 0xb0,
+ 0xd8, 0xab, 0x15, 0x44, 0x5b, 0x61, 0x07, 0xe8, 0xf6, 0xbd, 0x84, 0xd6,
+ 0x69, 0xc4, 0xcf, 0x0c, 0x6e, 0xfb, 0x52, 0xf2, 0x79, 0x54, 0x54, 0x99,
+ 0xa4, 0xc2, 0x60, 0x29, 0x22, 0x9b, 0x51, 0x35, 0xce, 0xf3, 0xdf, 0xd2,
+ 0x49, 0x26, 0xbd, 0xa2, 0x9b, 0x87, 0x37, 0x8c, 0xa3, 0x80, 0xb1, 0x65,
+ 0xba, 0x67, 0x8d, 0x4d, 0x73, 0x7b, 0xc6, 0x5b, 0xe6, 0x76, 0xec, 0xff,
+ 0x9c, 0x0d, 0xa3, 0xff, 0xe7, 0xc2, 0xe6, 0x9c, 0x7e, 0x99, 0x4f, 0x53,
+ 0xd8, 0x92, 0x74, 0x69, 0x04, 0xc4, 0x7a, 0x9a, 0xa5, 0x9c, 0xe7, 0x6f,
+ 0x26, 0xec, 0xeb, 0xec, 0x83, 0x28, 0xff, 0xf1, 0x65, 0x0f, 0xc9, 0x82,
+ 0xa3, 0xcb, 0xe4, 0x6c, 0xed, 0x9f, 0x1f, 0x1c, 0x1d, 0x35, 0x8c, 0x88,
+ 0xbc, 0x6c, 0x92, 0xd0, 0x82, 0x68, 0xb4, 0xa4, 0xe2, 0xdc, 0x1e, 0xaf,
+ 0x5e, 0x75, 0xc1, 0xc1, 0x09, 0x20, 0x2e, 0x17, 0x67, 0x4f, 0xab, 0xdc,
+ 0x32, 0x93, 0x53, 0x09, 0xd6, 0x5a, 0xce, 0xd9, 0x3a, 0xc0, 0x19, 0x1d,
+ 0xd7, 0x4b, 0x92, 0x75, 0xab, 0x7f, 0x36, 0x41, 0x0e, 0x7f, 0x6b, 0xd2,
+ 0xeb, 0xc8, 0xf8, 0x3c, 0x2d, 0x35, 0x29, 0x15, 0x91, 0xe7, 0x88, 0xdd,
+ 0x97, 0xac, 0x4d, 0x86, 0x24, 0x62, 0x25, 0x50, 0x28, 0x90, 0x06, 0x69,
+ 0xe3, 0x45, 0x7d, 0x47, 0x27, 0x21, 0x47, 0x96, 0x11, 0x98, 0xa1, 0xaa,
+ 0x16, 0x97, 0xde, 0x69, 0x71, 0xe9, 0xe5, 0x3c, 0xff, 0x00, 0x1b, 0x28,
+ 0x09, 0x0b, 0x2f, 0x38, 0xeb, 0x72, 0x45, 0x29, 0xd1, 0x03, 0xab, 0x73,
+ 0xe7, 0x50, 0x23, 0x69, 0x11, 0x50, 0x4b, 0x4c, 0x0a, 0x75, 0x25, 0xd2,
+ 0x46, 0x3f, 0xb4, 0x04, 0x80, 0x61, 0x77, 0xd8, 0x1f, 0xe7, 0x59, 0xcd,
+ 0x1e, 0x8c, 0xa6, 0xc2, 0xf1, 0xb4, 0x29, 0x02, 0x2f, 0xfb, 0x56, 0xb6,
+ 0x15, 0xb2, 0xcd, 0xde, 0x4a, 0xd9, 0x2d, 0x48, 0x1a, 0x0d, 0x6a, 0xb6,
+ 0x72, 0x5a, 0x99, 0x49, 0x20, 0x61, 0x89, 0x66, 0x51, 0xea, 0xbd, 0xd4,
+ 0x13, 0xa7, 0xb6, 0xb3, 0x22, 0x74, 0xe2, 0x28, 0x66, 0x30, 0xef, 0x23,
+ 0xca, 0xb3, 0x2e, 0xc7, 0x1a, 0x34, 0x88, 0xdf, 0x07, 0x96, 0x83, 0xdc,
+ 0xc5, 0xa4, 0x50, 0x54, 0x8a, 0xad, 0xd1, 0xf7, 0x8d, 0xca, 0x65, 0x6e,
+ 0x74, 0x7d, 0x03, 0x5b, 0x16, 0xd8, 0xb3, 0x05, 0xe9, 0x2a, 0x5c, 0xb5,
+ 0x0b, 0xb2, 0x76, 0x1a, 0xa9, 0x6d, 0x32, 0x89, 0x6e, 0xd8, 0xd0, 0xb0,
+ 0x4e, 0xae, 0xe4, 0xef, 0xe9, 0xe3, 0x8a, 0xdc, 0xb7, 0x98, 0xe6, 0x35,
+ 0x97, 0xd6, 0x74, 0x25, 0x90, 0x39, 0x00, 0x7e, 0x5c, 0x4c, 0x89, 0xdf,
+ 0x44, 0x9e, 0x87, 0xdc, 0xd5, 0xf6, 0x63, 0x23, 0xf0, 0x6c, 0x51, 0x90,
+ 0x46, 0xac, 0x08, 0xec, 0x62, 0x8f, 0xc3, 0x7b, 0xa6, 0x7b, 0x37, 0x2a,
+ 0xf4, 0xc6, 0x80, 0xc4, 0x0d, 0xb5, 0x12, 0x89, 0x73, 0xb6, 0x19, 0xe3,
+ 0x94, 0x56, 0x14, 0x51, 0x71, 0xdd, 0x69, 0x44, 0x7a, 0xcb, 0x27, 0xdf,
+ 0x10, 0x8d, 0x67, 0x65, 0x41, 0xa7, 0xe1, 0xdb, 0x67, 0x86, 0x45, 0xf0,
+ 0x5d, 0x3e, 0x9f, 0x30, 0x8b, 0x19, 0xa5, 0x72, 0xf8, 0xb0, 0x97, 0xbe,
+ 0xae, 0x69, 0x27, 0xcf, 0x15, 0xa6, 0x68, 0x6f, 0x2a, 0xad, 0x8a, 0xf5,
+ 0x6e, 0xde, 0xde, 0x16, 0x36, 0xec, 0xd0, 0x18, 0x79, 0x66, 0x31, 0x9a,
+ 0xa3, 0x83, 0xcb, 0xb5, 0x8a, 0x85, 0x1e, 0x69, 0x90, 0xb5, 0xaa, 0x62,
+ 0x84, 0xa2, 0x22, 0x34, 0x4a, 0x37, 0xf2, 0x8b, 0x9c, 0x4f, 0x84, 0x95,
+ 0xd9, 0x6e, 0x1f, 0x4f, 0x84, 0x85, 0x4b, 0x41, 0xc4, 0x00, 0x21, 0xb1,
+ 0x25, 0x8f, 0x73, 0xfd, 0xab, 0xea, 0x9a, 0xe3, 0xf2, 0xd9, 0xec, 0x05,
+ 0xfb, 0xdf, 0x5a, 0x77, 0xcc, 0xaf, 0x61, 0x0a, 0xf7, 0x5b, 0x27, 0x21,
+ 0x82, 0x09, 0x31, 0xd2, 0xb4, 0xb8, 0x87, 0x95, 0xa5, 0x97, 0x03, 0xfc,
+ 0x7c, 0x70, 0x70, 0x2c, 0x5d, 0x5f, 0xa3, 0x32, 0x4b, 0xf5, 0x1d, 0x98,
+ 0x45, 0x50, 0xd6, 0x35, 0xbe, 0x18, 0x38, 0xf9, 0xa2, 0x82, 0xb9, 0x18,
+ 0x56, 0x54, 0xa9, 0xb3, 0x78, 0xe9, 0xeb, 0x2c, 0xc4, 0x74, 0xdd, 0x2c,
+ 0xf7, 0x17, 0x6e, 0x18, 0x93, 0xa1, 0x64, 0xb4, 0x25, 0xaf, 0x8a, 0xbb,
+ 0xf9, 0xe0, 0x98, 0xe3, 0x72, 0x93, 0xe3, 0xe2, 0x8a, 0xb5, 0xd6, 0xb7,
+ 0x20, 0xc5, 0x68, 0xd7, 0xde, 0x9d, 0xbe, 0x4d, 0x36, 0xde, 0xf1, 0x9c,
+ 0x4e, 0x9d, 0xcf, 0x8c, 0x1f, 0xdd, 0xd4, 0x92, 0xce, 0xc4, 0x1e, 0x83,
+ 0xaa, 0x0f, 0xfd, 0xe4, 0xf0, 0xfb, 0xfd, 0x37, 0xa7, 0xc7, 0x87, 0x3f,
+ 0xad, 0x50, 0x6a, 0xf9, 0xe3, 0x2f, 0x6c, 0xe8, 0x74, 0xf9, 0x5b, 0x41,
+ 0x1d, 0xba, 0xb4, 0xa7, 0xf7, 0xab, 0x78, 0x81, 0x1c, 0x1f, 0x23, 0xc1,
+ 0xf3, 0xf3, 0xd3, 0xa3, 0x81, 0xe2, 0x32, 0x08, 0x1f, 0x50, 0x98, 0x3c,
+ 0x39, 0xc0, 0x96, 0x8b, 0xf8, 0x4d, 0x1c, 0x8b, 0xec, 0xce, 0x43, 0xdf,
+ 0xc3, 0x62, 0xf7, 0x05, 0x48, 0x9a, 0xa6, 0xd0, 0x0d, 0x45, 0x5e, 0x1b,
+ 0xde, 0xc3, 0x38, 0xb2, 0x08, 0xd5, 0x61, 0xb1, 0xb5, 0x2a, 0x9b, 0x66,
+ 0x8a, 0x46, 0xbb, 0x82, 0x8b, 0x0a, 0x7c, 0x0d, 0x76, 0x11, 0x7e, 0x8a,
+ 0xf6, 0xe8, 0xcc, 0x6f, 0x31, 0x72, 0x5c, 0x4f, 0x7d, 0xfa, 0x42, 0x21,
+ 0xc2, 0x3d, 0xda, 0x45, 0xd3, 0xf6, 0x48, 0x94, 0x59, 0x26, 0x7b, 0xbd,
+ 0xdf, 0x50, 0xd6, 0x7b, 0xe7, 0xc2, 0x0c, 0x7e, 0xc9, 0x75, 0xf2, 0x91,
+ 0xf7, 0x89, 0x56, 0x84, 0x7d, 0xf8, 0x3a, 0xf9, 0xe5, 0x64, 0xa1, 0xf7,
+ 0x83, 0x12, 0x86, 0x50, 0xc6, 0x84, 0x58, 0x8e, 0x50, 0x7f, 0xdb, 0x9d,
+ 0xe4, 0x53, 0x10, 0xf8, 0x06, 0xe9, 0x86, 0x2f, 0x17, 0xbb, 0x8a, 0x4b,
+ 0xdb, 0x0e, 0xf7, 0x3e, 0xd2, 0xcb, 0x3f, 0x8a, 0x12, 0x40, 0x08, 0xa1,
+ 0xbf, 0x4a, 0xf7, 0x3d, 0x8e, 0x22, 0xfc, 0x58, 0x3a, 0x78, 0xf7, 0xdb,
+ 0xd2, 0x01, 0xca, 0xc3, 0xbf, 0x78, 0x77, 0x76, 0xbc, 0x72, 0xcb, 0x53,
+ 0xb5, 0x42, 0x33, 0x73, 0xbf, 0xcc, 0xea, 0xf1, 0x75, 0x33, 0x41, 0x8f,
+ 0xcb, 0x34, 0x15, 0x15, 0xc7, 0xf0, 0x32, 0x57, 0xbe, 0x77, 0x50, 0x2a,
+ 0x51, 0xba, 0xa9, 0x0a, 0xde, 0xda, 0x2c, 0x35, 0xc9, 0xe9, 0xf0, 0x08,
+ 0xec, 0x0e, 0xa0, 0x7f, 0x1f, 0x94, 0x58, 0x15, 0x9e, 0x52, 0xb0, 0x8d,
+ 0x1b, 0xf0, 0xac, 0x0a, 0x1d, 0xca, 0x6c, 0xd2, 0x55, 0x25, 0x15, 0x0b,
+ 0x7f, 0x27, 0x10, 0x0c, 0xe6, 0xc3, 0xe8, 0x21, 0xe2, 0xc9, 0xed, 0xbb,
+ 0x84, 0xbf, 0x41, 0xc1, 0xc7, 0x42, 0x75, 0x05, 0xcd, 0xd1, 0x68, 0x60,
+ 0x2a, 0x74, 0x79, 0xb2, 0xd4, 0x93, 0xea, 0x84, 0xe3, 0x86, 0xf4, 0xdc,
+ 0x7a, 0xe1, 0xcb, 0x4c, 0x4a, 0x2c, 0x99, 0xb0, 0xba, 0x55, 0xa7, 0xd3,
+ 0x1b, 0x49, 0xba, 0x27, 0x65, 0xa0, 0x54, 0x30, 0x01, 0x43, 0x5a, 0xd3,
+ 0xf4, 0x1f, 0x62, 0xd4, 0x0c, 0xdc, 0xdb, 0x89, 0xa5, 0x3c, 0x5a, 0x5e,
+ 0x5d, 0x79, 0xfd, 0xb8, 0xca, 0x32, 0x29, 0x53, 0x4c, 0xd2, 0xef, 0x7a,
+ 0x95, 0x88, 0xe6, 0x45, 0x2b, 0xd7, 0x5b, 0xce, 0x27, 0x0a, 0x3a, 0x7c,
+ 0x5d, 0x14, 0x93, 0xde, 0x30, 0xd9, 0x87, 0x98, 0x1c, 0xc3, 0xa1, 0x94,
+ 0xde, 0xd2, 0xb1, 0xfe, 0xf9, 0xba, 0x26, 0x4c, 0xf7, 0xb4, 0xd2, 0x39,
+ 0xeb, 0x70, 0x3d, 0xd1, 0xa1, 0x18, 0x50, 0x8f, 0x4f, 0x0a, 0x5d, 0x87,
+ 0xeb, 0x2f, 0xd6, 0x93, 0xce, 0x8c, 0x7c, 0x7b, 0x4d, 0xdf, 0x53, 0x13,
+ 0x82, 0xc0, 0xb3, 0x8d, 0x9d, 0x0f, 0x92, 0xf6, 0xe1, 0x3a, 0x27, 0x81,
+ 0x57, 0x5d, 0x52, 0x0c, 0x6f, 0x20, 0x51, 0x20, 0x6d, 0x61, 0x0c, 0x35,
+ 0xaf, 0x44, 0xba, 0x6f, 0x0d, 0xf4, 0x4f, 0x36, 0x50, 0xab, 0x35, 0x05,
+ 0x40, 0xc5, 0xcb, 0x22, 0xf1, 0xf8, 0x69, 0x31, 0xbe, 0x1d, 0x8f, 0x20,
+ 0x76, 0x42, 0xc3, 0xe7, 0x2b, 0x06, 0x3b, 0x4e, 0xfe, 0x01, 0x6b, 0x10,
+ 0x03, 0x31, 0x28, 0x58, 0x72, 0xbf, 0xb5, 0x1e, 0xb9, 0xc9, 0x4a, 0x42,
+ 0x2f, 0xb4, 0xe9, 0x79, 0x0c, 0x3b, 0x6f, 0xe2, 0x96, 0x53, 0xdb, 0x7c,
+ 0x99, 0x19, 0xc0, 0x08, 0x95, 0x9c, 0x5b, 0x58, 0x00, 0xfc, 0xef, 0xb2,
+ 0xa3, 0x64, 0x8e, 0x32, 0x45, 0x73, 0xbb, 0x06, 0x65, 0x35, 0x6b, 0xc9,
+ 0xee, 0x96, 0xec, 0x0f, 0x56, 0x8f, 0xf1, 0x60, 0x36, 0x97, 0xe2, 0xe2,
+ 0xea, 0xce, 0xe8, 0xc7, 0x50, 0xde, 0x82, 0x02, 0x61, 0x19, 0xd8, 0x4e,
+ 0x79, 0x6a, 0x2a, 0xff, 0x16, 0x28, 0xf1, 0x6b, 0xf5, 0xc7, 0x46, 0x63,
+ 0xa1, 0xfe, 0xd8, 0xe1, 0x53, 0x0d, 0xb3, 0x07, 0x9b, 0x18, 0xbd, 0x48,
+ 0x18, 0x0c, 0x78, 0xd5, 0x1d, 0x3f, 0x88, 0x50, 0x0f, 0x3e, 0xa2, 0xc9,
+ 0x0b, 0x91, 0x55, 0x56, 0x27, 0x43, 0x5b, 0xc8, 0x41, 0x60, 0x50, 0x48,
+ 0xb0, 0x74, 0xc8, 0xe7, 0x33, 0x68, 0x6c, 0x36, 0x7f, 0x4d, 0x33, 0x76,
+ 0xa0, 0xc1, 0x6d, 0x12, 0xd9, 0x77, 0xd9, 0xa2, 0xc7, 0xb2, 0xba, 0xb4,
+ 0xa1, 0xf2, 0x5d, 0x5d, 0x3a, 0x97, 0x1f, 0x73, 0x25, 0x45, 0xe1, 0x49,
+ 0x34, 0x68, 0x84, 0x2e, 0x92, 0x0f, 0x9c, 0xe9, 0xc8, 0xd5, 0xd5, 0xba,
+ 0xca, 0x61, 0x80, 0x7b, 0x05, 0xec, 0xcb, 0x82, 0x1a, 0xaa, 0x46, 0x4f,
+ 0x91, 0x8c, 0x4a, 0xa2, 0x69, 0x1a, 0x01, 0xce, 0xd7, 0xe0, 0xf8, 0x3d,
+ 0x19, 0x51, 0x0f, 0x00, 0xce, 0xe6, 0x84, 0x84, 0xf1, 0x43, 0x11, 0x48,
+ 0xd2, 0x89, 0x42, 0xbc, 0x4a, 0xdb, 0x06, 0xbb, 0xb7, 0xd6, 0x85, 0x7b,
+ 0x2a, 0x63, 0xec, 0x7d, 0x61, 0x86, 0x94, 0x9e, 0xf9, 0x4c, 0x1b, 0xb2,
+ 0x91, 0x6b, 0x53, 0x9b, 0xec, 0x70, 0x2e, 0x89, 0x57, 0x18, 0xe0, 0x1b,
+ 0xbc, 0x6b, 0xd4, 0xe4, 0xa0, 0xd7, 0xa9, 0xb2, 0xb9, 0x05, 0x48, 0xb4,
+ 0x72, 0x51, 0xf3, 0x68, 0x59, 0x17, 0x0e, 0x10, 0x1b, 0x35, 0xce, 0xea,
+ 0xbc, 0x5e, 0xc6, 0xfe, 0x1a, 0x45, 0xfa, 0x4c, 0x12, 0x38, 0xe3, 0xc0,
+ 0xc4, 0x79, 0x33, 0xbc, 0xc7, 0x0c, 0x67, 0x89, 0xad, 0x44, 0x35, 0x62,
+ 0x41, 0xc5, 0xf2, 0xc4, 0xd0, 0xc6, 0x00, 0xb2, 0x8e, 0x2a, 0x18, 0x53,
+ 0x8f, 0x7e, 0x74, 0x4d, 0x7f, 0x0d, 0xbd, 0xfd, 0x87, 0xff, 0xb0, 0x2f,
+ 0x81, 0x1d, 0xfa, 0x0f, 0x5b, 0x29, 0x73, 0x8f, 0xb7, 0x17, 0x58, 0xf9,
+ 0x5b, 0xf2, 0x07, 0xac, 0x0a, 0xb0, 0xcf, 0x65, 0x69, 0xa4, 0xca, 0x2e,
+ 0x35, 0xf8, 0x87, 0xa1, 0x73, 0x8a, 0x6b, 0x23, 0x69, 0x32, 0xcf, 0xee,
+ 0xc0, 0xf6, 0x22, 0x1e, 0x26, 0xc7, 0xf8, 0xa7, 0x39, 0x97, 0x64, 0x1c,
+ 0xa7, 0x74, 0x1c, 0xd9, 0x9d, 0x29, 0xb0, 0x1e, 0xb2, 0x8b, 0x3f, 0x95,
+ 0xca, 0x36, 0xeb, 0x74, 0x24, 0xd8, 0xcd, 0xfa, 0x79, 0x6c, 0xfb, 0xe2,
+ 0x88, 0x93, 0x3d, 0xec, 0xc6, 0x1f, 0x06, 0x02, 0x0c, 0xab, 0xb4, 0xae,
+ 0x38, 0xcf, 0xf6, 0x99, 0x6c, 0xcc, 0x5d, 0x3e, 0x7f, 0xb2, 0x3b, 0x08,
+ 0x24, 0x9d, 0x7e, 0x67, 0xd0, 0x9e, 0x58, 0x71, 0x8b, 0xf1, 0x18, 0x4e,
+ 0x37, 0xb6, 0xb8, 0xc3, 0x2e, 0xfd, 0x07, 0x45, 0x00, 0x92, 0x4c, 0xf2,
+ 0x25, 0xa4, 0xbb, 0xa0, 0xb8, 0xe3, 0x4a, 0x47, 0xd7, 0x23, 0xc4, 0xe3,
+ 0x01, 0xba, 0xba, 0xa2, 0x9a, 0xf8, 0x90, 0xd2, 0x40, 0xdf, 0xc3, 0xb3,
+ 0x26, 0xaf, 0x1e, 0xc8, 0x47, 0x83, 0x0b, 0xfe, 0xc8, 0x02, 0xd8, 0x34,
+ 0x4f, 0x3b, 0x9b, 0xf8, 0xd0, 0x56, 0xce, 0x06, 0xbf, 0x7c, 0xb8, 0x56,
+ 0x9c, 0x68, 0x7f, 0x1c, 0x25, 0x4b, 0x87, 0x3b, 0x1a, 0xa7, 0x1d, 0xa5,
+ 0xf7, 0x52, 0xc9, 0x2c, 0xbf, 0xcd, 0x1e, 0x6e, 0x4d, 0xec, 0x18, 0x53,
+ 0x92, 0x6b, 0x52, 0xc3, 0x23, 0x13, 0xab, 0x42, 0xe0, 0xf9, 0x95, 0x98,
+ 0x37, 0x81, 0x15, 0x19, 0x3e, 0xd6, 0x9c, 0xd8, 0x35, 0x71, 0x93, 0x05,
+ 0x55, 0x35, 0xe9, 0x8a, 0x33, 0x80, 0x92, 0xba, 0x98, 0x82, 0x72, 0xa5,
+ 0xdd, 0x47, 0xe6, 0x5a, 0x88, 0x05, 0x38, 0xe0, 0x16, 0x58, 0xb9, 0x26,
+ 0xf4, 0x14, 0xf8, 0x7e, 0xa7, 0x21, 0x33, 0xe9, 0xdc, 0xdb, 0xe4, 0x08,
+ 0xb9, 0xf1, 0x85, 0x84, 0x3a, 0x61, 0x78, 0x80, 0x73, 0x1e, 0x19, 0xc4,
+ 0xac, 0xeb, 0xe9, 0xe1, 0xe6, 0xdc, 0x28, 0xe4, 0x9a, 0x1e, 0x04, 0x42,
+ 0xda, 0xb0, 0x9d, 0x61, 0xb6, 0x13, 0x05, 0x1c, 0x5f, 0xd6, 0x8b, 0xf7,
+ 0x00, 0x6d, 0x7d, 0x0f, 0xb0, 0xb5, 0x8b, 0xc0, 0x0a, 0x81, 0x0f, 0xb0,
+ 0x5e, 0x02, 0x8b, 0x47, 0x3a, 0x7b, 0xae, 0x65, 0xad, 0xa6, 0x85, 0x88,
+ 0x61, 0x51, 0x24, 0x65, 0xbc, 0x72, 0xad, 0xda, 0x13, 0xe6, 0x34, 0x6a,
+ 0xa5, 0x92, 0x3d, 0x8d, 0x06, 0xc6, 0x01, 0x1a, 0xef, 0x81, 0x42, 0xe3,
+ 0x28, 0x84, 0x6e, 0x90, 0xac, 0x64, 0xf8, 0xff, 0x16, 0x4c, 0x8d, 0x60,
+ 0x1a, 0x22, 0xa7, 0x76, 0x39, 0xb7, 0xc0, 0x90, 0x87, 0x07, 0x06, 0x3d,
+ 0xc1, 0xaa, 0x95, 0x32, 0xe9, 0x5b, 0xe4, 0x14, 0xb4, 0x27, 0x1a, 0x28,
+ 0x4b, 0xeb, 0x16, 0x57, 0x40, 0x5b, 0xf5, 0xc8, 0x3c, 0x91, 0x8c, 0xb2,
+ 0x2b, 0x98, 0xc8, 0xd3, 0x3c, 0xf5, 0xb0, 0x91, 0x32, 0x03, 0x1c, 0x13,
+ 0xcc, 0x17, 0x26, 0xa3, 0xeb, 0xe2, 0xee, 0xd1, 0xc3, 0x25, 0x01, 0x31,
+ 0x7c, 0x95, 0x0f, 0x57, 0xac, 0x8c, 0x58, 0x62, 0xf5, 0xec, 0xf8, 0xa5,
+ 0x91, 0x25, 0x51, 0x99, 0xae, 0xbd, 0x28, 0x5d, 0xc1, 0x73, 0xc9, 0x0a,
+ 0x04, 0xa0, 0x64, 0xc3, 0x61, 0xd5, 0x4a, 0x31, 0x21, 0x77, 0x10, 0x44,
+ 0x2f, 0xb5, 0x12, 0x42, 0x8f, 0x35, 0x07, 0xee, 0x12, 0xe1, 0x33, 0xc4,
+ 0x1b, 0x8e, 0x98, 0xc0, 0xf7, 0xf9, 0x22, 0x64, 0x09, 0x47, 0xa7, 0x01,
+ 0xde, 0x97, 0xf3, 0xf0, 0x49, 0xf4, 0x20, 0x53, 0xa5, 0x31, 0x31, 0x3e,
+ 0x45, 0x8f, 0x8d, 0x63, 0x8c, 0x28, 0x08, 0x41, 0xf2, 0x08, 0xf2, 0x8b,
+ 0x07, 0x26, 0x78, 0xa8, 0x51, 0xe9, 0xe8, 0xf4, 0xf6, 0x69, 0x87, 0x09,
+ 0xa9, 0xf5, 0x1f, 0x3d, 0xf5, 0x49, 0xf3, 0x70, 0x3d, 0xef, 0x48, 0x46,
+ 0x92, 0x29, 0x09, 0x9c, 0x9a, 0x4d, 0x49, 0x07, 0x1f, 0x26, 0x8a, 0x04,
+ 0x93, 0x68, 0x8e, 0xf3, 0xe1, 0x31, 0x04, 0x93, 0x78, 0x74, 0x24, 0xd4,
+ 0x93, 0x91, 0x0c, 0x17, 0xef, 0x7d, 0xeb, 0x3a, 0xa6, 0xbb, 0x36, 0x71,
+ 0x5f, 0x00, 0x30, 0xc4, 0xc0, 0x50, 0x31, 0x90, 0xa4, 0x5b, 0x4a, 0x4c,
+ 0x3a, 0x84, 0xc6, 0x47, 0x01, 0x38, 0x78, 0x0c, 0x06, 0x25, 0x51, 0xb9,
+ 0x31, 0x60, 0x5b, 0x83, 0x8f, 0x95, 0x70, 0x33, 0xd4, 0x13, 0x51, 0x6c,
+ 0xa2, 0x8f, 0x39, 0xd1, 0xab, 0x08, 0x2d, 0x1e, 0x87, 0x75, 0xf6, 0x5e,
+ 0xc8, 0x18, 0xa6, 0x53, 0x83, 0xb9, 0x72, 0x10, 0x2a, 0xa9, 0xae, 0x86,
+ 0x19, 0x3f, 0x07, 0xc7, 0x62, 0x11, 0x28, 0xa6, 0x8f, 0xac, 0x05, 0xc7,
+ 0x0f, 0xba, 0xe9, 0x68, 0xce, 0x8c, 0x5d, 0xd9, 0x0a, 0xda, 0xc1, 0xf8,
+ 0x0b, 0x60, 0x15, 0x63, 0x4e, 0xc0, 0x79, 0xb8, 0x39, 0x80, 0x0f, 0xba,
+ 0x06, 0x5d, 0x46, 0x01, 0x50, 0x5a, 0x44, 0x5d, 0xa3, 0xdb, 0xf0, 0x01,
+ 0xc4, 0x8c, 0x4e, 0x46, 0xd5, 0xb1, 0x24, 0xcc, 0xa0, 0xdd, 0xe1, 0xbb,
+ 0x08, 0x23, 0x82, 0xe9, 0x0c, 0xda, 0x11, 0xfc, 0xef, 0x13, 0x6a, 0xe7,
+ 0x69, 0x2b, 0xca, 0xd6, 0x79, 0x7a, 0x6c, 0x0e, 0x9d, 0x24, 0xae, 0x73,
+ 0xb0, 0xd3, 0x16, 0xce, 0xe1, 0x5f, 0x7c, 0xd8, 0x38, 0x66, 0xed, 0xbd,
+ 0x61, 0xdd, 0xca, 0x48, 0x04, 0x70, 0xcb, 0x63, 0x54, 0x49, 0xa4, 0x99,
+ 0x5c, 0x5c, 0x4c, 0xea, 0xf6, 0x74, 0x47, 0x84, 0x18, 0x5a, 0x33, 0xd3,
+ 0xc2, 0x43, 0xad, 0x99, 0x93, 0xd5, 0x35, 0x05, 0xc5, 0xfd, 0x11, 0x72,
+ 0xe5, 0xba, 0x25, 0x9d, 0x3d, 0xda, 0x49, 0xd0, 0x95, 0x94, 0x2e, 0x1f,
+ 0x98, 0x41, 0xa0, 0xc6, 0x3c, 0xdc, 0x63, 0x78, 0xce, 0xba, 0xbb, 0xd6,
+ 0xc8, 0xd5, 0xe4, 0xe3, 0x96, 0x6e, 0x65, 0xb0, 0x2d, 0x49, 0xf2, 0xd9,
+ 0xc4, 0xef, 0x03, 0xb7, 0x95, 0xb2, 0xc1, 0x30, 0x00, 0x22, 0x96, 0x67,
+ 0x02, 0x29, 0x93, 0x84, 0xc5, 0x6a, 0x59, 0x0a, 0x1c, 0xda, 0xe3, 0x77,
+ 0xb4, 0xe9, 0xd2, 0xae, 0x3d, 0x8e, 0x28, 0xe4, 0xd1, 0x2d, 0x18, 0x19,
+ 0x12, 0x40, 0x55, 0x2b, 0x46, 0xe5, 0xa6, 0x88, 0xc5, 0xb5, 0x61, 0x59,
+ 0xcc, 0xee, 0x3f, 0x69, 0x54, 0xd2, 0xda, 0xc7, 0x8c, 0xa9, 0x9a, 0xbe,
+ 0xa7, 0x21, 0xe4, 0x97, 0xf7, 0xb4, 0xed, 0x15, 0xc9, 0xe1, 0x8f, 0x4b,
+ 0xeb, 0xf2, 0x9c, 0xd1, 0x1c, 0xc3, 0x22, 0xd0, 0x98, 0xcb, 0x64, 0x9c,
+ 0x95, 0xb5, 0xd4, 0xe7, 0x16, 0xa3, 0x1f, 0x7e, 0x7f, 0x84, 0x04, 0xd5,
+ 0x45, 0xa1, 0x32, 0x9c, 0x53, 0x47, 0x86, 0x0c, 0x8a, 0x08, 0x33, 0x17,
+ 0xf7, 0x60, 0x6d, 0x75, 0x64, 0xef, 0x24, 0x6d, 0xd3, 0x6b, 0x15, 0x78,
+ 0xe5, 0x86, 0x0f, 0x00, 0xa9, 0xba, 0xfe, 0x49, 0x51, 0x49, 0x17, 0x0b,
+ 0x3d, 0xe2, 0x8f, 0xcf, 0x5d, 0x70, 0xac, 0x24, 0x7d, 0xa9, 0x40, 0x81,
+ 0x2b, 0x20, 0x43, 0xd6, 0x45, 0x71, 0x63, 0x96, 0x06, 0xf1, 0x13, 0xb2,
+ 0xd9, 0xee, 0xe1, 0xe6, 0x04, 0x89, 0x50, 0x1e, 0x67, 0x2c, 0x93, 0xf3,
+ 0xf3, 0xaf, 0x19, 0xa4, 0xd4, 0xf1, 0x9b, 0x2d, 0xef, 0xfb, 0x13, 0x59,
+ 0xfa, 0xb1, 0x4b, 0xd0, 0x95, 0x43, 0xc5, 0x3a, 0x38, 0x63, 0xcf, 0xc7,
+ 0x2e, 0x43, 0x53, 0xac, 0xfc, 0x8d, 0x26, 0x7a, 0x71, 0x70, 0xea, 0x26,
+ 0x28, 0x42, 0x65, 0xa0, 0x24, 0x60, 0xec, 0x1b, 0x8f, 0xd1, 0xb9, 0x4a,
+ 0xa4, 0xcd, 0x39, 0x76, 0xce, 0x88, 0xd5, 0x21, 0x36, 0x39, 0x2e, 0x17,
+ 0xff, 0x0f, 0x6c, 0x2c, 0xe2, 0x1c, 0x58, 0x90, 0x97, 0x5c, 0x62, 0x98,
+ 0x70, 0x1f, 0x1f, 0x32, 0x97, 0xc1, 0xea, 0x2e, 0x0b, 0xd7, 0xa5, 0x36,
+ 0xcb, 0xa0, 0xe1, 0xb6, 0xee, 0x18, 0xb6, 0xab, 0x1d, 0xf9, 0x8b, 0xc6,
+ 0x2c, 0xa9, 0x41, 0x86, 0x91, 0xc7, 0x43, 0x96, 0x5a, 0x7e, 0x86, 0xea,
+ 0x49, 0x37, 0x38, 0xe9, 0x7f, 0x1f, 0xa5, 0x85, 0x8b, 0x41, 0x58, 0x50,
+ 0xad, 0x19, 0x07, 0xc1, 0xb5, 0xea, 0xcb, 0xb4, 0x91, 0x1c, 0xcf, 0x71,
+ 0x87, 0x8f, 0xb2, 0x89, 0x54, 0x93, 0xbd, 0x50, 0xcf, 0xd4, 0x9b, 0xa6,
+ 0xc6, 0xa6, 0x66, 0xa2, 0xfe, 0xc6, 0x78, 0xc9, 0x41, 0x4c, 0x1d, 0x59,
+ 0x79, 0x91, 0x6a, 0x3a, 0x2e, 0xa6, 0xe2, 0x93, 0xb9, 0x05, 0xb2, 0x70,
+ 0xf7, 0x5e, 0x78, 0xc9, 0xab, 0x9b, 0x40, 0xf2, 0x5a, 0xd7, 0x59, 0xc1,
+ 0x49, 0xed, 0xf9, 0x47, 0xd9, 0x14, 0xb1, 0xb8, 0x85, 0x5b, 0x1e, 0x21,
+ 0x12, 0x21, 0xd3, 0xbe, 0x3b, 0x1b, 0x7d, 0x64, 0x20, 0x7f, 0x1c, 0x29,
+ 0x08, 0x4c, 0xaa, 0x43, 0xb2, 0x34, 0xf8, 0x4b, 0xad, 0x73, 0x85, 0x34,
+ 0x36, 0xfe, 0x52, 0x11, 0xb7, 0xef, 0xa2, 0x6c, 0xe5, 0xa4, 0xc3, 0x35,
+ 0xc2, 0x6c, 0xa3, 0xb9, 0x08, 0x3e, 0xb8, 0xcb, 0x5d, 0x32, 0x49, 0xf6,
+ 0x21, 0x8b, 0xab, 0x9d, 0x74, 0xb1, 0x78, 0x0d, 0x67, 0x42, 0x84, 0x8b,
+ 0xcb, 0x0d, 0x09, 0xd6, 0x2b, 0x04, 0xf1, 0x7b, 0x54, 0x8a, 0xed, 0x12,
+ 0xec, 0x31, 0x56, 0x8c, 0xfc, 0xe3, 0x8f, 0xcf, 0x6f, 0xc3, 0xe2, 0x24,
+ 0xc6, 0x06, 0x15, 0x39, 0xe2, 0xc3, 0x33, 0xca, 0x3e, 0x56, 0xa9, 0x02,
+ 0xb2, 0x58, 0xf3, 0x18, 0xb5, 0x19, 0x84, 0xee, 0x7c, 0x07, 0x08, 0x6c,
+ 0x87, 0x64, 0xa0, 0x3b, 0xd0, 0x08, 0x62, 0x61, 0x0c, 0xe9, 0x6c, 0x62,
+ 0x08, 0x4b, 0x53, 0x3e, 0x3e, 0x75, 0xf6, 0x31, 0x37, 0x0d, 0xdf, 0xff,
+ 0xdd, 0x67, 0x46, 0x65, 0xc5, 0x86, 0xfc, 0x16, 0xaf, 0xb3, 0x65, 0xe4,
+ 0x69, 0x64, 0x25, 0x3c, 0x80, 0x1f, 0x43, 0x46, 0x6c, 0xc2, 0xc8, 0xb4,
+ 0xc0, 0x18, 0xe6, 0xe3, 0x30, 0x3a, 0xc5, 0xff, 0x61, 0xf1, 0xe9, 0xb3,
+ 0xfc, 0x51, 0x55, 0x2d, 0x57, 0x90, 0x61, 0x70, 0xe7, 0x65, 0xa7, 0xc5,
+ 0x15, 0x69, 0x35, 0x66, 0xc4, 0x94, 0x09, 0xb1, 0x4a, 0xe6, 0x4d, 0x4e,
+ 0xec, 0x22, 0xce, 0xa4, 0x84, 0x8c, 0xcf, 0x66, 0x81, 0x76, 0xc1, 0xc2,
+ 0xcb, 0x23, 0x23, 0x50, 0xbb, 0xa4, 0xf9, 0xde, 0xd6, 0x81, 0xa8, 0xc2,
+ 0x96, 0x49, 0xf3, 0x3a, 0x88, 0x0a, 0xec, 0xb2, 0x48, 0xf7, 0x1e, 0x6e,
+ 0x4e, 0x1d, 0x75, 0xbf, 0xa1, 0xff, 0x3c, 0x80, 0x6b, 0x78, 0xf1, 0xa3,
+ 0xe5, 0xd9, 0xee, 0x6d, 0x6d, 0xfd, 0xfc, 0x63, 0x23, 0xa0, 0xe2, 0x8b,
+ 0x9f, 0x7f, 0x79, 0xd5, 0x6d, 0x81, 0x27, 0xea, 0xb2, 0x78, 0x4b, 0x7f,
+ 0xea, 0x84, 0x8a, 0xdc, 0x44, 0x1a, 0x16, 0x16, 0x0c, 0xc6, 0x15, 0x77,
+ 0xed, 0x88, 0x6b, 0x70, 0x6e, 0xfe, 0x26, 0xfe, 0xfb, 0x07, 0x5f, 0xa0,
+ 0xb2, 0x92, 0x72, 0xed, 0x0e, 0xdf, 0xa9, 0x1f, 0x40, 0xfa, 0xf4, 0x3b,
+ 0x01, 0x2d, 0xb8, 0x4b, 0x0e, 0x2b, 0xf4, 0x30, 0x2c, 0xf0, 0x17, 0x89,
+ 0xfe, 0x14, 0x4c, 0x72, 0x2c, 0x40, 0x23, 0x2e, 0xea, 0xfe, 0x21, 0x00,
+ 0xfb, 0xb7, 0x85, 0x47, 0xbf, 0x08, 0x10, 0x44, 0x34, 0x6d, 0x4d, 0xbc,
+ 0x1c, 0x0c, 0xfd, 0xc9, 0x5a, 0xb4, 0x4b, 0x59, 0x8a, 0x80, 0x8d, 0xb9,
+ 0x4a, 0x1c, 0x1c, 0x37, 0xae, 0x6a, 0xb8, 0x60, 0xa5, 0xea, 0xaa, 0x6a,
+ 0xf3, 0x8a, 0xa5, 0xe7, 0xad, 0x94, 0xf9, 0xbc, 0x2b, 0x96, 0x54, 0x60,
+ 0x40, 0xba, 0x70, 0x55, 0x83, 0xea, 0xe8, 0x2b, 0xb0, 0x4f, 0xcc, 0xaa,
+ 0x14, 0x6e, 0xa5, 0x26, 0x9a, 0x47, 0x51, 0xdf, 0x02, 0x8e, 0x22, 0x8c,
+ 0x72, 0x35, 0x16, 0x4a, 0xe4, 0x96, 0xcd, 0x3e, 0xe4, 0x82, 0x8f, 0x1c,
+ 0xc6, 0xa3, 0x04, 0xde, 0x12, 0xb5, 0x2c, 0x55, 0x59, 0xdd, 0x15, 0xd3,
+ 0xa7, 0xd0, 0x2f, 0x96, 0xa6, 0x7b, 0xa4, 0xf1, 0x6d, 0xeb, 0x2b, 0x33,
+ 0xb2, 0xb9, 0x21, 0x74, 0x17, 0x05, 0x6b, 0x0a, 0xee, 0x8a, 0xc3, 0x42,
+ 0x91, 0x84, 0xf4, 0x0f, 0x48, 0x59, 0xeb, 0x21, 0x2b, 0xd5, 0xc6, 0xdc,
+ 0x95, 0x5a, 0xc0, 0x0e, 0x38, 0x17, 0x0c, 0x11, 0xc8, 0x3a, 0x1a, 0x12,
+ 0xc6, 0x99, 0xbe, 0x88, 0x5d, 0x9d, 0x87, 0x85, 0xe0, 0x35, 0x2b, 0xae,
+ 0xe3, 0x4e, 0x21, 0x91, 0x48, 0x2c, 0x1c, 0xa0, 0x2d, 0x62, 0x76, 0x0c,
+ 0xb3, 0xa9, 0xec, 0x9e, 0x1b, 0xf0, 0xe5, 0x05, 0x54, 0xdd, 0xa4, 0xaf,
+ 0xd9, 0xa5, 0x6b, 0xc4, 0xd1, 0x5d, 0xdc, 0x7e, 0x1c, 0x0e, 0x51, 0x5c,
+ 0xfd, 0x5a, 0x23, 0xdb, 0xb9, 0xa4, 0x3c, 0x2f, 0x04, 0x5a, 0x2f, 0x4b,
+ 0x0c, 0x69, 0x8c, 0xde, 0x77, 0xe9, 0x96, 0xa9, 0x5e, 0x92, 0xc8, 0x33,
+ 0x8d, 0xcb, 0xd1, 0xc3, 0x69, 0x29, 0x0c, 0x49, 0x13, 0x96, 0x06, 0x0b,
+ 0xe3, 0x41, 0xed, 0xc9, 0xde, 0x6b, 0x23, 0x2b, 0x9c, 0x67, 0xef, 0x34,
+ 0x9a, 0x2f, 0x88, 0xe1, 0x6a, 0x44, 0x98, 0xfb, 0xe2, 0x73, 0x31, 0xad,
+ 0xf2, 0x1e, 0xac, 0xc5, 0x96, 0x39, 0xa9, 0xcc, 0xe2, 0x43, 0x3c, 0x74,
+ 0xd6, 0x4d, 0x58, 0x13, 0xee, 0x0e, 0x37, 0x5f, 0x50, 0x41, 0xb6, 0xb3,
+ 0x20, 0x15, 0xf4, 0x56, 0xd4, 0x36, 0xf9, 0xc2, 0x67, 0xc7, 0xfe, 0xe1,
+ 0xe9, 0x36, 0x33, 0x17, 0x6b, 0x24, 0x0d, 0x63, 0xa7, 0xfe, 0xf0, 0x24,
+ 0x7d, 0x80, 0x61, 0x42, 0x93, 0x8a, 0xd8, 0xa5, 0x54, 0x3a, 0xe2, 0xa2,
+ 0xf3, 0xf0, 0x30, 0xdc, 0xa5, 0xf7, 0x06, 0x5c, 0x2d, 0xaf, 0x45, 0xd0,
+ 0xa7, 0x5d, 0x87, 0xa9, 0x1f, 0x26, 0x33, 0xd4, 0x21, 0x33, 0x51, 0xce,
+ 0xbb, 0xa1, 0x8c, 0x6a, 0xb3, 0x23, 0xa8, 0x05, 0x23, 0xe0, 0xea, 0xba,
+ 0x70, 0x2a, 0xf1, 0xa6, 0xfc, 0x79, 0x75, 0x84, 0xf3, 0x3f, 0xef, 0xea,
+ 0xfa, 0x5e, 0xe2, 0x9a, 0x84, 0x2b, 0xaf, 0xac, 0xa8, 0x2e, 0x71, 0xee,
+ 0xe7, 0x2e, 0x9b, 0xda, 0x15, 0x4e, 0xb1, 0x37, 0x35, 0x39, 0x2e, 0xcc,
+ 0x3f, 0xe5, 0xb6, 0x96, 0x73, 0x36, 0x4e, 0x74, 0x20, 0x6b, 0x27, 0x9e,
+ 0x72, 0x71, 0x62, 0x5d, 0xd6, 0xd4, 0x45, 0xe3, 0xf6, 0x6b, 0x35, 0xdf,
+ 0xcd, 0xd0, 0x31, 0xf5, 0x20, 0xb4, 0x1e, 0x86, 0x4c, 0x79, 0xc1, 0x97,
+ 0x4c, 0x51, 0x3c, 0x22, 0x2b, 0x1b, 0xe1, 0x72, 0x25, 0xe3, 0xeb, 0xe6,
+ 0xab, 0xc3, 0x0b, 0x4e, 0xe1, 0x3c, 0x43, 0xd2, 0xbc, 0x1b, 0x20, 0x6a,
+ 0x8c, 0xe9, 0x39, 0x4f, 0x5d, 0x7d, 0x1e, 0x97, 0x30, 0x3c, 0x67, 0x0c,
+ 0x14, 0x92, 0xb3, 0xe6, 0x9d, 0x61, 0x8e, 0x74, 0xb9, 0x1c, 0xd0, 0x6a,
+ 0x30, 0x1a, 0x81, 0x8f, 0x4d, 0x0a, 0x2d, 0x7e, 0x5e, 0xe5, 0x61, 0x5c,
+ 0x02, 0x11, 0x5e, 0x5f, 0x1d, 0x1e, 0x1f, 0x5e, 0x1c, 0x76, 0x61, 0xbc,
+ 0x94, 0xd9, 0x14, 0x37, 0x58, 0x9d, 0x8d, 0xaf, 0xe7, 0x44, 0xf7, 0x57,
+ 0xbc, 0x25, 0x48, 0xf6, 0xfe, 0x2e, 0x1b, 0xbd, 0xda, 0xff, 0x96, 0x8b,
+ 0xea, 0xf1, 0xb9, 0x39, 0x3d, 0x3b, 0x39, 0x7d, 0x7d, 0xf4, 0xf6, 0x55,
+ 0x3f, 0x39, 0x38, 0x39, 0xfd, 0xa1, 0x9f, 0xbc, 0x39, 0xf9, 0xf6, 0xb0,
+ 0x83, 0xf2, 0x38, 0x16, 0xad, 0x23, 0x06, 0x4a, 0x4b, 0xcc, 0xf0, 0x71,
+ 0x95, 0x80, 0xec, 0x79, 0x66, 0x20, 0xed, 0xe6, 0x47, 0x65, 0xb6, 0x8c,
+ 0x32, 0x32, 0xea, 0x87, 0xa2, 0xa5, 0xa3, 0x33, 0xf0, 0xf5, 0xe1, 0xfe,
+ 0xab, 0xf6, 0xb0, 0x4f, 0x4f, 0xce, 0x2f, 0xd0, 0x19, 0xcf, 0xcf, 0x4d,
+ 0x9a, 0x59, 0x38, 0x31, 0x4c, 0x36, 0x79, 0xb3, 0xbe, 0x79, 0x93, 0x05,
+ 0xc0, 0xa1, 0x74, 0x0c, 0x60, 0x30, 0x9b, 0xac, 0x2c, 0xc8, 0x8d, 0x68,
+ 0x08, 0x17, 0x77, 0xf7, 0xd0, 0x6d, 0xc8, 0x0e, 0x6f, 0x2b, 0x4d, 0xa0,
+ 0xe9, 0x70, 0x70, 0x32, 0x00, 0x55, 0xd5, 0x61, 0x55, 0xe5, 0x5a, 0xb1,
+ 0x02, 0x3b, 0xb3, 0xd6, 0xe9, 0x47, 0x11, 0x3d, 0xc8, 0xa1, 0x0e, 0x41,
+ 0x5c, 0x92, 0x48, 0x88, 0x54, 0xa3, 0xd9, 0x46, 0x19, 0x07, 0xdc, 0x54,
+ 0xa8, 0xad, 0x14, 0xc4, 0x72, 0x77, 0xb3, 0x78, 0x8b, 0x87, 0x44, 0xb4,
+ 0x13, 0x84, 0x35, 0x36, 0x47, 0xf2, 0xfa, 0xf9, 0x0e, 0x35, 0xe6, 0x7f,
+ 0xf0, 0xbd, 0x2c, 0x6c, 0xd2, 0x85, 0x56, 0x01, 0xa1, 0x62, 0x79, 0x49,
+ 0xa4, 0x99, 0x49, 0xe0, 0x88, 0x6c, 0x55, 0xe1, 0x43, 0x1a, 0x8f, 0xf8,
+ 0x98, 0x5f, 0xe3, 0x80, 0xac, 0x8e, 0xa1, 0xb0, 0x0c, 0x57, 0xe1, 0xed,
+ 0x48, 0x1e, 0xc8, 0xb4, 0xb2, 0x14, 0x75, 0xdf, 0xae, 0xc1, 0xa3, 0x8a,
+ 0xbd, 0x6c, 0x65, 0x77, 0xce, 0x84, 0x4e, 0x33, 0x58, 0x07, 0x8c, 0x68,
+ 0x70, 0xcc, 0xa3, 0x71, 0x05, 0x84, 0x11, 0x3b, 0x05, 0xa8, 0x0f, 0x62,
+ 0x17, 0x73, 0xa9, 0x36, 0xd7, 0x51, 0xb5, 0x6c, 0x20, 0x0a, 0x47, 0x65,
+ 0x05, 0x2b, 0xb4, 0x28, 0x8c, 0xc4, 0xbe, 0x29, 0xfc, 0x50, 0x8b, 0x5f,
+ 0xa4, 0xe3, 0x31, 0xed, 0x6f, 0x47, 0xa2, 0x4d, 0xe1, 0x0f, 0xf6, 0x93,
+ 0xed, 0x56, 0x09, 0x97, 0x2a, 0x19, 0x48, 0xc5, 0x64, 0xc9, 0xfc, 0x8a,
+ 0xd3, 0x1c, 0x5f, 0xaf, 0xe0, 0x85, 0x61, 0x81, 0x3c, 0x5d, 0xfb, 0x80,
+ 0x2b, 0x1d, 0x1f, 0xd1, 0x09, 0xe0, 0x91, 0x47, 0xc9, 0x0e, 0x08, 0xfb,
+ 0x43, 0xad, 0xe4, 0x9c, 0x0f, 0x05, 0xd6, 0x9b, 0xda, 0x8a, 0x3b, 0x66,
+ 0x5c, 0xe9, 0xce, 0x9e, 0xf9, 0x8b, 0xc7, 0xba, 0x8e, 0x6c, 0x87, 0x67,
+ 0x87, 0x17, 0x67, 0xad, 0x50, 0x88, 0x4f, 0x3a, 0x0c, 0xa0, 0x1b, 0x8c,
+ 0x63, 0xdd, 0xd9, 0x2b, 0x7f, 0xb1, 0xaa, 0x57, 0xb0, 0x03, 0xee, 0xf7,
+ 0xa1, 0x8c, 0xed, 0x27, 0x5d, 0x18, 0xd4, 0x1b, 0x82, 0x98, 0xdd, 0xd1,
+ 0x1f, 0x7f, 0xf1, 0xc0, 0x2c, 0xbf, 0x3e, 0x3c, 0x3e, 0x8d, 0x67, 0xf9,
+ 0xed, 0xd9, 0xeb, 0x1f, 0x86, 0x0f, 0xe4, 0xe2, 0xfe, 0xf3, 0x63, 0xa9,
+ 0x3f, 0xa4, 0x75, 0xdd, 0x09, 0x3e, 0x5f, 0xa5, 0x30, 0x75, 0x5a, 0x5d,
+ 0x02, 0x06, 0xfe, 0x90, 0x12, 0x83, 0x75, 0x84, 0x4a, 0xad, 0xc1, 0x04,
+ 0x88, 0x8b, 0xa8, 0x8b, 0x48, 0xc8, 0x32, 0x79, 0xd4, 0x6a, 0xb5, 0xd3,
+ 0x2d, 0x24, 0x25, 0x0e, 0xe8, 0x33, 0x57, 0xaf, 0x11, 0xdf, 0xf1, 0x58,
+ 0xf2, 0x11, 0x97, 0xf0, 0x19, 0x06, 0x98, 0x07, 0x1d, 0xa2, 0x3e, 0xcb,
+ 0x6d, 0x8c, 0x5e, 0xc8, 0xbd, 0x39, 0x59, 0xef, 0xc3, 0xe4, 0x6a, 0x58,
+ 0x94, 0x39, 0x1b, 0x35, 0xb5, 0xb0, 0xa2, 0x34, 0x96, 0xa0, 0x2c, 0x31,
+ 0x1f, 0x6b, 0x3e, 0x42, 0x5d, 0xcd, 0x59, 0x9c, 0x95, 0x00, 0x2e, 0x24,
+ 0x71, 0xd3, 0x33, 0x98, 0x44, 0xf8, 0x3b, 0xd7, 0xaa, 0xe9, 0x17, 0x5d,
+ 0xe1, 0x88, 0xd5, 0x3d, 0xed, 0xf3, 0xcc, 0x73, 0x5e, 0xd3, 0xce, 0xdc,
+ 0x6c, 0xfd, 0x44, 0x39, 0x0c, 0x8e, 0x38, 0x6b, 0x09, 0x3c, 0x96, 0x58,
+ 0x93, 0xca, 0x49, 0x93, 0x6a, 0x6c, 0xd8, 0x3d, 0x22, 0x4f, 0xd9, 0xb7,
+ 0xa4, 0xb5, 0x54, 0xf8, 0xdf, 0xce, 0xea, 0x59, 0xce, 0x3f, 0xc6, 0xb3,
+ 0x61, 0x1f, 0xbc, 0xd6, 0x02, 0x91, 0x97, 0xa5, 0xec, 0xc7, 0xa8, 0xe5,
+ 0x55, 0xd2, 0x80, 0xee, 0x08, 0x70, 0x23, 0xe8, 0x50, 0xb0, 0x7c, 0xfa,
+ 0x0d, 0x37, 0x25, 0x97, 0x8e, 0x04, 0x0e, 0x89, 0xd8, 0x1b, 0xa9, 0xfb,
+ 0xe0, 0x85, 0x68, 0x4e, 0x1e, 0x38, 0xdc, 0x21, 0x12, 0x06, 0x43, 0x32,
+ 0x42, 0xdd, 0xb1, 0xea, 0x15, 0x9e, 0xab, 0xff, 0xf0, 0x58, 0x0d, 0x33,
+ 0x09, 0xa3, 0xaf, 0x92, 0x00, 0x34, 0x4b, 0xa5, 0xd5, 0xa5, 0xea, 0xd7,
+ 0xb8, 0x07, 0xc1, 0x99, 0xb1, 0x26, 0x6b, 0x9d, 0x0e, 0x62, 0xd2, 0x43,
+ 0xeb, 0x71, 0x03, 0x9e, 0x09, 0x01, 0xff, 0x44, 0xc7, 0x22, 0x47, 0xd1,
+ 0x2d, 0xd1, 0x4f, 0xa4, 0x4a, 0x8d, 0x84, 0x90, 0xe9, 0x7b, 0x83, 0x0e,
+ 0x43, 0x1a, 0xdb, 0x0b, 0x57, 0x5c, 0x62, 0xff, 0xbc, 0x53, 0xfc, 0x83,
+ 0x27, 0x0a, 0x59, 0xc4, 0x17, 0xf8, 0xe3, 0x17, 0x91, 0x45, 0x50, 0x22,
+ 0x46, 0x5c, 0x97, 0x1b, 0x44, 0xfb, 0x0d, 0xfa, 0x18, 0x44, 0xa9, 0xc2,
+ 0x93, 0x4d, 0xc9, 0xc5, 0xf4, 0x9b, 0xad, 0x96, 0x41, 0x96, 0x3b, 0x9a,
+ 0x34, 0x11, 0x3c, 0x03, 0x5c, 0x92, 0x58, 0x85, 0x97, 0x3d, 0x96, 0xec,
+ 0xa9, 0x9c, 0x2b, 0x2f, 0xf3, 0x85, 0x8c, 0xd3, 0x93, 0xfd, 0x96, 0x70,
+ 0x75, 0x7f, 0x07, 0x5c, 0x1d, 0x17, 0x5a, 0xc5, 0x01, 0x78, 0x31, 0x61,
+ 0xd3, 0x29, 0x49, 0xc7, 0x1c, 0x2c, 0x41, 0x4d, 0x7f, 0xfe, 0x9f, 0xdd,
+ 0x75, 0x4e, 0xad, 0xb0, 0xb8, 0x56, 0x4b, 0x10, 0xf4, 0x03, 0x71, 0xb9,
+ 0xb0, 0x42, 0xca, 0x55, 0xa8, 0x50, 0x42, 0x72, 0x56, 0x4c, 0x14, 0xaf,
+ 0x2d, 0xad, 0xfd, 0x52, 0x67, 0x9d, 0xc8, 0x5a, 0x52, 0x65, 0x8a, 0x4f,
+ 0x21, 0xf2, 0xc1, 0x68, 0x65, 0x8b, 0xf9, 0xca, 0xf6, 0x02, 0xf7, 0x40,
+ 0x04, 0x41, 0xab, 0xe5, 0x78, 0x58, 0x4a, 0x8a, 0xe6, 0x63, 0xda, 0x24,
+ 0xcb, 0x43, 0x22, 0x0c, 0xd3, 0x6d, 0x84, 0x87, 0x44, 0x92, 0xaa, 0xe2,
+ 0x5b, 0x89, 0xf6, 0x41, 0xe5, 0x48, 0x16, 0x5e, 0x04, 0xbc, 0x92, 0xc3,
+ 0xc1, 0x5d, 0x81, 0x53, 0x1a, 0x66, 0x65, 0x90, 0x83, 0x1c, 0xd5, 0x82,
+ 0x52, 0x02, 0xa9, 0x0b, 0x01, 0x5d, 0xeb, 0x74, 0x73, 0xb8, 0xaa, 0x7d,
+ 0x57, 0x99, 0x01, 0x41, 0xca, 0xe4, 0x2c, 0xd3, 0x09, 0x83, 0xda, 0x98,
+ 0xf1, 0x64, 0x36, 0xc5, 0x8c, 0xdf, 0xb9, 0x15, 0x0e, 0x21, 0xb1, 0x01,
+ 0xa3, 0x44, 0x8d, 0xf2, 0xfb, 0x0a, 0xa1, 0x04, 0xd0, 0x24, 0xad, 0x9b,
+ 0x88, 0x66, 0x83, 0x15, 0x89, 0xf2, 0x53, 0xea, 0x66, 0xb1, 0x14, 0x4b,
+ 0x2e, 0x62, 0xe7, 0x81, 0xe1, 0x4d, 0x84, 0x2b, 0x6a, 0xc6, 0x4b, 0xc6,
+ 0x52, 0x4b, 0x36, 0x06, 0x9b, 0x4e, 0x44, 0x46, 0x6d, 0x3a, 0x21, 0x8d,
+ 0xd8, 0xe7, 0x9f, 0xba, 0x40, 0x5d, 0x97, 0x52, 0x22, 0x15, 0x0e, 0x8c,
+ 0x42, 0x94, 0x26, 0xb8, 0xb3, 0x2d, 0x31, 0xbc, 0x1b, 0xb7, 0x04, 0xfc,
+ 0x70, 0x24, 0x97, 0xb5, 0x1a, 0x9b, 0x67, 0x77, 0x61, 0x63, 0x5e, 0x49,
+ 0x75, 0x0d, 0xfe, 0x86, 0x67, 0xea, 0x5a, 0xe4, 0xf7, 0xe9, 0x22, 0xb2,
+ 0xde, 0x20, 0x42, 0x82, 0xbf, 0x19, 0x2a, 0xf3, 0x16, 0x29, 0x32, 0x95,
+ 0x20, 0x7d, 0x54, 0xab, 0x0c, 0x41, 0xd3, 0x1c, 0xe4, 0x63, 0x27, 0x8e,
+ 0x49, 0x75, 0xcd, 0x97, 0xaa, 0xc3, 0x61, 0x68, 0x14, 0xd8, 0x78, 0xd3,
+ 0x47, 0x69, 0xaa, 0x79, 0x1c, 0x9c, 0xf5, 0x06, 0x1f, 0x0e, 0x93, 0x57,
+ 0x9a, 0x6a, 0x81, 0x0c, 0xa3, 0xe5, 0x55, 0x86, 0x61, 0x21, 0xf2, 0x3e,
+ 0x68, 0xe6, 0x5b, 0xcd, 0x8b, 0xea, 0x20, 0x14, 0x7d, 0xbf, 0x6a, 0xe4,
+ 0x6a, 0x88, 0x83, 0x48, 0x10, 0xda, 0xe6, 0x56, 0xdc, 0x6b, 0x84, 0xbf,
+ 0xcd, 0x62, 0x9c, 0x23, 0x56, 0xb8, 0x1a, 0x76, 0xa8, 0x34, 0xe2, 0x72,
+ 0xc2, 0xc4, 0xbd, 0xb3, 0xc8, 0xbc, 0x2b, 0xf6, 0x3e, 0xcb, 0xaa, 0x9a,
+ 0xc6, 0x64, 0x4d, 0x77, 0xe1, 0x38, 0x40, 0x4f, 0x7d, 0x52, 0x4e, 0xe0,
+ 0x51, 0xbd, 0xe7, 0x47, 0xcb, 0xb4, 0x14, 0xd5, 0x7b, 0x7e, 0x63, 0x26,
+ 0x77, 0x31, 0x24, 0x65, 0xe3, 0x65, 0xdd, 0x04, 0xa8, 0x0c, 0x7d, 0xd3,
+ 0x56, 0xc4, 0x11, 0xc3, 0xda, 0x80, 0x0f, 0x4d, 0xf7, 0xa3, 0x77, 0x6a,
+ 0xe6, 0xf6, 0xbd, 0xde, 0xa6, 0xfa, 0x15, 0xc5, 0x45, 0xac, 0x1f, 0x77,
+ 0x81, 0x41, 0xd8, 0x98, 0xcb, 0x4c, 0xa0, 0xea, 0xea, 0xc2, 0xc4, 0xa3,
+ 0xce, 0xee, 0x89, 0x22, 0xcb, 0x49, 0x57, 0xdf, 0xaf, 0xa5, 0x32, 0x7a,
+ 0xd0, 0xb5, 0x33, 0x6c, 0x6a, 0xd1, 0xf4, 0x2a, 0x4a, 0x3c, 0x89, 0x7a,
+ 0x86, 0xe9, 0x61, 0x98, 0xec, 0xbb, 0x20, 0x7c, 0x7b, 0xd5, 0xd6, 0x3f,
+ 0x8a, 0xc8, 0x47, 0x90, 0x9b, 0x07, 0x01, 0x64, 0xa9, 0x1e, 0x1f, 0xb9,
+ 0x3c, 0xc8, 0x68, 0x16, 0x37, 0xe5, 0xe8, 0x29, 0xfd, 0xf8, 0x86, 0x7f,
+ 0x30, 0x03, 0x62, 0xc5, 0x4b, 0x90, 0xb7, 0x05, 0xbc, 0x2b, 0xe6, 0x34,
+ 0x5c, 0x50, 0x4b, 0x7f, 0xe8, 0xa6, 0x57, 0x96, 0x72, 0xc3, 0x29, 0x4b,
+ 0xbe, 0x6c, 0x0b, 0x1c, 0xe8, 0xd6, 0x4e, 0xdf, 0x2c, 0x8f, 0x6b, 0x2b,
+ 0x43, 0xb6, 0xce, 0x05, 0x60, 0x5a, 0x6a, 0xfe, 0x9c, 0x8b, 0xde, 0x48,
+ 0x8b, 0x10, 0x8b, 0x26, 0xb4, 0x54, 0x7f, 0x67, 0x43, 0xf6, 0x92, 0x34,
+ 0x19, 0x22, 0xec, 0x31, 0x6c, 0xa4, 0x33, 0xc7, 0xf1, 0x50, 0xc2, 0xda,
+ 0x01, 0xfd, 0x08, 0x34, 0x20, 0x4c, 0xda, 0xd0, 0x51, 0x63, 0x89, 0xcf,
+ 0xce, 0xeb, 0xca, 0x29, 0x4b, 0xaa, 0xab, 0xfc, 0x68, 0x25, 0xbc, 0x3e,
+ 0xb8, 0x54, 0xaf, 0x38, 0x99, 0xd0, 0xc4, 0x40, 0x39, 0x0a, 0x48, 0xe8,
+ 0x4a, 0xdd, 0x66, 0x8f, 0x96, 0xb9, 0xd5, 0x9b, 0xc6, 0xc3, 0x6a, 0xdd,
+ 0x95, 0xfc, 0xdc, 0x15, 0xe3, 0x44, 0xba, 0x23, 0xea, 0x6a, 0x21, 0x07,
+ 0xec, 0xc6, 0x80, 0x61, 0x66, 0xd9, 0x8c, 0x11, 0x43, 0x7d, 0x06, 0x23,
+ 0xc4, 0x44, 0xa4, 0x9d, 0xa3, 0xf3, 0x15, 0x8e, 0xc2, 0x09, 0x67, 0xb7,
+ 0xb3, 0xad, 0x44, 0x92, 0x19, 0x7e, 0x17, 0xb9, 0x0b, 0xaa, 0xfb, 0xf9,
+ 0xf8, 0xfa, 0xd5, 0xdb, 0xf3, 0xb5, 0xd5, 0x21, 0x18, 0x8d, 0xc9, 0xe1,
+ 0xf9, 0xb2, 0x98, 0x33, 0x31, 0x04, 0x91, 0x29, 0xac, 0x35, 0xed, 0x07,
+ 0xdf, 0x75, 0x37, 0xd7, 0x78, 0xc1, 0x84, 0x01, 0x04, 0x54, 0x8b, 0xed,
+ 0x46, 0x83, 0x3a, 0x71, 0x91, 0x0e, 0x52, 0x3e, 0x0a, 0xdd, 0xc5, 0x86,
+ 0xdd, 0x99, 0xe6, 0xa4, 0xaa, 0x6c, 0x62, 0x4d, 0x96, 0x28, 0x3c, 0xc9,
+ 0xe8, 0x27, 0x31, 0x5d, 0xa3, 0x0e, 0x9b, 0xfd, 0xf8, 0x25, 0xdb, 0x7c,
+ 0x9c, 0x96, 0x57, 0x59, 0x07, 0x2a, 0x6b, 0xb8, 0x42, 0x0d, 0x9c, 0xa8,
+ 0x40, 0x01, 0x20, 0x5a, 0x9d, 0xf2, 0xeb, 0x42, 0xa6, 0x7d, 0xa5, 0x56,
+ 0x7c, 0x54, 0xae, 0x9a, 0x12, 0x2d, 0xca, 0xee, 0x57, 0x5f, 0xc6, 0x17,
+ 0xe4, 0xab, 0xb7, 0x2b, 0xba, 0xe3, 0x6f, 0x06, 0x26, 0x0f, 0xa9, 0xc5,
+ 0x34, 0x00, 0x3c, 0x88, 0xd7, 0x42, 0xa1, 0xb8, 0xbb, 0x07, 0x60, 0x38,
+ 0xdd, 0x8f, 0x70, 0x09, 0x7a, 0x42, 0x7f, 0x3c, 0xf8, 0xa0, 0x82, 0xfe,
+ 0x75, 0x77, 0xc5, 0x68, 0x80, 0x1b, 0xe7, 0x52, 0xa7, 0xed, 0x4c, 0x82,
+ 0xb7, 0x4e, 0xd5, 0x8c, 0xbf, 0xd9, 0xb1, 0x45, 0x2b, 0x21, 0x07, 0x3d,
+ 0x48, 0x44, 0x82, 0x52, 0x5e, 0x6b, 0x31, 0xf3, 0xd9, 0x95, 0x1f, 0x5b,
+ 0xbb, 0x4e, 0x1d, 0x76, 0x42, 0x2d, 0x0e, 0xe9, 0x20, 0x8f, 0xf9, 0xd0,
+ 0x1b, 0x12, 0xc6, 0xf8, 0xbe, 0x7a, 0xfc, 0x64, 0xb8, 0xad, 0x70, 0xef,
+ 0x24, 0x1b, 0x23, 0xba, 0x04, 0xdd, 0xb5, 0x29, 0x95, 0xaf, 0x9e, 0x02,
+ 0xfa, 0xb0, 0xbb, 0xb9, 0x67, 0x9f, 0x3d, 0x7b, 0xba, 0xb9, 0xd9, 0x57,
+ 0x6b, 0xa0, 0x25, 0xd9, 0xb1, 0x73, 0x8c, 0x59, 0x81, 0x98, 0xcd, 0x79,
+ 0xcc, 0xd7, 0xc8, 0xdb, 0x0e, 0x90, 0x5f, 0xba, 0x9b, 0xe3, 0xab, 0xc1,
+ 0x5e, 0xe5, 0x75, 0x61, 0xcc, 0x0f, 0x30, 0x49, 0x87, 0xbb, 0x91, 0x1a,
+ 0x9b, 0xa9, 0xe8, 0x6e, 0x53, 0xaf, 0xd1, 0xca, 0x83, 0x06, 0xdd, 0xc2,
+ 0x03, 0xdf, 0x88, 0xaf, 0x0e, 0x9c, 0xc9, 0x2e, 0x2f, 0x06, 0x22, 0x7f,
+ 0x7d, 0x74, 0x7c, 0xe8, 0xf8, 0xc8, 0x7f, 0x6d, 0x0d, 0x79, 0x90, 0xe5,
+ 0x38, 0xe2, 0x9a, 0x22, 0x48, 0x06, 0x49, 0xec, 0xfd, 0x04, 0xe5, 0x50,
+ 0xbf, 0xe9, 0x8b, 0x36, 0x8b, 0x8f, 0xbd, 0xc7, 0x80, 0x1a, 0x3e, 0x7c,
+ 0xfb, 0xed, 0xd1, 0xd9, 0xc9, 0xdb, 0x37, 0x87, 0x6f, 0x5d, 0xb2, 0x08,
+ 0x5f, 0xcf, 0x5d, 0x5e, 0xd5, 0x2a, 0x76, 0x58, 0xe5, 0x9c, 0x6e, 0xc4,
+ 0x02, 0x29, 0x3b, 0x10, 0x79, 0x16, 0xb4, 0x5b, 0xfa, 0xd7, 0x30, 0x6c,
+ 0x2e, 0x78, 0xc8, 0xf6, 0x8d, 0x89, 0x64, 0xc1, 0x41, 0xde, 0x13, 0x4e,
+ 0xc6, 0x1b, 0x4a, 0xe6, 0x8c, 0x38, 0xc7, 0x72, 0x71, 0xec, 0x7e, 0x18,
+ 0x67, 0x5a, 0x89, 0xa0, 0x0a, 0x2a, 0x1f, 0x5a, 0xea, 0x98, 0x4f, 0xb0,
+ 0x6b, 0x0c, 0xc2, 0x93, 0xda, 0x3b, 0x29, 0x59, 0xb1, 0xc2, 0x43, 0x0c,
+ 0x44, 0x8d, 0x3a, 0xf0, 0x25, 0x5e, 0xab, 0xa7, 0x4d, 0xc0, 0x6e, 0xc5,
+ 0xca, 0x1b, 0x56, 0x8e, 0xf0, 0x78, 0xb8, 0x16, 0x64, 0xd1, 0x56, 0xff,
+ 0x83, 0x19, 0x34, 0xc2, 0x2f, 0x50, 0xf2, 0xe4, 0x73, 0x8d, 0xb5, 0x88,
+ 0x11, 0x20, 0xab, 0xd0, 0xa1, 0x29, 0x44, 0x10, 0xe0, 0x57, 0xc0, 0x11,
+ 0xbc, 0x16, 0xde, 0xf5, 0xef, 0x4f, 0xcf, 0x4e, 0xbe, 0xff, 0xe1, 0x9f,
+ 0xdc, 0x45, 0x70, 0xb4, 0x7f, 0xe4, 0x1b, 0xcf, 0x1a, 0xff, 0xf9, 0x57,
+ 0xf5, 0xf6, 0x60, 0x77, 0xcd, 0xf6, 0xfb, 0xcd, 0x92, 0x0a, 0x91, 0xa9,
+ 0x05, 0x8e, 0x4b, 0x01, 0xc1, 0x37, 0x37, 0xa6, 0x8f, 0xbd, 0x76, 0xcc,
+ 0x41, 0xe2, 0xac, 0xaa, 0x16, 0xe4, 0x74, 0xac, 0x4e, 0x01, 0x41, 0x1d,
+ 0xd5, 0x11, 0xbd, 0xbc, 0x14, 0xd6, 0x48, 0xec, 0xa3, 0x24, 0x07, 0xee,
+ 0x7f, 0xb7, 0x1e, 0xfb, 0xc7, 0xc7, 0xbf, 0x7e, 0x11, 0x2c, 0x76, 0xa1,
+ 0xb9, 0x0c, 0x30, 0x80, 0xb8, 0x09, 0x0d, 0x9c, 0x80, 0x6b, 0xe4, 0xdf,
+ 0x01, 0xc4, 0xe9, 0x86, 0xf3, 0xf6, 0x44, 0x47, 0x23, 0x6e, 0xd2, 0x41,
+ 0x95, 0x91, 0x22, 0x00, 0x0f, 0x15, 0xab, 0x5c, 0x7c, 0x2d, 0xf2, 0xc0,
+ 0xa2, 0x1a, 0xcc, 0xe1, 0x97, 0x72, 0x77, 0xc9, 0x3a, 0x0a, 0x30, 0x13,
+ 0x12, 0xf7, 0x0b, 0xe7, 0xe1, 0x97, 0xc2, 0x35, 0xa8, 0x48, 0x86, 0x10,
+ 0x92, 0x8e, 0xb8, 0x0c, 0xb6, 0x1b, 0x73, 0xb0, 0x57, 0x99, 0x57, 0x37,
+ 0x40, 0x3d, 0xe0, 0x43, 0xd9, 0x97, 0x6a, 0xa6, 0x35, 0xea, 0xb6, 0xb3,
+ 0xc6, 0x80, 0xa1, 0xd0, 0xd8, 0x65, 0xc4, 0xf4, 0xef, 0xc5, 0xc9, 0xc1,
+ 0xc9, 0x31, 0xfd, 0x72, 0xf8, 0xfa, 0xe8, 0x7b, 0xcf, 0xd0, 0xa4, 0x94,
+ 0x8d, 0x72, 0x5e, 0x63, 0x10, 0xae, 0xb4, 0x4d, 0xec, 0xf0, 0x57, 0xf4,
+ 0x8d, 0x76, 0x9c, 0xd1, 0x9a, 0x8f, 0xf2, 0x70, 0xe1, 0x46, 0xea, 0xf3,
+ 0x0e, 0xe0, 0x3e, 0x1e, 0x8a, 0x2e, 0x72, 0xab, 0x7c, 0xd4, 0xd8, 0x21,
+ 0x5c, 0xc4, 0x21, 0xd3, 0x6b, 0xee, 0xad, 0x0c, 0x0a, 0xf2, 0x54, 0x7e,
+ 0xe9, 0x62, 0x12, 0x43, 0x83, 0xab, 0xd9, 0x58, 0xd4, 0xc8, 0xc2, 0xb6,
+ 0x61, 0x0f, 0x96, 0xcd, 0x1a, 0x77, 0x3f, 0x98, 0xa4, 0x29, 0xdf, 0x41,
+ 0x88, 0x90, 0x86, 0x94, 0xac, 0x85, 0x61, 0x2c, 0x7e, 0xb0, 0xf0, 0x56,
+ 0xbb, 0xe6, 0x9a, 0x73, 0xd2, 0x05, 0xd0, 0x84, 0x71, 0xa4, 0x1c, 0x22,
+ 0x00, 0xc2, 0x2b, 0x40, 0x2e, 0x98, 0xaa, 0x03, 0xbc, 0x00, 0x06, 0x3f,
+ 0x28, 0x93, 0x7f, 0x5b, 0xe6, 0xb7, 0x29, 0x70, 0x11, 0x00, 0xaa, 0x20,
+ 0x2f, 0xb5, 0xda, 0x48, 0x7f, 0x55, 0x23, 0x69, 0xb3, 0x95, 0x67, 0xbf,
+ 0xa6, 0x91, 0x67, 0xad, 0x36, 0xae, 0x7f, 0x55, 0x23, 0xae, 0x24, 0x1b,
+ 0x5d, 0x8b, 0xdf, 0x1f, 0x5d, 0x24, 0x07, 0x27, 0xaf, 0x3c, 0x8d, 0x5e,
+ 0xb8, 0xab, 0x3d, 0x25, 0xb9, 0x86, 0x84, 0x71, 0xd8, 0xd7, 0x50, 0x92,
+ 0x36, 0x28, 0x3f, 0xaf, 0xbe, 0x3b, 0xb5, 0x85, 0x5d, 0x67, 0x39, 0x3e,
+ 0x2a, 0xc5, 0xb5, 0x17, 0xfa, 0x00, 0x9b, 0xe5, 0x7d, 0x5d, 0x04, 0x14,
+ 0x53, 0x36, 0x57, 0x66, 0x48, 0x4b, 0xc3, 0x60, 0x19, 0xa5, 0xec, 0x7b,
+ 0x9e, 0x8b, 0xc3, 0x9e, 0x35, 0x81, 0xda, 0x55, 0x20, 0xa7, 0x11, 0xac,
+ 0x39, 0xd9, 0x56, 0x31, 0x64, 0x10, 0xbb, 0x25, 0xea, 0x7f, 0x5e, 0xeb,
+ 0x68, 0x1a, 0x19, 0xe8, 0x3b, 0xca, 0x09, 0xe7, 0x0d, 0x8a, 0xd1, 0x9a,
+ 0x1c, 0x90, 0xbc, 0x58, 0x6a, 0x83, 0x2f, 0x0b, 0xe7, 0x91, 0xef, 0xc5,
+ 0xb9, 0xd3, 0xe5, 0xb5, 0x5c, 0x70, 0xc4, 0xa2, 0x5c, 0x13, 0xae, 0x9f,
+ 0x5d, 0xf9, 0xf1, 0x9a, 0x6e, 0x69, 0xf1, 0x02, 0x6b, 0xea, 0x72, 0xfe,
+ 0xf7, 0xe0, 0x8e, 0x7e, 0xe2, 0xc3, 0x75, 0x66, 0xe9, 0x54, 0x82, 0xa8,
+ 0x24, 0x7a, 0x94, 0xf4, 0x9d, 0x3a, 0xfd, 0x80, 0xb8, 0x37, 0x16, 0x89,
+ 0xb0, 0x86, 0xe3, 0x80, 0x0d, 0x3e, 0x55, 0xe6, 0x9c, 0x98, 0x6a, 0x2f,
+ 0xe7, 0xcf, 0x5c, 0x06, 0x3e, 0xc5, 0xd6, 0x82, 0x68, 0x39, 0xd8, 0x47,
+ 0xa1, 0xbb, 0xc4, 0x45, 0x51, 0x71, 0x71, 0xe0, 0x6e, 0x07, 0xbb, 0xeb,
+ 0xd6, 0xe0, 0x9e, 0x0a, 0x09, 0xb4, 0x47, 0x74, 0x45, 0x3e, 0xce, 0x11,
+ 0xb4, 0x35, 0xc9, 0x2b, 0xc5, 0x82, 0xe2, 0xae, 0xb0, 0x68, 0x83, 0x15,
+ 0xf6, 0xda, 0x22, 0x11, 0xcb, 0xa1, 0x1a, 0x90, 0x54, 0xfe, 0x98, 0x14,
+ 0x58, 0x49, 0x09, 0x47, 0xe3, 0xd2, 0xa8, 0xf4, 0xc5, 0xbd, 0x38, 0xcd,
+ 0xd3, 0x79, 0xd1, 0x81, 0x23, 0xe5, 0x36, 0x46, 0x95, 0x60, 0xaf, 0x71,
+ 0x3e, 0x93, 0x1f, 0x07, 0xc6, 0xcb, 0xad, 0x3c, 0x9a, 0x31, 0x71, 0x18,
+ 0x7c, 0xc4, 0xf0, 0x68, 0x5c, 0x4b, 0x4a, 0x01, 0x8e, 0x25, 0x65, 0x91,
+ 0xe7, 0x1a, 0x87, 0xb4, 0x68, 0x2b, 0x81, 0xea, 0xf1, 0xc9, 0x8a, 0x7e,
+ 0xb8, 0x31, 0xd9, 0x37, 0xe9, 0xa4, 0x9d, 0xeb, 0xc2, 0xed, 0xc7, 0xad,
+ 0x7d, 0xda, 0x26, 0x11, 0xcb, 0x3b, 0x61, 0xb4, 0xd4, 0x22, 0xcc, 0x40,
+ 0xfb, 0x4c, 0x9f, 0x64, 0x2b, 0xc4, 0x5d, 0xc6, 0x96, 0x23, 0x17, 0x23,
+ 0x5d, 0x66, 0x8b, 0xa9, 0x9b, 0xa2, 0x7d, 0x88, 0x84, 0x37, 0x38, 0x23,
+ 0xb1, 0xe2, 0x63, 0x1d, 0x6f, 0x1c, 0x80, 0x17, 0x0a, 0x8c, 0xcf, 0x7d,
+ 0x27, 0x29, 0x52, 0x94, 0x88, 0x48, 0xe6, 0xb9, 0x23, 0x48, 0x2d, 0x72,
+ 0x8c, 0x8f, 0x38, 0xc9, 0x9e, 0xae, 0x81, 0xc2, 0xfd, 0x6d, 0x6f, 0xc4,
+ 0x81, 0x3c, 0x72, 0x53, 0xf8, 0xec, 0x07, 0xac, 0xc3, 0xb2, 0x14, 0xa8,
+ 0x1b, 0x5f, 0xae, 0xc4, 0x02, 0x31, 0x64, 0x21, 0x4a, 0x86, 0x13, 0x1d,
+ 0x26, 0x6f, 0xe2, 0xd4, 0xe9, 0xe2, 0xb2, 0x56, 0xbc, 0x38, 0xb6, 0xb4,
+ 0x4f, 0xc2, 0x1a, 0xe9, 0x7c, 0x25, 0xfb, 0x06, 0x71, 0x02, 0xdc, 0xbd,
+ 0x83, 0x00, 0xcc, 0x24, 0xc6, 0x04, 0xf0, 0xe5, 0x9b, 0xfd, 0x3a, 0xec,
+ 0xec, 0xb4, 0x17, 0xfb, 0x74, 0xff, 0xfc, 0xdc, 0x16, 0xfa, 0x20, 0x5c,
+ 0x50, 0x59, 0x42, 0x4d, 0x11, 0x02, 0x9c, 0xa6, 0x22, 0xe7, 0xc4, 0xea,
+ 0x8e, 0xb6, 0xd1, 0x4a, 0x2d, 0xdc, 0x79, 0xe2, 0xfa, 0x72, 0x5d, 0x7d,
+ 0x2b, 0x6d, 0xf5, 0x3f, 0xb2, 0xab, 0xee, 0xbe, 0xbe, 0xed, 0xe8, 0xeb,
+ 0x69, 0x44, 0x44, 0xbb, 0xbb, 0x9f, 0x1a, 0x0e, 0x8d, 0xc0, 0xf1, 0x4f,
+ 0x13, 0xdf, 0x61, 0xd0, 0x23, 0x3d, 0x37, 0x50, 0x2c, 0xd7, 0xac, 0xa3,
+ 0xc0, 0x18, 0xfc, 0x68, 0xf3, 0xb0, 0xab, 0x67, 0xae, 0x2b, 0xd2, 0x99,
+ 0xd6, 0xe1, 0x34, 0xd3, 0x43, 0x12, 0x9d, 0x1d, 0x57, 0xc2, 0xf0, 0x88,
+ 0xd7, 0x80, 0xc4, 0xb0, 0xda, 0x05, 0x01, 0xb5, 0xba, 0xb2, 0x51, 0x04,
+ 0xfd, 0x7c, 0xea, 0xa7, 0xe4, 0xc7, 0xcd, 0x8a, 0x8d, 0x42, 0xd3, 0x0d,
+ 0x83, 0xc3, 0xea, 0x08, 0xc5, 0xd2, 0x13, 0x5c, 0xb8, 0x5c, 0x9b, 0xcf,
+ 0xc8, 0xab, 0xbe, 0x17, 0x39, 0x7e, 0xa7, 0x4c, 0xc4, 0x5a, 0x1a, 0x68,
+ 0x98, 0x9c, 0x40, 0x09, 0x6b, 0x40, 0x08, 0x43, 0x95, 0xe5, 0xe3, 0xee,
+ 0x8a, 0x3e, 0x84, 0xa7, 0x7d, 0xe7, 0xb9, 0x5f, 0x13, 0x1b, 0x92, 0x39,
+ 0x2d, 0xb7, 0xf4, 0xf8, 0x78, 0xff, 0x88, 0xc5, 0x24, 0x64, 0x88, 0x10,
+ 0xe1, 0xa4, 0x33, 0xe0, 0x62, 0x46, 0xa0, 0x86, 0x74, 0xa4, 0x36, 0x9d,
+ 0x6b, 0xe1, 0x12, 0x9c, 0x24, 0xb8, 0x83, 0x3c, 0x25, 0xff, 0x6d, 0xc9,
+ 0x0c, 0x09, 0xb7, 0x2e, 0x23, 0x8e, 0xc9, 0x9f, 0xf6, 0x9e, 0xc0, 0xd4,
+ 0x70, 0x05, 0x31, 0xdc, 0xca, 0x3e, 0x2f, 0x4b, 0x4f, 0x86, 0x5b, 0x7f,
+ 0x9f, 0x24, 0x2b, 0xe5, 0x3a, 0x84, 0x71, 0x3a, 0xa8, 0x8a, 0xa1, 0x4b,
+ 0x6d, 0x36, 0xd8, 0x16, 0xa0, 0xa3, 0x28, 0x03, 0x14, 0xb0, 0x87, 0xc8,
+ 0x63, 0xe4, 0x3a, 0x57, 0xa6, 0xaf, 0x83, 0x68, 0x46, 0x26, 0x06, 0xd2,
+ 0x85, 0x96, 0xb5, 0xa1, 0x2b, 0x70, 0x7b, 0xbb, 0x03, 0x0c, 0x21, 0x1d,
+ 0x15, 0xb7, 0x16, 0xe1, 0xab, 0xf0, 0x3b, 0x78, 0x4b, 0x94, 0x66, 0x88,
+ 0x16, 0x15, 0x8b, 0xa9, 0x83, 0x4b, 0xb6, 0x09, 0xf0, 0x8a, 0x99, 0x47,
+ 0x28, 0x58, 0x37, 0x39, 0x95, 0xdf, 0x01, 0x0e, 0xc8, 0x16, 0xad, 0x75,
+ 0x1c, 0x05, 0x2b, 0xc8, 0x2a, 0x7a, 0xa4, 0x41, 0xd9, 0x28, 0x8d, 0x92,
+ 0x88, 0x46, 0x16, 0x85, 0x32, 0xed, 0x3e, 0x8b, 0x29, 0xe2, 0xfc, 0xe2,
+ 0xe4, 0x4c, 0x29, 0x2c, 0xe6, 0xba, 0x9a, 0x8b, 0xc9, 0x8f, 0xf8, 0x28,
+ 0xe7, 0x7e, 0x57, 0x20, 0xa6, 0x19, 0xe4, 0x25, 0xcd, 0x96, 0x96, 0x2b,
+ 0xe8, 0x55, 0x2e, 0x31, 0x44, 0x56, 0xea, 0xd4, 0xbe, 0x55, 0x0b, 0xbc,
+ 0x95, 0x16, 0xb2, 0x3a, 0xe5, 0xc1, 0x4b, 0x72, 0xd0, 0x4e, 0x96, 0x20,
+ 0x76, 0x31, 0x18, 0x33, 0x1d, 0xa9, 0xe9, 0x98, 0x83, 0x8a, 0xd5, 0x9a,
+ 0xe6, 0x5c, 0x83, 0x6d, 0x5a, 0x94, 0x43, 0x74, 0xe2, 0x8a, 0x47, 0x59,
+ 0x18, 0x81, 0xbb, 0xbb, 0xbc, 0xea, 0x0a, 0xb7, 0x35, 0x3b, 0x9c, 0x24,
+ 0x28, 0x43, 0x73, 0x6f, 0x53, 0x4e, 0x66, 0x69, 0xef, 0xb6, 0xc5, 0x96,
+ 0x59, 0x34, 0x59, 0x20, 0x2a, 0x7a, 0x29, 0x6b, 0xdb, 0xad, 0xf3, 0xe9,
+ 0xc9, 0xd9, 0x85, 0x0d, 0x0d, 0xdd, 0xe2, 0x83, 0xd6, 0xf9, 0x61, 0xe8,
+ 0x39, 0x85, 0x4b, 0x02, 0x67, 0x91, 0x4d, 0x88, 0xb4, 0x52, 0x95, 0x08,
+ 0x65, 0x53, 0xd0, 0x8e, 0x35, 0xc4, 0x3a, 0x5b, 0x79, 0x6f, 0x51, 0x65,
+ 0x40, 0xcb, 0x36, 0x9e, 0x23, 0x66, 0x14, 0x66, 0xd0, 0xdd, 0xee, 0x5e,
+ 0x2f, 0xd3, 0x3c, 0xd9, 0x89, 0xa9, 0x83, 0x95, 0xe7, 0xb3, 0x43, 0xae,
+ 0x64, 0x7f, 0x71, 0x2d, 0xbf, 0x45, 0x63, 0x17, 0x2b, 0xae, 0x7e, 0xd8,
+ 0x1d, 0xa4, 0x02, 0xea, 0xe0, 0x24, 0x29, 0x0e, 0xd9, 0xe7, 0xf6, 0x9d,
+ 0x55, 0x39, 0x58, 0xb3, 0x27, 0x41, 0x42, 0x3c, 0xd8, 0xa6, 0xd2, 0x0a,
+ 0x12, 0xac, 0xf1, 0x41, 0x4f, 0x7b, 0xe9, 0xd1, 0xad, 0x2b, 0x47, 0x82,
+ 0x21, 0xb3, 0x7d, 0x0b, 0x4f, 0x7d, 0x0b, 0x0b, 0xe6, 0xef, 0xda, 0xc0,
+ 0x91, 0x79, 0xd7, 0xf9, 0x43, 0x17, 0xf4, 0x7c, 0x95, 0xcd, 0x8d, 0x30,
+ 0xe4, 0x39, 0xdf, 0xce, 0x33, 0xe7, 0x3d, 0x32, 0xf9, 0x28, 0x18, 0x0a,
+ 0x7f, 0x6c, 0x79, 0xc8, 0x08, 0xe1, 0x6b, 0x91, 0xdd, 0x93, 0x4f, 0xfc,
+ 0x0d, 0xc1, 0xaa, 0x84, 0x8f, 0x13, 0xd1, 0x15, 0x08, 0x6e, 0x24, 0x8e,
+ 0xb3, 0xc9, 0xe7, 0xcb, 0x0c, 0x46, 0xb3, 0xb4, 0x9c, 0x32, 0xa6, 0xbb,
+ 0x06, 0x7a, 0x44, 0x6e, 0x69, 0xcd, 0xa9, 0xf7, 0xfd, 0xe8, 0x4d, 0x74,
+ 0x74, 0x7c, 0xe8, 0xb7, 0x4b, 0xd0, 0xe0, 0x71, 0x98, 0xbd, 0x90, 0x47,
+ 0x07, 0x77, 0xee, 0xae, 0x8b, 0x61, 0x72, 0xca, 0xa5, 0xfc, 0xe0, 0x7e,
+ 0xaa, 0xfe, 0xcd, 0xb7, 0x26, 0x87, 0x05, 0xc6, 0x18, 0xba, 0x40, 0x61,
+ 0x14, 0xcd, 0xe7, 0xb4, 0xbb, 0xf8, 0x84, 0x7f, 0x0d, 0xaa, 0xb0, 0x45,
+ 0x53, 0x7e, 0xee, 0x5f, 0xae, 0x68, 0x1e, 0xa4, 0xaa, 0xb5, 0x1f, 0x79,
+ 0xaa, 0xb4, 0x45, 0x7a, 0x1c, 0x9a, 0x70, 0xec, 0x99, 0xcf, 0x74, 0x29,
+ 0xd5, 0x52, 0x26, 0xd2, 0xc2, 0xa5, 0x3d, 0xd3, 0x60, 0xe3, 0x41, 0x53,
+ 0x72, 0x29, 0xec, 0xcb, 0x3a, 0x21, 0xd9, 0x80, 0x4e, 0x0e, 0x3b, 0x4b,
+ 0xa8, 0xad, 0x39, 0x73, 0xdc, 0xa9, 0x83, 0xfa, 0x0d, 0xb3, 0xc7, 0xb0,
+ 0xb0, 0x0a, 0xc1, 0x18, 0x23, 0x09, 0xb7, 0xea, 0x12, 0x3e, 0x15, 0x6a,
+ 0x74, 0xa4, 0xe3, 0xee, 0xb1, 0xc6, 0xe8, 0xb8, 0x63, 0x9f, 0x74, 0xc5,
+ 0xbb, 0xcd, 0xa6, 0x21, 0xba, 0xe5, 0x43, 0xe9, 0xee, 0xe9, 0x33, 0xdf,
+ 0xd4, 0x25, 0x0a, 0x26, 0x18, 0x7f, 0xdf, 0x6f, 0xf0, 0x20, 0x57, 0x2d,
+ 0x21, 0x77, 0x4f, 0x8a, 0xb2, 0x20, 0x16, 0xea, 0x8e, 0x63, 0x15, 0xf4,
+ 0x21, 0xc4, 0x70, 0x51, 0x70, 0xc4, 0xc4, 0xfc, 0xde, 0x63, 0xae, 0x0c,
+ 0x25, 0x06, 0x51, 0x6c, 0x10, 0x52, 0x3a, 0xc4, 0xa1, 0xb1, 0x88, 0xb6,
+ 0xa9, 0x0a, 0xfa, 0x2c, 0xfd, 0x10, 0x5d, 0xf5, 0xb3, 0xe5, 0x4c, 0xa1,
+ 0x26, 0x82, 0x9e, 0x3e, 0x53, 0x6d, 0xf6, 0x66, 0x4e, 0x24, 0xe9, 0xf5,
+ 0xbf, 0x90, 0x99, 0x16, 0xce, 0x45, 0xec, 0x12, 0x36, 0x25, 0xa8, 0xbb,
+ 0x72, 0x85, 0xd2, 0x3a, 0x30, 0xdd, 0xf9, 0x42, 0x56, 0x31, 0xd1, 0x82,
+ 0x22, 0x8b, 0x00, 0x2a, 0x94, 0xd7, 0x5b, 0x1f, 0x93, 0xaf, 0x1e, 0xf0,
+ 0xd9, 0x97, 0xd9, 0x5f, 0x51, 0xa0, 0x74, 0x28, 0x97, 0x8e, 0x60, 0x75,
+ 0xc9, 0x2c, 0x39, 0x64, 0xc1, 0xb3, 0xbc, 0xa7, 0xcf, 0xd5, 0x54, 0xa1,
+ 0xaa, 0xb0, 0x15, 0xcd, 0x6c, 0x5b, 0x9a, 0x9f, 0xed, 0xf8, 0x74, 0x92,
+ 0x2c, 0x2b, 0xd7, 0x2b, 0xe1, 0x0e, 0x01, 0xbe, 0x03, 0x31, 0xb8, 0xf3,
+ 0xf3, 0xaf, 0x93, 0x37, 0xaf, 0x9e, 0x71, 0x86, 0xf1, 0x55, 0x56, 0x72,
+ 0x41, 0x5a, 0xaf, 0x8b, 0x9d, 0x7c, 0x13, 0x34, 0xb6, 0x1b, 0xc6, 0x04,
+ 0x88, 0xfe, 0xa4, 0x0c, 0x4d, 0x25, 0x6d, 0xda, 0x42, 0x46, 0x2a, 0xbc,
+ 0x32, 0x17, 0x8a, 0x81, 0x8b, 0x1b, 0x84, 0x27, 0x64, 0x97, 0x76, 0x6e,
+ 0x4a, 0x93, 0x89, 0x3d, 0x7b, 0xe2, 0x99, 0x58, 0x79, 0xbf, 0xe0, 0x82,
+ 0x09, 0xf3, 0x2b, 0x16, 0xa8, 0x3b, 0x4e, 0xd4, 0x33, 0x61, 0x9c, 0x07,
+ 0x72, 0xee, 0x59, 0x98, 0x8d, 0x5f, 0x03, 0x5a, 0x22, 0xbc, 0x1d, 0xc1,
+ 0x7b, 0xcf, 0x42, 0x75, 0x92, 0x04, 0x72, 0xdc, 0x8b, 0x5a, 0xca, 0x00,
+ 0x92, 0x4a, 0xf0, 0xec, 0x27, 0xee, 0x59, 0xb6, 0x1d, 0xe4, 0xf3, 0xa0,
+ 0xa8, 0xcc, 0x8a, 0x37, 0x54, 0x08, 0x16, 0xd1, 0xc0, 0x8b, 0x67, 0x22,
+ 0xf7, 0x04, 0x6b, 0x1f, 0xbc, 0xf2, 0xbc, 0xa9, 0x2d, 0xa3, 0xe2, 0xa1,
+ 0x23, 0x4c, 0x4c, 0x2a, 0x5f, 0x5c, 0x87, 0x87, 0xf3, 0x13, 0xb9, 0xa9,
+ 0x4f, 0xdb, 0x70, 0x1d, 0xc6, 0x03, 0xb3, 0xd0, 0x77, 0x67, 0x47, 0x5d,
+ 0x48, 0xff, 0x60, 0x3f, 0xb1, 0x57, 0xa2, 0x1a, 0xf3, 0x4c, 0xeb, 0x41,
+ 0x27, 0x3b, 0x7a, 0x66, 0x68, 0xca, 0xc5, 0xd5, 0x3c, 0xff, 0xbb, 0xe1,
+ 0x8d, 0xf2, 0xfd, 0x6c, 0x05, 0x81, 0x82, 0xc7, 0x77, 0x95, 0x61, 0xdc,
+ 0xa6, 0xd3, 0x5c, 0x99, 0x22, 0xdb, 0xd1, 0xfd, 0x03, 0x4f, 0x94, 0x6a,
+ 0x3f, 0xe4, 0x7c, 0x44, 0x25, 0x52, 0x96, 0x4b, 0xc3, 0xb1, 0x07, 0x27,
+ 0x6b, 0xa0, 0xbf, 0x7c, 0xf2, 0x54, 0x65, 0x2f, 0x93, 0x8f, 0xf9, 0x5e,
+ 0xe2, 0x85, 0x98, 0x02, 0x29, 0xbe, 0xcd, 0xa6, 0x3f, 0xd1, 0xab, 0x4f,
+ 0xb7, 0xd2, 0x15, 0x05, 0x2a, 0xad, 0x9e, 0x15, 0xff, 0x7a, 0x97, 0xcf,
+ 0x35, 0x5b, 0x2c, 0x7a, 0xfd, 0x93, 0x15, 0x26, 0xa8, 0x4a, 0xee, 0xcd,
+ 0x43, 0xd0, 0x52, 0xf0, 0xfc, 0xa7, 0xfe, 0x24, 0x34, 0x50, 0xf6, 0x2d,
+ 0x03, 0x0a, 0xb1, 0x7b, 0x56, 0x8b, 0xc5, 0xce, 0x12, 0xab, 0x2e, 0x0b,
+ 0xd8, 0x69, 0xe7, 0x93, 0xae, 0xd4, 0xcc, 0x4b, 0xd7, 0xfd, 0xb4, 0x60,
+ 0x6e, 0x1a, 0xf4, 0x27, 0x24, 0xf5, 0x1a, 0x05, 0x36, 0xbd, 0x82, 0x30,
+ 0x6f, 0xd4, 0xc1, 0xf3, 0x4f, 0x3f, 0x57, 0xda, 0xb0, 0xfb, 0xd2, 0xc4,
+ 0xd4, 0x95, 0x6f, 0x7c, 0xba, 0x1d, 0x0a, 0xad, 0x13, 0xb6, 0xd4, 0x0b,
+ 0xee, 0xe6, 0xca, 0x17, 0x84, 0x32, 0x8e, 0xe8, 0x1a, 0xb9, 0x22, 0xa2,
+ 0xc6, 0x33, 0x1e, 0xfd, 0xd9, 0x3f, 0xb6, 0xdb, 0x60, 0xba, 0x17, 0xa1,
+ 0x08, 0x95, 0x1c, 0xbd, 0x0a, 0x1e, 0x7c, 0xe2, 0x27, 0x98, 0x4e, 0x59,
+ 0x1a, 0xb8, 0x17, 0x4b, 0x44, 0xa5, 0xa5, 0x08, 0x83, 0x47, 0x9f, 0x6a,
+ 0xc2, 0x8f, 0x44, 0xbb, 0x60, 0xf9, 0xa3, 0x67, 0x84, 0x1c, 0x0e, 0x90,
+ 0xa3, 0x57, 0x03, 0xa6, 0x62, 0x6e, 0xde, 0x82, 0xf6, 0xde, 0x7f, 0xfa,
+ 0xc9, 0x03, 0xcf, 0xea, 0xa5, 0x59, 0xb9, 0xab, 0x3e, 0x78, 0xef, 0xd3,
+ 0xf8, 0x98, 0x9b, 0x5a, 0x60, 0x68, 0x3a, 0x74, 0xd4, 0xf8, 0xa4, 0x25,
+ 0x1b, 0x8c, 0xc2, 0xf8, 0x6f, 0x66, 0xfa, 0x29, 0x39, 0x57, 0xb1, 0xfa,
+ 0xb7, 0x70, 0xbc, 0x9f, 0x85, 0x90, 0x3c, 0x62, 0xf4, 0x71, 0xe5, 0xb0,
+ 0xc3, 0x22, 0x99, 0x3e, 0xa2, 0x1c, 0xab, 0x13, 0xb4, 0x20, 0x7b, 0x4e,
+ 0x72, 0xc4, 0x72, 0xee, 0x39, 0x87, 0x28, 0x83, 0x8a, 0x64, 0x6a, 0xb1,
+ 0xdd, 0x3a, 0xba, 0xaf, 0x69, 0x53, 0x41, 0x1d, 0x81, 0xf1, 0x6c, 0xbb,
+ 0x75, 0x0c, 0xaa, 0xeb, 0xa5, 0xa8, 0xde, 0x6e, 0x46, 0x1e, 0x41, 0x2b,
+ 0x78, 0x6d, 0xd7, 0x73, 0x2f, 0x8c, 0x0d, 0x52, 0xe3, 0x01, 0x8d, 0x56,
+ 0x74, 0xf3, 0x04, 0x64, 0x68, 0x8e, 0x8f, 0xbb, 0xb2, 0xe0, 0x5f, 0x0d,
+ 0xd3, 0x77, 0x23, 0x5d, 0x81, 0x79, 0xa6, 0x00, 0x37, 0x41, 0x37, 0x2a,
+ 0xda, 0x70, 0x40, 0x3c, 0xed, 0xd2, 0x75, 0x36, 0xbe, 0xb1, 0x23, 0xb3,
+ 0x91, 0xb6, 0x60, 0x71, 0x82, 0xb7, 0x9e, 0xba, 0xa5, 0x85, 0x5a, 0x73,
+ 0x76, 0xd8, 0xd6, 0x04, 0xfc, 0xa3, 0x42, 0x35, 0x67, 0x17, 0xe7, 0xa7,
+ 0x7b, 0x3c, 0x66, 0x71, 0xc1, 0xd0, 0x81, 0x38, 0x38, 0xcf, 0xfe, 0xa6,
+ 0x39, 0xd1, 0x95, 0x7f, 0xfa, 0x93, 0x15, 0x4f, 0x9f, 0x6b, 0x8c, 0xd4,
+ 0xd1, 0x84, 0xd9, 0x2f, 0xed, 0x43, 0xf8, 0xd2, 0xa7, 0x0a, 0x32, 0x61,
+ 0xa6, 0x5d, 0xb1, 0x1c, 0xf1, 0xc8, 0x5c, 0x4a, 0x8d, 0x7f, 0xf8, 0x33,
+ 0xaf, 0xd7, 0x5c, 0x2f, 0xe7, 0x37, 0x4e, 0x5e, 0xd4, 0x00, 0x36, 0xdb,
+ 0x60, 0xff, 0xc2, 0x73, 0x3b, 0x1a, 0x01, 0xd0, 0x99, 0x73, 0x7f, 0xf7,
+ 0xd5, 0x52, 0x61, 0x31, 0xab, 0xe2, 0x3b, 0x22, 0xfe, 0xba, 0x0c, 0xd6,
+ 0xe0, 0xf9, 0xb6, 0xbb, 0x7e, 0x17, 0xcb, 0x11, 0x09, 0xa4, 0xc9, 0x4d,
+ 0x76, 0xdf, 0xaa, 0x5b, 0xcf, 0x8e, 0x80, 0x7c, 0xce, 0x86, 0x08, 0xff,
+ 0x88, 0x6b, 0xe0, 0xfb, 0xef, 0x85, 0xc7, 0xbb, 0x08, 0x2a, 0x75, 0x2d,
+ 0xb8, 0x52, 0xd2, 0xc4, 0x10, 0x45, 0x2c, 0xe0, 0xe3, 0x05, 0x7b, 0x7c,
+ 0x99, 0x4d, 0x33, 0xc6, 0x4e, 0x17, 0x3d, 0x05, 0x84, 0xdd, 0x95, 0x82,
+ 0xc9, 0x31, 0xc6, 0x70, 0xab, 0x70, 0xa6, 0x33, 0x0c, 0x7a, 0x73, 0x0e,
+ 0x4c, 0x55, 0x63, 0x15, 0xed, 0xf8, 0xfe, 0xbb, 0x8b, 0xaf, 0x4f, 0xce,
+ 0xce, 0x93, 0x2d, 0x06, 0xb5, 0xbc, 0x38, 0x3b, 0xfa, 0xf2, 0x1d, 0xe9,
+ 0xff, 0xce, 0x2d, 0xf3, 0x2a, 0x9d, 0xe7, 0x74, 0x73, 0x9c, 0xd7, 0xd9,
+ 0x9c, 0xf6, 0xf1, 0xca, 0xca, 0x95, 0x4a, 0xb1, 0x13, 0xba, 0x2b, 0x8b,
+ 0x52, 0x2a, 0x65, 0x21, 0x3d, 0xee, 0xba, 0xd0, 0xcd, 0x90, 0x60, 0x4b,
+ 0x4e, 0x2b, 0xe0, 0x6c, 0x8d, 0xc2, 0xeb, 0xb6, 0x79, 0x0b, 0x93, 0xd3,
+ 0xbc, 0xab, 0xc9, 0xc5, 0xd7, 0xfb, 0x6f, 0xbf, 0x39, 0xb7, 0xc2, 0x00,
+ 0xdf, 0x7d, 0xf7, 0x5d, 0xe8, 0xf5, 0xdf, 0xdb, 0xda, 0x82, 0x78, 0x79,
+ 0x9d, 0x7e, 0xf8, 0x30, 0xac, 0xb2, 0xb5, 0xb5, 0xd7, 0xde, 0x57, 0xe7,
+ 0x8b, 0xcd, 0x56, 0x4b, 0x92, 0x2c, 0xe8, 0xeb, 0x2d, 0x5a, 0x5f, 0x2e,
+ 0x6e, 0xbb, 0xb5, 0xac, 0xf3, 0x29, 0x5d, 0x48, 0x59, 0x85, 0xb7, 0xb7,
+ 0xd6, 0xd6, 0xce, 0x0f, 0x0f, 0x93, 0xfd, 0xe3, 0xf3, 0x93, 0xe0, 0xdd,
+ 0x8d, 0x1d, 0x8e, 0x5c, 0xb9, 0xca, 0xea, 0x0d, 0xc6, 0x87, 0x3d, 0xde,
+ 0xbf, 0x60, 0x9d, 0xf7, 0xdb, 0xc3, 0xb3, 0xf3, 0xa3, 0x93, 0xb7, 0xbc,
+ 0x3b, 0x1c, 0xb0, 0x98, 0x4e, 0xef, 0x38, 0x5e, 0xf5, 0x32, 0x07, 0x58,
+ 0xcf, 0x9d, 0x55, 0x8e, 0x6d, 0x23, 0xef, 0xd3, 0x7d, 0x75, 0xc7, 0xa8,
+ 0xd9, 0x1a, 0xe8, 0xc0, 0x81, 0xeb, 0xb4, 0x12, 0x16, 0x89, 0xb8, 0x96,
+ 0x78, 0xbb, 0x97, 0x80, 0xfa, 0x66, 0x23, 0x09, 0xaf, 0xee, 0x0b, 0xc4,
+ 0x05, 0xd2, 0x5b, 0x82, 0xb8, 0xc9, 0xce, 0x89, 0x9f, 0x1f, 0x71, 0x71,
+ 0x96, 0xe4, 0xdd, 0xf9, 0xfe, 0x57, 0x87, 0xfc, 0xe8, 0x57, 0x59, 0xed,
+ 0xf7, 0x43, 0x2a, 0xdc, 0x72, 0x27, 0x6f, 0xb3, 0xba, 0x1a, 0xa7, 0x0b,
+ 0x4e, 0xe1, 0xa7, 0x6e, 0x06, 0x72, 0x0f, 0x05, 0x6d, 0x8b, 0x2e, 0xe0,
+ 0xcb, 0x00, 0xcf, 0xf5, 0x79, 0xd4, 0xe8, 0x0d, 0xdb, 0x3d, 0x3b, 0xdc,
+ 0x7f, 0xf5, 0xe6, 0xd0, 0x02, 0xf4, 0xa5, 0x20, 0x06, 0x35, 0x7a, 0x5d,
+ 0xcc, 0xb2, 0xc0, 0x16, 0xce, 0xb2, 0x01, 0x2f, 0x3e, 0x7d, 0xc3, 0x45,
+ 0x72, 0xbb, 0xbb, 0xf3, 0x1b, 0x85, 0x67, 0x87, 0x97, 0xf9, 0x96, 0xb4,
+ 0x6e, 0xfd, 0xa5, 0x6e, 0x49, 0x64, 0x12, 0xa9, 0x89, 0xcb, 0x62, 0xd3,
+ 0x80, 0x31, 0xe4, 0xb3, 0xed, 0xed, 0xed, 0x07, 0xe6, 0x01, 0x7d, 0x42,
+ 0x6f, 0x5d, 0x9a, 0xca, 0x1e, 0x3f, 0xbe, 0xe5, 0xdb, 0xf7, 0x23, 0x9e,
+ 0x2a, 0x5e, 0x02, 0xd7, 0xb1, 0x9b, 0x0b, 0x38, 0x6f, 0x5e, 0x67, 0xdd,
+ 0x43, 0x1e, 0x17, 0x85, 0xdb, 0x81, 0xc6, 0xe2, 0x90, 0x84, 0x0c, 0x89,
+ 0x47, 0x23, 0x3b, 0xf1, 0x86, 0x0c, 0x9c, 0xf4, 0x1f, 0x44, 0xb3, 0x95,
+ 0xf7, 0xed, 0x26, 0xf9, 0x1b, 0x6a, 0x93, 0x7f, 0x0c, 0x8b, 0xf2, 0x6a,
+ 0x6b, 0xb6, 0x07, 0x91, 0x86, 0x1e, 0x7a, 0xcd, 0x68, 0x2a, 0x09, 0x89,
+ 0xc6, 0x2e, 0x28, 0xbd, 0xe2, 0x85, 0xe5, 0xfc, 0x99, 0x8f, 0x18, 0xd7,
+ 0x2f, 0x58, 0x05, 0x89, 0x88, 0xba, 0xb4, 0x99, 0x5b, 0x31, 0xcb, 0x8e,
+ 0x4e, 0x2a, 0xde, 0x30, 0xb6, 0x38, 0x0e, 0x89, 0x81, 0x50, 0x2f, 0x1c,
+ 0xee, 0x06, 0x12, 0xa1, 0x5f, 0x4b, 0x22, 0x99, 0x61, 0xfd, 0x01, 0x7c,
+ 0x57, 0xeb, 0xaa, 0x0a, 0xb6, 0x24, 0x7b, 0x70, 0x17, 0x9c, 0xe4, 0x5a,
+ 0xa2, 0x24, 0x0b, 0x7a, 0xe0, 0xc4, 0x59, 0xe2, 0x3c, 0x57, 0xba, 0x70,
+ 0x88, 0x01, 0xe2, 0x86, 0xdb, 0x7d, 0x0e, 0x06, 0xa0, 0x9f, 0xca, 0x51,
+ 0xcb, 0x47, 0x74, 0x1e, 0x4c, 0x4a, 0x56, 0x7f, 0xae, 0xd7, 0x74, 0x40,
+ 0x3b, 0xe7, 0x34, 0x8a, 0xa8, 0xaf, 0xa5, 0x2f, 0x0d, 0x5b, 0x49, 0x77,
+ 0x41, 0x5d, 0x23, 0x46, 0xa2, 0xdb, 0x42, 0x16, 0xd9, 0x47, 0xf7, 0x71,
+ 0x70, 0xaa, 0xbf, 0x71, 0x2c, 0x4d, 0x7e, 0xcb, 0x93, 0x67, 0x16, 0x4f,
+ 0x97, 0x35, 0xdf, 0x01, 0x26, 0xe3, 0x22, 0x34, 0x07, 0xea, 0x2a, 0x32,
+ 0x1e, 0x42, 0x7d, 0xe3, 0x81, 0x11, 0xee, 0xd1, 0xd2, 0xf0, 0x95, 0xf2,
+ 0x5f, 0x5b, 0xc3, 0xaa, 0xba, 0xde, 0xca, 0x27, 0xef, 0xcb, 0x2a, 0x4d,
+ 0x7e, 0x6a, 0xf2, 0xfb, 0x6a, 0xdc, 0x9e, 0xc4, 0x7f, 0x61, 0x05, 0x7f,
+ 0xd1, 0x4a, 0xad, 0x9e, 0xc5, 0x6f, 0x31, 0x83, 0xc1, 0x00, 0xe0, 0x0e,
+ 0xda, 0xd3, 0x7b, 0x7a, 0xe0, 0xbd, 0x43, 0xa8, 0xf8, 0x15, 0xb3, 0xeb,
+ 0x60, 0x85, 0x34, 0x49, 0x09, 0x34, 0x27, 0xde, 0xd2, 0x4d, 0xe8, 0x3d,
+ 0x3d, 0x3a, 0x3f, 0xee, 0x6e, 0x6f, 0xef, 0xec, 0xed, 0x7c, 0xf6, 0x7c,
+ 0x7b, 0x6f, 0x67, 0x67, 0x67, 0x77, 0x6f, 0x67, 0x6f, 0x6f, 0x77, 0xfb,
+ 0xe7, 0xad, 0xde, 0xaa, 0xa5, 0x7b, 0xf3, 0xe5, 0x8a, 0x06, 0x69, 0xd6,
+ 0x3d, 0x89, 0x62, 0xfd, 0xc9, 0xcd, 0x1e, 0xb3, 0x9a, 0xf4, 0x92, 0x6a,
+ 0x36, 0xa2, 0xae, 0xf4, 0x70, 0x86, 0x93, 0xa9, 0x48, 0x92, 0xce, 0x82,
+ 0x09, 0xbd, 0x3a, 0xf9, 0xee, 0xed, 0xf1, 0xc9, 0xfe, 0xab, 0xe4, 0xe2,
+ 0x24, 0xd9, 0x87, 0xdd, 0xaf, 0x83, 0x4f, 0x22, 0x12, 0x9d, 0x33, 0x2e,
+ 0x05, 0x1e, 0xc3, 0xfb, 0x08, 0xcc, 0x48, 0xe5, 0x42, 0x9f, 0x30, 0x88,
+ 0xf6, 0x38, 0x0b, 0xe8, 0x75, 0xdc, 0xd2, 0xf0, 0xba, 0x9e, 0x3d, 0x7e,
+ 0x23, 0x7c, 0x4c, 0xcf, 0x7d, 0x71, 0xc5, 0x7b, 0xd5, 0x1d, 0xc3, 0xb1,
+ 0x93, 0xaf, 0x69, 0x4d, 0xea, 0xd0, 0x52, 0x37, 0xb6, 0x4b, 0xc2, 0xd9,
+ 0x90, 0xc0, 0x2d, 0xbc, 0x81, 0x73, 0x09, 0xef, 0x57, 0x3b, 0x38, 0x48,
+ 0x85, 0xfa, 0xbe, 0xc5, 0x49, 0x40, 0x46, 0x62, 0xa1, 0x74, 0x33, 0x9a,
+ 0xe0, 0xc9, 0xca, 0x29, 0xd1, 0x5d, 0x9e, 0x7d, 0xc0, 0xac, 0x9b, 0xbc,
+ 0x57, 0xc2, 0x9c, 0xfd, 0xec, 0x50, 0xac, 0xc1, 0x8c, 0x11, 0x79, 0x69,
+ 0x43, 0x46, 0x84, 0x57, 0x47, 0x77, 0xdc, 0x8f, 0xb1, 0x64, 0xdf, 0x05,
+ 0x7f, 0x13, 0xde, 0xe3, 0x5b, 0xce, 0xbe, 0x2b, 0x03, 0x78, 0x77, 0x7e,
+ 0xf4, 0xf6, 0x2b, 0x78, 0x70, 0xbf, 0x3b, 0x39, 0x7b, 0x75, 0x4e, 0xcd,
+ 0xb2, 0x80, 0xb3, 0x06, 0x13, 0x1f, 0x73, 0x42, 0x1d, 0x95, 0x9c, 0x4b,
+ 0xee, 0xfa, 0xcf, 0x42, 0x4e, 0xfd, 0xb0, 0xc4, 0xdf, 0x2c, 0x54, 0x78,
+ 0x18, 0x27, 0xa2, 0xfb, 0xd6, 0x08, 0xa8, 0xf1, 0x8b, 0x59, 0x3a, 0xbe,
+ 0x66, 0x0d, 0x5d, 0x88, 0x15, 0xa1, 0x76, 0x5b, 0x9c, 0x33, 0xb3, 0xc5,
+ 0x8a, 0xd7, 0x56, 0x5d, 0x80, 0x1c, 0xd1, 0x8a, 0x64, 0x2b, 0x5a, 0x51,
+ 0xba, 0xc0, 0x3c, 0x43, 0xb4, 0x7e, 0x39, 0x4d, 0xaf, 0xd0, 0x61, 0x7c,
+ 0x0c, 0x82, 0xce, 0xb4, 0xfb, 0x8f, 0xed, 0x92, 0xaf, 0x0d, 0xb4, 0x77,
+ 0x04, 0x02, 0x00, 0x8a, 0x1c, 0xc0, 0x2f, 0xd4, 0xf3, 0x24, 0x52, 0x27,
+ 0xfb, 0xe9, 0x11, 0xd2, 0xc3, 0x15, 0xb6, 0xdb, 0x75, 0xa7, 0x50, 0xf2,
+ 0x58, 0x70, 0x77, 0x48, 0x30, 0x1f, 0x04, 0xf8, 0x3d, 0xa2, 0x9c, 0x72,
+ 0x4b, 0x81, 0x11, 0xa8, 0xf2, 0x61, 0x89, 0x28, 0x0d, 0x04, 0x93, 0x87,
+ 0x2c, 0x39, 0x0f, 0x06, 0xc8, 0x53, 0x95, 0xc5, 0xbb, 0xa9, 0x18, 0xdc,
+ 0xe3, 0x4a, 0x82, 0x1c, 0xb0, 0xd2, 0x33, 0x30, 0x19, 0x5f, 0x63, 0xc4,
+ 0xe3, 0x01, 0x57, 0x35, 0x0d, 0x25, 0xe5, 0x9a, 0x94, 0xa8, 0xb6, 0x6c,
+ 0x10, 0xe3, 0xa4, 0x4e, 0x49, 0x56, 0x73, 0xcf, 0xc2, 0x5e, 0xa4, 0x95,
+ 0xbc, 0x92, 0xbc, 0x02, 0x07, 0x92, 0xc1, 0x97, 0x97, 0xe0, 0x5e, 0xad,
+ 0x69, 0x48, 0x81, 0xbf, 0x27, 0xbd, 0xe9, 0x92, 0xef, 0x38, 0x12, 0xe2,
+ 0x89, 0x81, 0x0b, 0xe5, 0x68, 0x0a, 0x6e, 0x50, 0xda, 0xb6, 0xb1, 0x6c,
+ 0x96, 0x85, 0x23, 0xcd, 0x31, 0x67, 0xf6, 0x66, 0x58, 0xb7, 0x82, 0x6b,
+ 0x08, 0x3d, 0x72, 0xb7, 0x40, 0x47, 0x3e, 0x7e, 0xea, 0xe1, 0x6b, 0x82,
+ 0x65, 0x93, 0x60, 0x3b, 0xff, 0x1e, 0xed, 0x11, 0x37, 0x95, 0xd7, 0x55,
+ 0x36, 0xbd, 0x54, 0xbc, 0x21, 0xb9, 0x42, 0x78, 0x96, 0x69, 0x0b, 0x95,
+ 0x88, 0xfd, 0xa5, 0x73, 0x07, 0x7f, 0x52, 0x28, 0x2f, 0xb9, 0x02, 0x5b,
+ 0x97, 0xe7, 0x40, 0x92, 0x0d, 0x1e, 0x22, 0x4e, 0xd1, 0xbf, 0x48, 0xa0,
+ 0x96, 0x6b, 0xae, 0xc1, 0x3a, 0x1a, 0x11, 0xc6, 0x7c, 0xeb, 0xd8, 0xda,
+ 0xf1, 0x6a, 0xdd, 0x2f, 0xb8, 0x82, 0x00, 0x47, 0x45, 0x88, 0x70, 0x0e,
+ 0xbd, 0xcb, 0xd2, 0x78, 0x00, 0x91, 0x92, 0x7d, 0xe0, 0xa4, 0x16, 0x9d,
+ 0x9b, 0x57, 0xf2, 0x9c, 0x50, 0xaf, 0xf3, 0xe5, 0xd6, 0xf0, 0x39, 0x78,
+ 0x21, 0xaf, 0x36, 0x23, 0x8a, 0xb1, 0xa2, 0xa6, 0x91, 0xb8, 0x0e, 0xd1,
+ 0x02, 0xaa, 0xa1, 0xab, 0x5a, 0xac, 0xb0, 0x20, 0x92, 0x6f, 0x76, 0x6f,
+ 0xde, 0x3f, 0x38, 0x5f, 0x53, 0x51, 0x20, 0x21, 0x04, 0x07, 0x1d, 0x33,
+ 0x29, 0xa1, 0xb4, 0x4a, 0x23, 0x54, 0xb3, 0x31, 0xcb, 0xe5, 0xc8, 0x6f,
+ 0x2c, 0xd3, 0x08, 0x82, 0x1c, 0xb9, 0x49, 0xf8, 0x9a, 0x71, 0x6a, 0x5c,
+ 0x8c, 0xef, 0x32, 0x82, 0x88, 0xca, 0x15, 0x68, 0x8b, 0x18, 0x0a, 0x12,
+ 0x18, 0x97, 0x95, 0xa3, 0x1c, 0x5a, 0xad, 0x1b, 0xbd, 0x10, 0xd7, 0x10,
+ 0xfd, 0x1a, 0xb3, 0x1b, 0xe5, 0xbc, 0xab, 0xf9, 0xcd, 0xe3, 0xac, 0x26,
+ 0x1e, 0x92, 0xe9, 0x8b, 0xd3, 0x7b, 0xe1, 0x06, 0xf9, 0xfc, 0x61, 0xa6,
+ 0xa3, 0x83, 0xf8, 0xa8, 0x8e, 0x31, 0x57, 0x05, 0xd5, 0x81, 0x5b, 0xc5,
+ 0x47, 0x1f, 0x4a, 0x24, 0x07, 0x92, 0x62, 0x5a, 0xc9, 0x1d, 0x66, 0x94,
+ 0x74, 0xeb, 0x88, 0x03, 0x2f, 0xa9, 0x9f, 0x7b, 0xc9, 0x97, 0x69, 0x95,
+ 0x8f, 0xfb, 0x5a, 0x99, 0x52, 0x2b, 0x55, 0xf2, 0x1b, 0xbe, 0x62, 0xe1,
+ 0x86, 0xa4, 0xf5, 0x6c, 0x0e, 0x93, 0xef, 0xac, 0xd4, 0x28, 0xe9, 0x90,
+ 0x00, 0xcb, 0x65, 0x5f, 0x00, 0xb7, 0xd6, 0x40, 0x5d, 0x52, 0xfa, 0x74,
+ 0xc8, 0x46, 0xf4, 0x29, 0x3a, 0xf1, 0xa5, 0x84, 0xb0, 0xab, 0x69, 0x75,
+ 0xe3, 0x3c, 0x61, 0xd8, 0x2b, 0x65, 0x45, 0x00, 0x67, 0x14, 0x59, 0x5a,
+ 0x2c, 0x03, 0xc5, 0xd2, 0x85, 0x97, 0xe0, 0x6f, 0x77, 0x7c, 0xad, 0x50,
+ 0x30, 0xac, 0xaf, 0x95, 0xc6, 0x25, 0x5a, 0xf4, 0x08, 0x5f, 0xbf, 0xdc,
+ 0x9c, 0x63, 0x51, 0x83, 0x01, 0x2d, 0x18, 0x2f, 0x8d, 0x32, 0xd0, 0x93,
+ 0x8b, 0xc3, 0xdf, 0x25, 0xfb, 0x6d, 0xe7, 0x39, 0xdf, 0x4c, 0x0d, 0x78,
+ 0xa5, 0xbe, 0x27, 0x30, 0x8c, 0x5d, 0x42, 0x11, 0xa5, 0xc0, 0x56, 0x8a,
+ 0xed, 0x5f, 0xd3, 0xc4, 0x67, 0x6f, 0x22, 0xae, 0x0a, 0x8d, 0xac, 0xae,
+ 0xef, 0xad, 0xaa, 0x00, 0xbf, 0x06, 0x97, 0x42, 0x50, 0x58, 0x48, 0x72,
+ 0x47, 0xf3, 0x54, 0x22, 0xdb, 0x19, 0x4c, 0x8d, 0x36, 0x65, 0x2e, 0x0c,
+ 0x14, 0x41, 0xd8, 0x12, 0x2b, 0x28, 0x68, 0x65, 0x79, 0x0d, 0x55, 0x4b,
+ 0x32, 0xb8, 0xa4, 0xc0, 0x60, 0x50, 0x55, 0x36, 0x0d, 0x71, 0xed, 0xde,
+ 0xf3, 0x91, 0x7b, 0x6f, 0x17, 0x8b, 0x5e, 0x81, 0x32, 0x96, 0x4b, 0xd1,
+ 0x83, 0x9a, 0x24, 0x6b, 0xc7, 0x4e, 0x6e, 0xb3, 0x53, 0x0b, 0x43, 0xc4,
+ 0x46, 0x8c, 0x01, 0x17, 0x35, 0xbd, 0x17, 0xaf, 0x39, 0xee, 0x54, 0xe3,
+ 0x9a, 0xe1, 0xc5, 0x04, 0x1c, 0x38, 0x00, 0x4f, 0xa1, 0xe0, 0xb7, 0x16,
+ 0xaf, 0x92, 0xa0, 0x6f, 0x6a, 0xb5, 0x19, 0xaa, 0x8f, 0xe4, 0x1d, 0xac,
+ 0x2a, 0x8f, 0x42, 0x40, 0x17, 0xc3, 0x54, 0x01, 0x6a, 0x0d, 0x1d, 0x59,
+ 0xfd, 0xe6, 0x16, 0x41, 0x13, 0x37, 0x3c, 0xaa, 0x5b, 0xec, 0xc9, 0x95,
+ 0x85, 0x0a, 0x62, 0x54, 0x5f, 0x3b, 0x00, 0x3e, 0x6d, 0x96, 0xcb, 0x5b,
+ 0x8e, 0xb3, 0x20, 0x43, 0x67, 0x5e, 0xac, 0x05, 0x37, 0x9f, 0xd0, 0x4f,
+ 0x51, 0x19, 0x4f, 0x14, 0x74, 0x36, 0x29, 0x6d, 0x37, 0xca, 0xa4, 0xde,
+ 0x04, 0x51, 0x89, 0xec, 0x22, 0x20, 0x4c, 0xf9, 0x04, 0x0a, 0x65, 0xce,
+ 0x40, 0xdc, 0x6b, 0x9e, 0xba, 0xf9, 0x0e, 0x5a, 0x35, 0x4f, 0x4e, 0xd5,
+ 0x65, 0x72, 0x33, 0x7b, 0xb9, 0x88, 0x4e, 0xac, 0xa7, 0xcc, 0xb5, 0x70,
+ 0x27, 0x8c, 0x47, 0x3a, 0x6a, 0xde, 0x1d, 0x48, 0xb6, 0x73, 0x27, 0x67,
+ 0xd9, 0xa6, 0x37, 0x50, 0x06, 0x99, 0xa7, 0x4c, 0x92, 0xd9, 0xbd, 0xa6,
+ 0xa6, 0xa8, 0x6c, 0xc0, 0x18, 0x0f, 0xb0, 0x4a, 0x7c, 0xf6, 0x59, 0x24,
+ 0x0b, 0x7e, 0x70, 0x4f, 0xef, 0xd1, 0xd7, 0x81, 0xf5, 0x63, 0xca, 0x81,
+ 0x26, 0x6c, 0x6d, 0x80, 0x1c, 0xea, 0x4c, 0x20, 0x1d, 0x1a, 0x46, 0x80,
+ 0x99, 0x26, 0x3d, 0x3a, 0xbf, 0x4c, 0x44, 0x65, 0x7d, 0xcf, 0xf7, 0xd7,
+ 0x44, 0xbd, 0xd6, 0xc2, 0xac, 0x95, 0x04, 0x2c, 0xad, 0x50, 0xcc, 0x8c,
+ 0x4d, 0xb6, 0x47, 0x1b, 0x48, 0xcd, 0x24, 0xb9, 0x0f, 0xf9, 0x52, 0x65,
+ 0x25, 0xe0, 0xbc, 0xd0, 0x86, 0x79, 0x91, 0x75, 0x30, 0x8e, 0x3a, 0x5a,
+ 0x74, 0xe4, 0xaa, 0x8a, 0x7a, 0x1e, 0xf1, 0x6e, 0xf5, 0x70, 0xde, 0xfd,
+ 0x9a, 0xe1, 0xec, 0x27, 0x0f, 0xa6, 0x68, 0x08, 0x24, 0x04, 0x38, 0x7e,
+ 0x65, 0xc9, 0x69, 0x05, 0xa8, 0xda, 0xe4, 0x1e, 0x59, 0x23, 0x14, 0x06,
+ 0x6e, 0x55, 0xdf, 0x8b, 0x0d, 0x13, 0xf3, 0x42, 0x9e, 0x86, 0x52, 0xc3,
+ 0xed, 0xf7, 0x6d, 0x28, 0x1f, 0x3b, 0x5c, 0xc1, 0xbd, 0x71, 0x49, 0x28,
+ 0xed, 0xf4, 0x0a, 0x4d, 0x7b, 0xda, 0x19, 0x6e, 0x87, 0xf2, 0x95, 0x4b,
+ 0x86, 0x2a, 0x01, 0x40, 0x5b, 0x03, 0x5a, 0xca, 0x8b, 0x28, 0x3c, 0x13,
+ 0x64, 0x07, 0xb6, 0x5e, 0xd3, 0xcf, 0x76, 0x04, 0xc2, 0x8b, 0x4e, 0x92,
+ 0x16, 0x2c, 0x62, 0x04, 0x9d, 0x6c, 0xb6, 0x40, 0xd2, 0x88, 0x71, 0xc0,
+ 0x50, 0x08, 0xc0, 0x39, 0x7a, 0xea, 0x8f, 0xd4, 0x33, 0xb7, 0xdd, 0x3a,
+ 0x46, 0xc9, 0x29, 0xd0, 0x4a, 0xf0, 0x12, 0xd6, 0x0f, 0xe1, 0x33, 0xcb,
+ 0xa4, 0xa5, 0x7a, 0x65, 0x72, 0xdb, 0x41, 0x33, 0xd1, 0x94, 0xe9, 0x19,
+ 0x97, 0x6d, 0x72, 0xb9, 0x2c, 0xc1, 0x78, 0x15, 0x82, 0x51, 0xd1, 0x68,
+ 0xb8, 0x55, 0x8e, 0xcf, 0xed, 0xe0, 0x34, 0x48, 0xdf, 0xce, 0x50, 0xd7,
+ 0x9d, 0xcf, 0xb5, 0x58, 0xc7, 0x81, 0x9c, 0xa1, 0x35, 0xf7, 0xbc, 0xef,
+ 0xcd, 0x89, 0x67, 0xd4, 0xee, 0x34, 0xa7, 0x01, 0xad, 0x03, 0x96, 0xc5,
+ 0x4a, 0x56, 0x2b, 0x2f, 0x74, 0xe8, 0x94, 0x06, 0xcb, 0xde, 0xac, 0x07,
+ 0x1d, 0x97, 0xf0, 0x6a, 0x33, 0x5d, 0xb9, 0x06, 0xfa, 0xc9, 0xe0, 0x7f,
+ 0xe9, 0xca, 0xb0, 0x78, 0xce, 0xb1, 0x63, 0xa8, 0xdb, 0xb1, 0x08, 0xf0,
+ 0x4c, 0x35, 0xc5, 0x0f, 0x0c, 0x9f, 0x03, 0x43, 0x6d, 0x1e, 0x2e, 0xef,
+ 0xd6, 0x72, 0x84, 0xc0, 0xff, 0x5e, 0x87, 0xc8, 0xb5, 0x8d, 0x32, 0xdd,
+ 0xca, 0x2a, 0xa4, 0xb9, 0x35, 0x57, 0x08, 0x44, 0x62, 0x05, 0xa3, 0x01,
+ 0xbb, 0x8b, 0xec, 0x4b, 0x2e, 0x94, 0x78, 0x50, 0xa4, 0xe1, 0xb2, 0x9a,
+ 0x2e, 0xb7, 0x66, 0x23, 0x15, 0xe2, 0x77, 0xa6, 0x0c, 0xc9, 0x6f, 0x1d,
+ 0xd0, 0x0b, 0x83, 0x77, 0x6a, 0xce, 0xf8, 0x42, 0x7a, 0x18, 0xc2, 0xec,
+ 0x2e, 0x3d, 0x9c, 0xa2, 0xc0, 0xb4, 0x3d, 0xb0, 0xa7, 0x2f, 0x71, 0x52,
+ 0x6c, 0x4f, 0x2d, 0x39, 0xcd, 0x55, 0x91, 0xe7, 0x2d, 0x69, 0x96, 0xab,
+ 0x13, 0x63, 0x0a, 0x03, 0x71, 0xe8, 0xf0, 0x21, 0x93, 0x5f, 0xe5, 0x5d,
+ 0x55, 0x1e, 0xef, 0xb9, 0x89, 0xa1, 0x44, 0xdd, 0xab, 0xed, 0x65, 0x77,
+ 0x67, 0x4b, 0x06, 0xb3, 0x25, 0x0d, 0x88, 0x5c, 0xa7, 0x24, 0xe9, 0x83,
+ 0x40, 0x0c, 0x80, 0x28, 0xbc, 0xb9, 0x38, 0x47, 0x80, 0x83, 0x77, 0x66,
+ 0x1a, 0x79, 0x0c, 0xef, 0x1a, 0x5f, 0x4d, 0x74, 0xd7, 0x02, 0xce, 0x48,
+ 0x93, 0x18, 0xb9, 0x7c, 0x82, 0xdb, 0xa0, 0xbe, 0x13, 0xf9, 0x88, 0x94,
+ 0x06, 0xb7, 0xa1, 0xd6, 0x94, 0x29, 0xba, 0xe8, 0xf4, 0x1e, 0xbe, 0x01,
+ 0x57, 0x6f, 0x4f, 0x43, 0x25, 0x88, 0xa2, 0xcf, 0xf6, 0xdf, 0x7e, 0x75,
+ 0x08, 0x49, 0xc0, 0xc1, 0x4d, 0xe6, 0x4c, 0xed, 0x93, 0xe5, 0x18, 0xaa,
+ 0x10, 0xad, 0x18, 0x62, 0xdf, 0x80, 0xc3, 0x6c, 0xe5, 0x11, 0x51, 0xf1,
+ 0x11, 0xc4, 0x8b, 0xed, 0xd6, 0x88, 0xb6, 0xb5, 0xc4, 0x2c, 0xaa, 0x90,
+ 0x20, 0x58, 0x61, 0xa4, 0x19, 0xc2, 0xfc, 0x5a, 0x2d, 0x47, 0x8b, 0x54,
+ 0x11, 0x6a, 0xd2, 0x10, 0xc2, 0x44, 0xed, 0x2c, 0xc3, 0xe6, 0x59, 0x5c,
+ 0xb3, 0xf4, 0x16, 0xa7, 0xd3, 0x97, 0xd0, 0xe9, 0x87, 0xa1, 0x55, 0x4d,
+ 0x20, 0x36, 0x76, 0xb6, 0xb7, 0x7d, 0xc1, 0x1d, 0x0f, 0xc5, 0x12, 0x71,
+ 0xcb, 0x32, 0xd9, 0x1e, 0x3c, 0x7f, 0xbe, 0x8a, 0x11, 0xba, 0x46, 0x81,
+ 0x87, 0xf2, 0xec, 0xa3, 0xdb, 0x1c, 0xf0, 0xa3, 0xab, 0xda, 0xec, 0xd0,
+ 0x68, 0xaa, 0x1c, 0x60, 0x84, 0xb2, 0xa2, 0x4e, 0x6a, 0x51, 0x0b, 0x8f,
+ 0x38, 0x6b, 0xe0, 0x3c, 0x73, 0xf5, 0xe1, 0xb1, 0x94, 0x6b, 0x1e, 0x29,
+ 0x1b, 0xc0, 0x19, 0x66, 0x0c, 0x5a, 0x70, 0x40, 0x61, 0xee, 0x7c, 0xb8,
+ 0x1f, 0xb5, 0x30, 0x81, 0x02, 0xbf, 0x62, 0x89, 0x2e, 0xe3, 0xd9, 0x98,
+ 0x48, 0xf0, 0xee, 0x94, 0xed, 0x7f, 0x47, 0x6f, 0xbf, 0x12, 0x73, 0x08,
+ 0xe9, 0xf6, 0xb0, 0xa5, 0x6f, 0xb5, 0x34, 0xfd, 0x77, 0x52, 0x37, 0x87,
+ 0xc3, 0x49, 0x11, 0xbc, 0x21, 0x65, 0x6f, 0xf3, 0xb9, 0xb0, 0x02, 0xbf,
+ 0xfb, 0x2b, 0x6c, 0x95, 0x17, 0xc9, 0x20, 0x10, 0x4e, 0xb4, 0x6c, 0x0e,
+ 0x4b, 0x26, 0xb3, 0x7b, 0xd3, 0x8c, 0xb4, 0x07, 0xb4, 0x6e, 0x9e, 0x19,
+ 0xd7, 0xac, 0xe8, 0xb9, 0xa2, 0x9e, 0x83, 0x82, 0x22, 0xd9, 0xa4, 0xa3,
+ 0x4b, 0xe9, 0x06, 0xe7, 0xbb, 0x25, 0x89, 0x7c, 0xdc, 0x50, 0x1a, 0xa6,
+ 0xce, 0x66, 0xa1, 0x45, 0x96, 0xac, 0xfa, 0x66, 0xfb, 0x69, 0x9b, 0x21,
+ 0xa5, 0x94, 0x7b, 0xc8, 0xd5, 0x79, 0xb7, 0x51, 0x94, 0xb5, 0x28, 0xfe,
+ 0xfb, 0xe3, 0x7c, 0x60, 0x84, 0x7c, 0x50, 0xf9, 0xa6, 0x9a, 0x4f, 0xbc,
+ 0x4d, 0x43, 0x47, 0xdc, 0xe9, 0x08, 0xb9, 0x90, 0xf7, 0xa5, 0xeb, 0xb4,
+ 0xbb, 0x3b, 0x79, 0xdf, 0x96, 0xa6, 0xe3, 0x00, 0xb0, 0x48, 0xab, 0x65,
+ 0x95, 0x5c, 0xea, 0xa9, 0xe9, 0x32, 0x2c, 0x85, 0x83, 0x73, 0xe4, 0x4d,
+ 0xb1, 0x64, 0x2d, 0xd1, 0xfc, 0x76, 0x14, 0x5d, 0x62, 0x1a, 0x02, 0x0a,
+ 0x3f, 0x2e, 0xaf, 0x9b, 0x5c, 0xcb, 0x0e, 0x02, 0x6b, 0x9a, 0x59, 0x1a,
+ 0x0b, 0x35, 0x8a, 0x71, 0xe5, 0x61, 0xbf, 0xcb, 0xe5, 0x5c, 0x79, 0x1f,
+ 0xeb, 0x5b, 0x34, 0xf8, 0xb4, 0xba, 0x46, 0x21, 0x6b, 0x67, 0x8a, 0x8a,
+ 0xc5, 0x2b, 0x74, 0xaf, 0x18, 0xd6, 0x24, 0x4f, 0x89, 0x30, 0x05, 0xe1,
+ 0xba, 0xb1, 0x14, 0xcd, 0x15, 0x58, 0x5b, 0x63, 0x23, 0xfc, 0x16, 0x9b,
+ 0xe2, 0xcf, 0xe3, 0x05, 0x34, 0x5b, 0xfa, 0x83, 0xf6, 0x78, 0xef, 0x63,
+ 0x78, 0xc4, 0x32, 0x1f, 0x58, 0x4f, 0x3e, 0xf6, 0xc4, 0x89, 0xfc, 0xde,
+ 0xe1, 0x57, 0xc4, 0xa1, 0x0b, 0x18, 0x59, 0x27, 0xa9, 0x37, 0xad, 0x69,
+ 0xa1, 0x2e, 0x00, 0xa3, 0x0f, 0x34, 0x33, 0xa0, 0x40, 0xb4, 0xb6, 0x0b,
+ 0x0a, 0x3b, 0x10, 0x78, 0x05, 0xe9, 0xcc, 0xd8, 0x7b, 0x08, 0x59, 0xe2,
+ 0x6b, 0x44, 0x4d, 0x25, 0x0f, 0x85, 0x65, 0x0b, 0x51, 0x7f, 0xe1, 0xea,
+ 0x96, 0xec, 0x39, 0xf4, 0x89, 0x19, 0xca, 0x00, 0x05, 0xec, 0xa0, 0x46,
+ 0x54, 0xfb, 0xf9, 0x05, 0x9b, 0x11, 0x70, 0xf5, 0x99, 0x3e, 0xfa, 0xed,
+ 0xe1, 0xd9, 0x97, 0x27, 0xe7, 0x87, 0xb4, 0x1f, 0xaf, 0x0e, 0xbf, 0x7c,
+ 0xc7, 0x5c, 0x8b, 0xa9, 0x43, 0x4c, 0xcf, 0xc0, 0x4f, 0x16, 0xfb, 0x17,
+ 0xe0, 0xce, 0x38, 0x5c, 0x0f, 0x64, 0x2a, 0x72, 0x50, 0xdf, 0xa8, 0xd0,
+ 0x44, 0x3c, 0xc1, 0x22, 0x9e, 0x66, 0x62, 0xab, 0xcc, 0x91, 0x84, 0xe0,
+ 0x11, 0xd3, 0x39, 0xd6, 0x8f, 0xab, 0xdc, 0x43, 0xbd, 0xd4, 0xa3, 0x24,
+ 0xd8, 0xae, 0xd5, 0x9e, 0x37, 0x6a, 0xde, 0x8a, 0x65, 0x5a, 0x0f, 0x1f,
+ 0x35, 0x3b, 0x2a, 0xa0, 0xb4, 0xa3, 0x6c, 0x05, 0x88, 0xf7, 0xc0, 0xc9,
+ 0xd1, 0x0a, 0xd7, 0x39, 0x2d, 0xe4, 0xd6, 0x44, 0x45, 0x79, 0x6e, 0x1b,
+ 0xf7, 0x78, 0x5e, 0xe3, 0x0a, 0x17, 0x85, 0x42, 0x2b, 0xdb, 0x57, 0x42,
+ 0xdc, 0xc4, 0xde, 0x24, 0xed, 0x7c, 0xaa, 0xd7, 0x01, 0xb8, 0x5f, 0x95,
+ 0x09, 0x4e, 0x9c, 0xdc, 0xda, 0xea, 0x0f, 0x97, 0x40, 0x5f, 0x2d, 0x42,
+ 0xb3, 0xa1, 0x4a, 0xf0, 0x1d, 0xe6, 0xa9, 0x55, 0x51, 0xa5, 0xfc, 0xbb,
+ 0xd5, 0x46, 0xc4, 0xca, 0x07, 0x21, 0x39, 0x4a, 0x3a, 0xb7, 0xab, 0x59,
+ 0xcf, 0x85, 0xcc, 0x94, 0xed, 0x1c, 0x22, 0x08, 0x84, 0xc0, 0xd5, 0xad,
+ 0xca, 0xe8, 0x5e, 0x40, 0x91, 0xb3, 0xcb, 0xf9, 0x04, 0x81, 0x0a, 0xb9,
+ 0xba, 0x5e, 0x7c, 0x13, 0x59, 0x2c, 0xc8, 0x26, 0x12, 0xe6, 0xaa, 0x61,
+ 0x78, 0xbc, 0xa5, 0x70, 0x09, 0x08, 0xf1, 0xc5, 0xe7, 0x5d, 0x5a, 0x97,
+ 0x52, 0xf1, 0x7c, 0x46, 0x03, 0xc7, 0xc9, 0xda, 0xda, 0xda, 0xab, 0xc3,
+ 0x8b, 0xfd, 0xa3, 0xe3, 0xc3, 0x57, 0xc9, 0xd1, 0xdb, 0xd7, 0x27, 0x67,
+ 0x6f, 0xf6, 0x2f, 0x34, 0x1a, 0xe3, 0x95, 0xb3, 0xc8, 0x79, 0x30, 0x27,
+ 0x85, 0xae, 0x0f, 0xac, 0x75, 0x20, 0x61, 0xda, 0xc5, 0x2b, 0xad, 0x52,
+ 0x20, 0xcb, 0x90, 0x35, 0xd6, 0x60, 0x2d, 0xd1, 0x28, 0x0e, 0x8f, 0x7e,
+ 0xc5, 0x72, 0xc1, 0x96, 0xf3, 0xbd, 0x0f, 0x6d, 0x39, 0xcd, 0x8c, 0x86,
+ 0xd2, 0x95, 0x0f, 0x36, 0x95, 0xb2, 0x0d, 0xe4, 0x6a, 0x9a, 0xe9, 0x9d,
+ 0x08, 0x68, 0x65, 0xa4, 0xff, 0x0b, 0x1e, 0xf2, 0xd1, 0x56, 0x13, 0x9c,
+ 0x19, 0x86, 0x16, 0x03, 0x43, 0x4b, 0x01, 0x87, 0x12, 0x82, 0x6e, 0x5c,
+ 0x16, 0x08, 0x2a, 0x09, 0xdb, 0x74, 0x70, 0x12, 0xd8, 0x51, 0x46, 0x0f,
+ 0x46, 0xec, 0x0f, 0x3e, 0x09, 0xf7, 0x37, 0x97, 0xea, 0xf1, 0x53, 0x0e,
+ 0x3d, 0x42, 0x44, 0x11, 0xe3, 0xa7, 0x56, 0xb4, 0x53, 0xee, 0xac, 0x03,
+ 0xd1, 0xd5, 0x31, 0x6c, 0xf3, 0xce, 0x69, 0xa5, 0xc5, 0xb0, 0xa9, 0x0d,
+ 0xe7, 0xaf, 0x27, 0x89, 0x69, 0x70, 0xa4, 0x35, 0x38, 0x79, 0x2d, 0x18,
+ 0xde, 0x9e, 0x7f, 0xce, 0x0d, 0x51, 0xd1, 0x85, 0x8f, 0x7a, 0x8d, 0x3f,
+ 0xa7, 0x29, 0xab, 0x8b, 0x4a, 0x4f, 0x9b, 0x3f, 0xb7, 0x86, 0xd9, 0x32,
+ 0x78, 0x45, 0x0f, 0x4d, 0x96, 0xb3, 0x85, 0x16, 0x71, 0x36, 0x89, 0x1a,
+ 0xb6, 0x3c, 0xdb, 0x42, 0x11, 0xda, 0x20, 0x7c, 0xc0, 0xf0, 0xf3, 0x5a,
+ 0xd7, 0x40, 0xe6, 0x01, 0xfa, 0xae, 0xcd, 0x15, 0x58, 0x03, 0x86, 0xd7,
+ 0xbc, 0x77, 0x56, 0x18, 0xc6, 0x45, 0x1c, 0x35, 0x24, 0x17, 0x2c, 0xc8,
+ 0xb9, 0x7b, 0x16, 0x2b, 0x19, 0xbc, 0x90, 0xfa, 0x00, 0x25, 0xac, 0xff,
+ 0x86, 0x55, 0x99, 0x61, 0x92, 0xd5, 0x06, 0xf5, 0xaa, 0x88, 0x9d, 0x8f,
+ 0x8d, 0x49, 0x85, 0x2f, 0x36, 0x43, 0x7a, 0x42, 0x4e, 0x6f, 0x5d, 0x7b,
+ 0x14, 0xdd, 0xf6, 0x08, 0x94, 0x8b, 0x13, 0x3f, 0xb9, 0xb7, 0xd2, 0xd9,
+ 0x5c, 0x25, 0x43, 0x60, 0x32, 0xd7, 0xb4, 0xca, 0x51, 0x08, 0x3c, 0x6e,
+ 0xe4, 0xbb, 0x04, 0xf0, 0x75, 0x71, 0xc3, 0xba, 0x3c, 0x52, 0x3b, 0x47,
+ 0xf7, 0x61, 0x0e, 0x9e, 0x84, 0x9e, 0x69, 0x9d, 0x26, 0x30, 0xbd, 0xf9,
+ 0x9a, 0x95, 0x54, 0xb4, 0x97, 0x2c, 0x80, 0x11, 0xdc, 0x5f, 0xaa, 0x05,
+ 0x80, 0xc9, 0xb3, 0x52, 0x9d, 0xa5, 0x15, 0x14, 0x2a, 0x64, 0xe2, 0xc8,
+ 0x9d, 0xe1, 0xcc, 0xb0, 0xbe, 0x1e, 0x46, 0x80, 0x97, 0x05, 0x16, 0x2d,
+ 0xb8, 0xa1, 0x29, 0x83, 0x69, 0xd8, 0xa1, 0x90, 0xa8, 0x7b, 0xd7, 0x8a,
+ 0x39, 0x38, 0xa8, 0x19, 0x84, 0x4e, 0x6b, 0x2c, 0xe9, 0x69, 0x51, 0xc9,
+ 0x79, 0x83, 0x84, 0xdf, 0x63, 0xd6, 0xd3, 0x03, 0x19, 0xf4, 0x16, 0xd7,
+ 0xd4, 0x47, 0x2f, 0xb9, 0x62, 0x1d, 0x69, 0x44, 0x43, 0x8f, 0x18, 0xe8,
+ 0x44, 0x1e, 0x7f, 0x79, 0x96, 0x5e, 0xa6, 0xd9, 0xf4, 0x0f, 0xbb, 0xdb,
+ 0xe7, 0xe9, 0xd5, 0x72, 0x9a, 0xfe, 0x11, 0x2f, 0xbe, 0x7c, 0xf2, 0x64,
+ 0x77, 0xfb, 0xd3, 0xcf, 0xb6, 0x7b, 0xed, 0xe8, 0x03, 0x1f, 0x90, 0x85,
+ 0x08, 0x1b, 0xbe, 0xc9, 0xc0, 0x77, 0xd1, 0xcf, 0x70, 0x7c, 0x95, 0x43,
+ 0xa9, 0x63, 0x41, 0x49, 0xd7, 0x20, 0x15, 0x6d, 0x12, 0x6c, 0x52, 0x60,
+ 0x07, 0x19, 0x95, 0x97, 0xe8, 0xfa, 0xf7, 0x3b, 0x7b, 0xc2, 0xca, 0x00,
+ 0x12, 0x8d, 0x7b, 0x82, 0xd7, 0xe2, 0x45, 0x3e, 0xa7, 0x1b, 0xe8, 0xf3,
+ 0xa4, 0x4e, 0xaf, 0x1c, 0xad, 0x6a, 0x36, 0xbd, 0xe4, 0x50, 0x38, 0xff,
+ 0xe6, 0x25, 0x13, 0x79, 0x3e, 0x97, 0x52, 0x36, 0x5c, 0xa6, 0x05, 0x42,
+ 0xd6, 0x22, 0x2b, 0x81, 0x20, 0x78, 0x55, 0xa6, 0x33, 0xcb, 0x54, 0xe1,
+ 0xf7, 0x39, 0x6a, 0x6d, 0xb8, 0x98, 0x22, 0x8b, 0xc2, 0x42, 0xcf, 0x44,
+ 0xe2, 0x15, 0x82, 0x9b, 0x2e, 0x2a, 0x0f, 0xc2, 0x27, 0xd7, 0x4d, 0x58,
+ 0x00, 0x86, 0x16, 0x0b, 0x36, 0x95, 0x1e, 0x66, 0x25, 0x2c, 0x03, 0xdc,
+ 0x6c, 0x62, 0x33, 0x1d, 0xe2, 0x77, 0xa0, 0x3f, 0xa4, 0x82, 0xb8, 0xd8,
+ 0x5b, 0x48, 0x5e, 0xb5, 0x60, 0x74, 0xf4, 0x2c, 0xad, 0x21, 0x6f, 0xcc,
+ 0x2b, 0xf5, 0x11, 0x9b, 0xc9, 0x0b, 0xb3, 0x12, 0xed, 0x7c, 0xfe, 0x12,
+ 0x04, 0xb1, 0xf3, 0xf9, 0x1f, 0xdd, 0x67, 0xbb, 0xfa, 0xd9, 0xee, 0xe7,
+ 0x7f, 0x1c, 0x0e, 0x31, 0x3e, 0xa6, 0x90, 0x75, 0xfb, 0x7a, 0x5d, 0xd1,
+ 0x56, 0x52, 0x3d, 0xc2, 0xf2, 0x97, 0x03, 0x3f, 0x96, 0xbd, 0xee, 0x59,
+ 0xcf, 0xe1, 0x2a, 0xf7, 0xd5, 0xa3, 0xea, 0xf8, 0x56, 0x6e, 0xe5, 0xdd,
+ 0x00, 0x6a, 0x5d, 0x75, 0x2d, 0xba, 0xf3, 0x83, 0xa0, 0x1d, 0x8d, 0xbd,
+ 0xc4, 0xcb, 0x7f, 0x62, 0x4a, 0xfd, 0xd3, 0x5a, 0xa2, 0xde, 0x4d, 0xde,
+ 0x8e, 0x7b, 0x38, 0x3c, 0x8c, 0x6c, 0xe9, 0xd1, 0xd4, 0xea, 0xcd, 0x70,
+ 0xcb, 0x9c, 0xfb, 0xc1, 0x77, 0xa0, 0x84, 0x8c, 0x63, 0xb0, 0x7f, 0x56,
+ 0xf0, 0x4b, 0x97, 0x34, 0x63, 0xcf, 0x48, 0x9e, 0x0c, 0xc9, 0x18, 0xb5,
+ 0x54, 0x3c, 0xe2, 0xfa, 0x27, 0xdf, 0x7f, 0xaf, 0x02, 0x15, 0xfd, 0xa2,
+ 0x23, 0xbf, 0x26, 0x5e, 0x34, 0x21, 0xf6, 0x36, 0x43, 0x99, 0x78, 0xc6,
+ 0x19, 0xa4, 0x79, 0xe8, 0x95, 0x7f, 0xa9, 0x33, 0x95, 0x46, 0x68, 0x6b,
+ 0xf7, 0xcf, 0x0f, 0x8e, 0x8e, 0x10, 0x66, 0x8a, 0x45, 0x3d, 0x14, 0x36,
+ 0x06, 0xda, 0xdc, 0x40, 0x88, 0x87, 0x8f, 0x4a, 0x0c, 0x49, 0x9f, 0xf7,
+ 0x0e, 0xdb, 0x0e, 0xea, 0xa7, 0xc6, 0x4c, 0x01, 0xd7, 0xad, 0x04, 0xcd,
+ 0x8a, 0x94, 0xf3, 0xb2, 0x27, 0x0f, 0x5e, 0xe5, 0x3d, 0x75, 0x62, 0xc9,
+ 0x27, 0x3d, 0x0f, 0x9e, 0x23, 0xfb, 0x81, 0x4d, 0x7b, 0x29, 0xa2, 0x53,
+ 0xfe, 0xf7, 0xec, 0xe5, 0xce, 0x76, 0xf7, 0x13, 0xf0, 0xda, 0x32, 0x9c,
+ 0xf8, 0x4b, 0xef, 0x10, 0x7c, 0xe8, 0xf9, 0x7c, 0x22, 0x4f, 0x5f, 0xe7,
+ 0x93, 0x09, 0xdd, 0x09, 0xb7, 0xe9, 0x74, 0x49, 0xb4, 0x30, 0xe2, 0x1b,
+ 0x96, 0xff, 0x7f, 0xc5, 0x38, 0xe0, 0xb1, 0xd2, 0x67, 0xab, 0xe5, 0x68,
+ 0x96, 0x37, 0x06, 0xbc, 0xc5, 0x13, 0xfc, 0x9c, 0x27, 0xfc, 0x5d, 0xe6,
+ 0xa8, 0x23, 0x63, 0xd1, 0x4e, 0x64, 0xbf, 0xf5, 0xcb, 0xa2, 0x18, 0xa5,
+ 0xe5, 0xba, 0xba, 0x73, 0x6c, 0x9c, 0xeb, 0x3b, 0xbb, 0x4f, 0x9e, 0x3e,
+ 0x5b, 0x1f, 0xaa, 0x9c, 0x06, 0x16, 0x51, 0x87, 0x00, 0x15, 0xd2, 0x84,
+ 0x03, 0x54, 0x08, 0xb0, 0x5c, 0xbb, 0x9c, 0xab, 0xcc, 0xc5, 0xb8, 0xbb,
+ 0x97, 0xd2, 0xdb, 0x1f, 0xb9, 0x9f, 0x97, 0xe8, 0xe2, 0x8f, 0xf9, 0xe4,
+ 0xa5, 0x9b, 0xe1, 0x1f, 0x79, 0x2e, 0x2f, 0x75, 0x12, 0xb4, 0xaf, 0x96,
+ 0x81, 0x58, 0x85, 0xb5, 0x69, 0x1e, 0xdb, 0x5c, 0xdb, 0xc4, 0x35, 0x4c,
+ 0x1a, 0x11, 0x0c, 0x83, 0x89, 0x78, 0x3f, 0x20, 0xad, 0xfa, 0x0c, 0xbc,
+ 0xad, 0x0f, 0x03, 0x6a, 0x65, 0xc0, 0xad, 0x0c, 0x3c, 0xc3, 0x06, 0x0a,
+ 0xfc, 0x80, 0x37, 0xa2, 0xaf, 0x69, 0x98, 0x53, 0x58, 0x59, 0x54, 0x14,
+ 0x28, 0x0a, 0x04, 0x01, 0x1c, 0x7c, 0x75, 0xb4, 0x5e, 0x85, 0x25, 0x19,
+ 0xfa, 0x5d, 0xf6, 0x69, 0x17, 0x62, 0x38, 0x4e, 0x17, 0x7c, 0xfa, 0xd7,
+ 0xac, 0x9c, 0x62, 0xca, 0x71, 0x24, 0xdc, 0xaf, 0x64, 0x4c, 0x53, 0x67,
+ 0x7a, 0xeb, 0x4c, 0xd9, 0xe2, 0x5d, 0x0a, 0x40, 0x7d, 0xd0, 0x0c, 0x10,
+ 0x9b, 0x25, 0xa0, 0x04, 0x3e, 0x9f, 0x85, 0x4b, 0xb7, 0x1c, 0xbc, 0x76,
+ 0x4e, 0x4f, 0x97, 0xde, 0xa7, 0x8f, 0xd2, 0x57, 0xc2, 0x4f, 0x8c, 0x45,
+ 0xf4, 0xa0, 0x00, 0x7b, 0x3e, 0x11, 0x72, 0x0f, 0xa4, 0xfd, 0x8f, 0x32,
+ 0x4d, 0xd2, 0x14, 0xb3, 0x89, 0x08, 0x86, 0xcc, 0x3f, 0x5f, 0x7c, 0x61,
+ 0x28, 0xcf, 0x9f, 0x27, 0xa8, 0x8a, 0x2a, 0x6f, 0xa9, 0xdf, 0x51, 0x0d,
+ 0x50, 0x62, 0xb3, 0xc5, 0x4b, 0xaa, 0x1e, 0x38, 0x17, 0x58, 0x10, 0x8d,
+ 0xa3, 0x82, 0x81, 0x42, 0xf1, 0x63, 0xa2, 0xa3, 0x7b, 0x35, 0x36, 0x70,
+ 0x0b, 0xeb, 0x7f, 0xc1, 0x21, 0x78, 0xc1, 0xdb, 0x80, 0xaf, 0x3f, 0x5f,
+ 0x5f, 0x73, 0xd5, 0x31, 0x9c, 0xe4, 0xde, 0x72, 0x20, 0x0b, 0x81, 0x86,
+ 0xf3, 0x21, 0x81, 0xda, 0x20, 0x8d, 0x45, 0x1a, 0x63, 0x80, 0x0e, 0x94,
+ 0x0e, 0x27, 0x69, 0x6a, 0x3a, 0x51, 0x40, 0x4f, 0x67, 0xa0, 0x96, 0xc6,
+ 0x33, 0xce, 0x6d, 0x60, 0xe9, 0x71, 0x9d, 0xa3, 0x55, 0xf1, 0xde, 0xba,
+ 0x43, 0x48, 0x86, 0xcd, 0x14, 0x0c, 0xaf, 0xcc, 0x0c, 0x67, 0x72, 0x4d,
+ 0x01, 0xcd, 0xbd, 0x34, 0x1f, 0x4e, 0xac, 0x0a, 0x84, 0x07, 0x9f, 0xe4,
+ 0x28, 0x58, 0x36, 0xd1, 0x11, 0x79, 0xcd, 0x19, 0xc4, 0xda, 0xe9, 0x4b,
+ 0x5e, 0xee, 0x9d, 0xe1, 0x55, 0x7e, 0x29, 0x8b, 0x41, 0x2c, 0xf2, 0x2a,
+ 0xdb, 0xa2, 0x3f, 0xfb, 0xf4, 0xf9, 0x2e, 0x4b, 0x65, 0xfc, 0xcb, 0x13,
+ 0xc4, 0x63, 0x85, 0x77, 0x7f, 0x70, 0x36, 0xdc, 0xb9, 0xe0, 0x5f, 0x72,
+ 0x77, 0xe7, 0xab, 0x57, 0x47, 0x47, 0x09, 0x32, 0x8f, 0x2a, 0xc0, 0x85,
+ 0x41, 0x25, 0xac, 0x68, 0xb1, 0x4a, 0xba, 0xe4, 0x9c, 0x16, 0x17, 0x3c,
+ 0xa2, 0x81, 0x14, 0x2a, 0xa8, 0xb3, 0xdc, 0x9d, 0xab, 0x79, 0x86, 0x73,
+ 0x80, 0x70, 0xb3, 0x66, 0x77, 0x9b, 0xfd, 0x30, 0xd2, 0x96, 0xd8, 0xfb,
+ 0x2d, 0x67, 0xd5, 0x33, 0x54, 0x87, 0xaf, 0x70, 0xc5, 0xdd, 0x6f, 0x70,
+ 0xb3, 0x2c, 0x14, 0xf8, 0x34, 0x63, 0x6c, 0x73, 0xde, 0xde, 0xc1, 0xa0,
+ 0x90, 0xac, 0x49, 0x9b, 0xec, 0x41, 0xdb, 0xe4, 0x6e, 0xb2, 0x69, 0x05,
+ 0x5d, 0x5d, 0x81, 0x1a, 0xad, 0x57, 0x03, 0xd3, 0x46, 0x47, 0xeb, 0xe1,
+ 0xd9, 0x2f, 0xc6, 0x75, 0x46, 0xba, 0x2e, 0xa3, 0x6a, 0xcd, 0x84, 0xcf,
+ 0x1d, 0xce, 0xa4, 0xa0, 0x26, 0x48, 0x78, 0x3a, 0x90, 0xdb, 0x53, 0x45,
+ 0xa2, 0xc1, 0xeb, 0x61, 0x72, 0x8c, 0x88, 0xf1, 0x2a, 0x15, 0x74, 0x16,
+ 0xbb, 0x61, 0x8d, 0x1a, 0x88, 0x74, 0x44, 0x06, 0x5f, 0x93, 0xb4, 0x17,
+ 0x86, 0xc4, 0x30, 0x92, 0xca, 0x0d, 0x26, 0x5d, 0x88, 0x4b, 0xe4, 0x0b,
+ 0x95, 0x47, 0xfa, 0xb0, 0x85, 0xbb, 0xe7, 0x60, 0xf3, 0x17, 0xbb, 0x1f,
+ 0x92, 0xbf, 0x1c, 0xc1, 0x06, 0x8d, 0x84, 0x50, 0xd8, 0x21, 0x5b, 0x77,
+ 0x87, 0x40, 0x42, 0x2a, 0x33, 0x31, 0xba, 0x30, 0x32, 0x03, 0x83, 0xc4,
+ 0xc0, 0x27, 0x4c, 0xad, 0x81, 0xca, 0x80, 0x7f, 0x4d, 0x64, 0xd4, 0x83,
+ 0xde, 0x38, 0xcd, 0x9c, 0x72, 0x2d, 0x7b, 0x55, 0xb8, 0x70, 0x73, 0xd8,
+ 0x62, 0x44, 0xdc, 0xf0, 0xee, 0x3a, 0x1e, 0x24, 0x8f, 0x2b, 0xbd, 0xa5,
+ 0x5f, 0x58, 0x38, 0x1b, 0x95, 0xb4, 0xeb, 0x59, 0x29, 0x57, 0x83, 0xc4,
+ 0x08, 0x15, 0xc2, 0x49, 0x44, 0x4d, 0x79, 0x73, 0x9c, 0x18, 0xca, 0xcd,
+ 0xa5, 0x17, 0x15, 0x2d, 0x32, 0x13, 0x53, 0x54, 0xcb, 0x88, 0xc8, 0x43,
+ 0xfa, 0x94, 0xdc, 0x72, 0xb2, 0xb6, 0x9c, 0x29, 0x9f, 0xf0, 0xe2, 0x34,
+ 0x8e, 0x6c, 0xf0, 0x84, 0xbc, 0xca, 0x74, 0x44, 0x64, 0xb2, 0xce, 0x4b,
+ 0xb0, 0xde, 0x4f, 0xd6, 0x79, 0xa8, 0xfc, 0xc5, 0x3a, 0xd6, 0x13, 0x1f,
+ 0x07, 0xcb, 0xb7, 0x3e, 0xec, 0x38, 0x85, 0xfc, 0xcc, 0xcb, 0x2f, 0x1a,
+ 0xab, 0x84, 0xcf, 0xad, 0xa9, 0x97, 0x92, 0x64, 0x12, 0xc9, 0xdc, 0xf6,
+ 0x6e, 0xd0, 0xfe, 0xcb, 0x83, 0x82, 0x11, 0x0a, 0xa9, 0x99, 0x20, 0xcc,
+ 0x75, 0xec, 0x3e, 0xcb, 0x91, 0x30, 0x1b, 0x35, 0xf4, 0xf8, 0x29, 0xbe,
+ 0x30, 0x56, 0xe4, 0x42, 0x40, 0x85, 0xbb, 0x09, 0x09, 0x18, 0xe7, 0xa5,
+ 0xdd, 0xcc, 0x45, 0xef, 0xbb, 0x2b, 0x60, 0x65, 0x00, 0xcf, 0xd9, 0x19,
+ 0x22, 0x83, 0xd2, 0xd7, 0xf5, 0x75, 0x0d, 0x38, 0xe5, 0xbd, 0x87, 0x05,
+ 0xed, 0xb9, 0xa8, 0x5c, 0x53, 0xe9, 0x6d, 0x95, 0xbb, 0x78, 0xd7, 0x22,
+ 0x1f, 0x03, 0x52, 0xfb, 0xe5, 0x17, 0x93, 0xe2, 0x8a, 0x39, 0x57, 0x9f,
+ 0x0e, 0x1a, 0xff, 0x44, 0x40, 0xf2, 0xae, 0x76, 0x2a, 0x03, 0xc6, 0x59,
+ 0x11, 0x29, 0xde, 0xfe, 0x5e, 0x11, 0xa2, 0xfa, 0x9a, 0x4d, 0xa1, 0x63,
+ 0x6d, 0xdb, 0x35, 0x2d, 0xfb, 0x41, 0xed, 0xbb, 0x2f, 0xc2, 0xbe, 0x6c,
+ 0x71, 0x52, 0x6d, 0x19, 0xb2, 0x11, 0x71, 0x8a, 0x5a, 0xae, 0x72, 0x74,
+ 0x5c, 0x20, 0xd0, 0xad, 0xe6, 0x44, 0xe8, 0x4c, 0x4a, 0x43, 0xd2, 0x21,
+ 0x90, 0xb4, 0xbe, 0xf5, 0x2f, 0xd6, 0x25, 0x47, 0x60, 0xfd, 0xc5, 0x3a,
+ 0x38, 0x18, 0xf3, 0x25, 0xab, 0x81, 0xa7, 0x97, 0xd3, 0xba, 0xdc, 0x8a,
+ 0x03, 0x91, 0x1d, 0x14, 0xf1, 0xcf, 0x1f, 0x10, 0x5c, 0xcb, 0x5e, 0x8d,
+ 0x0c, 0x83, 0x27, 0x61, 0x26, 0x60, 0xca, 0x95, 0x51, 0x31, 0x7c, 0xe9,
+ 0xa8, 0x96, 0x40, 0x19, 0xbd, 0x74, 0x21, 0x96, 0x01, 0x2d, 0xa5, 0xe2,
+ 0xf8, 0x05, 0x31, 0x73, 0x2e, 0xe7, 0x0b, 0xce, 0x8d, 0x1f, 0xd7, 0x52,
+ 0xcf, 0x12, 0x67, 0x69, 0x98, 0xbc, 0x9b, 0x4b, 0x29, 0x81, 0x8c, 0x95,
+ 0xe5, 0xbc, 0x1c, 0x2f, 0x67, 0x6c, 0xaa, 0x18, 0xb3, 0x81, 0x0c, 0x17,
+ 0x8f, 0x88, 0x07, 0x0d, 0xf7, 0x7c, 0x38, 0x60, 0x31, 0x8e, 0x88, 0xc1,
+ 0x5c, 0xfb, 0x45, 0x28, 0x0a, 0x07, 0x60, 0xa9, 0x41, 0x1c, 0x52, 0x81,
+ 0x43, 0x4d, 0x51, 0x06, 0xc4, 0x9e, 0xc1, 0xc3, 0xd7, 0x87, 0x67, 0x67,
+ 0x87, 0x67, 0xbc, 0xde, 0xfb, 0xf3, 0x46, 0xd9, 0x38, 0x07, 0x9d, 0xea,
+ 0x5d, 0x8d, 0x16, 0xf6, 0x1b, 0x43, 0xe8, 0x0b, 0x2b, 0x4c, 0x27, 0x13,
+ 0x06, 0x19, 0x87, 0x06, 0x21, 0x38, 0x41, 0x52, 0xac, 0x3b, 0x34, 0x2f,
+ 0x22, 0xec, 0xdb, 0xb9, 0x0d, 0xc2, 0xa2, 0x8d, 0x81, 0x6c, 0xe1, 0x5b,
+ 0x28, 0xb5, 0x2a, 0xe9, 0xd2, 0x52, 0xf2, 0xaf, 0xb3, 0x86, 0x98, 0x3a,
+ 0xd4, 0x48, 0xdd, 0x4c, 0x9d, 0xe9, 0x53, 0x67, 0x9f, 0xc0, 0x94, 0x2f,
+ 0xf9, 0x8c, 0xb2, 0xee, 0x84, 0xc5, 0xa8, 0xea, 0xe5, 0x22, 0x9f, 0x38,
+ 0x6b, 0x2f, 0x7d, 0x4e, 0xe2, 0x5f, 0x22, 0xa7, 0xbc, 0xb2, 0x58, 0x17,
+ 0x78, 0x35, 0xcd, 0x18, 0x11, 0x5a, 0xdb, 0x5a, 0xf8, 0xbd, 0x09, 0xb2,
+ 0xe5, 0x24, 0x68, 0xcc, 0x6a, 0x26, 0x35, 0x73, 0xcb, 0x95, 0xf6, 0x33,
+ 0x58, 0x19, 0x99, 0x5b, 0x58, 0xf8, 0x4d, 0xc8, 0x19, 0xd8, 0x96, 0x35,
+ 0xf3, 0xf1, 0xee, 0x1c, 0xc2, 0xb6, 0x27, 0x30, 0x28, 0x48, 0x29, 0x2d,
+ 0xf7, 0x92, 0x1f, 0xab, 0x7c, 0xfc, 0xb3, 0xbf, 0x3c, 0x90, 0xfe, 0xe3,
+ 0x43, 0xd2, 0xc5, 0x42, 0x4f, 0x93, 0xd7, 0x85, 0x52, 0x65, 0x58, 0x52,
+ 0xb9, 0xdf, 0x9d, 0x1f, 0x9e, 0x25, 0xfb, 0x5f, 0x31, 0x0a, 0xf0, 0x7f,
+ 0x73, 0x83, 0xf9, 0x39, 0xbd, 0x1d, 0xd6, 0x14, 0x87, 0x4f, 0xb1, 0x4d,
+ 0x32, 0x33, 0x85, 0x0b, 0x2e, 0x57, 0x63, 0x67, 0x73, 0xab, 0xbe, 0xed,
+ 0xaf, 0xfb, 0xe6, 0x1e, 0xae, 0x25, 0x8f, 0xee, 0xe2, 0xc7, 0xec, 0x21,
+ 0x1f, 0xb2, 0x70, 0x17, 0x05, 0x15, 0x49, 0x5c, 0x12, 0xb6, 0x37, 0x3a,
+ 0xfa, 0x2a, 0x52, 0x3b, 0x65, 0x97, 0xf6, 0x93, 0xf5, 0x37, 0xc5, 0xdf,
+ 0x49, 0x18, 0x48, 0xb7, 0x9e, 0x0c, 0xb7, 0x93, 0x8d, 0xef, 0xf2, 0xf9,
+ 0xf3, 0x67, 0x7f, 0x49, 0x8e, 0x36, 0xd7, 0x1b, 0xc1, 0xfc, 0x52, 0x81,
+ 0x75, 0x94, 0xce, 0x6f, 0xdc, 0x96, 0x9d, 0xe0, 0x64, 0x4b, 0x50, 0x9d,
+ 0x55, 0x65, 0x91, 0xaa, 0xd1, 0x2b, 0x5b, 0x44, 0xe2, 0xa7, 0xe6, 0x05,
+ 0x24, 0xdf, 0x3a, 0xc8, 0x6b, 0xd6, 0xf2, 0xe9, 0xa9, 0x09, 0x2f, 0xdd,
+ 0xf3, 0x67, 0x51, 0x13, 0x4f, 0x5d, 0x1b, 0xef, 0xa4, 0x8d, 0x5f, 0xd8,
+ 0xc4, 0xee, 0x70, 0x7b, 0x37, 0xd9, 0x38, 0x39, 0xdf, 0xda, 0x75, 0x2d,
+ 0xc4, 0x4d, 0xec, 0xa2, 0x09, 0x7e, 0xa8, 0xf9, 0xf2, 0x53, 0xee, 0xff,
+ 0xc7, 0x6c, 0xfe, 0x73, 0xb2, 0xf1, 0xfd, 0xce, 0x0e, 0x35, 0xf0, 0x97,
+ 0x64, 0xff, 0xe8, 0xfb, 0xe4, 0xe9, 0x90, 0x1a, 0x7b, 0x9b, 0xde, 0x6a,
+ 0x73, 0x0a, 0x66, 0x7b, 0x8e, 0x46, 0xe8, 0xfb, 0xa8, 0x8d, 0x67, 0xad,
+ 0x36, 0x8e, 0x49, 0x2f, 0xfc, 0x40, 0xd7, 0xca, 0xf6, 0xf0, 0xc9, 0x6e,
+ 0x92, 0x3f, 0xfb, 0xec, 0x13, 0x6b, 0x48, 0xdb, 0xc0, 0xf7, 0x4d, 0x6b,
+ 0xa5, 0xc0, 0xa5, 0x90, 0xa8, 0x73, 0xf8, 0x81, 0x18, 0x1a, 0x58, 0x04,
+ 0x2a, 0x65, 0x5c, 0xa7, 0xa5, 0xd5, 0x30, 0xe6, 0x72, 0x07, 0xb4, 0x53,
+ 0x0a, 0x23, 0x9d, 0xc1, 0x6c, 0x49, 0x17, 0xe7, 0x5e, 0x34, 0x1c, 0xd6,
+ 0x4d, 0xed, 0xd1, 0xbf, 0x24, 0x6f, 0xce, 0x8f, 0x0e, 0x69, 0x46, 0xdb,
+ 0x34, 0x34, 0xbf, 0x86, 0x32, 0x20, 0x7c, 0x85, 0xc5, 0x7d, 0x0e, 0x54,
+ 0x52, 0x6d, 0x23, 0xac, 0xb6, 0x0b, 0xa2, 0xa3, 0x8b, 0xbb, 0x42, 0xbf,
+ 0x1c, 0x92, 0x32, 0xd8, 0xbf, 0x62, 0x15, 0x42, 0xae, 0x5a, 0x74, 0xfd,
+ 0x4d, 0x31, 0xa7, 0x63, 0x52, 0x16, 0x25, 0x47, 0x4e, 0xad, 0x37, 0xa4,
+ 0x85, 0x6f, 0x5e, 0x1d, 0x4a, 0x4a, 0xfd, 0x9b, 0x74, 0x4e, 0x3c, 0x92,
+ 0xd1, 0xb1, 0xaa, 0x1b, 0xf6, 0xff, 0x8b, 0x3b, 0x47, 0xde, 0x3f, 0xbe,
+ 0x9f, 0x7f, 0xa0, 0x7d, 0xfc, 0x74, 0xb8, 0xc3, 0x21, 0xdb, 0xac, 0xf5,
+ 0xbe, 0x7e, 0x43, 0x7f, 0xef, 0x3c, 0x5d, 0x4f, 0xf8, 0xab, 0xa6, 0x06,
+ 0x6f, 0xe7, 0x75, 0xed, 0xe0, 0xe4, 0xe4, 0x9b, 0x23, 0x09, 0x00, 0x39,
+ 0x50, 0xb3, 0x2a, 0x0b, 0x57, 0x4e, 0x2b, 0x16, 0xee, 0x4a, 0xda, 0x9b,
+ 0xcf, 0x56, 0x82, 0x33, 0xee, 0x26, 0xcb, 0x16, 0x1c, 0x8d, 0x50, 0xb7,
+ 0x38, 0x42, 0xad, 0x3c, 0xda, 0xc5, 0x36, 0xb1, 0xf8, 0xd3, 0x40, 0xf6,
+ 0xaa, 0x18, 0x2a, 0xd9, 0x4c, 0xb8, 0xa3, 0x7b, 0x07, 0xdb, 0x91, 0xfa,
+ 0x72, 0x88, 0x5a, 0x37, 0x45, 0x9b, 0x32, 0x13, 0xb4, 0x14, 0x1d, 0xa1,
+ 0x17, 0x55, 0xf7, 0x5d, 0x3f, 0x27, 0xe9, 0x5e, 0x06, 0xbd, 0xa7, 0x56,
+ 0xdb, 0xf5, 0x00, 0x5b, 0x1a, 0x12, 0xed, 0x42, 0x4b, 0xfd, 0xc0, 0x74,
+ 0x6c, 0x11, 0xf5, 0xc6, 0x9b, 0x2b, 0xd8, 0xb2, 0x11, 0x9e, 0xf7, 0x76,
+ 0xff, 0xcd, 0xe1, 0xcb, 0x6f, 0xf7, 0x8f, 0xdf, 0x1d, 0xd2, 0x2b, 0x39,
+ 0x60, 0xdc, 0x5d, 0x08, 0x1f, 0xc6, 0x38, 0xcb, 0x51, 0xe9, 0xb7, 0x22,
+ 0xf1, 0x60, 0x7d, 0x4d, 0xc2, 0xcb, 0x93, 0x1e, 0xbf, 0xb5, 0x23, 0xaf,
+ 0x11, 0x5d, 0xf0, 0x5f, 0xbb, 0xf2, 0xd7, 0xee, 0x5f, 0x7a, 0x9b, 0x8d,
+ 0x49, 0x47, 0x5a, 0x32, 0xd3, 0xcb, 0x9d, 0xd4, 0x7b, 0xe2, 0xf0, 0x20,
+ 0xc9, 0xdd, 0x90, 0x55, 0xe9, 0x99, 0x8f, 0x26, 0x2c, 0x7a, 0xb9, 0x31,
+ 0xba, 0x0f, 0x75, 0xf0, 0x1e, 0xbf, 0xf4, 0x12, 0x02, 0x46, 0x0f, 0x40,
+ 0xf7, 0x99, 0xad, 0x96, 0xb4, 0x61, 0x4d, 0x64, 0x1f, 0x16, 0x1c, 0x11,
+ 0xb9, 0xd1, 0x93, 0x5f, 0x5e, 0xbe, 0xda, 0xbf, 0x38, 0xe4, 0x17, 0xac,
+ 0x7b, 0xab, 0x6d, 0x60, 0x69, 0x14, 0x3c, 0x9e, 0x0d, 0x75, 0x4d, 0xbf,
+ 0xe4, 0x09, 0xf5, 0x36, 0xc5, 0x97, 0x01, 0xa7, 0x7a, 0x6b, 0x5c, 0xcc,
+ 0xd3, 0x24, 0x70, 0xdb, 0xa7, 0xa9, 0x57, 0x16, 0xb1, 0xb2, 0xd1, 0x93,
+ 0xef, 0x7a, 0xce, 0x82, 0x4b, 0x77, 0xf9, 0xfa, 0x6d, 0x66, 0xee, 0xca,
+ 0x09, 0x92, 0x2c, 0xa2, 0xcc, 0x5a, 0x09, 0x49, 0xf3, 0xfb, 0xa3, 0xce,
+ 0x0a, 0xb1, 0x38, 0x05, 0x68, 0xdb, 0x6e, 0xe3, 0x35, 0x0f, 0x9e, 0x6d,
+ 0x4c, 0x45, 0xb1, 0xb3, 0xfb, 0xe4, 0x2f, 0x58, 0xcf, 0x97, 0xbd, 0x2d,
+ 0xba, 0x1b, 0x7a, 0x7f, 0xe1, 0xae, 0x73, 0x5f, 0x53, 0xdb, 0xed, 0x07,
+ 0xeb, 0x53, 0x4a, 0x51, 0x12, 0x2e, 0xc3, 0xbb, 0x1e, 0xc0, 0xfb, 0x60,
+ 0x41, 0xef, 0x24, 0x4b, 0xcc, 0xc0, 0x70, 0x2c, 0x78, 0x00, 0xfb, 0x35,
+ 0xca, 0xae, 0xf2, 0x39, 0x4a, 0xfd, 0x89, 0x51, 0x17, 0xdd, 0x85, 0xf7,
+ 0x47, 0x5f, 0xde, 0x95, 0x39, 0x2a, 0x80, 0x10, 0xf7, 0x39, 0xbb, 0xb7,
+ 0x44, 0xb2, 0xaa, 0x32, 0x15, 0x57, 0xf6, 0x2c, 0x92, 0x8c, 0x47, 0x6a,
+ 0xdb, 0x31, 0x65, 0x04, 0x32, 0x01, 0xb1, 0x96, 0x7b, 0x08, 0x4a, 0x88,
+ 0x36, 0x08, 0x83, 0x2c, 0xec, 0xce, 0x4e, 0x47, 0x9c, 0x64, 0xee, 0x52,
+ 0x63, 0x02, 0xad, 0xdc, 0x2d, 0xbd, 0x1d, 0xbf, 0x3c, 0x40, 0x66, 0xe2,
+ 0x8b, 0x52, 0xd6, 0xb2, 0x72, 0x36, 0x24, 0x78, 0x1b, 0xf5, 0xd9, 0xe6,
+ 0x3e, 0xb5, 0xf2, 0xd1, 0x30, 0x0d, 0x51, 0xe9, 0x45, 0x3f, 0x26, 0x56,
+ 0x33, 0xcf, 0xca, 0x07, 0x03, 0x2c, 0x3a, 0x9c, 0x51, 0x98, 0x62, 0x10,
+ 0xe9, 0xc0, 0xef, 0x0c, 0x87, 0x43, 0x5f, 0x97, 0x9c, 0xb7, 0x45, 0x7d,
+ 0x50, 0xa8, 0x65, 0x14, 0xe0, 0xc7, 0x62, 0x8d, 0x37, 0x20, 0xcc, 0x43,
+ 0xa0, 0xde, 0xd4, 0xc0, 0x1b, 0xb5, 0x13, 0xb8, 0xa3, 0x11, 0xd8, 0x38,
+ 0xd6, 0xb5, 0xdb, 0x75, 0x03, 0x6d, 0xb8, 0xe9, 0xda, 0x84, 0x07, 0xc6,
+ 0x26, 0xb6, 0x47, 0x2d, 0xb0, 0xe9, 0xf8, 0x54, 0xe1, 0xd6, 0x82, 0x29,
+ 0x98, 0x03, 0xc8, 0x41, 0x27, 0x92, 0x71, 0x2c, 0x8b, 0xa6, 0x43, 0xd1,
+ 0x52, 0x6b, 0xcc, 0xe4, 0x8a, 0x3b, 0x80, 0x20, 0x48, 0xb1, 0x9a, 0x45,
+ 0xc9, 0x9a, 0x1e, 0xaf, 0xb1, 0xdd, 0x20, 0x0b, 0x27, 0x36, 0x6b, 0x3b,
+ 0x8a, 0x25, 0xcc, 0x3a, 0x33, 0x64, 0x7f, 0xcd, 0x72, 0x54, 0x38, 0x9a,
+ 0xca, 0x92, 0x78, 0x48, 0x6c, 0x2b, 0x66, 0x70, 0x7b, 0xe9, 0xe4, 0xbd,
+ 0xb9, 0x8a, 0xa3, 0xcd, 0x06, 0x02, 0xe8, 0x62, 0x89, 0x88, 0xc6, 0x3d,
+ 0x14, 0xd4, 0xe3, 0x21, 0x7f, 0xf9, 0xd8, 0x5a, 0x74, 0xce, 0xf2, 0xd6,
+ 0xda, 0xf8, 0x5b, 0xb9, 0xc9, 0xba, 0x68, 0x45, 0xc5, 0xba, 0x2c, 0xd0,
+ 0x19, 0x9e, 0xef, 0x25, 0xe9, 0x1d, 0x5d, 0x3d, 0xf3, 0x8c, 0xe3, 0x33,
+ 0x11, 0xe9, 0x00, 0xab, 0xcc, 0x71, 0x60, 0x67, 0x74, 0x33, 0x54, 0xaa,
+ 0xd5, 0x98, 0x26, 0xe6, 0x3b, 0x7b, 0x56, 0x62, 0x5b, 0xe0, 0x72, 0xcd,
+ 0xa0, 0x97, 0xa3, 0x1e, 0x38, 0xc3, 0x9b, 0xaa, 0xa4, 0x6e, 0xea, 0x39,
+ 0x8f, 0x7c, 0x13, 0xd5, 0x92, 0x45, 0x9c, 0x47, 0x5c, 0x22, 0xdb, 0x39,
+ 0x24, 0xae, 0xc2, 0x56, 0x2b, 0x9d, 0x4f, 0x82, 0x4e, 0x9c, 0x7f, 0x5a,
+ 0xcd, 0x4f, 0x1c, 0xde, 0x3b, 0x1f, 0x00, 0xe8, 0xc2, 0x15, 0xd3, 0x15,
+ 0xf5, 0xea, 0xea, 0xca, 0x2a, 0xef, 0xb4, 0xa6, 0xd6, 0x4d, 0x64, 0xc7,
+ 0xbc, 0x2a, 0x1c, 0x05, 0x7d, 0xbf, 0x6a, 0x35, 0x2f, 0xcc, 0xe6, 0x63,
+ 0x56, 0x97, 0x06, 0x31, 0x9b, 0x4f, 0x52, 0xf6, 0xad, 0x76, 0x49, 0x57,
+ 0x48, 0xd0, 0x68, 0xfa, 0x90, 0x4f, 0xce, 0xd6, 0x50, 0x38, 0x61, 0xee,
+ 0x01, 0x19, 0x6c, 0xd3, 0x81, 0xce, 0xe7, 0x23, 0x50, 0x7c, 0x24, 0xea,
+ 0x9d, 0x0b, 0xb5, 0x92, 0xca, 0x80, 0xa3, 0xd4, 0xab, 0x5c, 0x6b, 0x49,
+ 0xc3, 0xda, 0xcb, 0x05, 0x55, 0x8e, 0xe6, 0xca, 0x87, 0x8a, 0xdb, 0xcc,
+ 0x03, 0x44, 0x7a, 0x83, 0xa3, 0x47, 0xd9, 0xd5, 0xd3, 0xef, 0x98, 0x49,
+ 0xcb, 0xc1, 0xeb, 0xf8, 0x15, 0x26, 0xd9, 0x5a, 0x95, 0x61, 0x12, 0x34,
+ 0x29, 0xa6, 0x92, 0x22, 0x64, 0xf1, 0x32, 0x36, 0xf5, 0x5b, 0x5b, 0x8b,
+ 0x42, 0x23, 0x02, 0xf1, 0x12, 0xa8, 0x26, 0x52, 0x70, 0xc4, 0x90, 0xf2,
+ 0x5d, 0x8c, 0x9e, 0xf7, 0xff, 0xda, 0x2c, 0x7b, 0x6e, 0x93, 0x7a, 0x56,
+ 0x93, 0x00, 0x44, 0x00, 0x1a, 0x60, 0x81, 0xce, 0xb9, 0xf0, 0x2f, 0x74,
+ 0x9f, 0x40, 0xc9, 0xb0, 0xa0, 0xb5, 0x18, 0x69, 0x74, 0xe6, 0x5c, 0x88,
+ 0x06, 0xf2, 0x50, 0x88, 0xf3, 0x22, 0xae, 0x60, 0x30, 0x5a, 0x93, 0x7c,
+ 0xa3, 0xc1, 0x38, 0xac, 0xac, 0xbd, 0x1a, 0xb0, 0x60, 0xd4, 0x38, 0x98,
+ 0x8f, 0x9d, 0xd3, 0xd3, 0xb3, 0x93, 0xaf, 0xce, 0x0e, 0xcf, 0xcf, 0x93,
+ 0x37, 0x87, 0x17, 0xa2, 0xeb, 0x5f, 0x48, 0xe8, 0xdd, 0x15, 0xab, 0xeb,
+ 0x09, 0x7c, 0x0d, 0x86, 0xe0, 0x64, 0x21, 0x27, 0x66, 0x48, 0x40, 0xce,
+ 0x53, 0xc1, 0x7e, 0x34, 0xc8, 0x6f, 0x50, 0xe2, 0xa7, 0x1a, 0xb1, 0x77,
+ 0x0d, 0x6b, 0x3f, 0x62, 0x9a, 0xe0, 0x90, 0x74, 0xc6, 0x73, 0x6f, 0x46,
+ 0x85, 0x60, 0x2c, 0x51, 0x4e, 0x2e, 0xe7, 0xd0, 0x9b, 0xd0, 0xf9, 0xca,
+ 0xa6, 0x9f, 0x98, 0xde, 0x1f, 0x68, 0x35, 0x6b, 0x2e, 0x9b, 0xce, 0xbf,
+ 0x9e, 0x19, 0x51, 0xfc, 0x21, 0xf9, 0x9e, 0xda, 0x9c, 0x90, 0xf2, 0xca,
+ 0x16, 0x64, 0xba, 0x65, 0xcf, 0x51, 0xed, 0xd4, 0x17, 0x15, 0x42, 0x89,
+ 0xd2, 0xe0, 0x3f, 0x2e, 0x44, 0x3c, 0xec, 0xae, 0xc9, 0xd3, 0x28, 0xaa,
+ 0x23, 0x60, 0x99, 0x1a, 0x53, 0xe7, 0x7a, 0xd6, 0x32, 0xc6, 0x49, 0x72,
+ 0x9c, 0x5d, 0xd6, 0x90, 0x42, 0xb8, 0x3b, 0x6a, 0x6e, 0x9b, 0xd1, 0x9f,
+ 0x77, 0xb8, 0xea, 0x19, 0xfd, 0xfa, 0xe4, 0xb3, 0x4f, 0xb6, 0x3f, 0x93,
+ 0x5f, 0xed, 0xdf, 0xe7, 0x4f, 0xb7, 0x15, 0x45, 0x9d, 0xfe, 0x7a, 0xba,
+ 0xf7, 0x74, 0x67, 0x8f, 0xc1, 0x1d, 0xb7, 0xf7, 0xb6, 0xe9, 0xff, 0x9f,
+ 0xea, 0x27, 0x8c, 0x60, 0xf9, 0x7c, 0xf7, 0xb3, 0x4f, 0x11, 0x0d, 0xc3,
+ 0xf4, 0x31, 0xa5, 0x4e, 0x06, 0x75, 0x31, 0x00, 0xc6, 0x14, 0x24, 0x9f,
+ 0x3f, 0x34, 0x2d, 0x91, 0xec, 0x5e, 0x1f, 0xb3, 0x33, 0xf5, 0x4a, 0x74,
+ 0x9a, 0x69, 0xc6, 0xc7, 0x5e, 0xad, 0xaa, 0x82, 0x7b, 0x63, 0x11, 0xe2,
+ 0x92, 0xb6, 0xad, 0xd3, 0xd0, 0xb7, 0x6b, 0xfc, 0x0d, 0xd0, 0xb6, 0xc6,
+ 0x3b, 0x12, 0x68, 0x1e, 0xe0, 0xc3, 0xfd, 0xd2, 0xae, 0x2d, 0x91, 0x7c,
+ 0x0d, 0xa8, 0x6f, 0xba, 0x55, 0xfa, 0xde, 0xd8, 0x2a, 0x41, 0xbb, 0xa7,
+ 0x58, 0x0c, 0x9c, 0x49, 0x4e, 0xc2, 0xa5, 0x84, 0x2b, 0xff, 0xd2, 0xfe,
+ 0xc4, 0x72, 0xc5, 0x6f, 0x29, 0x35, 0x24, 0x71, 0x6f, 0x2e, 0x17, 0xa1,
+ 0xa3, 0xaf, 0x06, 0xf1, 0xac, 0xf9, 0xed, 0xf7, 0x2b, 0xc5, 0xac, 0x4c,
+ 0x1f, 0x72, 0x39, 0x5c, 0x52, 0x58, 0xb7, 0x63, 0xca, 0x51, 0x73, 0x4a,
+ 0x46, 0xbf, 0xa0, 0x39, 0x3f, 0x23, 0x50, 0xb0, 0xdb, 0xb9, 0x41, 0xb0,
+ 0x39, 0xb9, 0x04, 0xb6, 0xd9, 0x6a, 0x38, 0x54, 0x51, 0xbb, 0xe6, 0xe4,
+ 0x55, 0x47, 0xb2, 0x03, 0x79, 0x43, 0x65, 0x4e, 0x97, 0x17, 0x47, 0xa7,
+ 0xf0, 0xb6, 0xc0, 0x15, 0x2f, 0xcf, 0x1b, 0x65, 0x47, 0x5d, 0x31, 0x35,
+ 0x06, 0xfd, 0x69, 0x1f, 0x38, 0x4f, 0xee, 0xd0, 0x3d, 0x38, 0x35, 0x1f,
+ 0x5b, 0xef, 0x0a, 0x0b, 0x6f, 0xb8, 0x58, 0xf5, 0xae, 0x23, 0xe9, 0x9f,
+ 0x43, 0xf8, 0xba, 0x6b, 0x2e, 0xbc, 0x7d, 0x50, 0x54, 0x5a, 0xcb, 0x62,
+ 0x30, 0x54, 0x29, 0x63, 0xfb, 0x6f, 0x1a, 0x0b, 0x1b, 0xfc, 0xde, 0x85,
+ 0x6d, 0xe1, 0x32, 0xd3, 0x1a, 0xa1, 0xa9, 0x50, 0xfe, 0x34, 0xcc, 0xa5,
+ 0x75, 0xdc, 0x6e, 0x94, 0x96, 0x0d, 0x14, 0xfd, 0x35, 0xa9, 0x25, 0x41,
+ 0xd7, 0x2b, 0x5d, 0x17, 0x48, 0x77, 0x14, 0x39, 0xe2, 0x77, 0x6b, 0x6b,
+ 0xe7, 0xa7, 0x87, 0x87, 0xaf, 0x92, 0xe3, 0xa3, 0x37, 0x47, 0x17, 0x81,
+ 0x14, 0xee, 0x6e, 0x0f, 0xb3, 0xb4, 0x5a, 0xc5, 0xa9, 0xd6, 0x72, 0x78,
+ 0xcc, 0x66, 0xe9, 0xcf, 0xee, 0xef, 0x59, 0xa6, 0x59, 0x14, 0xd3, 0xf6,
+ 0x7b, 0xd0, 0xb7, 0x01, 0xec, 0x34, 0x4c, 0xbe, 0x0c, 0x02, 0x23, 0x93,
+ 0x8a, 0x24, 0x9a, 0xb1, 0x2b, 0xb7, 0x3c, 0xf8, 0x41, 0xe3, 0x34, 0x9a,
+ 0xe2, 0x92, 0x42, 0xcf, 0xba, 0x94, 0x1e, 0x8d, 0x6d, 0x6d, 0x8d, 0x8a,
+ 0xd7, 0x36, 0x93, 0xd0, 0xea, 0xc0, 0x2c, 0x87, 0xb0, 0xbd, 0xbb, 0x0c,
+ 0x68, 0x07, 0xb3, 0x5c, 0x72, 0x2d, 0xc3, 0x98, 0x62, 0x57, 0x81, 0xf6,
+ 0xa2, 0x10, 0x3e, 0x1e, 0xf6, 0x18, 0x96, 0x16, 0xb7, 0x80, 0x5a, 0xeb,
+ 0x2b, 0xac, 0x59, 0xfd, 0x64, 0xdb, 0xa5, 0x2b, 0x2c, 0xc0, 0x73, 0x54,
+ 0xbe, 0xe7, 0xce, 0x76, 0x12, 0x12, 0x42, 0x96, 0x2c, 0xca, 0x97, 0xcb,
+ 0x79, 0x74, 0xdd, 0xfd, 0x20, 0xef, 0xd2, 0xfc, 0x3f, 0xd9, 0xc6, 0xf5,
+ 0x76, 0x99, 0x96, 0x03, 0x12, 0xb7, 0xee, 0x07, 0x66, 0x52, 0x15, 0x8a,
+ 0xd0, 0x78, 0x63, 0xb1, 0xf7, 0x64, 0xbe, 0xd8, 0x6d, 0x4b, 0x44, 0xf4,
+ 0x39, 0x27, 0x05, 0xfc, 0x92, 0x53, 0x3d, 0x00, 0x3c, 0x75, 0xce, 0xf4,
+ 0x35, 0x0b, 0xa7, 0x17, 0x70, 0x3c, 0x2c, 0xb1, 0xed, 0xa2, 0xe7, 0x51,
+ 0x9c, 0x81, 0x00, 0xb6, 0xca, 0xad, 0xe6, 0x3c, 0x4d, 0x9d, 0x4b, 0x2c,
+ 0x4f, 0xcf, 0x92, 0x9d, 0xcf, 0x78, 0x1e, 0x1f, 0x37, 0x9f, 0xd7, 0x45,
+ 0x39, 0x76, 0x39, 0xc5, 0xd0, 0x11, 0x82, 0x04, 0x53, 0x49, 0x8b, 0x40,
+ 0xad, 0x26, 0x59, 0x5d, 0x0b, 0x8a, 0x45, 0xd0, 0x1e, 0x2b, 0x25, 0xea,
+ 0x4f, 0x87, 0x39, 0x0a, 0x0e, 0x6e, 0x11, 0x8b, 0xf8, 0xae, 0xd1, 0x75,
+ 0x61, 0x03, 0xab, 0x04, 0xed, 0xad, 0x97, 0x2e, 0x01, 0x55, 0x96, 0x81,
+ 0x4d, 0x22, 0x44, 0x6b, 0x77, 0xf9, 0x04, 0xa2, 0xb4, 0x07, 0xa8, 0xa3,
+ 0xfd, 0x12, 0xe2, 0x93, 0x58, 0x69, 0xf8, 0x2c, 0xe1, 0xec, 0x74, 0x23,
+ 0x53, 0x01, 0x86, 0x97, 0xb5, 0x80, 0x45, 0x61, 0x03, 0xf2, 0x03, 0xe7,
+ 0x37, 0x7b, 0xbf, 0x00, 0xeb, 0x4f, 0xcc, 0x9a, 0x7b, 0xbe, 0x17, 0xce,
+ 0x15, 0xa8, 0xeb, 0xa9, 0x19, 0x13, 0xde, 0x38, 0xc2, 0x6e, 0xce, 0x99,
+ 0x91, 0x5a, 0x82, 0x69, 0xef, 0x6c, 0x93, 0xd0, 0x3a, 0x2d, 0x1a, 0xa5,
+ 0xcf, 0x89, 0xa8, 0x62, 0x4d, 0x14, 0xd3, 0x1a, 0x60, 0x75, 0x76, 0xb6,
+ 0xbf, 0x59, 0xbd, 0xea, 0x00, 0xdf, 0x7f, 0xf0, 0xe5, 0xdd, 0xa7, 0x0f,
+ 0x6c, 0xda, 0x49, 0x09, 0x65, 0x3c, 0xb3, 0x18, 0x48, 0x08, 0x82, 0xde,
+ 0xf3, 0x12, 0x6d, 0x1b, 0x11, 0x7e, 0x76, 0x95, 0xf2, 0xf0, 0x1f, 0x1a,
+ 0xbd, 0xe5, 0x84, 0xb4, 0x86, 0xf2, 0x46, 0xa3, 0xb2, 0xe5, 0xcb, 0x8a,
+ 0xcd, 0x62, 0x0b, 0xc0, 0xf3, 0x79, 0xdd, 0xd5, 0xa5, 0x93, 0x0b, 0x36,
+ 0x43, 0xf0, 0xb6, 0x70, 0xce, 0x7e, 0x93, 0x49, 0x18, 0xf5, 0x94, 0xd9,
+ 0xd5, 0x52, 0x90, 0x30, 0x0a, 0xd1, 0xf5, 0x19, 0xcd, 0x5a, 0xcf, 0x2b,
+ 0xf1, 0x66, 0x0e, 0x1f, 0x12, 0x7a, 0x02, 0xe3, 0x1d, 0xa7, 0x26, 0xb2,
+ 0x8a, 0xc8, 0xd1, 0xbe, 0x18, 0xd8, 0x28, 0x3b, 0x66, 0x2f, 0x18, 0xb8,
+ 0xc1, 0x5a, 0xd2, 0x2e, 0x9b, 0x2d, 0x70, 0x8d, 0x43, 0x64, 0xfa, 0x0a,
+ 0xa1, 0x38, 0x66, 0xcf, 0x69, 0x65, 0xec, 0x0d, 0xab, 0xc5, 0x2d, 0x80,
+ 0x06, 0xfa, 0x4a, 0xb5, 0x68, 0xc9, 0x75, 0xc5, 0x1c, 0xbf, 0x32, 0xd8,
+ 0x4c, 0x81, 0xd8, 0x67, 0x63, 0xff, 0xc1, 0xc9, 0xdb, 0xd7, 0x47, 0x5f,
+ 0x39, 0x28, 0x23, 0x61, 0xe2, 0x0d, 0x88, 0x0d, 0x31, 0x1f, 0x87, 0x9e,
+ 0x6e, 0x2d, 0xc4, 0xa8, 0xd1, 0xb7, 0xc4, 0x9e, 0xde, 0x87, 0x1f, 0x80,
+ 0x81, 0xcc, 0x9f, 0xb0, 0x81, 0x5c, 0xf0, 0x3f, 0xaa, 0x4d, 0x6f, 0x6e,
+ 0x68, 0x41, 0xd5, 0x49, 0x96, 0x46, 0x5a, 0xd6, 0xcb, 0x85, 0x0b, 0x22,
+ 0x0c, 0x0a, 0x39, 0x2a, 0xf8, 0xb6, 0xa5, 0xa2, 0x2f, 0x17, 0xc2, 0x9a,
+ 0x34, 0xa1, 0xb4, 0x61, 0xcd, 0x95, 0x3b, 0x80, 0xcd, 0x09, 0x8a, 0xa5,
+ 0xa2, 0x17, 0x40, 0x14, 0x97, 0x33, 0x65, 0xc8, 0xce, 0x30, 0x5e, 0xde,
+ 0xfc, 0x37, 0x13, 0x14, 0xc3, 0x0c, 0x0b, 0x9e, 0xcf, 0x44, 0x1d, 0xe3,
+ 0x79, 0xa3, 0xa2, 0xb4, 0x0b, 0xc6, 0x71, 0xd1, 0xbf, 0xde, 0x3f, 0x54,
+ 0xb9, 0x12, 0xd9, 0x2e, 0x3e, 0xc9, 0xd2, 0x58, 0x53, 0xb8, 0x2a, 0xe1,
+ 0xeb, 0xc4, 0x27, 0x2f, 0xd9, 0x2d, 0xb3, 0xc7, 0x10, 0xf4, 0x33, 0x01,
+ 0x94, 0x0b, 0xd3, 0x4f, 0x95, 0x4b, 0x7a, 0xa8, 0xf8, 0xa3, 0xcb, 0x20,
+ 0xa3, 0x4d, 0xe2, 0x04, 0x8d, 0xe8, 0xc4, 0x46, 0xcc, 0x06, 0x96, 0xf5,
+ 0xdf, 0xaf, 0x0f, 0xaa, 0xfb, 0xd9, 0xa8, 0x98, 0x5a, 0xe2, 0x85, 0x03,
+ 0x90, 0xb0, 0x87, 0xc2, 0xc2, 0x6a, 0x89, 0x78, 0x6a, 0xeb, 0xc0, 0x2c,
+ 0xe9, 0x63, 0xa5, 0xfc, 0xf8, 0xa5, 0x38, 0x11, 0xdc, 0x43, 0x36, 0x0b,
+ 0x60, 0xfb, 0x30, 0x8f, 0xcf, 0xe6, 0xe3, 0x69, 0xa1, 0x54, 0xcd, 0x09,
+ 0xe6, 0x58, 0xa9, 0xe6, 0xd4, 0xd9, 0xe3, 0x57, 0x2c, 0xd9, 0xc2, 0x81,
+ 0xc2, 0x23, 0x24, 0xee, 0xf4, 0x14, 0x51, 0x03, 0x13, 0xe4, 0xb7, 0xe5,
+ 0x0b, 0x8d, 0xca, 0x0f, 0xf0, 0x6d, 0xa4, 0x52, 0x09, 0x0d, 0xf5, 0x27,
+ 0x31, 0x28, 0x8a, 0xdf, 0xef, 0x07, 0xeb, 0xdc, 0x1e, 0x6d, 0x2d, 0x3d,
+ 0xd1, 0x53, 0x5a, 0x5e, 0x29, 0x4a, 0x9f, 0x7a, 0xd2, 0xa0, 0x24, 0xba,
+ 0xfa, 0x31, 0xce, 0x30, 0xc9, 0x42, 0x89, 0x8b, 0x9a, 0x81, 0xf8, 0xb4,
+ 0x94, 0x9c, 0x42, 0xcd, 0xb8, 0x12, 0x93, 0xa4, 0x23, 0xc4, 0x80, 0xe3,
+ 0xfc, 0xde, 0xc5, 0xa2, 0xa4, 0xfe, 0x2e, 0xb3, 0xb2, 0x16, 0xde, 0x3e,
+ 0xab, 0x97, 0x59, 0xf0, 0x1a, 0x1b, 0xf1, 0xa0, 0x09, 0x67, 0x6a, 0x38,
+ 0x91, 0xae, 0x20, 0x4b, 0x30, 0xae, 0x0d, 0x92, 0x7f, 0xb2, 0xca, 0x37,
+ 0x21, 0xdf, 0xbf, 0xd4, 0x7a, 0x56, 0x74, 0x9e, 0x15, 0x29, 0x45, 0xe1,
+ 0x03, 0x3f, 0xdb, 0x56, 0xf3, 0x5b, 0xad, 0xe1, 0xaa, 0x55, 0xb2, 0x7f,
+ 0x76, 0x48, 0x92, 0xed, 0xd5, 0x1c, 0x18, 0x15, 0xf3, 0xda, 0x92, 0xea,
+ 0xb2, 0xb9, 0x16, 0xd0, 0x9a, 0xdb, 0xf9, 0xe0, 0x0e, 0xef, 0x82, 0x37,
+ 0x99, 0x98, 0x34, 0x30, 0x40, 0xf2, 0xb7, 0x3d, 0xc9, 0x8d, 0x0d, 0x4c,
+ 0x18, 0x5c, 0x87, 0x61, 0x12, 0x84, 0xa4, 0xd8, 0x45, 0x42, 0x5d, 0x15,
+ 0x06, 0x24, 0x7c, 0x1a, 0xb1, 0xf5, 0x10, 0x41, 0xd8, 0xd6, 0x1a, 0xa7,
+ 0xda, 0xa7, 0x22, 0xfc, 0xcd, 0x70, 0x39, 0xb5, 0xaf, 0x86, 0xdb, 0xd3,
+ 0x93, 0x53, 0xbf, 0xdb, 0x64, 0xf4, 0x37, 0xdc, 0x33, 0x2c, 0x8b, 0xb4,
+ 0xe5, 0x82, 0xcc, 0x45, 0xd8, 0x8b, 0xf5, 0x7a, 0x12, 0x08, 0xbf, 0x92,
+ 0x02, 0xc8, 0x31, 0xd6, 0x62, 0x98, 0x56, 0x24, 0x20, 0xb5, 0xeb, 0x88,
+ 0x3a, 0x30, 0xd1, 0xb3, 0xca, 0x54, 0xc1, 0xe1, 0xc2, 0x23, 0x46, 0x4b,
+ 0x92, 0xd2, 0xd9, 0x0d, 0xfe, 0xd4, 0x69, 0xdb, 0xfd, 0xbd, 0x9b, 0xad,
+ 0x1f, 0x83, 0xfb, 0x92, 0x3f, 0x7a, 0xe9, 0xd0, 0xed, 0x78, 0x14, 0x43,
+ 0xee, 0x08, 0x2c, 0x15, 0x3e, 0x53, 0xfe, 0x05, 0x1f, 0x23, 0xea, 0xcd,
+ 0xd0, 0x4e, 0xc1, 0x75, 0x1c, 0x84, 0x56, 0xa1, 0x3e, 0x55, 0x3f, 0x10,
+ 0x71, 0xec, 0x81, 0x43, 0x8f, 0x42, 0xd1, 0x78, 0xf0, 0xcd, 0x96, 0xd5,
+ 0xc0, 0x65, 0xfb, 0x0d, 0x27, 0x10, 0xdb, 0x81, 0xaf, 0xb2, 0x46, 0xd1,
+ 0x5c, 0x97, 0x29, 0xd4, 0x1b, 0xf4, 0x68, 0x2d, 0xd6, 0xa7, 0x53, 0xcf,
+ 0xf0, 0xed, 0x31, 0xde, 0x55, 0x24, 0xd5, 0x79, 0x81, 0x49, 0x79, 0x17,
+ 0x57, 0xe3, 0xb8, 0x6f, 0xa4, 0x38, 0x70, 0x39, 0x33, 0xce, 0x00, 0x72,
+ 0xc0, 0x5e, 0x48, 0x13, 0x41, 0x90, 0xc0, 0x6d, 0x5e, 0x99, 0xf3, 0x91,
+ 0x68, 0x7b, 0x2c, 0x31, 0x11, 0xb5, 0x00, 0x12, 0x64, 0xf5, 0x38, 0x58,
+ 0xca, 0x6c, 0x7c, 0x5d, 0x48, 0x4c, 0x2d, 0x2d, 0x5a, 0x90, 0xe9, 0xd9,
+ 0x4b, 0xfe, 0x53, 0x69, 0xe0, 0x1b, 0x9f, 0xb4, 0xc7, 0x84, 0x30, 0x14,
+ 0x1c, 0xca, 0xa1, 0x27, 0x88, 0xc3, 0xef, 0x2f, 0xce, 0xf6, 0x93, 0xaf,
+ 0x0f, 0xf7, 0x5f, 0x1d, 0x9e, 0x9d, 0xb7, 0x2e, 0x7d, 0x0d, 0xff, 0x10,
+ 0x09, 0x8d, 0x8d, 0xc0, 0x10, 0x8d, 0x0d, 0x78, 0x40, 0xe3, 0xf6, 0x8d,
+ 0xeb, 0x11, 0xf1, 0xf0, 0x41, 0xa2, 0xf3, 0xc1, 0x0a, 0x91, 0x78, 0x0b,
+ 0x80, 0x7a, 0x5c, 0x81, 0xd9, 0xb8, 0x36, 0xc6, 0xc4, 0xa1, 0x38, 0x88,
+ 0xc1, 0x4c, 0xe6, 0x61, 0xc6, 0x8c, 0xc7, 0xea, 0xf3, 0x97, 0xc9, 0xa4,
+ 0xb0, 0x64, 0xc0, 0xe6, 0xce, 0x7d, 0xed, 0xf3, 0xbd, 0x03, 0xb6, 0xa5,
+ 0x97, 0x8c, 0x5a, 0x0d, 0x7b, 0xdf, 0x0f, 0xa8, 0xdf, 0x01, 0x2d, 0xfe,
+ 0x80, 0xc1, 0x1c, 0xef, 0xb3, 0xaa, 0xd7, 0x32, 0x01, 0x36, 0xbb, 0x5f,
+ 0x93, 0x12, 0x4e, 0xd1, 0x49, 0xfa, 0xba, 0xb3, 0x25, 0x3e, 0x5d, 0x5c,
+ 0xe5, 0x39, 0xd2, 0x20, 0x70, 0xa9, 0x06, 0x42, 0xb2, 0x9e, 0xa0, 0x28,
+ 0xbd, 0x45, 0x03, 0x94, 0xbc, 0x9a, 0xa9, 0xf1, 0x60, 0x18, 0x88, 0x4e,
+ 0x01, 0xb2, 0x0e, 0x9d, 0x3d, 0xb9, 0xd4, 0xa7, 0x02, 0xd0, 0x2c, 0x16,
+ 0x33, 0x1a, 0x96, 0x3e, 0x14, 0xde, 0x0f, 0x70, 0x80, 0x68, 0x0c, 0x7e,
+ 0xd5, 0xf0, 0x8f, 0xaa, 0x31, 0x54, 0xb1, 0xbb, 0xb5, 0x39, 0x1e, 0x83,
+ 0xa3, 0x79, 0x0b, 0xdd, 0xe7, 0x2e, 0xad, 0xac, 0x88, 0xbe, 0x2b, 0x51,
+ 0x60, 0xac, 0xd4, 0xc3, 0xbe, 0x29, 0xf5, 0x49, 0xa5, 0x48, 0xa1, 0x30,
+ 0xb6, 0x20, 0x17, 0x28, 0x24, 0x66, 0xd4, 0x40, 0x43, 0xf4, 0xb8, 0x7b,
+ 0x2e, 0x4b, 0xbe, 0x2e, 0x2a, 0xdc, 0x05, 0xf1, 0xe3, 0x7c, 0xc9, 0x77,
+ 0x2d, 0x3f, 0xde, 0x50, 0xff, 0x96, 0x03, 0x89, 0x05, 0xa6, 0x32, 0xd8,
+ 0xd7, 0xe9, 0xfe, 0xc5, 0xd7, 0xf0, 0xae, 0x82, 0x84, 0x5f, 0x01, 0x31,
+ 0xc5, 0x7c, 0x6a, 0x71, 0x4a, 0x96, 0x53, 0xe0, 0x44, 0xfe, 0x35, 0x60,
+ 0x46, 0x93, 0x27, 0xe1, 0xbd, 0xcb, 0x25, 0x10, 0x69, 0x2a, 0x35, 0x61,
+ 0xc1, 0xa3, 0x1b, 0x75, 0xf9, 0x10, 0xfa, 0xee, 0xf2, 0xed, 0x5c, 0xbc,
+ 0xe5, 0xba, 0x24, 0xc2, 0xaf, 0xcb, 0x9c, 0x40, 0xf4, 0x2c, 0xcc, 0xb1,
+ 0xc6, 0x13, 0x22, 0x0f, 0xe3, 0x0b, 0xce, 0x74, 0x16, 0x07, 0xd4, 0xa4,
+ 0xe8, 0xc6, 0x3d, 0x0c, 0x8e, 0xf4, 0x17, 0xb3, 0xfb, 0x61, 0x0c, 0xc0,
+ 0x93, 0x7c, 0xb9, 0xac, 0x9b, 0x6c, 0xa5, 0x85, 0x7f, 0xec, 0x24, 0xcb,
+ 0xb2, 0x28, 0xea, 0x60, 0x0c, 0x90, 0x7e, 0xd2, 0x5a, 0x4f, 0xb4, 0x00,
+ 0x5c, 0xca, 0x58, 0xb8, 0xa9, 0xb9, 0xca, 0xdd, 0xa1, 0x60, 0x98, 0x8e,
+ 0xaa, 0x62, 0xba, 0xac, 0x83, 0xe8, 0xeb, 0x5f, 0x36, 0xe6, 0x60, 0xd0,
+ 0x1b, 0x47, 0x43, 0x03, 0xfb, 0x9c, 0x0b, 0x44, 0x1d, 0x69, 0xfa, 0x24,
+ 0x5e, 0xc2, 0xd9, 0x58, 0x16, 0xf3, 0x66, 0xf1, 0x38, 0x04, 0x7a, 0x6f,
+ 0xae, 0xad, 0x9d, 0xdb, 0x66, 0x33, 0xdc, 0x6b, 0xbc, 0xe9, 0xdf, 0x41,
+ 0x9a, 0xe4, 0x31, 0x88, 0xb3, 0x60, 0x4c, 0xbf, 0x18, 0x08, 0x5c, 0x26,
+ 0x7b, 0x0a, 0x16, 0x2e, 0x7b, 0x9c, 0x57, 0xcd, 0x49, 0xe1, 0x2b, 0xe7,
+ 0xae, 0xb0, 0xfc, 0xb2, 0x8b, 0xc2, 0x80, 0xfc, 0xd5, 0x5d, 0xe7, 0x09,
+ 0xa2, 0x91, 0x0d, 0xdf, 0x89, 0x30, 0xcd, 0x97, 0x80, 0x55, 0x1a, 0x76,
+ 0xe1, 0xb8, 0x3c, 0xc8, 0xad, 0xff, 0xda, 0x4a, 0xfa, 0x89, 0x16, 0x81,
+ 0xef, 0x00, 0x39, 0xfa, 0xbf, 0x10, 0x78, 0xa5, 0xf0, 0xbe, 0xdc, 0xe6,
+ 0xb0, 0x09, 0x20, 0x3b, 0x24, 0x15, 0xea, 0xba, 0x1c, 0x7b, 0xea, 0x27,
+ 0xe9, 0x20, 0xbb, 0x63, 0xfd, 0xc5, 0x74, 0x04, 0x85, 0x0b, 0x91, 0x62,
+ 0xbf, 0x0e, 0x80, 0x09, 0x70, 0x1b, 0x97, 0xce, 0xaa, 0xc7, 0x75, 0x37,
+ 0xa5, 0x08, 0xa5, 0x88, 0xf5, 0xa8, 0xc1, 0x64, 0x6e, 0x53, 0xc9, 0xa8,
+ 0x77, 0x7a, 0x7b, 0x95, 0x54, 0x85, 0xfc, 0xb4, 0xa4, 0x23, 0x0d, 0xec,
+ 0x52, 0xf2, 0x0f, 0x6a, 0xfb, 0x05, 0x45, 0x71, 0x2d, 0xe2, 0x54, 0xa2,
+ 0xe9, 0xcc, 0x1d, 0x69, 0x83, 0x34, 0x29, 0x80, 0xbd, 0x95, 0x80, 0xb5,
+ 0x54, 0xe4, 0x11, 0x8e, 0x24, 0x63, 0x0c, 0x63, 0x49, 0xda, 0xe6, 0xaa,
+ 0x8d, 0xa6, 0xc9, 0xd8, 0x95, 0x6a, 0x69, 0x1c, 0x6b, 0x61, 0x0d, 0x6d,
+ 0x19, 0xbe, 0xde, 0xfd, 0x48, 0xc2, 0x87, 0x67, 0xee, 0x2e, 0x65, 0x9c,
+ 0x34, 0x2f, 0x12, 0xd8, 0x94, 0xb4, 0xee, 0xab, 0x04, 0x6f, 0x84, 0x01,
+ 0x29, 0x3e, 0x62, 0xf3, 0x8a, 0xb3, 0x3c, 0xd4, 0x24, 0xa5, 0x58, 0x26,
+ 0xb0, 0x7f, 0x5d, 0xe7, 0x1a, 0x57, 0x2a, 0xab, 0xde, 0xac, 0xaa, 0x09,
+ 0x0b, 0x1f, 0x87, 0x14, 0x78, 0xaf, 0xaa, 0x0b, 0x7c, 0x18, 0xc6, 0x07,
+ 0x66, 0xe8, 0x50, 0x55, 0xf5, 0x12, 0x39, 0x0a, 0x73, 0xca, 0x25, 0x0a,
+ 0xc3, 0xc5, 0x3a, 0x7f, 0x64, 0xef, 0x61, 0x97, 0x1c, 0xc4, 0x3a, 0x4f,
+ 0x24, 0x81, 0x44, 0xa1, 0xe2, 0xf8, 0x42, 0xd9, 0xdd, 0x81, 0x62, 0x2a,
+ 0x31, 0x1b, 0xc0, 0x29, 0xb5, 0x16, 0x0c, 0x2f, 0xad, 0xbd, 0xf8, 0x9b,
+ 0x7d, 0x5d, 0x25, 0x97, 0x71, 0xaf, 0x2e, 0x66, 0x91, 0x0b, 0x03, 0xbf,
+ 0x53, 0xa3, 0x7a, 0x9c, 0x64, 0x71, 0x57, 0x75, 0xb9, 0x1c, 0x37, 0x20,
+ 0xfa, 0x40, 0x11, 0x0d, 0xd7, 0xbc, 0x5b, 0xe3, 0x22, 0xd4, 0xed, 0x8f,
+ 0x4e, 0x55, 0xbd, 0x17, 0xed, 0x83, 0x47, 0xb6, 0x91, 0x36, 0x92, 0x5c,
+ 0x5c, 0x61, 0xd1, 0xb0, 0xdf, 0x4d, 0x47, 0x65, 0x83, 0x53, 0x97, 0x51,
+ 0xdf, 0x2a, 0x0f, 0xcf, 0xd9, 0x09, 0xc1, 0xdd, 0xab, 0x82, 0x18, 0x04,
+ 0x8f, 0x32, 0x51, 0xf0, 0x45, 0x88, 0x35, 0x6c, 0xb2, 0x5c, 0x73, 0x00,
+ 0x89, 0x34, 0xa4, 0x81, 0x86, 0xaa, 0x8a, 0xf7, 0x77, 0x8b, 0x16, 0xd2,
+ 0xca, 0x03, 0xb9, 0xba, 0x58, 0x95, 0x07, 0x59, 0x6c, 0xc5, 0xa9, 0x02,
+ 0xa2, 0xc9, 0xc9, 0x87, 0x0a, 0x16, 0xa7, 0xeb, 0x37, 0x4c, 0x5e, 0xe9,
+ 0xa1, 0xd0, 0x1e, 0xda, 0xe2, 0x44, 0x7c, 0x37, 0x9e, 0x0a, 0x14, 0x4a,
+ 0x44, 0x47, 0xaf, 0xcc, 0xa6, 0x0a, 0x96, 0x83, 0xb5, 0x61, 0xcd, 0xc6,
+ 0x36, 0x89, 0xd6, 0xd5, 0xba, 0xa0, 0x21, 0xf0, 0x8c, 0xd7, 0xa7, 0xd9,
+ 0xf6, 0x7a, 0x50, 0xd8, 0x6b, 0x43, 0x82, 0xfe, 0x0b, 0x68, 0x3f, 0x0e,
+ 0xac, 0x50, 0xac, 0x17, 0x1c, 0xdc, 0xb6, 0xd9, 0x31, 0x14, 0x6a, 0xe2,
+ 0x97, 0x0e, 0x66, 0xe7, 0xf9, 0xee, 0x70, 0xe7, 0x93, 0xcf, 0x86, 0xdb,
+ 0xc3, 0x9d, 0x6d, 0xe6, 0x2f, 0x3c, 0x94, 0x60, 0x70, 0xb2, 0x2e, 0x1d,
+ 0x5d, 0x35, 0xde, 0x8b, 0xfb, 0x7c, 0x7b, 0x78, 0xf1, 0xdd, 0xc9, 0xd9,
+ 0x37, 0xc9, 0xd1, 0xdb, 0x8b, 0xc3, 0xb3, 0xd7, 0xfb, 0x07, 0x1f, 0x0b,
+ 0xd8, 0x1f, 0x9a, 0xad, 0x83, 0xda, 0xd6, 0x99, 0x5f, 0x98, 0xd8, 0x36,
+ 0xe8, 0xd7, 0x2c, 0xab, 0xaf, 0xb7, 0xf7, 0x76, 0x1e, 0x84, 0xa4, 0xee,
+ 0x30, 0x0f, 0xfa, 0xf7, 0x6d, 0x52, 0x3b, 0x3c, 0xa9, 0xd5, 0xad, 0x38,
+ 0x68, 0xc6, 0x73, 0x89, 0xad, 0x72, 0x71, 0xb9, 0x60, 0xf3, 0x28, 0x9d,
+ 0x04, 0x44, 0x56, 0x65, 0xec, 0x23, 0x01, 0xbf, 0x95, 0xf4, 0x5a, 0x05,
+ 0x99, 0xd1, 0x18, 0x74, 0xe5, 0xb9, 0x6b, 0x52, 0x47, 0xba, 0x56, 0x73,
+ 0x8a, 0xc0, 0xd9, 0x4e, 0x20, 0xe2, 0x19, 0x57, 0xd6, 0xdc, 0x35, 0xa6,
+ 0x16, 0x2d, 0x6d, 0x2a, 0x80, 0x83, 0x13, 0x97, 0x27, 0xe2, 0x50, 0x08,
+ 0x10, 0xfa, 0x60, 0x72, 0x3a, 0xc6, 0xda, 0x2c, 0x05, 0x1e, 0x86, 0xcf,
+ 0xb6, 0xb0, 0x57, 0x2b, 0x8b, 0x6b, 0xc6, 0xc4, 0x1a, 0xa6, 0xd1, 0x03,
+ 0x1d, 0x08, 0x4e, 0x43, 0x30, 0x1a, 0xe9, 0x0a, 0x02, 0x15, 0x83, 0xa4,
+ 0x01, 0x1e, 0xb2, 0x81, 0x90, 0x2c, 0x77, 0x14, 0x72, 0x27, 0x44, 0xfe,
+ 0xb3, 0xaa, 0x16, 0xdc, 0x7a, 0xd5, 0x00, 0x29, 0x4c, 0xa4, 0x9c, 0x55,
+ 0xf8, 0xba, 0x88, 0xda, 0x88, 0xce, 0x9c, 0x94, 0xe9, 0x1d, 0x6a, 0xb2,
+ 0xe4, 0x1e, 0x72, 0x74, 0x2d, 0x69, 0xd4, 0xe4, 0x62, 0xc1, 0xc9, 0xaf,
+ 0x79, 0x72, 0x7a, 0xf8, 0x66, 0x60, 0x95, 0x84, 0xe9, 0x77, 0x31, 0x46,
+ 0x19, 0xbe, 0xa4, 0xe4, 0xf6, 0x2c, 0xb2, 0xb9, 0xc5, 0xd2, 0x80, 0x27,
+ 0x6a, 0xf0, 0x4f, 0x38, 0x01, 0x3e, 0x34, 0x0e, 0x81, 0x52, 0x43, 0x46,
+ 0x2d, 0xe6, 0x52, 0x72, 0x0b, 0xdb, 0xb0, 0x9c, 0xbc, 0x9f, 0x1a, 0xb0,
+ 0x9c, 0x6c, 0xb8, 0x20, 0x5d, 0xee, 0x0f, 0x91, 0xa8, 0x88, 0x1a, 0x70,
+ 0x61, 0x02, 0x85, 0x65, 0x5e, 0x9f, 0x7e, 0x73, 0x70, 0xfe, 0xfb, 0x9d,
+ 0x5d, 0x1d, 0xce, 0xa6, 0x69, 0x05, 0xcc, 0xab, 0xda, 0x49, 0xf9, 0x60,
+ 0xd7, 0xe1, 0x18, 0x2d, 0xc5, 0x1a, 0x07, 0x1c, 0x9b, 0xb1, 0xe1, 0x12,
+ 0x83, 0x36, 0x1b, 0x99, 0x41, 0x6b, 0x52, 0xd0, 0xde, 0x44, 0x4c, 0x57,
+ 0xed, 0x97, 0x5d, 0x22, 0xa8, 0x09, 0xa5, 0x55, 0x99, 0x6a, 0x17, 0xea,
+ 0x97, 0xce, 0xed, 0x23, 0x69, 0x59, 0x5b, 0x43, 0x0e, 0xb9, 0x0f, 0x67,
+ 0x69, 0xef, 0x39, 0xaf, 0xb7, 0xff, 0x96, 0x71, 0x62, 0xf5, 0x66, 0x37,
+ 0x40, 0x20, 0xdf, 0x0d, 0x0e, 0x80, 0x46, 0xaf, 0x4f, 0xac, 0xee, 0xdb,
+ 0xdc, 0x97, 0x41, 0xe1, 0xa7, 0x4f, 0x68, 0xa3, 0xe8, 0x64, 0x09, 0x6e,
+ 0x03, 0x33, 0x85, 0x62, 0xca, 0xaa, 0x8b, 0x7b, 0xe4, 0x55, 0xc9, 0xf5,
+ 0x66, 0x16, 0x12, 0x47, 0xfa, 0x76, 0x98, 0x7c, 0x9d, 0xcd, 0x39, 0x71,
+ 0x9e, 0x23, 0xee, 0x2c, 0xf7, 0x0a, 0x71, 0x81, 0x5c, 0x78, 0x12, 0x85,
+ 0xf8, 0x8e, 0xb3, 0x54, 0x31, 0x39, 0x89, 0xd7, 0x55, 0xa2, 0xe1, 0x5a,
+ 0x11, 0xaa, 0x94, 0xa3, 0xf3, 0x14, 0x40, 0xd4, 0x81, 0x5d, 0x08, 0x48,
+ 0x34, 0x37, 0xb0, 0xd1, 0x04, 0xd6, 0x44, 0x49, 0x04, 0x34, 0xa7, 0xc7,
+ 0x1c, 0xbe, 0x26, 0xb5, 0x2a, 0x5f, 0x03, 0x4e, 0x9b, 0xad, 0x85, 0xa2,
+ 0x71, 0x79, 0xa6, 0x32, 0x29, 0xaf, 0xd9, 0xf4, 0x51, 0xd1, 0x75, 0x93,
+ 0xce, 0xc7, 0xf7, 0xc3, 0x09, 0xc9, 0xb2, 0x6c, 0x3c, 0x1b, 0x2e, 0x6f,
+ 0xb6, 0x82, 0x63, 0xca, 0x2c, 0xff, 0x5a, 0x30, 0x02, 0x9a, 0x86, 0x6f,
+ 0xab, 0x70, 0x1c, 0x43, 0x87, 0xa5, 0x8d, 0x33, 0xc1, 0x24, 0x61, 0xd9,
+ 0xfe, 0x72, 0x3c, 0x57, 0x82, 0x6c, 0x1d, 0x26, 0x0e, 0xe1, 0x98, 0x5b,
+ 0x18, 0x2e, 0xb2, 0xd9, 0x9e, 0xcb, 0x46, 0x36, 0xfe, 0xa0, 0x55, 0x35,
+ 0x9c, 0x62, 0x11, 0x18, 0x69, 0xe7, 0xd9, 0xd5, 0x54, 0x05, 0x8a, 0x50,
+ 0x75, 0x71, 0x4d, 0x74, 0xa4, 0x80, 0x88, 0xc2, 0xa3, 0x25, 0x92, 0x20,
+ 0xb1, 0x13, 0x1d, 0xd6, 0x1a, 0x52, 0x2b, 0x0f, 0x97, 0x2c, 0xd0, 0xfb,
+ 0x46, 0x14, 0x39, 0x04, 0x60, 0xcb, 0xa8, 0x26, 0x2f, 0x26, 0x1e, 0x8b,
+ 0x44, 0x52, 0xf7, 0x13, 0x03, 0xc1, 0x82, 0x42, 0x00, 0xe3, 0xae, 0x51,
+ 0xd1, 0x70, 0x7e, 0x5a, 0x21, 0x61, 0x39, 0x2b, 0xf4, 0xf5, 0xed, 0x13,
+ 0xb6, 0x78, 0x5f, 0x1c, 0x9f, 0x9b, 0x57, 0x64, 0x9e, 0xdd, 0x05, 0xa4,
+ 0x25, 0xa5, 0x07, 0x94, 0xfe, 0xd8, 0x00, 0x24, 0x90, 0xca, 0x40, 0x3b,
+ 0xc0, 0x48, 0x84, 0x2b, 0x78, 0x37, 0x99, 0x4f, 0x7e, 0xb0, 0x45, 0xd0,
+ 0x30, 0x62, 0x1e, 0x8a, 0xd5, 0x3b, 0x13, 0x61, 0xc8, 0x21, 0xbd, 0x30,
+ 0x76, 0x1f, 0x09, 0x4b, 0x4f, 0xfa, 0xc9, 0x60, 0x17, 0xf8, 0x39, 0x3b,
+ 0xcd, 0x45, 0x4c, 0x6b, 0x81, 0x09, 0xe4, 0x36, 0xa8, 0x25, 0x6b, 0x45,
+ 0xd9, 0xc1, 0x86, 0x92, 0xf4, 0x2d, 0xbd, 0xcf, 0x3f, 0x76, 0x75, 0x42,
+ 0xb7, 0x3b, 0x88, 0xd8, 0x16, 0xdc, 0xca, 0xe9, 0x7d, 0x2c, 0x32, 0xec,
+ 0x3e, 0xb8, 0xab, 0xc8, 0x8d, 0xb8, 0xcb, 0x1d, 0x80, 0xb4, 0x14, 0x4d,
+ 0x80, 0x29, 0x54, 0x21, 0x41, 0x6d, 0x00, 0xb4, 0x84, 0x6a, 0xe4, 0x9e,
+ 0x27, 0xb7, 0xbb, 0xe6, 0x6b, 0xe6, 0x6f, 0x6c, 0xdd, 0xc4, 0x58, 0xef,
+ 0x99, 0x48, 0x94, 0xb6, 0xc8, 0x51, 0x6e, 0x01, 0xd5, 0x72, 0xd6, 0x13,
+ 0xd1, 0x2c, 0x71, 0x91, 0x06, 0x97, 0x29, 0xe6, 0x6a, 0x56, 0x90, 0x94,
+ 0x77, 0xc1, 0xa3, 0x67, 0x05, 0x3e, 0x08, 0x73, 0x42, 0xe4, 0x77, 0x10,
+ 0x11, 0x79, 0x34, 0x77, 0x89, 0x12, 0x6a, 0xca, 0x07, 0x44, 0x1f, 0xb6,
+ 0xff, 0x3a, 0x17, 0xc3, 0x04, 0x62, 0x4d, 0x71, 0x9d, 0xd3, 0xc9, 0x5f,
+ 0x4f, 0xe8, 0x30, 0x2d, 0x99, 0xe3, 0xd7, 0xae, 0xf8, 0xda, 0xb9, 0x40,
+ 0x7b, 0xae, 0x87, 0x6c, 0x6e, 0xf0, 0x39, 0x4f, 0xa5, 0x5a, 0xf7, 0x73,
+ 0x57, 0x88, 0xf3, 0xe6, 0x44, 0xd4, 0xcf, 0x61, 0xe5, 0xc6, 0x4e, 0x4b,
+ 0xab, 0xaa, 0xbe, 0x7e, 0xf8, 0x81, 0x65, 0x9c, 0x75, 0xed, 0x49, 0xbe,
+ 0x96, 0x9c, 0x7e, 0xac, 0xd1, 0xe9, 0xd1, 0x5b, 0xa9, 0x13, 0xee, 0xce,
+ 0x42, 0xc6, 0xd0, 0x8b, 0x6b, 0x52, 0xe2, 0x1e, 0xe3, 0x49, 0x0d, 0x03,
+ 0x5e, 0x0c, 0x47, 0x4c, 0x33, 0x4c, 0xe3, 0xb9, 0xf6, 0x75, 0xb6, 0x94,
+ 0xde, 0xd7, 0xf9, 0x9e, 0xab, 0xaa, 0xe9, 0x7a, 0xab, 0xf6, 0xad, 0xdb,
+ 0x93, 0xd6, 0x85, 0xe2, 0x2c, 0x52, 0xe3, 0x89, 0x17, 0xf0, 0x51, 0xdf,
+ 0x9b, 0x5b, 0x69, 0xf0, 0xb9, 0x7e, 0x2b, 0xd3, 0x31, 0x34, 0x85, 0xff,
+ 0x3e, 0x19, 0x6e, 0x51, 0x87, 0xd5, 0x96, 0xbd, 0xb8, 0xb8, 0x19, 0x57,
+ 0x74, 0xc3, 0x71, 0x5a, 0xef, 0x8f, 0x50, 0xc8, 0xb1, 0x1d, 0x34, 0xe2,
+ 0xc9, 0xcf, 0xc9, 0x60, 0x3c, 0xc5, 0xfc, 0x12, 0x54, 0xd9, 0xfe, 0x91,
+ 0x76, 0x9e, 0x9f, 0xf8, 0xd9, 0xed, 0xe1, 0xeb, 0x9c, 0xcf, 0xdb, 0x87,
+ 0xbe, 0x4d, 0xfd, 0x44, 0x14, 0x06, 0xc1, 0xb7, 0x4d, 0xf6, 0x27, 0xb7,
+ 0x9c, 0x74, 0x37, 0xd1, 0x3f, 0x79, 0x3e, 0x87, 0x73, 0xd4, 0x27, 0xc5,
+ 0x4c, 0xd3, 0x91, 0x94, 0x24, 0xff, 0x36, 0x27, 0xa5, 0xe3, 0xa0, 0x25,
+ 0x5f, 0x70, 0xfe, 0x1f, 0x0f, 0x10, 0x6f, 0x05, 0x5f, 0x5a, 0x32, 0x47,
+ 0x5f, 0x73, 0x16, 0x7c, 0x68, 0x29, 0x73, 0x67, 0xde, 0xba, 0x61, 0xf2,
+ 0x25, 0xfb, 0x38, 0xcb, 0x2c, 0x40, 0x7f, 0xd5, 0x8b, 0x4f, 0xea, 0xf8,
+ 0xf1, 0x66, 0xa4, 0x82, 0x3f, 0x31, 0x74, 0x33, 0x89, 0x72, 0x60, 0xdc,
+ 0x9c, 0xdc, 0x37, 0xcd, 0xc9, 0x61, 0x5c, 0x96, 0xd2, 0x4e, 0x53, 0xb1,
+ 0x7c, 0x89, 0x24, 0x9a, 0x4a, 0x80, 0x4b, 0x29, 0x23, 0x94, 0x0b, 0x73,
+ 0x92, 0x59, 0x62, 0x7f, 0x11, 0xa2, 0xa9, 0x98, 0xe5, 0x18, 0x4d, 0x99,
+ 0x44, 0xe0, 0x48, 0x02, 0x77, 0xb8, 0x1f, 0xf5, 0xc1, 0x35, 0xb1, 0xe6,
+ 0xcc, 0x0d, 0xf5, 0x5c, 0x4c, 0x7a, 0x36, 0xc4, 0x73, 0xbe, 0xa3, 0x6c,
+ 0x13, 0xdc, 0x97, 0x96, 0x1d, 0x09, 0x29, 0x74, 0x4b, 0x78, 0x97, 0xa3,
+ 0x5d, 0x59, 0xdd, 0xe6, 0x14, 0x38, 0xa9, 0xf1, 0xfc, 0xdd, 0x1b, 0x2e,
+ 0x6d, 0x82, 0xb2, 0xd5, 0x17, 0x67, 0xfb, 0x6f, 0xcf, 0x5f, 0x8b, 0x69,
+ 0xfc, 0xa2, 0x08, 0xaa, 0x61, 0xab, 0x5f, 0xc1, 0xfc, 0xc7, 0x0e, 0x26,
+ 0xee, 0x4e, 0xea, 0x6d, 0x58, 0x3c, 0xbd, 0x96, 0xca, 0xee, 0xb7, 0xf1,
+ 0xf6, 0xa5, 0xce, 0x36, 0xaf, 0x06, 0x0f, 0x6d, 0xe3, 0x7c, 0xd3, 0x09,
+ 0x42, 0x55, 0x58, 0x93, 0xcd, 0x97, 0xab, 0x37, 0x64, 0x68, 0x7d, 0x88,
+ 0x97, 0xe5, 0xc0, 0x06, 0x63, 0x9f, 0xca, 0xdd, 0xbb, 0x12, 0x8c, 0xf4,
+ 0x80, 0x54, 0xc5, 0x81, 0x56, 0xaa, 0x09, 0x2a, 0xd0, 0x39, 0x73, 0xaa,
+ 0xdc, 0xbd, 0x0a, 0xe5, 0xe7, 0x1a, 0x0f, 0xf3, 0x3e, 0xad, 0xe9, 0x8d,
+ 0x3f, 0xed, 0x6c, 0x76, 0x37, 0x7f, 0xf1, 0x4b, 0x9b, 0xef, 0x1e, 0xbb,
+ 0xe9, 0x66, 0x3e, 0xa5, 0x68, 0xe3, 0x4f, 0xbb, 0x9b, 0x0f, 0xce, 0x28,
+ 0xcc, 0x8a, 0xf4, 0x7d, 0xd2, 0x1b, 0x3c, 0xd8, 0xe4, 0xa5, 0x1c, 0x33,
+ 0x27, 0x33, 0xb9, 0x08, 0x9d, 0x00, 0x6f, 0xb8, 0x01, 0xd8, 0xc1, 0x61,
+ 0xdb, 0x4e, 0x52, 0xf7, 0x8e, 0x37, 0xcd, 0x2e, 0x39, 0xfa, 0xdf, 0x87,
+ 0x21, 0x8c, 0xe4, 0x7c, 0xbd, 0x0e, 0xaf, 0x28, 0x46, 0x07, 0xa8, 0x8a,
+ 0x21, 0xfa, 0xde, 0x7d, 0xa0, 0x6f, 0x3f, 0xbb, 0xc0, 0x2c, 0xc1, 0x5e,
+ 0x6c, 0x0e, 0x83, 0x33, 0x34, 0x6c, 0xed, 0x67, 0xcd, 0x97, 0x59, 0x5f,
+ 0xdd, 0xdf, 0xc5, 0xd1, 0x9b, 0x43, 0x46, 0xcd, 0x7e, 0x75, 0xc4, 0xe0,
+ 0x73, 0xe7, 0x0a, 0xff, 0x68, 0x16, 0x08, 0x87, 0xc8, 0x1b, 0x56, 0x4b,
+ 0x11, 0xf7, 0xae, 0x8b, 0x36, 0x73, 0x9c, 0xc3, 0xed, 0x04, 0x77, 0xad,
+ 0x31, 0xd0, 0x95, 0x65, 0x5a, 0x1e, 0x5d, 0x0e, 0xde, 0x14, 0x13, 0x68,
+ 0xc9, 0x83, 0x73, 0x84, 0x0a, 0xd2, 0x5b, 0xf4, 0xe1, 0xbb, 0xf9, 0xac,
+ 0xf1, 0xf1, 0xb0, 0x23, 0x53, 0x77, 0x6d, 0x55, 0x51, 0x9e, 0xbf, 0x6f,
+ 0x0d, 0x06, 0x3c, 0x98, 0x81, 0x84, 0x75, 0xa9, 0x73, 0xa7, 0x81, 0xcf,
+ 0x61, 0xac, 0x85, 0x16, 0x28, 0x9f, 0xde, 0x4b, 0x20, 0x42, 0xea, 0xc3,
+ 0xc7, 0x7c, 0xf6, 0xe6, 0x15, 0x67, 0x90, 0x79, 0x13, 0x9f, 0x18, 0xf1,
+ 0xd6, 0x42, 0xf0, 0x52, 0x28, 0x52, 0xd9, 0x9d, 0x8f, 0x7f, 0xd2, 0x9a,
+ 0xcd, 0xc5, 0xe2, 0x1e, 0xb3, 0xbc, 0x6b, 0x84, 0x56, 0x74, 0xfa, 0x57,
+ 0xff, 0x2e, 0xef, 0x34, 0xca, 0x50, 0x29, 0xc6, 0x74, 0x40, 0x81, 0xfa,
+ 0x89, 0x56, 0x6d, 0x3a, 0x29, 0x83, 0xeb, 0x4a, 0x87, 0x6d, 0xd5, 0xed,
+ 0x02, 0x60, 0xd3, 0x00, 0x87, 0xb5, 0x39, 0xce, 0x10, 0x04, 0xb6, 0xe0,
+ 0xd4, 0xd7, 0x57, 0x85, 0x73, 0x8e, 0x11, 0xdb, 0x59, 0x34, 0xab, 0x22,
+ 0x67, 0x89, 0x25, 0x79, 0x4b, 0x0e, 0xff, 0xfa, 0x60, 0x1d, 0x75, 0x19,
+ 0xf2, 0x79, 0xc7, 0x64, 0x06, 0xbf, 0x7c, 0x36, 0x91, 0xeb, 0x35, 0xe9,
+ 0x5d, 0x32, 0x10, 0x06, 0xfb, 0xb1, 0x7a, 0x32, 0x00, 0xc1, 0x89, 0x11,
+ 0xe2, 0xa2, 0x0b, 0x82, 0xf9, 0x9a, 0x29, 0x92, 0xa2, 0x54, 0xbb, 0xc8,
+ 0x58, 0x67, 0x24, 0x17, 0xab, 0x24, 0x33, 0xd2, 0xe5, 0x62, 0x82, 0xa0,
+ 0x0c, 0x09, 0x47, 0xfd, 0x77, 0x06, 0xc5, 0x2e, 0xef, 0x93, 0x9d, 0xdd,
+ 0x7e, 0xb2, 0xbb, 0xbd, 0xb3, 0xdb, 0x31, 0x87, 0xde, 0xbf, 0x73, 0x50,
+ 0xd4, 0x2e, 0xbe, 0xee, 0x7d, 0xec, 0x2c, 0x7c, 0x3e, 0x03, 0x6e, 0x12,
+ 0xcd, 0xfc, 0x25, 0xe6, 0xc3, 0xfe, 0x59, 0x00, 0x31, 0xa3, 0x54, 0x32,
+ 0xe0, 0xec, 0x70, 0x6d, 0x89, 0x91, 0xd0, 0x4a, 0x6c, 0xba, 0xd2, 0x61,
+ 0x13, 0x54, 0xd2, 0x91, 0x6a, 0xb5, 0x88, 0x7c, 0x71, 0x96, 0xd2, 0xb4,
+ 0x44, 0xfd, 0xd0, 0xe6, 0x1e, 0xe5, 0xb5, 0x6d, 0x0b, 0x87, 0xd6, 0xf0,
+ 0xde, 0x10, 0xbd, 0xbf, 0x3a, 0x3a, 0xb8, 0x30, 0xbc, 0xc3, 0x4b, 0x16,
+ 0x9e, 0xca, 0xfb, 0x8f, 0x2b, 0xc6, 0xf8, 0xe0, 0x33, 0x93, 0xbd, 0xeb,
+ 0x8c, 0xc4, 0xe8, 0xf9, 0x68, 0x79, 0xb5, 0xf7, 0xd7, 0xb4, 0xbc, 0x2a,
+ 0xe6, 0x8f, 0x3d, 0x3f, 0x41, 0x42, 0xd9, 0x1e, 0x71, 0xa8, 0x9d, 0xe7,
+ 0x3b, 0x4f, 0x90, 0xff, 0x3d, 0xcd, 0x51, 0x10, 0x88, 0x19, 0xc4, 0xfa,
+ 0x6c, 0x5d, 0x00, 0x36, 0x90, 0x26, 0xe1, 0x50, 0x35, 0xe6, 0x93, 0x75,
+ 0xb9, 0xee, 0xd3, 0xf0, 0xd9, 0x89, 0x3e, 0x2b, 0xa9, 0xe7, 0xeb, 0x9a,
+ 0xab, 0xb0, 0xce, 0x69, 0x9a, 0xcb, 0xc5, 0x7a, 0x13, 0x22, 0xfe, 0x91,
+ 0xb9, 0x72, 0x17, 0xae, 0xf6, 0xe4, 0x81, 0x03, 0xbe, 0x47, 0x06, 0x51,
+ 0x99, 0xa5, 0x37, 0xbe, 0x76, 0xb2, 0x47, 0xdf, 0x30, 0x97, 0xc7, 0xd9,
+ 0xeb, 0x03, 0x41, 0x30, 0xb5, 0x7c, 0x29, 0x2c, 0x75, 0xe2, 0x4c, 0x53,
+ 0x9b, 0x3c, 0xca, 0x47, 0xfa, 0xe7, 0xdc, 0x86, 0xbd, 0xc9, 0xe8, 0x23,
+ 0x1e, 0xa2, 0x73, 0x27, 0x60, 0x71, 0xfb, 0xcd, 0xd2, 0x3b, 0xac, 0xa8,
+ 0xa1, 0x7e, 0x88, 0x15, 0x4a, 0xde, 0x90, 0x42, 0xb4, 0xe2, 0x71, 0xe0,
+ 0xa1, 0x59, 0xf9, 0x69, 0xb3, 0xee, 0xd0, 0xb8, 0xb9, 0xc8, 0xeb, 0xab,
+ 0xfd, 0xd3, 0x40, 0xd1, 0x85, 0x22, 0xe9, 0x8d, 0x7a, 0xfc, 0x1c, 0x2b,
+ 0x3a, 0xa8, 0xc3, 0xae, 0xd5, 0x98, 0xfa, 0x5e, 0x45, 0xa9, 0xc1, 0x27,
+ 0x59, 0x36, 0x42, 0x80, 0x7c, 0xa1, 0xf7, 0x09, 0xec, 0x4f, 0xa8, 0x66,
+ 0x30, 0x9d, 0xa4, 0x70, 0x84, 0xea, 0x2d, 0x04, 0x99, 0x0b, 0x6d, 0xe5,
+ 0x1a, 0x0d, 0x45, 0x7b, 0xf3, 0x21, 0xd1, 0x24, 0x0e, 0xcd, 0x56, 0xd1,
+ 0x7a, 0x23, 0x78, 0x8c, 0xb3, 0x92, 0xef, 0x6d, 0x02, 0xc2, 0x9f, 0x69,
+ 0xf0, 0x69, 0x75, 0x43, 0xac, 0x54, 0x1c, 0xf8, 0xd4, 0x7b, 0xae, 0x2e,
+ 0x70, 0x36, 0xfa, 0xe4, 0x12, 0x48, 0xc3, 0xe6, 0x27, 0xe0, 0x20, 0x35,
+ 0x36, 0x4c, 0xae, 0x20, 0xd6, 0x38, 0xa7, 0x55, 0x26, 0xa8, 0x85, 0xc9,
+ 0xc5, 0x5d, 0x21, 0x2a, 0x46, 0x65, 0xe1, 0xb5, 0x12, 0x8a, 0x5a, 0x2d,
+ 0x73, 0x91, 0x22, 0x69, 0xf3, 0xc0, 0x0f, 0x82, 0x2a, 0xb2, 0x3d, 0x67,
+ 0xf9, 0x7a, 0xe5, 0xfc, 0x9e, 0xe7, 0xaf, 0xbe, 0x49, 0x38, 0x9f, 0x9e,
+ 0xfb, 0x38, 0x60, 0x3c, 0x7f, 0x0e, 0x61, 0x98, 0x41, 0xfb, 0xfb, 0x6a,
+ 0xc9, 0xe7, 0xfd, 0xe0, 0x3a, 0x5d, 0xb0, 0x02, 0xb4, 0xb3, 0xcd, 0xe6,
+ 0x92, 0xef, 0x2c, 0x33, 0x8f, 0x0f, 0xaa, 0x55, 0xb9, 0xaf, 0x7a, 0x81,
+ 0x25, 0x65, 0xc2, 0x45, 0xea, 0x59, 0x03, 0x6a, 0x1a, 0x69, 0xe9, 0xfa,
+ 0xac, 0xb6, 0x04, 0xc5, 0xbf, 0x22, 0xd2, 0x28, 0xab, 0xc9, 0xcd, 0xd6,
+ 0x98, 0xfe, 0x79, 0xb2, 0xbd, 0x05, 0x20, 0xcd, 0x1a, 0x36, 0x4d, 0xa6,
+ 0xc9, 0xdd, 0xdd, 0x67, 0xcf, 0xfa, 0x49, 0x8f, 0xad, 0x8c, 0xd6, 0x01,
+ 0x1f, 0x09, 0x3a, 0x59, 0xbd, 0xae, 0x72, 0xba, 0x5b, 0xe5, 0xe5, 0x98,
+ 0xff, 0xc7, 0xaf, 0x59, 0x15, 0xc9, 0x0b, 0xcd, 0xba, 0xc1, 0x3a, 0xcc,
+ 0x43, 0x6c, 0x1c, 0x21, 0x2b, 0xfe, 0xee, 0xc8, 0xd9, 0x91, 0xd8, 0x69,
+ 0xb4, 0xc8, 0x8a, 0x85, 0x79, 0x87, 0x67, 0x5a, 0x1f, 0x04, 0xdd, 0x07,
+ 0x2e, 0x35, 0xf8, 0xf3, 0x25, 0x1c, 0x4e, 0x41, 0x10, 0xaa, 0xe5, 0x68,
+ 0xa0, 0xd9, 0xc0, 0xa2, 0x55, 0xe6, 0x74, 0x72, 0xe9, 0xcf, 0xa9, 0x99,
+ 0xeb, 0x23, 0x8e, 0xfc, 0x65, 0xd2, 0x53, 0xda, 0xe2, 0x1f, 0x43, 0x38,
+ 0x77, 0xb3, 0x31, 0x4f, 0xa3, 0x78, 0xa9, 0x7f, 0xfc, 0xdb, 0xbf, 0x51,
+ 0xb3, 0xff, 0xc6, 0xad, 0xbc, 0xfc, 0x53, 0x55, 0x5f, 0x07, 0xcf, 0xf4,
+ 0x94, 0xe0, 0x8f, 0xbc, 0x6b, 0x1b, 0xe1, 0x6a, 0x80, 0x99, 0x45, 0xd2,
+ 0xda, 0x9b, 0x63, 0xe5, 0xc8, 0xfd, 0x60, 0x7e, 0x39, 0xd2, 0x09, 0xc5,
+ 0x48, 0xea, 0xa2, 0x45, 0xbe, 0x64, 0xb7, 0x73, 0xc6, 0x69, 0xe8, 0x74,
+ 0x91, 0x00, 0x45, 0x70, 0xd3, 0x44, 0x8c, 0xc3, 0xb7, 0xdf, 0x1e, 0x9d,
+ 0x9d, 0xbc, 0x7d, 0x73, 0xf8, 0xf6, 0x22, 0xf9, 0x76, 0xff, 0xec, 0x68,
+ 0xff, 0xcb, 0x63, 0xcd, 0x76, 0xe7, 0x29, 0x70, 0x90, 0x8f, 0xc8, 0xde,
+ 0x2d, 0x14, 0xd8, 0x20, 0x11, 0xa9, 0xb3, 0x76, 0x48, 0xab, 0x2a, 0xf2,
+ 0x7b, 0x85, 0x30, 0x87, 0x26, 0xf2, 0x1e, 0x65, 0x90, 0xfa, 0x2c, 0x7c,
+ 0xbe, 0xb7, 0x8a, 0x48, 0xac, 0x3c, 0xdd, 0x07, 0xf9, 0xd3, 0x1c, 0x7f,
+ 0xc4, 0x54, 0x6a, 0xfc, 0xc9, 0xd7, 0x02, 0x74, 0xc5, 0x35, 0xbe, 0x92,
+ 0x14, 0x7c, 0xab, 0x34, 0x62, 0xaf, 0x62, 0x0f, 0xe5, 0x72, 0xf1, 0x63,
+ 0xd8, 0x3f, 0x3e, 0xf6, 0x5d, 0x3d, 0x5c, 0x84, 0x46, 0xe1, 0x97, 0x24,
+ 0x79, 0x0b, 0x8d, 0xb2, 0x63, 0xf0, 0xaa, 0xf0, 0x78, 0xec, 0xf3, 0xfb,
+ 0x10, 0x7a, 0x9d, 0x3b, 0xa3, 0xed, 0xd8, 0x10, 0xdc, 0x0c, 0xf6, 0x12,
+ 0xd3, 0x01, 0xca, 0xab, 0x9b, 0x7e, 0xb2, 0xfe, 0xa7, 0x75, 0xad, 0x23,
+ 0x0e, 0xb0, 0x60, 0x29, 0x71, 0xb3, 0xe9, 0x07, 0xf5, 0xf6, 0xc4, 0x8f,
+ 0x49, 0x1d, 0x9f, 0x6e, 0x00, 0xee, 0x45, 0xef, 0xb6, 0xae, 0x4c, 0x9e,
+ 0x41, 0xbc, 0xa8, 0x7f, 0x5c, 0xeb, 0x40, 0x38, 0x38, 0x00, 0xa5, 0x51,
+ 0x76, 0x6c, 0x75, 0xbe, 0x0b, 0xad, 0x2d, 0x1d, 0x07, 0x98, 0xd0, 0x98,
+ 0xeb, 0x9c, 0x4d, 0x1d, 0xae, 0x36, 0x97, 0x59, 0x03, 0x69, 0xa9, 0xd9,
+ 0xa6, 0xa7, 0xee, 0xc4, 0x65, 0xa5, 0x1c, 0x14, 0x54, 0xf5, 0x61, 0xcb,
+ 0x4a, 0xdd, 0xc0, 0xc7, 0xc8, 0xf9, 0x00, 0x65, 0x3e, 0x51, 0x8c, 0xc1,
+ 0x4e, 0xaa, 0x18, 0xc2, 0x35, 0x75, 0x76, 0x00, 0x48, 0xf6, 0x39, 0x17,
+ 0x65, 0xf4, 0xa5, 0x34, 0x10, 0x3b, 0x4c, 0x5c, 0xa4, 0xe4, 0x84, 0xbc,
+ 0xb9, 0x0a, 0x21, 0x88, 0xc7, 0x85, 0x8c, 0x9e, 0x5e, 0x15, 0x26, 0x7f,
+ 0xa7, 0xce, 0x69, 0xee, 0x0a, 0x8e, 0x05, 0x32, 0xbd, 0x03, 0x0e, 0x73,
+ 0x26, 0x4b, 0xb8, 0xd7, 0xcd, 0x41, 0xc0, 0xe1, 0x65, 0xbc, 0xe5, 0x56,
+ 0x40, 0xba, 0x0a, 0x52, 0xb3, 0x7d, 0xf6, 0x02, 0xf3, 0x12, 0x09, 0xd2,
+ 0x37, 0x24, 0x2f, 0xa0, 0xa7, 0x59, 0x2a, 0x37, 0x02, 0x1d, 0x31, 0x2c,
+ 0x7e, 0x10, 0x4d, 0x6a, 0xcc, 0x2a, 0x9a, 0x34, 0xdb, 0x35, 0x9d, 0x9e,
+ 0x29, 0x27, 0x90, 0x19, 0x27, 0x4a, 0x93, 0x51, 0x7e, 0x25, 0x90, 0x00,
+ 0x9c, 0x7f, 0xce, 0x54, 0x02, 0x84, 0x37, 0x52, 0xec, 0x79, 0xab, 0x80,
+ 0xdf, 0x06, 0xd9, 0xfd, 0xba, 0x98, 0x86, 0x20, 0x63, 0x36, 0x93, 0x4a,
+ 0x4b, 0xa9, 0x99, 0xe9, 0x13, 0xae, 0x8f, 0x25, 0xaf, 0xa3, 0x45, 0xa3,
+ 0x29, 0x3a, 0xb9, 0xc6, 0xe6, 0xb1, 0x4d, 0x1d, 0x50, 0x89, 0x73, 0x64,
+ 0x02, 0x59, 0x2a, 0x35, 0xd6, 0xc1, 0xe2, 0x96, 0x99, 0x5b, 0xc0, 0x8e,
+ 0xc6, 0x65, 0x1e, 0x37, 0x1c, 0xbc, 0x38, 0xb7, 0x32, 0x16, 0x80, 0x56,
+ 0x26, 0x7a, 0xf1, 0x28, 0x37, 0xeb, 0x01, 0xe9, 0x66, 0x29, 0x74, 0x16,
+ 0xd1, 0x04, 0x0f, 0x9a, 0x56, 0x6a, 0x23, 0x60, 0x3c, 0x73, 0x22, 0x11,
+ 0x79, 0x4c, 0x14, 0x48, 0xfd, 0x6b, 0xe0, 0x4a, 0x99, 0xa9, 0xdf, 0x79,
+ 0xd3, 0xc7, 0x1d, 0x88, 0x14, 0xc0, 0xd4, 0x3a, 0xd6, 0x62, 0x92, 0xf0,
+ 0xd0, 0x73, 0x25, 0x4c, 0xe0, 0x41, 0x35, 0x6c, 0x8f, 0x89, 0xe5, 0xdb,
+ 0x4c, 0xa7, 0x01, 0xbe, 0xb8, 0x98, 0x23, 0xd2, 0x48, 0xf6, 0x60, 0xe7,
+ 0xd0, 0x50, 0x38, 0x80, 0x44, 0xfe, 0x08, 0x16, 0x71, 0x30, 0x11, 0x8d,
+ 0x29, 0x67, 0xe9, 0xac, 0x65, 0xd2, 0x0c, 0x18, 0x9a, 0x79, 0xc7, 0xc3,
+ 0x8b, 0x49, 0xcb, 0x69, 0xe4, 0xe9, 0x4c, 0x64, 0x47, 0x4f, 0x7d, 0xb3,
+ 0x7b, 0x89, 0x3a, 0x5c, 0x5b, 0x3b, 0x78, 0x77, 0x7e, 0x71, 0xf2, 0x26,
+ 0x39, 0x79, 0x77, 0x71, 0xfa, 0xee, 0x42, 0x6f, 0xae, 0x91, 0xc4, 0x6c,
+ 0x4b, 0xe4, 0x82, 0x08, 0x01, 0xb6, 0x99, 0x33, 0xf5, 0xef, 0x23, 0xc4,
+ 0xa4, 0x00, 0xaa, 0x60, 0x00, 0x28, 0xe4, 0x72, 0xb2, 0x00, 0xb5, 0x25,
+ 0x70, 0xc5, 0x58, 0xf2, 0x3b, 0x5a, 0x72, 0xe4, 0xd3, 0xc2, 0x90, 0x67,
+ 0x29, 0x5e, 0x50, 0x7b, 0xec, 0xac, 0x35, 0x4b, 0xd5, 0xdc, 0x37, 0xd5,
+ 0x18, 0x38, 0xe7, 0x9b, 0x00, 0x4e, 0x61, 0xc5, 0x4c, 0xb1, 0xed, 0x78,
+ 0xd3, 0x4f, 0x18, 0xd2, 0xa9, 0xf5, 0x36, 0xcd, 0x00, 0x6d, 0x51, 0xb5,
+ 0x08, 0x35, 0x6a, 0x26, 0x16, 0x86, 0xf9, 0x8d, 0x75, 0x41, 0x33, 0xbc,
+ 0x76, 0x11, 0xf1, 0x1c, 0x45, 0x84, 0x48, 0x40, 0x09, 0xa0, 0xe0, 0x90,
+ 0x3b, 0xd1, 0x18, 0x48, 0x0f, 0x64, 0x97, 0x45, 0x74, 0xcb, 0xde, 0x25,
+ 0xeb, 0xdf, 0x65, 0x61, 0x83, 0x7f, 0xf8, 0x0f, 0x4e, 0xdb, 0x7c, 0x6f,
+ 0x9f, 0xfc, 0x43, 0xba, 0xfc, 0x69, 0xbe, 0x8e, 0x00, 0xba, 0xa6, 0xa7,
+ 0xfc, 0x9b, 0xc3, 0xb3, 0x2f, 0x0f, 0xcf, 0x4e, 0xce, 0xc1, 0x0f, 0xcc,
+ 0xdc, 0x15, 0xd3, 0xfa, 0x4d, 0x56, 0x8e, 0xb2, 0xb2, 0xd0, 0x32, 0x5a,
+ 0xf6, 0xd7, 0xb3, 0xad, 0xaf, 0xce, 0xcf, 0xf7, 0x4f, 0x8f, 0x5c, 0xa1,
+ 0x1a, 0x97, 0x40, 0x26, 0x2a, 0xd2, 0x5c, 0x52, 0x1c, 0x79, 0xfe, 0xf6,
+ 0x0a, 0xd1, 0xc5, 0xf8, 0x46, 0x02, 0x8b, 0x23, 0x9f, 0xb4, 0xd9, 0xd5,
+ 0xd9, 0x19, 0xad, 0x79, 0x85, 0xdc, 0xb0, 0x01, 0x41, 0x85, 0x60, 0xf3,
+ 0x82, 0x0a, 0xcf, 0xbe, 0x80, 0xbe, 0x8b, 0xc0, 0xbb, 0x29, 0x47, 0x03,
+ 0xa2, 0xf6, 0x1b, 0xab, 0xdb, 0x2c, 0x79, 0x10, 0xc4, 0x2a, 0x25, 0x40,
+ 0xda, 0xdb, 0x1a, 0x48, 0xa6, 0xcb, 0xeb, 0xad, 0x1b, 0x3e, 0x1f, 0x5c,
+ 0x44, 0x65, 0x3a, 0x14, 0xee, 0x2e, 0x07, 0xca, 0xa2, 0x5e, 0x99, 0xc5,
+ 0x3e, 0x04, 0x4e, 0x41, 0xbd, 0xb9, 0xca, 0x87, 0x62, 0xef, 0xa2, 0x4f,
+ 0x9e, 0x3a, 0x94, 0xae, 0xb0, 0x8c, 0xf8, 0x25, 0x09, 0xe0, 0x8b, 0xbb,
+ 0x89, 0x5e, 0x22, 0x00, 0xa9, 0x9e, 0x8b, 0x7b, 0x42, 0x78, 0x78, 0xdb,
+ 0x41, 0xc5, 0xd5, 0x19, 0x91, 0xb0, 0xa1, 0xe1, 0xe8, 0xc9, 0x68, 0x9a,
+ 0xce, 0x6f, 0x70, 0x9b, 0xe1, 0x7e, 0x62, 0x95, 0xd3, 0xb0, 0xa7, 0xb8,
+ 0x6a, 0x26, 0xfc, 0x91, 0x0a, 0x07, 0x01, 0x21, 0x70, 0xca, 0xcc, 0xed,
+ 0x5e, 0x6c, 0xf9, 0x0e, 0x62, 0x2b, 0xf0, 0xbc, 0xe1, 0x38, 0xf9, 0x45,
+ 0x60, 0xd3, 0xd1, 0xe1, 0x31, 0x5d, 0x4c, 0x2e, 0xc9, 0x04, 0x2a, 0x7a,
+ 0x36, 0x65, 0x53, 0xb0, 0x45, 0x04, 0x49, 0x5e, 0x65, 0x0e, 0x46, 0x26,
+ 0xdc, 0xc3, 0xf0, 0xd3, 0xe1, 0x3f, 0x02, 0xb9, 0x20, 0x7d, 0xb4, 0x72,
+ 0x55, 0x46, 0x94, 0x73, 0x0b, 0x13, 0x03, 0x38, 0xa8, 0x2f, 0x3a, 0x12,
+ 0x96, 0xbf, 0xd1, 0x70, 0xbb, 0x03, 0x1f, 0x0f, 0xe4, 0xea, 0x81, 0xc9,
+ 0x20, 0xbc, 0x58, 0xea, 0x3c, 0x8c, 0x8d, 0xec, 0x96, 0x95, 0xdb, 0x24,
+ 0xaf, 0x77, 0x19, 0x01, 0x04, 0xd3, 0x6c, 0xa2, 0xfe, 0x0e, 0x07, 0x07,
+ 0x64, 0x21, 0xcb, 0xcd, 0x30, 0x61, 0x1b, 0xb8, 0x44, 0x03, 0xb0, 0xf1,
+ 0x76, 0x5a, 0x9b, 0xd3, 0x10, 0x21, 0xae, 0x7a, 0x03, 0xd7, 0x13, 0xb0,
+ 0x9c, 0xb2, 0x81, 0x54, 0x1b, 0x46, 0xe7, 0x0a, 0x62, 0x05, 0x6c, 0x83,
+ 0x92, 0xaf, 0x01, 0x2d, 0xc6, 0xc9, 0xb7, 0x83, 0xb7, 0x7c, 0x5d, 0x14,
+ 0x83, 0xd1, 0x12, 0x7a, 0x59, 0x50, 0xa7, 0x4b, 0x72, 0x38, 0x49, 0x5d,
+ 0x13, 0x30, 0x35, 0x7c, 0xcf, 0xfe, 0x28, 0x64, 0xc7, 0x8b, 0x8b, 0x0a,
+ 0xe9, 0x92, 0x4d, 0xa0, 0x1d, 0x07, 0xaf, 0x22, 0x39, 0x08, 0xbe, 0x80,
+ 0xb0, 0x9b, 0xa0, 0x6e, 0xb2, 0x8b, 0x16, 0x9c, 0x6b, 0x95, 0x57, 0x78,
+ 0x56, 0x9a, 0x11, 0xd7, 0xb5, 0xc3, 0xbb, 0xbf, 0x80, 0x98, 0x90, 0x29,
+ 0x0a, 0xbc, 0x85, 0x52, 0x5b, 0xe2, 0xc6, 0x6d, 0xcd, 0x95, 0xa5, 0x04,
+ 0x19, 0x22, 0x9d, 0x4a, 0x99, 0x8e, 0x95, 0x57, 0x89, 0x1c, 0xa6, 0xfa,
+ 0xe2, 0xe2, 0x87, 0xd3, 0xc3, 0x97, 0xf6, 0xe6, 0x43, 0x7b, 0x26, 0x80,
+ 0x69, 0x88, 0x99, 0xc9, 0x14, 0xa0, 0x34, 0xa8, 0x8d, 0x4d, 0x44, 0x36,
+ 0xa8, 0xcd, 0x97, 0x2f, 0xdd, 0x0c, 0x92, 0xef, 0x5f, 0x1d, 0x9d, 0x9f,
+ 0x1e, 0x9f, 0x1c, 0xbc, 0x7c, 0xf1, 0xbd, 0xb1, 0xe4, 0xcf, 0xd9, 0x45,
+ 0x20, 0x72, 0x9a, 0xfb, 0xcc, 0x03, 0x3a, 0xe8, 0x7b, 0x6f, 0x0f, 0xbf,
+ 0x7b, 0x4f, 0xda, 0xc1, 0x4b, 0x86, 0x75, 0xef, 0xdf, 0xa6, 0x53, 0x7d,
+ 0x89, 0x55, 0xac, 0x0e, 0xd9, 0x6e, 0xd8, 0x44, 0xe0, 0x6b, 0x2f, 0xac,
+ 0x2b, 0x4f, 0xea, 0xf3, 0x14, 0xee, 0x2d, 0x8c, 0x2e, 0xa8, 0x44, 0x95,
+ 0x36, 0xd2, 0x6a, 0x3b, 0x8a, 0x09, 0xfb, 0xeb, 0x7f, 0xbd, 0x96, 0x98,
+ 0x4a, 0x0e, 0x21, 0x08, 0x3d, 0xf3, 0x88, 0x5b, 0xd5, 0x6f, 0x7c, 0x3c,
+ 0xaf, 0xc2, 0x27, 0x97, 0x1c, 0xc0, 0xe2, 0xf0, 0x27, 0xb5, 0x42, 0x35,
+ 0x7c, 0xde, 0x0a, 0x52, 0xa9, 0xc8, 0x4b, 0x1c, 0x42, 0x6b, 0xd1, 0xf4,
+ 0xc6, 0xc7, 0x54, 0x84, 0x71, 0x63, 0x49, 0xad, 0x56, 0x2e, 0x0a, 0xf2,
+ 0x9c, 0x1e, 0x9e, 0x9d, 0x1f, 0x9d, 0x5f, 0xb0, 0x1a, 0xa5, 0x85, 0x1b,
+ 0xd5, 0x06, 0x6d, 0x55, 0x35, 0x81, 0xd9, 0xd0, 0xc4, 0x1b, 0x0d, 0x8b,
+ 0x85, 0x34, 0x4e, 0xb4, 0x63, 0x73, 0xcd, 0x24, 0x4e, 0xbe, 0x01, 0x24,
+ 0x33, 0x94, 0x05, 0x51, 0x41, 0xcd, 0x4d, 0x2f, 0xed, 0x00, 0x17, 0x4a,
+ 0x1a, 0xad, 0x9a, 0x19, 0xa8, 0x77, 0x83, 0xdd, 0x99, 0xe6, 0xa3, 0xa0,
+ 0x52, 0x76, 0xd3, 0x85, 0xcc, 0xd1, 0x09, 0x8a, 0xd0, 0x11, 0x1e, 0x21,
+ 0xb3, 0x87, 0xfb, 0xcc, 0x68, 0xad, 0xe5, 0xab, 0xd7, 0x9a, 0x66, 0x35,
+ 0x86, 0xf9, 0xab, 0x4e, 0x51, 0x85, 0x72, 0x12, 0xd6, 0x2c, 0xc7, 0xa7,
+ 0x41, 0x10, 0xaa, 0x82, 0x3e, 0x01, 0xaf, 0x56, 0x59, 0x36, 0x33, 0xe5,
+ 0x5c, 0x32, 0xd1, 0xd8, 0xd0, 0x42, 0x52, 0x0b, 0x32, 0xeb, 0x11, 0x27,
+ 0xa4, 0x33, 0x8b, 0x44, 0x10, 0x15, 0x1d, 0xaf, 0x38, 0x85, 0x0d, 0xc8,
+ 0x5a, 0x13, 0x96, 0xb7, 0x60, 0x81, 0x0b, 0x3b, 0xb3, 0xeb, 0x94, 0x57,
+ 0x70, 0xb4, 0x0c, 0x2b, 0xc1, 0xb9, 0xd1, 0x4b, 0x51, 0x12, 0x2c, 0x3c,
+ 0x22, 0x24, 0xd3, 0x12, 0xd0, 0x95, 0xb5, 0x22, 0xc5, 0x9b, 0xe2, 0xa3,
+ 0xe1, 0x8e, 0xc3, 0x26, 0x88, 0x8f, 0xd1, 0xa5, 0x55, 0x2b, 0x7d, 0x68,
+ 0x45, 0x83, 0xd2, 0x91, 0x4c, 0xbe, 0x65, 0x66, 0x71, 0x4b, 0x62, 0x66,
+ 0xa8, 0xd8, 0xe1, 0x30, 0x1f, 0xbb, 0xcb, 0x98, 0x93, 0x8e, 0xd8, 0xbf,
+ 0x58, 0x2a, 0x40, 0x12, 0xb1, 0x3f, 0xb6, 0x2c, 0xa3, 0xde, 0x24, 0x0a,
+ 0x31, 0xb3, 0xd7, 0xcd, 0xc0, 0xf3, 0x7c, 0x18, 0xb7, 0x2c, 0x77, 0x40,
+ 0x56, 0x62, 0x5e, 0xbf, 0xd7, 0x0e, 0x5d, 0x82, 0xbc, 0x6d, 0x56, 0x5f,
+ 0xf2, 0xad, 0x52, 0xa4, 0xf7, 0x98, 0x5d, 0x37, 0x48, 0x13, 0xad, 0x34,
+ 0xf9, 0xd6, 0xb9, 0xa7, 0xc1, 0xf0, 0x1a, 0x45, 0x77, 0x79, 0x76, 0x0d,
+ 0xd7, 0x20, 0xc9, 0x97, 0x0b, 0x54, 0x50, 0x1a, 0x2b, 0x84, 0x3c, 0x82,
+ 0x76, 0x5d, 0x83, 0x76, 0x89, 0xf8, 0xc5, 0xa2, 0x55, 0x7d, 0xf3, 0xee,
+ 0xf8, 0xe2, 0xe8, 0x34, 0x74, 0x3f, 0x26, 0xdf, 0x1d, 0x5d, 0x7c, 0x4d,
+ 0x52, 0xfb, 0xf9, 0xd1, 0xdb, 0xaf, 0x8e, 0xd9, 0xc7, 0xf3, 0xe6, 0xcd,
+ 0xfe, 0x5b, 0x46, 0x17, 0x78, 0x8b, 0xc8, 0xc6, 0x7d, 0x28, 0x0e, 0xcc,
+ 0x8e, 0x68, 0x89, 0x99, 0x76, 0x38, 0xef, 0xbc, 0x1f, 0xbb, 0x1a, 0x5a,
+ 0xc7, 0x4f, 0x8a, 0x2a, 0xcf, 0x9b, 0x8b, 0xb4, 0x86, 0x12, 0xd9, 0xd0,
+ 0x0c, 0xee, 0xd9, 0xb0, 0x83, 0x63, 0xcb, 0xca, 0x16, 0x2f, 0x74, 0x1b,
+ 0x3b, 0x1e, 0x39, 0x8e, 0x22, 0xa1, 0xc3, 0x8d, 0x2e, 0x77, 0xb7, 0x77,
+ 0x5f, 0x60, 0x47, 0x1d, 0xf2, 0x2c, 0xf4, 0x18, 0x92, 0x99, 0xe6, 0xaa,
+ 0xd7, 0xc8, 0x7d, 0xd9, 0xcc, 0x39, 0xa0, 0x1e, 0x31, 0x24, 0xc4, 0x11,
+ 0x14, 0xde, 0x22, 0xc8, 0x1a, 0x27, 0x2b, 0xcd, 0x67, 0xc7, 0xe1, 0x85,
+ 0x3a, 0x6c, 0x94, 0x1c, 0xb3, 0xf0, 0xc0, 0xab, 0x22, 0xf3, 0x27, 0x77,
+ 0x70, 0x62, 0xcd, 0x98, 0xf9, 0x17, 0x6a, 0x98, 0x5c, 0x2e, 0x03, 0xe6,
+ 0x6b, 0x03, 0xda, 0x92, 0x4d, 0x57, 0x66, 0x48, 0xcd, 0x67, 0x7b, 0x22,
+ 0x56, 0x3a, 0x6c, 0x65, 0xab, 0xce, 0x47, 0xcd, 0x59, 0xcb, 0x1a, 0x8a,
+ 0x82, 0x78, 0x6c, 0x4d, 0x6b, 0xd2, 0x39, 0x83, 0x5b, 0xda, 0x63, 0x8d,
+ 0xac, 0x6c, 0xb9, 0xef, 0x4e, 0xcc, 0xb4, 0x67, 0x69, 0x6d, 0xae, 0xee,
+ 0x9b, 0xf7, 0x9c, 0xa2, 0xb2, 0x5a, 0x51, 0x0c, 0xb3, 0x0f, 0x19, 0x3b,
+ 0x39, 0xf9, 0xd7, 0xbf, 0x2e, 0xae, 0xc2, 0x8c, 0x37, 0xa9, 0x2b, 0xbd,
+ 0xe8, 0xda, 0x59, 0x05, 0x72, 0x16, 0xb1, 0x48, 0x6b, 0xd9, 0x35, 0x46,
+ 0xa0, 0x05, 0xea, 0x76, 0x56, 0x75, 0xa8, 0xdf, 0xef, 0xc6, 0xdf, 0xef,
+ 0x8a, 0xd9, 0xf1, 0xe8, 0xf4, 0xf6, 0x13, 0x07, 0x80, 0x2a, 0x79, 0xdc,
+ 0xa1, 0xf8, 0x66, 0x42, 0x01, 0x53, 0x18, 0x3f, 0x2a, 0x77, 0x4e, 0x2a,
+ 0x3c, 0x51, 0x6c, 0xff, 0x1c, 0x41, 0xb6, 0x2c, 0x91, 0x9f, 0x8a, 0x47,
+ 0x60, 0x26, 0x96, 0xb0, 0x5f, 0x04, 0xd9, 0x81, 0x4f, 0xf1, 0x75, 0x45,
+ 0x0d, 0xd2, 0xf7, 0x4f, 0x5d, 0x2c, 0xbe, 0xe7, 0x69, 0xa8, 0xd1, 0xa6,
+ 0xd9, 0x50, 0x83, 0x7c, 0x71, 0x6b, 0x45, 0x7e, 0xe9, 0xd7, 0x4f, 0x5c,
+ 0x7d, 0x9e, 0xaa, 0xe1, 0xa3, 0x6a, 0x80, 0x0d, 0x1b, 0xf3, 0xc7, 0xe0,
+ 0x10, 0x16, 0xc9, 0x9c, 0xc1, 0x2b, 0x19, 0xad, 0x71, 0x65, 0xcd, 0x80,
+ 0xec, 0xa0, 0x4a, 0x29, 0x0c, 0xcc, 0x53, 0x64, 0xc6, 0x82, 0x1f, 0x05,
+ 0xcc, 0x25, 0x04, 0xfa, 0xd7, 0x5d, 0xff, 0x71, 0x77, 0x7b, 0x7b, 0x67,
+ 0x6f, 0xe7, 0xb3, 0xe7, 0xdb, 0x7b, 0x3b, 0x3b, 0x3b, 0xbb, 0x7b, 0x3b,
+ 0x7b, 0x7b, 0xbb, 0xdb, 0x3f, 0x6f, 0xb1, 0xfd, 0xe8, 0x36, 0xcf, 0xee,
+ 0xcc, 0x31, 0x25, 0xb9, 0x78, 0x20, 0x6b, 0x29, 0xd6, 0xae, 0x1a, 0xbc,
+ 0xea, 0xb9, 0x26, 0xf9, 0x38, 0x54, 0x09, 0x09, 0x99, 0x17, 0x04, 0xb9,
+ 0x85, 0xcf, 0x34, 0xc5, 0x19, 0x0c, 0x50, 0xae, 0x31, 0xaa, 0xbf, 0x2d,
+ 0x79, 0xa6, 0x23, 0x16, 0x07, 0x20, 0xd3, 0x54, 0x2e, 0xaf, 0xef, 0x6a,
+ 0x5a, 0x8c, 0x46, 0xc8, 0x5c, 0x70, 0xa9, 0xad, 0xc3, 0x84, 0xa1, 0x54,
+ 0x6f, 0x84, 0x24, 0xd4, 0x73, 0x80, 0xa0, 0x42, 0x39, 0xe8, 0x7e, 0x75,
+ 0x44, 0xf0, 0xd2, 0x40, 0xea, 0x71, 0xc1, 0x65, 0x05, 0x26, 0xcc, 0x94,
+ 0x68, 0x91, 0x4a, 0x97, 0xf2, 0x92, 0x5c, 0x66, 0x9f, 0x6d, 0xef, 0xed,
+ 0x71, 0xe5, 0x8f, 0x3f, 0xec, 0xf4, 0x35, 0x1e, 0x34, 0x0c, 0x72, 0xef,
+ 0xbb, 0xeb, 0x49, 0xda, 0x60, 0xf5, 0x23, 0x9c, 0xe7, 0x7c, 0x39, 0xcb,
+ 0x4a, 0x52, 0x44, 0xb8, 0x76, 0x2c, 0x02, 0x22, 0x61, 0xf4, 0x16, 0x88,
+ 0x35, 0x00, 0xb2, 0xb4, 0x82, 0xf1, 0xf9, 0x46, 0x10, 0xa8, 0x58, 0x97,
+ 0x84, 0x2e, 0x70, 0x41, 0x7e, 0x8a, 0xae, 0x6d, 0x54, 0xbf, 0x81, 0x1d,
+ 0x5f, 0x52, 0x59, 0x24, 0x89, 0x47, 0xee, 0x5b, 0xe5, 0x0c, 0x38, 0x5c,
+ 0x73, 0xa9, 0x68, 0xca, 0x8f, 0x8b, 0x0c, 0x0f, 0x8b, 0x49, 0x20, 0xdc,
+ 0x6a, 0xfe, 0xce, 0x8f, 0xc1, 0x64, 0x77, 0x9f, 0xed, 0xfc, 0x2c, 0xe1,
+ 0x8a, 0x7c, 0x20, 0xfc, 0xaa, 0x69, 0x35, 0xb8, 0x49, 0x98, 0xa1, 0x61,
+ 0x84, 0xb4, 0x91, 0x0d, 0xaf, 0x86, 0x26, 0x55, 0xa8, 0xb5, 0xb1, 0x1f,
+ 0x06, 0x8d, 0x0b, 0x4c, 0xb9, 0xd4, 0x29, 0x86, 0x9e, 0x66, 0x06, 0x25,
+ 0x33, 0x08, 0x8b, 0x31, 0xb3, 0x51, 0xd6, 0x87, 0x6e, 0x98, 0xc3, 0x8b,
+ 0x7d, 0xba, 0x3c, 0xbe, 0x89, 0x15, 0xfd, 0x37, 0x19, 0x69, 0xe5, 0xbc,
+ 0xd9, 0x1b, 0x38, 0x0f, 0xb7, 0x0e, 0x1c, 0x98, 0xd7, 0xee, 0x69, 0xb2,
+ 0xc1, 0x3e, 0x8b, 0x67, 0x9f, 0x3d, 0x7b, 0xba, 0x29, 0x95, 0x18, 0xe4,
+ 0xb5, 0x8c, 0xf3, 0x43, 0x60, 0x95, 0x54, 0x70, 0x1a, 0x36, 0x27, 0x3b,
+ 0x96, 0xf4, 0xee, 0xec, 0x48, 0x8e, 0xf4, 0xb5, 0x60, 0x08, 0x88, 0xd2,
+ 0xdb, 0x06, 0x93, 0xc3, 0x7d, 0x1b, 0x08, 0x19, 0xb3, 0x9c, 0x81, 0x0e,
+ 0x91, 0x7b, 0xcd, 0x17, 0xa3, 0xcb, 0xfd, 0xc7, 0x0d, 0x4b, 0x07, 0xb4,
+ 0x40, 0x7d, 0x42, 0x2d, 0xfb, 0x84, 0xc1, 0x00, 0x19, 0x91, 0x81, 0x59,
+ 0x95, 0xce, 0x9c, 0x06, 0xc6, 0x7a, 0x90, 0xf0, 0x23, 0xe1, 0xfe, 0x2d,
+ 0x30, 0xee, 0x4d, 0xf1, 0xf8, 0x43, 0x28, 0x64, 0x32, 0xa4, 0x07, 0x2d,
+ 0x74, 0x94, 0x47, 0xdc, 0xc8, 0x46, 0xf3, 0xd2, 0x66, 0x80, 0xe9, 0x64,
+ 0x70, 0x2e, 0xca, 0x8a, 0xdc, 0x12, 0x8a, 0x3b, 0xbb, 0x86, 0x65, 0x31,
+ 0x6f, 0x98, 0x7c, 0x34, 0x97, 0x1e, 0x39, 0xed, 0x08, 0x39, 0x9e, 0xd1,
+ 0x75, 0x54, 0xde, 0xab, 0x84, 0x0d, 0x35, 0xc1, 0x95, 0x53, 0x6b, 0x05,
+ 0x04, 0x08, 0x6a, 0x44, 0x18, 0x49, 0xef, 0x40, 0x53, 0x4c, 0x69, 0x6e,
+ 0x0c, 0xa0, 0xc1, 0xf6, 0x07, 0x33, 0xfb, 0x2a, 0x88, 0x97, 0x09, 0xd3,
+ 0xcb, 0xec, 0x77, 0x7b, 0x2e, 0x08, 0xa5, 0x4c, 0xdb, 0x13, 0x5b, 0x31,
+ 0x34, 0x01, 0xd4, 0x44, 0xf8, 0x94, 0xd3, 0x7e, 0x36, 0x30, 0x92, 0xad,
+ 0xad, 0xcd, 0x15, 0xa3, 0xd1, 0xaf, 0xbb, 0x7a, 0x3f, 0x05, 0x26, 0x49,
+ 0x90, 0xd1, 0x49, 0x7b, 0xde, 0x6c, 0x9c, 0x97, 0x36, 0xaf, 0x78, 0x27,
+ 0x27, 0x1a, 0x17, 0x2b, 0x66, 0x54, 0x53, 0xaf, 0x64, 0xf0, 0xc6, 0xbc,
+ 0x9a, 0x93, 0xd0, 0x50, 0x1c, 0xc3, 0x88, 0x92, 0xa2, 0xd2, 0xe2, 0xde,
+ 0x1c, 0x26, 0xfb, 0x4c, 0x0d, 0x8d, 0x8e, 0x83, 0x21, 0x9b, 0x3d, 0xd7,
+ 0x60, 0xcf, 0x4d, 0x88, 0x75, 0xe6, 0xbc, 0x7e, 0xf0, 0xa5, 0x89, 0x79,
+ 0x06, 0x09, 0xe0, 0x8c, 0xbd, 0xa3, 0x4c, 0xe0, 0x4f, 0x1c, 0xe7, 0x0c,
+ 0xe0, 0x8c, 0xf3, 0x79, 0xa3, 0x4e, 0xa8, 0x36, 0x02, 0x47, 0xb7, 0x9b,
+ 0x04, 0x90, 0x12, 0x4b, 0x43, 0xe0, 0x0d, 0x6b, 0x07, 0x02, 0x81, 0x40,
+ 0x83, 0xda, 0x45, 0xb0, 0x76, 0x44, 0x2c, 0xde, 0xd6, 0x91, 0x90, 0x57,
+ 0x63, 0x3d, 0xfa, 0x42, 0xf1, 0x12, 0xc4, 0x20, 0xf1, 0xb6, 0x74, 0x48,
+ 0x98, 0x61, 0xec, 0x1f, 0x1d, 0x73, 0x54, 0xdc, 0x31, 0xa9, 0x78, 0xe7,
+ 0x26, 0x2a, 0x21, 0x4a, 0x14, 0xf1, 0x7a, 0xf3, 0x9c, 0xc5, 0xf5, 0xbe,
+ 0xab, 0x37, 0x62, 0xc9, 0x52, 0xd0, 0x5b, 0xd8, 0xb9, 0x27, 0xaa, 0xbf,
+ 0x62, 0x04, 0xd2, 0x6e, 0x91, 0xbc, 0x54, 0x89, 0xd1, 0x16, 0xf8, 0xbb,
+ 0x8c, 0x4c, 0x0f, 0x47, 0x2a, 0x54, 0x6a, 0x61, 0xd3, 0x28, 0x77, 0x54,
+ 0x66, 0xd3, 0xec, 0x56, 0xad, 0xab, 0x82, 0x66, 0xfa, 0x95, 0xfa, 0x30,
+ 0xa5, 0xde, 0x69, 0xed, 0x5d, 0xb1, 0x0d, 0x37, 0x29, 0xf7, 0xb9, 0x25,
+ 0x98, 0x30, 0x1e, 0xea, 0x83, 0xbb, 0xf7, 0x10, 0xfc, 0xe6, 0x32, 0xe6,
+ 0xf7, 0x06, 0xac, 0xe3, 0x6a, 0x68, 0xeb, 0xbb, 0x4a, 0xd1, 0x1c, 0xda,
+ 0xb1, 0xe2, 0x62, 0x2b, 0xb4, 0x8a, 0x79, 0x62, 0x7c, 0xef, 0x1b, 0x48,
+ 0xb2, 0x78, 0x0c, 0xf8, 0xe2, 0xe9, 0xb3, 0xa1, 0x56, 0x2a, 0xc0, 0x93,
+ 0x42, 0xc6, 0xe5, 0x30, 0xfa, 0x92, 0x38, 0x0a, 0xda, 0x28, 0xa6, 0xf4,
+ 0x27, 0xc2, 0xa9, 0x24, 0xc0, 0x92, 0x9e, 0x65, 0x90, 0xd7, 0x20, 0xa2,
+ 0x95, 0xfe, 0x94, 0x64, 0x08, 0xfd, 0x0b, 0x4d, 0x95, 0x4b, 0x60, 0x09,
+ 0xf7, 0xe5, 0x32, 0x64, 0xa7, 0x63, 0x3d, 0x1e, 0xba, 0xd1, 0xab, 0xcf,
+ 0x5f, 0xc6, 0xff, 0xca, 0x5c, 0xd2, 0x26, 0x86, 0x14, 0xa5, 0xad, 0xae,
+ 0xec, 0xc2, 0x48, 0x0a, 0x1c, 0x7e, 0xb9, 0x64, 0x67, 0x98, 0x2b, 0xdf,
+ 0xc3, 0xa3, 0x98, 0xf1, 0x55, 0x94, 0x49, 0x2d, 0x51, 0xd7, 0x38, 0x6b,
+ 0x74, 0x4b, 0xda, 0x5d, 0x69, 0xfd, 0xb8, 0xb8, 0xe3, 0x42, 0xa8, 0x97,
+ 0x97, 0xf9, 0x98, 0xab, 0xdb, 0x78, 0xcc, 0x60, 0x66, 0xf1, 0xf2, 0xe0,
+ 0xcc, 0x6a, 0x2f, 0xd1, 0xdc, 0x92, 0xc5, 0x72, 0x34, 0xa5, 0xbb, 0xda,
+ 0xa2, 0xd9, 0xe9, 0x50, 0x61, 0x95, 0x48, 0xd9, 0x42, 0x73, 0xe2, 0xcb,
+ 0x87, 0xbe, 0xd9, 0x8a, 0xa0, 0xd6, 0xea, 0xf0, 0x2c, 0x81, 0xcf, 0x50,
+ 0x11, 0x96, 0xc3, 0x8c, 0x67, 0xc5, 0xdc, 0x92, 0x61, 0x96, 0x95, 0x80,
+ 0x49, 0x5a, 0x29, 0xf9, 0x35, 0xf1, 0x4c, 0xe4, 0x53, 0x85, 0x6c, 0x57,
+ 0xcd, 0x1c, 0x6f, 0x84, 0x93, 0x99, 0x0c, 0x16, 0xd7, 0x0b, 0xdb, 0x69,
+ 0x93, 0x87, 0x44, 0x58, 0xd2, 0xf4, 0x0b, 0x9c, 0xbc, 0xd3, 0xaf, 0x4f,
+ 0x87, 0xc9, 0x21, 0xb7, 0x24, 0x63, 0x52, 0x39, 0x17, 0x26, 0x1a, 0xfa,
+ 0x8e, 0x26, 0x7b, 0xc5, 0xf7, 0xd7, 0x49, 0xc9, 0x7f, 0xa1, 0x35, 0xfd,
+ 0x52, 0xac, 0xb2, 0xf8, 0xb6, 0xd9, 0x2b, 0x35, 0x64, 0x41, 0xd6, 0xa7,
+ 0xf8, 0x9d, 0x8e, 0x0a, 0x49, 0x5f, 0x6e, 0x9b, 0x7c, 0x0f, 0x45, 0xd9,
+ 0x80, 0xde, 0x91, 0x37, 0x13, 0x12, 0xca, 0x20, 0x5a, 0x2d, 0xee, 0xb1,
+ 0x7f, 0x01, 0x6f, 0x14, 0xf1, 0x53, 0x1a, 0x08, 0x48, 0x4b, 0xc9, 0xcf,
+ 0x85, 0xef, 0xc9, 0xb9, 0x2a, 0x05, 0x74, 0xa6, 0xcc, 0x34, 0xd8, 0xb1,
+ 0x50, 0x2f, 0xa9, 0x18, 0x34, 0xaa, 0xac, 0x75, 0x5c, 0x03, 0xf5, 0xcd,
+ 0xbe, 0x60, 0xad, 0x9b, 0xc7, 0x42, 0x42, 0x0b, 0x6d, 0xc1, 0x70, 0xed,
+ 0xff, 0x06, 0x25, 0xb4, 0xdf, 0xa4, 0xae, 0x85, 0x02, 0x00,
};
#define BUF_SIZE 0x10000
static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 74e4002b..fea587bc 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -151,7 +151,7 @@ static curl_off_t vms_realfilesize(const char * name,
int ret_stat;
FILE * file;
- file = fopen(name, "r");
+ file = fopen(name, "r"); /* VMS */
if(file == NULL) {
return 0;
}
@@ -1217,6 +1217,17 @@ static CURLcode operate_do(struct GlobalConfig *global,
if(config->socks5_gssapi_nec)
my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_NEC,
config->socks5_gssapi_nec);
+
+ /* new in curl 7.43.0 */
+ if(config->proxy_service_name)
+ my_setopt_str(curl, CURLOPT_PROXY_SERVICE_NAME,
+ config->proxy_service_name);
+
+ /* new in curl 7.43.0 */
+ if(config->service_name)
+ my_setopt_str(curl, CURLOPT_SERVICE_NAME,
+ config->service_name);
+
}
#endif
/* curl 7.13.0 */
@@ -1486,7 +1497,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
if(retry_sleep > RETRY_SLEEP_MAX)
retry_sleep = RETRY_SLEEP_MAX;
}
- if(outs.bytes && outs.filename) {
+ if(outs.bytes && outs.filename && outs.stream) {
/* We have written data to a output file, we truncate file
*/
if(!global->mute)
diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c
index 4c25ddbd..39b43eef 100644
--- a/src/tool_parsecfg.c
+++ b/src/tool_parsecfg.c
@@ -69,7 +69,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
/* Check if the file exists - if not, try CURLRC in the same
* directory as our executable
*/
- file = fopen(filebuffer, "r");
+ file = fopen(filebuffer, FOPEN_READTEXT);
if(file != NULL) {
fclose(file);
filename = filebuffer;
@@ -115,7 +115,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
}
if(strcmp(filename, "-"))
- file = fopen(filename, "r");
+ file = fopen(filename, FOPEN_READTEXT);
else
file = stdin;
diff --git a/src/tool_version.h b/src/tool_version.h
index b12d433d..15e4837a 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.42.1"
+#define CURL_VERSION "7.43.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/tests/Makefile.in b/tests/Makefile.in
index b363dbbf..9614cd94 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -100,8 +100,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs README
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -122,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/tests/README b/tests/README
index 14ac6eed..ae8ff25c 100644
--- a/tests/README
+++ b/tests/README
@@ -100,7 +100,9 @@ The cURL Test Suite
(like "./runtests.pl 3 4" to test 3 and 4 only). It also supports test case
ranges with 'to', as in "./runtests 3 to 9" which runs the seven tests from
3 to 9. Any test numbers starting with ! are disabled, as are any test
- numbers found in the file data/DISABLED (one per line).
+ numbers found in the files data/DISABLED or data/DISABLED.local (one per
+ line). The latter is meant for local temporary disables and will be ignored
+ by git.
When -s is not present, each successful test will display on one line the
test number and description and on the next line a set of flags, the test
diff --git a/tests/certs/Makefile.in b/tests/certs/Makefile.in
index a736bc0c..bb1941ed 100644
--- a/tests/certs/Makefile.in
+++ b/tests/certs/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = tests/certs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/tests/certs/scripts/Makefile.in b/tests/certs/scripts/Makefile.in
index 030e2259..ac8c3a9b 100644
--- a/tests/certs/scripts/Makefile.in
+++ b/tests/certs/scripts/Makefile.in
@@ -78,8 +78,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = tests/certs/scripts
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/m4/curl-confopts.m4 \
@@ -100,7 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/tests/data/Makefile.in b/tests/data/Makefile.in
index 63ec18ea..16ad4bf5 100644
--- a/tests/data/Makefile.in
+++ b/tests/data/Makefile.in
@@ -100,7 +100,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs
+ $(srcdir)/Makefile.am
subdir = tests/data
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
@@ -122,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -468,9 +468,9 @@ test1516 \
\
test1520 \
\
-test1525 test1526 test1527 test1528 test1529 \
+test1525 test1526 test1527 test1528 test1529 test1530 \
\
-test1600 test1601 \
+test1600 test1601 test1602 \
\
test1800 test1801 \
\
@@ -480,7 +480,8 @@ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \
test2016 test2017 test2018 test2019 test2020 test2021 test2022 test2023 \
test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \
-test2032 test2033 test2034 test2035 test2036 test2037 test2038
+test2032 test2033 test2034 test2035 test2036 test2037 test2038 test2039 \
+test2040
# TESTCASES are taken from Makefile.inc
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index 9390f466..73877c67 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -153,9 +153,9 @@ test1516 \
\
test1520 \
\
-test1525 test1526 test1527 test1528 test1529 \
+test1525 test1526 test1527 test1528 test1529 test1530 \
\
-test1600 test1601 \
+test1600 test1601 test1602 \
\
test1800 test1801 \
\
@@ -165,4 +165,5 @@ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \
test2016 test2017 test2018 test2019 test2020 test2021 test2022 test2023 \
test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \
-test2032 test2033 test2034 test2035 test2036 test2037 test2038
+test2032 test2033 test2034 test2035 test2036 test2037 test2038 test2039 \
+test2040
diff --git a/tests/data/test130 b/tests/data/test130
index 827b1a0a..6e6d9c16 100644
--- a/tests/data/test130
+++ b/tests/data/test130
@@ -43,6 +43,7 @@ FTP (optional .netrc; no user/pass) dir list PASV
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
+default login userdef password passwddef
</file>
</client>
diff --git a/tests/data/test1510 b/tests/data/test1510
index fdf6c7db..2767f600 100644
--- a/tests/data/test1510
+++ b/tests/data/test1510
@@ -3,6 +3,7 @@
<keywords>
HTTP
verbose logs
+flaky
</keywords>
</info>
diff --git a/tests/data/test1530 b/tests/data/test1530
new file mode 100644
index 00000000..8372d29e
--- /dev/null
+++ b/tests/data/test1530
@@ -0,0 +1,30 @@
+<testcase>
+<info>
+<keywords>
+CURLOPT_OPENSOCKETFUNCTION
+</keywords>
+</info>
+
+<client>
+<server>
+none
+</server>
+<features>
+http
+</features>
+<tool>
+lib1530
+</tool>
+ <name>
+CURLOPT_OPENSOCKETFUNCTION returns bad socket
+ </name>
+</client>
+
+# it should be detected and an error should be reported
+<verify>
+# 7 == CURLE_COULDNT_CONNECT
+<errorcode>
+7
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test159 b/tests/data/test159
index c4ad9154..5a062176 100644
--- a/tests/data/test159
+++ b/tests/data/test159
@@ -21,34 +21,20 @@ Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 34
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
+Connection: close
This is not the real page either!
</data1001>
-# This is supposed to be returned when the server gets the second
-# Authorization: NTLM line passed-in from the client
-<data1002>
-HTTP/1.1 200 Things are fine in server land swsclose
-Server: Microsoft-IIS/5.0
-Content-Type: text/html; charset=iso-8859-1
-Content-Length: 32
-
-Finally, this is the real page!
-</data1002>
-
<datacheck>
HTTP/1.1 401 Now gimme that second request of crap
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
Content-Length: 34
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
+Connection: close
-HTTP/1.1 200 Things are fine in server land swsclose
-Server: Microsoft-IIS/5.0
-Content-Type: text/html; charset=iso-8859-1
-Content-Length: 32
-
-Finally, this is the real page!
+This is not the real page either!
</datacheck>
</reply>
@@ -64,7 +50,7 @@ debug
http
</server>
<name>
-HTTP with NTLM authorization when talking HTTP/1.0
+HTTP with NTLM authorization when talking HTTP/1.0 (known to fail)
</name>
<setenv>
# we force our own host name, in order to make the test machine independent
@@ -92,12 +78,6 @@ Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Accept: */*
-GET /159 HTTP/1.0
-Host: %HOSTIP:%HTTPPORT
-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAACeAJ4AWAAAAAAAAAD2AAAACAAIAPYAAAAIAAgA/gAAAAAAAAAAAAAABoKBAL9LNW5+nkyHZRmyFaL/LJ4xMjM0MjIzNGUCyhgQ9hw6eWAT13EbDa0BAQAAAAAAAACAPtXesZ0BMTIzNDIyMzQAAAAAAgAEAEMAQwABABIARQBMAEkAUwBBAEIARQBUAEgABAAYAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAMALABlAGwAaQBzAGEAYgBlAHQAaAAuAGMAYwAuAGkAYwBlAGQAZQB2AC4AbgB1AAAAAAAAAAAAdGVzdHVzZXJjdXJsaG9zdA==
-User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3
-Accept: */*
-
</protocol>
</verify>
</testcase>
diff --git a/tests/data/test1602 b/tests/data/test1602
new file mode 100644
index 00000000..4717058c
--- /dev/null
+++ b/tests/data/test1602
@@ -0,0 +1,26 @@
+<testcase>
+<info>
+<keywords>
+unittest
+hash
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+unittest
+</features>
+ <name>
+Internal hash create/add/destroy testing, exercising clean functions
+ </name>
+<tool>
+unit1602
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test2039 b/tests/data/test2039
new file mode 100644
index 00000000..1595ded0
--- /dev/null
+++ b/tests/data/test2039
@@ -0,0 +1,63 @@
+<testcase>
+<info>
+<keywords>
+FTP
+EPSV
+LIST
+netrc
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+# When doing LIST, we get the default list output hard-coded in the test
+# FTP server
+<datacheck mode="text">
+total 20
+drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
+drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
+drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
+-r--r--r-- 1 0 1 35 Jul 16 1996 README
+lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
+dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
+drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
+dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
+drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
+dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
+</datacheck>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+ftp
+</server>
+ <name>
+FTP (optional .netrc with 'default' override; no user/pass) dir list PASV
+ </name>
+ <command>
+--netrc-optional --netrc-file log/netrc2039 ftp://%HOSTIP:%FTPPORT/
+</command>
+<file name="log/netrc2039" >
+# the following two lines were created while testing curl
+default login userdef password passwddef
+machine %HOSTIP login user1 password passwd1
+machine %HOSTIP login user2 password passwd2
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+USER userdef
+PASS passwddef
+PWD
+EPSV
+TYPE A
+LIST
+QUIT
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test2040 b/tests/data/test2040
new file mode 100644
index 00000000..ac600174
--- /dev/null
+++ b/tests/data/test2040
@@ -0,0 +1,69 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+HTTP Basic auth
+</keywords>
+</info>
+# Server-side
+<reply>
+
+<!-- First request has Basic auth, right password -->
+<data100>
+HTTP/1.1 200 Things are fine in server land
+Server: Microsoft-IIS/5.0
+Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
+
+Finally, this is the real page!
+</data100>
+
+<!-- Second request with Basic auth disabled -->
+<data200>
+HTTP/1.1 401 Sorry wrong password (2)
+Server: Microsoft-IIS/5.0
+Content-Type: text/html; charset=iso-8859-1
+Content-Length: 29
+WWW-Authenticate: Basic realm="testrealm"
+
+This is a bad password page!
+</data200>
+
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+<name>
+HTTP Basic authorization, then without authorization
+</name>
+<command option="no-output,no-include">
+-u testuser:testpass http://%HOSTIP:%HTTPPORT/20400100 --next --no-basic http://%HOSTIP:%HTTPPORT/20400200
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /20400100 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
+Accept: */*
+
+GET /20400200 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+<stdout>
+Finally, this is the real page!
+This is a bad password page!
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/libtest/Makefile.in b/tests/libtest/Makefile.in
index 90d25d4b..b9a05d68 100644
--- a/tests/libtest/Makefile.in
+++ b/tests/libtest/Makefile.in
@@ -80,8 +80,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp
+ $(srcdir)/Makefile.am $(top_srcdir)/depcomp
noinst_PROGRAMS = chkhostname$(EXEEXT) libauthretry$(EXEEXT) \
libntlmconnect$(EXEEXT) lib500$(EXEEXT) lib501$(EXEEXT) \
lib502$(EXEEXT) lib503$(EXEEXT) lib504$(EXEEXT) \
@@ -116,7 +115,8 @@ noinst_PROGRAMS = chkhostname$(EXEEXT) libauthretry$(EXEEXT) \
lib1512$(EXEEXT) lib1513$(EXEEXT) lib1514$(EXEEXT) \
lib1515$(EXEEXT) lib1520$(EXEEXT) lib1525$(EXEEXT) \
lib1526$(EXEEXT) lib1527$(EXEEXT) lib1528$(EXEEXT) \
- lib1529$(EXEEXT) lib1900$(EXEEXT) lib2033$(EXEEXT)
+ lib1529$(EXEEXT) lib1530$(EXEEXT) lib1900$(EXEEXT) \
+ lib2033$(EXEEXT)
@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
@CURL_LT_SHLIB_USE_NO_UNDEFINED_TRUE@am__append_2 = -no-undefined
@CURL_LT_SHLIB_USE_MIMPURE_TEXT_TRUE@am__append_3 = -mimpure-text
@@ -143,7 +143,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -320,473 +320,480 @@ am_lib1529_OBJECTS = lib1529-lib1529.$(OBJEXT) $(am__objects_61) \
$(am__objects_62) $(am__objects_63)
lib1529_OBJECTS = $(am_lib1529_OBJECTS)
lib1529_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_64 = lib1900-first.$(OBJEXT)
-am__objects_65 = lib1900-testutil.$(OBJEXT)
-am__objects_66 = ../../lib/lib1900-warnless.$(OBJEXT)
-am_lib1900_OBJECTS = lib1900-lib1900.$(OBJEXT) $(am__objects_64) \
+am__objects_64 = lib1530-first.$(OBJEXT)
+am__objects_65 = lib1530-testutil.$(OBJEXT)
+am__objects_66 = ../../lib/lib1530-warnless.$(OBJEXT)
+am_lib1530_OBJECTS = lib1530-lib1530.$(OBJEXT) $(am__objects_64) \
$(am__objects_65) $(am__objects_66)
+lib1530_OBJECTS = $(am_lib1530_OBJECTS)
+lib1530_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am__objects_67 = lib1900-first.$(OBJEXT)
+am__objects_68 = lib1900-testutil.$(OBJEXT)
+am__objects_69 = ../../lib/lib1900-warnless.$(OBJEXT)
+am_lib1900_OBJECTS = lib1900-lib1900.$(OBJEXT) $(am__objects_67) \
+ $(am__objects_68) $(am__objects_69)
lib1900_OBJECTS = $(am_lib1900_OBJECTS)
lib1900_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_67 = lib2033-first.$(OBJEXT)
-am__objects_68 = lib2033-testutil.$(OBJEXT)
-am__objects_69 = ../../lib/lib2033-warnless.$(OBJEXT)
+am__objects_70 = lib2033-first.$(OBJEXT)
+am__objects_71 = lib2033-testutil.$(OBJEXT)
+am__objects_72 = ../../lib/lib2033-warnless.$(OBJEXT)
am_lib2033_OBJECTS = lib2033-libntlmconnect.$(OBJEXT) \
- $(am__objects_67) $(am__objects_68) $(am__objects_69)
+ $(am__objects_70) $(am__objects_71) $(am__objects_72)
lib2033_OBJECTS = $(am_lib2033_OBJECTS)
lib2033_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_70 = lib500-first.$(OBJEXT)
-am__objects_71 = lib500-testutil.$(OBJEXT)
-am__objects_72 = lib500-testtrace.$(OBJEXT)
-am_lib500_OBJECTS = lib500-lib500.$(OBJEXT) $(am__objects_70) \
- $(am__objects_71) $(am__objects_72)
+am__objects_73 = lib500-first.$(OBJEXT)
+am__objects_74 = lib500-testutil.$(OBJEXT)
+am__objects_75 = lib500-testtrace.$(OBJEXT)
+am_lib500_OBJECTS = lib500-lib500.$(OBJEXT) $(am__objects_73) \
+ $(am__objects_74) $(am__objects_75)
lib500_OBJECTS = $(am_lib500_OBJECTS)
lib500_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_73 = lib501-first.$(OBJEXT)
-am_lib501_OBJECTS = lib501-lib501.$(OBJEXT) $(am__objects_73)
+am__objects_76 = lib501-first.$(OBJEXT)
+am_lib501_OBJECTS = lib501-lib501.$(OBJEXT) $(am__objects_76)
lib501_OBJECTS = $(am_lib501_OBJECTS)
lib501_LDADD = $(LDADD)
lib501_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_74 = lib502-first.$(OBJEXT)
-am__objects_75 = lib502-testutil.$(OBJEXT)
-am__objects_76 = ../../lib/lib502-warnless.$(OBJEXT)
-am_lib502_OBJECTS = lib502-lib502.$(OBJEXT) $(am__objects_74) \
- $(am__objects_75) $(am__objects_76)
+am__objects_77 = lib502-first.$(OBJEXT)
+am__objects_78 = lib502-testutil.$(OBJEXT)
+am__objects_79 = ../../lib/lib502-warnless.$(OBJEXT)
+am_lib502_OBJECTS = lib502-lib502.$(OBJEXT) $(am__objects_77) \
+ $(am__objects_78) $(am__objects_79)
lib502_OBJECTS = $(am_lib502_OBJECTS)
lib502_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_77 = lib503-first.$(OBJEXT)
-am__objects_78 = lib503-testutil.$(OBJEXT)
-am__objects_79 = ../../lib/lib503-warnless.$(OBJEXT)
-am_lib503_OBJECTS = lib503-lib503.$(OBJEXT) $(am__objects_77) \
- $(am__objects_78) $(am__objects_79)
+am__objects_80 = lib503-first.$(OBJEXT)
+am__objects_81 = lib503-testutil.$(OBJEXT)
+am__objects_82 = ../../lib/lib503-warnless.$(OBJEXT)
+am_lib503_OBJECTS = lib503-lib503.$(OBJEXT) $(am__objects_80) \
+ $(am__objects_81) $(am__objects_82)
lib503_OBJECTS = $(am_lib503_OBJECTS)
lib503_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_80 = lib504-first.$(OBJEXT)
-am__objects_81 = lib504-testutil.$(OBJEXT)
-am__objects_82 = ../../lib/lib504-warnless.$(OBJEXT)
-am_lib504_OBJECTS = lib504-lib504.$(OBJEXT) $(am__objects_80) \
- $(am__objects_81) $(am__objects_82)
+am__objects_83 = lib504-first.$(OBJEXT)
+am__objects_84 = lib504-testutil.$(OBJEXT)
+am__objects_85 = ../../lib/lib504-warnless.$(OBJEXT)
+am_lib504_OBJECTS = lib504-lib504.$(OBJEXT) $(am__objects_83) \
+ $(am__objects_84) $(am__objects_85)
lib504_OBJECTS = $(am_lib504_OBJECTS)
lib504_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_83 = lib505-first.$(OBJEXT)
-am_lib505_OBJECTS = lib505-lib505.$(OBJEXT) $(am__objects_83)
+am__objects_86 = lib505-first.$(OBJEXT)
+am_lib505_OBJECTS = lib505-lib505.$(OBJEXT) $(am__objects_86)
lib505_OBJECTS = $(am_lib505_OBJECTS)
lib505_LDADD = $(LDADD)
lib505_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_84 = lib506-first.$(OBJEXT)
-am_lib506_OBJECTS = lib506-lib506.$(OBJEXT) $(am__objects_84)
+am__objects_87 = lib506-first.$(OBJEXT)
+am_lib506_OBJECTS = lib506-lib506.$(OBJEXT) $(am__objects_87)
lib506_OBJECTS = $(am_lib506_OBJECTS)
lib506_LDADD = $(LDADD)
lib506_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_85 = lib507-first.$(OBJEXT)
-am__objects_86 = lib507-testutil.$(OBJEXT)
-am__objects_87 = ../../lib/lib507-warnless.$(OBJEXT)
-am_lib507_OBJECTS = lib507-lib507.$(OBJEXT) $(am__objects_85) \
- $(am__objects_86) $(am__objects_87)
+am__objects_88 = lib507-first.$(OBJEXT)
+am__objects_89 = lib507-testutil.$(OBJEXT)
+am__objects_90 = ../../lib/lib507-warnless.$(OBJEXT)
+am_lib507_OBJECTS = lib507-lib507.$(OBJEXT) $(am__objects_88) \
+ $(am__objects_89) $(am__objects_90)
lib507_OBJECTS = $(am_lib507_OBJECTS)
lib507_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_88 = lib508-first.$(OBJEXT)
-am_lib508_OBJECTS = lib508-lib508.$(OBJEXT) $(am__objects_88)
+am__objects_91 = lib508-first.$(OBJEXT)
+am_lib508_OBJECTS = lib508-lib508.$(OBJEXT) $(am__objects_91)
lib508_OBJECTS = $(am_lib508_OBJECTS)
lib508_LDADD = $(LDADD)
lib508_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_89 = lib509-first.$(OBJEXT)
-am_lib509_OBJECTS = lib509-lib509.$(OBJEXT) $(am__objects_89)
+am__objects_92 = lib509-first.$(OBJEXT)
+am_lib509_OBJECTS = lib509-lib509.$(OBJEXT) $(am__objects_92)
lib509_OBJECTS = $(am_lib509_OBJECTS)
lib509_LDADD = $(LDADD)
lib509_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_90 = lib510-first.$(OBJEXT)
-am_lib510_OBJECTS = lib510-lib510.$(OBJEXT) $(am__objects_90)
+am__objects_93 = lib510-first.$(OBJEXT)
+am_lib510_OBJECTS = lib510-lib510.$(OBJEXT) $(am__objects_93)
lib510_OBJECTS = $(am_lib510_OBJECTS)
lib510_LDADD = $(LDADD)
lib510_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_91 = lib511-first.$(OBJEXT)
-am_lib511_OBJECTS = lib511-lib511.$(OBJEXT) $(am__objects_91)
+am__objects_94 = lib511-first.$(OBJEXT)
+am_lib511_OBJECTS = lib511-lib511.$(OBJEXT) $(am__objects_94)
lib511_OBJECTS = $(am_lib511_OBJECTS)
lib511_LDADD = $(LDADD)
lib511_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_92 = lib512-first.$(OBJEXT)
-am_lib512_OBJECTS = lib512-lib512.$(OBJEXT) $(am__objects_92)
+am__objects_95 = lib512-first.$(OBJEXT)
+am_lib512_OBJECTS = lib512-lib512.$(OBJEXT) $(am__objects_95)
lib512_OBJECTS = $(am_lib512_OBJECTS)
lib512_LDADD = $(LDADD)
lib512_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_93 = lib513-first.$(OBJEXT)
-am_lib513_OBJECTS = lib513-lib513.$(OBJEXT) $(am__objects_93)
+am__objects_96 = lib513-first.$(OBJEXT)
+am_lib513_OBJECTS = lib513-lib513.$(OBJEXT) $(am__objects_96)
lib513_OBJECTS = $(am_lib513_OBJECTS)
lib513_LDADD = $(LDADD)
lib513_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_94 = lib514-first.$(OBJEXT)
-am_lib514_OBJECTS = lib514-lib514.$(OBJEXT) $(am__objects_94)
+am__objects_97 = lib514-first.$(OBJEXT)
+am_lib514_OBJECTS = lib514-lib514.$(OBJEXT) $(am__objects_97)
lib514_OBJECTS = $(am_lib514_OBJECTS)
lib514_LDADD = $(LDADD)
lib514_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_95 = lib515-first.$(OBJEXT)
-am_lib515_OBJECTS = lib515-lib515.$(OBJEXT) $(am__objects_95)
+am__objects_98 = lib515-first.$(OBJEXT)
+am_lib515_OBJECTS = lib515-lib515.$(OBJEXT) $(am__objects_98)
lib515_OBJECTS = $(am_lib515_OBJECTS)
lib515_LDADD = $(LDADD)
lib515_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_96 = lib516-first.$(OBJEXT)
-am_lib516_OBJECTS = lib516-lib516.$(OBJEXT) $(am__objects_96)
+am__objects_99 = lib516-first.$(OBJEXT)
+am_lib516_OBJECTS = lib516-lib516.$(OBJEXT) $(am__objects_99)
lib516_OBJECTS = $(am_lib516_OBJECTS)
lib516_LDADD = $(LDADD)
lib516_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_97 = lib517-first.$(OBJEXT)
-am_lib517_OBJECTS = lib517-lib517.$(OBJEXT) $(am__objects_97)
+am__objects_100 = lib517-first.$(OBJEXT)
+am_lib517_OBJECTS = lib517-lib517.$(OBJEXT) $(am__objects_100)
lib517_OBJECTS = $(am_lib517_OBJECTS)
lib517_LDADD = $(LDADD)
lib517_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_98 = lib518-first.$(OBJEXT)
-am__objects_99 = ../../lib/lib518-warnless.$(OBJEXT)
-am_lib518_OBJECTS = lib518-lib518.$(OBJEXT) $(am__objects_98) \
- $(am__objects_99)
+am__objects_101 = lib518-first.$(OBJEXT)
+am__objects_102 = ../../lib/lib518-warnless.$(OBJEXT)
+am_lib518_OBJECTS = lib518-lib518.$(OBJEXT) $(am__objects_101) \
+ $(am__objects_102)
lib518_OBJECTS = $(am_lib518_OBJECTS)
lib518_LDADD = $(LDADD)
lib518_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_100 = lib519-first.$(OBJEXT)
-am_lib519_OBJECTS = lib519-lib519.$(OBJEXT) $(am__objects_100)
+am__objects_103 = lib519-first.$(OBJEXT)
+am_lib519_OBJECTS = lib519-lib519.$(OBJEXT) $(am__objects_103)
lib519_OBJECTS = $(am_lib519_OBJECTS)
lib519_LDADD = $(LDADD)
lib519_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_101 = lib520-first.$(OBJEXT)
-am_lib520_OBJECTS = lib520-lib520.$(OBJEXT) $(am__objects_101)
+am__objects_104 = lib520-first.$(OBJEXT)
+am_lib520_OBJECTS = lib520-lib520.$(OBJEXT) $(am__objects_104)
lib520_OBJECTS = $(am_lib520_OBJECTS)
lib520_LDADD = $(LDADD)
lib520_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_102 = lib521-first.$(OBJEXT)
-am_lib521_OBJECTS = lib521-lib521.$(OBJEXT) $(am__objects_102)
+am__objects_105 = lib521-first.$(OBJEXT)
+am_lib521_OBJECTS = lib521-lib521.$(OBJEXT) $(am__objects_105)
lib521_OBJECTS = $(am_lib521_OBJECTS)
lib521_LDADD = $(LDADD)
lib521_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_103 = lib523-first.$(OBJEXT)
-am_lib523_OBJECTS = lib523-lib523.$(OBJEXT) $(am__objects_103)
+am__objects_106 = lib523-first.$(OBJEXT)
+am_lib523_OBJECTS = lib523-lib523.$(OBJEXT) $(am__objects_106)
lib523_OBJECTS = $(am_lib523_OBJECTS)
lib523_LDADD = $(LDADD)
lib523_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_104 = lib524-first.$(OBJEXT)
-am_lib524_OBJECTS = lib524-lib524.$(OBJEXT) $(am__objects_104)
+am__objects_107 = lib524-first.$(OBJEXT)
+am_lib524_OBJECTS = lib524-lib524.$(OBJEXT) $(am__objects_107)
lib524_OBJECTS = $(am_lib524_OBJECTS)
lib524_LDADD = $(LDADD)
lib524_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_105 = lib525-first.$(OBJEXT)
-am__objects_106 = lib525-testutil.$(OBJEXT)
-am__objects_107 = ../../lib/lib525-warnless.$(OBJEXT)
-am_lib525_OBJECTS = lib525-lib525.$(OBJEXT) $(am__objects_105) \
- $(am__objects_106) $(am__objects_107)
+am__objects_108 = lib525-first.$(OBJEXT)
+am__objects_109 = lib525-testutil.$(OBJEXT)
+am__objects_110 = ../../lib/lib525-warnless.$(OBJEXT)
+am_lib525_OBJECTS = lib525-lib525.$(OBJEXT) $(am__objects_108) \
+ $(am__objects_109) $(am__objects_110)
lib525_OBJECTS = $(am_lib525_OBJECTS)
lib525_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_108 = lib526-first.$(OBJEXT)
-am__objects_109 = lib526-testutil.$(OBJEXT)
-am__objects_110 = ../../lib/lib526-warnless.$(OBJEXT)
-am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_108) \
- $(am__objects_109) $(am__objects_110)
+am__objects_111 = lib526-first.$(OBJEXT)
+am__objects_112 = lib526-testutil.$(OBJEXT)
+am__objects_113 = ../../lib/lib526-warnless.$(OBJEXT)
+am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_111) \
+ $(am__objects_112) $(am__objects_113)
lib526_OBJECTS = $(am_lib526_OBJECTS)
lib526_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_111 = lib527-first.$(OBJEXT)
-am__objects_112 = lib527-testutil.$(OBJEXT)
-am__objects_113 = ../../lib/lib527-warnless.$(OBJEXT)
-am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_111) \
- $(am__objects_112) $(am__objects_113)
+am__objects_114 = lib527-first.$(OBJEXT)
+am__objects_115 = lib527-testutil.$(OBJEXT)
+am__objects_116 = ../../lib/lib527-warnless.$(OBJEXT)
+am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_114) \
+ $(am__objects_115) $(am__objects_116)
lib527_OBJECTS = $(am_lib527_OBJECTS)
lib527_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_114 = lib529-first.$(OBJEXT)
-am__objects_115 = lib529-testutil.$(OBJEXT)
-am__objects_116 = ../../lib/lib529-warnless.$(OBJEXT)
-am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_114) \
- $(am__objects_115) $(am__objects_116)
+am__objects_117 = lib529-first.$(OBJEXT)
+am__objects_118 = lib529-testutil.$(OBJEXT)
+am__objects_119 = ../../lib/lib529-warnless.$(OBJEXT)
+am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_117) \
+ $(am__objects_118) $(am__objects_119)
lib529_OBJECTS = $(am_lib529_OBJECTS)
lib529_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_117 = lib530-first.$(OBJEXT)
-am__objects_118 = lib530-testutil.$(OBJEXT)
-am__objects_119 = ../../lib/lib530-warnless.$(OBJEXT)
-am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_117) \
- $(am__objects_118) $(am__objects_119)
+am__objects_120 = lib530-first.$(OBJEXT)
+am__objects_121 = lib530-testutil.$(OBJEXT)
+am__objects_122 = ../../lib/lib530-warnless.$(OBJEXT)
+am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_120) \
+ $(am__objects_121) $(am__objects_122)
lib530_OBJECTS = $(am_lib530_OBJECTS)
lib530_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_120 = lib532-first.$(OBJEXT)
-am__objects_121 = lib532-testutil.$(OBJEXT)
-am__objects_122 = ../../lib/lib532-warnless.$(OBJEXT)
-am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_120) \
- $(am__objects_121) $(am__objects_122)
+am__objects_123 = lib532-first.$(OBJEXT)
+am__objects_124 = lib532-testutil.$(OBJEXT)
+am__objects_125 = ../../lib/lib532-warnless.$(OBJEXT)
+am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_123) \
+ $(am__objects_124) $(am__objects_125)
lib532_OBJECTS = $(am_lib532_OBJECTS)
lib532_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_123 = lib533-first.$(OBJEXT)
-am__objects_124 = lib533-testutil.$(OBJEXT)
-am__objects_125 = ../../lib/lib533-warnless.$(OBJEXT)
-am_lib533_OBJECTS = lib533-lib533.$(OBJEXT) $(am__objects_123) \
- $(am__objects_124) $(am__objects_125)
+am__objects_126 = lib533-first.$(OBJEXT)
+am__objects_127 = lib533-testutil.$(OBJEXT)
+am__objects_128 = ../../lib/lib533-warnless.$(OBJEXT)
+am_lib533_OBJECTS = lib533-lib533.$(OBJEXT) $(am__objects_126) \
+ $(am__objects_127) $(am__objects_128)
lib533_OBJECTS = $(am_lib533_OBJECTS)
lib533_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_126 = lib536-first.$(OBJEXT)
-am__objects_127 = lib536-testutil.$(OBJEXT)
-am__objects_128 = ../../lib/lib536-warnless.$(OBJEXT)
-am_lib536_OBJECTS = lib536-lib536.$(OBJEXT) $(am__objects_126) \
- $(am__objects_127) $(am__objects_128)
+am__objects_129 = lib536-first.$(OBJEXT)
+am__objects_130 = lib536-testutil.$(OBJEXT)
+am__objects_131 = ../../lib/lib536-warnless.$(OBJEXT)
+am_lib536_OBJECTS = lib536-lib536.$(OBJEXT) $(am__objects_129) \
+ $(am__objects_130) $(am__objects_131)
lib536_OBJECTS = $(am_lib536_OBJECTS)
lib536_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_129 = lib537-first.$(OBJEXT)
-am__objects_130 = ../../lib/lib537-warnless.$(OBJEXT)
-am_lib537_OBJECTS = lib537-lib537.$(OBJEXT) $(am__objects_129) \
- $(am__objects_130)
+am__objects_132 = lib537-first.$(OBJEXT)
+am__objects_133 = ../../lib/lib537-warnless.$(OBJEXT)
+am_lib537_OBJECTS = lib537-lib537.$(OBJEXT) $(am__objects_132) \
+ $(am__objects_133)
lib537_OBJECTS = $(am_lib537_OBJECTS)
lib537_LDADD = $(LDADD)
lib537_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_131 = lib539-first.$(OBJEXT)
-am_lib539_OBJECTS = lib539-lib539.$(OBJEXT) $(am__objects_131)
+am__objects_134 = lib539-first.$(OBJEXT)
+am_lib539_OBJECTS = lib539-lib539.$(OBJEXT) $(am__objects_134)
lib539_OBJECTS = $(am_lib539_OBJECTS)
lib539_LDADD = $(LDADD)
lib539_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_132 = lib540-first.$(OBJEXT)
-am__objects_133 = lib540-testutil.$(OBJEXT)
-am__objects_134 = ../../lib/lib540-warnless.$(OBJEXT)
-am_lib540_OBJECTS = lib540-lib540.$(OBJEXT) $(am__objects_132) \
- $(am__objects_133) $(am__objects_134)
+am__objects_135 = lib540-first.$(OBJEXT)
+am__objects_136 = lib540-testutil.$(OBJEXT)
+am__objects_137 = ../../lib/lib540-warnless.$(OBJEXT)
+am_lib540_OBJECTS = lib540-lib540.$(OBJEXT) $(am__objects_135) \
+ $(am__objects_136) $(am__objects_137)
lib540_OBJECTS = $(am_lib540_OBJECTS)
lib540_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_135 = lib541-first.$(OBJEXT)
-am_lib541_OBJECTS = lib541-lib541.$(OBJEXT) $(am__objects_135)
+am__objects_138 = lib541-first.$(OBJEXT)
+am_lib541_OBJECTS = lib541-lib541.$(OBJEXT) $(am__objects_138)
lib541_OBJECTS = $(am_lib541_OBJECTS)
lib541_LDADD = $(LDADD)
lib541_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_136 = lib542-first.$(OBJEXT)
-am_lib542_OBJECTS = lib542-lib542.$(OBJEXT) $(am__objects_136)
+am__objects_139 = lib542-first.$(OBJEXT)
+am_lib542_OBJECTS = lib542-lib542.$(OBJEXT) $(am__objects_139)
lib542_OBJECTS = $(am_lib542_OBJECTS)
lib542_LDADD = $(LDADD)
lib542_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_137 = lib543-first.$(OBJEXT)
-am_lib543_OBJECTS = lib543-lib543.$(OBJEXT) $(am__objects_137)
+am__objects_140 = lib543-first.$(OBJEXT)
+am_lib543_OBJECTS = lib543-lib543.$(OBJEXT) $(am__objects_140)
lib543_OBJECTS = $(am_lib543_OBJECTS)
lib543_LDADD = $(LDADD)
lib543_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_138 = lib544-first.$(OBJEXT)
-am_lib544_OBJECTS = lib544-lib544.$(OBJEXT) $(am__objects_138)
+am__objects_141 = lib544-first.$(OBJEXT)
+am_lib544_OBJECTS = lib544-lib544.$(OBJEXT) $(am__objects_141)
lib544_OBJECTS = $(am_lib544_OBJECTS)
lib544_LDADD = $(LDADD)
lib544_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_139 = lib545-first.$(OBJEXT)
-am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_139)
+am__objects_142 = lib545-first.$(OBJEXT)
+am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_142)
lib545_OBJECTS = $(am_lib545_OBJECTS)
lib545_LDADD = $(LDADD)
lib545_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_140 = lib547-first.$(OBJEXT)
-am_lib547_OBJECTS = lib547-lib547.$(OBJEXT) $(am__objects_140)
+am__objects_143 = lib547-first.$(OBJEXT)
+am_lib547_OBJECTS = lib547-lib547.$(OBJEXT) $(am__objects_143)
lib547_OBJECTS = $(am_lib547_OBJECTS)
lib547_LDADD = $(LDADD)
lib547_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_141 = lib548-first.$(OBJEXT)
-am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_141)
+am__objects_144 = lib548-first.$(OBJEXT)
+am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_144)
lib548_OBJECTS = $(am_lib548_OBJECTS)
lib548_LDADD = $(LDADD)
lib548_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_142 = lib549-first.$(OBJEXT)
-am_lib549_OBJECTS = lib549-lib549.$(OBJEXT) $(am__objects_142)
+am__objects_145 = lib549-first.$(OBJEXT)
+am_lib549_OBJECTS = lib549-lib549.$(OBJEXT) $(am__objects_145)
lib549_OBJECTS = $(am_lib549_OBJECTS)
lib549_LDADD = $(LDADD)
lib549_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_143 = lib552-first.$(OBJEXT)
-am__objects_144 = ../../lib/lib552-warnless.$(OBJEXT)
-am_lib552_OBJECTS = lib552-lib552.$(OBJEXT) $(am__objects_143) \
- $(am__objects_144)
+am__objects_146 = lib552-first.$(OBJEXT)
+am__objects_147 = ../../lib/lib552-warnless.$(OBJEXT)
+am_lib552_OBJECTS = lib552-lib552.$(OBJEXT) $(am__objects_146) \
+ $(am__objects_147)
lib552_OBJECTS = $(am_lib552_OBJECTS)
lib552_LDADD = $(LDADD)
lib552_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_145 = lib553-first.$(OBJEXT)
-am_lib553_OBJECTS = lib553-lib553.$(OBJEXT) $(am__objects_145)
+am__objects_148 = lib553-first.$(OBJEXT)
+am_lib553_OBJECTS = lib553-lib553.$(OBJEXT) $(am__objects_148)
lib553_OBJECTS = $(am_lib553_OBJECTS)
lib553_LDADD = $(LDADD)
lib553_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_146 = lib554-first.$(OBJEXT)
-am_lib554_OBJECTS = lib554-lib554.$(OBJEXT) $(am__objects_146)
+am__objects_149 = lib554-first.$(OBJEXT)
+am_lib554_OBJECTS = lib554-lib554.$(OBJEXT) $(am__objects_149)
lib554_OBJECTS = $(am_lib554_OBJECTS)
lib554_LDADD = $(LDADD)
lib554_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_147 = lib555-first.$(OBJEXT)
-am__objects_148 = lib555-testutil.$(OBJEXT)
-am__objects_149 = ../../lib/lib555-warnless.$(OBJEXT)
-am_lib555_OBJECTS = lib555-lib555.$(OBJEXT) $(am__objects_147) \
- $(am__objects_148) $(am__objects_149)
+am__objects_150 = lib555-first.$(OBJEXT)
+am__objects_151 = lib555-testutil.$(OBJEXT)
+am__objects_152 = ../../lib/lib555-warnless.$(OBJEXT)
+am_lib555_OBJECTS = lib555-lib555.$(OBJEXT) $(am__objects_150) \
+ $(am__objects_151) $(am__objects_152)
lib555_OBJECTS = $(am_lib555_OBJECTS)
lib555_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_150 = lib556-first.$(OBJEXT)
-am__objects_151 = ../../lib/lib556-warnless.$(OBJEXT)
-am_lib556_OBJECTS = lib556-lib556.$(OBJEXT) $(am__objects_150) \
- $(am__objects_151)
+am__objects_153 = lib556-first.$(OBJEXT)
+am__objects_154 = ../../lib/lib556-warnless.$(OBJEXT)
+am_lib556_OBJECTS = lib556-lib556.$(OBJEXT) $(am__objects_153) \
+ $(am__objects_154)
lib556_OBJECTS = $(am_lib556_OBJECTS)
lib556_LDADD = $(LDADD)
lib556_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_152 = lib557-first.$(OBJEXT)
-am_lib557_OBJECTS = lib557-lib557.$(OBJEXT) $(am__objects_152)
+am__objects_155 = lib557-first.$(OBJEXT)
+am_lib557_OBJECTS = lib557-lib557.$(OBJEXT) $(am__objects_155)
lib557_OBJECTS = $(am_lib557_OBJECTS)
lib557_LDADD = $(LDADD)
lib557_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_153 = lib558-first.$(OBJEXT)
-am_lib558_OBJECTS = lib558-lib558.$(OBJEXT) $(am__objects_153)
+am__objects_156 = lib558-first.$(OBJEXT)
+am_lib558_OBJECTS = lib558-lib558.$(OBJEXT) $(am__objects_156)
lib558_OBJECTS = $(am_lib558_OBJECTS)
lib558_LDADD = $(LDADD)
lib558_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_154 = lib560-first.$(OBJEXT)
-am__objects_155 = lib560-testutil.$(OBJEXT)
-am__objects_156 = ../../lib/lib560-warnless.$(OBJEXT)
-am_lib560_OBJECTS = lib560-lib560.$(OBJEXT) $(am__objects_154) \
- $(am__objects_155) $(am__objects_156)
+am__objects_157 = lib560-first.$(OBJEXT)
+am__objects_158 = lib560-testutil.$(OBJEXT)
+am__objects_159 = ../../lib/lib560-warnless.$(OBJEXT)
+am_lib560_OBJECTS = lib560-lib560.$(OBJEXT) $(am__objects_157) \
+ $(am__objects_158) $(am__objects_159)
lib560_OBJECTS = $(am_lib560_OBJECTS)
lib560_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_157 = lib562-first.$(OBJEXT)
-am_lib562_OBJECTS = lib562-lib562.$(OBJEXT) $(am__objects_157)
+am__objects_160 = lib562-first.$(OBJEXT)
+am_lib562_OBJECTS = lib562-lib562.$(OBJEXT) $(am__objects_160)
lib562_OBJECTS = $(am_lib562_OBJECTS)
lib562_LDADD = $(LDADD)
lib562_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_158 = lib564-first.$(OBJEXT)
-am__objects_159 = lib564-testutil.$(OBJEXT)
-am__objects_160 = ../../lib/lib564-warnless.$(OBJEXT)
-am_lib564_OBJECTS = lib564-lib564.$(OBJEXT) $(am__objects_158) \
- $(am__objects_159) $(am__objects_160)
+am__objects_161 = lib564-first.$(OBJEXT)
+am__objects_162 = lib564-testutil.$(OBJEXT)
+am__objects_163 = ../../lib/lib564-warnless.$(OBJEXT)
+am_lib564_OBJECTS = lib564-lib564.$(OBJEXT) $(am__objects_161) \
+ $(am__objects_162) $(am__objects_163)
lib564_OBJECTS = $(am_lib564_OBJECTS)
lib564_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_161 = lib565-first.$(OBJEXT)
-am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_161)
+am__objects_164 = lib565-first.$(OBJEXT)
+am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_164)
lib565_OBJECTS = $(am_lib565_OBJECTS)
lib565_LDADD = $(LDADD)
lib565_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_162 = lib566-first.$(OBJEXT)
-am_lib566_OBJECTS = lib566-lib566.$(OBJEXT) $(am__objects_162)
+am__objects_165 = lib566-first.$(OBJEXT)
+am_lib566_OBJECTS = lib566-lib566.$(OBJEXT) $(am__objects_165)
lib566_OBJECTS = $(am_lib566_OBJECTS)
lib566_LDADD = $(LDADD)
lib566_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_163 = lib567-first.$(OBJEXT)
-am_lib567_OBJECTS = lib567-lib567.$(OBJEXT) $(am__objects_163)
+am__objects_166 = lib567-first.$(OBJEXT)
+am_lib567_OBJECTS = lib567-lib567.$(OBJEXT) $(am__objects_166)
lib567_OBJECTS = $(am_lib567_OBJECTS)
lib567_LDADD = $(LDADD)
lib567_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_164 = lib568-first.$(OBJEXT)
-am_lib568_OBJECTS = lib568-lib568.$(OBJEXT) $(am__objects_164)
+am__objects_167 = lib568-first.$(OBJEXT)
+am_lib568_OBJECTS = lib568-lib568.$(OBJEXT) $(am__objects_167)
lib568_OBJECTS = $(am_lib568_OBJECTS)
lib568_LDADD = $(LDADD)
lib568_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_165 = lib569-first.$(OBJEXT)
-am_lib569_OBJECTS = lib569-lib569.$(OBJEXT) $(am__objects_165)
+am__objects_168 = lib569-first.$(OBJEXT)
+am_lib569_OBJECTS = lib569-lib569.$(OBJEXT) $(am__objects_168)
lib569_OBJECTS = $(am_lib569_OBJECTS)
lib569_LDADD = $(LDADD)
lib569_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_166 = lib570-first.$(OBJEXT)
-am_lib570_OBJECTS = lib570-lib570.$(OBJEXT) $(am__objects_166)
+am__objects_169 = lib570-first.$(OBJEXT)
+am_lib570_OBJECTS = lib570-lib570.$(OBJEXT) $(am__objects_169)
lib570_OBJECTS = $(am_lib570_OBJECTS)
lib570_LDADD = $(LDADD)
lib570_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_167 = lib571-first.$(OBJEXT)
-am__objects_168 = ../../lib/lib571-warnless.$(OBJEXT)
-am_lib571_OBJECTS = lib571-lib571.$(OBJEXT) $(am__objects_167) \
- $(am__objects_168)
+am__objects_170 = lib571-first.$(OBJEXT)
+am__objects_171 = ../../lib/lib571-warnless.$(OBJEXT)
+am_lib571_OBJECTS = lib571-lib571.$(OBJEXT) $(am__objects_170) \
+ $(am__objects_171)
lib571_OBJECTS = $(am_lib571_OBJECTS)
lib571_LDADD = $(LDADD)
lib571_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_169 = lib572-first.$(OBJEXT)
-am_lib572_OBJECTS = lib572-lib572.$(OBJEXT) $(am__objects_169)
+am__objects_172 = lib572-first.$(OBJEXT)
+am_lib572_OBJECTS = lib572-lib572.$(OBJEXT) $(am__objects_172)
lib572_OBJECTS = $(am_lib572_OBJECTS)
lib572_LDADD = $(LDADD)
lib572_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_170 = lib573-first.$(OBJEXT)
-am__objects_171 = lib573-testutil.$(OBJEXT)
-am__objects_172 = ../../lib/lib573-warnless.$(OBJEXT)
-am__objects_173 = lib573-testtrace.$(OBJEXT)
-am_lib573_OBJECTS = lib573-lib573.$(OBJEXT) $(am__objects_170) \
- $(am__objects_171) $(am__objects_172) $(am__objects_173)
+am__objects_173 = lib573-first.$(OBJEXT)
+am__objects_174 = lib573-testutil.$(OBJEXT)
+am__objects_175 = ../../lib/lib573-warnless.$(OBJEXT)
+am__objects_176 = lib573-testtrace.$(OBJEXT)
+am_lib573_OBJECTS = lib573-lib573.$(OBJEXT) $(am__objects_173) \
+ $(am__objects_174) $(am__objects_175) $(am__objects_176)
lib573_OBJECTS = $(am_lib573_OBJECTS)
lib573_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_174 = lib574-first.$(OBJEXT)
-am_lib574_OBJECTS = lib574-lib574.$(OBJEXT) $(am__objects_174)
+am__objects_177 = lib574-first.$(OBJEXT)
+am_lib574_OBJECTS = lib574-lib574.$(OBJEXT) $(am__objects_177)
lib574_OBJECTS = $(am_lib574_OBJECTS)
lib574_LDADD = $(LDADD)
lib574_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_175 = lib575-first.$(OBJEXT)
-am__objects_176 = lib575-testutil.$(OBJEXT)
-am__objects_177 = ../../lib/lib575-warnless.$(OBJEXT)
-am_lib575_OBJECTS = lib575-lib575.$(OBJEXT) $(am__objects_175) \
- $(am__objects_176) $(am__objects_177)
+am__objects_178 = lib575-first.$(OBJEXT)
+am__objects_179 = lib575-testutil.$(OBJEXT)
+am__objects_180 = ../../lib/lib575-warnless.$(OBJEXT)
+am_lib575_OBJECTS = lib575-lib575.$(OBJEXT) $(am__objects_178) \
+ $(am__objects_179) $(am__objects_180)
lib575_OBJECTS = $(am_lib575_OBJECTS)
lib575_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_178 = lib576-first.$(OBJEXT)
-am_lib576_OBJECTS = lib576-lib576.$(OBJEXT) $(am__objects_178)
+am__objects_181 = lib576-first.$(OBJEXT)
+am_lib576_OBJECTS = lib576-lib576.$(OBJEXT) $(am__objects_181)
lib576_OBJECTS = $(am_lib576_OBJECTS)
lib576_LDADD = $(LDADD)
lib576_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_179 = lib578-first.$(OBJEXT)
-am_lib578_OBJECTS = lib578-lib578.$(OBJEXT) $(am__objects_179)
+am__objects_182 = lib578-first.$(OBJEXT)
+am_lib578_OBJECTS = lib578-lib578.$(OBJEXT) $(am__objects_182)
lib578_OBJECTS = $(am_lib578_OBJECTS)
lib578_LDADD = $(LDADD)
lib578_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_180 = lib579-first.$(OBJEXT)
-am_lib579_OBJECTS = lib579-lib579.$(OBJEXT) $(am__objects_180)
+am__objects_183 = lib579-first.$(OBJEXT)
+am_lib579_OBJECTS = lib579-lib579.$(OBJEXT) $(am__objects_183)
lib579_OBJECTS = $(am_lib579_OBJECTS)
lib579_LDADD = $(LDADD)
lib579_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_181 = lib582-first.$(OBJEXT)
-am__objects_182 = lib582-testutil.$(OBJEXT)
-am__objects_183 = ../../lib/lib582-warnless.$(OBJEXT)
-am_lib582_OBJECTS = lib582-lib582.$(OBJEXT) $(am__objects_181) \
- $(am__objects_182) $(am__objects_183)
+am__objects_184 = lib582-first.$(OBJEXT)
+am__objects_185 = lib582-testutil.$(OBJEXT)
+am__objects_186 = ../../lib/lib582-warnless.$(OBJEXT)
+am_lib582_OBJECTS = lib582-lib582.$(OBJEXT) $(am__objects_184) \
+ $(am__objects_185) $(am__objects_186)
lib582_OBJECTS = $(am_lib582_OBJECTS)
lib582_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_184 = lib583-first.$(OBJEXT)
-am_lib583_OBJECTS = lib583-lib583.$(OBJEXT) $(am__objects_184)
+am__objects_187 = lib583-first.$(OBJEXT)
+am_lib583_OBJECTS = lib583-lib583.$(OBJEXT) $(am__objects_187)
lib583_OBJECTS = $(am_lib583_OBJECTS)
lib583_LDADD = $(LDADD)
lib583_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_185 = lib585-first.$(OBJEXT)
-am__objects_186 = lib585-testutil.$(OBJEXT)
-am__objects_187 = lib585-testtrace.$(OBJEXT)
-am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_185) \
- $(am__objects_186) $(am__objects_187)
+am__objects_188 = lib585-first.$(OBJEXT)
+am__objects_189 = lib585-testutil.$(OBJEXT)
+am__objects_190 = lib585-testtrace.$(OBJEXT)
+am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_188) \
+ $(am__objects_189) $(am__objects_190)
lib585_OBJECTS = $(am_lib585_OBJECTS)
lib585_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_188 = lib586-first.$(OBJEXT)
-am_lib586_OBJECTS = lib586-lib586.$(OBJEXT) $(am__objects_188)
+am__objects_191 = lib586-first.$(OBJEXT)
+am_lib586_OBJECTS = lib586-lib586.$(OBJEXT) $(am__objects_191)
lib586_OBJECTS = $(am_lib586_OBJECTS)
lib586_LDADD = $(LDADD)
lib586_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_189 = lib587-first.$(OBJEXT)
-am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_189)
+am__objects_192 = lib587-first.$(OBJEXT)
+am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_192)
lib587_OBJECTS = $(am_lib587_OBJECTS)
lib587_LDADD = $(LDADD)
lib587_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_190 = lib590-first.$(OBJEXT)
-am_lib590_OBJECTS = lib590-lib590.$(OBJEXT) $(am__objects_190)
+am__objects_193 = lib590-first.$(OBJEXT)
+am_lib590_OBJECTS = lib590-lib590.$(OBJEXT) $(am__objects_193)
lib590_OBJECTS = $(am_lib590_OBJECTS)
lib590_LDADD = $(LDADD)
lib590_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_191 = lib591-first.$(OBJEXT)
-am__objects_192 = lib591-testutil.$(OBJEXT)
-am__objects_193 = ../../lib/lib591-warnless.$(OBJEXT)
-am_lib591_OBJECTS = lib591-lib591.$(OBJEXT) $(am__objects_191) \
- $(am__objects_192) $(am__objects_193)
+am__objects_194 = lib591-first.$(OBJEXT)
+am__objects_195 = lib591-testutil.$(OBJEXT)
+am__objects_196 = ../../lib/lib591-warnless.$(OBJEXT)
+am_lib591_OBJECTS = lib591-lib591.$(OBJEXT) $(am__objects_194) \
+ $(am__objects_195) $(am__objects_196)
lib591_OBJECTS = $(am_lib591_OBJECTS)
lib591_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_194 = lib597-first.$(OBJEXT)
-am__objects_195 = lib597-testutil.$(OBJEXT)
-am__objects_196 = ../../lib/lib597-warnless.$(OBJEXT)
-am_lib597_OBJECTS = lib597-lib597.$(OBJEXT) $(am__objects_194) \
- $(am__objects_195) $(am__objects_196)
+am__objects_197 = lib597-first.$(OBJEXT)
+am__objects_198 = lib597-testutil.$(OBJEXT)
+am__objects_199 = ../../lib/lib597-warnless.$(OBJEXT)
+am_lib597_OBJECTS = lib597-lib597.$(OBJEXT) $(am__objects_197) \
+ $(am__objects_198) $(am__objects_199)
lib597_OBJECTS = $(am_lib597_OBJECTS)
lib597_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_197 = lib598-first.$(OBJEXT)
-am_lib598_OBJECTS = lib598-lib598.$(OBJEXT) $(am__objects_197)
+am__objects_200 = lib598-first.$(OBJEXT)
+am_lib598_OBJECTS = lib598-lib598.$(OBJEXT) $(am__objects_200)
lib598_OBJECTS = $(am_lib598_OBJECTS)
lib598_LDADD = $(LDADD)
lib598_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_198 = lib599-first.$(OBJEXT)
-am_lib599_OBJECTS = lib599-lib599.$(OBJEXT) $(am__objects_198)
+am__objects_201 = lib599-first.$(OBJEXT)
+am_lib599_OBJECTS = lib599-lib599.$(OBJEXT) $(am__objects_201)
lib599_OBJECTS = $(am_lib599_OBJECTS)
lib599_LDADD = $(LDADD)
lib599_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_199 = libauthretry-first.$(OBJEXT)
+am__objects_202 = libauthretry-first.$(OBJEXT)
am_libauthretry_OBJECTS = libauthretry-libauthretry.$(OBJEXT) \
- $(am__objects_199)
+ $(am__objects_202)
libauthretry_OBJECTS = $(am_libauthretry_OBJECTS)
libauthretry_LDADD = $(LDADD)
libauthretry_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_200 = libntlmconnect-first.$(OBJEXT)
-am__objects_201 = libntlmconnect-testutil.$(OBJEXT)
-am__objects_202 = ../../lib/libntlmconnect-warnless.$(OBJEXT)
+am__objects_203 = libntlmconnect-first.$(OBJEXT)
+am__objects_204 = libntlmconnect-testutil.$(OBJEXT)
+am__objects_205 = ../../lib/libntlmconnect-warnless.$(OBJEXT)
am_libntlmconnect_OBJECTS = libntlmconnect-libntlmconnect.$(OBJEXT) \
- $(am__objects_200) $(am__objects_201) $(am__objects_202)
+ $(am__objects_203) $(am__objects_204) $(am__objects_205)
libntlmconnect_OBJECTS = $(am_libntlmconnect_OBJECTS)
libntlmconnect_DEPENDENCIES = $(am__DEPENDENCIES_1)
AM_V_P = $(am__v_P_@AM_V@)
@@ -831,34 +838,34 @@ SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
$(lib1512_SOURCES) $(lib1513_SOURCES) $(lib1514_SOURCES) \
$(lib1515_SOURCES) $(lib1520_SOURCES) $(lib1525_SOURCES) \
$(lib1526_SOURCES) $(lib1527_SOURCES) $(lib1528_SOURCES) \
- $(lib1529_SOURCES) $(lib1900_SOURCES) $(lib2033_SOURCES) \
- $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \
- $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \
- $(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \
- $(lib509_SOURCES) $(lib510_SOURCES) $(lib511_SOURCES) \
- $(lib512_SOURCES) $(lib513_SOURCES) $(lib514_SOURCES) \
- $(lib515_SOURCES) $(lib516_SOURCES) $(lib517_SOURCES) \
- $(lib518_SOURCES) $(lib519_SOURCES) $(lib520_SOURCES) \
- $(lib521_SOURCES) $(lib523_SOURCES) $(lib524_SOURCES) \
- $(lib525_SOURCES) $(lib526_SOURCES) $(lib527_SOURCES) \
- $(lib529_SOURCES) $(lib530_SOURCES) $(lib532_SOURCES) \
- $(lib533_SOURCES) $(lib536_SOURCES) $(lib537_SOURCES) \
- $(lib539_SOURCES) $(lib540_SOURCES) $(lib541_SOURCES) \
- $(lib542_SOURCES) $(lib543_SOURCES) $(lib544_SOURCES) \
- $(lib545_SOURCES) $(lib547_SOURCES) $(lib548_SOURCES) \
- $(lib549_SOURCES) $(lib552_SOURCES) $(lib553_SOURCES) \
- $(lib554_SOURCES) $(lib555_SOURCES) $(lib556_SOURCES) \
- $(lib557_SOURCES) $(lib558_SOURCES) $(lib560_SOURCES) \
- $(lib562_SOURCES) $(lib564_SOURCES) $(lib565_SOURCES) \
- $(lib566_SOURCES) $(lib567_SOURCES) $(lib568_SOURCES) \
- $(lib569_SOURCES) $(lib570_SOURCES) $(lib571_SOURCES) \
- $(lib572_SOURCES) $(lib573_SOURCES) $(lib574_SOURCES) \
- $(lib575_SOURCES) $(lib576_SOURCES) $(lib578_SOURCES) \
- $(lib579_SOURCES) $(lib582_SOURCES) $(lib583_SOURCES) \
- $(lib585_SOURCES) $(lib586_SOURCES) $(lib587_SOURCES) \
- $(lib590_SOURCES) $(lib591_SOURCES) $(lib597_SOURCES) \
- $(lib598_SOURCES) $(lib599_SOURCES) $(libauthretry_SOURCES) \
- $(libntlmconnect_SOURCES)
+ $(lib1529_SOURCES) $(lib1530_SOURCES) $(lib1900_SOURCES) \
+ $(lib2033_SOURCES) $(lib500_SOURCES) $(lib501_SOURCES) \
+ $(lib502_SOURCES) $(lib503_SOURCES) $(lib504_SOURCES) \
+ $(lib505_SOURCES) $(lib506_SOURCES) $(lib507_SOURCES) \
+ $(lib508_SOURCES) $(lib509_SOURCES) $(lib510_SOURCES) \
+ $(lib511_SOURCES) $(lib512_SOURCES) $(lib513_SOURCES) \
+ $(lib514_SOURCES) $(lib515_SOURCES) $(lib516_SOURCES) \
+ $(lib517_SOURCES) $(lib518_SOURCES) $(lib519_SOURCES) \
+ $(lib520_SOURCES) $(lib521_SOURCES) $(lib523_SOURCES) \
+ $(lib524_SOURCES) $(lib525_SOURCES) $(lib526_SOURCES) \
+ $(lib527_SOURCES) $(lib529_SOURCES) $(lib530_SOURCES) \
+ $(lib532_SOURCES) $(lib533_SOURCES) $(lib536_SOURCES) \
+ $(lib537_SOURCES) $(lib539_SOURCES) $(lib540_SOURCES) \
+ $(lib541_SOURCES) $(lib542_SOURCES) $(lib543_SOURCES) \
+ $(lib544_SOURCES) $(lib545_SOURCES) $(lib547_SOURCES) \
+ $(lib548_SOURCES) $(lib549_SOURCES) $(lib552_SOURCES) \
+ $(lib553_SOURCES) $(lib554_SOURCES) $(lib555_SOURCES) \
+ $(lib556_SOURCES) $(lib557_SOURCES) $(lib558_SOURCES) \
+ $(lib560_SOURCES) $(lib562_SOURCES) $(lib564_SOURCES) \
+ $(lib565_SOURCES) $(lib566_SOURCES) $(lib567_SOURCES) \
+ $(lib568_SOURCES) $(lib569_SOURCES) $(lib570_SOURCES) \
+ $(lib571_SOURCES) $(lib572_SOURCES) $(lib573_SOURCES) \
+ $(lib574_SOURCES) $(lib575_SOURCES) $(lib576_SOURCES) \
+ $(lib578_SOURCES) $(lib579_SOURCES) $(lib582_SOURCES) \
+ $(lib583_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
+ $(lib587_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \
+ $(lib597_SOURCES) $(lib598_SOURCES) $(lib599_SOURCES) \
+ $(libauthretry_SOURCES) $(libntlmconnect_SOURCES)
DIST_SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
$(lib1500_SOURCES) $(lib1501_SOURCES) $(lib1502_SOURCES) \
$(lib1503_SOURCES) $(lib1504_SOURCES) $(lib1505_SOURCES) \
@@ -867,34 +874,34 @@ DIST_SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
$(lib1512_SOURCES) $(lib1513_SOURCES) $(lib1514_SOURCES) \
$(lib1515_SOURCES) $(lib1520_SOURCES) $(lib1525_SOURCES) \
$(lib1526_SOURCES) $(lib1527_SOURCES) $(lib1528_SOURCES) \
- $(lib1529_SOURCES) $(lib1900_SOURCES) $(lib2033_SOURCES) \
- $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \
- $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \
- $(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \
- $(lib509_SOURCES) $(lib510_SOURCES) $(lib511_SOURCES) \
- $(lib512_SOURCES) $(lib513_SOURCES) $(lib514_SOURCES) \
- $(lib515_SOURCES) $(lib516_SOURCES) $(lib517_SOURCES) \
- $(lib518_SOURCES) $(lib519_SOURCES) $(lib520_SOURCES) \
- $(lib521_SOURCES) $(lib523_SOURCES) $(lib524_SOURCES) \
- $(lib525_SOURCES) $(lib526_SOURCES) $(lib527_SOURCES) \
- $(lib529_SOURCES) $(lib530_SOURCES) $(lib532_SOURCES) \
- $(lib533_SOURCES) $(lib536_SOURCES) $(lib537_SOURCES) \
- $(lib539_SOURCES) $(lib540_SOURCES) $(lib541_SOURCES) \
- $(lib542_SOURCES) $(lib543_SOURCES) $(lib544_SOURCES) \
- $(lib545_SOURCES) $(lib547_SOURCES) $(lib548_SOURCES) \
- $(lib549_SOURCES) $(lib552_SOURCES) $(lib553_SOURCES) \
- $(lib554_SOURCES) $(lib555_SOURCES) $(lib556_SOURCES) \
- $(lib557_SOURCES) $(lib558_SOURCES) $(lib560_SOURCES) \
- $(lib562_SOURCES) $(lib564_SOURCES) $(lib565_SOURCES) \
- $(lib566_SOURCES) $(lib567_SOURCES) $(lib568_SOURCES) \
- $(lib569_SOURCES) $(lib570_SOURCES) $(lib571_SOURCES) \
- $(lib572_SOURCES) $(lib573_SOURCES) $(lib574_SOURCES) \
- $(lib575_SOURCES) $(lib576_SOURCES) $(lib578_SOURCES) \
- $(lib579_SOURCES) $(lib582_SOURCES) $(lib583_SOURCES) \
- $(lib585_SOURCES) $(lib586_SOURCES) $(lib587_SOURCES) \
- $(lib590_SOURCES) $(lib591_SOURCES) $(lib597_SOURCES) \
- $(lib598_SOURCES) $(lib599_SOURCES) $(libauthretry_SOURCES) \
- $(libntlmconnect_SOURCES)
+ $(lib1529_SOURCES) $(lib1530_SOURCES) $(lib1900_SOURCES) \
+ $(lib2033_SOURCES) $(lib500_SOURCES) $(lib501_SOURCES) \
+ $(lib502_SOURCES) $(lib503_SOURCES) $(lib504_SOURCES) \
+ $(lib505_SOURCES) $(lib506_SOURCES) $(lib507_SOURCES) \
+ $(lib508_SOURCES) $(lib509_SOURCES) $(lib510_SOURCES) \
+ $(lib511_SOURCES) $(lib512_SOURCES) $(lib513_SOURCES) \
+ $(lib514_SOURCES) $(lib515_SOURCES) $(lib516_SOURCES) \
+ $(lib517_SOURCES) $(lib518_SOURCES) $(lib519_SOURCES) \
+ $(lib520_SOURCES) $(lib521_SOURCES) $(lib523_SOURCES) \
+ $(lib524_SOURCES) $(lib525_SOURCES) $(lib526_SOURCES) \
+ $(lib527_SOURCES) $(lib529_SOURCES) $(lib530_SOURCES) \
+ $(lib532_SOURCES) $(lib533_SOURCES) $(lib536_SOURCES) \
+ $(lib537_SOURCES) $(lib539_SOURCES) $(lib540_SOURCES) \
+ $(lib541_SOURCES) $(lib542_SOURCES) $(lib543_SOURCES) \
+ $(lib544_SOURCES) $(lib545_SOURCES) $(lib547_SOURCES) \
+ $(lib548_SOURCES) $(lib549_SOURCES) $(lib552_SOURCES) \
+ $(lib553_SOURCES) $(lib554_SOURCES) $(lib555_SOURCES) \
+ $(lib556_SOURCES) $(lib557_SOURCES) $(lib558_SOURCES) \
+ $(lib560_SOURCES) $(lib562_SOURCES) $(lib564_SOURCES) \
+ $(lib565_SOURCES) $(lib566_SOURCES) $(lib567_SOURCES) \
+ $(lib568_SOURCES) $(lib569_SOURCES) $(lib570_SOURCES) \
+ $(lib571_SOURCES) $(lib572_SOURCES) $(lib573_SOURCES) \
+ $(lib574_SOURCES) $(lib575_SOURCES) $(lib576_SOURCES) \
+ $(lib578_SOURCES) $(lib579_SOURCES) $(lib582_SOURCES) \
+ $(lib583_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
+ $(lib587_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \
+ $(lib597_SOURCES) $(lib598_SOURCES) $(lib599_SOURCES) \
+ $(libauthretry_SOURCES) $(libntlmconnect_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -1430,6 +1437,9 @@ lib1528_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1528
lib1529_SOURCES = lib1529.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1529_LDADD = $(TESTUTIL_LIBS)
lib1529_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1529
+lib1530_SOURCES = lib1530.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1530_LDADD = $(TESTUTIL_LIBS)
+lib1530_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1530
lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1900_LDADD = $(TESTUTIL_LIBS)
lib1900_CPPFLAGS = $(AM_CPPFLAGS)
@@ -1654,6 +1664,12 @@ lib1528$(EXEEXT): $(lib1528_OBJECTS) $(lib1528_DEPENDENCIES) $(EXTRA_lib1528_DEP
lib1529$(EXEEXT): $(lib1529_OBJECTS) $(lib1529_DEPENDENCIES) $(EXTRA_lib1529_DEPENDENCIES)
@rm -f lib1529$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(lib1529_OBJECTS) $(lib1529_LDADD) $(LIBS)
+../../lib/lib1530-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \
+ ../../lib/$(DEPDIR)/$(am__dirstamp)
+
+lib1530$(EXEEXT): $(lib1530_OBJECTS) $(lib1530_DEPENDENCIES) $(EXTRA_lib1530_DEPENDENCIES)
+ @rm -f lib1530$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(lib1530_OBJECTS) $(lib1530_LDADD) $(LIBS)
../../lib/lib1900-warnless.$(OBJEXT): ../../lib/$(am__dirstamp) \
../../lib/$(DEPDIR)/$(am__dirstamp)
@@ -2065,6 +2081,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1527-warnless.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1528-warnless.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1529-warnless.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1530-warnless.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1900-warnless.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib2033-warnless.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib502-warnless.Po@am__quote@
@@ -2160,6 +2177,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-first.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-lib1529.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-testutil.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1530-first.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1530-lib1530.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1530-testutil.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1900-first.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1900-lib1900.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1900-testutil.Po@am__quote@
@@ -3602,6 +3622,62 @@ lib1529-testutil.obj: testutil.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1529-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
+lib1530-lib1530.o: lib1530.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-lib1530.o -MD -MP -MF $(DEPDIR)/lib1530-lib1530.Tpo -c -o lib1530-lib1530.o `test -f 'lib1530.c' || echo '$(srcdir)/'`lib1530.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-lib1530.Tpo $(DEPDIR)/lib1530-lib1530.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1530.c' object='lib1530-lib1530.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-lib1530.o `test -f 'lib1530.c' || echo '$(srcdir)/'`lib1530.c
+
+lib1530-lib1530.obj: lib1530.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-lib1530.obj -MD -MP -MF $(DEPDIR)/lib1530-lib1530.Tpo -c -o lib1530-lib1530.obj `if test -f 'lib1530.c'; then $(CYGPATH_W) 'lib1530.c'; else $(CYGPATH_W) '$(srcdir)/lib1530.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-lib1530.Tpo $(DEPDIR)/lib1530-lib1530.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1530.c' object='lib1530-lib1530.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-lib1530.obj `if test -f 'lib1530.c'; then $(CYGPATH_W) 'lib1530.c'; else $(CYGPATH_W) '$(srcdir)/lib1530.c'; fi`
+
+lib1530-first.o: first.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-first.o -MD -MP -MF $(DEPDIR)/lib1530-first.Tpo -c -o lib1530-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-first.Tpo $(DEPDIR)/lib1530-first.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1530-first.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
+
+lib1530-first.obj: first.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-first.obj -MD -MP -MF $(DEPDIR)/lib1530-first.Tpo -c -o lib1530-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-first.Tpo $(DEPDIR)/lib1530-first.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1530-first.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
+
+lib1530-testutil.o: testutil.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-testutil.o -MD -MP -MF $(DEPDIR)/lib1530-testutil.Tpo -c -o lib1530-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-testutil.Tpo $(DEPDIR)/lib1530-testutil.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1530-testutil.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c
+
+lib1530-testutil.obj: testutil.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1530-testutil.obj -MD -MP -MF $(DEPDIR)/lib1530-testutil.Tpo -c -o lib1530-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1530-testutil.Tpo $(DEPDIR)/lib1530-testutil.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1530-testutil.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1530-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`
+
+../../lib/lib1530-warnless.o: ../../lib/warnless.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1530-warnless.o -MD -MP -MF ../../lib/$(DEPDIR)/lib1530-warnless.Tpo -c -o ../../lib/lib1530-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1530-warnless.Tpo ../../lib/$(DEPDIR)/lib1530-warnless.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1530-warnless.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1530-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c
+
+../../lib/lib1530-warnless.obj: ../../lib/warnless.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1530-warnless.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib1530-warnless.Tpo -c -o ../../lib/lib1530-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1530-warnless.Tpo ../../lib/$(DEPDIR)/lib1530-warnless.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1530-warnless.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1530_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1530-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
+
lib1900-lib1900.o: lib1900.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1900_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1900-lib1900.o -MD -MP -MF $(DEPDIR)/lib1900-lib1900.Tpo -c -o lib1900-lib1900.o `test -f 'lib1900.c' || echo '$(srcdir)/'`lib1900.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1900-lib1900.Tpo $(DEPDIR)/lib1900-lib1900.Po
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 3508b804..78d53137 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
@@ -23,7 +23,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 lib1507 lib1508 \
lib1509 lib1510 lib1511 lib1512 lib1513 lib1514 lib1515 \
lib1520 \
- lib1525 lib1526 lib1527 lib1528 lib1529 \
+ lib1525 lib1526 lib1527 lib1528 lib1529 lib1530 \
lib1900 \
lib2033
@@ -380,6 +380,10 @@ lib1529_SOURCES = lib1529.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1529_LDADD = $(TESTUTIL_LIBS)
lib1529_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1529
+lib1530_SOURCES = lib1530.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1530_LDADD = $(TESTUTIL_LIBS)
+lib1530_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1530
+
lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1900_LDADD = $(TESTUTIL_LIBS)
lib1900_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/libtest/lib1530.c b/tests/libtest/lib1530.c
new file mode 100644
index 00000000..76231c97
--- /dev/null
+++ b/tests/libtest/lib1530.c
@@ -0,0 +1,67 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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 http://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"
+
+static curl_socket_t opensocket(void *clientp,
+ curlsocktype purpose,
+ struct curl_sockaddr *address)
+{
+ (void)purpose;
+ (void)address;
+ (void)clientp;
+ fprintf(stderr, "opensocket() returns CURL_SOCKET_BAD\n");
+ return CURL_SOCKET_BAD;
+}
+
+int test(char *URL)
+{
+ CURL *curl = NULL;
+ CURLcode res = CURLE_FAILED_INIT;
+ (void)URL;
+
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
+ fprintf(stderr, "curl_global_init() failed\n");
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ if((curl = curl_easy_init()) == NULL) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ test_setopt(curl, CURLOPT_URL, "http://99.99.99.99:9999");
+ test_setopt(curl, CURLOPT_VERBOSE, 1L);
+ test_setopt(curl, CURLOPT_OPENSOCKETFUNCTION, opensocket);
+
+ res = curl_easy_perform(curl);
+
+test_cleanup:
+
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return (int)res;
+}
diff --git a/tests/runtests.pl b/tests/runtests.pl
index ef9d3c8d..01010913 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -226,7 +226,7 @@ my $has_cares; # set if built with c-ares
my $has_threadedres;# set if built with threaded resolver
# this version is decided by the particular nghttp2 library that is being used
-my $h2cver = "h2c-14";
+my $h2cver = "h2c";
my $has_openssl; # built with a lib using an OpenSSL-like API
my $has_gnutls; # built with GnuTLS
@@ -2346,10 +2346,12 @@ sub checksystem {
}
elsif ($libcurl =~ /nss/i) {
$has_nss=1;
+ $has_sslpinning=1;
$ssllib="NSS";
}
elsif ($libcurl =~ /(yassl|wolfssl)/i) {
$has_yassl=1;
+ $has_sslpinning=1;
$ssllib="yassl";
}
elsif ($libcurl =~ /polarssl/i) {
@@ -5000,19 +5002,29 @@ if(!$listonly) {
# Fetch all disabled tests, if there are any
#
-if(open(D, "<$TESTDIR/DISABLED")) {
- while(<D>) {
- if(/^ *\#/) {
- # allow comments
- next;
- }
- if($_ =~ /(\d+)/) {
- $disabled{$1}=$1; # disable this test number
+sub disabledtests {
+ my ($file) = @_;
+
+ if(open(D, "<$file")) {
+ while(<D>) {
+ if(/^ *\#/) {
+ # allow comments
+ next;
+ }
+ if($_ =~ /(\d+)/) {
+ $disabled{$1}=$1; # disable this test number
+ }
}
+ close(D);
}
- close(D);
}
+# globally disabled tests
+disabledtests("$TESTDIR/DISABLED");
+
+# locally disabled tests, ignored by git etc
+disabledtests("$TESTDIR/DISABLED.local");
+
#######################################################################
# If 'all' tests are requested, find out all test numbers
#
diff --git a/tests/server/Makefile.in b/tests/server/Makefile.in
index db0850b7..88d95d4e 100644
--- a/tests/server/Makefile.in
+++ b/tests/server/Makefile.in
@@ -80,8 +80,7 @@ build_triplet = @build@
host_triplet = @host@
@DOING_NATIVE_WINDOWS_TRUE@am__append_1 = -DCURL_STATICLIB
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp
+ $(srcdir)/Makefile.am $(top_srcdir)/depcomp
noinst_PROGRAMS = getpart$(EXEEXT) resolve$(EXEEXT) rtspd$(EXEEXT) \
sockfilt$(EXEEXT) sws$(EXEEXT) tftpd$(EXEEXT) \
fake_ntlm$(EXEEXT)
@@ -106,7 +105,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
diff --git a/tests/testcurl.pl b/tests/testcurl.pl
index 2dc3de15..2b9e0831 100755
--- a/tests/testcurl.pl
+++ b/tests/testcurl.pl
@@ -61,6 +61,7 @@
use strict;
use Cwd;
+use File::Spec;
# Turn on warnings (equivalent to -w, which can't be used with /usr/bin/env)
#BEGIN { $^W = 1; }
@@ -387,6 +388,10 @@ if (-d $CURLDIR) {
mydie "$CURLDIR is not a daily source dir or checked out from git!"
}
}
+
+# make the path absolute so we can use it everywhere
+$CURLDIR = File::Spec->rel2abs("$CURLDIR");
+
$build="build-$$";
$buildlogname="buildlog-$$";
$buildlog="$pwd/$buildlogname";
@@ -459,7 +464,7 @@ if ($git) {
logit " $_";
}
- chdir "$pwd/$CURLDIR";
+ chdir "$CURLDIR";
}
if($nobuildconf) {
@@ -558,7 +563,7 @@ chdir "$pwd/$build";
if ($configurebuild) {
# run configure script
- print `../$CURLDIR/configure $confopts 2>&1`;
+ print `$CURLDIR/configure $confopts 2>&1`;
if (-f "lib/Makefile") {
logit "configure seems to have finished fine";
@@ -568,26 +573,26 @@ if ($configurebuild) {
} else {
logit "copying files to build dir ...";
if (($^O eq 'MSWin32') && ($targetos !~ /netware/)) {
- system("xcopy /s /q ..\\$CURLDIR .");
+ system("xcopy /s /q \"$CURLDIR\" .");
system("buildconf.bat");
}
elsif ($targetos =~ /netware/) {
- system("cp -afr ../$CURLDIR/* .");
- system("cp -af ../$CURLDIR/Makefile.dist Makefile");
+ system("cp -afr $CURLDIR/* .");
+ system("cp -af $CURLDIR/Makefile.dist Makefile");
system("$make -i -C lib -f Makefile.netware prebuild");
system("$make -i -C src -f Makefile.netware prebuild");
- if (-d "../$CURLDIR/ares") {
+ if (-d "$CURLDIR/ares") {
system("$make -i -C ares -f Makefile.netware prebuild");
}
}
elsif ($^O eq 'linux') {
- system("cp -afr ../$CURLDIR/* .");
- system("cp -af ../$CURLDIR/Makefile.dist Makefile");
- system("cp -af ../$CURLDIR/include/curl/curlbuild.h.dist ./include/curl/curlbuild.h");
+ system("cp -afr $CURLDIR/* .");
+ system("cp -af $CURLDIR/Makefile.dist Makefile");
+ system("cp -af $CURLDIR/include/curl/curlbuild.h.dist ./include/curl/curlbuild.h");
system("$make -i -C lib -f Makefile.$targetos prebuild");
system("$make -i -C src -f Makefile.$targetos prebuild");
- if (-d "../$CURLDIR/ares") {
- system("cp -af ../$CURLDIR/ares/ares_build.h.dist ./ares/ares_build.h");
+ if (-d "$CURLDIR/ares") {
+ system("cp -af $CURLDIR/ares/ares_build.h.dist ./ares/ares_build.h");
system("$make -i -C ares -f Makefile.$targetos prebuild");
}
}
diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in
index fc3bc9ec..1dd7ff68 100644
--- a/tests/unit/Makefile.in
+++ b/tests/unit/Makefile.in
@@ -81,8 +81,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.inc $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
- $(top_srcdir)/depcomp README
+ $(srcdir)/Makefile.am $(top_srcdir)/depcomp README
@BUILD_UNITTESTS_TRUE@noinst_PROGRAMS = $(am__EXEEXT_1)
subdir = tests/unit
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -105,7 +104,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
$(top_builddir)/include/curl/curlbuild.h
CONFIG_CLEAN_FILES =
@@ -115,7 +114,7 @@ am__EXEEXT_1 = unit1300$(EXEEXT) unit1301$(EXEEXT) unit1302$(EXEEXT) \
unit1307$(EXEEXT) unit1308$(EXEEXT) unit1309$(EXEEXT) \
unit1330$(EXEEXT) unit1394$(EXEEXT) unit1395$(EXEEXT) \
unit1396$(EXEEXT) unit1397$(EXEEXT) unit1398$(EXEEXT) \
- unit1600$(EXEEXT) unit1601$(EXEEXT)
+ unit1600$(EXEEXT) unit1601$(EXEEXT) unit1602$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am__dirstamp = $(am__leading_dot)dirstamp
am__objects_1 = ../libtest/unit1300-first.$(OBJEXT)
@@ -225,6 +224,12 @@ unit1601_OBJECTS = $(am_unit1601_OBJECTS)
unit1601_LDADD = $(LDADD)
unit1601_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
$(top_builddir)/lib/libcurlu.la
+am__objects_18 = ../libtest/unit1602-first.$(OBJEXT)
+am_unit1602_OBJECTS = unit1602-unit1602.$(OBJEXT) $(am__objects_18)
+unit1602_OBJECTS = $(am_unit1602_OBJECTS)
+unit1602_LDADD = $(LDADD)
+unit1602_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
+ $(top_builddir)/lib/libcurlu.la
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -264,13 +269,14 @@ SOURCES = $(unit1300_SOURCES) $(unit1301_SOURCES) $(unit1302_SOURCES) \
$(unit1307_SOURCES) $(unit1308_SOURCES) $(unit1309_SOURCES) \
$(unit1330_SOURCES) $(unit1394_SOURCES) $(unit1395_SOURCES) \
$(unit1396_SOURCES) $(unit1397_SOURCES) $(unit1398_SOURCES) \
- $(unit1600_SOURCES) $(unit1601_SOURCES)
+ $(unit1600_SOURCES) $(unit1601_SOURCES) $(unit1602_SOURCES)
DIST_SOURCES = $(unit1300_SOURCES) $(unit1301_SOURCES) \
$(unit1302_SOURCES) $(unit1303_SOURCES) $(unit1304_SOURCES) \
$(unit1305_SOURCES) $(unit1307_SOURCES) $(unit1308_SOURCES) \
$(unit1309_SOURCES) $(unit1330_SOURCES) $(unit1394_SOURCES) \
$(unit1395_SOURCES) $(unit1396_SOURCES) $(unit1397_SOURCES) \
- $(unit1398_SOURCES) $(unit1600_SOURCES) $(unit1601_SOURCES)
+ $(unit1398_SOURCES) $(unit1600_SOURCES) $(unit1601_SOURCES) \
+ $(unit1602_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -554,7 +560,7 @@ UNITFILES = curlcheck.h \
# These are all unit test programs
UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
unit1308 unit1309 unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
- unit1600 unit1601
+ unit1600 unit1601 unit1602
unit1300_SOURCES = unit1300.c $(UNITFILES)
unit1300_CPPFLAGS = $(AM_CPPFLAGS)
@@ -593,6 +599,8 @@ unit1600_SOURCES = unit1600.c $(UNITFILES)
unit1600_CPPFLAGS = $(AM_CPPFLAGS)
unit1601_SOURCES = unit1601.c $(UNITFILES)
unit1601_CPPFLAGS = $(AM_CPPFLAGS)
+unit1602_SOURCES = unit1602.c $(UNITFILES)
+unit1602_CPPFLAGS = $(AM_CPPFLAGS)
all: all-am
.SUFFIXES:
@@ -745,6 +753,12 @@ unit1600$(EXEEXT): $(unit1600_OBJECTS) $(unit1600_DEPENDENCIES) $(EXTRA_unit1600
unit1601$(EXEEXT): $(unit1601_OBJECTS) $(unit1601_DEPENDENCIES) $(EXTRA_unit1601_DEPENDENCIES)
@rm -f unit1601$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(unit1601_OBJECTS) $(unit1601_LDADD) $(LIBS)
+../libtest/unit1602-first.$(OBJEXT): ../libtest/$(am__dirstamp) \
+ ../libtest/$(DEPDIR)/$(am__dirstamp)
+
+unit1602$(EXEEXT): $(unit1602_OBJECTS) $(unit1602_DEPENDENCIES) $(EXTRA_unit1602_DEPENDENCIES)
+ @rm -f unit1602$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unit1602_OBJECTS) $(unit1602_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -770,6 +784,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1398-first.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1600-first.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1601-first.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../libtest/$(DEPDIR)/unit1602-first.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1300-unit1300.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1301-unit1301.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1302-unit1302.Po@am__quote@
@@ -787,6 +802,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1398-unit1398.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1600-unit1600.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1601-unit1601.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1602-unit1602.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -1288,6 +1304,34 @@ unit1601-unit1601.obj: unit1601.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1601_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1601-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi`
+unit1602-unit1602.o: unit1602.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1602-unit1602.o -MD -MP -MF $(DEPDIR)/unit1602-unit1602.Tpo -c -o unit1602-unit1602.o `test -f 'unit1602.c' || echo '$(srcdir)/'`unit1602.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1602-unit1602.Tpo $(DEPDIR)/unit1602-unit1602.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1602.c' object='unit1602-unit1602.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1602-unit1602.o `test -f 'unit1602.c' || echo '$(srcdir)/'`unit1602.c
+
+unit1602-unit1602.obj: unit1602.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unit1602-unit1602.obj -MD -MP -MF $(DEPDIR)/unit1602-unit1602.Tpo -c -o unit1602-unit1602.obj `if test -f 'unit1602.c'; then $(CYGPATH_W) 'unit1602.c'; else $(CYGPATH_W) '$(srcdir)/unit1602.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unit1602-unit1602.Tpo $(DEPDIR)/unit1602-unit1602.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unit1602.c' object='unit1602-unit1602.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unit1602-unit1602.obj `if test -f 'unit1602.c'; then $(CYGPATH_W) 'unit1602.c'; else $(CYGPATH_W) '$(srcdir)/unit1602.c'; fi`
+
+../libtest/unit1602-first.o: ../libtest/first.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1602-first.o -MD -MP -MF ../libtest/$(DEPDIR)/unit1602-first.Tpo -c -o ../libtest/unit1602-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1602-first.Tpo ../libtest/$(DEPDIR)/unit1602-first.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1602-first.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1602-first.o `test -f '../libtest/first.c' || echo '$(srcdir)/'`../libtest/first.c
+
+../libtest/unit1602-first.obj: ../libtest/first.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libtest/unit1602-first.obj -MD -MP -MF ../libtest/$(DEPDIR)/unit1602-first.Tpo -c -o ../libtest/unit1602-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../libtest/$(DEPDIR)/unit1602-first.Tpo ../libtest/$(DEPDIR)/unit1602-first.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../libtest/first.c' object='../libtest/unit1602-first.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit1602_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libtest/unit1602-first.obj `if test -f '../libtest/first.c'; then $(CYGPATH_W) '../libtest/first.c'; else $(CYGPATH_W) '$(srcdir)/../libtest/first.c'; fi`
+
mostlyclean-libtool:
-rm -f *.lo
diff --git a/tests/unit/Makefile.inc b/tests/unit/Makefile.inc
index d68c0370..9073b34e 100644
--- a/tests/unit/Makefile.inc
+++ b/tests/unit/Makefile.inc
@@ -7,7 +7,7 @@ UNITFILES = curlcheck.h \
# These are all unit test programs
UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
unit1308 unit1309 unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
- unit1600 unit1601
+ unit1600 unit1601 unit1602
unit1300_SOURCES = unit1300.c $(UNITFILES)
unit1300_CPPFLAGS = $(AM_CPPFLAGS)
@@ -63,3 +63,6 @@ unit1600_CPPFLAGS = $(AM_CPPFLAGS)
unit1601_SOURCES = unit1601.c $(UNITFILES)
unit1601_CPPFLAGS = $(AM_CPPFLAGS)
+unit1602_SOURCES = unit1602.c $(UNITFILES)
+unit1602_CPPFLAGS = $(AM_CPPFLAGS)
+
diff --git a/tests/unit/unit1305.c b/tests/unit/unit1305.c
index 4f9c609b..96913f1f 100644
--- a/tests/unit/unit1305.c
+++ b/tests/unit/unit1305.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, 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,18 +40,19 @@
#include "memdebug.h" /* LAST include file */
static struct SessionHandle *data;
-static struct curl_hash *hp;
+static struct curl_hash hp;
static char *data_key;
static struct Curl_dns_entry *data_node;
static CURLcode unit_setup( void )
{
+ int rc;
data = curl_easy_init();
if (!data)
return CURLE_OUT_OF_MEMORY;
- hp = Curl_mk_dnscache();
- if(!hp) {
+ rc = Curl_mk_dnscache(&hp);
+ if(rc) {
curl_easy_cleanup(data);
curl_global_cleanup();
return CURLE_OUT_OF_MEMORY;
@@ -66,7 +67,7 @@ static void unit_stop( void )
free(data_node);
}
free(data_key);
- Curl_hash_destroy(hp);
+ Curl_hash_destroy(&hp);
curl_easy_cleanup(data);
curl_global_cleanup();
@@ -129,7 +130,7 @@ UNITTEST_START
key_len = strlen(data_key);
data_node->inuse = 1; /* hash will hold the reference */
- nodep = Curl_hash_add(hp, data_key, key_len+1, data_node);
+ nodep = Curl_hash_add(&hp, data_key, key_len+1, data_node);
abort_unless(nodep, "insertion into hash failed");
/* Freeing will now be done by Curl_hash_destroy */
data_node = NULL;
diff --git a/tests/unit/unit1602.c b/tests/unit/unit1602.c
new file mode 100644
index 00000000..3b25556b
--- /dev/null
+++ b/tests/unit/unit1602.c
@@ -0,0 +1,80 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, 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 http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "curlcheck.h"
+
+#define ENABLE_CURLX_PRINTF
+#include "curlx.h"
+
+#include "hash.h"
+
+#include "memdebug.h" /* LAST include file */
+
+ static CURLcode unit_setup( void )
+{
+ return CURLE_OK;
+}
+
+static void unit_stop( void )
+{
+
+}
+
+static void mydtor(void *p)
+{
+ int *ptr = (int*)p;
+ free(ptr);
+}
+
+UNITTEST_START
+ int *value;
+ int *value2;
+ size_t klen = sizeof(int);
+
+ struct curl_hash hash_static;
+ int key = 20;
+ int key2 = 25;
+ int rc = 0;
+
+ rc = Curl_hash_init(&hash_static, 7, Curl_hash_str,
+ Curl_str_key_compare, mydtor);
+
+ if(rc)
+ {
+ fail("Curl_hash_init failed to initialize static hash!");
+ goto unit_test_abort;
+ }
+
+ value = malloc(sizeof(int));
+ value2 = malloc(sizeof(int));
+
+ *value = 199;
+ *value2 = 204;
+ Curl_hash_add(&hash_static, &key, klen, value);
+
+ Curl_hash_clean(&hash_static);
+
+ /* Attempt to add another key/value pair */
+ Curl_hash_add(&hash_static, &key2, klen, value2);
+
+ Curl_hash_destroy(&hash_static);
+
+UNITTEST_STOP
diff --git a/winbuild/BUILD.WINDOWS.txt b/winbuild/BUILD.WINDOWS.txt
index 7d6b364e..600f7374 100644
--- a/winbuild/BUILD.WINDOWS.txt
+++ b/winbuild/BUILD.WINDOWS.txt
@@ -76,3 +76,14 @@ where <options> is one or many of:
GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
DEBUG=<yes or no> - Debug builds
MACHINE=<x86 or x64> - Target architecture (default is x86)
+
+Static linking of Microsoft's C RunTime (CRT):
+==============================================
+If you are using mode=static nmake will create and link to the static build of
+libcurl but *not* the static CRT. If you must you can force nmake to link in
+the static CRT by passing RTLIBCFG=static. Typically you shouldn't use that
+option, and nmake will default to the DLL CRT. RTLIBCFG is rarely used and
+therefore rarely tested. When passing RTLIBCFG for a configuration that was
+already built but not with that option, or if the option was specified
+differently, you must destroy the build directory containing the configuration
+so that nmake can build it from scratch.