diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/date/lib/timezonedb.h | 910 | ||||
| -rw-r--r-- | ext/date/php_date.c | 21 | ||||
| -rw-r--r-- | ext/date/tests/bug55397.phpt | 3 | ||||
| -rw-r--r-- | ext/date/tests/bug62852.phpt | 26 | ||||
| -rw-r--r-- | ext/date/tests/bug62852_var2.phpt | 25 | ||||
| -rw-r--r-- | ext/date/tests/bug62852_var3.phpt | 25 | ||||
| -rw-r--r-- | ext/gd/config.m4 | 2 | ||||
| -rw-r--r-- | ext/gd/gd.c | 8 | ||||
| -rw-r--r-- | ext/gd/libgd/gd_compat.h | 7 | ||||
| -rw-r--r-- | ext/gd/libgd/gd_rotate.c | 9 | ||||
| -rw-r--r-- | ext/mysqli/mysqli.c | 2 | ||||
| -rw-r--r-- | ext/mysqli/tests/bug64726.phpt | 23 | ||||
| -rw-r--r-- | ext/mysqlnd/mysqlnd_enum_n_def.h | 2 | ||||
| -rw-r--r-- | ext/mysqlnd/mysqlnd_result.c | 1 | ||||
| -rw-r--r-- | ext/standard/dns.c | 2 | ||||
| -rw-r--r-- | ext/standard/streamsfuncs.c | 2 | ||||
| -rw-r--r-- | ext/standard/tests/file/bug24482.phpt | 5 | ||||
| -rw-r--r-- | ext/zip/lib/zip_close.c | 5 | ||||
| -rw-r--r-- | ext/zip/lib/zip_dirent.c | 12 | ||||
| -rw-r--r-- | ext/zip/php_zip.c | 7 | ||||
| -rw-r--r-- | ext/zip/tests/bug64342_0.phpt | 42 | ||||
| -rw-r--r-- | ext/zip/tests/bug64342_1.phpt | 37 |
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 |
