]> granicus.if.org Git - php/commitdiff
Fixed bug #45081 (strtotime incorrectly interprets SGT time zone).
authorDerick Rethans <github@derickrethans.nl>
Mon, 19 Jan 2015 22:59:24 +0000 (22:59 +0000)
committerDerick Rethans <github@derickrethans.nl>
Mon, 19 Jan 2015 22:59:24 +0000 (22:59 +0000)
NEWS
ext/date/lib/timezonemap.h
ext/date/tests/010.phpt
ext/date/tests/011.phpt
ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
ext/date/tests/bug45081.phpt [new file with mode: 0644]
ext/date/tests/timezone_abbreviations_list_basic1.phpt

diff --git a/NEWS b/NEWS
index 22c7197a27a8dd334ed13485d372bf88e9e916c3..25f3a604d0f9ec99c0c5cb94cd0a5d58ec8c161d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2014, PHP 5.5.22
 
+- Date:
+  . Fixed bug #45081 (strtotime incorrectly interprets SGT time zone). (Derick)
+
 - Sqlite3:
   . Fix bug #68260 (SQLite3Result::fetchArray declares wrong 
     required_num_args). (Julien)
index 4601923ac99101d0a024332660f9c8345e0115c5..9acb165d31f7d9c105bc433f7dbd583e1ce0546d 100644 (file)
@@ -1,11 +1,26 @@
+       { "acdt",  1,  37800, "Australia/Adelaide"            },
+       { "acdt",  1,  37800, "Australia/Broken_Hill"         },
+       { "acdt",  1,  37800, "Australia/Darwin"              },
+       { "acdt",  1,  37800, "Australia/North"               },
+       { "acdt",  1,  37800, "Australia/South"               },
+       { "acdt",  1,  37800, "Australia/Yancowinna"          },
        { "acst",  1, -14400, "America/Porto_Acre"            },
+       { "acst",  0,  34200, "Australia/Adelaide"            },
        { "acst",  1, -14400, "America/Eirunepe"              },
        { "acst",  1, -14400, "America/Rio_Branco"            },
        { "acst",  1, -14400, "Brazil/Acre"                   },
+       { "acst",  0,  34200, "Asia/Jayapura"                 },
+       { "acst",  0,  34200, "Australia/Broken_Hill"         },
+       { "acst",  0,  34200, "Australia/Darwin"              },
+       { "acst",  0,  34200, "Australia/North"               },
+       { "acst",  0,  34200, "Australia/South"               },
+       { "acst",  0,  34200, "Australia/Yancowinna"          },
        { "act",   0, -18000, "America/Porto_Acre"            },
        { "act",   0, -18000, "America/Eirunepe"              },
        { "act",   0, -18000, "America/Rio_Branco"            },
        { "act",   0, -18000, "Brazil/Acre"                   },
+       { "acwdt", 1,  35100, "Australia/Eucla"               },
+       { "acwst", 0,  31500, "Australia/Eucla"               },
        { "addt",  1,  -7200, "America/Goose_Bay"             },
        { "addt",  1,  -7200, "America/Pangnirtung"           },
        { "admt",  0,   9320, "Africa/Addis_Ababa"            },
        { "adt",   1, -10800, "Atlantic/Bermuda"              },
        { "adt",   1, -10800, "Canada/Atlantic"               },
        { "adt",   1,  14400, "Asia/Baghdad"                  },
-       { "aft",   0,  14400, "Asia/Kabul"                    },
+       { "aedt",  1,  39600, "Australia/Melbourne"           },
+       { "aedt",  1,  39600, "Antarctica/Macquarie"          },
+       { "aedt",  1,  39600, "Australia/ACT"                 },
+       { "aedt",  1,  39600, "Australia/Brisbane"            },
+       { "aedt",  1,  39600, "Australia/Canberra"            },
+       { "aedt",  1,  39600, "Australia/Currie"              },
+       { "aedt",  1,  39600, "Australia/Hobart"              },
+       { "aedt",  1,  39600, "Australia/Lindeman"            },
+       { "aedt",  1,  39600, "Australia/NSW"                 },
+       { "aedt",  1,  39600, "Australia/Queensland"          },
+       { "aedt",  1,  39600, "Australia/Sydney"              },
+       { "aedt",  1,  39600, "Australia/Tasmania"            },
+       { "aedt",  1,  39600, "Australia/Victoria"            },
+       { "aest",  0,  36000, "Australia/Melbourne"           },
+       { "aest",  0,  36000, "Antarctica/Macquarie"          },
+       { "aest",  0,  36000, "Australia/ACT"                 },
+       { "aest",  0,  36000, "Australia/Brisbane"            },
+       { "aest",  0,  36000, "Australia/Canberra"            },
+       { "aest",  0,  36000, "Australia/Currie"              },
+       { "aest",  0,  36000, "Australia/Hobart"              },
+       { "aest",  0,  36000, "Australia/LHI"                 },
+       { "aest",  0,  36000, "Australia/Lindeman"            },
+       { "aest",  0,  36000, "Australia/Lord_Howe"           },
+       { "aest",  0,  36000, "Australia/NSW"                 },
+       { "aest",  0,  36000, "Australia/Queensland"          },
+       { "aest",  0,  36000, "Australia/Sydney"              },
+       { "aest",  0,  36000, "Australia/Tasmania"            },
+       { "aest",  0,  36000, "Australia/Victoria"            },
        { "aft",   0,  16200, "Asia/Kabul"                    },
+       { "aft",   0,  14400, "Asia/Kabul"                    },
        { "ahdt",  1, -32400, "America/Anchorage"             },
        { "ahst",  0, -36000, "America/Anchorage"             },
        { "ahst",  0, -36000, "America/Adak"                  },
        { "akdt",  1, -28800, "America/Anchorage"             },
        { "akdt",  1, -28800, "America/Juneau"                },
        { "akdt",  1, -28800, "America/Nome"                  },
+       { "akdt",  1, -28800, "America/Sitka"                 },
        { "akdt",  1, -28800, "America/Yakutat"               },
        { "akst",  0, -32400, "America/Anchorage"             },
        { "akst",  0, -32400, "America/Juneau"                },
        { "akst",  0, -32400, "America/Nome"                  },
+       { "akst",  0, -32400, "America/Sitka"                 },
        { "akst",  0, -32400, "America/Yakutat"               },
        { "aktst", 1,  21600, "Asia/Aqtobe"                   },
+       { "aktt",  0,  21600, "Asia/Aqtobe"                   },
        { "aktt",  0,  14400, "Asia/Aqtobe"                   },
        { "aktt",  0,  18000, "Asia/Aqtobe"                   },
-       { "aktt",  0,  21600, "Asia/Aqtobe"                   },
        { "almst", 1,  25200, "Asia/Almaty"                   },
-       { "almt",  0,  18000, "Asia/Almaty"                   },
        { "almt",  0,  21600, "Asia/Almaty"                   },
-       { "amst",  1,  14400, "Asia/Yerevan"                  },
+       { "almt",  0,  18000, "Asia/Almaty"                   },
        { "amst",  1,  18000, "Asia/Yerevan"                  },
+       { "amst",  1,  14400, "Asia/Yerevan"                  },
        { "amst",  1, -10800, "America/Boa_Vista"             },
        { "amst",  1, -10800, "America/Campo_Grande"          },
        { "amst",  1, -10800, "America/Cuiaba"                },
@@ -53,8 +98,8 @@
        { "amst",  1, -10800, "America/Porto_Velho"           },
        { "amst",  1, -10800, "America/Santarem"              },
        { "amst",  1, -10800, "Brazil/West"                   },
-       { "amt",   0,  10800, "Asia/Yerevan"                  },
        { "amt",   0,  14400, "Asia/Yerevan"                  },
+       { "amt",   0,  10800, "Asia/Yerevan"                  },
        { "amt",   0, -13840, "America/Asuncion"              },
        { "amt",   0, -14400, "America/Boa_Vista"             },
        { "amt",   0, -14400, "America/Campo_Grande"          },
        { "amt",   0, -14400, "Brazil/West"                   },
        { "amt",   0,   1172, "Europe/Amsterdam"              },
        { "amt",   0,   5692, "Europe/Athens"                 },
+       { "anast", 1,  50400, "Asia/Anadyr"                   },
        { "anast", 1,  43200, "Asia/Anadyr"                   },
        { "anast", 1,  46800, "Asia/Anadyr"                   },
-       { "anast", 1,  50400, "Asia/Anadyr"                   },
+       { "anat",  0,  46800, "Asia/Anadyr"                   },
        { "anat",  0,  39600, "Asia/Anadyr"                   },
        { "anat",  0,  43200, "Asia/Anadyr"                   },
-       { "anat",  0,  46800, "Asia/Anadyr"                   },
        { "ant",   0, -16200, "America/Curacao"               },
        { "ant",   0, -16200, "America/Aruba"                 },
+       { "ant",   0, -16200, "America/Kralendijk"            },
+       { "ant",   0, -16200, "America/Lower_Princes"         },
        { "aot",   0,   3124, "Africa/Luanda"                 },
        { "apt",   1, -10800, "America/Halifax"               },
        { "apt",   1, -10800, "America/Blanc-Sablon"          },
        { "apt",   1, -10800, "America/Pangnirtung"           },
        { "apt",   1, -10800, "America/Puerto_Rico"           },
        { "apt",   1, -10800, "Canada/Atlantic"               },
-       { "aqtst", 1,  18000, "Asia/Aqtau"                    },
        { "aqtst", 1,  21600, "Asia/Aqtau"                    },
+       { "aqtst", 1,  18000, "Asia/Aqtau"                    },
        { "aqtst", 1,  21600, "Asia/Aqtobe"                   },
-       { "aqtt",  0,  14400, "Asia/Aqtau"                    },
        { "aqtt",  0,  18000, "Asia/Aqtau"                    },
+       { "aqtt",  0,  14400, "Asia/Aqtau"                    },
        { "aqtt",  0,  18000, "Asia/Aqtobe"                   },
-       { "arst",  1, -10800, "America/Buenos_Aires"          },
        { "arst",  1,  -7200, "America/Buenos_Aires"          },
+       { "arst",  1, -10800, "America/Buenos_Aires"          },
        { "arst",  1, -10800, "America/Argentina/Buenos_Aires" },
        { "arst",  1, -10800, "America/Argentina/Catamarca"   },
        { "arst",  1, -10800, "America/Argentina/ComodRivadavia" },
        { "art",   0, -14400, "America/Mendoza"               },
        { "art",   0, -14400, "America/Rosario"               },
        { "art",   0, -14400, "Antarctica/Palmer"             },
-       { "ashst", 1,  18000, "Asia/Ashkhabad"                },
        { "ashst", 1,  21600, "Asia/Ashkhabad"                },
+       { "ashst", 1,  18000, "Asia/Ashkhabad"                },
        { "ashst", 1,  18000, "Asia/Ashgabat"                 },
        { "ashst", 1,  21600, "Asia/Ashgabat"                 },
-       { "asht",  0,  14400, "Asia/Ashkhabad"                },
        { "asht",  0,  18000, "Asia/Ashkhabad"                },
+       { "asht",  0,  14400, "Asia/Ashkhabad"                },
        { "asht",  0,  14400, "Asia/Ashgabat"                 },
        { "asht",  0,  18000, "Asia/Ashgabat"                 },
        { "ast",   0,  10800, "Asia/Riyadh"                   },
        { "ast",   0, -14400, "America/Grenada"               },
        { "ast",   0, -14400, "America/Guadeloupe"            },
        { "ast",   0, -14400, "America/Halifax"               },
+       { "ast",   0, -14400, "America/Kralendijk"            },
+       { "ast",   0, -14400, "America/Lower_Princes"         },
        { "ast",   0, -14400, "America/Marigot"               },
        { "ast",   0, -14400, "America/Martinique"            },
        { "ast",   0, -14400, "America/Miquelon"              },
        { "ast",   0,  10800, "Asia/Bahrain"                  },
        { "ast",   0,  10800, "Asia/Kuwait"                   },
        { "ast",   0,  10800, "Asia/Qatar"                    },
+       { "awdt",  1,  32400, "Australia/Perth"               },
+       { "awdt",  1,  32400, "Australia/West"                },
+       { "awst",  0,  28800, "Australia/Perth"               },
+       { "awst",  0,  28800, "Antarctica/Casey"              },
+       { "awst",  0,  28800, "Australia/West"                },
        { "awt",   1, -10800, "America/Halifax"               },
        { "awt",   1, -10800, "America/Blanc-Sablon"          },
        { "awt",   1, -10800, "America/Glace_Bay"             },
        { "awt",   1, -10800, "America/Puerto_Rico"           },
        { "awt",   1, -10800, "Canada/Atlantic"               },
        { "azomt", 1,      0, "Atlantic/Azores"               },
-       { "azost", 1,  -3600, "Atlantic/Azores"               },
        { "azost", 1,      0, "Atlantic/Azores"               },
+       { "azost", 1,  -3600, "Atlantic/Azores"               },
        { "azot",  0,  -3600, "Atlantic/Azores"               },
        { "azot",  0,  -7200, "Atlantic/Azores"               },
-       { "azst",  1,  14400, "Asia/Baku"                     },
        { "azst",  1,  18000, "Asia/Baku"                     },
-       { "azt",   0,  10800, "Asia/Baku"                     },
+       { "azst",  1,  14400, "Asia/Baku"                     },
        { "azt",   0,  14400, "Asia/Baku"                     },
-       { "bakst", 1,  14400, "Asia/Baku"                     },
+       { "azt",   0,  10800, "Asia/Baku"                     },
        { "bakst", 1,  18000, "Asia/Baku"                     },
