#include "timezones.h" #include "lwip/arch.h" #include constexpr timezone_t timezones[] = { // Africa/Abidjan - GMT {"Africa/Abidjan", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Accra - GMT {"Africa/Accra", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Addis_Ababa - EAT {"Africa/Addis_Ababa", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Algiers - CET {"Africa/Algiers", "CET", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Asmara - EAT {"Africa/Asmara", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Bamako - GMT {"Africa/Bamako", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Bangui - WAT {"Africa/Bangui", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Banjul - GMT {"Africa/Banjul", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Bissau - GMT {"Africa/Bissau", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Blantyre - CAT {"Africa/Blantyre", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Brazzaville - WAT {"Africa/Brazzaville", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Bujumbura - CAT {"Africa/Bujumbura", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Cairo - EET/EEST {"Africa/Cairo", "EET", "EEST", 2, 0, 3, 0, 4, 5, 5, 0, 0, 10, 5, 4, 24, 0, 1, 0}, // Africa/Casablanca - +01 {"Africa/Casablanca", "+01", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Ceuta - CET/CEST {"Africa/Ceuta", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Africa/Conakry - GMT {"Africa/Conakry", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Dakar - GMT {"Africa/Dakar", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Dar_es_Salaam - EAT {"Africa/Dar_es_Salaam", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Djibouti - EAT {"Africa/Djibouti", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Douala - WAT {"Africa/Douala", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/El_Aaiun - +01 {"Africa/El_Aaiun", "+01", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Freetown - GMT {"Africa/Freetown", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Gaborone - CAT {"Africa/Gaborone", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Harare - CAT {"Africa/Harare", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Johannesburg - SAST {"Africa/Johannesburg", "SAST", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Juba - CAT {"Africa/Juba", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Kampala - EAT {"Africa/Kampala", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Khartoum - CAT {"Africa/Khartoum", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Kigali - CAT {"Africa/Kigali", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Kinshasa - WAT {"Africa/Kinshasa", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Lagos - WAT {"Africa/Lagos", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Libreville - WAT {"Africa/Libreville", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Lome - GMT {"Africa/Lome", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Luanda - WAT {"Africa/Luanda", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Lubumbashi - CAT {"Africa/Lubumbashi", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Lusaka - CAT {"Africa/Lusaka", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Malabo - WAT {"Africa/Malabo", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Maputo - CAT {"Africa/Maputo", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Maseru - SAST {"Africa/Maseru", "SAST", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Mbabane - SAST {"Africa/Mbabane", "SAST", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Mogadishu - EAT {"Africa/Mogadishu", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Monrovia - GMT {"Africa/Monrovia", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Nairobi - EAT {"Africa/Nairobi", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Ndjamena - WAT {"Africa/Ndjamena", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Niamey - WAT {"Africa/Niamey", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Nouakchott - GMT {"Africa/Nouakchott", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Ouagadougou - GMT {"Africa/Ouagadougou", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Porto-Novo - WAT {"Africa/Porto-Novo", "WAT", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Sao_Tome - GMT {"Africa/Sao_Tome", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Tripoli - EET {"Africa/Tripoli", "EET", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Tunis - CET {"Africa/Tunis", "CET", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Africa/Windhoek - CAT {"Africa/Windhoek", "CAT", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Adak - HST/HDT {"America/Adak", "HST", "HDT", -10, 0, -9, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Anchorage - AKST/AKDT {"America/Anchorage", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Anguilla - AST {"America/Anguilla", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Antigua - AST {"America/Antigua", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Araguaina - -03 {"America/Araguaina", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Buenos_Aires - -03 {"America/Argentina/Buenos_Aires", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Catamarca - -03 {"America/Argentina/Catamarca", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Cordoba - -03 {"America/Argentina/Cordoba", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Jujuy - -03 {"America/Argentina/Jujuy", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/La_Rioja - -03 {"America/Argentina/La_Rioja", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Mendoza - -03 {"America/Argentina/Mendoza", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Rio_Gallegos - -03 {"America/Argentina/Rio_Gallegos", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Salta - -03 {"America/Argentina/Salta", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/San_Juan - -03 {"America/Argentina/San_Juan", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/San_Luis - -03 {"America/Argentina/San_Luis", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Tucuman - -03 {"America/Argentina/Tucuman", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Argentina/Ushuaia - -03 {"America/Argentina/Ushuaia", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Aruba - AST {"America/Aruba", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Asuncion - -03 {"America/Asuncion", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Atikokan - EST {"America/Atikokan", "EST", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Bahia - -03 {"America/Bahia", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Bahia_Banderas - CST {"America/Bahia_Banderas", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Barbados - AST {"America/Barbados", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Belem - -03 {"America/Belem", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Belize - CST {"America/Belize", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Blanc-Sablon - AST {"America/Blanc-Sablon", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Boa_Vista - -04 {"America/Boa_Vista", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Bogota - -05 {"America/Bogota", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Boise - MST/MDT {"America/Boise", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Cambridge_Bay - MST/MDT {"America/Cambridge_Bay", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Campo_Grande - -04 {"America/Campo_Grande", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Cancun - EST {"America/Cancun", "EST", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Caracas - -04 {"America/Caracas", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Cayenne - -03 {"America/Cayenne", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Cayman - EST {"America/Cayman", "EST", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Chicago - CST/CDT {"America/Chicago", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Chihuahua - CST {"America/Chihuahua", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Costa_Rica - CST {"America/Costa_Rica", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Creston - MST {"America/Creston", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Cuiaba - -04 {"America/Cuiaba", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Curacao - AST {"America/Curacao", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Danmarkshavn - GMT {"America/Danmarkshavn", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Dawson - MST {"America/Dawson", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Dawson_Creek - MST {"America/Dawson_Creek", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Denver - MST/MDT {"America/Denver", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Detroit - EST/EDT {"America/Detroit", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Dominica - AST {"America/Dominica", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Edmonton - MST/MDT {"America/Edmonton", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Eirunepe - -05 {"America/Eirunepe", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/El_Salvador - CST {"America/El_Salvador", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Fortaleza - -03 {"America/Fortaleza", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Fort_Nelson - MST {"America/Fort_Nelson", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Glace_Bay - AST/ADT {"America/Glace_Bay", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Godthab - -02/-01 {"America/Godthab", "-02", "-01", -2, 0, -1, 0, 3, 5, 0, -1, 0, 10, 5, 0, 0, 0, 1, 0}, // America/Goose_Bay - AST/ADT {"America/Goose_Bay", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Grand_Turk - EST/EDT {"America/Grand_Turk", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Grenada - AST {"America/Grenada", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Guadeloupe - AST {"America/Guadeloupe", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Guatemala - CST {"America/Guatemala", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Guayaquil - -05 {"America/Guayaquil", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Guyana - -04 {"America/Guyana", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Halifax - AST/ADT {"America/Halifax", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Havana - CST/CDT {"America/Havana", "CST", "CDT", -5, 0, -4, 0, 3, 2, 0, 0, 0, 11, 1, 0, 1, 0, 1, 0}, // America/Hermosillo - MST {"America/Hermosillo", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Indiana/Indianapolis - EST/EDT {"America/Indiana/Indianapolis", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Knox - CST/CDT {"America/Indiana/Knox", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Marengo - EST/EDT {"America/Indiana/Marengo", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Petersburg - EST/EDT {"America/Indiana/Petersburg", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Tell_City - CST/CDT {"America/Indiana/Tell_City", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Vevay - EST/EDT {"America/Indiana/Vevay", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Vincennes - EST/EDT {"America/Indiana/Vincennes", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Indiana/Winamac - EST/EDT {"America/Indiana/Winamac", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Inuvik - MST/MDT {"America/Inuvik", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Iqaluit - EST/EDT {"America/Iqaluit", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Jamaica - EST {"America/Jamaica", "EST", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Juneau - AKST/AKDT {"America/Juneau", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Kentucky/Louisville - EST/EDT {"America/Kentucky/Louisville", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Kentucky/Monticello - EST/EDT {"America/Kentucky/Monticello", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Kralendijk - AST {"America/Kralendijk", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/La_Paz - -04 {"America/La_Paz", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Lima - -05 {"America/Lima", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Los_Angeles - PST/PDT {"America/Los_Angeles", "PST", "PDT", -8, 0, -7, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Lower_Princes - AST {"America/Lower_Princes", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Maceio - -03 {"America/Maceio", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Managua - CST {"America/Managua", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Manaus - -04 {"America/Manaus", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Marigot - AST {"America/Marigot", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Martinique - AST {"America/Martinique", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Matamoros - CST/CDT {"America/Matamoros", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Mazatlan - MST {"America/Mazatlan", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Menominee - CST/CDT {"America/Menominee", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Merida - CST {"America/Merida", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Metlakatla - AKST/AKDT {"America/Metlakatla", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Mexico_City - CST {"America/Mexico_City", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Miquelon - -03/-02 {"America/Miquelon", "-03", "-02", -3, 0, -2, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Moncton - AST/ADT {"America/Moncton", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Monterrey - CST {"America/Monterrey", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Montevideo - -03 {"America/Montevideo", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Montreal - EST/EDT {"America/Montreal", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Montserrat - AST {"America/Montserrat", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Nassau - EST/EDT {"America/Nassau", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/New_York - EST/EDT {"America/New_York", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Nipigon - EST/EDT {"America/Nipigon", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Nome - AKST/AKDT {"America/Nome", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Noronha - -02 {"America/Noronha", "-02", "", -2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/North_Dakota/Beulah - CST/CDT {"America/North_Dakota/Beulah", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/North_Dakota/Center - CST/CDT {"America/North_Dakota/Center", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/North_Dakota/New_Salem - CST/CDT {"America/North_Dakota/New_Salem", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Nuuk - -02/-01 {"America/Nuuk", "-02", "-01", -2, 0, -1, 0, 3, 5, 0, -1, 0, 10, 5, 0, 0, 0, 1, 0}, // America/Ojinaga - CST/CDT {"America/Ojinaga", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Panama - EST {"America/Panama", "EST", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Pangnirtung - EST/EDT {"America/Pangnirtung", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Paramaribo - -03 {"America/Paramaribo", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Phoenix - MST {"America/Phoenix", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Port-au-Prince - EST/EDT {"America/Port-au-Prince", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Port_of_Spain - AST {"America/Port_of_Spain", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Porto_Velho - -04 {"America/Porto_Velho", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Puerto_Rico - AST {"America/Puerto_Rico", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Punta_Arenas - -03 {"America/Punta_Arenas", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Rainy_River - CST/CDT {"America/Rainy_River", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Rankin_Inlet - CST/CDT {"America/Rankin_Inlet", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Recife - -03 {"America/Recife", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Regina - CST {"America/Regina", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Resolute - CST/CDT {"America/Resolute", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Rio_Branco - -05 {"America/Rio_Branco", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Santarem - -03 {"America/Santarem", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Santiago - -04/-03 {"America/Santiago", "-04", "-03", -4, 0, -3, 0, 9, 1, 6, 24, 0, 4, 1, 6, 24, 0, 1, 0}, // America/Santo_Domingo - AST {"America/Santo_Domingo", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Sao_Paulo - -03 {"America/Sao_Paulo", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Scoresbysund - -02/-01 {"America/Scoresbysund", "-02", "-01", -2, 0, -1, 0, 3, 5, 0, -1, 0, 10, 5, 0, 0, 0, 1, 0}, // America/Sitka - AKST/AKDT {"America/Sitka", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/St_Barthelemy - AST {"America/St_Barthelemy", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/St_Johns - NST/NDT {"America/St_Johns", "NST", "NDT", -3, 30, -2, 30, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/St_Kitts - AST {"America/St_Kitts", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/St_Lucia - AST {"America/St_Lucia", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/St_Thomas - AST {"America/St_Thomas", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/St_Vincent - AST {"America/St_Vincent", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Swift_Current - CST {"America/Swift_Current", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Tegucigalpa - CST {"America/Tegucigalpa", "CST", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Thule - AST/ADT {"America/Thule", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Thunder_Bay - EST/EDT {"America/Thunder_Bay", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Tijuana - PST/PDT {"America/Tijuana", "PST", "PDT", -8, 0, -7, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Toronto - EST/EDT {"America/Toronto", "EST", "EDT", -5, 0, -4, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Tortola - AST {"America/Tortola", "AST", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Vancouver - PST/PDT {"America/Vancouver", "PST", "PDT", -8, 0, -7, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Whitehorse - MST {"America/Whitehorse", "MST", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // America/Winnipeg - CST/CDT {"America/Winnipeg", "CST", "CDT", -6, 0, -5, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Yakutat - AKST/AKDT {"America/Yakutat", "AKST", "AKDT", -9, 0, -8, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // America/Yellowknife - MST/MDT {"America/Yellowknife", "MST", "MDT", -7, 0, -6, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // Antarctica/Casey - +08 {"Antarctica/Casey", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/Davis - +07 {"Antarctica/Davis", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/DumontDUrville - +10 {"Antarctica/DumontDUrville", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/Macquarie - AEST/AEDT {"Antarctica/Macquarie", "AEST", "AEDT", 10, 0, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Antarctica/Mawson - +05 {"Antarctica/Mawson", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/McMurdo - NZST/NZDT {"Antarctica/McMurdo", "NZST", "NZDT", 12, 0, 13, 0, 9, 5, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Antarctica/Palmer - -03 {"Antarctica/Palmer", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/Rothera - -03 {"Antarctica/Rothera", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/Syowa - +03 {"Antarctica/Syowa", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Antarctica/Troll - +00/+02 {"Antarctica/Troll", "+00", "+02", 0, 0, 2, 0, 3, 5, 0, 1, 0, 10, 5, 0, 3, 0, 1, 0}, // Antarctica/Vostok - +05 {"Antarctica/Vostok", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Arctic/Longyearbyen - CET/CEST {"Arctic/Longyearbyen", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Asia/Aden - +03 {"Asia/Aden", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Almaty - +05 {"Asia/Almaty", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Amman - +03 {"Asia/Amman", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Anadyr - +12 {"Asia/Anadyr", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Aqtau - +05 {"Asia/Aqtau", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Aqtobe - +05 {"Asia/Aqtobe", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Ashgabat - +05 {"Asia/Ashgabat", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Atyrau - +05 {"Asia/Atyrau", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Baghdad - +03 {"Asia/Baghdad", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Bahrain - +03 {"Asia/Bahrain", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Baku - +04 {"Asia/Baku", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Bangkok - +07 {"Asia/Bangkok", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Barnaul - +07 {"Asia/Barnaul", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Beirut - EET/EEST {"Asia/Beirut", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 0, 0, 10, 5, 0, 0, 0, 1, 0}, // Asia/Bishkek - +06 {"Asia/Bishkek", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Brunei - +08 {"Asia/Brunei", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Chita - +09 {"Asia/Chita", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Choibalsan - +08 {"Asia/Choibalsan", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Colombo - +0530 {"Asia/Colombo", "+0530", "", 5, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Damascus - +03 {"Asia/Damascus", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Dhaka - +06 {"Asia/Dhaka", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Dili - +09 {"Asia/Dili", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Dubai - +04 {"Asia/Dubai", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Dushanbe - +05 {"Asia/Dushanbe", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Famagusta - EET/EEST {"Asia/Famagusta", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Asia/Gaza - EET/EEST {"Asia/Gaza", "EET", "EEST", 2, 0, 3, 0, 3, 4, 4, 50, 0, 10, 4, 4, 50, 0, 1, 0}, // Asia/Hebron - EET/EEST {"Asia/Hebron", "EET", "EEST", 2, 0, 3, 0, 3, 4, 4, 50, 0, 10, 4, 4, 50, 0, 1, 0}, // Asia/Ho_Chi_Minh - +07 {"Asia/Ho_Chi_Minh", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Hong_Kong - HKT {"Asia/Hong_Kong", "HKT", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Hovd - +07 {"Asia/Hovd", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Irkutsk - +08 {"Asia/Irkutsk", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Jakarta - WIB {"Asia/Jakarta", "WIB", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Jayapura - WIT {"Asia/Jayapura", "WIT", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Jerusalem - IST/IDT {"Asia/Jerusalem", "IST", "IDT", 2, 0, 3, 0, 3, 4, 4, 26, 0, 10, 5, 0, 2, 0, 1, 0}, // Asia/Kabul - +0430 {"Asia/Kabul", "+0430", "", 4, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kamchatka - +12 {"Asia/Kamchatka", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Karachi - PKT {"Asia/Karachi", "PKT", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kathmandu - +0545 {"Asia/Kathmandu", "+0545", "", 5, 45, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Khandyga - +09 {"Asia/Khandyga", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kolkata - IST {"Asia/Kolkata", "IST", "", 5, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Krasnoyarsk - +07 {"Asia/Krasnoyarsk", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kuala_Lumpur - +08 {"Asia/Kuala_Lumpur", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kuching - +08 {"Asia/Kuching", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Kuwait - +03 {"Asia/Kuwait", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Macau - CST {"Asia/Macau", "CST", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Magadan - +11 {"Asia/Magadan", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Makassar - WITA {"Asia/Makassar", "WITA", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Manila - PST {"Asia/Manila", "PST", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Muscat - +04 {"Asia/Muscat", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Nicosia - EET/EEST {"Asia/Nicosia", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Asia/Novokuznetsk - +07 {"Asia/Novokuznetsk", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Novosibirsk - +07 {"Asia/Novosibirsk", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Omsk - +06 {"Asia/Omsk", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Oral - +05 {"Asia/Oral", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Phnom_Penh - +07 {"Asia/Phnom_Penh", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Pontianak - WIB {"Asia/Pontianak", "WIB", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Pyongyang - KST {"Asia/Pyongyang", "KST", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Qatar - +03 {"Asia/Qatar", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Qyzylorda - +05 {"Asia/Qyzylorda", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Riyadh - +03 {"Asia/Riyadh", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Sakhalin - +11 {"Asia/Sakhalin", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Samarkand - +05 {"Asia/Samarkand", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Seoul - KST {"Asia/Seoul", "KST", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Shanghai - CST {"Asia/Shanghai", "CST", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Singapore - +08 {"Asia/Singapore", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Srednekolymsk - +11 {"Asia/Srednekolymsk", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Taipei - CST {"Asia/Taipei", "CST", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Tashkent - +05 {"Asia/Tashkent", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Tbilisi - +04 {"Asia/Tbilisi", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Tehran - +0330 {"Asia/Tehran", "+0330", "", 3, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Thimphu - +06 {"Asia/Thimphu", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Tokyo - JST {"Asia/Tokyo", "JST", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Tomsk - +07 {"Asia/Tomsk", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Ulaanbaatar - +08 {"Asia/Ulaanbaatar", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Urumqi - +06 {"Asia/Urumqi", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Ust-Nera - +10 {"Asia/Ust-Nera", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Vientiane - +07 {"Asia/Vientiane", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Vladivostok - +10 {"Asia/Vladivostok", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Yakutsk - +09 {"Asia/Yakutsk", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Yangon - +0630 {"Asia/Yangon", "+0630", "", 6, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Yekaterinburg - +05 {"Asia/Yekaterinburg", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Asia/Yerevan - +04 {"Asia/Yerevan", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Atlantic/Azores - -01/+00 {"Atlantic/Azores", "-01", "+00", -1, 0, 0, 0, 3, 5, 0, 0, 0, 10, 5, 0, 1, 0, 1, 0}, // Atlantic/Bermuda - AST/ADT {"Atlantic/Bermuda", "AST", "ADT", -4, 0, -3, 0, 3, 2, 0, 2, 0, 11, 1, 0, 2, 0, 1, 0}, // Atlantic/Canary - WET/WEST {"Atlantic/Canary", "WET", "WEST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Atlantic/Cape_Verde - -01 {"Atlantic/Cape_Verde", "-01", "", -1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Atlantic/Faroe - WET/WEST {"Atlantic/Faroe", "WET", "WEST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Atlantic/Madeira - WET/WEST {"Atlantic/Madeira", "WET", "WEST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Atlantic/Reykjavik - GMT {"Atlantic/Reykjavik", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Atlantic/South_Georgia - -02 {"Atlantic/South_Georgia", "-02", "", -2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Atlantic/Stanley - -03 {"Atlantic/Stanley", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Atlantic/St_Helena - GMT {"Atlantic/St_Helena", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Adelaide - ACST/ACDT {"Australia/Adelaide", "ACST", "ACDT", 9, 30, 10, 30, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Australia/Brisbane - AEST {"Australia/Brisbane", "AEST", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Broken_Hill - ACST/ACDT {"Australia/Broken_Hill", "ACST", "ACDT", 9, 30, 10, 30, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Australia/Currie - AEST/AEDT {"Australia/Currie", "AEST", "AEDT", 10, 0, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Australia/Darwin - ACST {"Australia/Darwin", "ACST", "", 9, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Eucla - +0845 {"Australia/Eucla", "+0845", "", 8, 45, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Hobart - AEST/AEDT {"Australia/Hobart", "AEST", "AEDT", 10, 0, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Australia/Lindeman - AEST {"Australia/Lindeman", "AEST", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Lord_Howe - +1030/+11 {"Australia/Lord_Howe", "+1030", "+11", 10, 30, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 2, 0, 1, 0}, // Australia/Melbourne - AEST/AEDT {"Australia/Melbourne", "AEST", "AEDT", 10, 0, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Australia/Perth - AWST {"Australia/Perth", "AWST", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Australia/Sydney - AEST/AEDT {"Australia/Sydney", "AEST", "AEDT", 10, 0, 11, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Europe/Amsterdam - CET/CEST {"Europe/Amsterdam", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Andorra - CET/CEST {"Europe/Andorra", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Astrakhan - +04 {"Europe/Astrakhan", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Athens - EET/EEST {"Europe/Athens", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Belgrade - CET/CEST {"Europe/Belgrade", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Berlin - CET/CEST {"Europe/Berlin", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Bratislava - CET/CEST {"Europe/Bratislava", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Brussels - CET/CEST {"Europe/Brussels", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Bucharest - EET/EEST {"Europe/Bucharest", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Budapest - CET/CEST {"Europe/Budapest", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Busingen - CET/CEST {"Europe/Busingen", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Chisinau - EET/EEST {"Europe/Chisinau", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Copenhagen - CET/CEST {"Europe/Copenhagen", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Dublin - IST/GMT {"Europe/Dublin", "IST", "GMT", 1, 0, 0, 0, 10, 5, 0, 2, 0, 3, 5, 0, 1, 0, 1, 0}, // Europe/Gibraltar - CET/CEST {"Europe/Gibraltar", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Guernsey - GMT/BST {"Europe/Guernsey", "GMT", "BST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Europe/Helsinki - EET/EEST {"Europe/Helsinki", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Isle_of_Man - GMT/BST {"Europe/Isle_of_Man", "GMT", "BST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Europe/Istanbul - +03 {"Europe/Istanbul", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Jersey - GMT/BST {"Europe/Jersey", "GMT", "BST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Europe/Kaliningrad - EET {"Europe/Kaliningrad", "EET", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Kiev - EET/EEST {"Europe/Kiev", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Kirov - MSK {"Europe/Kirov", "MSK", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Lisbon - WET/WEST {"Europe/Lisbon", "WET", "WEST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Europe/Ljubljana - CET/CEST {"Europe/Ljubljana", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/London - GMT/BST {"Europe/London", "GMT", "BST", 0, 0, 1, 0, 3, 5, 0, 1, 0, 10, 5, 0, 2, 0, 1, 0}, // Europe/Luxembourg - CET/CEST {"Europe/Luxembourg", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Madrid - CET/CEST {"Europe/Madrid", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Malta - CET/CEST {"Europe/Malta", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Mariehamn - EET/EEST {"Europe/Mariehamn", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Minsk - +03 {"Europe/Minsk", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Monaco - CET/CEST {"Europe/Monaco", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Moscow - MSK {"Europe/Moscow", "MSK", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Oslo - CET/CEST {"Europe/Oslo", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Paris - CET/CEST {"Europe/Paris", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Podgorica - CET/CEST {"Europe/Podgorica", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Prague - CET/CEST {"Europe/Prague", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Riga - EET/EEST {"Europe/Riga", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Rome - CET/CEST {"Europe/Rome", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Samara - +04 {"Europe/Samara", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/San_Marino - CET/CEST {"Europe/San_Marino", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Sarajevo - CET/CEST {"Europe/Sarajevo", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Saratov - +04 {"Europe/Saratov", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Simferopol - MSK {"Europe/Simferopol", "MSK", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Skopje - CET/CEST {"Europe/Skopje", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Sofia - EET/EEST {"Europe/Sofia", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Stockholm - CET/CEST {"Europe/Stockholm", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Tallinn - EET/EEST {"Europe/Tallinn", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Tirane - CET/CEST {"Europe/Tirane", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Ulyanovsk - +04 {"Europe/Ulyanovsk", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Uzhgorod - EET/EEST {"Europe/Uzhgorod", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Vaduz - CET/CEST {"Europe/Vaduz", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Vatican - CET/CEST {"Europe/Vatican", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Vienna - CET/CEST {"Europe/Vienna", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Vilnius - EET/EEST {"Europe/Vilnius", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Volgograd - MSK {"Europe/Volgograd", "MSK", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Europe/Warsaw - CET/CEST {"Europe/Warsaw", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Zagreb - CET/CEST {"Europe/Zagreb", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Europe/Zaporozhye - EET/EEST {"Europe/Zaporozhye", "EET", "EEST", 2, 0, 3, 0, 3, 5, 0, 3, 0, 10, 5, 0, 4, 0, 1, 0}, // Europe/Zurich - CET/CEST {"Europe/Zurich", "CET", "CEST", 1, 0, 2, 0, 3, 5, 0, 2, 0, 10, 5, 0, 3, 0, 1, 0}, // Indian/Antananarivo - EAT {"Indian/Antananarivo", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Chagos - +06 {"Indian/Chagos", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Christmas - +07 {"Indian/Christmas", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Cocos - +0630 {"Indian/Cocos", "+0630", "", 6, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Comoro - EAT {"Indian/Comoro", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Kerguelen - +05 {"Indian/Kerguelen", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Mahe - +04 {"Indian/Mahe", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Maldives - +05 {"Indian/Maldives", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Mauritius - +04 {"Indian/Mauritius", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Mayotte - EAT {"Indian/Mayotte", "EAT", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Indian/Reunion - +04 {"Indian/Reunion", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Apia - +13 {"Pacific/Apia", "+13", "", 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Auckland - NZST/NZDT {"Pacific/Auckland", "NZST", "NZDT", 12, 0, 13, 0, 9, 5, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Pacific/Bougainville - +11 {"Pacific/Bougainville", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Chatham - +1245/+1345 {"Pacific/Chatham", "+1245", "+1345", 12, 45, 13, 45, 9, 5, 0, 2, 45, 4, 1, 0, 3, 45, 1, 0}, // Pacific/Chuuk - +10 {"Pacific/Chuuk", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Easter - -06/-05 {"Pacific/Easter", "-06", "-05", -6, 0, -5, 0, 9, 1, 6, 22, 0, 4, 1, 6, 22, 0, 1, 0}, // Pacific/Efate - +11 {"Pacific/Efate", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Enderbury - +13 {"Pacific/Enderbury", "+13", "", 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Fakaofo - +13 {"Pacific/Fakaofo", "+13", "", 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Fiji - +12 {"Pacific/Fiji", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Funafuti - +12 {"Pacific/Funafuti", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Galapagos - -06 {"Pacific/Galapagos", "-06", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Gambier - -09 {"Pacific/Gambier", "-09", "", -9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Guadalcanal - +11 {"Pacific/Guadalcanal", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Guam - ChST {"Pacific/Guam", "ChST", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Honolulu - HST {"Pacific/Honolulu", "HST", "", -10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Kiritimati - +14 {"Pacific/Kiritimati", "+14", "", 14, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Kosrae - +11 {"Pacific/Kosrae", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Kwajalein - +12 {"Pacific/Kwajalein", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Majuro - +12 {"Pacific/Majuro", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Marquesas - -0930 {"Pacific/Marquesas", "-0930", "", -9, 30, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Midway - SST {"Pacific/Midway", "SST", "", -11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Nauru - +12 {"Pacific/Nauru", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Niue - -11 {"Pacific/Niue", "-11", "", -11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Norfolk - +11/+12 {"Pacific/Norfolk", "+11", "+12", 11, 0, 12, 0, 10, 1, 0, 2, 0, 4, 1, 0, 3, 0, 1, 0}, // Pacific/Noumea - +11 {"Pacific/Noumea", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Pago_Pago - SST {"Pacific/Pago_Pago", "SST", "", -11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Palau - +09 {"Pacific/Palau", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Pitcairn - -08 {"Pacific/Pitcairn", "-08", "", -8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Pohnpei - +11 {"Pacific/Pohnpei", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Port_Moresby - +10 {"Pacific/Port_Moresby", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Rarotonga - -10 {"Pacific/Rarotonga", "-10", "", -10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Saipan - ChST {"Pacific/Saipan", "ChST", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Tahiti - -10 {"Pacific/Tahiti", "-10", "", -10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Tarawa - +12 {"Pacific/Tarawa", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Tongatapu - +13 {"Pacific/Tongatapu", "+13", "", 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Wake - +12 {"Pacific/Wake", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Pacific/Wallis - +12 {"Pacific/Wallis", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT - GMT {"Etc/GMT", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-0 - GMT {"Etc/GMT-0", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-1 - +01 {"Etc/GMT-1", "+01", "", 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-2 - +02 {"Etc/GMT-2", "+02", "", 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-3 - +03 {"Etc/GMT-3", "+03", "", 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-4 - +04 {"Etc/GMT-4", "+04", "", 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-5 - +05 {"Etc/GMT-5", "+05", "", 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-6 - +06 {"Etc/GMT-6", "+06", "", 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-7 - +07 {"Etc/GMT-7", "+07", "", 7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-8 - +08 {"Etc/GMT-8", "+08", "", 8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-9 - +09 {"Etc/GMT-9", "+09", "", 9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-10 - +10 {"Etc/GMT-10", "+10", "", 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-11 - +11 {"Etc/GMT-11", "+11", "", 11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-12 - +12 {"Etc/GMT-12", "+12", "", 12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-13 - +13 {"Etc/GMT-13", "+13", "", 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT-14 - +14 {"Etc/GMT-14", "+14", "", 14, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT0 - GMT {"Etc/GMT0", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+0 - GMT {"Etc/GMT+0", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+1 - -01 {"Etc/GMT+1", "-01", "", -1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+2 - -02 {"Etc/GMT+2", "-02", "", -2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+3 - -03 {"Etc/GMT+3", "-03", "", -3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+4 - -04 {"Etc/GMT+4", "-04", "", -4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+5 - -05 {"Etc/GMT+5", "-05", "", -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+6 - -06 {"Etc/GMT+6", "-06", "", -6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+7 - -07 {"Etc/GMT+7", "-07", "", -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+8 - -08 {"Etc/GMT+8", "-08", "", -8, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+9 - -09 {"Etc/GMT+9", "-09", "", -9, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+10 - -10 {"Etc/GMT+10", "-10", "", -10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+11 - -11 {"Etc/GMT+11", "-11", "", -11, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/GMT+12 - -12 {"Etc/GMT+12", "-12", "", -12, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/UCT - UTC {"Etc/UCT", "UTC", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/UTC - UTC {"Etc/UTC", "UTC", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/Greenwich - GMT {"Etc/Greenwich", "GMT", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/Universal - UTC {"Etc/Universal", "UTC", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}, // Etc/Zulu - UTC {"Etc/Zulu", "UTC", "", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0}}; s8_t datetime_compare(const datetime_t *dt1, const datetime_t *dt2) { // Returns: -1 if dt1 < dt2, 0 if equal, 1 if dt1 > dt2 if (dt1->year != dt2->year) return (dt1->year < dt2->year) ? -1 : 1; if (dt1->month != dt2->month) return (dt1->month < dt2->month) ? -1 : 1; if (dt1->day != dt2->day) return (dt1->day < dt2->day) ? -1 : 1; if (dt1->hour != dt2->hour) return (dt1->hour < dt2->hour) ? -1 : 1; if (dt1->min != dt2->min) return (dt1->min < dt2->min) ? -1 : 1; if (dt1->sec != dt2->sec) return (dt1->sec < dt2->sec) ? -1 : 1; return 0; // Equal } void timezone_offset(u16_t timezone_index, datetime_t &dt) { const timezone_t *selected_timezone = &timezones[timezone_index]; if (selected_timezone->has_dst) { datetime_t dst_start = { dt.year, static_cast(selected_timezone->dst_start_month), static_cast(selected_timezone->dst_start_week), static_cast(selected_timezone->dst_start_day), static_cast(selected_timezone->dst_start_hour), static_cast(selected_timezone->dst_start_min)}; datetime_t dst_end = {dt.year, static_cast(selected_timezone->dst_end_month), static_cast(selected_timezone->dst_end_week), static_cast(selected_timezone->dst_end_day), static_cast(selected_timezone->dst_end_hour), static_cast(selected_timezone->dst_end_min)}; if (datetime_compare(&dt, &dst_start) == 1 && datetime_compare(&dt, &dst_end) == -1) { dt.hour += selected_timezone->dst_offset_hours; dt.min += selected_timezone->dst_offset_mins; } else { goto std_offset; } } else { std_offset: dt.hour += selected_timezone->std_offset_hours; dt.min += selected_timezone->std_offset_mins; } }