]> git.saurik.com Git - apple/icu.git/commitdiff
ICU-511.27.tar.gz os-x-1091 v511.27
authorApple <opensource@apple.com>
Wed, 9 Oct 2013 05:46:46 +0000 (05:46 +0000)
committerApple <opensource@apple.com>
Wed, 9 Oct 2013 05:46:46 +0000 (05:46 +0000)
icuSources/data/misc/metaZones.txt
icuSources/data/misc/zoneinfo64.txt
icuSources/test/intltest/tztest.cpp
icuSources/tools/tzcode/zic.c

index 44ca81154dede4aa7a0a2bea64761993623c7799..0de028a6489b1d9bacc54d584c006658d702b980 100644 (file)
@@ -301,6 +301,7 @@ metaZones:table(nofallback){
             SM{"Europe/San_Marino"}
             TN{"Africa/Tunis"}
             VA{"Europe/Vatican"}
+            XK{"Europe/Belgrade"}
         }
         Europe_Eastern{
             001{"Europe/Bucharest"}
@@ -310,7 +311,6 @@ metaZones:table(nofallback){
             EG{"Africa/Cairo"}
             FI{"Europe/Helsinki"}
             GR{"Europe/Athens"}
-            JO{"Asia/Amman"}
             LB{"Asia/Beirut"}
             SY{"Asia/Damascus"}
         }
@@ -2579,6 +2579,13 @@ metaZones:table(nofallback){
         "Asia:Amman"{
             {
                 "Europe_Eastern",
+                "1970-01-01 00:00",
+                "2012-10-25 22:00",
+            }
+            {
+                "Arabian",
+                "2012-10-25 22:00",
+                "9999-12-31 23:59",
             }
         }
         "Asia:Anadyr"{
index ae41e2d2fadb9c53250f429f57ea8f106f137953..4d3e6c48d2fe09c30d5f4ca758f1ae96dc0117a4 100644 (file)
@@ -3,17 +3,17 @@
 // Corporation and others.  All Rights Reserved.
 //---------------------------------------------------------
 // Build tool: tz2icu
-// Build date: Wed Mar 13 14:11:54 2013
+// Build date: Wed Oct  2 17:53:53 2013
 // Olson source: ftp://elsie.nci.nih.gov/pub/
-// Olson version: 2013b
-// ICU version: 51.1
+// Olson version: 2013g
+// ICU version: 52.1
 //---------------------------------------------------------
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<
 // >> !!! >>>            DO NOT EDIT             <<< !!! <<
 //---------------------------------------------------------
 
 zoneinfo64:table(nofallback) {
- TZVersion { "2013b" }
+ TZVersion { "2013g" }
  Zones:array { 
   /* ACT */ :int { 347 } //Z#0
   /* AET */ :int { 359 } //Z#1
@@ -95,12 +95,10 @@ zoneinfo64:table(nofallback) {
     links:intvector { 3, 18, 393 }
   } //Z#18
   /* Africa/Casablanca */ :table {
-    trans:intvector { -1773012580, -956361600, -950490000, -942019200, -761187600, -617241600, -605149200, -81432000, -71110800, 141264000, 147222000, 199756800, 207702000, 231292800, 244249200, 265507200, 271033200, 448243200, 504918000, 1212278400, 1220223600, 1243814400, 1250809200, 1272758400, 1281222000, 1301788800, 1312066800, 1335664800, 1342749600, 1345428000, 1348970400, 1367114400, 1373335200, 1375927200, 1380420000, 1398564000, 1404007200, 1406599200, 1411869600, 1430013600, 1434592800, 1437184800, 1443319200, 1461463200, 1465264800, 1467856800, 1474768800, 1493517600, 1495850400, 1498442400, 1506218400, 1524967200, 1526436000, 1529028000, 1538272800, 1556416800, 1557108000, 1559700000, 1569722400, 1590285600, 1601172000, 1620871200, 1632621600, 1651543200, 1664071200, 1682820000, 1695520800 }
+    trans:intvector { -1773012580, -956361600, -950490000, -942019200, -761187600, -617241600, -605149200, -81432000, -71110800, 141264000, 147222000, 199756800, 207702000, 231292800, 244249200, 265507200, 271033200, 448243200, 504918000, 1212278400, 1220223600, 1243814400, 1250809200, 1272758400, 1281222000, 1301788800, 1312066800, 1335664800, 1342749600, 1345428000, 1348970400, 1367114400, 1373162400, 1376100000, 1382839200, 1396144800, 1404007200, 1406599200, 1414288800, 1427594400, 1434592800, 1437184800, 1445738400, 1459044000, 1465264800, 1467856800, 1477792800, 1490493600, 1495850400, 1498442400, 1509242400, 1521943200, 1526436000, 1529028000, 1540692000, 1553997600, 1557108000, 1559700000, 1572141600, 1585447200, 1587693600, 1590285600, 1603591200, 1616896800, 1618279200, 1620871200, 1635645600, 1648346400, 1648951200, 1651543200, 1667095200, 1682128800, 1698544800, 1712714400, 1729994400, 1743386400, 1761444000, 1774749600, 1792893600, 1806199200, 1824948000, 1837648800, 1856397600, 1869098400, 1887847200, 1901152800, 1919296800, 1932602400, 1950746400, 1964052000, 1982800800, 1995501600, 2014250400, 2026951200, 2045700000, 2058400800, 2077149600, 2090455200, 2108167200, 2121904800, 2138839200 }
+    transPost32:intvector { 0, -2141612896 }
     typeOffsets:intvector { -1820, 0, 0, 0, 0, 3600, 3600, 0 }
-    typeMap:bin { "01020102010201020102010201020102010301020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
-    finalRule { "Morocco" }
-    finalRaw:int { 0 }
-    finalYear:int { 2024 }
+    typeMap:bin { "010201020102010201020102010201020103010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
   } //Z#19
   /* Africa/Ceuta */ :table {
     transPre32:intvector { -1, 2117515772 }
@@ -164,11 +162,7 @@ zoneinfo64:table(nofallback) {
     typeOffsets:intvector { 6720, 0, 5400, 0, 7200, 0, 7200, 3600 }
     typeMap:bin { "010203020302" }
   } //Z#30
-  /* Africa/Juba */ :table {
-    trans:intvector { -1230775584, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400 }
-    typeOffsets:intvector { 7584, 0, 7200, 0, 7200, 3600, 10800, 0 }
-    typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020103" }
-  } //Z#31
+  /* Africa/Juba */ :int { 33 } //Z#31
   /* Africa/Kampala */ :table {
     trans:intvector { -1309745380, -1262314800, -694319400, -410237100 }
     typeOffsets:intvector { 7780, 0, 9000, 0, 9900, 0, 10800, 0 }
@@ -178,6 +172,7 @@ zoneinfo64:table(nofallback) {
     trans:intvector { -1230775808, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400 }
     typeOffsets:intvector { 7808, 0, 7200, 0, 7200, 3600, 10800, 0 }
     typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020103" }
+    links:intvector { 31, 33 }
   } //Z#33
   /* Africa/Kigali */ :table {
     trans:intvector { -1091498416 }
@@ -332,24 +327,16 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
     links:intvector { 4, 60, 605 }
   } //Z#60
-  /* America/Anguilla */ :table {
-    trans:intvector { -1825098464 }
-    typeOffsets:intvector { -15136, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#61
+  /* America/Anguilla */ :int { 185 } //Z#61
   /* America/Antigua */ :table {
     trans:intvector { -1825098768, -599598000 }
     typeOffsets:intvector { -14832, 0, -18000, 0, -14400, 0 }
     typeMap:bin { "0102" }
   } //Z#62
   /* America/Araguaina */ :table {
-    trans:intvector { -1767214032, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800, 1350788400, 1361066400, 1382238000, 1392516000, 1413687600, 1424570400, 1445137200, 1456020000, 1476586800, 1487469600, 1508036400, 1518919200, 1540090800, 1550368800, 1571540400, 1581818400, 1602990000, 1613872800, 1634439600, 1645322400, 1665889200, 1677376800, 1697338800, 1708221600, 1729393200, 1739671200, 1760842800, 1771725600, 1792292400, 1803175200, 1823742000, 1834624800, 1855191600, 1866074400, 1887246000, 1897524000, 1918695600, 1928973600, 1950145200, 1960423200, 1981594800, 1992477600, 2013044400, 2024532000, 2044494000, 2055376800, 2076548400, 2086826400, 2107998000, 2118880800, 2139447600 }
-    transPost32:intvector { 0, -2144636896, 0, -2124070096 }
+    trans:intvector { -1767214032, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800, 1350788400, 1361066400 }
     typeOffsets:intvector { -11568, 0, -10800, 0, -10800, 3600 }
-    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
-    finalRule { "Brazil" }
-    finalRaw:int { -10800 }
-    finalYear:int { 2039 }
+    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
   } //Z#63
   /* America/Argentina/Buenos_Aires */ :table {
     transPre32:intvector { -1, 1922869324 }
@@ -414,7 +401,7 @@ zoneinfo64:table(nofallback) {
     transPre32:intvector { -1, 1922871220 }
     trans:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 637380000, 655963200, 667796400, 675748800, 938919600, 952052400, 1085972400, 1090728000, 1198983600, 1200880800, 1205031600, 1223784000, 1236481200, 1255233600 }
     typeOffsets:intvector { -15924, 0, -15408, 0, -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
-    typeMap:bin { "0102030203020302030203020302030203020302030203020302030203020302030203020302030203020405040504050203020403040204050302030203" }
+    typeMap:bin { "0102030203020302030203020302030203020302030203020302030203020302030203020302030203020405040504050203020403040204050302030204" }
   } //Z#74
   /* America/Argentina/Tucuman */ :table {
     transPre32:intvector { -1, 1922870948 }
@@ -428,18 +415,14 @@ zoneinfo64:table(nofallback) {
     typeOffsets:intvector { -16392, 0, -15408, 0, -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
     typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030204050405040504050405040504030402040504" }
   } //Z#76
-  /* America/Aruba */ :table {
-    trans:intvector { -1826738376, -157750200 }
-    typeOffsets:intvector { -16824, 0, -16200, 0, -14400, 0 }
-    typeMap:bin { "0102" }
-  } //Z#77
+  /* America/Aruba */ :int { 105 } //Z#77
   /* America/Asuncion */ :table {
-    trans:intvector { -1206389360, 86760000, 134017200, 181368000, 194497200, 212990400, 226033200, 244526400, 257569200, 276062400, 291783600, 307598400, 323406000, 339220800, 354942000, 370756800, 386478000, 402292800, 418014000, 433828800, 449636400, 465451200, 481172400, 496987200, 512708400, 528523200, 544244400, 560059200, 575866800, 591681600, 607402800, 625032000, 638938800, 654753600, 670474800, 686721600, 699418800, 718257600, 733546800, 749448000, 762318000, 780984000, 793767600, 812520000, 825649200, 844574400, 856666800, 876024000, 888721200, 907473600, 920775600, 938923200, 952225200, 970372800, 983674800, 1002427200, 1018148400, 1030852800, 1049598000, 1062907200, 1081047600, 1097985600, 1110682800, 1129435200, 1142132400, 1160884800, 1173582000, 1192939200, 1205031600, 1224388800, 1236481200, 1255838400, 1270954800, 1286078400, 1302404400, 1317528000, 1333854000, 1349582400, 1364094000, 1381032000, 1397358000, 1412481600 }
+    trans:intvector { -1206389360, 86760000, 134017200, 181368000, 194497200, 212990400, 226033200, 244526400, 257569200, 276062400, 291783600, 307598400, 323406000, 339220800, 354942000, 370756800, 386478000, 402292800, 418014000, 433828800, 449636400, 465451200, 481172400, 496987200, 512708400, 528523200, 544244400, 560059200, 575866800, 591681600, 607402800, 625032000, 638938800, 654753600, 670474800, 686721600, 699418800, 718257600, 733546800, 749448000, 762318000, 780984000, 793767600, 812520000, 825649200, 844574400, 856666800, 876024000, 888721200, 907473600, 920775600, 938923200, 952225200, 970372800, 983674800, 1002427200, 1018148400, 1030852800, 1049598000, 1062907200, 1081047600, 1097985600, 1110682800, 1129435200, 1142132400, 1160884800, 1173582000, 1192939200, 1205031600, 1224388800, 1236481200, 1255838400, 1270954800, 1286078400, 1302404400, 1317528000, 1333854000, 1349582400, 1364094000, 1381032000 }
     typeOffsets:intvector { -13840, 0, -14400, 0, -14400, 3600, -10800, 0 }
-    typeMap:bin { "01030102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
+    typeMap:bin { "0103010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
     finalRule { "Para" }
     finalRaw:int { -14400 }
-    finalYear:int { 2015 }
+    finalYear:int { 2014 }
   } //Z#78
   /* America/Atikokan */ :table {
     transPre32:intvector { -1, 1928234084 }
@@ -542,8 +525,8 @@ zoneinfo64:table(nofallback) {
   } //Z#96
   /* America/Cayman */ :table {
     transPre32:intvector { -1, 1770465228 }
-    trans:intvector { -1827687168 }
-    typeOffsets:intvector { -19532, 0, -18432, 0, -18000, 0 }
+    trans:intvector { -1827687169 }
+    typeOffsets:intvector { -19532, 0, -18431, 0, -18000, 0 }
     typeMap:bin { "0102" }
   } //Z#97
   /* America/Chicago */ :table {
@@ -590,7 +573,7 @@ zoneinfo64:table(nofallback) {
     trans:intvector { -1826738653, -157750200 }
     typeOffsets:intvector { -16547, 0, -16200, 0, -14400, 0 }
     typeMap:bin { "0102" }
-    links:intvector { 105, 147, 152 }
+    links:intvector { 77, 105, 147, 152 }
   } //Z#105
   /* America/Danmarkshavn */ :table {
     trans:intvector { -1686091520, 323845200, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 820465200 }
@@ -631,11 +614,7 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
     links:intvector { 110, 613 }
   } //Z#110
-  /* America/Dominica */ :table {
-    trans:intvector { -1846266804 }
-    typeOffsets:intvector { -14736, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#111
+  /* America/Dominica */ :int { 185 } //Z#111
   /* America/Edmonton */ :table {
     trans:intvector { -1998663968, -1632063600, -1615132800, -1600614000, -1596816000, -1567954800, -1551628800, -1536505200, -1523203200, -1504450800, -1491753600, -1473001200, -1459699200, -880210800, -765388800, -715791600, -702489600, -84380400, -68659200, -21481200, -5760000, 73472400, 89193600, 104922000, 120643200, 136371600, 152092800, 167821200, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800, 1173603600, 1194163200 }
     typeOffsets:intvector { -27232, 0, -25200, 0, -25200, 3600 }
@@ -689,24 +668,15 @@ zoneinfo64:table(nofallback) {
   } //Z#120
   /* America/Grand_Turk */ :table {
     transPre32:intvector { -1, 1770462768 }
-    trans:intvector { -1827687168, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
-    typeOffsets:intvector { -17072, 0, -18432, 0, -18000, 0, -18000, 3600 }
+    trans:intvector { -1827687169, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
+    typeOffsets:intvector { -17072, 0, -18431, 0, -18000, 0, -18000, 3600 }
     typeMap:bin { "010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
     finalRule { "TC" }
     finalRaw:int { -18000 }
     finalYear:int { 2008 }
   } //Z#121
-  /* America/Grenada */ :table {
-    trans:intvector { -1846266780 }
-    typeOffsets:intvector { -14820, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#122
-  /* America/Guadeloupe */ :table {
-    trans:intvector { -1848254032 }
-    typeOffsets:intvector { -14768, 0, -14400, 0 }
-    typeMap:bin { "01" }
-    links:intvector { 123, 156, 204 }
-  } //Z#123
+  /* America/Grenada */ :int { 185 } //Z#122
+  /* America/Guadeloupe */ :int { 185 } //Z#123
   /* America/Guatemala */ :table {
     trans:intvector { -1617040676, 123055200, 130914000, 422344800, 433054800, 669708000, 684219600, 1146376800, 1159678800 }
     typeOffsets:intvector { -21724, 0, -21600, 0, -21600, 3600 }
@@ -839,8 +809,8 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
   } //Z#140
   /* America/Jamaica */ :table {
-    trans:intvector { -1827687168, 136364400, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600 }
-    typeOffsets:intvector { -18432, 0, -18000, 0, -18000, 3600 }
+    trans:intvector { -1827687169, 136364400, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600 }
+    typeOffsets:intvector { -18431, 0, -18000, 0, -18000, 3600 }
     typeMap:bin { "010201020102010201020102010201020102010201" }
     links:intvector { 141, 517 }
   } //Z#141
@@ -915,7 +885,7 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201" }
     links:intvector { 155, 369 }
   } //Z#155
-  /* America/Marigot */ :int { 123 } //Z#156
+  /* America/Marigot */ :int { 185 } //Z#156
   /* America/Martinique */ :table {
     trans:intvector { -1851537340, 323841600, 338958000 }
     typeOffsets:intvector { -14660, 0, -14400, 0, -14400, 3600 }
@@ -1013,11 +983,7 @@ zoneinfo64:table(nofallback) {
     finalRaw:int { -18000 }
     finalYear:int { 2008 }
   } //Z#169
-  /* America/Montserrat */ :table {
-    trans:intvector { -1846266608 }
-    typeOffsets:intvector { -14932, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#170
+  /* America/Montserrat */ :int { 185 } //Z#170
   /* America/Nassau */ :table {
     trans:intvector { -1825095030, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
     typeOffsets:intvector { -18570, 0, -18000, 0, -18000, 3600 }
@@ -1134,6 +1100,7 @@ zoneinfo64:table(nofallback) {
     trans:intvector { -1825098836 }
     typeOffsets:intvector { -14764, 0, -14400, 0 }
     typeMap:bin { "01" }
+    links:intvector { 61, 111, 122, 123, 156, 170, 185, 204, 206, 207, 208, 209, 216, 218 }
   } //Z#185
   /* America/Porto_Acre */ :int { 194 } //Z#186
   /* America/Porto_Velho */ :table {
@@ -1247,7 +1214,7 @@ zoneinfo64:table(nofallback) {
     finalRaw:int { -32400 }
     finalYear:int { 2008 }
   } //Z#203
-  /* America/St_Barthelemy */ :int { 123 } //Z#204
+  /* America/St_Barthelemy */ :int { 185 } //Z#204
   /* America/St_Johns */ :table {
     trans:intvector { -1664130548, -1650137348, -1632076148, -1615145348, -1598650148, -1590100148, -1567286948, -1551565748, -1535837348, -1520116148, -1503782948, -1488666548, -1472333348, -1457216948, -1440883748, -1425767348, -1409434148, -1394317748, -1377984548, -1362263348, -1346534948, -1330813748, -1314480548, -1299364148, -1283030948, -1267914548, -1251581348, -1236464948, -1220131748, -1205015348, -1188682148, -1172960948, -1156627748, -1141511348, -1125178148, -1110061748, -1096921748, -1093728600, -1078612200, -1061670600, -1048973400, -1030221000, -1017523800, -998771400, -986074200, -966717000, -954624600, -935267400, -922570200, -903817800, -891120600, -872368200, -765401400, -746044200, -733347000, -714594600, -701897400, -683145000, -670447800, -651695400, -638998200, -619641000, -606943800, -589401000, -576099000, -557951400, -544649400, -526501800, -513199800, -495052200, -481750200, -463602600, -450300600, -431548200, -418246200, -400098600, -386796600, -368649000, -355347000, -337199400, -323897400, -305749800, -289423800, -273695400, -257974200, -242245800, -226524600, -210796200, -195075000, -179346600, -163625400, -147897000, -131571000, -116447400, -100121400, -84393000, -68671800, -52943400, -37222200, -21493800, -5772600, 9955800, 25677000, 41405400, 57731400, 73459800, 89181000, 104909400, 120630600, 136359000, 152080200, 167808600, 183529800, 199258200, 215584200, 230707800, 247033800, 262762200, 278483400, 294211800, 309933000, 325661400, 341382600, 357111000, 372832200, 388560600, 404886600, 420010200, 436336200, 452064600, 467785800, 483514200, 499235400, 514963800, 530685000, 544591860, 562127460, 576041460, 594178260, 607491060, 625631460, 638940660, 657081060, 670995060, 688530660, 702444660, 719980260, 733894260, 752034660, 765343860, 783484260, 796793460, 814933860, 828847860, 846383460, 860297460, 877833060, 891747060, 909282660, 923196660, 941337060, 954646260, 972786660, 986095860, 1004236260, 1018150260, 1035685860, 1049599860, 1067135460, 1081049460, 1099189860, 1112499060, 1130639460, 1143948660, 1162089060, 1173583860, 1194143460, 1205033460, 1225593060, 1236483060, 1257042660, 1268537460, 1289097060, 1299987060, 1320553800, 1331443800, 1352003400 }
     typeOffsets:intvector { -12652, 0, -12652, 3600, -12600, 0, -12600, 3600, -12600, 7200 }
@@ -1257,27 +1224,10 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2013 }
     links:intvector { 205, 372, 381 }
   } //Z#205
-  /* America/St_Kitts */ :table {
-    trans:intvector { -1825098548 }
-    typeOffsets:intvector { -15052, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#206
-  /* America/St_Lucia */ :table {
-    trans:intvector { -1830369360 }
-    typeOffsets:intvector { -14640, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#207
-  /* America/St_Thomas */ :table {
-    trans:intvector { -1846266016 }
-    typeOffsets:intvector { -15584, 0, -14400, 0 }
-    typeMap:bin { "01" }
-    links:intvector { 208, 218 }
-  } //Z#208
-  /* America/St_Vincent */ :table {
-    trans:intvector { -1830369304 }
-    typeOffsets:intvector { -14696, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#209
+  /* America/St_Kitts */ :int { 185 } //Z#206
+  /* America/St_Lucia */ :int { 185 } //Z#207
+  /* America/St_Thomas */ :int { 185 } //Z#208
+  /* America/St_Vincent */ :int { 185 } //Z#209
   /* America/Swift_Current */ :table {
     trans:intvector { -2030201320, -1632063600, -1615132800, -880210800, -765388800, -747241200, -732729600, -715791600, -702489600, -684342000, -671040000, -652892400, -639590400, -400086000, -384364800, -337186800, -321465600, -305737200, -292435200, -273682800, -260985600, 73472400 }
     typeOffsets:intvector { -25880, 0, -25200, 0, -25200, 3600, -21600, 0 }
@@ -1324,11 +1274,7 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
     links:intvector { 215, 379 }
   } //Z#215
-  /* America/Tortola */ :table {
-    trans:intvector { -1846266092 }
-    typeOffsets:intvector { -15508, 0, -14400, 0 }
-    typeMap:bin { "01" }
-  } //Z#216
+  /* America/Tortola */ :int { 185 } //Z#216
   /* America/Vancouver */ :table {
     transPre32:intvector { -1, 1581086444 }
     trans:intvector { -1632060000, -1615129200, -880207200, -765385200, -747237600, -732726000, -715788000, -702486000, -684338400, -671036400, -652888800, -639586800, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 136375200, 152096400, 167824800, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400, 1173607200, 1194166800 }
@@ -1339,7 +1285,7 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
     links:intvector { 217, 382 }
   } //Z#217
-  /* America/Virgin */ :int { 208 } //Z#218
+  /* America/Virgin */ :int { 185 } //Z#218
   /* America/Whitehorse */ :table {
     transPre32:intvector { -1, 2105969308 }
     trans:intvector { -1632056400, -1615125600, -1596978000, -1583164800, -880203600, -765381600, -147884400, -131554800, -110552400, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400, 1173607200, 1194166800 }
@@ -1393,24 +1339,17 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "010001" }
   } //Z#225
   /* Antarctica/Macquarie */ :table {
-    trans:intvector { -1861920000, -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000, 1238860800, 1254585600, 1270310400 }
+    transPre32:intvector { -1, 2080708096 }
+    trans:intvector { -1680508800, -1665392400, -1601719200, -687052800, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000, 1238860800, 1254585600, 1270310400 }
     typeOffsets:intvector { 0, 0, 36000, 0, 36000, 3600, 39600, 0 }
-    typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010203" }
+    typeMap:bin { "01020100010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010203" }
   } //Z#226
   /* Antarctica/Mawson */ :table {
     trans:intvector { -501206400, 1255809600 }
     typeOffsets:intvector { 0, 0, 18000, 0, 21600, 0 }
     typeMap:bin { "0201" }
   } //Z#227
-  /* Antarctica/McMurdo */ :table {
-    trans:intvector { -441849600, 152632800, 162309600, 183477600, 194968800, 215532000, 226418400, 246981600, 257868000, 278431200, 289317600, 309880800, 320767200, 341330400, 352216800, 372780000, 384271200, 404834400, 415720800, 436284000, 447170400, 467733600, 478620000, 499183200, 510069600, 530632800, 541519200, 562082400, 573573600, 594136800, 605023200, 623772000, 637682400, 655221600, 669132000, 686671200, 700581600, 718120800, 732636000, 749570400, 764085600, 781020000, 795535200, 812469600, 826984800, 844524000, 858434400, 875973600, 889884000, 907423200, 921938400, 938872800, 953388000, 970322400, 984837600, 1002376800, 1016287200, 1033826400, 1047736800, 1065276000, 1079791200, 1096725600, 1111240800, 1128175200, 1142690400, 1159624800, 1174140000, 1191074400, 1207404000, 1222524000 }
-    typeOffsets:intvector { 0, 0, 43200, 0, 43200, 3600 }
-    typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
-    finalRule { "NZAQ" }
-    finalRaw:int { 43200 }
-    finalYear:int { 2009 }
-    links:intvector { 228, 231 }
-  } //Z#228
+  /* Antarctica/McMurdo */ :int { 543 } //Z#228
   /* Antarctica/Palmer */ :table {
     trans:intvector { -157766400, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 389070000, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 545194800, 560923200, 574225200, 591768000, 605674800, 624427200, 637729200, 653457600, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 859690800, 876628800, 889930800, 906868800, 923194800, 939528000, 952830000, 971582400, 984279600, 1003032000, 1015729200, 1034481600, 1047178800, 1065931200, 1079233200, 1097380800, 1110682800, 1128830400, 1142132400, 1160884800, 1173582000, 1192334400, 1206846000, 1223784000, 1237086000, 1255233600, 1270350000, 1286683200, 1304823600, 1313899200, 1335668400, 1346558400 }
     typeOffsets:intvector { 0, 0, -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
@@ -1424,7 +1363,7 @@ zoneinfo64:table(nofallback) {
     typeOffsets:intvector { 0, 0, -10800, 0 }
     typeMap:bin { "01" }
   } //Z#230
-  /* Antarctica/South_Pole */ :int { 228 } //Z#231
+  /* Antarctica/South_Pole */ :int { 543 } //Z#231
   /* Antarctica/Syowa */ :table {
     trans:intvector { -407808000 }
     typeOffsets:intvector { 0, 0, 10800, 0 }
@@ -1447,12 +1386,9 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
   } //Z#236
   /* Asia/Amman */ :table {
-    trans:intvector { -1230776624, 108165600, 118270800, 136591200, 149806800, 168127200, 181342800, 199749600, 215643600, 231285600, 244501200, 262735200, 275950800, 481154400, 496962000, 512949600, 528670800, 544399200, 560120400, 575848800, 592174800, 610581600, 623624400, 641167200, 655074000, 671839200, 685918800, 702856800, 717973200, 733701600, 749422800, 765151200, 779662800, 797205600, 811116000, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 930780000, 938124000, 954367200, 970178400, 985816800, 1001628000, 1017352800, 1033077600, 1048802400, 1066946400, 1080252000, 1097791200, 1112306400, 1128031200, 1143756000, 1161900000, 1175205600, 1193349600, 1206655200, 1225404000, 1238104800, 1256853600, 1269554400, 1288303200, 1301608800, 1319752800, 1333058400, 1382652000 }
-    typeOffsets:intvector { 8624, 0, 7200, 0, 7200, 3600 }
-    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
-    finalRule { "Jordan" }
-    finalRaw:int { 7200 }
-    finalYear:int { 2014 }
+    trans:intvector { -1230776624, 108165600, 118270800, 136591200, 149806800, 168127200, 181342800, 199749600, 215643600, 231285600, 244501200, 262735200, 275950800, 481154400, 496962000, 512949600, 528670800, 544399200, 560120400, 575848800, 592174800, 610581600, 623624400, 641167200, 655074000, 671839200, 685918800, 702856800, 717973200, 733701600, 749422800, 765151200, 779662800, 797205600, 811116000, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 930780000, 938124000, 954367200, 970178400, 985816800, 1001628000, 1017352800, 1033077600, 1048802400, 1066946400, 1080252000, 1097791200, 1112306400, 1128031200, 1143756000, 1161900000, 1175205600, 1193349600, 1206655200, 1225404000, 1238104800, 1256853600, 1269554400, 1288303200, 1301608800, 1319752800, 1333058400, 1351202400 }
+    typeOffsets:intvector { 8624, 0, 7200, 0, 7200, 3600, 10800, 0 }
+    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010203" }
   } //Z#237
   /* Asia/Anadyr */ :table {
     trans:intvector { -1441194596, -1247572800, 354884400, 370692000, 386420400, 402231600, 417960000, 433767600, 449582400, 465314400, 481039200, 496764000, 512488800, 528213600, 543938400, 559663200, 575388000, 591112800, 606837600, 622562400, 638287200, 654616800, 670341600, 686070000, 695746800, 701780400, 717501600, 733240800, 748965600, 764690400, 780415200, 796140000, 811864800, 828194400, 846338400, 859644000, 877788000, 891093600, 909237600, 922543200, 941292000, 953992800, 972741600, 985442400, 1004191200, 1017496800, 1035640800, 1048946400, 1067090400, 1080396000, 1099144800, 1111845600, 1130594400, 1143295200, 1162044000, 1174744800, 1193493600, 1206799200, 1224943200, 1238248800, 1256392800, 1269698400, 1288450800, 1301151600 }
@@ -1571,9 +1507,12 @@ zoneinfo64:table(nofallback) {
   } //Z#260
   /* Asia/Gaza */ :table {
     transPre32:intvector { -1, 2109557424 }
-    trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1207000800, 1219957200, 1238104800, 1252018800, 1269640860, 1281474000, 1301738460, 1312146000, 1333058400, 1348178400 }
+    trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1219957200, 1238104800, 1252015200, 1269640860, 1281474000, 1301608860, 1312146000, 1333058400, 1348178400, 1364508000, 1380229200 }
     typeOffsets:intvector { 8272, 0, 7200, 0, 7200, 3600 }
-    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    finalRule { "Palestine" }
+    finalRaw:int { 7200 }
+    finalYear:int { 2014 }
   } //Z#261
   /* Asia/Harbin */ :table {
     trans:intvector { -1325492804, -1194078600, -946800000, -115894800, 325956600, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
@@ -1582,9 +1521,12 @@ zoneinfo64:table(nofallback) {
   } //Z#262
   /* Asia/Hebron */ :table {
     transPre32:intvector { -1, 2109557273 }
-    trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1207000800, 1220216400, 1238104800, 1252018800, 1269640860, 1281474000, 1301652060, 1312146000, 1314655200, 1317340800, 1333058400, 1348178400 }
+    trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1220216400, 1238104800, 1252015200, 1269554400, 1281474000, 1301608860, 1312146000, 1314655200, 1317330000, 1333058400, 1348178400, 1364508000, 1380229200 }
     typeOffsets:intvector { 8423, 0, 7200, 0, 7200, 3600 }
-    typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    finalRule { "Palestine" }
+    finalRaw:int { 7200 }
+    finalYear:int { 2014 }
   } //Z#263
   /* Asia/Ho_Chi_Minh */ :table {
     trans:intvector { -2005974400, -1855983920, -1819954800, -1220428800 }
@@ -1620,13 +1562,13 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "010201" }
   } //Z#270
   /* Asia/Jerusalem */ :table {
-    transPre32:intvector { -1, 1454818040 }
-    trans:intvector { -1641003640, -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -681962400, -673243200, -667962000, -652327200, -636426000, -622087200, -608947200, -591847200, -572486400, -558576000, -542851200, -527731200, -514425600, -490845600, -482986800, -459475200, -451537200, -428551200, -418262400, -400032000, -387428400, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 826840800, 842821200, 858895200, 874184400, 890344800, 905029200, 923011200, 936313200, 955670400, 970783200, 986770800, 1001282400, 1017356400, 1033941600, 1048806000, 1065132000, 1081292400, 1095804000, 1112313600, 1128812400, 1143763200, 1159657200, 1175212800, 1189897200, 1206662400, 1223161200, 1238112000, 1254006000, 1269561600, 1284246000, 1301616000, 1317510000, 1333065600, 1348354800, 1364515200, 1381014000, 1395964800, 1412463600, 1427414400, 1443913200, 1458864000, 1475362800, 1490313600, 1507417200, 1521763200, 1538866800, 1553817600, 1570316400, 1585267200, 1601766000, 1616716800, 1633215600, 1648166400, 1664665200, 1679616000, 1696719600, 1711670400, 1728169200, 1743120000, 1759618800, 1774569600, 1791068400, 1806019200, 1822604400, 1837468800, 1854572400 }
-    typeOffsets:intvector { 8456, 0, 7200, 0, 7200, 3600, 7200, 7200, 8440, 0 }
-    typeMap:bin { "0401020102010201020102010302010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    transPre32:intvector { -1, 1454818042 }
+    trans:intvector { -1641003640, -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -681962400, -673243200, -667962000, -652327200, -636426000, -622087200, -608947200, -591847200, -572486400, -558576000, -542851200, -527731200, -514425600, -490845600, -482986800, -459475200, -451537200, -428551200, -418262400, -400032000, -387428400, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 826840800, 842821200, 858895200, 874184400, 890344800, 905029200, 923011200, 936313200, 955670400, 970783200, 986770800, 1001282400, 1017356400, 1033941600, 1048806000, 1065132000, 1081292400, 1095804000, 1112313600, 1128812400, 1143763200, 1159657200, 1175212800, 1189897200, 1206662400, 1223161200, 1238112000, 1254006000, 1269561600, 1284246000, 1301616000, 1317510000, 1333065600, 1348354800, 1364515200, 1382828400 }
+    typeOffsets:intvector { 8454, 0, 7200, 0, 7200, 3600, 7200, 7200, 8440, 0 }
+    typeMap:bin { "0401020102010201020102010302010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
     finalRule { "Zion" }
     finalRaw:int { 7200 }
-    finalYear:int { 2029 }
+    finalYear:int { 2014 }
     links:intvector { 271, 315, 515 }
   } //Z#271
   /* Asia/Kabul */ :table {
@@ -2585,15 +2527,7 @@ zoneinfo64:table(nofallback) {
     finalRaw:int { 7200 }
     finalYear:int { 1997 }
   } //Z#480
-  /* Europe/Vaduz */ :table {
-    transPre32:intvector { -1, 1909720212 }
-    trans:intvector { 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 828234000, 846378000 }
-    typeOffsets:intvector { 2284, 0, 3600, 0, 3600, 3600 }
-    typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201" }
-    finalRule { "EU" }
-    finalRaw:int { 3600 }
-    finalYear:int { 1997 }
-  } //Z#481
+  /* Europe/Vaduz */ :int { 489 } //Z#481
   /* Europe/Vatican */ :int { 469 } //Z#482
   /* Europe/Vienna */ :table {
     transPre32:intvector { -1, 1872912175 }
@@ -2638,14 +2572,14 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 1997 }
   } //Z#488
   /* Europe/Zurich */ :table {
-    transPre32:intvector { -1, 467013248, -1, 1909720712 }
+    transPre32:intvector { -1, 619768448, -1, 1909720710 }
     trans:intvector { -904435200, -891129600, -872985600, -859680000, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 828234000, 846378000 }
-    typeOffsets:intvector { 2048, 0, 1784, 0, 3600, 0, 3600, 3600 }
+    typeOffsets:intvector { 2048, 0, 1786, 0, 3600, 0, 3600, 3600 }
     typeMap:bin { "0102030203020302030203020302030203020302030203020302030203020302030203020302" }
     finalRule { "EU" }
     finalRaw:int { 3600 }
     finalYear:int { 1997 }
-    links:intvector { 441, 489 }
+    links:intvector { 441, 481, 489 }
   } //Z#489
   /* Factory */ :table {
     typeOffsets:intvector { 0, 0 }
@@ -2788,7 +2722,7 @@ zoneinfo64:table(nofallback) {
     finalRule { "NZ" }
     finalRaw:int { 43200 }
     finalYear:int { 2009 }
-    links:intvector { 532, 533, 543 }
+    links:intvector { 228, 231, 532, 533, 543 }
   } //Z#543
   /* Pacific/Chatham */ :table {
     trans:intvector { -410271228, 152632800, 162309600, 183477600, 194968800, 215532000, 226418400, 246981600, 257868000, 278431200, 289317600, 309880800, 320767200, 341330400, 352216800, 372780000, 384271200, 404834400, 415720800, 436284000, 447170400, 467733600, 478620000, 499183200, 510069600, 530632800, 541519200, 562082400, 573573600, 594136800, 605023200, 623772000, 637682400, 655221600, 669132000, 686671200, 700581600, 718120800, 732636000, 749570400, 764085600, 781020000, 795535200, 812469600, 826984800, 844524000, 858434400, 875973600, 889884000, 907423200, 921938400, 938872800, 953388000, 970322400, 984837600, 1002376800, 1016287200, 1033826400, 1047736800, 1065276000, 1079791200, 1096725600, 1111240800, 1128175200, 1142690400, 1159624800, 1174140000, 1191074400, 1207404000, 1222524000 }
@@ -2871,11 +2805,9 @@ zoneinfo64:table(nofallback) {
     trans:intvector { -1157283000, -1155436200, -880198200, -765376200, -712150200 }
     typeOffsets:intvector { -37886, 0, -37800, 0, -37800, 3600, -36000, 0 }
     typeMap:bin { "010201020103" }
-    links:intvector { 556, 611 }
+    links:intvector { 556, 557, 611 }
   } //Z#556
-  /* Pacific/Johnston */ :table {
-    typeOffsets:intvector { -36000, 0 }
-  } //Z#557
+  /* Pacific/Johnston */ :int { 556 } //Z#557
   /* Pacific/Kiritimati */ :table {
     transPre32:intvector { -1, 2117552256 }
     trans:intvector { 307622400, 788954400 }
@@ -3343,65 +3275,59 @@ zoneinfo64:table(nofallback) {
     2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
   } //_#13
   Fiji:intvector {
-    9, 18, -1, 7200, 0, 0, 18, -1, 10800, 0, 3600
+    9, 21, -1, 7200, 0, 0, 18, -1, 10800, 0, 3600
   } //_#14
   Haiti:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
   } //_#15
-  Jordan:intvector {
-    2, -31, -5, 86400, 0, 9, -31, -6, 0, 1, 3600
-  } //_#16
   LH:intvector {
     9, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 1800
-  } //_#17
+  } //_#16
   Lebanon:intvector {
     2, -31, -1, 0, 0, 9, -31, -1, 0, 0, 3600
-  } //_#18
+  } //_#17
   Libya:intvector {
     2, -31, -6, 3600, 0, 9, -31, -6, 7200, 0, 3600
-  } //_#19
+  } //_#18
   Mexico:intvector {
     3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#20
-  Morocco:intvector {
-    3, -30, -1, 7200, 0, 8, -30, -1, 10800, 0, 3600
-  } //_#21
+  } //_#19
   NZ:intvector {
     8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
-  } //_#22
-  NZAQ:intvector {
-    8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
-  } //_#23
+  } //_#20
   Namibia:intvector {
     8, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 3600
-  } //_#24
+  } //_#21
+  Palestine:intvector {
+    2, -31, -5, 86400, 0, 8, 21, -6, 0, 0, 3600
+  } //_#22
   Para:intvector {
-    9, 1, -1, 0, 0, 3, 8, -1, 0, 0, 3600
-  } //_#25
+    9, 1, -1, 0, 0, 2, 22, -1, 0, 0, 3600
+  } //_#23
   Syria:intvector {
     2, -31, -6, 0, 0, 9, -31, -6, 0, 0, 3600
-  } //_#26
+  } //_#24
   SystemV:intvector {
     3, -30, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#27
+  } //_#25
   TC:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#28
+  } //_#26
   Thule:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#29
+  } //_#27
   US:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#30
+  } //_#28
   Uruguay:intvector {
     9, 1, -1, 7200, 0, 2, 8, -1, 7200, 0, 3600
-  } //_#31
+  } //_#29
   WS:intvector {
     8, -30, -1, 10800, 0, 3, 1, -1, 14400, 0, 3600
-  } //_#32
+  } //_#30
   Zion:intvector {
-    2, 23, -6, 7200, 0, 9, 2, -1, 7200, 0, 3600
-  } //_#33
+    2, 23, -6, 7200, 0, 9, -31, -1, 7200, 0, 3600
+  } //_#31
  }
  Regions:array {
   "AU", //Z#0 ACT
@@ -3573,7 +3499,7 @@ zoneinfo64:table(nofallback) {
   "CA", //Z#166 America/Moncton
   "MX", //Z#167 America/Monterrey
   "UY", //Z#168 America/Montevideo
-  "CA", //Z#169 America/Montreal
+  "001",//Z#169 America/Montreal
   "MS", //Z#170 America/Montserrat
   "BS", //Z#171 America/Nassau
   "US", //Z#172 America/New_York
@@ -3622,7 +3548,7 @@ zoneinfo64:table(nofallback) {
   "CA", //Z#215 America/Toronto
   "VG", //Z#216 America/Tortola
   "CA", //Z#217 America/Vancouver
-  "VI", //Z#218 America/Virgin
+  "TT", //Z#218 America/Virgin
   "CA", //Z#219 America/Whitehorse
   "CA", //Z#220 America/Winnipeg
   "US", //Z#221 America/Yakutat
@@ -3630,12 +3556,12 @@ zoneinfo64:table(nofallback) {
   "AQ", //Z#223 Antarctica/Casey
   "AQ", //Z#224 Antarctica/Davis
   "AQ", //Z#225 Antarctica/DumontDUrville
-  "AQ", //Z#226 Antarctica/Macquarie
+  "AU", //Z#226 Antarctica/Macquarie
   "AQ", //Z#227 Antarctica/Mawson
   "AQ", //Z#228 Antarctica/McMurdo
   "AQ", //Z#229 Antarctica/Palmer
   "AQ", //Z#230 Antarctica/Rothera
-  "AQ", //Z#231 Antarctica/South_Pole
+  "NZ", //Z#231 Antarctica/South_Pole
   "AQ", //Z#232 Antarctica/Syowa
   "AQ", //Z#233 Antarctica/Vostok
   "SJ", //Z#234 Arctic/Longyearbyen
index e64264cb51f33312797b5a03013d77f5da237066..8e0fa99b8eb27e4c7f20531f9571a7e07f0a566b 100644 (file)
@@ -1954,11 +1954,24 @@ void TimeZoneTest::TestCanonicalID() {
         const char *alias;
         const char *zone;
     } excluded1[] = {
+        {"Africa/Khartoum", "Africa/Juba"},
         {"America/Shiprock", "America/Denver"}, // America/Shiprock is defined as a Link to America/Denver in tzdata
-        {"America/Marigot", "America/Guadeloupe"}, 
-        {"America/St_Barthelemy", "America/Guadeloupe"},
-        {"America/Lower_Princes", "America/Curacao"},
-        {"America/Kralendijk", "America/Curacao"},
+        {"America/Dominica", "America/Anguilla"},
+        {"America/Grenada", "America/Anguilla"},
+        {"America/Guadeloupe", "America/Anguilla"},
+        {"America/Marigot", "America/Anguilla"},
+        {"America/Montserrat", "America/Anguilla"},
+        {"America/Port_of_Spain", "America/Anguilla"},
+        {"America/St_Barthelemy", "America/Anguilla"},
+        {"America/St_Kitts", "America/Anguilla"},
+        {"America/St_Lucia", "America/Anguilla"},
+        {"America/St_Thomas", "America/Anguilla"},
+        {"America/St_Vincent", "America/Anguilla"},
+        {"America/Tortola", "America/Anguilla"},
+        {"America/Virgin", "America/Anguilla"},
+        {"America/Curacao", "America/Aruba"},
+        {"America/Kralendijk", "America/Aruba"},
+        {"America/Lower_Princes", "America/Aruba"},
         {"Antarctica/South_Pole", "Antarctica/McMurdo"},
         {"Atlantic/Jan_Mayen", "Europe/Oslo"},
         {"Arctic/Longyearbyen", "Europe/Oslo"},
@@ -1975,6 +1988,9 @@ void TimeZoneTest::TestCanonicalID() {
         {"Europe/Mariehamn", "Europe/Helsinki"},
         {"Europe/San_Marino", "Europe/Rome"},
         {"Europe/Vatican", "Europe/Rome"},
+        {"Europe/Vaduz", "Europe/Zurich"},
+        {"Pacific/Auckland", "Antarctica/McMurdo"},
+        {"Pacific/Johnston", "Pacific/Honolulu"},
         {0, 0}
     };
 
index f3dc81c1347f482b699cb4e9e9d2445dc6eb260f..2ae1c3343944acfffa275270c051b7b0a75302e3 100644 (file)
@@ -2222,34 +2222,64 @@ wp = ecpyalloc(_("no POSIX environment variable for zone"));
                                        }
                                } else if (rp->r_hiyear >= finalRuleYear) {
                                        /* There might be an overriding non-max rule
-                                        * applied to a specific year after the max rule's
-                                        * start year. In this case, we need change the
-                                        * start year of the final rules to the following
-                                        * year. */
+                                        * to be applied to a specific year after one of
+                                        * max rule's start year. For example,
+                                        *
+                                        * Rule Foo 2010 max ...
+                                        * Rule Foo 2015 only ...
+                                        *
+                                        * In this case, we need to change the start year of
+                                        * the final (max) rules to the next year. */
                                        finalRuleYear = rp->r_hiyear + 1;
+
+                                       /* When above adjustment is done, max_year might need
+                                        * to be adjusted, so the final rule will be properly
+                                        * evaluated and emitted by the later code block.
+                                        *
+                                        * Note: This may push the start year of the final
+                                        * rules ahead by 1 year unnecessarily. For example,
+                                        * If there are two rules, non-max rule and max rule
+                                        * starting in the same year, such as
+                                        *
+                                        * Rule Foo 2010 only ....
+                                        * Rule Foo 2010 max ....
+                                        *
+                                        * In this case, the final (max) rule actually starts
+                                        * in 2010, instead of 2010. We could make this tool
+                                        * more intelligent to detect such situation. But pushing
+                                        * final rule start year to 1 year ahead (in the worst case)
+                                        * will just populate a few extra transitions, and it still
+                                        * works fine. So for now, we're not trying to put additional
+                                        * logic to optimize the case.
+                                        */
+                                       if (max_year < finalRuleYear) {
+                                               max_year = finalRuleYear;
+                                       }
                                }
                        }
-                       if (finalRule1 != NULL && finalRule2 == NULL) {
-                               error("only one max rule found (ICU)");
-                               exit(EXIT_FAILURE);
-                       }
                        if (finalRule1 != NULL) {
-                               if (finalRule1->r_stdoff == finalRule2->r_stdoff) {
-                                       /* America/Resolute in 2009a uses a pair of rules
-                                        * which does not change the offset.  ICU ignores
-                                        * such rules without actual time transitions. */
+                               if (finalRule2 == NULL) {
+                                       warning("only one max rule found (ICU)");
                                        finalRuleYear = finalRuleIndex = -1;
-                                       finalRule1 = finalRule2 = NULL; 
+                                       finalRule1 = NULL;
                                } else {
-                                       /* Swap if necessary so finalRule1 occurs before
-                                        * finalRule2 */
-                                       if (finalRule1->r_month > finalRule2->r_month) {
-                                               const struct rule* t = finalRule1;
-                                               finalRule1 = finalRule2;
-                                               finalRule2 = t;
+                                       if (finalRule1->r_stdoff == finalRule2->r_stdoff) {
+                                               /* America/Resolute in 2009a uses a pair of rules
+                                                * which does not change the offset.  ICU ignores
+                                                * such rules without actual time transitions. */
+                                               finalRuleYear = finalRuleIndex = -1;
+                                               finalRule1 = finalRule2 = NULL; 
+                                       } else {
+                                               /* Swap if necessary so finalRule1 occurs before
+                                                * finalRule2 */
+                                               if (finalRule1->r_month > finalRule2->r_month) {
+                                                       const struct rule* t = finalRule1;
+                                                       finalRule1 = finalRule2;
+                                                       finalRule2 = t;
+                                               }
+                                               /* Add final rule to our list */
+                                               finalRuleIndex = add_icu_final_rules(finalRule1, finalRule2);
                                        }
-                                       /* Add final rule to our list */
-                                       finalRuleIndex = add_icu_final_rules(finalRule1, finalRule2);
                                }
                        }
                }
@@ -2369,16 +2399,12 @@ wp = ecpyalloc(_("no POSIX environment variable for zone"));
                                         * transition defined by the final rule.  Otherwise
                                         * we may see unexpected offset shift at the
                                         * begining of the year when the final rule takes
-                                        * effect. */
-
-                                       /* ICU currently can support signed int32 transition
-                                        * times.  Thus, the transitions in year 2038 may be
-                                        * truncated.  At this moment (tzdata2008g), only
-                                        * Rule Brazil is impacted by this limitation, because
-                                        * the final set of rules are starting in 2038.  Although
-                                        * this code put the first couple of transitions populated
-                                        * by the final rules, they might be dropped off when
-                                        * collecting transition times by tz2icu. */
+                                        * effect.
+                                        *
+                                        * Note: This may results some 64bit second transitions
+                                        * at the very end (year 2038). ICU 4.2 or older releases
+                                        * cannot handle 64bit second transitions and they are
+                                        * dropped from zoneinfo.txt. */
                                        emit_icu_zone(icuFile,
                                                        zpfirst->z_name, zp->z_gmtoff,
                                                        rp, finalRuleIndex, year + 1);