-       { "bakt",  0,  10800, "Asia/Baku"                     },
+       { "bakst", 1,  14400, "Asia/Baku"                     },
        { "bakt",  0,  14400, "Asia/Baku"                     },
+       { "bakt",  0,  10800, "Asia/Baku"                     },
        { "bdst",  1,   7200, "Europe/London"                 },
        { "bdst",  1,  25200, "Asia/Dacca"                    },
        { "bdst",  1,  25200, "Asia/Dhaka"                    },
        { "bdst",  1,   7200, "Europe/Jersey"                 },
        { "bdst",  1,   7200, "GB"                            },
        { "bdt",   1, -36000, "America/Adak"                  },
+       { "bdt",   0,  21600, "Asia/Dacca"                    },
        { "bdt",   1, -36000, "America/Atka"                  },
        { "bdt",   1, -36000, "America/Nome"                  },
-       { "bdt",   0,  21600, "Asia/Dacca"                    },
        { "bdt",   0,  21600, "Asia/Dhaka"                    },
        { "beat",  0,   9000, "Africa/Mogadishu"              },
        { "beat",  0,   9000, "Africa/Kampala"                },
        { "beat",  0,   9000, "Africa/Nairobi"                },
-       { "beaut", 0,   9885, "Africa/Nairobi"                },
-       { "beaut", 0,   9885, "Africa/Dar_es_Salaam"          },
-       { "beaut", 0,   9885, "Africa/Kampala"                },
-       { "bmt",   0, -14308, "America/Barbados"              },
-       { "bmt",   0, -17780, "America/Bogota"                },
-       { "bmt",   0,  -3996, "Africa/Banjul"                 },
+       { "beaut", 0,   9900, "Africa/Nairobi"                },
+       { "beaut", 0,   9900, "Africa/Dar_es_Salaam"          },
+       { "beaut", 0,   9900, "Africa/Kampala"                },
+       { "bmt",   0, -14309, "America/Barbados"              },
+       { "bmt",   0,   6264, "Europe/Tiraspol"               },
+       { "bmt",   0, -17776, "America/Bogota"                },
        { "bmt",   0,  10656, "Asia/Baghdad"                  },
        { "bmt",   0,  24124, "Asia/Bangkok"                  },
-       { "bmt",   0,   6264, "Europe/Tiraspol"               },
+       { "bmt",   0,  25632, "Asia/Jakarta"                  },
        { "bmt",   0,   6264, "Europe/Bucharest"              },
        { "bmt",   0,   6264, "Europe/Chisinau"               },
-       { "bnt",   0,  27000, "Asia/Brunei"                   },
        { "bnt",   0,  28800, "Asia/Brunei"                   },
+       { "bnt",   0,  27000, "Asia/Brunei"                   },
        { "bortst", 1,  30000, "Asia/Kuching"                  },
-       { "bort",  0,  27000, "Asia/Kuching"                  },
        { "bort",  0,  28800, "Asia/Kuching"                  },
+       { "bort",  0,  27000, "Asia/Kuching"                  },
        { "bost",  1, -12756, "America/La_Paz"                },
        { "bot",   0, -14400, "America/La_Paz"                },
        { "brst",  1,  -7200, "America/Sao_Paulo"             },
        { "brt",   0, -10800, "America/Recife"                },
        { "brt",   0, -10800, "America/Santarem"              },
        { "brt",   0, -10800, "Brazil/East"                   },
-       { "bst",   0,   3600, "Europe/London"                 },
        { "bst",   1,   3600, "Europe/London"                 },
+       { "bst",   0,   3600, "Europe/London"                 },
        { "bst",   0, -39600, "America/Adak"                  },
        { "bst",   0, -39600, "America/Atka"                  },
        { "bst",   0, -39600, "America/Nome"                  },
        { "capt",  1, -32400, "America/Anchorage"             },
        { "cast",  0,  34200, "Australia/Adelaide"            },
        { "cast",  1,  10800, "Africa/Gaborone"               },
+       { "cast",  1,  10800, "Africa/Juba"                   },
        { "cast",  1,  10800, "Africa/Khartoum"               },
        { "cast",  0,  39600, "Antarctica/Casey"              },
        { "cat",   0, -36000, "America/Anchorage"             },
        { "cat",   0,   7200, "Africa/Bujumbura"              },
        { "cat",   0,   7200, "Africa/Gaborone"               },
        { "cat",   0,   7200, "Africa/Harare"                 },
+       { "cat",   0,   7200, "Africa/Juba"                   },
        { "cat",   0,   7200, "Africa/Kigali"                 },
        { "cat",   0,   7200, "Africa/Lubumbashi"             },
        { "cat",   0,   7200, "Africa/Lusaka"                 },
        { "cddt",  1, -14400, "America/Rankin_Inlet"          },
        { "cddt",  1, -14400, "America/Resolute"              },
        { "cdt",   1, -18000, "America/Chicago"               },
+       { "cdt",   1,  32400, "Asia/Shanghai"                 },
        { "cdt",   1, -14400, "America/Havana"                },
-       { "cdt",   0, -18000, "America/Resolute"              },
        { "cdt",   1, -18000, "America/Atikokan"              },
        { "cdt",   1, -18000, "America/Bahia_Banderas"        },
        { "cdt",   1, -18000, "America/Belize"                },
        { "cdt",   1, -18000, "America/Merida"                },
        { "cdt",   1, -18000, "America/Mexico_City"           },
        { "cdt",   1, -18000, "America/Monterrey"             },
+       { "cdt",   1, -18000, "America/North_Dakota/Beulah"   },
        { "cdt",   1, -18000, "America/North_Dakota/Center"   },
        { "cdt",   1, -18000, "America/North_Dakota/New_Salem" },
        { "cdt",   1, -18000, "America/Ojinaga"               },
        { "cdt",   1, -18000, "America/Winnipeg"              },
        { "cdt",   1, -18000, "Canada/Central"                },
        { "cdt",   1, -18000, "Mexico/General"                },
-       { "cdt",   1,  32400, "Asia/Shanghai"                 },
        { "cdt",   1,  32400, "Asia/Chongqing"                },
        { "cdt",   1,  32400, "Asia/Chungking"                },
        { "cdt",   1,  32400, "Asia/Harbin"                   },
-       { "cdt",   1,  32400, "Asia/Kashgar"                  },
        { "cdt",   1,  32400, "Asia/Taipei"                   },
-       { "cdt",   1,  32400, "Asia/Urumqi"                   },
        { "cdt",   1,  32400, "PRC"                           },
        { "cdt",   1,  32400, "ROC"                           },
        { "cemt",  1,  10800, "Europe/Berlin"                 },
        { "cest",  1,   7200, "Africa/Ceuta"                  },
        { "cest",  1,   7200, "Africa/Tripoli"                },
        { "cest",  1,   7200, "Africa/Tunis"                  },
+       { "cest",  1,   7200, "Antarctica/Troll"              },
        { "cest",  1,   7200, "Arctic/Longyearbyen"           },
        { "cest",  1,   7200, "Atlantic/Jan_Mayen"            },
        { "cest",  1,   7200, "CET"                           },
        { "cest",  1,   7200, "Europe/Bratislava"             },
        { "cest",  1,   7200, "Europe/Brussels"               },
        { "cest",  1,   7200, "Europe/Budapest"               },
+       { "cest",  1,   7200, "Europe/Busingen"               },
        { "cest",  1,   7200, "Europe/Chisinau"               },
        { "cest",  1,   7200, "Europe/Copenhagen"             },
        { "cest",  1,   7200, "Europe/Gibraltar"              },
        { "cest",  1,   7200, "Europe/Zurich"                 },
        { "cest",  1,   7200, "WET"                           },
        { "cet",   0,   3600, "Europe/Berlin"                 },
+       { "cet",   0,   7200, "Europe/Kaliningrad"            },
        { "cet",   0,   3600, "Africa/Algiers"                },
        { "cet",   0,   3600, "Africa/Casablanca"             },
        { "cet",   0,   3600, "Africa/Ceuta"                  },
        { "cet",   0,   3600, "Europe/Bratislava"             },
        { "cet",   0,   3600, "Europe/Brussels"               },
        { "cet",   0,   3600, "Europe/Budapest"               },
+       { "cet",   0,   3600, "Europe/Busingen"               },
        { "cet",   0,   3600, "Europe/Chisinau"               },
        { "cet",   0,   3600, "Europe/Copenhagen"             },
        { "cet",   0,   3600, "Europe/Gibraltar"              },
        { "cet",   0,   3600, "Europe/Zaporozhye"             },
        { "cet",   0,   3600, "Europe/Zurich"                 },
        { "cet",   0,   3600, "WET"                           },
-       { "cet",   0,   7200, "Europe/Kaliningrad"            },
        { "cgst",  1,  -3600, "America/Scoresbysund"          },
        { "cgt",   0,  -7200, "America/Scoresbysund"          },
        { "chadt", 1,  49500, "Pacific/Chatham"               },
        { "chast", 0,  45900, "Pacific/Chatham"               },
-       { "chat",  0,  30600, "Asia/Harbin"                   },
-       { "chat",  0,  32400, "Asia/Harbin"                   },
+       { "chast", 0,  44100, "Pacific/Chatham"               },
        { "chdt",  1, -19800, "America/Belize"                },
        { "chost", 1,  36000, "Asia/Choibalsan"               },
-       { "chot",  0,  28800, "Asia/Choibalsan"               },
        { "chot",  0,  32400, "Asia/Choibalsan"               },
+       { "chot",  0,  28800, "Asia/Choibalsan"               },
        { "chut",  0,  36000, "Pacific/Chuuk"                 },
        { "chut",  0,  36000, "Pacific/Truk"                  },
        { "chut",  0,  36000, "Pacific/Yap"                   },
-       { "cit",   0,  28800, "Asia/Dili"                     },
-       { "cit",   0,  28800, "Asia/Makassar"                 },
-       { "cit",   0,  28800, "Asia/Pontianak"                },
-       { "cit",   0,  28800, "Asia/Ujung_Pandang"            },
-       { "cjt",   0,  32400, "Asia/Sakhalin"                 },
-       { "cjt",   0,  32400, "Asia/Tokyo"                    },
        { "ckhst", 1, -34200, "Pacific/Rarotonga"             },
        { "ckt",   0, -36000, "Pacific/Rarotonga"             },
        { "ckt",   0, -37800, "Pacific/Rarotonga"             },
        { "clt",   0, -14400, "Antarctica/Palmer"             },
        { "clt",   0, -14400, "Chile/Continental"             },
        { "clt",   0, -18000, "Chile/Continental"             },
-       { "cmt",   0, -14640, "America/St_Lucia"              },
        { "cmt",   0, -15408, "America/Argentina/Buenos_Aires" },
        { "cmt",   0, -15408, "America/Argentina/Catamarca"   },
        { "cmt",   0, -15408, "America/Argentina/ComodRivadavia" },
        { "cst",   0, -21600, "America/Merida"                },
        { "cst",   0, -21600, "America/Mexico_City"           },
        { "cst",   0, -21600, "America/Monterrey"             },
+       { "cst",   0, -21600, "America/North_Dakota/Beulah"   },
        { "cst",   0, -21600, "America/North_Dakota/Center"   },
        { "cst",   0, -21600, "America/North_Dakota/New_Salem" },
        { "cst",   0, -21600, "America/Ojinaga"               },
        { "cst",   0,  28800, "Asia/Chongqing"                },
        { "cst",   0,  28800, "Asia/Chungking"                },
        { "cst",   0,  28800, "Asia/Harbin"                   },
-       { "cst",   0,  28800, "Asia/Kashgar"                  },
        { "cst",   0,  28800, "Asia/Macao"                    },
        { "cst",   0,  28800, "Asia/Macau"                    },
        { "cst",   0,  28800, "Asia/Shanghai"                 },
        { "cst",   0,  28800, "Asia/Taipei"                   },
-       { "cst",   0,  28800, "Asia/Urumqi"                   },
        { "cst",   0,  28800, "PRC"                           },
        { "cst",   0,  28800, "ROC"                           },
-       { "cst",   0,  34200, "Asia/Jayapura"                 },
-       { "cst",   0,  34200, "Australia/Adelaide"            },
-       { "cst",   0,  34200, "Australia/Broken_Hill"         },
-       { "cst",   0,  34200, "Australia/Darwin"              },
-       { "cst",   0,  34200, "Australia/North"               },
-       { "cst",   0,  34200, "Australia/South"               },
-       { "cst",   0,  34200, "Australia/Yancowinna"          },
-       { "cst",   1,  37800, "Australia/Adelaide"            },
-       { "cst",   1,  37800, "Australia/Broken_Hill"         },
-       { "cst",   1,  37800, "Australia/Darwin"              },
-       { "cst",   1,  37800, "Australia/North"               },
-       { "cst",   1,  37800, "Australia/South"               },
-       { "cst",   1,  37800, "Australia/Yancowinna"          },
        { "cut",   0,   8400, "Europe/Zaporozhye"             },
        { "cvst",  1,  -3600, "Atlantic/Cape_Verde"           },
-       { "cvt",   0,  -3600, "Atlantic/Cape_Verde"           },
        { "cvt",   0,  -7200, "Atlantic/Cape_Verde"           },
-       { "cwst",  0,  31500, "Australia/Eucla"               },
-       { "cwst",  1,  35100, "Australia/Eucla"               },
+       { "cvt",   0,  -3600, "Atlantic/Cape_Verde"           },
        { "cwt",   1, -18000, "America/Chicago"               },
        { "cwt",   1, -18000, "America/Atikokan"              },
        { "cwt",   1, -18000, "America/Coral_Harbour"         },
        { "chst",  0,  36000, "Pacific/Saipan"                },
        { "dact",  0,  21600, "Asia/Dacca"                    },
        { "dact",  0,  21600, "Asia/Dhaka"                    },
