All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squarespace.cldr.dates._CalendarUtils Maven / Gradle / Ivy

//
//
// AUTO-GENERATED CLASS - DO NOT EDIT
//
//
package com.squarespace.cldr.dates;

import java.lang.String;
import java.time.ZonedDateTime;
import java.util.HashMap;
import java.util.Map;

public class _CalendarUtils {
  protected static final Map metazones = new HashMap() { {

    put("Asia/Aden", new MetaZone("Asia/Aden",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", -1, -1)} ));

    put("America/Cuiaba", new MetaZone("America/Cuiaba",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Amazon", -1, -1)} ));

    put("Africa/Nairobi", new MetaZone("Africa/Nairobi",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("America/Marigot", new MetaZone("America/Marigot",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Aqtau", new MetaZone("Asia/Aqtau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Western", /* 2004-10-30 22:00 */ 1099173600, -1),
        new MetaZone.Entry("Aqtau", /* 1991-12-15 19:00 */ 692823600, /* 2004-10-30 22:00 */ 1099173600),
        new MetaZone.Entry("Shevchenko", -1, /* 1991-12-15 19:00 */ 692823600)} ));

    put("Pacific/Kwajalein", new MetaZone("Pacific/Kwajalein",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Marshall_Islands", /* 1993-08-20 12:00 */ 745848000, -1),
        new MetaZone.Entry("Kwajalein", -1, /* 1993-08-20 12:00 */ 745848000)} ));

    put("America/El_Salvador", new MetaZone("America/El_Salvador",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Asia/Pontianak", new MetaZone("Asia/Pontianak",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indonesia_Western", /* 1987-12-31 16:00 */ 567964800, -1),
        new MetaZone.Entry("Indonesia_Central", -1, /* 1987-12-31 16:00 */ 567964800)} ));

    put("Africa/Cairo", new MetaZone("Africa/Cairo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Pacific/Pago_Pago", new MetaZone("Pacific/Pago_Pago",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Samoa", /* 1983-10-30 12:00 */ 436363200, -1),
        new MetaZone.Entry("Bering", -1, /* 1983-10-30 12:00 */ 436363200)} ));

    put("Africa/Mbabane", new MetaZone("Africa/Mbabane",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Southern", -1, -1)} ));

    put("Asia/Kuching", new MetaZone("Asia/Kuching",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Malaysia", /* 1981-12-31 16:00 */ 378662400, -1),
        new MetaZone.Entry("Borneo", -1, /* 1981-12-31 16:00 */ 378662400)} ));

    put("Pacific/Honolulu", new MetaZone("Pacific/Honolulu",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Hawaii_Aleutian", /* 1983-10-30 11:00 */ 436359600, -1),
        new MetaZone.Entry("Alaska_Hawaii", -1, /* 1983-10-30 11:00 */ 436359600)} ));

    put("Pacific/Rarotonga", new MetaZone("Pacific/Rarotonga",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Cook", -1, -1)} ));

    put("America/Guatemala", new MetaZone("America/Guatemala",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Australia/Hobart", new MetaZone("Australia/Hobart",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("Europe/London", new MetaZone("Europe/London",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1971-10-31 02:00 */ 57722400, -1),
        new MetaZone.Entry("British", -1, /* 1971-10-31 02:00 */ 57722400)} ));

    put("America/Belize", new MetaZone("America/Belize",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("America/Panama", new MetaZone("America/Panama",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("America/Managua", new MetaZone("America/Managua",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 1997-01-01 05:00 */ 852094800, -1),
        new MetaZone.Entry("America_Eastern", /* 1993-01-01 06:00 */ 725868000, /* 1997-01-01 05:00 */ 852094800),
        new MetaZone.Entry("America_Central", /* 1992-09-24 05:00 */ 717310800, /* 1993-01-01 06:00 */ 725868000),
        new MetaZone.Entry("America_Eastern", /* 1992-01-01 10:00 */ 694260000, /* 1992-09-24 05:00 */ 717310800),
        new MetaZone.Entry("America_Central", /* 1975-02-16 05:00 */ 161758800, /* 1992-01-01 10:00 */ 694260000),
        new MetaZone.Entry("America_Eastern", /* 1973-05-01 06:00 */ 105084000, /* 1975-02-16 05:00 */ 161758800),
        new MetaZone.Entry("America_Central", -1, /* 1973-05-01 06:00 */ 105084000)} ));

    put("America/Indiana/Petersburg", new MetaZone("America/Indiana/Petersburg",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2007-11-04 07:00 */ 1194159600, -1),
        new MetaZone.Entry("America_Central", /* 2006-04-02 07:00 */ 1143961200, /* 2007-11-04 07:00 */ 1194159600),
        new MetaZone.Entry("America_Eastern", /* 1977-10-30 07:00 */ 247042800, /* 2006-04-02 07:00 */ 1143961200),
        new MetaZone.Entry("America_Central", -1, /* 1977-10-30 07:00 */ 247042800)} ));

    put("Asia/Yerevan", new MetaZone("Asia/Yerevan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Armenia", /* 1991-09-22 20:00 */ 685569600, -1),
        new MetaZone.Entry("Yerevan", -1, /* 1991-09-22 20:00 */ 685569600)} ));

    put("Europe/Brussels", new MetaZone("Europe/Brussels",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Europe/Warsaw", new MetaZone("Europe/Warsaw",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Chicago", new MetaZone("America/Chicago",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Europe/Jersey", new MetaZone("Europe/Jersey",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1971-10-31 02:00 */ 57722400, -1),
        new MetaZone.Entry("British", -1, /* 1971-10-31 02:00 */ 57722400)} ));

    put("America/Tegucigalpa", new MetaZone("America/Tegucigalpa",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Europe/Istanbul", new MetaZone("Europe/Istanbul",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Turkey", /* 2016-09-06 21:00 */ 1473195600, -1),
        new MetaZone.Entry("Europe_Eastern", /* 1985-04-19 21:00 */ 482792400, /* 2016-09-06 21:00 */ 1473195600),
        new MetaZone.Entry("Turkey", /* 1978-10-14 21:00 */ 277246800, /* 1985-04-19 21:00 */ 482792400),
        new MetaZone.Entry("Europe_Eastern", -1, /* 1978-10-14 21:00 */ 277246800)} ));

    put("America/Eirunepe", new MetaZone("America/Eirunepe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Acre", /* 2013-11-10 04:00 */ 1384056000, -1),
        new MetaZone.Entry("Amazon", /* 2008-06-24 05:00 */ 1214283600, /* 2013-11-10 04:00 */ 1384056000),
        new MetaZone.Entry("Acre", -1, /* 2008-06-24 05:00 */ 1214283600)} ));

    put("America/Miquelon", new MetaZone("America/Miquelon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Pierre_Miquelon", /* 1980-05-01 04:00 */ 326001600, -1),
        new MetaZone.Entry("Atlantic", -1, /* 1980-05-01 04:00 */ 326001600)} ));

    put("Europe/Luxembourg", new MetaZone("Europe/Luxembourg",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Europe/Zaporozhye", new MetaZone("Europe/Zaporozhye",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1991-03-30 23:00 */ 670374000, -1),
        new MetaZone.Entry("Moscow", -1, /* 1991-03-30 23:00 */ 670374000)} ));

    put("Atlantic/St_Helena", new MetaZone("Atlantic/St_Helena",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Europe/Guernsey", new MetaZone("Europe/Guernsey",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1971-10-31 02:00 */ 57722400, -1),
        new MetaZone.Entry("British", -1, /* 1971-10-31 02:00 */ 57722400)} ));

    put("America/Grand_Turk", new MetaZone("America/Grand_Turk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", /* 2015-11-01 06:00 */ 1446357600, -1),
        new MetaZone.Entry("America_Eastern", -1, /* 2015-11-01 06:00 */ 1446357600)} ));

    put("Asia/Samarkand", new MetaZone("Asia/Samarkand",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Uzbekistan", /* 1991-08-31 18:00 */ 683661600, -1),
        new MetaZone.Entry("Samarkand", /* 1982-03-31 18:00 */ 386445600, /* 1991-08-31 18:00 */ 683661600),
        new MetaZone.Entry("Tashkent", /* 1981-09-30 18:00 */ 370720800, /* 1982-03-31 18:00 */ 386445600),
        new MetaZone.Entry("Samarkand", -1, /* 1981-09-30 18:00 */ 370720800)} ));

    put("Asia/Phnom_Penh", new MetaZone("Asia/Phnom_Penh",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indochina", -1, -1)} ));

    put("Africa/Kigali", new MetaZone("Africa/Kigali",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("Asia/Almaty", new MetaZone("Asia/Almaty",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Eastern", /* 2004-10-30 20:00 */ 1099166400, -1),
        new MetaZone.Entry("Almaty", -1, /* 2004-10-30 20:00 */ 1099166400)} ));

    put("Asia/Dubai", new MetaZone("Asia/Dubai",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Gulf", -1, -1)} ));

    put("Europe/Isle_of_Man", new MetaZone("Europe/Isle_of_Man",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1971-10-31 02:00 */ 57722400, -1),
        new MetaZone.Entry("British", -1, /* 1971-10-31 02:00 */ 57722400)} ));

    put("America/Araguaina", new MetaZone("America/Araguaina",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("Asia/Novosibirsk", new MetaZone("Asia/Novosibirsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Novosibirsk", -1, -1)} ));

    put("America/Argentina/Salta", new MetaZone("America/Argentina/Salta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 1991-10-20 04:00 */ 687931200, -1),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-03 02:00 */ 667965600)} ));

    put("Africa/Tunis", new MetaZone("Africa/Tunis",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Pacific/Fakaofo", new MetaZone("Pacific/Fakaofo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Tokelau", -1, -1)} ));

    put("Africa/Tripoli", new MetaZone("Africa/Tripoli",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 2013-10-25 00:00 */ 1382659200, -1),
        new MetaZone.Entry("Europe_Central", /* 2012-11-10 00:00 */ 1352505600, /* 2013-10-25 00:00 */ 1382659200),
        new MetaZone.Entry("Europe_Eastern", /* 1997-10-03 22:00 */ 875916000, /* 2012-11-10 00:00 */ 1352505600),
        new MetaZone.Entry("Europe_Central", /* 1996-09-29 22:00 */ 844034400, /* 1997-10-03 22:00 */ 875916000),
        new MetaZone.Entry("Europe_Eastern", /* 1990-05-03 23:00 */ 641775600, /* 1996-09-29 22:00 */ 844034400),
        new MetaZone.Entry("Europe_Central", /* 1981-12-31 22:00 */ 378684000, /* 1990-05-03 23:00 */ 641775600),
        new MetaZone.Entry("Europe_Eastern", -1, /* 1981-12-31 22:00 */ 378684000)} ));

    put("Africa/Banjul", new MetaZone("Africa/Banjul",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Indian/Comoro", new MetaZone("Indian/Comoro",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Pacific/Port_Moresby", new MetaZone("Pacific/Port_Moresby",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Papua_New_Guinea", -1, -1)} ));

    put("Antarctica/Syowa", new MetaZone("Antarctica/Syowa",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Syowa", -1, -1)} ));

    put("Indian/Reunion", new MetaZone("Indian/Reunion",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Reunion", -1, -1)} ));

    put("Pacific/Palau", new MetaZone("Pacific/Palau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Palau", -1, -1)} ));

    put("Europe/Kaliningrad", new MetaZone("Europe/Kaliningrad",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 2014-10-25 23:00 */ 1414278000, -1),
        new MetaZone.Entry("Europe_Further_Eastern", /* 2011-03-27 00:00 */ 1301184000, /* 2014-10-25 23:00 */ 1414278000),
        new MetaZone.Entry("Europe_Eastern", /* 1989-03-25 23:00 */ 606870000, /* 2011-03-27 00:00 */ 1301184000),
        new MetaZone.Entry("Moscow", -1, /* 1989-03-25 23:00 */ 606870000)} ));

    put("America/Montevideo", new MetaZone("America/Montevideo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Uruguay", -1, -1)} ));

    put("Africa/Windhoek", new MetaZone("Africa/Windhoek",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", /* 1994-04-02 22:00 */ 765324000, -1),
        new MetaZone.Entry("Africa_Central", /* 1990-03-20 22:00 */ 637970400, /* 1994-04-02 22:00 */ 765324000),
        new MetaZone.Entry("Africa_Southern", -1, /* 1990-03-20 22:00 */ 637970400)} ));

    put("Asia/Karachi", new MetaZone("Asia/Karachi",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Pakistan", /* 1971-03-25 19:00 */ 38775600, -1),
        new MetaZone.Entry("Karachi", -1, /* 1971-03-25 19:00 */ 38775600)} ));

    put("Africa/Mogadishu", new MetaZone("Africa/Mogadishu",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Australia/Perth", new MetaZone("Australia/Perth",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Western", -1, -1)} ));

    put("Etc/GMT", new MetaZone("Etc/GMT",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Asia/Chita", new MetaZone("Asia/Chita",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Yakutsk", /* 2016-03-26 18:00 */ 1459015200, -1),
        new MetaZone.Entry("Irkutsk", /* 2014-10-25 16:00 */ 1414252800, /* 2016-03-26 18:00 */ 1459015200),
        new MetaZone.Entry("Yakutsk", -1, /* 2014-10-25 16:00 */ 1414252800)} ));

    put("Pacific/Easter", new MetaZone("Pacific/Easter",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Easter", -1, -1)} ));

    put("Antarctica/Davis", new MetaZone("Antarctica/Davis",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Davis", -1, -1)} ));

    put("Antarctica/McMurdo", new MetaZone("Antarctica/McMurdo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("New_Zealand", -1, -1)} ));

    put("America/Manaus", new MetaZone("America/Manaus",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Amazon", -1, -1)} ));

    put("Africa/Freetown", new MetaZone("Africa/Freetown",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Europe/Bucharest", new MetaZone("Europe/Bucharest",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Asia/Macau", new MetaZone("Asia/Macau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("China", /* 1999-12-19 16:00 */ 945619200, -1),
        new MetaZone.Entry("Macau", -1, /* 1999-12-19 16:00 */ 945619200)} ));

    put("Europe/Malta", new MetaZone("Europe/Malta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Pacific/Tahiti", new MetaZone("Pacific/Tahiti",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Tahiti", -1, -1)} ));

    put("Africa/Asmera", new MetaZone("Africa/Asmera",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Europe/Busingen", new MetaZone("Europe/Busingen",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Argentina/Rio_Gallegos", new MetaZone("America/Argentina/Rio_Gallegos",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-06-20 04:00 */ 1087704000, -1),
        new MetaZone.Entry("Argentina_Western", /* 2004-06-01 03:00 */ 1086058800, /* 2004-06-20 04:00 */ 1087704000),
        new MetaZone.Entry("Argentina", -1, /* 2004-06-01 03:00 */ 1086058800)} ));

    put("Africa/Malabo", new MetaZone("Africa/Malabo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Europe/Skopje", new MetaZone("Europe/Skopje",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Catamarca", new MetaZone("America/Catamarca",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-06-20 04:00 */ 1087704000, -1),
        new MetaZone.Entry("Argentina_Western", /* 2004-06-01 03:00 */ 1086058800, /* 2004-06-20 04:00 */ 1087704000),
        new MetaZone.Entry("Argentina", /* 1991-10-20 04:00 */ 687931200, /* 2004-06-01 03:00 */ 1086058800),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-03 02:00 */ 667965600)} ));

    put("America/Godthab", new MetaZone("America/Godthab",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Greenland_Western", -1, -1)} ));

    put("Europe/Sarajevo", new MetaZone("Europe/Sarajevo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Africa/Lagos", new MetaZone("Africa/Lagos",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("America/Cordoba", new MetaZone("America/Cordoba",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 1991-10-20 04:00 */ 687931200, -1),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-03 02:00 */ 667965600)} ));

    put("Europe/Rome", new MetaZone("Europe/Rome",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Indian/Mauritius", new MetaZone("Indian/Mauritius",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mauritius", -1, -1)} ));

    put("America/Regina", new MetaZone("America/Regina",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("America/Dawson_Creek", new MetaZone("America/Dawson_Creek",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", /* 1972-08-30 09:00 */ 84013200, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 1972-08-30 09:00 */ 84013200)} ));

    put("Africa/Algiers", new MetaZone("Africa/Algiers",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", /* 1981-05-01 00:00 */ 357523200, -1),
        new MetaZone.Entry("Europe_Western", /* 1979-10-25 23:00 */ 309740400, /* 1981-05-01 00:00 */ 357523200),
        new MetaZone.Entry("Europe_Central", /* 1977-10-20 23:00 */ 246236400, /* 1979-10-25 23:00 */ 309740400),
        new MetaZone.Entry("Europe_Western", -1, /* 1977-10-20 23:00 */ 246236400)} ));

    put("Europe/Mariehamn", new MetaZone("Europe/Mariehamn",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("America/St_Johns", new MetaZone("America/St_Johns",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Newfoundland", -1, -1)} ));

    put("America/St_Thomas", new MetaZone("America/St_Thomas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Europe/Zurich", new MetaZone("Europe/Zurich",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Anguilla", new MetaZone("America/Anguilla",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Dili", new MetaZone("Asia/Dili",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("East_Timor", /* 2000-09-16 16:00 */ 969120000, -1),
        new MetaZone.Entry("Indonesia_Central", /* 1976-05-02 15:00 */ 199897200, /* 2000-09-16 16:00 */ 969120000),
        new MetaZone.Entry("East_Timor", -1, /* 1976-05-02 15:00 */ 199897200)} ));

    put("America/Denver", new MetaZone("America/Denver",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("Africa/Bamako", new MetaZone("Africa/Bamako",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Europe/Saratov", new MetaZone("Europe/Saratov",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 1992-03-28 22:00 */ 701820000, /* 2016-12-03 23:00 */ 1480806000)} ));

    put("Pacific/Wallis", new MetaZone("Pacific/Wallis",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Wallis", -1, -1)} ));

    put("Europe/Gibraltar", new MetaZone("Europe/Gibraltar",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Africa/Conakry", new MetaZone("Africa/Conakry",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Africa/Lubumbashi", new MetaZone("Africa/Lubumbashi",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("America/Havana", new MetaZone("America/Havana",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Cuba", -1, -1)} ));

    put("Asia/Choibalsan", new MetaZone("Asia/Choibalsan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Choibalsan", /* 1983-03-31 16:00 */ 417974400, -1),
        new MetaZone.Entry("Mongolia", -1, /* 1983-03-31 16:00 */ 417974400)} ));

    put("Asia/Omsk", new MetaZone("Asia/Omsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Omsk", -1, -1)} ));

    put("Europe/Vaduz", new MetaZone("Europe/Vaduz",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Asia/Dhaka", new MetaZone("Asia/Dhaka",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Bangladesh", /* 1971-03-25 18:00 */ 38772000, -1),
        new MetaZone.Entry("Dacca", -1, /* 1971-03-25 18:00 */ 38772000)} ));

    put("America/Barbados", new MetaZone("America/Barbados",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Atlantic/Cape_Verde", new MetaZone("Atlantic/Cape_Verde",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Cape_Verde", -1, -1)} ));

    put("Asia/Yekaterinburg", new MetaZone("Asia/Yekaterinburg",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Yekaterinburg", /* 1992-01-18 22:00 */ 695772000, -1),
        new MetaZone.Entry("Sverdlovsk", -1, /* 1992-01-18 22:00 */ 695772000)} ));

    put("America/Louisville", new MetaZone("America/Louisville",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 1974-10-27 07:00 */ 152089200, -1),
        new MetaZone.Entry("America_Central", /* 1974-01-06 07:00 */ 126687600, /* 1974-10-27 07:00 */ 152089200),
        new MetaZone.Entry("America_Eastern", -1, /* 1974-01-06 07:00 */ 126687600)} ));

    put("Pacific/Johnston", new MetaZone("Pacific/Johnston",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Hawaii_Aleutian", /* 1983-10-30 11:00 */ 436359600, -1),
        new MetaZone.Entry("Alaska_Hawaii", -1, /* 1983-10-30 11:00 */ 436359600)} ));

    put("Pacific/Chatham", new MetaZone("Pacific/Chatham",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chatham", -1, -1)} ));

    put("Europe/Ljubljana", new MetaZone("Europe/Ljubljana",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Sao_Paulo", new MetaZone("America/Sao_Paulo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("Asia/Jayapura", new MetaZone("Asia/Jayapura",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indonesia_Eastern", -1, -1)} ));

    put("America/Curacao", new MetaZone("America/Curacao",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Dushanbe", new MetaZone("Asia/Dushanbe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Tajikistan", /* 1991-09-08 21:00 */ 684363600, -1),
        new MetaZone.Entry("Dushanbe", -1, /* 1991-09-08 21:00 */ 684363600)} ));

    put("America/Guyana", new MetaZone("America/Guyana",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Guyana", -1, -1)} ));

    put("America/Guayaquil", new MetaZone("America/Guayaquil",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Ecuador", -1, -1)} ));

    put("America/Martinique", new MetaZone("America/Martinique",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Europe/Berlin", new MetaZone("Europe/Berlin",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Europe/Moscow", new MetaZone("Europe/Moscow",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 1992-01-19 00:00 */ 695779200, -1),
        new MetaZone.Entry("Europe_Eastern", /* 1991-03-30 23:00 */ 670374000, /* 1992-01-19 00:00 */ 695779200),
        new MetaZone.Entry("Moscow", -1, /* 1991-03-30 23:00 */ 670374000)} ));

    put("Europe/Chisinau", new MetaZone("Europe/Chisinau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1990-05-05 21:00 */ 641941200, -1),
        new MetaZone.Entry("Moscow", -1, /* 1990-05-05 21:00 */ 641941200)} ));

    put("America/Puerto_Rico", new MetaZone("America/Puerto_Rico",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("America/Rankin_Inlet", new MetaZone("America/Rankin_Inlet",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2001-04-01 08:00 */ 986112000, -1),
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, /* 2001-04-01 08:00 */ 986112000),
        new MetaZone.Entry("America_Central", -1, /* 2000-10-29 07:00 */ 972802800)} ));

    put("Pacific/Ponape", new MetaZone("Pacific/Ponape",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Ponape", -1, -1)} ));

    put("Europe/Stockholm", new MetaZone("Europe/Stockholm",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Europe/Budapest", new MetaZone("Europe/Budapest",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Australia/Eucla", new MetaZone("Australia/Eucla",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_CentralWestern", -1, -1)} ));

    put("Asia/Shanghai", new MetaZone("Asia/Shanghai",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("China", -1, -1)} ));

    put("Europe/Zagreb", new MetaZone("Europe/Zagreb",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Port_of_Spain", new MetaZone("America/Port_of_Spain",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Europe/Helsinki", new MetaZone("Europe/Helsinki",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Asia/Beirut", new MetaZone("Asia/Beirut",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Pacific/Bougainville", new MetaZone("Pacific/Bougainville",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Papua_New_Guinea", -1, /* 2014-12-27 16:00 */ 1419696000)} ));

    put("Africa/Sao_Tome", new MetaZone("Africa/Sao_Tome",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Indian/Chagos", new MetaZone("Indian/Chagos",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indian_Ocean", -1, -1)} ));

    put("America/Cayenne", new MetaZone("America/Cayenne",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("French_Guiana", -1, -1)} ));

    put("Asia/Yakutsk", new MetaZone("Asia/Yakutsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Yakutsk", -1, -1)} ));

    put("Pacific/Galapagos", new MetaZone("Pacific/Galapagos",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Galapagos", /* 1986-01-01 05:00 */ 504939600, -1),
        new MetaZone.Entry("Ecuador", -1, /* 1986-01-01 05:00 */ 504939600)} ));

    put("Europe/Paris", new MetaZone("Europe/Paris",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Africa/Ndjamena", new MetaZone("Africa/Ndjamena",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Pacific/Fiji", new MetaZone("Pacific/Fiji",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Fiji", -1, -1)} ));

    put("America/Rainy_River", new MetaZone("America/Rainy_River",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Indian/Maldives", new MetaZone("Indian/Maldives",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Maldives", -1, -1)} ));

    put("Asia/Oral", new MetaZone("Asia/Oral",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Western", /* 2004-10-30 22:00 */ 1099173600, -1),
        new MetaZone.Entry("Oral", /* 1991-12-15 20:00 */ 692827200, /* 2004-10-30 22:00 */ 1099173600),
        new MetaZone.Entry("Uralsk", -1, /* 1991-12-15 20:00 */ 692827200)} ));

    put("America/Yellowknife", new MetaZone("America/Yellowknife",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("Pacific/Enderbury", new MetaZone("Pacific/Enderbury",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Phoenix_Islands", -1, -1)} ));

    put("America/Juneau", new MetaZone("America/Juneau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 1983-11-30 09:00 */ 439030800, -1),
        new MetaZone.Entry("Yukon", /* 1983-10-30 09:00 */ 436352400, /* 1983-11-30 09:00 */ 439030800),
        new MetaZone.Entry("America_Pacific", /* 1980-10-26 10:00 */ 341402400, /* 1983-10-30 09:00 */ 436352400),
        new MetaZone.Entry("Yukon", /* 1980-04-27 10:00 */ 325677600, /* 1980-10-26 10:00 */ 341402400),
        new MetaZone.Entry("America_Pacific", -1, /* 1980-04-27 10:00 */ 325677600)} ));

    put("America/Indiana/Vevay", new MetaZone("America/Indiana/Vevay",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Asia/Tashkent", new MetaZone("Asia/Tashkent",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Uzbekistan", /* 1991-08-31 18:00 */ 683661600, -1),
        new MetaZone.Entry("Tashkent", -1, /* 1991-08-31 18:00 */ 683661600)} ));

    put("Asia/Jakarta", new MetaZone("Asia/Jakarta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indonesia_Western", -1, -1)} ));

    put("Africa/Ceuta", new MetaZone("Africa/Ceuta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", /* 1984-03-16 00:00 */ 448243200, -1),
        new MetaZone.Entry("Europe_Western", -1, /* 1984-03-16 00:00 */ 448243200)} ));

    put("America/Recife", new MetaZone("America/Recife",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("America/Buenos_Aires", new MetaZone("America/Buenos_Aires",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", -1, -1)} ));

    put("America/Noronha", new MetaZone("America/Noronha",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Noronha", -1, -1)} ));

    put("America/Swift_Current", new MetaZone("America/Swift_Current",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 1972-04-30 09:00 */ 73472400, -1),
        new MetaZone.Entry("America_Mountain", -1, /* 1972-04-30 09:00 */ 73472400)} ));

    put("Australia/Adelaide", new MetaZone("Australia/Adelaide",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Central", -1, -1)} ));

    put("America/Metlakatla", new MetaZone("America/Metlakatla",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 2015-11-01 10:00 */ 1446372000, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 2015-11-01 10:00 */ 1446372000)} ));

    put("Africa/Djibouti", new MetaZone("Africa/Djibouti",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("America/Paramaribo", new MetaZone("America/Paramaribo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Suriname", /* 1975-11-20 03:30 */ 185686200, -1),
        new MetaZone.Entry("Dutch_Guiana", -1, /* 1975-11-20 03:30 */ 185686200)} ));

    put("Europe/Simferopol", new MetaZone("Europe/Simferopol",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 2014-03-30 00:00 */ 1396137600, -1),
        new MetaZone.Entry("Europe_Eastern", /* 1997-03-30 01:00 */ 859683600, /* 2014-03-30 00:00 */ 1396137600),
        new MetaZone.Entry("Moscow", /* 1994-04-30 21:00 */ 767739600, /* 1997-03-30 01:00 */ 859683600),
        new MetaZone.Entry("Europe_Eastern", /* 1990-06-30 23:00 */ 646786800, /* 1994-04-30 21:00 */ 767739600),
        new MetaZone.Entry("Moscow", -1, /* 1990-06-30 23:00 */ 646786800)} ));

    put("Europe/Sofia", new MetaZone("Europe/Sofia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Africa/Nouakchott", new MetaZone("Africa/Nouakchott",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Europe/Prague", new MetaZone("Europe/Prague",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Indiana/Vincennes", new MetaZone("America/Indiana/Vincennes",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2007-11-04 07:00 */ 1194159600, -1),
        new MetaZone.Entry("America_Central", /* 2006-04-02 07:00 */ 1143961200, /* 2007-11-04 07:00 */ 1194159600),
        new MetaZone.Entry("America_Eastern", -1, /* 2006-04-02 07:00 */ 1143961200)} ));

    put("Antarctica/Mawson", new MetaZone("Antarctica/Mawson",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mawson", -1, -1)} ));

    put("America/Kralendijk", new MetaZone("America/Kralendijk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Antarctica/Troll", new MetaZone("Antarctica/Troll",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Europe/Samara", new MetaZone("Europe/Samara",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Samara", /* 1991-09-29 00:00 */ 686102400, -1),
        new MetaZone.Entry("Europe_Eastern", /* 1991-03-30 23:00 */ 670374000, /* 1991-09-29 00:00 */ 686102400),
        new MetaZone.Entry("Moscow", /* 1989-03-25 22:00 */ 606866400, /* 1991-03-30 23:00 */ 670374000),
        new MetaZone.Entry("Kuybyshev", -1, /* 1989-03-25 22:00 */ 606866400)} ));

    put("Indian/Christmas", new MetaZone("Indian/Christmas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Christmas", -1, -1)} ));

    put("America/Antigua", new MetaZone("America/Antigua",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Pacific/Gambier", new MetaZone("Pacific/Gambier",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Gambier", -1, -1)} ));

    put("America/Indianapolis", new MetaZone("America/Indianapolis",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("America/Inuvik", new MetaZone("America/Inuvik",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", /* 1979-04-29 10:00 */ 294228000, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 1979-04-29 10:00 */ 294228000)} ));

    put("America/Iqaluit", new MetaZone("America/Iqaluit",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, -1),
        new MetaZone.Entry("America_Central", /* 1999-10-31 06:00 */ 941349600, /* 2000-10-29 07:00 */ 972802800),
        new MetaZone.Entry("America_Eastern", -1, /* 1999-10-31 06:00 */ 941349600)} ));

    put("Pacific/Funafuti", new MetaZone("Pacific/Funafuti",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Tuvalu", -1, -1)} ));

    put("Antarctica/Macquarie", new MetaZone("Antarctica/Macquarie",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Macquarie", /* 2010-04-03 16:00 */ 1270310400, -1),
        new MetaZone.Entry("Australia_Eastern", -1, /* 2010-04-03 16:00 */ 1270310400)} ));

    put("America/Moncton", new MetaZone("America/Moncton",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Africa/Gaborone", new MetaZone("Africa/Gaborone",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("Asia/Pyongyang", new MetaZone("Asia/Pyongyang",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Pyongyang", /* 2015-08-14 15:00 */ 1439564400, -1),
        new MetaZone.Entry("Korea", -1, /* 2015-08-14 15:00 */ 1439564400)} ));

    put("America/St_Vincent", new MetaZone("America/St_Vincent",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Gaza", new MetaZone("Asia/Gaza",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1995-12-31 22:00 */ 820447200, -1),
        new MetaZone.Entry("Israel", -1, /* 1995-12-31 22:00 */ 820447200)} ));

    put("PST8PDT", new MetaZone("PST8PDT",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", -1, -1)} ));

    put("Atlantic/Faeroe", new MetaZone("Atlantic/Faeroe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", -1, -1)} ));

    put("Asia/Qyzylorda", new MetaZone("Asia/Qyzylorda",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Eastern", /* 2004-10-30 21:00 */ 1099170000, -1),
        new MetaZone.Entry("Qyzylorda", /* 1991-12-15 19:00 */ 692823600, /* 2004-10-30 21:00 */ 1099170000),
        new MetaZone.Entry("Kizilorda", -1, /* 1991-12-15 19:00 */ 692823600)} ));

    put("America/Yakutat", new MetaZone("America/Yakutat",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 1983-11-30 09:00 */ 439030800, -1),
        new MetaZone.Entry("Yukon", -1, /* 1983-11-30 09:00 */ 439030800)} ));

    put("Antarctica/Casey", new MetaZone("Antarctica/Casey",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Casey", /* 2016-10-21 16:00 */ 1477065600, -1),
        new MetaZone.Entry("Australia_Western", /* 2012-02-21 17:00 */ 1329843600, /* 2016-10-21 16:00 */ 1477065600),
        new MetaZone.Entry("Casey", /* 2011-10-27 18:00 */ 1319738400, /* 2012-02-21 17:00 */ 1329843600),
        new MetaZone.Entry("Australia_Western", /* 2010-03-04 15:00 */ 1267714800, /* 2011-10-27 18:00 */ 1319738400),
        new MetaZone.Entry("Casey", /* 2009-10-17 18:00 */ 1255802400, /* 2010-03-04 15:00 */ 1267714800),
        new MetaZone.Entry("Australia_Western", -1, /* 2009-10-17 18:00 */ 1255802400)} ));

    put("Europe/Copenhagen", new MetaZone("Europe/Copenhagen",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Atlantic/Azores", new MetaZone("Atlantic/Azores",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Azores", /* 1993-03-28 01:00 */ 733280400, -1),
        new MetaZone.Entry("Europe_Western", /* 1992-09-27 02:00 */ 717559200, /* 1993-03-28 01:00 */ 733280400),
        new MetaZone.Entry("Azores", -1, /* 1992-09-27 02:00 */ 717559200)} ));

    put("Europe/Vienna", new MetaZone("Europe/Vienna",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Pacific/Pitcairn", new MetaZone("Pacific/Pitcairn",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Pitcairn", -1, -1)} ));

    put("America/Mazatlan", new MetaZone("America/Mazatlan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mexico_Pacific", /* 1970-01-01 08:00 */ 28800, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 1970-01-01 08:00 */ 28800)} ));

    put("Pacific/Nauru", new MetaZone("Pacific/Nauru",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Nauru", -1, -1)} ));

    put("Europe/Tirane", new MetaZone("Europe/Tirane",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Australia/Broken_Hill", new MetaZone("Australia/Broken_Hill",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Central", -1, -1)} ));

    put("Europe/Riga", new MetaZone("Europe/Riga",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1989-03-25 23:00 */ 606870000, -1),
        new MetaZone.Entry("Moscow", -1, /* 1989-03-25 23:00 */ 606870000)} ));

    put("America/Dominica", new MetaZone("America/Dominica",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Africa/Abidjan", new MetaZone("Africa/Abidjan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("America/Mendoza", new MetaZone("America/Mendoza",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-09-26 04:00 */ 1096171200, -1),
        new MetaZone.Entry("Argentina", /* 1992-10-18 04:00 */ 719380800, /* 2004-05-23 03:00 */ 1085281200),
        new MetaZone.Entry("Argentina", -1, /* 1990-03-04 02:00 */ 636516000)} ));

    put("America/Santarem", new MetaZone("America/Santarem",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", /* 2008-06-24 04:00 */ 1214280000, -1),
        new MetaZone.Entry("Amazon", -1, /* 2008-06-24 04:00 */ 1214280000)} ));

    put("America/Asuncion", new MetaZone("America/Asuncion",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Paraguay", -1, -1)} ));

    put("America/Boise", new MetaZone("America/Boise",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("Australia/Currie", new MetaZone("Australia/Currie",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("EST5EDT", new MetaZone("EST5EDT",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Pacific/Guam", new MetaZone("Pacific/Guam",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chamorro", /* 2000-12-22 14:00 */ 977493600, -1),
        new MetaZone.Entry("Guam", -1, /* 2000-12-22 14:00 */ 977493600)} ));

    put("Pacific/Wake", new MetaZone("Pacific/Wake",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Wake", -1, -1)} ));

    put("Atlantic/Bermuda", new MetaZone("Atlantic/Bermuda",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("America/Costa_Rica", new MetaZone("America/Costa_Rica",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("America/Dawson", new MetaZone("America/Dawson",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", /* 1973-10-28 09:00 */ 120646800, -1),
        new MetaZone.Entry("Yukon", -1, /* 1973-10-28 09:00 */ 120646800)} ));

    put("Europe/Amsterdam", new MetaZone("Europe/Amsterdam",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Indiana/Knox", new MetaZone("America/Indiana/Knox",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2006-04-02 07:00 */ 1143961200, -1),
        new MetaZone.Entry("America_Eastern", /* 1991-10-27 07:00 */ 688546800, /* 2006-04-02 07:00 */ 1143961200),
        new MetaZone.Entry("America_Central", -1, /* 1991-10-27 07:00 */ 688546800)} ));

    put("America/North_Dakota/Beulah", new MetaZone("America/North_Dakota/Beulah",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2010-11-07 08:00 */ 1289116800, -1),
        new MetaZone.Entry("America_Mountain", -1, /* 2010-11-07 08:00 */ 1289116800)} ));

    put("Africa/Accra", new MetaZone("Africa/Accra",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("America/Maceio", new MetaZone("America/Maceio",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("Pacific/Apia", new MetaZone("Pacific/Apia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Apia", -1, -1)} ));

    put("Pacific/Niue", new MetaZone("Pacific/Niue",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Niue", -1, -1)} ));

    put("Australia/Lord_Howe", new MetaZone("Australia/Lord_Howe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Lord_Howe", /* 1981-02-28 14:00 */ 352216800, -1),
        new MetaZone.Entry("Australia_Eastern", -1, /* 1981-02-28 14:00 */ 352216800)} ));

    put("Europe/Dublin", new MetaZone("Europe/Dublin",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1971-10-31 02:00 */ 57722400, -1),
        new MetaZone.Entry("Irish", -1, /* 1971-10-31 02:00 */ 57722400)} ));

    put("Pacific/Truk", new MetaZone("Pacific/Truk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Truk", -1, -1)} ));

    put("MST7MDT", new MetaZone("MST7MDT",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("America/Monterrey", new MetaZone("America/Monterrey",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("America/Nassau", new MetaZone("America/Nassau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("America/Jamaica", new MetaZone("America/Jamaica",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Asia/Bishkek", new MetaZone("Asia/Bishkek",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kyrgystan", /* 1991-08-30 20:00 */ 683582400, -1),
        new MetaZone.Entry("Frunze", -1, /* 1991-08-30 20:00 */ 683582400)} ));

    put("Atlantic/Stanley", new MetaZone("Atlantic/Stanley",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Falkland", -1, -1)} ));

    put("Indian/Mahe", new MetaZone("Indian/Mahe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Seychelles", -1, -1)} ));

    put("Asia/Aqtobe", new MetaZone("Asia/Aqtobe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Western", /* 2005-10-30 21:00 */ 1130706000, -1),
        new MetaZone.Entry("Aqtobe", /* 1991-12-15 19:00 */ 692823600, /* 2004-10-30 21:00 */ 1099170000),
        new MetaZone.Entry("Aktyubinsk", -1, /* 1991-12-15 19:00 */ 692823600)} ));

    put("America/Sitka", new MetaZone("America/Sitka",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 1983-11-30 09:00 */ 439030800, -1),
        new MetaZone.Entry("Yukon", /* 1983-10-30 09:00 */ 436352400, /* 1983-11-30 09:00 */ 439030800),
        new MetaZone.Entry("America_Pacific", -1, /* 1983-10-30 09:00 */ 436352400)} ));

    put("Asia/Vladivostok", new MetaZone("Asia/Vladivostok",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Vladivostok", -1, -1)} ));

    put("Africa/Libreville", new MetaZone("Africa/Libreville",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Africa/Maputo", new MetaZone("Africa/Maputo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("America/Kentucky/Monticello", new MetaZone("America/Kentucky/Monticello",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, -1),
        new MetaZone.Entry("America_Central", -1, /* 2000-10-29 07:00 */ 972802800)} ));

    put("Africa/El_Aaiun", new MetaZone("Africa/El_Aaiun",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", /* 1976-04-14 01:00 */ 198291600, -1),
        new MetaZone.Entry("Africa_FarWestern", -1, /* 1976-04-14 01:00 */ 198291600)} ));

    put("Africa/Ouagadougou", new MetaZone("Africa/Ouagadougou",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("America/Coral_Harbour", new MetaZone("America/Coral_Harbour",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Pacific/Marquesas", new MetaZone("Pacific/Marquesas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Marquesas", -1, -1)} ));

    put("America/Aruba", new MetaZone("America/Aruba",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("America/North_Dakota/Center", new MetaZone("America/North_Dakota/Center",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 1992-10-25 08:00 */ 720000000, -1),
        new MetaZone.Entry("America_Mountain", -1, /* 1992-10-25 08:00 */ 720000000)} ));

    put("America/Cayman", new MetaZone("America/Cayman",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Asia/Ulaanbaatar", new MetaZone("Asia/Ulaanbaatar",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mongolia", -1, -1)} ));

    put("Asia/Baghdad", new MetaZone("Asia/Baghdad",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", -1, -1)} ));

    put("Europe/San_Marino", new MetaZone("Europe/San_Marino",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Indiana/Tell_City", new MetaZone("America/Indiana/Tell_City",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2006-04-02 07:00 */ 1143961200, -1),
        new MetaZone.Entry("America_Eastern", -1, /* 2006-04-02 07:00 */ 1143961200)} ));

    put("America/Tijuana", new MetaZone("America/Tijuana",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", -1, -1)} ));

    put("Pacific/Saipan", new MetaZone("Pacific/Saipan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chamorro", /* 2000-12-22 14:00 */ 977493600, -1),
        new MetaZone.Entry("North_Mariana", -1, /* 2000-12-22 14:00 */ 977493600)} ));

    put("Africa/Douala", new MetaZone("Africa/Douala",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("America/Chihuahua", new MetaZone("America/Chihuahua",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mexico_Pacific", /* 1998-04-05 09:00 */ 891766800, -1),
        new MetaZone.Entry("America_Central", -1, /* 1998-04-05 09:00 */ 891766800)} ));

    put("America/Ojinaga", new MetaZone("America/Ojinaga",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", /* 1998-04-05 09:00 */ 891766800, -1),
        new MetaZone.Entry("America_Central", -1, /* 1998-04-05 09:00 */ 891766800)} ));

    put("Asia/Hovd", new MetaZone("Asia/Hovd",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Hovd", -1, -1)} ));

    put("America/Anchorage", new MetaZone("America/Anchorage",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 1983-11-30 09:00 */ 439030800, -1),
        new MetaZone.Entry("Yukon", /* 1983-10-30 11:00 */ 436359600, /* 1983-11-30 09:00 */ 439030800),
        new MetaZone.Entry("Alaska_Hawaii", -1, /* 1983-10-30 11:00 */ 436359600)} ));

    put("America/Halifax", new MetaZone("America/Halifax",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Antarctica/Rothera", new MetaZone("Antarctica/Rothera",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Rothera", -1, -1)} ));

    put("Asia/Damascus", new MetaZone("Asia/Damascus",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("America/Argentina/San_Luis", new MetaZone("America/Argentina/San_Luis",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina_Western", /* 2008-01-21 02:00 */ 1200880800, -1),
        new MetaZone.Entry("Argentina", /* 2004-07-25 04:00 */ 1090728000, /* 2008-01-21 02:00 */ 1200880800),
        new MetaZone.Entry("Argentina_Western", /* 2004-05-31 03:00 */ 1085972400, /* 2004-07-25 04:00 */ 1090728000),
        new MetaZone.Entry("Argentina", /* 2000-03-03 03:00 */ 952052400, /* 2004-05-31 03:00 */ 1085972400),
        new MetaZone.Entry("Argentina_Western", /* 1999-10-03 03:00 */ 938919600, /* 2000-03-03 03:00 */ 952052400),
        new MetaZone.Entry("Argentina", /* 1991-06-01 04:00 */ 675748800, /* 1999-10-03 03:00 */ 938919600),
        new MetaZone.Entry("Argentina_Western", /* 1990-03-14 02:00 */ 637380000, /* 1991-06-01 04:00 */ 675748800),
        new MetaZone.Entry("Argentina", -1, /* 1990-03-14 02:00 */ 637380000)} ));

    put("America/Santiago", new MetaZone("America/Santiago",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chile", -1, -1)} ));

    put("Asia/Baku", new MetaZone("Asia/Baku",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Azerbaijan", /* 1991-08-29 20:00 */ 683496000, -1),
        new MetaZone.Entry("Baku", -1, /* 1991-08-29 20:00 */ 683496000)} ));

    put("America/Argentina/Ushuaia", new MetaZone("America/Argentina/Ushuaia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-06-20 04:00 */ 1087704000, -1),
        new MetaZone.Entry("Argentina", -1, /* 2004-05-30 03:00 */ 1085886000)} ));

    put("Atlantic/Reykjavik", new MetaZone("Atlantic/Reykjavik",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("Africa/Brazzaville", new MetaZone("Africa/Brazzaville",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Africa/Porto-Novo", new MetaZone("Africa/Porto-Novo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("America/La_Paz", new MetaZone("America/La_Paz",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Bolivia", -1, -1)} ));

    put("Antarctica/DumontDUrville", new MetaZone("Antarctica/DumontDUrville",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("DumontDUrville", -1, -1)} ));

    put("Asia/Taipei", new MetaZone("Asia/Taipei",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Taipei", -1, -1)} ));

    put("Asia/Manila", new MetaZone("Asia/Manila",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Philippines", -1, -1)} ));

    put("Asia/Bangkok", new MetaZone("Asia/Bangkok",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indochina", -1, -1)} ));

    put("Africa/Dar_es_Salaam", new MetaZone("Africa/Dar_es_Salaam",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Atlantic/Madeira", new MetaZone("Atlantic/Madeira",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", -1, -1)} ));

    put("Antarctica/Palmer", new MetaZone("Antarctica/Palmer",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chile", /* 1982-05-01 03:00 */ 389070000, /* 2016-12-03 23:00 */ 1480806000),
        new MetaZone.Entry("Argentina", -1, /* 1982-05-01 03:00 */ 389070000)} ));

    put("America/Thunder_Bay", new MetaZone("America/Thunder_Bay",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Africa/Addis_Ababa", new MetaZone("Africa/Addis_Ababa",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Europe/Uzhgorod", new MetaZone("Europe/Uzhgorod",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1991-03-31 02:00 */ 670384800, -1),
        new MetaZone.Entry("Europe_Central", /* 1990-06-30 23:00 */ 646786800, /* 1991-03-31 02:00 */ 670384800),
        new MetaZone.Entry("Moscow", -1, /* 1990-06-30 23:00 */ 646786800)} ));

    put("America/Indiana/Marengo", new MetaZone("America/Indiana/Marengo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 1974-10-27 07:00 */ 152089200, -1),
        new MetaZone.Entry("America_Central", /* 1974-01-06 07:00 */ 126687600, /* 1974-10-27 07:00 */ 152089200),
        new MetaZone.Entry("America_Eastern", -1, /* 1974-01-06 07:00 */ 126687600)} ));

    put("America/Creston", new MetaZone("America/Creston",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("America/Punta_Arenas", new MetaZone("America/Punta_Arenas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Chile", -1, /* 2016-12-03 23:00 */ 1480806000)} ));

    put("America/Mexico_City", new MetaZone("America/Mexico_City",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Antarctica/Vostok", new MetaZone("Antarctica/Vostok",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Vostok", -1, -1)} ));

    put("Asia/Jerusalem", new MetaZone("Asia/Jerusalem",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Israel", -1, -1)} ));

    put("Europe/Andorra", new MetaZone("Europe/Andorra",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Asia/Vientiane", new MetaZone("Asia/Vientiane",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indochina", -1, -1)} ));

    put("Pacific/Kiritimati", new MetaZone("Pacific/Kiritimati",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Line_Islands", -1, -1)} ));

    put("America/Matamoros", new MetaZone("America/Matamoros",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("America/Blanc-Sablon", new MetaZone("America/Blanc-Sablon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Riyadh", new MetaZone("Asia/Riyadh",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", -1, -1)} ));

    put("Atlantic/South_Georgia", new MetaZone("Atlantic/South_Georgia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("South_Georgia", -1, -1)} ));

    put("Europe/Lisbon", new MetaZone("Europe/Lisbon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", /* 1996-03-31 01:00 */ 828234000, -1),
        new MetaZone.Entry("Europe_Central", /* 1992-09-27 01:00 */ 717555600, /* 1996-03-31 01:00 */ 828234000),
        new MetaZone.Entry("Europe_Western", /* 1976-09-26 00:00 */ 212544000, /* 1992-09-27 01:00 */ 717555600),
        new MetaZone.Entry("Europe_Central", -1, /* 1976-09-26 00:00 */ 212544000)} ));

    put("Europe/Oslo", new MetaZone("Europe/Oslo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Asia/Novokuznetsk", new MetaZone("Asia/Novokuznetsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Krasnoyarsk", /* 2014-10-25 19:00 */ 1414263600, -1),
        new MetaZone.Entry("Novosibirsk", /* 2010-03-27 19:00 */ 1269716400, /* 2014-10-25 19:00 */ 1414263600),
        new MetaZone.Entry("Krasnoyarsk", -1, /* 2010-03-27 19:00 */ 1269716400)} ));

    put("CST6CDT", new MetaZone("CST6CDT",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Atlantic/Canary", new MetaZone("Atlantic/Canary",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", -1, -1)} ));

    put("Asia/Kuwait", new MetaZone("Asia/Kuwait",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", -1, -1)} ));

    put("Pacific/Efate", new MetaZone("Pacific/Efate",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Vanuatu", -1, -1)} ));

    put("Africa/Lome", new MetaZone("Africa/Lome",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("America/Bogota", new MetaZone("America/Bogota",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Colombia", -1, -1)} ));

    put("America/Menominee", new MetaZone("America/Menominee",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 1973-04-29 07:00 */ 104914800, -1),
        new MetaZone.Entry("America_Eastern", -1, /* 1973-04-29 07:00 */ 104914800)} ));

    put("America/Adak", new MetaZone("America/Adak",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Hawaii_Aleutian", /* 1983-11-30 10:00 */ 439034400, -1),
        new MetaZone.Entry("Bering", -1, /* 1983-10-30 12:00 */ 436363200)} ));

    put("Pacific/Norfolk", new MetaZone("Pacific/Norfolk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Norfolk", -1, -1)} ));

    put("America/Resolute", new MetaZone("America/Resolute",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2007-03-11 08:00 */ 1173600000, -1),
        new MetaZone.Entry("America_Eastern", /* 2006-10-29 07:00 */ 1162105200, /* 2007-03-11 08:00 */ 1173600000),
        new MetaZone.Entry("America_Central", /* 2001-04-01 08:00 */ 986112000, /* 2006-10-29 07:00 */ 1162105200),
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, /* 2001-04-01 08:00 */ 986112000),
        new MetaZone.Entry("America_Central", -1, /* 2000-10-29 07:00 */ 972802800)} ));

    put("Pacific/Tarawa", new MetaZone("Pacific/Tarawa",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Gilbert_Islands", -1, -1)} ));

    put("Africa/Kampala", new MetaZone("Africa/Kampala",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Asia/Krasnoyarsk", new MetaZone("Asia/Krasnoyarsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Krasnoyarsk", -1, -1)} ));

    put("America/Edmonton", new MetaZone("America/Edmonton",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("Europe/Podgorica", new MetaZone("Europe/Podgorica",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Africa/Bujumbura", new MetaZone("Africa/Bujumbura",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("America/Santo_Domingo", new MetaZone("America/Santo_Domingo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", /* 2000-12-03 06:00 */ 975823200, -1),
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 06:00 */ 972799200, /* 2000-12-03 06:00 */ 975823200),
        new MetaZone.Entry("Atlantic", /* 1974-10-27 05:00 */ 152082000, /* 2000-10-29 06:00 */ 972799200),
        new MetaZone.Entry("Dominican", -1, /* 1974-10-27 05:00 */ 152082000)} ));

    put("Europe/Minsk", new MetaZone("Europe/Minsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 2014-10-26 22:00 */ 1414360800, -1),
        new MetaZone.Entry("Europe_Further_Eastern", /* 2011-03-27 00:00 */ 1301184000, /* 2014-10-26 22:00 */ 1414360800),
        new MetaZone.Entry("Europe_Eastern", /* 1991-03-30 23:00 */ 670374000, /* 2011-03-27 00:00 */ 1301184000),
        new MetaZone.Entry("Moscow", -1, /* 1991-03-30 23:00 */ 670374000)} ));

    put("Pacific/Auckland", new MetaZone("Pacific/Auckland",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("New_Zealand", -1, -1)} ));

    put("Africa/Casablanca", new MetaZone("Africa/Casablanca",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Western", /* 1985-12-31 23:00 */ 504918000, -1),
        new MetaZone.Entry("Europe_Central", /* 1984-03-16 00:00 */ 448243200, /* 1985-12-31 23:00 */ 504918000),
        new MetaZone.Entry("Europe_Western", -1, /* 1984-03-16 00:00 */ 448243200)} ));

    put("America/Glace_Bay", new MetaZone("America/Glace_Bay",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Qatar", new MetaZone("Asia/Qatar",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", /* 1972-05-31 20:00 */ 76190400, -1),
        new MetaZone.Entry("Gulf", -1, /* 1972-05-31 20:00 */ 76190400)} ));

    put("Europe/Kiev", new MetaZone("Europe/Kiev",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1990-06-30 22:00 */ 646783200, -1),
        new MetaZone.Entry("Moscow", -1, /* 1990-06-30 22:00 */ 646783200)} ));

    put("Asia/Magadan", new MetaZone("Asia/Magadan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Magadan", -1, -1)} ));

    put("America/Port-au-Prince", new MetaZone("America/Port-au-Prince",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("America/St_Barthelemy", new MetaZone("America/St_Barthelemy",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Ashgabat", new MetaZone("Asia/Ashgabat",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Turkmenistan", /* 1991-10-26 20:00 */ 688507200, -1),
        new MetaZone.Entry("Ashkhabad", -1, /* 1991-10-26 20:00 */ 688507200)} ));

    put("Africa/Luanda", new MetaZone("Africa/Luanda",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("America/Nipigon", new MetaZone("America/Nipigon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Asia/Muscat", new MetaZone("Asia/Muscat",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Gulf", -1, -1)} ));

    put("Asia/Bahrain", new MetaZone("Asia/Bahrain",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Arabian", /* 1972-05-31 20:00 */ 76190400, -1),
        new MetaZone.Entry("Gulf", -1, /* 1972-05-31 20:00 */ 76190400)} ));

    put("Europe/Vilnius", new MetaZone("Europe/Vilnius",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1999-10-31 01:00 */ 941331600, -1),
        new MetaZone.Entry("Europe_Central", /* 1998-03-29 01:00 */ 891133200, /* 1999-10-31 01:00 */ 941331600),
        new MetaZone.Entry("Europe_Eastern", /* 1989-03-25 23:00 */ 606870000, /* 1998-03-29 01:00 */ 891133200),
        new MetaZone.Entry("Moscow", -1, /* 1989-03-25 23:00 */ 606870000)} ));

    put("America/Fortaleza", new MetaZone("America/Fortaleza",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("America/Hermosillo", new MetaZone("America/Hermosillo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mexico_Pacific", /* 1970-01-01 08:00 */ 28800, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 1970-01-01 08:00 */ 28800)} ));

    put("America/Cancun", new MetaZone("America/Cancun",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2015-02-01 08:00 */ 1422777600, -1),
        new MetaZone.Entry("America_Central", /* 1998-08-02 06:00 */ 902037600, /* 2015-02-01 08:00 */ 1422777600),
        new MetaZone.Entry("America_Eastern", /* 1981-12-23 06:00 */ 377935200, /* 1998-08-02 06:00 */ 902037600),
        new MetaZone.Entry("America_Central", -1, /* 1981-12-23 06:00 */ 377935200)} ));

    put("Africa/Maseru", new MetaZone("Africa/Maseru",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Southern", -1, -1)} ));

    put("Pacific/Kosrae", new MetaZone("Pacific/Kosrae",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kosrae", -1, -1)} ));

    put("Africa/Kinshasa", new MetaZone("Africa/Kinshasa",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Asia/Seoul", new MetaZone("Asia/Seoul",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Korea", -1, -1)} ));

    put("Australia/Sydney", new MetaZone("Australia/Sydney",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("America/Lima", new MetaZone("America/Lima",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Peru", -1, -1)} ));

    put("America/St_Lucia", new MetaZone("America/St_Lucia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Europe/Madrid", new MetaZone("Europe/Madrid",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Bahia_Banderas", new MetaZone("America/Bahia_Banderas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2010-04-04 09:00 */ 1270371600, -1),
        new MetaZone.Entry("America_Mountain", /* 1970-01-01 08:00 */ 28800, /* 2010-04-04 09:00 */ 1270371600),
        new MetaZone.Entry("America_Pacific", -1, /* 1970-01-01 08:00 */ 28800)} ));

    put("America/Montserrat", new MetaZone("America/Montserrat",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Brunei", new MetaZone("Asia/Brunei",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brunei", -1, -1)} ));

    put("America/Santa_Isabel", new MetaZone("America/Santa_Isabel",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Mexico_Northwest", -1, -1)} ));

    put("America/Cambridge_Bay", new MetaZone("America/Cambridge_Bay",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", /* 2001-04-01 09:00 */ 986115600, -1),
        new MetaZone.Entry("America_Central", /* 2000-11-05 05:00 */ 973400400, /* 2001-04-01 09:00 */ 986115600),
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, /* 2000-11-05 05:00 */ 973400400),
        new MetaZone.Entry("America_Central", /* 1999-10-31 08:00 */ 941356800, /* 2000-10-29 07:00 */ 972802800),
        new MetaZone.Entry("America_Mountain", -1, /* 1999-10-31 08:00 */ 941356800)} ));

    put("Asia/Colombo", new MetaZone("Asia/Colombo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("India", /* 2006-04-14 18:30 */ 1145039400, -1),
        new MetaZone.Entry("Lanka", /* 1996-05-24 18:30 */ 832962600, /* 2006-04-14 18:30 */ 1145039400),
        new MetaZone.Entry("India", -1, /* 1996-05-24 18:30 */ 832962600)} ));

    put("Indian/Antananarivo", new MetaZone("Indian/Antananarivo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Australia/Brisbane", new MetaZone("Australia/Brisbane",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("Indian/Mayotte", new MetaZone("Indian/Mayotte",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", -1, -1)} ));

    put("Asia/Urumqi", new MetaZone("Asia/Urumqi",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Urumqi", -1, -1)} ));

    put("Europe/Volgograd", new MetaZone("Europe/Volgograd",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 1992-03-28 22:00 */ 701820000, -1),
        new MetaZone.Entry("Volgograd", -1, /* 1992-03-28 22:00 */ 701820000)} ));

    put("America/Lower_Princes", new MetaZone("America/Lower_Princes",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("America/Vancouver", new MetaZone("America/Vancouver",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", -1, -1)} ));

    put("Africa/Blantyre", new MetaZone("Africa/Blantyre",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("America/Rio_Branco", new MetaZone("America/Rio_Branco",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Acre", /* 2013-11-10 04:00 */ 1384056000, -1),
        new MetaZone.Entry("Amazon", /* 2008-06-24 05:00 */ 1214283600, /* 2013-11-10 04:00 */ 1384056000),
        new MetaZone.Entry("Acre", -1, /* 2008-06-24 05:00 */ 1214283600)} ));

    put("America/Danmarkshavn", new MetaZone("America/Danmarkshavn",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1996-01-01 03:00 */ 820465200, -1),
        new MetaZone.Entry("Greenland_Western", -1, /* 1996-01-01 03:00 */ 820465200)} ));

    put("America/Detroit", new MetaZone("America/Detroit",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("America/Thule", new MetaZone("America/Thule",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Africa/Lusaka", new MetaZone("Africa/Lusaka",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("Asia/Hong_Kong", new MetaZone("Asia/Hong_Kong",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Hong_Kong", -1, -1)} ));

    put("America/Argentina/La_Rioja", new MetaZone("America/Argentina/La_Rioja",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-06-20 04:00 */ 1087704000, -1),
        new MetaZone.Entry("Argentina_Western", /* 2004-06-01 03:00 */ 1086058800, /* 2004-06-20 04:00 */ 1087704000),
        new MetaZone.Entry("Argentina", /* 1991-05-07 04:00 */ 673588800, /* 2004-06-01 03:00 */ 1086058800),
        new MetaZone.Entry("Argentina_Western", /* 1991-03-01 02:00 */ 667792800, /* 1991-05-07 04:00 */ 673588800),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-01 02:00 */ 667792800)} ));

    put("Africa/Dakar", new MetaZone("Africa/Dakar",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", -1, -1)} ));

    put("America/Tortola", new MetaZone("America/Tortola",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("America/Porto_Velho", new MetaZone("America/Porto_Velho",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Amazon", -1, -1)} ));

    put("Asia/Sakhalin", new MetaZone("Asia/Sakhalin",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Sakhalin", -1, -1)} ));

    put("America/Scoresbysund", new MetaZone("America/Scoresbysund",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Greenland_Eastern", /* 1981-03-29 02:00 */ 354679200, -1),
        new MetaZone.Entry("Greenland_Central", -1, /* 1981-03-29 02:00 */ 354679200)} ));

    put("Asia/Kamchatka", new MetaZone("Asia/Kamchatka",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kamchatka", -1, -1)} ));

    put("Africa/Harare", new MetaZone("Africa/Harare",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Central", -1, -1)} ));

    put("America/Nome", new MetaZone("America/Nome",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Alaska", /* 1983-11-30 09:00 */ 439030800, -1),
        new MetaZone.Entry("Yukon", /* 1983-10-30 12:00 */ 436363200, /* 1983-11-30 09:00 */ 439030800),
        new MetaZone.Entry("Bering", -1, /* 1983-10-30 12:00 */ 436363200)} ));

    put("Europe/Tallinn", new MetaZone("Europe/Tallinn",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1989-03-25 23:00 */ 606870000, -1),
        new MetaZone.Entry("Moscow", -1, /* 1989-03-25 23:00 */ 606870000)} ));

    put("Africa/Khartoum", new MetaZone("Africa/Khartoum",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", /* 2000-01-15 10:00 */ 947930400, -1),
        new MetaZone.Entry("Africa_Central", -1, /* 2000-01-15 10:00 */ 947930400)} ));

    put("Africa/Johannesburg", new MetaZone("Africa/Johannesburg",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Southern", -1, -1)} ));

    put("Africa/Bangui", new MetaZone("Africa/Bangui",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("Europe/Belgrade", new MetaZone("Europe/Belgrade",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Africa/Bissau", new MetaZone("Africa/Bissau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1975-01-01 01:00 */ 157770000, -1),
        new MetaZone.Entry("Africa_FarWestern", -1, /* 1975-01-01 01:00 */ 157770000)} ));

    put("Asia/Tehran", new MetaZone("Asia/Tehran",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Iran", -1, -1)} ));

    put("Europe/Astrakhan", new MetaZone("Europe/Astrakhan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 1992-03-28 22:00 */ 701820000, /* 2016-03-26 23:00 */ 1459033200)} ));

    put("Africa/Juba", new MetaZone("Africa/Juba",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Eastern", /* 2000-01-15 10:00 */ 947930400, -1),
        new MetaZone.Entry("Africa_Central", -1, /* 2000-01-15 10:00 */ 947930400)} ));

    put("America/Campo_Grande", new MetaZone("America/Campo_Grande",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Amazon", -1, -1)} ));

    put("America/Belem", new MetaZone("America/Belem",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("Asia/Saigon", new MetaZone("Asia/Saigon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indochina", /* 1975-06-12 16:00 */ 171820800, -1)} ));

    put("Pacific/Midway", new MetaZone("Pacific/Midway",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Samoa", /* 1983-10-30 12:00 */ 436363200, -1),
        new MetaZone.Entry("Bering", -1, /* 1983-10-30 12:00 */ 436363200)} ));

    put("America/Jujuy", new MetaZone("America/Jujuy",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 1991-10-06 04:00 */ 686721600, -1),
        new MetaZone.Entry("Argentina", -1, /* 1990-03-04 02:00 */ 636516000)} ));

    put("America/Bahia", new MetaZone("America/Bahia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Brasilia", -1, -1)} ));

    put("America/Goose_Bay", new MetaZone("America/Goose_Bay",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", /* 1988-10-30 02:01 */ 594180060, -1),
        new MetaZone.Entry("Goose_Bay", /* 1988-04-03 04:01 */ 576043260, /* 1988-10-30 02:01 */ 594180060),
        new MetaZone.Entry("Atlantic", -1, /* 1988-04-03 04:01 */ 576043260)} ));

    put("America/Pangnirtung", new MetaZone("America/Pangnirtung",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2000-10-29 07:00 */ 972802800, -1),
        new MetaZone.Entry("America_Central", /* 1999-10-31 06:00 */ 941349600, /* 2000-10-29 07:00 */ 972802800),
        new MetaZone.Entry("America_Eastern", /* 1995-04-02 06:00 */ 796802400, /* 1999-10-31 06:00 */ 941349600),
        new MetaZone.Entry("Atlantic", -1, /* 1995-04-02 06:00 */ 796802400)} ));

    put("Asia/Katmandu", new MetaZone("Asia/Katmandu",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Nepal", -1, -1)} ));

    put("America/Phoenix", new MetaZone("America/Phoenix",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", -1, -1)} ));

    put("Africa/Niamey", new MetaZone("Africa/Niamey",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Africa_Western", -1, -1)} ));

    put("America/Whitehorse", new MetaZone("America/Whitehorse",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", -1, -1)} ));

    put("Pacific/Noumea", new MetaZone("Pacific/Noumea",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("New_Caledonia", -1, -1)} ));

    put("Asia/Tbilisi", new MetaZone("Asia/Tbilisi",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Georgia", /* 1991-04-08 20:00 */ 671140800, -1),
        new MetaZone.Entry("Tbilisi", -1, /* 1991-04-08 20:00 */ 671140800)} ));

    put("Asia/Makassar", new MetaZone("Asia/Makassar",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Indonesia_Central", -1, -1)} ));

    put("America/Argentina/San_Juan", new MetaZone("America/Argentina/San_Juan",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-07-25 04:00 */ 1090728000, -1),
        new MetaZone.Entry("Argentina_Western", /* 2004-05-31 03:00 */ 1085972400, /* 2004-07-25 04:00 */ 1090728000),
        new MetaZone.Entry("Argentina", /* 1991-05-07 04:00 */ 673588800, /* 2004-05-31 03:00 */ 1085972400),
        new MetaZone.Entry("Argentina_Western", /* 1991-03-01 02:00 */ 667792800, /* 1991-05-07 04:00 */ 673588800),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-01 02:00 */ 667792800)} ));

    put("Asia/Nicosia", new MetaZone("Asia/Nicosia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("America/Indiana/Winamac", new MetaZone("America/Indiana/Winamac",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", /* 2007-03-11 08:00 */ 1173600000, -1),
        new MetaZone.Entry("America_Central", /* 2006-04-02 07:00 */ 1143961200, /* 2007-03-11 08:00 */ 1173600000),
        new MetaZone.Entry("America_Eastern", -1, /* 2006-04-02 07:00 */ 1143961200)} ));

    put("America/Boa_Vista", new MetaZone("America/Boa_Vista",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Amazon", -1, -1)} ));

    put("America/Grenada", new MetaZone("America/Grenada",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Atyrau", new MetaZone("Asia/Atyrau",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Kazakhstan_Western", /* 2004-10-30 22:00 */ 1099173600, -1)} ));

    put("Australia/Darwin", new MetaZone("Australia/Darwin",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Central", -1, -1)} ));

    put("Asia/Khandyga", new MetaZone("Asia/Khandyga",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Yakutsk", /* 2011-09-12 13:00 */ 1315832400, -1),
        new MetaZone.Entry("Vladivostok", /* 2003-12-31 15:00 */ 1072882800, /* 2011-09-12 13:00 */ 1315832400),
        new MetaZone.Entry("Yakutsk", -1, /* 2003-12-31 15:00 */ 1072882800)} ));

    put("Asia/Kuala_Lumpur", new MetaZone("Asia/Kuala_Lumpur",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Malaysia", /* 1981-12-31 16:30 */ 378664200, -1),
        new MetaZone.Entry("Malaya", -1, /* 1981-12-31 16:30 */ 378664200)} ));

    put("Asia/Famagusta", new MetaZone("Asia/Famagusta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, /* 2016-09-07 21:00 */ 1473282000)} ));

    put("Asia/Thimphu", new MetaZone("Asia/Thimphu",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Bhutan", /* 1987-09-30 18:30 */ 560025000, -1),
        new MetaZone.Entry("India", -1, /* 1987-09-30 18:30 */ 560025000)} ));

    put("Asia/Rangoon", new MetaZone("Asia/Rangoon",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Myanmar", -1, -1)} ));

    put("Europe/Bratislava", new MetaZone("Europe/Bratislava",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Asia/Calcutta", new MetaZone("Asia/Calcutta",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("India", -1, -1)} ));

    put("America/Argentina/Tucuman", new MetaZone("America/Argentina/Tucuman",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Argentina", /* 2004-06-13 04:00 */ 1087099200, -1),
        new MetaZone.Entry("Argentina_Western", /* 2004-06-01 03:00 */ 1086058800, /* 2004-06-13 04:00 */ 1087099200),
        new MetaZone.Entry("Argentina", /* 1991-10-20 04:00 */ 687931200, /* 2004-06-01 03:00 */ 1086058800),
        new MetaZone.Entry("Argentina", -1, /* 1991-03-03 02:00 */ 667965600)} ));

    put("Asia/Kabul", new MetaZone("Asia/Kabul",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Afghanistan", -1, -1)} ));

    put("Indian/Cocos", new MetaZone("Indian/Cocos",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Cocos", -1, -1)} ));

    put("Pacific/Tongatapu", new MetaZone("Pacific/Tongatapu",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Tonga", -1, -1)} ));

    put("America/New_York", new MetaZone("America/New_York",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Europe/Ulyanovsk", new MetaZone("Europe/Ulyanovsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Moscow", /* 1992-01-19 00:00 */ 695779200, /* 2016-03-26 23:00 */ 1459033200)} ));

    put("America/Merida", new MetaZone("America/Merida",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 1982-12-02 05:00 */ 407653200, -1),
        new MetaZone.Entry("America_Eastern", /* 1981-12-23 06:00 */ 377935200, /* 1982-12-02 05:00 */ 407653200),
        new MetaZone.Entry("America_Central", -1, /* 1981-12-23 06:00 */ 377935200)} ));

    put("America/St_Kitts", new MetaZone("America/St_Kitts",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Arctic/Longyearbyen", new MetaZone("Arctic/Longyearbyen",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("America/Fort_Nelson", new MetaZone("America/Fort_Nelson",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Mountain", /* 2015-03-08 10:00 */ 1425808800, -1),
        new MetaZone.Entry("America_Pacific", -1, /* 2015-03-08 10:00 */ 1425808800)} ));

    put("America/Caracas", new MetaZone("America/Caracas",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Venezuela", -1, -1)} ));

    put("America/Guadeloupe", new MetaZone("America/Guadeloupe",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Atlantic", -1, -1)} ));

    put("Asia/Hebron", new MetaZone("Asia/Hebron",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", /* 1995-12-31 22:00 */ 820447200, -1),
        new MetaZone.Entry("Israel", -1, /* 1995-12-31 22:00 */ 820447200)} ));

    put("Indian/Kerguelen", new MetaZone("Indian/Kerguelen",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("French_Southern", -1, -1)} ));

    put("Africa/Monrovia", new MetaZone("Africa/Monrovia",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("GMT", /* 1972-05-01 00:45 */ 73529100, -1),
        new MetaZone.Entry("Liberia", -1, /* 1972-05-01 00:45 */ 73529100)} ));

    put("Asia/Ust-Nera", new MetaZone("Asia/Ust-Nera",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Vladivostok", /* 2011-09-12 12:00 */ 1315828800, -1),
        new MetaZone.Entry("Magadan", /* 1981-03-31 15:00 */ 354898800, /* 2011-09-12 12:00 */ 1315828800),
        new MetaZone.Entry("Yakutsk", -1, /* 1981-03-31 15:00 */ 354898800)} ));

    put("Asia/Srednekolymsk", new MetaZone("Asia/Srednekolymsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Magadan", -1, /* 2014-10-25 14:00 */ 1414245600)} ));

    put("America/North_Dakota/New_Salem", new MetaZone("America/North_Dakota/New_Salem",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", /* 2003-10-26 08:00 */ 1067155200, -1),
        new MetaZone.Entry("America_Mountain", -1, /* 2003-10-26 08:00 */ 1067155200)} ));

    put("Asia/Anadyr", new MetaZone("Asia/Anadyr",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Anadyr", /* 2014-10-25 14:00 */ 1414245600, -1),
        new MetaZone.Entry("Magadan", /* 2010-03-27 14:00 */ 1269698400, /* 2014-10-25 14:00 */ 1414245600),
        new MetaZone.Entry("Anadyr", -1, /* 2010-03-27 14:00 */ 1269698400)} ));

    put("Australia/Melbourne", new MetaZone("Australia/Melbourne",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("Asia/Irkutsk", new MetaZone("Asia/Irkutsk",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Irkutsk", -1, -1)} ));

    put("America/Winnipeg", new MetaZone("America/Winnipeg",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Central", -1, -1)} ));

    put("Europe/Vatican", new MetaZone("Europe/Vatican",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));

    put("Asia/Amman", new MetaZone("Asia/Amman",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Asia/Tokyo", new MetaZone("Asia/Tokyo",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Japan", -1, -1)} ));

    put("America/Toronto", new MetaZone("America/Toronto",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Eastern", -1, -1)} ));

    put("Asia/Singapore", new MetaZone("Asia/Singapore",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Singapore", -1, -1)} ));

    put("Australia/Lindeman", new MetaZone("Australia/Lindeman",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Australia_Eastern", -1, -1)} ));

    put("America/Los_Angeles", new MetaZone("America/Los_Angeles",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("America_Pacific", -1, -1)} ));

    put("Pacific/Majuro", new MetaZone("Pacific/Majuro",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Marshall_Islands", -1, -1)} ));

    put("Pacific/Guadalcanal", new MetaZone("Pacific/Guadalcanal",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Solomon", -1, -1)} ));

    put("Europe/Athens", new MetaZone("Europe/Athens",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Eastern", -1, -1)} ));

    put("Europe/Monaco", new MetaZone("Europe/Monaco",
      new MetaZone.Entry[]  {
        new MetaZone.Entry("Europe_Central", -1, -1)} ));
  } 
  };
  ;

  /**
   * Indicates whether a given skeleton pattern is a DATE or TIME.
   */
  public static SkeletonType skeletonType(String skeleton) {
    switch (skeleton) {
      case "d":
      case "E":
      case "Ed":
      case "Gy":
      case "GyMMM":
      case "GyMMMd":
      case "GyMMMEd":
      case "M":
      case "Md":
      case "MEd":
      case "MMdd":
      case "MMM":
      case "MMMd":
      case "MMMEd":
      case "MMMMd":
      case "MMMMEd":
      case "MMMMW-count-one":
      case "MMMMW-count-other":
      case "y":
      case "yM":
      case "yMd":
      case "yMEd":
      case "yMM":
      case "yMMM":
      case "yMMMd":
      case "yMMMEd":
      case "yMMMM":
      case "yMMMMd":
      case "yMMMMEd":
      case "yQQQ":
      case "yQQQQ":
      case "yw-count-one":
      case "yw-count-other":
      case "MMMMW-count-zero":
      case "MMMMW-count-two":
      case "MMMMW-count-few":
      case "MMMMW-count-many":
      case "yw-count-zero":
      case "yw-count-two":
      case "yw-count-few":
      case "yw-count-many":
      case "GyMMMM":
      case "GyMMMMd":
      case "GyMMMMEd":
      case "MMd":
      case "MMMdd":
      case "yMMdd":
      case "yMMMEEEEd":
      case "MMMM":
      case "MMMMdd":
      case "GyM":
      case "GyMMMEEEEd":
      case "MMMEEEEd":
      case "MMMMEEEEd":
      case "yMMMMEEEEd":
      case "yQ":
      case "EEEEd":
      case "MEEEEd":
      case "yMEEEEd":
      case "yMMMMccccd":
      case "Mdd":
      case "Md-alt-variant":
      case "MEd-alt-variant":
      case "MMdd-alt-variant":
      case "yM-alt-variant":
      case "yMd-alt-variant":
      case "yMEd-alt-variant":
        return SkeletonType.DATE;
      case "Ehm":
      case "EHm":
      case "Ehms":
      case "EHms":
      case "h":
      case "H":
      case "hm":
      case "Hm":
      case "hms":
      case "Hms":
      case "hmsv":
      case "Hmsv":
      case "hmv":
      case "Hmv":
      case "ms":
      case "hmsvvvv":
      case "Hmsvvvv":
      case "mmss":
      case "HHmmss":
      case "HHmmZ":
      case "HHmm":
        return SkeletonType.TIME;
      default:
        return null;
    }
  }

  public static String getMetazone(String zoneId, ZonedDateTime date) {
    MetaZone zone = metazones.get(zoneId);
    return zone == null ? null : zone.applies(date);
  }

  public static String getTimeZoneAlias(String zoneId) {
    switch (zoneId) {
      case "Africa/Timbuktu": return "Africa/Bamako";
      case "America/Montreal": return "America/Toronto";
      case "America/Shiprock": return "America/Denver";
      case "Antarctica/South_Pole": return "Pacific/Auckland";
      case "Asia/Chongqing": return "Asia/Shanghai";
      case "Asia/Harbin": return "Asia/Shanghai";
      case "Asia/Kashgar": return "Asia/Urumqi";
      case "Atlantic/Jan_Mayen": return "Europe/Oslo";
      case "EST": return "America/Indianapolis";
      case "Europe/Belfast": return "Europe/London";
      case "HST": return "Pacific/Honolulu";
      case "MST": return "America/Phoenix";
      case "Pacific/Yap": return "Pacific/Truk";
      case "SystemV/AST4": return "America/Puerto_Rico";
      case "SystemV/AST4ADT": return "America/Halifax";
      case "SystemV/CST6": return "America/Regina";
      case "SystemV/CST6CDT": return "America/Chicago";
      case "SystemV/EST5": return "America/Indianapolis";
      case "SystemV/EST5EDT": return "America/New_York";
      case "SystemV/HST10": return "Pacific/Honolulu";
      case "SystemV/MST7": return "America/Phoenix";
      case "SystemV/MST7MDT": return "America/Denver";
      case "SystemV/PST8": return "Pacific/Pitcairn";
      case "SystemV/PST8PDT": return "America/Los_Angeles";
      case "SystemV/YST9": return "Pacific/Gambier";
      case "SystemV/YST9YDT": return "America/Anchorage";
      default: return null;
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy