summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/date/lib/timezonedb.h910
-rw-r--r--ext/date/php_date.c21
-rw-r--r--ext/date/tests/bug55397.phpt3
-rw-r--r--ext/date/tests/bug62852.phpt26
-rw-r--r--ext/date/tests/bug62852_var2.phpt25
-rw-r--r--ext/date/tests/bug62852_var3.phpt25
-rw-r--r--ext/gd/config.m42
-rw-r--r--ext/gd/gd.c8
-rw-r--r--ext/gd/libgd/gd_compat.h7
-rw-r--r--ext/gd/libgd/gd_rotate.c9
-rw-r--r--ext/mysqli/mysqli.c2
-rw-r--r--ext/mysqli/tests/bug64726.phpt23
-rw-r--r--ext/mysqlnd/mysqlnd_enum_n_def.h2
-rw-r--r--ext/mysqlnd/mysqlnd_result.c1
-rw-r--r--ext/standard/dns.c2
-rw-r--r--ext/standard/streamsfuncs.c2
-rw-r--r--ext/standard/tests/file/bug24482.phpt5
-rw-r--r--ext/zip/lib/zip_close.c5
-rw-r--r--ext/zip/lib/zip_dirent.c12
-rw-r--r--ext/zip/php_zip.c7
-rw-r--r--ext/zip/tests/bug64342_0.phpt42
-rw-r--r--ext/zip/tests/bug64342_1.phpt37
22 files changed, 688 insertions, 488 deletions
diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h
index 7bf9a9d220..2f9d8fe668 100644
--- a/ext/date/lib/timezonedb.h
+++ b/ext/date/lib/timezonedb.h
@@ -221,366 +221,366 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[579] = {
{ "Antarctica/Davis" , 0x0179E5 },
{ "Antarctica/DumontDUrville" , 0x017A86 },
{ "Antarctica/Macquarie" , 0x017B18 },
- { "Antarctica/Mawson" , 0x017D92 },
- { "Antarctica/McMurdo" , 0x017E0E },
- { "Antarctica/Palmer" , 0x018110 },
- { "Antarctica/Rothera" , 0x01842C },
- { "Antarctica/South_Pole" , 0x0184A2 },
- { "Antarctica/Syowa" , 0x0187AA },
- { "Antarctica/Vostok" , 0x018818 },
- { "Arctic/Longyearbyen" , 0x018889 },
- { "Asia/Aden" , 0x018BBB },
- { "Asia/Almaty" , 0x018C10 },
- { "Asia/Amman" , 0x018D8F },
- { "Asia/Anadyr" , 0x019045 },
- { "Asia/Aqtau" , 0x01922A },
- { "Asia/Aqtobe" , 0x019429 },
- { "Asia/Ashgabat" , 0x0195E1 },
- { "Asia/Ashkhabad" , 0x0196FE },
- { "Asia/Baghdad" , 0x01981B },
- { "Asia/Bahrain" , 0x019990 },
- { "Asia/Baku" , 0x0199F6 },
- { "Asia/Bangkok" , 0x019CDE },
- { "Asia/Beirut" , 0x019D33 },
- { "Asia/Bishkek" , 0x01A040 },
- { "Asia/Brunei" , 0x01A1EC },
- { "Asia/Calcutta" , 0x01A24E },
- { "Asia/Choibalsan" , 0x01A2C7 },
- { "Asia/Chongqing" , 0x01A440 },
- { "Asia/Chungking" , 0x01A52F },
- { "Asia/Colombo" , 0x01A5DE },
- { "Asia/Dacca" , 0x01A67A },
- { "Asia/Damascus" , 0x01A720 },
- { "Asia/Dhaka" , 0x01AA70 },
- { "Asia/Dili" , 0x01AB16 },
- { "Asia/Dubai" , 0x01AB9F },
- { "Asia/Dushanbe" , 0x01ABF4 },
- { "Asia/Gaza" , 0x01ACF7 },
- { "Asia/Harbin" , 0x01AF50 },
- { "Asia/Hebron" , 0x01B037 },
- { "Asia/Ho_Chi_Minh" , 0x01B299 },
- { "Asia/Hong_Kong" , 0x01B311 },
- { "Asia/Hovd" , 0x01B4D3 },
- { "Asia/Irkutsk" , 0x01B64B },
- { "Asia/Istanbul" , 0x01B831 },
- { "Asia/Jakarta" , 0x01BC1E },
- { "Asia/Jayapura" , 0x01BCC8 },
- { "Asia/Jerusalem" , 0x01BD64 },
- { "Asia/Kabul" , 0x01C093 },
- { "Asia/Kamchatka" , 0x01C0E4 },
- { "Asia/Karachi" , 0x01C2C0 },
- { "Asia/Kashgar" , 0x01C375 },
- { "Asia/Kathmandu" , 0x01C446 },
- { "Asia/Katmandu" , 0x01C4AC },
- { "Asia/Khandyga" , 0x01C512 },
- { "Asia/Kolkata" , 0x01C737 },
- { "Asia/Krasnoyarsk" , 0x01C7B0 },
- { "Asia/Kuala_Lumpur" , 0x01C998 },
- { "Asia/Kuching" , 0x01CA55 },
- { "Asia/Kuwait" , 0x01CB43 },
- { "Asia/Macao" , 0x01CB98 },
- { "Asia/Macau" , 0x01CCD3 },
- { "Asia/Magadan" , 0x01CE0E },
- { "Asia/Makassar" , 0x01CFF0 },
- { "Asia/Manila" , 0x01D0B4 },
- { "Asia/Muscat" , 0x01D139 },
- { "Asia/Nicosia" , 0x01D18E },
- { "Asia/Novokuznetsk" , 0x01D476 },
- { "Asia/Novosibirsk" , 0x01D678 },
- { "Asia/Omsk" , 0x01D863 },
- { "Asia/Oral" , 0x01DA4A },
- { "Asia/Phnom_Penh" , 0x01DC1A },
- { "Asia/Pontianak" , 0x01DC92 },
- { "Asia/Pyongyang" , 0x01DD53 },
- { "Asia/Qatar" , 0x01DDC0 },
- { "Asia/Qyzylorda" , 0x01DE26 },
- { "Asia/Rangoon" , 0x01DFFC },
- { "Asia/Riyadh" , 0x01E074 },
- { "Asia/Saigon" , 0x01E0C9 },
- { "Asia/Sakhalin" , 0x01E141 },
- { "Asia/Samarkand" , 0x01E338 },
- { "Asia/Seoul" , 0x01E46E },
- { "Asia/Shanghai" , 0x01E512 },
- { "Asia/Singapore" , 0x01E5F2 },
- { "Asia/Taipei" , 0x01E6A9 },
- { "Asia/Tashkent" , 0x01E7C1 },
- { "Asia/Tbilisi" , 0x01E8F2 },
- { "Asia/Tehran" , 0x01EAAC },
- { "Asia/Tel_Aviv" , 0x01ED1A },
- { "Asia/Thimbu" , 0x01F049 },
- { "Asia/Thimphu" , 0x01F0AF },
- { "Asia/Tokyo" , 0x01F115 },
- { "Asia/Ujung_Pandang" , 0x01F19E },
- { "Asia/Ulaanbaatar" , 0x01F21A },
- { "Asia/Ulan_Bator" , 0x01F375 },
- { "Asia/Urumqi" , 0x01F4C2 },
- { "Asia/Ust-Nera" , 0x01F589 },
- { "Asia/Vientiane" , 0x01F78E },
- { "Asia/Vladivostok" , 0x01F806 },
- { "Asia/Yakutsk" , 0x01F9F2 },
- { "Asia/Yekaterinburg" , 0x01FBD7 },
- { "Asia/Yerevan" , 0x01FDE2 },
- { "Atlantic/Azores" , 0x01FFE2 },
- { "Atlantic/Bermuda" , 0x0204E5 },
- { "Atlantic/Canary" , 0x0207C6 },
- { "Atlantic/Cape_Verde" , 0x020A9C },
- { "Atlantic/Faeroe" , 0x020B15 },
- { "Atlantic/Faroe" , 0x020DB9 },
- { "Atlantic/Jan_Mayen" , 0x02105D },
- { "Atlantic/Madeira" , 0x02138F },
- { "Atlantic/Reykjavik" , 0x021898 },
- { "Atlantic/South_Georgia" , 0x021A51 },
- { "Atlantic/St_Helena" , 0x021C63 },
- { "Atlantic/Stanley" , 0x021A95 },
- { "Australia/ACT" , 0x021CB8 },
- { "Australia/Adelaide" , 0x021FD5 },
- { "Australia/Brisbane" , 0x022301 },
- { "Australia/Broken_Hill" , 0x0223C8 },
- { "Australia/Canberra" , 0x022706 },
- { "Australia/Currie" , 0x022A23 },
- { "Australia/Darwin" , 0x022D56 },
- { "Australia/Eucla" , 0x022DDC },
- { "Australia/Hobart" , 0x022EB1 },
- { "Australia/LHI" , 0x02320F },
- { "Australia/Lindeman" , 0x0234AA },
- { "Australia/Lord_Howe" , 0x02358B },
- { "Australia/Melbourne" , 0x023836 },
- { "Australia/North" , 0x023B5B },
- { "Australia/NSW" , 0x023BCF },
- { "Australia/Perth" , 0x023EEC },
- { "Australia/Queensland" , 0x023FC4 },
- { "Australia/South" , 0x024070 },
- { "Australia/Sydney" , 0x02438D },
- { "Australia/Tasmania" , 0x0246CA },
- { "Australia/Victoria" , 0x024A0F },
- { "Australia/West" , 0x024D2C },
- { "Australia/Yancowinna" , 0x024DE2 },
- { "Brazil/Acre" , 0x025104 },
- { "Brazil/DeNoronha" , 0x025203 },
- { "Brazil/East" , 0x025323 },
- { "Brazil/West" , 0x025600 },
- { "Canada/Atlantic" , 0x0256F8 },
- { "Canada/Central" , 0x025BE0 },
- { "Canada/East-Saskatchewan" , 0x0264EA },
- { "Canada/Eastern" , 0x025FFA },
- { "Canada/Mountain" , 0x026673 },
- { "Canada/Newfoundland" , 0x0269E9 },
- { "Canada/Pacific" , 0x026F14 },
- { "Canada/Saskatchewan" , 0x02732D },
- { "Canada/Yukon" , 0x0274B6 },
- { "CET" , 0x0277B9 },
- { "Chile/Continental" , 0x027AC2 },
- { "Chile/EasterIsland" , 0x027E5D },
- { "CST6CDT" , 0x02819F },
- { "Cuba" , 0x0284F0 },
- { "EET" , 0x028863 },
- { "Egypt" , 0x028B16 },
- { "Eire" , 0x028DD9 },
- { "EST" , 0x0292EA },
- { "EST5EDT" , 0x02932E },
- { "Etc/GMT" , 0x02967F },
- { "Etc/GMT+0" , 0x02974B },
- { "Etc/GMT+1" , 0x0297D5 },
- { "Etc/GMT+10" , 0x029862 },
- { "Etc/GMT+11" , 0x0298F0 },
- { "Etc/GMT+12" , 0x02997E },
- { "Etc/GMT+2" , 0x029A99 },
- { "Etc/GMT+3" , 0x029B25 },
- { "Etc/GMT+4" , 0x029BB1 },
- { "Etc/GMT+5" , 0x029C3D },
- { "Etc/GMT+6" , 0x029CC9 },
- { "Etc/GMT+7" , 0x029D55 },
- { "Etc/GMT+8" , 0x029DE1 },
- { "Etc/GMT+9" , 0x029E6D },
- { "Etc/GMT-0" , 0x029707 },
- { "Etc/GMT-1" , 0x02978F },
- { "Etc/GMT-10" , 0x02981B },
- { "Etc/GMT-11" , 0x0298A9 },
- { "Etc/GMT-12" , 0x029937 },
- { "Etc/GMT-13" , 0x0299C5 },
- { "Etc/GMT-14" , 0x029A0C },
- { "Etc/GMT-2" , 0x029A53 },
- { "Etc/GMT-3" , 0x029ADF },
- { "Etc/GMT-4" , 0x029B6B },
- { "Etc/GMT-5" , 0x029BF7 },
- { "Etc/GMT-6" , 0x029C83 },
- { "Etc/GMT-7" , 0x029D0F },
- { "Etc/GMT-8" , 0x029D9B },
- { "Etc/GMT-9" , 0x029E27 },
- { "Etc/GMT0" , 0x0296C3 },
- { "Etc/Greenwich" , 0x029EB3 },
- { "Etc/UCT" , 0x029EF7 },
- { "Etc/Universal" , 0x029F3B },
- { "Etc/UTC" , 0x029F7F },
- { "Etc/Zulu" , 0x029FC3 },
- { "Europe/Amsterdam" , 0x02A007 },
- { "Europe/Andorra" , 0x02A445 },
- { "Europe/Athens" , 0x02A6C1 },
- { "Europe/Belfast" , 0x02AA04 },
- { "Europe/Belgrade" , 0x02AF3B },
- { "Europe/Berlin" , 0x02B204 },
- { "Europe/Bratislava" , 0x02B568 },
- { "Europe/Brussels" , 0x02B89A },
- { "Europe/Bucharest" , 0x02BCD1 },
- { "Europe/Budapest" , 0x02BFFB },
- { "Europe/Busingen" , 0x02C36E },
- { "Europe/Chisinau" , 0x02C625 },
- { "Europe/Copenhagen" , 0x02C9B3 },
- { "Europe/Dublin" , 0x02CCBD },
- { "Europe/Gibraltar" , 0x02D1CE },
- { "Europe/Guernsey" , 0x02D625 },
- { "Europe/Helsinki" , 0x02DB5C },
- { "Europe/Isle_of_Man" , 0x02DE12 },
- { "Europe/Istanbul" , 0x02E349 },
- { "Europe/Jersey" , 0x02E736 },
- { "Europe/Kaliningrad" , 0x02EC6D },
- { "Europe/Kiev" , 0x02EED3 },
- { "Europe/Lisbon" , 0x02F1EA },
- { "Europe/Ljubljana" , 0x02F6EE },
- { "Europe/London" , 0x02F9B7 },
- { "Europe/Luxembourg" , 0x02FEEE },
- { "Europe/Madrid" , 0x030344 },
- { "Europe/Malta" , 0x03070A },
- { "Europe/Mariehamn" , 0x030AC3 },
- { "Europe/Minsk" , 0x030D79 },
- { "Europe/Monaco" , 0x030F87 },
- { "Europe/Moscow" , 0x0313C2 },
- { "Europe/Nicosia" , 0x031613 },
- { "Europe/Oslo" , 0x0318FB },
- { "Europe/Paris" , 0x031C2D },
- { "Europe/Podgorica" , 0x032073 },
- { "Europe/Prague" , 0x03233C },
- { "Europe/Riga" , 0x03266E },
- { "Europe/Rome" , 0x0329B3 },
- { "Europe/Samara" , 0x032D76 },
- { "Europe/San_Marino" , 0x032FA9 },
- { "Europe/Sarajevo" , 0x03336C },
- { "Europe/Simferopol" , 0x033635 },
- { "Europe/Skopje" , 0x033960 },
- { "Europe/Sofia" , 0x033C29 },
- { "Europe/Stockholm" , 0x033F31 },
- { "Europe/Tallinn" , 0x0341E0 },
- { "Europe/Tirane" , 0x03451A },
- { "Europe/Tiraspol" , 0x034820 },
- { "Europe/Uzhgorod" , 0x034BAE },
- { "Europe/Vaduz" , 0x034EC5 },
- { "Europe/Vatican" , 0x035158 },
- { "Europe/Vienna" , 0x03551B },
- { "Europe/Vilnius" , 0x035848 },
- { "Europe/Volgograd" , 0x035B87 },
- { "Europe/Warsaw" , 0x035D87 },
- { "Europe/Zagreb" , 0x036168 },
- { "Europe/Zaporozhye" , 0x036431 },
- { "Europe/Zurich" , 0x036772 },
- { "Factory" , 0x036A21 },
- { "GB" , 0x036A92 },
- { "GB-Eire" , 0x036FC9 },
- { "GMT" , 0x037500 },
- { "GMT+0" , 0x0375CC },
- { "GMT-0" , 0x037588 },
- { "GMT0" , 0x037544 },
- { "Greenwich" , 0x037610 },
- { "Hongkong" , 0x037654 },
- { "HST" , 0x037816 },
- { "Iceland" , 0x03785A },
- { "Indian/Antananarivo" , 0x037A13 },
- { "Indian/Chagos" , 0x037A87 },
- { "Indian/Christmas" , 0x037AE9 },
- { "Indian/Cocos" , 0x037B2D },
- { "Indian/Comoro" , 0x037B71 },
- { "Indian/Kerguelen" , 0x037BC6 },
- { "Indian/Mahe" , 0x037C1B },
- { "Indian/Maldives" , 0x037C70 },
- { "Indian/Mauritius" , 0x037CC5 },
- { "Indian/Mayotte" , 0x037D3B },
- { "Indian/Reunion" , 0x037D90 },
- { "Iran" , 0x037DE5 },
- { "Israel" , 0x038053 },
- { "Jamaica" , 0x038382 },
- { "Japan" , 0x038447 },
- { "Kwajalein" , 0x0384D0 },
- { "Libya" , 0x038533 },
- { "MET" , 0x03872C },
- { "Mexico/BajaNorte" , 0x038A35 },
- { "Mexico/BajaSur" , 0x038D9E },
- { "Mexico/General" , 0x038FE3 },
- { "MST" , 0x039241 },
- { "MST7MDT" , 0x039285 },
- { "Navajo" , 0x0395D6 },
- { "NZ" , 0x03994F },
- { "NZ-CHAT" , 0x039CCD },
- { "Pacific/Apia" , 0x039FB5 },
- { "Pacific/Auckland" , 0x03A151 },
- { "Pacific/Chatham" , 0x03A4DD },
- { "Pacific/Chuuk" , 0x03A7D4 },
- { "Pacific/Easter" , 0x03A82D },
- { "Pacific/Efate" , 0x03AB8B },
- { "Pacific/Enderbury" , 0x03AC51 },
- { "Pacific/Fakaofo" , 0x03ACBF },
- { "Pacific/Fiji" , 0x03AD10 },
- { "Pacific/Funafuti" , 0x03AEA3 },
- { "Pacific/Galapagos" , 0x03AEE7 },
- { "Pacific/Gambier" , 0x03AF5F },
- { "Pacific/Guadalcanal" , 0x03AFC4 },
- { "Pacific/Guam" , 0x03B019 },
- { "Pacific/Honolulu" , 0x03B06F },
- { "Pacific/Johnston" , 0x03B0E6 },
- { "Pacific/Kiritimati" , 0x03B138 },
- { "Pacific/Kosrae" , 0x03B1A3 },
- { "Pacific/Kwajalein" , 0x03B200 },
- { "Pacific/Majuro" , 0x03B26C },
- { "Pacific/Marquesas" , 0x03B2CB },
- { "Pacific/Midway" , 0x03B332 },
- { "Pacific/Nauru" , 0x03B3BC },
- { "Pacific/Niue" , 0x03B434 },
- { "Pacific/Norfolk" , 0x03B492 },
- { "Pacific/Noumea" , 0x03B4E7 },
- { "Pacific/Pago_Pago" , 0x03B577 },
- { "Pacific/Palau" , 0x03B600 },
- { "Pacific/Pitcairn" , 0x03B644 },
- { "Pacific/Pohnpei" , 0x03B699 },
- { "Pacific/Ponape" , 0x03B6EE },
- { "Pacific/Port_Moresby" , 0x03B733 },
- { "Pacific/Rarotonga" , 0x03B777 },
- { "Pacific/Saipan" , 0x03B853 },
- { "Pacific/Samoa" , 0x03B8B6 },
- { "Pacific/Tahiti" , 0x03B93F },
- { "Pacific/Tarawa" , 0x03B9A4 },
- { "Pacific/Tongatapu" , 0x03B9F8 },
- { "Pacific/Truk" , 0x03BA84 },
- { "Pacific/Wake" , 0x03BAC9 },
- { "Pacific/Wallis" , 0x03BB19 },
- { "Pacific/Yap" , 0x03BB5D },
- { "Poland" , 0x03BBA2 },
- { "Portugal" , 0x03BF83 },
- { "PRC" , 0x03C47F },
- { "PST8PDT" , 0x03C530 },
- { "ROC" , 0x03C881 },
- { "ROK" , 0x03C999 },
- { "Singapore" , 0x03CA3D },
- { "Turkey" , 0x03CAF4 },
- { "UCT" , 0x03CEE1 },
- { "Universal" , 0x03CF25 },
- { "US/Alaska" , 0x03CF69 },
- { "US/Aleutian" , 0x03D2D2 },
- { "US/Arizona" , 0x03D638 },
- { "US/Central" , 0x03D6C6 },
- { "US/East-Indiana" , 0x03E0D0 },
- { "US/Eastern" , 0x03DBD1 },
- { "US/Hawaii" , 0x03E33A },
- { "US/Indiana-Starke" , 0x03E3AB },
- { "US/Michigan" , 0x03E71C },
- { "US/Mountain" , 0x03EA53 },
- { "US/Pacific" , 0x03EDCC },
- { "US/Pacific-New" , 0x03F1D1 },
- { "US/Samoa" , 0x03F5D6 },
- { "UTC" , 0x03F65F },
- { "W-SU" , 0x03F956 },
- { "WET" , 0x03F6A3 },
- { "Zulu" , 0x03FB90 },
+ { "Antarctica/Mawson" , 0x017D5F },
+ { "Antarctica/McMurdo" , 0x017DDB },
+ { "Antarctica/Palmer" , 0x0180DD },
+ { "Antarctica/Rothera" , 0x0183F9 },
+ { "Antarctica/South_Pole" , 0x01846F },
+ { "Antarctica/Syowa" , 0x018777 },
+ { "Antarctica/Vostok" , 0x0187E5 },
+ { "Arctic/Longyearbyen" , 0x018856 },
+ { "Asia/Aden" , 0x018B88 },
+ { "Asia/Almaty" , 0x018BDD },
+ { "Asia/Amman" , 0x018D5C },
+ { "Asia/Anadyr" , 0x019012 },
+ { "Asia/Aqtau" , 0x0191F7 },
+ { "Asia/Aqtobe" , 0x0193F6 },
+ { "Asia/Ashgabat" , 0x0195AE },
+ { "Asia/Ashkhabad" , 0x0196CB },
+ { "Asia/Baghdad" , 0x0197E8 },
+ { "Asia/Bahrain" , 0x01995D },
+ { "Asia/Baku" , 0x0199C3 },
+ { "Asia/Bangkok" , 0x019CAB },
+ { "Asia/Beirut" , 0x019D00 },
+ { "Asia/Bishkek" , 0x01A00D },
+ { "Asia/Brunei" , 0x01A1B9 },
+ { "Asia/Calcutta" , 0x01A21B },
+ { "Asia/Choibalsan" , 0x01A294 },
+ { "Asia/Chongqing" , 0x01A40D },
+ { "Asia/Chungking" , 0x01A4FC },
+ { "Asia/Colombo" , 0x01A5AB },
+ { "Asia/Dacca" , 0x01A647 },
+ { "Asia/Damascus" , 0x01A6ED },
+ { "Asia/Dhaka" , 0x01AA3D },
+ { "Asia/Dili" , 0x01AAE3 },
+ { "Asia/Dubai" , 0x01AB6C },
+ { "Asia/Dushanbe" , 0x01ABC1 },
+ { "Asia/Gaza" , 0x01ACC4 },
+ { "Asia/Harbin" , 0x01B017 },
+ { "Asia/Hebron" , 0x01B0FE },
+ { "Asia/Ho_Chi_Minh" , 0x01B45A },
+ { "Asia/Hong_Kong" , 0x01B4D2 },
+ { "Asia/Hovd" , 0x01B694 },
+ { "Asia/Irkutsk" , 0x01B80C },
+ { "Asia/Istanbul" , 0x01B9F2 },
+ { "Asia/Jakarta" , 0x01BDDF },
+ { "Asia/Jayapura" , 0x01BE89 },
+ { "Asia/Jerusalem" , 0x01BF25 },
+ { "Asia/Kabul" , 0x01C254 },
+ { "Asia/Kamchatka" , 0x01C2A5 },
+ { "Asia/Karachi" , 0x01C481 },
+ { "Asia/Kashgar" , 0x01C536 },
+ { "Asia/Kathmandu" , 0x01C607 },
+ { "Asia/Katmandu" , 0x01C66D },
+ { "Asia/Khandyga" , 0x01C6D3 },
+ { "Asia/Kolkata" , 0x01C8F8 },
+ { "Asia/Krasnoyarsk" , 0x01C971 },
+ { "Asia/Kuala_Lumpur" , 0x01CB59 },
+ { "Asia/Kuching" , 0x01CC16 },
+ { "Asia/Kuwait" , 0x01CD04 },
+ { "Asia/Macao" , 0x01CD59 },
+ { "Asia/Macau" , 0x01CE94 },
+ { "Asia/Magadan" , 0x01CFCF },
+ { "Asia/Makassar" , 0x01D1B1 },
+ { "Asia/Manila" , 0x01D275 },
+ { "Asia/Muscat" , 0x01D2FA },
+ { "Asia/Nicosia" , 0x01D34F },
+ { "Asia/Novokuznetsk" , 0x01D637 },
+ { "Asia/Novosibirsk" , 0x01D839 },
+ { "Asia/Omsk" , 0x01DA24 },
+ { "Asia/Oral" , 0x01DC0B },
+ { "Asia/Phnom_Penh" , 0x01DDDB },
+ { "Asia/Pontianak" , 0x01DE53 },
+ { "Asia/Pyongyang" , 0x01DF14 },
+ { "Asia/Qatar" , 0x01DF81 },
+ { "Asia/Qyzylorda" , 0x01DFE7 },
+ { "Asia/Rangoon" , 0x01E1BD },
+ { "Asia/Riyadh" , 0x01E235 },
+ { "Asia/Saigon" , 0x01E28A },
+ { "Asia/Sakhalin" , 0x01E302 },
+ { "Asia/Samarkand" , 0x01E4F9 },
+ { "Asia/Seoul" , 0x01E62F },
+ { "Asia/Shanghai" , 0x01E6D3 },
+ { "Asia/Singapore" , 0x01E7B3 },
+ { "Asia/Taipei" , 0x01E86A },
+ { "Asia/Tashkent" , 0x01E982 },
+ { "Asia/Tbilisi" , 0x01EAB3 },
+ { "Asia/Tehran" , 0x01EC6D },
+ { "Asia/Tel_Aviv" , 0x01EEDB },
+ { "Asia/Thimbu" , 0x01F20A },
+ { "Asia/Thimphu" , 0x01F270 },
+ { "Asia/Tokyo" , 0x01F2D6 },
+ { "Asia/Ujung_Pandang" , 0x01F35F },
+ { "Asia/Ulaanbaatar" , 0x01F3DB },
+ { "Asia/Ulan_Bator" , 0x01F536 },
+ { "Asia/Urumqi" , 0x01F683 },
+ { "Asia/Ust-Nera" , 0x01F74A },
+ { "Asia/Vientiane" , 0x01F94F },
+ { "Asia/Vladivostok" , 0x01F9C7 },
+ { "Asia/Yakutsk" , 0x01FBB3 },
+ { "Asia/Yekaterinburg" , 0x01FD98 },
+ { "Asia/Yerevan" , 0x01FFA3 },
+ { "Atlantic/Azores" , 0x0201A3 },
+ { "Atlantic/Bermuda" , 0x0206A6 },
+ { "Atlantic/Canary" , 0x020987 },
+ { "Atlantic/Cape_Verde" , 0x020C5D },
+ { "Atlantic/Faeroe" , 0x020CD6 },
+ { "Atlantic/Faroe" , 0x020F7A },
+ { "Atlantic/Jan_Mayen" , 0x02121E },
+ { "Atlantic/Madeira" , 0x021550 },
+ { "Atlantic/Reykjavik" , 0x021A59 },
+ { "Atlantic/South_Georgia" , 0x021C12 },
+ { "Atlantic/St_Helena" , 0x021E24 },
+ { "Atlantic/Stanley" , 0x021C56 },
+ { "Australia/ACT" , 0x021E79 },
+ { "Australia/Adelaide" , 0x022196 },
+ { "Australia/Brisbane" , 0x0224C2 },
+ { "Australia/Broken_Hill" , 0x022589 },
+ { "Australia/Canberra" , 0x0228C7 },
+ { "Australia/Currie" , 0x022BE4 },
+ { "Australia/Darwin" , 0x022F17 },
+ { "Australia/Eucla" , 0x022F9D },
+ { "Australia/Hobart" , 0x023072 },
+ { "Australia/LHI" , 0x0233D0 },
+ { "Australia/Lindeman" , 0x02366B },
+ { "Australia/Lord_Howe" , 0x02374C },
+ { "Australia/Melbourne" , 0x0239F7 },
+ { "Australia/North" , 0x023D1C },
+ { "Australia/NSW" , 0x023D90 },
+ { "Australia/Perth" , 0x0240AD },
+ { "Australia/Queensland" , 0x024185 },
+ { "Australia/South" , 0x024231 },
+ { "Australia/Sydney" , 0x02454E },
+ { "Australia/Tasmania" , 0x02488B },
+ { "Australia/Victoria" , 0x024BD0 },
+ { "Australia/West" , 0x024EED },
+ { "Australia/Yancowinna" , 0x024FA3 },
+ { "Brazil/Acre" , 0x0252C5 },
+ { "Brazil/DeNoronha" , 0x0253C4 },
+ { "Brazil/East" , 0x0254E4 },
+ { "Brazil/West" , 0x0257C1 },
+ { "Canada/Atlantic" , 0x0258B9 },
+ { "Canada/Central" , 0x025DA1 },
+ { "Canada/East-Saskatchewan" , 0x0266AB },
+ { "Canada/Eastern" , 0x0261BB },
+ { "Canada/Mountain" , 0x026834 },
+ { "Canada/Newfoundland" , 0x026BAA },
+ { "Canada/Pacific" , 0x0270D5 },
+ { "Canada/Saskatchewan" , 0x0274EE },
+ { "Canada/Yukon" , 0x027677 },
+ { "CET" , 0x02797A },
+ { "Chile/Continental" , 0x027C83 },
+ { "Chile/EasterIsland" , 0x02801E },
+ { "CST6CDT" , 0x028360 },
+ { "Cuba" , 0x0286B1 },
+ { "EET" , 0x028A24 },
+ { "Egypt" , 0x028CD7 },
+ { "Eire" , 0x028F9A },
+ { "EST" , 0x0294AB },
+ { "EST5EDT" , 0x0294EF },
+ { "Etc/GMT" , 0x029840 },
+ { "Etc/GMT+0" , 0x02990C },
+ { "Etc/GMT+1" , 0x029996 },
+ { "Etc/GMT+10" , 0x029A23 },
+ { "Etc/GMT+11" , 0x029AB1 },
+ { "Etc/GMT+12" , 0x029B3F },
+ { "Etc/GMT+2" , 0x029C5A },
+ { "Etc/GMT+3" , 0x029CE6 },
+ { "Etc/GMT+4" , 0x029D72 },
+ { "Etc/GMT+5" , 0x029DFE },
+ { "Etc/GMT+6" , 0x029E8A },
+ { "Etc/GMT+7" , 0x029F16 },
+ { "Etc/GMT+8" , 0x029FA2 },
+ { "Etc/GMT+9" , 0x02A02E },
+ { "Etc/GMT-0" , 0x0298C8 },
+ { "Etc/GMT-1" , 0x029950 },
+ { "Etc/GMT-10" , 0x0299DC },
+ { "Etc/GMT-11" , 0x029A6A },
+ { "Etc/GMT-12" , 0x029AF8 },
+ { "Etc/GMT-13" , 0x029B86 },
+ { "Etc/GMT-14" , 0x029BCD },
+ { "Etc/GMT-2" , 0x029C14 },
+ { "Etc/GMT-3" , 0x029CA0 },
+ { "Etc/GMT-4" , 0x029D2C },
+ { "Etc/GMT-5" , 0x029DB8 },
+ { "Etc/GMT-6" , 0x029E44 },
+ { "Etc/GMT-7" , 0x029ED0 },
+ { "Etc/GMT-8" , 0x029F5C },
+ { "Etc/GMT-9" , 0x029FE8 },
+ { "Etc/GMT0" , 0x029884 },
+ { "Etc/Greenwich" , 0x02A074 },
+ { "Etc/UCT" , 0x02A0B8 },
+ { "Etc/Universal" , 0x02A0FC },
+ { "Etc/UTC" , 0x02A140 },
+ { "Etc/Zulu" , 0x02A184 },
+ { "Europe/Amsterdam" , 0x02A1C8 },
+ { "Europe/Andorra" , 0x02A606 },
+ { "Europe/Athens" , 0x02A882 },
+ { "Europe/Belfast" , 0x02ABC5 },
+ { "Europe/Belgrade" , 0x02B0FC },
+ { "Europe/Berlin" , 0x02B3C5 },
+ { "Europe/Bratislava" , 0x02B729 },
+ { "Europe/Brussels" , 0x02BA5B },
+ { "Europe/Bucharest" , 0x02BE92 },
+ { "Europe/Budapest" , 0x02C1BC },
+ { "Europe/Busingen" , 0x02C52F },
+ { "Europe/Chisinau" , 0x02C7E6 },
+ { "Europe/Copenhagen" , 0x02CB74 },
+ { "Europe/Dublin" , 0x02CE7E },
+ { "Europe/Gibraltar" , 0x02D38F },
+ { "Europe/Guernsey" , 0x02D7E6 },
+ { "Europe/Helsinki" , 0x02DD1D },
+ { "Europe/Isle_of_Man" , 0x02DFD3 },
+ { "Europe/Istanbul" , 0x02E50A },
+ { "Europe/Jersey" , 0x02E8F7 },
+ { "Europe/Kaliningrad" , 0x02EE2E },
+ { "Europe/Kiev" , 0x02F094 },
+ { "Europe/Lisbon" , 0x02F3AB },
+ { "Europe/Ljubljana" , 0x02F8AF },
+ { "Europe/London" , 0x02FB78 },
+ { "Europe/Luxembourg" , 0x0300AF },
+ { "Europe/Madrid" , 0x030505 },
+ { "Europe/Malta" , 0x0308CB },
+ { "Europe/Mariehamn" , 0x030C84 },
+ { "Europe/Minsk" , 0x030F3A },
+ { "Europe/Monaco" , 0x031148 },
+ { "Europe/Moscow" , 0x031583 },
+ { "Europe/Nicosia" , 0x0317D4 },
+ { "Europe/Oslo" , 0x031ABC },
+ { "Europe/Paris" , 0x031DEE },
+ { "Europe/Podgorica" , 0x032234 },
+ { "Europe/Prague" , 0x0324FD },
+ { "Europe/Riga" , 0x03282F },
+ { "Europe/Rome" , 0x032B74 },
+ { "Europe/Samara" , 0x032F37 },
+ { "Europe/San_Marino" , 0x03316A },
+ { "Europe/Sarajevo" , 0x03352D },
+ { "Europe/Simferopol" , 0x0337F6 },
+ { "Europe/Skopje" , 0x033B21 },
+ { "Europe/Sofia" , 0x033DEA },
+ { "Europe/Stockholm" , 0x0340F2 },
+ { "Europe/Tallinn" , 0x0343A1 },
+ { "Europe/Tirane" , 0x0346DB },
+ { "Europe/Tiraspol" , 0x0349E1 },
+ { "Europe/Uzhgorod" , 0x034D6F },
+ { "Europe/Vaduz" , 0x035086 },
+ { "Europe/Vatican" , 0x035319 },
+ { "Europe/Vienna" , 0x0356DC },
+ { "Europe/Vilnius" , 0x035A09 },
+ { "Europe/Volgograd" , 0x035D48 },
+ { "Europe/Warsaw" , 0x035F48 },
+ { "Europe/Zagreb" , 0x036329 },
+ { "Europe/Zaporozhye" , 0x0365F2 },
+ { "Europe/Zurich" , 0x036933 },
+ { "Factory" , 0x036BE2 },
+ { "GB" , 0x036C53 },
+ { "GB-Eire" , 0x03718A },
+ { "GMT" , 0x0376C1 },
+ { "GMT+0" , 0x03778D },
+ { "GMT-0" , 0x037749 },
+ { "GMT0" , 0x037705 },
+ { "Greenwich" , 0x0377D1 },
+ { "Hongkong" , 0x037815 },
+ { "HST" , 0x0379D7 },
+ { "Iceland" , 0x037A1B },
+ { "Indian/Antananarivo" , 0x037BD4 },
+ { "Indian/Chagos" , 0x037C48 },
+ { "Indian/Christmas" , 0x037CAA },
+ { "Indian/Cocos" , 0x037CEE },
+ { "Indian/Comoro" , 0x037D32 },
+ { "Indian/Kerguelen" , 0x037D87 },
+ { "Indian/Mahe" , 0x037DDC },
+ { "Indian/Maldives" , 0x037E31 },
+ { "Indian/Mauritius" , 0x037E86 },
+ { "Indian/Mayotte" , 0x037EFC },
+ { "Indian/Reunion" , 0x037F51 },
+ { "Iran" , 0x037FA6 },
+ { "Israel" , 0x038214 },
+ { "Jamaica" , 0x038543 },
+ { "Japan" , 0x038608 },
+ { "Kwajalein" , 0x038691 },
+ { "Libya" , 0x0386F4 },
+ { "MET" , 0x0388ED },
+ { "Mexico/BajaNorte" , 0x038BF6 },
+ { "Mexico/BajaSur" , 0x038F5F },
+ { "Mexico/General" , 0x0391A4 },
+ { "MST" , 0x039402 },
+ { "MST7MDT" , 0x039446 },
+ { "Navajo" , 0x039797 },
+ { "NZ" , 0x039B10 },
+ { "NZ-CHAT" , 0x039E8E },
+ { "Pacific/Apia" , 0x03A176 },
+ { "Pacific/Auckland" , 0x03A312 },
+ { "Pacific/Chatham" , 0x03A69E },
+ { "Pacific/Chuuk" , 0x03A995 },
+ { "Pacific/Easter" , 0x03A9EE },
+ { "Pacific/Efate" , 0x03AD4C },
+ { "Pacific/Enderbury" , 0x03AE12 },
+ { "Pacific/Fakaofo" , 0x03AE80 },
+ { "Pacific/Fiji" , 0x03AED1 },
+ { "Pacific/Funafuti" , 0x03B064 },
+ { "Pacific/Galapagos" , 0x03B0A8 },
+ { "Pacific/Gambier" , 0x03B120 },
+ { "Pacific/Guadalcanal" , 0x03B185 },
+ { "Pacific/Guam" , 0x03B1DA },
+ { "Pacific/Honolulu" , 0x03B230 },
+ { "Pacific/Johnston" , 0x03B2A7 },
+ { "Pacific/Kiritimati" , 0x03B2F9 },
+ { "Pacific/Kosrae" , 0x03B364 },
+ { "Pacific/Kwajalein" , 0x03B3C1 },
+ { "Pacific/Majuro" , 0x03B42D },
+ { "Pacific/Marquesas" , 0x03B48C },
+ { "Pacific/Midway" , 0x03B4F3 },
+ { "Pacific/Nauru" , 0x03B57D },
+ { "Pacific/Niue" , 0x03B5F5 },
+ { "Pacific/Norfolk" , 0x03B653 },
+ { "Pacific/Noumea" , 0x03B6A8 },
+ { "Pacific/Pago_Pago" , 0x03B738 },
+ { "Pacific/Palau" , 0x03B7C1 },
+ { "Pacific/Pitcairn" , 0x03B805 },
+ { "Pacific/Pohnpei" , 0x03B85A },
+ { "Pacific/Ponape" , 0x03B8AF },
+ { "Pacific/Port_Moresby" , 0x03B8F4 },
+ { "Pacific/Rarotonga" , 0x03B938 },
+ { "Pacific/Saipan" , 0x03BA14 },
+ { "Pacific/Samoa" , 0x03BA77 },
+ { "Pacific/Tahiti" , 0x03BB00 },
+ { "Pacific/Tarawa" , 0x03BB65 },
+ { "Pacific/Tongatapu" , 0x03BBB9 },
+ { "Pacific/Truk" , 0x03BC45 },
+ { "Pacific/Wake" , 0x03BC8A },
+ { "Pacific/Wallis" , 0x03BCDA },
+ { "Pacific/Yap" , 0x03BD1E },
+ { "Poland" , 0x03BD63 },
+ { "Portugal" , 0x03C144 },
+ { "PRC" , 0x03C640 },
+ { "PST8PDT" , 0x03C6F1 },
+ { "ROC" , 0x03CA42 },
+ { "ROK" , 0x03CB5A },
+ { "Singapore" , 0x03CBFE },
+ { "Turkey" , 0x03CCB5 },
+ { "UCT" , 0x03D0A2 },
+ { "Universal" , 0x03D0E6 },
+ { "US/Alaska" , 0x03D12A },
+ { "US/Aleutian" , 0x03D493 },
+ { "US/Arizona" , 0x03D7F9 },
+ { "US/Central" , 0x03D887 },
+ { "US/East-Indiana" , 0x03E291 },
+ { "US/Eastern" , 0x03DD92 },
+ { "US/Hawaii" , 0x03E4FB },
+ { "US/Indiana-Starke" , 0x03E56C },
+ { "US/Michigan" , 0x03E8DD },
+ { "US/Mountain" , 0x03EC14 },
+ { "US/Pacific" , 0x03EF8D },
+ { "US/Pacific-New" , 0x03F392 },
+ { "US/Samoa" , 0x03F797 },
+ { "UTC" , 0x03F820 },
+ { "W-SU" , 0x03FB17 },
+ { "WET" , 0x03F864 },
+ { "Zulu" , 0x03FD51 },
};
/* This is a generated file, do not modify */
-const unsigned char timelib_timezone_db_data_builtin[261076] = {
+const unsigned char timelib_timezone_db_data_builtin[261525] = {
/* Africa/Abidjan */
@@ -1868,19 +1868,19 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, 0x47, 0x1A, 0xCE, 0xC0, 0x47, 0xD3, 0x52, 0xB0,
0x48, 0xFA, 0xB0, 0xC0, 0x49, 0xB3, 0x34, 0xB0, 0x4A, 0xDA, 0x92, 0xC0, 0x4B, 0xC1, 0x3B, 0x30,
0x4C, 0xA7, 0xFF, 0xC0, 0x4D, 0xA1, 0x1D, 0x30, 0x4E, 0x87, 0xE1, 0xC0, 0x4F, 0x80, 0xFF, 0x30,
-0x50, 0x70, 0xFE, 0x40, 0x51, 0x4E, 0x6C, 0x30, 0x52, 0x50, 0xE0, 0x40, 0x53, 0x49, 0xFD, 0xB0,
-0x54, 0x30, 0xC2, 0x40, 0x55, 0x29, 0xDF, 0xB0, 0x56, 0x10, 0xA4, 0x40, 0x57, 0x09, 0xC1, 0xB0,
-0x57, 0xF0, 0x86, 0x40, 0x58, 0xE9, 0xA3, 0xB0, 0x59, 0xD0, 0x68, 0x40, 0x5A, 0xC9, 0x85, 0xB0,
-0x5B, 0xB9, 0x84, 0xC0, 0x5C, 0xB2, 0xA2, 0x30, 0x5D, 0x99, 0x66, 0xC0, 0x5E, 0x92, 0x84, 0x30,
-0x5F, 0x79, 0x48, 0xC0, 0x60, 0x72, 0x66, 0x30, 0x61, 0x59, 0x2A, 0xC0, 0x62, 0x52, 0x48, 0x30,
-0x63, 0x39, 0x0C, 0xC0, 0x64, 0x32, 0x2A, 0x30, 0x65, 0x18, 0xEE, 0xC0, 0x66, 0x1B, 0x46, 0xB0,
-0x67, 0x02, 0x0B, 0x40, 0x67, 0xFB, 0x28, 0xB0, 0x68, 0xE1, 0xED, 0x40, 0x69, 0xDB, 0x0A, 0xB0,
-0x6A, 0xC1, 0xCF, 0x40, 0x6B, 0xBA, 0xEC, 0xB0, 0x6C, 0xA1, 0xB1, 0x40, 0x6D, 0x9A, 0xCE, 0xB0,
-0x6E, 0x81, 0x93, 0x40, 0x6F, 0x7A, 0xB0, 0xB0, 0x70, 0x6A, 0xAF, 0xC0, 0x71, 0x63, 0xCD, 0x30,
-0x72, 0x4A, 0x91, 0xC0, 0x73, 0x43, 0xAF, 0x30, 0x74, 0x2A, 0x73, 0xC0, 0x75, 0x23, 0x91, 0x30,
-0x76, 0x0A, 0x55, 0xC0, 0x77, 0x03, 0x73, 0x30, 0x77, 0xEA, 0x37, 0xC0, 0x78, 0xE3, 0x55, 0x30,
-0x79, 0xCA, 0x19, 0xC0, 0x7A, 0xC3, 0x37, 0x30, 0x7B, 0xB3, 0x36, 0x40, 0x7C, 0xAC, 0x53, 0xB0,
-0x7D, 0x93, 0x18, 0x40, 0x7E, 0x8C, 0x35, 0xB0, 0x7F, 0x72, 0xFA, 0x40, 0x01, 0x02, 0x01, 0x03,
+0x50, 0x70, 0xFE, 0x40, 0x51, 0x4E, 0x6C, 0x30, 0x52, 0x50, 0xE0, 0x40, 0x53, 0x2E, 0x4E, 0x30,
+0x54, 0x30, 0xC2, 0x40, 0x55, 0x0E, 0x30, 0x30, 0x56, 0x10, 0xA4, 0x40, 0x56, 0xF7, 0x4C, 0xB0,
+0x57, 0xF0, 0x86, 0x40, 0x58, 0xD7, 0x2E, 0xB0, 0x59, 0xD0, 0x68, 0x40, 0x5A, 0xB7, 0x10, 0xB0,
+0x5B, 0xB9, 0x84, 0xC0, 0x5C, 0x96, 0xF2, 0xB0, 0x5D, 0x99, 0x66, 0xC0, 0x5E, 0x76, 0xD4, 0xB0,
+0x5F, 0x79, 0x48, 0xC0, 0x60, 0x5F, 0xF1, 0x30, 0x61, 0x59, 0x2A, 0xC0, 0x62, 0x3F, 0xD3, 0x30,
+0x63, 0x39, 0x0C, 0xC0, 0x64, 0x1F, 0xB5, 0x30, 0x65, 0x18, 0xEE, 0xC0, 0x65, 0xFF, 0x97, 0x30,
+0x67, 0x02, 0x0B, 0x40, 0x67, 0xDF, 0x79, 0x30, 0x68, 0xE1, 0xED, 0x40, 0x69, 0xBF, 0x5B, 0x30,
+0x6A, 0xC1, 0xCF, 0x40, 0x6B, 0xA8, 0x77, 0xB0, 0x6C, 0xA1, 0xB1, 0x40, 0x6D, 0x88, 0x59, 0xB0,
+0x6E, 0x81, 0x93, 0x40, 0x6F, 0x68, 0x3B, 0xB0, 0x70, 0x6A, 0xAF, 0xC0, 0x71, 0x48, 0x1D, 0xB0,
+0x72, 0x4A, 0x91, 0xC0, 0x73, 0x27, 0xFF, 0xB0, 0x74, 0x2A, 0x73, 0xC0, 0x75, 0x11, 0x1C, 0x30,
+0x76, 0x0A, 0x55, 0xC0, 0x76, 0xF0, 0xFE, 0x30, 0x77, 0xEA, 0x37, 0xC0, 0x78, 0xD0, 0xE0, 0x30,
+0x79, 0xCA, 0x19, 0xC0, 0x7A, 0xB0, 0xC2, 0x30, 0x7B, 0xB3, 0x36, 0x40, 0x7C, 0x90, 0xA4, 0x30,
+0x7D, 0x93, 0x18, 0x40, 0x7E, 0x70, 0x86, 0x30, 0x7F, 0x72, 0xFA, 0x40, 0x01, 0x02, 0x01, 0x03,
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
@@ -7214,46 +7214,43 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
0x69, 0x65,
/* Antarctica/Macquarie */
-0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x91, 0x05, 0x5B, 0x00,
-0x9B, 0xD5, 0x78, 0x80, 0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70,
-0xCC, 0xB7, 0x56, 0x80, 0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70,
-0xFB, 0xC2, 0x8D, 0x00, 0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80,
-0xFF, 0xA7, 0x3B, 0x00, 0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00,
-0x03, 0x70, 0x39, 0x80, 0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80,
-0x07, 0x2F, 0xFD, 0x80, 0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80,
-0x0A, 0xEF, 0xC1, 0x80, 0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00,
-0x0E, 0xB8, 0xC0, 0x00, 0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00,
-0x12, 0x78, 0x84, 0x00, 0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00,
-0x16, 0x38, 0x48, 0x00, 0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00,
-0x1A, 0x01, 0x46, 0x80, 0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80,
-0x1D, 0xC1, 0x0A, 0x80, 0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80,
-0x21, 0x80, 0xCE, 0x80, 0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00,
-0x25, 0x49, 0xCD, 0x00, 0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00,
-0x28, 0xED, 0xE1, 0x80, 0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00,
-0x2C, 0xAD, 0xA5, 0x80, 0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00,
-0x30, 0x6D, 0x69, 0x80, 0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80,
-0x34, 0x36, 0x68, 0x00, 0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80,
-0x37, 0xF6, 0x2C, 0x00, 0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80,
-0x3B, 0xBF, 0x2A, 0x80, 0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00,
-0x3F, 0x7E, 0xEE, 0x80, 0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00,
-0x43, 0x3E, 0xB2, 0x80, 0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00,
-0x47, 0x07, 0xB1, 0x00, 0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00,
-0x4A, 0xC7, 0x75, 0x00, 0x4B, 0xB7, 0x66, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C,
-0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00,
-0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x7A, 0x7A, 0x7A, 0x00, 0x45,
-0x53, 0x54, 0x00, 0x4D, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x2B, 0x30, 0x02, 0x05, 0x32, 0x58, 0x00, 0x00, 0x00, 0x2A,
-0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
-0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x4D, 0x61, 0x63, 0x71, 0x75, 0x61,
-0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
+0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0xD5, 0x78, 0x80,
+0x9C, 0xBC, 0x20, 0xF0, 0xA0, 0x87, 0xB4, 0x60, 0xD7, 0x0C, 0x68, 0x00, 0xFB, 0xC2, 0x8D, 0x00,
+0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80, 0xFF, 0xA7, 0x3B, 0x00,
+0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00, 0x03, 0x70, 0x39, 0x80,
+0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80,
+0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80,
+0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00,
+0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00,
+0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00,
+0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, 0x1A, 0x01, 0x46, 0x80,
+0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80,
+0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80,
+0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00,
+0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xED, 0xE1, 0x80,
+0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xAD, 0xA5, 0x80,
+0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x6D, 0x69, 0x80,
+0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x36, 0x68, 0x00,
+0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, 0x37, 0xF6, 0x2C, 0x00,
+0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xBF, 0x2A, 0x80,
+0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x7E, 0xEE, 0x80,
+0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x3E, 0xB2, 0x80,
+0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x07, 0xB1, 0x00,
+0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00,
+0x4B, 0xB7, 0x66, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00,
+0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0,
+0x00, 0x08, 0x45, 0x53, 0x54, 0x00, 0x7A, 0x7A, 0x7A, 0x00, 0x4D, 0x49, 0x53, 0x54, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x2B, 0x30, 0x02,
+0x05, 0x32, 0x58, 0x00, 0x00, 0x00, 0x10, 0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65,
+0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
/* Antarctica/Mawson */
0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -8101,7 +8098,7 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
/* Asia/Gaza */
0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
+0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0,
0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, 0xD3, 0x65, 0xB0, 0x80,
0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60,
@@ -8122,21 +8119,37 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0,
0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0,
0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60,
-0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0,
-0x48, 0xB7, 0x11, 0xD0, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C,
-0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x96, 0xF3, 0xDC, 0x4E, 0x35, 0xC2, 0x50, 0x4F, 0x74, 0xDB, 0x60,
-0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01,
+0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xEC, 0x18, 0xE0,
+0x48, 0xB7, 0x11, 0xD0, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x3C, 0x60, 0x4B, 0xAD, 0x2E, 0x9C,
+0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x94, 0xF9, 0x9C, 0x4E, 0x35, 0xC2, 0x50, 0x4F, 0x74, 0xDB, 0x60,
+0x50, 0x5B, 0x91, 0xE0, 0x51, 0x54, 0xBD, 0x60, 0x52, 0x44, 0xAE, 0x60, 0x53, 0x34, 0x9F, 0x60,
+0x54, 0x24, 0x90, 0x60, 0x55, 0x14, 0x81, 0x60, 0x56, 0x04, 0x72, 0x60, 0x56, 0xFD, 0x9D, 0xE0,
+0x57, 0xE4, 0x54, 0x60, 0x58, 0xDD, 0x7F, 0xE0, 0x59, 0xC4, 0x36, 0x60, 0x5A, 0xBD, 0x61, 0xE0,
+0x5B, 0xA4, 0x18, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0x8D, 0x34, 0xE0, 0x5E, 0x7D, 0x25, 0xE0,
+0x5F, 0x6D, 0x16, 0xE0, 0x60, 0x5D, 0x07, 0xE0, 0x61, 0x4C, 0xF8, 0xE0, 0x62, 0x46, 0x24, 0x60,
+0x63, 0x2C, 0xDA, 0xE0, 0x64, 0x26, 0x06, 0x60, 0x65, 0x0C, 0xBC, 0xE0, 0x66, 0x05, 0xE8, 0x60,
+0x66, 0xF5, 0xD9, 0x60, 0x67, 0xE5, 0xCA, 0x60, 0x68, 0xD5, 0xBB, 0x60, 0x69, 0xC5, 0xAC, 0x60,
+0x6A, 0xB5, 0x9D, 0x60, 0x6B, 0xA5, 0x8E, 0x60, 0x6C, 0x95, 0x7F, 0x60, 0x6D, 0x8E, 0xAA, 0xE0,
+0x6E, 0x75, 0x61, 0x60, 0x6F, 0x6E, 0x8C, 0xE0, 0x70, 0x55, 0x43, 0x60, 0x71, 0x4E, 0x6E, 0xE0,
+0x72, 0x3E, 0x5F, 0xE0, 0x73, 0x2E, 0x50, 0xE0, 0x74, 0x1E, 0x41, 0xE0, 0x75, 0x0E, 0x32, 0xE0,
+0x75, 0xFE, 0x23, 0xE0, 0x76, 0xF7, 0x4F, 0x60, 0x77, 0xDE, 0x05, 0xE0, 0x78, 0xD7, 0x31, 0x60,
+0x79, 0xBD, 0xE7, 0xE0, 0x7A, 0xB7, 0x13, 0x60, 0x7B, 0x9D, 0xC9, 0xE0, 0x7C, 0x96, 0xF5, 0x60,
+0x7D, 0x86, 0xE6, 0x60, 0x7E, 0x76, 0xD7, 0x60, 0x7F, 0x66, 0xC8, 0x60, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02,
-0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00,
-0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D,
-0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49,
-0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47,
-0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30,
+0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00,
+0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00,
+0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x64,
+0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74,
+0x72, 0x69, 0x70,
/* Asia/Harbin */
0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -8158,7 +8171,7 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
/* Asia/Hebron */
0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
+0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0,
0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, 0xD3, 0x65, 0xB0, 0x80,
0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60,
@@ -8179,22 +8192,37 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0,
0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0,
0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60,
-0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0,
-0x48, 0xBB, 0x06, 0x50, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C,
-0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x95, 0xA2, 0x5C, 0x4E, 0x35, 0xC2, 0x50, 0x4E, 0x5C, 0x0B, 0xE0,
-0x4E, 0x85, 0x06, 0x80, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01,
-0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01,
+0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xEC, 0x18, 0xE0,
+0x48, 0xBB, 0x06, 0x50, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x3C, 0x60, 0x4B, 0xAB, 0xDC, 0xE0,
+0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x94, 0xF9, 0x9C, 0x4E, 0x35, 0xC2, 0x50, 0x4E, 0x5C, 0x0B, 0xE0,
+0x4E, 0x84, 0xDC, 0x50, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x5B, 0x91, 0xE0, 0x51, 0x54, 0xBD, 0x60,
+0x52, 0x44, 0xAE, 0x60, 0x53, 0x34, 0x9F, 0x60, 0x54, 0x24, 0x90, 0x60, 0x55, 0x14, 0x81, 0x60,
+0x56, 0x04, 0x72, 0x60, 0x56, 0xFD, 0x9D, 0xE0, 0x57, 0xE4, 0x54, 0x60, 0x58, 0xDD, 0x7F, 0xE0,
+0x59, 0xC4, 0x36, 0x60, 0x5A, 0xBD, 0x61, 0xE0, 0x5B, 0xA4, 0x18, 0x60, 0x5C, 0x9D, 0x43, 0xE0,
+0x5D, 0x8D, 0x34, 0xE0, 0x5E, 0x7D, 0x25, 0xE0, 0x5F, 0x6D, 0x16, 0xE0, 0x60, 0x5D, 0x07, 0xE0,
+0x61, 0x4C, 0xF8, 0xE0, 0x62, 0x46, 0x24, 0x60, 0x63, 0x2C, 0xDA, 0xE0, 0x64, 0x26, 0x06, 0x60,
+0x65, 0x0C, 0xBC, 0xE0, 0x66, 0x05, 0xE8, 0x60, 0x66, 0xF5, 0xD9, 0x60, 0x67, 0xE5, 0xCA, 0x60,
+0x68, 0xD5, 0xBB, 0x60, 0x69, 0xC5, 0xAC, 0x60, 0x6A, 0xB5, 0x9D, 0x60, 0x6B, 0xA5, 0x8E, 0x60,
+0x6C, 0x95, 0x7F, 0x60, 0x6D, 0x8E, 0xAA, 0xE0, 0x6E, 0x75, 0x61, 0x60, 0x6F, 0x6E, 0x8C, 0xE0,
+0x70, 0x55, 0x43, 0x60, 0x71, 0x4E, 0x6E, 0xE0, 0x72, 0x3E, 0x5F, 0xE0, 0x73, 0x2E, 0x50, 0xE0,
+0x74, 0x1E, 0x41, 0xE0, 0x75, 0x0E, 0x32, 0xE0, 0x75, 0xFE, 0x23, 0xE0, 0x76, 0xF7, 0x4F, 0x60,
+0x77, 0xDE, 0x05, 0xE0, 0x78, 0xD7, 0x31, 0x60, 0x79, 0xBD, 0xE7, 0xE0, 0x7A, 0xB7, 0x13, 0x60,
+0x7B, 0x9D, 0xC9, 0xE0, 0x7C, 0x96, 0xF5, 0x60, 0x7D, 0x86, 0xE6, 0x60, 0x7E, 0x76, 0xD7, 0x60,
+0x7F, 0x66, 0xC8, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30,
-0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00,
-0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00,
-0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x71,
-0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61,
-0x6E, 0x6B,
+0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02,
+0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20,
+0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00,
+0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45,
+0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00,
+0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B,
/* Asia/Ho_Chi_Minh */
0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -18382,4 +18410,4 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
0x00, 0x00, 0x00, 0x00, };
-const timelib_tzdb timezonedb_builtin = { "2013.2", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+const timelib_tzdb timezonedb_builtin = { "2013.3", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 2e616b1704..e27be7d81e 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2554,13 +2554,15 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
case TIMELIB_ZONETYPE_OFFSET:
case TIMELIB_ZONETYPE_ABBR: {
char *tmp = emalloc(Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2);
+ int ret;
snprintf(tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2, "%s %s", Z_STRVAL_PP(z_date), Z_STRVAL_PP(z_timezone));
- php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC);
+ ret = php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC);
efree(tmp);
- return 1;
+ return 1 == ret;
}
- case TIMELIB_ZONETYPE_ID:
+ case TIMELIB_ZONETYPE_ID: {
+ int ret;
convert_to_string(*z_timezone);
tzi = php_date_parse_tzfile(Z_STRVAL_PP(z_timezone), DATE_TIMEZONEDB TSRMLS_CC);
@@ -2571,9 +2573,10 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
tzobj->tzi.tz = tzi;
tzobj->initialized = 1;
- php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC);
+ ret = php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC);
zval_ptr_dtor(&tmp_obj);
- return 1;
+ return 1 == ret;
+ }
}
}
}
@@ -2597,7 +2600,9 @@ PHP_METHOD(DateTime, __set_state)
php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
- php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC);
+ if (!php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC)) {
+ php_error(E_ERROR, "Invalid serialization data for DateTime object");
+ }
}
/* }}} */
@@ -2613,7 +2618,9 @@ PHP_METHOD(DateTime, __wakeup)
myht = Z_OBJPROP_P(object);
- php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC);
+ if (!php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC)) {
+ php_error(E_ERROR, "Invalid serialization data for DateTime object");
+ }
}
/* }}} */
diff --git a/ext/date/tests/bug55397.phpt b/ext/date/tests/bug55397.phpt
index efc09b5047..13778a00b2 100644
--- a/ext/date/tests/bug55397.phpt
+++ b/ext/date/tests/bug55397.phpt
@@ -7,5 +7,4 @@ date_default_timezone_set('Europe/Prague');
var_dump(unserialize('O:8:"DateTime":0:{}') == new DateTime);
?>
--EXPECTF--
-Warning: %s: Trying to compare an incomplete DateTime object in %s on line %d
-bool(false)
+Fatal error: Invalid serialization data for DateTime object in %sbug55397.php on line %d
diff --git a/ext/date/tests/bug62852.phpt b/ext/date/tests/bug62852.phpt
index 26de510215..7013a3f97c 100644
--- a/ext/date/tests/bug62852.phpt
+++ b/ext/date/tests/bug62852.phpt
@@ -1,36 +1,14 @@
--TEST--
-Bug #62852 (Unserialize invalid DateTime causes crash)
+Bug #62852 (Unserialize invalid DateTime causes crash), variation 1
--INI--
date.timezone=GMT
---XFAIL--
-bug is not fixed yet
--FILE--
<?php
$s1 = 'O:8:"DateTime":3:{s:4:"date";s:20:"10007-06-07 03:51:49";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}';
-$s2 = 'O:3:"Foo":3:{s:4:"date";s:20:"10007-06-07 03:51:49";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}';
-global $foo;
-
-class Foo extends DateTime {
- function __wakeup() {
- global $foo;
- $foo = $this;
- parent::__wakeup();
- }
-}
-
-// Old test case
try {
unserialize( $s1 );
} catch ( Exception $e ) {}
-// My test case
-try {
- unserialize( $s2 );
-} catch ( Exception $e ) {}
-var_dump( $foo );
-
-echo "okey";
-?>
--EXPECTF--
-okey
+Fatal error: Invalid serialization data for DateTime object in %sbug62852.php on line %d
diff --git a/ext/date/tests/bug62852_var2.phpt b/ext/date/tests/bug62852_var2.phpt
new file mode 100644
index 0000000000..f93ba28ab1
--- /dev/null
+++ b/ext/date/tests/bug62852_var2.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #62852 (Unserialize invalid DateTime causes crash), variation 2
+--INI--
+date.timezone=GMT
+--FILE--
+<?php
+$s2 = 'O:3:"Foo":3:{s:4:"date";s:20:"10007-06-07 03:51:49";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}';
+
+global $foo;
+
+class Foo extends DateTime {
+ function __wakeup() {
+ global $foo;
+ $foo = $this;
+ parent::__wakeup();
+ }
+}
+
+try {
+ unserialize( $s2 );
+} catch ( Exception $e ) {}
+var_dump( $foo );
+
+--EXPECTF--
+Fatal error: Invalid serialization data for DateTime object in %sbug62852_var2.php on line %d
diff --git a/ext/date/tests/bug62852_var3.phpt b/ext/date/tests/bug62852_var3.phpt
new file mode 100644
index 0000000000..5a644b5470
--- /dev/null
+++ b/ext/date/tests/bug62852_var3.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #62852 (Unserialize invalid DateTime causes crash), variation 3
+--INI--
+date.timezone=GMT
+--FILE--
+<?php
+$s2 = 'O:3:"Foo":3:{s:4:"date";s:19:"0000-00-00 00:00:00";s:13:"timezone_type";i:0;s:8:"timezone";s:3:"UTC";}';
+
+global $foo;
+
+class Foo extends DateTime {
+ function __wakeup() {
+ global $foo;
+ $foo = $this;
+ parent::__wakeup();
+ }
+}
+
+try {
+ unserialize( $s2 );
+} catch ( Exception $e ) {}
+var_dump( $foo );
+
+--EXPECTF--
+Fatal error: Invalid serialization data for DateTime object in %sbug62852_var3.php on line %d
diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
index ebbdb92fb9..d85c8b985c 100644
--- a/ext/gd/config.m4
+++ b/ext/gd/config.m4
@@ -252,6 +252,8 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
PHP_CHECK_LIBRARY(gd, gdFreeFontCache, [AC_DEFINE(HAVE_GD_FREEFONTCACHE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdFontCacheMutexSetup, [AC_DEFINE(HAVE_GD_FONTMUTEX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx, [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImageConvolution, [AC_DEFINE(HAVE_GD_IMAGE_CONVOLUTION, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImagePixelate, [AC_DEFINE(HAVE_GD_IMAGE_PIXELATE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
])
dnl
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 3bb9fa2e5f..25f53687c1 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -1241,9 +1241,13 @@ PHP_RSHUTDOWN_FUNCTION(gd)
/* }}} */
#if HAVE_GD_BUNDLED
-#define PHP_GD_VERSION_STRING "bundled (2.0.34 compatible)"
+#define PHP_GD_VERSION_STRING "bundled (2.1.0 compatible)"
#else
-#define PHP_GD_VERSION_STRING "2.0"
+# ifdef GD_VERSION_STRING
+# define PHP_GD_VERSION_STRING GD_VERSION_STRING
+# else
+# define PHP_GD_VERSION_STRING "2.0"
+# endif
#endif
/* {{{ PHP_MINFO_FUNCTION
diff --git a/ext/gd/libgd/gd_compat.h b/ext/gd/libgd/gd_compat.h
index c084a0069c..779e709a63 100644
--- a/ext/gd/libgd/gd_compat.h
+++ b/ext/gd/libgd/gd_compat.h
@@ -32,6 +32,7 @@ int gdImageContrast(gdImagePtr src, double contrast);
/* Simply adds or substracts respectively red, green or blue to a pixel */
int gdImageColor(gdImagePtr src, const int red, const int green, const int blue, const int alpha);
+#if !defined(HAVE_GD_IMAGE_CONVOLUTION)
/* Image convolution by a 3x3 custom matrix */
int gdImageConvolution(gdImagePtr src, float ft[3][3], float filter_div, float offset);
int gdImageEdgeDetectQuick(gdImagePtr src);
@@ -40,12 +41,18 @@ int gdImageSelectiveBlur( gdImagePtr src);
int gdImageEmboss(gdImagePtr im);
int gdImageMeanRemoval(gdImagePtr im);
int gdImageSmooth(gdImagePtr im, float weight);
+#endif
+
+#if !defined(HAVE_GD_IMAGE_PIXELATE)
enum gdPixelateMode {
GD_PIXELATE_UPPERLEFT,
GD_PIXELATE_AVERAGE
};
int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
+#endif
+
+int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
#if !HAVE_GD_IMAGEELLIPSE
void gdImageEllipse(gdImagePtr im, int cx, int cy, int w, int h, int c);
diff --git a/ext/gd/libgd/gd_rotate.c b/ext/gd/libgd/gd_rotate.c
index 430d51d963..e94809ae77 100644
--- a/ext/gd/libgd/gd_rotate.c
+++ b/ext/gd/libgd/gd_rotate.c
@@ -216,12 +216,13 @@ gdImagePtr gdImageRotate90 (gdImagePtr src, int ignoretransparent)
f = gdImageGetPixel;
}
dst = gdImageCreateTrueColor(src->sy, src->sx);
- dst->transparent = src->transparent;
if (dst != NULL) {
int old_blendmode = dst->alphaBlendingFlag;
dst->alphaBlendingFlag = 0;
+ dst->transparent = src->transparent;
+
gdImagePaletteCopy (dst, src);
for (uY = 0; uY<src->sy; uY++) {
@@ -262,12 +263,13 @@ gdImagePtr gdImageRotate180 (gdImagePtr src, int ignoretransparent)
f = gdImageGetPixel;
}
dst = gdImageCreateTrueColor(src->sx, src->sy);
- dst->transparent = src->transparent;
if (dst != NULL) {
int old_blendmode = dst->alphaBlendingFlag;
dst->alphaBlendingFlag = 0;
+ dst->transparent = src->transparent;
+
gdImagePaletteCopy (dst, src);
for (uY = 0; uY<src->sy; uY++) {
@@ -309,12 +311,13 @@ gdImagePtr gdImageRotate270 (gdImagePtr src, int ignoretransparent)
f = gdImageGetPixel;
}
dst = gdImageCreateTrueColor (src->sy, src->sx);
- dst->transparent = src->transparent;
if (dst != NULL) {
int old_blendmode = dst->alphaBlendingFlag;
dst->alphaBlendingFlag = 0;
+ dst->transparent = src->transparent;
+
gdImagePaletteCopy (dst, src);
for (uY = 0; uY<src->sy; uY++) {
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index 86f6070e6d..2941b4a899 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -1259,7 +1259,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
#endif
- if (into_object && Z_TYPE_P(return_value) != IS_NULL) {
+ if (into_object && Z_TYPE_P(return_value) == IS_ARRAY) {
zval dataset = *return_value;
zend_fcall_info fci;
zend_fcall_info_cache fcc;
diff --git a/ext/mysqli/tests/bug64726.phpt b/ext/mysqli/tests/bug64726.phpt
new file mode 100644
index 0000000000..83c4e3c1e9
--- /dev/null
+++ b/ext/mysqli/tests/bug64726.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #63398 (Memleak when calling fetch_object on a use_result and DB pointer has closed)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once("connect.inc");
+if (!$IS_MYSQLND) {
+ die("skip mysqlnd only test");
+}
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+require 'connect.inc';
+$db = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
+
+$result = $db->query('SELECT 1', MYSQLI_USE_RESULT);
+$db->close();
+var_dump($result->fetch_object());
+?>
+--EXPECTF--
+Warning: mysqli_result::fetch_object(): Error while reading a row in %sbug64726.php on line %d
+bool(false)
diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h
index 10deb03812..f02a5b119a 100644
--- a/ext/mysqlnd/mysqlnd_enum_n_def.h
+++ b/ext/mysqlnd/mysqlnd_enum_n_def.h
@@ -39,7 +39,7 @@
#define MYSQLND_SQLSTATE_LENGTH 5
#define MYSQLND_SQLSTATE_NULL "00000"
-#define MYSQLND_MAX_ALLOWED_USER_LEN 256 /* 64 char * 4byte . MySQL supports now only 16 char, but let it be forward compatible */
+#define MYSQLND_MAX_ALLOWED_USER_LEN 252 /* 63 char * 4byte . MySQL supports now only 16 char, but let it be forward compatible */
#define MYSQLND_MAX_ALLOWED_DB_LEN 1024 /* 256 char * 4byte. MySQL supports now only 64 char in the tables, but on the FS could be different. Forward compatible. */
#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE 4096
diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c
index 884de8bcee..a5ea3c498b 100644
--- a/ext/mysqlnd/mysqlnd_result.c
+++ b/ext/mysqlnd/mysqlnd_result.c
@@ -1547,6 +1547,7 @@ MYSQLND_METHOD(mysqlnd_res, fetch_into)(MYSQLND_RES * result, unsigned int flags
mysqlnd_array_init(return_value, mysqlnd_num_fields(result) * 2);
if (FAIL == result->m.fetch_row(result, (void *)return_value, flags, &fetched_anything TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error while reading a row");
+ zval_dtor(return_value);
RETVAL_FALSE;
} else if (fetched_anything == FALSE) {
zval_dtor(return_value);
diff --git a/ext/standard/dns.c b/ext/standard/dns.c
index 7bf7ccac85..8e24a817ff 100644
--- a/ext/standard/dns.c
+++ b/ext/standard/dns.c
@@ -514,7 +514,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int
tp[dlen] = '\0';
cp += dlen;
- add_assoc_stringl(*subarray, "txt", tp, dlen - 1, 0);
+ add_assoc_stringl(*subarray, "txt", tp, (dlen>0)?dlen - 1:0, 0);
add_assoc_zval(*subarray, "entries", entries);
}
break;
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 4a86007e85..27042f6e5d 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -51,7 +51,7 @@ PHP_FUNCTION(stream_socket_pair)
{
long domain, type, protocol;
php_stream *s1, *s2;
- int pair[2];
+ php_socket_t pair[2];
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll",
&domain, &type, &protocol)) {
diff --git a/ext/standard/tests/file/bug24482.phpt b/ext/standard/tests/file/bug24482.phpt
index f545f1addf..9d0568af33 100644
--- a/ext/standard/tests/file/bug24482.phpt
+++ b/ext/standard/tests/file/bug24482.phpt
@@ -8,6 +8,11 @@ if (!function_exists("glob")) {
?>
--FILE--
<?php
+
+// run this test in ext/standard/tests (see bug #64714)
+chdir(__DIR__); // ensure in ext/standard/tests/file
+chdir('..'); // move up to ext/standard/tests
+
$globdirs = glob("*", GLOB_ONLYDIR);
$dirs = array();
diff --git a/ext/zip/lib/zip_close.c b/ext/zip/lib/zip_close.c
index 362f92d749..576be3b353 100644
--- a/ext/zip/lib/zip_close.c
+++ b/ext/zip/lib/zip_close.c
@@ -164,9 +164,10 @@ zip_close(struct zip *za)
for (j=0; j<survivors; j++) {
i = filelist[j].idx;
+ _zip_dirent_init(&de);
+
/* create new local directory entry */
if (ZIP_ENTRY_DATA_CHANGED(za->entry+i) || new_torrentzip) {
- _zip_dirent_init(&de);
if (zip_get_archive_flag(za, ZIP_AFL_TORRENT, 0))
_zip_dirent_torrent_normalize(&de);
@@ -192,7 +193,7 @@ zip_close(struct zip *za)
}
else {
/* copy existing directory entries */
- if (fseeko(za->zp, za->cdir->entry[i].offset, SEEK_SET) != 0) {
+ if ((NULL == za->zp) || (fseeko(za->zp, za->cdir->entry[i].offset, SEEK_SET) != 0)) {
_zip_error_set(&za->error, ZIP_ER_SEEK, errno);
error = 1;
break;
diff --git a/ext/zip/lib/zip_dirent.c b/ext/zip/lib/zip_dirent.c
index b5b9d273be..b9dac5c989 100644
--- a/ext/zip/lib/zip_dirent.c
+++ b/ext/zip/lib/zip_dirent.c
@@ -157,11 +157,17 @@ _zip_cdir_write(struct zip_cdir *cd, FILE *fp, struct zip_error *error)
void
_zip_dirent_finalize(struct zip_dirent *zde)
{
- free(zde->filename);
+ if (zde->filename_len > 0) {
+ free(zde->filename);
+ }
zde->filename = NULL;
- free(zde->extrafield);
+ if (zde->extrafield_len > 0) {
+ free(zde->extrafield);
+ }
zde->extrafield = NULL;
- free(zde->comment);
+ if (zde->comment_len > 0) {
+ free(zde->comment);
+ }
zde->comment = NULL;
}
diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c
index bdd35a2ede..b1a1a3628c 100644
--- a/ext/zip/php_zip.c
+++ b/ext/zip/php_zip.c
@@ -28,6 +28,7 @@
#include "ext/standard/file.h"
#include "ext/standard/php_string.h"
#include "ext/pcre/php_pcre.h"
+#include "ext/standard/php_filestat.h"
#include "php_zip.h"
#include "lib/zip.h"
#include "lib/zipint.h"
@@ -309,6 +310,7 @@ static int php_zip_add_file(struct zip *za, const char *filename, size_t filenam
struct zip_source *zs;
int cur_idx;
char resolved_path[MAXPATHLEN];
+ zval exists_flag;
if (ZIP_OPENBASEDIR_CHECKPATH(filename)) {
@@ -319,6 +321,11 @@ static int php_zip_add_file(struct zip *za, const char *filename, size_t filenam
return -1;
}
+ php_stat(resolved_path, strlen(resolved_path), FS_EXISTS, &exists_flag TSRMLS_CC);
+ if (!Z_BVAL(exists_flag)) {
+ return -1;
+ }
+
zs = zip_source_file(za, resolved_path, offset_start, offset_len);
if (!zs) {
return -1;
diff --git a/ext/zip/tests/bug64342_0.phpt b/ext/zip/tests/bug64342_0.phpt
new file mode 100644
index 0000000000..066d3e6fc2
--- /dev/null
+++ b/ext/zip/tests/bug64342_0.phpt
@@ -0,0 +1,42 @@
+--TEST--
+Bug #64342 ZipArchive::addFile() has to check file existance (variation 1)
+--SKIPIF--
+<?php
+ if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+
+$zip = new ZipArchive;
+$res = $zip->open(dirname(__FILE__) . '/bug64342.zip', ZipArchive::CREATE);
+if ($res === TRUE) {
+ $f = md5(uniqid()) . '.txt';
+ echo "$f\n";
+ $res = $zip->addFile($f);
+ if (true == $res) {
+ echo "add ok\n";
+ } else {
+ echo "add failed\n";
+ }
+ $res = $zip->close();
+ if (true == $res) {
+ echo "close ok\n";
+ } else {
+ echo "close failed\n";
+ }
+} else {
+ echo "open failed\n";
+}
+
+
+?>
+DONE
+--CLEAN--
+<?php
+
+@unlink(dirname(__FILE__) . '/bug64342.zip');
+--EXPECTF--
+%s.txt
+add failed
+close ok
+DONE
diff --git a/ext/zip/tests/bug64342_1.phpt b/ext/zip/tests/bug64342_1.phpt
new file mode 100644
index 0000000000..2b1357d12f
--- /dev/null
+++ b/ext/zip/tests/bug64342_1.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Bug #64342 ZipArchive::addFile() has to check file existance (variation 2)
+--SKIPIF--
+<?php
+/* $Id$ */
+if(!extension_loaded('zip')) die('skip');
+?>
+--FILE--
+<?php
+
+$dirname = dirname(__FILE__) . '/';
+include $dirname . 'utils.inc';
+$file = $dirname . '__tmp_oo_addfile.zip';
+
+copy($dirname . 'test.zip', $file);
+
+$zip = new ZipArchive;
+if (!$zip->open($file)) {
+ exit('failed');
+}
+if (!$zip->addFile($dirname . 'cant_find_me.txt', 'test.php')) {
+ echo "failed\n";
+}
+if ($zip->status == ZIPARCHIVE::ER_OK) {
+ dump_entries_name($zip);
+ $zip->close();
+} else {
+ echo "failed\n";
+}
+@unlink($file);
+?>
+--EXPECTF--
+failed
+0 bar
+1 foobar/
+2 foobar/baz
+3 entry1.txt