-       { "davt",  0,  18000, "Antarctica/Davis"              },
        { "davt",  0,  25200, "Antarctica/Davis"              },
+       { "davt",  0,  18000, "Antarctica/Davis"              },
        { "ddut",  0,  36000, "Antarctica/DumontDUrville"     },
        { "dmt",   0,  -1521, "Europe/Dublin"                 },
-       { "dusst", 1,  21600, "Asia/Dushanbe"                 },
        { "dusst", 1,  25200, "Asia/Dushanbe"                 },
-       { "dust",  0,  18000, "Asia/Dushanbe"                 },
+       { "dusst", 1,  21600, "Asia/Dushanbe"                 },
        { "dust",  0,  21600, "Asia/Dushanbe"                 },
-       { "easst", 1, -18000, "Chile/EasterIsland"            },
+       { "dust",  0,  18000, "Asia/Dushanbe"                 },
        { "easst", 1, -21600, "Chile/EasterIsland"            },
+       { "easst", 1, -18000, "Chile/EasterIsland"            },
        { "easst", 1, -18000, "Pacific/Easter"                },
        { "easst", 1, -21600, "Pacific/Easter"                },
        { "east",  0, -21600, "Chile/EasterIsland"            },
        { "east",  0, -25200, "Chile/EasterIsland"            },
+       { "east",  1,  14400, "Indian/Antananarivo"           },
        { "east",  0, -21600, "Pacific/Easter"                },
        { "east",  0, -25200, "Pacific/Easter"                },
-       { "east",  1,  14400, "Indian/Antananarivo"           },
        { "eat",   0,  10800, "Africa/Khartoum"               },
        { "eat",   0,  10800, "Africa/Addis_Ababa"            },
        { "eat",   0,  10800, "Africa/Asmara"                 },
        { "eat",   0,  10800, "Africa/Asmera"                 },
        { "eat",   0,  10800, "Africa/Dar_es_Salaam"          },
        { "eat",   0,  10800, "Africa/Djibouti"               },
+       { "eat",   0,  10800, "Africa/Juba"                   },
        { "eat",   0,  10800, "Africa/Kampala"                },
        { "eat",   0,  10800, "Africa/Mogadishu"              },
        { "eat",   0,  10800, "Africa/Nairobi"                },
        { "eest",  1,  10800, "Asia/Beirut"                   },
        { "eest",  1,  10800, "Asia/Damascus"                 },
        { "eest",  1,  10800, "Asia/Gaza"                     },
+       { "eest",  1,  10800, "Asia/Hebron"                   },
        { "eest",  1,  10800, "Asia/Istanbul"                 },
        { "eest",  1,  10800, "Asia/Nicosia"                  },
        { "eest",  1,  10800, "EET"                           },
        { "eest",  1,  10800, "Europe/Moscow"                 },
        { "eest",  1,  10800, "Europe/Nicosia"                },
        { "eest",  1,  10800, "Europe/Riga"                   },
+       { "eest",  1,  10800, "Europe/Samara"                 },
        { "eest",  1,  10800, "Europe/Simferopol"             },
        { "eest",  1,  10800, "Europe/Sofia"                  },
        { "eest",  1,  10800, "Europe/Tallinn"                },
        { "eest",  1,  10800, "Europe/Zaporozhye"             },
        { "eet",   0,   7200, "Europe/Helsinki"               },
        { "eet",   1,  10800, "Asia/Gaza"                     },
+       { "eet",   1,  10800, "Asia/Hebron"                   },
        { "eet",   0,   7200, "Africa/Cairo"                  },
        { "eet",   0,   7200, "Africa/Tripoli"                },
        { "eet",   0,   7200, "Asia/Amman"                    },
        { "eet",   0,   7200, "Asia/Beirut"                   },
        { "eet",   0,   7200, "Asia/Damascus"                 },
        { "eet",   0,   7200, "Asia/Gaza"                     },
+       { "eet",   0,   7200, "Asia/Hebron"                   },
        { "eet",   0,   7200, "Asia/Istanbul"                 },
        { "eet",   0,   7200, "Asia/Nicosia"                  },
        { "eet",   0,   7200, "EET"                           },
        { "egst",  1,      0, "America/Scoresbysund"          },
        { "egt",   0,  -3600, "America/Scoresbysund"          },
        { "ehdt",  1, -16200, "America/Santo_Domingo"         },
-       { "eit",   0,  32400, "Asia/Jayapura"                 },
        { "emt",   0, -26248, "Chile/EasterIsland"            },
        { "emt",   0, -26248, "Pacific/Easter"                },
        { "ept",   1, -14400, "America/New_York"              },
        { "est",   0, -18000, "America/Toronto"               },
        { "est",   0, -18000, "Canada/Eastern"                },
        { "est",   0, -18000, "EST"                           },
-       { "est",   0,  36000, "Antarctica/Macquarie"          },
-       { "est",   0,  36000, "Australia/ACT"                 },
-       { "est",   0,  36000, "Australia/Brisbane"            },
-       { "est",   0,  36000, "Australia/Canberra"            },
-       { "est",   0,  36000, "Australia/Currie"              },
-       { "est",   0,  36000, "Australia/Hobart"              },
-       { "est",   0,  36000, "Australia/LHI"                 },
-       { "est",   0,  36000, "Australia/Lindeman"            },
-       { "est",   0,  36000, "Australia/Lord_Howe"           },
-       { "est",   0,  36000, "Australia/Melbourne"           },
-       { "est",   0,  36000, "Australia/NSW"                 },
-       { "est",   0,  36000, "Australia/Queensland"          },
-       { "est",   0,  36000, "Australia/Sydney"              },
-       { "est",   0,  36000, "Australia/Tasmania"            },
-       { "est",   0,  36000, "Australia/Victoria"            },
-       { "est",   1,  39600, "Australia/Melbourne"           },
-       { "est",   1,  39600, "Antarctica/Macquarie"          },
-       { "est",   1,  39600, "Australia/ACT"                 },
-       { "est",   1,  39600, "Australia/Brisbane"            },
-       { "est",   1,  39600, "Australia/Canberra"            },
-       { "est",   1,  39600, "Australia/Currie"              },
-       { "est",   1,  39600, "Australia/Hobart"              },
-       { "est",   1,  39600, "Australia/Lindeman"            },
-       { "est",   1,  39600, "Australia/NSW"                 },
-       { "est",   1,  39600, "Australia/Queensland"          },
-       { "est",   1,  39600, "Australia/Sydney"              },
-       { "est",   1,  39600, "Australia/Tasmania"            },
-       { "est",   1,  39600, "Australia/Victoria"            },
        { "ewt",   1, -14400, "America/New_York"              },
        { "ewt",   1, -14400, "America/Detroit"               },
        { "ewt",   1, -14400, "America/Iqaluit"               },
        { "ewt",   1, -14400, "America/Toronto"               },
        { "ewt",   1, -14400, "Canada/Eastern"                },
        { "ewt",   1, -14400, "EST"                           },
+       { "fet",   0,  10800, "Europe/Kaliningrad"            },
+       { "fet",   0,  10800, "Europe/Minsk"                  },
        { "ffmt",  0, -14660, "America/Martinique"            },
        { "fjst",  1,  46800, "Pacific/Fiji"                  },
        { "fjt",   0,  43200, "Pacific/Fiji"                  },
-       { "fkst",  1, -10800, "Atlantic/Stanley"              },
        { "fkst",  1,  -7200, "Atlantic/Stanley"              },
-       { "fkt",   0, -10800, "Atlantic/Stanley"              },
+       { "fkst",  0, -10800, "Atlantic/Stanley"              },
+       { "fkst",  1, -10800, "Atlantic/Stanley"              },
        { "fkt",   0, -14400, "Atlantic/Stanley"              },
-       { "fmt",   0,  -3180, "Africa/Freetown"               },
+       { "fkt",   0, -10800, "Atlantic/Stanley"              },
        { "fmt",   0,  -4056, "Atlantic/Madeira"              },
        { "fnst",  1,  -3600, "America/Noronha"               },
        { "fnst",  1,  -3600, "Brazil/DeNoronha"              },
        { "fnt",   0,  -7200, "America/Noronha"               },
        { "fnt",   0,  -7200, "Brazil/DeNoronha"              },
-       { "fort",  0,  14400, "Asia/Aqtau"                    },
        { "fort",  0,  18000, "Asia/Aqtau"                    },
-       { "frust", 1,  21600, "Asia/Bishkek"                  },
+       { "fort",  0,  14400, "Asia/Aqtau"                    },
        { "frust", 1,  25200, "Asia/Bishkek"                  },
-       { "frut",  0,  18000, "Asia/Bishkek"                  },
+       { "frust", 1,  21600, "Asia/Bishkek"                  },
        { "frut",  0,  21600, "Asia/Bishkek"                  },
+       { "frut",  0,  18000, "Asia/Bishkek"                  },
        { "galt",  0, -21600, "Pacific/Galapagos"             },
        { "gamt",  0, -32400, "Pacific/Gambier"               },
        { "gbgt",  0, -13500, "America/Guyana"                },
        { "gest",  1,  14400, "Asia/Tbilisi"                  },
        { "gest",  1,  18000, "Asia/Tbilisi"                  },
-       { "get",   0,  10800, "Asia/Tbilisi"                  },
        { "get",   0,  14400, "Asia/Tbilisi"                  },
-       { "gft",   0, -10800, "America/Cayenne"               },
+       { "get",   0,  10800, "Asia/Tbilisi"                  },
        { "gft",   0, -14400, "America/Cayenne"               },
+       { "gft",   0, -10800, "America/Cayenne"               },
        { "ghst",  1,   1200, "Africa/Accra"                  },
        { "gilt",  0,  43200, "Pacific/Tarawa"                },
        { "gmt",   0,      0, "Africa/Abidjan"                },
        { "gst",   0,  14400, "Asia/Muscat"                   },
        { "gst",   0,  14400, "Asia/Qatar"                    },
        { "gst",   0,  36000, "Pacific/Guam"                  },
+       { "gyt",   0, -14400, "America/Guyana"                },
        { "gyt",   0, -10800, "America/Guyana"                },
        { "gyt",   0, -13500, "America/Guyana"                },
-       { "gyt",   0, -14400, "America/Guyana"                },
        { "hadt",  1, -32400, "America/Adak"                  },
        { "hadt",  1, -32400, "America/Atka"                  },
        { "hast",  0, -36000, "America/Adak"                  },
        { "hast",  0, -36000, "America/Atka"                  },
        { "hdt",   1, -34200, "Pacific/Honolulu"              },
        { "hdt",   1, -34200, "HST"                           },
+       { "hdt",   1, -34200, "Pacific/Johnston"              },
        { "hkst",  1,  32400, "Asia/Hong_Kong"                },
        { "hkt",   0,  28800, "Asia/Hong_Kong"                },
        { "hmt",   0, -19776, "America/Havana"                },
        { "hmt",   0,  21200, "Asia/Dacca"                    },
        { "hmt",   0,  21200, "Asia/Dhaka"                    },
        { "hmt",   0,  21200, "Asia/Kolkata"                  },
-       { "hmt",   0,   5992, "EET"                           },
-       { "hmt",   0,   5992, "Europe/Helsinki"               },
-       { "hmt",   0,   5992, "Europe/Mariehamn"              },
+       { "hmt",   0,   5989, "EET"                           },
+       { "hmt",   0,   5989, "Europe/Helsinki"               },
+       { "hmt",   0,   5989, "Europe/Mariehamn"              },
        { "hovst", 1,  28800, "Asia/Hovd"                     },
-       { "hovt",  0,  21600, "Asia/Hovd"                     },
        { "hovt",  0,  25200, "Asia/Hovd"                     },
-       { "hpt",   1, -34200, "Pacific/Honolulu"              },
-       { "hpt",   1, -34200, "HST"                           },
+       { "hovt",  0,  21600, "Asia/Hovd"                     },
        { "hst",   0, -36000, "Pacific/Honolulu"              },
        { "hst",   0, -37800, "Pacific/Honolulu"              },
        { "hst",   0, -36000, "HST"                           },
        { "hst",   0, -36000, "Pacific/Johnston"              },
        { "hst",   0, -37800, "HST"                           },
-       { "hwt",   1, -34200, "Pacific/Honolulu"              },
-       { "hwt",   1, -34200, "HST"                           },
+       { "hst",   0, -37800, "Pacific/Johnston"              },
        { "ict",   0,  25200, "Asia/Bangkok"                  },
        { "ict",   0,  25200, "Asia/Ho_Chi_Minh"              },
        { "ict",   0,  25200, "Asia/Phnom_Penh"               },
        { "iddt",  1,  14400, "Asia/Tel_Aviv"                 },
        { "idt",   1,  10800, "Asia/Jerusalem"                },
        { "idt",   1,  10800, "Asia/Gaza"                     },
+       { "idt",   1,  10800, "Asia/Hebron"                   },
        { "idt",   1,  10800, "Asia/Tel_Aviv"                 },
        { "ihst",  1,  21600, "Asia/Colombo"                  },
-       { "imt",   0,  25040, "Asia/Irkutsk"                  },
+       { "imt",   0,  25035, "Asia/Irkutsk"                  },
        { "imt",   0,   7016, "Asia/Istanbul"                 },
        { "imt",   0,   7016, "Europe/Istanbul"               },
-       { "iot",   0,  18000, "Indian/Chagos"                 },
        { "iot",   0,  21600, "Indian/Chagos"                 },
+       { "iot",   0,  18000, "Indian/Chagos"                 },
        { "irdt",  1,  16200, "Asia/Tehran"                   },
        { "irdt",  1,  18000, "Asia/Tehran"                   },
-       { "irkst", 1,  28800, "Asia/Irkutsk"                  },
        { "irkst", 1,  32400, "Asia/Irkutsk"                  },
-       { "irkt",  0,  25200, "Asia/Irkutsk"                  },
+       { "irkst", 1,  28800, "Asia/Irkutsk"                  },
        { "irkt",  0,  28800, "Asia/Irkutsk"                  },
+       { "irkt",  0,  25200, "Asia/Irkutsk"                  },
+       { "irkt",  0,  32400, "Asia/Irkutsk"                  },
+       { "irkt",  0,  28800, "Asia/Chita"                    },
        { "irst",  0,  12600, "Asia/Tehran"                   },
        { "irst",  0,  14400, "Asia/Tehran"                   },
        { "isst",  1,      0, "Atlantic/Reykjavik"            },
        { "ist",   0,   3600, "Europe/Dublin"                 },
        { "ist",   1,   3600, "Europe/Dublin"                 },
        { "ist",   0,   7200, "Asia/Gaza"                     },
+       { "ist",   0,   7200, "Asia/Hebron"                   },
        { "ist",   0,   7200, "Asia/Tel_Aviv"                 },
        { "javt",  0,  26400, "Asia/Jakarta"                  },
+       { "jcst",  0,  32400, "Asia/Pyongyang"                },
+       { "jcst",  0,  32400, "Asia/Sakhalin"                 },
+       { "jcst",  0,  32400, "Asia/Seoul"                    },
+       { "jcst",  0,  32400, "Asia/Tokyo"                    },
+       { "jcst",  0,  32400, "ROK"                           },
        { "jdt",   1,  36000, "Asia/Tokyo"                    },
-       { "jmt",   0,  -1368, "Atlantic/St_Helena"            },
-       { "jmt",   0,  25632, "Asia/Jakarta"                  },
        { "jmt",   0,   8440, "Asia/Jerusalem"                },
        { "jmt",   0,   8440, "Asia/Tel_Aviv"                 },
        { "jst",   0,  32400, "Asia/Tokyo"                    },
        { "jst",   0,  32400, "Asia/Makassar"                 },
        { "jst",   0,  32400, "Asia/Manila"                   },
        { "jst",   0,  32400, "Asia/Pontianak"                },
+       { "jst",   0,  32400, "Asia/Pyongyang"                },
        { "jst",   0,  32400, "Asia/Rangoon"                  },
        { "jst",   0,  32400, "Asia/Sakhalin"                 },
+       { "jst",   0,  32400, "Asia/Seoul"                    },
        { "jst",   0,  32400, "Asia/Singapore"                },
+       { "jst",   0,  32400, "Asia/Taipei"                   },
        { "jst",   0,  32400, "Asia/Ujung_Pandang"            },
        { "jst",   0,  32400, "Pacific/Nauru"                 },
+       { "jst",   0,  32400, "ROC"                           },
+       { "jst",   0,  32400, "ROK"                           },
+       { "jwst",  0,  28800, "Asia/Taipei"                   },
+       { "jwst",  0,  28800, "ROC"                           },
        { "kart",  0,  18000, "Asia/Karachi"                  },
-       { "kast",  0,  18000, "Asia/Kashgar"                  },
-       { "kast",  0,  19800, "Asia/Kashgar"                  },
-       { "kdt",   1,  32400, "Asia/Seoul"                    },
        { "kdt",   1,  36000, "Asia/Seoul"                    },
+       { "kdt",   1,  32400, "Asia/Seoul"                    },
        { "kdt",   1,  32400, "ROK"                           },
        { "kdt",   1,  36000, "ROK"                           },
        { "kgst",  1,  21600, "Asia/Bishkek"                  },
        { "kgt",   0,  18000, "Asia/Bishkek"                  },
        { "kgt",   0,  21600, "Asia/Bishkek"                  },
        { "kizst", 1,  21600, "Asia/Qyzylorda"                },
+       { "kizt",  0,  21600, "Asia/Qyzylorda"                },
        { "kizt",  0,  14400, "Asia/Qyzylorda"                },
        { "kizt",  0,  18000, "Asia/Qyzylorda"                },
-       { "kizt",  0,  21600, "Asia/Qyzylorda"                },
        { "kmt",   0,   5736, "Europe/Vilnius"                },
-       { "kmt",   0, -14696, "America/St_Vincent"            },
-       { "kmt",   0, -18432, "America/Cayman"                },
-       { "kmt",   0, -18432, "America/Grand_Turk"            },
-       { "kmt",   0, -18432, "America/Jamaica"               },
+       { "kmt",   0, -18431, "America/Cayman"                },
+       { "kmt",   0, -18431, "America/Grand_Turk"            },
+       { "kmt",   0, -18431, "America/Jamaica"               },
        { "kmt",   0,   7324, "Europe/Kiev"                   },
-       { "kost",  0,  39600, "Pacific/Kosrae"                },
        { "kost",  0,  43200, "Pacific/Kosrae"                },
-       { "krast", 1,  25200, "Asia/Krasnoyarsk"              },
+       { "kost",  0,  39600, "Pacific/Kosrae"                },
        { "krast", 1,  28800, "Asia/Krasnoyarsk"              },
+       { "krast", 1,  25200, "Asia/Krasnoyarsk"              },
        { "krast", 1,  25200, "Asia/Novokuznetsk"             },
        { "krast", 1,  28800, "Asia/Novokuznetsk"             },
-       { "krat",  0,  21600, "Asia/Krasnoyarsk"              },
        { "krat",  0,  25200, "Asia/Krasnoyarsk"              },
+       { "krat",  0,  21600, "Asia/Krasnoyarsk"              },
+       { "krat",  0,  28800, "Asia/Krasnoyarsk"              },
        { "krat",  0,  21600, "Asia/Novokuznetsk"             },
        { "krat",  0,  25200, "Asia/Novokuznetsk"             },
        { "kst",   0,  28800, "Asia/Seoul"                    },
        { "kst",   0,  30600, "Asia/Seoul"                    },
+       { "kst",   0,  32400, "Asia/Pyongyang"                },
        { "kst",   0,  32400, "Asia/Seoul"                    },
        { "kst",   0,  28800, "Asia/Pyongyang"                },
        { "kst",   0,  28800, "ROK"                           },
        { "kst",   0,  30600, "Asia/Pyongyang"                },
        { "kst",   0,  30600, "ROK"                           },
-       { "kst",   0,  32400, "Asia/Pyongyang"                },
        { "kst",   0,  32400, "ROK"                           },
-       { "kuyst", 1,  10800, "Europe/Samara"                 },
-       { "kuyst", 1,  14400, "Europe/Samara"                 },
        { "kuyst", 1,  18000, "Europe/Samara"                 },
-       { "kuyt",  0,  10800, "Europe/Samara"                 },
        { "kuyt",  0,  14400, "Europe/Samara"                 },
+       { "kuyt",  0,  10800, "Europe/Samara"                 },
        { "kwat",  0, -43200, "Pacific/Kwajalein"             },
+       { "lhdt",  1,  39600, "Australia/LHI"                 },
+       { "lhdt",  1,  39600, "Australia/Lord_Howe"           },
+       { "lhdt",  1,  41400, "Australia/LHI"                 },
+       { "lhdt",  1,  41400, "Australia/Lord_Howe"           },
        { "lhst",  0,  37800, "Australia/Lord_Howe"           },
-       { "lhst",  1,  39600, "Australia/Lord_Howe"           },
-       { "lhst",  1,  41400, "Australia/Lord_Howe"           },
        { "lhst",  0,  37800, "Australia/LHI"                 },
-       { "lhst",  1,  39600, "Australia/LHI"                 },
-       { "lhst",  1,  41400, "Australia/LHI"                 },
+       { "lint",  0,  50400, "Pacific/Kiritimati"            },
        { "lint",  0, -36000, "Pacific/Kiritimati"            },
        { "lint",  0, -38400, "Pacific/Kiritimati"            },
-       { "lint",  0,  50400, "Pacific/Kiritimati"            },
-       { "lkt",   0,  21600, "Asia/Colombo"                  },
        { "lkt",   0,  23400, "Asia/Colombo"                  },
-       { "lmt",   0, -11188, "America/Sao_Paulo"             },
-       { "lmt",   0, -11188, "Brazil/East"                   },
-       { "lmt",   0, -11568, "America/Araguaina"             },
-       { "lmt",   0, -11636, "America/Belem"                 },
-       { "lmt",   0, -12416, "America/Godthab"               },
-       { "lmt",   0, -12560, "America/Cayenne"               },
-       { "lmt",   0, -13108, "America/Campo_Grande"          },
-       { "lmt",   0, -13128, "America/Santarem"              },
-       { "lmt",   0, -13240, "America/Paramaribo"            },
-       { "lmt",   0, -13460, "America/Cuiaba"                },
-       { "lmt",   0, -13480, "America/Miquelon"              },
-       { "lmt",   0, -13960, "America/Guyana"                },
-       { "lmt",   0, -14308, "America/Barbados"              },
-       { "lmt",   0, -14388, "America/Glace_Bay"             },
-       { "lmt",   0, -14404, "America/Manaus"                },
-       { "lmt",   0, -14404, "Brazil/West"                   },
-       { "lmt",   0, -14560, "America/Boa_Vista"             },
-       { "lmt",   0, -14736, "America/Dominica"              },
-       { "lmt",   0, -14764, "America/Port_of_Spain"         },
-       { "lmt",   0, -14768, "America/Guadeloupe"            },
-       { "lmt",   0, -14768, "America/Marigot"               },
-       { "lmt",   0, -14768, "America/St_Barthelemy"         },
-       { "lmt",   0, -14820, "America/Grenada"               },
-       { "lmt",   0, -14832, "America/Antigua"               },
-       { "lmt",   0, -14932, "America/Montserrat"            },
-       { "lmt",   0, -15052, "America/St_Kitts"              },
-       { "lmt",   0, -15136, "America/Anguilla"              },
-       { "lmt",   0, -15264, "America/Halifax"               },
-       { "lmt",   0, -15264, "Canada/Atlantic"               },
-       { "lmt",   0, -15336, "America/Porto_Velho"           },
-       { "lmt",   0, -15508, "America/Tortola"               },
-       { "lmt",   0, -15544, "Atlantic/Bermuda"              },
-       { "lmt",   0, -15584, "America/St_Thomas"             },
-       { "lmt",   0, -15584, "America/Virgin"                },
-       { "lmt",   0,  -1624, "Atlantic/Faeroe"               },
-       { "lmt",   0,  -1624, "Atlantic/Faroe"                },
-       { "lmt",   0, -16272, "America/Porto_Acre"            },
-       { "lmt",   0, -16272, "America/Rio_Branco"            },
-       { "lmt",   0, -16272, "Brazil/Acre"                   },
-       { "lmt",   0, -16508, "America/Thule"                 },
-       { "lmt",   0, -16544, "America/Curacao"               },
-       { "lmt",   0, -16768, "America/Eirunepe"              },
-       { "lmt",   0, -16824, "America/Aruba"                 },
-       { "lmt",   0,  -1820, "Africa/Casablanca"             },
-       { "lmt",   0, -18516, "America/Lima"                  },
-       { "lmt",   0, -18564, "America/Nassau"                },
-       { "lmt",   0,  -1920, "Africa/Bamako"                 },
-       { "lmt",   0,  -1920, "Africa/Timbuktu"               },
-       { "lmt",   0, -19931, "America/Detroit"               },
-       { "lmt",   0, -20824, "America/Cancun"                },
-       { "lmt",   0, -20932, "America/Tegucigalpa"           },
-       { "lmt",   0, -21168, "America/Belize"                },
-       { "lmt",   0, -21408, "America/El_Salvador"           },
-       { "lmt",   0, -21504, "Pacific/Galapagos"             },
-       { "lmt",   0, -21508, "America/Merida"                },
-       { "lmt",   0, -21724, "America/Guatemala"             },
-       { "lmt",   0,  -2192, "Africa/Sao_Tome"               },
-       { "lmt",   0,  -2192, "Europe/Lisbon"                 },
-       { "lmt",   0, -23796, "America/Mexico_City"           },
-       { "lmt",   0, -23796, "Mexico/General"                },
-       { "lmt",   0, -24000, "America/Matamoros"             },
-       { "lmt",   0, -24076, "America/Monterrey"             },
-       { "lmt",   0, -25060, "America/Ojinaga"               },
-       { "lmt",   0, -25116, "America/Regina"                },
-       { "lmt",   0, -25116, "Canada/East-Saskatchewan"      },
-       { "lmt",   0, -25116, "Canada/Saskatchewan"           },
-       { "lmt",   0, -25260, "America/Bahia_Banderas"        },
-       { "lmt",   0, -25460, "America/Chihuahua"             },
-       { "lmt",   0, -25540, "America/Mazatlan"              },
-       { "lmt",   0, -25540, "Mexico/BajaSur"                },
-       { "lmt",   0, -25880, "America/Swift_Current"         },
-       { "lmt",   0, -26632, "America/Hermosillo"            },
-       { "lmt",   0, -27232, "America/Edmonton"              },
-       { "lmt",   0, -27232, "Canada/Mountain"               },
-       { "lmt",   0, -27568, "America/Santa_Isabel"          },
-       { "lmt",   0, -28084, "America/Ensenada"              },
-       { "lmt",   0, -28084, "America/Tijuana"               },
-       { "lmt",   0, -28084, "Mexico/BajaNorte"              },
-       { "lmt",   0,  -3168, "Africa/El_Aaiun"               },
-       { "lmt",   0, -32388, "Pacific/Gambier"               },
-       { "lmt",   0,  -3292, "Africa/Conakry"                },
-       { "lmt",   0, -33480, "Pacific/Marquesas"             },
-       { "lmt",   0, -35896, "Pacific/Tahiti"                },
-       { "lmt",   0,   -364, "Africa/Ouagadougou"            },
-       { "lmt",   0,  -3696, "Atlantic/Canary"               },
-       { "lmt",   0,  -3740, "Africa/Bissau"                 },
-       { "lmt",   0,  -3828, "Africa/Nouakchott"             },
-       { "lmt",   0,  -3996, "Africa/Banjul"                 },
-       { "lmt",   0, -40968, "Pacific/Pago_Pago"             },
-       { "lmt",   0, -40968, "Pacific/Samoa"                 },
-       { "lmt",   0, -41216, "Pacific/Apia"                  },
-       { "lmt",   0,  -4184, "Africa/Dakar"                  },
-       { "lmt",   0,  -4480, "America/Danmarkshavn"          },
-       { "lmt",   0,  -5272, "America/Scoresbysund"          },
-       { "lmt",   0,    -52, "Africa/Accra"                  },
-       { "lmt",   0,  -5644, "Atlantic/Cape_Verde"           },
-       { "lmt",   0,  -7780, "America/Noronha"               },
-       { "lmt",   0,  -7780, "Brazil/DeNoronha"              },
-       { "lmt",   0,  -8376, "America/Recife"                },
-       { "lmt",   0,  -8572, "America/Maceio"                },
-       { "lmt",   0,  -9240, "America/Fortaleza"             },
-       { "lmt",   0,  -9244, "America/Bahia"                 },
-       { "lmt",   0,   -968, "Africa/Abidjan"                },
-       { "lmt",   0,  10356, "Africa/Djibouti"               },
-       { "lmt",   0,  10384, "Indian/Comoro"                 },
-       { "lmt",   0,  10660, "Europe/Volgograd"              },
-       { "lmt",   0,  10680, "Asia/Yerevan"                  },
-       { "lmt",   0,  10848, "Asia/Aden"                     },
-       { "lmt",   0,  10856, "Indian/Mayotte"                },
-       { "lmt",   0,  11212, "Asia/Riyadh"                   },
-       { "lmt",   0,  11404, "Indian/Antananarivo"           },
-       { "lmt",   0,  11516, "Asia/Kuwait"                   },
-       { "lmt",   0,  11964, "Asia/Baku"                     },
-       { "lmt",   0,  12036, "Europe/Samara"                 },
-       { "lmt",   0,  12064, "Asia/Aqtau"                    },
-       { "lmt",   0,  12140, "Asia/Bahrain"                  },
-       { "lmt",   0,  12324, "Asia/Oral"                     },
-       { "lmt",   0,  12344, "Asia/Tehran"                   },
-       { "lmt",   0,  12368, "Asia/Qatar"                    },
-       { "lmt",   0,  13272, "Asia/Dubai"                    },
-       { "lmt",   0,  13308, "Indian/Mahe"                   },
-       { "lmt",   0,  13312, "Indian/Reunion"                },
-       { "lmt",   0,  13720, "Asia/Aqtobe"                   },
-       { "lmt",   0,  13800, "Indian/Mauritius"              },
-       { "lmt",   0,  14012, "Asia/Ashgabat"                 },
-       { "lmt",   0,  14012, "Asia/Ashkhabad"                },
-       { "lmt",   0,  14060, "Asia/Muscat"                   },
-       { "lmt",   0,  14544, "Asia/Yekaterinburg"            },
-       { "lmt",   0,   1476, "Europe/Luxembourg"             },
-       { "lmt",   0,  15712, "Asia/Qyzylorda"                },
-       { "lmt",   0,  16032, "Asia/Samarkand"                },
-       { "lmt",   0,  16092, "Asia/Karachi"                  },
-       { "lmt",   0,  16512, "Asia/Dushanbe"                 },
-       { "lmt",   0,  16632, "Asia/Tashkent"                 },
-       { "lmt",   0,  17380, "Indian/Chagos"                 },
-       { "lmt",   0,  17616, "Asia/Omsk"                     },
-       { "lmt",   0,  17904, "Asia/Bishkek"                  },
-       { "lmt",   0,  18236, "Asia/Kashgar"                  },
-       { "lmt",   0,  18468, "Asia/Almaty"                   },
-       { "lmt",   0,  19900, "Asia/Novosibirsk"              },
-       { "lmt",   0,  20476, "Asia/Kathmandu"                },
-       { "lmt",   0,  20476, "Asia/Katmandu"                 },
-       { "lmt",   0,  21020, "Asia/Urumqi"                   },
-       { "lmt",   0,   2108, "Africa/Malabo"                 },
-       { "lmt",   0,  21516, "Asia/Thimbu"                   },
-       { "lmt",   0,  21516, "Asia/Thimphu"                  },
-       { "lmt",   0,  21996, "Asia/Hovd"                     },
-       { "lmt",   0,  22280, "Asia/Krasnoyarsk"              },
-       { "lmt",   0,   2268, "Africa/Libreville"             },
-       { "lmt",   0,   2328, "Africa/Douala"                 },
-       { "lmt",   0,  24624, "Asia/Vientiane"                },
-       { "lmt",   0,  25180, "Asia/Phnom_Penh"               },
-       { "lmt",   0,  25580, "Asia/Chongqing"                },
-       { "lmt",   0,  25580, "Asia/Chungking"                },
-       { "lmt",   0,  25600, "Asia/Ho_Chi_Minh"              },
-       { "lmt",   0,  25600, "Asia/Saigon"                   },
-       { "lmt",   0,  25652, "Asia/Ulaanbaatar"              },
-       { "lmt",   0,  25652, "Asia/Ulan_Bator"               },
-       { "lmt",   0,  26240, "Asia/Pontianak"                },
-       { "lmt",   0,  26480, "Asia/Kuching"                  },
-       { "lmt",   0,  27260, "Asia/Macao"                    },
-       { "lmt",   0,  27260, "Asia/Macau"                    },
-       { "lmt",   0,  27396, "Asia/Hong_Kong"                },
-       { "lmt",   0,  27480, "Asia/Choibalsan"               },
-       { "lmt",   0,  27580, "Asia/Brunei"                   },
-       { "lmt",   0,  28656, "Asia/Makassar"                 },
-       { "lmt",   0,  28656, "Asia/Ujung_Pandang"            },
-       { "lmt",   0,  29152, "Asia/Shanghai"                 },
-       { "lmt",   0,  29152, "PRC"                           },
-       { "lmt",   0,  30140, "Asia/Dili"                     },
-       { "lmt",   0,  30404, "Asia/Harbin"                   },
-       { "lmt",   0,  31120, "Asia/Yakutsk"                  },
-       { "lmt",   0,   3164, "Africa/Tripoli"                },
-       { "lmt",   0,  31664, "Asia/Vladivostok"              },
-       { "lmt",   0,  33768, "Asia/Jayapura"                 },
-       { "lmt",   0,  34248, "Asia/Sakhalin"                 },
-       { "lmt",   0,   3612, "Africa/Ndjamena"               },
-       { "lmt",   0,  36192, "Asia/Magadan"                  },
-       { "lmt",   0,   3668, "Africa/Brazzaville"            },
-       { "lmt",   0,  38076, "Asia/Kamchatka"                },
-       { "lmt",   0,  38388, "Pacific/Guadalcanal"           },
-       { "lmt",   0,  39948, "Pacific/Noumea"                },
-       { "lmt",   0,  40060, "Pacific/Nauru"                 },
-       { "lmt",   0,  40396, "Pacific/Efate"                 },
-       { "lmt",   0,  42596, "Asia/Anadyr"                   },
-       { "lmt",   0,  42820, "Pacific/Fiji"                  },
-       { "lmt",   0,  44028, "Pacific/Chatham"               },
-       { "lmt",   0,   4460, "Africa/Bangui"                 },
-       { "lmt",   0,   4760, "Europe/Tirane"                 },
-       { "lmt",   0,    508, "Africa/Niamey"                 },
-       { "lmt",   0,    628, "Africa/Porto-Novo"             },
-       { "lmt",   0,   6600, "Africa/Maseru"                 },
-       { "lmt",   0,   6788, "Africa/Lusaka"                 },
-       { "lmt",   0,   7216, "Africa/Kigali"                 },
-       { "lmt",   0,   7452, "Africa/Harare"                 },
-       { "lmt",   0,   7464, "Africa/Mbabane"                },
-       { "lmt",   0,   7780, "Africa/Kampala"                },
-       { "lmt",   0,   7808, "Africa/Khartoum"               },
-       { "lmt",   0,   7820, "Africa/Maputo"                 },
-       { "lmt",   0,   8008, "Asia/Nicosia"                  },
-       { "lmt",   0,   8008, "Europe/Nicosia"                },
-       { "lmt",   0,    816, "Africa/Lagos"                  },
-       { "lmt",   0,   8400, "Africa/Blantyre"               },
-       { "lmt",   0,   8624, "Asia/Amman"                    },
-       { "lmt",   0,   8712, "Asia/Damascus"                 },
-       { "lmt",   0,   8836, "Africa/Nairobi"                },
-       { "lmt",   0,   9428, "Africa/Dar_es_Salaam"          },
-       { "lont",  0,  25200, "Asia/Chongqing"                },
-       { "lont",  0,  25200, "Asia/Chungking"                },
+       { "lkt",   0,  21600, "Asia/Colombo"                  },
        { "lrt",   0,  -2670, "Africa/Monrovia"               },
-       { "lst",   1,   9384, "Europe/Riga"                   },
+       { "lst",   1,   9388, "Europe/Riga"                   },
        { "madmt", 1,   3600, "Atlantic/Madeira"              },
        { "madst", 1,      0, "Atlantic/Madeira"              },
        { "madt",  0,  -3600, "Atlantic/Madeira"              },
-       { "magst", 1,  39600, "Asia/Magadan"                  },
        { "magst", 1,  43200, "Asia/Magadan"                  },
+       { "magst", 1,  39600, "Asia/Magadan"                  },
+       { "magst", 1,  39600, "Asia/Srednekolymsk"            },
+       { "magst", 1,  39600, "Asia/Ust-Nera"                 },
+       { "magst", 1,  43200, "Asia/Srednekolymsk"            },
+       { "magst", 1,  43200, "Asia/Ust-Nera"                 },
        { "magt",  0,  36000, "Asia/Magadan"                  },
        { "magt",  0,  39600, "Asia/Magadan"                  },
+       { "magt",  0,  43200, "Asia/Magadan"                  },
+       { "magt",  0,  36000, "Asia/Srednekolymsk"            },
+       { "magt",  0,  36000, "Asia/Ust-Nera"                 },
+       { "magt",  0,  39600, "Asia/Srednekolymsk"            },
+       { "magt",  0,  39600, "Asia/Ust-Nera"                 },
+       { "magt",  0,  43200, "Asia/Srednekolymsk"            },
+       { "magt",  0,  43200, "Asia/Ust-Nera"                 },
        { "malst", 1,  26400, "Asia/Singapore"                },
        { "malst", 1,  26400, "Asia/Kuala_Lumpur"             },
+       { "malt",  0,  27000, "Asia/Singapore"                },
        { "malt",  0,  25200, "Asia/Singapore"                },
        { "malt",  0,  26400, "Asia/Singapore"                },
-       { "malt",  0,  27000, "Asia/Singapore"                },
        { "malt",  0,  25200, "Asia/Kuala_Lumpur"             },
        { "malt",  0,  26400, "Asia/Kuala_Lumpur"             },
        { "malt",  0,  27000, "Asia/Kuala_Lumpur"             },
        { "mart",  0, -34200, "Pacific/Marquesas"             },
-       { "mawt",  0,  18000, "Antarctica/Mawson"             },
        { "mawt",  0,  21600, "Antarctica/Mawson"             },
+       { "mawt",  0,  18000, "Antarctica/Mawson"             },
        { "mddt",  1, -18000, "America/Cambridge_Bay"         },
        { "mddt",  1, -18000, "America/Yellowknife"           },
-       { "mdst",  1,  16248, "Europe/Moscow"                 },
+       { "mdst",  1,  16279, "Europe/Moscow"                 },
        { "mdt",   1, -21600, "America/Denver"                },
        { "mdt",   1, -21600, "America/Bahia_Banderas"        },
        { "mdt",   1, -21600, "America/Boise"                 },
        { "mdt",   1, -21600, "America/Hermosillo"            },
        { "mdt",   1, -21600, "America/Inuvik"                },
        { "mdt",   1, -21600, "America/Mazatlan"              },
+       { "mdt",   1, -21600, "America/North_Dakota/Beulah"   },
        { "mdt",   1, -21600, "America/North_Dakota/Center"   },
        { "mdt",   1, -21600, "America/North_Dakota/New_Salem" },
        { "mdt",   1, -21600, "America/Ojinaga"               },
        { "mdt",   1, -21600, "MST"                           },
        { "mest",  1,   7200, "MET"                           },
        { "met",   0,   3600, "MET"                           },
-       { "mht",   0,  39600, "Pacific/Kwajalein"             },
        { "mht",   0,  43200, "Pacific/Kwajalein"             },
+       { "mht",   0,  39600, "Pacific/Kwajalein"             },
        { "mht",   0,  39600, "Pacific/Majuro"                },
        { "mht",   0,  43200, "Pacific/Majuro"                },
        { "mist",  0,  39600, "Antarctica/Macquarie"          },
-       { "mmt",   0,   9000, "Europe/Moscow"                 },
-       { "mmt",   0,   9048, "Europe/Moscow"                 },
+       { "mmt",   0,   9017, "Europe/Moscow"                 },
+       { "mmt",   0,   9079, "Europe/Moscow"                 },
        { "mmt",   0, -13484, "America/Montevideo"            },
        { "mmt",   0, -20712, "America/Managua"               },
        { "mmt",   0,  -2588, "Africa/Monrovia"               },
        { "mot",   0,  28800, "Asia/Macao"                    },
        { "mot",   0,  28800, "Asia/Macau"                    },
        { "mpt",   1, -21600, "America/Denver"                },
+       { "mpt",   0,  36000, "Pacific/Saipan"                },
        { "mpt",   1, -21600, "America/Boise"                 },
        { "mpt",   1, -21600, "America/Cambridge_Bay"         },
        { "mpt",   1, -21600, "America/Edmonton"              },
+       { "mpt",   1, -21600, "America/North_Dakota/Beulah"   },
        { "mpt",   1, -21600, "America/North_Dakota/Center"   },
        { "mpt",   1, -21600, "America/North_Dakota/New_Salem" },
        { "mpt",   1, -21600, "America/Regina"                },
        { "mpt",   1, -21600, "Canada/Saskatchewan"           },
        { "mpt",   1, -21600, "MST"                           },
        { "mpt",   0,  32400, "Pacific/Saipan"                },
-       { "mpt",   0,  36000, "Pacific/Saipan"                },
        { "msd",   1,  14400, "Europe/Moscow"                 },
-       { "msd",   1,  18000, "Europe/Moscow"                 },
        { "msd",   1,  14400, "Europe/Chisinau"               },
        { "msd",   1,  14400, "Europe/Kaliningrad"            },
        { "msd",   1,  14400, "Europe/Kiev"                   },
        { "msd",   1,  14400, "Europe/Minsk"                  },
        { "msd",   1,  14400, "Europe/Riga"                   },
+       { "msd",   1,  14400, "Europe/Samara"                 },
        { "msd",   1,  14400, "Europe/Simferopol"             },
        { "msd",   1,  14400, "Europe/Tallinn"                },
        { "msd",   1,  14400, "Europe/Tiraspol"               },
        { "msd",   1,  14400, "Europe/Vilnius"                },
        { "msd",   1,  14400, "Europe/Zaporozhye"             },
        { "msk",   0,  10800, "Europe/Moscow"                 },
+       { "msk",   0,  14400, "Europe/Moscow"                 },
        { "msk",   0,  10800, "Europe/Chisinau"               },
        { "msk",   0,  10800, "Europe/Kaliningrad"            },
        { "msk",   0,  10800, "Europe/Kiev"                   },
        { "msk",   0,  10800, "Europe/Minsk"                  },
        { "msk",   0,  10800, "Europe/Riga"                   },
+       { "msk",   0,  10800, "Europe/Samara"                 },
        { "msk",   0,  10800, "Europe/Simferopol"             },
        { "msk",   0,  10800, "Europe/Tallinn"                },
        { "msk",   0,  10800, "Europe/Tiraspol"               },
        { "msk",   0,  10800, "Europe/Uzhgorod"               },
        { "msk",   0,  10800, "Europe/Vilnius"                },
+       { "msk",   0,  10800, "Europe/Volgograd"              },
        { "msk",   0,  10800, "Europe/Zaporozhye"             },
+       { "msk",   0,  14400, "Europe/Simferopol"             },
+       { "msk",   0,  14400, "Europe/Volgograd"              },
+       { "msk",   1,  14400, "Europe/Volgograd"              },
+       { "msm",   1,  18000, "Europe/Moscow"                 },
        { "mst",   0, -25200, "America/Denver"                },
        { "mst",   0, -25200, "America/Bahia_Banderas"        },
        { "mst",   0, -25200, "America/Boise"                 },
        { "mst",   0, -25200, "America/Cambridge_Bay"         },
        { "mst",   0, -25200, "America/Chihuahua"             },
+       { "mst",   0, -25200, "America/Creston"               },
        { "mst",   0, -25200, "America/Dawson_Creek"          },
        { "mst",   0, -25200, "America/Edmonton"              },
        { "mst",   0, -25200, "America/Ensenada"              },
        { "mst",   0, -25200, "America/Inuvik"                },
        { "mst",   0, -25200, "America/Mazatlan"              },
        { "mst",   0, -25200, "America/Mexico_City"           },
+       { "mst",   0, -25200, "America/North_Dakota/Beulah"   },
        { "mst",   0, -25200, "America/North_Dakota/Center"   },
        { "mst",   0, -25200, "America/North_Dakota/New_Salem" },
        { "mst",   0, -25200, "America/Ojinaga"               },
        { "mst",   0, -25200, "Mexico/BajaSur"                },
        { "mst",   0, -25200, "Mexico/General"                },
        { "mst",   0, -25200, "MST"                           },
-       { "mst",   1,  12648, "Europe/Moscow"                 },
+       { "mst",   1,  12679, "Europe/Moscow"                 },
        { "must",  1,  18000, "Indian/Mauritius"              },
        { "mut",   0,  14400, "Indian/Mauritius"              },
        { "mvt",   0,  18000, "Indian/Maldives"               },
        { "mwt",   1, -21600, "America/Boise"                 },
        { "mwt",   1, -21600, "America/Cambridge_Bay"         },
        { "mwt",   1, -21600, "America/Edmonton"              },
+       { "mwt",   1, -21600, "America/North_Dakota/Beulah"   },
        { "mwt",   1, -21600, "America/North_Dakota/Center"   },
        { "mwt",   1, -21600, "America/North_Dakota/New_Salem" },
        { "mwt",   1, -21600, "America/Phoenix"               },
        { "nct",   0,  39600, "Pacific/Noumea"                },
        { "nddt",  1,  -5400, "America/St_Johns"              },
        { "nddt",  1,  -5400, "Canada/Newfoundland"           },
-       { "ndt",   1,  -9000, "America/St_Johns"              },
        { "ndt",   1,  -9052, "America/St_Johns"              },
+       { "ndt",   1,  -9000, "America/St_Johns"              },
        { "ndt",   1, -36000, "Pacific/Midway"                },
        { "ndt",   1,  -9000, "America/Goose_Bay"             },
        { "ndt",   1,  -9000, "Canada/Newfoundland"           },
        { "novt",  0,  21600, "Asia/Novosibirsk"              },
        { "novt",  0,  25200, "Asia/Novosibirsk"              },
        { "novt",  0,  21600, "Asia/Novokuznetsk"             },
+       { "novt",  0,  25200, "Asia/Novokuznetsk"             },
        { "npt",   1,  -9000, "America/St_Johns"              },
+       { "npt",   0,  20700, "Asia/Katmandu"                 },
        { "npt",   1, -36000, "America/Adak"                  },
        { "npt",   1, -36000, "America/Atka"                  },
        { "npt",   1, -36000, "America/Nome"                  },
        { "npt",   1,  -9000, "America/Goose_Bay"             },
        { "npt",   1,  -9000, "Canada/Newfoundland"           },
-       { "npt",   0,  20700, "Asia/Katmandu"                 },
        { "npt",   0,  20700, "Asia/Kathmandu"                },
-       { "nrt",   0,  41400, "Pacific/Nauru"                 },
        { "nrt",   0,  43200, "Pacific/Nauru"                 },
+       { "nrt",   0,  41400, "Pacific/Nauru"                 },
        { "nst",   0, -12600, "America/St_Johns"              },
        { "nst",   0, -12652, "America/St_Johns"              },
+       { "nst",   1,   4772, "Europe/Amsterdam"              },
        { "nst",   0, -12600, "America/Goose_Bay"             },
        { "nst",   0, -12600, "Canada/Newfoundland"           },
        { "nst",   0, -12652, "America/Goose_Bay"             },
        { "nst",   0, -39600, "Pacific/Midway"                },
        { "nst",   0, -39600, "Pacific/Pago_Pago"             },
        { "nst",   0, -39600, "Pacific/Samoa"                 },
-       { "nst",   1,   4772, "Europe/Amsterdam"              },
        { "nut",   0, -39600, "Pacific/Niue"                  },
        { "nut",   0, -40800, "Pacific/Niue"                  },
        { "nut",   0, -41400, "Pacific/Niue"                  },
        { "nzdt",  1,  46800, "Antarctica/South_Pole"         },
        { "nzdt",  1,  46800, "NZ"                            },
        { "nzmt",  0,  41400, "Pacific/Auckland"              },
+       { "nzmt",  0,  41400, "Antarctica/McMurdo"            },
+       { "nzmt",  0,  41400, "Antarctica/South_Pole"         },
        { "nzmt",  0,  41400, "NZ"                            },
        { "nzst",  0,  43200, "Pacific/Auckland"              },
        { "nzst",  1,  43200, "Pacific/Auckland"              },
        { "nzst",  0,  43200, "Antarctica/McMurdo"            },
        { "nzst",  0,  43200, "Antarctica/South_Pole"         },
        { "nzst",  0,  43200, "NZ"                            },
+       { "nzst",  1,  43200, "Antarctica/McMurdo"            },
+       { "nzst",  1,  43200, "Antarctica/South_Pole"         },
        { "nzst",  1,  43200, "NZ"                            },
+       { "nzst",  1,  45000, "Antarctica/McMurdo"            },
+       { "nzst",  1,  45000, "Antarctica/South_Pole"         },
        { "nzst",  1,  45000, "NZ"                            },
-       { "omsst", 1,  21600, "Asia/Omsk"                     },
        { "omsst", 1,  25200, "Asia/Omsk"                     },
-       { "omst",  0,  18000, "Asia/Omsk"                     },
+       { "omsst", 1,  21600, "Asia/Omsk"                     },
        { "omst",  0,  21600, "Asia/Omsk"                     },
+       { "omst",  0,  18000, "Asia/Omsk"                     },
+       { "omst",  0,  25200, "Asia/Omsk"                     },
        { "orast", 1,  18000, "Asia/Oral"                     },
-       { "orat",  0,  14400, "Asia/Oral"                     },
        { "orat",  0,  18000, "Asia/Oral"                     },
+       { "orat",  0,  14400, "Asia/Oral"                     },
        { "pddt",  1, -21600, "America/Inuvik"                },
        { "pdt",   1, -25200, "America/Los_Angeles"           },
        { "pdt",   1, -25200, "America/Boise"                 },
        { "pdt",   1, -25200, "America/Dawson_Creek"          },
        { "pdt",   1, -25200, "America/Ensenada"              },
        { "pdt",   1, -25200, "America/Juneau"                },
+       { "pdt",   1, -25200, "America/Metlakatla"            },
        { "pdt",   1, -25200, "America/Santa_Isabel"          },
+       { "pdt",   1, -25200, "America/Sitka"                 },
        { "pdt",   1, -25200, "America/Tijuana"               },
        { "pdt",   1, -25200, "America/Vancouver"             },
        { "pdt",   1, -25200, "America/Whitehorse"            },
        { "pdt",   1, -25200, "Canada/Yukon"                  },
        { "pdt",   1, -25200, "Mexico/BajaNorte"              },
        { "pest",  1, -14400, "America/Lima"                  },
-       { "petst", 1,  43200, "Asia/Kamchatka"                },
        { "petst", 1,  46800, "Asia/Kamchatka"                },
-       { "pett",  0,  39600, "Asia/Kamchatka"                },
+       { "petst", 1,  43200, "Asia/Kamchatka"                },
        { "pett",  0,  43200, "Asia/Kamchatka"                },
+       { "pett",  0,  39600, "Asia/Kamchatka"                },
        { "pet",   0, -18000, "America/Lima"                  },
        { "pgt",   0,  36000, "Pacific/Port_Moresby"          },
+       { "phot",  0,  46800, "Pacific/Enderbury"             },
        { "phot",  0, -39600, "Pacific/Enderbury"             },
        { "phot",  0, -43200, "Pacific/Enderbury"             },
-       { "phot",  0,  46800, "Pacific/Enderbury"             },
        { "phst",  1,  32400, "Asia/Manila"                   },
        { "pht",   0,  28800, "Asia/Manila"                   },
        { "pkst",  1,  21600, "Asia/Karachi"                  },
        { "pmst",  0, -10800, "America/Miquelon"              },
        { "pmt",   0, -13236, "America/Paramaribo"            },
        { "pmt",   0, -13252, "America/Paramaribo"            },
-       { "pmt",   0,  26240, "Asia/Pontianak"                },
        { "pmt",   0,  36000, "Antarctica/DumontDUrville"     },
+       { "pmt",   0,  26240, "Asia/Pontianak"                },
        { "pmt",   0,    561, "Africa/Algiers"                },
        { "pmt",   0,    561, "Africa/Tunis"                  },
        { "pmt",   0,    561, "Europe/Monaco"                 },
        { "ppt",   1, -25200, "America/Dawson_Creek"          },
        { "ppt",   1, -25200, "America/Ensenada"              },
        { "ppt",   1, -25200, "America/Juneau"                },
+       { "ppt",   1, -25200, "America/Metlakatla"            },
        { "ppt",   1, -25200, "America/Santa_Isabel"          },
+       { "ppt",   1, -25200, "America/Sitka"                 },
        { "ppt",   1, -25200, "America/Tijuana"               },
        { "ppt",   1, -25200, "America/Vancouver"             },
        { "ppt",   1, -25200, "Canada/Pacific"                },
        { "pst",   0, -28800, "America/Los_Angeles"           },
        { "pst",   0, -28800, "America/Bahia_Banderas"        },
        { "pst",   0, -28800, "America/Boise"                 },
+       { "pst",   0, -28800, "America/Creston"               },
        { "pst",   0, -28800, "America/Dawson"                },
        { "pst",   0, -28800, "America/Dawson_Creek"          },
        { "pst",   0, -28800, "America/Ensenada"              },
        { "pst",   0, -28800, "America/Inuvik"                },
        { "pst",   0, -28800, "America/Juneau"                },
        { "pst",   0, -28800, "America/Mazatlan"              },
+       { "pst",   0, -28800, "America/Metlakatla"            },
        { "pst",   0, -28800, "America/Santa_Isabel"          },
+       { "pst",   0, -28800, "America/Sitka"                 },
        { "pst",   0, -28800, "America/Tijuana"               },
        { "pst",   0, -28800, "America/Vancouver"             },
        { "pst",   0, -28800, "America/Whitehorse"            },
        { "pwt",   1, -25200, "America/Dawson_Creek"          },
        { "pwt",   1, -25200, "America/Ensenada"              },
        { "pwt",   1, -25200, "America/Juneau"                },
+       { "pwt",   1, -25200, "America/Metlakatla"            },
        { "pwt",   1, -25200, "America/Santa_Isabel"          },
+       { "pwt",   1, -25200, "America/Sitka"                 },
        { "pwt",   1, -25200, "America/Tijuana"               },
        { "pwt",   1, -25200, "America/Vancouver"             },
        { "pwt",   1, -25200, "Canada/Pacific"                },
        { "pwt",   1, -25200, "Mexico/BajaNorte"              },
        { "pwt",   0,  32400, "Pacific/Palau"                 },
        { "pyst",  1, -10800, "America/Asuncion"              },
-       { "pyt",   0, -10800, "America/Asuncion"              },
        { "pyt",   0, -14400, "America/Asuncion"              },
+       { "pyt",   0, -10800, "America/Asuncion"              },
        { "qmt",   0, -18840, "America/Guayaquil"             },
        { "qyzst", 1,  25200, "Asia/Qyzylorda"                },
-       { "qyzt",  0,  18000, "Asia/Qyzylorda"                },
        { "qyzt",  0,  21600, "Asia/Qyzylorda"                },
+       { "qyzt",  0,  18000, "Asia/Qyzylorda"                },
        { "ret",   0,  14400, "Indian/Reunion"                },
-       { "rmt",   0,   5784, "Europe/Riga"                   },
+       { "rmt",   0,   5788, "Europe/Riga"                   },
        { "rmt",   0,  -5268, "Atlantic/Reykjavik"            },
-       { "rmt",   0,  23076, "Asia/Rangoon"                  },
+       { "rmt",   0,  23080, "Asia/Rangoon"                  },
        { "rott",  0, -10800, "Antarctica/Rothera"            },
        { "sakst", 1,  39600, "Asia/Sakhalin"                 },
        { "sakst", 1,  43200, "Asia/Sakhalin"                 },
        { "samst", 1,  21600, "Asia/Samarkand"                },
        { "samst", 1,  14400, "Europe/Samara"                 },
        { "samst", 1,  18000, "Europe/Samara"                 },
-       { "samt",  0,  14400, "Asia/Samarkand"                },
        { "samt",  0,  18000, "Asia/Samarkand"                },
-       { "samt",  0, -41400, "Pacific/Apia"                  },
-       { "samt",  0, -41400, "Pacific/Pago_Pago"             },
-       { "samt",  0, -41400, "Pacific/Samoa"                 },
+       { "samt",  0,  14400, "Asia/Samarkand"                },
        { "samt",  0,  10800, "Europe/Samara"                 },
        { "samt",  0,  14400, "Europe/Samara"                 },
+       { "sast",  0,   7200, "Africa/Johannesburg"           },
        { "sast",  1,  10800, "Africa/Johannesburg"           },
        { "sast",  0,   5400, "Africa/Johannesburg"           },
-       { "sast",  0,   7200, "Africa/Johannesburg"           },
        { "sast",  1,  10800, "Africa/Maseru"                 },
        { "sast",  1,  10800, "Africa/Windhoek"               },
+       { "sast",  0,   5400, "Africa/Gaborone"               },
        { "sast",  0,   7200, "Africa/Maseru"                 },
        { "sast",  0,   7200, "Africa/Mbabane"                },
        { "sast",  0,   7200, "Africa/Windhoek"               },
        { "sbt",   0,  39600, "Pacific/Guadalcanal"           },
        { "sct",   0,  14400, "Indian/Mahe"                   },
        { "sdmt",  0, -16800, "America/Santo_Domingo"         },
-       { "sgt",   0,  27000, "Asia/Singapore"                },
+       { "sdt",   1, -36000, "Pacific/Apia"                  },
        { "sgt",   0,  28800, "Asia/Singapore"                },
+       { "sgt",   0,  27000, "Asia/Singapore"                },
        { "shest", 1,  21600, "Asia/Aqtau"                    },
-       { "shet",  0,  18000, "Asia/Aqtau"                    },
        { "shet",  0,  21600, "Asia/Aqtau"                    },
-       { "sjmt",  0, -20180, "America/Costa_Rica"            },
-       { "slst",  1,  -1200, "Africa/Freetown"               },
-       { "slst",  1,   3600, "Africa/Freetown"               },
+       { "shet",  0,  18000, "Asia/Aqtau"                    },
+       { "sjmt",  0, -20173, "America/Costa_Rica"            },
        { "smt",   0,  25580, "Asia/Saigon"                   },
        { "smt",   0, -13884, "Atlantic/Stanley"              },
        { "smt",   0, -16966, "America/Santiago"              },
        { "smt",   0,  25580, "Asia/Phnom_Penh"               },
        { "smt",   0,  25580, "Asia/Vientiane"                },
        { "smt",   0,   8160, "Europe/Simferopol"             },
+       { "sret",  0,  39600, "Asia/Srednekolymsk"            },
        { "srt",   0, -10800, "America/Paramaribo"            },
        { "srt",   0, -12600, "America/Paramaribo"            },
        { "sst",   0, -39600, "Pacific/Samoa"                 },
+       { "sst",   0, -39600, "Pacific/Apia"                  },
        { "sst",   0, -39600, "Pacific/Midway"                },
        { "sst",   0, -39600, "Pacific/Pago_Pago"             },
        { "stat",  0,  10800, "Europe/Volgograd"              },
        { "stat",  0,  14400, "Europe/Volgograd"              },
-       { "svest", 1,  18000, "Asia/Yekaterinburg"            },
        { "svest", 1,  21600, "Asia/Yekaterinburg"            },
-       { "svet",  0,  14400, "Asia/Yekaterinburg"            },
+       { "svest", 1,  18000, "Asia/Yekaterinburg"            },
        { "svet",  0,  18000, "Asia/Yekaterinburg"            },
+       { "svet",  0,  14400, "Asia/Yekaterinburg"            },
        { "swat",  0,   5400, "Africa/Windhoek"               },
        { "syot",  0,  10800, "Antarctica/Syowa"              },
        { "taht",  0, -36000, "Pacific/Tahiti"                },
        { "tast",  0,  21600, "Asia/Samarkand"                },
        { "tast",  0,  18000, "Asia/Tashkent"                 },
        { "tast",  0,  21600, "Asia/Tashkent"                 },
-       { "tbist", 1,  14400, "Asia/Tbilisi"                  },
        { "tbist", 1,  18000, "Asia/Tbilisi"                  },
-       { "tbit",  0,  10800, "Asia/Tbilisi"                  },
+       { "tbist", 1,  14400, "Asia/Tbilisi"                  },
        { "tbit",  0,  14400, "Asia/Tbilisi"                  },
-       { "tbmt",  0,  10756, "Asia/Tbilisi"                  },
+       { "tbit",  0,  10800, "Asia/Tbilisi"                  },
+       { "tbmt",  0,  10746, "Asia/Tbilisi"                  },
        { "tft",   0,  18000, "Indian/Kerguelen"              },
        { "tjt",   0,  18000, "Asia/Dushanbe"                 },
-       { "tkt",   0, -36000, "Pacific/Fakaofo"               },
-       { "tlt",   0,  28800, "Asia/Dili"                     },
+       { "tkt",   0, -39600, "Pacific/Fakaofo"               },
+       { "tkt",   0,  46800, "Pacific/Fakaofo"               },
        { "tlt",   0,  32400, "Asia/Dili"                     },
+       { "tlt",   0,  28800, "Asia/Dili"                     },
        { "tmt",   0,  12344, "Asia/Tehran"                   },
+       { "tmt",   0,   5940, "Europe/Tallinn"                },
        { "tmt",   0,  14400, "Asia/Ashgabat"                 },
        { "tmt",   0,  14400, "Asia/Ashkhabad"                },
        { "tmt",   0,  18000, "Asia/Ashgabat"                 },
        { "tmt",   0,  18000, "Asia/Ashkhabad"                },
-       { "tmt",   0,   5940, "Europe/Tallinn"                },
        { "tost",  1,  50400, "Pacific/Tongatapu"             },
-       { "tot",   0,  44400, "Pacific/Tongatapu"             },
        { "tot",   0,  46800, "Pacific/Tongatapu"             },
+       { "tot",   0,  44400, "Pacific/Tongatapu"             },
        { "trst",  1,  14400, "Europe/Istanbul"               },
        { "trst",  1,  14400, "Asia/Istanbul"                 },
        { "trt",   0,  10800, "Europe/Istanbul"               },
        { "uct",   0,      0, "UCT"                           },
        { "ulast", 1,  32400, "Asia/Ulaanbaatar"              },
        { "ulast", 1,  32400, "Asia/Ulan_Bator"               },
-       { "ulat",  0,  25200, "Asia/Ulaanbaatar"              },
        { "ulat",  0,  28800, "Asia/Ulaanbaatar"              },
+       { "ulat",  0,  25200, "Asia/Ulaanbaatar"              },
        { "ulat",  0,  25200, "Asia/Choibalsan"               },
        { "ulat",  0,  25200, "Asia/Ulan_Bator"               },
        { "ulat",  0,  28800, "Asia/Choibalsan"               },
        { "ulat",  0,  28800, "Asia/Ulan_Bator"               },
-       { "urast", 1,  18000, "Asia/Oral"                     },
        { "urast", 1,  21600, "Asia/Oral"                     },
+       { "urast", 1,  18000, "Asia/Oral"                     },
+       { "urat",  0,  21600, "Asia/Oral"                     },
        { "urat",  0,  14400, "Asia/Oral"                     },
        { "urat",  0,  18000, "Asia/Oral"                     },
-       { "urat",  0,  21600, "Asia/Oral"                     },
-       { "urut",  0,  21600, "Asia/Urumqi"                   },
+       { "utc",   0,      0, "Antarctica/Troll"              },
        { "utc",   0,      0, "Etc/Universal"                 },
        { "utc",   0,      0, "Etc/UTC"                       },
        { "utc",   0,      0, "Etc/Zulu"                      },
        { "utc",   0,      0, "GMT"                           },
        { "utc",   0,      0, "UTC"                           },
        { "utc",   0,      0, "UTC"                           },
-       { "uyhst", 1, -10800, "America/Montevideo"            },
        { "uyhst", 1,  -9000, "America/Montevideo"            },
+       { "uyhst", 1, -10800, "America/Montevideo"            },
        { "uyst",  1,  -7200, "America/Montevideo"            },
        { "uyt",   0, -10800, "America/Montevideo"            },
        { "uyt",   0, -12600, "America/Montevideo"            },
        { "uzst",  1,  21600, "Asia/Tashkent"                 },
        { "uzt",   0,  18000, "Asia/Samarkand"                },
        { "uzt",   0,  18000, "Asia/Tashkent"                 },
-       { "vet",   0, -14400, "America/Caracas"               },
        { "vet",   0, -16200, "America/Caracas"               },
-       { "vlasst", 1,  36000, "Asia/Vladivostok"              },
-       { "vlast", 0,  32400, "Asia/Vladivostok"              },
+       { "vet",   0, -14400, "America/Caracas"               },
        { "vlast", 1,  39600, "Asia/Vladivostok"              },
-       { "vlat",  0,  32400, "Asia/Vladivostok"              },
+       { "vlast", 1,  36000, "Asia/Vladivostok"              },
+       { "vlast", 1,  39600, "Asia/Khandyga"                 },
        { "vlat",  0,  36000, "Asia/Vladivostok"              },
+       { "vlat",  0,  32400, "Asia/Vladivostok"              },
+       { "vlat",  0,  39600, "Asia/Vladivostok"              },
+       { "vlat",  0,  36000, "Asia/Khandyga"                 },
+       { "vlat",  0,  36000, "Asia/Ust-Nera"                 },
+       { "vlat",  0,  39600, "Asia/Khandyga"                 },
+       { "vlat",  0,  39600, "Asia/Ust-Nera"                 },
        { "volst", 1,  14400, "Europe/Volgograd"              },
        { "volst", 1,  18000, "Europe/Volgograd"              },
        { "volt",  0,  10800, "Europe/Volgograd"              },
        { "wart",  0, -14400, "America/Rosario"               },
        { "wast",  1,   7200, "Africa/Windhoek"               },
        { "wast",  1,   7200, "Africa/Ndjamena"               },
-       { "wat",   0,  -3600, "Africa/Dakar"                  },
-       { "wat",   0,  -3600, "Africa/Bamako"                 },
-       { "wat",   0,  -3600, "Africa/Banjul"                 },
+       { "wat",   0,   3600, "Africa/Brazzaville"            },
        { "wat",   0,  -3600, "Africa/Bissau"                 },
-       { "wat",   0,  -3600, "Africa/Conakry"                },
        { "wat",   0,  -3600, "Africa/El_Aaiun"               },
-       { "wat",   0,  -3600, "Africa/Freetown"               },
        { "wat",   0,  -3600, "Africa/Niamey"                 },
-       { "wat",   0,  -3600, "Africa/Nouakchott"             },
-       { "wat",   0,  -3600, "Africa/Timbuktu"               },
-       { "wat",   0,      0, "Africa/Freetown"               },
-       { "wat",   0,   3600, "Africa/Brazzaville"            },
        { "wat",   0,   3600, "Africa/Bangui"                 },
        { "wat",   0,   3600, "Africa/Douala"                 },
        { "wat",   0,   3600, "Africa/Kinshasa"               },
        { "wemt",  1,   7200, "Europe/Paris"                  },
        { "wemt",  1,   7200, "WET"                           },
        { "west",  1,   3600, "Europe/Paris"                  },
+       { "west",  1,   7200, "Europe/Luxembourg"             },
        { "west",  1,   3600, "Africa/Algiers"                },
        { "west",  1,   3600, "Africa/Casablanca"             },
        { "west",  1,   3600, "Africa/Ceuta"                  },
+       { "west",  1,   3600, "Africa/El_Aaiun"               },
        { "west",  1,   3600, "Atlantic/Canary"               },
        { "west",  1,   3600, "Atlantic/Faeroe"               },
        { "west",  1,   3600, "Atlantic/Faroe"                },
        { "west",  1,   3600, "Europe/Madrid"                 },
        { "west",  1,   3600, "Europe/Monaco"                 },
        { "west",  1,   3600, "WET"                           },
-       { "west",  1,   7200, "Europe/Luxembourg"             },
        { "wet",   0,      0, "Europe/Paris"                  },
+       { "wet",   0,   3600, "Europe/Luxembourg"             },
        { "wet",   0,      0, "Africa/Algiers"                },
        { "wet",   0,      0, "Africa/Casablanca"             },
        { "wet",   0,      0, "Africa/Ceuta"                  },
        { "wet",   0,      0, "Europe/Madrid"                 },
        { "wet",   0,      0, "Europe/Monaco"                 },
        { "wet",   0,      0, "WET"                           },
-       { "wet",   0,   3600, "Europe/Luxembourg"             },
        { "wft",   0,  43200, "Pacific/Wallis"                },
        { "wgst",  1,  -7200, "America/Godthab"               },
        { "wgst",  1,  -7200, "America/Danmarkshavn"          },
        { "wgt",   0, -10800, "America/Godthab"               },
        { "wgt",   0, -10800, "America/Danmarkshavn"          },
-       { "wit",   0,  25200, "Asia/Jakarta"                  },
-       { "wit",   0,  27000, "Asia/Jakarta"                  },
-       { "wit",   0,  28800, "Asia/Jakarta"                  },
-       { "wit",   0,  25200, "Asia/Pontianak"                },
-       { "wit",   0,  27000, "Asia/Pontianak"                },
-       { "wit",   0,  28800, "Asia/Pontianak"                },
+       { "wib",   0,  25200, "Asia/Jakarta"                  },
+       { "wib",   0,  25200, "Asia/Pontianak"                },
+       { "wib",   0,  27000, "Asia/Jakarta"                  },
+       { "wib",   0,  27000, "Asia/Pontianak"                },
+       { "wib",   0,  28800, "Asia/Jakarta"                  },
+       { "wib",   0,  28800, "Asia/Pontianak"                },
+       { "wita",  0,  28800, "Asia/Dili"                     },
+       { "wita",  0,  28800, "Asia/Makassar"                 },
+       { "wita",  0,  28800, "Asia/Pontianak"                },
+       { "wita",  0,  28800, "Asia/Ujung_Pandang"            },
+       { "wit",   0,  32400, "Asia/Jayapura"                 },
        { "wmt",   0,   5040, "Europe/Vilnius"                },
        { "wmt",   0,   5040, "Europe/Warsaw"                 },
-       { "wsdt",  1, -36000, "Pacific/Apia"                  },
-       { "wst",   0,  28800, "Australia/Perth"               },
-       { "wst",   1,  32400, "Australia/Perth"               },
-       { "wst",   0, -39600, "Pacific/Apia"                  },
-       { "wst",   0,  28800, "Antarctica/Casey"              },
-       { "wst",   0,  28800, "Australia/West"                },
-       { "wst",   1,  32400, "Australia/West"                },
-       { "yakst", 1,  32400, "Asia/Yakutsk"                  },
+       { "wsdt",  1,  50400, "Pacific/Apia"                  },
+       { "wsst",  0, -41400, "Pacific/Apia"                  },
+       { "wsst",  0,  46800, "Pacific/Apia"                  },
+       { "xjt",   0,  21600, "Asia/Kashgar"                  },
+       { "xjt",   0,  21600, "Asia/Urumqi"                   },
        { "yakst", 1,  36000, "Asia/Yakutsk"                  },
-       { "yakt",  0,  28800, "Asia/Yakutsk"                  },
+       { "yakst", 1,  32400, "Asia/Yakutsk"                  },
+       { "yakst", 1,  32400, "Asia/Chita"                    },
+       { "yakst", 1,  32400, "Asia/Khandyga"                 },
+       { "yakst", 1,  36000, "Asia/Chita"                    },
+       { "yakst", 1,  36000, "Asia/Khandyga"                 },
        { "yakt",  0,  32400, "Asia/Yakutsk"                  },
+       { "yakt",  0,  28800, "Asia/Yakutsk"                  },
+       { "yakt",  0,  36000, "Asia/Yakutsk"                  },
+       { "yakt",  0,  28800, "Asia/Chita"                    },
+       { "yakt",  0,  28800, "Asia/Khandyga"                 },
+       { "yakt",  0,  28800, "Asia/Ust-Nera"                 },
+       { "yakt",  0,  32400, "Asia/Chita"                    },
+       { "yakt",  0,  32400, "Asia/Khandyga"                 },
+       { "yakt",  0,  32400, "Asia/Ust-Nera"                 },
+       { "yakt",  0,  36000, "Asia/Chita"                    },
+       { "yakt",  0,  36000, "Asia/Khandyga"                 },
        { "yddt",  1, -25200, "America/Dawson"                },
        { "yddt",  1, -25200, "America/Whitehorse"            },
        { "yddt",  1, -25200, "Canada/Yukon"                  },
        { "ydt",   1, -28800, "America/Dawson"                },
+       { "ydt",   1, -28800, "America/Juneau"                },
        { "ydt",   1, -28800, "America/Whitehorse"            },
        { "ydt",   1, -28800, "America/Yakutat"               },
        { "ydt",   1, -28800, "Canada/Yukon"                  },
        { "yekst", 1,  21600, "Asia/Yekaterinburg"            },
        { "yekt",  0,  18000, "Asia/Yekaterinburg"            },
-       { "yerst", 1,  14400, "Asia/Yerevan"                  },
+       { "yekt",  0,  21600, "Asia/Yekaterinburg"            },
        { "yerst", 1,  18000, "Asia/Yerevan"                  },
-       { "yert",  0,  10800, "Asia/Yerevan"                  },
+       { "yerst", 1,  14400, "Asia/Yerevan"                  },
        { "yert",  0,  14400, "Asia/Yerevan"                  },
+       { "yert",  0,  10800, "Asia/Yerevan"                  },
        { "ypt",   1, -28800, "America/Dawson"                },
        { "ypt",   1, -28800, "America/Whitehorse"            },
        { "ypt",   1, -28800, "America/Yakutat"               },
        { "yst",   0, -32400, "America/Dawson"                },
        { "yst",   0, -32400, "America/Juneau"                },
        { "yst",   0, -32400, "America/Nome"                  },
+       { "yst",   0, -32400, "America/Sitka"                 },
        { "yst",   0, -32400, "America/Whitehorse"            },
        { "yst",   0, -32400, "America/Yakutat"               },
        { "yst",   0, -32400, "Canada/Yukon"                  },
        { "zzz",   0,      0, "Antarctica/DumontDUrville"     },
        { "zzz",   0,      0, "Antarctica/Macquarie"          },
        { "zzz",   0,      0, "Antarctica/Mawson"             },
-       { "zzz",   0,      0, "Antarctica/McMurdo"            },
        { "zzz",   0,      0, "Antarctica/Palmer"             },
        { "zzz",   0,      0, "Antarctica/Rothera"            },
-       { "zzz",   0,      0, "Antarctica/South_Pole"         },
        { "zzz",   0,      0, "Antarctica/Syowa"              },
+       { "zzz",   0,      0, "Antarctica/Troll"              },
        { "zzz",   0,      0, "Antarctica/Vostok"             },
        { "zzz",   0,      0, "Indian/Kerguelen"              },
        { "z",     0,      0, NULL                            },
index 58b0ce80ab8f0fcf753ce7c1c6bb9d758af31134..9f8c30a2e95540cd9ae478c84d49a87f82034c73 100644 (file)
@@ -8,7 +8,7 @@ date_default_timezone_set('UTC');
   echo "Done\n";
 ?>
 --EXPECTF--
-array(6) {
+array(7) {
   [0]=>
   array(3) {
     ["dst"]=>
@@ -16,7 +16,7 @@ array(6) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(13) "Etc/Universal"
+    string(16) "Antarctica/Troll"
   }
   [1]=>
   array(3) {
@@ -25,7 +25,7 @@ array(6) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(7) "Etc/UTC"
+    string(13) "Etc/Universal"
   }
   [2]=>
   array(3) {
@@ -34,7 +34,7 @@ array(6) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(8) "Etc/Zulu"
+    string(7) "Etc/UTC"
   }
   [3]=>
   array(3) {
@@ -43,7 +43,7 @@ array(6) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(3) "GMT"
+    string(8) "Etc/Zulu"
   }
   [4]=>
   array(3) {
@@ -52,7 +52,7 @@ array(6) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(3) "UTC"
+    string(3) "GMT"
   }
   [5]=>
   array(3) {
@@ -63,5 +63,14 @@ array(6) {
     ["timezone_id"]=>
     string(3) "UTC"
   }
+  [6]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(0)
+    ["timezone_id"]=>
+    string(3) "UTC"
+  }
 }
 Done
index 460e8c9d8e649730e2a329317558b5c722786f2c..092a4b7758ffad2f0c7756d8ef2e2e9c22137664 100644 (file)
@@ -6,7 +6,7 @@ date_default_timezone_set('UTC');
 
 var_dump(timezone_name_from_abbr());
 var_dump(timezone_name_from_abbr("CET"));
-var_dump(timezone_name_from_abbr("AEST"));
+var_dump(timezone_name_from_abbr("AXST"));
 var_dump(timezone_name_from_abbr("", 3600));
 var_dump(timezone_name_from_abbr("", 3600, 0));
 
index 015c9e8ec6f254297ead746ab7376842717be2df..e4a5dbd1757b8712d65f92f91f3cc9bec5a3c25a 100644 (file)
@@ -29,7 +29,7 @@ string(5) "array"
 int(%d)
 
 -- Format a sample entry --
-array(4) {
+array(11) {
   [0]=>
   array(3) {
     ["dst"]=>
@@ -40,6 +40,15 @@ array(4) {
     string(18) "America/Porto_Acre"
   }
   [1]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(18) "Australia/Adelaide"
+  }
+  [2]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -48,7 +57,7 @@ array(4) {
     ["timezone_id"]=>
     string(16) "America/Eirunepe"
   }
-  [2]=>
+  [3]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -57,7 +66,7 @@ array(4) {
     ["timezone_id"]=>
     string(18) "America/Rio_Branco"
   }
-  [3]=>
+  [4]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -66,5 +75,59 @@ array(4) {
     ["timezone_id"]=>
     string(11) "Brazil/Acre"
   }
+  [5]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(13) "Asia/Jayapura"
+  }
+  [6]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(21) "Australia/Broken_Hill"
+  }
+  [7]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(16) "Australia/Darwin"
+  }
+  [8]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(15) "Australia/North"
+  }
+  [9]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(15) "Australia/South"
+  }
+  [10]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(20) "Australia/Yancowinna"
+  }
 }
 ===DONE===
diff --git a/ext/date/tests/bug45081.phpt b/ext/date/tests/bug45081.phpt
new file mode 100644 (file)
index 0000000..20733c6
--- /dev/null
@@ -0,0 +1,15 @@
+--TEST--
+Bug #45081 (strtotime incorrectly interprets SGT time zone)
+--INI--
+date.timezone=Asia/Singapore
+--FILE--
+<?php
+
+print strtotime('2008-05-23 00:00:00 SGT');
+print "\n";
+print strtotime('2008-05-23 00:00:00');
+
+?>
+--EXPECTF--
+1211472000
+1211472000
index e5dfe5d6a7fcc7b60b6f0b70eb2b8c0c1d427b3d..73af2acf3dd42037acdd429b72eb6252b9b263ce 100644 (file)
@@ -29,7 +29,7 @@ string(5) "array"
 int(%d)
 
 -- Format a sample entry --
-array(4) {
+array(11) {
   [0]=>
   array(3) {
     ["dst"]=>
@@ -40,6 +40,15 @@ array(4) {
     string(18) "America/Porto_Acre"
   }
   [1]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(18) "Australia/Adelaide"
+  }
+  [2]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -48,7 +57,7 @@ array(4) {
     ["timezone_id"]=>
     string(16) "America/Eirunepe"
   }
-  [2]=>
+  [3]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -57,7 +66,7 @@ array(4) {
     ["timezone_id"]=>
     string(18) "America/Rio_Branco"
   }
-  [3]=>
+  [4]=>
   array(3) {
     ["dst"]=>
     bool(true)
@@ -66,5 +75,59 @@ array(4) {
     ["timezone_id"]=>
     string(11) "Brazil/Acre"
   }
+  [5]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(13) "Asia/Jayapura"
+  }
+  [6]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(21) "Australia/Broken_Hill"
+  }
+  [7]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(16) "Australia/Darwin"
+  }
+  [8]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(15) "Australia/North"
+  }
+  [9]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(15) "Australia/South"
+  }
+  [10]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(34200)
+    ["timezone_id"]=>
+    string(20) "Australia/Yancowinna"
+  }
 }
 ===DONE===