summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordas <das>2005-05-14 20:46:43 (GMT)
committerdas <das>2005-05-14 20:46:43 (GMT)
commit682791cc06ff9a97bb834ec6e43bbef12687d80a (patch)
tree8485c76ab6a0159bc2f9c1907dc085c2fc922e72 /generic
parenta06d3d0df0e5b9d324676885c38f8b44c09dfa6a (diff)
downloadtcl-682791cc06ff9a97bb834ec6e43bbef12687d80a.zip
tcl-682791cc06ff9a97bb834ec6e43bbef12687d80a.tar.gz
tcl-682791cc06ff9a97bb834ec6e43bbef12687d80a.tar.bz2
* generic/tclInt.decls:
* generic/tclTest.c: * generic/tclUtil.c: * win/tclWin32Dll.c: fixed link error due to direct access by tclTest.c to the MODULE_SCOPE tclPlatform global: renamed existing TclWinGetPlatform() accessor to TclGetPlatform() and moved it to generic code so that it can be used by on all platforms where MODULE_SCOPE is enforced. * macosx/tclMacOSXBundle.c: * unix/tclUnixInit.c: * unix/tcl.m4 (Darwin): made use of CoreFoundation API configurable and added test of CoreFoundation availablility to allow building on ppc64, replaced HAVE_CFBUNDLE by HAVE_COREFOUNDATION; test for availability of Tiger or later OSSpinLockLock API. * unix/tclUnixNotfy.c: * unix/Makefile.in: * macosx/tclMacOSXNotify.c (new file): when CoreFoundation is available, use new CFRunLoop based notifier: allows easy integration with other event loops on Mac OS X, in particular the TkAqua Carbon event loop is now integrated via a standard tcl event source (instead of TkAqua upon loading having to finalize the exsting notifier and replace it with its custom version). [Patch 1202052] * tests/unixNotfy.test: don't run unthreaded tests on Darwin since notifier may be using threads even in unthreaded core. * unix/tclUnixPort.h: * unix/tcl.m4 (Darwin): test for thread-unsafe realpath durning configure, as Darwin 7 and later realpath is threadsafe. * macosx/Makefile: enable configure caching. * unix/configure.in: wrap tclConfig.h header in #ifndef _TCLCONFIG so that it can be included more than once without warnings from gcc4.0 (as happens e.g. when including both tclInt.h and tclPort.h) * macosx/tclMacOSXBundle.c: * unix/tclUnixChan.c: * unix/tclLoadDyld.c: * unix/tclUnixInit.c: fixed gcc 4.0 warnings. * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59 * generic/tclIntDecls.h: * generic/tclIntPlatDecls.h: * generic/tclStubInit.c: make genstubs
Diffstat (limited to 'generic')
-rw-r--r--generic/tclInt.decls13
-rw-r--r--generic/tclIntDecls.h12
-rw-r--r--generic/tclIntPlatDecls.h15
-rw-r--r--generic/tclStubInit.c5
-rw-r--r--generic/tclTest.c14
-rw-r--r--generic/tclUtil.c25
6 files changed, 54 insertions, 30 deletions
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index c457741..f4f29c7 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: tclInt.decls,v 1.88 2005/05/10 18:34:41 kennykb Exp $
+# RCS: @(#) $Id: tclInt.decls,v 1.89 2005/05/14 20:46:44 das Exp $
library tcl
@@ -891,6 +891,10 @@ declare 222 generic {
declare 223 generic {
int TclBN_mp_read_radix(mp_int *a, const char *str, int radix)
}
+# for use in tclTest.c
+declare 224 generic {
+ TclPlatformType *TclGetPlatform(void)
+}
##############################################################################
@@ -993,9 +997,10 @@ declare 23 win {
declare 24 win {
char *TclWinNoBackslash(char *path)
}
-declare 25 win {
- TclPlatformType *TclWinGetPlatform(void)
-}
+# replaced by generic TclGetPlatform
+#declare 25 win {
+# TclPlatformType *TclWinGetPlatform(void)
+#}
declare 26 win {
void TclWinSetInterfaces(int wide)
}
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 7364d0f..3e5827e 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclIntDecls.h,v 1.79 2005/05/10 18:34:42 kennykb Exp $
+ * RCS: @(#) $Id: tclIntDecls.h,v 1.80 2005/05/14 20:46:45 das Exp $
*/
#ifndef _TCLINTDECLS
@@ -1156,6 +1156,11 @@ EXTERN int TclBN_mp_init _ANSI_ARGS_((mp_int * a));
EXTERN int TclBN_mp_read_radix _ANSI_ARGS_((mp_int * a,
const char * str, int radix));
#endif
+#ifndef TclGetPlatform_TCL_DECLARED
+#define TclGetPlatform_TCL_DECLARED
+/* 224 */
+EXTERN TclPlatformType * TclGetPlatform _ANSI_ARGS_((void));
+#endif
typedef struct TclIntStubs {
int magic;
@@ -1400,6 +1405,7 @@ typedef struct TclIntStubs {
void (*tclBN_mp_clear) _ANSI_ARGS_((mp_int * a)); /* 221 */
int (*tclBN_mp_init) _ANSI_ARGS_((mp_int * a)); /* 222 */
int (*tclBN_mp_read_radix) _ANSI_ARGS_((mp_int * a, const char * str, int radix)); /* 223 */
+ TclPlatformType * (*tclGetPlatform) _ANSI_ARGS_((void)); /* 224 */
} TclIntStubs;
#ifdef __cplusplus
@@ -2174,6 +2180,10 @@ extern TclIntStubs *tclIntStubsPtr;
#define TclBN_mp_read_radix \
(tclIntStubsPtr->tclBN_mp_read_radix) /* 223 */
#endif
+#ifndef TclGetPlatform
+#define TclGetPlatform \
+ (tclIntStubsPtr->tclGetPlatform) /* 224 */
+#endif
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
diff --git a/generic/tclIntPlatDecls.h b/generic/tclIntPlatDecls.h
index a3c900c..e9c1184 100644
--- a/generic/tclIntPlatDecls.h
+++ b/generic/tclIntPlatDecls.h
@@ -9,7 +9,7 @@
* Copyright (c) 1998-1999 by Scriptics Corporation.
* All rights reserved.
*
- * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.26 2004/11/03 19:13:40 davygrvy Exp $
+ * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.27 2005/05/14 20:46:45 das Exp $
*/
#ifndef _TCLINTPLATDECLS
@@ -249,11 +249,7 @@ EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst));
/* 24 */
EXTERN char * TclWinNoBackslash _ANSI_ARGS_((char * path));
#endif
-#ifndef TclWinGetPlatform_TCL_DECLARED
-#define TclWinGetPlatform_TCL_DECLARED
-/* 25 */
-EXTERN TclPlatformType * TclWinGetPlatform _ANSI_ARGS_((void));
-#endif
+/* Slot 25 is reserved */
#ifndef TclWinSetInterfaces_TCL_DECLARED
#define TclWinSetInterfaces_TCL_DECLARED
/* 26 */
@@ -348,7 +344,7 @@ typedef struct TclIntPlatStubs {
TclFile (*tclpCreateTempFile) _ANSI_ARGS_((CONST char * contents)); /* 22 */
char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 23 */
char * (*tclWinNoBackslash) _ANSI_ARGS_((char * path)); /* 24 */
- TclPlatformType * (*tclWinGetPlatform) _ANSI_ARGS_((void)); /* 25 */
+ void *reserved25;
void (*tclWinSetInterfaces) _ANSI_ARGS_((int wide)); /* 26 */
void (*tclWinFlushDirtyChannels) _ANSI_ARGS_((void)); /* 27 */
void (*tclWinResetInterfaces) _ANSI_ARGS_((void)); /* 28 */
@@ -520,10 +516,7 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclWinNoBackslash \
(tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
#endif
-#ifndef TclWinGetPlatform
-#define TclWinGetPlatform \
- (tclIntPlatStubsPtr->tclWinGetPlatform) /* 25 */
-#endif
+/* Slot 25 is reserved */
#ifndef TclWinSetInterfaces
#define TclWinSetInterfaces \
(tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 8240c9c..ebe7d40 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclStubInit.c,v 1.116 2005/05/10 18:34:49 kennykb Exp $
+ * RCS: @(#) $Id: tclStubInit.c,v 1.117 2005/05/14 20:46:45 das Exp $
*/
#include "tclInt.h"
@@ -308,6 +308,7 @@ TclIntStubs tclIntStubs = {
TclBN_mp_clear, /* 221 */
TclBN_mp_init, /* 222 */
TclBN_mp_read_radix, /* 223 */
+ TclGetPlatform, /* 224 */
};
TclIntPlatStubs tclIntPlatStubs = {
@@ -356,7 +357,7 @@ TclIntPlatStubs tclIntPlatStubs = {
TclpCreateTempFile, /* 22 */
TclpGetTZName, /* 23 */
TclWinNoBackslash, /* 24 */
- TclWinGetPlatform, /* 25 */
+ NULL, /* 25 */
TclWinSetInterfaces, /* 26 */
TclWinFlushDirtyChannels, /* 27 */
TclWinResetInterfaces, /* 28 */
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 68b8963..22859a7 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclTest.c,v 1.89 2005/05/10 18:34:50 kennykb Exp $
+ * RCS: @(#) $Id: tclTest.c,v 1.90 2005/05/14 20:46:46 das Exp $
*/
#define TCL_TEST
@@ -2457,11 +2457,7 @@ TestgetplatformCmd(clientData, interp, argc, argv)
static CONST char *platformStrings[] = { "unix", "mac", "windows" };
TclPlatformType *platform;
-#ifdef __WIN32__
- platform = TclWinGetPlatform();
-#else
- platform = &tclPlatform;
-#endif
+ platform = TclGetPlatform();
if (argc != 1) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
@@ -3697,11 +3693,7 @@ TestsetplatformCmd(clientData, interp, argc, argv)
size_t length;
TclPlatformType *platform;
-#ifdef __WIN32__
- platform = TclWinGetPlatform();
-#else
- platform = &tclPlatform;
-#endif
+ platform = TclGetPlatform();
if (argc != 2) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 278380d..2c787c2 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUtil.c,v 1.59 2005/05/10 18:34:52 kennykb Exp $
+ * RCS: @(#) $Id: tclUtil.c,v 1.60 2005/05/14 20:46:46 das Exp $
*/
#include "tclInt.h"
@@ -2993,3 +2993,26 @@ TclpGetTime(timePtr)
{
Tcl_GetTime(timePtr);
}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclGetPlatform --
+ *
+ * This is a kludge that allows the test library to get access
+ * the internal tclPlatform variable.
+ *
+ * Results:
+ * Returns a pointer to the tclPlatform variable.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+TclPlatformType *
+TclGetPlatform()
+{
+ return &tclPlatform;
+}
'/oss-git/tcl.git/diff/library/msgs/es_HN.msg?h=bug_bc1a96407a&id=fab56e2415bbbc5e2355f500b28d26c5e907ef29'>library/msgs/es_HN.msg6
-rwxr-xr-xlibrary/msgs/es_MX.msg6
-rwxr-xr-xlibrary/msgs/es_NI.msg6
-rwxr-xr-xlibrary/msgs/es_PA.msg6
-rwxr-xr-xlibrary/msgs/es_PE.msg6
-rwxr-xr-xlibrary/msgs/es_PR.msg6
-rwxr-xr-xlibrary/msgs/es_PY.msg6
-rwxr-xr-xlibrary/msgs/es_SV.msg6
-rwxr-xr-xlibrary/msgs/es_UY.msg6
-rwxr-xr-xlibrary/msgs/es_VE.msg6
-rwxr-xr-xlibrary/msgs/et.msg52
-rwxr-xr-xlibrary/msgs/eu.msg47
-rwxr-xr-xlibrary/msgs/eu_ES.msg7
-rwxr-xr-xlibrary/msgs/fa.msg47
-rwxr-xr-xlibrary/msgs/fa_IN.msg52
-rwxr-xr-xlibrary/msgs/fa_IR.msg9
-rwxr-xr-xlibrary/msgs/fi.msg50
-rwxr-xr-xlibrary/msgs/fo.msg47
-rwxr-xr-xlibrary/msgs/fo_FO.msg7
-rwxr-xr-xlibrary/msgs/fr.msg52
-rwxr-xr-xlibrary/msgs/fr_BE.msg7
-rwxr-xr-xlibrary/msgs/fr_CA.msg7
-rwxr-xr-xlibrary/msgs/fr_CH.msg7
-rwxr-xr-xlibrary/msgs/ga.msg47
-rwxr-xr-xlibrary/msgs/ga_IE.msg7
-rwxr-xr-xlibrary/msgs/gl.msg47
-rwxr-xr-xlibrary/msgs/gl_ES.msg6
-rwxr-xr-xlibrary/msgs/gv.msg47
-rwxr-xr-xlibrary/msgs/gv_GB.msg6
-rwxr-xr-xlibrary/msgs/he.msg52
-rwxr-xr-xlibrary/msgs/hi.msg39
-rwxr-xr-xlibrary/msgs/hi_IN.msg6
-rwxr-xr-xlibrary/msgs/hr.msg50
-rwxr-xr-xlibrary/msgs/hu.msg54
-rwxr-xr-xlibrary/msgs/id.msg47
-rwxr-xr-xlibrary/msgs/id_ID.msg6
-rwxr-xr-xlibrary/msgs/is.msg50
-rwxr-xr-xlibrary/msgs/it.msg54
-rwxr-xr-xlibrary/msgs/it_CH.msg6
-rwxr-xr-xlibrary/msgs/ja.msg59
-rwxr-xr-xlibrary/msgs/kl.msg47
-rwxr-xr-xlibrary/msgs/kl_GL.msg7
-rwxr-xr-xlibrary/msgs/ko.msg55
-rwxr-xr-xlibrary/msgs/ko_KR.msg8
-rwxr-xr-xlibrary/msgs/kok.msg39
-rwxr-xr-xlibrary/msgs/kok_IN.msg6
-rwxr-xr-xlibrary/msgs/kw.msg47
-rwxr-xr-xlibrary/msgs/kw_GB.msg6
-rwxr-xr-xlibrary/msgs/lt.msg52
-rwxr-xr-xlibrary/msgs/lv.msg52
-rwxr-xr-xlibrary/msgs/mk.msg52
-rwxr-xr-xlibrary/msgs/mr.msg39
-rwxr-xr-xlibrary/msgs/mr_IN.msg6
-rwxr-xr-xlibrary/msgs/ms.msg47
-rwxr-xr-xlibrary/msgs/ms_MY.msg6
-rwxr-xr-xlibrary/msgs/mt.msg27
-rwxr-xr-xlibrary/msgs/nb.msg52
-rwxr-xr-xlibrary/msgs/nl.msg50
-rwxr-xr-xlibrary/msgs/nl_BE.msg7
-rwxr-xr-xlibrary/msgs/nn.msg52
-rwxr-xr-xlibrary/msgs/pl.msg52
-rwxr-xr-xlibrary/msgs/pt.msg50
-rwxr-xr-xlibrary/msgs/pt_BR.msg7
-rwxr-xr-xlibrary/msgs/ro.msg52
-rwxr-xr-xlibrary/msgs/ru.msg52
-rwxr-xr-xlibrary/msgs/ru_UA.msg6
-rwxr-xr-xlibrary/msgs/sh.msg52
-rwxr-xr-xlibrary/msgs/sk.msg52
-rwxr-xr-xlibrary/msgs/sl.msg52
-rwxr-xr-xlibrary/msgs/sq.msg54
-rwxr-xr-xlibrary/msgs/sr.msg52
-rwxr-xr-xlibrary/msgs/sv.msg52
-rwxr-xr-xlibrary/msgs/sw.msg49
-rwxr-xr-xlibrary/msgs/ta.msg39
-rwxr-xr-xlibrary/msgs/ta_IN.msg6
-rwxr-xr-xlibrary/msgs/te.msg47
-rwxr-xr-xlibrary/msgs/te_IN.msg8
-rwxr-xr-xlibrary/msgs/th.msg54
-rwxr-xr-xlibrary/msgs/tr.msg50
-rwxr-xr-xlibrary/msgs/uk.msg52
-rwxr-xr-xlibrary/msgs/vi.msg50
-rwxr-xr-xlibrary/msgs/zh.msg55
-rwxr-xr-xlibrary/msgs/zh_CN.msg7
-rwxr-xr-xlibrary/msgs/zh_HK.msg28
-rwxr-xr-xlibrary/msgs/zh_SG.msg8
-rwxr-xr-xlibrary/msgs/zh_TW.msg8
-rw-r--r--library/tzdata/Africa/Abidjan6
-rw-r--r--library/tzdata/Africa/Accra20
-rw-r--r--library/tzdata/Africa/Addis_Ababa7
-rw-r--r--library/tzdata/Africa/Algiers39
-rw-r--r--library/tzdata/Africa/Asmera8
-rw-r--r--library/tzdata/Africa/Bamako8
-rw-r--r--library/tzdata/Africa/Bangui6
-rw-r--r--library/tzdata/Africa/Banjul8
-rw-r--r--library/tzdata/Africa/Bissau7
-rw-r--r--library/tzdata/Africa/Blantyre6
-rw-r--r--library/tzdata/Africa/Brazzaville6
-rw-r--r--library/tzdata/Africa/Bujumbura6
-rw-r--r--library/tzdata/Africa/Cairo304
-rw-r--r--library/tzdata/Africa/Casablanca24
-rw-r--r--library/tzdata/Africa/Ceuta258
-rw-r--r--library/tzdata/Africa/Conakry8
-rw-r--r--library/tzdata/Africa/Dakar7
-rw-r--r--library/tzdata/Africa/Dar_es_Salaam8
-rw-r--r--library/tzdata/Africa/Djibouti6
-rw-r--r--library/tzdata/Africa/Douala6
-rw-r--r--library/tzdata/Africa/El_Aaiun7
-rw-r--r--library/tzdata/Africa/Freetown36
-rw-r--r--library/tzdata/Africa/Gaborone8
-rw-r--r--library/tzdata/Africa/Harare6
-rw-r--r--library/tzdata/Africa/Johannesburg11
-rw-r--r--library/tzdata/Africa/Kampala9
-rw-r--r--library/tzdata/Africa/Khartoum39
-rw-r--r--library/tzdata/Africa/Kigali6
-rw-r--r--library/tzdata/Africa/Kinshasa6
-rw-r--r--library/tzdata/Africa/Lagos6
-rw-r--r--library/tzdata/Africa/Libreville6
-rw-r--r--library/tzdata/Africa/Lome6
-rw-r--r--library/tzdata/Africa/Luanda7
-rw-r--r--library/tzdata/Africa/Lubumbashi6
-rw-r--r--library/tzdata/Africa/Lusaka6
-rw-r--r--library/tzdata/Africa/Malabo7
-rw-r--r--library/tzdata/Africa/Maputo6
-rw-r--r--library/tzdata/Africa/Maseru8
-rw-r--r--library/tzdata/Africa/Mbabane6
-rw-r--r--library/tzdata/Africa/Mogadishu8
-rw-r--r--library/tzdata/Africa/Monrovia8
-rw-r--r--library/tzdata/Africa/Nairobi9
-rw-r--r--library/tzdata/Africa/Ndjamena8
-rw-r--r--library/tzdata/Africa/Niamey8
-rw-r--r--library/tzdata/Africa/Nouakchott8
-rw-r--r--library/tzdata/Africa/Ouagadougou6
-rw-r--r--library/tzdata/Africa/Porto-Novo7
-rw-r--r--library/tzdata/Africa/Sao_Tome7
-rw-r--r--library/tzdata/Africa/Timbuktu6
-rw-r--r--library/tzdata/Africa/Tripoli31
-rw-r--r--library/tzdata/Africa/Tunis31
-rw-r--r--library/tzdata/Africa/Windhoek222
-rw-r--r--library/tzdata/America/Adak276
-rw-r--r--library/tzdata/America/Anchorage276
-rw-r--r--library/tzdata/America/Anguilla6
-rw-r--r--library/tzdata/America/Antigua7
-rw-r--r--library/tzdata/America/Araguaina57
-rw-r--r--library/tzdata/America/Argentina/Buenos_Aires63
-rw-r--r--library/tzdata/America/Argentina/Catamarca65
-rw-r--r--library/tzdata/America/Argentina/ComodRivadavia65
-rw-r--r--library/tzdata/America/Argentina/Cordoba63
-rw-r--r--library/tzdata/America/Argentina/Jujuy64
-rw-r--r--library/tzdata/America/Argentina/La_Rioja66
-rw-r--r--library/tzdata/America/Argentina/Mendoza65
-rw-r--r--library/tzdata/America/Argentina/Rio_Gallegos65
-rw-r--r--library/tzdata/America/Argentina/San_Juan66
-rw-r--r--library/tzdata/America/Argentina/Tucuman65
-rw-r--r--library/tzdata/America/Argentina/Ushuaia65
-rw-r--r--library/tzdata/America/Aruba7
-rw-r--r--library/tzdata/America/Asuncion259
-rw-r--r--library/tzdata/America/Atka5
-rw-r--r--library/tzdata/America/Bahia65
-rw-r--r--library/tzdata/America/Barbados15
-rw-r--r--library/tzdata/America/Belem35
-rw-r--r--library/tzdata/America/Belize60
-rw-r--r--library/tzdata/America/Boa_Vista40
-rw-r--r--library/tzdata/America/Bogota9
-rw-r--r--library/tzdata/America/Boise281
-rw-r--r--library/tzdata/America/Buenos_Aires5
-rw-r--r--library/tzdata/America/Cambridge_Bay256
-rw-r--r--library/tzdata/America/Campo_Grande257
-rw-r--r--library/tzdata/America/Cancun216
-rw-r--r--library/tzdata/America/Caracas8
-rw-r--r--library/tzdata/America/Catamarca5
-rw-r--r--library/tzdata/America/Cayenne7
-rw-r--r--library/tzdata/America/Cayman7
-rw-r--r--library/tzdata/America/Chicago369
-rw-r--r--library/tzdata/America/Chihuahua221
-rw-r--r--library/tzdata/America/Cordoba5
-rw-r--r--library/tzdata/America/Costa_Rica15
-rw-r--r--library/tzdata/America/Cuiaba65
-rw-r--r--library/tzdata/America/Curacao7
-rw-r--r--library/tzdata/America/Danmarkshavn39
-rw-r--r--library/tzdata/America/Dawson256
-rw-r--r--library/tzdata/America/Dawson_Creek64
-rw-r--r--library/tzdata/America/Denver291
-rw-r--r--library/tzdata/America/Detroit272
-rw-r--r--library/tzdata/America/Dominica6
-rw-r--r--library/tzdata/America/Edmonton283
-rw-r--r--library/tzdata/America/Eirunepe39
-rw-r--r--library/tzdata/America/El_Salvador10
-rw-r--r--library/tzdata/America/Ensenada5
-rw-r--r--library/tzdata/America/Fort_Wayne5
-rw-r--r--library/tzdata/America/Fortaleza48
-rw-r--r--library/tzdata/America/Glace_Bay273
-rw-r--r--library/tzdata/America/Godthab246
-rw-r--r--library/tzdata/America/Goose_Bay337
-rw-r--r--library/tzdata/America/Grand_Turk249
-rw-r--r--library/tzdata/America/Grenada6
-rw-r--r--library/tzdata/America/Guadeloupe6
-rw-r--r--library/tzdata/America/Guatemala12
-rw-r--r--library/tzdata/America/Guayaquil7
-rw-r--r--library/tzdata/America/Guyana9
-rw-r--r--library/tzdata/America/Halifax362
-rw-r--r--library/tzdata/America/Havana289
-rw-r--r--library/tzdata/America/Hermosillo21
-rw-r--r--library/tzdata/America/Indiana/Indianapolis5
-rw-r--r--library/tzdata/America/Indiana/Knox96
-rw-r--r--library/tzdata/America/Indiana/Marengo47
-rw-r--r--library/tzdata/America/Indiana/Vevay24
-rw-r--r--library/tzdata/America/Indianapolis45
-rw-r--r--library/tzdata/America/Inuvik256
-rw-r--r--library/tzdata/America/Iqaluit255
-rw-r--r--library/tzdata/America/Jamaica28
-rw-r--r--library/tzdata/America/Jujuy5
-rw-r--r--library/tzdata/America/Juneau275
-rw-r--r--library/tzdata/America/Kentucky/Louisville5
-rw-r--r--library/tzdata/America/Kentucky/Monticello279
-rw-r--r--library/tzdata/America/Knox_IN5
-rw-r--r--library/tzdata/America/La_Paz8
-rw-r--r--library/tzdata/America/Lima16
-rw-r--r--library/tzdata/America/Los_Angeles317
-rw-r--r--library/tzdata/America/Louisville314
-rw-r--r--library/tzdata/America/Maceio52
-rw-r--r--library/tzdata/America/Managua17
-rw-r--r--library/tzdata/America/Manaus39
-rw-r--r--library/tzdata/America/Martinique9
-rw-r--r--library/tzdata/America/Mazatlan222
-rw-r--r--library/tzdata/America/Mendoza5
-rw-r--r--library/tzdata/America/Menominee274
-rw-r--r--library/tzdata/America/Merida216
-rw-r--r--library/tzdata/America/Mexico_City228
-rw-r--r--library/tzdata/America/Miquelon234
-rw-r--r--library/tzdata/America/Monterrey218
-rw-r--r--library/tzdata/America/Montevideo69
-rw-r--r--library/tzdata/America/Montreal367
-rw-r--r--library/tzdata/America/Montserrat6
-rw-r--r--library/tzdata/America/Nassau278
-rw-r--r--library/tzdata/America/New_York369
-rw-r--r--library/tzdata/America/Nipigon265
-rw-r--r--library/tzdata/America/Nome276
-rw-r--r--library/tzdata/America/Noronha48
-rw-r--r--library/tzdata/America/North_Dakota/Center279
-rw-r--r--library/tzdata/America/Panama7
-rw-r--r--library/tzdata/America/Pangnirtung256
-rw-r--r--library/tzdata/America/Paramaribo10
-rw-r--r--library/tzdata/America/Phoenix17
-rw-r--r--library/tzdata/America/Port-au-Prince37
-rw-r--r--library/tzdata/America/Port_of_Spain6
-rw-r--r--library/tzdata/America/Porto_Acre5
-rw-r--r--library/tzdata/America/Porto_Velho35
-rw-r--r--library/tzdata/America/Puerto_Rico8
-rw-r--r--library/tzdata/America/Rainy_River265
-rw-r--r--library/tzdata/America/Rankin_Inlet255
-rw-r--r--library/tzdata/America/Recife48
-rw-r--r--library/tzdata/America/Regina58
-rw-r--r--library/tzdata/America/Rio_Branco35
-rw-r--r--library/tzdata/America/Rosario5
-rw-r--r--library/tzdata/America/Santiago287
-rw-r--r--library/tzdata/America/Santo_Domingo21
-rw-r--r--library/tzdata/America/Sao_Paulo258
-rw-r--r--library/tzdata/America/Scoresbysund246
-rw-r--r--library/tzdata/America/Shiprock5
-rw-r--r--library/tzdata/America/St_Johns371
-rw-r--r--library/tzdata/America/St_Kitts6
-rw-r--r--library/tzdata/America/St_Lucia7
-rw-r--r--library/tzdata/America/St_Thomas6
-rw-r--r--library/tzdata/America/St_Vincent7
-rw-r--r--library/tzdata/America/Swift_Current29
-rw-r--r--library/tzdata/America/Tegucigalpa10
-rw-r--r--library/tzdata/America/Thule224
-rw-r--r--library/tzdata/America/Thunder_Bay272
-rw-r--r--library/tzdata/America/Tijuana283
-rw-r--r--library/tzdata/America/Toronto366
-rw-r--r--library/tzdata/America/Tortola6
-rw-r--r--library/tzdata/America/Vancouver319
-rw-r--r--library/tzdata/America/Virgin5
-rw-r--r--library/tzdata/America/Whitehorse256
-rw-r--r--library/tzdata/America/Winnipeg315
-rw-r--r--library/tzdata/America/Yakutat276
-rw-r--r--library/tzdata/America/Yellowknife255
-rw-r--r--library/tzdata/Antarctica/Casey6
-rw-r--r--library/tzdata/Antarctica/Davis8
-rw-r--r--library/tzdata/Antarctica/DumontDUrville8
-rw-r--r--library/tzdata/Antarctica/Mawson6
-rw-r--r--library/tzdata/Antarctica/McMurdo257
-rw-r--r--library/tzdata/Antarctica/Palmer260
-rw-r--r--library/tzdata/Antarctica/Rothera6
-rw-r--r--library/tzdata/Antarctica/South_Pole5
-rw-r--r--library/tzdata/Antarctica/Syowa6
-rw-r--r--library/tzdata/Antarctica/Vostok6
-rw-r--r--library/tzdata/Arctic/Longyearbyen5
-rw-r--r--library/tzdata/Asia/Aden6
-rw-r--r--library/tzdata/Asia/Almaty245
-rw-r--r--library/tzdata/Asia/Amman248
-rw-r--r--library/tzdata/Asia/Anadyr247
-rw-r--r--library/tzdata/Asia/Aqtau247
-rw-r--r--library/tzdata/Asia/Aqtobe246
-rw-r--r--library/tzdata/Asia/Ashgabat31
-rw-r--r--library/tzdata/Asia/Ashkhabad5
-rw-r--r--library/tzdata/Asia/Baghdad243
-rw-r--r--library/tzdata/Asia/Bahrain7
-rw-r--r--library/tzdata/Asia/Baku243
-rw-r--r--library/tzdata/Asia/Bangkok7
-rw-r--r--library/tzdata/Asia/Beirut270
-rw-r--r--library/tzdata/Asia/Bishkek245
-rw-r--r--library/tzdata/Asia/Brunei7
-rw-r--r--library/tzdata/Asia/Calcutta10
-rw-r--r--library/tzdata/Asia/Choibalsan237
-rw-r--r--library/tzdata/Asia/Chongqing19
-rw-r--r--library/tzdata/Asia/Chungking5
-rw-r--r--library/tzdata/Asia/Colombo12
-rw-r--r--library/tzdata/Asia/Dacca5
-rw-r--r--library/tzdata/Asia/Damascus280
-rw-r--r--library/tzdata/Asia/Dhaka11
-rw-r--r--library/tzdata/Asia/Dili10
-rw-r--r--library/tzdata/Asia/Dubai6
-rw-r--r--library/tzdata/Asia/Dushanbe29
-rw-r--r--library/tzdata/Asia/Gaza275
-rw-r--r--library/tzdata/Asia/Harbin22
-rw-r--r--library/tzdata/Asia/Hong_Kong74
-rw-r--r--library/tzdata/Asia/Hovd237
-rw-r--r--library/tzdata/Asia/Irkutsk247
-rw-r--r--library/tzdata/Asia/Istanbul5
-rw-r--r--library/tzdata/Asia/Jakarta13
-rw-r--r--library/tzdata/Asia/Jayapura8
-rw-r--r--library/tzdata/Asia/Jerusalem272
-rw-r--r--library/tzdata/Asia/Kabul7
-rw-r--r--library/tzdata/Asia/Kamchatka246
-rw-r--r--library/tzdata/Asia/Karachi12
-rw-r--r--library/tzdata/Asia/Kashgar20
-rw-r--r--library/tzdata/Asia/Katmandu7
-rw-r--r--library/tzdata/Asia/Krasnoyarsk246
-rw-r--r--library/tzdata/Asia/Kuala_Lumpur13
-rw-r--r--library/tzdata/Asia/Kuching24
-rw-r--r--library/tzdata/Asia/Kuwait6
-rw-r--r--library/tzdata/Asia/Macao5
-rw-r--r--library/tzdata/Asia/Macau46
-rw-r--r--library/tzdata/Asia/Magadan246
-rw-r--r--library/tzdata/Asia/Makassar9
-rw-r--r--library/tzdata/Asia/Manila15
-rw-r--r--library/tzdata/Asia/Muscat6
-rw-r--r--library/tzdata/Asia/Nicosia257
-rw-r--r--library/tzdata/Asia/Novosibirsk247
-rw-r--r--library/tzdata/Asia/Omsk246
-rw-r--r--library/tzdata/Asia/Oral247
-rw-r--r--library/tzdata/Asia/Phnom_Penh9
-rw-r--r--library/tzdata/Asia/Pontianak13
-rw-r--r--library/tzdata/Asia/Pyongyang11
-rw-r--r--library/tzdata/Asia/Qatar7
-rw-r--r--library/tzdata/Asia/Qyzylorda247
-rw-r--r--library/tzdata/Asia/Rangoon9
-rw-r--r--library/tzdata/Asia/Riyadh6
-rw-r--r--library/tzdata/Asia/Saigon9
-rw-r--r--library/tzdata/Asia/Sakhalin247
-rw-r--r--library/tzdata/Asia/Samarkand35
-rw-r--r--library/tzdata/Asia/Seoul18
-rw-r--r--library/tzdata/Asia/Shanghai23
-rw-r--r--library/tzdata/Asia/Singapore14
-rw-r--r--library/tzdata/Asia/Taipei46
-rw-r--r--library/tzdata/Asia/Tashkent33
-rw-r--r--library/tzdata/Asia/Tbilisi249
-rw-r--r--library/tzdata/Asia/Tehran109
-rw-r--r--library/tzdata/Asia/Tel_Aviv5
-rw-r--r--library/tzdata/Asia/Thimbu5
-rw-r--r--library/tzdata/Asia/Thimphu7
-rw-r--r--library/tzdata/Asia/Tokyo8
-rw-r--r--library/tzdata/Asia/Ujung_Pandang5
-rw-r--r--library/tzdata/Asia/Ulaanbaatar237
-rw-r--r--library/tzdata/Asia/Ulan_Bator5
-rw-r--r--library/tzdata/Asia/Urumqi19
-rw-r--r--library/tzdata/Asia/Vientiane9
-rw-r--r--library/tzdata/Asia/Vladivostok246
-rw-r--r--library/tzdata/Asia/Yakutsk246
-rw-r--r--library/tzdata/Asia/Yekaterinburg246
-rw-r--r--library/tzdata/Asia/Yerevan245
-rw-r--r--library/tzdata/Atlantic/Azores349
-rw-r--r--library/tzdata/Atlantic/Bermuda258
-rw-r--r--library/tzdata/Atlantic/Canary248
-rw-r--r--library/tzdata/Atlantic/Cape_Verde9
-rw-r--r--library/tzdata/Atlantic/Faeroe245
-rw-r--r--library/tzdata/Atlantic/Jan_Mayen5
-rw-r--r--library/tzdata/Atlantic/Madeira350
-rw-r--r--library/tzdata/Atlantic/Reykjavik70
-rw-r--r--library/tzdata/Atlantic/South_Georgia6
-rw-r--r--library/tzdata/Atlantic/St_Helena7
-rw-r--r--library/tzdata/Atlantic/Stanley253
-rw-r--r--library/tzdata/Australia/ACT5
-rw-r--r--library/tzdata/Australia/Adelaide273
-rw-r--r--library/tzdata/Australia/Brisbane23
-rw-r--r--library/tzdata/Australia/Broken_Hill275
-rw-r--r--library/tzdata/Australia/Canberra5
-rw-r--r--library/tzdata/Australia/Darwin15
-rw-r--r--library/tzdata/Australia/Hobart281
-rw-r--r--library/tzdata/Australia/LHI5
-rw-r--r--library/tzdata/Australia/Lindeman28
-rw-r--r--library/tzdata/Australia/Lord_Howe244
-rw-r--r--library/tzdata/Australia/Melbourne272
-rw-r--r--library/tzdata/Australia/NSW5
-rw-r--r--library/tzdata/Australia/North5
-rw-r--r--library/tzdata/Australia/Perth19
-rw-r--r--library/tzdata/Australia/Queensland5
-rw-r--r--library/tzdata/Australia/South5
-rw-r--r--library/tzdata/Australia/Sydney272
-rw-r--r--library/tzdata/Australia/Tasmania5
-rw-r--r--library/tzdata/Australia/Victoria5
-rw-r--r--library/tzdata/Australia/West5
-rw-r--r--library/tzdata/Australia/Yancowinna5
-rw-r--r--library/tzdata/Brazil/Acre5
-rw-r--r--library/tzdata/Brazil/DeNoronha5
-rw-r--r--library/tzdata/Brazil/East5
-rw-r--r--library/tzdata/Brazil/West5
-rw-r--r--library/tzdata/CET263
-rw-r--r--library/tzdata/CST6CDT5
-rw-r--r--library/tzdata/Canada/Atlantic5
-rw-r--r--library/tzdata/Canada/Central5
-rw-r--r--library/tzdata/Canada/East-Saskatchewan5
-rw-r--r--library/tzdata/Canada/Eastern5
-rw-r--r--library/tzdata/Canada/Mountain5
-rw-r--r--library/tzdata/Canada/Newfoundland5
-rw-r--r--library/tzdata/Canada/Pacific5
-rw-r--r--library/tzdata/Canada/Saskatchewan5
-rw-r--r--library/tzdata/Canada/Yukon5
-rw-r--r--library/tzdata/Chile/Continental5
-rw-r--r--library/tzdata/Chile/EasterIsland5
-rw-r--r--library/tzdata/Cuba5
-rw-r--r--library/tzdata/EET251
-rw-r--r--library/tzdata/EST5
-rw-r--r--library/tzdata/EST5EDT5
-rw-r--r--library/tzdata/Egypt5
-rw-r--r--library/tzdata/Eire5
-rw-r--r--library/tzdata/Etc/GMT5
-rw-r--r--library/tzdata/Etc/GMT+05
-rw-r--r--library/tzdata/Etc/GMT+15
-rw-r--r--library/tzdata/Etc/GMT+105
-rw-r--r--library/tzdata/Etc/GMT+115
-rw-r--r--library/tzdata/Etc/GMT+125
-rw-r--r--library/tzdata/Etc/GMT+25
-rw-r--r--library/tzdata/Etc/GMT+35
-rw-r--r--library/tzdata/Etc/GMT+45
-rw-r--r--library/tzdata/Etc/GMT+55
-rw-r--r--library/tzdata/Etc/GMT+65
-rw-r--r--library/tzdata/Etc/GMT+75
-rw-r--r--library/tzdata/Etc/GMT+85
-rw-r--r--library/tzdata/Etc/GMT+95
-rw-r--r--library/tzdata/Etc/GMT-05
-rw-r--r--library/tzdata/Etc/GMT-15
-rw-r--r--library/tzdata/Etc/GMT-105
-rw-r--r--library/tzdata/Etc/GMT-115
-rw-r--r--library/tzdata/Etc/GMT-125
-rw-r--r--library/tzdata/Etc/GMT-135
-rw-r--r--library/tzdata/Etc/GMT-145
-rw-r--r--library/tzdata/Etc/GMT-25
-rw-r--r--library/tzdata/Etc/GMT-35
-rw-r--r--library/tzdata/Etc/GMT-45
-rw-r--r--library/tzdata/Etc/GMT-55
-rw-r--r--library/tzdata/Etc/GMT-65
-rw-r--r--library/tzdata/Etc/GMT-75
-rw-r--r--library/tzdata/Etc/GMT-85
-rw-r--r--library/tzdata/Etc/GMT-95
-rw-r--r--library/tzdata/Etc/GMT05
-rw-r--r--library/tzdata/Etc/Greenwich5
-rw-r--r--library/tzdata/Etc/UCT5
-rw-r--r--library/tzdata/Etc/UTC5
-rw-r--r--library/tzdata/Etc/Universal5
-rw-r--r--library/tzdata/Etc/Zulu5
-rw-r--r--library/tzdata/Europe/Amsterdam311
-rw-r--r--library/tzdata/Europe/Andorra237
-rw-r--r--library/tzdata/Europe/Athens268
-rw-r--r--library/tzdata/Europe/Belfast372
-rw-r--r--library/tzdata/Europe/Belgrade249
-rw-r--r--library/tzdata/Europe/Berlin274
-rw-r--r--library/tzdata/Europe/Bratislava5
-rw-r--r--library/tzdata/Europe/Brussels316
-rw-r--r--library/tzdata/Europe/Bucharest268
-rw-r--r--library/tzdata/Europe/Budapest283
-rw-r--r--library/tzdata/Europe/Chisinau272
-rw-r--r--library/tzdata/Europe/Copenhagen265
-rw-r--r--library/tzdata/Europe/Dublin359
-rw-r--r--library/tzdata/Europe/Gibraltar328
-rw-r--r--library/tzdata/Europe/Helsinki248
-rw-r--r--library/tzdata/Europe/Istanbul304
-rw-r--r--library/tzdata/Europe/Kaliningrad260
-rw-r--r--library/tzdata/Europe/Kiev251
-rw-r--r--library/tzdata/Europe/Lisbon351
-rw-r--r--library/tzdata/Europe/Ljubljana5
-rw-r--r--library/tzdata/Europe/London372
-rw-r--r--library/tzdata/Europe/Luxembourg313
-rw-r--r--library/tzdata/Europe/Madrid294
-rw-r--r--library/tzdata/Europe/Malta300
-rw-r--r--library/tzdata/Europe/Mariehamn5
-rw-r--r--library/tzdata/Europe/Minsk251
-rw-r--r--library/tzdata/Europe/Monaco315
-rw-r--r--library/tzdata/Europe/Moscow259
-rw-r--r--library/tzdata/Europe/Nicosia5
-rw-r--r--library/tzdata/Europe/Oslo272
-rw-r--r--library/tzdata/Europe/Paris314
-rw-r--r--library/tzdata/Europe/Prague272
-rw-r--r--library/tzdata/Europe/Riga258
-rw-r--r--library/tzdata/Europe/Rome301
-rw-r--r--library/tzdata/Europe/Samara245
-rw-r--r--library/tzdata/Europe/San_Marino5
-rw-r--r--library/tzdata/Europe/Sarajevo5
-rw-r--r--library/tzdata/Europe/Simferopol253
-rw-r--r--library/tzdata/Europe/Skopje5
-rw-r--r--library/tzdata/Europe/Sofia259
-rw-r--r--library/tzdata/Europe/Stockholm250
-rw-r--r--library/tzdata/Europe/Tallinn255
-rw-r--r--library/tzdata/Europe/Tirane263
-rw-r--r--library/tzdata/Europe/Tiraspol5
-rw-r--r--library/tzdata/Europe/Uzhgorod254
-rw-r--r--library/tzdata/Europe/Vaduz245
-rw-r--r--library/tzdata/Europe/Vatican5
-rw-r--r--library/tzdata/Europe/Vienna271
-rw-r--r--library/tzdata/Europe/Vilnius251
-rw-r--r--library/tzdata/Europe/Warsaw294
-rw-r--r--library/tzdata/Europe/Zagreb5
-rw-r--r--library/tzdata/Europe/Zaporozhye252
-rw-r--r--library/tzdata/Europe/Zurich252
-rw-r--r--library/tzdata/GB5
-rw-r--r--library/tzdata/GB-Eire5
-rw-r--r--library/tzdata/GMT5
-rw-r--r--library/tzdata/GMT+05
-rw-r--r--library/tzdata/GMT-05
-rw-r--r--library/tzdata/GMT05
-rw-r--r--library/tzdata/Greenwich5
-rw-r--r--library/tzdata/HST5
-rw-r--r--library/tzdata/Hongkong5
-rw-r--r--library/tzdata/Iceland5
-rw-r--r--library/tzdata/Indian/Antananarivo8
-rw-r--r--library/tzdata/Indian/Chagos6
-rw-r--r--library/tzdata/Indian/Christmas6
-rw-r--r--library/tzdata/Indian/Cocos5
-rw-r--r--library/tzdata/Indian/Comoro6
-rw-r--r--library/tzdata/Indian/Kerguelen6
-rw-r--r--library/tzdata/Indian/Mahe6
-rw-r--r--library/tzdata/Indian/Maldives7
-rw-r--r--library/tzdata/Indian/Mauritius6
-rw-r--r--library/tzdata/Indian/Mayotte6
-rw-r--r--library/tzdata/Indian/Reunion6
-rw-r--r--library/tzdata/Iran5
-rw-r--r--library/tzdata/Israel5
-rw-r--r--library/tzdata/Jamaica5
-rw-r--r--library/tzdata/Japan5
-rw-r--r--library/tzdata/Kwajalein5
-rw-r--r--library/tzdata/Libya5
-rw-r--r--library/tzdata/MET263
-rw-r--r--library/tzdata/MST5
-rw-r--r--library/tzdata/MST7MDT5
-rw-r--r--library/tzdata/Mexico/BajaNorte5
-rw-r--r--library/tzdata/Mexico/BajaSur5
-rw-r--r--library/tzdata/Mexico/General5
-rw-r--r--library/tzdata/NZ5
-rw-r--r--library/tzdata/NZ-CHAT5
-rw-r--r--library/tzdata/Navajo5
-rw-r--r--library/tzdata/PRC5
-rw-r--r--library/tzdata/PST8PDT5
-rw-r--r--library/tzdata/Pacific/Apia8
-rw-r--r--library/tzdata/Pacific/Auckland285
-rw-r--r--library/tzdata/Pacific/Chatham257
-rw-r--r--library/tzdata/Pacific/Easter275
-rw-r--r--library/tzdata/Pacific/Efate26
-rw-r--r--library/tzdata/Pacific/Enderbury8
-rw-r--r--library/tzdata/Pacific/Fakaofo6
-rw-r--r--library/tzdata/Pacific/Fiji10
-rw-r--r--library/tzdata/Pacific/Funafuti6
-rw-r--r--library/tzdata/Pacific/Galapagos7
-rw-r--r--library/tzdata/Pacific/Gambier6
-rw-r--r--library/tzdata/Pacific/Guadalcanal6
-rw-r--r--library/tzdata/Pacific/Guam8
-rw-r--r--library/tzdata/Pacific/Honolulu12
-rw-r--r--library/tzdata/Pacific/Johnston5
-rw-r--r--library/tzdata/Pacific/Kiritimati8
-rw-r--r--library/tzdata/Pacific/Kosrae8
-rw-r--r--library/tzdata/Pacific/Kwajalein8
-rw-r--r--library/tzdata/Pacific/Majuro7
-rw-r--r--library/tzdata/Pacific/Marquesas6
-rw-r--r--library/tzdata/Pacific/Midway10
-rw-r--r--library/tzdata/Pacific/Nauru9
-rw-r--r--library/tzdata/Pacific/Niue8
-rw-r--r--library/tzdata/Pacific/Norfolk7
-rw-r--r--library/tzdata/Pacific/Noumea12
-rw-r--r--library/tzdata/Pacific/Pago_Pago10
-rw-r--r--library/tzdata/Pacific/Palau6
-rw-r--r--library/tzdata/Pacific/Pitcairn7
-rw-r--r--library/tzdata/Pacific/Ponape6
-rw-r--r--library/tzdata/Pacific/Port_Moresby7
-rw-r--r--library/tzdata/Pacific/Rarotonga32
-rw-r--r--library/tzdata/Pacific/Saipan9
-rw-r--r--library/tzdata/Pacific/Samoa5
-rw-r--r--library/tzdata/Pacific/Tahiti6
-rw-r--r--library/tzdata/Pacific/Tarawa6
-rw-r--r--library/tzdata/Pacific/Tongatapu14
-rw-r--r--library/tzdata/Pacific/Truk6
-rw-r--r--library/tzdata/Pacific/Wake6
-rw-r--r--library/tzdata/Pacific/Wallis6
-rw-r--r--library/tzdata/Pacific/Yap7
-rw-r--r--library/tzdata/Poland5
-rw-r--r--library/tzdata/Portugal5
-rw-r--r--library/tzdata/ROC5
-rw-r--r--library/tzdata/ROK5
-rw-r--r--library/tzdata/Singapore5
-rw-r--r--library/tzdata/SystemV/AST45
-rw-r--r--library/tzdata/SystemV/AST4ADT5
-rw-r--r--library/tzdata/SystemV/CST65
-rw-r--r--library/tzdata/SystemV/CST6CDT5
-rw-r--r--library/tzdata/SystemV/EST55
-rw-r--r--library/tzdata/SystemV/EST5EDT5
-rw-r--r--library/tzdata/SystemV/HST105
-rw-r--r--library/tzdata/SystemV/MST75
-rw-r--r--library/tzdata/SystemV/MST7MDT5
-rw-r--r--library/tzdata/SystemV/PST85
-rw-r--r--library/tzdata/SystemV/PST8PDT5
-rw-r--r--library/tzdata/SystemV/YST95
-rw-r--r--library/tzdata/SystemV/YST9YDT5
-rw-r--r--library/tzdata/Turkey5
-rw-r--r--library/tzdata/UCT5
-rw-r--r--library/tzdata/US/Alaska5
-rw-r--r--library/tzdata/US/Aleutian5
-rw-r--r--library/tzdata/US/Arizona5
-rw-r--r--library/tzdata/US/Central5
-rw-r--r--library/tzdata/US/East-Indiana5
-rw-r--r--library/tzdata/US/Eastern5
-rw-r--r--library/tzdata/US/Hawaii5
-rw-r--r--library/tzdata/US/Indiana-Starke5
-rw-r--r--library/tzdata/US/Michigan5
-rw-r--r--library/tzdata/US/Mountain5
-rw-r--r--library/tzdata/US/Pacific5
-rw-r--r--library/tzdata/US/Pacific-New5
-rw-r--r--library/tzdata/US/Samoa5
-rw-r--r--library/tzdata/UTC5
-rw-r--r--library/tzdata/Universal5
-rw-r--r--library/tzdata/W-SU5
-rw-r--r--library/tzdata/WET251
-rw-r--r--library/tzdata/Zulu5
-rw-r--r--tests/clock.test35325
-rw-r--r--tests/interp.test8
-rw-r--r--tests/safe.test8
-rw-r--r--tools/installData.tcl53
-rwxr-xr-xtools/loadICU.tcl622
-rwxr-xr-xtools/makeTestCases.tcl1154
-rwxr-xr-xtools/tclZIC.tcl1440
-rw-r--r--unix/Makefile.in20
-rwxr-xr-xunix/configure3
-rw-r--r--unix/tcl.m42
690 files changed, 93971 insertions, 974 deletions
diff --git a/ChangeLog b/ChangeLog
index 49d782f..cf75571 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,47 @@
+2004-08-18 Kevin Kenny <kennykb@acm.org>
+
+ * doc/clock.n
+ * generic/tclBasic.c (Tcl_CreateInterp, Tcl_HideUnsafeCommands):
+ * generic/tclClock.c (all):
+ * generic/tclInt.h:
+ * generic/tclInterp.c (CreateSlave):
+ * library/clock.tcl: (new file)
+ * library/init.tcl (clock):
+ * library/msgs/*.msg:(new files)
+ * library/tzdata/*:
+ * library/tzdata/*/*:
+ * library/tzdata/*/*/*: (new files)
+ * tools/installData.tcl: (new file)
+ * tools/loadICU.tcl: (new file)
+ * tools/makeTestCases.tcl: (new file)
+ * tools/tclZIC.tcl: (new file)
+ * unix/Makefile.in:
+ * unix/configure: (regenerated)
+ * unix/tcl.m4:
+ Implementation of TIPs #173 and #209.
+
+ The [clock] command is now a Tcl ensemble, with most of its
+ functionality written in Tcl and callouts to C code only to
+ access low-level functions such as localtime, mktime and
+ tzset.
+
+ In addition to the functionality changes called out in the two
+ TIPs, it is worth noting that the [clock] command in a safe
+ slave interpreter is now an alias to the [clock] command in the
+ master, and that [clock] is otherwise not expected to function
+ entirely correctly in safe interps. C code that simply does
+ Tcl_MakeSafe needs to be aware that [clock] may need special
+ handling. (It appears unlikely that such code actually exists.)
+
+ Many thanks to all the many people who assisted with testing,
+ debugging, criticism of the specification, and localisation.
+ Deserving of particular mention are Joe English, Clif Flynt, Donal
+ K. Fellows, Jeff Hobbs, Cameron Laird, Arjen Markus, Reinhard Max,
+ Christopher Nelson, Steve Offutt, Donald G. Porter, Pascal
+ Scheffers, Peter da Silva and Richard Suchenwirth-Bauersachs.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
2004-08-16 Miguel Sofer <msofer@users.sf.net>
* doc/SetVar.3:
diff --git a/doc/clock.n b/doc/clock.n
index b23e976..31b919c 100644
--- a/doc/clock.n
+++ b/doc/clock.n
@@ -1,252 +1,822 @@
'\"
-'\" Copyright (c) 1992-1995 Karl Lehenbauer and Mark Diekhans.
-'\" Copyright (c) 1995-1997 Sun Microsystems, Inc.
-'\" Copyright (c) 1998-1999 Scriptics Corporation
-'\" Copyright (c) 2002 ActiveState Corporation
+'\" Generated from file './doc/clock.dt' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) 2004 Kevin B. Kenny <kennykb@acm.org>. All rights reserved.
'\"
-'\" This documentation is derived from the time and date facilities of
-'\" TclX, by Mark Diekhans and Karl Lehenbauer.
-'\"
-'\" See the file "license.terms" for information on usage and redistribution
-'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-'\"
-'\" RCS: @(#) $Id: clock.n,v 1.17 2004/05/24 23:31:42 dkf Exp $
-'\"
.so man.macros
-.TH clock n 8.4 Tcl "Tcl Built-In Commands"
+.TH "clock" n 8.5 Tcl "Tcl commands"
.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-clock \- Obtain and manipulate time
-.SH SYNOPSIS
-\fBclock \fIoption\fR ?\fIarg arg ...\fR?
+.SH "NAME"
+clock \- Obtain and manipulate dates and times
+.SH "SYNOPSIS"
+package require \fBTcl 8.5\fR
+.sp
+\fBclock add\fR \fItimeVal\fR ?\fIcount unit...\fR? ?\fI-option value\fR?
+.sp
+\fBclock clicks\fR ?\fI-option\fR?
+.sp
+\fBclock format\fR \fItimeVal\fR ?\fI-option value\fR...?
+.sp
+\fBclock microseconds\fR
+.sp
+\fBclock milliseconds\fR
+.sp
+\fBclock scan\fR \fIinputString\fR ?\fI-option value\fR...?
+.sp
+\fBclock seconds\fR
+.sp
.BE
-
-.SH DESCRIPTION
+.SH "DESCRIPTION"
.PP
-This command performs one of several operations that may obtain
-or manipulate strings or values that represent some notion of
-time. The \fIoption\fR argument determines what action is carried
-out by the command. The legal \fIoptions\fR (which may be
-abbreviated) are:
+The \fBclock\fR command performs several operations that obtain and
+manipulate values that represent times. The command supports several
+subcommands that determine what action is carried out by the command.
.TP
-\fBclock clicks\fR ?\fI\-option\fR?
-If no \fIoption\fR argument is supplied, returns a high-resolution
+\fBclock add\fR \fItimeVal\fR ?\fIcount unit...\fR? ?\fI-option value\fR?
+Adds a (possibly negative) offset to a time that is expressed as an
+integer number of seconds. See \fBCLOCK ARITHMETIC\fR for a full description.
+.TP
+\fBclock clicks\fR ?\fI-option\fR?
+If no \fI-option\fR argument is supplied, returns a high-resolution
time value as a system-dependent integer value. The unit of the value
is system-dependent but should be the highest resolution clock available
-on the system such as a CPU cycle counter.
-.TP
-.VS 8.5
-If the \fIoption\fR argument is \fB\-milliseconds\fR, then the value is
-guaranteed to be an approximate count of milliseconds returned as
-a wide integer; the rule should
-always hold that \fBclock clicks -milliseconds\fR divided by 1000 is the
-same as \fBclock seconds\fR.
-.TP
-It the \fIoption\fR argument is \fB-microseconds\fR, then the value is
-guaranteed to be an approximate count of microseconds returned as a wide
-integer; the rule should hold that \fBclock clicks -microseconds\fR
-divided by 1000 is the same as \fBclock clicks -milliseconds\fR.
-.TP
-On some hardware, the counts of milliseconds and microseconds may diverge
-from the system clock for short periods; the reason is that they can
-be derived from different sources, and a complex procedure is required
-to calibrate them. Moreover, Tcl makes an effort never to have the clock
-leap forward nor appear to run backward, preferring instead to slow or
-speed up the clock frequency slightly until it's back in synchronization.
-For this reason, most Tcl programmers need never worry about such
-phenomena as leap seconds.
-.VE 8.5
-.TP
-\fBclock format \fIclockValue\fR ?\fB\-format \fIstring\fR? ?\fB\-gmt \fIboolean\fR?
-Converts an integer time value, typically returned by
-\fBclock seconds\fR, \fBclock scan\fR, or the \fBatime\fR or \fBmtime\fR
-options of the \fBfile\fR command, to human-readable
-form. If the \fB\-format\fR argument is present the next argument is a
-string that describes how the date and time are to be formatted.
-Field descriptors consist of a \fB%\fR followed by a field
-descriptor character. All other characters are copied into the result.
-Valid field descriptors are:
-.RS
-.IP \fB%%\fR
-Insert a %.
-.IP \fB%a\fR
-Abbreviated weekday name (Mon, Tue, etc.).
-.IP \fB%A\fR
-Full weekday name (Monday, Tuesday, etc.).
-.IP \fB%b\fR
-Abbreviated month name (Jan, Feb, etc.).
-.IP \fB%B\fR
-Full month name.
-.IP \fB%c\fR
-Locale specific date and time. The format for date and time
-in the default "C" locale on Unix is "%a %b %d %H:%M:%S %Y".
-On Windows, this value is the locale specific long date and time, as
-specified in the Regional Options control panel settings.
-.IP \fB%C\fR
-First two digits of the four-digit year (19 or 20).
-.IP \fB%d\fR
-Day of month (01 - 31).
-'\" Since the inclusion of compat/strftime.c, %D, %e, %h should work on all
-'\" platforms.
-.IP \fB%D\fR
-Date as %m/%d/%y.
-.IP \fB%e\fR
-Day of month (1 - 31), no leading zeros.
-.IP \fB%g\fR
-The ISO8601 year number corresponding to the ISO8601 week (%V), expressed
-as a two-digit year-of-the-century, with leading zero if necessary.
-.IP \fB%G\fR
-The ISO8601 year number corresponding to the ISO8601 week (%V), expressed
-as a four-digit number.
-.IP \fB%h\fR
-Abbreviated month name.
-.IP \fB%H\fR
-Hour in 24-hour format (00 - 23).
-.IP \fB%I\fR
-Hour in 12-hour format (01 - 12).
-.IP \fB%j\fR
-Day of year (001 - 366).
-.IP \fB%k\fR
-Hour in 24-hour format, without leading zeros (0 - 23).
-.IP \fB%l\fR
-Hour in 12-hour format, without leading zeros (1 - 12).
-.IP \fB%m\fR
-Month number (01 - 12).
-.IP \fB%M\fR
-Minute (00 - 59).
-.IP \fB%n\fR
-Insert a newline.
-.IP \fB%p\fR
-AM/PM indicator.
-.IP \fB%r\fR
-Time in a locale-specific "meridian" format. The "meridian"
-format in the default "C" locale is "%I:%M:%S %p".
-.IP \fB%R\fR
-Time as %H:%M.
-.IP \fB%s\fR
-Count of seconds since the epoch, expressed as a decimal integer.
-.IP \fB%S\fR
-Seconds (00 - 59).
-.IP \fB%t\fR
-Insert a tab.
-.IP \fB%T\fR
-Time as %H:%M:%S.
-.IP \fB%u\fR
-Weekday number (Monday = 1, Sunday = 7).
-.IP \fB%U\fR
-Week of year (00 - 52), Sunday is the first day of the week.
-.IP \fB%V\fR
-Week of year according to ISO-8601 rules. Week 1 of a given
-year is the week containing 4 January.
-.IP \fB%w\fR
-Weekday number (Sunday = 0, Saturday = 6).
-.IP \fB%W\fR
-Week of year (00 - 52), Monday is the first day of the week.
-.IP \fB%x\fR
-Locale specific date format. The format for a date in the default "C"
-locale for Unix is "%m/%d/%y".
-On Windows, this value is the locale specific short date format, as
-specified in the Regional Options control panel settings.
-.IP \fB%X\fR
-Locale specific 24-hour time format. The format for a
-24-hour time in the default "C" locale for Unix is "%H:%M:%S".
-On Windows, this value is the locale specific time format, as
-specified in the Regional Options control panel settings.
-.IP \fB%y\fR
-Year without century (00 - 99).
-.IP \fB%Y\fR
-Year with century (e.g. 1990)
-.IP \fB%Z\fR
-Time zone name.
-.RE
+on the system such as a CPU cycle counter. See \fBHIGH RESOLUTION TIMERS\fR for a full description.
+.sp
+If the \fI-option\fR argument is \fI-milliseconds\fR, then the command
+is synonymous with \fBclock milliseconds\fR (see below). This
+usage is obsolete, and \fBclock milliseconds\fR is to be
+considered the preferred way of obtaining a count of milliseconds.
.sp
-'\" All the field descriptors should be portable now that
-'\" compat/strftime.c is in place, with the possible exception
-'\" of the time zone name.
-'\".RS
-'\"In addition, the following field descriptors may be supported on some
-'\"systems (e.g. Unix but not Windows):
-'\".IP \fB%D\fR
-'\"Date as %m/%d/%y.
-'\".IP \fB%e\fR
-'\"Day of month (1 - 31), no leading zeros.
-'\".IP \fB%h\fR
-'\"Abbreviated month name.
-'\".IP \fB%n\fR
-'\"Insert a newline.
-'\".IP \fB%r\fR
-'\"Time as %I:%M:%S %p.
-'\".IP \fB%R\fR
-'\"Time as %H:%M.
-'\".IP \fB%t\fR
-'\"Insert a tab.
-'\".IP \fB%T\fR
-'\"Time as %H:%M:%S.
-'\".RE
-'\".sp
+It the \fI-option\fR argument is \fI-microseconds\fR, then the command
+is synonymous with \fBclock microseconds\fR (see below). This
+usage is obsolete, and \fBclock microseconds\fR is to be
+considered the preferred way of obtaining a count of microseconds.
+.TP
+\fBclock format\fR \fItimeVal\fR ?\fI-option value\fR...?
+Formats a time that is expressed as an integer number of seconds into a format
+intended for consumption by users or external programs.
+See \fBFORMATTING TIMES\fR for a full description.
+.TP
+\fBclock microseconds\fR
+Returns the current time as an integer number of microseconds. See \fBHIGH RESOLUTION TIMERS\fR for a full description.
+.TP
+\fBclock milliseconds\fR
+Returns the current time as an integer number of milliseconds. See \fBHIGH RESOLUTION TIMERS\fR for a full description.
+.TP
+\fBclock scan\fR \fIinputString\fR ?\fI-option value\fR...?
+Scans a time that is expressed as a character string and produces an
+integer number of seconds.
+See \fBSCANNING TIMES\fR for a full description.
+.TP
+\fBclock seconds\fR
+Returns the current time as an integer number of seconds.
+.SH "PARAMETERS"
+.TP
+\fIcount\fR
+An integer representing a count of some unit of time. See
+\fBCLOCK ARITHMETIC\fR for the details.
+.TP
+\fItimeVal\fR
+An integer value passed to the \fBclock\fR command that represents an
+absolute time as a number of seconds from the \fIepoch time\fR of
+1 January 1970, 00:00 UTC. Note that the count of seconds does not
+include any leap seconds; seconds are counted as if each UTC day has
+exactly 86400 seconds. Tcl responds to leap seconds by speeding or
+slowing its clock by a tiny fraction for some minutes until it is
+back in sync with UTC; its data model does not represent minutes that
+have 59 or 61 seconds.
+.TP
+\fIunit\fR
+One of the words, \fBseconds\fR, \fBminutes\fR, \fBhours\fR,
+\fBdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR, or
+any unique prefix of such a word. Used in conjuction with \fIcount\fR
+to identify an interval of time, for example, \fI3 seconds\fR or
+\fI1 year\fR.
+.SH "OPTIONS"
+.TP
+\fB-base\fR time
+Specifies that any relative times present in a \fBclock scan\fR command
+are to be given relative to \fItime\fR. \fItime\fR must be expressed as
+a count of nominal seconds from the epoch time of 1 January 1970, 00:00 UTC.
+.TP
+\fB-format\fR format
+Specifies the desired output format for \fBclock format\fR or the
+expected input format for \fBclock scan\fR. The \fIformat\fR string consists
+of any number of characters other than the per-cent sign ('\fI%\fR')
+interspersed with any number of \fIformat groups\fR, which are two-character
+sequences beginning with the per-cent sign. The permissible format groups,
+and their interpretation, are described under \fBFORMAT GROUPS\fR.
+.TP
+\fB-gmt\fR boolean
+If \fIboolean\fR is true, specifies that a time specified to \fBclock add\fR,
+\fBclock format\fR or \fBclock scan\fR should be processed in
+UTC. If \fIboolean\fR is false, the processing defaults to the local time
+zone. This usage is obsolete; the correct current usage is to
+specify the UTC time zone with '\fB-timezone\fR \fI:UTC\fR' or any of
+the equivalent ways to specify it.
+.TP
+\fB-locale\fR localeName
+Specifies that locale-dependent scanning and formatting (and date arithmetic
+for dates preceding the adoption of the Gregorian calendar) is to be done in
+the locale identified by \fIlocaleName\fR. The locale name may be any of
+the locales acceptable to the \fBmsgcat\fR command, or it may be the special
+name \fIsystem\fR, which represents the current locale of the process, or
+the null string, which represents Tcl's default locale.
+.sp
+The effect of locale on scanning and formatting is discussed in the
+descriptions of the individual format groups under \fBFORMAT GROUPS\fR.
+The effect of locale on clock arithmetic is discussed under
+\fBCLOCK ARITHMETIC\fR.
+.TP
+\fB-timezone\fR zoneName
+Specifies that clock arithmetic, formatting, and scanning are to be done
+according to the rules for the time zone specified by \fIzoneName\fR.
+The permissible values, and their interpretation, are discussed under
+\fBTIME ZONES\fR.
+On subcommands that expect a \fB-timezone\fR argument, the default
+is to use the \fIcurrent time zone\fR. The current time zone is
+determined, in order of preference, by:
.RS
-If the \fB\-format\fR argument is not specified, the format string
-\fB"%a %b %d %H:%M:%S %Z %Y"\fR is used. If the \fB\-gmt\fR argument
-is present the next argument must be a boolean which if true specifies
-that the time will be formatted as Greenwich Mean Time. If false
-then the local timezone will be used as defined by the operating
-environment.
+.IP [1]
+the environment variable \fBTCL_TZ\fR.
+.IP [2]
+the environment variable \fBTZ\fR.
+.IP [3]
+on Windows systems, the time zone settings from the Control Panel.
.RE
+If none of these is present, the C \fBlocaltime\fR and \fBmktime\fR
+functions are used to attempt to convert times between local and
+Greenwich. On 32-bit systems, this approach is likely to have bugs,
+particularly for times that lie outside the window (approximately the
+years 1902 to 2037) that can be represented in a 32-bit integer.
+.SH "CLOCK ARITHMETIC"
+The \fBclock add\fR command performs clock arithmetic on a value
+(expressed as nominal seconds from the epoch time of 1 January 1970, 00:00 UTC)
+given as its first argument. The remaining arguments (other than the
+possible \fB-timezone\fR, \fB-locale\fR and \fB-gmt\fR options)
+are integers and keywords in alternation, where the keywords are chosen
+from \fBseconds\fR, \fBminutes\fR, \fBhours\fR,
+\fBdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR, or
+any unique prefix of such a word.
+.PP
+Addition of seconds, minutes and hours is fairly straightforward;
+the given time increment (times sixty for minutes, or 3600 for hours)
+is simply added to the \fItimeVal\fR given
+to the \fBclock add\fR command. The result is interpreted as
+a nominal number of seconds from the Epoch.
+.PP
+Surprising results
+may be obtained when crossing a point at which a leap second is
+inserted or removed; the \fBclock add\fR command simply ignores
+leap seconds and therefore assumes that times come in sequence,
+23:59:58, 23:59:59, 00:00:00. (This assumption is handled by
+the fact that Tcl's model of time reacts to leap seconds by speeding
+or slowing the clock by a minuscule amount until Tcl's time
+is back in step with the world.
+.PP
+The fact that adding and subtracting hours is defined in terms of
+absolute time means that it will add fixed amounts of time in time zones
+that observe summer time (Daylight Saving Time). For example,
+the following code sets the value of \fBx\fR to \fB04:00:00\fR because
+the clock has changed in the interval in question.
+.CS
+set s [clock scan {2004-10-30 05:00:00} \\
+ -format {%Y-%m-%d %H:%M:%S} -timezone :America/New_York]
+set a [clock add $s 24 hours -timezone :America/New_York]
+set x [clock format $a \\
+ -format {%H:%M:%S} -timezone :America/New_York]
+.CE
+.PP
+Adding and subtracting days and weeks is accomplished by converting
+the given time to a calendar day and time of day in the appropriate
+time zone and locale. The requisite number of days (weeks are converted
+to days by multiplying by seven) is added to the calendar day, and
+the date and time are then converted back to a count of seconds from
+the epoch time.
+.PP
+Adding and subtracting a given number of days across the point that
+the time changes at the start or end of summer time (Daylight Saving Time)
+results in the \fIsame local time\fR on the day in question. For
+instance, the following code sets the value of \fBx\fR to \fB05:00:00\fR.
+.CS
+set s [clock scan {2004-10-30 05:00:00} \\
+ -format {%Y-%m-%d %H:%M:%S} -timezone :America/New_York]
+set a [clock add $s 1 day -timezone :America/New_York]
+set x [clock format $a \\
+ -format {%H:%M:%S} -timezone :America/New_York]
+.CE
+.PP
+In cases of ambiguity, where the same local time happens twice
+on the same day, the earlier time is used. In cases where the conversion
+yields an impossible time (for instance, 02:30 during the Spring
+Daylight Saving Time change using US rules), the time is converted
+as if the clock had not changed. Thus, the following code
+will set the value of \fBx\fR to \fB03:30:00\fR.
+.CS
+set s [clock scan {2004-04-03 02:30:00} \\
+ -format {%Y-%m-%d %H:%M:%S} -timezone :America/New_York]
+set a [clock add $s 1 day -timezone :America/New_York]
+set x [clock format $a \\
+ -format {%H:%M:%S} -timezone :America/New_York]
+.CE
+.PP
+Adding a given number of days or weeks works correctly across the conversion
+between the Julian and Gregorian calendars; the omitted days are skipped.
+The following code sets \fBz\fR to \fB1752-09-14\fR.
+.CS
+set x [clock scan 1752-09-02 -format %Y-%m-%d -locale en_US]
+set y [clock add $x 1 day -locale en_US]
+set z [clock format $y -format %Y-%m-%d -locale en_US]
+.CE
+.PP
+In the bizarre case that adding the given number of days yields a date
+that does not exist because it falls within the dropped days of the
+Julian-to-Gregorian conversion, the date is converted as if it was
+on the Julian calendar.
+.PP
+Adding a number of months, or a number of years, is similar; it
+converts the given time to a calendar date and time of day. It then
+adds the requisite number of months or years, and reconverts the resulting
+date and time of day to an absolute time.
+.PP
+If the resulting date is impossible because the month has too few days
+(for example, when adding 1 month to 31 January), the last day of the
+month is substituted. Thus, adding 1 month to 31 January will result in
+28 February in a common year or 29 February in a leap year.
+.PP
+The rules for handling anomalies relating to summer time and to the
+Gregorian calendar are the same when adding/subtracting months and
+years as they are when adding/subtracting days and weeks.
+.PP
+If multiple \fIcount unit\fR pairs are present on the command, they
+are evaluated consecutively, from left to right.
+.SH "HIGH RESOLUTION TIMERS"
+Most of the subcommands supported by the \fBclock\fR command deal with
+times represented as a count of seconds from the epoch time, and this is the
+representation that \fBclock seconds\fR returns. There are three exceptions,
+which are all intended for use where higher-resolution times are required.
+\fBclock milliseconds\fR returns the count of milliseconds from the
+epoch time, and \fBclock microseconds\fR returns the count of microseconds
+from the epoch time. In addition, there js a \fBclock clicks\fR command
+that returns a platform-dependent high-resolution timer. Unlike
+\fBclock seconds\fR and \fBclock milliseconds\fR, the value
+of \fBclock clicks\fR is not guaranteed to be tied to any fixed
+epoch; it is simply intended to be the most precise interval timer
+available, and is intended only for relative timing studies such as
+benchmarks.
+.SH "FORMATTING TIMES"
+The \fBclock format\fR command produces times for display to a user
+or writing to an external medium. The command accepts times that are
+expressed in seconds from the epoch time of 1 January 1970, 00:00 UTC,
+as returned by \fBclock seconds\fR, \fBclock scan\fR, \fBclock add\fR,
+\fBfile atime\fR or \fBfile mtime\fR.
+.PP
+If a \fB-format\fR option is present, the following argument is
+a string that specifies how the date and time are to be formatted.
+The string consists
+of any number of characters other than the per-cent sign ('\fI%\fR')
+interspersed with any number of \fIformat groups\fR, which are two-character
+sequences beginning with the per-cent sign. The permissible format groups,
+and their interpretation, are described under \fBFORMAT GROUPS\fR.
+.PP
+If a \fB-timezone\fR option is present, the following
+argument is a string that specifies the time zone in which the date and time
+are to be formatted. As an alternative to \fB-timezone\fR \fI:UTC\fR,
+the obsolete usage \fB-gmt\fR \fItrue\fR may be used. See
+\fBTIME ZONES\fR for the permissible variants for the time zone.
+.PP
+If a \fB-locale\fR option is present, the following argument is
+a string that specifies the locale in which the time is to be formatted,
+in the same format that is used for the \fBmsgcat\fR command. Note
+that the default, if \fB-locale\fR is not specified, is the root locale
+\fB{}\fR rather than the current locale. The current locale may
+be obtained by using \fB-locale\fR \fBcurrent\fR.
+In addition, some platforms support a \fBsystem\fR locale that
+reflects the user's current choices. For instance, on Windows, the
+format that the user has selected from dates and times in the Control
+Panel can be obtained by using the \fBsystem\fR locale. On
+platforms that do not define a user selection of date and time formats
+separate from \fBLC_TIME\fR, \fB-locale\fR \fBsystem\fR is
+synonymous with \fB-locale\fR \fBcurrent\fR.
+.SH "SCANNING TIMES"
+The \fBclock scan\fR command accepts times that are formatted as
+strings and converts them to counts of seconds from the epoch time
+of 1 January 1970, 00:00 UTC. It normally takes a \fB-format\fR
+option that is followed by a string describing
+the expected format of the input. (See
+\fBFREE FORM SCAN\fR for the effect of \fBclock scan\fR
+without such an argument.) The string consists of any number of
+characters other than the per-cent sign ('\fI%\fR'),
+interspersed with any number of \fIformat groups\fR, which are two-character
+sequences beginning with the per-cent sign. The permissible format groups,
+and their interpretation, are described under \fBFORMAT GROUPS\fR.
+.PP
+If a \fB-timezone\fR option is present, the following
+argument is a string that specifies the time zone in which the date and time
+are to be interpreted. As an alternative to \fB-timezone\fR \fI:UTC\fR,
+the obsolete usage \fB-gmt\fR \fItrue\fR may be used. See
+\fBTIME ZONES\fR for the permissible variants for the time zone.
+.PP
+If a \fB-locale\fR option is present, the following argument is
+a string that specifies the locale in which the time is to be interpreted,
+in the same format that is used for the \fBmsgcat\fR command. Note
+that the default, if \fB-locale\fR is not specified, is the root locale
+\fB{}\fR rather than the current locale. The current locale may
+be obtained by using \fB-locale\fR \fBcurrent\fR.
+In addition, some platforms support a \fBsystem\fR locale that
+reflects the user's current choices. For instance, on Windows, the
+format that the user has selected from dates and times in the Control
+Panel can be obtained by using the \fBsystem\fR locale. On
+platforms that do not define a user selection of date and time formats
+separate from \fBLC_TIME\fR, \fB-locale\fR \fBsystem\fR is
+synonymous with \fB-locale\fR \fBcurrent\fR.
+.PP
+If a \fB-base\fR option is present, the following argument is
+a time (expressed in seconds from the epoch time) that is used as
+a \fIbase time\fR for interpreting relative times. If no
+\fB-base\fR option is present, the base time is the current time.
+.PP
+Scanning of times in fixed format works by determining three things:
+the date, the time of day, and the time zone. These three are then
+combined into a point in time, which is returned as the number of seconds
+from the epoch.
+.PP
+Before scanning begins, the format string is preprocessed
+to replace \fB%c\fR, \fB%Ec\fR, \fB%x\fR, \fB%Ex\fR,
+\fB%X\fR. \fB%Ex\fR, \fB%r\fR, \fB%R\fR, \fB%T\fR,
+\fB%D\fR, \fB%EY\fR and \fB%+\fR format groups with counterparts
+that are appropriate to the current locale and contain none of the
+above groups. For instance, \fB%D\fR will (in the \fBen_US\fR locale)
+be replaced with \fB%m/%d/%Y\fR.
+.PP
+The date is determined according to the fields that are present in the
+preprocessed format string. In order of preference:
+.IP [1]
+If the string contains a \fB%s\fR format group, representing
+seconds from the epoch, that group is used to determine the date.
+.IP [2]
+If the string contains a \fB%J\fR format group, representing
+the Julian Day Number, that group is used to determine the date.
+.IP [3]
+If the string contains a complete set of format groups specifying
+century, year, month, and day of month; century, year, and day of year;
+or ISO8601 fiscal year, week of year, and day of week; those groups are
+combined and used to determine the date. If more than one complete
+set is present, the one at the rightmost position in the string is
+used.
+.IP [4]
+If the string lacks a century but contains a set of format
+groups specifying year of century, month and day of month; year of
+century and day of year; or two-digit ISO8601 fiscal year, week of year,
+and day of week; those groups are
+combined and used to determine the date. If more than one complete
+set is present, the one at the rightmost position in the string is
+used. The year is presumed to lie in the range 1938 to 2037 inclusive.
+.IP [5]
+If the string entirely lacks any specification for the year,
+but contains a set of format groups specifying month and day of month,
+day of year, or week of year and day of week, those groups are
+combined and used to determine the date. If more than one complete
+set is present, the one at the rightmost position in the string is
+used. The year is determined by interpreting the base time in the given
+time zone.
+.IP [6]
+If the string contains none of the above sets, but has a day
+of the month or day of the week, the day of the month or day of the week
+are used to determine the date by interpreting the base time in the
+given time zone and returning the given day of the current week or month.
+(The week runs from Monday to Sunday, ISO8601-fashion.) If both day
+of month and day of week are present, the day of the month takes
+priority.
+.IP [7]
+If none of the above rules results in a usable date, the date
+of the base time in the given time zone is used.
+.PP
+The time is also determined according to the fields that are present in the
+preprocessed format string. In order of preference:
+.IP [1]
+If the string contains a \fB%s\fR format group, representing
+seconds from the epoch, that group determines the time of day.
+.IP [2]
+If the string contains either an hour on the 24-hour clock
+or an hour on the 12-hour clock plus an AM/PM indicator, that hour determines
+the hour of the day. If the string further contains a group specifying
+the minute of the hour, that group combines with the hour. If the string
+further contains a group specifying the second of the minute, that group
+combines with the hour and minute.
+.IP [3]
+If the string contains neither a \fB%s\fR format group nor
+a group specifying the hour of the day, then midnight (\fB00:00\fR, the start
+of the given date) is used.
+The time zone is determined by either the \fB-timezone\fR or \fB-gmt\fR
+options, or by using the current time zone.
+.PP
+If a format string lacks a \fB%z\fR or \fB%Z\fR format group,
+it is possible for the time to be ambiguous because it appears twice
+in the same day, once without and once with Daylight Saving Time.
+If this situation occurs, the first occurrence of the time is chosen.
+(For this reason, it is wise to have the input string contain the
+time zone when converting local times. This caveat does not apply to
+UTC times.)
+.SH "FORMAT GROUPS"
+The following format groups are recognized by the \fBclock scan\fR and
+\fBclock format\fR commands.
+.TP
+\fB%a\fR
+On output, receives an abbreviation (\fIe.g.,\fR \fBMon\fR) for the day
+of the week in the given locale. On input, matches the name of the day
+of the week in the given locale (in either abbreviated or full form, or
+any unique prefix of either form).
+.TP
+\fB%A\fR
+On output, receives the full name (\fIe.g.,\fR \fBMonday\fR) of the day
+of the week in the given locale. On input, matches the name of the day
+of the week in the given locale (in either abbreviated or full form, or
+any unique prefix of either form).
+.TP
+\fB%b\fR
+On output, receives an abbreviation (\fIe.g.,\fR \fBJan\fR) for the name
+of the month in the given locale. On input, matches the name of the month
+in the given locale (in either abbreviated or full form, or
+any unique prefix of either form).
+.TP
+\fB%B\fR
+On output, receives the full name (\fIe.g.,\fR \fBJanuary\fR)
+of the month in the given locale. On input, matches the name of the month
+in the given locale (in either abbreviated or full form, or
+any unique prefix of either form).
+.TP
+\fB%c\fR
+On output, receives a localized representation of date and time of day;
+the localized representation is expected to use the Gregorian calendar.
+On input, matches whatever %c produces.
+.TP
+\fB%C\fR
+On output, receives the number of the century in Indo-Arabic numerals.
+On input, matches one or two digits, possibly with leading whitespace,
+that are expected to be the number of the century.
+.TP
+\fB%d\fR
+On output, produces the number of the day of the month, as two decimal
+digits. On input, matches one or two digits, possibly with leading
+whitespace, that are expected to be the number of the day of the month.
+.TP
+\fB%D\fR
+This format group is synonymous with \fB%m/%d/%Y\fR. It should be
+used only in exchanging data within the \fBen_US\fR locale, since
+other locales typically do not use this order for the fields of the date.
.TP
-\fBclock scan \fIdateString\fR ?\fB\-base \fIclockVal\fR? ?\fB\-gmt \fIboolean\fR?
-Convert \fIdateString\fR to an integer clock value (see \fBclock seconds\fR).
-This command can parse and convert virtually any standard date and/or time
-string, which can include standard time zone mnemonics. If only a time is
-specified, the current date is assumed. If the string does not contain a
-time zone mnemonic, the local time zone is assumed, unless the \fB\-gmt\fR
+\fB%e\fR
+On output, produces the number of the day of the month, as one or
+two decimal digits (with a leading blank for one-digit dates).
+On input, matches one or two digits, possibly with leading
+whitespace, that are expected to be the number of the day of the month.
+.TP
+\fB%Ec\fR
+On output, produces a locale-dependent representation of the date and
+time of day in the locale's alternative calendar. On input, matches
+whatever %Ec produces. The locale's alternative calendar need not
+be the Gregorian calendar.
+.TP
+\fB%EC\fR
+On output, produces a locale-dependent name of an era in the locale's
+alternative calendar. On input, matches the name of the era or any
+unique prefix.
+.TP
+\fB%Ex\fR
+On output, produces a locale-dependent representation of the date
+in the locale's alternative calendar. On input, matches
+whatever %Ex produces. The locale's alternative calendar need not
+be the Gregorian calendar.
+.TP
+\fB%EX\fR
+On output, produces a locale-dependent representation of the
+time of day in the locale's alternative numerals. On input, matches
+whatever %EX produces.
+.TP
+\fB%Ey\fR
+On output, produces a locale-dependent number of the year of the era
+in the locale's alternative calendar and numerals. On input, matches
+such a number.
+.TP
+\fB%EY\fR
+On output, produces a representation of the year in the locale's
+alternative calendar and numerals. On input, matches what \fB%EY\fR
+produces. Often synonymous with \fB%EC%Ey\fR.
+.TP
+\fB%g\fR
+On output, produces a two-digit year number suitable for use with
+the week-based ISO8601 calendar; that is, the year number corresponds
+to the week number produced by \fB%V\fR. On input, accepts such
+a two-digit year number, possibly with leading whitespace.
+.TP
+\fB%G\fR
+On output, produces a four-digit year number suitable for use with
+the week-based ISO8601 calendar; that is, the year number corresponds
+to the week number produced by \fB%V\fR. On input, accepts such
+a four-digit year number, possibly with leading whitespace.
+.TP
+\fB%h\fR
+This format group is synonymous with \fB%b\fR.
+.TP
+\fB%H\fR
+On output, produces a two-digit number giving the hour of the day
+(00-23) on a 24-hour clock. On input, accepts such a number.
+.TP
+\fB%I\fR
+On output, produces a two-digit number giving the hour of the day
+(12-11) on a 12-hour clock. On input, accepts such a number.
+.TP
+\fB%j\fR
+On output, produces a three-digit number giving the day of the year
+(001-366). On input, accepts such a number.
+.TP
+\fB%J\fR
+On output, produces a string of digits giving the Julian Day Number.
+On input, accepts a string of digits and interprets it as a Julian Day Number.
+The Julian Day Number is a count of the number of calendar days
+that have elapsed since 1 January, 4713 BCE of the proleptic
+Julian calendar. The epoch time of 1 January 1970 corresponds
+to Julian Day Number 2440588.
+.TP
+\fB%k\fR
+On output, produces a one- or two-digit number giving the hour of the day
+(0-23) on a 24-hour clock. On input, accepts such a number.
+.TP
+\fB%l\fR
+On output, produces a one- or two-digit number giving the hour of the day
+(12-11) on a 12-hour clock. On input, accepts such a number.
+.TP
+\fB%m\fR
+On output, produces the number of the month (01-12) with exactly two
+digits. On input, accepts two digits and interprets them as the number
+of the month.
+.TP
+\fB%M\fR
+On output, produces the number of the minute of the hour (00-59)
+with exactly two digits. On input, accepts two digits and interprets them
+as the number of the minute of the hour.
+.TP
+\fB%N\fR
+On output, produces the number of the month (1-12) with one or two digits.
+digits. On input, accepts one or two digits, possibly with leading whitespace,
+and interprets them as the number of the month.
+.TP
+\fB%Od\fR, \fB%Oe\fR, \fB%OH\fR, \fB%OI\fR, \fB%Ok\fR, \fB%Ol\fR, \fB%Om\fR, \fB%OM\fR, \fB%OS\fR, \fB%Ou\fR, \fB%Ow\fR, \fB%Oy\fR
+All of these format groups are synonymous with their counterparts
+without the '\fBO\fR', except that the string is produced and parsed in the
+locale-dependent alternative numerals.
+.TP
+\fB%p\fR
+On output, produces an indicator for the part of the day, \fBA.M.\fR
+or \fBP.M.\fR, appropriate to the given locale. If the script of the
+given locale supports multiple letterforms, uppercase is preferred.
+On input, matches the representation \fBA.M.\fR or \fBP.M.\fR in
+the given locale, in either case.
+.TP
+\fB%P\fR
+On output, produces an indicator for the part of the day, \fBA.M.\fR
+or \fBP.M.\fR, appropriate to the given locale. If the script of the
+given locale supports multiple letterforms, lowercase is preferred.
+On input, matches the representation \fBA.M.\fR or \fBP.M.\fR in
+the given locale, in either case.
+.TP
+\fB%Q\fR
+This format group is reserved for internal use within the Tcl library.
+.TP
+\fB%r\fR
+On output, produces a locale-dependent time of day representation on a
+12-hour clock. On input, accepts whatever \fB%r\fR produces.
+.TP
+\fB%R\fR
+On output, produces a locale-dependent time of day representation on a
+24-hour clock. On input, accepts whatever \fB%R\fR produces.
+.TP
+\fB%s\fR
+On output, simply formats the \fItimeVal\fR argument as a decimal
+integer and inserts it into the output string. On input, accepts
+a decimal integer and uses is as the time value without any further
+processing. Since \fB%s\fR uniquely determines a point in time, it
+overrides all other input formats.
+.TP
+\fB%S\fR
+On output, produces a two-digit number of the second of the minute
+(00-59). On input, accepts two digits and uses them as the second of the
+minute.
+.TP
+\fB%t\fR
+On output, produces a TAB character. On input, matches a TAB character.
+.TP
+\fB%T\fR
+Synonymous with \fB%H:%M:%S\fR.
+.TP
+\fB%u\fR
+On output, produces the number of the day of the week
+(\fB1\fR-Monday, \fB7\fR-Sunday). On input, accepts a single digit and
+interprets it as the day of the week. Sunday may be either \fB0\fR or
+\fB7\fR.
+.TP
+\fB%U\fR
+On output, produces the ordinal number of the week of the year
+(00-53). The first Sunday of the year is the first day of week 01. On
+input accepts two digits which are otherwise ignored. This format
+group is never used in determining an input date. This interpretation
+of the week of the year was once common in US banking but is now
+largely obsolete. See \fB%V\fR for the ISO8601 week number.
+.TP
+\fB%V\fR
+On output, produces the number of the ISO8601 week as a two digit
+number (01-53). Week 01 is the week containing January 4; or the first
+week of the year containing at least 4 days; or the week containing
+the first Thursday of the year (the three statements are
+equivalent). Each week begins on a Monday. On input, accepts the
+ISO8601 week number.
+.TP
+\fB%w\fR
+On output, produces a week number (00-53) within the year; week 01
+begins on the first Monday of the year. On input, accepts two digits,
+which are otherwise ignored. This format group is never used in
+determining an input date. It is not the ISO8601 week number; that
+week is produced and accepted by \fB%V\fR.
+.TP
+\fB%x\fR
+On output, produces the date in a locale-dependent representation. On
+input, accepts whatever \fB%x\fR produces and is used to determine
+calendar date.
+.TP
+\fB%X\fR
+On output, produces the time of day in a locale-dependent
+representation. On input, accepts whatever \fB%X\fR produces and is used
+to determine time of day.
+.TP
+\fB%y\fR
+On output, produces the two-digit year of the century. On input,
+accepts two digits, and is used to determine calendar date. The
+date is presumed to lie between 1938 and 2037 inclusive. Note
+that \fB%y\fR does not yield a year appropriate for use with the ISO8601
+week number \fB%V\fR; programs should use \fB%g\fR for that purpose.
+.TP
+\fB%Y\fR
+On output, produces the four-digit calendar year. On input,
+accepts four digits and may be used to determine calendar date. Note
+that \fB%Y\fR does not yield a year appropriate for use with the ISO8601
+week number \fB%V\fR; programs should use \fB%G\fR for that purpose.
+.TP
+\fB%z\fR
+On output, produces the current time zone, expressed in hours and
+minutes east (+hhmm) or west (-hhmm) of Greenwich. On input, accepts a
+time zone specifier (see \fBTIME ZONES\fR below) that will be used to
+determine the time zone.
+.TP
+\fB%Z\fR
+On output, produces the current time zone's name, possibly
+translated to the given locale. On input, accepts a time zone
+specifier (see \fBTIME ZONES\fR below) that will be used to determine the
+time zone. This option should, in general, be used on input only when
+parsing RFC822 dates. Other uses are fraught with ambiguity; for
+instance, the string \fBBST\fR may represent British Summer Time or
+Brazilian Standard Time. It is recommended that date/time strings for
+use by computers use numeric time zones instead.
+.TP
+\fB%%\fR
+On output, produces a literal '\fB%\fR' charater. On input, matches
+a literal '\fB%\fR' character.
+.TP
+\fB%+\fR
+Synonymous with '\fB%a %b %e %H:%M:%S %Z %Y\fR'.
+.SH "TIME ZONES"
+When the \fBclock\fR command is processing a local time, it has several
+possible sources for the time zone to use. In order of preference, they
+are:
+.IP [1]
+A time zone specified inside a string being parsed and matched by a \fB%z\fR
+or \fB%Z\fR format group.
+.IP [2]
+A time zone specified with the \fB-timezone\fR option to the \fBclock\fR
+command (or, equivalently, by \fB-gmt\fR \fB1\fR).
+.IP [3]
+A time zone specified in an environment variable \fBTCL_TZ\fR.
+.IP [4]
+A time zone specified in an environment variable \fBTZ\fR.
+.IP [5]
+The local time zone from the Control Panel on Windows systems.
+.IP [6]
+The C library's idea of the local time zone, as defined by the
+\fBmktime\fR and \fBlocaltime\fR functions.
+.PP
+Whatever the source of the time zone string, the same set of rules
+is used to parse it. First, if it was obtained from a \fB%z\fR
+or \fB%Z\fR format group, it is checked to see if it is one of
+the strings,
+.CS
+ gmt ut utc bst wet wat at
+ nft nst ndt ast adt est edt
+ cst cdt mst mdt pst pdt yst
+ ydt hst hdt cat ahst nt idlw
+ cet cest met mewt mest swt sst
+ eet eest bt it zp4 zp5 ist
+ zp6 wast wadt jt cct jst cast
+ cadt east eadt gst nzt nzst nzdt
+ idle
+.CE
+If it is a string in the above list, it designates a known
+time zone, and is interpreted as such.
+.PP
+The next check is for a string beginning with a colon.
+If the time zone begins with a colon, it is one of a
+standardized list of names like \fB:America/New_York\fR
+that give the rules for various locales. A complete list
+of the location names is too lengthy to be listed here.
+On most Tcl installations, the definitions of the locations
+are to be found in named files in the directory
+"\fI/no_backup/tools/lib/tcl8.5/clock/tzdata\fR". On some Unix systems, these
+files are omitted, and the definitions are instead
+obtained from system files in "\fI/usr/share/zoneinfo\fR",
+"\fI/usr/share/lib/zoneinfo\fR" or "\fI/usr/local/etc/zoneinfo\fR".
+As a special case, the name \fB:localtime\fR refers to
+the local time zone as defined by the C library.
+.PP
+A string consisting of a plus or minus sign followed by
+four or six decimal digits is interpreted as an offset in
+hours, minutes, and seconds (if six digits are present) from
+UTC. The plus sign denotes a sign east of Greenwich;
+the minus sign one west of Greenwich.
+.PP
+A string conforming to the Posix specification of the \fBTZ\fR
+environment variable will be recognized. The specification
+may be found at
+\fIhttp://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html\fR.
+.PP
+Any other string is processed by prefixing a colon and attempting
+to use it as a location name, as above.
+.SH "LOCALIZATION"
+Developers wishing to localize the date and time formatting and parsing
+are referred to \fIhttp://www.tcl.tk/cgi-bin/tct/tip/173\fR for a
+specification.
+.SH "FREE FORM SCAN"
+If the \fBclock scan\fR command is invoked without a \fB-format\fR
+option, then it requests a \fIfree-form scan.\fR \fI
+This form of scan is deprecated.\fR The reason for the deprecation
+is that there are too many ambiguities. (Does the string '2000'
+represent a year, a time of day, or a quantity?) No set of rules
+for interpreting free-form dates and times has been found to
+give unsurprising results in all cases.
+.PP
+If free-form scan is used, only the \fB-base\fR and \fB-gmt\fR
+options are accepted. The \fB-timezone\fR and \fB-locale\fR
+options will result in an error if \fB-format\fR is not supplied.
+.PP
+For the benefit of users who need to understand legacy code that
+uses free-form scan, the documentation for how free-form scan
+interprets a string is included here:
+.PP
+If only a time is
+specified, the current date is assumed. If the \fIinputString\fR
+does not contain a
+time zone mnemonic, the local time zone is assumed, unless the \fB-gmt\fR
argument is true, in which case the clock value is calculated assuming
that the specified time is relative to Greenwich Mean Time.
\fB-gmt\fR, if specified, affects only the computed time value; it does not
impact the interpretation of \fB-base\fR.
-.sp
-If the \fB\-base\fR flag is specified, the next argument should contain
+.PP
+If the \fB-base\fR flag is specified, the next argument should contain
an integer clock value. Only the date in this value is used, not the
time. This is useful for determining the time on a specific day or
doing other date-relative conversions.
-.sp
-The \fIdateString\fR consists of zero or more specifications of the
+.PP
+The \fIinputString\fR argument consists of zero or more specifications of the
following form:
-.RS
.TP
\fItime\fR
-A time of day, which is of the form: \fIhh\fR?\fI:mm\fR?\fI:ss\fR??
-?\fImeridian\fR? ?\fIzone\fR? or \fIhhmm \fR?\fImeridian\fR?
-?\fIzone\fR?. If no meridian is specified, \fIhh\fR is interpreted on
+A time of day, which is of the form: \fBhh?:mm?:ss?? ?meridian? ?zone?\fR
+or \fBhhmm ?meridian? ?zone?\fR
+If no meridian is specified, \fBhh\fR is interpreted on
a 24-hour clock.
.TP
\fIdate\fR
A specific month and day with optional year. The
-acceptable formats are \fImm/dd\fR?\fI/yy\fR?, \fImonthname dd\fR
-?, \fIyy\fR?, \fIdd monthname \fR?\fIyy\fR?, \fIday, dd monthname
-yy\fR, \fI?CC?yymmdd\fR, \fI?CC?yy-mm-dd\fR, \fIdd-monthname-?CC?yy\fR.
+acceptable formats are "\fBmm/dd?/yy?\fR", "\fBmonthname dd?, yy?\fR",
+"\fBday, dd monthname ?yy?\fR", "\fBdd monthname yy\fR",
+"\fB?CC?yymmdd\fR", and "\fBdd-monthname-?CC?yy\fR.
The default year is the current year. If the year is less
than 100, we treat the years 00-68 as 2000-2068 and the years 69-99
as 1969-1999. Not all platforms can represent the years 38-70, so
an error may result if these years are used.
.TP
\fIISO 8601 point-in-time\fR
-An ISO 8601 point-in-time specification, such as \fICCyymmddThhmmss\fR, where
-T is the literal T, \fICCyymmdd hhmmss\fR, or
-\fICCyymmddThh:mm:ss\fR.
+An ISO 8601 point-in-time specification, such as \fBCCyymmddThhmmss\fR,
+where \fBT\fR is the literal T, "\fBCCyymmdd hhmmss\fR", or
+\fBCCyymmddThh:mm:ss\fR.
.TP
\fIrelative time\fR
-A specification relative to the current time. The format is \fInumber
-unit\fR acceptable units are \fByear\fR, \fBfortnight\fR, \fBmonth\fR, \fBweek\fR, \fBday\fR,
+A specification relative to the current time. The format is \fBnumber
+unit\fR. Acceptable units are \fByear\fR, \fBfortnight\fR, \fBmonth\fR, \fBweek\fR, \fBday\fR,
\fBhour\fR, \fBminute\fR (or \fBmin\fR), and \fBsecond\fR (or \fBsec\fR). The
unit can be specified as a singular or plural, as in \fB3 weeks\fR.
These modifiers may also be specified:
\fBtomorrow\fR, \fByesterday\fR, \fBtoday\fR, \fBnow\fR,
\fBlast\fR, \fBthis\fR, \fBnext\fR, \fBago\fR.
-.RE
-.sp
-.RS
The actual date is calculated according to the following steps.
+.PP
First, any absolute date and/or time is processed and converted.
Using that time as the base, day-of-week specifications are added.
Next, relative specifications are used. If a date or day is
@@ -255,38 +825,20 @@ used. Finally, a correction is applied so that the correct hour of
the day is produced after allowing for daylight savings time
differences and the correct date is given when going from the end
of a long month to a short month.
-.sp
+.PP
Daylight savings time correction is applied only when the relative time
is specified in units of days or more, ie, days, weeks, fortnights, months or
years. This means that when crossing the daylight savings time boundary,
different results will be given for \fBclock scan "1 day"\fR and
\fBclock scan "24 hours"\fR:
.CS
-.ta 6c
-\fB% clock scan "1 day" -base [clock scan 1999-10-31]
+% clock scan "1 day" -base [clock scan 1999-10-31]
941443200
% clock scan "24 hours" -base [clock scan 1999-10-31]
-941439600\fR
-.CE
-.RE
-.TP
-\fBclock seconds\fR
-Return the current date and time as a system-dependent integer value. The
-unit of the value is seconds, allowing it to be used for relative time
-calculations. The value is usually defined as total elapsed time from
-an ``epoch''. You shouldn't assume the value of the epoch.
-.SH EXAMPLE
-Print out the current date and time, first using the default format
-and then using an ISO 8601 format:
-.CS
-set now [clock seconds]
-set isoFmt "%Y-%m-%dT%H:%M:%SZ"
-puts "DEFAULT: [clock format $now]"
-puts "ISO8601: [clock format $now -format $isoFmt -gmt 1]"
+941439600
.CE
-
.SH "SEE ALSO"
-date(1), time(n)
+msgcat
+.SH "COPYRIGHT"
+Copyright (c) 2004 Kevin B. Kenny <kennykb@acm.org>. All rights reserved.
-.SH KEYWORDS
-clock, date, time
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 004e34c..63b709a 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclBasic.c,v 1.111 2004/08/02 20:55:36 dgp Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.112 2004/08/18 19:58:58 kennykb Exp $
*/
#include "tclInt.h"
@@ -71,8 +71,6 @@ static CmdInfo builtInCmds[] = {
(CompileProc *) NULL, 1},
{"catch", (Tcl_CmdProc *) NULL, Tcl_CatchObjCmd,
TclCompileCatchCmd, 1},
- {"clock", (Tcl_CmdProc *) NULL, Tcl_ClockObjCmd,
- (CompileProc *) NULL, 1},
{"concat", (Tcl_CmdProc *) NULL, Tcl_ConcatObjCmd,
(CompileProc *) NULL, 1},
{"continue", (Tcl_CmdProc *) NULL, Tcl_ContinueObjCmd,
@@ -231,6 +229,30 @@ static CmdInfo builtInCmds[] = {
{NULL, (Tcl_CmdProc *) NULL, (Tcl_ObjCmdProc *) NULL,
(CompileProc *) NULL, 0}
};
+
+static const CmdInfo clockCmds [] = {
+ /*
+ * Commands in the '::tcl::clock' namespace that support the
+ * 'clock' ensemble
+ */
+
+ { "::tcl::clock::clicks", (Tcl_CmdProc*) NULL,
+ TclClockClicksObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::microseconds", (Tcl_CmdProc*) NULL,
+ TclClockMicrosecondsObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::milliseconds", (Tcl_CmdProc*) NULL,
+ TclClockMillisecondsObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::seconds", (Tcl_CmdProc*) NULL,
+ TclClockSecondsObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::Localtime", (Tcl_CmdProc*) NULL,
+ TclClockLocaltimeObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::Mktime", (Tcl_CmdProc*) NULL,
+ TclClockMktimeObjCmd, (CompileProc*) NULL, 0 },
+ { "::tcl::clock::Oldscan", (Tcl_CmdProc*) NULL,
+ TclClockOldscanObjCmd, (CompileProc*) NULL, 0 },
+ { NULL, (Tcl_CmdProc *) NULL,
+ (Tcl_ObjCmdProc *) NULL, (CompileProc *) NULL, 0 }
+};
/*
*----------------------------------------------------------------------
@@ -260,7 +282,7 @@ Tcl_CreateInterp()
BuiltinFunc *builtinFuncPtr;
MathFunc *mathFuncPtr;
Tcl_HashEntry *hPtr;
- CmdInfo *cmdInfoPtr;
+ const CmdInfo *cmdInfoPtr;
int i;
union {
char c[sizeof(short)];
@@ -472,6 +494,24 @@ Tcl_CreateInterp()
}
/*
+ * Register the clock commands. These *do* go through
+ * Tcl_CreateObjCommand, since they aren't in the global namespace.
+ */
+
+ for ( cmdInfoPtr = clockCmds; cmdInfoPtr->name != NULL; cmdInfoPtr++) {
+ if ( cmdInfoPtr->objProc == NULL ) {
+ Tcl_CreateCommand( interp, cmdInfoPtr->name,
+ cmdInfoPtr->proc, (ClientData) NULL,
+ (Tcl_CmdDeleteProc*) NULL );
+ } else {
+ Tcl_CreateObjCommand( interp, cmdInfoPtr->name,
+ cmdInfoPtr->objProc, (ClientData) NULL,
+ (Tcl_CmdDeleteProc*) NULL );
+ }
+ }
+
+
+ /*
* Register the builtin math functions.
*/
@@ -605,7 +645,7 @@ int
TclHideUnsafeCommands(interp)
Tcl_Interp *interp; /* Hide commands in this interpreter. */
{
- register CmdInfo *cmdInfoPtr;
+ register const CmdInfo *cmdInfoPtr;
if (interp == (Tcl_Interp *) NULL) {
return TCL_ERROR;
@@ -615,6 +655,11 @@ TclHideUnsafeCommands(interp)
Tcl_HideCommand(interp, cmdInfoPtr->name, cmdInfoPtr->name);
}
}
+ for (cmdInfoPtr = clockCmds; cmdInfoPtr->name != NULL; cmdInfoPtr++) {
+ if (!cmdInfoPtr->isSafe) {
+ Tcl_HideCommand(interp, cmdInfoPtr->name, cmdInfoPtr->name);
+ }
+ }
return TCL_OK;
}
diff --git a/generic/tclClock.c b/generic/tclClock.c
index 67570df..91f204b 100644
--- a/generic/tclClock.c
+++ b/generic/tclClock.c
@@ -7,17 +7,34 @@
*
* Copyright 1991-1995 Karl Lehenbauer and Mark Diekhans.
* Copyright (c) 1995 Sun Microsystems, Inc.
+ * Copyright (c) 2004 by Kevin B. Kenny. All rights reserved.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclClock.c,v 1.28 2004/05/14 21:43:28 kennykb Exp $
+ * RCS: @(#) $Id: tclClock.c,v 1.29 2004/08/18 19:58:59 kennykb Exp $
*/
#include "tclInt.h"
/*
- * The date parsing stuff uses lexx and has tons o statics.
+ * Windows has mktime. The configurators do not check.
+ */
+
+#ifdef WIN32
+#define HAVE_MKTIME
+#endif
+
+/*
+ * Thread specific data block holding a 'struct tm' for the 'gmtime'
+ * and 'localtime' library calls.
+ */
+
+static Tcl_ThreadDataKey tmKey;
+
+/*
+ * Mutex protecting 'gmtime', 'localtime' and 'mktime' calls
+ * and the statics in the date parsing code.
*/
TCL_DECLARE_MUTEX(clockMutex)
@@ -26,358 +43,580 @@ TCL_DECLARE_MUTEX(clockMutex)
* Function prototypes for local procedures in this file:
*/
-static int FormatClock _ANSI_ARGS_((Tcl_Interp *interp,
- unsigned long clockVal, int useGMT,
- char *format));
+static struct tm* ThreadSafeLocalTime _ANSI_ARGS_(( CONST time_t* ));
+static void TzsetIfNecessary _ANSI_ARGS_(( void ));
/*
*-------------------------------------------------------------------------
*
- * Tcl_ClockObjCmd --
+ * TclClockLocaltimeObjCmd --
+ *
+ * Tcl command that extracts local time using the C library to do
+ * it.
*
- * This procedure is invoked to process the "clock" Tcl command.
- * See the user documentation for details on what it does.
+ * Usage:
+ * ::tcl::clock::Localtime <tick>
+ *
+ * Parameters:
+ * <tick> -- A count of seconds from the Posix epoch.
*
* Results:
- * A standard Tcl result.
+ * Returns a standard Tcl result. The object result is a Tcl
+ * list containing the year, month, day, hour, minute, and second
+ * fields of the local time. It may return an error if the
+ * argument exceeds the arithmetic range representable by
+ * 'time_t'.
*
* Side effects:
- * See the user documentation.
+ * None.
+ *
+ * This function is used as a call of last resort if the current time
+ * zone cannot be determined from environment variables TZ or TCL_TZ.
+ * It attempts to use the 'localtime' library function to extract the
+ * time and return it that way. This method suffers from Y2038 problems
+ * on most platforms. It also provides no portable way to get the
+ * name of the time zone.
*
*-------------------------------------------------------------------------
*/
int
-Tcl_ClockObjCmd (client, interp, objc, objv)
- ClientData client; /* Not used. */
- Tcl_Interp *interp; /* Current interpreter. */
- int objc; /* Number of arguments. */
- Tcl_Obj *CONST objv[]; /* Argument values. */
+TclClockLocaltimeObjCmd( ClientData clientData,
+ /* Unused */
+ Tcl_Interp* interp,
+ /* Tcl interpreter */
+ int objc,
+ /* Parameter count */
+ Tcl_Obj* CONST* objv )
+ /* Parameter vector */
{
- Tcl_Obj *resultPtr;
- int index;
- Tcl_Obj *CONST *objPtr;
- int useGMT = 0;
- char *format = "%a %b %d %X %Z %Y";
- int clickType = 2;
- int dummy;
- unsigned long baseClock, clockVal;
- long zone;
- Tcl_Obj *baseObjPtr = NULL;
- char *scanStr;
- Tcl_Time now; /* Current time */
+ Tcl_WideInt tick; /* Time to convert */
+ time_t tock;
+ struct tm* timeVal; /* Time after conversion */
- static CONST char *switches[] = {
- "clicks", "format", "scan", "seconds", (char *) NULL
- };
- enum command {
- COMMAND_CLICKS, COMMAND_FORMAT, COMMAND_SCAN, COMMAND_SECONDS
- };
- static CONST char *clicksSwitches[] = {
- "-milliseconds", "-microseconds", (char*) NULL
- };
- static CONST char *formatSwitches[] = {
- "-format", "-gmt", (char *) NULL
- };
- static CONST char *scanSwitches[] = {
- "-base", "-gmt", (char *) NULL
- };
+ Tcl_Obj* returnVec[ 6 ];
+
+ /* Check args */
- resultPtr = Tcl_GetObjResult(interp);
- if (objc < 2) {
- Tcl_WrongNumArgs(interp, 1, objv, "option ?arg ...?");
+ if ( objc != 2 ) {
+ Tcl_WrongNumArgs( interp, 1, objv, "seconds" );
return TCL_ERROR;
}
-
- if (Tcl_GetIndexFromObj(interp, objv[1], switches, "option", 0, &index)
- != TCL_OK) {
+ if ( Tcl_GetWideIntFromObj( interp, objv[1], &tick ) != TCL_OK ) {
return TCL_ERROR;
}
- switch ((enum command) index) {
- case COMMAND_CLICKS: { /* clicks */
- if (objc == 3) {
- if (Tcl_GetIndexFromObj(interp, objv[2], clicksSwitches,
- "option", 0, &clickType) != TCL_OK) {
- return TCL_ERROR;
- }
- } else if (objc != 2) {
- Tcl_WrongNumArgs(interp, 2, objv, "?option?");
- return TCL_ERROR;
- }
- switch (clickType) {
- case 0: /* milliseconds */
- Tcl_GetTime(&now);
- Tcl_SetWideIntObj(resultPtr,
- ((Tcl_WideInt) now.sec * 1000 + now.usec / 1000));
- break;
- case 1: /* microseconds */
- Tcl_GetTime(&now);
- Tcl_SetWideIntObj(resultPtr,
- ((Tcl_WideInt) now.sec * 1000000 + now.usec));
- break;
- case 2: /* native clicks */
- Tcl_SetWideIntObj(resultPtr, (Tcl_WideInt) TclpGetClicks());
- break;
- }
- return TCL_OK;
- }
+ /* Convert the time, checking for overflow */
- case COMMAND_FORMAT: /* format */
- if ((objc < 3) || (objc > 7)) {
- wrongFmtArgs:
- Tcl_WrongNumArgs(interp, 2, objv,
- "clockval ?-format string? ?-gmt boolean?");
- return TCL_ERROR;
- }
+ tock = (time_t) tick;
+ if ( (Tcl_WideInt) tock != tick ) {
+ Tcl_SetObjResult
+ ( interp,
+ Tcl_NewStringObj("number too large to represent as a Posix time",
+ -1) );
+ Tcl_SetErrorCode( interp, "CLOCK", "argTooLarge", (char*) NULL );
+ return TCL_ERROR;
+ }
+ TzsetIfNecessary();
+ timeVal = ThreadSafeLocalTime( &tock );
+
+ /* Package the results */
+
+ returnVec[0] = Tcl_NewIntObj( timeVal->tm_year + 1900 );
+ returnVec[1] = Tcl_NewIntObj( timeVal->tm_mon + 1);
+ returnVec[2] = Tcl_NewIntObj( timeVal->tm_mday );
+ returnVec[3] = Tcl_NewIntObj( timeVal->tm_hour );
+ returnVec[4] = Tcl_NewIntObj( timeVal->tm_min );
+ returnVec[5] = Tcl_NewIntObj( timeVal->tm_sec );
+ Tcl_SetObjResult( interp, Tcl_NewListObj( 6, returnVec ) );
+ return TCL_OK;
- if (Tcl_GetLongFromObj(interp, objv[2], (long*) &clockVal)
- != TCL_OK) {
- return TCL_ERROR;
- }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * ThreadSafeLocalTime --
+ *
+ * Wrapper around the 'localtime' library function to make it thread
+ * safe.
+ *
+ * Results:
+ * Returns a pointer to a 'struct tm' in thread-specific data.
+ *
+ * Side effects:
+ * Invokes localtime or localtime_r as appropriate.
+ *
+ *----------------------------------------------------------------------
+ */
- objPtr = objv+3;
- objc -= 3;
- while (objc > 1) {
- if (Tcl_GetIndexFromObj(interp, objPtr[0], formatSwitches,
- "switch", 0, &index) != TCL_OK) {
- return TCL_ERROR;
- }
- switch (index) {
- case 0: /* -format */
- format = Tcl_GetStringFromObj(objPtr[1], &dummy);
- break;
- case 1: /* -gmt */
- if (Tcl_GetBooleanFromObj(interp, objPtr[1],
- &useGMT) != TCL_OK) {
- return TCL_ERROR;
- }
- break;
- }
- objPtr += 2;
- objc -= 2;
- }
- if (objc != 0) {
- goto wrongFmtArgs;
- }
- return FormatClock(interp, (unsigned long) clockVal, useGMT,
- format);
-
- case COMMAND_SCAN: /* scan */
- if ((objc < 3) || (objc > 7)) {
- wrongScanArgs:
- Tcl_WrongNumArgs(interp, 2, objv,
- "dateString ?-base clockValue? ?-gmt boolean?");
- return TCL_ERROR;
- }
+static struct tm *
+ThreadSafeLocalTime(timePtr)
+ CONST time_t *timePtr; /* Pointer to the number of seconds
+ * since the local system's epoch
+ */
- objPtr = objv+3;
- objc -= 3;
- while (objc > 1) {
- if (Tcl_GetIndexFromObj(interp, objPtr[0], scanSwitches,
- "switch", 0, &index) != TCL_OK) {
- return TCL_ERROR;
- }
- switch (index) {
- case 0: /* -base */
- baseObjPtr = objPtr[1];
- break;
- case 1: /* -gmt */
- if (Tcl_GetBooleanFromObj(interp, objPtr[1],
- &useGMT) != TCL_OK) {
- return TCL_ERROR;
- }
- break;
- }
- objPtr += 2;
- objc -= 2;
- }
- if (objc != 0) {
- goto wrongScanArgs;
- }
+{
+ /*
+ * Get a thread-local buffer to hold the returned time.
+ */
- if (baseObjPtr != NULL) {
- if (Tcl_GetLongFromObj(interp, baseObjPtr,
- (long*) &baseClock) != TCL_OK) {
- return TCL_ERROR;
- }
- } else {
- baseClock = TclpGetSeconds();
- }
+ struct tm *tmPtr = (struct tm *)
+ Tcl_GetThreadData(&tmKey, (int) sizeof(struct tm));
+#ifdef HAVE_LOCALTIME_R
+ localtime_r(timePtr, tmPtr);
+#else
+ Tcl_MutexLock(&clockMutex);
+ memcpy((VOID *) tmPtr, (VOID *) localtime(timePtr), sizeof(struct tm));
+ Tcl_MutexUnlock(&clockMutex);
+#endif
+ return tmPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclClockMktimeObjCmd --
+ *
+ * Determine seconds from the epoch, given the fields of a local
+ * time.
+ *
+ * Usage:
+ * mktime <year> <month> <day> <hour> <minute> <second>
+ *
+ * Parameters:
+ * year -- Calendar year
+ * month -- Calendar month
+ * day -- Calendar day
+ * hour -- Hour of day (00-23)
+ * minute -- Minute of hour
+ * second -- Second of minute
+ *
+ * Results:
+ * Returns the given local time.
+ *
+ * Errors:
+ * Returns an error if the 'mktime' function does not exist in the
+ * C library, or if the given time cannot be converted.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
- if (useGMT) {
- zone = -50000; /* Force GMT */
- } else {
- zone = TclpGetTimeZone((unsigned long) baseClock);
- }
+int
+TclClockMktimeObjCmd( ClientData clientData,
+ /* Unused */
+ Tcl_Interp* interp,
+ /* Tcl interpreter */
+ int objc,
+ /* Parameter count */
+ Tcl_Obj* CONST* objv )
+ /* Parameter vector */
+{
+ int i;
+ struct tm toConvert; /* Time to be converted */
+ time_t convertedTime; /* Time converted from mktime */
- scanStr = Tcl_GetStringFromObj(objv[2], &dummy);
- Tcl_MutexLock(&clockMutex);
- if (TclGetDate(scanStr, (unsigned long) baseClock, zone,
- (unsigned long *) &clockVal) < 0) {
- Tcl_MutexUnlock(&clockMutex);
- Tcl_AppendStringsToObj(resultPtr,
- "unable to convert date-time string \"",
- scanStr, "\"", (char *) NULL);
- return TCL_ERROR;
- }
- Tcl_MutexUnlock(&clockMutex);
+#ifndef HAVE_MKTIME
+ Tcl_SetObjResult( interp,
+ Tcl_NewStringObj( "cannot determine local time", -1 ) );
+ return TCL_ERROR;
+#else
- Tcl_SetLongObj(resultPtr, (long) clockVal);
- return TCL_OK;
+ /* Convert parameters */
- case COMMAND_SECONDS: /* seconds */
- if (objc != 2) {
- Tcl_WrongNumArgs(interp, 2, objv, NULL);
- return TCL_ERROR;
- }
- Tcl_SetLongObj(resultPtr, (long) TclpGetSeconds());
- return TCL_OK;
- default:
- return TCL_ERROR; /* Should never be reached. */
+ if ( objc != 7 ) {
+ Tcl_WrongNumArgs( interp, 1, objv,
+ "year month day hour minute second" );
+ return TCL_ERROR;
+ }
+ if ( Tcl_GetIntFromObj( interp, objv[1], &i ) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ toConvert.tm_year = i - 1900;
+ if ( Tcl_GetIntFromObj( interp, objv[2], &i ) != TCL_OK ) {
+ return TCL_ERROR;
}
+ toConvert.tm_mon = i;
+ if ( Tcl_GetIntFromObj( interp, objv[3], &i ) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ toConvert.tm_mday = i;
+ if ( Tcl_GetIntFromObj( interp, objv[4], &i ) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ toConvert.tm_hour = i;
+ if ( Tcl_GetIntFromObj( interp, objv[5], &i ) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ toConvert.tm_min = i;
+ if ( Tcl_GetIntFromObj( interp, objv[6], &i ) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ toConvert.tm_sec = i;
+ toConvert.tm_isdst = -1;
+ toConvert.tm_wday = 0;
+ toConvert.tm_yday = 0;
+
+ /* Convert the time. It is rumored that mktime is not thread
+ * safe on some platforms. */
+
+ TzsetIfNecessary();
+ Tcl_MutexLock( &clockMutex );
+ convertedTime = mktime( &toConvert );
+ Tcl_MutexUnlock( &clockMutex );
+
+ /* Return the converted time, or an error if conversion fails */
+
+ if ( convertedTime == -1 ) {
+ Tcl_SetObjResult
+ ( interp,
+ Tcl_NewStringObj( "time value too large/small to represent",
+ -1 ) );
+ return TCL_ERROR;
+ } else {
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( (Tcl_WideInt) convertedTime ) );
+ return TCL_OK;
+ }
+
+#endif
+
}
-/*
- *-----------------------------------------------------------------------------
+
+/*----------------------------------------------------------------------
*
- * FormatClock --
+ * TclClockClicksObjCmd --
*
- * Formats a time value based on seconds into a human readable
- * string.
+ * Returns a high-resolution counter.
*
* Results:
- * Standard Tcl result.
+ * Returns a standard Tcl result.
*
* Side effects:
- * None.
+ * None.
+ *
+ * This function implements the 'clock clicks' Tcl command. Refer
+ * to the user documentation for details on what it does.
*
- *-----------------------------------------------------------------------------
+ *----------------------------------------------------------------------
*/
-static int
-FormatClock(interp, clockVal, useGMT, format)
- Tcl_Interp *interp; /* Current interpreter. */
- unsigned long clockVal; /* Time in seconds. */
- int useGMT; /* Boolean */
- char *format; /* Format string */
+int
+TclClockClicksObjCmd( clientData, interp, objc, objv )
+ ClientData clientData; /* Client data is unused */
+ Tcl_Interp* interp; /* Tcl interpreter */
+ int objc; /* Parameter count */
+ Tcl_Obj* CONST* objv; /* Parameter values */
{
- struct tm *timeDataPtr;
- Tcl_DString buffer;
- int bufSize;
- char *p;
- int result;
- time_t tclockVal;
-#if !defined(HAVE_TM_ZONE) && !defined(WIN32)
- int savedTimeZone = 0; /* lint. */
- char *savedTZEnv = NULL; /* lint. */
+ static CONST char *clicksSwitches[] = {
+ "-milliseconds", "-microseconds", (char*) NULL
+ };
+ enum ClicksSwitch {
+ CLICKS_MILLIS, CLICKS_MICROS, CLICKS_NATIVE
+ };
+ int index = CLICKS_NATIVE;
+ Tcl_Time now;
+
+ switch ( objc ) {
+ case 1:
+ break;
+ case 2:
+ if ( Tcl_GetIndexFromObj( interp, objv[1], clicksSwitches,
+ "option", 0, &index) != TCL_OK ) {
+ return TCL_ERROR;
+ }
+ break;
+ default:
+ Tcl_WrongNumArgs( interp, 1, objv, "?option?" );
+ return TCL_ERROR;
+ }
+
+ switch ( index ) {
+ case CLICKS_MILLIS:
+ Tcl_GetTime( &now );
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( (Tcl_WideInt) now.sec * 1000
+ + now.usec / 1000 ) );
+ break;
+ case CLICKS_NATIVE:
+#if 0
+ /*
+ * The following code will be used once this is incorporated
+ * into Tcl. But TEA bugs prevent it for right now. :(
+ * So we fall through this case and return the microseconds
+ * instead.
+ */
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( (Tcl_WideInt) TclpGetClicks() ) );
+ break;
#endif
+ case CLICKS_MICROS:
+ Tcl_GetTime( &now );
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( ( (Tcl_WideInt) now.sec
+ * 1000000 )
+ + now.usec ) );
+ break;
+ }
-#ifdef HAVE_TZSET
- /*
- * Some systems forgot to call tzset in localtime, make sure its done.
- */
- static int calledTzset = 0;
+ return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * TclClockMillisecondsObjCmd -
+ *
+ * Returns a count of milliseconds since the epoch.
+ *
+ * Results:
+ * Returns a standard Tcl result.
+ *
+ * Side effects:
+ * None.
+ *
+ * This function implements the 'clock milliseconds' Tcl command. Refer
+ * to the user documentation for details on what it does.
+ *
+ *----------------------------------------------------------------------
+ */
- Tcl_MutexLock(&clockMutex);
- if (!calledTzset) {
- tzset();
- calledTzset = 1;
+int
+TclClockMillisecondsObjCmd( clientData, interp, objc, objv )
+ ClientData clientData; /* Client data is unused */
+ Tcl_Interp* interp; /* Tcl interpreter */
+ int objc; /* Parameter count */
+ Tcl_Obj* CONST* objv; /* Parameter values */
+{
+ Tcl_Time now;
+ if ( objc != 1 ) {
+ Tcl_WrongNumArgs( interp, 1, objv, "" );
+ return TCL_ERROR;
}
- Tcl_MutexUnlock(&clockMutex);
-#endif
+ Tcl_GetTime( &now );
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( (Tcl_WideInt) now.sec * 1000
+ + now.usec / 1000 ) );
+ return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * TclClockMicrosecondsObjCmd -
+ *
+ * Returns a count of microseconds since the epoch.
+ *
+ * Results:
+ * Returns a standard Tcl result.
+ *
+ * Side effects:
+ * None.
+ *
+ * This function implements the 'clock microseconds' Tcl command. Refer
+ * to the user documentation for details on what it does.
+ *
+ *----------------------------------------------------------------------
+ */
- /*
- * If the user gave us -format "", just return now
- */
- if (*format == '\0') {
- return TCL_OK;
+int
+TclClockMicrosecondsObjCmd( clientData, interp, objc, objv )
+ ClientData clientData; /* Client data is unused */
+ Tcl_Interp* interp; /* Tcl interpreter */
+ int objc; /* Parameter count */
+ Tcl_Obj* CONST* objv; /* Parameter values */
+{
+ Tcl_Time now;
+ if ( objc != 1 ) {
+ Tcl_WrongNumArgs( interp, 1, objv, "" );
+ return TCL_ERROR;
}
+ Tcl_GetTime( &now );
+ Tcl_SetObjResult( interp,
+ Tcl_NewWideIntObj( ( (Tcl_WideInt) now.sec * 1000000 )
+ + now.usec ) );
+ return TCL_OK;
+}
+
+/*----------------------------------------------------------------------
+ *
+ * TclClockSecondsObjCmd -
+ *
+ * Returns a count of microseconds since the epoch.
+ *
+ * Results:
+ * Returns a standard Tcl result.
+ *
+ * Side effects:
+ * None.
+ *
+ * This function implements the 'clock seconds' Tcl command. Refer
+ * to the user documentation for details on what it does.
+ *
+ *----------------------------------------------------------------------
+ */
-#if !defined(HAVE_TM_ZONE) && !defined(WIN32)
- /*
- * This is a kludge for systems not having the timezone string in
- * struct tm. No matter what was specified, they use the local
- * timezone string. Since this kludge requires fiddling with the
- * TZ environment variable, it will mess up if done on multiple
- * threads at once. Protect it with a the clock mutex.
- */
-
- Tcl_MutexLock(&clockMutex);
- if (useGMT) {
- CONST char *varValue;
+int
+TclClockSecondsObjCmd( clientData, interp, objc, objv )
+ ClientData clientData; /* Client data is unused */
+ Tcl_Interp* interp; /* Tcl interpreter */
+ int objc; /* Parameter count */
+ Tcl_Obj* CONST* objv; /* Parameter values */
+{
+ Tcl_Time now;
+ if ( objc != 1 ) {
+ Tcl_WrongNumArgs( interp, 1, objv, "" );
+ return TCL_ERROR;
+ }
+ Tcl_GetTime( &now );
+ Tcl_SetObjResult( interp, Tcl_NewWideIntObj( (Tcl_WideInt) now.sec ) );
+ return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TzsetIfNecessary --
+ *
+ * Calls the tzset() library function if the contents of the TZ
+ * environment variable has changed.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Calls tzset.
+ *
+ *----------------------------------------------------------------------
+ */
- varValue = Tcl_GetVar2(interp, "env", "TZ", TCL_GLOBAL_ONLY);
- if (varValue != NULL) {
- savedTZEnv = strcpy(ckalloc(strlen(varValue) + 1), varValue);
- } else {
- savedTZEnv = NULL;
+static void
+TzsetIfNecessary()
+{
+ static char* tzWas = NULL; /* Previous value of TZ, protected by
+ * clockMutex. */
+ CONST char* tzIsNow; /* Current value of TZ */
+
+ Tcl_MutexLock( &clockMutex );
+ tzIsNow = getenv( "TZ" );
+ if ( tzIsNow != NULL
+ && ( tzWas == NULL || strcmp( tzIsNow, tzWas ) != 0 ) ) {
+ tzset();
+ if ( tzWas != NULL ) {
+ ckfree( tzWas );
}
- Tcl_SetVar2(interp, "env", "TZ", "GMT0", TCL_GLOBAL_ONLY);
- savedTimeZone = timezone;
- timezone = 0;
- tzset();
+ tzWas = ckalloc( strlen( tzIsNow ) + 1 );
+ strcpy( tzWas, tzIsNow );
+ } else if ( tzIsNow == NULL && tzWas != NULL ) {
+ tzset();
+ ckfree( tzWas );
+ tzWas = NULL;
}
-#endif
+ Tcl_MutexUnlock( &clockMutex );
+}
+
+/*
+ *-------------------------------------------------------------------------
+ *
+ * TclClockOldscanObjCmd --
+ *
+ * Implements the legacy 'clock scan' Tcl command when no '-format'
+ * option is supplied.
+ *
+ * Results:
+ * Returns a standard Tcl result.
+ *
+ * This function implements the 'clock scan' Tcl command when no
+ * -format group is present. Refer to the user documentation to see
+ * what it does.
+ *
+ *-------------------------------------------------------------------------
+ */
- tclockVal = clockVal;
- timeDataPtr = TclpGetDate(&tclockVal, useGMT);
+int
+TclClockOldscanObjCmd( ClientData clientData, /* unused */
+ Tcl_Interp* interp, /* Tcl interpreter */
+ int objc, /* Parameter count */
+ Tcl_Obj *CONST * objv /* Parameter vector */
+ )
+{
+ int index;
+ Tcl_Obj *CONST *objPtr;
+ char *scanStr;
+ Tcl_Obj *baseObjPtr = NULL;
+ int useGMT = 0;
+ unsigned long baseClock;
+ long clockVal;
+ long zone;
+ Tcl_Obj *resultPtr;
+ int dummy;
- /*
- * Make a guess at the upper limit on the substituted string size
- * based on the number of percents in the string.
- */
+ static CONST char *scanSwitches[] = {
+ "-base", "-gmt", (char *) NULL
+ };
- for (bufSize = 1, p = format; *p != '\0'; p++) {
- if (*p == '%') {
- bufSize += 40;
- } else {
- bufSize++;
+ if ((objc < 2) || (objc > 6)) {
+ wrongScanArgs:
+ Tcl_WrongNumArgs(interp, 2, objv,
+ "dateString ?-base clockValue? ?-gmt boolean?");
+ return TCL_ERROR;
+ }
+ objPtr = objv+2;
+ objc -= 2;
+ while (objc > 1) {
+ if (Tcl_GetIndexFromObj(interp, objPtr[0], scanSwitches,
+ "switch", 0, &index) != TCL_OK) {
+ return TCL_ERROR;
}
+ switch (index) {
+ case 0: /* -base */
+ baseObjPtr = objPtr[1];
+ break;
+ case 1: /* -gmt */
+ if (Tcl_GetBooleanFromObj(interp, objPtr[1],
+ &useGMT) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ break;
+ }
+ objPtr += 2;
+ objc -= 2;
}
-
- Tcl_DStringInit(&buffer);
- Tcl_DStringSetLength(&buffer, bufSize);
-
- /* If we haven't locked the clock mutex up above, lock it now. */
-
-#if defined(HAVE_TM_ZONE) || defined(WIN32)
- Tcl_MutexLock(&clockMutex);
-#endif
- result = TclpStrftime(buffer.string, (unsigned int) bufSize, format,
- timeDataPtr, useGMT);
-#if defined(HAVE_TM_ZONE) || defined(WIN32)
- Tcl_MutexUnlock(&clockMutex);
-#endif
-
-#if !defined(HAVE_TM_ZONE) && !defined(WIN32)
+ if (objc != 0) {
+ goto wrongScanArgs;
+ }
+
+ if (baseObjPtr != NULL) {
+ if (Tcl_GetLongFromObj(interp, baseObjPtr,
+ (long*) &baseClock) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ } else {
+ baseClock = TclpGetSeconds();
+ }
+
if (useGMT) {
- if (savedTZEnv != NULL) {
- Tcl_SetVar2(interp, "env", "TZ", savedTZEnv, TCL_GLOBAL_ONLY);
- ckfree(savedTZEnv);
- } else {
- Tcl_UnsetVar2(interp, "env", "TZ", TCL_GLOBAL_ONLY);
- }
- timezone = savedTimeZone;
- tzset();
+ zone = -50000; /* Force GMT */
+ } else {
+ zone = TclpGetTimeZone((unsigned long) baseClock);
}
- Tcl_MutexUnlock(&clockMutex);
-#endif
-
- if (result == 0) {
- /*
- * A zero return is the error case (can also mean the strftime
- * didn't get enough space to write into). We know it doesn't
- * mean that we wrote zero chars because the check for an empty
- * format string is above.
- */
- Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
- "bad format string \"", format, "\"", (char *) NULL);
+
+ scanStr = Tcl_GetStringFromObj(objv[1], &dummy);
+ Tcl_MutexLock(&clockMutex);
+ if (TclGetDate(scanStr, (unsigned long) baseClock, zone,
+ &clockVal) < 0) {
+ Tcl_MutexUnlock(&clockMutex);
+ resultPtr = Tcl_NewObj();
+ Tcl_AppendStringsToObj(resultPtr,
+ "unable to convert date-time string \"",
+ scanStr, "\"", (char *) NULL);
+ Tcl_SetObjResult( interp, resultPtr );
return TCL_ERROR;
}
-
- Tcl_SetStringObj(Tcl_GetObjResult(interp), buffer.string, -1);
-
- Tcl_DStringFree(&buffer);
+ Tcl_MutexUnlock(&clockMutex);
+ Tcl_SetObjResult(interp, Tcl_NewWideIntObj( (Tcl_WideInt) clockVal ) );
return TCL_OK;
+
}
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 620af26..8633e6e 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclInt.h,v 1.171 2004/08/02 20:55:37 dgp Exp $
+ * RCS: @(#) $Id: tclInt.h,v 1.172 2004/08/18 19:58:59 kennykb Exp $
*/
#ifndef _TCLINT
@@ -1958,7 +1958,19 @@ EXTERN int Tcl_CatchObjCmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
EXTERN int Tcl_CdObjCmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Tcl_ClockObjCmd _ANSI_ARGS_((ClientData clientData,
+EXTERN int TclClockClicksObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockMicrosecondsObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockMillisecondsObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockSecondsObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockLocaltimeObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockMktimeObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
+EXTERN int TclClockOldscanObjCmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
EXTERN int Tcl_CloseObjCmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
diff --git a/generic/tclInterp.c b/generic/tclInterp.c
index 12a2a8b..70c3356 100644
--- a/generic/tclInterp.c
+++ b/generic/tclInterp.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclInterp.c,v 1.43 2004/08/02 20:55:37 dgp Exp $
+ * RCS: @(#) $Id: tclInterp.c,v 1.44 2004/08/18 19:59:00 kennykb Exp $
*/
#include "tclInt.h"
@@ -2003,6 +2003,8 @@ SlaveCreate(interp, pathPtr, safe)
char *path;
int new, objc;
Tcl_Obj **objv;
+ Tcl_Obj* clockObj;
+ int status;
if (Tcl_ListObjGetElements(interp, pathPtr, &objc, &objv) != TCL_OK) {
return NULL;
@@ -2071,10 +2073,23 @@ SlaveCreate(interp, pathPtr, safe)
*/
InheritLimitsFromMaster(slaveInterp, masterInterp);
+ if ( safe ) {
+ clockObj = Tcl_NewStringObj( "clock", -1 );
+ Tcl_IncrRefCount( clockObj );
+ status = AliasCreate( interp, slaveInterp, masterInterp,
+ clockObj, clockObj, 0, (Tcl_Obj *CONST *) NULL );
+ Tcl_DecrRefCount( clockObj );
+ if ( status != TCL_OK ) {
+ goto error2;
+ }
+ }
+
+
return slaveInterp;
- error:
+ error:
TclTransferResult(slaveInterp, TCL_ERROR, interp);
+ error2:
Tcl_DeleteInterp(slaveInterp);
return NULL;
diff --git a/library/clock.tcl b/library/clock.tcl
new file mode 100644
index 0000000..44e7d8c
--- /dev/null
+++ b/library/clock.tcl
@@ -0,0 +1,4874 @@
+#----------------------------------------------------------------------
+#
+# clock.tcl --
+#
+# This file implements the portions of the [clock] ensemble that
+# are coded in Tcl. Refer to the users' manual to see the description
+# of the [clock] command and its subcommands.
+#
+#
+#----------------------------------------------------------------------
+#
+# Copyright (c) 2004 by Kevin B. Kenny. All rights reserved.
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: clock.tcl,v 1.1 2004/08/18 19:59:00 kennykb Exp $
+#
+#----------------------------------------------------------------------
+
+# We must have message catalogs that support the root locale, and
+# we need access to the Registry on Windows systems. We also need
+# Tcl 8.5 dictionaries.
+
+uplevel \#0 {
+ package require msgcat 1.4
+ if { $::tcl_platform(platform) eq {windows} } {
+ package require registry 1.1
+ }
+}
+
+# Put the library directory into the namespace for the ensemble
+# so that the library code can find message catalogs and time zone
+# definition files.
+
+namespace eval ::tcl::clock \
+ [list variable LibDir [file dirname [info script]]]
+
+#----------------------------------------------------------------------
+#
+# clock --
+#
+# Manipulate times.
+#
+# The 'clock' command manipulates time. Refer to the user documentation
+# for the available subcommands and what they do.
+#
+#----------------------------------------------------------------------
+
+namespace eval ::tcl::clock {
+
+ # Export the subcommands
+
+ namespace export format
+ namespace export clicks
+ namespace export microseconds
+ namespace export milliseconds
+ namespace export scan
+ namespace export seconds
+ namespace export add
+
+ # Import the message catalog commands that we use.
+
+ namespace import ::msgcat::mc
+ namespace import ::msgcat::mcload
+ namespace import ::msgcat::mclocale
+
+ # Define the Greenwich time zone
+
+ variable TZData
+ set TZData(:Etc/GMT) {
+ {-9223372036854775808 0 0 GMT}
+ }
+ set TZData(:GMT) $TZData(:Etc/GMT)
+ set TZData(:Etc/UTC) {
+ {-9223372036854775808 0 0 UTC}
+ }
+ set TZData(:UTC) $TZData(:Etc/UTC)
+
+ # Define the message catalog for the root locale.
+
+ ::msgcat::mcmset {} {
+ AM {am}
+ BCE {B.C.E.}
+ CE {C.E.}
+ DATE_FORMAT {%m/%d/%Y}
+ DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y}
+ DAYS_OF_WEEK_ABBREV {
+ Sun Mon Tue Wed Thu Fri Sat
+ }
+ DAYS_OF_WEEK_FULL {
+ Sunday Monday Tuesday Wednesday Thursday Friday Saturday
+ }
+ GREGORIAN_CHANGE_DATE 2299161
+ LOCALE_DATE_FORMAT {%m/%d/%Y}
+ LOCALE_DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y}
+ LOCALE_ERAS {}
+ LOCALE_NUMERALS {
+ 00 01 02 03 04 05 06 07 08 09
+ 10 11 12 13 14 15 16 17 18 19
+ 20 21 22 23 24 25 26 27 28 29
+ 30 31 32 33 34 35 36 37 38 39
+ 40 41 42 43 44 45 46 47 48 49
+ 50 51 52 53 54 55 56 57 58 59
+ 60 61 62 63 64 65 66 67 68 69
+ 70 71 72 73 74 75 76 77 78 79
+ 80 81 82 83 84 85 86 87 88 89
+ 90 91 92 93 94 95 96 97 98 99
+ }
+ LOCALE_TIME_FORMAT {%H:%M:%S}
+ LOCALE_YEAR_FORMAT {%EC%Ey}
+ MONTHS_ABBREV {
+ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
+ }
+ MONTHS_FULL {
+ January February March
+ April May June
+ July August September
+ October November December
+ }
+ PM {pm}
+ TIME_FORMAT {%H:%M:%S}
+ TIME_FORMAT_12 {%I:%M:%S %P}
+ TIME_FORMAT_24 {%H:%M}
+ TIME_FORMAT_24_SECS {%H:%M:%S}
+ }
+
+ # Define a few Gregorian change dates for other locales. In most cases
+ # the change date follows a language, because a nation's colonies changed
+ # at the same time as the nation itself. In many cases, different
+ # national boundaries existed; the dominating rule is to follow the
+ # nation's capital.
+
+ # Italy, Spain, Portugal, Poland
+
+ ::msgcat::mcset it GREGORIAN_CHANGE_DATE 2299161
+ ::msgcat::mcset es GREGORIAN_CHANGE_DATE 2299161
+ ::msgcat::mcset pt GREGORIAN_CHANGE_DATE 2299161
+ ::msgcat::mcset pl GREGORIAN_CHANGE_DATE 2299161
+
+ # France, Austria
+
+ ::msgcat::mcset fr GREGORIAN_CHANGE_DATE 2299227
+
+ # For Belgium, we follow Southern Netherlands; Liege Diocese
+ # changed several weeks later.
+
+ ::msgcat::mcset fr_BE GREGORIAN_CHANGE_DATE 2299238
+ ::msgcat::mcset nl_BE GREGORIAN_CHANGE_DATE 2299238
+
+ # Austria
+
+ ::msgcat::mcset de_AT GREGORIAN_CHANGE_DATE 2299527
+
+ # Hungary
+
+ ::msgcat::mcset hu GREGORIAN_CHANGE_DATE 2301004
+
+ # Germany, Norway, Denmark (Catholic Germany changed earlier)
+
+ ::msgcat::mcset de_DE GREGORIAN_CHANGE_DATE 2342032
+ ::msgcat::mcset nb GREGORIAN_CHANGE_DATE 2342032
+ ::msgcat::mcset nn GREGORIAN_CHANGE_DATE 2342032
+ ::msgcat::mcset no GREGORIAN_CHANGE_DATE 2342032
+ ::msgcat::mcset da GREGORIAN_CHANGE_DATE 2342032
+
+ # Holland (Brabant, Gelderland, Flanders, Friesland, etc. changed
+ # at various times)
+
+ ::msgcat::mcset nl GREGORIAN_CHANGE_DATE 2342165
+
+ # Protestant Switzerland (Catholic cantons changed earlier)
+
+ ::msgcat::mcset fr_CH GREGORIAN_CHANGE_DATE 2361342
+ ::msgcat::mcset it_CH GREGORIAN_CHANGE_DATE 2361342
+ ::msgcat::mcset de_CH GREGORIAN_CHANGE_DATE 2361342
+
+ # English speaking countries
+
+ ::msgcat::mcset en GREGORIAN_CHANGE_DATE 2361222
+
+ # Sweden (had several changes onto and off of the Gregorian calendar)
+
+ ::msgcat::mcset sv GREGORIAN_CHANGE_DATE 2361390
+
+ # Russia
+
+ ::msgcat::mcset ru GREGORIAN_CHANGE_DATE 2421639
+
+ # Romania (Transylvania changed earler - perhaps de_RO should show
+ # the earlier date?)
+
+ ::msgcat::mcset ro GREGORIAN_CHANGE_DATE 2422063
+
+ # Greece
+
+ ::msgcat::mcset el GREGORIAN_CHANGE_DATE 2423480
+
+ #------------------------------------------------------------------
+ #
+ # CONSTANTS
+ #
+ #------------------------------------------------------------------
+
+ # Paths at which binary time zone data for the Olson libraries
+ # are known to reside on various operating systems
+
+ variable ZoneinfoPaths {}
+ proc ZoneinfoInit {} {
+ variable ZoneinfoPaths
+ rename ZoneinfoInit {}
+ foreach path {
+ /usr/share/zoneinfo
+ /usr/share/lib/zoneinfo
+ /usr/local/etc/zoneinfo
+ C:/Progra~1/cygwin/usr/local/etc/zoneinfo
+ } {
+ if { [file isdirectory $path] } {
+ lappend ZoneinfoPaths $path
+ }
+ }
+ }
+ ZoneinfoInit
+
+ # Define the directories for time zone data and message catalogs.
+
+ variable DataDir [file join $LibDir tzdata]
+ variable MsgDir [file join $LibDir msgs]
+
+ # Number of days in the months, in common years and leap years.
+
+ variable DaysInRomanMonthInCommonYear \
+ { 31 28 31 30 31 30 31 31 30 31 30 31 }
+ variable DaysInRomanMonthInLeapYear \
+ { 31 29 31 30 31 30 31 31 30 31 30 31 }
+ variable DaysInPriorMonthsInCommonYear [list 0]
+ variable DaysInPriorMonthsInLeapYear [list 0]
+ set i 0
+ foreach j $DaysInRomanMonthInCommonYear {
+ lappend DaysInPriorMonthsInCommonYear [incr i $j]
+ }
+ set i 0
+ foreach j $DaysInRomanMonthInLeapYear {
+ lappend DaysInPriorMonthsInLeapYear [incr i $j]
+ }
+ unset i j
+
+ # Julian day number of 0 January, 1 CE, in the proleptic Julian and
+ # Gregorian calendars.
+
+ variable JD0Jan1CEJul 1721423
+ variable JD0Jan1CEGreg 1721425
+ variable JD31Dec9999 5373484
+
+ # Posix epoch, expressed as seconds from the Julian epoch
+
+ variable PosixEpochAsJulianSeconds 210866803200
+
+ # Another epoch (Hi, Jeff!)
+
+ variable Roddenberry 1946
+
+ # Integer ranges
+
+ variable MINWIDE -9223372036854775808
+ variable MAXWIDE 9223372036854775807
+
+ # Day before Leap Day
+
+ variable FEB_28 58
+
+ # Conversion factors
+
+ variable DaysPer400Yr 146097; # Days per 400 year Gregorian cycle
+ variable DaysPerCentury 36524; # Days per common Gregorian century
+ variable DaysPer4Yr 1461; # Days per 4 year cycle
+ variable DaysPerYear 365; # Days per common year
+ variable DaysPerWeek 7;
+ variable SecondsPerDay 86400; # Seconds per day
+ variable SecondsPerHour 3600; # Seconds per hour
+ variable SecondsPerMinute 60; # Seconds per minute
+ variable MinutesPerHour 60; # Minutes per hour
+ variable HoursPerDay 24; # Hours per day
+
+ # Translation table to map Windows TZI onto cities, so that
+ # the Olson rules can apply. In some cases the mapping is ambiguous,
+ # so it's wise to specify $::env(TCL_TZ) rather than simply depending
+ # on the system time zone.
+
+ # The keys are long lists of values obtained from the time zone
+ # information in the Registry. In order, the list elements are:
+ # Bias StandardBias DaylightBias
+ # StandardDate.wYear StandardDate.wMonth StandardDate.wDayOfWeek
+ # StandardDate.wDay StandardDate.wHour StandardDate.wMinute
+ # StandardDate.wSecond StandardDate.wMilliseconds
+ # DaylightDate.wYear DaylightDate.wMonth DaylightDate.wDayOfWeek
+ # DaylightDate.wDay DaylightDate.wHour DaylightDate.wMinute
+ # DaylightDate.wSecond DaylightDate.wMilliseconds
+ # The values are the names of time zones where those rules apply.
+ # There is considerable ambiguity in certain zones; an attempt has
+ # been made to make a reasonable guess, but this table needs to be
+ # taken with a grain of salt.
+
+ variable WinZoneInfo [dict create \
+ {-43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Kwajalein \
+ {-39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Midway \
+ {-36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Honolulu \
+ {-32400 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Anchorage \
+ {-28800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Los_Angeles \
+ {-25200 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Denver \
+ {-25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Phoenix \
+ {-21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Regina \
+ {-21600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Chicago \
+ {-18000 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/New_York \
+ {-18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Indianapolis \
+ {-14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Caracas \
+ {-14400 0 3600 0 3 6 2 0 0 0 0 0 10 6 2 0 0 0 0} :America/Santiago \
+ {-14400 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Halifax \
+ {-12600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/St_Johns \
+ {-10800 0 3600 0 2 0 2 2 0 0 0 0 10 0 3 2 0 0 0} :America/Sao_Paulo \
+ {-10800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Godthab \
+ {-10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Buenos_Aires \
+ {-7200 0 3600 0 9 0 5 2 0 0 0 0 3 0 5 2 0 0 0} :America/Noronha \
+ {-3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Atlantic/Azores \
+ {-3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Atlantic/Cape_Verde \
+ {0 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :UTC \
+ {0 0 3600 0 10 0 5 2 0 0 0 0 3 0 5 1 0 0 0} :Europe/London \
+ {3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Africa/Kinshasa \
+ {3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :CET \
+ {7200 0 3600 0 9 3 5 2 0 0 0 0 5 5 1 2 0 0 0} :Africa/Cairo \
+ {7200 0 3600 0 10 0 5 4 0 0 0 0 3 0 5 3 0 0 0} :Europe/Helsinki \
+ {7200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Jerusalem \
+ {7200 0 3600 0 9 0 5 1 0 0 0 0 3 0 5 0 0 0 0} :Europe/Bucharest \
+ {7200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Athens \
+ {10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Riyadh \
+ {10800 0 3600 0 10 0 1 4 0 0 0 0 4 0 1 3 0 0 0} :Asia/Baghdad \
+ {10800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Moscow \
+ {12600 0 3600 0 9 2 4 2 0 0 0 0 3 0 1 2 0 0 0} :Asia/Tehran \
+ {14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Muscat \
+ {14400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Tbilisi \
+ {16200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Kabul \
+ {18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Karachi \
+ {18000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yekaterinburg \
+ {19800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Calcutta \
+ {20700 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Katmandu \
+ {21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Dhaka \
+ {21600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Novosibirsk \
+ {23400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Rangoon \
+ {25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Bangkok \
+ {25200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Krasnoyarsk \
+ {28800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Chongqing \
+ {28800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Irkutsk \
+ {32400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Tokyo \
+ {32400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yakutsk \
+ {34200 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Adelaide \
+ {34200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Darwin \
+ {36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Brisbane \
+ {36000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Vladivostok \
+ {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 1 2 0 0 0} :Australia/Hobart \
+ {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Sydney \
+ {39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Noumea \
+ {43200 0 3600 0 3 0 3 2 0 0 0 0 10 0 1 2 0 0 0} :Pacific/Auckland \
+ {43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Fiji \
+ {46800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Tongatapu]
+
+ # Groups of fields that specify the date, priorities, and
+ # code bursts that determine Julian Day Number given those groups.
+ # The code in [clock scan] will choose the highest priority
+ # (lowest numbered) set of fields that determines the date.
+
+ variable DateParseActions {
+
+ { seconds } 0 {}
+
+ { julianDay } 1 {}
+
+ { century yearOfCentury month dayOfMonth } 2 {
+ dict set date era CE
+ dict set date year [expr { 100 * [dict get $date century]
+ + [dict get $date yearOfCentury] }]
+ set date [GetJulianDayFromEraYearMonthDay [K $date [set date {}]]]
+ }
+ { century yearOfCentury dayOfYear } 2 {
+ dict set date era CE
+ dict set date year [expr { 100 * [dict get $date century]
+ + [dict get $date yearOfCentury] }]
+ set date [GetJulianDayFromEraYearDay [K $date [set date {}]]]
+ }
+ { iso8601Century iso8601YearOfCentury iso8601Week dayOfWeek } 2 {
+ dict set date era CE
+ dict set date iso8601Year \
+ [expr { 100 * [dict get $date iso8601Century]
+ + [dict get $date iso8601YearOfCentury] }]
+ set date [GetJulianDayFromEraYearWeekDay [K $date [set date {}]]]
+ }
+
+ { yearOfCentury month dayOfMonth } 3 {
+ set date [InterpretTwoDigitYear [K $date [set date {}]] $baseTime]
+ dict set date era CE
+ set date [GetJulianDayFromEraYearMonthDay [K $date [set date {}]]]
+ }
+ { yearOfCentury dayOfYear } 3 {
+ set date [InterpretTwoDigitYear [K $date [set date {}]] $baseTime]
+ dict set date era CE
+ set date [GetJulianDayFromEraYearDay [K $date [set date {}]]]
+ }
+ { iso8601YearOfCentury iso8601Week dayOfWeek } 3 {
+ set date [InterpretTwoDigitYear \
+ [K $date [set date {}]] $baseTime \
+ iso8601YearOfCentury iso8601Year]
+ dict set date era CE
+ set date [GetJulianDayFromEraYearWeekDay [K $date [set date {}]]]
+ }
+
+ { month dayOfMonth } 4 {
+ set date [AssignBaseYear [K $date [set date {}]] \
+ $baseTime $timeZone]
+ set date [GetJulianDayFromEraYearMonthDay [K $date [set date {}]]]
+ }
+ { dayOfYear } 4 {
+ set date [AssignBaseYear [K $date [set date {}]] \
+ $baseTime $timeZone]
+ set date [GetJulianDayFromEraYearDay [K $date [set date {}]]]
+ }
+ { iso8601Week dayOfWeek } 4 {
+ set date [AssignBaseIso8601Year [K $date [set date {}]] \
+ $baseTime $timeZone]
+ set date [GetJulianDayFromEraYearWeekDay [K $date [set date {}]]]
+ }
+
+ { dayOfMonth } 5 {
+ set date [AssignBaseMonth [K $date [set date {}]] \
+ $baseTime $timeZone]
+ set date [GetJulianDayFromEraYearMonthDay [K $date [set date {}]]]
+ }
+
+ { dayOfWeek } 6 {
+ set date [AssignBaseWeek [K $date [set date {}]] \
+ $baseTime $timeZone]
+ set date [GetJulianDayFromEraYearWeekDay [K $date [set date {}]]]
+ }
+
+ {} 7 {
+ set date [AssignBaseJulianDay [K $date [set date {}]] \
+ $baseTime $timeZone]
+ }
+ }
+
+ # Groups of fields that specify time of day, priorities,
+ # and code that processes them
+
+ variable TimeParseActions {
+
+ seconds 1 {}
+
+ { hourAMPM minute second amPmIndicator } 2 {
+ dict set date secondOfDay [InterpretHMSP $date]
+ }
+ { hour minute second } 2 {
+ dict set date secondOfDay [InterpretHMS $date]
+ }
+
+ { hourAMPM minute amPmIndicator } 3 {
+ dict set date second 0
+ dict set date secondOfDay [InterpretHMSP $date]
+ }
+ { hour minute } 3 {
+ dict set date second 0
+ dict set date secondOfDay [InterpretHMS $date]
+ }
+
+ { hourAMPM amPmIndicator } 4 {
+ dict set date minute 0
+ dict set date second 0
+ dict set date secondOfDay [InterpretHMSP $date]
+ }
+ { hour } 4 {
+ dict set date minute 0
+ dict set date second 0
+ dict set date secondOfDay [InterpretHMS $date]
+ }
+
+ { } 5 {
+ dict set date secondOfDay 0
+ }
+ }
+
+ # Legacy time zones, used primarily for parsing RFC822 dates.
+
+ variable LegacyTimeZone [dict create \
+ gmt +0000 \
+ ut +0000 \
+ utc +0000 \
+ bst +0100 \
+ wet +0000 \
+ wat -0100 \
+ at -0200 \
+ nft -0330 \
+ nst -0330 \
+ ndt -0230 \
+ ast -0400 \
+ adt -0300 \
+ est -0500 \
+ edt -0400 \
+ cst -0600 \
+ cdt -0500 \
+ mst -0700 \
+ mdt -0600 \
+ pst -0800 \
+ pdt -0700 \
+ yst -0900 \
+ ydt -0800 \
+ hst -1000 \
+ hdt -0900 \
+ cat -1000 \
+ ahst -1000 \
+ nt -1100 \
+ idlw -1200 \
+ cet +0100 \
+ cest +0200 \
+ met +0100 \
+ mewt +0100 \
+ mest +0200 \
+ swt +0100 \
+ sst +0200 \
+ fwt +0100 \
+ fst +0200 \
+ eet +0200 \
+ eest +0300 \
+ bt +0300 \
+ it +0330 \
+ zp4 +0400 \
+ zp5 +0500 \
+ ist +0530 \
+ zp6 +0600 \
+ wast +0700 \
+ wadt +0800 \
+ jt +0730 \
+ cct +0800 \
+ jst +0900 \
+ cast +0930 \
+ cadt +1030 \
+ east +1000 \
+ eadt +1030 \
+ gst +1000 \
+ nzt +1200 \
+ nzst +1200 \
+ nzdt +1300 \
+ idle +1200 \
+ a +0100 \
+ b +0200 \
+ c +0300 \
+ d +0400 \
+ e +0500 \
+ f +0600 \
+ g +0700 \
+ h +0800 \
+ i +0900 \
+ k +1000 \
+ l +1100 \
+ m +1200 \
+ n -0100 \
+ o -0200 \
+ p -0300 \
+ q -0400 \
+ r -0500 \
+ s -0600 \
+ t -0700 \
+ u -0800 \
+ v -0900 \
+ w -1000 \
+ x -1100 \
+ y -1200 \
+ z +0000 \
+ ]
+
+ # Caches
+
+ variable LocaleNumeralCache {}; # Dictionary whose keys are locale
+ # names and whose values are pairs
+ # comprising regexes matching numerals
+ # in the given locales and dictionaries
+ # mapping the numerals to their numeric
+ # values.
+ variable McLoaded {}; # Dictionary whose keys are locales
+ # in which [mcload] has been executed
+ # and whose values are immaterial
+ # variable CachedSystemTimeZone; # If 'CachedSystemTimeZone' exists,
+ # it contains the value of the
+ # system time zone, as determined from
+ # the environment.
+ variable TZData; # Array whose keys are time zone names
+ # and whose values are lists of quads
+ # comprising start time, UTC offset,
+ # Daylight Saving Time indicator, and
+ # time zone abbreviation.
+}
+
+#----------------------------------------------------------------------
+#
+# K --
+#
+# The K combinator returns its first argument. It's used for
+# reference count management.
+#
+# Parameters:
+# x - Argument to be unreferenced.
+# y - Unused.
+#
+# Results:
+# Returns the first argument.
+#
+# Side effects:
+# None.
+#
+# The K combinator is used for its effect that [K $x [set x {}]]
+# reads out the value of x destructively, giving an unshared Tcl
+# object and avoiding 'copy on write'
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::K { x y } { return $x }
+
+#----------------------------------------------------------------------
+#
+# clock format --
+#
+# Formats a count of seconds since the Posix Epoch as a time
+# of day.
+#
+# The 'clock format' command formats times of day for output.
+# Refer to the user documentation to see what it does.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::format { args } {
+
+ variable SecondsPerDay
+ variable SecondsPerHour
+ variable SecondsPerMinute
+ variable MinutesPerHour
+ variable HoursPerDay
+ variable DaysPerYear
+ variable DaysPerWeek
+
+ set format {}
+
+ # Check the count of args
+
+ if { [llength $args] < 1 || [llength $args] % 2 != 1 } {
+ return -code error \
+ -errorcode [list CLOCK wrongNumArgs] \
+ "wrong \# args: should be\
+ \"[lindex [info level 0] 0] clockval\
+ ?-format string? ?-gmt boolean?\
+ ?-locale LOCALE? ?-timezone ZONE?\""
+ }
+
+ # Set defaults
+
+ set clockval [lindex $args 0]
+ set format {%a %b %d %H:%M:%S %Z %Y}
+ set gmt 0
+ set locale C
+ set timezone [GetSystemTimeZone]
+
+ # Pick up command line options.
+
+ foreach { flag value } [lreplace $args 0 0] {
+ set saw($flag) {}
+ switch -exact -- $flag {
+ -format {
+ set format $value
+ }
+ -gmt {
+ set gmt $value
+ }
+ -locale {
+ set locale $value
+ }
+ -timezone {
+ set timezone $value
+ }
+ default {
+ return -code error \
+ -errorcode [list CLOCK badSwitch $flag] \
+ "bad switch \"$flag\",\
+ must be -format, -gmt, -locale or -timezone"
+ }
+ }
+ }
+
+ # Check options for validity
+
+ if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } {
+ return -code error \
+ -errorcode [list CLOCK gmtWithTimezone] \
+ "cannot use -gmt and -timezone in same call"
+ }
+ if { [catch { expr { wide($clockval) } } result] } {
+ return -code error \
+ "expected integer but got \"$clockval\""
+ }
+ if { ![string is boolean $gmt] } {
+ return -code error \
+ "expected boolean value but got \"$gmt\""
+ } else {
+ if { $gmt } {
+ set timezone :GMT
+ }
+ }
+
+ EnterLocale $locale oldLocale
+
+ # Change locale if a fresh locale has been given on the command line.
+
+ set status [catch {
+
+ # Map away the locale-dependent composite format groups
+
+ set format [LocalizeFormat $format]
+
+ # Convert the given time to local time.
+
+ set date [dict create seconds $clockval]
+ set date [ConvertUTCToLocal [K $date [set date {}]] $timezone]
+
+ # Extract the fields of the date.
+
+ set date [GetJulianDay [K $date [set date {}]]]
+ set date [GetGregorianEraYearDay [K $date [set date {}]]]
+ set date [GetMonthDay [K $date [set date {}]]]
+ set date [GetYearWeekDay [K $date [set date {}]]]
+
+ # Format the result
+
+ set state {}
+ set retval {}
+ foreach char [split $format {}] {
+ switch -exact $state {
+ {} {
+ if { [string equal % $char] } {
+ set state percent
+ } else {
+ append retval $char
+ }
+ }
+ percent { # Character following a '%' character
+ set state {}
+ switch -exact -- $char {
+ % { # A literal character, '%'
+ append retval %
+ }
+ a { # Day of week, abbreviated
+ set dow [expr { [dict get $date dayOfWeek] % 7 }]
+ append retval \
+ [lindex [mc DAYS_OF_WEEK_ABBREV] $dow]
+ }
+ A { # Day of week, spelt out.
+ set dow [expr { [dict get $date dayOfWeek] % 7 }]
+ append retval [lindex [mc DAYS_OF_WEEK_FULL] $dow]
+ }
+ b - h { # Name of month, abbreviated.
+ set month [expr { [dict get $date month] - 1 }]
+ append retval [lindex [mc MONTHS_ABBREV] $month]
+ }
+ B { # Name of month, spelt out
+ set month [expr { [dict get $date month] - 1 }]
+ append retval [lindex [mc MONTHS_FULL] $month]
+ }
+ C { # Century number
+ set cent [expr { [dict get $date year] / 100 }]
+ append retval [::format %02d $cent]
+ }
+ d { # Day of month, with leading zero
+ append retval [::format %02d \
+ [dict get $date dayOfMonth]]
+ }
+ e { # Day of month, without leading zero
+ append retval [::format %2d \
+ [dict get $date dayOfMonth]]
+ }
+ E { # Format group in a locale-dependent
+ # alternative era
+ set state percentE
+ if { ![dict exists $date localeEra] } {
+ set date [GetLocaleEra [K $date [set date {}]]]
+ }
+ }
+ g { # Two-digit year relative to ISO8601
+ # week number
+ set year \
+ [expr { [dict get $date iso8601Year] % 100 }]
+ append retval [::format %02d $year]
+ }
+ G { # Four-digit year relative to ISO8601
+ # week number
+ append retval [::format %04d \
+ [dict get $date iso8601Year]]
+ }
+ H { # Hour in the 24-hour day, leading zero
+ append retval \
+ [::format %02d \
+ [expr { [dict get $date localSeconds]
+ / $SecondsPerHour
+ % $HoursPerDay }]]
+ }
+ I { # Hour AM/PM, with leading zero
+ set hour12 \
+ [expr { ( ( ( [dict get $date localSeconds]
+ % $SecondsPerDay )
+ + $SecondsPerDay
+ - $SecondsPerHour )
+ / $SecondsPerHour )
+ % 12 + 1 }]
+ append retval [::format %02d $hour12]
+ }
+ j { # Day of year (001-366)
+ append retval [::format %03d \
+ [dict get $date dayOfYear]]
+ }
+ J { # Julian Day Number
+ append retval [::format %07ld \
+ [dict get $date julianDay]]
+ }
+ k { # Hour (0-23), no leading zero
+ append retval \
+ [::format %2d \
+ [expr { [dict get $date localSeconds]
+ / $SecondsPerHour
+ % $HoursPerDay }]]
+ }
+ l { # Hour (12-11), no leading zero
+ set hour12 \
+ [expr { ( ( ( [dict get $date localSeconds]
+ % $SecondsPerDay )
+ + $SecondsPerDay
+ - $SecondsPerHour )
+ / $SecondsPerHour )
+ % 12 + 1 }]
+ append retval [::format %2d $hour12]
+ }
+ m { # Month number, leading zero
+ append retval [::format %02d \
+ [dict get $date month]]
+ }
+ M { # Minute of the hour, leading zero
+ append retval \
+ [::format %02d \
+ [expr { [dict get $date localSeconds]
+ / $SecondsPerMinute
+ % $MinutesPerHour }]]
+ }
+ n { # A literal newline
+ append retval \n
+ }
+ N { # Month number, no leading zero
+ append retval [::format %2d \
+ [dict get $date month]]
+ }
+ O { # A format group in the locale's
+ # alternative numerals
+ set state percentO
+ }
+ p { # Localized 'AM' or 'PM' indicator
+ # converted to uppercase
+ set tod [expr { [dict get $date localSeconds]
+ % $SecondsPerDay }]
+ if { $tod >= ( $SecondsPerDay / 2 ) } {
+ append retval [string toupper [mc PM]]
+ } else {
+ append retval [string toupper [mc AM]]
+ }
+ }
+ P { # Localized 'AM' or 'PM' indicator
+ set tod [expr { [dict get $date localSeconds]
+ % $SecondsPerDay }]
+ if { $tod >= ( $SecondsPerDay / 2 ) } {
+ append retval [mc PM]
+ } else {
+ append retval [mc AM]
+ }
+ }
+ Q { # Hi, Jeff!
+ append retval [FormatStarDate $date]
+ }
+ s { # Seconds from the Posix Epoch
+ append retval $clockval
+ }
+ S { # Second of the minute, with
+ # leading zero
+ append retval \
+ [::format %02d \
+ [expr { [dict get $date localSeconds]
+ % $SecondsPerMinute }]]
+ }
+ t { # A literal tab character
+ append retval \t
+ }
+ u { # Day of the week (1-Monday, 7-Sunday)
+ append retval [dict get $date dayOfWeek]
+ }
+ U { # Week of the year (00-53). The
+ # first Sunday of the year is the
+ # first day of week 01
+ set dow [dict get $date dayOfWeek]
+ if { $dow == 7 } {
+ set dow 0
+ }
+ incr dow
+ set weekNumber \
+ [expr { ( [dict get $date dayOfYear]
+ - $dow
+ + $DaysPerWeek )
+ / $DaysPerWeek }]
+ append retval [::format %02d $weekNumber]
+ }
+ V { # The ISO8601 week number
+ append retval [::format %02d \
+ [dict get $date iso8601Week]]
+ }
+ w { # Day of the week (0-Sunday,
+ # 6-Saturday)
+ append retval \
+ [expr { [dict get $date dayOfWeek] % 7 }]
+ }
+ W { # Week of the year (00-53). The first
+ # Monday of the year is the first day
+ # of week 01.
+ set weekNumber \
+ [expr { ( [dict get $date dayOfYear]
+ - [dict get $date dayOfWeek]
+ + $DaysPerWeek )
+ / $DaysPerWeek }]
+ append retval [::format %02d $weekNumber]
+ }
+ y { # The two-digit year of the century
+ append retval \
+ [::format %02d \
+ [expr { [dict get $date year] % 100 }]]
+ }
+ Y { # The four-digit year
+ append retval [::format %04d \
+ [dict get $date year]]
+ }
+ z { # The time zone as hours and minutes
+ # east (+) or west (-) of Greenwich
+ set z [dict get $date tzOffset]
+ if { $z < 0 } {
+ set z [expr { - $z }]
+ append retval -
+ } else {
+ append retval +
+ }
+ append retval [::format %02d \
+ [expr { $z / $SecondsPerHour }]]
+ set z [expr { $z % $SecondsPerHour }]
+ append retval \
+ [::format %02d \
+ [expr { $z / $SecondsPerMinute }]]
+ set z [expr { $z % $SecondsPerMinute }]
+ if { $z != 0 } {
+ append retval [::format %02d $z]
+ }
+ }
+ Z { # The name of the time zone
+ append retval [dict get $date tzName]
+ }
+ % { # A literal percent character
+ append retval %
+ }
+ default { # An unknown escape sequence
+ append retval % $char
+ }
+ }
+ }
+ percentE { # Character following %E
+ set state {}
+ switch -exact -- $char {
+ C { # Locale-dependent era
+ append retval [dict get $date localeEra]
+ }
+ y { # Locale-dependent year of the era
+ set y [dict get $date localeYear]
+ if { $y >= 0 && $y < 100 } {
+ append retval [lindex [mc LOCALE_NUMERALS] $y]
+ } else {
+ append retval $y
+ }
+ }
+ default { # Unknown format group
+ append retval %E $char
+ }
+ }
+ }
+ percentO { # Character following %O
+ set state {}
+ switch -exact -- $char {
+ d - e { # Day of the month in alternative
+ # numerals
+ append retval [lindex \
+ [mc LOCALE_NUMERALS] \
+ [dict get $date dayOfMonth]]
+ }
+ H - k { # Hour of the day in alternative
+ # numerals
+ set hour [expr { [dict get $date localSeconds]
+ / $SecondsPerHour
+ % $HoursPerDay }]
+ append retval [lindex [mc LOCALE_NUMERALS] $hour]
+ }
+ I - l { # Hour (12-11) AM/PM in alternative
+ # numerals
+ set hour12 \
+ [expr { ( ( ( [dict get $date localSeconds]
+ % $SecondsPerDay )
+ + $SecondsPerDay
+ - $SecondsPerHour )
+ / $SecondsPerHour )
+ % 12 + 1 }]
+ append retval [lindex [mc LOCALE_NUMERALS] $hour12]
+ }
+ m { # Month number in alternative numerals
+ append retval [lindex \
+ [mc LOCALE_NUMERALS] \
+ [dict get $date month]]
+ }
+ M { # Minute of the hour in alternative
+ # numerals
+ set minute [expr { [dict get $date localSeconds]
+ / $SecondsPerMinute
+ % $MinutesPerHour }]
+ append retval [lindex [mc LOCALE_NUMERALS] $minute]
+ }
+ S { # Second of the minute in alternative
+ # numerals
+ set second [expr { [dict get $date localSeconds]
+ % $SecondsPerMinute }]
+ append retval [lindex [mc LOCALE_NUMERALS] $second]
+ }
+ u { # Day of the week (Monday=1,Sunday=7)
+ # in alternative numerals
+ append retval [lindex \
+ [mc LOCALE_NUMERALS] \
+ [dict get $date dayOfWeek]]
+ }
+ w { # Day of the week (Sunday=0,Saturday=6)
+ # in alternative numerals
+ append retval \
+ [lindex \
+ [mc LOCALE_NUMERALS] \
+ [expr { [dict get $date dayOfWeek] % 7 }]]
+ }
+ y { # Year of the century in alternative
+ # numerals
+ append retval \
+ [lindex \
+ [mc LOCALE_NUMERALS] \
+ [expr { [dict get $date year] % 100 }]]
+ }
+ default { # Unknown format group
+ append retval %O $char
+ }
+ }
+ }
+ }
+ }
+
+ # Clean up any improperly terminated groups
+
+ switch -exact -- $state {
+ percent {
+ append retval %
+ }
+ percentE {
+ append retval %E
+ }
+ percentO {
+ append retval %O
+ }
+ }
+
+ set retval
+
+ } result]
+
+ # Restore the locale
+
+ if { [info exists oldLocale] } {
+ mclocale $oldLocale
+ }
+
+ if { $status == 1 } {
+ if { [lindex $::errorCode 0] eq {clock} } {
+ return -code error $result
+ } else {
+ return -code error \
+ -errorcode $::errorCode -errorinfo $::errorInfo \
+ $result
+ }
+ } else {
+ return $result
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# clock scan --
+#
+# Inputs a count of seconds since the Posix Epoch as a time
+# of day.
+#
+# The 'clock format' command scans times of day on input.
+# Refer to the user documentation to see what it does.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::scan { args } {
+
+ set format {}
+
+ # Check the count of args
+
+ if { [llength $args] < 1 || [llength $args] % 2 != 1 } {
+ return -code error \
+ -errorcode [list CLOCK wrongNumArgs] \
+ "wrong \# args: should be\
+ \"[lindex [info level 0] 0] string\
+ ?-base seconds?\
+ ?-format string? ?-gmt boolean?\
+ ?-locale LOCALE? ?-timezone ZONE?\""
+ }
+
+ # Set defaults
+
+ set base [clock seconds]
+ set string [lindex $args 0]
+ set format {}
+ set gmt 0
+ set locale C
+ set timezone [GetSystemTimeZone]
+
+ # Pick up command line options.
+
+ foreach { flag value } [lreplace $args 0 0] {
+ set saw($flag) {}
+ switch -exact -- $flag {
+ -base {
+ set base $value
+ }
+ -format {
+ set format $value
+ }
+ -gmt {
+ set gmt $value
+ }
+ -locale {
+ set locale $value
+ }
+ -timezone {
+ set timezone $value
+ }
+ default {
+ return -code error \
+ -errorcode [list CLOCK badSwitch $flag] \
+ "bad switch \"$flag\",\
+ must be -base, -format, -gmt, -locale or -timezone"
+ }
+ }
+ }
+
+ # Check options for validity
+
+ if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } {
+ return -code error \
+ -errorcode [list CLOCK gmtWithTimezone] \
+ "cannot use -gmt and -timezone in same call"
+ }
+ if { [catch { expr { wide($base) } } result] } {
+ return -code error \
+ "expected integer but got \"$base\""
+ }
+ if { ![string is boolean $gmt] } {
+ return -code error \
+ "expected boolean value but got \"$gmt\""
+ } else {
+ if { $gmt } {
+ set timezone :GMT
+ }
+ }
+
+ if { ![info exists saw(-format)] } {
+ if { [info exists saw(-timezone)] || [info exists saw(-locale)] } {
+ return -code error \
+ -errorcode [list CLOCK flagWithLegacyFormat] \
+ "legacy \[clock scan\] does not support -timezone or\
+ -locale"
+
+ }
+ if { [catch {
+ Oldscan $string -base $base -gmt $gmt
+ } retval] } {
+ return -code error \
+ -errorcode $::errorCode -errorinfo $::errorInfo \
+ $retval
+ } else {
+ return $retval
+ }
+ }
+
+ # Change locale if a fresh locale has been given on the command line.
+
+ EnterLocale $locale oldLocale
+
+ set status [catch {
+
+ # Map away the locale-dependent composite format groups
+
+ set format [LocalizeFormat $format]
+ set scanner [ParseClockScanFormat $format]
+ $scanner $string $base $timezone
+
+ } result]
+
+ # Restore the locale
+
+ if { [info exists oldLocale] } {
+ mclocale $oldLocale
+ }
+
+ if { $status == 1 } {
+ if { [lindex $::errorCode 0] eq {clock} } {
+ return -code error $result
+ } else {
+ return -code error \
+ -errorcode $::errorCode -errorinfo $::errorInfo \
+ $result
+ }
+ } else {
+ return $result
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# ParseClockScanFormat --
+#
+# Parses a format string given to [clock scan -format]
+#
+# Parameters:
+# None.
+#
+# Results:
+# Constructs and returns a procedure that accepts the
+# string being scanned, the base time, and the time zone.
+# The procedure will either return the scanned time or
+# else throw an error that should be rethrown to the caller
+# of [clock scan]
+#
+# Side effects:
+# The given procedure is defined in the ::tcl::clock
+# namespace. Scan procedures are not deleted once installed.
+#
+# Why do we parse dates by defining a procedure to parse them?
+# The reason is that by doing so, we have one convenient place to
+# cache all the information: the regular expressions that match the
+# patterns (which will be compiled), the code that assembles the
+# date information, everything lands in one place. In this way,
+# when a given format is reused at run time, all the information
+# of how to apply it is available in a single place.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ParseClockScanFormat { formatString } {
+
+ variable DateParseActions
+ variable TimeParseActions
+
+ # Condense whitespace
+
+ regsub -all {[[:space:]]+} $formatString { } formatString
+
+ # Check whether the format has been parsed previously, and return
+ # the existing recognizer if it has.
+
+ set procName [namespace current]::scanproc'$formatString'[mclocale]
+ if { [info procs $procName] != {} } {
+ return $procName
+ }
+
+ # Walk through the groups of the format string. In this loop, we
+ # accumulate:
+ # - a regular expression that matches the string,
+ # - the count of capturing brackets in the regexp
+ # - a set of code that post-processes the fields captured by the regexp,
+ # - a dictionary whose keys are the names of fields that are present
+ # in the format string.
+
+ set re {^[[:space:]]*}
+ set captureCount 0
+ set postcode {}
+ set fieldSet [dict create]
+ set fieldCount 0
+ set postSep {}
+ set state {}
+
+ foreach c [split $formatString {}] {
+ switch -exact -- $state {
+ {} {
+ if { $c eq "%" } {
+ set state %
+ } elseif { $c eq " " } {
+ append re {[[:space:]]+}
+ } else {
+ if { ! [string is alnum $c] } {
+ append re \\
+ }
+ append re $c
+ }
+ }
+ % {
+ set state {}
+ switch -exact -- $c {
+ % {
+ append re %
+ }
+ { } {
+ append re "\[\[:space:\]\]*"
+ }
+ a - A { # Day of week, in words
+ set l {}
+ foreach \
+ i {7 1 2 3 4 5 6} \
+ abr [mc DAYS_OF_WEEK_ABBREV] \
+ full [mc DAYS_OF_WEEK_FULL] {
+ dict set l $abr $i
+ dict set l $full $i
+ incr i
+ }
+ foreach { regex lookup } [UniquePrefixRegexp $l] break
+ append re ( $regex )
+ dict set fieldSet dayOfWeek [incr fieldCount]
+ append postcode "dict set date dayOfWeek \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ b - B - h { # Name of month
+ set i 0
+ set l {}
+ foreach \
+ abr [mc MONTHS_ABBREV] \
+ full [mc MONTHS_FULL] {
+ incr i
+ dict set l $abr $i
+ dict set l $full $i
+ }
+ foreach { regex lookup } [UniquePrefixRegexp $l] break
+ append re ( $regex )
+ dict set fieldSet month [incr fieldCount]
+ append postcode "dict set date month \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ C { # Gregorian century
+ append re \\s*(\\d\\d?)
+ dict set fieldSet century [incr fieldCount]
+ append postcode "dict set date century \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ d - e { # Day of month
+ append re \\s*(\\d\\d?)
+ dict set fieldSet dayOfMonth [incr fieldCount]
+ append postcode "dict set date dayOfMonth \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ E { # Prefix for locale-specific codes
+ set state %E
+ }
+ g { # ISO8601 2-digit year
+ append re \\s*(\\d\\d)
+ dict set fieldSet iso8601YearOfCentury \
+ [incr fieldCount]
+ append postcode \
+ "dict set date iso8601YearOfCentury \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ G { # ISO8601 4-digit year
+ append re \\s*(\\d\\d)(\\d\\d)
+ dict set fieldSet iso8601Century [incr fieldCount]
+ dict set fieldSet iso8601YearOfCentury \
+ [incr fieldCount]
+ append postcode \
+ "dict set date iso8601Century \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n" \
+ "dict set date iso8601YearOfCentury \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ H - k { # Hour of day
+ append re \\s*(\\d\\d?)
+ dict set fieldSet hour [incr fieldCount]
+ append postcode "dict set date hour \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ I - l { # Hour, AM/PM
+ append re \\s*(\\d\\d?)
+ dict set fieldSet hourAMPM [incr fieldCount]
+ append postcode "dict set date hourAMPM \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ j { # Day of year
+ append re \\s*(\\d\\d?\\d?)
+ dict set fieldSet dayOfYear [incr fieldCount]
+ append postcode "dict set date dayOfYear \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ J { # Julian Day Number
+ append re \\s*(\\d+)
+ dict set fieldSet julianDay [incr fieldCount]
+ append postcode "dict set date julianDay \[" \
+ "::scan \$field" [incr captureCount] " %ld" \
+ "\]\n"
+ }
+ m - N { # Month number
+ append re \\s*(\\d\\d?)
+ dict set fieldSet month [incr fieldCount]
+ append postcode "dict set date month \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ M { # Minute
+ append re \\s*(\\d\\d?)
+ dict set fieldSet minute [incr fieldCount]
+ append postcode "dict set date minute \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ n { # Literal newline
+ append re \\n
+ }
+ O { # Prefix for locale numerics
+ set state %O
+ }
+ p - P { # AM/PM indicator
+ set l [list [mc AM] 0 [mc PM] 1]
+ foreach { regex lookup } [UniquePrefixRegexp $l] break
+ append re ( $regex )
+ dict set fieldSet amPmIndicator [incr fieldCount]
+ append postcode "dict set date amPmIndicator \[" \
+ "dict get " [list $lookup] " \[string tolower " \
+ "\$field" \
+ [incr captureCount] \
+ "\]\]\n"
+ }
+ Q { # Hi, Jeff!
+ append re {Stardate\s+([-+]?\d+)(\d\d\d)[.](\d)}
+ incr captureCount
+ dict set fieldSet seconds [incr fieldCount]
+ append postcode {dict set date seconds } \[ \
+ {ParseStarDate $field} [incr captureCount] \
+ { $field} [incr captureCount] \
+ { $field} [incr captureCount] \
+ \] \n
+ }
+ s { # Seconds from Posix Epoch
+ # This next case is insanely difficult,
+ # because it's problematic to determine
+ # whether the field is actually within
+ # the range of a wide integer.
+ append re {\s*([-+]?\d+)}
+ dict set fieldSet seconds [incr fieldCount]
+ append postcode {dict set date seconds } \[ \
+ {ScanWide $field} [incr captureCount] \] \n
+ }
+ S { # Second
+ append re \\s*(\\d\\d?)
+ dict set fieldSet second [incr fieldCount]
+ append postcode "dict set date second \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ t { # Literal tab character
+ append re \\t
+ }
+ u - w { # Day number within week, 0 or 7 == Sun
+ # 1=Mon, 6=Sat
+ append re \\s*(\\d)
+ dict set fieldSet dayOfWeek [incr fieldCount]
+ append postcode {::scan $field} [incr captureCount] \
+ { %d dow} \n \
+ {
+ if { $dow == 0 } {
+ set dow 7
+ } elseif { $dow > 7 } {
+ return -code error \
+ -errorcode [list CLOCK badDayOfWeek] \
+ "day of week is greater than 7"
+ }
+ dict set date dayOfWeek $dow
+ }
+ }
+ U { # Week of year. The
+ # first Sunday of the year is the
+ # first day of week 01. No scan rule
+ # uses this group.
+ append re \\s*\\d\\d?
+ }
+ V { # Week of ISO8601 year
+
+ append re \\s*(\\d\\d?)
+ dict set fieldSet iso8601Week [incr fieldCount]
+ append postcode "dict set date iso8601Week \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ W { # Week of the year (00-53). The first
+ # Monday of the year is the first day
+ # of week 01. No scan rule uses this
+ # group.
+ append re \\s*\\d\\d?
+ }
+ y { # Two-digit Gregorian year
+ append re \\s*(\\d\\d?)
+ dict set fieldSet yearOfCentury [incr fieldCount]
+ append postcode "dict set date yearOfCentury \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ Y { # 4-digit Gregorian year
+ append re \\s*(\\d\\d)(\\d\\d)
+ dict set fieldSet century [incr fieldCount]
+ dict set fieldSet yearOfCentury [incr fieldCount]
+ append postcode \
+ "dict set date century \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n" \
+ "dict set date yearOfCentury \[" \
+ "::scan \$field" [incr captureCount] " %d" \
+ "\]\n"
+ }
+ z - Z { # Time zone name
+ append re {(?:([-+]\d\d:?\d\d(?::?\d\d)?)|([[:alnum:]]{1,4}))}
+ dict set fieldSet tzName [incr fieldCount]
+ append postcode \
+ {if } \{ { $field} [incr captureCount] \
+ { ne "" } \} { } \{ \n \
+ {dict set date tzName $field} \
+ $captureCount \n \
+ \} { else } \{ \n \
+ {dict set date tzName } \[ \
+ {ConvertLegacyTimeZone $field} \
+ [incr captureCount] \] \n \
+ \} \n \
+ }
+ % { # Literal percent character
+ append re %
+ }
+ default {
+ append re %
+ if { ! [string is alnum $c] } {
+ append re \\
+ }
+ append re $c
+ }
+ }
+ }
+ %E {
+ switch -exact -- $c {
+ C { # Locale-dependent era
+ set d {}
+ foreach triple [mc LOCALE_ERAS] {
+ foreach {t symbol year} $triple break
+ dict set d $symbol $year
+ }
+ foreach { regex lookup } [UniquePrefixRegexp $d] break
+ append re (?: $regex )
+
+ }
+ y { # Locale-dependent year of the era
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ incr fieldCount
+ }
+ default {
+ append re %E
+ if { ! [string is alnum $c] } {
+ append re \\
+ }
+ append re $c
+ }
+ }
+ set state {}
+ }
+ %O {
+ switch -exact -- $c {
+ d - e {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet dayOfMonth [incr fieldCount]
+ append postcode "dict set date dayOfMonth \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ H - k {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet hour [incr fieldCount]
+ append postcode "dict set date hour \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ I - l {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet hourAMPM [incr fieldCount]
+ append postcode "dict set date hourAMPM \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ m {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet month [incr fieldCount]
+ append postcode "dict set date month \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ M {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet minute [incr fieldCount]
+ append postcode "dict set date minute \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ S {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet second [incr fieldCount]
+ append postcode "dict set date second \[" \
+ "dict get " [list $lookup] " \$field" \
+ [incr captureCount] \
+ "\]\n"
+ }
+ u - w {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet dayOfWeek [incr fieldCount]
+ append postcode "set dow \[dict get " [list $lookup] \
+ { $field} [incr captureCount] \] \n \
+ {
+ if { $dow == 0 } {
+ set dow 7
+ } elseif { $dow > 7 } {
+ return -code error \
+ -errorcode [list CLOCK badDayOfWeek] \
+ "day of week is greater than 7"
+ }
+ dict set date dayOfWeek $dow
+ }
+ }
+ y {
+ foreach {regex lookup} [LocaleNumeralMatcher] break
+ append re $regex
+ dict set fieldSet yearOfCentury [incr fieldCount]
+ append postcode {dict set date yearOfCentury } \[ \
+ {dict get } [list $lookup] { $field} \
+ [incr captureCount] \] \n
+ }
+ default {
+ append re %O
+ if { ! [string is alnum $c] } {
+ append re \\
+ }
+ append re $c
+ }
+ }
+ set state {}
+ }
+ }
+ }
+
+ # Clean up any unfinished format groups
+
+ append re $state \\s*\$
+
+ # Build the procedure
+
+ set procBody \n
+ append procBody "if \{ !\[ regexp -nocase [list $re] \$string ->"
+ for { set i 1 } { $i <= $captureCount } { incr i } {
+ append procBody " " field $i
+ }
+ append procBody "\] \} \{" \n
+ append procBody {
+ return -code error -errorcode [list CLOCK badInputString] \
+ {input string does not match supplied format}
+ }
+ append procBody \}\n
+ append procBody "set date \[dict create\]" \n
+ append procBody {dict set date tzName $timeZone} \n
+ append procBody $postcode
+
+ # Add code that gets Julian Day Number from the fields.
+
+ append procBody [MakeParseCodeFromFields $fieldSet $DateParseActions]
+
+ # Get time of day
+
+ append procBody [MakeParseCodeFromFields $fieldSet $TimeParseActions]
+
+ # Assemble seconds, and convert local nominal time to UTC.
+
+ if { ![dict exists $fieldSet seconds]
+ && ![dict exists $fieldSet starDate] } {
+ append procBody {
+ if { [dict get $date julianDay] > $::tcl::clock::JD31Dec9999 } {
+ return -code error -errorcode [list CLOCK dateTooLarge] \
+ "requested date too large to represent"
+ }
+ dict set date localSeconds \
+ [expr { -$::tcl::clock::PosixEpochAsJulianSeconds
+ + ( $::tcl::clock::SecondsPerDay
+ * wide([dict get $date julianDay]) )
+ + [dict get $date secondOfDay] }]
+ }
+ }
+
+ if { ![dict exists $fieldSet seconds]
+ && ![dict exists $fieldSet starDate] } {
+ append procBody {
+ set date [::tcl::clock::ConvertLocalToUTC [K $date [set date {}]]]
+ }
+ }
+
+ # Return result
+
+ append procBody {return [dict get $date seconds]} \n
+
+ proc $procName { string baseTime timeZone } $procBody
+
+ # puts [list proc $procName [list string baseTime timeZone] $procBody]
+
+ return $procName
+}
+
+#----------------------------------------------------------------------
+#
+# LocaleNumeralMatcher --
+#
+# Composes a regexp that captures the numerals in the given
+# locale, and a dictionary to map them to conventional numerals.
+#
+# Parameters:
+# none.
+#
+# Results:
+# Returns a two-element list comprising the regexp and the
+# dictionary.
+#
+# Side effects:
+# Caches the result.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::LocaleNumeralMatcher {} {
+
+ variable LocaleNumeralCache
+
+ set l [mclocale]
+ if { ![dict exists $LocaleNumeralCache $l] } {
+ set d {}
+ set i 0
+ set sep \(
+ foreach n [mc LOCALE_NUMERALS] {
+ dict set d $n $i
+ regsub -all {[^[:alnum:]]} $n \\\\& subex
+ append re $sep $subex
+ set sep |
+ incr i
+ }
+ append re \)
+ dict set LocaleNumeralCache $l [list $re $d]
+ }
+ return [dict get $LocaleNumeralCache $l]
+}
+
+
+
+#----------------------------------------------------------------------
+#
+# UniquePrefixRegexp --
+#
+# Composes a regexp that performs unique-prefix matching. The
+# RE matches one of a supplied set of strings, or any unique
+# prefix thereof.
+#
+# Parameters:
+# data - List of alternating match-strings and values.
+# Match-strings with distinct values are considered
+# distinct.
+#
+# Results:
+# Returns a two-element list. The first is a regexp that
+# matches any unique prefix of any of the strings. The second
+# is a dictionary whose keys are match values from the regexp
+# and whose values are the corresponding values from 'data'.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::UniquePrefixRegexp { data } {
+
+ # The 'successors' dictionary will contain, for each string that
+ # is a prefix of any key, all characters that may follow that
+ # prefix. The 'prefixMapping' dictionary will have keys that
+ # are prefixes of keys and values that correspond to the keys.
+
+ set prefixMapping [dict create]
+ set successors [dict create {} {}]
+
+ # Walk the key-value pairs
+
+ foreach { key value } $data {
+
+ # Construct all prefixes of the key;
+
+ set prefix {}
+ foreach char [split $key {}] {
+ set oldPrefix $prefix
+ dict set successors $oldPrefix $char {}
+ append prefix $char
+
+ # Put the prefixes in the 'prefixMapping' and 'successors'
+ # dictionaries
+
+ dict lappend prefixMapping $prefix $value
+ if { ![dict exists $successors $prefix] } {
+ dict set successors $prefix {}
+ }
+ }
+ }
+
+ # Identify those prefixes that designate unique values, and
+ # those that are the full keys
+
+ set uniquePrefixMapping {}
+ dict for { key valueList } $prefixMapping {
+ if { [llength $valueList] == 1 } {
+ dict set uniquePrefixMapping $key [lindex $valueList 0]
+ }
+ }
+ foreach { key value } $data {
+ dict set uniquePrefixMapping $key $value
+ }
+
+ # Construct the re.
+
+ return [list \
+ [MakeUniquePrefixRegexp $successors $uniquePrefixMapping {}] \
+ $uniquePrefixMapping]
+}
+
+#----------------------------------------------------------------------
+#
+# MakeUniquePrefixRegexp --
+#
+# Service procedure for 'UniquePrefixRegexp' that constructs
+# a regular expresison that matches the unique prefixes.
+#
+# Parameters:
+# successors - Dictionary whose keys are all prefixes
+# of keys passed to 'UniquePrefixRegexp' and whose
+# values are dictionaries whose keys are the characters
+# that may follow those prefixes.
+# uniquePrefixMapping - Dictionary whose keys are the unique
+# prefixes and whose values are not examined.
+# prefixString - Current prefix being processed.
+#
+# Results:
+# Returns a constructed regular expression that matches the set
+# of unique prefixes beginning with the 'prefixString'.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::MakeUniquePrefixRegexp { successors
+ uniquePrefixMapping
+ prefixString } {
+
+ # Get the characters that may follow the current prefix string
+
+ set schars [lsort -ascii [dict keys [dict get $successors $prefixString]]]
+ if { [llength $schars] == 0 } {
+ return {}
+ }
+
+ # If there is more than one successor character, or if the current
+ # prefix is a unique prefix, surround the generated re with non-capturing
+ # parentheses.
+
+ set re {}
+ if { [dict exists $uniquePrefixMapping $prefixString]
+ || [llength $schars] > 1 } {
+ append re "(?:"
+ }
+
+ # Generate a regexp that matches the successors.
+
+ set sep ""
+ foreach { c } $schars {
+ set nextPrefix $prefixString$c
+ regsub -all {[^[:alnum:]]} $c \\\\& rechar
+ append re $sep $rechar \
+ [MakeUniquePrefixRegexp \
+ $successors $uniquePrefixMapping $nextPrefix]
+ set sep |
+ }
+
+ # If the current prefix is a unique prefix, make all following text
+ # optional. Otherwise, if there is more than one successor character,
+ # close the non-capturing parentheses.
+
+ if { [dict exists $uniquePrefixMapping $prefixString] } {
+ append re ")?"
+ } elseif { [llength $schars] > 1 } {
+ append re ")"
+ }
+
+ return $re
+}
+
+#----------------------------------------------------------------------
+#
+# MakeParseCodeFromFields --
+#
+# Composes Tcl code to extract the Julian Day Number from a
+# dictionary containing date fields.
+#
+# Parameters:
+# dateFields -- Dictionary whose keys are fields of the date,
+# and whose values are the rightmost positions
+# at which those fields appear.
+# parseActions -- List of triples: field set, priority, and
+# code to emit. Smaller priorities are better, and
+# the list must be in ascending order by priority
+#
+# Results:
+# Returns a burst of code that extracts the day number from the
+# given date.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::MakeParseCodeFromFields { dateFields parseActions } {
+
+ set currPrio 999
+ set currFieldPos [list]
+ set currCodeBurst {
+ error "in ::tcl::clock::MakeParseCodeFromFields: can't happen"
+ }
+
+ foreach { fieldSet prio parseAction } $parseActions {
+
+ # If we've found an answer that's better than any that follow,
+ # quit now.
+
+ if { $prio > $currPrio } {
+ break
+ }
+
+ # Accumulate the field positions that are used in the current
+ # field grouping.
+
+ set fieldPos [list]
+ set ok true
+ foreach field $fieldSet {
+ if { ! [dict exists $dateFields $field] } {
+ set ok 0
+ break
+ }
+ lappend fieldPos [dict get $dateFields $field]
+ }
+
+ # Quit if we don't have a complete set of fields
+ if { !$ok } {
+ continue
+ }
+
+ # Determine whether the current answer is better than the last.
+
+ set fPos [lsort -integer -decreasing $fieldPos]
+
+ if { $prio == $currPrio } {
+ foreach currPos $currFieldPos newPos $fPos {
+ if { ![string is integer $newPos]
+ || ![string is integer $currPos]
+ || $newPos > $currPos } {
+ break
+ }
+ if { $newPos < $currPos } {
+ set ok 0
+ break
+ }
+ }
+ }
+ if { !$ok } {
+ continue
+ }
+
+ # Remember the best possibility for extracting date information
+
+ set currPrio $prio
+ set currFieldPos $fPos
+ set currCodeBurst $parseAction
+
+ }
+
+ return $currCodeBurst
+
+}
+
+#----------------------------------------------------------------------
+#
+# EnterLocale --
+#
+# Switch [mclocale] to a given locale if necessary
+#
+# Parameters:
+# locale -- Desired locale
+# oldLocaleVar -- Name of a variable in caller's scope that
+# tracks the previous locale name.
+#
+# Results:
+# Returns the locale that was previously current.
+#
+# Side effects:
+# Does [mclocale]. If necessary, uses [mcload] to load the
+# designated locale's files, and tracks that it has done so
+# in the 'McLoaded' variable.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::EnterLocale { locale oldLocaleVar } {
+
+ upvar 1 $oldLocaleVar oldLocale
+
+ variable MsgDir
+ variable McLoaded
+
+ set oldLocale [mclocale]
+ if { $locale eq {system} } {
+
+ if { $::tcl_platform(platform) ne {windows} } {
+
+ # On a non-windows platform, the 'system' locale is
+ # the same as the 'current' locale
+
+ set locale current
+ } else {
+
+ # On a windows platform, the 'system' locale is
+ # adapted from the 'current' locale by applying the
+ # date and time formats from the Control Panel.
+ # First, load the 'current' locale if it's not yet loaded
+
+ if {![dict exists $McLoaded $oldLocale] } {
+ mcload $MsgDir
+ dict set McLoaded $oldLocale {}
+ }
+
+ # Make a new locale string for the system locale, and
+ # get the Control Panel information
+
+ set locale ${oldLocale}_windows
+ if { ![dict exists $McLoaded $locale] } {
+ LoadWindowsDateTimeFormats $locale
+ dict set mcloaded $locale {}
+ }
+ }
+ }
+ if { $locale eq {current}} {
+ set locale $oldLocale
+ unset oldLocale
+ } elseif { $locale eq $oldLocale } {
+ unset oldLocale
+ } else {
+ mclocale $locale
+ }
+ if { ![dict exists $McLoaded $locale] } {
+ mcload $MsgDir
+ dict set McLoaded $locale {}
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# LoadWindowsDateTimeFormats --
+#
+# Load the date/time formats from the Control Panel in Windows
+# and convert them so that they're usable by Tcl.
+#
+# Parameters:
+# locale - Name of the locale in whose message catalog
+# the converted formats are to be stored.
+#
+# Results:
+# None.
+#
+# Side effects:
+# Updates the given message catalog with the locale strings.
+#
+# Presumes that on entry, [mclocale] is set to the current locale,
+# so that default strings can be obtained if the Registry query
+# fails.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::LoadWindowsDateTimeFormats { locale } {
+
+ if { ![catch {
+ registry get "HKEY_CURRENT_USER\\Control Panel\\International" \
+ sShortDate
+ } string] } {
+ set quote {}
+ set datefmt {}
+ foreach { unquoted quoted } [split $string '] {
+ append datefmt $quote [string map {
+ dddd %A
+ ddd %a
+ dd %d
+ d %e
+ MMMM %B
+ MMM %b
+ MM %m
+ M %N
+ yyyy %Y
+ yy %y
+ y %y
+ gg {}
+ } $unquoted]
+ if { $quoted eq {} } {
+ set quote '
+ } else {
+ set quote $quoted
+ }
+ }
+ ::msgcat::mcset $locale DATE_FORMAT $datefmt
+ }
+
+ if { ![catch {
+ registry get "HKEY_CURRENT_USER\\Control Panel\\International" \
+ sLongDate
+ } string] } {
+ set quote {}
+ set ldatefmt {}
+ foreach { unquoted quoted } [split $string '] {
+ append ldatefmt $quote [string map {
+ dddd %A
+ ddd %a
+ dd %d
+ d %e
+ MMMM %B
+ MMM %b
+ MM %m
+ M %N
+ yyyy %Y
+ yy %y
+ y %y
+ gg {}
+ } $unquoted]
+ if { $quoted eq {} } {
+ set quote '
+ } else {
+ set quote $quoted
+ }
+ }
+ ::msgcat::mcset $locale LOCALE_DATE_FORMAT $ldatefmt
+ }
+
+ if { ![catch {
+ registry get "HKEY_CURRENT_USER\\Control Panel\\International" \
+ sTimeFormat
+ } string] } {
+ set quote {}
+ set timefmt {}
+ foreach { unquoted quoted } [split $string '] {
+ append timefmt $quote [string map {
+ HH %H
+ H %k
+ hh %I
+ h %l
+ mm %M
+ m %M
+ ss %S
+ s %S
+ tt %p
+ t %p
+ } $unquoted]
+ if { $quoted eq {} } {
+ set quote '
+ } else {
+ set quote $quoted
+ }
+ }
+ ::msgcat::mcset $locale TIME_FORMAT $timefmt
+ }
+
+ catch {
+ ::msgcat::mcset $locale DATE_TIME_FORMAT "$datefmt $timefmt"
+ }
+ catch {
+ ::msgcat::mcset $locale LOCALE_DATE_TIME_FORMAT "$ldatefmt $timefmt"
+ }
+
+ return
+
+}
+
+#----------------------------------------------------------------------
+#
+# LocalizeFormat --
+#
+# Map away locale-dependent format groups in a clock format.
+#
+# Parameters:
+# format -- Format supplied to [clock scan] or [clock format]
+#
+# Results:
+# Returns the string with locale-dependent composite format
+# groups substituted out.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::LocalizeFormat { format } {
+
+ # Handle locale-dependent format groups by mapping them out of
+ # the input string. Note that the order of the [string map]
+ # operations is significant because earlier formats can refer
+ # to later ones; for example %c can refer to %X, which in turn
+ # can refer to %T.
+
+ set format [string map [list %c [mc DATE_TIME_FORMAT] \
+ %Ec [mc LOCALE_DATE_TIME_FORMAT]] $format]
+ set format [string map [list %x [mc DATE_FORMAT] \
+ %Ex [mc LOCALE_DATE_FORMAT] \
+ %X [mc TIME_FORMAT] \
+ %EX [mc LOCALE_TIME_FORMAT]] $format]
+ set format [string map [list %r [mc TIME_FORMAT_12] \
+ %R [mc TIME_FORMAT_24] \
+ %T [mc TIME_FORMAT_24_SECS]] $format]
+ set format [string map [list %D %m/%d/%Y \
+ %EY [mc LOCALE_YEAR_FORMAT]\
+ %+ {%a %b %e %H:%M:%S %Z %Y}] $format]
+ return $format
+}
+
+#----------------------------------------------------------------------
+#
+# FormatStarDate --
+#
+# Formats a date as a StarDate.
+#
+# Parameters:
+# date - Dictionary containing 'year', 'dayOfYear', and
+# 'localSeconds' fields.
+#
+# Results:
+# Returns the given date formatted as a StarDate.
+#
+# Side effects:
+# None.
+#
+# Jeff Hobbs put this in to support an atrocious pun about Tcl being
+# "Enterprise ready." Now we're stuck with it.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::FormatStarDate { date } {
+
+ variable DaysPerYear
+ variable SecondsPerDay
+ variable Roddenberry
+
+ # Get day of year, zero based
+
+ set doy [expr { [dict get $date dayOfYear] - 1 }]
+
+ # Determine whether the year is a leap year
+
+ if { [dict get $date gregorian] } {
+ set lp [IsGregorianLeapYear $date]
+ } else {
+ set lp [expr { [dict get $date year] % 4 == 0 }]
+ }
+
+ # Convert day of year to a fractional year
+
+ if { $lp } {
+ set fractYear [expr { 1000 * $doy / ( $DaysPerYear + 1 ) }]
+ } else {
+ set fractYear [expr { 1000 * $doy / $DaysPerYear }]
+ }
+
+ # Put together the StarDate
+
+ return [::format "Stardate %02d%03d.%1d" \
+ [expr { [dict get $date year] - $Roddenberry }] \
+ $fractYear \
+ [expr { [dict get $date localSeconds] % $SecondsPerDay
+ / ( $SecondsPerDay / 10 ) }]]
+}
+
+#----------------------------------------------------------------------
+#
+# ParseStarDate --
+#
+# Parses a StarDate
+#
+# Parameters:
+# year - Year from the Roddenberry epoch
+# fractYear - Fraction of a year specifiying the day of year.
+# fractDay - Fraction of a day
+#
+# Results:
+# Returns a count of seconds from the Posix epoch.
+#
+# Side effects:
+# None.
+#
+# Jeff Hobbs put this in to support an atrocious pun about Tcl being
+# "Enterprise ready." Now we're stuck with it.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ParseStarDate { year fractYear fractDay } {
+
+ variable Roddenberry
+ variable DaysPerYear
+ variable SecondsPerDay
+ variable PosixEpochAsJulianSeconds
+
+ # Build a tentative date from year and fraction.
+
+ set date [dict create \
+ era CE \
+ year [expr { $year + $Roddenberry }] \
+ dayOfYear [expr { $fractYear * $DaysPerYear / 1000 + 1 }]]
+ set date [GetJulianDayFromGregorianEraYearDay [K $date [set date {}]]]
+
+ # Determine whether the given year is a leap year
+
+ if { [dict get $date gregorian] } {
+ set lp [IsGregorianLeapYear $date]
+ } else {
+ set lp [expr { [dict get $date year] % 4 == 0 }]
+ }
+
+ # Reconvert the fractional year according to whether the given
+ # year is a leap year
+
+ if { $lp } {
+ dict set date dayOfYear \
+ [expr { $fractYear * ( $DaysPerYear + 1 ) / 1000 + 1 }]
+ } else {
+ dict set date dayOfYear \
+ [expr { $fractYear * $DaysPerYear / 1000 + 1 }]
+ }
+ dict unset date julianDay
+ dict unset date gregorian
+ set date [GetJulianDayFromGregorianEraYearDay [K $date [set date {}]]]
+
+ return [expr { $SecondsPerDay * [dict get $date julianDay]
+ - $PosixEpochAsJulianSeconds
+ + ( $SecondsPerDay / 10 ) * $fractDay }]
+
+}
+
+#----------------------------------------------------------------------
+#
+# ScanWide --
+#
+# Scans a wide integer from an input
+#
+# Parameters:
+# str - String containing a decimal wide integer
+#
+# Results:
+# Returns the string as a pure wide integer. Throws an error if
+# the string is misformatted or out of range.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ScanWide { str } {
+ set count [::scan $str {%ld %c} result junk]
+ if { $count != 1 } {
+ return -code error -errorcode [list CLOCK notAnInteger $str] \
+ "\"$str\" is not an integer"
+ }
+ if { [incr result 0] != $str } {
+ return -code error -errorcode [list CLOCK integervalueTooLarge] \
+ "integer value too large to represent"
+ }
+ return $result
+}
+
+#----------------------------------------------------------------------
+#
+# InterpretTwoDigitYear --
+#
+# Given a date that contains only the year of the century,
+# determines the target value of a two-digit year.
+#
+# Parameters:
+# date - Dictionary containing fields of the date.
+# baseTime - Base time relative to which the date is expressed.
+# twoDigitField - Name of the field that stores the two-digit year.
+# Default is 'yearOfCentury'
+# fourDigitField - Name of the field that will receive the four-digit
+# year. Default is 'year'
+#
+# Results:
+# Returns the dictionary augmented with the four-digit year, stored in
+# the given key.
+#
+# Side effects:
+# None.
+#
+# The current rule for interpreting a two-digit year is that the year
+# shall be between 1937 and 2037, thus staying within the range of a
+# 32-bit signed value for time. This rule may change to a sliding
+# window in future versions, so the 'baseTime' parameter (which is
+# currently ignored) is provided in the procedure signature.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::InterpretTwoDigitYear { date baseTime
+ { twoDigitField yearOfCentury }
+ { fourDigitField year } } {
+
+ set yr [dict get $date $twoDigitField]
+ if { $yr <= 37 } {
+ dict set date $fourDigitField [expr { $yr + 2000 }]
+ } else {
+ dict set date $fourDigitField [expr { $yr + 1900 }]
+ }
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# AssignBaseYear --
+#
+# Places the number of the current year into a dictionary.
+#
+# Parameters:
+# date - Dictionary value to update
+# baseTime - Base time from which to extract the year, expressed
+# in seconds from the Posix epoch
+#
+# Results:
+# Returns the dictionary with the current year assigned.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AssignBaseYear { date baseTime timeZone } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Find the Julian Day Number corresponding to the base time, and
+ # find the Gregorian year corresponding to that Julian Day.
+
+ set date2 [dict create seconds $baseTime]
+ set date2 [ConvertUTCToLocal [K $date2 [set date2 {}]] $timeZone]
+ set date2 [GetJulianDay [K $date2 [set date2 {}]]]
+ set date2 [GetGregorianEraYearDay [K $date2 [set date2 {}]]]
+
+ # Store the converted year
+
+ dict set date era [dict get $date2 era]
+ dict set date year [dict get $date2 year]
+
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# AssignBaseIso8601Year --
+#
+# Determines the base year in the ISO8601 fiscal calendar.
+#
+# Parameters:
+# date - Dictionary containing the fields of the date that
+# is to be augmented with the base year.
+# baseTime - Base time expressed in seconds from the Posix epoch.
+#
+# Results:
+# Returns the given date with "iso8601Year" set to the
+# base year.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AssignBaseIso8601Year { date baseTime timeZone } {
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Find the Julian Day Number corresponding to the base time
+
+ set date2 [dict create seconds $baseTime]
+ set date2 [ConvertUTCToLocal [K $date2 [set date2 {}]] $timeZone]
+ set date2 [GetJulianDay [K $date2 [set date2 {}]]]
+
+ # Calculate the ISO8601 date and transfer the year
+
+ set date2 [GetYearWeekDay [K $date2 [set date2 {}]]]
+ dict set date era CE
+ dict set date iso8601Year [dict get $date2 iso8601Year]
+ return $date
+}
+
+#----------------------------------------------------------------------
+#
+# AssignBaseMonth --
+#
+# Places the number of the current year and month into a
+# dictionary.
+#
+# Parameters:
+# date - Dictionary value to update
+# baseTime - Time from which the year and month are to be
+# obtained, expressed in seconds from the Posix epoch.
+#
+# Results:
+# Returns the dictionary with the base year and month assigned.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AssignBaseMonth { date baseTime timeZone } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Find the Julian Day Number corresponding to the base time
+
+ set date2 [dict create seconds $baseTime]
+ set date2 [ConvertUTCToLocal [K $date2 [set date2 {}]] $timeZone]
+ set date2 [GetJulianDay [K $date2 [set date2 {}]]]
+
+ # Find the Gregorian year corresponding to that Julian Day
+
+ set date2 [GetGregorianEraYearDay [K $date2 [set date2 {}]]]
+ set date2 [GetMonthDay [K $date2 [set date2 {}]]]
+ dict set date era [dict get $date2 era]
+ dict set date year [dict get $date2 year]
+ dict set date month [dict get $date2 month]
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# AssignBaseWeek --
+#
+# Determines the base year and week in the ISO8601 fiscal calendar.
+#
+# Parameters:
+# date - Dictionary containing the fields of the date that
+# is to be augmented with the base year and week.
+# baseTime - Base time expressed in seconds from the Posix epoch.
+#
+# Results:
+# Returns the given date with "iso8601Year" set to the
+# base year and "iso8601Week" to the week number.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AssignBaseWeek { date baseTime timeZone } {
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Find the Julian Day Number corresponding to the base time
+
+ set date2 [dict create seconds $baseTime]
+ set date2 [ConvertUTCToLocal [K $date2 [set date2 {}]] $timeZone]
+ set date2 [GetJulianDay [K $date2 [set date2 {}]]]
+
+ # Calculate the ISO8601 date and transfer the year
+
+ set date2 [GetYearWeekDay [K $date2 [set date2 {}]]]
+ dict set date era CE
+ dict set date iso8601Year [dict get $date2 iso8601Year]
+ dict set date iso8601Week [dict get $date2 iso8601Week]
+ return $date
+}
+
+#----------------------------------------------------------------------
+#
+# AssignBaseJulianDay --
+#
+# Determines the base day for a time-of-day conversion.
+#
+# Parameters:
+# date - Dictionary that is to get the base day
+# baseTime - Base time expressed in seconds from the Posix epoch
+#
+# Results:
+# Returns the given dictionary augmented with a 'julianDay' field
+# that contains the base day.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AssignBaseJulianDay { date baseTime timeZone } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Find the Julian Day Number corresponding to the base time
+
+ set date2 [dict create seconds $baseTime]
+ set date2 [ConvertUTCToLocal [K $date2 [set date2 {}]] $timeZone]
+ set date2 [GetJulianDay [K $date2 [set date2 {}]]]
+ dict set date julianDay [dict get $date2 julianDay]
+
+ return $date
+}
+
+#----------------------------------------------------------------------
+#
+# InterpretHMSP --
+#
+# Interprets a time in the form "hh:mm:ss am".
+#
+# Parameters:
+# date -- Dictionary containing "hourAMPM", "minute", "second"
+# and "amPmIndicator" fields.
+#
+# Results:
+# Returns the number of seconds from local midnight.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::InterpretHMSP { date } {
+
+ set hr [dict get $date hourAMPM]
+ if { $hr == 12 } {
+ set hr 0
+ }
+ if { [dict get $date amPmIndicator] } {
+ incr hr 12
+ }
+ dict set date hour $hr
+ return [InterpretHMS [K $date [set date {}]]]
+
+}
+
+#----------------------------------------------------------------------
+#
+# InterpretHMS --
+#
+# Interprets a 24-hour time "hh:mm:ss"
+#
+# Parameters:
+# date -- Dictionary containing the "hour", "minute" and "second"
+# fields.
+#
+# Results:
+# Returns the given dictionary augmented with a "secondOfDay"
+# field containing the number of seconds from local midnight.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::InterpretHMS { date } {
+
+ variable SecondsPerMinute
+ variable MinutesPerHour
+
+ return [expr { ( [dict get $date hour] * $MinutesPerHour
+ + [dict get $date minute] ) * $SecondsPerMinute
+ + [dict get $date second] }]
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetSystemTimeZone --
+#
+# Determines the system time zone, which is the default for the
+# 'clock' command if no other zone is supplied.
+#
+# Parameters:
+# None.
+#
+# Results:
+# Returns the system time zone.
+#
+# Side effects:
+# Stores the sustem time zone in the 'CachedSystemTimeZone'
+# variable, since determining it may be an expensive process.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetSystemTimeZone {} {
+
+ variable CachedSystemTimeZone
+
+ if { [info exists ::env(TCL_TZ)] } {
+ set timezone $::env(TCL_TZ)
+ } elseif { [info exists ::env(TZ)] } {
+ set timezone $::env(TZ)
+ } elseif { $::tcl_platform(platform) eq {windows} } {
+ if { [info exists CachedSystemTimeZone] } {
+ set timezone $CachedSystemTimeZone
+ } else {
+ set timezone [GuessWindowsTimeZone]
+ set CachedSystemTimeZone $timezone
+ }
+ } else {
+ set timezone :localtime
+ }
+ if { [catch {SetupTimeZone $timezone}] } {
+ set timezone :localtime
+ }
+ return $timezone
+
+}
+
+#----------------------------------------------------------------------
+#
+# ConvertLegacyTimeZone --
+#
+# Given an alphanumeric time zone identifier and the system
+# time zone, convert the alphanumeric identifier to an
+# unambiguous time zone.
+#
+# Parameters:
+# tzname - Name of the time zone to convert
+#
+# Results:
+# Returns a time zone name corresponding to tzname, but
+# in an unambiguous form, generally +hhmm.
+#
+# This procedure is implemented primarily to allow the parsing of
+# RFC822 date/time strings. Processing a time zone name on input
+# is not recommended practice, because there is considerable room
+# for ambiguity; for instance, is BST Brazilian Standard Time, or
+# British Summer Time?
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ConvertLegacyTimeZone { tzname } {
+
+ variable LegacyTimeZone
+
+ set tzname [string tolower $tzname]
+ if { ![dict exists $LegacyTimeZone $tzname] } {
+ return -code error -errorcode [list CLOCK badTZName $tzname] \
+ "time zone \"$tzname\" not found"
+ } else {
+ return [dict get $LegacyTimeZone $tzname]
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# ConvertLocalToUTC --
+#
+# Given a time zone and nominal local seconds, compute seconds
+# of UTC time from the Posix epoch.
+#
+# Parameters:
+# date - Dictionary populated with the 'localSeconds' and
+# 'tzName' fields
+#
+# Results:
+# Returns the given dictionary augmented with a 'seconds' field.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ConvertLocalToUTC { date } {
+
+ variable TZData
+
+ set timezone [dict get $date tzName]
+ if { $timezone eq ":localtime" } {
+
+ # Convert using the mktime function if possible
+
+ if { [catch {
+ ConvertLocalToUTCViaC [dict get $date localSeconds]
+ } result] } {
+ return -code error -errorcode $::errorCode $result
+ }
+ dict set date seconds $result
+ return $date
+
+ } else {
+
+ # Get the time zone data
+
+ if { [catch { SetupTimeZone $timezone } retval] } {
+ return -code error -errorcode $::errorCode $retval
+ }
+
+ # Initially assume that local == UTC, and locate the last time
+ # conversion prior to that time. Get the offset from that,
+ # and look up again. If that lookup finds a different offset,
+ # continue looking until we find an offset that we found
+ # before. The check for "any offset previously found" rather
+ # than "the same offset" avoids an endless loop if we try to
+ # convert a non-existent time, for example 2:30am during the
+ # US spring DST change.
+
+ set localseconds [dict get $date localSeconds]
+ set utcseconds(0) $localseconds
+ set seconds $localseconds
+ while { 1 } {
+ set i [BSearch $TZData($timezone) $seconds]
+ set offset [lindex $TZData($timezone) $i 1]
+ if { [info exists utcseconds($offset)] } {
+ dict set date seconds $utcseconds($offset)
+ return $date
+ } else {
+ set seconds [expr { $localseconds - $offset }]
+ set utcseconds($offset) $seconds
+ }
+ }
+
+ # In the absolute worst case, the loop above can visit each tzdata
+ # row only once, so it's guaranteed to terminate.
+
+ error "in ConvertLocalToUTC, can't happen"
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# ConvertLocalToUTCViaC --
+#
+# Given seconds of nominal local time, compute seconds from the
+# Posix epoch.
+#
+# Parameters:
+# localSeconds - Seconds of nominal local time
+#
+# Results:
+# Returns the seconds from the epoch. May throw an error if
+# the time is to large/small to represent, or if 'mktime' is
+# not present in the C library.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ConvertLocalToUTCViaC { localSeconds } {
+
+ variable SecondsPerHour
+ variable SecondsPerMinute
+ variable MinutesPerHour
+ variable HoursPerDay
+
+ set date [dict create localSeconds $localSeconds]
+ set date [GetJulianDay [K $date [set date {}]]]
+ set date [GetGregorianEraYearDay [K $date [set date {}]]]
+ set date [GetMonthDay [K $date [set date {}]]]
+ set retval \
+ [Mktime \
+ [dict get $date year] \
+ [dict get $date month] \
+ [dict get $date dayOfMonth] \
+ [expr { $localSeconds / $SecondsPerHour % $HoursPerDay }] \
+ [expr { $localSeconds / $SecondsPerMinute % $MinutesPerHour }] \
+ [expr { $localSeconds % $SecondsPerMinute }]]
+ return $retval
+}
+
+#----------------------------------------------------------------------
+#
+# ConvertUTCToLocal --
+#
+# Given the seconds from the Posix epoch, compute seconds of
+# nominal local time.
+#
+# Parameters:
+# date - Dictionary populated on entry with the 'seconds' field
+#
+# Results:
+# The given dictionary is returned, augmented with 'localSeconds',
+# 'tzOffset', and 'tzName' fields.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ConvertUTCToLocal { date timezone } {
+
+ variable TZData
+
+ # Get the data for time changes in the given zone
+
+ if { [catch { SetupTimeZone $timezone } retval] } {
+ return -code error -errorcode $::errorCode $retval
+ }
+
+ if { $timezone eq {:localtime} } {
+
+ # Convert using the localtime function
+
+ if { [catch {
+ ConvertUTCToLocalViaC $date
+ } retval] } {
+ return -code error -errorcode $::errorCode $retval
+ }
+ return $retval
+ }
+
+ # Find the most recent transition in the time zone data
+
+ set i [BSearch $TZData($timezone) [dict get $date seconds]]
+ set row [lindex $TZData($timezone) $i]
+ foreach { junk1 offset junk2 name } $row break
+
+ # Add appropriate offset to convert Greenwich to local, and return
+ # the local time
+
+ dict set date localSeconds [expr { [dict get $date seconds] + $offset }]
+ dict set date tzOffset $offset
+ dict set date tzName $name
+
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# ConvertUTCToLocalViaC --
+#
+# Convert local time using the C localtime function
+#
+# Parameters:
+# date - Dictionary populated on entry with the 'seconds'
+# and 'timeZone' fields.
+#
+# Results:
+# The given dictionary is returned, augmented with 'localSeconds',
+# 'tzOffset', and 'tzName' fields.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ConvertUTCToLocalViaC { date } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerMinute
+ variable SecondsPerHour
+ variable MinutesPerHour
+ variable HoursPerDay
+
+ # Get y-m-d-h-m-s from the C library
+
+ set gmtSeconds [dict get $date seconds]
+ set localFields [Localtime $gmtSeconds]
+ set date2 [dict create]
+ foreach key {
+ year month dayOfMonth hour minute second
+ } value $localFields {
+ dict set date2 $key $value
+ }
+ dict set date2 era CE
+
+ # Convert to Julian Day
+
+ set date2 [GetJulianDayFromEraYearMonthDay [K $date2 [set date2 {}]]]
+
+ # Reconvert to seconds from the epoch in local time.
+
+ set localSeconds [expr { ( ( ( wide([dict get $date2 julianDay])
+ * $HoursPerDay
+ + wide([dict get $date2 hour]) )
+ * $MinutesPerHour
+ + wide([dict get $date2 minute]) )
+ * $SecondsPerMinute
+ + wide([dict get $date2 second]) )
+ - $PosixEpochAsJulianSeconds }]
+
+ # Determine the name and offset of the timezone
+
+ set delta [expr { $localSeconds - $gmtSeconds }]
+ if { $delta <= 0 } {
+ set signum -
+ set delta [expr { - $delta }]
+ } else {
+ set signum +
+ }
+ set hh [::format %02d [expr { $delta / $SecondsPerHour }]]
+ set mm [::format %02d [expr { ($delta / $SecondsPerMinute )
+ % $MinutesPerHour }]]
+ set ss [::format %02d [expr { $delta % $SecondsPerMinute }]]
+
+ set zoneName $signum$hh$mm
+ if { $ss ne {00} } {
+ append zoneName $ss
+ }
+
+ # Fix the dictionary
+
+ dict set date localSeconds $localSeconds
+ dict set date tzOffset $delta
+ dict set date tzName $zoneName
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# SetupTimeZone --
+#
+# Given the name or specification of a time zone, sets up
+# its in-memory data.
+#
+# Parameters:
+# tzname - Name of a time zone
+#
+# Results:
+# Unless the time zone is ':localtime', sets the TZData array
+# to contain the lookup table for local<->UTC conversion.
+# Returns an error if the time zone cannot be parsed.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::SetupTimeZone { timezone } {
+
+ variable TZData
+ variable MinutesPerHour
+ variable SecondsPerMinute
+ variable MINWIDE
+
+ if {! [info exists TZData($timezone)] } {
+ if { $timezone eq {:localtime} } {
+
+ # Nothing to do, we'll convert using the localtime function
+
+ } elseif { [regexp {^([-+])(\d\d):?(\d\d)(?::?(\d\d))?} $timezone \
+ -> s hh mm ss] } {
+
+ # Make a fixed offset
+
+ ::scan $hh %d hh
+ ::scan $mm %d mm
+ if { $ss eq {} } {
+ set ss 0
+ } else {
+ ::scan $ss %d ss
+ }
+ set offset [expr { ( $hh * $MinutesPerHour
+ + $mm ) * $SecondsPerMinute
+ + $ss }]
+ if { $s eq {-} } {
+ set offset [expr { - $offset }]
+ }
+ set TZData($timezone) [list [list $MINWIDE $offset -1 $timezone]]
+
+ } elseif { [string index $timezone 0] eq {:} } {
+
+ # Convert using a time zone file
+
+ if {
+ [catch {
+ LoadTimeZoneFile [string range $timezone 1 end]
+ }]
+ && [catch {
+ LoadZoneinfoFile [string range $timezone 1 end]
+ }]
+ } {
+ return -code error \
+ -errorcode [list CLOCK badTimeZone $timezone] \
+ "time zone \"$timezone\" not found"
+ }
+
+ } elseif { ![catch {ParsePosixTimeZone $timezone} tzfields] } {
+
+ # This looks like a POSIX time zone - try to process it
+
+ if { [catch {ProcessPosixTimeZone $tzfields} data] } {
+ if { [lindex $::errorCode 0] eq {CLOCK} } {
+ return -code error -errorcode $::errorCode $data
+ } else {
+ error $tzfields $::errorInfo $::errorCode
+ }
+ } else {
+ set TZData($timezone) $data
+ }
+
+ } else {
+
+ # We couldn't parse this as a POSIX time zone. Try
+ # again with a time zone file - this time without a colon
+
+ if { [catch {
+ LoadTimeZoneFile $timezone
+ } msg] } {
+ return -code error -errorcode $::errorCode $msg
+ }
+ set TZData($timezone) $TZData(:$timezone)
+
+ }
+ }
+
+ return
+}
+
+#----------------------------------------------------------------------
+#
+# GuessWindowsTimeZone --
+#
+# Determines the system time zone on windows.
+#
+# Parameters:
+# None.
+#
+# Results:
+# Returns a time zone specifier that corresponds to the system
+# time zone information found in the Registry.
+#
+# Bugs:
+# Fixed dates for DST change are unimplemented at present, because
+# no time zone information supplied with Windows actually uses
+# them!
+#
+# On a Windows system where neither $env(TCL_TZ) nor $env(TZ) is
+# specified, GuessWindowsTimeZone looks in the Registry for the
+# system time zone information. It then attempts to find an entry
+# in WinZoneInfo for a time zone that uses the same rules. If
+# it finds one, it returns it; otherwise, it constructs a Posix-style
+# time zone string and returns that.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GuessWindowsTimeZone {} {
+
+ variable WinZoneInfo
+ variable SecondsPerHour
+ variable SecondsPerMinute
+ variable MinutesPerHour
+
+ # Dredge time zone information out of the registry
+
+ set rpath HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\TimeZoneInformation
+ set data [list \
+ [expr { -$SecondsPerMinute * [registry get $rpath Bias] }] \
+ [expr { -$SecondsPerMinute \
+ * [registry get $rpath StandardBias] }] \
+ [expr { -$SecondsPerMinute \
+ * [registry get $rpath DaylightBias] }]]
+ set stdtzi [registry get $rpath StandardStart]
+ foreach ind {0 2 14 4 6 8 10 12} {
+ binary scan $stdtzi @${ind}s val
+ lappend data $val
+ }
+ set daytzi [registry get $rpath DaylightStart]
+ foreach ind {0 2 14 4 6 8 10 12} {
+ binary scan $daytzi @${ind}s val
+ lappend data $val
+ }
+
+ # Make up a Posix time zone specifier if we can't find one
+
+ if { ! [dict exists $WinZoneInfo $data] } {
+ foreach {
+ bias stdBias dstBias
+ stdYear stdMonth stdDayOfWeek stdDayOfMonth
+ stdHour stdMinute stdSecond stdMillisec
+ dstYear dstMonth dstDayOfWeek dstDayOfMonth
+ dstHour dstMinute dstSecond dstMillisec
+ } $data break
+ set stdDelta [expr { $bias + $stdBias }]
+ set dstDelta [expr { $bias + $dstBias }]
+ if { $stdDelta <= 0 } {
+ set stdSignum +
+ set stdDelta [expr { - $stdDelta }]
+ } else {
+ set stdSignum -
+ }
+ set hh [::format %02d [expr { $stdDelta / $SecondsPerHour }]]
+ set mm [::format %02d [expr { ($stdDelta / $SecondsPerMinute )
+ % $MinutesPerHour }]]
+ set ss [::format %02d [expr { $stdDelta % $SecondsPerMinute }]]
+ append tzname < $stdSignum $hh $mm > $stdSignum $hh : $mm : $ss
+ if { $stdMonth >= 0 } {
+ if { $dstDelta <= 0 } {
+ set dstSignum +
+ set dstDelta [expr { - $dstDelta }]
+ } else {
+ set dstSignum -
+ }
+ set hh [::format %02d [expr { $dstDelta / $SecondsPerHour }]]
+ set mm [::format %02d [expr { ($dstDelta / $SecondsPerMinute )
+ % $MinutesPerHour }]]
+ set ss [::format %02d [expr { $dstDelta % $SecondsPerMinute }]]
+ append tzname < $dstSignum $hh $mm > $dstSignum $hh : $mm : $ss
+ if { $dstYear == 0 } {
+ append tzname ,M $dstMonth . $dstDayOfMonth . $dstDayOfWeek
+ } else {
+ # I have not been able to find any locale on which
+ # Windows converts time zone on a fixed day of the year,
+ # hence don't know how to interpret the fields.
+ # If someone can inform me, I'd be glad to code it up.
+ # For right now, we bail out in such a case.
+ return :localtime
+ }
+ append tzname / [::format %02d $dstHour] \
+ : [::format %02d $dstMinute] \
+ : [::format %02d $dstSecond]
+ if { $stdYear == 0 } {
+ append tzname ,M $stdMonth . $stdDayOfMonth . $stdDayOfWeek
+ } else {
+ # I have not been able to find any locale on which
+ # Windows converts time zone on a fixed day of the year,
+ # hence don't know how to interpret the fields.
+ # If someone can inform me, I'd be glad to code it up.
+ # For right now, we bail out in such a case.
+ return :localtime
+ }
+ append tzname / [::format %02d $stdHour] \
+ : [::format %02d $stdMinute] \
+ : [::format %02d $stdSecond]
+ }
+ dict set WinZoneInfo $data $tzname
+ }
+
+ return [dict get $WinZoneInfo $data]
+
+}
+
+#----------------------------------------------------------------------
+#
+# LoadTimeZoneFile --
+#
+# Load the data file that specifies the conversion between a
+# given time zone and Greenwich.
+#
+# Parameters:
+# fileName -- Name of the file to load
+#
+# Results:
+# None.
+#
+# Side effects:
+# TZData(:fileName) contains the time zone data
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::LoadTimeZoneFile { fileName } {
+ variable DataDir
+ variable TZData
+
+ # Since an unsafe interp uses the [clock] command in the master,
+ # this code is security sensitive. Make sure that the path name
+ # cannot escape the given directory.
+
+ if { ![regexp {^[[:alpha:]_]+(?:/[[:alpha:]_]+)*$} $fileName] } {
+ return -code error \
+ -errorcode [list CLOCK badTimeZone $:fileName] \
+ "time zone \":$fileName\" not valid"
+ }
+ if { [catch {
+ source -encoding utf-8 [file join $DataDir $fileName]
+ }] } {
+ return -code error \
+ -errorcode [list CLOCK badTimeZone :$fileName] \
+ "time zone \":$fileName\" not found"
+ }
+}
+
+#----------------------------------------------------------------------
+#
+# LoadZoneinfoFile --
+#
+# Loads a binary time zone information file in Olson format.
+#
+# Parameters:
+# fileName - Path name of the file to load.
+#
+# Results:
+# Returns an empty result normally; returns an error if no
+# Olson file was found or the file was malformed in some way.
+#
+# Side effects:
+# TZData(:fileName) contains the time zone data
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::LoadZoneinfoFile { fileName } {
+
+ variable MINWIDE
+ variable TZData
+ variable ZoneinfoPaths
+
+ # Since an unsafe interp uses the [clock] command in the master,
+ # this code is security sensitive. Make sure that the path name
+ # cannot escape the given directory.
+
+ if { ![regexp {^[[:alpha:]_]+(?:/[[:alpha:]_]+)*$} $fileName] } {
+ return -code error \
+ -errorcode [list CLOCK badTimeZone $:fileName] \
+ "time zone \":$fileName\" not valid"
+ }
+ foreach d $ZoneinfoPaths {
+ set fname [file join $d $fileName]
+ if { [file readable $fname] && [file isfile $fname] } {
+ break
+ }
+ unset fname
+ }
+ if { ![info exists fname] } {
+ return -code error "$fileName not found"
+ }
+
+ if { [file size $fname] > 262144 } {
+ return -code error "$fileName too big"
+ }
+
+ # Suck in all the data from the file
+
+ set f [open $fname r]
+ fconfigure $f -translation binary
+ set d [read $f]
+ close $f
+
+ # The file begins with a magic number, sixteen reserved bytes,
+ # and then six 4-byte integers giving counts of fileds in the file.
+
+ binary scan $d a4x16IIIIII magic nIsGMT mIsStd nLeap nTime nType nChar
+ set seek 44
+ if { $magic != {TZif} } {
+ return -code error "$fileName not a time zone information file"
+ }
+ if { $nType > 255 } {
+ return -code error "$fileName contains too many time types"
+ }
+ if { $nLeap != 0 } {
+ return -code error "$fileName contains leap seconds"
+ }
+
+ # Next come ${nTime} transition times, followed by ${nTime} time type
+ # codes. The type codes are unsigned 1-byte quantities. We insert an
+ # arbitrary start time in front of the transitions.
+
+ binary scan $d @${seek}I${nTime}c${nTime} times tempCodes
+ incr seek [expr { 5 * $nTime }]
+ set times [linsert $times 0 $MINWIDE]
+ foreach c $tempCodes {
+ lappend codes [expr { $c & 0xff }]
+ }
+ set codes [linsert $codes 0 0]
+
+ # Next come ${nType} time type descriptions, each of which has an
+ # offset (seconds east of GMT), a DST indicator, and an index into
+ # the abbreviation text.
+
+ for { set i 0 } { $i < $nType } { incr i } {
+ binary scan $d @${seek}Icc gmtOff isDst abbrInd
+ lappend types [list $gmtOff $isDst $abbrInd]
+ incr seek 6
+ }
+
+ # Next come $nChar characters of time zone name abbreviations,
+ # which are null-terminated.
+ # We build them up into a dictionary indexed by character index,
+ # because that's what's in the indices above.
+
+ binary scan $d @${seek}a${nChar} abbrs
+ incr seek ${nChar}
+ set abbrList [split $abbrs \0]
+ set i 0
+ set abbrevs {}
+ foreach a $abbrList {
+ dict set abbrevs $i $a
+ incr i [expr { [string length $a] + 1 }]
+ }
+
+ # The rest of the data in the file are not used at present.
+ # Package up a list of tuples, each of which contains transition time,
+ # seconds east of Greenwich, DST flag and time zone abbreviation.
+
+ set r {}
+ set lastTime $MINWIDE
+ foreach t $times c $codes {
+ if { $t < $lastTime } {
+ return -code error "$fileName has times out of order"
+ }
+ set lastTime $t
+ foreach { gmtoff isDst abbrInd } [lindex $types $c] break
+ set abbrev [dict get $abbrevs $abbrInd]
+ lappend r [list $t $gmtoff $isDst $abbrev]
+ }
+
+ set TZData(:$fileName) $r
+
+}
+
+#----------------------------------------------------------------------
+#
+# ParsePosixTimeZone --
+#
+# Parses the TZ environment variable in Posix form
+#
+# Parameters:
+# tz Time zone specifier to be interpreted
+#
+# Results:
+# Returns a dictionary whose values contain the various pieces of
+# the time zone specification.
+#
+# Side effects:
+# None.
+#
+# Errors:
+# Throws an error if the syntax of the time zone is incorrect.
+#
+# The following keys are present in the dictionary:
+# stdName - Name of the time zone when Daylight Saving Time
+# is not in effect.
+# stdSignum - Sign (+, -, or empty) of the offset from Greenwich
+# to the given (non-DST) time zone. + and the empty
+# string denote zones west of Greenwich, - denotes east
+# of Greenwich; this is contrary to the ISO convention
+# but follows Posix.
+# stdHours - Hours part of the offset from Greenwich to the given
+# (non-DST) time zone.
+# stdMinutes - Minutes part of the offset from Greenwich to the
+# given (non-DST) time zone. Empty denotes zero.
+# stdSeconds - Seconds part of the offset from Greenwich to the
+# given (non-DST) time zone. Empty denotes zero.
+# dstName - Name of the time zone when DST is in effect, or the
+# empty string if the time zone does not observe Daylight
+# Saving Time.
+# dstSignum, dstHours, dstMinutes, dstSeconds -
+# Fields corresponding to stdSignum, stdHours, stdMinutes,
+# stdSeconds for the Daylight Saving Time version of the
+# time zone. If dstHours is empty, it is presumed to be 1.
+# startDayOfYear - The ordinal number of the day of the year on which
+# Daylight Saving Time begins. If this field is
+# empty, then DST begins on a given month-week-day,
+# as below.
+# startJ - The letter J, or an empty string. If a J is present in
+# this field, then startDayOfYear does not count February 29
+# even in leap years.
+# startMonth - The number of the month in which Daylight Saving Time
+# begins, supplied if startDayOfYear is empty. If both
+# startDayOfYear and startMonth are empty, then US rules
+# are presumed.
+# startWeekOfMonth - The number of the week in the month in which
+# Daylight Saving Time begins, in the range 1-5.
+# 5 denotes the last week of the month even in a
+# 4-week month.
+# startDayOfWeek - The number of the day of the week (Sunday=0,
+# Saturday=6) on which Daylight Saving Time begins.
+# startHours - The hours part of the time of day at which Daylight
+# Saving Time begins. An empty string is presumed to be 2.
+# startMinutes - The minutes part of the time of day at which DST begins.
+# An empty string is presumed zero.
+# startSeconds - The seconds part of the time of day at which DST begins.
+# An empty string is presumed zero.
+# endDayOfYear, endJ, endMonth, endWeekOfMonth, endDayOfWeek,
+# endHours, endMinutes, endSeconds -
+# Specify the end of DST in the same way that the start* fields
+# specify the beginning of DST.
+#
+# This procedure serves only to break the time specifier into fields.
+# No attempt is made to canonicalize the fields or supply default values.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ParsePosixTimeZone { tz } {
+
+ if {[regexp -expanded -nocase -- {
+ ^
+ # 1 - Standard time zone name
+ ([[:alpha:]]+ | <[-+[:alnum:]]+>)
+ # 2 - Standard time zone offset, signum
+ ([-+]?)
+ # 3 - Standard time zone offset, hours
+ ([[:digit:]]{1,2})
+ (?:
+ # 4 - Standard time zone offset, minutes
+ : ([[:digit:]]{1,2})
+ (?:
+ # 5 - Standard time zone offset, seconds
+ : ([[:digit:]]{1,2} )
+ )?
+ )?
+ (?:
+ # 6 - DST time zone name
+ ([[:alpha:]]+ | <[-+[:alnum:]]+>)
+ (?:
+ (?:
+ # 7 - DST time zone offset, signum
+ ([-+]?)
+ # 8 - DST time zone offset, hours
+ ([[:digit:]]{1,2})
+ (?:
+ # 9 - DST time zone offset, minutes
+ : ([[:digit:]]{1,2})
+ (?:
+ # 10 - DST time zone offset, seconds
+ : ([[:digit:]]{1,2})
+ )?
+ )?
+ )?
+ (?:
+ ,
+ (?:
+ # 11 - Optional J in n and Jn form 12 - Day of year
+ ( J ? ) ( [[:digit:]]+ )
+ | M
+ # 13 - Month number 14 - Week of month 15 - Day of week
+ ( [[:digit:]] + )
+ [.] ( [[:digit:]] + )
+ [.] ( [[:digit:]] + )
+ )
+ (?:
+ # 16 - Start time of DST - hours
+ / ( [[:digit:]]{1,2} )
+ (?:
+ # 17 - Start time of DST - minutes
+ : ( [[:digit:]]{1,2} )
+ (?:
+ # 18 - Start time of DST - seconds
+ : ( [[:digit:]]{1,2} )
+ )?
+ )?
+ )?
+ ,
+ (?:
+ # 19 - Optional J in n and Jn form 20 - Day of year
+ ( J ? ) ( [[:digit:]]+ )
+ | M
+ # 21 - Month number 22 - Week of month 23 - Day of week
+ ( [[:digit:]] + )
+ [.] ( [[:digit:]] + )
+ [.] ( [[:digit:]] + )
+ )
+ (?:
+ # 24 - End time of DST - hours
+ / ( [[:digit:]]{1,2} )
+ (?:
+ # 25 - End time of DST - minutes
+ : ( [[:digit:]]{1,2} )
+ (?:
+ # 26 - End time of DST - seconds
+ : ( [[:digit:]]{1,2} )
+ )?
+ )?
+ )?
+ )?
+ )?
+ )?
+ $
+ } $tz -> x(stdName) x(stdSignum) x(stdHours) x(stdMinutes) x(stdSeconds) \
+ x(dstName) x(dstSignum) x(dstHours) x(dstMinutes) x(dstSeconds) \
+ x(startJ) x(startDayOfYear) \
+ x(startMonth) x(startWeekOfMonth) x(startDayOfWeek) \
+ x(startHours) x(startMinutes) x(startSeconds) \
+ x(endJ) x(endDayOfYear) \
+ x(endMonth) x(endWeekOfMonth) x(endDayOfWeek) \
+ x(endHours) x(endMinutes) x(endSeconds)] } {
+
+ # it's a good timezone
+
+ return [array get x]
+
+ } else {
+
+ return -code error\
+ -errorcode [list CLOCK badTimeZone $tz] \
+ "unable to parse time zone specification \"$tz\""
+
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# ProcessPosixTimeZone --
+#
+# Handle a Posix time zone after it's been broken out into
+# fields.
+#
+# Parameters:
+# z - Dictionary returned from 'ParsePosixTimeZone'
+#
+# Results:
+# Returns time zone information for the 'TZData' array.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ProcessPosixTimeZone { z } {
+
+ variable MINWIDE
+ variable SecondsPerMinute
+ variable MinutesPerHour
+ variable TZData
+
+ # Determine the standard time zone name and seconds east of Greenwich
+
+ set stdName [dict get $z stdName]
+ if { [string index $stdName 0] eq {<} } {
+ set stdName [string range $stdName 1 end-1]
+ }
+ if { [dict get $z stdSignum] eq {-} } {
+ set stdSignum +1
+ } else {
+ set stdSignum -1
+ }
+ set stdHours [lindex [::scan [dict get $z stdHours] %d] 0]
+ if { [dict get $z stdMinutes] ne {} } {
+ set stdMinutes [lindex [::scan [dict get $z stdMinutes] %d] 0]
+ } else {
+ set stdMinutes 0
+ }
+ if { [dict get $z stdSeconds] ne {} } {
+ set stdSeconds [lindex [::scan [dict get $z stdSeconds] %d] 0]
+ } else {
+ set stdSeconds 0
+ }
+ set stdOffset [expr { ( ( $stdHours * $MinutesPerHour + $stdMinutes )
+ * $SecondsPerMinute + $stdSeconds )
+ * $stdSignum }]
+ set data [list [list $MINWIDE $stdOffset 0 $stdName]]
+
+ # If there's no daylight zone, we're done
+
+ set dstName [dict get $z dstName]
+ if { $dstName eq {} } {
+ return $data
+ }
+ if { [string index $dstName 0] eq {<} } {
+ set dstName [string range $dstName 1 end-1]
+ }
+
+ # Determine the daylight name
+
+ if { [dict get $z dstSignum] eq {-} } {
+ set dstSignum +1
+ } else {
+ set dstSignum -1
+ }
+ if { [dict get $z dstHours] eq {} } {
+ set dstOffset [expr { 3600 + $stdOffset }]
+ } else {
+ set dstHours [lindex [::scan [dict get $z dstHours] %d] 0]
+ if { [dict get $z dstMinutes] ne {} } {
+ set dstMinutes [lindex [::scan [dict get $z dstMinutes] %d] 0]
+ } else {
+ set dstMinutes 0
+ }
+ if { [dict get $z dstSeconds] ne {} } {
+ set dstSeconds [lindex [::scan [dict get $z dstSeconds] %d] 0]
+ } else {
+ set dstSeconds 0
+ }
+ set dstOffset [expr { ( ( $dstHours * $MinutesPerHour + $dstMinutes )
+ * $SecondsPerMinute + $dstSeconds )
+ * $dstSignum }]
+ }
+
+ # Fill in defaults for US DST rules
+
+ if { [dict get $z startDayOfYear] eq {}
+ && [dict get $z startMonth] eq {} } {
+ dict set z startMonth 4
+ dict set z startWeekOfMonth 1
+ dict set z startDayOfWeek 0
+ dict set z startHours 2
+ dict set z startMinutes 0
+ dict set z startSeconds 0
+ }
+ if { [dict get $z endDayOfYear] eq {}
+ && [dict get $z endMonth] eq {} } {
+ dict set z endMonth 10
+ dict set z endWeekOfMonth 5
+ dict set z endDayOfWeek 0
+ dict set z endHours 2
+ dict set z endMinutes 0
+ dict set z endSeconds 0
+ }
+
+ # Put DST in effect in all years from 1916 to 2099.
+
+ for { set y 1916 } { $y < 2099 } { incr y } {
+ set startTime [DeterminePosixDSTTime $z start $y]
+ incr startTime [expr { - wide($stdOffset) }]
+ set endTime [DeterminePosixDSTTime $z end $y]
+ incr endTime [expr { - wide($dstOffset) }]
+ if { $startTime < $endTime } {
+ lappend data \
+ [list $startTime $dstOffset 1 $dstName] \
+ [list $endTime $stdOffset 0 $stdName]
+ } else {
+ lappend data \
+ [list $endTime $stdOffset 0 $stdName] \
+ [list $startTime $dstOffset 1 $dstName]
+ }
+ }
+
+ return $data
+
+}
+
+#----------------------------------------------------------------------
+#
+# DeterminePosixDSTTime --
+#
+# Determines the time that Daylight Saving Time starts or ends
+# from a Posix time zone specification.
+#
+# Parameters:
+# z - Time zone data returned from ParsePosixTimeZone.
+# Missing fields are expected to be filled in with
+# default values.
+# bound - The word 'start' or 'end'
+# y - The year for which the transition time is to be determined.
+#
+# Results:
+# Returns the transition time as a count of seconds from
+# the epoch. The time is relative to the wall clock, not UTC.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::DeterminePosixDSTTime { z bound y } {
+
+ variable FEB_28
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+ variable SecondsPerMinute
+ variable MinutesPerHour
+
+ # Determine the start or end day of DST
+
+ set date [dict create era CE year $y]
+ set doy [dict get $z ${bound}DayOfYear]
+ if { $doy ne {} } {
+
+ # Time was specified as a day of the year
+
+ if { [dict get $z ${bound}J] ne {}
+ && [IsGregorianLeapYear $y]
+ && ( $doy > $FEB_28 ) } {
+ incr doy
+ }
+ dict set date dayOfYear $doy
+ set date [GetJulianDayFromEraYearDay [K $date [set date {}]]]
+ } else {
+
+ # Time was specified as a day of the week within a month
+
+ dict set date month [dict get $z ${bound}Month]
+ dict set date dayOfWeekInMonth [dict get $z ${bound}WeekOfMonth]
+ set dow [dict get $z ${bound}DayOfWeek]
+ if { $dow >= 5 } {
+ set dow -1
+ }
+ dict set date dayOfWeek $dow
+ set date [GetJulianDayFromEraYearMonthWeekDay [K $date [set date {}]]]
+
+ }
+
+ set jd [dict get $date julianDay]
+ set seconds [expr { wide($jd) * wide($SecondsPerDay)
+ - wide($PosixEpochAsJulianSeconds) }]
+
+ set h [dict get $z ${bound}Hours]
+ if { $h eq {} } {
+ set h 2
+ } else {
+ set h [lindex [::scan $h %d] 0]
+ }
+ set m [dict get $z ${bound}Minutes]
+ if { $m eq {} } {
+ set m 0
+ } else {
+ set m [lindex [::scan $m %d] 0]
+ }
+ set s [dict get $z ${bound}Seconds]
+ if { $s eq {} } {
+ set s 0
+ } else {
+ set s [lindex [::scan $s %d] 0]
+ }
+ set tod [expr { ( $h * $MinutesPerHour + $m ) * $SecondsPerMinute + $s }]
+ return [expr { $seconds + $tod }]
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetLocaleEra --
+#
+# Given local time expressed in seconds from the Posix epoch,
+# determine localized era and year within the era.
+#
+# Parameters:
+# date - Dictionary that must contain the keys, 'localSeconds',
+# whose value is expressed as the appropriate local time;
+# and 'year', whose value is the Gregorian year.
+#
+# Results:
+# Returns the dictionary, augmented with the keys, 'localeEra'
+# and 'localeYear'.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetLocaleEra { date } {
+
+ set etable [mc LOCALE_ERAS]
+ set index [BSearch $etable [dict get $date localSeconds]]
+ if { $index < 0 } {
+ dict set date localeEra \
+ [::format %02d [expr { [dict get $date year] / 100 }]]
+ dict set date localeYear \
+ [expr { [dict get $date year] % 100 }]
+ } else {
+ dict set date localeEra [lindex $etable $index 1]
+ dict set date localeYear [expr { [dict get $date year]
+ - [lindex $etable $index 2] }]
+ }
+ return $date
+
+}
+#----------------------------------------------------------------------
+#
+# GetJulianDay --
+#
+# Given the seconds from the Posix epoch, derives the Julian
+# day number.
+#
+# Parameters:
+# date - Dictionary containing the date fields. On input,
+# populated with a 'localSeconds' field that gives the
+# nominal seconds from the epoch (in the local time zone,
+# rather than UTC).
+#
+# Results:
+# Returns the given dictionary, augmented by a 'julianDay'
+# field that gives the Julian Day Number at noon of the current
+# date.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetJulianDay { date } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ set secs [dict get $date localSeconds]
+
+ return [dict set date julianDay \
+ [expr { ( $secs + $PosixEpochAsJulianSeconds )
+ / $SecondsPerDay }]]
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetGregorianEraYearDay --
+#
+# Given the time from the Posix epoch and the current time zone,
+# develops the era, year, and day of year in the Gregorian calendar.
+#
+# Parameters:
+# date - Dictionary containing the date fields. On input, populated
+# with the 'julianDay' key whose value is the Julian Day Number.
+#
+# Results:
+# Returns the given dictionary with the 'gregorian', 'era',
+# 'year', and 'dayOfYear' populated.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetGregorianEraYearDay { date } {
+
+ variable JD0Jan1CEGreg
+ variable JD0Jan1CEJul
+ variable DaysPer400Yr
+ variable DaysPerCentury
+ variable DaysPer4Yr
+ variable DaysPerYear
+
+ set jday [dict get $date julianDay]
+
+ set changeover [mc GREGORIAN_CHANGE_DATE]
+
+ if { $jday >= $changeover } {
+
+ # Gregorian date
+
+ dict set date gregorian 1
+
+ # Calculate number of days since 1 January, 1 CE
+
+ set day [expr { $jday - $JD0Jan1CEGreg - 1 }]
+
+ # Calculate number of 400 year cycles
+
+ set year 1
+ set n [expr { $day / $DaysPer400Yr }]
+ incr year [expr { 400 * $n }]
+ set day [expr { $day % $DaysPer400Yr }]
+
+ # Calculate number of centuries in the current cycle
+
+ set n [expr { $day / $DaysPerCentury }]
+ set day [expr { $day % $DaysPerCentury }]
+ if { $n > 3 } {
+ set n 3 ;# 31 December 2000, for instance
+ incr day $DaysPerCentury ;# is last day of 400 year cycle
+ }
+ incr year [expr { 100 * $n }]
+
+ } else {
+
+ # Julian date
+
+ dict set date gregorian 0
+
+ # Calculate days since 0 January, 1 CE Julian
+
+ set day [expr { $jday - $JD0Jan1CEJul - 1 }]
+ set year 1
+
+ }
+
+ # Calculate number of 4-year cycles in current century (or in
+ # the Common Era, if the calendar is Julian)
+
+ set n [expr { $day / $DaysPer4Yr }]
+ set day [expr { $day % $DaysPer4Yr }]
+ incr year [expr { 4 * $n }]
+
+ # Calculate number of years in current 4-year cycle
+
+ set n [expr { $day / $DaysPerYear }]
+ set day [expr { $day % $DaysPerYear }]
+ if { $n > 3 } {
+ set n 3 ;# 31 December in a leap year
+ incr day $DaysPerYear
+ }
+ incr year $n
+
+ # Calculate the era
+
+ if { $year <= 0 } {
+ dict set date year [expr { 1 - $year }]
+ dict set date era BCE
+ } else {
+ dict set date year $year
+ dict set date era CE
+ }
+
+ # Return day of the year
+
+ dict set date dayOfYear [expr { $day + 1 }]
+
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetMonthDay --
+#
+# Given the ordinal number of the day within the year, determines
+# month and day of month in the Gregorian calendar.
+#
+# Parameters:
+# date - Dictionary containing the date fields. On input, populated
+# with the 'era', 'gregorian', 'year' and 'dayOfYear' fields.
+#
+# Results:
+# Returns the given dictionary with the 'month' and 'dayOfMonth'
+# fields populated.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetMonthDay { date } {
+
+ variable DaysInRomanMonthInCommonYear
+ variable DaysInRomanMonthInLeapYear
+
+ set day [dict get $date dayOfYear]
+ if { [IsGregorianLeapYear $date] } {
+ set hath $DaysInRomanMonthInLeapYear
+ } else {
+ set hath $DaysInRomanMonthInCommonYear
+ }
+ set month 1
+ foreach n $hath {
+ if { $day <= $n } {
+ break
+ }
+ incr month
+ incr day [expr { -$n }]
+ }
+ dict set date month $month
+ dict set date dayOfMonth $day
+
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetYearWeekDay
+#
+# Given a julian day number, fiscal year, fiscal week,
+# and day of week in the ISO8601 calendar.
+#
+# Parameters:
+#
+# date - Dictionary where the 'julianDay' field is populated.
+# daysInFirstWeek - (Optional) Parameter giving the minimum number
+# of days in the first week of a year. Default is 4.
+#
+# Results:
+# Returns the given dictionary with values filled in for the
+# three given keys.
+#
+# Side effects:
+# None.
+#
+# Bugs:
+# Since ISO8601 week numbering is defined only for the Gregorian
+# calendar, dates on the Julian calendar or before the Common
+# Era may yield unexpected results. In particular, the year of
+# the Julian-to-Gregorian change may be up to three weeks short.
+# The era is not managed separately, so if the Common Era begins
+# (or the period Before the Common Era ends) with a partial week,
+# the few days at the beginning or end of the era may show up
+# as incorrectly belonging to the year zero.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetYearWeekDay { date
+ { keys { iso8601Year iso8601Week dayOfWeek } } } {
+
+ set daysInFirstWeek 4
+ set firstDayOfWeek 1
+
+ # Determine the calendar year of $j - $daysInFirstWeek + 1.
+ # Compute an upper bound of the fiscal year as being one year
+ # past the day on which the current week begins. Find the start
+ # of that year.
+
+ set j [dict get $date julianDay]
+ set jd [expr { $j - $daysInFirstWeek + 1 }]
+ set date1 [GetGregorianEraYearDay [dict create julianDay $jd]]
+ switch -exact -- [dict get $date1 era] {
+ BCE {
+ dict set date1 fiscalYear [expr { [dict get $date1 year] - 1}]
+ }
+ CE {
+ dict set date1 fiscalYear [expr { [dict get $date1 year] + 1}]
+ }
+ }
+ dict unset date1 year
+ dict unset date1 dayOfYear
+ dict set date1 weekOfFiscalYear 1
+ dict set date1 dayOfWeek $firstDayOfWeek
+
+ set date1 [GetJulianDayFromEraYearWeekDay \
+ [K $date1 [set date1 {}]] \
+ $daysInFirstWeek \
+ $firstDayOfWeek \
+ { fiscalYear weekOfFiscalYear dayOfWeek }]
+ set startOfFiscalYear [dict get $date1 julianDay]
+
+ # If we guessed high, move one year earlier.
+
+ if { $j < $startOfFiscalYear } {
+ switch -exact -- [dict get $date1 era] {
+ BCE {
+ dict incr date1 fiscalYear
+ }
+ CE {
+ dict incr date1 fiscalYear -1
+ }
+ }
+ set date1 [GetJulianDayFromEraYearWeekDay \
+ [K $date1 [set date1 {}]] \
+ $daysInFirstWeek \
+ $firstDayOfWeek \
+ {fiscalYear weekOfFiscalYear dayOfWeek }]
+ set startOfFiscalYear [dict get $date1 julianDay]
+ }
+
+ # Get the week number and the day within the week
+
+ set fiscalYear [dict get $date1 fiscalYear]
+ set dayOfFiscalYear [expr { $j - $startOfFiscalYear }]
+ set weekOfFiscalYear [expr { ( $dayOfFiscalYear / 7 ) + 1 }]
+ set dayOfWeek [expr { ( $dayOfFiscalYear + 1 ) % 7 }]
+ if { $dayOfWeek < $firstDayOfWeek } {
+ incr dayOfWeek 7
+ }
+
+ # Store the fiscal year, week, and day in the given slots in the
+ # given dictionary.
+
+ foreach key $keys \
+ value [list $fiscalYear $weekOfFiscalYear $dayOfWeek] {
+ dict set date $key $value
+ }
+
+ return $date
+}
+
+#----------------------------------------------------------------------
+#
+# GetJulianDayFromEraYearWeekDay --
+#
+# Finds the Julian Day Number corresponding to the given era,
+# year, week and day.
+#
+# Parameters:
+# date -- A dictionary populated with fields whose keys are given
+# by the 'keys' parameter below, plus the 'era' field.
+# daysInFirstWeek -- (Optional) The minimum number of days in
+# the first week of the year. Default is 4.
+# firstDayOfWeek -- (Optional) The ordinal number of the first
+# day of the week. Default is 1 (Monday);
+# 0 (Sunday) is an alternative.
+# keys -- (Optional) Keys in the dictionary for looking up the
+# fiscal year, fiscal week, and day of week. The
+# default is { iso8601Year iso8601Week dayOfWeek }.
+#
+# Results:
+# Returns the dictionary augmented with a 'julianDay' field
+# that gives the Julian Day Number corresponding to the given
+# date.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetJulianDayFromEraYearWeekDay {
+ date
+ { daysInFirstWeek 4 }
+ { firstDayOfWeek 1 }
+ { keys { iso8601Year iso8601Week dayOfWeek } }
+} {
+
+ foreach var { fiscalYear fiscalWeek dayOfWeek } key $keys {
+ set $var [dict get $date $key]
+ }
+
+ # Find a day of the first week of the year.
+
+ set date2 [dict create \
+ era [dict get $date era] \
+ year $fiscalYear \
+ month 1 \
+ dayOfMonth $daysInFirstWeek]
+ set date2 [GetJulianDayFromEraYearMonthDay [K $date2 [set date2 {}]]]
+
+ # Find the Julian Day Number of the start of that week.
+
+ set jd [WeekdayOnOrBefore $firstDayOfWeek [dict get $date2 julianDay]]
+
+ # Add the required number of weeks and days
+
+ dict set date julianDay \
+ [expr { $jd
+ + ( 7 * ( $fiscalWeek - 1 ) )
+ + $dayOfWeek - $firstDayOfWeek }]
+
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetJulianDayFromEraYearMonthDay --
+#
+# Given a year, month and day on the Gregorian calendar, determines
+# the Julian Day Number beginning at noon on that date.
+#
+# Parameters:
+# date -- A dictionary in which the 'era', 'year', 'month', and
+# 'dayOfMonth' slots are populated. The calendar in use
+# is determined by the date itself relative to
+# [mc GREGORIAN_CHANGE_DATE] in the current locale.
+#
+# Results:
+# Returns the given dictionary augmented with a 'julianDay' key
+# whose value is the desired Julian Day Number, and a 'gregorian'
+# key that specifies whether the calendar is Gregorian (1) or
+# Julian (0).
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetJulianDayFromEraYearMonthDay { date } {
+
+ variable JD0Jan1CEJul
+ variable JD0Jan1CEGreg
+ variable DaysInPriorMonthsInCommonYear
+ variable DaysInPriorMonthsInLeapYear
+
+ # Get absolute year number from the civil year
+
+ switch -exact [dict get $date era] {
+ BCE {
+ set year [expr { 1 - [dict get $date year] }]
+ }
+ CE {
+ set year [dict get $date year]
+ }
+ }
+ set ym1 [expr { $year - 1 }]
+
+ # Try the Gregorian calendar first.
+
+ dict set date gregorian 1
+ set jd [expr { $JD0Jan1CEGreg
+ + [dict get $date dayOfMonth]
+ + ( [IsGregorianLeapYear $date] ?
+ [lindex $DaysInPriorMonthsInLeapYear \
+ [expr { [dict get $date month] - 1}]]
+ : [lindex $DaysInPriorMonthsInCommonYear \
+ [expr { [dict get $date month] - 1}]] )
+ + ( 365 * $ym1 )
+ + ( $ym1 / 4 )
+ - ( $ym1 / 100 )
+ + ( $ym1 / 400 ) }]
+
+ # If the date is before the Gregorian change, use the Julian calendar.
+
+ if { $jd < [mc GREGORIAN_CHANGE_DATE] } {
+
+ dict set date gregorian 0
+ set jd [expr { $JD0Jan1CEJul
+ + [dict get $date dayOfMonth]
+ + ( ( $year % 4 == 0 ) ?
+ [lindex $DaysInPriorMonthsInLeapYear \
+ [expr { [dict get $date month] - 1}]]
+ : [lindex $DaysInPriorMonthsInCommonYear \
+ [expr { [dict get $date month] - 1}]] )
+ + ( 365 * $ym1 )
+ + ( $ym1 / 4 ) }]
+ }
+
+ dict set date julianDay $jd
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# GetJulianDayFromEraYearDay --
+#
+# Given a year, month and day on the Gregorian calendar, determines
+# the Julian Day Number beginning at noon on that date.
+#
+# Parameters:
+# date -- A dictionary in which the 'era', 'year', and
+# 'dayOfYear' slots are populated. The calendar in use
+# is determined by the date itself relative to
+# [mc GREGORIAN_CHANGE_DATE] in the current locale.
+#
+# Results:
+# Returns the given dictionary augmented with a 'julianDay' key
+# whose value is the desired Julian Day Number, and a 'gregorian'
+# key that specifies whether the calendar is Gregorian (1) or
+# Julian (0).
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetJulianDayFromEraYearDay { date } {
+
+ variable JD0Jan1CEJul
+ variable JD0Jan1CEGreg
+ variable DaysInPriorMonthsInCommonYear
+ variable DaysInPriorMonthsInLeapYear
+
+ # Get absolute year number from the civil year
+
+ switch -exact [dict get $date era] {
+ BCE {
+ set year [expr { 1 - [dict get $date year] }]
+ }
+ CE {
+ set year [dict get $date year]
+ }
+ }
+ set ym1 [expr { $year - 1 }]
+
+ # Try the Gregorian calendar first.
+
+ dict set date gregorian 1
+ set jd [expr { $JD0Jan1CEGreg
+ + [dict get $date dayOfYear]
+ + ( 365 * $ym1 )
+ + ( $ym1 / 4 )
+ - ( $ym1 / 100 )
+ + ( $ym1 / 400 ) }]
+
+ # If the date is before the Gregorian change, use the Julian calendar.
+
+ if { $jd < [mc GREGORIAN_CHANGE_DATE] } {
+ dict set date gregorian 0
+ set jd [expr { $JD0Jan1CEJul
+ + [dict get $date dayOfYear]
+ + ( 365 * $ym1 )
+ + ( $ym1 / 4 ) }]
+ }
+
+ dict set date julianDay $jd
+ return $date
+}
+
+#----------------------------------------------------------------------
+#
+# GetJulianDayFromEraYearMonthWeekDay --
+#
+# Determines the Julian Day number corresponding to the nth
+# given day-of-the-week in a given month.
+#
+# Parameters:
+# date - Dictionary containing the keys, 'era', 'year', 'month'
+# 'weekOfMonth', 'dayOfWeek', and 'dayOfWeekInMonth'.
+#
+# Results:
+# Returns the given dictionary, augmented with a 'julianDay' key.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::GetJulianDayFromEraYearMonthWeekDay { date } {
+
+ variable DaysPerWeek
+
+ # Come up with a reference day; either the zeroeth day of the
+ # given month (dayOfWeekInMonth >= 0) or the seventh day of the
+ # following month (dayOfWeekInMonth < 0)
+
+ set date2 $date
+ set week [dict get $date dayOfWeekInMonth]
+ if { $week >= 0 } {
+ dict set date2 dayOfMonth 0
+ } else {
+ dict incr date2 month
+ dict set date2 dayOfMonth 7
+ }
+ set date2 [GetJulianDayFromEraYearMonthDay [K $date2 [set date2 {}]]]
+ set wd0 [WeekdayOnOrBefore [dict get $date dayOfWeek] \
+ [dict get $date2 julianDay]]
+ dict set date julianDay [expr { $wd0 + $DaysPerWeek * $week }]
+ return $date
+
+}
+
+#----------------------------------------------------------------------
+#
+# IsGregorianLeapYear --
+#
+# Determines whether a given date represents a leap year in the
+# Gregorian calendar.
+#
+# Parameters:
+# date -- The date to test. The fields, 'era', 'year' and 'gregorian'
+# must be set.
+#
+# Results:
+# Returns 1 if the year is a leap year, 0 otherwise.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::IsGregorianLeapYear { date } {
+
+ switch -exact -- [dict get $date era] {
+ BCE {
+ set year [expr { 1 - [dict get $date year]}]
+ }
+ CE {
+ set year [dict get $date year]
+ }
+ }
+ if { $year % 4 != 0 } {
+ return 0
+ } elseif { ![dict get $date gregorian] } {
+ return 1
+ } elseif { $year % 400 == 0 } {
+ return 1
+ } elseif { $year % 100 == 0 } {
+ return 0
+ } else {
+ return 1
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# WeekdayOnOrBefore --
+#
+# Determine the nearest day of week (given by the 'weekday'
+# parameter, Sunday==0) on or before a given Julian Day.
+#
+# Parameters:
+# weekday -- Day of the week
+# j -- Julian Day number
+#
+# Results:
+# Returns the Julian Day Number of the desired date.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::WeekdayOnOrBefore { weekday j } {
+
+ set k [expr { ( $weekday + 6 ) % 7 }]
+ return [expr { $j - ( $j - $k ) % 7 }]
+
+}
+
+#----------------------------------------------------------------------
+#
+# BSearch --
+#
+# Service procedure that does binary search in several places
+# inside the 'clock' command.
+#
+# Parameters:
+# list - List of lists, sorted in ascending order by the
+# first elements
+# key - Value to search for
+#
+# Results:
+# Returns the index of the greatest element in $list that is less
+# than or equal to $key.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::BSearch { list key } {
+
+ if { $key < [lindex $list 0 0] } {
+ return -1
+ }
+
+ set l 0
+ set u [expr { [llength $list] - 1 }]
+
+ while { $l < $u } {
+
+ # At this point, we know that
+ # $k >= [lindex $list $l 0]
+ # Either $u == [llength $list] or else $k < [lindex $list $u+1 0]
+ # We find the midpoint of the interval {l,u} rounded UP, compare
+ # against it, and set l or u to maintain the invariant. Note
+ # that the interval shrinks at each step, guaranteeing convergence.
+
+ set m [expr { ( $l + $u + 1 ) / 2 }]
+ if { $key >= [lindex $list $m 0] } {
+ set l $m
+ } else {
+ set u [expr { $m - 1 }]
+ }
+ }
+
+ return $l
+}
+
+#----------------------------------------------------------------------
+#
+# clock add --
+#
+# Adds an offset to a given time.
+#
+# Syntax:
+# clock add clockval ?count unit?... ?-option value?
+#
+# Parameters:
+# clockval -- Starting time value
+# count -- Amount of a unit of time to add
+# unit -- Unit of time to add, must be one of:
+# years year months month weeks week
+# days day hours hour minutes minute
+# seconds second
+#
+# Options:
+# -gmt BOOLEAN
+# (Deprecated) Flag synonymous with '-timezone :GMT'
+# -timezone ZONE
+# Name of the time zone in which calculations are to be done.
+# -locale NAME
+# Name of the locale in which calculations are to be done.
+# Used to determine the Gregorian change date.
+#
+# Results:
+# Returns the given time adjusted by the given offset(s) in
+# order.
+#
+# Notes:
+# It is possible that adding a number of months or years will adjust
+# the day of the month as well. For instance, the time at
+# one month after 31 January is either 28 or 29 February, because
+# February has fewer than 31 days.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::add { clockval args } {
+
+ if { [llength $args] % 2 != 0 } {
+ return -code error \
+ -errorcode [list CLOCK wrongNumArgs] \
+ "wrong \# args: should be\
+ \"[lindex [info level 0] 0] clockval\
+ ?number units?...\
+ ?-gmt boolean? ?-locale LOCALE? ?-timezone ZONE?\""
+ }
+ if { [catch { expr wide($clockval) } result] } {
+ return -code error $result
+ }
+
+ set offsets {}
+ set gmt 0
+ set locale C
+ set timezone [GetSystemTimeZone]
+
+ foreach { a b } $args {
+
+ if { [string is integer -strict $a] } {
+
+ lappend offsets $a $b
+
+ } else {
+
+ switch -exact -- $a {
+
+ -gmt {
+ set gmt $b
+ }
+ -locale {
+ set locale $b
+ }
+ -timezone {
+ set timezone $b
+ }
+ default {
+ return -code error \
+ -errorcode [list CLOCK badSwitch $flag] \
+ "bad switch \"$flag\",\
+ must be -gmt, -locale or -timezone"
+ }
+ }
+ }
+ }
+
+ # Check options for validity
+
+ if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } {
+ return -code error \
+ -errorcode [list CLOCK gmtWithTimezone] \
+ "cannot use -gmt and -timezone in same call"
+ }
+ if { [catch { expr { wide($clockval) } } result] } {
+ return -code error \
+ "expected integer but got \"$clockval\""
+ }
+ if { ![string is boolean $gmt] } {
+ return -code error \
+ "expected boolean value but got \"$gmt\""
+ } else {
+ if { $gmt } {
+ set timezone :GMT
+ }
+ }
+
+ EnterLocale $locale oldLocale
+
+ set status [catch {
+
+ foreach { quantity unit } $offsets {
+
+ switch -exact -- $unit {
+
+ years - year {
+ set clockval \
+ [AddMonths [expr { 12 * $quantity }] \
+ $clockval $timezone]
+ }
+ months - month {
+ set clockval [AddMonths $quantity $clockval $timezone]
+ }
+
+ weeks - week {
+ set clockval [AddDays [expr { 7 * $quantity }] \
+ $clockval $timezone]
+ }
+ days - day {
+ set clockval [AddDays $quantity $clockval $timezone]
+ }
+
+ hours - hour {
+ set clockval [expr { 3600 * $quantity + $clockval }]
+ }
+ minutes - minute {
+ set clockval [expr { 60 * $quantity + $clockval }]
+ }
+ seconds - second {
+ set clockval [expr { $quantity + $clockval }]
+ }
+
+ default {
+ error "unknown unit \"$unit\", must be \
+ years, months, weeks, days, hours, minutes or seconds" \
+ "unknown unit \"$unit\", must be \
+ years, months, weeks, days, hours, minutes or seconds" \
+ [list CLOCK badUnit $unit]
+ }
+ }
+ }
+ } result]
+
+ # Restore the locale
+
+ if { [info exists oldLocale] } {
+ mclocale $oldLocale
+ }
+
+ if { $status == 1 } {
+ if { [lindex $::errorCode 0] eq {CLOCK} } {
+ return -code error -errorcode $::errorCode $result
+ } else {
+ error $result $::errorInfo $::errorCode
+ }
+ } else {
+ return $clockval
+ }
+
+}
+
+#----------------------------------------------------------------------
+#
+# AddMonths --
+#
+# Add a given number of months to a given clock value in a given
+# time zone.
+#
+# Parameters:
+# months - Number of months to add (may be negative)
+# clockval - Seconds since the epoch before the operation
+# timezone - Time zone in which the operation is to be performed
+#
+# Results:
+# Returns the new clock value as a number of seconds since
+# the epoch.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AddMonths { months clockval timezone } {
+
+ variable DaysInRomanMonthInCommonYear
+ variable DaysInRomanMonthInLeapYear
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Convert the time to year, month, day, and fraction of day.
+
+ set date [GetMonthDay \
+ [GetGregorianEraYearDay \
+ [GetJulianDay \
+ [ConvertUTCToLocal \
+ [dict create seconds $clockval] \
+ $timezone]]]]
+ dict set date secondOfDay [expr { [dict get $date localSeconds]
+ % $SecondsPerDay }]
+ dict set date tzName $timezone
+
+ # Add the requisite number of months
+
+ set m [dict get $date month]
+ incr m $months
+ incr m -1
+ set delta [expr { $m / 12 }]
+ set mm [expr { $m % 12 }]
+ dict set date month [expr { $mm + 1 }]
+ dict incr date year $delta
+
+ # If the date doesn't exist in the current month, repair it
+
+ if { [IsGregorianLeapYear $date] } {
+ set hath [lindex $DaysInRomanMonthInLeapYear $mm]
+ } else {
+ set hath [lindex $DaysInRomanMonthInCommonYear $mm]
+ }
+ if { [dict get $date dayOfMonth] > $hath } {
+ dict set date dayOfMonth $hath
+ }
+
+ # Reconvert to a number of seconds
+
+ set date [GetJulianDayFromEraYearMonthDay \
+ [K $date [set date {}]]]
+ dict set date localSeconds \
+ [expr { -$PosixEpochAsJulianSeconds
+ + ( $SecondsPerDay * wide([dict get $date julianDay]) )
+ + [dict get $date secondOfDay] }]
+ set date [ConvertLocalToUTC [K $date [set date {}]]]
+
+ return [dict get $date seconds]
+
+}
+
+#----------------------------------------------------------------------
+#
+# AddDays --
+#
+# Add a given number of days to a given clock value in a given
+# time zone.
+#
+# Parameters:
+# days - Number of days to add (may be negative)
+# clockval - Seconds since the epoch before the operation
+# timezone - Time zone in which the operation is to be performed
+#
+# Results:
+# Returns the new clock value as a number of seconds since
+# the epoch.
+#
+# Side effects:
+# None.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::AddDays { days clockval timezone } {
+
+ variable PosixEpochAsJulianSeconds
+ variable SecondsPerDay
+
+ # Convert the time to Julian Day
+
+ set date [GetJulianDay \
+ [ConvertUTCToLocal \
+ [dict create seconds $clockval] \
+ $timezone]]
+ dict set date secondOfDay [expr { [dict get $date localSeconds]
+ % $SecondsPerDay }]
+ dict set date tzName $timezone
+
+ # Add the requisite number of days
+
+ dict incr date julianDay $days
+
+ # Reconvert to a number of seconds
+
+ dict set date localSeconds \
+ [expr { -$PosixEpochAsJulianSeconds
+ + ( $SecondsPerDay * wide([dict get $date julianDay]) )
+ + [dict get $date secondOfDay] }]
+ set date [ConvertLocalToUTC [K $date [set date {}]]]
+
+ return [dict get $date seconds]
+
+}
+
+#----------------------------------------------------------------------
+#
+# ClearCaches --
+#
+# Clears all caches to reclaim the memory used in [clock]
+#
+# Parameters:
+# None.
+#
+# Results:
+# None.
+#
+# Side effects:
+# Caches are cleared.
+#
+#----------------------------------------------------------------------
+
+proc ::tcl::clock::ClearCaches {} {
+
+ variable LocaleNumeralCache
+ variable McLoaded
+ variable CachedSystemTimeZone
+ variable TZData
+
+ foreach p [info procs [namespace current]::scanproc'*] {
+ rename $p {}
+ }
+
+ set LocaleNumeralCache {}
+ set McLoaded {}
+ catch {unset CachedSystemTimeZone}
+ array unset TZData
+
+}
diff --git a/library/init.tcl b/library/init.tcl
index 21b3377..761aa4a 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -3,11 +3,12 @@
# Default system startup file for Tcl-based applications. Defines
# "unknown" procedure and auto-load facilities.
#
-# RCS: @(#) $Id: init.tcl,v 1.63 2004/06/16 21:20:42 dgp Exp $
+# RCS: @(#) $Id: init.tcl,v 1.64 2004/08/18 19:59:00 kennykb Exp $
#
# Copyright (c) 1991-1993 The Regents of the University of California.
# Copyright (c) 1994-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 Scriptics Corporation.
+# Copyright (c) 2004 by Kevin B. Kenny. All rights reserved.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
@@ -743,3 +744,38 @@ proc tcl::CopyDirectory {action src dest} {
}
return
}
+
+# Set up the 'clock' ensemble
+
+if { ![interp issafe] } {
+
+ namespace eval ::tcl::clock \
+ [list variable TclLibDir [file dirname [info script]]]
+
+ namespace eval ::tcl::clock {
+ namespace ensemble create -command ::clock \
+ -subcommands {
+ add clicks format
+ microseconds milliseconds
+ scan seconds
+ }
+
+ # Auto-loading stub for 'clock.tcl'
+
+ proc add args {
+ variable TclLibDir
+ source -encoding utf-8 [file join $TclLibDir clock.tcl]
+ return [uplevel 1 [info level 0]]
+ }
+ proc format args {
+ variable TclLibDir
+ source -encoding utf-8 [file join $TclLibDir clock.tcl]
+ return [uplevel 1 [info level 0]]
+ }
+ proc scan args {
+ variable TclLibDir
+ source -encoding utf-8 [file join $TclLibDir clock.tcl]
+ return [uplevel 1 [info level 0]]
+ }
+ }
+}
diff --git a/library/msgs/af.msg b/library/msgs/af.msg
new file mode 100755
index 0000000..0892615
--- /dev/null
+++ b/library/msgs/af.msg
@@ -0,0 +1,49 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset af DAYS_OF_WEEK_ABBREV [list \
+ "So"\
+ "Ma"\
+ "Di"\
+ "Wo"\
+ "Do"\
+ "Vr"\
+ "Sa"]
+ ::msgcat::mcset af DAYS_OF_WEEK_FULL [list \
+ "Sondag"\
+ "Maandag"\
+ "Dinsdag"\
+ "Woensdag"\
+ "Donderdag"\
+ "Vrydag"\
+ "Saterdag"]
+ ::msgcat::mcset af MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mar"\
+ "Apr"\
+ "Mei"\
+ "Jun"\
+ "Jul"\
+ "Aug"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Des"\
+ ""]
+ ::msgcat::mcset af MONTHS_FULL [list \
+ "Januarie"\
+ "Februarie"\
+ "Maart"\
+ "April"\
+ "Mei"\
+ "Junie"\
+ "Julie"\
+ "Augustus"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Desember"\
+ ""]
+ ::msgcat::mcset af AM "VM"
+ ::msgcat::mcset af PM "NM"
+}
diff --git a/library/msgs/af_ZA.msg b/library/msgs/af_ZA.msg
new file mode 100755
index 0000000..fef48ad
--- /dev/null
+++ b/library/msgs/af_ZA.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset af_ZA DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset af_ZA TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset af_ZA DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/ar.msg b/library/msgs/ar.msg
new file mode 100755
index 0000000..257157f
--- /dev/null
+++ b/library/msgs/ar.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ar DAYS_OF_WEEK_ABBREV [list \
+ "\u062d"\
+ "\u0646"\
+ "\u062b"\
+ "\u0631"\
+ "\u062e"\
+ "\u062c"\
+ "\u0633"]
+ ::msgcat::mcset ar DAYS_OF_WEEK_FULL [list \
+ "\u0627\u0644\u0623\u062d\u062f"\
+ "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\
+ "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\
+ "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\
+ "\u0627\u0644\u062e\u0645\u064a\u0633"\
+ "\u0627\u0644\u062c\u0645\u0639\u0629"\
+ "\u0627\u0644\u0633\u0628\u062a"]
+ ::msgcat::mcset ar MONTHS_ABBREV [list \
+ "\u064a\u0646\u0627"\
+ "\u0641\u0628\u0631"\
+ "\u0645\u0627\u0631"\
+ "\u0623\u0628\u0631"\
+ "\u0645\u0627\u064a"\
+ "\u064a\u0648\u0646"\
+ "\u064a\u0648\u0644"\
+ "\u0623\u063a\u0633"\
+ "\u0633\u0628\u062a"\
+ "\u0623\u0643\u062a"\
+ "\u0646\u0648\u0641"\
+ "\u062f\u064a\u0633"\
+ ""]
+ ::msgcat::mcset ar MONTHS_FULL [list \
+ "\u064a\u0646\u0627\u064a\u0631"\
+ "\u0641\u0628\u0631\u0627\u064a\u0631"\
+ "\u0645\u0627\u0631\u0633"\
+ "\u0623\u0628\u0631\u064a\u0644"\
+ "\u0645\u0627\u064a\u0648"\
+ "\u064a\u0648\u0646\u064a\u0648"\
+ "\u064a\u0648\u0644\u064a\u0648"\
+ "\u0623\u063a\u0633\u0637\u0633"\
+ "\u0633\u0628\u062a\u0645\u0628\u0631"\
+ "\u0623\u0643\u062a\u0648\u0628\u0631"\
+ "\u0646\u0648\u0641\u0645\u0628\u0631"\
+ "\u062f\u064a\u0633\u0645\u0628\u0631"\
+ ""]
+ ::msgcat::mcset ar BCE "\u0642.\u0645"
+ ::msgcat::mcset ar CE "\u0645"
+ ::msgcat::mcset ar AM "\u0635"
+ ::msgcat::mcset ar PM "\u0645"
+ ::msgcat::mcset ar DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset ar TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset ar DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/ar_IN.msg b/library/msgs/ar_IN.msg
new file mode 100755
index 0000000..185e49c
--- /dev/null
+++ b/library/msgs/ar_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ar_IN DATE_FORMAT "%A %d %B %Y"
+ ::msgcat::mcset ar_IN TIME_FORMAT_12 "%I:%M:%S %z"
+ ::msgcat::mcset ar_IN DATE_TIME_FORMAT "%A %d %B %Y %I:%M:%S %z %z"
+}
diff --git a/library/msgs/ar_JO.msg b/library/msgs/ar_JO.msg
new file mode 100755
index 0000000..0f5e269
--- /dev/null
+++ b/library/msgs/ar_JO.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ar_JO DAYS_OF_WEEK_ABBREV [list \
+ "\u0627\u0644\u0623\u062d\u062f"\
+ "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\
+ "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\
+ "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\
+ "\u0627\u0644\u062e\u0645\u064a\u0633"\
+ "\u0627\u0644\u062c\u0645\u0639\u0629"\
+ "\u0627\u0644\u0633\u0628\u062a"]
+ ::msgcat::mcset ar_JO MONTHS_ABBREV [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631"\
+ "\u062d\u0632\u064a\u0631\u0627\u0646"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+ ::msgcat::mcset ar_JO MONTHS_FULL [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631"\
+ "\u062d\u0632\u064a\u0631\u0627\u0646"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+}
diff --git a/library/msgs/ar_LB.msg b/library/msgs/ar_LB.msg
new file mode 100755
index 0000000..e62acd3
--- /dev/null
+++ b/library/msgs/ar_LB.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ar_LB DAYS_OF_WEEK_ABBREV [list \
+ "\u0627\u0644\u0623\u062d\u062f"\
+ "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\
+ "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\
+ "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\
+ "\u0627\u0644\u062e\u0645\u064a\u0633"\
+ "\u0627\u0644\u062c\u0645\u0639\u0629"\
+ "\u0627\u0644\u0633\u0628\u062a"]
+ ::msgcat::mcset ar_LB MONTHS_ABBREV [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631"\
+ "\u062d\u0632\u064a\u0631\u0627\u0646"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+ ::msgcat::mcset ar_LB MONTHS_FULL [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631"\
+ "\u062d\u0632\u064a\u0631\u0627\u0646"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+}
diff --git a/library/msgs/ar_SY.msg b/library/msgs/ar_SY.msg
new file mode 100755
index 0000000..d5e1c87
--- /dev/null
+++ b/library/msgs/ar_SY.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ar_SY DAYS_OF_WEEK_ABBREV [list \
+ "\u0627\u0644\u0623\u062d\u062f"\
+ "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\
+ "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\
+ "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\
+ "\u0627\u0644\u062e\u0645\u064a\u0633"\
+ "\u0627\u0644\u062c\u0645\u0639\u0629"\
+ "\u0627\u0644\u0633\u0628\u062a"]
+ ::msgcat::mcset ar_SY MONTHS_ABBREV [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631"\
+ "\u062d\u0632\u064a\u0631\u0627\u0646"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+ ::msgcat::mcset ar_SY MONTHS_FULL [list \
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0634\u0628\u0627\u0637"\
+ "\u0622\u0630\u0627\u0631"\
+ "\u0646\u064a\u0633\u0627\u0646"\
+ "\u0646\u0648\u0627\u0631\u0627\u0646"\
+ "\u062d\u0632\u064a\u0631"\
+ "\u062a\u0645\u0648\u0632"\
+ "\u0622\u0628"\
+ "\u0623\u064a\u0644\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\
+ "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\
+ ""]
+}
diff --git a/library/msgs/be.msg b/library/msgs/be.msg
new file mode 100755
index 0000000..379a1d7
--- /dev/null
+++ b/library/msgs/be.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset be DAYS_OF_WEEK_ABBREV [list \
+ "\u043d\u0434"\
+ "\u043f\u043d"\
+ "\u0430\u0442"\
+ "\u0441\u0440"\
+ "\u0447\u0446"\
+ "\u043f\u0442"\
+ "\u0441\u0431"]
+ ::msgcat::mcset be DAYS_OF_WEEK_FULL [list \
+ "\u043d\u044f\u0434\u0437\u0435\u043b\u044f"\
+ "\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a"\
+ "\u0430\u045e\u0442\u043e\u0440\u0430\u043a"\
+ "\u0441\u0435\u0440\u0430\u0434\u0430"\
+ "\u0447\u0430\u0446\u0432\u0435\u0440"\
+ "\u043f\u044f\u0442\u043d\u0456\u0446\u0430"\
+ "\u0441\u0443\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset be MONTHS_ABBREV [list \
+ "\u0441\u0442\u0434"\
+ "\u043b\u044e\u0442"\
+ "\u0441\u043a\u0432"\
+ "\u043a\u0440\u0441"\
+ "\u043c\u0430\u0439"\
+ "\u0447\u0440\u0432"\
+ "\u043b\u043f\u043d"\
+ "\u0436\u043d\u0432"\
+ "\u0432\u0440\u0441"\
+ "\u043a\u0441\u0442"\
+ "\u043b\u0441\u0442"\
+ "\u0441\u043d\u0436"\
+ ""]
+ ::msgcat::mcset be MONTHS_FULL [list \
+ "\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f"\
+ "\u043b\u044e\u0442\u0430\u0433\u0430"\
+ "\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430"\
+ "\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430"\
+ "\u043c\u0430\u044f"\
+ "\u0447\u0440\u0432\u0435\u043d\u044f"\
+ "\u043b\u0456\u043f\u0435\u043d\u044f"\
+ "\u0436\u043d\u0456\u045e\u043d\u044f"\
+ "\u0432\u0435\u0440\u0430\u0441\u043d\u044f"\
+ "\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430"\
+ "\u043b\u0438\u0441\u0442\u0430\u043f\u0430\u0434\u0430"\
+ "\u0441\u043d\u0435\u0436\u043d\u044f"\
+ ""]
+ ::msgcat::mcset be BCE "\u0434\u0430 \u043d.\u0435."
+ ::msgcat::mcset be CE "\u043d.\u0435."
+ ::msgcat::mcset be DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset be TIME_FORMAT "%k.%M.%S"
+ ::msgcat::mcset be DATE_TIME_FORMAT "%e.%m.%Y %k.%M.%S %z"
+}
diff --git a/library/msgs/bg.msg b/library/msgs/bg.msg
new file mode 100755
index 0000000..ff17759
--- /dev/null
+++ b/library/msgs/bg.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset bg DAYS_OF_WEEK_ABBREV [list \
+ "\u041d\u0434"\
+ "\u041f\u043d"\
+ "\u0412\u0442"\
+ "\u0421\u0440"\
+ "\u0427\u0442"\
+ "\u041f\u0442"\
+ "\u0421\u0431"]
+ ::msgcat::mcset bg DAYS_OF_WEEK_FULL [list \
+ "\u041d\u0435\u0434\u0435\u043b\u044f"\
+ "\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a"\
+ "\u0412\u0442\u043e\u0440\u043d\u0438\u043a"\
+ "\u0421\u0440\u044f\u0434\u0430"\
+ "\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a"\
+ "\u041f\u0435\u0442\u044a\u043a"\
+ "\u0421\u044a\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset bg MONTHS_ABBREV [list \
+ "I"\
+ "II"\
+ "III"\
+ "IV"\
+ "V"\
+ "VI"\
+ "VII"\
+ "VIII"\
+ "IX"\
+ "X"\
+ "XI"\
+ "XII"\
+ ""]
+ ::msgcat::mcset bg MONTHS_FULL [list \
+ "\u042f\u043d\u0443\u0430\u0440\u0438"\
+ "\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438"\
+ "\u041c\u0430\u0440\u0442"\
+ "\u0410\u043f\u0440\u0438\u043b"\
+ "\u041c\u0430\u0439"\
+ "\u042e\u043d\u0438"\
+ "\u042e\u043b\u0438"\
+ "\u0410\u0432\u0433\u0443\u0441\u0442"\
+ "\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438"\
+ "\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438"\
+ "\u041d\u043e\u0435\u043c\u0432\u0440\u0438"\
+ "\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438"\
+ ""]
+ ::msgcat::mcset bg BCE "\u043f\u0440.\u043d.\u0435."
+ ::msgcat::mcset bg CE "\u043d.\u0435."
+ ::msgcat::mcset bg DATE_FORMAT "%Y-%m-%e"
+ ::msgcat::mcset bg TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset bg DATE_TIME_FORMAT "%Y-%m-%e %k:%M:%S %z"
+}
diff --git a/library/msgs/bn.msg b/library/msgs/bn.msg
new file mode 100755
index 0000000..664b9d8
--- /dev/null
+++ b/library/msgs/bn.msg
@@ -0,0 +1,49 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset bn DAYS_OF_WEEK_ABBREV [list \
+ "\u09b0\u09ac\u09bf"\
+ "\u09b8\u09cb\u09ae"\
+ "\u09ae\u0999\u0997\u09b2"\
+ "\u09ac\u09c1\u09a7"\
+ "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf"\
+ "\u09b6\u09c1\u0995\u09cd\u09b0"\
+ "\u09b6\u09a8\u09bf"]
+ ::msgcat::mcset bn DAYS_OF_WEEK_FULL [list \
+ "\u09b0\u09ac\u09bf\u09ac\u09be\u09b0"\
+ "\u09b8\u09cb\u09ae\u09ac\u09be\u09b0"\
+ "\u09ae\u0999\u0997\u09b2\u09ac\u09be\u09b0"\
+ "\u09ac\u09c1\u09a7\u09ac\u09be\u09b0"\
+ "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0"\
+ "\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0"\
+ "\u09b6\u09a8\u09bf\u09ac\u09be\u09b0"]
+ ::msgcat::mcset bn MONTHS_ABBREV [list \
+ "\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0"\
+ "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0"\
+ "\u09ae\u09be\u09b0\u09cd\u099a"\
+ "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2"\
+ "\u09ae\u09c7"\
+ "\u099c\u09c1\u09a8"\
+ "\u099c\u09c1\u09b2\u09be\u0987"\
+ "\u0986\u0997\u09b8\u09cd\u099f"\
+ "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0"\
+ "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ ""]
+ ::msgcat::mcset bn MONTHS_FULL [list \
+ "\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0"\
+ "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0"\
+ "\u09ae\u09be\u09b0\u09cd\u099a"\
+ "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2"\
+ "\u09ae\u09c7"\
+ "\u099c\u09c1\u09a8"\
+ "\u099c\u09c1\u09b2\u09be\u0987"\
+ "\u0986\u0997\u09b8\u09cd\u099f"\
+ "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0"\
+ "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"\
+ ""]
+ ::msgcat::mcset bn AM "\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3"
+ ::msgcat::mcset bn PM "\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3"
+}
diff --git a/library/msgs/bn_IN.msg b/library/msgs/bn_IN.msg
new file mode 100755
index 0000000..28c000f
--- /dev/null
+++ b/library/msgs/bn_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset bn_IN DATE_FORMAT "%A %d %b %Y"
+ ::msgcat::mcset bn_IN TIME_FORMAT_12 "%I:%M:%S %z"
+ ::msgcat::mcset bn_IN DATE_TIME_FORMAT "%A %d %b %Y %I:%M:%S %z %z"
+}
diff --git a/library/msgs/ca.msg b/library/msgs/ca.msg
new file mode 100755
index 0000000..36c9772
--- /dev/null
+++ b/library/msgs/ca.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ca DAYS_OF_WEEK_ABBREV [list \
+ "dg."\
+ "dl."\
+ "dt."\
+ "dc."\
+ "dj."\
+ "dv."\
+ "ds."]
+ ::msgcat::mcset ca DAYS_OF_WEEK_FULL [list \
+ "diumenge"\
+ "dilluns"\
+ "dimarts"\
+ "dimecres"\
+ "dijous"\
+ "divendres"\
+ "dissabte"]
+ ::msgcat::mcset ca MONTHS_ABBREV [list \
+ "gen."\
+ "feb."\
+ "mar\u00e7"\
+ "abr."\
+ "maig"\
+ "juny"\
+ "jul."\
+ "ag."\
+ "set."\
+ "oct."\
+ "nov."\
+ "des."\
+ ""]
+ ::msgcat::mcset ca MONTHS_FULL [list \
+ "gener"\
+ "febrer"\
+ "mar\u00e7"\
+ "abril"\
+ "maig"\
+ "juny"\
+ "juliol"\
+ "agost"\
+ "setembre"\
+ "octubre"\
+ "novembre"\
+ "desembre"\
+ ""]
+ ::msgcat::mcset ca DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset ca TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset ca DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/cs.msg b/library/msgs/cs.msg
new file mode 100755
index 0000000..8db8bdd
--- /dev/null
+++ b/library/msgs/cs.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset cs DAYS_OF_WEEK_ABBREV [list \
+ "Ne"\
+ "Po"\
+ "\u00dat"\
+ "St"\
+ "\u010ct"\
+ "P\u00e1"\
+ "So"]
+ ::msgcat::mcset cs DAYS_OF_WEEK_FULL [list \
+ "Ned\u011ble"\
+ "Pond\u011bl\u00ed"\
+ "\u00dater\u00fd"\
+ "St\u0159eda"\
+ "\u010ctvrtek"\
+ "P\u00e1tek"\
+ "Sobota"]
+ ::msgcat::mcset cs MONTHS_ABBREV [list \
+ "I"\
+ "II"\
+ "III"\
+ "IV"\
+ "V"\
+ "VI"\
+ "VII"\
+ "VIII"\
+ "IX"\
+ "X"\
+ "XI"\
+ "XII"\
+ ""]
+ ::msgcat::mcset cs MONTHS_FULL [list \
+ "leden"\
+ "\u00fanor"\
+ "b\u0159ezen"\
+ "duben"\
+ "kv\u011bten"\
+ "\u010derven"\
+ "\u010dervenec"\
+ "srpen"\
+ "z\u00e1\u0159\u00ed"\
+ "\u0159\u00edjen"\
+ "listopad"\
+ "prosinec"\
+ ""]
+ ::msgcat::mcset cs BCE "p\u0159.Kr."
+ ::msgcat::mcset cs CE "po Kr."
+ ::msgcat::mcset cs AM "dop."
+ ::msgcat::mcset cs PM "odp."
+ ::msgcat::mcset cs DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset cs TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset cs DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/da.msg b/library/msgs/da.msg
new file mode 100755
index 0000000..e4fec7f
--- /dev/null
+++ b/library/msgs/da.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset da DAYS_OF_WEEK_ABBREV [list \
+ "s\u00f8"\
+ "ma"\
+ "ti"\
+ "on"\
+ "to"\
+ "fr"\
+ "l\u00f8"]
+ ::msgcat::mcset da DAYS_OF_WEEK_FULL [list \
+ "s\u00f8ndag"\
+ "mandag"\
+ "tirsdag"\
+ "onsdag"\
+ "torsdag"\
+ "fredag"\
+ "l\u00f8rdag"]
+ ::msgcat::mcset da MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "maj"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset da MONTHS_FULL [list \
+ "januar"\
+ "februar"\
+ "marts"\
+ "april"\
+ "maj"\
+ "juni"\
+ "juli"\
+ "august"\
+ "september"\
+ "oktober"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset da BCE "f.Kr."
+ ::msgcat::mcset da CE "e.Kr."
+ ::msgcat::mcset da DATE_FORMAT "%d-%m-%Y"
+ ::msgcat::mcset da TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset da DATE_TIME_FORMAT "%d-%m-%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/de.msg b/library/msgs/de.msg
new file mode 100755
index 0000000..9eb3145
--- /dev/null
+++ b/library/msgs/de.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset de DAYS_OF_WEEK_ABBREV [list \
+ "So"\
+ "Mo"\
+ "Di"\
+ "Mi"\
+ "Do"\
+ "Fr"\
+ "Sa"]
+ ::msgcat::mcset de DAYS_OF_WEEK_FULL [list \
+ "Sonntag"\
+ "Montag"\
+ "Dienstag"\
+ "Mittwoch"\
+ "Donnerstag"\
+ "Freitag"\
+ "Samstag"]
+ ::msgcat::mcset de MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mrz"\
+ "Apr"\
+ "Mai"\
+ "Jun"\
+ "Jul"\
+ "Aug"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dez"\
+ ""]
+ ::msgcat::mcset de MONTHS_FULL [list \
+ "Januar"\
+ "Februar"\
+ "M\u00e4rz"\
+ "April"\
+ "Mai"\
+ "Juni"\
+ "Juli"\
+ "August"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Dezember"\
+ ""]
+ ::msgcat::mcset de BCE "v. Chr."
+ ::msgcat::mcset de CE "n. Chr."
+ ::msgcat::mcset de AM "vorm."
+ ::msgcat::mcset de PM "nachm."
+ ::msgcat::mcset de DATE_FORMAT "%d.%m.%Y"
+ ::msgcat::mcset de TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset de DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/de_AT.msg b/library/msgs/de_AT.msg
new file mode 100755
index 0000000..61bc266
--- /dev/null
+++ b/library/msgs/de_AT.msg
@@ -0,0 +1,35 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset de_AT MONTHS_ABBREV [list \
+ "J\u00e4n"\
+ "Feb"\
+ "M\u00e4r"\
+ "Apr"\
+ "Mai"\
+ "Jun"\
+ "Jul"\
+ "Aug"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dez"\
+ ""]
+ ::msgcat::mcset de_AT MONTHS_FULL [list \
+ "J\u00e4nner"\
+ "Februar"\
+ "M\u00e4rz"\
+ "April"\
+ "Mai"\
+ "Juni"\
+ "Juli"\
+ "August"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Dezember"\
+ ""]
+ ::msgcat::mcset de_AT DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset de_AT TIME_FORMAT "%T"
+ ::msgcat::mcset de_AT TIME_FORMAT_12 "%T"
+ ::msgcat::mcset de_AT DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/de_BE.msg b/library/msgs/de_BE.msg
new file mode 100755
index 0000000..3614763
--- /dev/null
+++ b/library/msgs/de_BE.msg
@@ -0,0 +1,53 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset de_BE DAYS_OF_WEEK_ABBREV [list \
+ "Son"\
+ "Mon"\
+ "Die"\
+ "Mit"\
+ "Don"\
+ "Fre"\
+ "Sam"]
+ ::msgcat::mcset de_BE DAYS_OF_WEEK_FULL [list \
+ "Sonntag"\
+ "Montag"\
+ "Dienstag"\
+ "Mittwoch"\
+ "Donnerstag"\
+ "Freitag"\
+ "Samstag"]
+ ::msgcat::mcset de_BE MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "M\u00e4r"\
+ "Apr"\
+ "Mai"\
+ "Jun"\
+ "Jul"\
+ "Aug"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dez"\
+ ""]
+ ::msgcat::mcset de_BE MONTHS_FULL [list \
+ "Januar"\
+ "Februar"\
+ "M\u00e4rz"\
+ "April"\
+ "Mai"\
+ "Juni"\
+ "Juli"\
+ "August"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Dezember"\
+ ""]
+ ::msgcat::mcset de_BE AM "vorm"
+ ::msgcat::mcset de_BE PM "nachm"
+ ::msgcat::mcset de_BE DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset de_BE TIME_FORMAT "%T"
+ ::msgcat::mcset de_BE TIME_FORMAT_12 "%T"
+ ::msgcat::mcset de_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/el.msg b/library/msgs/el.msg
new file mode 100755
index 0000000..ac19f62
--- /dev/null
+++ b/library/msgs/el.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset el DAYS_OF_WEEK_ABBREV [list \
+ "\u039a\u03c5\u03c1"\
+ "\u0394\u03b5\u03c5"\
+ "\u03a4\u03c1\u03b9"\
+ "\u03a4\u03b5\u03c4"\
+ "\u03a0\u03b5\u03bc"\
+ "\u03a0\u03b1\u03c1"\
+ "\u03a3\u03b1\u03b2"]
+ ::msgcat::mcset el DAYS_OF_WEEK_FULL [list \
+ "\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae"\
+ "\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1"\
+ "\u03a4\u03c1\u03af\u03c4\u03b7"\
+ "\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7"\
+ "\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7"\
+ "\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae"\
+ "\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"]
+ ::msgcat::mcset el MONTHS_ABBREV [list \
+ "\u0399\u03b1\u03bd"\
+ "\u03a6\u03b5\u03b2"\
+ "\u039c\u03b1\u03c1"\
+ "\u0391\u03c0\u03c1"\
+ "\u039c\u03b1\u03ca"\
+ "\u0399\u03bf\u03c5\u03bd"\
+ "\u0399\u03bf\u03c5\u03bb"\
+ "\u0391\u03c5\u03b3"\
+ "\u03a3\u03b5\u03c0"\
+ "\u039f\u03ba\u03c4"\
+ "\u039d\u03bf\u03b5"\
+ "\u0394\u03b5\u03ba"\
+ ""]
+ ::msgcat::mcset el MONTHS_FULL [list \
+ "\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2"\
+ "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2"\
+ "\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2"\
+ "\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2"\
+ "\u039c\u03ac\u03ca\u03bf\u03c2"\
+ "\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2"\
+ "\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2"\
+ "\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2"\
+ "\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\
+ "\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2"\
+ "\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\
+ "\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\
+ ""]
+ ::msgcat::mcset el AM "\u03c0\u03bc"
+ ::msgcat::mcset el PM "\u03bc\u03bc"
+ ::msgcat::mcset el DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset el TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset el DATE_TIME_FORMAT "%e/%m/%Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/en_AU.msg b/library/msgs/en_AU.msg
new file mode 100755
index 0000000..7f9870c
--- /dev/null
+++ b/library/msgs/en_AU.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_AU DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset en_AU TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset en_AU TIME_FORMAT_12 "%I:%M:%S %P %z"
+ ::msgcat::mcset en_AU DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/en_BE.msg b/library/msgs/en_BE.msg
new file mode 100755
index 0000000..5072986
--- /dev/null
+++ b/library/msgs/en_BE.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_BE DATE_FORMAT "%d %b %Y"
+ ::msgcat::mcset en_BE TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset en_BE TIME_FORMAT_12 "%k h %M min %S s %z"
+ ::msgcat::mcset en_BE DATE_TIME_FORMAT "%d %b %Y %k:%M:%S %z"
+}
diff --git a/library/msgs/en_BW.msg b/library/msgs/en_BW.msg
new file mode 100755
index 0000000..8fd20c7
--- /dev/null
+++ b/library/msgs/en_BW.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_BW DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset en_BW TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset en_BW DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/en_CA.msg b/library/msgs/en_CA.msg
new file mode 100755
index 0000000..278efe7
--- /dev/null
+++ b/library/msgs/en_CA.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_CA DATE_FORMAT "%d/%m/%y"
+ ::msgcat::mcset en_CA TIME_FORMAT "%r"
+ ::msgcat::mcset en_CA TIME_FORMAT_12 "%I:%M:%S %p"
+ ::msgcat::mcset en_CA DATE_TIME_FORMAT "%a %d %b %Y %r %z"
+}
diff --git a/library/msgs/en_GB.msg b/library/msgs/en_GB.msg
new file mode 100755
index 0000000..5c61c43
--- /dev/null
+++ b/library/msgs/en_GB.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_GB DATE_FORMAT "%d/%m/%y"
+ ::msgcat::mcset en_GB TIME_FORMAT "%T"
+ ::msgcat::mcset en_GB TIME_FORMAT_12 "%T"
+ ::msgcat::mcset en_GB DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/en_HK.msg b/library/msgs/en_HK.msg
new file mode 100755
index 0000000..8b33bc0
--- /dev/null
+++ b/library/msgs/en_HK.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_HK AM "AM"
+ ::msgcat::mcset en_HK PM "PM"
+ ::msgcat::mcset en_HK DATE_FORMAT "%B %e, %Y"
+ ::msgcat::mcset en_HK TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset en_HK DATE_TIME_FORMAT "%B %e, %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/en_IE.msg b/library/msgs/en_IE.msg
new file mode 100755
index 0000000..ba621cf
--- /dev/null
+++ b/library/msgs/en_IE.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_IE DATE_FORMAT "%d/%m/%y"
+ ::msgcat::mcset en_IE TIME_FORMAT "%T"
+ ::msgcat::mcset en_IE TIME_FORMAT_12 "%T"
+ ::msgcat::mcset en_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/en_IN.msg b/library/msgs/en_IN.msg
new file mode 100755
index 0000000..a1f155d
--- /dev/null
+++ b/library/msgs/en_IN.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_IN AM "AM"
+ ::msgcat::mcset en_IN PM "PM"
+ ::msgcat::mcset en_IN DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset en_IN TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset en_IN DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/en_NZ.msg b/library/msgs/en_NZ.msg
new file mode 100755
index 0000000..b419017
--- /dev/null
+++ b/library/msgs/en_NZ.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_NZ DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset en_NZ TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset en_NZ TIME_FORMAT_12 "%I:%M:%S %P %z"
+ ::msgcat::mcset en_NZ DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/en_PH.msg b/library/msgs/en_PH.msg
new file mode 100755
index 0000000..682666d
--- /dev/null
+++ b/library/msgs/en_PH.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_PH AM "AM"
+ ::msgcat::mcset en_PH PM "PM"
+ ::msgcat::mcset en_PH DATE_FORMAT "%B %e, %Y"
+ ::msgcat::mcset en_PH TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset en_PH DATE_TIME_FORMAT "%B %e, %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/en_SG.msg b/library/msgs/en_SG.msg
new file mode 100755
index 0000000..4dc5b1d
--- /dev/null
+++ b/library/msgs/en_SG.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_SG DATE_FORMAT "%d %b %Y"
+ ::msgcat::mcset en_SG TIME_FORMAT_12 "%P %I:%M:%S"
+ ::msgcat::mcset en_SG DATE_TIME_FORMAT "%d %b %Y %P %I:%M:%S %z"
+}
diff --git a/library/msgs/en_ZA.msg b/library/msgs/en_ZA.msg
new file mode 100755
index 0000000..fe43797
--- /dev/null
+++ b/library/msgs/en_ZA.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_ZA DATE_FORMAT "%Y/%m/%d"
+ ::msgcat::mcset en_ZA TIME_FORMAT_12 "%I:%M:%S"
+ ::msgcat::mcset en_ZA DATE_TIME_FORMAT "%Y/%m/%d %I:%M:%S %z"
+}
diff --git a/library/msgs/en_ZW.msg b/library/msgs/en_ZW.msg
new file mode 100755
index 0000000..2a5804f
--- /dev/null
+++ b/library/msgs/en_ZW.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset en_ZW DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset en_ZW TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset en_ZW DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/eo.msg b/library/msgs/eo.msg
new file mode 100755
index 0000000..1d2a24f
--- /dev/null
+++ b/library/msgs/eo.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset eo DAYS_OF_WEEK_ABBREV [list \
+ "di"\
+ "lu"\
+ "ma"\
+ "me"\
+ "\u0135a"\
+ "ve"\
+ "sa"]
+ ::msgcat::mcset eo DAYS_OF_WEEK_FULL [list \
+ "diman\u0109o"\
+ "lundo"\
+ "mardo"\
+ "merkredo"\
+ "\u0135a\u016ddo"\
+ "vendredo"\
+ "sabato"]
+ ::msgcat::mcset eo MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "maj"\
+ "jun"\
+ "jul"\
+ "a\u016dg"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset eo MONTHS_FULL [list \
+ "januaro"\
+ "februaro"\
+ "marto"\
+ "aprilo"\
+ "majo"\
+ "junio"\
+ "julio"\
+ "a\u016dgusto"\
+ "septembro"\
+ "oktobro"\
+ "novembro"\
+ "decembro"\
+ ""]
+ ::msgcat::mcset eo BCE "aK"
+ ::msgcat::mcset eo CE "pK"
+ ::msgcat::mcset eo AM "atm"
+ ::msgcat::mcset eo PM "ptm"
+ ::msgcat::mcset eo DATE_FORMAT "%Y-%b-%d"
+ ::msgcat::mcset eo TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset eo DATE_TIME_FORMAT "%Y-%b-%d %H:%M:%S %z"
+}
diff --git a/library/msgs/es.msg b/library/msgs/es.msg
new file mode 100755
index 0000000..a24f0a1
--- /dev/null
+++ b/library/msgs/es.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es DAYS_OF_WEEK_ABBREV [list \
+ "dom"\
+ "lun"\
+ "mar"\
+ "mi\u00e9"\
+ "jue"\
+ "vie"\
+ "s\u00e1b"]
+ ::msgcat::mcset es DAYS_OF_WEEK_FULL [list \
+ "domingo"\
+ "lunes"\
+ "martes"\
+ "mi\u00e9rcoles"\
+ "jueves"\
+ "viernes"\
+ "s\u00e1bado"]
+ ::msgcat::mcset es MONTHS_ABBREV [list \
+ "ene"\
+ "feb"\
+ "mar"\
+ "abr"\
+ "may"\
+ "jun"\
+ "jul"\
+ "ago"\
+ "sep"\
+ "oct"\
+ "nov"\
+ "dic"\
+ ""]
+ ::msgcat::mcset es MONTHS_FULL [list \
+ "enero"\
+ "febrero"\
+ "marzo"\
+ "abril"\
+ "mayo"\
+ "junio"\
+ "julio"\
+ "agosto"\
+ "septiembre"\
+ "octubre"\
+ "noviembre"\
+ "diciembre"\
+ ""]
+ ::msgcat::mcset es BCE "a.C."
+ ::msgcat::mcset es CE "d.C."
+ ::msgcat::mcset es DATE_FORMAT "%e de %B de %Y"
+ ::msgcat::mcset es TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset es DATE_TIME_FORMAT "%e de %B de %Y %k:%M:%S %z"
+}
diff --git a/library/msgs/es_AR.msg b/library/msgs/es_AR.msg
new file mode 100755
index 0000000..7d35027
--- /dev/null
+++ b/library/msgs/es_AR.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_AR DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_AR TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset es_AR DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/es_BO.msg b/library/msgs/es_BO.msg
new file mode 100755
index 0000000..498ad0d
--- /dev/null
+++ b/library/msgs/es_BO.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_BO DATE_FORMAT "%d-%m-%Y"
+ ::msgcat::mcset es_BO TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_BO DATE_TIME_FORMAT "%d-%m-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_CL.msg b/library/msgs/es_CL.msg
new file mode 100755
index 0000000..31d465c
--- /dev/null
+++ b/library/msgs/es_CL.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_CL DATE_FORMAT "%d-%m-%Y"
+ ::msgcat::mcset es_CL TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_CL DATE_TIME_FORMAT "%d-%m-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_CO.msg b/library/msgs/es_CO.msg
new file mode 100755
index 0000000..77e57f0
--- /dev/null
+++ b/library/msgs/es_CO.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_CO DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset es_CO TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_CO DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_CR.msg b/library/msgs/es_CR.msg
new file mode 100755
index 0000000..7a652fa
--- /dev/null
+++ b/library/msgs/es_CR.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_CR DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_CR TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_CR DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_DO.msg b/library/msgs/es_DO.msg
new file mode 100755
index 0000000..0e283da
--- /dev/null
+++ b/library/msgs/es_DO.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_DO DATE_FORMAT "%m/%d/%Y"
+ ::msgcat::mcset es_DO TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_DO DATE_TIME_FORMAT "%m/%d/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_EC.msg b/library/msgs/es_EC.msg
new file mode 100755
index 0000000..9e921e0
--- /dev/null
+++ b/library/msgs/es_EC.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_EC DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_EC TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_EC DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_GT.msg b/library/msgs/es_GT.msg
new file mode 100755
index 0000000..ecd6faf
--- /dev/null
+++ b/library/msgs/es_GT.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_GT DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset es_GT TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_GT DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_HN.msg b/library/msgs/es_HN.msg
new file mode 100755
index 0000000..a758ca2
--- /dev/null
+++ b/library/msgs/es_HN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_HN DATE_FORMAT "%m-%d-%Y"
+ ::msgcat::mcset es_HN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_HN DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_MX.msg b/library/msgs/es_MX.msg
new file mode 100755
index 0000000..7cfb545
--- /dev/null
+++ b/library/msgs/es_MX.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_MX DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset es_MX TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_MX DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_NI.msg b/library/msgs/es_NI.msg
new file mode 100755
index 0000000..7c39495
--- /dev/null
+++ b/library/msgs/es_NI.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_NI DATE_FORMAT "%m-%d-%Y"
+ ::msgcat::mcset es_NI TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_NI DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_PA.msg b/library/msgs/es_PA.msg
new file mode 100755
index 0000000..cecacdc
--- /dev/null
+++ b/library/msgs/es_PA.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_PA DATE_FORMAT "%m/%d/%Y"
+ ::msgcat::mcset es_PA TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_PA DATE_TIME_FORMAT "%m/%d/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_PE.msg b/library/msgs/es_PE.msg
new file mode 100755
index 0000000..9f90595
--- /dev/null
+++ b/library/msgs/es_PE.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_PE DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_PE TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_PE DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_PR.msg b/library/msgs/es_PR.msg
new file mode 100755
index 0000000..8511b12
--- /dev/null
+++ b/library/msgs/es_PR.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_PR DATE_FORMAT "%m-%d-%Y"
+ ::msgcat::mcset es_PR TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_PR DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_PY.msg b/library/msgs/es_PY.msg
new file mode 100755
index 0000000..aa93d36
--- /dev/null
+++ b/library/msgs/es_PY.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_PY DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_PY TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_PY DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_SV.msg b/library/msgs/es_SV.msg
new file mode 100755
index 0000000..fc7954d
--- /dev/null
+++ b/library/msgs/es_SV.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_SV DATE_FORMAT "%m-%d-%Y"
+ ::msgcat::mcset es_SV TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_SV DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_UY.msg b/library/msgs/es_UY.msg
new file mode 100755
index 0000000..b33525c
--- /dev/null
+++ b/library/msgs/es_UY.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_UY DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_UY TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_UY DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/es_VE.msg b/library/msgs/es_VE.msg
new file mode 100755
index 0000000..7c2a7b0
--- /dev/null
+++ b/library/msgs/es_VE.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset es_VE DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset es_VE TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset es_VE DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/et.msg b/library/msgs/et.msg
new file mode 100755
index 0000000..8d32e9e
--- /dev/null
+++ b/library/msgs/et.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset et DAYS_OF_WEEK_ABBREV [list \
+ "P"\
+ "E"\
+ "T"\
+ "K"\
+ "N"\
+ "R"\
+ "L"]
+ ::msgcat::mcset et DAYS_OF_WEEK_FULL [list \
+ "p\u00fchap\u00e4ev"\
+ "esmasp\u00e4ev"\
+ "teisip\u00e4ev"\
+ "kolmap\u00e4ev"\
+ "neljap\u00e4ev"\
+ "reede"\
+ "laup\u00e4ev"]
+ ::msgcat::mcset et MONTHS_ABBREV [list \
+ "Jaan"\
+ "Veebr"\
+ "M\u00e4rts"\
+ "Apr"\
+ "Mai"\
+ "Juuni"\
+ "Juuli"\
+ "Aug"\
+ "Sept"\
+ "Okt"\
+ "Nov"\
+ "Dets"\
+ ""]
+ ::msgcat::mcset et MONTHS_FULL [list \
+ "Jaanuar"\
+ "Veebruar"\
+ "M\u00e4rts"\
+ "Aprill"\
+ "Mai"\
+ "Juuni"\
+ "Juuli"\
+ "August"\
+ "September"\
+ "Oktoober"\
+ "November"\
+ "Detsember"\
+ ""]
+ ::msgcat::mcset et BCE "e.m.a."
+ ::msgcat::mcset et CE "m.a.j."
+ ::msgcat::mcset et DATE_FORMAT "%e-%m-%Y"
+ ::msgcat::mcset et TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset et DATE_TIME_FORMAT "%e-%m-%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/eu.msg b/library/msgs/eu.msg
new file mode 100755
index 0000000..cf708b6
--- /dev/null
+++ b/library/msgs/eu.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset eu DAYS_OF_WEEK_ABBREV [list \
+ "igandea"\
+ "astelehena"\
+ "asteartea"\
+ "asteazkena"\
+ "osteguna"\
+ "ostirala"\
+ "larunbata"]
+ ::msgcat::mcset eu DAYS_OF_WEEK_FULL [list \
+ "igandea"\
+ "astelehena"\
+ "asteartea"\
+ "asteazkena"\
+ "osteguna"\
+ "ostirala"\
+ "larunbata"]
+ ::msgcat::mcset eu MONTHS_ABBREV [list \
+ "urt"\
+ "ots"\
+ "mar"\
+ "api"\
+ "mai"\
+ "eka"\
+ "uzt"\
+ "abu"\
+ "ira"\
+ "urr"\
+ "aza"\
+ "abe"\
+ ""]
+ ::msgcat::mcset eu MONTHS_FULL [list \
+ "urtarrila"\
+ "otsaila"\
+ "martxoa"\
+ "apirila"\
+ "maiatza"\
+ "ekaina"\
+ "uztaila"\
+ "abuztua"\
+ "iraila"\
+ "urria"\
+ "azaroa"\
+ "abendua"\
+ ""]
+}
diff --git a/library/msgs/eu_ES.msg b/library/msgs/eu_ES.msg
new file mode 100755
index 0000000..2694418
--- /dev/null
+++ b/library/msgs/eu_ES.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset eu_ES DATE_FORMAT "%a, %Yeko %bren %da"
+ ::msgcat::mcset eu_ES TIME_FORMAT "%T"
+ ::msgcat::mcset eu_ES TIME_FORMAT_12 "%T"
+ ::msgcat::mcset eu_ES DATE_TIME_FORMAT "%y-%m-%d %T %z"
+}
diff --git a/library/msgs/fa.msg b/library/msgs/fa.msg
new file mode 100755
index 0000000..89b2f90
--- /dev/null
+++ b/library/msgs/fa.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fa DAYS_OF_WEEK_ABBREV [list \
+ "\u06cc\u2214"\
+ "\u062f\u2214"\
+ "\u0633\u2214"\
+ "\u0686\u2214"\
+ "\u067e\u2214"\
+ "\u062c\u2214"\
+ "\u0634\u2214"]
+ ::msgcat::mcset fa DAYS_OF_WEEK_FULL [list \
+ "\u06cc\u06cc\u200c\u0634\u0646\u0628\u0647"\
+ "\u062f\u0648\u0634\u0646\u0628\u0647"\
+ "\u0633\u0647\u200c\u0634\u0646\u0628\u0647"\
+ "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647"\
+ "\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647"\
+ "\u062c\u0645\u0639\u0647"\
+ "\u0634\u0646\u0628\u0647"]
+ ::msgcat::mcset fa MONTHS_ABBREV [list \
+ "\u0698\u0627\u0646"\
+ "\u0641\u0648\u0631"\
+ "\u0645\u0627\u0631"\
+ "\u0622\u0648\u0631"\
+ "\u0645\u0640\u0647"\
+ "\u0698\u0648\u0646"\
+ "\u0698\u0648\u06cc"\
+ "\u0627\u0648\u062a"\
+ "\u0633\u067e\u062a"\
+ "\u0627\u0643\u062a"\
+ "\u0646\u0648\u0627"\
+ "\u062f\u0633\u0627"\
+ ""]
+ ::msgcat::mcset fa MONTHS_FULL [list \
+ "\u0698\u0627\u0646\u0648\u06cc\u0647"\
+ "\u0641\u0648\u0631\u0648\u06cc\u0647"\
+ "\u0645\u0627\u0631\u0633"\
+ "\u0622\u0648\u0631\u06cc\u0644"\
+ "\u0645\u0647"\
+ "\u0698\u0648\u0626\u0646"\
+ "\u0698\u0648\u0626\u06cc\u0647"\
+ "\u0627\u0648\u062a"\
+ "\u0633\u067e\u062a\u0627\u0645\u0628\u0631"\
+ "\u0627\u0643\u062a\u0628\u0631"\
+ "\u0646\u0648\u0627\u0645\u0628\u0631"\
+ "\u062f\u0633\u0627\u0645\u0628\u0631"\
+ ""]
+}
diff --git a/library/msgs/fa_IN.msg b/library/msgs/fa_IN.msg
new file mode 100755
index 0000000..adc9e91
--- /dev/null
+++ b/library/msgs/fa_IN.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fa_IN DAYS_OF_WEEK_ABBREV [list \
+ "\u06cc\u2214"\
+ "\u062f\u2214"\
+ "\u0633\u2214"\
+ "\u0686\u2214"\
+ "\u067e\u2214"\
+ "\u062c\u2214"\
+ "\u0634\u2214"]
+ ::msgcat::mcset fa_IN DAYS_OF_WEEK_FULL [list \
+ "\u06cc\u06cc\u200c\u0634\u0646\u0628\u0647"\
+ "\u062f\u0648\u0634\u0646\u0628\u0647"\
+ "\u0633\u0647\u200c\u0634\u0646\u0628\u0647"\
+ "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647"\
+ "\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647"\
+ "\u062c\u0645\u0639\u0647"\
+ "\u0634\u0646\u0628\u0647"]
+ ::msgcat::mcset fa_IN MONTHS_ABBREV [list \
+ "\u0698\u0627\u0646"\
+ "\u0641\u0648\u0631"\
+ "\u0645\u0627\u0631"\
+ "\u0622\u0648\u0631"\
+ "\u0645\u0640\u0647"\
+ "\u0698\u0648\u0646"\
+ "\u0698\u0648\u06cc"\
+ "\u0627\u0648\u062a"\
+ "\u0633\u067e\u062a"\
+ "\u0627\u0643\u062a"\
+ "\u0646\u0648\u0627"\
+ "\u062f\u0633\u0627"\
+ ""]
+ ::msgcat::mcset fa_IN MONTHS_FULL [list \
+ "\u0698\u0627\u0646\u0648\u06cc\u0647"\
+ "\u0641\u0648\u0631\u0648\u06cc\u0647"\
+ "\u0645\u0627\u0631\u0633"\
+ "\u0622\u0648\u0631\u06cc\u0644"\
+ "\u0645\u0647"\
+ "\u0698\u0648\u0626\u0646"\
+ "\u0698\u0648\u0626\u06cc\u0647"\
+ "\u0627\u0648\u062a"\
+ "\u0633\u067e\u062a\u0627\u0645\u0628\u0631"\
+ "\u0627\u0643\u062a\u0628\u0631"\
+ "\u0646\u0648\u0627\u0645\u0628\u0631"\
+ "\u062f\u0633\u0627\u0645\u0628\u0631"\
+ ""]
+ ::msgcat::mcset fa_IN AM "\u0635\u0628\u062d"
+ ::msgcat::mcset fa_IN PM "\u0639\u0635\u0631"
+ ::msgcat::mcset fa_IN DATE_FORMAT "%A %d %B %Y"
+ ::msgcat::mcset fa_IN TIME_FORMAT_12 "%I:%M:%S %z"
+ ::msgcat::mcset fa_IN DATE_TIME_FORMAT "%A %d %B %Y %I:%M:%S %z %z"
+}
diff --git a/library/msgs/fa_IR.msg b/library/msgs/fa_IR.msg
new file mode 100755
index 0000000..597ce9d
--- /dev/null
+++ b/library/msgs/fa_IR.msg
@@ -0,0 +1,9 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fa_IR AM "\u0635\u0628\u062d"
+ ::msgcat::mcset fa_IR PM "\u0639\u0635\u0631"
+ ::msgcat::mcset fa_IR DATE_FORMAT "%d\u2044%m\u2044%Y"
+ ::msgcat::mcset fa_IR TIME_FORMAT "%S:%M:%H"
+ ::msgcat::mcset fa_IR TIME_FORMAT_12 "%S:%M:%l %P"
+ ::msgcat::mcset fa_IR DATE_TIME_FORMAT "%d\u2044%m\u2044%Y %S:%M:%H %z"
+}
diff --git a/library/msgs/fi.msg b/library/msgs/fi.msg
new file mode 100755
index 0000000..acabba0
--- /dev/null
+++ b/library/msgs/fi.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fi DAYS_OF_WEEK_ABBREV [list \
+ "su"\
+ "ma"\
+ "ti"\
+ "ke"\
+ "to"\
+ "pe"\
+ "la"]
+ ::msgcat::mcset fi DAYS_OF_WEEK_FULL [list \
+ "sunnuntai"\
+ "maanantai"\
+ "tiistai"\
+ "keskiviikko"\
+ "torstai"\
+ "perjantai"\
+ "lauantai"]
+ ::msgcat::mcset fi MONTHS_ABBREV [list \
+ "tammi"\
+ "helmi"\
+ "maalis"\
+ "huhti"\
+ "touko"\
+ "kes\u00e4"\
+ "hein\u00e4"\
+ "elo"\
+ "syys"\
+ "loka"\
+ "marras"\
+ "joulu"\
+ ""]
+ ::msgcat::mcset fi MONTHS_FULL [list \
+ "tammikuu"\
+ "helmikuu"\
+ "maaliskuu"\
+ "huhtikuu"\
+ "toukokuu"\
+ "kes\u00e4kuu"\
+ "hein\u00e4kuu"\
+ "elokuu"\
+ "syyskuu"\
+ "lokakuu"\
+ "marraskuu"\
+ "joulukuu"\
+ ""]
+ ::msgcat::mcset fi DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset fi TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset fi DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/fo.msg b/library/msgs/fo.msg
new file mode 100755
index 0000000..4696e62
--- /dev/null
+++ b/library/msgs/fo.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fo DAYS_OF_WEEK_ABBREV [list \
+ "sun"\
+ "m\u00e1n"\
+ "t\u00fds"\
+ "mik"\
+ "h\u00f3s"\
+ "fr\u00ed"\
+ "ley"]
+ ::msgcat::mcset fo DAYS_OF_WEEK_FULL [list \
+ "sunnudagur"\
+ "m\u00e1nadagur"\
+ "t\u00fdsdagur"\
+ "mikudagur"\
+ "h\u00f3sdagur"\
+ "fr\u00edggjadagur"\
+ "leygardagur"]
+ ::msgcat::mcset fo MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "mai"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "des"\
+ ""]
+ ::msgcat::mcset fo MONTHS_FULL [list \
+ "januar"\
+ "februar"\
+ "mars"\
+ "apr\u00edl"\
+ "mai"\
+ "juni"\
+ "juli"\
+ "august"\
+ "september"\
+ "oktober"\
+ "november"\
+ "desember"\
+ ""]
+}
diff --git a/library/msgs/fo_FO.msg b/library/msgs/fo_FO.msg
new file mode 100755
index 0000000..2392b8e
--- /dev/null
+++ b/library/msgs/fo_FO.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fo_FO DATE_FORMAT "%d/%m-%Y"
+ ::msgcat::mcset fo_FO TIME_FORMAT "%T"
+ ::msgcat::mcset fo_FO TIME_FORMAT_12 "%T"
+ ::msgcat::mcset fo_FO DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/fr.msg b/library/msgs/fr.msg
new file mode 100755
index 0000000..55b19bf
--- /dev/null
+++ b/library/msgs/fr.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fr DAYS_OF_WEEK_ABBREV [list \
+ "dim."\
+ "lun."\
+ "mar."\
+ "mer."\
+ "jeu."\
+ "ven."\
+ "sam."]
+ ::msgcat::mcset fr DAYS_OF_WEEK_FULL [list \
+ "dimanche"\
+ "lundi"\
+ "mardi"\
+ "mercredi"\
+ "jeudi"\
+ "vendredi"\
+ "samedi"]
+ ::msgcat::mcset fr MONTHS_ABBREV [list \
+ "janv."\
+ "f\u00e9vr."\
+ "mars"\
+ "avr."\
+ "mai"\
+ "juin"\
+ "juil."\
+ "ao\u00fbt"\
+ "sept."\
+ "oct."\
+ "nov."\
+ "d\u00e9c."\
+ ""]
+ ::msgcat::mcset fr MONTHS_FULL [list \
+ "janvier"\
+ "f\u00e9vrier"\
+ "mars"\
+ "avril"\
+ "mai"\
+ "juin"\
+ "juillet"\
+ "ao\u00fbt"\
+ "septembre"\
+ "octobre"\
+ "novembre"\
+ "d\u00e9cembre"\
+ ""]
+ ::msgcat::mcset fr BCE "av. J.-C."
+ ::msgcat::mcset fr CE "ap. J.-C."
+ ::msgcat::mcset fr DATE_FORMAT "%e %B %Y"
+ ::msgcat::mcset fr TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset fr DATE_TIME_FORMAT "%e %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/fr_BE.msg b/library/msgs/fr_BE.msg
new file mode 100755
index 0000000..cdb13bd
--- /dev/null
+++ b/library/msgs/fr_BE.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fr_BE DATE_FORMAT "%d/%m/%y"
+ ::msgcat::mcset fr_BE TIME_FORMAT "%T"
+ ::msgcat::mcset fr_BE TIME_FORMAT_12 "%T"
+ ::msgcat::mcset fr_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/fr_CA.msg b/library/msgs/fr_CA.msg
new file mode 100755
index 0000000..00ccfff
--- /dev/null
+++ b/library/msgs/fr_CA.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fr_CA DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset fr_CA TIME_FORMAT "%T"
+ ::msgcat::mcset fr_CA TIME_FORMAT_12 "%T"
+ ::msgcat::mcset fr_CA DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/fr_CH.msg b/library/msgs/fr_CH.msg
new file mode 100755
index 0000000..7e2bac7
--- /dev/null
+++ b/library/msgs/fr_CH.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset fr_CH DATE_FORMAT "%d. %m. %y"
+ ::msgcat::mcset fr_CH TIME_FORMAT "%T"
+ ::msgcat::mcset fr_CH TIME_FORMAT_12 "%T"
+ ::msgcat::mcset fr_CH DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/ga.msg b/library/msgs/ga.msg
new file mode 100755
index 0000000..6edf13a
--- /dev/null
+++ b/library/msgs/ga.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ga DAYS_OF_WEEK_ABBREV [list \
+ "Domh"\
+ "Luan"\
+ "M\u00e1irt"\
+ "C\u00e9ad"\
+ "D\u00e9ar"\
+ "Aoine"\
+ "Sath"]
+ ::msgcat::mcset ga DAYS_OF_WEEK_FULL [list \
+ "D\u00e9 Domhnaigh"\
+ "D\u00e9 Luain"\
+ "D\u00e9 M\u00e1irt"\
+ "D\u00e9 C\u00e9adaoin"\
+ "D\u00e9ardaoin"\
+ "D\u00e9 hAoine"\
+ "D\u00e9 Sathairn"]
+ ::msgcat::mcset ga MONTHS_ABBREV [list \
+ "Ean"\
+ "Feabh"\
+ "M\u00e1rta"\
+ "Aib"\
+ "Beal"\
+ "Meith"\
+ "I\u00fail"\
+ "L\u00fan"\
+ "MF\u00f3mh"\
+ "DF\u00f3mh"\
+ "Samh"\
+ "Noll"\
+ ""]
+ ::msgcat::mcset ga MONTHS_FULL [list \
+ "Ean\u00e1ir"\
+ "Feabhra"\
+ "M\u00e1rta"\
+ "Aibre\u00e1n"\
+ "M\u00ed na Bealtaine"\
+ "Meith"\
+ "I\u00fail"\
+ "L\u00fanasa"\
+ "Me\u00e1n F\u00f3mhair"\
+ "Deireadh F\u00f3mhair"\
+ "M\u00ed na Samhna"\
+ "M\u00ed na Nollag"\
+ ""]
+}
diff --git a/library/msgs/ga_IE.msg b/library/msgs/ga_IE.msg
new file mode 100755
index 0000000..b6acbbc
--- /dev/null
+++ b/library/msgs/ga_IE.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ga_IE DATE_FORMAT "%d.%m.%y"
+ ::msgcat::mcset ga_IE TIME_FORMAT "%T"
+ ::msgcat::mcset ga_IE TIME_FORMAT_12 "%T"
+ ::msgcat::mcset ga_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/gl.msg b/library/msgs/gl.msg
new file mode 100755
index 0000000..4b869e8
--- /dev/null
+++ b/library/msgs/gl.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset gl DAYS_OF_WEEK_ABBREV [list \
+ "Dom"\
+ "Lun"\
+ "Mar"\
+ "M\u00e9r"\
+ "Xov"\
+ "Ven"\
+ "S\u00e1b"]
+ ::msgcat::mcset gl DAYS_OF_WEEK_FULL [list \
+ "Domingo"\
+ "Luns"\
+ "Martes"\
+ "M\u00e9rcores"\
+ "Xoves"\
+ "Venres"\
+ "S\u00e1bado"]
+ ::msgcat::mcset gl MONTHS_ABBREV [list \
+ "Xan"\
+ "Feb"\
+ "Mar"\
+ "Abr"\
+ "Mai"\
+ "Xu\u00f1"\
+ "Xul"\
+ "Ago"\
+ "Set"\
+ "Out"\
+ "Nov"\
+ "Dec"\
+ ""]
+ ::msgcat::mcset gl MONTHS_FULL [list \
+ "Xaneiro"\
+ "Febreiro"\
+ "Marzo"\
+ "Abril"\
+ "Maio"\
+ "Xu\u00f1o"\
+ "Xullo"\
+ "Agosto"\
+ "Setembro"\
+ "Outubro"\
+ "Novembro"\
+ "Decembro"\
+ ""]
+}
diff --git a/library/msgs/gl_ES.msg b/library/msgs/gl_ES.msg
new file mode 100755
index 0000000..d4ed270
--- /dev/null
+++ b/library/msgs/gl_ES.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset gl_ES DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset gl_ES TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset gl_ES DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/gv.msg b/library/msgs/gv.msg
new file mode 100755
index 0000000..7d332ad
--- /dev/null
+++ b/library/msgs/gv.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset gv DAYS_OF_WEEK_ABBREV [list \
+ "Jed"\
+ "Jel"\
+ "Jem"\
+ "Jerc"\
+ "Jerd"\
+ "Jeh"\
+ "Jes"]
+ ::msgcat::mcset gv DAYS_OF_WEEK_FULL [list \
+ "Jedoonee"\
+ "Jelhein"\
+ "Jemayrt"\
+ "Jercean"\
+ "Jerdein"\
+ "Jeheiney"\
+ "Jesarn"]
+ ::msgcat::mcset gv MONTHS_ABBREV [list \
+ "J-guer"\
+ "T-arree"\
+ "Mayrnt"\
+ "Avrril"\
+ "Boaldyn"\
+ "M-souree"\
+ "J-souree"\
+ "Luanistyn"\
+ "M-fouyir"\
+ "J-fouyir"\
+ "M.Houney"\
+ "M.Nollick"\
+ ""]
+ ::msgcat::mcset gv MONTHS_FULL [list \
+ "Jerrey-geuree"\
+ "Toshiaght-arree"\
+ "Mayrnt"\
+ "Averil"\
+ "Boaldyn"\
+ "Mean-souree"\
+ "Jerrey-souree"\
+ "Luanistyn"\
+ "Mean-fouyir"\
+ "Jerrey-fouyir"\
+ "Mee Houney"\
+ "Mee ny Nollick"\
+ ""]
+}
diff --git a/library/msgs/gv_GB.msg b/library/msgs/gv_GB.msg
new file mode 100755
index 0000000..5e96e6f
--- /dev/null
+++ b/library/msgs/gv_GB.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset gv_GB DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset gv_GB TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset gv_GB DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/he.msg b/library/msgs/he.msg
new file mode 100755
index 0000000..52a94e2
--- /dev/null
+++ b/library/msgs/he.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset he DAYS_OF_WEEK_ABBREV [list \
+ "\u05d0"\
+ "\u05d1"\
+ "\u05d2"\
+ "\u05d3"\
+ "\u05d4"\
+ "\u05d5"\
+ "\u05e9"]
+ ::msgcat::mcset he DAYS_OF_WEEK_FULL [list \
+ "\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df"\
+ "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9"\
+ "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9"\
+ "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9"\
+ "\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9"\
+ "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9"\
+ "\u05e9\u05d1\u05ea"]
+ ::msgcat::mcset he MONTHS_ABBREV [list \
+ "\u05d9\u05e0\u05d5"\
+ "\u05e4\u05d1\u05e8"\
+ "\u05de\u05e8\u05e5"\
+ "\u05d0\u05e4\u05e8"\
+ "\u05de\u05d0\u05d9"\
+ "\u05d9\u05d5\u05e0"\
+ "\u05d9\u05d5\u05dc"\
+ "\u05d0\u05d5\u05d2"\
+ "\u05e1\u05e4\u05d8"\
+ "\u05d0\u05d5\u05e7"\
+ "\u05e0\u05d5\u05d1"\
+ "\u05d3\u05e6\u05de"\
+ ""]
+ ::msgcat::mcset he MONTHS_FULL [list \
+ "\u05d9\u05e0\u05d5\u05d0\u05e8"\
+ "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8"\
+ "\u05de\u05e8\u05e5"\
+ "\u05d0\u05e4\u05e8\u05d9\u05dc"\
+ "\u05de\u05d0\u05d9"\
+ "\u05d9\u05d5\u05e0\u05d9"\
+ "\u05d9\u05d5\u05dc\u05d9"\
+ "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8"\
+ "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8"\
+ "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8"\
+ "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8"\
+ "\u05d3\u05e6\u05de\u05d1\u05e8"\
+ ""]
+ ::msgcat::mcset he BCE "\u05dc\u05e1\u05d4"\u05e0"
+ ::msgcat::mcset he CE "\u05dc\u05e4\u05e1\u05d4"\u05e0"
+ ::msgcat::mcset he DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset he TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset he DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/hi.msg b/library/msgs/hi.msg
new file mode 100755
index 0000000..50c9fb8
--- /dev/null
+++ b/library/msgs/hi.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset hi DAYS_OF_WEEK_FULL [list \
+ "\u0930\u0935\u093f\u0935\u093e\u0930"\
+ "\u0938\u094b\u092e\u0935\u093e\u0930"\
+ "\u092e\u0902\u0917\u0932\u0935\u093e\u0930"\
+ "\u092c\u0941\u0927\u0935\u093e\u0930"\
+ "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\
+ "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\
+ "\u0936\u0928\u093f\u0935\u093e\u0930"]
+ ::msgcat::mcset hi MONTHS_ABBREV [list \
+ "\u091c\u0928\u0935\u0930\u0940"\
+ "\u092b\u093c\u0930\u0935\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u0905\u092a\u094d\u0930\u0947\u0932"\
+ "\u092e\u0908"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u093e\u0908"\
+ "\u0905\u0917\u0938\u094d\u0924"\
+ "\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\
+ "\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\
+ "\u0928\u0935\u092e\u094d\u092c\u0930"\
+ "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"]
+ ::msgcat::mcset hi MONTHS_FULL [list \
+ "\u091c\u0928\u0935\u0930\u0940"\
+ "\u092b\u093c\u0930\u0935\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u0905\u092a\u094d\u0930\u0947\u0932"\
+ "\u092e\u0908"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u093e\u0908"\
+ "\u0905\u0917\u0938\u094d\u0924"\
+ "\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\
+ "\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\
+ "\u0928\u0935\u092e\u094d\u092c\u0930"\
+ "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"]
+ ::msgcat::mcset hi AM "\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935"
+ ::msgcat::mcset hi PM "."
+}
diff --git a/library/msgs/hi_IN.msg b/library/msgs/hi_IN.msg
new file mode 100755
index 0000000..239793f
--- /dev/null
+++ b/library/msgs/hi_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset hi_IN DATE_FORMAT "%d %M %Y"
+ ::msgcat::mcset hi_IN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset hi_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/hr.msg b/library/msgs/hr.msg
new file mode 100755
index 0000000..cec145b
--- /dev/null
+++ b/library/msgs/hr.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset hr DAYS_OF_WEEK_ABBREV [list \
+ "ned"\
+ "pon"\
+ "uto"\
+ "sri"\
+ "\u010det"\
+ "pet"\
+ "sub"]
+ ::msgcat::mcset hr DAYS_OF_WEEK_FULL [list \
+ "nedjelja"\
+ "ponedjeljak"\
+ "utorak"\
+ "srijeda"\
+ "\u010detvrtak"\
+ "petak"\
+ "subota"]
+ ::msgcat::mcset hr MONTHS_ABBREV [list \
+ "sij"\
+ "vel"\
+ "o\u017eu"\
+ "tra"\
+ "svi"\
+ "lip"\
+ "srp"\
+ "kol"\
+ "ruj"\
+ "lis"\
+ "stu"\
+ "pro"\
+ ""]
+ ::msgcat::mcset hr MONTHS_FULL [list \
+ "sije\u010danj"\
+ "velja\u010da"\
+ "o\u017eujak"\
+ "travanj"\
+ "svibanj"\
+ "lipanj"\
+ "srpanj"\
+ "kolovoz"\
+ "rujan"\
+ "listopad"\
+ "studeni"\
+ "prosinac"\
+ ""]
+ ::msgcat::mcset hr DATE_FORMAT "%Y.%m.%d"
+ ::msgcat::mcset hr TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset hr DATE_TIME_FORMAT "%Y.%m.%d %H:%M:%S %z"
+}
diff --git a/library/msgs/hu.msg b/library/msgs/hu.msg
new file mode 100755
index 0000000..e5e68d9
--- /dev/null
+++ b/library/msgs/hu.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset hu DAYS_OF_WEEK_ABBREV [list \
+ "V"\
+ "H"\
+ "K"\
+ "Sze"\
+ "Cs"\
+ "P"\
+ "Szo"]
+ ::msgcat::mcset hu DAYS_OF_WEEK_FULL [list \
+ "vas\u00e1rnap"\
+ "h\u00e9tf\u0151"\
+ "kedd"\
+ "szerda"\
+ "cs\u00fct\u00f6rt\u00f6k"\
+ "p\u00e9ntek"\
+ "szombat"]
+ ::msgcat::mcset hu MONTHS_ABBREV [list \
+ "jan."\
+ "febr."\
+ "m\u00e1rc."\
+ "\u00e1pr."\
+ "m\u00e1j."\
+ "j\u00fan."\
+ "j\u00fal."\
+ "aug."\
+ "szept."\
+ "okt."\
+ "nov."\
+ "dec."\
+ ""]
+ ::msgcat::mcset hu MONTHS_FULL [list \
+ "janu\u00e1r"\
+ "febru\u00e1r"\
+ "m\u00e1rcius"\
+ "\u00e1prilis"\
+ "m\u00e1jus"\
+ "j\u00fanius"\
+ "j\u00falius"\
+ "augusztus"\
+ "szeptember"\
+ "okt\u00f3ber"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset hu BCE "i.e."
+ ::msgcat::mcset hu CE "i.u."
+ ::msgcat::mcset hu AM "DE"
+ ::msgcat::mcset hu PM "DU"
+ ::msgcat::mcset hu DATE_FORMAT "%Y.%m.%d."
+ ::msgcat::mcset hu TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset hu DATE_TIME_FORMAT "%Y.%m.%d. %k:%M:%S %z"
+}
diff --git a/library/msgs/id.msg b/library/msgs/id.msg
new file mode 100755
index 0000000..17c6bb5
--- /dev/null
+++ b/library/msgs/id.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset id DAYS_OF_WEEK_ABBREV [list \
+ "Min"\
+ "Sen"\
+ "Sel"\
+ "Rab"\
+ "Kam"\
+ "Jum"\
+ "Sab"]
+ ::msgcat::mcset id DAYS_OF_WEEK_FULL [list \
+ "Minggu"\
+ "Senin"\
+ "Selasa"\
+ "Rabu"\
+ "Kamis"\
+ "Jumat"\
+ "Sabtu"]
+ ::msgcat::mcset id MONTHS_ABBREV [list \
+ "Jan"\
+ "Peb"\
+ "Mar"\
+ "Apr"\
+ "Mei"\
+ "Jun"\
+ "Jul"\
+ "Agu"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Des"\
+ ""]
+ ::msgcat::mcset id MONTHS_FULL [list \
+ "Januari"\
+ "Pebruari"\
+ "Maret"\
+ "April"\
+ "Mei"\
+ "Juni"\
+ "Juli"\
+ "Agustus"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Desember"\
+ ""]
+}
diff --git a/library/msgs/id_ID.msg b/library/msgs/id_ID.msg
new file mode 100755
index 0000000..bb672c1
--- /dev/null
+++ b/library/msgs/id_ID.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset id_ID DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset id_ID TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset id_ID DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/is.msg b/library/msgs/is.msg
new file mode 100755
index 0000000..adc2d2a
--- /dev/null
+++ b/library/msgs/is.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset is DAYS_OF_WEEK_ABBREV [list \
+ "sun."\
+ "m\u00e1n."\
+ "\u00feri."\
+ "mi\u00f0."\
+ "fim."\
+ "f\u00f6s."\
+ "lau."]
+ ::msgcat::mcset is DAYS_OF_WEEK_FULL [list \
+ "sunnudagur"\
+ "m\u00e1nudagur"\
+ "\u00feri\u00f0judagur"\
+ "mi\u00f0vikudagur"\
+ "fimmtudagur"\
+ "f\u00f6studagur"\
+ "laugardagur"]
+ ::msgcat::mcset is MONTHS_ABBREV [list \
+ "jan."\
+ "feb."\
+ "mar."\
+ "apr."\
+ "ma\u00ed"\
+ "j\u00fan."\
+ "j\u00fal."\
+ "\u00e1g\u00fa."\
+ "sep."\
+ "okt."\
+ "n\u00f3v."\
+ "des."\
+ ""]
+ ::msgcat::mcset is MONTHS_FULL [list \
+ "jan\u00faar"\
+ "febr\u00faar"\
+ "mars"\
+ "apr\u00edl"\
+ "ma\u00ed"\
+ "j\u00fan\u00ed"\
+ "j\u00fal\u00ed"\
+ "\u00e1g\u00fast"\
+ "september"\
+ "okt\u00f3ber"\
+ "n\u00f3vember"\
+ "desember"\
+ ""]
+ ::msgcat::mcset is DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset is TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset is DATE_TIME_FORMAT "%e.%m.%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/it.msg b/library/msgs/it.msg
new file mode 100755
index 0000000..b641cde
--- /dev/null
+++ b/library/msgs/it.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset it DAYS_OF_WEEK_ABBREV [list \
+ "dom"\
+ "lun"\
+ "mar"\
+ "mer"\
+ "gio"\
+ "ven"\
+ "sab"]
+ ::msgcat::mcset it DAYS_OF_WEEK_FULL [list \
+ "domenica"\
+ "luned\u00ec"\
+ "marted\u00ec"\
+ "mercoled\u00ec"\
+ "gioved\u00ec"\
+ "venerd\u00ec"\
+ "sabato"]
+ ::msgcat::mcset it MONTHS_ABBREV [list \
+ "gen"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "mag"\
+ "giu"\
+ "lug"\
+ "ago"\
+ "set"\
+ "ott"\
+ "nov"\
+ "dic"\
+ ""]
+ ::msgcat::mcset it MONTHS_FULL [list \
+ "gennaio"\
+ "febbraio"\
+ "marzo"\
+ "aprile"\
+ "maggio"\
+ "giugno"\
+ "luglio"\
+ "agosto"\
+ "settembre"\
+ "ottobre"\
+ "novembre"\
+ "dicembre"\
+ ""]
+ ::msgcat::mcset it BCE "aC"
+ ::msgcat::mcset it CE "dC"
+ ::msgcat::mcset it AM "m."
+ ::msgcat::mcset it PM "p."
+ ::msgcat::mcset it DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset it TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset it DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/it_CH.msg b/library/msgs/it_CH.msg
new file mode 100755
index 0000000..b36ed36
--- /dev/null
+++ b/library/msgs/it_CH.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset it_CH DATE_FORMAT "%e. %B %Y"
+ ::msgcat::mcset it_CH TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset it_CH DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/ja.msg b/library/msgs/ja.msg
new file mode 100755
index 0000000..7bab236
--- /dev/null
+++ b/library/msgs/ja.msg
@@ -0,0 +1,59 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ja DAYS_OF_WEEK_ABBREV [list \
+ "\u65e5"\
+ "\u6708"\
+ "\u706b"\
+ "\u6c34"\
+ "\u6728"\
+ "\u91d1"\
+ "\u571f"]
+ ::msgcat::mcset ja DAYS_OF_WEEK_FULL [list \
+ "\u65e5\u66dc\u65e5"\
+ "\u6708\u66dc\u65e5"\
+ "\u706b\u66dc\u65e5"\
+ "\u6c34\u66dc\u65e5"\
+ "\u6728\u66dc\u65e5"\
+ "\u91d1\u66dc\u65e5"\
+ "\u571f\u66dc\u65e5"]
+ ::msgcat::mcset ja MONTHS_ABBREV [list \
+ "1"\
+ "2"\
+ "3"\
+ "4"\
+ "5"\
+ "6"\
+ "7"\
+ "8"\
+ "9"\
+ "10"\
+ "11"\
+ "12"\
+ ""]
+ ::msgcat::mcset ja MONTHS_FULL [list \
+ "1\u6708"\
+ "2\u6708"\
+ "3\u6708"\
+ "4\u6708"\
+ "5\u6708"\
+ "6\u6708"\
+ "7\u6708"\
+ "8\u6708"\
+ "9\u6708"\
+ "10\u6708"\
+ "11\u6708"\
+ "12\u6708"\
+ ""]
+ ::msgcat::mcset ja BCE "\u7d00\u5143\u524d"
+ ::msgcat::mcset ja CE "\u897f\u66a6"
+ ::msgcat::mcset ja AM "\u5348\u524d"
+ ::msgcat::mcset ja PM "\u5348\u5f8c"
+ ::msgcat::mcset ja DATE_FORMAT "%Y/%m/%d"
+ ::msgcat::mcset ja TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset ja DATE_TIME_FORMAT "%Y/%m/%d %k:%M:%S %z"
+ ::msgcat::mcset ja LOCALE_NUMERALS "\u3007 \u4e00 \u4e8c \u4e09 \u56db \u4e94 \u516d \u4e03 \u516b \u4e5d \u5341 \u5341\u4e00 \u5341\u4e8c \u5341\u4e09 \u5341\u56db \u5341\u4e94 \u5341\u516d \u5341\u4e03 \u5341\u516b \u5341\u4e5d \u4e8c\u5341 \u5eff\u4e00 \u5eff\u4e8c \u5eff\u4e09 \u5eff\u56db \u5eff\u4e94 \u5eff\u516d \u5eff\u4e03 \u5eff\u516b \u5eff\u4e5d \u4e09\u5341 \u5345\u4e00 \u5345\u4e8c \u5345\u4e09 \u5345\u56db \u5345\u4e94 \u5345\u516d \u5345\u4e03 \u5345\u516b \u5345\u4e5d \u56db\u5341 \u56db\u5341\u4e00 \u56db\u5341\u4e8c \u56db\u5341\u4e09 \u56db\u5341\u56db \u56db\u5341\u4e94 \u56db\u5341\u516d \u56db\u5341\u4e03 \u56db\u5341\u516b \u56db\u5341\u4e5d \u4e94\u5341 \u4e94\u5341\u4e00 \u4e94\u5341\u4e8c \u4e94\u5341\u4e09 \u4e94\u5341\u56db \u4e94\u5341\u4e94 \u4e94\u5341\u516d \u4e94\u5341\u4e03 \u4e94\u5341\u516b \u4e94\u5341\u4e5d \u516d\u5341 \u516d\u5341\u4e00 \u516d\u5341\u4e8c \u516d\u5341\u4e09 \u516d\u5341\u56db \u516d\u5341\u4e94 \u516d\u5341\u516d \u516d\u5341\u4e03 \u516d\u5341\u516b \u516d\u5341\u4e5d \u4e03\u5341 \u4e03\u5341\u4e00 \u4e03\u5341\u4e8c \u4e03\u5341\u4e09 \u4e03\u5341\u56db \u4e03\u5341\u4e94 \u4e03\u5341\u516d \u4e03\u5341\u4e03 \u4e03\u5341\u516b \u4e03\u5341\u4e5d \u516b\u5341 \u516b\u5341\u4e00 \u516b\u5341\u4e8c \u516b\u5341\u4e09 \u516b\u5341\u56db \u516b\u5341\u4e94 \u516b\u5341\u516d \u516b\u5341\u4e03 \u516b\u5341\u516b \u516b\u5341\u4e5d \u4e5d\u5341 \u4e5d\u5341\u4e00 \u4e5d\u5341\u4e8c \u4e5d\u5341\u4e09 \u4e5d\u5341\u56db \u4e5d\u5341\u4e94 \u4e5d\u5341\u516d \u4e5d\u5341\u4e03 \u4e5d\u5341\u516b \u4e5d\u5341\u4e5d"
+ ::msgcat::mcset ja LOCALE_DATE_FORMAT "%EY\u5e74%B%Od\u65e5"
+ ::msgcat::mcset ja LOCALE_TIME_FORMAT "%OH\u6642%OM\u5206%OS\u79d2"
+ ::msgcat::mcset ja LOCALE_DATE_TIME_FORMAT "%A %EY\u5e74%B%Od\u65e5%OH\u6642%OM\u5206%OS\u79d2 %z"
+ ::msgcat::mcset ja LOCALE_ERAS "\u007b-9223372036854775808 \u897f\u66a6 0\u007d \u007b-3060979200 \u660e\u6cbb 1867\u007d \u007b-1812153600 \u5927\u6b63 1911\u007d \u007b-1357603200 \u662d\u548c 1925\u007d \u007b568512000 \u5e73\u6210 1987\u007d"
+}
diff --git a/library/msgs/kl.msg b/library/msgs/kl.msg
new file mode 100755
index 0000000..d877bfe
--- /dev/null
+++ b/library/msgs/kl.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kl DAYS_OF_WEEK_ABBREV [list \
+ "sab"\
+ "ata"\
+ "mar"\
+ "pin"\
+ "sis"\
+ "tal"\
+ "arf"]
+ ::msgcat::mcset kl DAYS_OF_WEEK_FULL [list \
+ "sabaat"\
+ "ataasinngorneq"\
+ "marlunngorneq"\
+ "pingasunngorneq"\
+ "sisamanngorneq"\
+ "tallimanngorneq"\
+ "arfininngorneq"]
+ ::msgcat::mcset kl MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "maj"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset kl MONTHS_FULL [list \
+ "januari"\
+ "februari"\
+ "martsi"\
+ "aprili"\
+ "maji"\
+ "juni"\
+ "juli"\
+ "augustusi"\
+ "septemberi"\
+ "oktoberi"\
+ "novemberi"\
+ "decemberi"\
+ ""]
+}
diff --git a/library/msgs/kl_GL.msg b/library/msgs/kl_GL.msg
new file mode 100755
index 0000000..403aa10
--- /dev/null
+++ b/library/msgs/kl_GL.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kl_GL DATE_FORMAT "%d %b %Y"
+ ::msgcat::mcset kl_GL TIME_FORMAT "%T"
+ ::msgcat::mcset kl_GL TIME_FORMAT_12 "%T"
+ ::msgcat::mcset kl_GL DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/ko.msg b/library/msgs/ko.msg
new file mode 100755
index 0000000..0cd17a1
--- /dev/null
+++ b/library/msgs/ko.msg
@@ -0,0 +1,55 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ko DAYS_OF_WEEK_ABBREV [list \
+ "\uc77c"\
+ "\uc6d4"\
+ "\ud654"\
+ "\uc218"\
+ "\ubaa9"\
+ "\uae08"\
+ "\ud1a0"]
+ ::msgcat::mcset ko DAYS_OF_WEEK_FULL [list \
+ "\uc77c\uc694\uc77c"\
+ "\uc6d4\uc694\uc77c"\
+ "\ud654\uc694\uc77c"\
+ "\uc218\uc694\uc77c"\
+ "\ubaa9\uc694\uc77c"\
+ "\uae08\uc694\uc77c"\
+ "\ud1a0\uc694\uc77c"]
+ ::msgcat::mcset ko MONTHS_ABBREV [list \
+ "1\uc6d4"\
+ "2\uc6d4"\
+ "3\uc6d4"\
+ "4\uc6d4"\
+ "5\uc6d4"\
+ "6\uc6d4"\
+ "7\uc6d4"\
+ "8\uc6d4"\
+ "9\uc6d4"\
+ "10\uc6d4"\
+ "11\uc6d4"\
+ "12\uc6d4"\
+ ""]
+ ::msgcat::mcset ko MONTHS_FULL [list \
+ "1\uc6d4"\
+ "2\uc6d4"\
+ "3\uc6d4"\
+ "4\uc6d4"\
+ "5\uc6d4"\
+ "6\uc6d4"\
+ "7\uc6d4"\
+ "8\uc6d4"\
+ "9\uc6d4"\
+ "10\uc6d4"\
+ "11\uc6d4"\
+ "12\uc6d4"\
+ ""]
+ ::msgcat::mcset ko AM "\uc624\uc804"
+ ::msgcat::mcset ko PM "\uc624\ud6c4"
+ ::msgcat::mcset ko DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset ko TIME_FORMAT_12 "%P %l:%M:%S"
+ ::msgcat::mcset ko DATE_TIME_FORMAT "%Y-%m-%d %P %l:%M:%S %z"
+ ::msgcat::mcset ko LOCALE_DATE_FORMAT "%Y\ub144%B%Od\uc77c"
+ ::msgcat::mcset ko LOCALE_TIME_FORMAT "%H\uc2dc%M\ubd84%S\ucd08"
+ ::msgcat::mcset ko LOCALE_DATE_TIME_FORMAT "%A %Y\ub144%B%Od\uc77c%H\uc2dc%M\ubd84%S\ucd08 %z"
+}
diff --git a/library/msgs/ko_KR.msg b/library/msgs/ko_KR.msg
new file mode 100755
index 0000000..ea5bbd7
--- /dev/null
+++ b/library/msgs/ko_KR.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ko_KR BCE "\uae30\uc6d0\uc804"
+ ::msgcat::mcset ko_KR CE "\uc11c\uae30"
+ ::msgcat::mcset ko_KR DATE_FORMAT "%Y.%m.%d"
+ ::msgcat::mcset ko_KR TIME_FORMAT_12 "%P %l:%M:%S"
+ ::msgcat::mcset ko_KR DATE_TIME_FORMAT "%Y.%m.%d %P %l:%M:%S %z"
+}
diff --git a/library/msgs/kok.msg b/library/msgs/kok.msg
new file mode 100755
index 0000000..0869f20
--- /dev/null
+++ b/library/msgs/kok.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kok DAYS_OF_WEEK_FULL [list \
+ "\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930"\
+ "\u0938\u094b\u092e\u0935\u093e\u0930"\
+ "\u092e\u0902\u0917\u0933\u093e\u0930"\
+ "\u092c\u0941\u0927\u0935\u093e\u0930"\
+ "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\
+ "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\
+ "\u0936\u0928\u093f\u0935\u093e\u0930"]
+ ::msgcat::mcset kok MONTHS_ABBREV [list \
+ "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\
+ "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u090f\u092a\u094d\u0930\u093f\u0932"\
+ "\u092e\u0947"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u0948"\
+ "\u0913\u0917\u0938\u094d\u091f"\
+ "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\
+ "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\
+ "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\
+ "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"]
+ ::msgcat::mcset kok MONTHS_FULL [list \
+ "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\
+ "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u090f\u092a\u094d\u0930\u093f\u0932"\
+ "\u092e\u0947"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u0948"\
+ "\u0913\u0917\u0938\u094d\u091f"\
+ "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\
+ "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\
+ "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\
+ "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"]
+ ::msgcat::mcset kok AM "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935"
+ ::msgcat::mcset kok PM "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e"
+}
diff --git a/library/msgs/kok_IN.msg b/library/msgs/kok_IN.msg
new file mode 100755
index 0000000..abcb1ff
--- /dev/null
+++ b/library/msgs/kok_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kok_IN DATE_FORMAT "%d %M %Y"
+ ::msgcat::mcset kok_IN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset kok_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/kw.msg b/library/msgs/kw.msg
new file mode 100755
index 0000000..aaf79b3
--- /dev/null
+++ b/library/msgs/kw.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kw DAYS_OF_WEEK_ABBREV [list \
+ "Sul"\
+ "Lun"\
+ "Mth"\
+ "Mhr"\
+ "Yow"\
+ "Gwe"\
+ "Sad"]
+ ::msgcat::mcset kw DAYS_OF_WEEK_FULL [list \
+ "De Sul"\
+ "De Lun"\
+ "De Merth"\
+ "De Merher"\
+ "De Yow"\
+ "De Gwener"\
+ "De Sadorn"]
+ ::msgcat::mcset kw MONTHS_ABBREV [list \
+ "Gen"\
+ "Whe"\
+ "Mer"\
+ "Ebr"\
+ "Me"\
+ "Evn"\
+ "Gor"\
+ "Est"\
+ "Gwn"\
+ "Hed"\
+ "Du"\
+ "Kev"\
+ ""]
+ ::msgcat::mcset kw MONTHS_FULL [list \
+ "Mys Genver"\
+ "Mys Whevrel"\
+ "Mys Merth"\
+ "Mys Ebrel"\
+ "Mys Me"\
+ "Mys Evan"\
+ "Mys Gortheren"\
+ "Mye Est"\
+ "Mys Gwyngala"\
+ "Mys Hedra"\
+ "Mys Du"\
+ "Mys Kevardhu"\
+ ""]
+}
diff --git a/library/msgs/kw_GB.msg b/library/msgs/kw_GB.msg
new file mode 100755
index 0000000..2967680
--- /dev/null
+++ b/library/msgs/kw_GB.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset kw_GB DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset kw_GB TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset kw_GB DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/lt.msg b/library/msgs/lt.msg
new file mode 100755
index 0000000..27b0985
--- /dev/null
+++ b/library/msgs/lt.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset lt DAYS_OF_WEEK_ABBREV [list \
+ "Sk"\
+ "Pr"\
+ "An"\
+ "Tr"\
+ "Kt"\
+ "Pn"\
+ "\u0160t"]
+ ::msgcat::mcset lt DAYS_OF_WEEK_FULL [list \
+ "Sekmadienis"\
+ "Pirmadienis"\
+ "Antradienis"\
+ "Tre\u010diadienis"\
+ "Ketvirtadienis"\
+ "Penktadienis"\
+ "\u0160e\u0161tadienis"]
+ ::msgcat::mcset lt MONTHS_ABBREV [list \
+ "Sau"\
+ "Vas"\
+ "Kov"\
+ "Bal"\
+ "Geg"\
+ "Bir"\
+ "Lie"\
+ "Rgp"\
+ "Rgs"\
+ "Spa"\
+ "Lap"\
+ "Grd"\
+ ""]
+ ::msgcat::mcset lt MONTHS_FULL [list \
+ "Sausio"\
+ "Vasario"\
+ "Kovo"\
+ "Baland\u017eio"\
+ "Gegu\u017e\u0117s"\
+ "Bir\u017eelio"\
+ "Liepos"\
+ "Rugpj\u016b\u010dio"\
+ "Rugs\u0117jo"\
+ "Spalio"\
+ "Lapkri\u010dio"\
+ "Gruod\u017eio"\
+ ""]
+ ::msgcat::mcset lt BCE "pr.Kr."
+ ::msgcat::mcset lt CE "po.Kr."
+ ::msgcat::mcset lt DATE_FORMAT "%Y.%m.%e"
+ ::msgcat::mcset lt TIME_FORMAT "%H.%M.%S"
+ ::msgcat::mcset lt DATE_TIME_FORMAT "%Y.%m.%e %H.%M.%S %z"
+}
diff --git a/library/msgs/lv.msg b/library/msgs/lv.msg
new file mode 100755
index 0000000..a037b15
--- /dev/null
+++ b/library/msgs/lv.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset lv DAYS_OF_WEEK_ABBREV [list \
+ "Sv"\
+ "P"\
+ "O"\
+ "T"\
+ "C"\
+ "Pk"\
+ "S"]
+ ::msgcat::mcset lv DAYS_OF_WEEK_FULL [list \
+ "sv\u0113tdiena"\
+ "pirmdiena"\
+ "otrdiena"\
+ "tre\u0161diena"\
+ "ceturdien"\
+ "piektdiena"\
+ "sestdiena"]
+ ::msgcat::mcset lv MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mar"\
+ "Apr"\
+ "Maijs"\
+ "J\u016bn"\
+ "J\u016bl"\
+ "Aug"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dec"\
+ ""]
+ ::msgcat::mcset lv MONTHS_FULL [list \
+ "janv\u0101ris"\
+ "febru\u0101ris"\
+ "marts"\
+ "apr\u012blis"\
+ "maijs"\
+ "j\u016bnijs"\
+ "j\u016blijs"\
+ "augusts"\
+ "septembris"\
+ "oktobris"\
+ "novembris"\
+ "decembris"\
+ ""]
+ ::msgcat::mcset lv BCE "pm\u0113"
+ ::msgcat::mcset lv CE "m\u0113"
+ ::msgcat::mcset lv DATE_FORMAT "%Y.%e.%m"
+ ::msgcat::mcset lv TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset lv DATE_TIME_FORMAT "%Y.%e.%m %H:%M:%S %z"
+}
diff --git a/library/msgs/mk.msg b/library/msgs/mk.msg
new file mode 100755
index 0000000..41cf60d
--- /dev/null
+++ b/library/msgs/mk.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset mk DAYS_OF_WEEK_ABBREV [list \
+ "\u043d\u0435\u0434."\
+ "\u043f\u043e\u043d."\
+ "\u0432\u0442."\
+ "\u0441\u0440\u0435."\
+ "\u0447\u0435\u0442."\
+ "\u043f\u0435\u0442."\
+ "\u0441\u0430\u0431."]
+ ::msgcat::mcset mk DAYS_OF_WEEK_FULL [list \
+ "\u043d\u0435\u0434\u0435\u043b\u0430"\
+ "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a"\
+ "\u0432\u0442\u043e\u0440\u043d\u0438\u043a"\
+ "\u0441\u0440\u0435\u0434\u0430"\
+ "\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a"\
+ "\u043f\u0435\u0442\u043e\u043a"\
+ "\u0441\u0430\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset mk MONTHS_ABBREV [list \
+ "\u0458\u0430\u043d."\
+ "\u0444\u0435\u0432."\
+ "\u043c\u0430\u0440."\
+ "\u0430\u043f\u0440."\
+ "\u043c\u0430\u0458."\
+ "\u0458\u0443\u043d."\
+ "\u0458\u0443\u043b."\
+ "\u0430\u0432\u0433."\
+ "\u0441\u0435\u043f\u0442."\
+ "\u043e\u043a\u0442."\
+ "\u043d\u043e\u0435\u043c."\
+ "\u0434\u0435\u043a\u0435\u043c."\
+ ""]
+ ::msgcat::mcset mk MONTHS_FULL [list \
+ "\u0458\u0430\u043d\u0443\u0430\u0440\u0438"\
+ "\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438"\
+ "\u043c\u0430\u0440\u0442"\
+ "\u0430\u043f\u0440\u0438\u043b"\
+ "\u043c\u0430\u0458"\
+ "\u0458\u0443\u043d\u0438"\
+ "\u0458\u0443\u043b\u0438"\
+ "\u0430\u0432\u0433\u0443\u0441\u0442"\
+ "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438"\
+ "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438"\
+ "\u043d\u043e\u0435\u043c\u0432\u0440\u0438"\
+ "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438"\
+ ""]
+ ::msgcat::mcset mk BCE "\u043f\u0440.\u043d.\u0435."
+ ::msgcat::mcset mk CE "\u0430\u0435."
+ ::msgcat::mcset mk DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset mk TIME_FORMAT "%H:%M:%S %z"
+ ::msgcat::mcset mk DATE_TIME_FORMAT "%e.%m.%Y %H:%M:%S %z %z"
+}
diff --git a/library/msgs/mr.msg b/library/msgs/mr.msg
new file mode 100755
index 0000000..cea427a
--- /dev/null
+++ b/library/msgs/mr.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset mr DAYS_OF_WEEK_FULL [list \
+ "\u0930\u0935\u093f\u0935\u093e\u0930"\
+ "\u0938\u094b\u092e\u0935\u093e\u0930"\
+ "\u092e\u0902\u0917\u0933\u0935\u093e\u0930"\
+ "\u092e\u0902\u0917\u0933\u0935\u093e\u0930"\
+ "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\
+ "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\
+ "\u0936\u0928\u093f\u0935\u093e\u0930"]
+ ::msgcat::mcset mr MONTHS_ABBREV [list \
+ "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\
+ "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u090f\u092a\u094d\u0930\u093f\u0932"\
+ "\u092e\u0947"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u0948"\
+ "\u0913\u0917\u0938\u094d\u091f"\
+ "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\
+ "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\
+ "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\
+ "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"]
+ ::msgcat::mcset mr MONTHS_FULL [list \
+ "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\
+ "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\
+ "\u092e\u093e\u0930\u094d\u091a"\
+ "\u090f\u092a\u094d\u0930\u093f\u0932"\
+ "\u092e\u0947"\
+ "\u091c\u0942\u0928"\
+ "\u091c\u0941\u0932\u0948"\
+ "\u0913\u0917\u0938\u094d\u091f"\
+ "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\
+ "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\
+ "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\
+ "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"]
+ ::msgcat::mcset mr AM "BC"
+ ::msgcat::mcset mr PM "AD"
+}
diff --git a/library/msgs/mr_IN.msg b/library/msgs/mr_IN.msg
new file mode 100755
index 0000000..1889da5
--- /dev/null
+++ b/library/msgs/mr_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset mr_IN DATE_FORMAT "%d %M %Y"
+ ::msgcat::mcset mr_IN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset mr_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/ms.msg b/library/msgs/ms.msg
new file mode 100755
index 0000000..e954431
--- /dev/null
+++ b/library/msgs/ms.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ms DAYS_OF_WEEK_ABBREV [list \
+ "Aha"\
+ "Isn"\
+ "Sei"\
+ "Rab"\
+ "Kha"\
+ "Jum"\
+ "Sab"]
+ ::msgcat::mcset ms DAYS_OF_WEEK_FULL [list \
+ "Ahad"\
+ "Isnin"\
+ "Selasa"\
+ "Rahu"\
+ "Khamis"\
+ "Jumaat"\
+ "Sabtu"]
+ ::msgcat::mcset ms MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mac"\
+ "Apr"\
+ "Mei"\
+ "Jun"\
+ "Jul"\
+ "Ogos"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dis"\
+ ""]
+ ::msgcat::mcset ms MONTHS_FULL [list \
+ "Januari"\
+ "Februari"\
+ "Mac"\
+ "April"\
+ "Mei"\
+ "Jun"\
+ "Julai"\
+ "Ogos"\
+ "September"\
+ "Oktober"\
+ "November"\
+ "Disember"\
+ ""]
+}
diff --git a/library/msgs/ms_MY.msg b/library/msgs/ms_MY.msg
new file mode 100755
index 0000000..c1f93d4
--- /dev/null
+++ b/library/msgs/ms_MY.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ms_MY DATE_FORMAT "%A %d %b %Y"
+ ::msgcat::mcset ms_MY TIME_FORMAT_12 "%I:%M:%S %z"
+ ::msgcat::mcset ms_MY DATE_TIME_FORMAT "%A %d %b %Y %I:%M:%S %z %z"
+}
diff --git a/library/msgs/mt.msg b/library/msgs/mt.msg
new file mode 100755
index 0000000..ddd5446
--- /dev/null
+++ b/library/msgs/mt.msg
@@ -0,0 +1,27 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset mt DAYS_OF_WEEK_ABBREV [list \
+ "\u0126ad"\
+ "Tne"\
+ "Tli"\
+ "Erb"\
+ "\u0126am"\
+ "\u0120im"]
+ ::msgcat::mcset mt MONTHS_ABBREV [list \
+ "Jan"\
+ "Fra"\
+ "Mar"\
+ "Apr"\
+ "Mej"\
+ "\u0120un"\
+ "Lul"\
+ "Awi"\
+ "Set"\
+ "Ott"\
+ "Nov"]
+ ::msgcat::mcset mt BCE "QK"
+ ::msgcat::mcset mt CE ""
+ ::msgcat::mcset mt DATE_FORMAT "%A, %e ta %B, %Y"
+ ::msgcat::mcset mt TIME_FORMAT_12 "%l:%M:%S %P"
+ ::msgcat::mcset mt DATE_TIME_FORMAT "%A, %e ta %B, %Y %l:%M:%S %P %z"
+}
diff --git a/library/msgs/nb.msg b/library/msgs/nb.msg
new file mode 100755
index 0000000..90d49a3
--- /dev/null
+++ b/library/msgs/nb.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset nb DAYS_OF_WEEK_ABBREV [list \
+ "s\u00f8"\
+ "ma"\
+ "ti"\
+ "on"\
+ "to"\
+ "fr"\
+ "l\u00f8"]
+ ::msgcat::mcset nb DAYS_OF_WEEK_FULL [list \
+ "s\u00f8ndag"\
+ "mandag"\
+ "tirsdag"\
+ "onsdag"\
+ "torsdag"\
+ "fredag"\
+ "l\u00f8rdag"]
+ ::msgcat::mcset nb MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "mai"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "des"\
+ ""]
+ ::msgcat::mcset nb MONTHS_FULL [list \
+ "januar"\
+ "februar"\
+ "mars"\
+ "april"\
+ "mai"\
+ "juni"\
+ "juli"\
+ "august"\
+ "september"\
+ "oktober"\
+ "november"\
+ "desember"\
+ ""]
+ ::msgcat::mcset nb BCE "f.Kr."
+ ::msgcat::mcset nb CE "e.Kr."
+ ::msgcat::mcset nb DATE_FORMAT "%e. %B %Y"
+ ::msgcat::mcset nb TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset nb DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/nl.msg b/library/msgs/nl.msg
new file mode 100755
index 0000000..4c5c675
--- /dev/null
+++ b/library/msgs/nl.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset nl DAYS_OF_WEEK_ABBREV [list \
+ "zo"\
+ "ma"\
+ "di"\
+ "wo"\
+ "do"\
+ "vr"\
+ "za"]
+ ::msgcat::mcset nl DAYS_OF_WEEK_FULL [list \
+ "zondag"\
+ "maandag"\
+ "dinsdag"\
+ "woensdag"\
+ "donderdag"\
+ "vrijdag"\
+ "zaterdag"]
+ ::msgcat::mcset nl MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mrt"\
+ "apr"\
+ "mei"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset nl MONTHS_FULL [list \
+ "januari"\
+ "februari"\
+ "maart"\
+ "april"\
+ "mei"\
+ "juni"\
+ "juli"\
+ "augustus"\
+ "september"\
+ "oktober"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset nl DATE_FORMAT "%e %B %Y"
+ ::msgcat::mcset nl TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset nl DATE_TIME_FORMAT "%e %B %Y %k:%M:%S %z"
+}
diff --git a/library/msgs/nl_BE.msg b/library/msgs/nl_BE.msg
new file mode 100755
index 0000000..4b19670
--- /dev/null
+++ b/library/msgs/nl_BE.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset nl_BE DATE_FORMAT "%d-%m-%y"
+ ::msgcat::mcset nl_BE TIME_FORMAT "%T"
+ ::msgcat::mcset nl_BE TIME_FORMAT_12 "%T"
+ ::msgcat::mcset nl_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/nn.msg b/library/msgs/nn.msg
new file mode 100755
index 0000000..bd61ac9
--- /dev/null
+++ b/library/msgs/nn.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset nn DAYS_OF_WEEK_ABBREV [list \
+ "su"\
+ "m\u00e5"\
+ "ty"\
+ "on"\
+ "to"\
+ "fr"\
+ "lau"]
+ ::msgcat::mcset nn DAYS_OF_WEEK_FULL [list \
+ "sundag"\
+ "m\u00e5ndag"\
+ "tysdag"\
+ "onsdag"\
+ "torsdag"\
+ "fredag"\
+ "laurdag"]
+ ::msgcat::mcset nn MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "mai"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "des"\
+ ""]
+ ::msgcat::mcset nn MONTHS_FULL [list \
+ "januar"\
+ "februar"\
+ "mars"\
+ "april"\
+ "mai"\
+ "juni"\
+ "juli"\
+ "august"\
+ "september"\
+ "oktober"\
+ "november"\
+ "desember"\
+ ""]
+ ::msgcat::mcset nn BCE "f.Kr."
+ ::msgcat::mcset nn CE "e.Kr."
+ ::msgcat::mcset nn DATE_FORMAT "%e. %B %Y"
+ ::msgcat::mcset nn TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset nn DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/pl.msg b/library/msgs/pl.msg
new file mode 100755
index 0000000..d206f4b
--- /dev/null
+++ b/library/msgs/pl.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset pl DAYS_OF_WEEK_ABBREV [list \
+ "N"\
+ "Pn"\
+ "Wt"\
+ "\u015ar"\
+ "Cz"\
+ "Pt"\
+ "So"]
+ ::msgcat::mcset pl DAYS_OF_WEEK_FULL [list \
+ "niedziela"\
+ "poniedzia\u0142ek"\
+ "wtorek"\
+ "\u015broda"\
+ "czwartek"\
+ "pi\u0105tek"\
+ "sobota"]
+ ::msgcat::mcset pl MONTHS_ABBREV [list \
+ "sty"\
+ "lut"\
+ "mar"\
+ "kwi"\
+ "maj"\
+ "cze"\
+ "lip"\
+ "sie"\
+ "wrz"\
+ "pa\u017a"\
+ "lis"\
+ "gru"\
+ ""]
+ ::msgcat::mcset pl MONTHS_FULL [list \
+ "stycze\u0144"\
+ "luty"\
+ "marzec"\
+ "kwiecie\u0144"\
+ "maj"\
+ "czerwiec"\
+ "lipiec"\
+ "sierpie\u0144"\
+ "wrzesie\u0144"\
+ "pa\u017adziernik"\
+ "listopad"\
+ "grudzie\u0144"\
+ ""]
+ ::msgcat::mcset pl BCE "p.n.e."
+ ::msgcat::mcset pl CE "n.e."
+ ::msgcat::mcset pl DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset pl TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset pl DATE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %z"
+}
diff --git a/library/msgs/pt.msg b/library/msgs/pt.msg
new file mode 100755
index 0000000..96fdb35
--- /dev/null
+++ b/library/msgs/pt.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset pt DAYS_OF_WEEK_ABBREV [list \
+ "Dom"\
+ "Seg"\
+ "Ter"\
+ "Qua"\
+ "Qui"\
+ "Sex"\
+ "S\u00e1b"]
+ ::msgcat::mcset pt DAYS_OF_WEEK_FULL [list \
+ "Domingo"\
+ "Segunda-feira"\
+ "Ter\u00e7a-feira"\
+ "Quarta-feira"\
+ "Quinta-feira"\
+ "Sexta-feira"\
+ "S\u00e1bado"]
+ ::msgcat::mcset pt MONTHS_ABBREV [list \
+ "Jan"\
+ "Fev"\
+ "Mar"\
+ "Abr"\
+ "Mai"\
+ "Jun"\
+ "Jul"\
+ "Ago"\
+ "Set"\
+ "Out"\
+ "Nov"\
+ "Dez"\
+ ""]
+ ::msgcat::mcset pt MONTHS_FULL [list \
+ "Janeiro"\
+ "Fevereiro"\
+ "Mar\u00e7o"\
+ "Abril"\
+ "Maio"\
+ "Junho"\
+ "Julho"\
+ "Agosto"\
+ "Setembro"\
+ "Outubro"\
+ "Novembro"\
+ "Dezembro"\
+ ""]
+ ::msgcat::mcset pt DATE_FORMAT "%d-%m-%Y"
+ ::msgcat::mcset pt TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset pt DATE_TIME_FORMAT "%d-%m-%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/pt_BR.msg b/library/msgs/pt_BR.msg
new file mode 100755
index 0000000..8684327
--- /dev/null
+++ b/library/msgs/pt_BR.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset pt_BR DATE_FORMAT "%d-%m-%Y"
+ ::msgcat::mcset pt_BR TIME_FORMAT "%T"
+ ::msgcat::mcset pt_BR TIME_FORMAT_12 "%T"
+ ::msgcat::mcset pt_BR DATE_TIME_FORMAT "%a %d %b %Y %T %z"
+}
diff --git a/library/msgs/ro.msg b/library/msgs/ro.msg
new file mode 100755
index 0000000..bdd7c61
--- /dev/null
+++ b/library/msgs/ro.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ro DAYS_OF_WEEK_ABBREV [list \
+ "D"\
+ "L"\
+ "Ma"\
+ "Mi"\
+ "J"\
+ "V"\
+ "S"]
+ ::msgcat::mcset ro DAYS_OF_WEEK_FULL [list \
+ "duminic\u0103"\
+ "luni"\
+ "mar\u0163i"\
+ "miercuri"\
+ "joi"\
+ "vineri"\
+ "s\u00eemb\u0103t\u0103"]
+ ::msgcat::mcset ro MONTHS_ABBREV [list \
+ "Ian"\
+ "Feb"\
+ "Mar"\
+ "Apr"\
+ "Mai"\
+ "Iun"\
+ "Iul"\
+ "Aug"\
+ "Sep"\
+ "Oct"\
+ "Nov"\
+ "Dec"\
+ ""]
+ ::msgcat::mcset ro MONTHS_FULL [list \
+ "ianuarie"\
+ "februarie"\
+ "martie"\
+ "aprilie"\
+ "mai"\
+ "iunie"\
+ "iulie"\
+ "august"\
+ "septembrie"\
+ "octombrie"\
+ "noiembrie"\
+ "decembrie"\
+ ""]
+ ::msgcat::mcset ro BCE "d.C."
+ ::msgcat::mcset ro CE "\u00ee.d.C."
+ ::msgcat::mcset ro DATE_FORMAT "%d.%m.%Y"
+ ::msgcat::mcset ro TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset ro DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/ru.msg b/library/msgs/ru.msg
new file mode 100755
index 0000000..65b075d
--- /dev/null
+++ b/library/msgs/ru.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ru DAYS_OF_WEEK_ABBREV [list \
+ "\u0412\u0441"\
+ "\u041f\u043d"\
+ "\u0412\u0442"\
+ "\u0421\u0440"\
+ "\u0427\u0442"\
+ "\u041f\u0442"\
+ "\u0421\u0431"]
+ ::msgcat::mcset ru DAYS_OF_WEEK_FULL [list \
+ "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435"\
+ "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a"\
+ "\u0432\u0442\u043e\u0440\u043d\u0438\u043a"\
+ "\u0441\u0440\u0435\u0434\u0430"\
+ "\u0447\u0435\u0442\u0432\u0435\u0440\u0433"\
+ "\u043f\u044f\u0442\u043d\u0438\u0446\u0430"\
+ "\u0441\u0443\u0431\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset ru MONTHS_ABBREV [list \
+ "\u044f\u043d\u0432"\
+ "\u0444\u0435\u0432"\
+ "\u043c\u0430\u0440"\
+ "\u0430\u043f\u0440"\
+ "\u043c\u0430\u0439"\
+ "\u0438\u044e\u043d"\
+ "\u0438\u044e\u043b"\
+ "\u0430\u0432\u0433"\
+ "\u0441\u0435\u043d"\
+ "\u043e\u043a\u0442"\
+ "\u043d\u043e\u044f"\
+ "\u0434\u0435\u043a"\
+ ""]
+ ::msgcat::mcset ru MONTHS_FULL [list \
+ "\u042f\u043d\u0432\u0430\u0440\u044c"\
+ "\u0424\u0435\u0432\u0440\u0430\u043b\u044c"\
+ "\u041c\u0430\u0440\u0442"\
+ "\u0410\u043f\u0440\u0435\u043b\u044c"\
+ "\u041c\u0430\u0439"\
+ "\u0418\u044e\u043d\u044c"\
+ "\u0418\u044e\u043b\u044c"\
+ "\u0410\u0432\u0433\u0443\u0441\u0442"\
+ "\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c"\
+ "\u041e\u043a\u0442\u044f\u0431\u0440\u044c"\
+ "\u041d\u043e\u044f\u0431\u0440\u044c"\
+ "\u0414\u0435\u043a\u0430\u0431\u0440\u044c"\
+ ""]
+ ::msgcat::mcset ru BCE "\u0434\u043e \u043d.\u044d."
+ ::msgcat::mcset ru CE "\u043d.\u044d."
+ ::msgcat::mcset ru DATE_FORMAT "%d.%m.%Y"
+ ::msgcat::mcset ru TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset ru DATE_TIME_FORMAT "%d.%m.%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/ru_UA.msg b/library/msgs/ru_UA.msg
new file mode 100755
index 0000000..6e1f8a8
--- /dev/null
+++ b/library/msgs/ru_UA.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ru_UA DATE_FORMAT "%d.%m.%Y"
+ ::msgcat::mcset ru_UA TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset ru_UA DATE_TIME_FORMAT "%d.%m.%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/sh.msg b/library/msgs/sh.msg
new file mode 100755
index 0000000..6ee0fc7
--- /dev/null
+++ b/library/msgs/sh.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sh DAYS_OF_WEEK_ABBREV [list \
+ "Ned"\
+ "Pon"\
+ "Uto"\
+ "Sre"\
+ "\u010cet"\
+ "Pet"\
+ "Sub"]
+ ::msgcat::mcset sh DAYS_OF_WEEK_FULL [list \
+ "Nedelja"\
+ "Ponedeljak"\
+ "Utorak"\
+ "Sreda"\
+ "\u010cetvrtak"\
+ "Petak"\
+ "Subota"]
+ ::msgcat::mcset sh MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mar"\
+ "Apr"\
+ "Maj"\
+ "Jun"\
+ "Jul"\
+ "Avg"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Dec"\
+ ""]
+ ::msgcat::mcset sh MONTHS_FULL [list \
+ "Januar"\
+ "Februar"\
+ "Mart"\
+ "April"\
+ "Maj"\
+ "Juni"\
+ "Juli"\
+ "Avgust"\
+ "Septembar"\
+ "Oktobar"\
+ "Novembar"\
+ "Decembar"\
+ ""]
+ ::msgcat::mcset sh BCE "p. n. e."
+ ::msgcat::mcset sh CE "n. e."
+ ::msgcat::mcset sh DATE_FORMAT "%d.%m.%Y."
+ ::msgcat::mcset sh TIME_FORMAT "%k.%M.%S"
+ ::msgcat::mcset sh DATE_TIME_FORMAT "%d.%m.%Y. %k.%M.%S %z"
+}
diff --git a/library/msgs/sk.msg b/library/msgs/sk.msg
new file mode 100755
index 0000000..9b2f0aa
--- /dev/null
+++ b/library/msgs/sk.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sk DAYS_OF_WEEK_ABBREV [list \
+ "Ne"\
+ "Po"\
+ "Ut"\
+ "St"\
+ "\u0160t"\
+ "Pa"\
+ "So"]
+ ::msgcat::mcset sk DAYS_OF_WEEK_FULL [list \
+ "Nede\u013ee"\
+ "Pondelok"\
+ "Utorok"\
+ "Streda"\
+ "\u0160tvrtok"\
+ "Piatok"\
+ "Sobota"]
+ ::msgcat::mcset sk MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "m\u00e1j"\
+ "j\u00fan"\
+ "j\u00fal"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset sk MONTHS_FULL [list \
+ "janu\u00e1r"\
+ "febru\u00e1r"\
+ "marec"\
+ "apr\u00edl"\
+ "m\u00e1j"\
+ "j\u00fan"\
+ "j\u00fal"\
+ "august"\
+ "september"\
+ "okt\u00f3ber"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset sk BCE "pred n.l."
+ ::msgcat::mcset sk CE "n.l."
+ ::msgcat::mcset sk DATE_FORMAT "%e.%m.%Y"
+ ::msgcat::mcset sk TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset sk DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/sl.msg b/library/msgs/sl.msg
new file mode 100755
index 0000000..42bc509
--- /dev/null
+++ b/library/msgs/sl.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sl DAYS_OF_WEEK_ABBREV [list \
+ "Ned"\
+ "Pon"\
+ "Tor"\
+ "Sre"\
+ "\u010cet"\
+ "Pet"\
+ "Sob"]
+ ::msgcat::mcset sl DAYS_OF_WEEK_FULL [list \
+ "Nedelja"\
+ "Ponedeljek"\
+ "Torek"\
+ "Sreda"\
+ "\u010cetrtek"\
+ "Petek"\
+ "Sobota"]
+ ::msgcat::mcset sl MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "maj"\
+ "jun"\
+ "jul"\
+ "avg"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset sl MONTHS_FULL [list \
+ "januar"\
+ "februar"\
+ "marec"\
+ "april"\
+ "maj"\
+ "junij"\
+ "julij"\
+ "avgust"\
+ "september"\
+ "oktober"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset sl BCE "pr.n.\u0161."
+ ::msgcat::mcset sl CE "po Kr."
+ ::msgcat::mcset sl DATE_FORMAT "%Y.%m.%e"
+ ::msgcat::mcset sl TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset sl DATE_TIME_FORMAT "%Y.%m.%e %k:%M:%S %z"
+}
diff --git a/library/msgs/sq.msg b/library/msgs/sq.msg
new file mode 100755
index 0000000..8fb1fce
--- /dev/null
+++ b/library/msgs/sq.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sq DAYS_OF_WEEK_ABBREV [list \
+ "Die"\
+ "H\u00ebn"\
+ "Mar"\
+ "M\u00ebr"\
+ "Enj"\
+ "Pre"\
+ "Sht"]
+ ::msgcat::mcset sq DAYS_OF_WEEK_FULL [list \
+ "e diel"\
+ "e h\u00ebn\u00eb"\
+ "e mart\u00eb"\
+ "e m\u00ebrkur\u00eb"\
+ "e enjte"\
+ "e premte"\
+ "e shtun\u00eb"]
+ ::msgcat::mcset sq MONTHS_ABBREV [list \
+ "Jan"\
+ "Shk"\
+ "Mar"\
+ "Pri"\
+ "Maj"\
+ "Qer"\
+ "Kor"\
+ "Gsh"\
+ "Sht"\
+ "Tet"\
+ "N\u00ebn"\
+ "Dhj"\
+ ""]
+ ::msgcat::mcset sq MONTHS_FULL [list \
+ "janar"\
+ "shkurt"\
+ "mars"\
+ "prill"\
+ "maj"\
+ "qershor"\
+ "korrik"\
+ "gusht"\
+ "shtator"\
+ "tetor"\
+ "n\u00ebntor"\
+ "dhjetor"\
+ ""]
+ ::msgcat::mcset sq BCE "p.e.r."
+ ::msgcat::mcset sq CE "n.e.r."
+ ::msgcat::mcset sq AM "PD"
+ ::msgcat::mcset sq PM "MD"
+ ::msgcat::mcset sq DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset sq TIME_FORMAT_12 "%l:%M:%S.%P"
+ ::msgcat::mcset sq DATE_TIME_FORMAT "%Y-%m-%d %l:%M:%S.%P %z"
+}
diff --git a/library/msgs/sr.msg b/library/msgs/sr.msg
new file mode 100755
index 0000000..7576668
--- /dev/null
+++ b/library/msgs/sr.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sr DAYS_OF_WEEK_ABBREV [list \
+ "\u041d\u0435\u0434"\
+ "\u041f\u043e\u043d"\
+ "\u0423\u0442\u043e"\
+ "\u0421\u0440\u0435"\
+ "\u0427\u0435\u0442"\
+ "\u041f\u0435\u0442"\
+ "\u0421\u0443\u0431"]
+ ::msgcat::mcset sr DAYS_OF_WEEK_FULL [list \
+ "\u041d\u0435\u0434\u0435\u0459\u0430"\
+ "\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a"\
+ "\u0423\u0442\u043e\u0440\u0430\u043a"\
+ "\u0421\u0440\u0435\u0434\u0430"\
+ "\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a"\
+ "\u041f\u0435\u0442\u0430\u043a"\
+ "\u0421\u0443\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset sr MONTHS_ABBREV [list \
+ "\u0408\u0430\u043d"\
+ "\u0424\u0435\u0431"\
+ "\u041c\u0430\u0440"\
+ "\u0410\u043f\u0440"\
+ "\u041c\u0430\u0458"\
+ "\u0408\u0443\u043d"\
+ "\u0408\u0443\u043b"\
+ "\u0410\u0432\u0433"\
+ "\u0421\u0435\u043f"\
+ "\u041e\u043a\u0442"\
+ "\u041d\u043e\u0432"\
+ "\u0414\u0435\u0446"\
+ ""]
+ ::msgcat::mcset sr MONTHS_FULL [list \
+ "\u0408\u0430\u043d\u0443\u0430\u0440"\
+ "\u0424\u0435\u0431\u0440\u0443\u0430\u0440"\
+ "\u041c\u0430\u0440\u0442"\
+ "\u0410\u043f\u0440\u0438\u043b"\
+ "\u041c\u0430\u0458"\
+ "\u0408\u0443\u043d\u0438"\
+ "\u0408\u0443\u043b\u0438"\
+ "\u0410\u0432\u0433\u0443\u0441\u0442"\
+ "\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440"\
+ "\u041e\u043a\u0442\u043e\u0431\u0430\u0440"\
+ "\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440"\
+ "\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440"\
+ ""]
+ ::msgcat::mcset sr BCE "\u043f. \u043d. \u0435."
+ ::msgcat::mcset sr CE "\u043d. \u0435"
+ ::msgcat::mcset sr DATE_FORMAT "%Y.%m.%e"
+ ::msgcat::mcset sr TIME_FORMAT "%k.%M.%S"
+ ::msgcat::mcset sr DATE_TIME_FORMAT "%Y.%m.%e %k.%M.%S %z"
+}
diff --git a/library/msgs/sv.msg b/library/msgs/sv.msg
new file mode 100755
index 0000000..f7a67c6
--- /dev/null
+++ b/library/msgs/sv.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sv DAYS_OF_WEEK_ABBREV [list \
+ "s\u00f6"\
+ "m\u00e5"\
+ "ti"\
+ "on"\
+ "to"\
+ "fr"\
+ "l\u00f6"]
+ ::msgcat::mcset sv DAYS_OF_WEEK_FULL [list \
+ "s\u00f6ndag"\
+ "m\u00e5ndag"\
+ "tisdag"\
+ "onsdag"\
+ "torsdag"\
+ "fredag"\
+ "l\u00f6rdag"]
+ ::msgcat::mcset sv MONTHS_ABBREV [list \
+ "jan"\
+ "feb"\
+ "mar"\
+ "apr"\
+ "maj"\
+ "jun"\
+ "jul"\
+ "aug"\
+ "sep"\
+ "okt"\
+ "nov"\
+ "dec"\
+ ""]
+ ::msgcat::mcset sv MONTHS_FULL [list \
+ "januari"\
+ "februari"\
+ "mars"\
+ "april"\
+ "maj"\
+ "juni"\
+ "juli"\
+ "augusti"\
+ "september"\
+ "oktober"\
+ "november"\
+ "december"\
+ ""]
+ ::msgcat::mcset sv BCE "f.Kr."
+ ::msgcat::mcset sv CE "e.Kr."
+ ::msgcat::mcset sv DATE_FORMAT "%Y-%m-%d"
+ ::msgcat::mcset sv TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset sv DATE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %z"
+}
diff --git a/library/msgs/sw.msg b/library/msgs/sw.msg
new file mode 100755
index 0000000..b888b43
--- /dev/null
+++ b/library/msgs/sw.msg
@@ -0,0 +1,49 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset sw DAYS_OF_WEEK_ABBREV [list \
+ "Jpi"\
+ "Jtt"\
+ "Jnn"\
+ "Jtn"\
+ "Alh"\
+ "Iju"\
+ "Jmo"]
+ ::msgcat::mcset sw DAYS_OF_WEEK_FULL [list \
+ "Jumapili"\
+ "Jumatatu"\
+ "Jumanne"\
+ "Jumatano"\
+ "Alhamisi"\
+ "Ijumaa"\
+ "Jumamosi"]
+ ::msgcat::mcset sw MONTHS_ABBREV [list \
+ "Jan"\
+ "Feb"\
+ "Mar"\
+ "Apr"\
+ "Mei"\
+ "Jun"\
+ "Jul"\
+ "Ago"\
+ "Sep"\
+ "Okt"\
+ "Nov"\
+ "Des"\
+ ""]
+ ::msgcat::mcset sw MONTHS_FULL [list \
+ "Januari"\
+ "Februari"\
+ "Machi"\
+ "Aprili"\
+ "Mei"\
+ "Juni"\
+ "Julai"\
+ "Agosti"\
+ "Septemba"\
+ "Oktoba"\
+ "Novemba"\
+ "Desemba"\
+ ""]
+ ::msgcat::mcset sw BCE "KK"
+ ::msgcat::mcset sw CE "BK"
+}
diff --git a/library/msgs/ta.msg b/library/msgs/ta.msg
new file mode 100755
index 0000000..4abb90c
--- /dev/null
+++ b/library/msgs/ta.msg
@@ -0,0 +1,39 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ta DAYS_OF_WEEK_FULL [list \
+ "\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1"\
+ "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd"\
+ "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd"\
+ "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd"\
+ "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd"\
+ "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf"\
+ "\u0b9a\u0ba9\u0bbf"]
+ ::msgcat::mcset ta MONTHS_ABBREV [list \
+ "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf"\
+ "\u0baa\u0bc6\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf"\
+ "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd"\
+ "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd"\
+ "\u0bae\u0bc7"\
+ "\u0b9c\u0bc2\u0ba9\u0bcd"\
+ "\u0b9c\u0bc2\u0bb2\u0bc8"\
+ "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd"\
+ "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\
+ "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd"\
+ "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\
+ "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcdr"]
+ ::msgcat::mcset ta MONTHS_FULL [list \
+ "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf"\
+ "\u0baa\u0bc6\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf"\
+ "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd"\
+ "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd"\
+ "\u0bae\u0bc7"\
+ "\u0b9c\u0bc2\u0ba9\u0bcd"\
+ "\u0b9c\u0bc2\u0bb2\u0bc8"\
+ "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd"\
+ "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\
+ "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd"\
+ "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\
+ "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcdr"]
+ ::msgcat::mcset ta AM "\u0b95\u0bbf\u0bae\u0bc1"
+ ::msgcat::mcset ta PM "\u0b95\u0bbf\u0baa\u0bbf"
+}
diff --git a/library/msgs/ta_IN.msg b/library/msgs/ta_IN.msg
new file mode 100755
index 0000000..24590ac
--- /dev/null
+++ b/library/msgs/ta_IN.msg
@@ -0,0 +1,6 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset ta_IN DATE_FORMAT "%d %M %Y"
+ ::msgcat::mcset ta_IN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset ta_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/te.msg b/library/msgs/te.msg
new file mode 100755
index 0000000..6111473
--- /dev/null
+++ b/library/msgs/te.msg
@@ -0,0 +1,47 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset te DAYS_OF_WEEK_ABBREV [list \
+ "\u0c06\u0c26\u0c3f"\
+ "\u0c38\u0c4b\u0c2e"\
+ "\u0c2e\u0c02\u0c17\u0c33"\
+ "\u0c2c\u0c41\u0c27"\
+ "\u0c17\u0c41\u0c30\u0c41"\
+ "\u0c36\u0c41\u0c15\u0c4d\u0c30"\
+ "\u0c36\u0c28\u0c3f"]
+ ::msgcat::mcset te DAYS_OF_WEEK_FULL [list \
+ "\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02"\
+ "\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"]
+ ::msgcat::mcset te MONTHS_ABBREV [list \
+ "\u0c1c\u0c28\u0c35\u0c30\u0c3f"\
+ "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\
+ "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\
+ "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\
+ "\u0c2e\u0c47"\
+ "\u0c1c\u0c42\u0c28\u0c4d"\
+ "\u0c1c\u0c42\u0c32\u0c48"\
+ "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\
+ "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
+ "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\
+ "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\
+ "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
+ ""]
+ ::msgcat::mcset te MONTHS_FULL [list \
+ "\u0c1c\u0c28\u0c35\u0c30\u0c3f"\
+ "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\
+ "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\
+ "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\
+ "\u0c2e\u0c47"\
+ "\u0c1c\u0c42\u0c28\u0c4d"\
+ "\u0c1c\u0c42\u0c32\u0c48"\
+ "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\
+ "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
+ "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\
+ "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\
+ "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
+ ""]
+}
diff --git a/library/msgs/te_IN.msg b/library/msgs/te_IN.msg
new file mode 100755
index 0000000..61638b5
--- /dev/null
+++ b/library/msgs/te_IN.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset te_IN AM "\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28"
+ ::msgcat::mcset te_IN PM "\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28"
+ ::msgcat::mcset te_IN DATE_FORMAT "%d/%m/%Y"
+ ::msgcat::mcset te_IN TIME_FORMAT_12 "%I:%M:%S %P"
+ ::msgcat::mcset te_IN DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
+}
diff --git a/library/msgs/th.msg b/library/msgs/th.msg
new file mode 100755
index 0000000..7486c35
--- /dev/null
+++ b/library/msgs/th.msg
@@ -0,0 +1,54 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset th DAYS_OF_WEEK_ABBREV [list \
+ "\u0e2d\u0e32."\
+ "\u0e08."\
+ "\u0e2d."\
+ "\u0e1e."\
+ "\u0e1e\u0e24."\
+ "\u0e28."\
+ "\u0e2a."]
+ ::msgcat::mcset th DAYS_OF_WEEK_FULL [list \
+ "\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c"\
+ "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c"\
+ "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23"\
+ "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18"\
+ "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35"\
+ "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c"\
+ "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"]
+ ::msgcat::mcset th MONTHS_ABBREV [list \
+ "\u0e21.\u0e04."\
+ "\u0e01.\u0e1e."\
+ "\u0e21\u0e35.\u0e04."\
+ "\u0e40\u0e21.\u0e22."\
+ "\u0e1e.\u0e04."\
+ "\u0e21\u0e34.\u0e22."\
+ "\u0e01.\u0e04."\
+ "\u0e2a.\u0e04."\
+ "\u0e01.\u0e22."\
+ "\u0e15.\u0e04."\
+ "\u0e1e.\u0e22."\
+ "\u0e18.\u0e04."\
+ ""]
+ ::msgcat::mcset th MONTHS_FULL [list \
+ "\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21"\
+ "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c"\
+ "\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21"\
+ "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19"\
+ "\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21"\
+ "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19"\
+ "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21"\
+ "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21"\
+ "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19"\
+ "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21"\
+ "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19"\
+ "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"\
+ ""]
+ ::msgcat::mcset th BCE "\u0e25\u0e17\u0e35\u0e48"
+ ::msgcat::mcset th CE "\u0e04.\u0e28."
+ ::msgcat::mcset th AM "\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"
+ ::msgcat::mcset th PM "\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"
+ ::msgcat::mcset th DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset th TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset th DATE_TIME_FORMAT "%e/%m/%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/tr.msg b/library/msgs/tr.msg
new file mode 100755
index 0000000..7b2ecf9
--- /dev/null
+++ b/library/msgs/tr.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset tr DAYS_OF_WEEK_ABBREV [list \
+ "Paz"\
+ "Pzt"\
+ "Sal"\
+ "\u00c7ar"\
+ "Per"\
+ "Cum"\
+ "Cmt"]
+ ::msgcat::mcset tr DAYS_OF_WEEK_FULL [list \
+ "Pazar"\
+ "Pazartesi"\
+ "Sal\u0131"\
+ "\u00c7ar\u015famba"\
+ "Per\u015fembe"\
+ "Cuma"\
+ "Cumartesi"]
+ ::msgcat::mcset tr MONTHS_ABBREV [list \
+ "Oca"\
+ "\u015eub"\
+ "Mar"\
+ "Nis"\
+ "May"\
+ "Haz"\
+ "Tem"\
+ "A\u011fu"\
+ "Eyl"\
+ "Eki"\
+ "Kas"\
+ "Ara"\
+ ""]
+ ::msgcat::mcset tr MONTHS_FULL [list \
+ "Ocak"\
+ "\u015eubat"\
+ "Mart"\
+ "Nisan"\
+ "May\u0131s"\
+ "Haziran"\
+ "Temmuz"\
+ "A\u011fustos"\
+ "Eyl\u00fcl"\
+ "Ekim"\
+ "Kas\u0131m"\
+ "Aral\u0131k"\
+ ""]
+ ::msgcat::mcset tr DATE_FORMAT "%d.%m.%Y"
+ ::msgcat::mcset tr TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset tr DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z"
+}
diff --git a/library/msgs/uk.msg b/library/msgs/uk.msg
new file mode 100755
index 0000000..3e24f86
--- /dev/null
+++ b/library/msgs/uk.msg
@@ -0,0 +1,52 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset uk DAYS_OF_WEEK_ABBREV [list \
+ "\u043d\u0434"\
+ "\u043f\u043d"\
+ "\u0432\u0442"\
+ "\u0441\u0440"\
+ "\u0447\u0442"\
+ "\u043f\u0442"\
+ "\u0441\u0431"]
+ ::msgcat::mcset uk DAYS_OF_WEEK_FULL [list \
+ "\u043d\u0435\u0434\u0456\u043b\u044f"\
+ "\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a"\
+ "\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a"\
+ "\u0441\u0435\u0440\u0435\u0434\u0430"\
+ "\u0447\u0435\u0442\u0432\u0435\u0440"\
+ "\u043f'\u044f\u0442\u043d\u0438\u0446\u044f"\
+ "\u0441\u0443\u0431\u043e\u0442\u0430"]
+ ::msgcat::mcset uk MONTHS_ABBREV [list \
+ "\u0441\u0456\u0447"\
+ "\u043b\u044e\u0442"\
+ "\u0431\u0435\u0440"\
+ "\u043a\u0432\u0456\u0442"\
+ "\u0442\u0440\u0430\u0432"\
+ "\u0447\u0435\u0440\u0432"\
+ "\u043b\u0438\u043f"\
+ "\u0441\u0435\u0440\u043f"\
+ "\u0432\u0435\u0440"\
+ "\u0436\u043e\u0432\u0442"\
+ "\u043b\u0438\u0441\u0442"\
+ "\u0433\u0440\u0443\u0434"\
+ ""]
+ ::msgcat::mcset uk MONTHS_FULL [list \
+ "\u0441\u0456\u0447\u043d\u044f"\
+ "\u043b\u044e\u0442\u043e\u0433\u043e"\
+ "\u0431\u0435\u0440\u0435\u0436\u043d\u044f"\
+ "\u043a\u0432\u0456\u0442\u043d\u044f"\
+ "\u0442\u0440\u0430\u0432\u043d\u044f"\
+ "\u0447\u0435\u0440\u0432\u043d\u044f"\
+ "\u043b\u0438\u043f\u043d\u044f"\
+ "\u0441\u0435\u0440\u043f\u043d\u044f"\
+ "\u0432\u0435\u0440\u0435\u0441\u043d\u044f"\
+ "\u0436\u043e\u0432\u0442\u043d\u044f"\
+ "\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430"\
+ "\u0433\u0440\u0443\u0434\u043d\u044f"\
+ ""]
+ ::msgcat::mcset uk BCE "\u0434\u043e \u043d.\u0435."
+ ::msgcat::mcset uk CE "\u043f\u0456\u0441\u043b\u044f \u043d.\u0435."
+ ::msgcat::mcset uk DATE_FORMAT "%e/%m/%Y"
+ ::msgcat::mcset uk TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset uk DATE_TIME_FORMAT "%e/%m/%Y %k:%M:%S %z"
+}
diff --git a/library/msgs/vi.msg b/library/msgs/vi.msg
new file mode 100755
index 0000000..c98b2a6
--- /dev/null
+++ b/library/msgs/vi.msg
@@ -0,0 +1,50 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset vi DAYS_OF_WEEK_ABBREV [list \
+ "Th 2"\
+ "Th 3"\
+ "Th 4"\
+ "Th 5"\
+ "Th 6"\
+ "Th 7"\
+ "CN"]
+ ::msgcat::mcset vi DAYS_OF_WEEK_FULL [list \
+ "Th\u01b0\u0301 hai"\
+ "Th\u01b0\u0301 ba"\
+ "Th\u01b0\u0301 t\u01b0"\
+ "Th\u01b0\u0301 n\u0103m"\
+ "Th\u01b0\u0301 s\u00e1u"\
+ "Th\u01b0\u0301 ba\u0309y"\
+ "Chu\u0309 nh\u00e2\u0323t"]
+ ::msgcat::mcset vi MONTHS_ABBREV [list \
+ "Thg 1"\
+ "Thg 2"\
+ "Thg 3"\
+ "Thg 4"\
+ "Thg 5"\
+ "Thg 6"\
+ "Thg 7"\
+ "Thg 8"\
+ "Thg 9"\
+ "Thg 10"\
+ "Thg 11"\
+ "Thg 12"\
+ ""]
+ ::msgcat::mcset vi MONTHS_FULL [list \
+ "Th\u00e1ng m\u00f4\u0323t"\
+ "Th\u00e1ng hai"\
+ "Th\u00e1ng ba"\
+ "Th\u00e1ng t\u01b0"\
+ "Th\u00e1ng n\u0103m"\
+ "Th\u00e1ng s\u00e1u"\
+ "Th\u00e1ng ba\u0309y"\
+ "Th\u00e1ng t\u00e1m"\
+ "Th\u00e1ng ch\u00edn"\
+ "Th\u00e1ng m\u01b0\u01a1\u0300i"\
+ "Th\u00e1ng m\u01b0\u01a1\u0300i m\u00f4\u0323t"\
+ "Th\u00e1ng m\u01b0\u01a1\u0300i hai"\
+ ""]
+ ::msgcat::mcset vi DATE_FORMAT "%d %b %Y"
+ ::msgcat::mcset vi TIME_FORMAT "%H:%M:%S"
+ ::msgcat::mcset vi DATE_TIME_FORMAT "%d %b %Y %H:%M:%S %z"
+}
diff --git a/library/msgs/zh.msg b/library/msgs/zh.msg
new file mode 100755
index 0000000..b799a32
--- /dev/null
+++ b/library/msgs/zh.msg
@@ -0,0 +1,55 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset zh DAYS_OF_WEEK_ABBREV [list \
+ "\u661f\u671f\u65e5"\
+ "\u661f\u671f\u4e00"\
+ "\u661f\u671f\u4e8c"\
+ "\u661f\u671f\u4e09"\
+ "\u661f\u671f\u56db"\
+ "\u661f\u671f\u4e94"\
+ "\u661f\u671f\u516d"]
+ ::msgcat::mcset zh DAYS_OF_WEEK_FULL [list \
+ "\u661f\u671f\u65e5"\
+ "\u661f\u671f\u4e00"\
+ "\u661f\u671f\u4e8c"\
+ "\u661f\u671f\u4e09"\
+ "\u661f\u671f\u56db"\
+ "\u661f\u671f\u4e94"\
+ "\u661f\u671f\u516d"]
+ ::msgcat::mcset zh MONTHS_ABBREV [list \
+ "\u4e00\u6708"\
+ "\u4e8c\u6708"\
+ "\u4e09\u6708"\
+ "\u56db\u6708"\
+ "\u4e94\u6708"\
+ "\u516d\u6708"\
+ "\u4e03\u6708"\
+ "\u516b\u6708"\
+ "\u4e5d\u6708"\
+ "\u5341\u6708"\
+ "\u5341\u4e00\u6708"\
+ "\u5341\u4e8c\u6708"\
+ ""]
+ ::msgcat::mcset zh MONTHS_FULL [list \
+ "\u4e00\u6708"\
+ "\u4e8c\u6708"\
+ "\u4e09\u6708"\
+ "\u56db\u6708"\
+ "\u4e94\u6708"\
+ "\u516d\u6708"\
+ "\u4e03\u6708"\
+ "\u516b\u6708"\
+ "\u4e5d\u6708"\
+ "\u5341\u6708"\
+ "\u5341\u4e00\u6708"\
+ "\u5341\u4e8c\u6708"\
+ ""]
+ ::msgcat::mcset zh BCE "\u516c\u5143\u524d"
+ ::msgcat::mcset zh CE "\u516c\u5143"
+ ::msgcat::mcset zh AM "\u4e0a\u5348"
+ ::msgcat::mcset zh PM "\u4e0b\u5348"
+ ::msgcat::mcset zh LOCALE_NUMERALS "\u3007 \u4e00 \u4e8c \u4e09 \u56db \u4e94 \u516d \u4e03 \u516b \u4e5d \u5341 \u5341\u4e00 \u5341\u4e8c \u5341\u4e09 \u5341\u56db \u5341\u4e94 \u5341\u516d \u5341\u4e03 \u5341\u516b \u5341\u4e5d \u4e8c\u5341 \u5eff\u4e00 \u5eff\u4e8c \u5eff\u4e09 \u5eff\u56db \u5eff\u4e94 \u5eff\u516d \u5eff\u4e03 \u5eff\u516b \u5eff\u4e5d \u4e09\u5341 \u5345\u4e00 \u5345\u4e8c \u5345\u4e09 \u5345\u56db \u5345\u4e94 \u5345\u516d \u5345\u4e03 \u5345\u516b \u5345\u4e5d \u56db\u5341 \u56db\u5341\u4e00 \u56db\u5341\u4e8c \u56db\u5341\u4e09 \u56db\u5341\u56db \u56db\u5341\u4e94 \u56db\u5341\u516d \u56db\u5341\u4e03 \u56db\u5341\u516b \u56db\u5341\u4e5d \u4e94\u5341 \u4e94\u5341\u4e00 \u4e94\u5341\u4e8c \u4e94\u5341\u4e09 \u4e94\u5341\u56db \u4e94\u5341\u4e94 \u4e94\u5341\u516d \u4e94\u5341\u4e03 \u4e94\u5341\u516b \u4e94\u5341\u4e5d \u516d\u5341 \u516d\u5341\u4e00 \u516d\u5341\u4e8c \u516d\u5341\u4e09 \u516d\u5341\u56db \u516d\u5341\u4e94 \u516d\u5341\u516d \u516d\u5341\u4e03 \u516d\u5341\u516b \u516d\u5341\u4e5d \u4e03\u5341 \u4e03\u5341\u4e00 \u4e03\u5341\u4e8c \u4e03\u5341\u4e09 \u4e03\u5341\u56db \u4e03\u5341\u4e94 \u4e03\u5341\u516d \u4e03\u5341\u4e03 \u4e03\u5341\u516b \u4e03\u5341\u4e5d \u516b\u5341 \u516b\u5341\u4e00 \u516b\u5341\u4e8c \u516b\u5341\u4e09 \u516b\u5341\u56db \u516b\u5341\u4e94 \u516b\u5341\u516d \u516b\u5341\u4e03 \u516b\u5341\u516b \u516b\u5341\u4e5d \u4e5d\u5341 \u4e5d\u5341\u4e00 \u4e5d\u5341\u4e8c \u4e5d\u5341\u4e09 \u4e5d\u5341\u56db \u4e5d\u5341\u4e94 \u4e5d\u5341\u516d \u4e5d\u5341\u4e03 \u4e5d\u5341\u516b \u4e5d\u5341\u4e5d"
+ ::msgcat::mcset zh LOCALE_DATE_FORMAT "\u516c\u5143%Y\u5e74%B%Od\u65e5"
+ ::msgcat::mcset zh LOCALE_TIME_FORMAT "%OH\u65f6%OM\u5206%OS\u79d2"
+ ::msgcat::mcset zh LOCALE_DATE_TIME_FORMAT "%A %Y\u5e74%B%Od\u65e5%OH\u65f6%OM\u5206%OS\u79d2 %z"
+}
diff --git a/library/msgs/zh_CN.msg b/library/msgs/zh_CN.msg
new file mode 100755
index 0000000..d62ce77
--- /dev/null
+++ b/library/msgs/zh_CN.msg
@@ -0,0 +1,7 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset zh_CN DATE_FORMAT "%Y-%m-%e"
+ ::msgcat::mcset zh_CN TIME_FORMAT "%k:%M:%S"
+ ::msgcat::mcset zh_CN TIME_FORMAT_12 "%P%I\u65f6%M\u5206%S\u79d2"
+ ::msgcat::mcset zh_CN DATE_TIME_FORMAT "%Y-%m-%e %k:%M:%S %z"
+}
diff --git a/library/msgs/zh_HK.msg b/library/msgs/zh_HK.msg
new file mode 100755
index 0000000..badb1dd
--- /dev/null
+++ b/library/msgs/zh_HK.msg
@@ -0,0 +1,28 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset zh_HK DAYS_OF_WEEK_ABBREV [list \
+ "\u65e5"\
+ "\u4e00"\
+ "\u4e8c"\
+ "\u4e09"\
+ "\u56db"\
+ "\u4e94"\
+ "\u516d"]
+ ::msgcat::mcset zh_HK MONTHS_ABBREV [list \
+ "1\u6708"\
+ "2\u6708"\
+ "3\u6708"\
+ "4\u6708"\
+ "5\u6708"\
+ "6\u6708"\
+ "7\u6708"\
+ "8\u6708"\
+ "9\u6708"\
+ "10\u6708"\
+ "11\u6708"\
+ "12\u6708"\
+ ""]
+ ::msgcat::mcset zh_HK DATE_FORMAT "%Y\u5e74%m\u6708%e\u65e5"
+ ::msgcat::mcset zh_HK TIME_FORMAT_12 "%P%I:%M:%S"
+ ::msgcat::mcset zh_HK DATE_TIME_FORMAT "%Y\u5e74%m\u6708%e\u65e5 %P%I:%M:%S %z"
+}
diff --git a/library/msgs/zh_SG.msg b/library/msgs/zh_SG.msg
new file mode 100755
index 0000000..a2f3e39
--- /dev/null
+++ b/library/msgs/zh_SG.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset zh_SG AM "\u4e0a\u5348"
+ ::msgcat::mcset zh_SG PM "\u4e2d\u5348"
+ ::msgcat::mcset zh_SG DATE_FORMAT "%d %B %Y"
+ ::msgcat::mcset zh_SG TIME_FORMAT_12 "%P %I:%M:%S"
+ ::msgcat::mcset zh_SG DATE_TIME_FORMAT "%d %B %Y %P %I:%M:%S %z"
+}
diff --git a/library/msgs/zh_TW.msg b/library/msgs/zh_TW.msg
new file mode 100755
index 0000000..e0796b1
--- /dev/null
+++ b/library/msgs/zh_TW.msg
@@ -0,0 +1,8 @@
+# created by tools/loadICU.tcl -- do not edit
+namespace eval ::tcl::clock {
+ ::msgcat::mcset zh_TW BCE "\u6c11\u570b\u524d"
+ ::msgcat::mcset zh_TW CE "\u6c11\u570b"
+ ::msgcat::mcset zh_TW DATE_FORMAT "%Y/%m/%e"
+ ::msgcat::mcset zh_TW TIME_FORMAT_12 "%P %I:%M:%S"
+ ::msgcat::mcset zh_TW DATE_TIME_FORMAT "%Y/%m/%e %P %I:%M:%S %z"
+}
diff --git a/library/tzdata/Africa/Abidjan b/library/tzdata/Africa/Abidjan
new file mode 100644
index 0000000..ebe617d
--- /dev/null
+++ b/library/tzdata/Africa/Abidjan
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Abidjan) {
+ {-9223372036854775808 -968 0 LMT}
+ {-1830383032 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Accra b/library/tzdata/Africa/Accra
new file mode 100644
index 0000000..7e323e5
--- /dev/null
+++ b/library/tzdata/Africa/Accra
@@ -0,0 +1,20 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Accra) {
+ {-9223372036854775808 -52 0 LMT}
+ {-1640995148 0 0 GMT}
+ {-1051920000 1200 1 GHST}
+ {-1041466800 0 0 GMT}
+ {-1020384000 1200 1 GHST}
+ {-1009930800 0 0 GMT}
+ {-988848000 1200 1 GHST}
+ {-978394800 0 0 GMT}
+ {-957312000 1200 1 GHST}
+ {-946858800 0 0 GMT}
+ {-925689600 1200 1 GHST}
+ {-915236400 0 0 GMT}
+ {-894153600 1200 1 GHST}
+ {-883700400 0 0 GMT}
+ {-862617600 1200 1 GHST}
+ {-852164400 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Addis_Ababa b/library/tzdata/Africa/Addis_Ababa
new file mode 100644
index 0000000..fc45012
--- /dev/null
+++ b/library/tzdata/Africa/Addis_Ababa
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Addis_Ababa) {
+ {-9223372036854775808 9288 0 LMT}
+ {-3155682888 9320 0 ADMT}
+ {-1062210920 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Algiers b/library/tzdata/Africa/Algiers
new file mode 100644
index 0000000..730eb02
--- /dev/null
+++ b/library/tzdata/Africa/Algiers
@@ -0,0 +1,39 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Algiers) {
+ {-9223372036854775808 732 0 LMT}
+ {-2486679072 561 0 PMT}
+ {-1855958961 0 0 WET}
+ {-1689814800 3600 1 WEST}
+ {-1680397200 0 0 WET}
+ {-1665363600 3600 1 WEST}
+ {-1648342800 0 0 WET}
+ {-1635123600 3600 1 WEST}
+ {-1616893200 0 0 WET}
+ {-1604278800 3600 1 WEST}
+ {-1585443600 0 0 WET}
+ {-1574038800 3600 1 WEST}
+ {-1552266000 0 0 WET}
+ {-1539997200 3600 1 WEST}
+ {-1531443600 0 0 WET}
+ {-956365200 3600 1 WEST}
+ {-950486400 0 0 WET}
+ {-942012000 3600 0 CET}
+ {-812502000 7200 1 CEST}
+ {-796262400 3600 0 CET}
+ {-781052400 7200 1 CEST}
+ {-766630800 3600 0 CET}
+ {-733280400 0 0 WET}
+ {-439430400 3600 0 CET}
+ {-212029200 0 0 WET}
+ {41468400 3600 1 WEST}
+ {54774000 0 0 WET}
+ {231724800 3600 1 WEST}
+ {246240000 3600 0 CET}
+ {259545600 7200 1 CEST}
+ {275274000 3600 0 CET}
+ {309740400 0 0 WET}
+ {325468800 3600 1 WEST}
+ {341802000 0 0 WET}
+ {357523200 3600 0 CET}
+}
diff --git a/library/tzdata/Africa/Asmera b/library/tzdata/Africa/Asmera
new file mode 100644
index 0000000..4457839
--- /dev/null
+++ b/library/tzdata/Africa/Asmera
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Asmera) {
+ {-9223372036854775808 9332 0 LMT}
+ {-3155682932 9332 0 AMT}
+ {-2524530932 9320 0 ADMT}
+ {-1062210920 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Bamako b/library/tzdata/Africa/Bamako
new file mode 100644
index 0000000..15debdd
--- /dev/null
+++ b/library/tzdata/Africa/Bamako
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Bamako) {
+ {-9223372036854775808 -1920 0 LMT}
+ {-1830382080 0 0 GMT}
+ {-1131235200 -3600 0 WAT}
+ {-300841200 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Bangui b/library/tzdata/Africa/Bangui
new file mode 100644
index 0000000..11838a3
--- /dev/null
+++ b/library/tzdata/Africa/Bangui
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Bangui) {
+ {-9223372036854775808 4460 0 LMT}
+ {-1830388460 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Banjul b/library/tzdata/Africa/Banjul
new file mode 100644
index 0000000..a935e1b
--- /dev/null
+++ b/library/tzdata/Africa/Banjul
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Banjul) {
+ {-9223372036854775808 -3996 0 LMT}
+ {-1830380004 -3996 0 BMT}
+ {-1104533604 -3600 0 WAT}
+ {-189385200 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Bissau b/library/tzdata/Africa/Bissau
new file mode 100644
index 0000000..bab316a
--- /dev/null
+++ b/library/tzdata/Africa/Bissau
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Bissau) {
+ {-9223372036854775808 -3740 0 LMT}
+ {-1849388260 -3600 0 WAT}
+ {157770000 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Blantyre b/library/tzdata/Africa/Blantyre
new file mode 100644
index 0000000..b5d3b75
--- /dev/null
+++ b/library/tzdata/Africa/Blantyre
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Blantyre) {
+ {-9223372036854775808 8400 0 LMT}
+ {-2109291600 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Brazzaville b/library/tzdata/Africa/Brazzaville
new file mode 100644
index 0000000..44910a6
--- /dev/null
+++ b/library/tzdata/Africa/Brazzaville
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Brazzaville) {
+ {-9223372036854775808 3668 0 LMT}
+ {-1830387668 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Bujumbura b/library/tzdata/Africa/Bujumbura
new file mode 100644
index 0000000..12a2660
--- /dev/null
+++ b/library/tzdata/Africa/Bujumbura
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Bujumbura) {
+ {-9223372036854775808 7048 0 LMT}
+ {-2524528648 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Cairo b/library/tzdata/Africa/Cairo
new file mode 100644
index 0000000..124db3c
--- /dev/null
+++ b/library/tzdata/Africa/Cairo
@@ -0,0 +1,304 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Cairo) {
+ {-9223372036854775808 7500 0 LMT}
+ {-2185409100 7200 0 EET}
+ {-929844000 10800 1 EEST}
+ {-923108400 7200 0 EET}
+ {-906170400 10800 1 EEST}
+ {-892868400 7200 0 EET}
+ {-875844000 10800 1 EEST}
+ {-857790000 7200 0 EET}
+ {-844308000 10800 1 EEST}
+ {-825822000 7200 0 EET}
+ {-812685600 10800 1 EEST}
+ {-794199600 7200 0 EET}
+ {-779853600 10800 1 EEST}
+ {-762663600 7200 0 EET}
+ {-399088800 10800 1 EEST}
+ {-386650800 7200 0 EET}
+ {-368330400 10800 1 EEST}
+ {-355114800 7200 0 EET}
+ {-336790800 10800 1 EEST}
+ {-323654400 7200 0 EET}
+ {-305168400 10800 1 EEST}
+ {-292032000 7200 0 EET}
+ {-273632400 10800 1 EEST}
+ {-260496000 7200 0 EET}
+ {-242096400 10800 1 EEST}
+ {-228960000 7200 0 EET}
+ {-210560400 10800 1 EEST}
+ {-197424000 7200 0 EET}
+ {-178938000 10800 1 EEST}
+ {-165801600 7200 0 EET}
+ {-147402000 10800 1 EEST}
+ {-134265600 7200 0 EET}
+ {-115866000 10800 1 EEST}
+ {-102643200 7200 0 EET}
+ {-84330000 10800 1 EEST}
+ {-71107200 7200 0 EET}
+ {-52707600 10800 1 EEST}
+ {-39484800 7200 0 EET}
+ {-21171600 10800 1 EEST}
+ {-7948800 7200 0 EET}
+ {10364400 10800 1 EEST}
+ {23587200 7200 0 EET}
+ {41900400 10800 1 EEST}
+ {55123200 7200 0 EET}
+ {73522800 10800 1 EEST}
+ {86745600 7200 0 EET}
+ {105058800 10800 1 EEST}
+ {118281600 7200 0 EET}
+ {136594800 10800 1 EEST}
+ {149817600 7200 0 EET}
+ {168130800 10800 1 EEST}
+ {181353600 7200 0 EET}
+ {199753200 10800 1 EEST}
+ {212976000 7200 0 EET}
+ {231289200 10800 1 EEST}
+ {244512000 7200 0 EET}
+ {262825200 10800 1 EEST}
+ {276048000 7200 0 EET}
+ {294361200 10800 1 EEST}
+ {307584000 7200 0 EET}
+ {325983600 10800 1 EEST}
+ {339206400 7200 0 EET}
+ {357519600 10800 1 EEST}
+ {370742400 7200 0 EET}
+ {396399600 10800 1 EEST}
+ {402278400 7200 0 EET}
+ {426812400 10800 1 EEST}
+ {433814400 7200 0 EET}
+ {452214000 10800 1 EEST}
+ {465436800 7200 0 EET}
+ {483750000 10800 1 EEST}
+ {496972800 7200 0 EET}
+ {515286000 10800 1 EEST}
+ {528508800 7200 0 EET}
+ {546822000 10800 1 EEST}
+ {560044800 7200 0 EET}
+ {578444400 10800 1 EEST}
+ {591667200 7200 0 EET}
+ {610412400 10800 1 EEST}
+ {623203200 7200 0 EET}
+ {641516400 10800 1 EEST}
+ {654739200 7200 0 EET}
+ {673052400 10800 1 EEST}
+ {686275200 7200 0 EET}
+ {704674800 10800 1 EEST}
+ {717897600 7200 0 EET}
+ {736210800 10800 1 EEST}
+ {749433600 7200 0 EET}
+ {767746800 10800 1 EEST}
+ {780969600 7200 0 EET}
+ {799027200 10800 1 EEST}
+ {812329200 7200 0 EET}
+ {830476800 10800 1 EEST}
+ {843778800 7200 0 EET}
+ {861926400 10800 1 EEST}
+ {875228400 7200 0 EET}
+ {893376000 10800 1 EEST}
+ {906678000 7200 0 EET}
+ {925430400 10800 1 EEST}
+ {938732400 7200 0 EET}
+ {956880000 10800 1 EEST}
+ {970182000 7200 0 EET}
+ {988329600 10800 1 EEST}
+ {1001631600 7200 0 EET}
+ {1019779200 10800 1 EEST}
+ {1033081200 7200 0 EET}
+ {1051228800 10800 1 EEST}
+ {1064530800 7200 0 EET}
+ {1083283200 10800 1 EEST}
+ {1096585200 7200 0 EET}
+ {1114732800 10800 1 EEST}
+ {1128034800 7200 0 EET}
+ {1146182400 10800 1 EEST}
+ {1159484400 7200 0 EET}
+ {1177632000 10800 1 EEST}
+ {1190934000 7200 0 EET}
+ {1209081600 10800 1 EEST}
+ {1222383600 7200 0 EET}
+ {1240531200 10800 1 EEST}
+ {1253833200 7200 0 EET}
+ {1272585600 10800 1 EEST}
+ {1285887600 7200 0 EET}
+ {1304035200 10800 1 EEST}
+ {1317337200 7200 0 EET}
+ {1335484800 10800 1 EEST}
+ {1348786800 7200 0 EET}
+ {1366934400 10800 1 EEST}
+ {1380236400 7200 0 EET}
+ {1398384000 10800 1 EEST}
+ {1411686000 7200 0 EET}
+ {1429833600 10800 1 EEST}
+ {1443135600 7200 0 EET}
+ {1461888000 10800 1 EEST}
+ {1475190000 7200 0 EET}
+ {1493337600 10800 1 EEST}
+ {1506639600 7200 0 EET}
+ {1524787200 10800 1 EEST}
+ {1538089200 7200 0 EET}
+ {1556236800 10800 1 EEST}
+ {1569538800 7200 0 EET}
+ {1587686400 10800 1 EEST}
+ {1600988400 7200 0 EET}
+ {1619740800 10800 1 EEST}
+ {1633042800 7200 0 EET}
+ {1651190400 10800 1 EEST}
+ {1664492400 7200 0 EET}
+ {1682640000 10800 1 EEST}
+ {1695942000 7200 0 EET}
+ {1714089600 10800 1 EEST}
+ {1727391600 7200 0 EET}
+ {1745539200 10800 1 EEST}
+ {1758841200 7200 0 EET}
+ {1776988800 10800 1 EEST}
+ {1790290800 7200 0 EET}
+ {1809043200 10800 1 EEST}
+ {1822345200 7200 0 EET}
+ {1840492800 10800 1 EEST}
+ {1853794800 7200 0 EET}
+ {1871942400 10800 1 EEST}
+ {1885244400 7200 0 EET}
+ {1903392000 10800 1 EEST}
+ {1916694000 7200 0 EET}
+ {1934841600 10800 1 EEST}
+ {1948143600 7200 0 EET}
+ {1966896000 10800 1 EEST}
+ {1980198000 7200 0 EET}
+ {1998345600 10800 1 EEST}
+ {2011647600 7200 0 EET}
+ {2029795200 10800 1 EEST}
+ {2043097200 7200 0 EET}
+ {2061244800 10800 1 EEST}
+ {2074546800 7200 0 EET}
+ {2092694400 10800 1 EEST}
+ {2105996400 7200 0 EET}
+ {2124144000 10800 1 EEST}
+ {2137446000 7200 0 EET}
+ {2156198400 10800 1 EEST}
+ {2169500400 7200 0 EET}
+ {2187648000 10800 1 EEST}
+ {2200950000 7200 0 EET}
+ {2219097600 10800 1 EEST}
+ {2232399600 7200 0 EET}
+ {2250547200 10800 1 EEST}
+ {2263849200 7200 0 EET}
+ {2281996800 10800 1 EEST}
+ {2295298800 7200 0 EET}
+ {2313446400 10800 1 EEST}
+ {2326748400 7200 0 EET}
+ {2345500800 10800 1 EEST}
+ {2358802800 7200 0 EET}
+ {2376950400 10800 1 EEST}
+ {2390252400 7200 0 EET}
+ {2408400000 10800 1 EEST}
+ {2421702000 7200 0 EET}
+ {2439849600 10800 1 EEST}
+ {2453151600 7200 0 EET}
+ {2471299200 10800 1 EEST}
+ {2484601200 7200 0 EET}
+ {2503353600 10800 1 EEST}
+ {2516655600 7200 0 EET}
+ {2534803200 10800 1 EEST}
+ {2548105200 7200 0 EET}
+ {2566252800 10800 1 EEST}
+ {2579554800 7200 0 EET}
+ {2597702400 10800 1 EEST}
+ {2611004400 7200 0 EET}
+ {2629152000 10800 1 EEST}
+ {2642454000 7200 0 EET}
+ {2660601600 10800 1 EEST}
+ {2673903600 7200 0 EET}
+ {2692656000 10800 1 EEST}
+ {2705958000 7200 0 EET}
+ {2724105600 10800 1 EEST}
+ {2737407600 7200 0 EET}
+ {2755555200 10800 1 EEST}
+ {2768857200 7200 0 EET}
+ {2787004800 10800 1 EEST}
+ {2800306800 7200 0 EET}
+ {2818454400 10800 1 EEST}
+ {2831756400 7200 0 EET}
+ {2850508800 10800 1 EEST}
+ {2863810800 7200 0 EET}
+ {2881958400 10800 1 EEST}
+ {2895260400 7200 0 EET}
+ {2913408000 10800 1 EEST}
+ {2926710000 7200 0 EET}
+ {2944857600 10800 1 EEST}
+ {2958159600 7200 0 EET}
+ {2976307200 10800 1 EEST}
+ {2989609200 7200 0 EET}
+ {3007756800 10800 1 EEST}
+ {3021058800 7200 0 EET}
+ {3039811200 10800 1 EEST}
+ {3053113200 7200 0 EET}
+ {3071260800 10800 1 EEST}
+ {3084562800 7200 0 EET}
+ {3102710400 10800 1 EEST}
+ {3116012400 7200 0 EET}
+ {3134160000 10800 1 EEST}
+ {3147462000 7200 0 EET}
+ {3165609600 10800 1 EEST}
+ {3178911600 7200 0 EET}
+ {3197059200 10800 1 EEST}
+ {3210361200 7200 0 EET}
+ {3229113600 10800 1 EEST}
+ {3242415600 7200 0 EET}
+ {3260563200 10800 1 EEST}
+ {3273865200 7200 0 EET}
+ {3292012800 10800 1 EEST}
+ {3305314800 7200 0 EET}
+ {3323462400 10800 1 EEST}
+ {3336764400 7200 0 EET}
+ {3354912000 10800 1 EEST}
+ {3368214000 7200 0 EET}
+ {3386966400 10800 1 EEST}
+ {3400268400 7200 0 EET}
+ {3418416000 10800 1 EEST}
+ {3431718000 7200 0 EET}
+ {3449865600 10800 1 EEST}
+ {3463167600 7200 0 EET}
+ {3481315200 10800 1 EEST}
+ {3494617200 7200 0 EET}
+ {3512764800 10800 1 EEST}
+ {3526066800 7200 0 EET}
+ {3544214400 10800 1 EEST}
+ {3557516400 7200 0 EET}
+ {3576268800 10800 1 EEST}
+ {3589570800 7200 0 EET}
+ {3607718400 10800 1 EEST}
+ {3621020400 7200 0 EET}
+ {3639168000 10800 1 EEST}
+ {3652470000 7200 0 EET}
+ {3670617600 10800 1 EEST}
+ {3683919600 7200 0 EET}
+ {3702067200 10800 1 EEST}
+ {3715369200 7200 0 EET}
+ {3734121600 10800 1 EEST}
+ {3747423600 7200 0 EET}
+ {3765571200 10800 1 EEST}
+ {3778873200 7200 0 EET}
+ {3797020800 10800 1 EEST}
+ {3810322800 7200 0 EET}
+ {3828470400 10800 1 EEST}
+ {3841772400 7200 0 EET}
+ {3859920000 10800 1 EEST}
+ {3873222000 7200 0 EET}
+ {3891369600 10800 1 EEST}
+ {3904671600 7200 0 EET}
+ {3923424000 10800 1 EEST}
+ {3936726000 7200 0 EET}
+ {3954873600 10800 1 EEST}
+ {3968175600 7200 0 EET}
+ {3986323200 10800 1 EEST}
+ {3999625200 7200 0 EET}
+ {4017772800 10800 1 EEST}
+ {4031074800 7200 0 EET}
+ {4049222400 10800 1 EEST}
+ {4062524400 7200 0 EET}
+ {4080672000 10800 1 EEST}
+ {4093974000 7200 0 EET}
+}
diff --git a/library/tzdata/Africa/Casablanca b/library/tzdata/Africa/Casablanca
new file mode 100644
index 0000000..112aa19
--- /dev/null
+++ b/library/tzdata/Africa/Casablanca
@@ -0,0 +1,24 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Casablanca) {
+ {-9223372036854775808 -1820 0 LMT}
+ {-1773012580 0 0 WET}
+ {-956361600 3600 1 WEST}
+ {-950490000 0 0 WET}
+ {-942019200 3600 1 WEST}
+ {-761187600 0 0 WET}
+ {-617241600 3600 1 WEST}
+ {-605149200 0 0 WET}
+ {-81432000 3600 1 WEST}
+ {-71110800 0 0 WET}
+ {141264000 3600 1 WEST}
+ {147222000 0 0 WET}
+ {199756800 3600 1 WEST}
+ {207702000 0 0 WET}
+ {231292800 3600 1 WEST}
+ {244249200 0 0 WET}
+ {265507200 3600 1 WEST}
+ {271033200 0 0 WET}
+ {448243200 3600 0 CET}
+ {504918000 0 0 WET}
+}
diff --git a/library/tzdata/Africa/Ceuta b/library/tzdata/Africa/Ceuta
new file mode 100644
index 0000000..bcbbd8c
--- /dev/null
+++ b/library/tzdata/Africa/Ceuta
@@ -0,0 +1,258 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Ceuta) {
+ {-9223372036854775808 -1276 0 LMT}
+ {-2177451524 0 0 WET}
+ {-1630112400 3600 1 WEST}
+ {-1616810400 0 0 WET}
+ {-1451692800 0 0 WET}
+ {-1442451600 3600 1 WEST}
+ {-1427677200 0 0 WET}
+ {-1379293200 3600 1 WEST}
+ {-1364778000 0 0 WET}
+ {-1348448400 3600 1 WEST}
+ {-1333328400 0 0 WET}
+ {-1316394000 3600 1 WEST}
+ {-1301274000 0 0 WET}
+ {-1293840000 0 0 WET}
+ {-81432000 3600 1 WEST}
+ {-71110800 0 0 WET}
+ {141264000 3600 1 WEST}
+ {147222000 0 0 WET}
+ {199756800 3600 1 WEST}
+ {207702000 0 0 WET}
+ {231292800 3600 1 WEST}
+ {244249200 0 0 WET}
+ {265507200 3600 1 WEST}
+ {271033200 0 0 WET}
+ {448243200 3600 0 CET}
+ {504918000 3600 0 CET}
+ {512528400 7200 1 CEST}
+ {528253200 3600 0 CET}
+ {543978000 7200 1 CEST}
+ {559702800 3600 0 CET}
+ {575427600 7200 1 CEST}
+ {591152400 3600 0 CET}
+ {606877200 7200 1 CEST}
+ {622602000 3600 0 CET}
+ {638326800 7200 1 CEST}
+ {654656400 3600 0 CET}
+ {670381200 7200 1 CEST}
+ {686106000 3600 0 CET}
+ {701830800 7200 1 CEST}
+ {717555600 3600 0 CET}
+ {733280400 7200 1 CEST}
+ {749005200 3600 0 CET}
+ {764730000 7200 1 CEST}
+ {780454800 3600 0 CET}
+ {796179600 7200 1 CEST}
+ {811904400 3600 0 CET}
+ {828234000 7200 1 CEST}
+ {846378000 3600 0 CET}
+ {859683600 7200 1 CEST}
+ {877827600 3600 0 CET}
+ {891133200 7200 1 CEST}
+ {909277200 3600 0 CET}
+ {922582800 7200 1 CEST}
+ {941331600 3600 0 CET}
+ {954032400 7200 1 CEST}
+ {972781200 3600 0 CET}
+ {985482000 7200 1 CEST}
+ {1004230800 3600 0 CET}
+ {1017536400 7200 1 CEST}
+ {1035680400 3600 0 CET}
+ {1048986000 7200 1 CEST}
+ {1067130000 3600 0 CET}
+ {1080435600 7200 1 CEST}
+ {1099184400 3600 0 CET}
+ {1111885200 7200 1 CEST}
+ {1130634000 3600 0 CET}
+ {1143334800 7200 1 CEST}
+ {1162083600 3600 0 CET}
+ {1174784400 7200 1 CEST}
+ {1193533200 3600 0 CET}
+ {1206838800 7200 1 CEST}
+ {1224982800 3600 0 CET}
+ {1238288400 7200 1 CEST}
+ {1256432400 3600 0 CET}
+ {1269738000 7200 1 CEST}
+ {1288486800 3600 0 CET}
+ {1301187600 7200 1 CEST}
+ {1319936400 3600 0 CET}
+ {1332637200 7200 1 CEST}
+ {1351386000 3600 0 CET}
+ {1364691600 7200 1 CEST}
+ {1382835600 3600 0 CET}
+ {1396141200 7200 1 CEST}
+ {1414285200 3600 0 CET}
+ {1427590800 7200 1 CEST}
+ {1445734800 3600 0 CET}
+ {1459040400 7200 1 CEST}
+ {1477789200 3600 0 CET}
+ {1490490000 7200 1 CEST}
+ {1509238800 3600 0 CET}
+ {1521939600 7200 1 CEST}
+ {1540688400 3600 0 CET}
+ {1553994000 7200 1 CEST}
+ {1572138000 3600 0 CET}
+ {1585443600 7200 1 CEST}
+ {1603587600 3600 0 CET}
+ {1616893200 7200 1 CEST}
+ {1635642000 3600 0 CET}
+ {1648342800 7200 1 CEST}
+ {1667091600 3600 0 CET}
+ {1679792400 7200 1 CEST}
+ {1698541200 3600 0 CET}
+ {1711846800 7200 1 CEST}
+ {1729990800 3600 0 CET}
+ {1743296400 7200 1 CEST}
+ {1761440400 3600 0 CET}
+ {1774746000 7200 1 CEST}
+ {1792890000 3600 0 CET}
+ {1806195600 7200 1 CEST}
+ {1824944400 3600 0 CET}
+ {1837645200 7200 1 CEST}
+ {1856394000 3600 0 CET}
+ {1869094800 7200 1 CEST}
+ {1887843600 3600 0 CET}
+ {1901149200 7200 1 CEST}
+ {1919293200 3600 0 CET}
+ {1932598800 7200 1 CEST}
+ {1950742800 3600 0 CET}
+ {1964048400 7200 1 CEST}
+ {1982797200 3600 0 CET}
+ {1995498000 7200 1 CEST}
+ {2014246800 3600 0 CET}
+ {2026947600 7200 1 CEST}
+ {2045696400 3600 0 CET}
+ {2058397200 7200 1 CEST}
+ {2077146000 3600 0 CET}
+ {2090451600 7200 1 CEST}
+ {2108595600 3600 0 CET}
+ {2121901200 7200 1 CEST}
+ {2140045200 3600 0 CET}
+ {2153350800 7200 1 CEST}
+ {2172099600 3600 0 CET}
+ {2184800400 7200 1 CEST}
+ {2203549200 3600 0 CET}
+ {2216250000 7200 1 CEST}
+ {2234998800 3600 0 CET}
+ {2248304400 7200 1 CEST}
+ {2266448400 3600 0 CET}
+ {2279754000 7200 1 CEST}
+ {2297898000 3600 0 CET}
+ {2311203600 7200 1 CEST}
+ {2329347600 3600 0 CET}
+ {2342653200 7200 1 CEST}
+ {2361402000 3600 0 CET}
+ {2374102800 7200 1 CEST}
+ {2392851600 3600 0 CET}
+ {2405552400 7200 1 CEST}
+ {2424301200 3600 0 CET}
+ {2437606800 7200 1 CEST}
+ {2455750800 3600 0 CET}
+ {2469056400 7200 1 CEST}
+ {2487200400 3600 0 CET}
+ {2500506000 7200 1 CEST}
+ {2519254800 3600 0 CET}
+ {2531955600 7200 1 CEST}
+ {2550704400 3600 0 CET}
+ {2563405200 7200 1 CEST}
+ {2582154000 3600 0 CET}
+ {2595459600 7200 1 CEST}
+ {2613603600 3600 0 CET}
+ {2626909200 7200 1 CEST}
+ {2645053200 3600 0 CET}
+ {2658358800 7200 1 CEST}
+ {2676502800 3600 0 CET}
+ {2689808400 7200 1 CEST}
+ {2708557200 3600 0 CET}
+ {2721258000 7200 1 CEST}
+ {2740006800 3600 0 CET}
+ {2752707600 7200 1 CEST}
+ {2771456400 3600 0 CET}
+ {2784762000 7200 1 CEST}
+ {2802906000 3600 0 CET}
+ {2816211600 7200 1 CEST}
+ {2834355600 3600 0 CET}
+ {2847661200 7200 1 CEST}
+ {2866410000 3600 0 CET}
+ {2879110800 7200 1 CEST}
+ {2897859600 3600 0 CET}
+ {2910560400 7200 1 CEST}
+ {2929309200 3600 0 CET}
+ {2942010000 7200 1 CEST}
+ {2960758800 3600 0 CET}
+ {2974064400 7200 1 CEST}
+ {2992208400 3600 0 CET}
+ {3005514000 7200 1 CEST}
+ {3023658000 3600 0 CET}
+ {3036963600 7200 1 CEST}
+ {3055712400 3600 0 CET}
+ {3068413200 7200 1 CEST}
+ {3087162000 3600 0 CET}
+ {3099862800 7200 1 CEST}
+ {3118611600 3600 0 CET}
+ {3131917200 7200 1 CEST}
+ {3150061200 3600 0 CET}
+ {3163366800 7200 1 CEST}
+ {3181510800 3600 0 CET}
+ {3194816400 7200 1 CEST}
+ {3212960400 3600 0 CET}
+ {3226266000 7200 1 CEST}
+ {3245014800 3600 0 CET}
+ {3257715600 7200 1 CEST}
+ {3276464400 3600 0 CET}
+ {3289165200 7200 1 CEST}
+ {3307914000 3600 0 CET}
+ {3321219600 7200 1 CEST}
+ {3339363600 3600 0 CET}
+ {3352669200 7200 1 CEST}
+ {3370813200 3600 0 CET}
+ {3384118800 7200 1 CEST}
+ {3402867600 3600 0 CET}
+ {3415568400 7200 1 CEST}
+ {3434317200 3600 0 CET}
+ {3447018000 7200 1 CEST}
+ {3465766800 3600 0 CET}
+ {3479072400 7200 1 CEST}
+ {3497216400 3600 0 CET}
+ {3510522000 7200 1 CEST}
+ {3528666000 3600 0 CET}
+ {3541971600 7200 1 CEST}
+ {3560115600 3600 0 CET}
+ {3573421200 7200 1 CEST}
+ {3592170000 3600 0 CET}
+ {3604870800 7200 1 CEST}
+ {3623619600 3600 0 CET}
+ {3636320400 7200 1 CEST}
+ {3655069200 3600 0 CET}
+ {3668374800 7200 1 CEST}
+ {3686518800 3600 0 CET}
+ {3699824400 7200 1 CEST}
+ {3717968400 3600 0 CET}
+ {3731274000 7200 1 CEST}
+ {3750022800 3600 0 CET}
+ {3762723600 7200 1 CEST}
+ {3781472400 3600 0 CET}
+ {3794173200 7200 1 CEST}
+ {3812922000 3600 0 CET}
+ {3825622800 7200 1 CEST}
+ {3844371600 3600 0 CET}
+ {3857677200 7200 1 CEST}
+ {3875821200 3600 0 CET}
+ {3889126800 7200 1 CEST}
+ {3907270800 3600 0 CET}
+ {3920576400 7200 1 CEST}
+ {3939325200 3600 0 CET}
+ {3952026000 7200 1 CEST}
+ {3970774800 3600 0 CET}
+ {3983475600 7200 1 CEST}
+ {4002224400 3600 0 CET}
+ {4015530000 7200 1 CEST}
+ {4033674000 3600 0 CET}
+ {4046979600 7200 1 CEST}
+ {4065123600 3600 0 CET}
+ {4078429200 7200 1 CEST}
+ {4096573200 3600 0 CET}
+}
diff --git a/library/tzdata/Africa/Conakry b/library/tzdata/Africa/Conakry
new file mode 100644
index 0000000..5616f15
--- /dev/null
+++ b/library/tzdata/Africa/Conakry
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Conakry) {
+ {-9223372036854775808 -3292 0 LMT}
+ {-1830380708 0 0 GMT}
+ {-1131235200 -3600 0 WAT}
+ {-315615600 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Dakar b/library/tzdata/Africa/Dakar
new file mode 100644
index 0000000..7ac0d9e
--- /dev/null
+++ b/library/tzdata/Africa/Dakar
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Dakar) {
+ {-9223372036854775808 -4184 0 LMT}
+ {-1830379816 -3600 0 WAT}
+ {-902098800 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Dar_es_Salaam b/library/tzdata/Africa/Dar_es_Salaam
new file mode 100644
index 0000000..7241049
--- /dev/null
+++ b/library/tzdata/Africa/Dar_es_Salaam
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Dar_es_Salaam) {
+ {-9223372036854775808 9428 0 LMT}
+ {-1230777428 10800 0 EAT}
+ {-694321200 9885 0 BEAUT}
+ {-284006685 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Djibouti b/library/tzdata/Africa/Djibouti
new file mode 100644
index 0000000..557ef33
--- /dev/null
+++ b/library/tzdata/Africa/Djibouti
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Djibouti) {
+ {-9223372036854775808 10356 0 LMT}
+ {-1846291956 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Douala b/library/tzdata/Africa/Douala
new file mode 100644
index 0000000..8285f19
--- /dev/null
+++ b/library/tzdata/Africa/Douala
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Douala) {
+ {-9223372036854775808 2328 0 LMT}
+ {-1830386328 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/El_Aaiun b/library/tzdata/Africa/El_Aaiun
new file mode 100644
index 0000000..8e19ea7
--- /dev/null
+++ b/library/tzdata/Africa/El_Aaiun
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/El_Aaiun) {
+ {-9223372036854775808 -3168 0 LMT}
+ {-1136070432 -3600 0 WAT}
+ {198291600 0 0 WET}
+}
diff --git a/library/tzdata/Africa/Freetown b/library/tzdata/Africa/Freetown
new file mode 100644
index 0000000..023593a
--- /dev/null
+++ b/library/tzdata/Africa/Freetown
@@ -0,0 +1,36 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Freetown) {
+ {-9223372036854775808 -3180 0 LMT}
+ {-2776979220 -3180 0 FMT}
+ {-1785712020 -3600 0 WAT}
+ {-1091487600 -1200 1 SLST}
+ {-1080949200 -3600 0 WAT}
+ {-1059865200 -1200 1 SLST}
+ {-1049326800 -3600 0 WAT}
+ {-1028329200 -1200 1 SLST}
+ {-1017790800 -3600 0 WAT}
+ {-996793200 -1200 1 SLST}
+ {-986254800 -3600 0 WAT}
+ {-965257200 -1200 1 SLST}
+ {-954718800 -3600 0 WAT}
+ {-933634800 -1200 1 SLST}
+ {-923096400 -3600 0 WAT}
+ {-902098800 -1200 1 SLST}
+ {-891560400 -3600 0 WAT}
+ {-870562800 -1200 1 SLST}
+ {-860024400 -3600 0 WAT}
+ {-410223600 0 0 WAT}
+ {-397180800 3600 1 SLST}
+ {-389235600 0 0 GMT}
+ {-365644800 3600 1 SLST}
+ {-357699600 0 0 GMT}
+ {-334108800 3600 1 SLST}
+ {-326163600 0 0 GMT}
+ {-302486400 3600 1 SLST}
+ {-294541200 0 0 GMT}
+ {-270950400 3600 1 SLST}
+ {-263005200 0 0 GMT}
+ {-239414400 3600 1 SLST}
+ {-231469200 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Gaborone b/library/tzdata/Africa/Gaborone
new file mode 100644
index 0000000..8a7c211
--- /dev/null
+++ b/library/tzdata/Africa/Gaborone
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Gaborone) {
+ {-9223372036854775808 6220 0 LMT}
+ {-2682294220 7200 0 CAT}
+ {-829526400 10800 1 CAST}
+ {-813805200 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Harare b/library/tzdata/Africa/Harare
new file mode 100644
index 0000000..14b348e
--- /dev/null
+++ b/library/tzdata/Africa/Harare
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Harare) {
+ {-9223372036854775808 7452 0 LMT}
+ {-2109290652 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Johannesburg b/library/tzdata/Africa/Johannesburg
new file mode 100644
index 0000000..c1bfa32
--- /dev/null
+++ b/library/tzdata/Africa/Johannesburg
@@ -0,0 +1,11 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Johannesburg) {
+ {-9223372036854775808 6720 0 LMT}
+ {-2458173120 5400 0 SAST}
+ {-2109288600 7200 0 SAST}
+ {-860976000 10800 1 SAST}
+ {-845254800 7200 0 SAST}
+ {-829526400 10800 1 SAST}
+ {-813805200 7200 0 SAST}
+}
diff --git a/library/tzdata/Africa/Kampala b/library/tzdata/Africa/Kampala
new file mode 100644
index 0000000..e60b1ef
--- /dev/null
+++ b/library/tzdata/Africa/Kampala
@@ -0,0 +1,9 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Kampala) {
+ {-9223372036854775808 7780 0 LMT}
+ {-1309745380 10800 0 EAT}
+ {-1262314800 9000 0 BEAT}
+ {-694319400 9885 0 BEAUT}
+ {-410237085 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Khartoum b/library/tzdata/Africa/Khartoum
new file mode 100644
index 0000000..ca16638
--- /dev/null
+++ b/library/tzdata/Africa/Khartoum
@@ -0,0 +1,39 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Khartoum) {
+ {-9223372036854775808 7808 0 LMT}
+ {-1230775808 7200 0 CAT}
+ {10360800 10800 1 CAST}
+ {24786000 7200 0 CAT}
+ {41810400 10800 1 CAST}
+ {56322000 7200 0 CAT}
+ {73432800 10800 1 CAST}
+ {87944400 7200 0 CAT}
+ {104882400 10800 1 CAST}
+ {119480400 7200 0 CAT}
+ {136332000 10800 1 CAST}
+ {151016400 7200 0 CAT}
+ {167781600 10800 1 CAST}
+ {182552400 7200 0 CAT}
+ {199231200 10800 1 CAST}
+ {214174800 7200 0 CAT}
+ {230680800 10800 1 CAST}
+ {245710800 7200 0 CAT}
+ {262735200 10800 1 CAST}
+ {277246800 7200 0 CAT}
+ {294184800 10800 1 CAST}
+ {308782800 7200 0 CAT}
+ {325634400 10800 1 CAST}
+ {340405200 7200 0 CAT}
+ {357084000 10800 1 CAST}
+ {371941200 7200 0 CAT}
+ {388533600 10800 1 CAST}
+ {403477200 7200 0 CAT}
+ {419983200 10800 1 CAST}
+ {435013200 7200 0 CAT}
+ {452037600 10800 1 CAST}
+ {466635600 7200 0 CAT}
+ {483487200 10800 1 CAST}
+ {498171600 7200 0 CAT}
+ {947930400 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Kigali b/library/tzdata/Africa/Kigali
new file mode 100644
index 0000000..3797e98
--- /dev/null
+++ b/library/tzdata/Africa/Kigali
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Kigali) {
+ {-9223372036854775808 7216 0 LMT}
+ {-1091498416 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Kinshasa b/library/tzdata/Africa/Kinshasa
new file mode 100644
index 0000000..30a3257
--- /dev/null
+++ b/library/tzdata/Africa/Kinshasa
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Kinshasa) {
+ {-9223372036854775808 3672 0 LMT}
+ {-2276643672 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Lagos b/library/tzdata/Africa/Lagos
new file mode 100644
index 0000000..11f5718
--- /dev/null
+++ b/library/tzdata/Africa/Lagos
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Lagos) {
+ {-9223372036854775808 816 0 LMT}
+ {-1588464816 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Libreville b/library/tzdata/Africa/Libreville
new file mode 100644
index 0000000..6ea75d9
--- /dev/null
+++ b/library/tzdata/Africa/Libreville
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Libreville) {
+ {-9223372036854775808 2268 0 LMT}
+ {-1830386268 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Lome b/library/tzdata/Africa/Lome
new file mode 100644
index 0000000..e9a0c79
--- /dev/null
+++ b/library/tzdata/Africa/Lome
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Lome) {
+ {-9223372036854775808 292 0 LMT}
+ {-2429827492 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Luanda b/library/tzdata/Africa/Luanda
new file mode 100644
index 0000000..4a2e1fe
--- /dev/null
+++ b/library/tzdata/Africa/Luanda
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Luanda) {
+ {-9223372036854775808 3176 0 LMT}
+ {-2461452776 3124 0 AOT}
+ {-1849395124 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Lubumbashi b/library/tzdata/Africa/Lubumbashi
new file mode 100644
index 0000000..4550406
--- /dev/null
+++ b/library/tzdata/Africa/Lubumbashi
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Lubumbashi) {
+ {-9223372036854775808 6592 0 LMT}
+ {-2276646592 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Lusaka b/library/tzdata/Africa/Lusaka
new file mode 100644
index 0000000..c508d5c
--- /dev/null
+++ b/library/tzdata/Africa/Lusaka
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Lusaka) {
+ {-9223372036854775808 6788 0 LMT}
+ {-2109289988 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Malabo b/library/tzdata/Africa/Malabo
new file mode 100644
index 0000000..f395c19
--- /dev/null
+++ b/library/tzdata/Africa/Malabo
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Malabo) {
+ {-9223372036854775808 2108 0 LMT}
+ {-1830386108 0 0 GMT}
+ {-190857600 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Maputo b/library/tzdata/Africa/Maputo
new file mode 100644
index 0000000..9568fd9
--- /dev/null
+++ b/library/tzdata/Africa/Maputo
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Maputo) {
+ {-9223372036854775808 7820 0 LMT}
+ {-2109291020 7200 0 CAT}
+}
diff --git a/library/tzdata/Africa/Maseru b/library/tzdata/Africa/Maseru
new file mode 100644
index 0000000..b580c60
--- /dev/null
+++ b/library/tzdata/Africa/Maseru
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Maseru) {
+ {-9223372036854775808 6600 0 LMT}
+ {-2109289800 7200 0 SAST}
+ {-829526400 10800 1 SAST}
+ {-813805200 7200 0 SAST}
+}
diff --git a/library/tzdata/Africa/Mbabane b/library/tzdata/Africa/Mbabane
new file mode 100644
index 0000000..016ba4c
--- /dev/null
+++ b/library/tzdata/Africa/Mbabane
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Mbabane) {
+ {-9223372036854775808 7464 0 LMT}
+ {-2109290664 7200 0 SAST}
+}
diff --git a/library/tzdata/Africa/Mogadishu b/library/tzdata/Africa/Mogadishu
new file mode 100644
index 0000000..fa6ffd8
--- /dev/null
+++ b/library/tzdata/Africa/Mogadishu
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Mogadishu) {
+ {-9223372036854775808 10888 0 LMT}
+ {-2403572488 10800 0 EAT}
+ {-1230778800 9000 0 BEAT}
+ {-410236200 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Monrovia b/library/tzdata/Africa/Monrovia
new file mode 100644
index 0000000..b2a95a1
--- /dev/null
+++ b/library/tzdata/Africa/Monrovia
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Monrovia) {
+ {-9223372036854775808 -2588 0 LMT}
+ {-2776979812 -2588 0 MMT}
+ {-1604359012 -2670 0 LRT}
+ {73529070 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Nairobi b/library/tzdata/Africa/Nairobi
new file mode 100644
index 0000000..72347b4
--- /dev/null
+++ b/library/tzdata/Africa/Nairobi
@@ -0,0 +1,9 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Nairobi) {
+ {-9223372036854775808 8836 0 LMT}
+ {-1309746436 10800 0 EAT}
+ {-1262314800 9000 0 BEAT}
+ {-946780200 9885 0 BEAUT}
+ {-315629085 10800 0 EAT}
+}
diff --git a/library/tzdata/Africa/Ndjamena b/library/tzdata/Africa/Ndjamena
new file mode 100644
index 0000000..708e170
--- /dev/null
+++ b/library/tzdata/Africa/Ndjamena
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Ndjamena) {
+ {-9223372036854775808 3612 0 LMT}
+ {-1830387612 3600 0 WAT}
+ {308703600 7200 1 WAST}
+ {321314400 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Niamey b/library/tzdata/Africa/Niamey
new file mode 100644
index 0000000..d24669e
--- /dev/null
+++ b/library/tzdata/Africa/Niamey
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Niamey) {
+ {-9223372036854775808 508 0 LMT}
+ {-1830384508 -3600 0 WAT}
+ {-1131231600 0 0 GMT}
+ {-315619200 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Nouakchott b/library/tzdata/Africa/Nouakchott
new file mode 100644
index 0000000..c371851
--- /dev/null
+++ b/library/tzdata/Africa/Nouakchott
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Nouakchott) {
+ {-9223372036854775808 -3828 0 LMT}
+ {-1830380172 0 0 GMT}
+ {-1131235200 -3600 0 WAT}
+ {-286930800 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Ouagadougou b/library/tzdata/Africa/Ouagadougou
new file mode 100644
index 0000000..7a11628
--- /dev/null
+++ b/library/tzdata/Africa/Ouagadougou
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Ouagadougou) {
+ {-9223372036854775808 -364 0 LMT}
+ {-1830383636 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Porto-Novo b/library/tzdata/Africa/Porto-Novo
new file mode 100644
index 0000000..4a4b800
--- /dev/null
+++ b/library/tzdata/Africa/Porto-Novo
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Porto-Novo) {
+ {-9223372036854775808 628 0 LMT}
+ {-1830384628 0 0 GMT}
+ {-1131235200 3600 0 WAT}
+}
diff --git a/library/tzdata/Africa/Sao_Tome b/library/tzdata/Africa/Sao_Tome
new file mode 100644
index 0000000..dc2ea51
--- /dev/null
+++ b/library/tzdata/Africa/Sao_Tome
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Sao_Tome) {
+ {-9223372036854775808 1616 0 LMT}
+ {-2713912016 -2192 0 LMT}
+ {-1830381808 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Timbuktu b/library/tzdata/Africa/Timbuktu
new file mode 100644
index 0000000..2afdf6f
--- /dev/null
+++ b/library/tzdata/Africa/Timbuktu
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Timbuktu) {
+ {-9223372036854775808 -724 0 LMT}
+ {-1830383276 0 0 GMT}
+}
diff --git a/library/tzdata/Africa/Tripoli b/library/tzdata/Africa/Tripoli
new file mode 100644
index 0000000..4b53eee
--- /dev/null
+++ b/library/tzdata/Africa/Tripoli
@@ -0,0 +1,31 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Tripoli) {
+ {-9223372036854775808 3164 0 LMT}
+ {-1577926364 3600 0 CET}
+ {-574902000 7200 1 CEST}
+ {-512175600 7200 1 CEST}
+ {-449888400 7200 1 CEST}
+ {-347158800 7200 0 EET}
+ {378684000 3600 0 CET}
+ {386463600 7200 1 CEST}
+ {402271200 3600 0 CET}
+ {417999600 7200 1 CEST}
+ {433807200 3600 0 CET}
+ {449622000 7200 1 CEST}
+ {465429600 3600 0 CET}
+ {481590000 7200 1 CEST}
+ {496965600 3600 0 CET}
+ {512953200 7200 1 CEST}
+ {528674400 3600 0 CET}
+ {544230000 7200 1 CEST}
+ {560037600 3600 0 CET}
+ {575852400 7200 1 CEST}
+ {591660000 3600 0 CET}
+ {607388400 7200 1 CEST}
+ {623196000 3600 0 CET}
+ {641775600 7200 0 EET}
+ {844034400 3600 0 CET}
+ {860108400 7200 1 CEST}
+ {875916000 7200 0 EET}
+}
diff --git a/library/tzdata/Africa/Tunis b/library/tzdata/Africa/Tunis
new file mode 100644
index 0000000..cc1740d
--- /dev/null
+++ b/library/tzdata/Africa/Tunis
@@ -0,0 +1,31 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Tunis) {
+ {-9223372036854775808 2444 0 LMT}
+ {-2797202444 561 0 PMT}
+ {-1855958961 3600 0 CET}
+ {-969238800 7200 1 CEST}
+ {-950490000 3600 0 CET}
+ {-941936400 7200 1 CEST}
+ {-891136800 3600 0 CET}
+ {-877827600 7200 1 CEST}
+ {-857257200 3600 0 CET}
+ {-844556400 7200 1 CEST}
+ {-842918400 3600 0 CET}
+ {-842223600 7200 1 CEST}
+ {-828230400 3600 0 CET}
+ {-812502000 7200 1 CEST}
+ {-796269600 3600 0 CET}
+ {-781052400 7200 1 CEST}
+ {-766634400 3600 0 CET}
+ {231206400 7200 1 CEST}
+ {243907200 3600 0 CET}
+ {262828800 7200 1 CEST}
+ {276048000 3600 0 CET}
+ {581126400 7200 1 CEST}
+ {591148800 3600 0 CET}
+ {606873600 7200 1 CEST}
+ {622598400 3600 0 CET}
+ {641520000 7200 1 CEST}
+ {654652800 3600 0 CET}
+}
diff --git a/library/tzdata/Africa/Windhoek b/library/tzdata/Africa/Windhoek
new file mode 100644
index 0000000..a5dcd4b
--- /dev/null
+++ b/library/tzdata/Africa/Windhoek
@@ -0,0 +1,222 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:Africa/Windhoek) {
+ {-9223372036854775808 4104 0 LMT}
+ {-2458170504 5400 0 SWAT}
+ {-2109288600 7200 0 SAST}
+ {-860976000 10800 1 SAST}
+ {-845254800 7200 0 SAST}
+ {637970400 7200 0 CAT}
+ {765324000 3600 0 WAT}
+ {778640400 7200 1 WAST}
+ {796780800 3600 0 WAT}
+ {810090000 7200 1 WAST}
+ {828835200 3600 0 WAT}
+ {841539600 7200 1 WAST}
+ {860284800 3600 0 WAT}
+ {873594000 7200 1 WAST}
+ {891734400 3600 0 WAT}
+ {905043600 7200 1 WAST}
+ {923184000 3600 0 WAT}
+ {936493200 7200 1 WAST}
+ {954633600 3600 0 WAT}
+ {967942800 7200 1 WAST}
+ {986083200 3600 0 WAT}
+ {999392400 7200 1 WAST}
+ {1018137600 3600 0 WAT}
+ {1030842000 7200 1 WAST}
+ {1049587200 3600 0 WAT}
+ {1062896400 7200 1 WAST}
+ {1081036800 3600 0 WAT}
+ {1094346000 7200 1 WAST}
+ {1112486400 3600 0 WAT}
+ {1125795600 7200 1 WAST}
+ {1143936000 3600 0 WAT}
+ {1157245200 7200 1 WAST}
+ {1175385600 3600 0 WAT}
+ {1188694800 7200 1 WAST}
+ {1207440000 3600 0 WAT}
+ {1220749200 7200 1 WAST}
+ {1238889600 3600 0 WAT}
+ {1252198800 7200 1 WAST}
+ {1270339200 3600 0 WAT}
+ {1283648400 7200 1 WAST}
+ {1301788800 3600 0 WAT}
+ {1315098000 7200 1 WAST}
+ {1333238400 3600 0 WAT}
+ {1346547600 7200 1 WAST}
+ {1365292800 3600 0 WAT}
+ {1377997200 7200 1 WAST}
+ {1396742400 3600 0 WAT}
+ {1410051600 7200 1 WAST}
+ {1428192000 3600 0 WAT}
+ {1441501200 7200 1 WAST}
+ {1459641600 3600 0 WAT}
+ {1472950800 7200 1 WAST}
+ {1491091200 3600 0 WAT}
+ {1504400400 7200 1 WAST}
+ {1522540800 3600 0 WAT}
+ {1535850000 7200 1 WAST}
+ {1554595200 3600 0 WAT}
+ {1567299600 7200 1 WAST}
+ {1586044800 3600 0 WAT}
+ {1599354000 7200 1 WAST}
+ {1617494400 3600 0 WAT}
+ {1630803600 7200 1 WAST}
+ {1648944000 3600 0 WAT}
+ {1662253200 7200 1 WAST}
+ {1680393600 3600 0 WAT}
+ {1693702800 7200 1 WAST}
+ {1712448000 3600 0 WAT}
+ {1725152400 7200 1 WAST}
+ {1743897600 3600 0 WAT}
+ {1757206800 7200 1 WAST}
+ {1775347200 3600 0 WAT}
+ {1788656400 7200 1 WAST}
+ {1806796800 3600 0 WAT}
+ {1820106000 7200 1 WAST}
+ {1838246400 3600 0 WAT}
+ {1851555600 7200 1 WAST}
+ {1869696000 3600 0 WAT}
+ {1883005200 7200 1 WAST}
+ {1901750400 3600 0 WAT}
+ {1914454800 7200 1 WAST}
+ {1933200000 3600 0 WAT}
+ {1946509200 7200 1 WAST}
+ {1964649600 3600 0 WAT}
+ {1977958800 7200 1 WAST}
+ {1996099200 3600 0 WAT}
+ {2009408400 7200 1 WAST}
+ {2027548800 3600 0 WAT}
+ {2040858000 7200 1 WAST}
+ {2058998400 3600 0 WAT}
+ {2072307600 7200 1 WAST}
+ {2091052800 3600 0 WAT}
+ {2104362000 7200 1 WAST}
+ {2122502400 3600 0 WAT}
+ {2135811600 7200 1 WAST}
+ {2153952000 3600 0 WAT}
+ {2167261200 7200 1 WAST}
+ {2185401600 3600 0 WAT}
+ {2198710800 7200 1 WAST}
+ {2216851200 3600 0 WAT}
+ {2230160400 7200 1 WAST}
+ {2248905600 3600 0 WAT}
+ {2261610000 7200 1 WAST}
+ {2280355200 3600 0 WAT}
+ {2293664400 7200 1 WAST}
+ {2311804800 3600 0 WAT}
+ {2325114000 7200 1 WAST}
+ {2343254400 3600 0 WAT}
+ {2356563600 7200 1 WAST}
+ {2374704000 3600 0 WAT}
+ {2388013200 7200 1 WAST}
+ {2406153600 3600 0 WAT}
+ {2419462800 7200 1 WAST}
+ {2438208000 3600 0 WAT}
+ {2450912400 7200 1 WAST}
+ {2469657600 3600 0 WAT}
+ {2482966800 7200 1 WAST}
+ {2501107200 3600 0 WAT}
+ {2514416400 7200 1 WAST}
+ {2532556800 3600 0 WAT}
+ {2545866000 7200 1 WAST}
+ {2564006400 3600 0 WAT}
+ {2577315600 7200 1 WAST}
+ {2596060800 3600 0 WAT}
+ {2608765200 7200 1 WAST}
+ {2627510400 3600 0 WAT}
+ {2640819600 7200 1 WAST}
+ {2658960000 3600 0 WAT}
+ {2672269200 7200 1 WAST}
+ {2690409600 3600 0 WAT}
+ {2703718800 7200 1 WAST}
+ {2721859200 3600 0 WAT}
+ {2735168400 7200 1 WAST}
+ {2753308800 3600 0 WAT}
+ {2766618000 7200 1 WAST}
+ {2785363200 3600 0 WAT}
+ {2798067600 7200 1 WAST}
+ {2816812800 3600 0 WAT}
+ {2830122000 7200 1 WAST}
+ {2848262400 3600 0 WAT}
+ {2861571600 7200 1 WAST}
+ {2879712000 3600 0 WAT}
+ {2893021200 7200 1 WAST}
+ {2911161600 3600 0 WAT}
+ {2924470800 7200 1 WAST}
+ {2942611200 3600 0 WAT}
+ {2955920400 7200 1 WAST}
+ {2974665600 3600 0 WAT}
+ {2987974800 7200 1 WAST}
+ {3006115200 3600 0 WAT}
+ {3019424400 7200 1 WAST}
+ {3037564800 3600 0 WAT}
+ {3050874000 7200 1 WAST}
+ {3069014400 3600 0 WAT}
+ {3082323600 7200 1 WAST}
+ {3100464000 3600 0 WAT}
+ {3113773200 7200 1 WAST}
+ {3132518400 3600 0 WAT}
+ {3145222800 7200 1 WAST}
+ {3163968000 3600 0 WAT}
+ {3177277200 7200 1 WAST}
+ {3195417600 3600 0 WAT}
+ {3208726800 7200 1 WAST}
+ {3226867200 3600 0 WAT}
+ {3240176400 7200 1 WAST}
+ {3258316800 3600 0 WAT}
+ {3271626000 7200 1 WAST}
+ {3289766400 3600 0 WAT}
+ {3303075600 7200 1 WAST}
+ {3321820800 3600 0 WAT}
+ {3334525200 7200 1 WAST}
+ {3353270400 3600 0 WAT}
+ {3366579600 7200 1 WAST}
+ {3384720000 3600 0 WAT}
+ {3398029200 7200 1 WAST}
+ {3416169600 3600 0 WAT}
+ {3429478800 7200 1 WAST}
+ {3447619200 3600 0 WAT}
+ {3460928400 7200 1 WAST}
+ {3479673600 3600 0 WAT}
+ {3492378000 7200 1 WAST}
+ {3511123200 3600 0 WAT}
+ {3524432400 7200 1 WAST}
+ {3542572800 3600 0 WAT}
+ {3555882000 7200 1 WAST}
+ {3574022400 3600 0 WAT}
+ {3587331600 7200 1 WAST}
+ {3605472000 3600 0 WAT}
+ {3618781200 7200 1 WAST}
+ {3636921600 3600 0 WAT}
+ {3650230800 7200 1 WAST}
+ {3668976000 3600 0 WAT}
+ {3681680400 7200 1 WAST}
+ {3700425600 3600 0 WAT}
+ {3713734800 7200 1 WAST}
+ {3731875200 3600 0 WAT}
+ {3745184400 7200 1 WAST}
+ {3763324800 3600 0 WAT}
+ {3776634000 7200 1 WAST}
+ {3794774400 3600 0 WAT}
+ {3808083600 7200 1 WAST}
+ {3826224000 3600 0 WAT}
+ {3839533200 7200 1 WAST}
+ {3858278400 3600 0 WAT}
+ {3871587600 7200 1 WAST}
+ {3889728000 3600 0 WAT}
+ {3903037200 7200 1 WAST}
+ {3921177600 3600 0 WAT}
+ {3934486800 7200 1 WAST}
+ {3952627200 3600 0 WAT}
+ {3965936400 7200 1 WAST}
+ {3984076800 3600 0 WAT}
+ {3997386000 7200 1 WAST}
+ {4016131200 3600 0 WAT}
+ {4028835600 7200 1 WAST}
+ {4047580800 3600 0 WAT}
+ {4060890000 7200 1 WAST}
+ {4079030400 3600 0 WAT}
+ {4092339600 7200 1 WAST}
+}
diff --git a/library/tzdata/America/Adak b/library/tzdata/America/Adak
new file mode 100644
index 0000000..1852c32
--- /dev/null
+++ b/library/tzdata/America/Adak
@@ -0,0 +1,276 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Adak) {
+ {-9223372036854775808 44001 0 LMT}
+ {-3225356001 -42398 0 LMT}
+ {-2188944802 -39600 0 NST}
+ {-883573200 -39600 0 NST}
+ {-880196400 -36000 1 NWT}
+ {-769395600 -36000 1 NPT}
+ {-765374400 -39600 0 NST}
+ {-757342800 -39600 0 NST}
+ {-86878800 -39600 0 BST}
+ {-31496400 -39600 0 BST}
+ {-21466800 -36000 1 BDT}
+ {-5745600 -39600 0 BST}
+ {9982800 -36000 1 BDT}
+ {25704000 -39600 0 BST}
+ {41432400 -36000 1 BDT}
+ {57758400 -39600 0 BST}
+ {73486800 -36000 1 BDT}
+ {89208000 -39600 0 BST}
+ {104936400 -36000 1 BDT}
+ {120657600 -39600 0 BST}
+ {126709200 -36000 1 BDT}
+ {152107200 -39600 0 BST}
+ {162392400 -36000 1 BDT}
+ {183556800 -39600 0 BST}
+ {199285200 -36000 1 BDT}
+ {215611200 -39600 0 BST}
+ {230734800 -36000 1 BDT}
+ {247060800 -39600 0 BST}
+ {262789200 -36000 1 BDT}
+ {278510400 -39600 0 BST}
+ {294238800 -36000 1 BDT}
+ {309960000 -39600 0 BST}
+ {325688400 -36000 1 BDT}
+ {341409600 -39600 0 BST}
+ {357138000 -36000 1 BDT}
+ {372859200 -39600 0 BST}
+ {388587600 -36000 1 BDT}
+ {404913600 -39600 0 BST}
+ {420037200 -36000 1 BDT}
+ {439034400 -36000 0 HAST}
+ {452088000 -32400 1 HADT}
+ {467809200 -36000 0 HAST}
+ {483537600 -32400 1 HADT}
+ {499258800 -36000 0 HAST}
+ {514987200 -32400 1 HADT}
+ {530708400 -36000 0 HAST}
+ {544622400 -32400 1 HADT}
+ {562158000 -36000 0 HAST}
+ {576072000 -32400 1 HADT}
+ {594212400 -36000 0 HAST}
+ {607521600 -32400 1 HADT}
+ {625662000 -36000 0 HAST}
+ {638971200 -32400 1 HADT}
+ {657111600 -36000 0 HAST}
+ {671025600 -32400 1 HADT}
+ {688561200 -36000 0 HAST}
+ {702475200 -32400 1 HADT}
+ {720010800 -36000 0 HAST}
+ {733924800 -32400 1 HADT}
+ {752065200 -36000 0 HAST}
+ {765374400 -32400 1 HADT}
+ {783514800 -36000 0 HAST}
+ {796824000 -32400 1 HADT}
+ {814964400 -36000 0 HAST}
+ {828878400 -32400 1 HADT}
+ {846414000 -36000 0 HAST}
+ {860328000 -32400 1 HADT}
+ {877863600 -36000 0 HAST}
+ {891777600 -32400 1 HADT}
+ {909313200 -36000 0 HAST}
+ {923227200 -32400 1 HADT}
+ {941367600 -36000 0 HAST}
+ {954676800 -32400 1 HADT}
+ {972817200 -36000 0 HAST}
+ {986126400 -32400 1 HADT}
+ {1004266800 -36000 0 HAST}
+ {1018180800 -32400 1 HADT}
+ {1035716400 -36000 0 HAST}
+ {1049630400 -32400 1 HADT}
+ {1067166000 -36000 0 HAST}
+ {1081080000 -32400 1 HADT}
+ {1099220400 -36000 0 HAST}
+ {1112529600 -32400 1 HADT}
+ {1130670000 -36000 0 HAST}
+ {1143979200 -32400 1 HADT}
+ {1162119600 -36000 0 HAST}
+ {1175428800 -32400 1 HADT}
+ {1193569200 -36000 0 HAST}
+ {1207483200 -32400 1 HADT}
+ {1225018800 -36000 0 HAST}
+ {1238932800 -32400 1 HADT}
+ {1256468400 -36000 0 HAST}
+ {1270382400 -32400 1 HADT}
+ {1288522800 -36000 0 HAST}
+ {1301832000 -32400 1 HADT}
+ {1319972400 -36000 0 HAST}
+ {1333281600 -32400 1 HADT}
+ {1351422000 -36000 0 HAST}
+ {1365336000 -32400 1 HADT}
+ {1382871600 -36000 0 HAST}
+ {1396785600 -32400 1 HADT}
+ {1414321200 -36000 0 HAST}
+ {1428235200 -32400 1 HADT}
+ {1445770800 -36000 0 HAST}
+ {1459684800 -32400 1 HADT}
+ {1477825200 -36000 0 HAST}
+ {1491134400 -32400 1 HADT}
+ {1509274800 -36000 0 HAST}
+ {1522584000 -32400 1 HADT}
+ {1540724400 -36000 0 HAST}
+ {1554638400 -32400 1 HADT}
+ {1572174000 -36000 0 HAST}
+ {1586088000 -32400 1 HADT}
+ {1603623600 -36000 0 HAST}
+ {1617537600 -32400 1 HADT}
+ {1635678000 -36000 0 HAST}
+ {1648987200 -32400 1 HADT}
+ {1667127600 -36000 0 HAST}
+ {1680436800 -32400 1 HADT}
+ {1698577200 -36000 0 HAST}
+ {1712491200 -32400 1 HADT}
+ {1730026800 -36000 0 HAST}
+ {1743940800 -32400 1 HADT}
+ {1761476400 -36000 0 HAST}
+ {1775390400 -32400 1 HADT}
+ {1792926000 -36000 0 HAST}
+ {1806840000 -32400 1 HADT}
+ {1824980400 -36000 0 HAST}
+ {1838289600 -32400 1 HADT}
+ {1856430000 -36000 0 HAST}
+ {1869739200 -32400 1 HADT}
+ {1887879600 -36000 0 HAST}
+ {1901793600 -32400 1 HADT}
+ {1919329200 -36000 0 HAST}
+ {1933243200 -32400 1 HADT}
+ {1950778800 -36000 0 HAST}
+ {1964692800 -32400 1 HADT}
+ {1982833200 -36000 0 HAST}
+ {1996142400 -32400 1 HADT}
+ {2014282800 -36000 0 HAST}
+ {2027592000 -32400 1 HADT}
+ {2045732400 -36000 0 HAST}
+ {2059041600 -32400 1 HADT}
+ {2077182000 -36000 0 HAST}
+ {2091096000 -32400 1 HADT}
+ {2108631600 -36000 0 HAST}
+ {2122545600 -32400 1 HADT}
+ {2140081200 -36000 0 HAST}
+ {2153995200 -32400 1 HADT}
+ {2172135600 -36000 0 HAST}
+ {2185444800 -32400 1 HADT}
+ {2203585200 -36000 0 HAST}
+ {2216894400 -32400 1 HADT}
+ {2235034800 -36000 0 HAST}
+ {2248948800 -32400 1 HADT}
+ {2266484400 -36000 0 HAST}
+ {2280398400 -32400 1 HADT}
+ {2297934000 -36000 0 HAST}
+ {2311848000 -32400 1 HADT}
+ {2329383600 -36000 0 HAST}
+ {2343297600 -32400 1 HADT}
+ {2361438000 -36000 0 HAST}
+ {2374747200 -32400 1 HADT}
+ {2392887600 -36000 0 HAST}
+ {2406196800 -32400 1 HADT}
+ {2424337200 -36000 0 HAST}
+ {2438251200 -32400 1 HADT}
+ {2455786800 -36000 0 HAST}
+ {2469700800 -32400 1 HADT}
+ {2487236400 -36000 0 HAST}
+ {2501150400 -32400 1 HADT}
+ {2519290800 -36000 0 HAST}
+ {2532600000 -32400 1 HADT}
+ {2550740400 -36000 0 HAST}
+ {2564049600 -32400 1 HADT}
+ {2582190000 -36000 0 HAST}
+ {2596104000 -32400 1 HADT}
+ {2613639600 -36000 0 HAST}
+ {2627553600 -32400 1 HADT}
+ {2645089200 -36000 0 HAST}
+ {2659003200 -32400 1 HADT}
+ {2676538800 -36000 0 HAST}
+ {2690452800 -32400 1 HADT}
+ {2708593200 -36000 0 HAST}
+ {2721902400 -32400 1 HADT}
+ {2740042800 -36000 0 HAST}
+ {2753352000 -32400 1 HADT}
+ {2771492400 -36000 0 HAST}
+ {2785406400 -32400 1 HADT}
+ {2802942000 -36000 0 HAST}
+ {2816856000 -32400 1 HADT}
+ {2834391600 -36000 0 HAST}
+ {2848305600 -32400 1 HADT}
+ {2866446000 -36000 0 HAST}
+ {2879755200 -32400 1 HADT}
+ {2897895600 -36000 0 HAST}
+ {2911204800 -32400 1 HADT}
+ {2929345200 -36000 0 HAST}
+ {2942654400 -32400 1 HADT}
+ {2960794800 -36000 0 HAST}
+ {2974708800 -32400 1 HADT}
+ {2992244400 -36000 0 HAST}
+ {3006158400 -32400 1 HADT}
+ {3023694000 -36000 0 HAST}
+ {3037608000 -32400 1 HADT}
+ {3055748400 -36000 0 HAST}
+ {3069057600 -32400 1 HADT}
+ {3087198000 -36000 0 HAST}
+ {3100507200 -32400 1 HADT}
+ {3118647600 -36000 0 HAST}
+ {3132561600 -32400 1 HADT}
+ {3150097200 -36000 0 HAST}
+ {3164011200 -32400 1 HADT}
+ {3181546800 -36000 0 HAST}
+ {3195460800 -32400 1 HADT}
+ {3212996400 -36000 0 HAST}
+ {3226910400 -32400 1 HADT}
+ {3245050800 -36000 0 HAST}
+ {3258360000 -32400 1 HADT}
+ {3276500400 -36000 0 HAST}
+ {3289809600 -32400 1 HADT}
+ {3307950000 -36000 0 HAST}
+ {3321864000 -32400 1 HADT}
+ {3339399600 -36000 0 HAST}
+ {3353313600 -32400 1 HADT}
+ {3370849200 -36000 0 HAST}
+ {3384763200 -32400 1 HADT}
+ {3402903600 -36000 0 HAST}
+ {3416212800 -32400 1 HADT}
+ {3434353200 -36000 0 HAST}
+ {3447662400 -32400 1 HADT}
+ {3465802800 -36000 0 HAST}
+ {3479716800 -32400 1 HADT}
+ {3497252400 -36000 0 HAST}
+ {3511166400 -32400 1 HADT}
+ {3528702000 -36000 0 HAST}
+ {3542616000 -32400 1 HADT}
+ {3560151600 -36000 0 HAST}
+ {3574065600 -32400 1 HADT}
+ {3592206000 -36000 0 HAST}
+ {3605515200 -32400 1 HADT}
+ {3623655600 -36000 0 HAST}
+ {3636964800 -32400 1 HADT}
+ {3655105200 -36000 0 HAST}
+ {3669019200 -32400 1 HADT}
+ {3686554800 -36000 0 HAST}
+ {3700468800 -32400 1 HADT}
+ {3718004400 -36000 0 HAST}
+ {3731918400 -32400 1 HADT}
+ {3750058800 -36000 0 HAST}
+ {3763368000 -32400 1 HADT}
+ {3781508400 -36000 0 HAST}
+ {3794817600 -32400 1 HADT}
+ {3812958000 -36000 0 HAST}
+ {3826267200 -32400 1 HADT}
+ {3844407600 -36000 0 HAST}
+ {3858321600 -32400 1 HADT}
+ {3875857200 -36000 0 HAST}
+ {3889771200 -32400 1 HADT}
+ {3907306800 -36000 0 HAST}
+ {3921220800 -32400 1 HADT}
+ {3939361200 -36000 0 HAST}
+ {3952670400 -32400 1 HADT}
+ {3970810800 -36000 0 HAST}
+ {3984120000 -32400 1 HADT}
+ {4002260400 -36000 0 HAST}
+ {4016174400 -32400 1 HADT}
+ {4033710000 -36000 0 HAST}
+ {4047624000 -32400 1 HADT}
+ {4065159600 -36000 0 HAST}
+ {4079073600 -32400 1 HADT}
+ {4096609200 -36000 0 HAST}
+}
diff --git a/library/tzdata/America/Anchorage b/library/tzdata/America/Anchorage
new file mode 100644
index 0000000..a6e6803
--- /dev/null
+++ b/library/tzdata/America/Anchorage
@@ -0,0 +1,276 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Anchorage) {
+ {-9223372036854775808 50424 0 LMT}
+ {-3225362424 -35976 0 LMT}
+ {-2188951224 -36000 0 CAT}
+ {-883576800 -36000 0 CAWT}
+ {-880200000 -32400 1 CAWT}
+ {-769395600 -32400 1 CAWT}
+ {-765378000 -36000 0 CAWT}
+ {-757346400 -36000 0 CAT}
+ {-86882400 -36000 0 AHST}
+ {-31500000 -36000 0 AHST}
+ {-21470400 -32400 1 AHDT}
+ {-5749200 -36000 0 AHST}
+ {9979200 -32400 1 AHDT}
+ {25700400 -36000 0 AHST}
+ {41428800 -32400 1 AHDT}
+ {57754800 -36000 0 AHST}
+ {73483200 -32400 1 AHDT}
+ {89204400 -36000 0 AHST}
+ {104932800 -32400 1 AHDT}
+ {120654000 -36000 0 AHST}
+ {126705600 -32400 1 AHDT}
+ {152103600 -36000 0 AHST}
+ {162388800 -32400 1 AHDT}
+ {183553200 -36000 0 AHST}
+ {199281600 -32400 1 AHDT}
+ {215607600 -36000 0 AHST}
+ {230731200 -32400 1 AHDT}
+ {247057200 -36000 0 AHST}
+ {262785600 -32400 1 AHDT}
+ {278506800 -36000 0 AHST}
+ {294235200 -32400 1 AHDT}
+ {309956400 -36000 0 AHST}
+ {325684800 -32400 1 AHDT}
+ {341406000 -36000 0 AHST}
+ {357134400 -32400 1 AHDT}
+ {372855600 -36000 0 AHST}
+ {388584000 -32400 1 AHDT}
+ {404910000 -36000 0 AHST}
+ {420033600 -32400 1 AHDT}
+ {439030800 -32400 0 AKST}
+ {452084400 -28800 1 AKDT}
+ {467805600 -32400 0 AKST}
+ {483534000 -28800 1 AKDT}
+ {499255200 -32400 0 AKST}
+ {514983600 -28800 1 AKDT}
+ {530704800 -32400 0 AKST}
+ {544618800 -28800 1 AKDT}
+ {562154400 -32400 0 AKST}
+ {576068400 -28800 1 AKDT}
+ {594208800 -32400 0 AKST}
+ {607518000 -28800 1 AKDT}
+ {625658400 -32400 0 AKST}
+ {638967600 -28800 1 AKDT}
+ {657108000 -32400 0 AKST}
+ {671022000 -28800 1 AKDT}
+ {688557600 -32400 0 AKST}
+ {702471600 -28800 1 AKDT}
+ {720007200 -32400 0 AKST}
+ {733921200 -28800 1 AKDT}
+ {752061600 -32400 0 AKST}
+ {765370800 -28800 1 AKDT}
+ {783511200 -32400 0 AKST}
+ {796820400 -28800 1 AKDT}
+ {814960800 -32400 0 AKST}
+ {828874800 -28800 1 AKDT}
+ {846410400 -32400 0 AKST}
+ {860324400 -28800 1 AKDT}
+ {877860000 -32400 0 AKST}
+ {891774000 -28800 1 AKDT}
+ {909309600 -32400 0 AKST}
+ {923223600 -28800 1 AKDT}
+ {941364000 -32400 0 AKST}
+ {954673200 -28800 1 AKDT}
+ {972813600 -32400 0 AKST}
+ {986122800 -28800 1 AKDT}
+ {1004263200 -32400 0 AKST}
+ {1018177200 -28800 1 AKDT}
+ {1035712800 -32400 0 AKST}
+ {1049626800 -28800 1 AKDT}
+ {1067162400 -32400 0 AKST}
+ {1081076400 -28800 1 AKDT}
+ {1099216800 -32400 0 AKST}
+ {1112526000 -28800 1 AKDT}
+ {1130666400 -32400 0 AKST}
+ {1143975600 -28800 1 AKDT}
+ {1162116000 -32400 0 AKST}
+ {1175425200 -28800 1 AKDT}
+ {1193565600 -32400 0 AKST}
+ {1207479600 -28800 1 AKDT}
+ {1225015200 -32400 0 AKST}
+ {1238929200 -28800 1 AKDT}
+ {1256464800 -32400 0 AKST}
+ {1270378800 -28800 1 AKDT}
+ {1288519200 -32400 0 AKST}
+ {1301828400 -28800 1 AKDT}
+ {1319968800 -32400 0 AKST}
+ {1333278000 -28800 1 AKDT}
+ {1351418400 -32400 0 AKST}
+ {1365332400 -28800 1 AKDT}
+ {1382868000 -32400 0 AKST}
+ {1396782000 -28800 1 AKDT}
+ {1414317600 -32400 0 AKST}
+ {1428231600 -28800 1 AKDT}
+ {1445767200 -32400 0 AKST}
+ {1459681200 -28800 1 AKDT}
+ {1477821600 -32400 0 AKST}
+ {1491130800 -28800 1 AKDT}
+ {1509271200 -32400 0 AKST}
+ {1522580400 -28800 1 AKDT}
+ {1540720800 -32400 0 AKST}
+ {1554634800 -28800 1 AKDT}
+ {1572170400 -32400 0 AKST}
+ {1586084400 -28800 1 AKDT}
+ {1603620000 -32400 0 AKST}
+ {1617534000 -28800 1 AKDT}
+ {1635674400 -32400 0 AKST}
+ {1648983600 -28800 1 AKDT}
+ {1667124000 -32400 0 AKST}
+ {1680433200 -28800 1 AKDT}
+ {1698573600 -32400 0 AKST}
+ {1712487600 -28800 1 AKDT}
+ {1730023200 -32400 0 AKST}
+ {1743937200 -28800 1 AKDT}
+ {1761472800 -32400 0 AKST}
+ {1775386800 -28800 1 AKDT}
+ {1792922400 -32400 0 AKST}
+ {1806836400 -28800 1 AKDT}
+ {1824976800 -32400 0 AKST}
+ {1838286000 -28800 1 AKDT}
+ {1856426400 -32400 0 AKST}
+ {1869735600 -28800 1 AKDT}
+ {1887876000 -32400 0 AKST}
+ {1901790000 -28800 1 AKDT}
+ {1919325600 -32400 0 AKST}
+ {1933239600 -28800 1 AKDT}
+ {1950775200 -32400 0 AKST}
+ {1964689200 -28800 1 AKDT}
+ {1982829600 -32400 0 AKST}
+ {1996138800 -28800 1 AKDT}
+ {2014279200 -32400 0 AKST}
+ {2027588400 -28800 1 AKDT}
+ {2045728800 -32400 0 AKST}
+ {2059038000 -28800 1 AKDT}
+ {2077178400 -32400 0 AKST}
+ {2091092400 -28800 1 AKDT}
+ {2108628000 -32400 0 AKST}
+ {2122542000 -28800 1 AKDT}
+ {2140077600 -32400 0 AKST}
+ {2153991600 -28800 1 AKDT}
+ {2172132000 -32400 0 AKST}
+ {2185441200 -28800 1 AKDT}
+ {2203581600 -32400 0 AKST}
+ {2216890800 -28800 1 AKDT}
+ {2235031200 -32400 0 AKST}
+ {2248945200 -28800 1 AKDT}
+ {2266480800 -32400 0 AKST}
+ {2280394800 -28800 1 AKDT}
+ {2297930400 -32400 0 AKST}
+ {2311844400 -28800 1 AKDT}
+ {2329380000 -32400 0 AKST}
+ {2343294000 -28800 1 AKDT}
+ {2361434400 -32400 0 AKST}
+ {2374743600 -28800 1 AKDT}
+ {2392884000 -32400 0 AKST}
+ {2406193200 -28800 1 AKDT}
+ {2424333600 -32400 0 AKST}
+ {2438247600 -28800 1 AKDT}
+ {2455783200 -32400 0 AKST}
+ {2469697200 -28800 1 AKDT}
+ {2487232800 -32400 0 AKST}
+ {2501146800 -28800 1 AKDT}
+ {2519287200 -32400 0 AKST}
+ {2532596400 -28800 1 AKDT}
+ {2550736800 -32400 0 AKST}
+ {2564046000 -28800 1 AKDT}
+ {2582186400 -32400 0 AKST}
+ {2596100400 -28800 1 AKDT}
+ {2613636000 -32400 0 AKST}
+ {2627550000 -28800 1 AKDT}
+ {2645085600 -32400 0 AKST}
+ {2658999600 -28800 1 AKDT}
+ {2676535200 -32400 0 AKST}
+ {2690449200 -28800 1 AKDT}
+ {2708589600 -32400 0 AKST}
+ {2721898800 -28800 1 AKDT}
+ {2740039200 -32400 0 AKST}
+ {2753348400 -28800 1 AKDT}
+ {2771488800 -32400 0 AKST}
+ {2785402800 -28800 1 AKDT}
+ {2802938400 -32400 0 AKST}
+ {2816852400 -28800 1 AKDT}
+ {2834388000 -32400 0 AKST}
+ {2848302000 -28800 1 AKDT}
+ {2866442400 -32400 0 AKST}
+ {2879751600 -28800 1 AKDT}
+ {2897892000 -32400 0 AKST}
+ {2911201200 -28800 1 AKDT}
+ {2929341600 -32400 0 AKST}
+ {2942650800 -28800 1 AKDT}
+ {2960791200 -32400 0 AKST}
+ {2974705200 -28800 1 AKDT}
+ {2992240800 -32400 0 AKST}
+ {3006154800 -28800 1 AKDT}
+ {3023690400 -32400 0 AKST}
+ {3037604400 -28800 1 AKDT}
+ {3055744800 -32400 0 AKST}
+ {3069054000 -28800 1 AKDT}
+ {3087194400 -32400 0 AKST}
+ {3100503600 -28800 1 AKDT}
+ {3118644000 -32400 0 AKST}
+ {3132558000 -28800 1 AKDT}
+ {3150093600 -32400 0 AKST}
+ {3164007600 -28800 1 AKDT}
+ {3181543200 -32400 0 AKST}
+ {3195457200 -28800 1 AKDT}
+ {3212992800 -32400 0 AKST}
+ {3226906800 -28800 1 AKDT}
+ {3245047200 -32400 0 AKST}
+ {3258356400 -28800 1 AKDT}
+ {3276496800 -32400 0 AKST}
+ {3289806000 -28800 1 AKDT}
+ {3307946400 -32400 0 AKST}
+ {3321860400 -28800 1 AKDT}
+ {3339396000 -32400 0 AKST}
+ {3353310000 -28800 1 AKDT}
+ {3370845600 -32400 0 AKST}
+ {3384759600 -28800 1 AKDT}
+ {3402900000 -32400 0 AKST}
+ {3416209200 -28800 1 AKDT}
+ {3434349600 -32400 0 AKST}
+ {3447658800 -28800 1 AKDT}
+ {3465799200 -32400 0 AKST}
+ {3479713200 -28800 1 AKDT}
+ {3497248800 -32400 0 AKST}
+ {3511162800 -28800 1 AKDT}
+ {3528698400 -32400 0 AKST}
+ {3542612400 -28800 1 AKDT}
+ {3560148000 -32400 0 AKST}
+ {3574062000 -28800 1 AKDT}
+ {3592202400 -32400 0 AKST}
+ {3605511600 -28800 1 AKDT}
+ {3623652000 -32400 0 AKST}
+ {3636961200 -28800 1 AKDT}
+ {3655101600 -32400 0 AKST}
+ {3669015600 -28800 1 AKDT}
+ {3686551200 -32400 0 AKST}
+ {3700465200 -28800 1 AKDT}
+ {3718000800 -32400 0 AKST}
+ {3731914800 -28800 1 AKDT}
+ {3750055200 -32400 0 AKST}
+ {3763364400 -28800 1 AKDT}
+ {3781504800 -32400 0 AKST}
+ {3794814000 -28800 1 AKDT}
+ {3812954400 -32400 0 AKST}
+ {3826263600 -28800 1 AKDT}
+ {3844404000 -32400 0 AKST}
+ {3858318000 -28800 1 AKDT}
+ {3875853600 -32400 0 AKST}
+ {3889767600 -28800 1 AKDT}
+ {3907303200 -32400 0 AKST}
+ {3921217200 -28800 1 AKDT}
+ {3939357600 -32400 0 AKST}
+ {3952666800 -28800 1 AKDT}
+ {3970807200 -32400 0 AKST}
+ {3984116400 -28800 1 AKDT}
+ {4002256800 -32400 0 AKST}
+ {4016170800 -28800 1 AKDT}
+ {4033706400 -32400 0 AKST}
+ {4047620400 -28800 1 AKDT}
+ {4065156000 -32400 0 AKST}
+ {4079070000 -28800 1 AKDT}
+ {4096605600 -32400 0 AKST}
+}
diff --git a/library/tzdata/America/Anguilla b/library/tzdata/America/Anguilla
new file mode 100644
index 0000000..a8e85e6
--- /dev/null
+++ b/library/tzdata/America/Anguilla
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Anguilla) {
+ {-9223372036854775808 -15136 0 LMT}
+ {-1825098464 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Antigua b/library/tzdata/America/Antigua
new file mode 100644
index 0000000..f911e74
--- /dev/null
+++ b/library/tzdata/America/Antigua
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Antigua) {
+ {-9223372036854775808 -14832 0 LMT}
+ {-1825098768 -18000 0 EST}
+ {-599598000 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Araguaina b/library/tzdata/America/Araguaina
new file mode 100644
index 0000000..b00333a
--- /dev/null
+++ b/library/tzdata/America/Araguaina
@@ -0,0 +1,57 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Araguaina) {
+ {-9223372036854775808 -11568 0 LMT}
+ {-1767214032 -10800 0 BRT}
+ {-1206957600 -7200 1 BRST}
+ {-1191362400 -10800 0 BRT}
+ {-1175374800 -7200 1 BRST}
+ {-1159826400 -10800 0 BRT}
+ {-633819600 -7200 1 BRST}
+ {-622069200 -10800 0 BRT}
+ {-602283600 -7200 1 BRST}
+ {-591832800 -10800 0 BRT}
+ {-570747600 -7200 1 BRST}
+ {-560210400 -10800 0 BRT}
+ {-539125200 -7200 1 BRST}
+ {-531352800 -10800 0 BRT}
+ {-191365200 -7200 1 BRST}
+ {-184197600 -10800 0 BRT}
+ {-155163600 -7200 1 BRST}
+ {-150069600 -10800 0 BRT}
+ {-128898000 -7200 1 BRST}
+ {-121125600 -10800 0 BRT}
+ {-99954000 -7200 1 BRST}
+ {-89589600 -10800 0 BRT}
+ {-68418000 -7200 1 BRST}
+ {-57967200 -10800 0 BRT}
+ {499748400 -7200 1 BRST}
+ {511236000 -10800 0 BRT}
+ {530593200 -7200 1 BRST}
+ {540266400 -10800 0 BRT}
+ {562129200 -7200 1 BRST}
+ {571197600 -10800 0 BRT}
+ {592974000 -7200 1 BRST}
+ {602042400 -10800 0 BRT}
+ {624423600 -7200 1 BRST}
+ {634701600 -10800 0 BRT}
+ {653536800 -10800 0 BRT}
+ {811047600 -10800 0 BRT}
+ {813726000 -7200 1 BRST}
+ {824004000 -10800 0 BRT}
+ {844570800 -7200 1 BRST}
+ {856058400 -10800 0 BRT}
+ {876106800 -7200 1 BRST}
+ {888717600 -10800 0 BRT}
+ {908074800 -7200 1 BRST}
+ {919562400 -10800 0 BRT}
+ {938919600 -7200 1 BRST}
+ {951616800 -10800 0 BRT}
+ {970974000 -7200 1 BRST}
+ {982461600 -10800 0 BRT}
+ {1003028400 -7200 1 BRST}
+ {1013911200 -10800 0 BRT}
+ {1036292400 -7200 1 BRST}
+ {1045360800 -10800 0 BRT}
+ {1064368800 -10800 0 BRT}
+}
diff --git a/library/tzdata/America/Argentina/Buenos_Aires b/library/tzdata/America/Argentina/Buenos_Aires
new file mode 100644
index 0000000..face914
--- /dev/null
+++ b/library/tzdata/America/Argentina/Buenos_Aires
@@ -0,0 +1,63 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Buenos_Aires) {
+ {-9223372036854775808 -14028 0 LMT}
+ {-2372097972 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -10800 0 ART}
+ {687927600 -7200 1 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Catamarca b/library/tzdata/America/Argentina/Catamarca
new file mode 100644
index 0000000..b42fded
--- /dev/null
+++ b/library/tzdata/America/Argentina/Catamarca
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Catamarca) {
+ {-9223372036854775808 -15788 0 LMT}
+ {-2372096212 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -14400 0 WART}
+ {687931200 -7200 0 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1087704000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/ComodRivadavia b/library/tzdata/America/Argentina/ComodRivadavia
new file mode 100644
index 0000000..5ba130e
--- /dev/null
+++ b/library/tzdata/America/Argentina/ComodRivadavia
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/ComodRivadavia) {
+ {-9223372036854775808 -16200 0 LMT}
+ {-2372095800 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -14400 0 WART}
+ {687931200 -7200 0 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1087704000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Cordoba b/library/tzdata/America/Argentina/Cordoba
new file mode 100644
index 0000000..098a62b
--- /dev/null
+++ b/library/tzdata/America/Argentina/Cordoba
@@ -0,0 +1,63 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Cordoba) {
+ {-9223372036854775808 -15408 0 LMT}
+ {-2372096592 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -14400 0 WART}
+ {687931200 -7200 0 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Jujuy b/library/tzdata/America/Argentina/Jujuy
new file mode 100644
index 0000000..73b2f51
--- /dev/null
+++ b/library/tzdata/America/Argentina/Jujuy
@@ -0,0 +1,64 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Jujuy) {
+ {-9223372036854775808 -15672 0 LMT}
+ {-2372096328 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -14400 0 WART}
+ {657086400 -10800 1 WARST}
+ {669178800 -14400 0 WART}
+ {686721600 -7200 1 ARST}
+ {694231200 -7200 0 ART}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/La_Rioja b/library/tzdata/America/Argentina/La_Rioja
new file mode 100644
index 0000000..42731a4
--- /dev/null
+++ b/library/tzdata/America/Argentina/La_Rioja
@@ -0,0 +1,66 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/La_Rioja) {
+ {-9223372036854775808 -16044 0 LMT}
+ {-2372095956 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667792800 -14400 0 WART}
+ {673588800 -10800 0 ART}
+ {687927600 -7200 1 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1087704000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Mendoza b/library/tzdata/America/Argentina/Mendoza
new file mode 100644
index 0000000..76f66be
--- /dev/null
+++ b/library/tzdata/America/Argentina/Mendoza
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Mendoza) {
+ {-9223372036854775808 -16516 0 LMT}
+ {-2372095484 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -14400 0 WART}
+ {655963200 -10800 1 WARST}
+ {667796400 -14400 0 WART}
+ {687499200 -10800 1 WARST}
+ {699418800 -14400 0 WART}
+ {719380800 -7200 0 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1085281200 -14400 0 WART}
+ {1097985600 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Rio_Gallegos b/library/tzdata/America/Argentina/Rio_Gallegos
new file mode 100644
index 0000000..fbbe004
--- /dev/null
+++ b/library/tzdata/America/Argentina/Rio_Gallegos
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Rio_Gallegos) {
+ {-9223372036854775808 -16612 0 LMT}
+ {-2372095388 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -10800 0 ART}
+ {687927600 -7200 1 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1087704000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/San_Juan b/library/tzdata/America/Argentina/San_Juan
new file mode 100644
index 0000000..fb176f8
--- /dev/null
+++ b/library/tzdata/America/Argentina/San_Juan
@@ -0,0 +1,66 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/San_Juan) {
+ {-9223372036854775808 -16444 0 LMT}
+ {-2372095556 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667792800 -14400 0 WART}
+ {673588800 -10800 0 ART}
+ {687927600 -7200 1 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1097985600 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Tucuman b/library/tzdata/America/Argentina/Tucuman
new file mode 100644
index 0000000..07efd08
--- /dev/null
+++ b/library/tzdata/America/Argentina/Tucuman
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Tucuman) {
+ {-9223372036854775808 -15652 0 LMT}
+ {-2372096348 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -14400 0 WART}
+ {687931200 -7200 0 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1086058800 -14400 0 WART}
+ {1087099200 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Argentina/Ushuaia b/library/tzdata/America/Argentina/Ushuaia
new file mode 100644
index 0000000..e935511
--- /dev/null
+++ b/library/tzdata/America/Argentina/Ushuaia
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Argentina/Ushuaia) {
+ {-9223372036854775808 -16392 0 LMT}
+ {-2372095608 -15408 0 CMT}
+ {-1567453392 -14400 0 ART}
+ {-1233432000 -10800 0 ARST}
+ {-1222981200 -14400 0 ART}
+ {-1205956800 -10800 1 ARST}
+ {-1194037200 -14400 0 ART}
+ {-1172865600 -10800 1 ARST}
+ {-1162501200 -14400 0 ART}
+ {-1141329600 -10800 1 ARST}
+ {-1130965200 -14400 0 ART}
+ {-1109793600 -10800 1 ARST}
+ {-1099429200 -14400 0 ART}
+ {-1078257600 -10800 1 ARST}
+ {-1067806800 -14400 0 ART}
+ {-1046635200 -10800 1 ARST}
+ {-1036270800 -14400 0 ART}
+ {-1015099200 -10800 1 ARST}
+ {-1004734800 -14400 0 ART}
+ {-983563200 -10800 1 ARST}
+ {-973198800 -14400 0 ART}
+ {-952027200 -10800 1 ARST}
+ {-941576400 -14400 0 ART}
+ {-931032000 -10800 1 ARST}
+ {-900882000 -14400 0 ART}
+ {-890337600 -10800 1 ARST}
+ {-833749200 -14400 0 ART}
+ {-827265600 -10800 1 ARST}
+ {-752274000 -14400 0 ART}
+ {-733780800 -10800 1 ARST}
+ {-197326800 -14400 0 ART}
+ {-190843200 -10800 1 ARST}
+ {-184194000 -14400 0 ART}
+ {-164491200 -10800 1 ARST}
+ {-152658000 -14400 0 ART}
+ {-132955200 -10800 1 ARST}
+ {-121122000 -14400 0 ART}
+ {-101419200 -10800 1 ARST}
+ {-86821200 -14400 0 ART}
+ {-71092800 -10800 1 ARST}
+ {-54766800 -14400 0 ART}
+ {-39038400 -10800 1 ARST}
+ {-23317200 -14400 0 ART}
+ {-7588800 -10800 0 ART}
+ {128142000 -7200 1 ARST}
+ {136605600 -10800 0 ART}
+ {596948400 -7200 1 ARST}
+ {605066400 -10800 0 ART}
+ {624423600 -7200 1 ARST}
+ {636516000 -10800 0 ART}
+ {656478000 -7200 1 ARST}
+ {667965600 -10800 0 ART}
+ {687927600 -7200 1 ARST}
+ {699415200 -10800 0 ART}
+ {719377200 -7200 1 ARST}
+ {731469600 -10800 0 ART}
+ {938916000 -10800 0 ART}
+ {938919600 -10800 1 ARST}
+ {952056000 -10800 0 ART}
+ {1085886000 -14400 0 WART}
+ {1087704000 -10800 0 ART}
+}
diff --git a/library/tzdata/America/Aruba b/library/tzdata/America/Aruba
new file mode 100644
index 0000000..0c06f84
--- /dev/null
+++ b/library/tzdata/America/Aruba
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Aruba) {
+ {-9223372036854775808 -16824 0 LMT}
+ {-1826738376 -16200 0 ANT}
+ {-157750200 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Asuncion b/library/tzdata/America/Asuncion
new file mode 100644
index 0000000..23035d6
--- /dev/null
+++ b/library/tzdata/America/Asuncion
@@ -0,0 +1,259 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Asuncion) {
+ {-9223372036854775808 -13840 0 LMT}
+ {-2524507760 -13840 0 AMT}
+ {-1206389360 -14400 0 PYT}
+ {86760000 -10800 0 PYT}
+ {134017200 -14400 0 PYT}
+ {162878400 -14400 0 PYT}
+ {181368000 -10800 1 PYST}
+ {194497200 -14400 0 PYT}
+ {212990400 -10800 1 PYST}
+ {226033200 -14400 0 PYT}
+ {244526400 -10800 1 PYST}
+ {257569200 -14400 0 PYT}
+ {276062400 -10800 1 PYST}
+ {291783600 -14400 0 PYT}
+ {307598400 -10800 1 PYST}
+ {323406000 -14400 0 PYT}
+ {339220800 -10800 1 PYST}
+ {354942000 -14400 0 PYT}
+ {370756800 -10800 1 PYST}
+ {386478000 -14400 0 PYT}
+ {402292800 -10800 1 PYST}
+ {418014000 -14400 0 PYT}
+ {433828800 -10800 1 PYST}
+ {449636400 -14400 0 PYT}
+ {465451200 -10800 1 PYST}
+ {481172400 -14400 0 PYT}
+ {496987200 -10800 1 PYST}
+ {512708400 -14400 0 PYT}
+ {528523200 -10800 1 PYST}
+ {544244400 -14400 0 PYT}
+ {560059200 -10800 1 PYST}
+ {575866800 -14400 0 PYT}
+ {591681600 -10800 1 PYST}
+ {607402800 -14400 0 PYT}
+ {625032000 -10800 1 PYST}
+ {638938800 -14400 0 PYT}
+ {654753600 -10800 1 PYST}
+ {670474800 -14400 0 PYT}
+ {686721600 -10800 1 PYST}
+ {699418800 -14400 0 PYT}
+ {718257600 -10800 1 PYST}
+ {733546800 -14400 0 PYT}
+ {749448000 -10800 1 PYST}
+ {762318000 -14400 0 PYT}
+ {780984000 -10800 1 PYST}
+ {793767600 -14400 0 PYT}
+ {812520000 -10800 1 PYST}
+ {825649200 -14400 0 PYT}
+ {844574400 -10800 1 PYST}
+ {856666800 -14400 0 PYT}
+ {876024000 -10800 1 PYST}
+ {888721200 -14400 0 PYT}
+ {907473600 -10800 1 PYST}
+ {920775600 -14400 0 PYT}
+ {938923200 -10800 1 PYST}
+ {952225200 -14400 0 PYT}
+ {970372800 -10800 1 PYST}
+ {983674800 -14400 0 PYT}
+ {1002427200 -10800 1 PYST}
+ {1018148400 -14400 0 PYT}
+ {1030852800 -10800 1 PYST}
+ {1049598000 -14400 0 PYT}
+ {1062907200 -10800 1 PYST}
+ {1081047600 -14400 0 PYT}
+ {1094356800 -10800 1 PYST}
+ {1112497200 -14400 0 PYT}
+ {1125806400 -10800 1 PYST}
+ {1143946800 -14400 0 PYT}
+ {1157256000 -10800 1 PYST}
+ {1175396400 -14400 0 PYT}
+ {1188705600 -10800 1 PYST}
+ {1207450800 -14400 0 PYT}
+ {1220760000 -10800 1 PYST}
+ {1238900400 -14400 0 PYT}
+ {1252209600 -10800 1 PYST}
+ {1270350000 -14400 0 PYT}
+ {1283659200 -10800 1 PYST}
+ {1301799600 -14400 0 PYT}
+ {1315108800 -10800 1 PYST}
+ {1333249200 -14400 0 PYT}
+ {1346558400 -10800 1 PYST}
+ {1365303600 -14400 0 PYT}
+ {1378008000 -10800 1 PYST}
+ {1396753200 -14400 0 PYT}
+ {1410062400 -10800 1 PYST}
+ {1428202800 -14400 0 PYT}
+ {1441512000 -10800 1 PYST}
+ {1459652400 -14400 0 PYT}
+ {1472961600 -10800 1 PYST}
+ {1491102000 -14400 0 PYT}
+ {1504411200 -10800 1 PYST}
+ {1522551600 -14400 0 PYT}
+ {1535860800 -10800 1 PYST}
+ {1554606000 -14400 0 PYT}
+ {1567310400 -10800 1 PYST}
+ {1586055600 -14400 0 PYT}
+ {1599364800 -10800 1 PYST}
+ {1617505200 -14400 0 PYT}
+ {1630814400 -10800 1 PYST}
+ {1648954800 -14400 0 PYT}
+ {1662264000 -10800 1 PYST}
+ {1680404400 -14400 0 PYT}
+ {1693713600 -10800 1 PYST}
+ {1712458800 -14400 0 PYT}
+ {1725163200 -10800 1 PYST}
+ {1743908400 -14400 0 PYT}
+ {1757217600 -10800 1 PYST}
+ {1775358000 -14400 0 PYT}
+ {1788667200 -10800 1 PYST}
+ {1806807600 -14400 0 PYT}
+ {1820116800 -10800 1 PYST}
+ {1838257200 -14400 0 PYT}
+ {1851566400 -10800 1 PYST}
+ {1869706800 -14400 0 PYT}
+ {1883016000 -10800 1 PYST}
+ {1901761200 -14400 0 PYT}
+ {1914465600 -10800 1 PYST}
+ {1933210800 -14400 0 PYT}
+ {1946520000 -10800 1 PYST}
+ {1964660400 -14400 0 PYT}
+ {1977969600 -10800 1 PYST}
+ {1996110000 -14400 0 PYT}
+ {2009419200 -10800 1 PYST}
+ {2027559600 -14400 0 PYT}
+ {2040868800 -10800 1 PYST}
+ {2059009200 -14400 0 PYT}
+ {2072318400 -10800 1 PYST}
+ {2091063600 -14400 0 PYT}
+ {2104372800 -10800 1 PYST}
+ {2122513200 -14400 0 PYT}
+ {2135822400 -10800 1 PYST}
+ {2153962800 -14400 0 PYT}
+ {2167272000 -10800 1 PYST}
+ {2185412400 -14400 0 PYT}
+ {2198721600 -10800 1 PYST}
+ {2216862000 -14400 0 PYT}
+ {2230171200 -10800 1 PYST}
+ {2248916400 -14400 0 PYT}
+ {2261620800 -10800 1 PYST}
+ {2280366000 -14400 0 PYT}
+ {2293675200 -10800 1 PYST}
+ {2311815600 -14400 0 PYT}
+ {2325124800 -10800 1 PYST}
+ {2343265200 -14400 0 PYT}
+ {2356574400 -10800 1 PYST}
+ {2374714800 -14400 0 PYT}
+ {2388024000 -10800 1 PYST}
+ {2406164400 -14400 0 PYT}
+ {2419473600 -10800 1 PYST}
+ {2438218800 -14400 0 PYT}
+ {2450923200 -10800 1 PYST}
+ {2469668400 -14400 0 PYT}
+ {2482977600 -10800 1 PYST}
+ {2501118000 -14400 0 PYT}
+ {2514427200 -10800 1 PYST}
+ {2532567600 -14400 0 PYT}
+ {2545876800 -10800 1 PYST}
+ {2564017200 -14400 0 PYT}
+ {2577326400 -10800 1 PYST}
+ {2596071600 -14400 0 PYT}
+ {2608776000 -10800 1 PYST}
+ {2627521200 -14400 0 PYT}
+ {2640830400 -10800 1 PYST}
+ {2658970800 -14400 0 PYT}
+ {2672280000 -10800 1 PYST}
+ {2690420400 -14400 0 PYT}
+ {2703729600 -10800 1 PYST}
+ {2721870000 -14400 0 PYT}
+ {2735179200 -10800 1 PYST}
+ {2753319600 -14400 0 PYT}
+ {2766628800 -10800 1 PYST}
+ {2785374000 -14400 0 PYT}
+ {2798078400 -10800 1 PYST}
+ {2816823600 -14400 0 PYT}
+ {2830132800 -10800 1 PYST}
+ {2848273200 -14400 0 PYT}
+ {2861582400 -10800 1 PYST}
+ {2879722800 -14400 0 PYT}
+ {2893032000 -10800 1 PYST}
+ {2911172400 -14400 0 PYT}
+ {2924481600 -10800 1 PYST}
+ {2942622000 -14400 0 PYT}
+ {2955931200 -10800 1 PYST}
+ {2974676400 -14400 0 PYT}
+ {2987985600 -10800 1 PYST}
+ {3006126000 -14400 0 PYT}
+ {3019435200 -10800 1 PYST}
+ {3037575600 -14400 0 PYT}
+ {3050884800 -10800 1 PYST}
+ {3069025200 -14400 0 PYT}
+ {3082334400 -10800 1 PYST}
+ {3100474800 -14400 0 PYT}
+ {3113784000 -10800 1 PYST}
+ {3132529200 -14400 0 PYT}
+ {3145233600 -10800 1 PYST}
+ {3163978800 -14400 0 PYT}
+ {3177288000 -10800 1 PYST}
+ {3195428400 -14400 0 PYT}
+ {3208737600 -10800 1 PYST}
+ {3226878000 -14400 0 PYT}
+ {3240187200 -10800 1 PYST}
+ {3258327600 -14400 0 PYT}
+ {3271636800 -10800 1 PYST}
+ {3289777200 -14400 0 PYT}
+ {3303086400 -10800 1 PYST}
+ {3321831600 -14400 0 PYT}
+ {3334536000 -10800 1 PYST}
+ {3353281200 -14400 0 PYT}
+ {3366590400 -10800 1 PYST}
+ {3384730800 -14400 0 PYT}
+ {3398040000 -10800 1 PYST}
+ {3416180400 -14400 0 PYT}
+ {3429489600 -10800 1 PYST}
+ {3447630000 -14400 0 PYT}
+ {3460939200 -10800 1 PYST}
+ {3479684400 -14400 0 PYT}
+ {3492388800 -10800 1 PYST}
+ {3511134000 -14400 0 PYT}
+ {3524443200 -10800 1 PYST}
+ {3542583600 -14400 0 PYT}
+ {3555892800 -10800 1 PYST}
+ {3574033200 -14400 0 PYT}
+ {3587342400 -10800 1 PYST}
+ {3605482800 -14400 0 PYT}
+ {3618792000 -10800 1 PYST}
+ {3636932400 -14400 0 PYT}
+ {3650241600 -10800 1 PYST}
+ {3668986800 -14400 0 PYT}
+ {3681691200 -10800 1 PYST}
+ {3700436400 -14400 0 PYT}
+ {3713745600 -10800 1 PYST}
+ {3731886000 -14400 0 PYT}
+ {3745195200 -10800 1 PYST}
+ {3763335600 -14400 0 PYT}
+ {3776644800 -10800 1 PYST}
+ {3794785200 -14400 0 PYT}
+ {3808094400 -10800 1 PYST}
+ {3826234800 -14400 0 PYT}
+ {3839544000 -10800 1 PYST}
+ {3858289200 -14400 0 PYT}
+ {3871598400 -10800 1 PYST}
+ {3889738800 -14400 0 PYT}
+ {3903048000 -10800 1 PYST}
+ {3921188400 -14400 0 PYT}
+ {3934497600 -10800 1 PYST}
+ {3952638000 -14400 0 PYT}
+ {3965947200 -10800 1 PYST}
+ {3984087600 -14400 0 PYT}
+ {3997396800 -10800 1 PYST}
+ {4016142000 -14400 0 PYT}
+ {4028846400 -10800 1 PYST}
+ {4047591600 -14400 0 PYT}
+ {4060900800 -10800 1 PYST}
+ {4079041200 -14400 0 PYT}
+ {4092350400 -10800 1 PYST}
+}
diff --git a/library/tzdata/America/Atka b/library/tzdata/America/Atka
new file mode 100644
index 0000000..e216e75
--- /dev/null
+++ b/library/tzdata/America/Atka
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Adak)]} {
+ loadTimeZoneFile America/Adak
+}
+set tzdata(:America/Atka) $TZData(:America/Adak)
diff --git a/library/tzdata/America/Bahia b/library/tzdata/America/Bahia
new file mode 100644
index 0000000..f3ba278
--- /dev/null
+++ b/library/tzdata/America/Bahia
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Bahia) {
+ {-9223372036854775808 -9244 0 LMT}
+ {-1767216356 -10800 0 BRT}
+ {-1206957600 -7200 1 BRST}
+ {-1191362400 -10800 0 BRT}
+ {-1175374800 -7200 1 BRST}
+ {-1159826400 -10800 0 BRT}
+ {-633819600 -7200 1 BRST}
+ {-622069200 -10800 0 BRT}
+ {-602283600 -7200 1 BRST}
+ {-591832800 -10800 0 BRT}
+ {-570747600 -7200 1 BRST}
+ {-560210400 -10800 0 BRT}
+ {-539125200 -7200 1 BRST}
+ {-531352800 -10800 0 BRT}
+ {-191365200 -7200 1 BRST}
+ {-184197600 -10800 0 BRT}
+ {-155163600 -7200 1 BRST}
+ {-150069600 -10800 0 BRT}
+ {-128898000 -7200 1 BRST}
+ {-121125600 -10800 0 BRT}
+ {-99954000 -7200 1 BRST}
+ {-89589600 -10800 0 BRT}
+ {-68418000 -7200 1 BRST}
+ {-57967200 -10800 0 BRT}
+ {499748400 -7200 1 BRST}
+ {511236000 -10800 0 BRT}
+ {530593200 -7200 1 BRST}
+ {540266400 -10800 0 BRT}
+ {562129200 -7200 1 BRST}
+ {571197600 -10800 0 BRT}
+ {592974000 -7200 1 BRST}
+ {602042400 -10800 0 BRT}
+ {624423600 -7200 1 BRST}
+ {634701600 -10800 0 BRT}
+ {656478000 -7200 1 BRST}
+ {666756000 -10800 0 BRT}
+ {687927600 -7200 1 BRST}
+ {697600800 -10800 0 BRT}
+ {719982000 -7200 1 BRST}
+ {728445600 -10800 0 BRT}
+ {750826800 -7200 1 BRST}
+ {761709600 -10800 0 BRT}
+ {782276400 -7200 1 BRST}
+ {793159200 -10800 0 BRT}
+ {813726000 -7200 1 BRST}
+ {824004000 -10800 0 BRT}
+ {844570800 -7200 1 BRST}
+ {856058400 -10800 0 BRT}
+ {876106800 -7200 1 BRST}
+ {888717600 -10800 0 BRT}
+ {908074800 -7200 1 BRST}
+ {919562400 -10800 0 BRT}
+ {938919600 -7200 1 BRST}
+ {951616800 -10800 0 BRT}
+ {970974000 -7200 1 BRST}
+ {982461600 -10800 0 BRT}
+ {1003028400 -7200 1 BRST}
+ {1013911200 -10800 0 BRT}
+ {1036292400 -7200 1 BRST}
+ {1045360800 -10800 0 BRT}
+ {1064368800 -10800 0 BRT}
+}
diff --git a/library/tzdata/America/Barbados b/library/tzdata/America/Barbados
new file mode 100644
index 0000000..13b4356
--- /dev/null
+++ b/library/tzdata/America/Barbados
@@ -0,0 +1,15 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Barbados) {
+ {-9223372036854775808 -14308 0 LMT}
+ {-1451678492 -14308 0 BMT}
+ {-1199217692 -14400 0 AST}
+ {234943200 -10800 1 ADT}
+ {244616400 -14400 0 AST}
+ {261554400 -10800 1 ADT}
+ {276066000 -14400 0 AST}
+ {293004000 -10800 1 ADT}
+ {307515600 -14400 0 AST}
+ {325058400 -10800 1 ADT}
+ {338706000 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Belem b/library/tzdata/America/Belem
new file mode 100644
index 0000000..979c01f
--- /dev/null
+++ b/library/tzdata/America/Belem
@@ -0,0 +1,35 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Belem) {
+ {-9223372036854775808 -11636 0 LMT}
+ {-1767213964 -10800 0 BRT}
+ {-1206957600 -7200 1 BRST}
+ {-1191362400 -10800 0 BRT}
+ {-1175374800 -7200 1 BRST}
+ {-1159826400 -10800 0 BRT}
+ {-633819600 -7200 1 BRST}
+ {-622069200 -10800 0 BRT}
+ {-602283600 -7200 1 BRST}
+ {-591832800 -10800 0 BRT}
+ {-570747600 -7200 1 BRST}
+ {-560210400 -10800 0 BRT}
+ {-539125200 -7200 1 BRST}
+ {-531352800 -10800 0 BRT}
+ {-191365200 -7200 1 BRST}
+ {-184197600 -10800 0 BRT}
+ {-155163600 -7200 1 BRST}
+ {-150069600 -10800 0 BRT}
+ {-128898000 -7200 1 BRST}
+ {-121125600 -10800 0 BRT}
+ {-99954000 -7200 1 BRST}
+ {-89589600 -10800 0 BRT}
+ {-68418000 -7200 1 BRST}
+ {-57967200 -10800 0 BRT}
+ {499748400 -7200 1 BRST}
+ {511236000 -10800 0 BRT}
+ {530593200 -7200 1 BRST}
+ {540266400 -10800 0 BRT}
+ {562129200 -7200 1 BRST}
+ {571197600 -10800 0 BRT}
+ {590032800 -10800 0 BRT}
+}
diff --git a/library/tzdata/America/Belize b/library/tzdata/America/Belize
new file mode 100644
index 0000000..067e2c8
--- /dev/null
+++ b/library/tzdata/America/Belize
@@ -0,0 +1,60 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Belize) {
+ {-9223372036854775808 -21168 0 LMT}
+ {-1822500432 -21600 0 CST}
+ {-1616954400 -19800 1 CHDT}
+ {-1606069800 -21600 0 CST}
+ {-1585504800 -19800 1 CHDT}
+ {-1574015400 -21600 0 CST}
+ {-1554055200 -19800 1 CHDT}
+ {-1542565800 -21600 0 CST}
+ {-1522605600 -19800 1 CHDT}
+ {-1511116200 -21600 0 CST}
+ {-1490551200 -19800 1 CHDT}
+ {-1479666600 -21600 0 CST}
+ {-1459101600 -19800 1 CHDT}
+ {-1448217000 -21600 0 CST}
+ {-1427652000 -19800 1 CHDT}
+ {-1416162600 -21600 0 CST}
+ {-1396202400 -19800 1 CHDT}
+ {-1384713000 -21600 0 CST}
+ {-1364752800 -19800 1 CHDT}
+ {-1353263400 -21600 0 CST}
+ {-1333303200 -19800 1 CHDT}
+ {-1321813800 -21600 0 CST}
+ {-1301248800 -19800 1 CHDT}
+ {-1290364200 -21600 0 CST}
+ {-1269799200 -19800 1 CHDT}
+ {-1258914600 -21600 0 CST}
+ {-1238349600 -19800 1 CHDT}
+ {-1226860200 -21600 0 CST}
+ {-1206900000 -19800 1 CHDT}
+ {-1195410600 -21600 0 CST}
+ {-1175450400 -19800 1 CHDT}
+ {-1163961000 -21600 0 CST}
+ {-1143396000 -19800 1 CHDT}
+ {-1132511400 -21600 0 CST}
+ {-1111946400 -19800 1 CHDT}
+ {-1101061800 -21600 0 CST}
+ {-1080496800 -19800 1 CHDT}
+ {-1069612200 -21600 0 CST}
+ {-1049047200 -19800 1 CHDT}
+ {-1037557800 -21600 0 CST}
+ {-1017597600 -19800 1 CHDT}
+ {-1006108200 -21600 0 CST}
+ {-986148000 -19800 1 CHDT}
+ {-974658600 -21600 0 CST}
+ {-954093600 -19800 1 CHDT}
+ {-943209000 -21600 0 CST}
+ {-922644000 -19800 1 CHDT}
+ {-911759400 -21600 0 CST}
+ {-891194400 -19800 1 CHDT}
+ {-879705000 -21600 0 CST}
+ {-859744800 -19800 1 CHDT}
+ {-848255400 -21600 0 CST}
+ {123919200 -18000 1 CDT}
+ {129618000 -21600 0 CST}
+ {409039200 -18000 1 CDT}
+ {413874000 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Boa_Vista b/library/tzdata/America/Boa_Vista
new file mode 100644
index 0000000..5f2d89a
--- /dev/null
+++ b/library/tzdata/America/Boa_Vista
@@ -0,0 +1,40 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Boa_Vista) {
+ {-9223372036854775808 -14560 0 LMT}
+ {-1767211040 -14400 0 AMT}
+ {-1206954000 -10800 1 AMST}
+ {-1191358800 -14400 0 AMT}
+ {-1175371200 -10800 1 AMST}
+ {-1159822800 -14400 0 AMT}
+ {-633816000 -10800 1 AMST}
+ {-622065600 -14400 0 AMT}
+ {-602280000 -10800 1 AMST}
+ {-591829200 -14400 0 AMT}
+ {-570744000 -10800 1 AMST}
+ {-560206800 -14400 0 AMT}
+ {-539121600 -10800 1 AMST}
+ {-531349200 -14400 0 AMT}
+ {-191361600 -10800 1 AMST}
+ {-184194000 -14400 0 AMT}
+ {-155160000 -10800 1 AMST}
+ {-150066000 -14400 0 AMT}
+ {-128894400 -10800 1 AMST}
+ {-121122000 -14400 0 AMT}
+ {-99950400 -10800 1 AMST}
+ {-89586000 -14400 0 AMT}
+ {-68414400 -10800 1 AMST}
+ {-57963600 -14400 0 AMT}
+ {499752000 -10800 1 AMST}
+ {511239600 -14400 0 AMT}
+ {530596800 -10800 1 AMST}
+ {540270000 -14400 0 AMT}
+ {562132800 -10800 1 AMST}
+ {571201200 -14400 0 AMT}
+ {590036400 -14400 0 AMT}
+ {938664000 -14400 0 AMT}
+ {938923200 -10800 1 AMST}
+ {951620400 -14400 0 AMT}
+ {970977600 -10800 1 AMST}
+ {971578800 -14400 0 AMT}
+}
diff --git a/library/tzdata/America/Bogota b/library/tzdata/America/Bogota
new file mode 100644
index 0000000..6c1da7d
--- /dev/null
+++ b/library/tzdata/America/Bogota
@@ -0,0 +1,9 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Bogota) {
+ {-9223372036854775808 -17780 0 LMT}
+ {-2707671820 -17780 0 BMT}
+ {-1739041420 -18000 0 COT}
+ {704782800 -14400 1 COST}
+ {725774400 -18000 0 COT}
+}
diff --git a/library/tzdata/America/Boise b/library/tzdata/America/Boise
new file mode 100644
index 0000000..baa4e7a
--- /dev/null
+++ b/library/tzdata/America/Boise
@@ -0,0 +1,281 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Boise) {
+ {-9223372036854775808 -27889 0 LMT}
+ {-2717640911 -28800 0 PST}
+ {-1633269600 -25200 1 PDT}
+ {-1615129200 -28800 0 PST}
+ {-1601820000 -25200 1 PDT}
+ {-1583679600 -28800 0 PST}
+ {-1471788000 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-769395600 -21600 1 MPT}
+ {-765388800 -25200 0 MST}
+ {-84380400 -21600 1 MDT}
+ {-68659200 -25200 0 MST}
+ {-52930800 -21600 1 MDT}
+ {-37209600 -25200 0 MST}
+ {-21481200 -21600 1 MDT}
+ {-5760000 -25200 0 MST}
+ {9968400 -21600 1 MDT}
+ {25689600 -25200 0 MST}
+ {41418000 -21600 1 MDT}
+ {57744000 -25200 0 MST}
+ {73472400 -21600 1 MDT}
+ {89193600 -25200 0 MST}
+ {104922000 -21600 1 MDT}
+ {120643200 -25200 0 MST}
+ {126255600 -25200 0 MST}
+ {129114000 -21600 0 MDT}
+ {152092800 -25200 0 MST}
+ {162378000 -21600 1 MDT}
+ {183542400 -25200 0 MST}
+ {199270800 -21600 1 MDT}
+ {215596800 -25200 0 MST}
+ {230720400 -21600 1 MDT}
+ {247046400 -25200 0 MST}
+ {262774800 -21600 1 MDT}
+ {278496000 -25200 0 MST}
+ {294224400 -21600 1 MDT}
+ {309945600 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720000000 -25200 0 MST}
+ {733914000 -21600 1 MDT}
+ {752054400 -25200 0 MST}
+ {765363600 -21600 1 MDT}
+ {783504000 -25200 0 MST}
+ {796813200 -21600 1 MDT}
+ {814953600 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {986115600 -21600 1 MDT}
+ {1004256000 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Buenos_Aires b/library/tzdata/America/Buenos_Aires
new file mode 100644
index 0000000..84686c6
--- /dev/null
+++ b/library/tzdata/America/Buenos_Aires
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Argentina/Buenos_Aires)]} {
+ loadTimeZoneFile America/Argentina/Buenos_Aires
+}
+set tzdata(:America/Buenos_Aires) $TZData(:America/Argentina/Buenos_Aires)
diff --git a/library/tzdata/America/Cambridge_Bay b/library/tzdata/America/Cambridge_Bay
new file mode 100644
index 0000000..06486db
--- /dev/null
+++ b/library/tzdata/America/Cambridge_Bay
@@ -0,0 +1,256 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Cambridge_Bay) {
+ {-9223372036854775808 -25220 0 LMT}
+ {-2713885180 -25200 0 MST}
+ {-1632063600 -21600 1 MDT}
+ {-1615132800 -25200 0 MST}
+ {-1596985200 -21600 1 MDT}
+ {-1583172000 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-769395600 -21600 1 MPT}
+ {-765388800 -25200 0 MST}
+ {-147891600 -18000 1 MDDT}
+ {-131562000 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720000000 -25200 0 MST}
+ {733914000 -21600 1 MDT}
+ {752054400 -25200 0 MST}
+ {765363600 -21600 1 MDT}
+ {783504000 -25200 0 MST}
+ {796813200 -21600 1 MDT}
+ {814953600 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941360400 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972806400 -18000 0 EST}
+ {973400400 -21600 0 CST}
+ {986115600 -21600 0 MDT}
+ {1004256000 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Campo_Grande b/library/tzdata/America/Campo_Grande
new file mode 100644
index 0000000..e31dc7f
--- /dev/null
+++ b/library/tzdata/America/Campo_Grande
@@ -0,0 +1,257 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Campo_Grande) {
+ {-9223372036854775808 -13108 0 LMT}
+ {-1767212492 -14400 0 AMT}
+ {-1206954000 -10800 1 AMST}
+ {-1191358800 -14400 0 AMT}
+ {-1175371200 -10800 1 AMST}
+ {-1159822800 -14400 0 AMT}
+ {-633816000 -10800 1 AMST}
+ {-622065600 -14400 0 AMT}
+ {-602280000 -10800 1 AMST}
+ {-591829200 -14400 0 AMT}
+ {-570744000 -10800 1 AMST}
+ {-560206800 -14400 0 AMT}
+ {-539121600 -10800 1 AMST}
+ {-531349200 -14400 0 AMT}
+ {-191361600 -10800 1 AMST}
+ {-184194000 -14400 0 AMT}
+ {-155160000 -10800 1 AMST}
+ {-150066000 -14400 0 AMT}
+ {-128894400 -10800 1 AMST}
+ {-121122000 -14400 0 AMT}
+ {-99950400 -10800 1 AMST}
+ {-89586000 -14400 0 AMT}
+ {-68414400 -10800 1 AMST}
+ {-57963600 -14400 0 AMT}
+ {499752000 -10800 1 AMST}
+ {511239600 -14400 0 AMT}
+ {530596800 -10800 1 AMST}
+ {540270000 -14400 0 AMT}
+ {562132800 -10800 1 AMST}
+ {571201200 -14400 0 AMT}
+ {592977600 -10800 1 AMST}
+ {602046000 -14400 0 AMT}
+ {624427200 -10800 1 AMST}
+ {634705200 -14400 0 AMT}
+ {656481600 -10800 1 AMST}
+ {666759600 -14400 0 AMT}
+ {687931200 -10800 1 AMST}
+ {697604400 -14400 0 AMT}
+ {719985600 -10800 1 AMST}
+ {728449200 -14400 0 AMT}
+ {750830400 -10800 1 AMST}
+ {761713200 -14400 0 AMT}
+ {782280000 -10800 1 AMST}
+ {793162800 -14400 0 AMT}
+ {813729600 -10800 1 AMST}
+ {824007600 -14400 0 AMT}
+ {844574400 -10800 1 AMST}
+ {856062000 -14400 0 AMT}
+ {876110400 -10800 1 AMST}
+ {888721200 -14400 0 AMT}
+ {908078400 -10800 1 AMST}
+ {919566000 -14400 0 AMT}
+ {938923200 -10800 1 AMST}
+ {951620400 -14400 0 AMT}
+ {970977600 -10800 1 AMST}
+ {982465200 -14400 0 AMT}
+ {1003032000 -10800 1 AMST}
+ {1013914800 -14400 0 AMT}
+ {1036296000 -10800 1 AMST}
+ {1045364400 -14400 0 AMT}
+ {1066536000 -10800 1 AMST}
+ {1076814000 -14400 0 AMT}
+ {1097985600 -10800 1 AMST}
+ {1108868400 -14400 0 AMT}
+ {1129435200 -10800 1 AMST}
+ {1140318000 -14400 0 AMT}
+ {1160884800 -10800 1 AMST}
+ {1171767600 -14400 0 AMT}
+ {1192939200 -10800 1 AMST}
+ {1203217200 -14400 0 AMT}
+ {1224388800 -10800 1 AMST}
+ {1234666800 -14400 0 AMT}
+ {1255838400 -10800 1 AMST}
+ {1266721200 -14400 0 AMT}
+ {1287288000 -10800 1 AMST}
+ {1298170800 -14400 0 AMT}
+ {1318737600 -10800 1 AMST}
+ {1329620400 -14400 0 AMT}
+ {1350792000 -10800 1 AMST}
+ {1361070000 -14400 0 AMT}
+ {1382241600 -10800 1 AMST}
+ {1392519600 -14400 0 AMT}
+ {1413691200 -10800 1 AMST}
+ {1423969200 -14400 0 AMT}
+ {1445140800 -10800 1 AMST}
+ {1456023600 -14400 0 AMT}
+ {1476590400 -10800 1 AMST}
+ {1487473200 -14400 0 AMT}
+ {1508040000 -10800 1 AMST}
+ {1518922800 -14400 0 AMT}
+ {1540094400 -10800 1 AMST}
+ {1550372400 -14400 0 AMT}
+ {1571544000 -10800 1 AMST}
+ {1581822000 -14400 0 AMT}
+ {1602993600 -10800 1 AMST}
+ {1613876400 -14400 0 AMT}
+ {1634443200 -10800 1 AMST}
+ {1645326000 -14400 0 AMT}
+ {1665892800 -10800 1 AMST}
+ {1676775600 -14400 0 AMT}
+ {1697342400 -10800 1 AMST}
+ {1708225200 -14400 0 AMT}
+ {1729396800 -10800 1 AMST}
+ {1739674800 -14400 0 AMT}
+ {1760846400 -10800 1 AMST}
+ {1771124400 -14400 0 AMT}
+ {1792296000 -10800 1 AMST}
+ {1803178800 -14400 0 AMT}
+ {1823745600 -10800 1 AMST}
+ {1834628400 -14400 0 AMT}
+ {1855195200 -10800 1 AMST}
+ {1866078000 -14400 0 AMT}
+ {1887249600 -10800 1 AMST}
+ {1897527600 -14400 0 AMT}
+ {1918699200 -10800 1 AMST}
+ {1928977200 -14400 0 AMT}
+ {1950148800 -10800 1 AMST}
+ {1960426800 -14400 0 AMT}
+ {1981598400 -10800 1 AMST}
+ {1992481200 -14400 0 AMT}
+ {2013048000 -10800 1 AMST}
+ {2023930800 -14400 0 AMT}
+ {2044497600 -10800 1 AMST}
+ {2055380400 -14400 0 AMT}
+ {2076552000 -10800 1 AMST}
+ {2086830000 -14400 0 AMT}
+ {2108001600 -10800 1 AMST}
+ {2118279600 -14400 0 AMT}
+ {2139451200 -10800 1 AMST}
+ {2150334000 -14400 0 AMT}
+ {2170900800 -10800 1 AMST}
+ {2181783600 -14400 0 AMT}
+ {2202350400 -10800 1 AMST}
+ {2213233200 -14400 0 AMT}
+ {2234404800 -10800 1 AMST}
+ {2244682800 -14400 0 AMT}
+ {2265854400 -10800 1 AMST}
+ {2276132400 -14400 0 AMT}
+ {2297304000 -10800 1 AMST}
+ {2307582000 -14400 0 AMT}
+ {2328753600 -10800 1 AMST}
+ {2339636400 -14400 0 AMT}
+ {2360203200 -10800 1 AMST}
+ {2371086000 -14400 0 AMT}
+ {2391652800 -10800 1 AMST}
+ {2402535600 -14400 0 AMT}
+ {2423707200 -10800 1 AMST}
+ {2433985200 -14400 0 AMT}
+ {2455156800 -10800 1 AMST}
+ {2465434800 -14400 0 AMT}
+ {2486606400 -10800 1 AMST}
+ {2497489200 -14400 0 AMT}
+ {2518056000 -10800 1 AMST}
+ {2528938800 -14400 0 AMT}
+ {2549505600 -10800 1 AMST}
+ {2560388400 -14400 0 AMT}
+ {2580955200 -10800 1 AMST}
+ {2591838000 -14400 0 AMT}
+ {2613009600 -10800 1 AMST}
+ {2623287600 -14400 0 AMT}
+ {2644459200 -10800 1 AMST}
+ {2654737200 -14400 0 AMT}
+ {2675908800 -10800 1 AMST}
+ {2686791600 -14400 0 AMT}
+ {2707358400 -10800 1 AMST}
+ {2718241200 -14400 0 AMT}
+ {2738808000 -10800 1 AMST}
+ {2749690800 -14400 0 AMT}
+ {2770862400 -10800 1 AMST}
+ {2781140400 -14400 0 AMT}
+ {2802312000 -10800 1 AMST}
+ {2812590000 -14400 0 AMT}
+ {2833761600 -10800 1 AMST}
+ {2844039600 -14400 0 AMT}
+ {2865211200 -10800 1 AMST}
+ {2876094000 -14400 0 AMT}
+ {2896660800 -10800 1 AMST}
+ {2907543600 -14400 0 AMT}
+ {2928110400 -10800 1 AMST}
+ {2938993200 -14400 0 AMT}
+ {2960164800 -10800 1 AMST}
+ {2970442800 -14400 0 AMT}
+ {2991614400 -10800 1 AMST}
+ {3001892400 -14400 0 AMT}
+ {3023064000 -10800 1 AMST}
+ {3033946800 -14400 0 AMT}
+ {3054513600 -10800 1 AMST}
+ {3065396400 -14400 0 AMT}
+ {3085963200 -10800 1 AMST}
+ {3096846000 -14400 0 AMT}
+ {3118017600 -10800 1 AMST}
+ {3128295600 -14400 0 AMT}
+ {3149467200 -10800 1 AMST}
+ {3159745200 -14400 0 AMT}
+ {3180916800 -10800 1 AMST}
+ {3191194800 -14400 0 AMT}
+ {3212366400 -10800 1 AMST}
+ {3223249200 -14400 0 AMT}
+ {3243816000 -10800 1 AMST}
+ {3254698800 -14400 0 AMT}
+ {3275265600 -10800 1 AMST}
+ {3286148400 -14400 0 AMT}
+ {3307320000 -10800 1 AMST}
+ {3317598000 -14400 0 AMT}
+ {3338769600 -10800 1 AMST}
+ {3349047600 -14400 0 AMT}
+ {3370219200 -10800 1 AMST}
+ {3381102000 -14400 0 AMT}
+ {3401668800 -10800 1 AMST}
+ {3412551600 -14400 0 AMT}
+ {3433118400 -10800 1 AMST}
+ {3444001200 -14400 0 AMT}
+ {3464568000 -10800 1 AMST}
+ {3475450800 -14400 0 AMT}
+ {3496622400 -10800 1 AMST}
+ {3506900400 -14400 0 AMT}
+ {3528072000 -10800 1 AMST}
+ {3538350000 -14400 0 AMT}
+ {3559521600 -10800 1 AMST}
+ {3570404400 -14400 0 AMT}
+ {3590971200 -10800 1 AMST}
+ {3601854000 -14400 0 AMT}
+ {3622420800 -10800 1 AMST}
+ {3633303600 -14400 0 AMT}
+ {3654475200 -10800 1 AMST}
+ {3664753200 -14400 0 AMT}
+ {3685924800 -10800 1 AMST}
+ {3696202800 -14400 0 AMT}
+ {3717374400 -10800 1 AMST}
+ {3727652400 -14400 0 AMT}
+ {3748824000 -10800 1 AMST}
+ {3759706800 -14400 0 AMT}
+ {3780273600 -10800 1 AMST}
+ {3791156400 -14400 0 AMT}
+ {3811723200 -10800 1 AMST}
+ {3822606000 -14400 0 AMT}
+ {3843777600 -10800 1 AMST}
+ {3854055600 -14400 0 AMT}
+ {3875227200 -10800 1 AMST}
+ {3885505200 -14400 0 AMT}
+ {3906676800 -10800 1 AMST}
+ {3917559600 -14400 0 AMT}
+ {3938126400 -10800 1 AMST}
+ {3949009200 -14400 0 AMT}
+ {3969576000 -10800 1 AMST}
+ {3980458800 -14400 0 AMT}
+ {4001630400 -10800 1 AMST}
+ {4011908400 -14400 0 AMT}
+ {4033080000 -10800 1 AMST}
+ {4043358000 -14400 0 AMT}
+ {4064529600 -10800 1 AMST}
+ {4074807600 -14400 0 AMT}
+ {4095979200 -10800 1 AMST}
+}
diff --git a/library/tzdata/America/Cancun b/library/tzdata/America/Cancun
new file mode 100644
index 0000000..8ecde30
--- /dev/null
+++ b/library/tzdata/America/Cancun
@@ -0,0 +1,216 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Cancun) {
+ {-9223372036854775808 -20824 0 LMT}
+ {-1514743200 -21600 0 CST}
+ {377935200 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {902041200 -18000 0 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {989136000 -18000 1 CDT}
+ {1001833200 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Caracas b/library/tzdata/America/Caracas
new file mode 100644
index 0000000..259662d
--- /dev/null
+++ b/library/tzdata/America/Caracas
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Caracas) {
+ {-9223372036854775808 -16064 0 LMT}
+ {-2524505536 -16060 0 CMT}
+ {-1826739140 -16200 0 VET}
+ {-157750200 -14400 0 VET}
+}
diff --git a/library/tzdata/America/Catamarca b/library/tzdata/America/Catamarca
new file mode 100644
index 0000000..238d63a
--- /dev/null
+++ b/library/tzdata/America/Catamarca
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Argentina/Catamarca)]} {
+ loadTimeZoneFile America/Argentina/Catamarca
+}
+set tzdata(:America/Catamarca) $TZData(:America/Argentina/Catamarca)
diff --git a/library/tzdata/America/Cayenne b/library/tzdata/America/Cayenne
new file mode 100644
index 0000000..24f9d58
--- /dev/null
+++ b/library/tzdata/America/Cayenne
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Cayenne) {
+ {-9223372036854775808 -12560 0 LMT}
+ {-1846269040 -14400 0 GFT}
+ {-71092800 -10800 0 GFT}
+}
diff --git a/library/tzdata/America/Cayman b/library/tzdata/America/Cayman
new file mode 100644
index 0000000..635bcdd
--- /dev/null
+++ b/library/tzdata/America/Cayman
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Cayman) {
+ {-9223372036854775808 -19532 0 LMT}
+ {-2524502068 -18432 0 KMT}
+ {-1827687168 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Chicago b/library/tzdata/America/Chicago
new file mode 100644
index 0000000..b485883
--- /dev/null
+++ b/library/tzdata/America/Chicago
@@ -0,0 +1,369 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Chicago) {
+ {-9223372036854775808 -21036 0 LMT}
+ {-2717647764 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-1577901600 -21600 0 CST}
+ {-1563724800 -18000 1 CDT}
+ {-1551632400 -21600 0 CST}
+ {-1538928000 -18000 1 CDT}
+ {-1520182800 -21600 0 CST}
+ {-1504454400 -18000 1 CDT}
+ {-1491757200 -21600 0 CST}
+ {-1473004800 -18000 1 CDT}
+ {-1459702800 -21600 0 CST}
+ {-1441555200 -18000 1 CDT}
+ {-1428253200 -21600 0 CST}
+ {-1410105600 -18000 1 CDT}
+ {-1396803600 -21600 0 CST}
+ {-1378656000 -18000 1 CDT}
+ {-1365354000 -21600 0 CST}
+ {-1347206400 -18000 1 CDT}
+ {-1333904400 -21600 0 CST}
+ {-1315152000 -18000 1 CDT}
+ {-1301850000 -21600 0 CST}
+ {-1283702400 -18000 1 CDT}
+ {-1270400400 -21600 0 CST}
+ {-1252252800 -18000 1 CDT}
+ {-1238950800 -21600 0 CST}
+ {-1220803200 -18000 1 CDT}
+ {-1207501200 -21600 0 CST}
+ {-1189353600 -18000 1 CDT}
+ {-1176051600 -21600 0 CST}
+ {-1157299200 -18000 1 CDT}
+ {-1144602000 -21600 0 CST}
+ {-1125849600 -18000 1 CDT}
+ {-1112547600 -21600 0 CST}
+ {-1094400000 -18000 1 CDT}
+ {-1081098000 -21600 0 CST}
+ {-1067788800 -18000 0 EST}
+ {-1045414800 -21600 0 CST}
+ {-1031500800 -18000 1 CDT}
+ {-1018198800 -21600 0 CST}
+ {-1000051200 -18000 1 CDT}
+ {-986749200 -21600 0 CST}
+ {-967996800 -18000 1 CDT}
+ {-955299600 -21600 0 CST}
+ {-936547200 -18000 1 CDT}
+ {-923245200 -21600 0 CST}
+ {-905097600 -18000 1 CDT}
+ {-891795600 -21600 0 CST}
+ {-883591200 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-757360800 -21600 0 CST}
+ {-747244800 -18000 1 CDT}
+ {-733942800 -21600 0 CST}
+ {-715795200 -18000 1 CDT}
+ {-702493200 -21600 0 CST}
+ {-684345600 -18000 1 CDT}
+ {-671043600 -21600 0 CST}
+ {-652896000 -18000 1 CDT}
+ {-639594000 -21600 0 CST}
+ {-620841600 -18000 1 CDT}
+ {-608144400 -21600 0 CST}
+ {-589392000 -18000 1 CDT}
+ {-576090000 -21600 0 CST}
+ {-557942400 -18000 1 CDT}
+ {-544640400 -21600 0 CST}
+ {-526492800 -18000 1 CDT}
+ {-513190800 -21600 0 CST}
+ {-495043200 -18000 1 CDT}
+ {-481741200 -21600 0 CST}
+ {-463593600 -18000 1 CDT}
+ {-447267600 -21600 0 CST}
+ {-431539200 -18000 1 CDT}
+ {-415818000 -21600 0 CST}
+ {-400089600 -18000 1 CDT}
+ {-384368400 -21600 0 CST}
+ {-368640000 -18000 1 CDT}
+ {-352918800 -21600 0 CST}
+ {-337190400 -18000 1 CDT}
+ {-321469200 -21600 0 CST}
+ {-305740800 -18000 1 CDT}
+ {-289414800 -21600 0 CST}
+ {-273686400 -18000 1 CDT}
+ {-257965200 -21600 0 CST}
+ {-242236800 -18000 1 CDT}
+ {-226515600 -21600 0 CST}
+ {-210787200 -18000 1 CDT}
+ {-195066000 -21600 0 CST}
+ {-179337600 -18000 1 CDT}
+ {-163616400 -21600 0 CST}
+ {-147888000 -18000 1 CDT}
+ {-131562000 -21600 0 CST}
+ {-116438400 -18000 1 CDT}
+ {-100112400 -21600 0 CST}
+ {-94672800 -21600 0 CST}
+ {-84384000 -18000 1 CDT}
+ {-68662800 -21600 0 CST}
+ {-52934400 -18000 1 CDT}
+ {-37213200 -21600 0 CST}
+ {-21484800 -18000 1 CDT}
+ {-5763600 -21600 0 CST}
+ {9964800 -18000 1 CDT}
+ {25686000 -21600 0 CST}
+ {41414400 -18000 1 CDT}
+ {57740400 -21600 0 CST}
+ {73468800 -18000 1 CDT}
+ {89190000 -21600 0 CST}
+ {104918400 -18000 1 CDT}
+ {120639600 -21600 0 CST}
+ {126691200 -18000 1 CDT}
+ {152089200 -21600 0 CST}
+ {162374400 -18000 1 CDT}
+ {183538800 -21600 0 CST}
+ {199267200 -18000 1 CDT}
+ {215593200 -21600 0 CST}
+ {230716800 -18000 1 CDT}
+ {247042800 -21600 0 CST}
+ {262771200 -18000 1 CDT}
+ {278492400 -21600 0 CST}
+ {294220800 -18000 1 CDT}
+ {309942000 -21600 0 CST}
+ {325670400 -18000 1 CDT}
+ {341391600 -21600 0 CST}
+ {357120000 -18000 1 CDT}
+ {372841200 -21600 0 CST}
+ {388569600 -18000 1 CDT}
+ {404895600 -21600 0 CST}
+ {420019200 -18000 1 CDT}
+ {436345200 -21600 0 CST}
+ {452073600 -18000 1 CDT}
+ {467794800 -21600 0 CST}
+ {483523200 -18000 1 CDT}
+ {499244400 -21600 0 CST}
+ {514972800 -18000 1 CDT}
+ {530694000 -21600 0 CST}
+ {544608000 -18000 1 CDT}
+ {562143600 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {607507200 -18000 1 CDT}
+ {625647600 -21600 0 CST}
+ {638956800 -18000 1 CDT}
+ {657097200 -21600 0 CST}
+ {671011200 -18000 1 CDT}
+ {688546800 -21600 0 CST}
+ {702460800 -18000 1 CDT}
+ {719996400 -21600 0 CST}
+ {733910400 -18000 1 CDT}
+ {752050800 -21600 0 CST}
+ {765360000 -18000 1 CDT}
+ {783500400 -21600 0 CST}
+ {796809600 -18000 1 CDT}
+ {814950000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {986112000 -18000 1 CDT}
+ {1004252400 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Chihuahua b/library/tzdata/America/Chihuahua
new file mode 100644
index 0000000..085a379
--- /dev/null
+++ b/library/tzdata/America/Chihuahua
@@ -0,0 +1,221 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Chihuahua) {
+ {-9223372036854775808 -25460 0 LMT}
+ {-1514739600 -25200 0 MST}
+ {-1343066400 -21600 0 CST}
+ {-1234807200 -25200 0 MST}
+ {-1220292000 -21600 0 CST}
+ {-1207159200 -25200 0 MST}
+ {-1191344400 -21600 0 CST}
+ {820476000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {883634400 -21600 0 CST}
+ {891766800 -21600 0 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {989139600 -21600 1 MDT}
+ {1001836800 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Cordoba b/library/tzdata/America/Cordoba
new file mode 100644
index 0000000..7f8b90e
--- /dev/null
+++ b/library/tzdata/America/Cordoba
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Argentina/Cordoba)]} {
+ loadTimeZoneFile America/Argentina/Cordoba
+}
+set tzdata(:America/Cordoba) $TZData(:America/Argentina/Cordoba)
diff --git a/library/tzdata/America/Costa_Rica b/library/tzdata/America/Costa_Rica
new file mode 100644
index 0000000..82dc632
--- /dev/null
+++ b/library/tzdata/America/Costa_Rica
@@ -0,0 +1,15 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Costa_Rica) {
+ {-9223372036854775808 -20180 0 LMT}
+ {-2524501420 -20180 0 SJMT}
+ {-1545071020 -21600 0 CST}
+ {288770400 -18000 1 CDT}
+ {297234000 -21600 0 CST}
+ {320220000 -18000 1 CDT}
+ {328683600 -21600 0 CST}
+ {664264800 -18000 1 CDT}
+ {678344400 -21600 0 CST}
+ {695714400 -18000 1 CDT}
+ {700635600 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Cuiaba b/library/tzdata/America/Cuiaba
new file mode 100644
index 0000000..db5f8ea
--- /dev/null
+++ b/library/tzdata/America/Cuiaba
@@ -0,0 +1,65 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Cuiaba) {
+ {-9223372036854775808 -13460 0 LMT}
+ {-1767212140 -14400 0 AMT}
+ {-1206954000 -10800 1 AMST}
+ {-1191358800 -14400 0 AMT}
+ {-1175371200 -10800 1 AMST}
+ {-1159822800 -14400 0 AMT}
+ {-633816000 -10800 1 AMST}
+ {-622065600 -14400 0 AMT}
+ {-602280000 -10800 1 AMST}
+ {-591829200 -14400 0 AMT}
+ {-570744000 -10800 1 AMST}
+ {-560206800 -14400 0 AMT}
+ {-539121600 -10800 1 AMST}
+ {-531349200 -14400 0 AMT}
+ {-191361600 -10800 1 AMST}
+ {-184194000 -14400 0 AMT}
+ {-155160000 -10800 1 AMST}
+ {-150066000 -14400 0 AMT}
+ {-128894400 -10800 1 AMST}
+ {-121122000 -14400 0 AMT}
+ {-99950400 -10800 1 AMST}
+ {-89586000 -14400 0 AMT}
+ {-68414400 -10800 1 AMST}
+ {-57963600 -14400 0 AMT}
+ {499752000 -10800 1 AMST}
+ {511239600 -14400 0 AMT}
+ {530596800 -10800 1 AMST}
+ {540270000 -14400 0 AMT}
+ {562132800 -10800 1 AMST}
+ {571201200 -14400 0 AMT}
+ {592977600 -10800 1 AMST}
+ {602046000 -14400 0 AMT}
+ {624427200 -10800 1 AMST}
+ {634705200 -14400 0 AMT}
+ {656481600 -10800 1 AMST}
+ {666759600 -14400 0 AMT}
+ {687931200 -10800 1 AMST}
+ {697604400 -14400 0 AMT}
+ {719985600 -10800 1 AMST}
+ {728449200 -14400 0 AMT}
+ {750830400 -10800 1 AMST}
+ {761713200 -14400 0 AMT}
+ {782280000 -10800 1 AMST}
+ {793162800 -14400 0 AMT}
+ {813729600 -10800 1 AMST}
+ {824007600 -14400 0 AMT}
+ {844574400 -10800 1 AMST}
+ {856062000 -14400 0 AMT}
+ {876110400 -10800 1 AMST}
+ {888721200 -14400 0 AMT}
+ {908078400 -10800 1 AMST}
+ {919566000 -14400 0 AMT}
+ {938923200 -10800 1 AMST}
+ {951620400 -14400 0 AMT}
+ {970977600 -10800 1 AMST}
+ {982465200 -14400 0 AMT}
+ {1003032000 -10800 1 AMST}
+ {1013914800 -14400 0 AMT}
+ {1036296000 -10800 1 AMST}
+ {1045364400 -14400 0 AMT}
+ {1064372400 -14400 0 AMT}
+}
diff --git a/library/tzdata/America/Curacao b/library/tzdata/America/Curacao
new file mode 100644
index 0000000..f2fa292
--- /dev/null
+++ b/library/tzdata/America/Curacao
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Curacao) {
+ {-9223372036854775808 -16544 0 LMT}
+ {-1826738656 -16200 0 ANT}
+ {-157750200 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Danmarkshavn b/library/tzdata/America/Danmarkshavn
new file mode 100644
index 0000000..7738045
--- /dev/null
+++ b/library/tzdata/America/Danmarkshavn
@@ -0,0 +1,39 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Danmarkshavn) {
+ {-9223372036854775808 -4480 0 LMT}
+ {-1686091520 -10800 0 WGT}
+ {323845200 -7200 0 WGST}
+ {338950800 -10800 0 WGT}
+ {354675600 -7200 1 WGST}
+ {370400400 -10800 0 WGT}
+ {386125200 -7200 1 WGST}
+ {401850000 -10800 0 WGT}
+ {417574800 -7200 1 WGST}
+ {433299600 -10800 0 WGT}
+ {449024400 -7200 1 WGST}
+ {465354000 -10800 0 WGT}
+ {481078800 -7200 1 WGST}
+ {496803600 -10800 0 WGT}
+ {512528400 -7200 1 WGST}
+ {528253200 -10800 0 WGT}
+ {543978000 -7200 1 WGST}
+ {559702800 -10800 0 WGT}
+ {575427600 -7200 1 WGST}
+ {591152400 -10800 0 WGT}
+ {606877200 -7200 1 WGST}
+ {622602000 -10800 0 WGT}
+ {638326800 -7200 1 WGST}
+ {654656400 -10800 0 WGT}
+ {670381200 -7200 1 WGST}
+ {686106000 -10800 0 WGT}
+ {701830800 -7200 1 WGST}
+ {717555600 -10800 0 WGT}
+ {733280400 -7200 1 WGST}
+ {749005200 -10800 0 WGT}
+ {764730000 -7200 1 WGST}
+ {780454800 -10800 0 WGT}
+ {796179600 -7200 1 WGST}
+ {811904400 -10800 0 WGT}
+ {820465200 0 0 GMT}
+}
diff --git a/library/tzdata/America/Dawson b/library/tzdata/America/Dawson
new file mode 100644
index 0000000..c5f5fd2
--- /dev/null
+++ b/library/tzdata/America/Dawson
@@ -0,0 +1,256 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Dawson) {
+ {-9223372036854775808 -33460 0 LMT}
+ {-2188996940 -32400 0 YST}
+ {-1632056400 -28800 1 YDT}
+ {-1615125600 -32400 0 YST}
+ {-1596978000 -28800 1 YDT}
+ {-1583164800 -32400 0 YST}
+ {-880203600 -28800 1 YWT}
+ {-769395600 -28800 1 YPT}
+ {-765381600 -32400 0 YST}
+ {-147884400 -25200 1 YDDT}
+ {-131554800 -32400 0 YST}
+ {120646800 -28800 0 PST}
+ {325677600 -25200 1 PDT}
+ {341398800 -28800 0 PST}
+ {357127200 -25200 1 PDT}
+ {372848400 -28800 0 PST}
+ {388576800 -25200 1 PDT}
+ {404902800 -28800 0 PST}
+ {420026400 -25200 1 PDT}
+ {436352400 -28800 0 PST}
+ {452080800 -25200 1 PDT}
+ {467802000 -28800 0 PST}
+ {483530400 -25200 1 PDT}
+ {499251600 -28800 0 PST}
+ {514980000 -25200 1 PDT}
+ {530701200 -28800 0 PST}
+ {544615200 -25200 1 PDT}
+ {562150800 -28800 0 PST}
+ {576064800 -25200 1 PDT}
+ {594205200 -28800 0 PST}
+ {607514400 -25200 1 PDT}
+ {625654800 -28800 0 PST}
+ {638964000 -25200 1 PDT}
+ {657104400 -28800 0 PST}
+ {671018400 -25200 1 PDT}
+ {688554000 -28800 0 PST}
+ {702468000 -25200 1 PDT}
+ {720003600 -28800 0 PST}
+ {733917600 -25200 1 PDT}
+ {752058000 -28800 0 PST}
+ {765367200 -25200 1 PDT}
+ {783507600 -28800 0 PST}
+ {796816800 -25200 1 PDT}
+ {814957200 -28800 0 PST}
+ {828871200 -25200 1 PDT}
+ {846406800 -28800 0 PST}
+ {860320800 -25200 1 PDT}
+ {877856400 -28800 0 PST}
+ {891770400 -25200 1 PDT}
+ {909306000 -28800 0 PST}
+ {923220000 -25200 1 PDT}
+ {941360400 -28800 0 PST}
+ {954669600 -25200 1 PDT}
+ {972810000 -28800 0 PST}
+ {986119200 -25200 1 PDT}
+ {1004259600 -28800 0 PST}
+ {1018173600 -25200 1 PDT}
+ {1035709200 -28800 0 PST}
+ {1049623200 -25200 1 PDT}
+ {1067158800 -28800 0 PST}
+ {1081072800 -25200 1 PDT}
+ {1099213200 -28800 0 PST}
+ {1112522400 -25200 1 PDT}
+ {1130662800 -28800 0 PST}
+ {1143972000 -25200 1 PDT}
+ {1162112400 -28800 0 PST}
+ {1175421600 -25200 1 PDT}
+ {1193562000 -28800 0 PST}
+ {1207476000 -25200 1 PDT}
+ {1225011600 -28800 0 PST}
+ {1238925600 -25200 1 PDT}
+ {1256461200 -28800 0 PST}
+ {1270375200 -25200 1 PDT}
+ {1288515600 -28800 0 PST}
+ {1301824800 -25200 1 PDT}
+ {1319965200 -28800 0 PST}
+ {1333274400 -25200 1 PDT}
+ {1351414800 -28800 0 PST}
+ {1365328800 -25200 1 PDT}
+ {1382864400 -28800 0 PST}
+ {1396778400 -25200 1 PDT}
+ {1414314000 -28800 0 PST}
+ {1428228000 -25200 1 PDT}
+ {1445763600 -28800 0 PST}
+ {1459677600 -25200 1 PDT}
+ {1477818000 -28800 0 PST}
+ {1491127200 -25200 1 PDT}
+ {1509267600 -28800 0 PST}
+ {1522576800 -25200 1 PDT}
+ {1540717200 -28800 0 PST}
+ {1554631200 -25200 1 PDT}
+ {1572166800 -28800 0 PST}
+ {1586080800 -25200 1 PDT}
+ {1603616400 -28800 0 PST}
+ {1617530400 -25200 1 PDT}
+ {1635670800 -28800 0 PST}
+ {1648980000 -25200 1 PDT}
+ {1667120400 -28800 0 PST}
+ {1680429600 -25200 1 PDT}
+ {1698570000 -28800 0 PST}
+ {1712484000 -25200 1 PDT}
+ {1730019600 -28800 0 PST}
+ {1743933600 -25200 1 PDT}
+ {1761469200 -28800 0 PST}
+ {1775383200 -25200 1 PDT}
+ {1792918800 -28800 0 PST}
+ {1806832800 -25200 1 PDT}
+ {1824973200 -28800 0 PST}
+ {1838282400 -25200 1 PDT}
+ {1856422800 -28800 0 PST}
+ {1869732000 -25200 1 PDT}
+ {1887872400 -28800 0 PST}
+ {1901786400 -25200 1 PDT}
+ {1919322000 -28800 0 PST}
+ {1933236000 -25200 1 PDT}
+ {1950771600 -28800 0 PST}
+ {1964685600 -25200 1 PDT}
+ {1982826000 -28800 0 PST}
+ {1996135200 -25200 1 PDT}
+ {2014275600 -28800 0 PST}
+ {2027584800 -25200 1 PDT}
+ {2045725200 -28800 0 PST}
+ {2059034400 -25200 1 PDT}
+ {2077174800 -28800 0 PST}
+ {2091088800 -25200 1 PDT}
+ {2108624400 -28800 0 PST}
+ {2122538400 -25200 1 PDT}
+ {2140074000 -28800 0 PST}
+ {2153988000 -25200 1 PDT}
+ {2172128400 -28800 0 PST}
+ {2185437600 -25200 1 PDT}
+ {2203578000 -28800 0 PST}
+ {2216887200 -25200 1 PDT}
+ {2235027600 -28800 0 PST}
+ {2248941600 -25200 1 PDT}
+ {2266477200 -28800 0 PST}
+ {2280391200 -25200 1 PDT}
+ {2297926800 -28800 0 PST}
+ {2311840800 -25200 1 PDT}
+ {2329376400 -28800 0 PST}
+ {2343290400 -25200 1 PDT}
+ {2361430800 -28800 0 PST}
+ {2374740000 -25200 1 PDT}
+ {2392880400 -28800 0 PST}
+ {2406189600 -25200 1 PDT}
+ {2424330000 -28800 0 PST}
+ {2438244000 -25200 1 PDT}
+ {2455779600 -28800 0 PST}
+ {2469693600 -25200 1 PDT}
+ {2487229200 -28800 0 PST}
+ {2501143200 -25200 1 PDT}
+ {2519283600 -28800 0 PST}
+ {2532592800 -25200 1 PDT}
+ {2550733200 -28800 0 PST}
+ {2564042400 -25200 1 PDT}
+ {2582182800 -28800 0 PST}
+ {2596096800 -25200 1 PDT}
+ {2613632400 -28800 0 PST}
+ {2627546400 -25200 1 PDT}
+ {2645082000 -28800 0 PST}
+ {2658996000 -25200 1 PDT}
+ {2676531600 -28800 0 PST}
+ {2690445600 -25200 1 PDT}
+ {2708586000 -28800 0 PST}
+ {2721895200 -25200 1 PDT}
+ {2740035600 -28800 0 PST}
+ {2753344800 -25200 1 PDT}
+ {2771485200 -28800 0 PST}
+ {2785399200 -25200 1 PDT}
+ {2802934800 -28800 0 PST}
+ {2816848800 -25200 1 PDT}
+ {2834384400 -28800 0 PST}
+ {2848298400 -25200 1 PDT}
+ {2866438800 -28800 0 PST}
+ {2879748000 -25200 1 PDT}
+ {2897888400 -28800 0 PST}
+ {2911197600 -25200 1 PDT}
+ {2929338000 -28800 0 PST}
+ {2942647200 -25200 1 PDT}
+ {2960787600 -28800 0 PST}
+ {2974701600 -25200 1 PDT}
+ {2992237200 -28800 0 PST}
+ {3006151200 -25200 1 PDT}
+ {3023686800 -28800 0 PST}
+ {3037600800 -25200 1 PDT}
+ {3055741200 -28800 0 PST}
+ {3069050400 -25200 1 PDT}
+ {3087190800 -28800 0 PST}
+ {3100500000 -25200 1 PDT}
+ {3118640400 -28800 0 PST}
+ {3132554400 -25200 1 PDT}
+ {3150090000 -28800 0 PST}
+ {3164004000 -25200 1 PDT}
+ {3181539600 -28800 0 PST}
+ {3195453600 -25200 1 PDT}
+ {3212989200 -28800 0 PST}
+ {3226903200 -25200 1 PDT}
+ {3245043600 -28800 0 PST}
+ {3258352800 -25200 1 PDT}
+ {3276493200 -28800 0 PST}
+ {3289802400 -25200 1 PDT}
+ {3307942800 -28800 0 PST}
+ {3321856800 -25200 1 PDT}
+ {3339392400 -28800 0 PST}
+ {3353306400 -25200 1 PDT}
+ {3370842000 -28800 0 PST}
+ {3384756000 -25200 1 PDT}
+ {3402896400 -28800 0 PST}
+ {3416205600 -25200 1 PDT}
+ {3434346000 -28800 0 PST}
+ {3447655200 -25200 1 PDT}
+ {3465795600 -28800 0 PST}
+ {3479709600 -25200 1 PDT}
+ {3497245200 -28800 0 PST}
+ {3511159200 -25200 1 PDT}
+ {3528694800 -28800 0 PST}
+ {3542608800 -25200 1 PDT}
+ {3560144400 -28800 0 PST}
+ {3574058400 -25200 1 PDT}
+ {3592198800 -28800 0 PST}
+ {3605508000 -25200 1 PDT}
+ {3623648400 -28800 0 PST}
+ {3636957600 -25200 1 PDT}
+ {3655098000 -28800 0 PST}
+ {3669012000 -25200 1 PDT}
+ {3686547600 -28800 0 PST}
+ {3700461600 -25200 1 PDT}
+ {3717997200 -28800 0 PST}
+ {3731911200 -25200 1 PDT}
+ {3750051600 -28800 0 PST}
+ {3763360800 -25200 1 PDT}
+ {3781501200 -28800 0 PST}
+ {3794810400 -25200 1 PDT}
+ {3812950800 -28800 0 PST}
+ {3826260000 -25200 1 PDT}
+ {3844400400 -28800 0 PST}
+ {3858314400 -25200 1 PDT}
+ {3875850000 -28800 0 PST}
+ {3889764000 -25200 1 PDT}
+ {3907299600 -28800 0 PST}
+ {3921213600 -25200 1 PDT}
+ {3939354000 -28800 0 PST}
+ {3952663200 -25200 1 PDT}
+ {3970803600 -28800 0 PST}
+ {3984112800 -25200 1 PDT}
+ {4002253200 -28800 0 PST}
+ {4016167200 -25200 1 PDT}
+ {4033702800 -28800 0 PST}
+ {4047616800 -25200 1 PDT}
+ {4065152400 -28800 0 PST}
+ {4079066400 -25200 1 PDT}
+ {4096602000 -28800 0 PST}
+}
diff --git a/library/tzdata/America/Dawson_Creek b/library/tzdata/America/Dawson_Creek
new file mode 100644
index 0000000..36a3f93
--- /dev/null
+++ b/library/tzdata/America/Dawson_Creek
@@ -0,0 +1,64 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Dawson_Creek) {
+ {-9223372036854775808 -28856 0 LMT}
+ {-2713881544 -28800 0 PST}
+ {-1632060000 -25200 1 PDT}
+ {-1614783600 -28800 0 PST}
+ {-880207200 -25200 1 PWT}
+ {-769395600 -25200 1 PPT}
+ {-765385200 -28800 0 PST}
+ {-725817600 -28800 0 PST}
+ {-715788000 -25200 1 PDT}
+ {-702486000 -28800 0 PST}
+ {-684338400 -25200 1 PDT}
+ {-671036400 -28800 0 PST}
+ {-652888800 -25200 1 PDT}
+ {-639586800 -28800 0 PST}
+ {-620834400 -25200 1 PDT}
+ {-608137200 -28800 0 PST}
+ {-589384800 -25200 1 PDT}
+ {-576082800 -28800 0 PST}
+ {-557935200 -25200 1 PDT}
+ {-544633200 -28800 0 PST}
+ {-526485600 -25200 1 PDT}
+ {-513183600 -28800 0 PST}
+ {-495036000 -25200 1 PDT}
+ {-481734000 -28800 0 PST}
+ {-463586400 -25200 1 PDT}
+ {-450284400 -28800 0 PST}
+ {-431532000 -25200 1 PDT}
+ {-418230000 -28800 0 PST}
+ {-400082400 -25200 1 PDT}
+ {-386780400 -28800 0 PST}
+ {-368632800 -25200 1 PDT}
+ {-355330800 -28800 0 PST}
+ {-337183200 -25200 1 PDT}
+ {-323881200 -28800 0 PST}
+ {-305733600 -25200 1 PDT}
+ {-292431600 -28800 0 PST}
+ {-273679200 -25200 1 PDT}
+ {-260982000 -28800 0 PST}
+ {-242229600 -25200 1 PDT}
+ {-226508400 -28800 0 PST}
+ {-210780000 -25200 1 PDT}
+ {-195058800 -28800 0 PST}
+ {-179330400 -25200 1 PDT}
+ {-163609200 -28800 0 PST}
+ {-147880800 -25200 1 PDT}
+ {-131554800 -28800 0 PST}
+ {-116431200 -25200 1 PDT}
+ {-100105200 -28800 0 PST}
+ {-84376800 -25200 1 PDT}
+ {-68655600 -28800 0 PST}
+ {-52927200 -25200 1 PDT}
+ {-37206000 -28800 0 PST}
+ {-21477600 -25200 1 PDT}
+ {-5756400 -28800 0 PST}
+ {9972000 -25200 1 PDT}
+ {25693200 -28800 0 PST}
+ {41421600 -25200 1 PDT}
+ {57747600 -28800 0 PST}
+ {73476000 -25200 1 PDT}
+ {84016800 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Denver b/library/tzdata/America/Denver
new file mode 100644
index 0000000..2fcb023
--- /dev/null
+++ b/library/tzdata/America/Denver
@@ -0,0 +1,291 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Denver) {
+ {-9223372036854775808 -25196 0 LMT}
+ {-2717643604 -25200 0 MST}
+ {-1633273200 -21600 1 MDT}
+ {-1615132800 -25200 0 MST}
+ {-1601823600 -21600 1 MDT}
+ {-1583683200 -25200 0 MST}
+ {-1577898000 -25200 0 MST}
+ {-1570374000 -21600 1 MDT}
+ {-1551628800 -25200 0 MST}
+ {-1538924400 -21600 1 MDT}
+ {-1534089600 -25200 0 MST}
+ {-883587600 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-769395600 -21600 1 MPT}
+ {-765388800 -25200 0 MST}
+ {-757357200 -25200 0 MST}
+ {-147884400 -21600 1 MDT}
+ {-131558400 -25200 0 MST}
+ {-116434800 -21600 1 MDT}
+ {-100108800 -25200 0 MST}
+ {-94669200 -25200 0 MST}
+ {-84380400 -21600 1 MDT}
+ {-68659200 -25200 0 MST}
+ {-52930800 -21600 1 MDT}
+ {-37209600 -25200 0 MST}
+ {-21481200 -21600 1 MDT}
+ {-5760000 -25200 0 MST}
+ {9968400 -21600 1 MDT}
+ {25689600 -25200 0 MST}
+ {41418000 -21600 1 MDT}
+ {57744000 -25200 0 MST}
+ {73472400 -21600 1 MDT}
+ {89193600 -25200 0 MST}
+ {104922000 -21600 1 MDT}
+ {120643200 -25200 0 MST}
+ {126694800 -21600 1 MDT}
+ {152092800 -25200 0 MST}
+ {162378000 -21600 1 MDT}
+ {183542400 -25200 0 MST}
+ {199270800 -21600 1 MDT}
+ {215596800 -25200 0 MST}
+ {230720400 -21600 1 MDT}
+ {247046400 -25200 0 MST}
+ {262774800 -21600 1 MDT}
+ {278496000 -25200 0 MST}
+ {294224400 -21600 1 MDT}
+ {309945600 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720000000 -25200 0 MST}
+ {733914000 -21600 1 MDT}
+ {752054400 -25200 0 MST}
+ {765363600 -21600 1 MDT}
+ {783504000 -25200 0 MST}
+ {796813200 -21600 1 MDT}
+ {814953600 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {986115600 -21600 1 MDT}
+ {1004256000 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Detroit b/library/tzdata/America/Detroit
new file mode 100644
index 0000000..b109fdb
--- /dev/null
+++ b/library/tzdata/America/Detroit
@@ -0,0 +1,272 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Detroit) {
+ {-9223372036854775808 -19931 0 LMT}
+ {-2051202469 -21600 0 CST}
+ {-1724083200 -18000 0 EST}
+ {-883594800 -18000 0 EST}
+ {-880218000 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-765396000 -18000 0 EST}
+ {-757364400 -18000 0 EST}
+ {-684349200 -14400 1 EDT}
+ {-671047200 -18000 0 EST}
+ {-80499600 -14400 1 EDT}
+ {-68666400 -18000 0 EST}
+ {94712400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {126687600 -14400 1 EDT}
+ {152085600 -18000 0 EST}
+ {157784400 -18000 0 EST}
+ {167814000 -14400 0 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Dominica b/library/tzdata/America/Dominica
new file mode 100644
index 0000000..32d8c06
--- /dev/null
+++ b/library/tzdata/America/Dominica
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Dominica) {
+ {-9223372036854775808 -14736 0 LMT}
+ {-1846266804 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Edmonton b/library/tzdata/America/Edmonton
new file mode 100644
index 0000000..a13133e
--- /dev/null
+++ b/library/tzdata/America/Edmonton
@@ -0,0 +1,283 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Edmonton) {
+ {-9223372036854775808 -27232 0 LMT}
+ {-1998663968 -25200 0 MST}
+ {-1632063600 -21600 1 MDT}
+ {-1614787200 -25200 0 MST}
+ {-1600614000 -21600 1 MDT}
+ {-1596816000 -25200 0 MST}
+ {-1567954800 -21600 1 MDT}
+ {-1551628800 -25200 0 MST}
+ {-1536505200 -21600 1 MDT}
+ {-1523203200 -25200 0 MST}
+ {-1504450800 -21600 1 MDT}
+ {-1491753600 -25200 0 MST}
+ {-1473001200 -21600 1 MDT}
+ {-1459699200 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-769395600 -21600 1 MPT}
+ {-765388800 -25200 0 MST}
+ {-715791600 -21600 1 MDT}
+ {-702489600 -25200 0 MST}
+ {-84380400 -21600 1 MDT}
+ {-68659200 -25200 0 MST}
+ {-21481200 -21600 1 MDT}
+ {-5760000 -25200 0 MST}
+ {73472400 -21600 1 MDT}
+ {89193600 -25200 0 MST}
+ {104922000 -21600 1 MDT}
+ {120643200 -25200 0 MST}
+ {136371600 -21600 1 MDT}
+ {152092800 -25200 0 MST}
+ {167821200 -21600 1 MDT}
+ {183542400 -25200 0 MST}
+ {199270800 -21600 1 MDT}
+ {215596800 -25200 0 MST}
+ {230720400 -21600 1 MDT}
+ {247046400 -25200 0 MST}
+ {262774800 -21600 1 MDT}
+ {278496000 -25200 0 MST}
+ {294224400 -21600 1 MDT}
+ {309945600 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720000000 -25200 0 MST}
+ {733914000 -21600 1 MDT}
+ {752054400 -25200 0 MST}
+ {765363600 -21600 1 MDT}
+ {783504000 -25200 0 MST}
+ {796813200 -21600 1 MDT}
+ {814953600 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {986115600 -21600 1 MDT}
+ {1004256000 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Eirunepe b/library/tzdata/America/Eirunepe
new file mode 100644
index 0000000..45a5a5d
--- /dev/null
+++ b/library/tzdata/America/Eirunepe
@@ -0,0 +1,39 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Eirunepe) {
+ {-9223372036854775808 -16768 0 LMT}
+ {-1767208832 -18000 0 ACT}
+ {-1206950400 -14400 1 ACST}
+ {-1191355200 -18000 0 ACT}
+ {-1175367600 -14400 1 ACST}
+ {-1159819200 -18000 0 ACT}
+ {-633812400 -14400 1 ACST}
+ {-622062000 -18000 0 ACT}
+ {-602276400 -14400 1 ACST}
+ {-591825600 -18000 0 ACT}
+ {-570740400 -14400 1 ACST}
+ {-560203200 -18000 0 ACT}
+ {-539118000 -14400 1 ACST}
+ {-531345600 -18000 0 ACT}
+ {-191358000 -14400 1 ACST}
+ {-184190400 -18000 0 ACT}
+ {-155156400 -14400 1 ACST}
+ {-150062400 -18000 0 ACT}
+ {-128890800 -14400 1 ACST}
+ {-121118400 -18000 0 ACT}
+ {-99946800 -14400 1 ACST}
+ {-89582400 -18000 0 ACT}
+ {-68410800 -14400 1 ACST}
+ {-57960000 -18000 0 ACT}
+ {499755600 -14400 1 ACST}
+ {511243200 -18000 0 ACT}
+ {530600400 -14400 1 ACST}
+ {540273600 -18000 0 ACT}
+ {562136400 -14400 1 ACST}
+ {571204800 -18000 0 ACT}
+ {590040000 -18000 0 ACT}
+ {749192400 -18000 0 ACT}
+ {750834000 -14400 1 ACST}
+ {761716800 -18000 0 ACT}
+ {780206400 -18000 0 ACT}
+}
diff --git a/library/tzdata/America/El_Salvador b/library/tzdata/America/El_Salvador
new file mode 100644
index 0000000..a427a47
--- /dev/null
+++ b/library/tzdata/America/El_Salvador
@@ -0,0 +1,10 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/El_Salvador) {
+ {-9223372036854775808 -21408 0 LMT}
+ {-1546279392 -21600 0 CST}
+ {547020000 -18000 1 CDT}
+ {559717200 -21600 0 CST}
+ {578469600 -18000 1 CDT}
+ {591166800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Ensenada b/library/tzdata/America/Ensenada
new file mode 100644
index 0000000..1a69985
--- /dev/null
+++ b/library/tzdata/America/Ensenada
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Tijuana)]} {
+ loadTimeZoneFile America/Tijuana
+}
+set tzdata(:America/Ensenada) $TZData(:America/Tijuana)
diff --git a/library/tzdata/America/Fort_Wayne b/library/tzdata/America/Fort_Wayne
new file mode 100644
index 0000000..f1f99bb
--- /dev/null
+++ b/library/tzdata/America/Fort_Wayne
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Indianapolis)]} {
+ loadTimeZoneFile America/Indianapolis
+}
+set tzdata(:America/Fort_Wayne) $TZData(:America/Indianapolis)
diff --git a/library/tzdata/America/Fortaleza b/library/tzdata/America/Fortaleza
new file mode 100644
index 0000000..3866604
--- /dev/null
+++ b/library/tzdata/America/Fortaleza
@@ -0,0 +1,48 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Fortaleza) {
+ {-9223372036854775808 -9240 0 LMT}
+ {-1767216360 -10800 0 BRT}
+ {-1206957600 -7200 1 BRST}
+ {-1191362400 -10800 0 BRT}
+ {-1175374800 -7200 1 BRST}
+ {-1159826400 -10800 0 BRT}
+ {-633819600 -7200 1 BRST}
+ {-622069200 -10800 0 BRT}
+ {-602283600 -7200 1 BRST}
+ {-591832800 -10800 0 BRT}
+ {-570747600 -7200 1 BRST}
+ {-560210400 -10800 0 BRT}
+ {-539125200 -7200 1 BRST}
+ {-531352800 -10800 0 BRT}
+ {-191365200 -7200 1 BRST}
+ {-184197600 -10800 0 BRT}
+ {-155163600 -7200 1 BRST}
+ {-150069600 -10800 0 BRT}
+ {-128898000 -7200 1 BRST}
+ {-121125600 -10800 0 BRT}
+ {-99954000 -7200 1 BRST}
+ {-89589600 -10800 0 BRT}
+ {-68418000 -7200 1 BRST}
+ {-57967200 -10800 0 BRT}
+ {499748400 -7200 1 BRST}
+ {511236000 -10800 0 BRT}
+ {530593200 -7200 1 BRST}
+ {540266400 -10800 0 BRT}
+ {562129200 -7200 1 BRST}
+ {571197600 -10800 0 BRT}
+ {592974000 -7200 1 BRST}
+ {602042400 -10800 0 BRT}
+ {624423600 -7200 1 BRST}
+ {634701600 -10800 0 BRT}
+ {653536800 -10800 0 BRT}
+ {938660400 -10800 0 BRT}
+ {938919600 -7200 1 BRST}
+ {951616800 -10800 0 BRT}
+ {970974000 -7200 1 BRST}
+ {972180000 -10800 0 BRT}
+ {1000350000 -10800 0 BRT}
+ {1003028400 -7200 1 BRST}
+ {1013911200 -10800 0 BRT}
+ {1033437600 -10800 0 BRT}
+}
diff --git a/library/tzdata/America/Glace_Bay b/library/tzdata/America/Glace_Bay
new file mode 100644
index 0000000..4252949
--- /dev/null
+++ b/library/tzdata/America/Glace_Bay
@@ -0,0 +1,273 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Glace_Bay) {
+ {-9223372036854775808 -14388 0 LMT}
+ {-2131646412 -14400 0 AST}
+ {-1632074400 -10800 1 ADT}
+ {-1614798000 -14400 0 AST}
+ {-880221600 -10800 1 AWT}
+ {-769395600 -10800 1 APT}
+ {-765399600 -14400 0 AST}
+ {-536443200 -14400 0 AST}
+ {-526500000 -10800 1 ADT}
+ {-513198000 -14400 0 AST}
+ {-504907200 -14400 0 AST}
+ {63086400 -14400 0 AST}
+ {73461600 -10800 1 ADT}
+ {89182800 -14400 0 AST}
+ {104911200 -10800 1 ADT}
+ {120632400 -14400 0 AST}
+ {126244800 -14400 0 AST}
+ {136360800 -10800 1 ADT}
+ {152082000 -14400 0 AST}
+ {167810400 -10800 1 ADT}
+ {183531600 -14400 0 AST}
+ {199260000 -10800 1 ADT}
+ {215586000 -14400 0 AST}
+ {230709600 -10800 1 ADT}
+ {247035600 -14400 0 AST}
+ {262764000 -10800 1 ADT}
+ {278485200 -14400 0 AST}
+ {294213600 -10800 1 ADT}
+ {309934800 -14400 0 AST}
+ {325663200 -10800 1 ADT}
+ {341384400 -14400 0 AST}
+ {357112800 -10800 1 ADT}
+ {372834000 -14400 0 AST}
+ {388562400 -10800 1 ADT}
+ {404888400 -14400 0 AST}
+ {420012000 -10800 1 ADT}
+ {436338000 -14400 0 AST}
+ {452066400 -10800 1 ADT}
+ {467787600 -14400 0 AST}
+ {483516000 -10800 1 ADT}
+ {499237200 -14400 0 AST}
+ {514965600 -10800 1 ADT}
+ {530686800 -14400 0 AST}
+ {544600800 -10800 1 ADT}
+ {562136400 -14400 0 AST}
+ {576050400 -10800 1 ADT}
+ {594190800 -14400 0 AST}
+ {607500000 -10800 1 ADT}
+ {625640400 -14400 0 AST}
+ {638949600 -10800 1 ADT}
+ {657090000 -14400 0 AST}
+ {671004000 -10800 1 ADT}
+ {688539600 -14400 0 AST}
+ {702453600 -10800 1 ADT}
+ {719989200 -14400 0 AST}
+ {733903200 -10800 1 ADT}
+ {752043600 -14400 0 AST}
+ {765352800 -10800 1 ADT}
+ {783493200 -14400 0 AST}
+ {796802400 -10800 1 ADT}
+ {814942800 -14400 0 AST}
+ {828856800 -10800 1 ADT}
+ {846392400 -14400 0 AST}
+ {860306400 -10800 1 ADT}
+ {877842000 -14400 0 AST}
+ {891756000 -10800 1 ADT}
+ {909291600 -14400 0 AST}
+ {923205600 -10800 1 ADT}
+ {941346000 -14400 0 AST}
+ {954655200 -10800 1 ADT}
+ {972795600 -14400 0 AST}
+ {986104800 -10800 1 ADT}
+ {1004245200 -14400 0 AST}
+ {1018159200 -10800 1 ADT}
+ {1035694800 -14400 0 AST}
+ {1049608800 -10800 1 ADT}
+ {1067144400 -14400 0 AST}
+ {1081058400 -10800 1 ADT}
+ {1099198800 -14400 0 AST}
+ {1112508000 -10800 1 ADT}
+ {1130648400 -14400 0 AST}
+ {1143957600 -10800 1 ADT}
+ {1162098000 -14400 0 AST}
+ {1175407200 -10800 1 ADT}
+ {1193547600 -14400 0 AST}
+ {1207461600 -10800 1 ADT}
+ {1224997200 -14400 0 AST}
+ {1238911200 -10800 1 ADT}
+ {1256446800 -14400 0 AST}
+ {1270360800 -10800 1 ADT}
+ {1288501200 -14400 0 AST}
+ {1301810400 -10800 1 ADT}
+ {1319950800 -14400 0 AST}
+ {1333260000 -10800 1 ADT}
+ {1351400400 -14400 0 AST}
+ {1365314400 -10800 1 ADT}
+ {1382850000 -14400 0 AST}
+ {1396764000 -10800 1 ADT}
+ {1414299600 -14400 0 AST}
+ {1428213600 -10800 1 ADT}
+ {1445749200 -14400 0 AST}
+ {1459663200 -10800 1 ADT}
+ {1477803600 -14400 0 AST}
+ {1491112800 -10800 1 ADT}
+ {1509253200 -14400 0 AST}
+ {1522562400 -10800 1 ADT}
+ {1540702800 -14400 0 AST}
+ {1554616800 -10800 1 ADT}
+ {1572152400 -14400 0 AST}
+ {1586066400 -10800 1 ADT}
+ {1603602000 -14400 0 AST}
+ {1617516000 -10800 1 ADT}
+ {1635656400 -14400 0 AST}
+ {1648965600 -10800 1 ADT}
+ {1667106000 -14400 0 AST}
+ {1680415200 -10800 1 ADT}
+ {1698555600 -14400 0 AST}
+ {1712469600 -10800 1 ADT}
+ {1730005200 -14400 0 AST}
+ {1743919200 -10800 1 ADT}
+ {1761454800 -14400 0 AST}
+ {1775368800 -10800 1 ADT}
+ {1792904400 -14400 0 AST}
+ {1806818400 -10800 1 ADT}
+ {1824958800 -14400 0 AST}
+ {1838268000 -10800 1 ADT}
+ {1856408400 -14400 0 AST}
+ {1869717600 -10800 1 ADT}
+ {1887858000 -14400 0 AST}
+ {1901772000 -10800 1 ADT}
+ {1919307600 -14400 0 AST}
+ {1933221600 -10800 1 ADT}
+ {1950757200 -14400 0 AST}
+ {1964671200 -10800 1 ADT}
+ {1982811600 -14400 0 AST}
+ {1996120800 -10800 1 ADT}
+ {2014261200 -14400 0 AST}
+ {2027570400 -10800 1 ADT}
+ {2045710800 -14400 0 AST}
+ {2059020000 -10800 1 ADT}
+ {2077160400 -14400 0 AST}
+ {2091074400 -10800 1 ADT}
+ {2108610000 -14400 0 AST}
+ {2122524000 -10800 1 ADT}
+ {2140059600 -14400 0 AST}
+ {2153973600 -10800 1 ADT}
+ {2172114000 -14400 0 AST}
+ {2185423200 -10800 1 ADT}
+ {2203563600 -14400 0 AST}
+ {2216872800 -10800 1 ADT}
+ {2235013200 -14400 0 AST}
+ {2248927200 -10800 1 ADT}
+ {2266462800 -14400 0 AST}
+ {2280376800 -10800 1 ADT}
+ {2297912400 -14400 0 AST}
+ {2311826400 -10800 1 ADT}
+ {2329362000 -14400 0 AST}
+ {2343276000 -10800 1 ADT}
+ {2361416400 -14400 0 AST}
+ {2374725600 -10800 1 ADT}
+ {2392866000 -14400 0 AST}
+ {2406175200 -10800 1 ADT}
+ {2424315600 -14400 0 AST}
+ {2438229600 -10800 1 ADT}
+ {2455765200 -14400 0 AST}
+ {2469679200 -10800 1 ADT}
+ {2487214800 -14400 0 AST}
+ {2501128800 -10800 1 ADT}
+ {2519269200 -14400 0 AST}
+ {2532578400 -10800 1 ADT}
+ {2550718800 -14400 0 AST}
+ {2564028000 -10800 1 ADT}
+ {2582168400 -14400 0 AST}
+ {2596082400 -10800 1 ADT}
+ {2613618000 -14400 0 AST}
+ {2627532000 -10800 1 ADT}
+ {2645067600 -14400 0 AST}
+ {2658981600 -10800 1 ADT}
+ {2676517200 -14400 0 AST}
+ {2690431200 -10800 1 ADT}
+ {2708571600 -14400 0 AST}
+ {2721880800 -10800 1 ADT}
+ {2740021200 -14400 0 AST}
+ {2753330400 -10800 1 ADT}
+ {2771470800 -14400 0 AST}
+ {2785384800 -10800 1 ADT}
+ {2802920400 -14400 0 AST}
+ {2816834400 -10800 1 ADT}
+ {2834370000 -14400 0 AST}
+ {2848284000 -10800 1 ADT}
+ {2866424400 -14400 0 AST}
+ {2879733600 -10800 1 ADT}
+ {2897874000 -14400 0 AST}
+ {2911183200 -10800 1 ADT}
+ {2929323600 -14400 0 AST}
+ {2942632800 -10800 1 ADT}
+ {2960773200 -14400 0 AST}
+ {2974687200 -10800 1 ADT}
+ {2992222800 -14400 0 AST}
+ {3006136800 -10800 1 ADT}
+ {3023672400 -14400 0 AST}
+ {3037586400 -10800 1 ADT}
+ {3055726800 -14400 0 AST}
+ {3069036000 -10800 1 ADT}
+ {3087176400 -14400 0 AST}
+ {3100485600 -10800 1 ADT}
+ {3118626000 -14400 0 AST}
+ {3132540000 -10800 1 ADT}
+ {3150075600 -14400 0 AST}
+ {3163989600 -10800 1 ADT}
+ {3181525200 -14400 0 AST}
+ {3195439200 -10800 1 ADT}
+ {3212974800 -14400 0 AST}
+ {3226888800 -10800 1 ADT}
+ {3245029200 -14400 0 AST}
+ {3258338400 -10800 1 ADT}
+ {3276478800 -14400 0 AST}
+ {3289788000 -10800 1 ADT}
+ {3307928400 -14400 0 AST}
+ {3321842400 -10800 1 ADT}
+ {3339378000 -14400 0 AST}
+ {3353292000 -10800 1 ADT}
+ {3370827600 -14400 0 AST}
+ {3384741600 -10800 1 ADT}
+ {3402882000 -14400 0 AST}
+ {3416191200 -10800 1 ADT}
+ {3434331600 -14400 0 AST}
+ {3447640800 -10800 1 ADT}
+ {3465781200 -14400 0 AST}
+ {3479695200 -10800 1 ADT}
+ {3497230800 -14400 0 AST}
+ {3511144800 -10800 1 ADT}
+ {3528680400 -14400 0 AST}
+ {3542594400 -10800 1 ADT}
+ {3560130000 -14400 0 AST}
+ {3574044000 -10800 1 ADT}
+ {3592184400 -14400 0 AST}
+ {3605493600 -10800 1 ADT}
+ {3623634000 -14400 0 AST}
+ {3636943200 -10800 1 ADT}
+ {3655083600 -14400 0 AST}
+ {3668997600 -10800 1 ADT}
+ {3686533200 -14400 0 AST}
+ {3700447200 -10800 1 ADT}
+ {3717982800 -14400 0 AST}
+ {3731896800 -10800 1 ADT}
+ {3750037200 -14400 0 AST}
+ {3763346400 -10800 1 ADT}
+ {3781486800 -14400 0 AST}
+ {3794796000 -10800 1 ADT}
+ {3812936400 -14400 0 AST}
+ {3826245600 -10800 1 ADT}
+ {3844386000 -14400 0 AST}
+ {3858300000 -10800 1 ADT}
+ {3875835600 -14400 0 AST}
+ {3889749600 -10800 1 ADT}
+ {3907285200 -14400 0 AST}
+ {3921199200 -10800 1 ADT}
+ {3939339600 -14400 0 AST}
+ {3952648800 -10800 1 ADT}
+ {3970789200 -14400 0 AST}
+ {3984098400 -10800 1 ADT}
+ {4002238800 -14400 0 AST}
+ {4016152800 -10800 1 ADT}
+ {4033688400 -14400 0 AST}
+ {4047602400 -10800 1 ADT}
+ {4065138000 -14400 0 AST}
+ {4079052000 -10800 1 ADT}
+ {4096587600 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Godthab b/library/tzdata/America/Godthab
new file mode 100644
index 0000000..25140e8
--- /dev/null
+++ b/library/tzdata/America/Godthab
@@ -0,0 +1,246 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Godthab) {
+ {-9223372036854775808 -12416 0 LMT}
+ {-1686083584 -10800 0 WGT}
+ {323845200 -7200 0 WGST}
+ {338950800 -10800 0 WGT}
+ {354675600 -7200 1 WGST}
+ {370400400 -10800 0 WGT}
+ {386125200 -7200 1 WGST}
+ {401850000 -10800 0 WGT}
+ {417574800 -7200 1 WGST}
+ {433299600 -10800 0 WGT}
+ {449024400 -7200 1 WGST}
+ {465354000 -10800 0 WGT}
+ {481078800 -7200 1 WGST}
+ {496803600 -10800 0 WGT}
+ {512528400 -7200 1 WGST}
+ {528253200 -10800 0 WGT}
+ {543978000 -7200 1 WGST}
+ {559702800 -10800 0 WGT}
+ {575427600 -7200 1 WGST}
+ {591152400 -10800 0 WGT}
+ {606877200 -7200 1 WGST}
+ {622602000 -10800 0 WGT}
+ {638326800 -7200 1 WGST}
+ {654656400 -10800 0 WGT}
+ {670381200 -7200 1 WGST}
+ {686106000 -10800 0 WGT}
+ {701830800 -7200 1 WGST}
+ {717555600 -10800 0 WGT}
+ {733280400 -7200 1 WGST}
+ {749005200 -10800 0 WGT}
+ {764730000 -7200 1 WGST}
+ {780454800 -10800 0 WGT}
+ {796179600 -7200 1 WGST}
+ {811904400 -10800 0 WGT}
+ {828234000 -7200 1 WGST}
+ {846378000 -10800 0 WGT}
+ {859683600 -7200 1 WGST}
+ {877827600 -10800 0 WGT}
+ {891133200 -7200 1 WGST}
+ {909277200 -10800 0 WGT}
+ {922582800 -7200 1 WGST}
+ {941331600 -10800 0 WGT}
+ {954032400 -7200 1 WGST}
+ {972781200 -10800 0 WGT}
+ {985482000 -7200 1 WGST}
+ {1004230800 -10800 0 WGT}
+ {1017536400 -7200 1 WGST}
+ {1035680400 -10800 0 WGT}
+ {1048986000 -7200 1 WGST}
+ {1067130000 -10800 0 WGT}
+ {1080435600 -7200 1 WGST}
+ {1099184400 -10800 0 WGT}
+ {1111885200 -7200 1 WGST}
+ {1130634000 -10800 0 WGT}
+ {1143334800 -7200 1 WGST}
+ {1162083600 -10800 0 WGT}
+ {1174784400 -7200 1 WGST}
+ {1193533200 -10800 0 WGT}
+ {1206838800 -7200 1 WGST}
+ {1224982800 -10800 0 WGT}
+ {1238288400 -7200 1 WGST}
+ {1256432400 -10800 0 WGT}
+ {1269738000 -7200 1 WGST}
+ {1288486800 -10800 0 WGT}
+ {1301187600 -7200 1 WGST}
+ {1319936400 -10800 0 WGT}
+ {1332637200 -7200 1 WGST}
+ {1351386000 -10800 0 WGT}
+ {1364691600 -7200 1 WGST}
+ {1382835600 -10800 0 WGT}
+ {1396141200 -7200 1 WGST}
+ {1414285200 -10800 0 WGT}
+ {1427590800 -7200 1 WGST}
+ {1445734800 -10800 0 WGT}
+ {1459040400 -7200 1 WGST}
+ {1477789200 -10800 0 WGT}
+ {1490490000 -7200 1 WGST}
+ {1509238800 -10800 0 WGT}
+ {1521939600 -7200 1 WGST}
+ {1540688400 -10800 0 WGT}
+ {1553994000 -7200 1 WGST}
+ {1572138000 -10800 0 WGT}
+ {1585443600 -7200 1 WGST}
+ {1603587600 -10800 0 WGT}
+ {1616893200 -7200 1 WGST}
+ {1635642000 -10800 0 WGT}
+ {1648342800 -7200 1 WGST}
+ {1667091600 -10800 0 WGT}
+ {1679792400 -7200 1 WGST}
+ {1698541200 -10800 0 WGT}
+ {1711846800 -7200 1 WGST}
+ {1729990800 -10800 0 WGT}
+ {1743296400 -7200 1 WGST}
+ {1761440400 -10800 0 WGT}
+ {1774746000 -7200 1 WGST}
+ {1792890000 -10800 0 WGT}
+ {1806195600 -7200 1 WGST}
+ {1824944400 -10800 0 WGT}
+ {1837645200 -7200 1 WGST}
+ {1856394000 -10800 0 WGT}
+ {1869094800 -7200 1 WGST}
+ {1887843600 -10800 0 WGT}
+ {1901149200 -7200 1 WGST}
+ {1919293200 -10800 0 WGT}
+ {1932598800 -7200 1 WGST}
+ {1950742800 -10800 0 WGT}
+ {1964048400 -7200 1 WGST}
+ {1982797200 -10800 0 WGT}
+ {1995498000 -7200 1 WGST}
+ {2014246800 -10800 0 WGT}
+ {2026947600 -7200 1 WGST}
+ {2045696400 -10800 0 WGT}
+ {2058397200 -7200 1 WGST}
+ {2077146000 -10800 0 WGT}
+ {2090451600 -7200 1 WGST}
+ {2108595600 -10800 0 WGT}
+ {2121901200 -7200 1 WGST}
+ {2140045200 -10800 0 WGT}
+ {2153350800 -7200 1 WGST}
+ {2172099600 -10800 0 WGT}
+ {2184800400 -7200 1 WGST}
+ {2203549200 -10800 0 WGT}
+ {2216250000 -7200 1 WGST}
+ {2234998800 -10800 0 WGT}
+ {2248304400 -7200 1 WGST}
+ {2266448400 -10800 0 WGT}
+ {2279754000 -7200 1 WGST}
+ {2297898000 -10800 0 WGT}
+ {2311203600 -7200 1 WGST}
+ {2329347600 -10800 0 WGT}
+ {2342653200 -7200 1 WGST}
+ {2361402000 -10800 0 WGT}
+ {2374102800 -7200 1 WGST}
+ {2392851600 -10800 0 WGT}
+ {2405552400 -7200 1 WGST}
+ {2424301200 -10800 0 WGT}
+ {2437606800 -7200 1 WGST}
+ {2455750800 -10800 0 WGT}
+ {2469056400 -7200 1 WGST}
+ {2487200400 -10800 0 WGT}
+ {2500506000 -7200 1 WGST}
+ {2519254800 -10800 0 WGT}
+ {2531955600 -7200 1 WGST}
+ {2550704400 -10800 0 WGT}
+ {2563405200 -7200 1 WGST}
+ {2582154000 -10800 0 WGT}
+ {2595459600 -7200 1 WGST}
+ {2613603600 -10800 0 WGT}
+ {2626909200 -7200 1 WGST}
+ {2645053200 -10800 0 WGT}
+ {2658358800 -7200 1 WGST}
+ {2676502800 -10800 0 WGT}
+ {2689808400 -7200 1 WGST}
+ {2708557200 -10800 0 WGT}
+ {2721258000 -7200 1 WGST}
+ {2740006800 -10800 0 WGT}
+ {2752707600 -7200 1 WGST}
+ {2771456400 -10800 0 WGT}
+ {2784762000 -7200 1 WGST}
+ {2802906000 -10800 0 WGT}
+ {2816211600 -7200 1 WGST}
+ {2834355600 -10800 0 WGT}
+ {2847661200 -7200 1 WGST}
+ {2866410000 -10800 0 WGT}
+ {2879110800 -7200 1 WGST}
+ {2897859600 -10800 0 WGT}
+ {2910560400 -7200 1 WGST}
+ {2929309200 -10800 0 WGT}
+ {2942010000 -7200 1 WGST}
+ {2960758800 -10800 0 WGT}
+ {2974064400 -7200 1 WGST}
+ {2992208400 -10800 0 WGT}
+ {3005514000 -7200 1 WGST}
+ {3023658000 -10800 0 WGT}
+ {3036963600 -7200 1 WGST}
+ {3055712400 -10800 0 WGT}
+ {3068413200 -7200 1 WGST}
+ {3087162000 -10800 0 WGT}
+ {3099862800 -7200 1 WGST}
+ {3118611600 -10800 0 WGT}
+ {3131917200 -7200 1 WGST}
+ {3150061200 -10800 0 WGT}
+ {3163366800 -7200 1 WGST}
+ {3181510800 -10800 0 WGT}
+ {3194816400 -7200 1 WGST}
+ {3212960400 -10800 0 WGT}
+ {3226266000 -7200 1 WGST}
+ {3245014800 -10800 0 WGT}
+ {3257715600 -7200 1 WGST}
+ {3276464400 -10800 0 WGT}
+ {3289165200 -7200 1 WGST}
+ {3307914000 -10800 0 WGT}
+ {3321219600 -7200 1 WGST}
+ {3339363600 -10800 0 WGT}
+ {3352669200 -7200 1 WGST}
+ {3370813200 -10800 0 WGT}
+ {3384118800 -7200 1 WGST}
+ {3402867600 -10800 0 WGT}
+ {3415568400 -7200 1 WGST}
+ {3434317200 -10800 0 WGT}
+ {3447018000 -7200 1 WGST}
+ {3465766800 -10800 0 WGT}
+ {3479072400 -7200 1 WGST}
+ {3497216400 -10800 0 WGT}
+ {3510522000 -7200 1 WGST}
+ {3528666000 -10800 0 WGT}
+ {3541971600 -7200 1 WGST}
+ {3560115600 -10800 0 WGT}
+ {3573421200 -7200 1 WGST}
+ {3592170000 -10800 0 WGT}
+ {3604870800 -7200 1 WGST}
+ {3623619600 -10800 0 WGT}
+ {3636320400 -7200 1 WGST}
+ {3655069200 -10800 0 WGT}
+ {3668374800 -7200 1 WGST}
+ {3686518800 -10800 0 WGT}
+ {3699824400 -7200 1 WGST}
+ {3717968400 -10800 0 WGT}
+ {3731274000 -7200 1 WGST}
+ {3750022800 -10800 0 WGT}
+ {3762723600 -7200 1 WGST}
+ {3781472400 -10800 0 WGT}
+ {3794173200 -7200 1 WGST}
+ {3812922000 -10800 0 WGT}
+ {3825622800 -7200 1 WGST}
+ {3844371600 -10800 0 WGT}
+ {3857677200 -7200 1 WGST}
+ {3875821200 -10800 0 WGT}
+ {3889126800 -7200 1 WGST}
+ {3907270800 -10800 0 WGT}
+ {3920576400 -7200 1 WGST}
+ {3939325200 -10800 0 WGT}
+ {3952026000 -7200 1 WGST}
+ {3970774800 -10800 0 WGT}
+ {3983475600 -7200 1 WGST}
+ {4002224400 -10800 0 WGT}
+ {4015530000 -7200 1 WGST}
+ {4033674000 -10800 0 WGT}
+ {4046979600 -7200 1 WGST}
+ {4065123600 -10800 0 WGT}
+ {4078429200 -7200 1 WGST}
+ {4096573200 -10800 0 WGT}
+}
diff --git a/library/tzdata/America/Goose_Bay b/library/tzdata/America/Goose_Bay
new file mode 100644
index 0000000..a2b9c45
--- /dev/null
+++ b/library/tzdata/America/Goose_Bay
@@ -0,0 +1,337 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Goose_Bay) {
+ {-9223372036854775808 -14500 0 LMT}
+ {-2713895900 -12652 0 NST}
+ {-1640982548 -12652 0 NST}
+ {-1632076148 -9052 1 NDT}
+ {-1614799748 -12652 0 NST}
+ {-1609446548 -12652 0 NST}
+ {-1096921748 -12600 0 NST}
+ {-1072989000 -12600 0 NST}
+ {-1061670600 -9000 1 NDT}
+ {-1048973400 -12600 0 NST}
+ {-1030221000 -9000 1 NDT}
+ {-1017523800 -12600 0 NST}
+ {-998771400 -9000 1 NDT}
+ {-986074200 -12600 0 NST}
+ {-966717000 -9000 1 NDT}
+ {-954624600 -12600 0 NST}
+ {-935267400 -9000 1 NDT}
+ {-922570200 -12600 0 NST}
+ {-903817800 -9000 1 NDT}
+ {-891120600 -12600 0 NST}
+ {-872368200 -9000 0 NWT}
+ {-769395600 -9000 1 NPT}
+ {-765401400 -12600 0 NST}
+ {-757369800 -12600 0 NST}
+ {-746044200 -9000 1 NDT}
+ {-733347000 -12600 0 NST}
+ {-714594600 -9000 1 NDT}
+ {-701897400 -12600 0 NST}
+ {-683145000 -9000 1 NDT}
+ {-670447800 -12600 0 NST}
+ {-651695400 -9000 1 NDT}
+ {-638998200 -12600 0 NST}
+ {-619641000 -9000 1 NDT}
+ {-606943800 -12600 0 NST}
+ {-589401000 -9000 1 NDT}
+ {-576099000 -12600 0 NST}
+ {-557951400 -9000 1 NDT}
+ {-544649400 -12600 0 NST}
+ {-526501800 -9000 1 NDT}
+ {-513199800 -12600 0 NST}
+ {-495052200 -9000 1 NDT}
+ {-481750200 -12600 0 NST}
+ {-463602600 -9000 1 NDT}
+ {-450300600 -12600 0 NST}
+ {-431548200 -9000 1 NDT}
+ {-418246200 -12600 0 NST}
+ {-400098600 -9000 1 NDT}
+ {-386796600 -12600 0 NST}
+ {-368649000 -9000 1 NDT}
+ {-355347000 -12600 0 NST}
+ {-337199400 -9000 1 NDT}
+ {-323897400 -12600 0 NST}
+ {-305749800 -9000 1 NDT}
+ {-289423800 -12600 0 NST}
+ {-273695400 -9000 1 NDT}
+ {-257974200 -12600 0 NST}
+ {-242245800 -9000 1 NDT}
+ {-226524600 -12600 0 NST}
+ {-210796200 -9000 1 NDT}
+ {-195075000 -12600 0 NST}
+ {-179346600 -9000 1 NDT}
+ {-163625400 -12600 0 NST}
+ {-147897000 -9000 1 NDT}
+ {-131571000 -12600 0 NST}
+ {-119903400 -14400 0 AST}
+ {-116445600 -10800 1 ADT}
+ {-100119600 -14400 0 AST}
+ {-84391200 -10800 1 ADT}
+ {-68670000 -14400 0 AST}
+ {-52941600 -10800 1 ADT}
+ {-37220400 -14400 0 AST}
+ {-21492000 -10800 1 ADT}
+ {-5770800 -14400 0 AST}
+ {9957600 -10800 1 ADT}
+ {25678800 -14400 0 AST}
+ {41407200 -10800 1 ADT}
+ {57733200 -14400 0 AST}
+ {73461600 -10800 1 ADT}
+ {89182800 -14400 0 AST}
+ {104911200 -10800 1 ADT}
+ {120632400 -14400 0 AST}
+ {136360800 -10800 1 ADT}
+ {152082000 -14400 0 AST}
+ {167810400 -10800 1 ADT}
+ {183531600 -14400 0 AST}
+ {199260000 -10800 1 ADT}
+ {215586000 -14400 0 AST}
+ {230709600 -10800 1 ADT}
+ {247035600 -14400 0 AST}
+ {262764000 -10800 1 ADT}
+ {278485200 -14400 0 AST}
+ {294213600 -10800 1 ADT}
+ {309934800 -14400 0 AST}
+ {325663200 -10800 1 ADT}
+ {341384400 -14400 0 AST}
+ {357112800 -10800 1 ADT}
+ {372834000 -14400 0 AST}
+ {388562400 -10800 1 ADT}
+ {404888400 -14400 0 AST}
+ {420012000 -10800 1 ADT}
+ {436338000 -14400 0 AST}
+ {452066400 -10800 1 ADT}
+ {467787600 -14400 0 AST}
+ {483516000 -10800 1 ADT}
+ {499237200 -14400 0 AST}
+ {514965600 -10800 1 ADT}
+ {530686800 -14400 0 AST}
+ {544593660 -10800 1 ADT}
+ {562129260 -14400 0 AST}
+ {576043260 -7200 1 ADDT}
+ {594180060 -14400 0 AST}
+ {607492860 -10800 1 ADT}
+ {625633260 -14400 0 AST}
+ {638942460 -10800 1 ADT}
+ {657082860 -14400 0 AST}
+ {670996860 -10800 1 ADT}
+ {688532460 -14400 0 AST}
+ {702446460 -10800 1 ADT}
+ {719982060 -14400 0 AST}
+ {733896060 -10800 1 ADT}
+ {752036460 -14400 0 AST}
+ {765345660 -10800 1 ADT}
+ {783486060 -14400 0 AST}
+ {796795260 -10800 1 ADT}
+ {814935660 -14400 0 AST}
+ {828849660 -10800 1 ADT}
+ {846385260 -14400 0 AST}
+ {860299260 -10800 1 ADT}
+ {877834860 -14400 0 AST}
+ {891748860 -10800 1 ADT}
+ {909284460 -14400 0 AST}
+ {923198460 -10800 1 ADT}
+ {941338860 -14400 0 AST}
+ {954648060 -10800 1 ADT}
+ {972788460 -14400 0 AST}
+ {986097660 -10800 1 ADT}
+ {1004238060 -14400 0 AST}
+ {1018152060 -10800 1 ADT}
+ {1035687660 -14400 0 AST}
+ {1049601660 -10800 1 ADT}
+ {1067137260 -14400 0 AST}
+ {1081051260 -10800 1 ADT}
+ {1099191660 -14400 0 AST}
+ {1112500860 -10800 1 ADT}
+ {1130641260 -14400 0 AST}
+ {1143950460 -10800 1 ADT}
+ {1162090860 -14400 0 AST}
+ {1175400060 -10800 1 ADT}
+ {1193540460 -14400 0 AST}
+ {1207454460 -10800 1 ADT}
+ {1224990060 -14400 0 AST}
+ {1238904060 -10800 1 ADT}
+ {1256439660 -14400 0 AST}
+ {1270353660 -10800 1 ADT}
+ {1288494060 -14400 0 AST}
+ {1301803260 -10800 1 ADT}
+ {1319943660 -14400 0 AST}
+ {1333252860 -10800 1 ADT}
+ {1351393260 -14400 0 AST}
+ {1365307260 -10800 1 ADT}
+ {1382842860 -14400 0 AST}
+ {1396756860 -10800 1 ADT}
+ {1414292460 -14400 0 AST}
+ {1428206460 -10800 1 ADT}
+ {1445742060 -14400 0 AST}
+ {1459656060 -10800 1 ADT}
+ {1477796460 -14400 0 AST}
+ {1491105660 -10800 1 ADT}
+ {1509246060 -14400 0 AST}
+ {1522555260 -10800 1 ADT}
+ {1540695660 -14400 0 AST}
+ {1554609660 -10800 1 ADT}
+ {1572145260 -14400 0 AST}
+ {1586059260 -10800 1 ADT}
+ {1603594860 -14400 0 AST}
+ {1617508860 -10800 1 ADT}
+ {1635649260 -14400 0 AST}
+ {1648958460 -10800 1 ADT}
+ {1667098860 -14400 0 AST}
+ {1680408060 -10800 1 ADT}
+ {1698548460 -14400 0 AST}
+ {1712462460 -10800 1 ADT}
+ {1729998060 -14400 0 AST}
+ {1743912060 -10800 1 ADT}
+ {1761447660 -14400 0 AST}
+ {1775361660 -10800 1 ADT}
+ {1792897260 -14400 0 AST}
+ {1806811260 -10800 1 ADT}
+ {1824951660 -14400 0 AST}
+ {1838260860 -10800 1 ADT}
+ {1856401260 -14400 0 AST}
+ {1869710460 -10800 1 ADT}
+ {1887850860 -14400 0 AST}
+ {1901764860 -10800 1 ADT}
+ {1919300460 -14400 0 AST}
+ {1933214460 -10800 1 ADT}
+ {1950750060 -14400 0 AST}
+ {1964664060 -10800 1 ADT}
+ {1982804460 -14400 0 AST}
+ {1996113660 -10800 1 ADT}
+ {2014254060 -14400 0 AST}
+ {2027563260 -10800 1 ADT}
+ {2045703660 -14400 0 AST}
+ {2059012860 -10800 1 ADT}
+ {2077153260 -14400 0 AST}
+ {2091067260 -10800 1 ADT}
+ {2108602860 -14400 0 AST}
+ {2122516860 -10800 1 ADT}
+ {2140052460 -14400 0 AST}
+ {2153966460 -10800 1 ADT}
+ {2172106860 -14400 0 AST}
+ {2185416060 -10800 1 ADT}
+ {2203556460 -14400 0 AST}
+ {2216865660 -10800 1 ADT}
+ {2235006060 -14400 0 AST}
+ {2248920060 -10800 1 ADT}
+ {2266455660 -14400 0 AST}
+ {2280369660 -10800 1 ADT}
+ {2297905260 -14400 0 AST}
+ {2311819260 -10800 1 ADT}
+ {2329354860 -14400 0 AST}
+ {2343268860 -10800 1 ADT}
+ {2361409260 -14400 0 AST}
+ {2374718460 -10800 1 ADT}
+ {2392858860 -14400 0 AST}
+ {2406168060 -10800 1 ADT}
+ {2424308460 -14400 0 AST}
+ {2438222460 -10800 1 ADT}
+ {2455758060 -14400 0 AST}
+ {2469672060 -10800 1 ADT}
+ {2487207660 -14400 0 AST}
+ {2501121660 -10800 1 ADT}
+ {2519262060 -14400 0 AST}
+ {2532571260 -10800 1 ADT}
+ {2550711660 -14400 0 AST}
+ {2564020860 -10800 1 ADT}
+ {2582161260 -14400 0 AST}
+ {2596075260 -10800 1 ADT}
+ {2613610860 -14400 0 AST}
+ {2627524860 -10800 1 ADT}
+ {2645060460 -14400 0 AST}
+ {2658974460 -10800 1 ADT}
+ {2676510060 -14400 0 AST}
+ {2690424060 -10800 1 ADT}
+ {2708564460 -14400 0 AST}
+ {2721873660 -10800 1 ADT}
+ {2740014060 -14400 0 AST}
+ {2753323260 -10800 1 ADT}
+ {2771463660 -14400 0 AST}
+ {2785377660 -10800 1 ADT}
+ {2802913260 -14400 0 AST}
+ {2816827260 -10800 1 ADT}
+ {2834362860 -14400 0 AST}
+ {2848276860 -10800 1 ADT}
+ {2866417260 -14400 0 AST}
+ {2879726460 -10800 1 ADT}
+ {2897866860 -14400 0 AST}
+ {2911176060 -10800 1 ADT}
+ {2929316460 -14400 0 AST}
+ {2942625660 -10800 1 ADT}
+ {2960766060 -14400 0 AST}
+ {2974680060 -10800 1 ADT}
+ {2992215660 -14400 0 AST}
+ {3006129660 -10800 1 ADT}
+ {3023665260 -14400 0 AST}
+ {3037579260 -10800 1 ADT}
+ {3055719660 -14400 0 AST}
+ {3069028860 -10800 1 ADT}
+ {3087169260 -14400 0 AST}
+ {3100478460 -10800 1 ADT}
+ {3118618860 -14400 0 AST}
+ {3132532860 -10800 1 ADT}
+ {3150068460 -14400 0 AST}
+ {3163982460 -10800 1 ADT}
+ {3181518060 -14400 0 AST}
+ {3195432060 -10800 1 ADT}
+ {3212967660 -14400 0 AST}
+ {3226881660 -10800 1 ADT}
+ {3245022060 -14400 0 AST}
+ {3258331260 -10800 1 ADT}
+ {3276471660 -14400 0 AST}
+ {3289780860 -10800 1 ADT}
+ {3307921260 -14400 0 AST}
+ {3321835260 -10800 1 ADT}
+ {3339370860 -14400 0 AST}
+ {3353284860 -10800 1 ADT}
+ {3370820460 -14400 0 AST}
+ {3384734460 -10800 1 ADT}
+ {3402874860 -14400 0 AST}
+ {3416184060 -10800 1 ADT}
+ {3434324460 -14400 0 AST}
+ {3447633660 -10800 1 ADT}
+ {3465774060 -14400 0 AST}
+ {3479688060 -10800 1 ADT}
+ {3497223660 -14400 0 AST}
+ {3511137660 -10800 1 ADT}
+ {3528673260 -14400 0 AST}
+ {3542587260 -10800 1 ADT}
+ {3560122860 -14400 0 AST}
+ {3574036860 -10800 1 ADT}
+ {3592177260 -14400 0 AST}
+ {3605486460 -10800 1 ADT}
+ {3623626860 -14400 0 AST}
+ {3636936060 -10800 1 ADT}
+ {3655076460 -14400 0 AST}
+ {3668990460 -10800 1 ADT}
+ {3686526060 -14400 0 AST}
+ {3700440060 -10800 1 ADT}
+ {3717975660 -14400 0 AST}
+ {3731889660 -10800 1 ADT}
+ {3750030060 -14400 0 AST}
+ {3763339260 -10800 1 ADT}
+ {3781479660 -14400 0 AST}
+ {3794788860 -10800 1 ADT}
+ {3812929260 -14400 0 AST}
+ {3826238460 -10800 1 ADT}
+ {3844378860 -14400 0 AST}
+ {3858292860 -10800 1 ADT}
+ {3875828460 -14400 0 AST}
+ {3889742460 -10800 1 ADT}
+ {3907278060 -14400 0 AST}
+ {3921192060 -10800 1 ADT}
+ {3939332460 -14400 0 AST}
+ {3952641660 -10800 1 ADT}
+ {3970782060 -14400 0 AST}
+ {3984091260 -10800 1 ADT}
+ {4002231660 -14400 0 AST}
+ {4016145660 -10800 1 ADT}
+ {4033681260 -14400 0 AST}
+ {4047595260 -10800 1 ADT}
+ {4065130860 -14400 0 AST}
+ {4079044860 -10800 1 ADT}
+ {4096580460 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Grand_Turk b/library/tzdata/America/Grand_Turk
new file mode 100644
index 0000000..48857e0
--- /dev/null
+++ b/library/tzdata/America/Grand_Turk
@@ -0,0 +1,249 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Grand_Turk) {
+ {-9223372036854775808 -17072 0 LMT}
+ {-2524504528 -18432 0 KMT}
+ {-1827687168 -18000 0 EST}
+ {294210000 -14400 1 EDT}
+ {309931200 -18000 0 EST}
+ {325659600 -14400 1 EDT}
+ {341380800 -18000 0 EST}
+ {357109200 -14400 1 EDT}
+ {372830400 -18000 0 EST}
+ {388558800 -14400 1 EDT}
+ {404884800 -18000 0 EST}
+ {420008400 -14400 1 EDT}
+ {436334400 -18000 0 EST}
+ {452062800 -14400 1 EDT}
+ {467784000 -18000 0 EST}
+ {483512400 -14400 1 EDT}
+ {499233600 -18000 0 EST}
+ {514962000 -14400 1 EDT}
+ {530683200 -18000 0 EST}
+ {544597200 -14400 1 EDT}
+ {562132800 -18000 0 EST}
+ {576046800 -14400 1 EDT}
+ {594187200 -18000 0 EST}
+ {607496400 -14400 1 EDT}
+ {625636800 -18000 0 EST}
+ {638946000 -14400 1 EDT}
+ {657086400 -18000 0 EST}
+ {671000400 -14400 1 EDT}
+ {688536000 -18000 0 EST}
+ {702450000 -14400 1 EDT}
+ {719985600 -18000 0 EST}
+ {733899600 -14400 1 EDT}
+ {752040000 -18000 0 EST}
+ {765349200 -14400 1 EDT}
+ {783489600 -18000 0 EST}
+ {796798800 -14400 1 EDT}
+ {814939200 -18000 0 EST}
+ {828853200 -14400 1 EDT}
+ {846388800 -18000 0 EST}
+ {860302800 -14400 1 EDT}
+ {877838400 -18000 0 EST}
+ {891752400 -14400 1 EDT}
+ {909288000 -18000 0 EST}
+ {923202000 -14400 1 EDT}
+ {941342400 -18000 0 EST}
+ {954651600 -14400 1 EDT}
+ {972792000 -18000 0 EST}
+ {986101200 -14400 1 EDT}
+ {1004241600 -18000 0 EST}
+ {1018155600 -14400 1 EDT}
+ {1035691200 -18000 0 EST}
+ {1049605200 -14400 1 EDT}
+ {1067140800 -18000 0 EST}
+ {1081054800 -14400 1 EDT}
+ {1099195200 -18000 0 EST}
+ {1112504400 -14400 1 EDT}
+ {1130644800 -18000 0 EST}
+ {1143954000 -14400 1 EDT}
+ {1162094400 -18000 0 EST}
+ {1175403600 -14400 1 EDT}
+ {1193544000 -18000 0 EST}
+ {1207458000 -14400 1 EDT}
+ {1224993600 -18000 0 EST}
+ {1238907600 -14400 1 EDT}
+ {1256443200 -18000 0 EST}
+ {1270357200 -14400 1 EDT}
+ {1288497600 -18000 0 EST}
+ {1301806800 -14400 1 EDT}
+ {1319947200 -18000 0 EST}
+ {1333256400 -14400 1 EDT}
+ {1351396800 -18000 0 EST}
+ {1365310800 -14400 1 EDT}
+ {1382846400 -18000 0 EST}
+ {1396760400 -14400 1 EDT}
+ {1414296000 -18000 0 EST}
+ {1428210000 -14400 1 EDT}
+ {1445745600 -18000 0 EST}
+ {1459659600 -14400 1 EDT}
+ {1477800000 -18000 0 EST}
+ {1491109200 -14400 1 EDT}
+ {1509249600 -18000 0 EST}
+ {1522558800 -14400 1 EDT}
+ {1540699200 -18000 0 EST}
+ {1554613200 -14400 1 EDT}
+ {1572148800 -18000 0 EST}
+ {1586062800 -14400 1 EDT}
+ {1603598400 -18000 0 EST}
+ {1617512400 -14400 1 EDT}
+ {1635652800 -18000 0 EST}
+ {1648962000 -14400 1 EDT}
+ {1667102400 -18000 0 EST}
+ {1680411600 -14400 1 EDT}
+ {1698552000 -18000 0 EST}
+ {1712466000 -14400 1 EDT}
+ {1730001600 -18000 0 EST}
+ {1743915600 -14400 1 EDT}
+ {1761451200 -18000 0 EST}
+ {1775365200 -14400 1 EDT}
+ {1792900800 -18000 0 EST}
+ {1806814800 -14400 1 EDT}
+ {1824955200 -18000 0 EST}
+ {1838264400 -14400 1 EDT}
+ {1856404800 -18000 0 EST}
+ {1869714000 -14400 1 EDT}
+ {1887854400 -18000 0 EST}
+ {1901768400 -14400 1 EDT}
+ {1919304000 -18000 0 EST}
+ {1933218000 -14400 1 EDT}
+ {1950753600 -18000 0 EST}
+ {1964667600 -14400 1 EDT}
+ {1982808000 -18000 0 EST}
+ {1996117200 -14400 1 EDT}
+ {2014257600 -18000 0 EST}
+ {2027566800 -14400 1 EDT}
+ {2045707200 -18000 0 EST}
+ {2059016400 -14400 1 EDT}
+ {2077156800 -18000 0 EST}
+ {2091070800 -14400 1 EDT}
+ {2108606400 -18000 0 EST}
+ {2122520400 -14400 1 EDT}
+ {2140056000 -18000 0 EST}
+ {2153970000 -14400 1 EDT}
+ {2172110400 -18000 0 EST}
+ {2185419600 -14400 1 EDT}
+ {2203560000 -18000 0 EST}
+ {2216869200 -14400 1 EDT}
+ {2235009600 -18000 0 EST}
+ {2248923600 -14400 1 EDT}
+ {2266459200 -18000 0 EST}
+ {2280373200 -14400 1 EDT}
+ {2297908800 -18000 0 EST}
+ {2311822800 -14400 1 EDT}
+ {2329358400 -18000 0 EST}
+ {2343272400 -14400 1 EDT}
+ {2361412800 -18000 0 EST}
+ {2374722000 -14400 1 EDT}
+ {2392862400 -18000 0 EST}
+ {2406171600 -14400 1 EDT}
+ {2424312000 -18000 0 EST}
+ {2438226000 -14400 1 EDT}
+ {2455761600 -18000 0 EST}
+ {2469675600 -14400 1 EDT}
+ {2487211200 -18000 0 EST}
+ {2501125200 -14400 1 EDT}
+ {2519265600 -18000 0 EST}
+ {2532574800 -14400 1 EDT}
+ {2550715200 -18000 0 EST}
+ {2564024400 -14400 1 EDT}
+ {2582164800 -18000 0 EST}
+ {2596078800 -14400 1 EDT}
+ {2613614400 -18000 0 EST}
+ {2627528400 -14400 1 EDT}
+ {2645064000 -18000 0 EST}
+ {2658978000 -14400 1 EDT}
+ {2676513600 -18000 0 EST}
+ {2690427600 -14400 1 EDT}
+ {2708568000 -18000 0 EST}
+ {2721877200 -14400 1 EDT}
+ {2740017600 -18000 0 EST}
+ {2753326800 -14400 1 EDT}
+ {2771467200 -18000 0 EST}
+ {2785381200 -14400 1 EDT}
+ {2802916800 -18000 0 EST}
+ {2816830800 -14400 1 EDT}
+ {2834366400 -18000 0 EST}
+ {2848280400 -14400 1 EDT}
+ {2866420800 -18000 0 EST}
+ {2879730000 -14400 1 EDT}
+ {2897870400 -18000 0 EST}
+ {2911179600 -14400 1 EDT}
+ {2929320000 -18000 0 EST}
+ {2942629200 -14400 1 EDT}
+ {2960769600 -18000 0 EST}
+ {2974683600 -14400 1 EDT}
+ {2992219200 -18000 0 EST}
+ {3006133200 -14400 1 EDT}
+ {3023668800 -18000 0 EST}
+ {3037582800 -14400 1 EDT}
+ {3055723200 -18000 0 EST}
+ {3069032400 -14400 1 EDT}
+ {3087172800 -18000 0 EST}
+ {3100482000 -14400 1 EDT}
+ {3118622400 -18000 0 EST}
+ {3132536400 -14400 1 EDT}
+ {3150072000 -18000 0 EST}
+ {3163986000 -14400 1 EDT}
+ {3181521600 -18000 0 EST}
+ {3195435600 -14400 1 EDT}
+ {3212971200 -18000 0 EST}
+ {3226885200 -14400 1 EDT}
+ {3245025600 -18000 0 EST}
+ {3258334800 -14400 1 EDT}
+ {3276475200 -18000 0 EST}
+ {3289784400 -14400 1 EDT}
+ {3307924800 -18000 0 EST}
+ {3321838800 -14400 1 EDT}
+ {3339374400 -18000 0 EST}
+ {3353288400 -14400 1 EDT}
+ {3370824000 -18000 0 EST}
+ {3384738000 -14400 1 EDT}
+ {3402878400 -18000 0 EST}
+ {3416187600 -14400 1 EDT}
+ {3434328000 -18000 0 EST}
+ {3447637200 -14400 1 EDT}
+ {3465777600 -18000 0 EST}
+ {3479691600 -14400 1 EDT}
+ {3497227200 -18000 0 EST}
+ {3511141200 -14400 1 EDT}
+ {3528676800 -18000 0 EST}
+ {3542590800 -14400 1 EDT}
+ {3560126400 -18000 0 EST}
+ {3574040400 -14400 1 EDT}
+ {3592180800 -18000 0 EST}
+ {3605490000 -14400 1 EDT}
+ {3623630400 -18000 0 EST}
+ {3636939600 -14400 1 EDT}
+ {3655080000 -18000 0 EST}
+ {3668994000 -14400 1 EDT}
+ {3686529600 -18000 0 EST}
+ {3700443600 -14400 1 EDT}
+ {3717979200 -18000 0 EST}
+ {3731893200 -14400 1 EDT}
+ {3750033600 -18000 0 EST}
+ {3763342800 -14400 1 EDT}
+ {3781483200 -18000 0 EST}
+ {3794792400 -14400 1 EDT}
+ {3812932800 -18000 0 EST}
+ {3826242000 -14400 1 EDT}
+ {3844382400 -18000 0 EST}
+ {3858296400 -14400 1 EDT}
+ {3875832000 -18000 0 EST}
+ {3889746000 -14400 1 EDT}
+ {3907281600 -18000 0 EST}
+ {3921195600 -14400 1 EDT}
+ {3939336000 -18000 0 EST}
+ {3952645200 -14400 1 EDT}
+ {3970785600 -18000 0 EST}
+ {3984094800 -14400 1 EDT}
+ {4002235200 -18000 0 EST}
+ {4016149200 -14400 1 EDT}
+ {4033684800 -18000 0 EST}
+ {4047598800 -14400 1 EDT}
+ {4065134400 -18000 0 EST}
+ {4079048400 -14400 1 EDT}
+ {4096584000 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Grenada b/library/tzdata/America/Grenada
new file mode 100644
index 0000000..2459221
--- /dev/null
+++ b/library/tzdata/America/Grenada
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Grenada) {
+ {-9223372036854775808 -14820 0 LMT}
+ {-1846266780 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Guadeloupe b/library/tzdata/America/Guadeloupe
new file mode 100644
index 0000000..2a6c74a
--- /dev/null
+++ b/library/tzdata/America/Guadeloupe
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Guadeloupe) {
+ {-9223372036854775808 -14768 0 LMT}
+ {-1848254032 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Guatemala b/library/tzdata/America/Guatemala
new file mode 100644
index 0000000..2e340cd
--- /dev/null
+++ b/library/tzdata/America/Guatemala
@@ -0,0 +1,12 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Guatemala) {
+ {-9223372036854775808 -21724 0 LMT}
+ {-1617040676 -21600 0 CST}
+ {123055200 -18000 1 CDT}
+ {130914000 -21600 0 CST}
+ {422344800 -18000 1 CDT}
+ {433054800 -21600 0 CST}
+ {669708000 -18000 1 CDT}
+ {684219600 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Guayaquil b/library/tzdata/America/Guayaquil
new file mode 100644
index 0000000..7595ea6
--- /dev/null
+++ b/library/tzdata/America/Guayaquil
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Guayaquil) {
+ {-9223372036854775808 -19160 0 LMT}
+ {-2524502440 -18840 0 QMT}
+ {-1230749160 -18000 0 ECT}
+}
diff --git a/library/tzdata/America/Guyana b/library/tzdata/America/Guyana
new file mode 100644
index 0000000..a91252d
--- /dev/null
+++ b/library/tzdata/America/Guyana
@@ -0,0 +1,9 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Guyana) {
+ {-9223372036854775808 -13960 0 LMT}
+ {-1730578040 -13500 0 GBGT}
+ {-113688900 -13500 0 GYT}
+ {176010300 -10800 0 GYT}
+ {662698800 -14400 0 GYT}
+}
diff --git a/library/tzdata/America/Halifax b/library/tzdata/America/Halifax
new file mode 100644
index 0000000..fb3a290
--- /dev/null
+++ b/library/tzdata/America/Halifax
@@ -0,0 +1,362 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Halifax) {
+ {-9223372036854775808 -15264 0 LMT}
+ {-2131645536 -14400 0 AST}
+ {-1696276800 -10800 1 ADT}
+ {-1680469200 -14400 0 AST}
+ {-1640980800 -14400 0 AST}
+ {-1632074400 -10800 1 ADT}
+ {-1614798000 -14400 0 AST}
+ {-1609444800 -14400 0 AST}
+ {-1566763200 -10800 1 ADT}
+ {-1557090000 -14400 0 AST}
+ {-1535486400 -10800 1 ADT}
+ {-1524949200 -14400 0 AST}
+ {-1504468800 -10800 1 ADT}
+ {-1493413200 -14400 0 AST}
+ {-1472414400 -10800 1 ADT}
+ {-1461963600 -14400 0 AST}
+ {-1440964800 -10800 1 ADT}
+ {-1429390800 -14400 0 AST}
+ {-1409515200 -10800 1 ADT}
+ {-1396731600 -14400 0 AST}
+ {-1376856000 -10800 1 ADT}
+ {-1366491600 -14400 0 AST}
+ {-1346616000 -10800 1 ADT}
+ {-1333832400 -14400 0 AST}
+ {-1313956800 -10800 1 ADT}
+ {-1303678800 -14400 0 AST}
+ {-1282507200 -10800 1 ADT}
+ {-1272661200 -14400 0 AST}
+ {-1251057600 -10800 1 ADT}
+ {-1240088400 -14400 0 AST}
+ {-1219608000 -10800 1 ADT}
+ {-1207429200 -14400 0 AST}
+ {-1188763200 -10800 1 ADT}
+ {-1175979600 -14400 0 AST}
+ {-1157313600 -10800 1 ADT}
+ {-1143925200 -14400 0 AST}
+ {-1124049600 -10800 1 ADT}
+ {-1113771600 -14400 0 AST}
+ {-1091390400 -10800 1 ADT}
+ {-1081026000 -14400 0 AST}
+ {-1059854400 -10800 1 ADT}
+ {-1050786000 -14400 0 AST}
+ {-1030910400 -10800 1 ADT}
+ {-1018126800 -14400 0 AST}
+ {-999460800 -10800 1 ADT}
+ {-986677200 -14400 0 AST}
+ {-965592000 -10800 1 ADT}
+ {-955227600 -14400 0 AST}
+ {-935956800 -10800 1 ADT}
+ {-923173200 -14400 0 AST}
+ {-904507200 -10800 1 ADT}
+ {-891723600 -14400 0 AST}
+ {-880236000 -14400 0 AST}
+ {-880221600 -10800 1 AWT}
+ {-769395600 -10800 1 APT}
+ {-765399600 -14400 0 AST}
+ {-757368000 -14400 0 AST}
+ {-747252000 -10800 1 ADT}
+ {-733950000 -14400 0 AST}
+ {-715802400 -10800 1 ADT}
+ {-702500400 -14400 0 AST}
+ {-684352800 -10800 1 ADT}
+ {-671050800 -14400 0 AST}
+ {-652903200 -10800 1 ADT}
+ {-639601200 -14400 0 AST}
+ {-589399200 -10800 1 ADT}
+ {-576097200 -14400 0 AST}
+ {-557949600 -10800 1 ADT}
+ {-544647600 -14400 0 AST}
+ {-526500000 -10800 1 ADT}
+ {-513198000 -14400 0 AST}
+ {-495050400 -10800 1 ADT}
+ {-481748400 -14400 0 AST}
+ {-431546400 -10800 1 ADT}
+ {-418244400 -14400 0 AST}
+ {-400096800 -10800 1 ADT}
+ {-386794800 -14400 0 AST}
+ {-368647200 -10800 1 ADT}
+ {-355345200 -14400 0 AST}
+ {-337197600 -10800 1 ADT}
+ {-323895600 -14400 0 AST}
+ {-242244000 -10800 1 ADT}
+ {-226522800 -14400 0 AST}
+ {-210794400 -10800 1 ADT}
+ {-195073200 -14400 0 AST}
+ {-179344800 -10800 1 ADT}
+ {-163623600 -14400 0 AST}
+ {-147895200 -10800 1 ADT}
+ {-131569200 -14400 0 AST}
+ {-116445600 -10800 1 ADT}
+ {-100119600 -14400 0 AST}
+ {-84391200 -10800 1 ADT}
+ {-68670000 -14400 0 AST}
+ {-52941600 -10800 1 ADT}
+ {-37220400 -14400 0 AST}
+ {-21492000 -10800 1 ADT}
+ {-5770800 -14400 0 AST}
+ {9957600 -10800 1 ADT}
+ {25678800 -14400 0 AST}
+ {41407200 -10800 1 ADT}
+ {57733200 -14400 0 AST}
+ {73461600 -10800 1 ADT}
+ {89182800 -14400 0 AST}
+ {104911200 -10800 1 ADT}
+ {120632400 -14400 0 AST}
+ {126244800 -14400 0 AST}
+ {136360800 -10800 1 ADT}
+ {152082000 -14400 0 AST}
+ {167810400 -10800 1 ADT}
+ {183531600 -14400 0 AST}
+ {199260000 -10800 1 ADT}
+ {215586000 -14400 0 AST}
+ {230709600 -10800 1 ADT}
+ {247035600 -14400 0 AST}
+ {262764000 -10800 1 ADT}
+ {278485200 -14400 0 AST}
+ {294213600 -10800 1 ADT}
+ {309934800 -14400 0 AST}
+ {325663200 -10800 1 ADT}
+ {341384400 -14400 0 AST}
+ {357112800 -10800 1 ADT}
+ {372834000 -14400 0 AST}
+ {388562400 -10800 1 ADT}
+ {404888400 -14400 0 AST}
+ {420012000 -10800 1 ADT}
+ {436338000 -14400 0 AST}
+ {452066400 -10800 1 ADT}
+ {467787600 -14400 0 AST}
+ {483516000 -10800 1 ADT}
+ {499237200 -14400 0 AST}
+ {514965600 -10800 1 ADT}
+ {530686800 -14400 0 AST}
+ {544600800 -10800 1 ADT}
+ {562136400 -14400 0 AST}
+ {576050400 -10800 1 ADT}
+ {594190800 -14400 0 AST}
+ {607500000 -10800 1 ADT}
+ {625640400 -14400 0 AST}
+ {638949600 -10800 1 ADT}
+ {657090000 -14400 0 AST}
+ {671004000 -10800 1 ADT}
+ {688539600 -14400 0 AST}
+ {702453600 -10800 1 ADT}
+ {719989200 -14400 0 AST}
+ {733903200 -10800 1 ADT}
+ {752043600 -14400 0 AST}
+ {765352800 -10800 1 ADT}
+ {783493200 -14400 0 AST}
+ {796802400 -10800 1 ADT}
+ {814942800 -14400 0 AST}
+ {828856800 -10800 1 ADT}
+ {846392400 -14400 0 AST}
+ {860306400 -10800 1 ADT}
+ {877842000 -14400 0 AST}
+ {891756000 -10800 1 ADT}
+ {909291600 -14400 0 AST}
+ {923205600 -10800 1 ADT}
+ {941346000 -14400 0 AST}
+ {954655200 -10800 1 ADT}
+ {972795600 -14400 0 AST}
+ {986104800 -10800 1 ADT}
+ {1004245200 -14400 0 AST}
+ {1018159200 -10800 1 ADT}
+ {1035694800 -14400 0 AST}
+ {1049608800 -10800 1 ADT}
+ {1067144400 -14400 0 AST}
+ {1081058400 -10800 1 ADT}
+ {1099198800 -14400 0 AST}
+ {1112508000 -10800 1 ADT}
+ {1130648400 -14400 0 AST}
+ {1143957600 -10800 1 ADT}
+ {1162098000 -14400 0 AST}
+ {1175407200 -10800 1 ADT}
+ {1193547600 -14400 0 AST}
+ {1207461600 -10800 1 ADT}
+ {1224997200 -14400 0 AST}
+ {1238911200 -10800 1 ADT}
+ {1256446800 -14400 0 AST}
+ {1270360800 -10800 1 ADT}
+ {1288501200 -14400 0 AST}
+ {1301810400 -10800 1 ADT}
+ {1319950800 -14400 0 AST}
+ {1333260000 -10800 1 ADT}
+ {1351400400 -14400 0 AST}
+ {1365314400 -10800 1 ADT}
+ {1382850000 -14400 0 AST}
+ {1396764000 -10800 1 ADT}
+ {1414299600 -14400 0 AST}
+ {1428213600 -10800 1 ADT}
+ {1445749200 -14400 0 AST}
+ {1459663200 -10800 1 ADT}
+ {1477803600 -14400 0 AST}
+ {1491112800 -10800 1 ADT}
+ {1509253200 -14400 0 AST}
+ {1522562400 -10800 1 ADT}
+ {1540702800 -14400 0 AST}
+ {1554616800 -10800 1 ADT}
+ {1572152400 -14400 0 AST}
+ {1586066400 -10800 1 ADT}
+ {1603602000 -14400 0 AST}
+ {1617516000 -10800 1 ADT}
+ {1635656400 -14400 0 AST}
+ {1648965600 -10800 1 ADT}
+ {1667106000 -14400 0 AST}
+ {1680415200 -10800 1 ADT}
+ {1698555600 -14400 0 AST}
+ {1712469600 -10800 1 ADT}
+ {1730005200 -14400 0 AST}
+ {1743919200 -10800 1 ADT}
+ {1761454800 -14400 0 AST}
+ {1775368800 -10800 1 ADT}
+ {1792904400 -14400 0 AST}
+ {1806818400 -10800 1 ADT}
+ {1824958800 -14400 0 AST}
+ {1838268000 -10800 1 ADT}
+ {1856408400 -14400 0 AST}
+ {1869717600 -10800 1 ADT}
+ {1887858000 -14400 0 AST}
+ {1901772000 -10800 1 ADT}
+ {1919307600 -14400 0 AST}
+ {1933221600 -10800 1 ADT}
+ {1950757200 -14400 0 AST}
+ {1964671200 -10800 1 ADT}
+ {1982811600 -14400 0 AST}
+ {1996120800 -10800 1 ADT}
+ {2014261200 -14400 0 AST}
+ {2027570400 -10800 1 ADT}
+ {2045710800 -14400 0 AST}
+ {2059020000 -10800 1 ADT}
+ {2077160400 -14400 0 AST}
+ {2091074400 -10800 1 ADT}
+ {2108610000 -14400 0 AST}
+ {2122524000 -10800 1 ADT}
+ {2140059600 -14400 0 AST}
+ {2153973600 -10800 1 ADT}
+ {2172114000 -14400 0 AST}
+ {2185423200 -10800 1 ADT}
+ {2203563600 -14400 0 AST}
+ {2216872800 -10800 1 ADT}
+ {2235013200 -14400 0 AST}
+ {2248927200 -10800 1 ADT}
+ {2266462800 -14400 0 AST}
+ {2280376800 -10800 1 ADT}
+ {2297912400 -14400 0 AST}
+ {2311826400 -10800 1 ADT}
+ {2329362000 -14400 0 AST}
+ {2343276000 -10800 1 ADT}
+ {2361416400 -14400 0 AST}
+ {2374725600 -10800 1 ADT}
+ {2392866000 -14400 0 AST}
+ {2406175200 -10800 1 ADT}
+ {2424315600 -14400 0 AST}
+ {2438229600 -10800 1 ADT}
+ {2455765200 -14400 0 AST}
+ {2469679200 -10800 1 ADT}
+ {2487214800 -14400 0 AST}
+ {2501128800 -10800 1 ADT}
+ {2519269200 -14400 0 AST}
+ {2532578400 -10800 1 ADT}
+ {2550718800 -14400 0 AST}
+ {2564028000 -10800 1 ADT}
+ {2582168400 -14400 0 AST}
+ {2596082400 -10800 1 ADT}
+ {2613618000 -14400 0 AST}
+ {2627532000 -10800 1 ADT}
+ {2645067600 -14400 0 AST}
+ {2658981600 -10800 1 ADT}
+ {2676517200 -14400 0 AST}
+ {2690431200 -10800 1 ADT}
+ {2708571600 -14400 0 AST}
+ {2721880800 -10800 1 ADT}
+ {2740021200 -14400 0 AST}
+ {2753330400 -10800 1 ADT}
+ {2771470800 -14400 0 AST}
+ {2785384800 -10800 1 ADT}
+ {2802920400 -14400 0 AST}
+ {2816834400 -10800 1 ADT}
+ {2834370000 -14400 0 AST}
+ {2848284000 -10800 1 ADT}
+ {2866424400 -14400 0 AST}
+ {2879733600 -10800 1 ADT}
+ {2897874000 -14400 0 AST}
+ {2911183200 -10800 1 ADT}
+ {2929323600 -14400 0 AST}
+ {2942632800 -10800 1 ADT}
+ {2960773200 -14400 0 AST}
+ {2974687200 -10800 1 ADT}
+ {2992222800 -14400 0 AST}
+ {3006136800 -10800 1 ADT}
+ {3023672400 -14400 0 AST}
+ {3037586400 -10800 1 ADT}
+ {3055726800 -14400 0 AST}
+ {3069036000 -10800 1 ADT}
+ {3087176400 -14400 0 AST}
+ {3100485600 -10800 1 ADT}
+ {3118626000 -14400 0 AST}
+ {3132540000 -10800 1 ADT}
+ {3150075600 -14400 0 AST}
+ {3163989600 -10800 1 ADT}
+ {3181525200 -14400 0 AST}
+ {3195439200 -10800 1 ADT}
+ {3212974800 -14400 0 AST}
+ {3226888800 -10800 1 ADT}
+ {3245029200 -14400 0 AST}
+ {3258338400 -10800 1 ADT}
+ {3276478800 -14400 0 AST}
+ {3289788000 -10800 1 ADT}
+ {3307928400 -14400 0 AST}
+ {3321842400 -10800 1 ADT}
+ {3339378000 -14400 0 AST}
+ {3353292000 -10800 1 ADT}
+ {3370827600 -14400 0 AST}
+ {3384741600 -10800 1 ADT}
+ {3402882000 -14400 0 AST}
+ {3416191200 -10800 1 ADT}
+ {3434331600 -14400 0 AST}
+ {3447640800 -10800 1 ADT}
+ {3465781200 -14400 0 AST}
+ {3479695200 -10800 1 ADT}
+ {3497230800 -14400 0 AST}
+ {3511144800 -10800 1 ADT}
+ {3528680400 -14400 0 AST}
+ {3542594400 -10800 1 ADT}
+ {3560130000 -14400 0 AST}
+ {3574044000 -10800 1 ADT}
+ {3592184400 -14400 0 AST}
+ {3605493600 -10800 1 ADT}
+ {3623634000 -14400 0 AST}
+ {3636943200 -10800 1 ADT}
+ {3655083600 -14400 0 AST}
+ {3668997600 -10800 1 ADT}
+ {3686533200 -14400 0 AST}
+ {3700447200 -10800 1 ADT}
+ {3717982800 -14400 0 AST}
+ {3731896800 -10800 1 ADT}
+ {3750037200 -14400 0 AST}
+ {3763346400 -10800 1 ADT}
+ {3781486800 -14400 0 AST}
+ {3794796000 -10800 1 ADT}
+ {3812936400 -14400 0 AST}
+ {3826245600 -10800 1 ADT}
+ {3844386000 -14400 0 AST}
+ {3858300000 -10800 1 ADT}
+ {3875835600 -14400 0 AST}
+ {3889749600 -10800 1 ADT}
+ {3907285200 -14400 0 AST}
+ {3921199200 -10800 1 ADT}
+ {3939339600 -14400 0 AST}
+ {3952648800 -10800 1 ADT}
+ {3970789200 -14400 0 AST}
+ {3984098400 -10800 1 ADT}
+ {4002238800 -14400 0 AST}
+ {4016152800 -10800 1 ADT}
+ {4033688400 -14400 0 AST}
+ {4047602400 -10800 1 ADT}
+ {4065138000 -14400 0 AST}
+ {4079052000 -10800 1 ADT}
+ {4096587600 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Havana b/library/tzdata/America/Havana
new file mode 100644
index 0000000..cc8939e
--- /dev/null
+++ b/library/tzdata/America/Havana
@@ -0,0 +1,289 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Havana) {
+ {-9223372036854775808 -19768 0 LMT}
+ {-2524501832 -19776 0 HMT}
+ {-1402813824 -18000 0 CST}
+ {-1311534000 -14400 1 CDT}
+ {-1300996800 -18000 0 CST}
+ {-933534000 -14400 1 CDT}
+ {-925675200 -18000 0 CST}
+ {-902084400 -14400 1 CDT}
+ {-893620800 -18000 0 CST}
+ {-870030000 -14400 1 CDT}
+ {-862171200 -18000 0 CST}
+ {-775681200 -14400 1 CDT}
+ {-767822400 -18000 0 CST}
+ {-744231600 -14400 1 CDT}
+ {-736372800 -18000 0 CST}
+ {-144702000 -14400 1 CDT}
+ {-134251200 -18000 0 CST}
+ {-113425200 -14400 1 CDT}
+ {-102542400 -18000 0 CST}
+ {-86295600 -14400 1 CDT}
+ {-72907200 -18000 0 CST}
+ {-54154800 -14400 1 CDT}
+ {-41457600 -18000 0 CST}
+ {-21495600 -14400 1 CDT}
+ {-5774400 -18000 0 CST}
+ {9954000 -14400 1 CDT}
+ {25675200 -18000 0 CST}
+ {41403600 -14400 1 CDT}
+ {57729600 -18000 0 CST}
+ {73458000 -14400 1 CDT}
+ {87364800 -18000 0 CST}
+ {104907600 -14400 1 CDT}
+ {118900800 -18000 0 CST}
+ {136357200 -14400 1 CDT}
+ {150436800 -18000 0 CST}
+ {167806800 -14400 1 CDT}
+ {183528000 -18000 0 CST}
+ {199256400 -14400 1 CDT}
+ {215582400 -18000 0 CST}
+ {230706000 -14400 1 CDT}
+ {247032000 -18000 0 CST}
+ {263365200 -14400 1 CDT}
+ {276667200 -18000 0 CST}
+ {290581200 -14400 1 CDT}
+ {308721600 -18000 0 CST}
+ {322030800 -14400 1 CDT}
+ {340171200 -18000 0 CST}
+ {358318800 -14400 1 CDT}
+ {371620800 -18000 0 CST}
+ {389768400 -14400 1 CDT}
+ {403070400 -18000 0 CST}
+ {421218000 -14400 1 CDT}
+ {434520000 -18000 0 CST}
+ {452667600 -14400 1 CDT}
+ {466574400 -18000 0 CST}
+ {484117200 -14400 1 CDT}
+ {498024000 -18000 0 CST}
+ {511333200 -14400 1 CDT}
+ {529473600 -18000 0 CST}
+ {542782800 -14400 1 CDT}
+ {560923200 -18000 0 CST}
+ {574837200 -14400 1 CDT}
+ {592372800 -18000 0 CST}
+ {606286800 -14400 1 CDT}
+ {623822400 -18000 0 CST}
+ {638946000 -14400 1 CDT}
+ {655876800 -18000 0 CST}
+ {671000400 -14400 1 CDT}
+ {687312000 -18000 0 CST}
+ {702450000 -14400 1 CDT}
+ {718761600 -18000 0 CST}
+ {733899600 -14400 1 CDT}
+ {750211200 -18000 0 CST}
+ {765349200 -14400 1 CDT}
+ {781660800 -18000 0 CST}
+ {796798800 -14400 1 CDT}
+ {813110400 -18000 0 CST}
+ {828853200 -14400 1 CDT}
+ {844560000 -18000 0 CST}
+ {860302800 -14400 1 CDT}
+ {876614400 -18000 0 CST}
+ {891129600 -14400 1 CDT}
+ {909273600 -18000 0 CST}
+ {922579200 -14400 1 CDT}
+ {941328000 -18000 0 CST}
+ {954633600 -14400 1 CDT}
+ {972777600 -18000 0 CST}
+ {986083200 -14400 1 CDT}
+ {1004227200 -18000 0 CST}
+ {1018137600 -14400 1 CDT}
+ {1035676800 -18000 0 CST}
+ {1049587200 -14400 1 CDT}
+ {1067126400 -18000 0 CST}
+ {1081036800 -14400 1 CDT}
+ {1099180800 -18000 0 CST}
+ {1112486400 -14400 1 CDT}
+ {1130630400 -18000 0 CST}
+ {1143936000 -14400 1 CDT}
+ {1162080000 -18000 0 CST}
+ {1175385600 -14400 1 CDT}
+ {1193529600 -18000 0 CST}
+ {1207440000 -14400 1 CDT}
+ {1224979200 -18000 0 CST}
+ {1238889600 -14400 1 CDT}
+ {1256428800 -18000 0 CST}
+ {1270339200 -14400 1 CDT}
+ {1288483200 -18000 0 CST}
+ {1301788800 -14400 1 CDT}
+ {1319932800 -18000 0 CST}
+ {1333238400 -14400 1 CDT}
+ {1351382400 -18000 0 CST}
+ {1365292800 -14400 1 CDT}
+ {1382832000 -18000 0 CST}
+ {1396742400 -14400 1 CDT}
+ {1414281600 -18000 0 CST}
+ {1428192000 -14400 1 CDT}
+ {1445731200 -18000 0 CST}
+ {1459641600 -14400 1 CDT}
+ {1477785600 -18000 0 CST}
+ {1491091200 -14400 1 CDT}
+ {1509235200 -18000 0 CST}
+ {1522540800 -14400 1 CDT}
+ {1540684800 -18000 0 CST}
+ {1554595200 -14400 1 CDT}
+ {1572134400 -18000 0 CST}
+ {1586044800 -14400 1 CDT}
+ {1603584000 -18000 0 CST}
+ {1617494400 -14400 1 CDT}
+ {1635638400 -18000 0 CST}
+ {1648944000 -14400 1 CDT}
+ {1667088000 -18000 0 CST}
+ {1680393600 -14400 1 CDT}
+ {1698537600 -18000 0 CST}
+ {1712448000 -14400 1 CDT}
+ {1729987200 -18000 0 CST}
+ {1743897600 -14400 1 CDT}
+ {1761436800 -18000 0 CST}
+ {1775347200 -14400 1 CDT}
+ {1792886400 -18000 0 CST}
+ {1806796800 -14400 1 CDT}
+ {1824940800 -18000 0 CST}
+ {1838246400 -14400 1 CDT}
+ {1856390400 -18000 0 CST}
+ {1869696000 -14400 1 CDT}
+ {1887840000 -18000 0 CST}
+ {1901750400 -14400 1 CDT}
+ {1919289600 -18000 0 CST}
+ {1933200000 -14400 1 CDT}
+ {1950739200 -18000 0 CST}
+ {1964649600 -14400 1 CDT}
+ {1982793600 -18000 0 CST}
+ {1996099200 -14400 1 CDT}
+ {2014243200 -18000 0 CST}
+ {2027548800 -14400 1 CDT}
+ {2045692800 -18000 0 CST}
+ {2058998400 -14400 1 CDT}
+ {2077142400 -18000 0 CST}
+ {2091052800 -14400 1 CDT}
+ {2108592000 -18000 0 CST}
+ {2122502400 -14400 1 CDT}
+ {2140041600 -18000 0 CST}
+ {2153952000 -14400 1 CDT}
+ {2172096000 -18000 0 CST}
+ {2185401600 -14400 1 CDT}
+ {2203545600 -18000 0 CST}
+ {2216851200 -14400 1 CDT}
+ {2234995200 -18000 0 CST}
+ {2248905600 -14400 1 CDT}
+ {2266444800 -18000 0 CST}
+ {2280355200 -14400 1 CDT}
+ {2297894400 -18000 0 CST}
+ {2311804800 -14400 1 CDT}
+ {2329344000 -18000 0 CST}
+ {2343254400 -14400 1 CDT}
+ {2361398400 -18000 0 CST}
+ {2374704000 -14400 1 CDT}
+ {2392848000 -18000 0 CST}
+ {2406153600 -14400 1 CDT}
+ {2424297600 -18000 0 CST}
+ {2438208000 -14400 1 CDT}
+ {2455747200 -18000 0 CST}
+ {2469657600 -14400 1 CDT}
+ {2487196800 -18000 0 CST}
+ {2501107200 -14400 1 CDT}
+ {2519251200 -18000 0 CST}
+ {2532556800 -14400 1 CDT}
+ {2550700800 -18000 0 CST}
+ {2564006400 -14400 1 CDT}
+ {2582150400 -18000 0 CST}
+ {2596060800 -14400 1 CDT}
+ {2613600000 -18000 0 CST}
+ {2627510400 -14400 1 CDT}
+ {2645049600 -18000 0 CST}
+ {2658960000 -14400 1 CDT}
+ {2676499200 -18000 0 CST}
+ {2690409600 -14400 1 CDT}
+ {2708553600 -18000 0 CST}
+ {2721859200 -14400 1 CDT}
+ {2740003200 -18000 0 CST}
+ {2753308800 -14400 1 CDT}
+ {2771452800 -18000 0 CST}
+ {2785363200 -14400 1 CDT}
+ {2802902400 -18000 0 CST}
+ {2816812800 -14400 1 CDT}
+ {2834352000 -18000 0 CST}
+ {2848262400 -14400 1 CDT}
+ {2866406400 -18000 0 CST}
+ {2879712000 -14400 1 CDT}
+ {2897856000 -18000 0 CST}
+ {2911161600 -14400 1 CDT}
+ {2929305600 -18000 0 CST}
+ {2942611200 -14400 1 CDT}
+ {2960755200 -18000 0 CST}
+ {2974665600 -14400 1 CDT}
+ {2992204800 -18000 0 CST}
+ {3006115200 -14400 1 CDT}
+ {3023654400 -18000 0 CST}
+ {3037564800 -14400 1 CDT}
+ {3055708800 -18000 0 CST}
+ {3069014400 -14400 1 CDT}
+ {3087158400 -18000 0 CST}
+ {3100464000 -14400 1 CDT}
+ {3118608000 -18000 0 CST}
+ {3132518400 -14400 1 CDT}
+ {3150057600 -18000 0 CST}
+ {3163968000 -14400 1 CDT}
+ {3181507200 -18000 0 CST}
+ {3195417600 -14400 1 CDT}
+ {3212956800 -18000 0 CST}
+ {3226867200 -14400 1 CDT}
+ {3245011200 -18000 0 CST}
+ {3258316800 -14400 1 CDT}
+ {3276460800 -18000 0 CST}
+ {3289766400 -14400 1 CDT}
+ {3307910400 -18000 0 CST}
+ {3321820800 -14400 1 CDT}
+ {3339360000 -18000 0 CST}
+ {3353270400 -14400 1 CDT}
+ {3370809600 -18000 0 CST}
+ {3384720000 -14400 1 CDT}
+ {3402864000 -18000 0 CST}
+ {3416169600 -14400 1 CDT}
+ {3434313600 -18000 0 CST}
+ {3447619200 -14400 1 CDT}
+ {3465763200 -18000 0 CST}
+ {3479673600 -14400 1 CDT}
+ {3497212800 -18000 0 CST}
+ {3511123200 -14400 1 CDT}
+ {3528662400 -18000 0 CST}
+ {3542572800 -14400 1 CDT}
+ {3560112000 -18000 0 CST}
+ {3574022400 -14400 1 CDT}
+ {3592166400 -18000 0 CST}
+ {3605472000 -14400 1 CDT}
+ {3623616000 -18000 0 CST}
+ {3636921600 -14400 1 CDT}
+ {3655065600 -18000 0 CST}
+ {3668976000 -14400 1 CDT}
+ {3686515200 -18000 0 CST}
+ {3700425600 -14400 1 CDT}
+ {3717964800 -18000 0 CST}
+ {3731875200 -14400 1 CDT}
+ {3750019200 -18000 0 CST}
+ {3763324800 -14400 1 CDT}
+ {3781468800 -18000 0 CST}
+ {3794774400 -14400 1 CDT}
+ {3812918400 -18000 0 CST}
+ {3826224000 -14400 1 CDT}
+ {3844368000 -18000 0 CST}
+ {3858278400 -14400 1 CDT}
+ {3875817600 -18000 0 CST}
+ {3889728000 -14400 1 CDT}
+ {3907267200 -18000 0 CST}
+ {3921177600 -14400 1 CDT}
+ {3939321600 -18000 0 CST}
+ {3952627200 -14400 1 CDT}
+ {3970771200 -18000 0 CST}
+ {3984076800 -14400 1 CDT}
+ {4002220800 -18000 0 CST}
+ {4016131200 -14400 1 CDT}
+ {4033670400 -18000 0 CST}
+ {4047580800 -14400 1 CDT}
+ {4065120000 -18000 0 CST}
+ {4079030400 -14400 1 CDT}
+ {4096569600 -18000 0 CST}
+}
diff --git a/library/tzdata/America/Hermosillo b/library/tzdata/America/Hermosillo
new file mode 100644
index 0000000..6134a47
--- /dev/null
+++ b/library/tzdata/America/Hermosillo
@@ -0,0 +1,21 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Hermosillo) {
+ {-9223372036854775808 -26632 0 LMT}
+ {-1514739600 -25200 0 MST}
+ {-1343066400 -21600 0 CST}
+ {-1234807200 -25200 0 MST}
+ {-1220292000 -21600 0 CST}
+ {-1207159200 -25200 0 MST}
+ {-1191344400 -21600 0 CST}
+ {-873828000 -25200 0 MST}
+ {-661539600 -28800 0 PST}
+ {28800 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {915174000 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Indiana/Indianapolis b/library/tzdata/America/Indiana/Indianapolis
new file mode 100644
index 0000000..ea28ff3
--- /dev/null
+++ b/library/tzdata/America/Indiana/Indianapolis
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Indianapolis)]} {
+ loadTimeZoneFile America/Indianapolis
+}
+set tzdata(:America/Indiana/Indianapolis) $TZData(:America/Indianapolis)
diff --git a/library/tzdata/America/Indiana/Knox b/library/tzdata/America/Indiana/Knox
new file mode 100644
index 0000000..9e00ee0
--- /dev/null
+++ b/library/tzdata/America/Indiana/Knox
@@ -0,0 +1,96 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Indiana/Knox) {
+ {-9223372036854775808 -20790 0 LMT}
+ {-2717648010 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-725824800 -21600 0 CST}
+ {-715795200 -18000 1 CDT}
+ {-702493200 -21600 0 CST}
+ {-684345600 -18000 1 CDT}
+ {-671043600 -21600 0 CST}
+ {-652896000 -18000 1 CDT}
+ {-639594000 -21600 0 CST}
+ {-620841600 -18000 1 CDT}
+ {-608144400 -21600 0 CST}
+ {-589392000 -18000 1 CDT}
+ {-576090000 -21600 0 CST}
+ {-557942400 -18000 1 CDT}
+ {-544640400 -21600 0 CST}
+ {-526492800 -18000 1 CDT}
+ {-513190800 -21600 0 CST}
+ {-495043200 -18000 1 CDT}
+ {-481741200 -21600 0 CST}
+ {-463593600 -18000 1 CDT}
+ {-447267600 -21600 0 CST}
+ {-431539200 -18000 1 CDT}
+ {-415818000 -21600 0 CST}
+ {-400089600 -18000 1 CDT}
+ {-386787600 -21600 0 CST}
+ {-368640000 -18000 1 CDT}
+ {-355338000 -21600 0 CST}
+ {-337190400 -18000 1 CDT}
+ {-321469200 -21600 0 CST}
+ {-305740800 -18000 1 CDT}
+ {-289414800 -21600 0 CST}
+ {-273686400 -18000 1 CDT}
+ {-257965200 -21600 0 CST}
+ {-242236800 -18000 0 EST}
+ {-195066000 -21600 0 CST}
+ {-84384000 -18000 1 CDT}
+ {-68662800 -21600 0 CST}
+ {-52934400 -18000 1 CDT}
+ {-37213200 -21600 0 CST}
+ {-21484800 -18000 1 CDT}
+ {-5763600 -21600 0 CST}
+ {9964800 -18000 1 CDT}
+ {25686000 -21600 0 CST}
+ {41414400 -18000 1 CDT}
+ {57740400 -21600 0 CST}
+ {73468800 -18000 1 CDT}
+ {89190000 -21600 0 CST}
+ {104918400 -18000 1 CDT}
+ {120639600 -21600 0 CST}
+ {126691200 -18000 1 CDT}
+ {152089200 -21600 0 CST}
+ {162374400 -18000 1 CDT}
+ {183538800 -21600 0 CST}
+ {199267200 -18000 1 CDT}
+ {215593200 -21600 0 CST}
+ {230716800 -18000 1 CDT}
+ {247042800 -21600 0 CST}
+ {262771200 -18000 1 CDT}
+ {278492400 -21600 0 CST}
+ {294220800 -18000 1 CDT}
+ {309942000 -21600 0 CST}
+ {325670400 -18000 1 CDT}
+ {341391600 -21600 0 CST}
+ {357120000 -18000 1 CDT}
+ {372841200 -21600 0 CST}
+ {388569600 -18000 1 CDT}
+ {404895600 -21600 0 CST}
+ {420019200 -18000 1 CDT}
+ {436345200 -21600 0 CST}
+ {452073600 -18000 1 CDT}
+ {467794800 -21600 0 CST}
+ {483523200 -18000 1 CDT}
+ {499244400 -21600 0 CST}
+ {514972800 -18000 1 CDT}
+ {530694000 -21600 0 CST}
+ {544608000 -18000 1 CDT}
+ {562143600 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {607507200 -18000 1 CDT}
+ {625647600 -21600 0 CST}
+ {638956800 -18000 1 CDT}
+ {657097200 -21600 0 CST}
+ {671011200 -18000 1 CDT}
+ {688550400 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Indiana/Marengo b/library/tzdata/America/Indiana/Marengo
new file mode 100644
index 0000000..6d8d733
--- /dev/null
+++ b/library/tzdata/America/Indiana/Marengo
@@ -0,0 +1,47 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Indiana/Marengo) {
+ {-9223372036854775808 -20723 0 LMT}
+ {-2717648077 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-599594400 -21600 0 CST}
+ {-589392000 -18000 1 CDT}
+ {-576090000 -21600 0 CST}
+ {-495043200 -18000 1 CDT}
+ {-481741200 -21600 0 CST}
+ {-463593600 -18000 1 CDT}
+ {-450291600 -21600 0 CST}
+ {-431539200 -18000 1 CDT}
+ {-418237200 -21600 0 CST}
+ {-400089600 -18000 1 CDT}
+ {-386787600 -21600 0 CST}
+ {-368640000 -18000 1 CDT}
+ {-355338000 -21600 0 CST}
+ {-337190400 -18000 1 CDT}
+ {-323888400 -21600 0 CST}
+ {-305740800 -18000 1 CDT}
+ {-292438800 -21600 0 CST}
+ {-273686400 -18000 0 EST}
+ {-31518000 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {126687600 -18000 1 CDT}
+ {152089200 -18000 0 EST}
+ {162370800 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {189320400 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Indiana/Vevay b/library/tzdata/America/Indiana/Vevay
new file mode 100644
index 0000000..db14061
--- /dev/null
+++ b/library/tzdata/America/Indiana/Vevay
@@ -0,0 +1,24 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Indiana/Vevay) {
+ {-9223372036854775808 -20416 0 LMT}
+ {-2717648384 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-495043200 -18000 0 EST}
+ {-31518000 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {94712400 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Indianapolis b/library/tzdata/America/Indianapolis
new file mode 100644
index 0000000..c5c011d
--- /dev/null
+++ b/library/tzdata/America/Indianapolis
@@ -0,0 +1,45 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Indianapolis) {
+ {-9223372036854775808 -20678 0 LMT}
+ {-2717648122 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-1577901600 -21600 0 CST}
+ {-900259200 -18000 1 CDT}
+ {-891795600 -21600 0 CST}
+ {-883591200 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-757360800 -21600 0 CST}
+ {-747244800 -18000 1 CDT}
+ {-733942800 -21600 0 CST}
+ {-715795200 -18000 1 CDT}
+ {-702493200 -21600 0 CST}
+ {-684345600 -18000 1 CDT}
+ {-671043600 -21600 0 CST}
+ {-652896000 -18000 1 CDT}
+ {-639594000 -21600 0 CST}
+ {-620841600 -18000 1 CDT}
+ {-608144400 -21600 0 CST}
+ {-589392000 -18000 1 CDT}
+ {-576090000 -21600 0 CST}
+ {-557942400 -18000 1 CDT}
+ {-544640400 -21600 0 CST}
+ {-526492800 -18000 1 CDT}
+ {-513190800 -21600 0 CST}
+ {-495043200 -18000 1 CDT}
+ {-481741200 -21600 0 CST}
+ {-463593600 -18000 0 EST}
+ {-386787600 -21600 0 CST}
+ {-368640000 -18000 0 EST}
+ {-31518000 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {31554000 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Inuvik b/library/tzdata/America/Inuvik
new file mode 100644
index 0000000..fe57dd8
--- /dev/null
+++ b/library/tzdata/America/Inuvik
@@ -0,0 +1,256 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Inuvik) {
+ {-9223372036854775808 -32040 0 LMT}
+ {-2713878360 -28800 0 PST}
+ {-1632060000 -25200 1 PDT}
+ {-1615129200 -28800 0 PST}
+ {-1596981600 -25200 1 PDT}
+ {-1583168400 -28800 0 PST}
+ {-880207200 -25200 1 PWT}
+ {-769395600 -25200 1 PPT}
+ {-765385200 -28800 0 PST}
+ {-147888000 -21600 1 PDDT}
+ {-131558400 -28800 0 PST}
+ {294228000 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720000000 -25200 0 MST}
+ {733914000 -21600 1 MDT}
+ {752054400 -25200 0 MST}
+ {765363600 -21600 1 MDT}
+ {783504000 -25200 0 MST}
+ {796813200 -21600 1 MDT}
+ {814953600 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {986115600 -21600 1 MDT}
+ {1004256000 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Iqaluit b/library/tzdata/America/Iqaluit
new file mode 100644
index 0000000..88fb481
--- /dev/null
+++ b/library/tzdata/America/Iqaluit
@@ -0,0 +1,255 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Iqaluit) {
+ {-9223372036854775808 -16432 0 LMT}
+ {-2713893968 -18000 0 EST}
+ {-1632070800 -14400 1 EDT}
+ {-1615140000 -18000 0 EST}
+ {-1596992400 -14400 1 EDT}
+ {-1583179200 -18000 0 EST}
+ {-880218000 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-765396000 -18000 0 EST}
+ {-147898800 -10800 1 EDDT}
+ {-131569200 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972806400 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Jamaica b/library/tzdata/America/Jamaica
new file mode 100644
index 0000000..12dc6c3
--- /dev/null
+++ b/library/tzdata/America/Jamaica
@@ -0,0 +1,28 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Jamaica) {
+ {-9223372036854775808 -18432 0 LMT}
+ {-2524503168 -18432 0 KMT}
+ {-1827687168 -18000 0 EST}
+ {136364400 -14400 0 EDT}
+ {152085600 -18000 0 EST}
+ {162370800 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {441781200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Jujuy b/library/tzdata/America/Jujuy
new file mode 100644
index 0000000..f2df5f5
--- /dev/null
+++ b/library/tzdata/America/Jujuy
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Argentina/Jujuy)]} {
+ loadTimeZoneFile America/Argentina/Jujuy
+}
+set tzdata(:America/Jujuy) $TZData(:America/Argentina/Jujuy)
diff --git a/library/tzdata/America/Juneau b/library/tzdata/America/Juneau
new file mode 100644
index 0000000..266ad12
--- /dev/null
+++ b/library/tzdata/America/Juneau
@@ -0,0 +1,275 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Juneau) {
+ {-9223372036854775808 54139 0 LMT}
+ {-3225366139 -32261 0 LMT}
+ {-2188954939 -28800 0 PST}
+ {-883584000 -28800 0 PST}
+ {-880207200 -25200 1 PWT}
+ {-769395600 -25200 1 PPT}
+ {-765385200 -28800 0 PST}
+ {-757353600 -28800 0 PST}
+ {-31507200 -28800 0 PST}
+ {-21477600 -25200 1 PDT}
+ {-5756400 -28800 0 PST}
+ {9972000 -25200 1 PDT}
+ {25693200 -28800 0 PST}
+ {41421600 -25200 1 PDT}
+ {57747600 -28800 0 PST}
+ {73476000 -25200 1 PDT}
+ {89197200 -28800 0 PST}
+ {104925600 -25200 1 PDT}
+ {120646800 -28800 0 PST}
+ {126698400 -25200 1 PDT}
+ {152096400 -28800 0 PST}
+ {162381600 -25200 1 PDT}
+ {183546000 -28800 0 PST}
+ {199274400 -25200 1 PDT}
+ {215600400 -28800 0 PST}
+ {230724000 -25200 1 PDT}
+ {247050000 -28800 0 PST}
+ {262778400 -25200 1 PDT}
+ {278499600 -28800 0 PST}
+ {294228000 -25200 1 PDT}
+ {309949200 -28800 0 PST}
+ {325677600 -25200 1 PDT}
+ {341398800 -28800 0 PST}
+ {357127200 -25200 1 PDT}
+ {372848400 -28800 0 PST}
+ {388576800 -25200 1 PDT}
+ {404902800 -28800 0 PST}
+ {420026400 -25200 1 PDT}
+ {439030800 -32400 0 AKST}
+ {452084400 -28800 1 AKDT}
+ {467805600 -32400 0 AKST}
+ {483534000 -28800 1 AKDT}
+ {499255200 -32400 0 AKST}
+ {514983600 -28800 1 AKDT}
+ {530704800 -32400 0 AKST}
+ {544618800 -28800 1 AKDT}
+ {562154400 -32400 0 AKST}
+ {576068400 -28800 1 AKDT}
+ {594208800 -32400 0 AKST}
+ {607518000 -28800 1 AKDT}
+ {625658400 -32400 0 AKST}
+ {638967600 -28800 1 AKDT}
+ {657108000 -32400 0 AKST}
+ {671022000 -28800 1 AKDT}
+ {688557600 -32400 0 AKST}
+ {702471600 -28800 1 AKDT}
+ {720007200 -32400 0 AKST}
+ {733921200 -28800 1 AKDT}
+ {752061600 -32400 0 AKST}
+ {765370800 -28800 1 AKDT}
+ {783511200 -32400 0 AKST}
+ {796820400 -28800 1 AKDT}
+ {814960800 -32400 0 AKST}
+ {828874800 -28800 1 AKDT}
+ {846410400 -32400 0 AKST}
+ {860324400 -28800 1 AKDT}
+ {877860000 -32400 0 AKST}
+ {891774000 -28800 1 AKDT}
+ {909309600 -32400 0 AKST}
+ {923223600 -28800 1 AKDT}
+ {941364000 -32400 0 AKST}
+ {954673200 -28800 1 AKDT}
+ {972813600 -32400 0 AKST}
+ {986122800 -28800 1 AKDT}
+ {1004263200 -32400 0 AKST}
+ {1018177200 -28800 1 AKDT}
+ {1035712800 -32400 0 AKST}
+ {1049626800 -28800 1 AKDT}
+ {1067162400 -32400 0 AKST}
+ {1081076400 -28800 1 AKDT}
+ {1099216800 -32400 0 AKST}
+ {1112526000 -28800 1 AKDT}
+ {1130666400 -32400 0 AKST}
+ {1143975600 -28800 1 AKDT}
+ {1162116000 -32400 0 AKST}
+ {1175425200 -28800 1 AKDT}
+ {1193565600 -32400 0 AKST}
+ {1207479600 -28800 1 AKDT}
+ {1225015200 -32400 0 AKST}
+ {1238929200 -28800 1 AKDT}
+ {1256464800 -32400 0 AKST}
+ {1270378800 -28800 1 AKDT}
+ {1288519200 -32400 0 AKST}
+ {1301828400 -28800 1 AKDT}
+ {1319968800 -32400 0 AKST}
+ {1333278000 -28800 1 AKDT}
+ {1351418400 -32400 0 AKST}
+ {1365332400 -28800 1 AKDT}
+ {1382868000 -32400 0 AKST}
+ {1396782000 -28800 1 AKDT}
+ {1414317600 -32400 0 AKST}
+ {1428231600 -28800 1 AKDT}
+ {1445767200 -32400 0 AKST}
+ {1459681200 -28800 1 AKDT}
+ {1477821600 -32400 0 AKST}
+ {1491130800 -28800 1 AKDT}
+ {1509271200 -32400 0 AKST}
+ {1522580400 -28800 1 AKDT}
+ {1540720800 -32400 0 AKST}
+ {1554634800 -28800 1 AKDT}
+ {1572170400 -32400 0 AKST}
+ {1586084400 -28800 1 AKDT}
+ {1603620000 -32400 0 AKST}
+ {1617534000 -28800 1 AKDT}
+ {1635674400 -32400 0 AKST}
+ {1648983600 -28800 1 AKDT}
+ {1667124000 -32400 0 AKST}
+ {1680433200 -28800 1 AKDT}
+ {1698573600 -32400 0 AKST}
+ {1712487600 -28800 1 AKDT}
+ {1730023200 -32400 0 AKST}
+ {1743937200 -28800 1 AKDT}
+ {1761472800 -32400 0 AKST}
+ {1775386800 -28800 1 AKDT}
+ {1792922400 -32400 0 AKST}
+ {1806836400 -28800 1 AKDT}
+ {1824976800 -32400 0 AKST}
+ {1838286000 -28800 1 AKDT}
+ {1856426400 -32400 0 AKST}
+ {1869735600 -28800 1 AKDT}
+ {1887876000 -32400 0 AKST}
+ {1901790000 -28800 1 AKDT}
+ {1919325600 -32400 0 AKST}
+ {1933239600 -28800 1 AKDT}
+ {1950775200 -32400 0 AKST}
+ {1964689200 -28800 1 AKDT}
+ {1982829600 -32400 0 AKST}
+ {1996138800 -28800 1 AKDT}
+ {2014279200 -32400 0 AKST}
+ {2027588400 -28800 1 AKDT}
+ {2045728800 -32400 0 AKST}
+ {2059038000 -28800 1 AKDT}
+ {2077178400 -32400 0 AKST}
+ {2091092400 -28800 1 AKDT}
+ {2108628000 -32400 0 AKST}
+ {2122542000 -28800 1 AKDT}
+ {2140077600 -32400 0 AKST}
+ {2153991600 -28800 1 AKDT}
+ {2172132000 -32400 0 AKST}
+ {2185441200 -28800 1 AKDT}
+ {2203581600 -32400 0 AKST}
+ {2216890800 -28800 1 AKDT}
+ {2235031200 -32400 0 AKST}
+ {2248945200 -28800 1 AKDT}
+ {2266480800 -32400 0 AKST}
+ {2280394800 -28800 1 AKDT}
+ {2297930400 -32400 0 AKST}
+ {2311844400 -28800 1 AKDT}
+ {2329380000 -32400 0 AKST}
+ {2343294000 -28800 1 AKDT}
+ {2361434400 -32400 0 AKST}
+ {2374743600 -28800 1 AKDT}
+ {2392884000 -32400 0 AKST}
+ {2406193200 -28800 1 AKDT}
+ {2424333600 -32400 0 AKST}
+ {2438247600 -28800 1 AKDT}
+ {2455783200 -32400 0 AKST}
+ {2469697200 -28800 1 AKDT}
+ {2487232800 -32400 0 AKST}
+ {2501146800 -28800 1 AKDT}
+ {2519287200 -32400 0 AKST}
+ {2532596400 -28800 1 AKDT}
+ {2550736800 -32400 0 AKST}
+ {2564046000 -28800 1 AKDT}
+ {2582186400 -32400 0 AKST}
+ {2596100400 -28800 1 AKDT}
+ {2613636000 -32400 0 AKST}
+ {2627550000 -28800 1 AKDT}
+ {2645085600 -32400 0 AKST}
+ {2658999600 -28800 1 AKDT}
+ {2676535200 -32400 0 AKST}
+ {2690449200 -28800 1 AKDT}
+ {2708589600 -32400 0 AKST}
+ {2721898800 -28800 1 AKDT}
+ {2740039200 -32400 0 AKST}
+ {2753348400 -28800 1 AKDT}
+ {2771488800 -32400 0 AKST}
+ {2785402800 -28800 1 AKDT}
+ {2802938400 -32400 0 AKST}
+ {2816852400 -28800 1 AKDT}
+ {2834388000 -32400 0 AKST}
+ {2848302000 -28800 1 AKDT}
+ {2866442400 -32400 0 AKST}
+ {2879751600 -28800 1 AKDT}
+ {2897892000 -32400 0 AKST}
+ {2911201200 -28800 1 AKDT}
+ {2929341600 -32400 0 AKST}
+ {2942650800 -28800 1 AKDT}
+ {2960791200 -32400 0 AKST}
+ {2974705200 -28800 1 AKDT}
+ {2992240800 -32400 0 AKST}
+ {3006154800 -28800 1 AKDT}
+ {3023690400 -32400 0 AKST}
+ {3037604400 -28800 1 AKDT}
+ {3055744800 -32400 0 AKST}
+ {3069054000 -28800 1 AKDT}
+ {3087194400 -32400 0 AKST}
+ {3100503600 -28800 1 AKDT}
+ {3118644000 -32400 0 AKST}
+ {3132558000 -28800 1 AKDT}
+ {3150093600 -32400 0 AKST}
+ {3164007600 -28800 1 AKDT}
+ {3181543200 -32400 0 AKST}
+ {3195457200 -28800 1 AKDT}
+ {3212992800 -32400 0 AKST}
+ {3226906800 -28800 1 AKDT}
+ {3245047200 -32400 0 AKST}
+ {3258356400 -28800 1 AKDT}
+ {3276496800 -32400 0 AKST}
+ {3289806000 -28800 1 AKDT}
+ {3307946400 -32400 0 AKST}
+ {3321860400 -28800 1 AKDT}
+ {3339396000 -32400 0 AKST}
+ {3353310000 -28800 1 AKDT}
+ {3370845600 -32400 0 AKST}
+ {3384759600 -28800 1 AKDT}
+ {3402900000 -32400 0 AKST}
+ {3416209200 -28800 1 AKDT}
+ {3434349600 -32400 0 AKST}
+ {3447658800 -28800 1 AKDT}
+ {3465799200 -32400 0 AKST}
+ {3479713200 -28800 1 AKDT}
+ {3497248800 -32400 0 AKST}
+ {3511162800 -28800 1 AKDT}
+ {3528698400 -32400 0 AKST}
+ {3542612400 -28800 1 AKDT}
+ {3560148000 -32400 0 AKST}
+ {3574062000 -28800 1 AKDT}
+ {3592202400 -32400 0 AKST}
+ {3605511600 -28800 1 AKDT}
+ {3623652000 -32400 0 AKST}
+ {3636961200 -28800 1 AKDT}
+ {3655101600 -32400 0 AKST}
+ {3669015600 -28800 1 AKDT}
+ {3686551200 -32400 0 AKST}
+ {3700465200 -28800 1 AKDT}
+ {3718000800 -32400 0 AKST}
+ {3731914800 -28800 1 AKDT}
+ {3750055200 -32400 0 AKST}
+ {3763364400 -28800 1 AKDT}
+ {3781504800 -32400 0 AKST}
+ {3794814000 -28800 1 AKDT}
+ {3812954400 -32400 0 AKST}
+ {3826263600 -28800 1 AKDT}
+ {3844404000 -32400 0 AKST}
+ {3858318000 -28800 1 AKDT}
+ {3875853600 -32400 0 AKST}
+ {3889767600 -28800 1 AKDT}
+ {3907303200 -32400 0 AKST}
+ {3921217200 -28800 1 AKDT}
+ {3939357600 -32400 0 AKST}
+ {3952666800 -28800 1 AKDT}
+ {3970807200 -32400 0 AKST}
+ {3984116400 -28800 1 AKDT}
+ {4002256800 -32400 0 AKST}
+ {4016170800 -28800 1 AKDT}
+ {4033706400 -32400 0 AKST}
+ {4047620400 -28800 1 AKDT}
+ {4065156000 -32400 0 AKST}
+ {4079070000 -28800 1 AKDT}
+ {4096605600 -32400 0 AKST}
+}
diff --git a/library/tzdata/America/Kentucky/Louisville b/library/tzdata/America/Kentucky/Louisville
new file mode 100644
index 0000000..601442d
--- /dev/null
+++ b/library/tzdata/America/Kentucky/Louisville
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Louisville)]} {
+ loadTimeZoneFile America/Louisville
+}
+set tzdata(:America/Kentucky/Louisville) $TZData(:America/Louisville)
diff --git a/library/tzdata/America/Kentucky/Monticello b/library/tzdata/America/Kentucky/Monticello
new file mode 100644
index 0000000..00bfd80
--- /dev/null
+++ b/library/tzdata/America/Kentucky/Monticello
@@ -0,0 +1,279 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Kentucky/Monticello) {
+ {-9223372036854775808 -20364 0 LMT}
+ {-2717648436 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-757360800 -21600 0 CST}
+ {-63136800 -21600 0 CST}
+ {-52934400 -18000 1 CDT}
+ {-37213200 -21600 0 CST}
+ {-21484800 -18000 1 CDT}
+ {-5763600 -21600 0 CST}
+ {9964800 -18000 1 CDT}
+ {25686000 -21600 0 CST}
+ {41414400 -18000 1 CDT}
+ {57740400 -21600 0 CST}
+ {73468800 -18000 1 CDT}
+ {89190000 -21600 0 CST}
+ {104918400 -18000 1 CDT}
+ {120639600 -21600 0 CST}
+ {126691200 -18000 1 CDT}
+ {152089200 -21600 0 CST}
+ {162374400 -18000 1 CDT}
+ {183538800 -21600 0 CST}
+ {199267200 -18000 1 CDT}
+ {215593200 -21600 0 CST}
+ {230716800 -18000 1 CDT}
+ {247042800 -21600 0 CST}
+ {262771200 -18000 1 CDT}
+ {278492400 -21600 0 CST}
+ {294220800 -18000 1 CDT}
+ {309942000 -21600 0 CST}
+ {325670400 -18000 1 CDT}
+ {341391600 -21600 0 CST}
+ {357120000 -18000 1 CDT}
+ {372841200 -21600 0 CST}
+ {388569600 -18000 1 CDT}
+ {404895600 -21600 0 CST}
+ {420019200 -18000 1 CDT}
+ {436345200 -21600 0 CST}
+ {452073600 -18000 1 CDT}
+ {467794800 -21600 0 CST}
+ {483523200 -18000 1 CDT}
+ {499244400 -21600 0 CST}
+ {514972800 -18000 1 CDT}
+ {530694000 -21600 0 CST}
+ {544608000 -18000 1 CDT}
+ {562143600 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {607507200 -18000 1 CDT}
+ {625647600 -21600 0 CST}
+ {638956800 -18000 1 CDT}
+ {657097200 -21600 0 CST}
+ {671011200 -18000 1 CDT}
+ {688546800 -21600 0 CST}
+ {702460800 -18000 1 CDT}
+ {719996400 -21600 0 CST}
+ {733910400 -18000 1 CDT}
+ {752050800 -21600 0 CST}
+ {765360000 -18000 1 CDT}
+ {783500400 -21600 0 CST}
+ {796809600 -18000 1 CDT}
+ {814950000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972806400 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Knox_IN b/library/tzdata/America/Knox_IN
new file mode 100644
index 0000000..718d8e1
--- /dev/null
+++ b/library/tzdata/America/Knox_IN
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Indiana/Knox)]} {
+ loadTimeZoneFile America/Indiana/Knox
+}
+set tzdata(:America/Knox_IN) $TZData(:America/Indiana/Knox)
diff --git a/library/tzdata/America/La_Paz b/library/tzdata/America/La_Paz
new file mode 100644
index 0000000..c1ae276
--- /dev/null
+++ b/library/tzdata/America/La_Paz
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/La_Paz) {
+ {-9223372036854775808 -16356 0 LMT}
+ {-2524505244 -16356 0 CMT}
+ {-1205954844 -12756 1 BOST}
+ {-1192307244 -14400 0 BOT}
+}
diff --git a/library/tzdata/America/Lima b/library/tzdata/America/Lima
new file mode 100644
index 0000000..c899c10
--- /dev/null
+++ b/library/tzdata/America/Lima
@@ -0,0 +1,16 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Lima) {
+ {-9223372036854775808 -18492 0 LMT}
+ {-2524503108 -18516 0 LMT}
+ {-1938538284 -14400 0 PEST}
+ {-1002052800 -18000 0 PET}
+ {-986756400 -14400 1 PEST}
+ {-971035200 -18000 0 PET}
+ {-955306800 -14400 1 PEST}
+ {-939585600 -18000 0 PET}
+ {512712000 -18000 0 PET}
+ {544248000 -18000 0 PET}
+ {638942400 -18000 0 PET}
+ {765172800 -18000 0 PET}
+}
diff --git a/library/tzdata/America/Los_Angeles b/library/tzdata/America/Los_Angeles
new file mode 100644
index 0000000..5283906
--- /dev/null
+++ b/library/tzdata/America/Los_Angeles
@@ -0,0 +1,317 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Los_Angeles) {
+ {-9223372036854775808 -28378 0 LMT}
+ {-2717640422 -28800 0 PST}
+ {-1633269600 -25200 1 PDT}
+ {-1615129200 -28800 0 PST}
+ {-1601820000 -25200 1 PDT}
+ {-1583679600 -28800 0 PST}
+ {-880207200 -25200 1 PWT}
+ {-769395600 -25200 1 PPT}
+ {-765385200 -28800 0 PST}
+ {-757353600 -28800 0 PST}
+ {-687967200 -25200 1 PDT}
+ {-662655600 -28800 0 PST}
+ {-620834400 -25200 1 PDT}
+ {-608137200 -28800 0 PST}
+ {-589384800 -25200 1 PDT}
+ {-576082800 -28800 0 PST}
+ {-557935200 -25200 1 PDT}
+ {-544633200 -28800 0 PST}
+ {-526485600 -25200 1 PDT}
+ {-513183600 -28800 0 PST}
+ {-495036000 -25200 1 PDT}
+ {-481734000 -28800 0 PST}
+ {-463586400 -25200 1 PDT}
+ {-450284400 -28800 0 PST}
+ {-431532000 -25200 1 PDT}
+ {-418230000 -28800 0 PST}
+ {-400082400 -25200 1 PDT}
+ {-386780400 -28800 0 PST}
+ {-368632800 -25200 1 PDT}
+ {-355330800 -28800 0 PST}
+ {-337183200 -25200 1 PDT}
+ {-323881200 -28800 0 PST}
+ {-305733600 -25200 1 PDT}
+ {-292431600 -28800 0 PST}
+ {-273679200 -25200 1 PDT}
+ {-260982000 -28800 0 PST}
+ {-242229600 -25200 1 PDT}
+ {-226508400 -28800 0 PST}
+ {-210780000 -25200 1 PDT}
+ {-195058800 -28800 0 PST}
+ {-179330400 -25200 1 PDT}
+ {-163609200 -28800 0 PST}
+ {-147880800 -25200 1 PDT}
+ {-131554800 -28800 0 PST}
+ {-116431200 -25200 1 PDT}
+ {-100105200 -28800 0 PST}
+ {-94665600 -28800 0 PST}
+ {-84376800 -25200 1 PDT}
+ {-68655600 -28800 0 PST}
+ {-52927200 -25200 1 PDT}
+ {-37206000 -28800 0 PST}
+ {-21477600 -25200 1 PDT}
+ {-5756400 -28800 0 PST}
+ {9972000 -25200 1 PDT}
+ {25693200 -28800 0 PST}
+ {41421600 -25200 1 PDT}
+ {57747600 -28800 0 PST}
+ {73476000 -25200 1 PDT}
+ {89197200 -28800 0 PST}
+ {104925600 -25200 1 PDT}
+ {120646800 -28800 0 PST}
+ {126698400 -25200 1 PDT}
+ {152096400 -28800 0 PST}
+ {162381600 -25200 1 PDT}
+ {183546000 -28800 0 PST}
+ {199274400 -25200 1 PDT}
+ {215600400 -28800 0 PST}
+ {230724000 -25200 1 PDT}
+ {247050000 -28800 0 PST}
+ {262778400 -25200 1 PDT}
+ {278499600 -28800 0 PST}
+ {294228000 -25200 1 PDT}
+ {309949200 -28800 0 PST}
+ {325677600 -25200 1 PDT}
+ {341398800 -28800 0 PST}
+ {357127200 -25200 1 PDT}
+ {372848400 -28800 0 PST}
+ {388576800 -25200 1 PDT}
+ {404902800 -28800 0 PST}
+ {420026400 -25200 1 PDT}
+ {436352400 -28800 0 PST}
+ {452080800 -25200 1 PDT}
+ {467802000 -28800 0 PST}
+ {483530400 -25200 1 PDT}
+ {499251600 -28800 0 PST}
+ {514980000 -25200 1 PDT}
+ {530701200 -28800 0 PST}
+ {544615200 -25200 1 PDT}
+ {562150800 -28800 0 PST}
+ {576064800 -25200 1 PDT}
+ {594205200 -28800 0 PST}
+ {607514400 -25200 1 PDT}
+ {625654800 -28800 0 PST}
+ {638964000 -25200 1 PDT}
+ {657104400 -28800 0 PST}
+ {671018400 -25200 1 PDT}
+ {688554000 -28800 0 PST}
+ {702468000 -25200 1 PDT}
+ {720003600 -28800 0 PST}
+ {733917600 -25200 1 PDT}
+ {752058000 -28800 0 PST}
+ {765367200 -25200 1 PDT}
+ {783507600 -28800 0 PST}
+ {796816800 -25200 1 PDT}
+ {814957200 -28800 0 PST}
+ {828871200 -25200 1 PDT}
+ {846406800 -28800 0 PST}
+ {860320800 -25200 1 PDT}
+ {877856400 -28800 0 PST}
+ {891770400 -25200 1 PDT}
+ {909306000 -28800 0 PST}
+ {923220000 -25200 1 PDT}
+ {941360400 -28800 0 PST}
+ {954669600 -25200 1 PDT}
+ {972810000 -28800 0 PST}
+ {986119200 -25200 1 PDT}
+ {1004259600 -28800 0 PST}
+ {1018173600 -25200 1 PDT}
+ {1035709200 -28800 0 PST}
+ {1049623200 -25200 1 PDT}
+ {1067158800 -28800 0 PST}
+ {1081072800 -25200 1 PDT}
+ {1099213200 -28800 0 PST}
+ {1112522400 -25200 1 PDT}
+ {1130662800 -28800 0 PST}
+ {1143972000 -25200 1 PDT}
+ {1162112400 -28800 0 PST}
+ {1175421600 -25200 1 PDT}
+ {1193562000 -28800 0 PST}
+ {1207476000 -25200 1 PDT}
+ {1225011600 -28800 0 PST}
+ {1238925600 -25200 1 PDT}
+ {1256461200 -28800 0 PST}
+ {1270375200 -25200 1 PDT}
+ {1288515600 -28800 0 PST}
+ {1301824800 -25200 1 PDT}
+ {1319965200 -28800 0 PST}
+ {1333274400 -25200 1 PDT}
+ {1351414800 -28800 0 PST}
+ {1365328800 -25200 1 PDT}
+ {1382864400 -28800 0 PST}
+ {1396778400 -25200 1 PDT}
+ {1414314000 -28800 0 PST}
+ {1428228000 -25200 1 PDT}
+ {1445763600 -28800 0 PST}
+ {1459677600 -25200 1 PDT}
+ {1477818000 -28800 0 PST}
+ {1491127200 -25200 1 PDT}
+ {1509267600 -28800 0 PST}
+ {1522576800 -25200 1 PDT}
+ {1540717200 -28800 0 PST}
+ {1554631200 -25200 1 PDT}
+ {1572166800 -28800 0 PST}
+ {1586080800 -25200 1 PDT}
+ {1603616400 -28800 0 PST}
+ {1617530400 -25200 1 PDT}
+ {1635670800 -28800 0 PST}
+ {1648980000 -25200 1 PDT}
+ {1667120400 -28800 0 PST}
+ {1680429600 -25200 1 PDT}
+ {1698570000 -28800 0 PST}
+ {1712484000 -25200 1 PDT}
+ {1730019600 -28800 0 PST}
+ {1743933600 -25200 1 PDT}
+ {1761469200 -28800 0 PST}
+ {1775383200 -25200 1 PDT}
+ {1792918800 -28800 0 PST}
+ {1806832800 -25200 1 PDT}
+ {1824973200 -28800 0 PST}
+ {1838282400 -25200 1 PDT}
+ {1856422800 -28800 0 PST}
+ {1869732000 -25200 1 PDT}
+ {1887872400 -28800 0 PST}
+ {1901786400 -25200 1 PDT}
+ {1919322000 -28800 0 PST}
+ {1933236000 -25200 1 PDT}
+ {1950771600 -28800 0 PST}
+ {1964685600 -25200 1 PDT}
+ {1982826000 -28800 0 PST}
+ {1996135200 -25200 1 PDT}
+ {2014275600 -28800 0 PST}
+ {2027584800 -25200 1 PDT}
+ {2045725200 -28800 0 PST}
+ {2059034400 -25200 1 PDT}
+ {2077174800 -28800 0 PST}
+ {2091088800 -25200 1 PDT}
+ {2108624400 -28800 0 PST}
+ {2122538400 -25200 1 PDT}
+ {2140074000 -28800 0 PST}
+ {2153988000 -25200 1 PDT}
+ {2172128400 -28800 0 PST}
+ {2185437600 -25200 1 PDT}
+ {2203578000 -28800 0 PST}
+ {2216887200 -25200 1 PDT}
+ {2235027600 -28800 0 PST}
+ {2248941600 -25200 1 PDT}
+ {2266477200 -28800 0 PST}
+ {2280391200 -25200 1 PDT}
+ {2297926800 -28800 0 PST}
+ {2311840800 -25200 1 PDT}
+ {2329376400 -28800 0 PST}
+ {2343290400 -25200 1 PDT}
+ {2361430800 -28800 0 PST}
+ {2374740000 -25200 1 PDT}
+ {2392880400 -28800 0 PST}
+ {2406189600 -25200 1 PDT}
+ {2424330000 -28800 0 PST}
+ {2438244000 -25200 1 PDT}
+ {2455779600 -28800 0 PST}
+ {2469693600 -25200 1 PDT}
+ {2487229200 -28800 0 PST}
+ {2501143200 -25200 1 PDT}
+ {2519283600 -28800 0 PST}
+ {2532592800 -25200 1 PDT}
+ {2550733200 -28800 0 PST}
+ {2564042400 -25200 1 PDT}
+ {2582182800 -28800 0 PST}
+ {2596096800 -25200 1 PDT}
+ {2613632400 -28800 0 PST}
+ {2627546400 -25200 1 PDT}
+ {2645082000 -28800 0 PST}
+ {2658996000 -25200 1 PDT}
+ {2676531600 -28800 0 PST}
+ {2690445600 -25200 1 PDT}
+ {2708586000 -28800 0 PST}
+ {2721895200 -25200 1 PDT}
+ {2740035600 -28800 0 PST}
+ {2753344800 -25200 1 PDT}
+ {2771485200 -28800 0 PST}
+ {2785399200 -25200 1 PDT}
+ {2802934800 -28800 0 PST}
+ {2816848800 -25200 1 PDT}
+ {2834384400 -28800 0 PST}
+ {2848298400 -25200 1 PDT}
+ {2866438800 -28800 0 PST}
+ {2879748000 -25200 1 PDT}
+ {2897888400 -28800 0 PST}
+ {2911197600 -25200 1 PDT}
+ {2929338000 -28800 0 PST}
+ {2942647200 -25200 1 PDT}
+ {2960787600 -28800 0 PST}
+ {2974701600 -25200 1 PDT}
+ {2992237200 -28800 0 PST}
+ {3006151200 -25200 1 PDT}
+ {3023686800 -28800 0 PST}
+ {3037600800 -25200 1 PDT}
+ {3055741200 -28800 0 PST}
+ {3069050400 -25200 1 PDT}
+ {3087190800 -28800 0 PST}
+ {3100500000 -25200 1 PDT}
+ {3118640400 -28800 0 PST}
+ {3132554400 -25200 1 PDT}
+ {3150090000 -28800 0 PST}
+ {3164004000 -25200 1 PDT}
+ {3181539600 -28800 0 PST}
+ {3195453600 -25200 1 PDT}
+ {3212989200 -28800 0 PST}
+ {3226903200 -25200 1 PDT}
+ {3245043600 -28800 0 PST}
+ {3258352800 -25200 1 PDT}
+ {3276493200 -28800 0 PST}
+ {3289802400 -25200 1 PDT}
+ {3307942800 -28800 0 PST}
+ {3321856800 -25200 1 PDT}
+ {3339392400 -28800 0 PST}
+ {3353306400 -25200 1 PDT}
+ {3370842000 -28800 0 PST}
+ {3384756000 -25200 1 PDT}
+ {3402896400 -28800 0 PST}
+ {3416205600 -25200 1 PDT}
+ {3434346000 -28800 0 PST}
+ {3447655200 -25200 1 PDT}
+ {3465795600 -28800 0 PST}
+ {3479709600 -25200 1 PDT}
+ {3497245200 -28800 0 PST}
+ {3511159200 -25200 1 PDT}
+ {3528694800 -28800 0 PST}
+ {3542608800 -25200 1 PDT}
+ {3560144400 -28800 0 PST}
+ {3574058400 -25200 1 PDT}
+ {3592198800 -28800 0 PST}
+ {3605508000 -25200 1 PDT}
+ {3623648400 -28800 0 PST}
+ {3636957600 -25200 1 PDT}
+ {3655098000 -28800 0 PST}
+ {3669012000 -25200 1 PDT}
+ {3686547600 -28800 0 PST}
+ {3700461600 -25200 1 PDT}
+ {3717997200 -28800 0 PST}
+ {3731911200 -25200 1 PDT}
+ {3750051600 -28800 0 PST}
+ {3763360800 -25200 1 PDT}
+ {3781501200 -28800 0 PST}
+ {3794810400 -25200 1 PDT}
+ {3812950800 -28800 0 PST}
+ {3826260000 -25200 1 PDT}
+ {3844400400 -28800 0 PST}
+ {3858314400 -25200 1 PDT}
+ {3875850000 -28800 0 PST}
+ {3889764000 -25200 1 PDT}
+ {3907299600 -28800 0 PST}
+ {3921213600 -25200 1 PDT}
+ {3939354000 -28800 0 PST}
+ {3952663200 -25200 1 PDT}
+ {3970803600 -28800 0 PST}
+ {3984112800 -25200 1 PDT}
+ {4002253200 -28800 0 PST}
+ {4016167200 -25200 1 PDT}
+ {4033702800 -28800 0 PST}
+ {4047616800 -25200 1 PDT}
+ {4065152400 -28800 0 PST}
+ {4079066400 -25200 1 PDT}
+ {4096602000 -28800 0 PST}
+}
diff --git a/library/tzdata/America/Louisville b/library/tzdata/America/Louisville
new file mode 100644
index 0000000..7813308
--- /dev/null
+++ b/library/tzdata/America/Louisville
@@ -0,0 +1,314 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Louisville) {
+ {-9223372036854775808 -20582 0 LMT}
+ {-2717648218 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-1546279200 -21600 0 CST}
+ {-1535904000 -18000 1 CDT}
+ {-1525280400 -21600 0 CST}
+ {-905097600 -18000 1 CDT}
+ {-891795600 -21600 0 CST}
+ {-883591200 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-757360800 -21600 0 CST}
+ {-747244800 -18000 1 CDT}
+ {-744224400 -21600 0 CST}
+ {-715795200 -18000 1 CDT}
+ {-684349200 -18000 1 CDT}
+ {-652899600 -18000 1 CDT}
+ {-620845200 -18000 1 CDT}
+ {-608144400 -21600 0 CST}
+ {-589392000 -18000 1 CDT}
+ {-576090000 -21600 0 CST}
+ {-557942400 -18000 1 CDT}
+ {-544640400 -21600 0 CST}
+ {-526492800 -18000 1 CDT}
+ {-513190800 -21600 0 CST}
+ {-495043200 -18000 1 CDT}
+ {-481741200 -21600 0 CST}
+ {-463593600 -18000 1 CDT}
+ {-450291600 -21600 0 CST}
+ {-431539200 -18000 1 CDT}
+ {-415818000 -21600 0 CST}
+ {-400089600 -18000 1 CDT}
+ {-384368400 -21600 0 CST}
+ {-368640000 -18000 1 CDT}
+ {-352918800 -21600 0 CST}
+ {-337190400 -18000 1 CDT}
+ {-321469200 -21600 0 CST}
+ {-305740800 -18000 1 CDT}
+ {-289414800 -21600 0 CST}
+ {-273686400 -18000 1 CDT}
+ {-266432400 -18000 0 EST}
+ {-63140400 -18000 0 EST}
+ {-52938000 -14400 1 EDT}
+ {-37216800 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {126687600 -18000 1 CDT}
+ {152089200 -18000 0 EST}
+ {162370800 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Maceio b/library/tzdata/America/Maceio
new file mode 100644
index 0000000..248dff5
--- /dev/null
+++ b/library/tzdata/America/Maceio
@@ -0,0 +1,52 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Maceio) {
+ {-9223372036854775808 -8572 0 LMT}
+ {-1767217028 -10800 0 BRT}
+ {-1206957600 -7200 1 BRST}
+ {-1191362400 -10800 0 BRT}
+ {-1175374800 -7200 1 BRST}
+ {-1159826400 -10800 0 BRT}
+ {-633819600 -7200 1 BRST}
+ {-622069200 -10800 0 BRT}
+ {-602283600 -7200 1 BRST}
+ {-591832800 -10800 0 BRT}
+ {-570747600 -7200 1 BRST}
+ {-560210400 -10800 0 BRT}
+ {-539125200 -7200 1 BRST}
+ {-531352800 -10800 0 BRT}
+ {-191365200 -7200 1 BRST}
+ {-184197600 -10800 0 BRT}
+ {-155163600 -7200 1 BRST}
+ {-150069600 -10800 0 BRT}
+ {-128898000 -7200 1 BRST}
+ {-121125600 -10800 0 BRT}
+ {-99954000 -7200 1 BRST}
+ {-89589600 -10800 0 BRT}
+ {-68418000 -7200 1 BRST}
+ {-57967200 -10800 0 BRT}
+ {499748400 -7200 1 BRST}
+ {511236000 -10800 0 BRT}
+ {530593200 -7200 1 BRST}
+ {540266400 -10800 0 BRT}
+ {562129200 -7200 1 BRST}
+ {571197600 -10800 0 BRT}
+ {592974000 -7200 1 BRST}
+ {602042400 -10800 0 BRT}
+ {624423600 -7200 1 BRST}
+ {634701600 -10800 0 BRT}
+ {653536800 -10800 0 BRT}
+ {813553200 -10800 0 BRT}
+ {813726000 -7200 1 BRST}
+ {824004000 -10800 0 BRT}
+ {841802400 -10800 0 BRT}
+ {938660400 -10800 0 BRT}
+ {938919600 -7200 1 BRST}
+ {951616800 -10800 0 BRT}
+ {970974000 -7200 1 BRST}
+ {972180000 -10800 0 BRT}
+ {1000350000 -10800 0 BRT}
+ {1003028400 -7200 1 BRST}
+ {1013911200 -10800 0 BRT}
+ {1033437600 -10800 0 BRT}
+}
diff --git a/library/tzdata/America/Managua b/library/tzdata/America/Managua
new file mode 100644
index 0000000..9224166
--- /dev/null
+++ b/library/tzdata/America/Managua
@@ -0,0 +1,17 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Managua) {
+ {-9223372036854775808 -20708 0 LMT}
+ {-2524500892 -20712 0 MMT}
+ {-1121105688 -21600 0 CST}
+ {105084000 -18000 0 EST}
+ {161758800 -21600 0 CST}
+ {290584800 -18000 1 CDT}
+ {299134800 -21600 0 CST}
+ {322034400 -18000 1 CDT}
+ {330584400 -21600 0 CST}
+ {694260000 -18000 1 CDT}
+ {717310800 -21600 0 CST}
+ {725882400 -18000 0 EST}
+ {912488400 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Manaus b/library/tzdata/America/Manaus
new file mode 100644
index 0000000..ebc4783
--- /dev/null
+++ b/library/tzdata/America/Manaus
@@ -0,0 +1,39 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Manaus) {
+ {-9223372036854775808 -14404 0 LMT}
+ {-1767211196 -14400 0 AMT}
+ {-1206954000 -10800 1 AMST}
+ {-1191358800 -14400 0 AMT}
+ {-1175371200 -10800 1 AMST}
+ {-1159822800 -14400 0 AMT}
+ {-633816000 -10800 1 AMST}
+ {-622065600 -14400 0 AMT}
+ {-602280000 -10800 1 AMST}
+ {-591829200 -14400 0 AMT}
+ {-570744000 -10800 1 AMST}
+ {-560206800 -14400 0 AMT}
+ {-539121600 -10800 1 AMST}
+ {-531349200 -14400 0 AMT}
+ {-191361600 -10800 1 AMST}
+ {-184194000 -14400 0 AMT}
+ {-155160000 -10800 1 AMST}
+ {-150066000 -14400 0 AMT}
+ {-128894400 -10800 1 AMST}
+ {-121122000 -14400 0 AMT}
+ {-99950400 -10800 1 AMST}
+ {-89586000 -14400 0 AMT}
+ {-68414400 -10800 1 AMST}
+ {-57963600 -14400 0 AMT}
+ {499752000 -10800 1 AMST}
+ {511239600 -14400 0 AMT}
+ {530596800 -10800 1 AMST}
+ {540270000 -14400 0 AMT}
+ {562132800 -10800 1 AMST}
+ {571201200 -14400 0 AMT}
+ {590036400 -14400 0 AMT}
+ {749188800 -14400 0 AMT}
+ {750830400 -10800 1 AMST}
+ {761713200 -14400 0 AMT}
+ {780202800 -14400 0 AMT}
+}
diff --git a/library/tzdata/America/Martinique b/library/tzdata/America/Martinique
new file mode 100644
index 0000000..59d901b
--- /dev/null
+++ b/library/tzdata/America/Martinique
@@ -0,0 +1,9 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Martinique) {
+ {-9223372036854775808 -14660 0 LMT}
+ {-2524506940 -14660 0 FFMT}
+ {-1851537340 -14400 0 AST}
+ {323841600 -10800 1 ADT}
+ {338958000 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Mazatlan b/library/tzdata/America/Mazatlan
new file mode 100644
index 0000000..0a23ce8
--- /dev/null
+++ b/library/tzdata/America/Mazatlan
@@ -0,0 +1,222 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Mazatlan) {
+ {-9223372036854775808 -25540 0 LMT}
+ {-1514739600 -25200 0 MST}
+ {-1343066400 -21600 0 CST}
+ {-1234807200 -25200 0 MST}
+ {-1220292000 -21600 0 CST}
+ {-1207159200 -25200 0 MST}
+ {-1191344400 -21600 0 CST}
+ {-873828000 -25200 0 MST}
+ {-661539600 -28800 0 PST}
+ {28800 -25200 0 MST}
+ {828867600 -21600 1 MDT}
+ {846403200 -25200 0 MST}
+ {860317200 -21600 1 MDT}
+ {877852800 -25200 0 MST}
+ {891766800 -21600 1 MDT}
+ {909302400 -25200 0 MST}
+ {923216400 -21600 1 MDT}
+ {941356800 -25200 0 MST}
+ {954666000 -21600 1 MDT}
+ {972806400 -25200 0 MST}
+ {989139600 -21600 1 MDT}
+ {1001836800 -25200 0 MST}
+ {1018170000 -21600 1 MDT}
+ {1035705600 -25200 0 MST}
+ {1049619600 -21600 1 MDT}
+ {1067155200 -25200 0 MST}
+ {1081069200 -21600 1 MDT}
+ {1099209600 -25200 0 MST}
+ {1112518800 -21600 1 MDT}
+ {1130659200 -25200 0 MST}
+ {1143968400 -21600 1 MDT}
+ {1162108800 -25200 0 MST}
+ {1175418000 -21600 1 MDT}
+ {1193558400 -25200 0 MST}
+ {1207472400 -21600 1 MDT}
+ {1225008000 -25200 0 MST}
+ {1238922000 -21600 1 MDT}
+ {1256457600 -25200 0 MST}
+ {1270371600 -21600 1 MDT}
+ {1288512000 -25200 0 MST}
+ {1301821200 -21600 1 MDT}
+ {1319961600 -25200 0 MST}
+ {1333270800 -21600 1 MDT}
+ {1351411200 -25200 0 MST}
+ {1365325200 -21600 1 MDT}
+ {1382860800 -25200 0 MST}
+ {1396774800 -21600 1 MDT}
+ {1414310400 -25200 0 MST}
+ {1428224400 -21600 1 MDT}
+ {1445760000 -25200 0 MST}
+ {1459674000 -21600 1 MDT}
+ {1477814400 -25200 0 MST}
+ {1491123600 -21600 1 MDT}
+ {1509264000 -25200 0 MST}
+ {1522573200 -21600 1 MDT}
+ {1540713600 -25200 0 MST}
+ {1554627600 -21600 1 MDT}
+ {1572163200 -25200 0 MST}
+ {1586077200 -21600 1 MDT}
+ {1603612800 -25200 0 MST}
+ {1617526800 -21600 1 MDT}
+ {1635667200 -25200 0 MST}
+ {1648976400 -21600 1 MDT}
+ {1667116800 -25200 0 MST}
+ {1680426000 -21600 1 MDT}
+ {1698566400 -25200 0 MST}
+ {1712480400 -21600 1 MDT}
+ {1730016000 -25200 0 MST}
+ {1743930000 -21600 1 MDT}
+ {1761465600 -25200 0 MST}
+ {1775379600 -21600 1 MDT}
+ {1792915200 -25200 0 MST}
+ {1806829200 -21600 1 MDT}
+ {1824969600 -25200 0 MST}
+ {1838278800 -21600 1 MDT}
+ {1856419200 -25200 0 MST}
+ {1869728400 -21600 1 MDT}
+ {1887868800 -25200 0 MST}
+ {1901782800 -21600 1 MDT}
+ {1919318400 -25200 0 MST}
+ {1933232400 -21600 1 MDT}
+ {1950768000 -25200 0 MST}
+ {1964682000 -21600 1 MDT}
+ {1982822400 -25200 0 MST}
+ {1996131600 -21600 1 MDT}
+ {2014272000 -25200 0 MST}
+ {2027581200 -21600 1 MDT}
+ {2045721600 -25200 0 MST}
+ {2059030800 -21600 1 MDT}
+ {2077171200 -25200 0 MST}
+ {2091085200 -21600 1 MDT}
+ {2108620800 -25200 0 MST}
+ {2122534800 -21600 1 MDT}
+ {2140070400 -25200 0 MST}
+ {2153984400 -21600 1 MDT}
+ {2172124800 -25200 0 MST}
+ {2185434000 -21600 1 MDT}
+ {2203574400 -25200 0 MST}
+ {2216883600 -21600 1 MDT}
+ {2235024000 -25200 0 MST}
+ {2248938000 -21600 1 MDT}
+ {2266473600 -25200 0 MST}
+ {2280387600 -21600 1 MDT}
+ {2297923200 -25200 0 MST}
+ {2311837200 -21600 1 MDT}
+ {2329372800 -25200 0 MST}
+ {2343286800 -21600 1 MDT}
+ {2361427200 -25200 0 MST}
+ {2374736400 -21600 1 MDT}
+ {2392876800 -25200 0 MST}
+ {2406186000 -21600 1 MDT}
+ {2424326400 -25200 0 MST}
+ {2438240400 -21600 1 MDT}
+ {2455776000 -25200 0 MST}
+ {2469690000 -21600 1 MDT}
+ {2487225600 -25200 0 MST}
+ {2501139600 -21600 1 MDT}
+ {2519280000 -25200 0 MST}
+ {2532589200 -21600 1 MDT}
+ {2550729600 -25200 0 MST}
+ {2564038800 -21600 1 MDT}
+ {2582179200 -25200 0 MST}
+ {2596093200 -21600 1 MDT}
+ {2613628800 -25200 0 MST}
+ {2627542800 -21600 1 MDT}
+ {2645078400 -25200 0 MST}
+ {2658992400 -21600 1 MDT}
+ {2676528000 -25200 0 MST}
+ {2690442000 -21600 1 MDT}
+ {2708582400 -25200 0 MST}
+ {2721891600 -21600 1 MDT}
+ {2740032000 -25200 0 MST}
+ {2753341200 -21600 1 MDT}
+ {2771481600 -25200 0 MST}
+ {2785395600 -21600 1 MDT}
+ {2802931200 -25200 0 MST}
+ {2816845200 -21600 1 MDT}
+ {2834380800 -25200 0 MST}
+ {2848294800 -21600 1 MDT}
+ {2866435200 -25200 0 MST}
+ {2879744400 -21600 1 MDT}
+ {2897884800 -25200 0 MST}
+ {2911194000 -21600 1 MDT}
+ {2929334400 -25200 0 MST}
+ {2942643600 -21600 1 MDT}
+ {2960784000 -25200 0 MST}
+ {2974698000 -21600 1 MDT}
+ {2992233600 -25200 0 MST}
+ {3006147600 -21600 1 MDT}
+ {3023683200 -25200 0 MST}
+ {3037597200 -21600 1 MDT}
+ {3055737600 -25200 0 MST}
+ {3069046800 -21600 1 MDT}
+ {3087187200 -25200 0 MST}
+ {3100496400 -21600 1 MDT}
+ {3118636800 -25200 0 MST}
+ {3132550800 -21600 1 MDT}
+ {3150086400 -25200 0 MST}
+ {3164000400 -21600 1 MDT}
+ {3181536000 -25200 0 MST}
+ {3195450000 -21600 1 MDT}
+ {3212985600 -25200 0 MST}
+ {3226899600 -21600 1 MDT}
+ {3245040000 -25200 0 MST}
+ {3258349200 -21600 1 MDT}
+ {3276489600 -25200 0 MST}
+ {3289798800 -21600 1 MDT}
+ {3307939200 -25200 0 MST}
+ {3321853200 -21600 1 MDT}
+ {3339388800 -25200 0 MST}
+ {3353302800 -21600 1 MDT}
+ {3370838400 -25200 0 MST}
+ {3384752400 -21600 1 MDT}
+ {3402892800 -25200 0 MST}
+ {3416202000 -21600 1 MDT}
+ {3434342400 -25200 0 MST}
+ {3447651600 -21600 1 MDT}
+ {3465792000 -25200 0 MST}
+ {3479706000 -21600 1 MDT}
+ {3497241600 -25200 0 MST}
+ {3511155600 -21600 1 MDT}
+ {3528691200 -25200 0 MST}
+ {3542605200 -21600 1 MDT}
+ {3560140800 -25200 0 MST}
+ {3574054800 -21600 1 MDT}
+ {3592195200 -25200 0 MST}
+ {3605504400 -21600 1 MDT}
+ {3623644800 -25200 0 MST}
+ {3636954000 -21600 1 MDT}
+ {3655094400 -25200 0 MST}
+ {3669008400 -21600 1 MDT}
+ {3686544000 -25200 0 MST}
+ {3700458000 -21600 1 MDT}
+ {3717993600 -25200 0 MST}
+ {3731907600 -21600 1 MDT}
+ {3750048000 -25200 0 MST}
+ {3763357200 -21600 1 MDT}
+ {3781497600 -25200 0 MST}
+ {3794806800 -21600 1 MDT}
+ {3812947200 -25200 0 MST}
+ {3826256400 -21600 1 MDT}
+ {3844396800 -25200 0 MST}
+ {3858310800 -21600 1 MDT}
+ {3875846400 -25200 0 MST}
+ {3889760400 -21600 1 MDT}
+ {3907296000 -25200 0 MST}
+ {3921210000 -21600 1 MDT}
+ {3939350400 -25200 0 MST}
+ {3952659600 -21600 1 MDT}
+ {3970800000 -25200 0 MST}
+ {3984109200 -21600 1 MDT}
+ {4002249600 -25200 0 MST}
+ {4016163600 -21600 1 MDT}
+ {4033699200 -25200 0 MST}
+ {4047613200 -21600 1 MDT}
+ {4065148800 -25200 0 MST}
+ {4079062800 -21600 1 MDT}
+ {4096598400 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Mendoza b/library/tzdata/America/Mendoza
new file mode 100644
index 0000000..f198eac
--- /dev/null
+++ b/library/tzdata/America/Mendoza
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Argentina/Mendoza)]} {
+ loadTimeZoneFile America/Argentina/Mendoza
+}
+set tzdata(:America/Mendoza) $TZData(:America/Argentina/Mendoza)
diff --git a/library/tzdata/America/Menominee b/library/tzdata/America/Menominee
new file mode 100644
index 0000000..4dc5360
--- /dev/null
+++ b/library/tzdata/America/Menominee
@@ -0,0 +1,274 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Menominee) {
+ {-9223372036854775808 -21027 0 LMT}
+ {-2659759773 -21600 0 CST}
+ {-1633276800 -18000 1 CDT}
+ {-1615136400 -21600 0 CST}
+ {-1601827200 -18000 1 CDT}
+ {-1583686800 -21600 0 CST}
+ {-880214400 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-765392400 -21600 0 CST}
+ {-757360800 -21600 0 CST}
+ {-747244800 -18000 1 CDT}
+ {-733942800 -21600 0 CST}
+ {-116438400 -18000 1 CDT}
+ {-100112400 -21600 0 CST}
+ {-21484800 -18000 0 EST}
+ {104914800 -21600 0 CST}
+ {104918400 -18000 1 CDT}
+ {120639600 -21600 0 CST}
+ {126691200 -18000 1 CDT}
+ {152089200 -21600 0 CST}
+ {162374400 -18000 1 CDT}
+ {183538800 -21600 0 CST}
+ {199267200 -18000 1 CDT}
+ {215593200 -21600 0 CST}
+ {230716800 -18000 1 CDT}
+ {247042800 -21600 0 CST}
+ {262771200 -18000 1 CDT}
+ {278492400 -21600 0 CST}
+ {294220800 -18000 1 CDT}
+ {309942000 -21600 0 CST}
+ {325670400 -18000 1 CDT}
+ {341391600 -21600 0 CST}
+ {357120000 -18000 1 CDT}
+ {372841200 -21600 0 CST}
+ {388569600 -18000 1 CDT}
+ {404895600 -21600 0 CST}
+ {420019200 -18000 1 CDT}
+ {436345200 -21600 0 CST}
+ {452073600 -18000 1 CDT}
+ {467794800 -21600 0 CST}
+ {483523200 -18000 1 CDT}
+ {499244400 -21600 0 CST}
+ {514972800 -18000 1 CDT}
+ {530694000 -21600 0 CST}
+ {544608000 -18000 1 CDT}
+ {562143600 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {607507200 -18000 1 CDT}
+ {625647600 -21600 0 CST}
+ {638956800 -18000 1 CDT}
+ {657097200 -21600 0 CST}
+ {671011200 -18000 1 CDT}
+ {688546800 -21600 0 CST}
+ {702460800 -18000 1 CDT}
+ {719996400 -21600 0 CST}
+ {733910400 -18000 1 CDT}
+ {752050800 -21600 0 CST}
+ {765360000 -18000 1 CDT}
+ {783500400 -21600 0 CST}
+ {796809600 -18000 1 CDT}
+ {814950000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {986112000 -18000 1 CDT}
+ {1004252400 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Merida b/library/tzdata/America/Merida
new file mode 100644
index 0000000..a6dcbe7
--- /dev/null
+++ b/library/tzdata/America/Merida
@@ -0,0 +1,216 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Merida) {
+ {-9223372036854775808 -21508 0 LMT}
+ {-1514743200 -21600 0 CST}
+ {377935200 -18000 0 EST}
+ {407653200 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {989136000 -18000 1 CDT}
+ {1001833200 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Mexico_City b/library/tzdata/America/Mexico_City
new file mode 100644
index 0000000..e0a2016
--- /dev/null
+++ b/library/tzdata/America/Mexico_City
@@ -0,0 +1,228 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Mexico_City) {
+ {-9223372036854775808 -23796 0 LMT}
+ {-1514739600 -25200 0 MST}
+ {-1343066400 -21600 0 CST}
+ {-1234807200 -25200 0 MST}
+ {-1220292000 -21600 0 CST}
+ {-1207159200 -25200 0 MST}
+ {-1191344400 -21600 0 CST}
+ {-975261600 -18000 1 CDT}
+ {-963169200 -21600 0 CST}
+ {-917114400 -18000 1 CDT}
+ {-907354800 -21600 0 CST}
+ {-821901600 -18000 1 CWT}
+ {-810068400 -21600 0 CST}
+ {-627501600 -18000 1 CDT}
+ {-612990000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {989136000 -18000 1 CDT}
+ {1001836800 -21600 0 CST}
+ {1014184800 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Miquelon b/library/tzdata/America/Miquelon
new file mode 100644
index 0000000..8180d11
--- /dev/null
+++ b/library/tzdata/America/Miquelon
@@ -0,0 +1,234 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Miquelon) {
+ {-9223372036854775808 -13480 0 LMT}
+ {-1850328920 -14400 0 AST}
+ {326001600 -10800 0 PMST}
+ {536468400 -10800 0 PMST}
+ {544597200 -7200 1 PMDT}
+ {562132800 -10800 0 PMST}
+ {576046800 -7200 1 PMDT}
+ {594187200 -10800 0 PMST}
+ {607496400 -7200 1 PMDT}
+ {625636800 -10800 0 PMST}
+ {638946000 -7200 1 PMDT}
+ {657086400 -10800 0 PMST}
+ {671000400 -7200 1 PMDT}
+ {688536000 -10800 0 PMST}
+ {702450000 -7200 1 PMDT}
+ {719985600 -10800 0 PMST}
+ {733899600 -7200 1 PMDT}
+ {752040000 -10800 0 PMST}
+ {765349200 -7200 1 PMDT}
+ {783489600 -10800 0 PMST}
+ {796798800 -7200 1 PMDT}
+ {814939200 -10800 0 PMST}
+ {828853200 -7200 1 PMDT}
+ {846388800 -10800 0 PMST}
+ {860302800 -7200 1 PMDT}
+ {877838400 -10800 0 PMST}
+ {891752400 -7200 1 PMDT}
+ {909288000 -10800 0 PMST}
+ {923202000 -7200 1 PMDT}
+ {941342400 -10800 0 PMST}
+ {954651600 -7200 1 PMDT}
+ {972792000 -10800 0 PMST}
+ {986101200 -7200 1 PMDT}
+ {1004241600 -10800 0 PMST}
+ {1018155600 -7200 1 PMDT}
+ {1035691200 -10800 0 PMST}
+ {1049605200 -7200 1 PMDT}
+ {1067140800 -10800 0 PMST}
+ {1081054800 -7200 1 PMDT}
+ {1099195200 -10800 0 PMST}
+ {1112504400 -7200 1 PMDT}
+ {1130644800 -10800 0 PMST}
+ {1143954000 -7200 1 PMDT}
+ {1162094400 -10800 0 PMST}
+ {1175403600 -7200 1 PMDT}
+ {1193544000 -10800 0 PMST}
+ {1207458000 -7200 1 PMDT}
+ {1224993600 -10800 0 PMST}
+ {1238907600 -7200 1 PMDT}
+ {1256443200 -10800 0 PMST}
+ {1270357200 -7200 1 PMDT}
+ {1288497600 -10800 0 PMST}
+ {1301806800 -7200 1 PMDT}
+ {1319947200 -10800 0 PMST}
+ {1333256400 -7200 1 PMDT}
+ {1351396800 -10800 0 PMST}
+ {1365310800 -7200 1 PMDT}
+ {1382846400 -10800 0 PMST}
+ {1396760400 -7200 1 PMDT}
+ {1414296000 -10800 0 PMST}
+ {1428210000 -7200 1 PMDT}
+ {1445745600 -10800 0 PMST}
+ {1459659600 -7200 1 PMDT}
+ {1477800000 -10800 0 PMST}
+ {1491109200 -7200 1 PMDT}
+ {1509249600 -10800 0 PMST}
+ {1522558800 -7200 1 PMDT}
+ {1540699200 -10800 0 PMST}
+ {1554613200 -7200 1 PMDT}
+ {1572148800 -10800 0 PMST}
+ {1586062800 -7200 1 PMDT}
+ {1603598400 -10800 0 PMST}
+ {1617512400 -7200 1 PMDT}
+ {1635652800 -10800 0 PMST}
+ {1648962000 -7200 1 PMDT}
+ {1667102400 -10800 0 PMST}
+ {1680411600 -7200 1 PMDT}
+ {1698552000 -10800 0 PMST}
+ {1712466000 -7200 1 PMDT}
+ {1730001600 -10800 0 PMST}
+ {1743915600 -7200 1 PMDT}
+ {1761451200 -10800 0 PMST}
+ {1775365200 -7200 1 PMDT}
+ {1792900800 -10800 0 PMST}
+ {1806814800 -7200 1 PMDT}
+ {1824955200 -10800 0 PMST}
+ {1838264400 -7200 1 PMDT}
+ {1856404800 -10800 0 PMST}
+ {1869714000 -7200 1 PMDT}
+ {1887854400 -10800 0 PMST}
+ {1901768400 -7200 1 PMDT}
+ {1919304000 -10800 0 PMST}
+ {1933218000 -7200 1 PMDT}
+ {1950753600 -10800 0 PMST}
+ {1964667600 -7200 1 PMDT}
+ {1982808000 -10800 0 PMST}
+ {1996117200 -7200 1 PMDT}
+ {2014257600 -10800 0 PMST}
+ {2027566800 -7200 1 PMDT}
+ {2045707200 -10800 0 PMST}
+ {2059016400 -7200 1 PMDT}
+ {2077156800 -10800 0 PMST}
+ {2091070800 -7200 1 PMDT}
+ {2108606400 -10800 0 PMST}
+ {2122520400 -7200 1 PMDT}
+ {2140056000 -10800 0 PMST}
+ {2153970000 -7200 1 PMDT}
+ {2172110400 -10800 0 PMST}
+ {2185419600 -7200 1 PMDT}
+ {2203560000 -10800 0 PMST}
+ {2216869200 -7200 1 PMDT}
+ {2235009600 -10800 0 PMST}
+ {2248923600 -7200 1 PMDT}
+ {2266459200 -10800 0 PMST}
+ {2280373200 -7200 1 PMDT}
+ {2297908800 -10800 0 PMST}
+ {2311822800 -7200 1 PMDT}
+ {2329358400 -10800 0 PMST}
+ {2343272400 -7200 1 PMDT}
+ {2361412800 -10800 0 PMST}
+ {2374722000 -7200 1 PMDT}
+ {2392862400 -10800 0 PMST}
+ {2406171600 -7200 1 PMDT}
+ {2424312000 -10800 0 PMST}
+ {2438226000 -7200 1 PMDT}
+ {2455761600 -10800 0 PMST}
+ {2469675600 -7200 1 PMDT}
+ {2487211200 -10800 0 PMST}
+ {2501125200 -7200 1 PMDT}
+ {2519265600 -10800 0 PMST}
+ {2532574800 -7200 1 PMDT}
+ {2550715200 -10800 0 PMST}
+ {2564024400 -7200 1 PMDT}
+ {2582164800 -10800 0 PMST}
+ {2596078800 -7200 1 PMDT}
+ {2613614400 -10800 0 PMST}
+ {2627528400 -7200 1 PMDT}
+ {2645064000 -10800 0 PMST}
+ {2658978000 -7200 1 PMDT}
+ {2676513600 -10800 0 PMST}
+ {2690427600 -7200 1 PMDT}
+ {2708568000 -10800 0 PMST}
+ {2721877200 -7200 1 PMDT}
+ {2740017600 -10800 0 PMST}
+ {2753326800 -7200 1 PMDT}
+ {2771467200 -10800 0 PMST}
+ {2785381200 -7200 1 PMDT}
+ {2802916800 -10800 0 PMST}
+ {2816830800 -7200 1 PMDT}
+ {2834366400 -10800 0 PMST}
+ {2848280400 -7200 1 PMDT}
+ {2866420800 -10800 0 PMST}
+ {2879730000 -7200 1 PMDT}
+ {2897870400 -10800 0 PMST}
+ {2911179600 -7200 1 PMDT}
+ {2929320000 -10800 0 PMST}
+ {2942629200 -7200 1 PMDT}
+ {2960769600 -10800 0 PMST}
+ {2974683600 -7200 1 PMDT}
+ {2992219200 -10800 0 PMST}
+ {3006133200 -7200 1 PMDT}
+ {3023668800 -10800 0 PMST}
+ {3037582800 -7200 1 PMDT}
+ {3055723200 -10800 0 PMST}
+ {3069032400 -7200 1 PMDT}
+ {3087172800 -10800 0 PMST}
+ {3100482000 -7200 1 PMDT}
+ {3118622400 -10800 0 PMST}
+ {3132536400 -7200 1 PMDT}
+ {3150072000 -10800 0 PMST}
+ {3163986000 -7200 1 PMDT}
+ {3181521600 -10800 0 PMST}
+ {3195435600 -7200 1 PMDT}
+ {3212971200 -10800 0 PMST}
+ {3226885200 -7200 1 PMDT}
+ {3245025600 -10800 0 PMST}
+ {3258334800 -7200 1 PMDT}
+ {3276475200 -10800 0 PMST}
+ {3289784400 -7200 1 PMDT}
+ {3307924800 -10800 0 PMST}
+ {3321838800 -7200 1 PMDT}
+ {3339374400 -10800 0 PMST}
+ {3353288400 -7200 1 PMDT}
+ {3370824000 -10800 0 PMST}
+ {3384738000 -7200 1 PMDT}
+ {3402878400 -10800 0 PMST}
+ {3416187600 -7200 1 PMDT}
+ {3434328000 -10800 0 PMST}
+ {3447637200 -7200 1 PMDT}
+ {3465777600 -10800 0 PMST}
+ {3479691600 -7200 1 PMDT}
+ {3497227200 -10800 0 PMST}
+ {3511141200 -7200 1 PMDT}
+ {3528676800 -10800 0 PMST}
+ {3542590800 -7200 1 PMDT}
+ {3560126400 -10800 0 PMST}
+ {3574040400 -7200 1 PMDT}
+ {3592180800 -10800 0 PMST}
+ {3605490000 -7200 1 PMDT}
+ {3623630400 -10800 0 PMST}
+ {3636939600 -7200 1 PMDT}
+ {3655080000 -10800 0 PMST}
+ {3668994000 -7200 1 PMDT}
+ {3686529600 -10800 0 PMST}
+ {3700443600 -7200 1 PMDT}
+ {3717979200 -10800 0 PMST}
+ {3731893200 -7200 1 PMDT}
+ {3750033600 -10800 0 PMST}
+ {3763342800 -7200 1 PMDT}
+ {3781483200 -10800 0 PMST}
+ {3794792400 -7200 1 PMDT}
+ {3812932800 -10800 0 PMST}
+ {3826242000 -7200 1 PMDT}
+ {3844382400 -10800 0 PMST}
+ {3858296400 -7200 1 PMDT}
+ {3875832000 -10800 0 PMST}
+ {3889746000 -7200 1 PMDT}
+ {3907281600 -10800 0 PMST}
+ {3921195600 -7200 1 PMDT}
+ {3939336000 -10800 0 PMST}
+ {3952645200 -7200 1 PMDT}
+ {3970785600 -10800 0 PMST}
+ {3984094800 -7200 1 PMDT}
+ {4002235200 -10800 0 PMST}
+ {4016149200 -7200 1 PMDT}
+ {4033684800 -10800 0 PMST}
+ {4047598800 -7200 1 PMDT}
+ {4065134400 -10800 0 PMST}
+ {4079048400 -7200 1 PMDT}
+ {4096584000 -10800 0 PMST}
+}
diff --git a/library/tzdata/America/Monterrey b/library/tzdata/America/Monterrey
new file mode 100644
index 0000000..ee2983e
--- /dev/null
+++ b/library/tzdata/America/Monterrey
@@ -0,0 +1,218 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Monterrey) {
+ {-9223372036854775808 -24076 0 LMT}
+ {-1514743200 -21600 0 CST}
+ {568015200 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {599637600 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {989136000 -18000 1 CDT}
+ {1001833200 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Montevideo b/library/tzdata/America/Montevideo
new file mode 100644
index 0000000..2aef398
--- /dev/null
+++ b/library/tzdata/America/Montevideo
@@ -0,0 +1,69 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Montevideo) {
+ {-9223372036854775808 -13484 0 LMT}
+ {-2256668116 -13484 0 MMT}
+ {-1567455316 -12600 0 UYT}
+ {-1459542600 -10800 1 UYHST}
+ {-1443819600 -12600 0 UYT}
+ {-1428006600 -10800 1 UYHST}
+ {-1412283600 -12600 0 UYT}
+ {-1396470600 -10800 1 UYHST}
+ {-1380747600 -12600 0 UYT}
+ {-1141590600 -10800 1 UYHST}
+ {-1128299400 -12600 0 UYT}
+ {-1110141000 -10800 1 UYHST}
+ {-1096849800 -12600 0 UYT}
+ {-1078691400 -10800 1 UYHST}
+ {-1065400200 -12600 0 UYT}
+ {-1046637000 -10800 1 UYHST}
+ {-1033938000 -12600 0 UYT}
+ {-1015187400 -10800 1 UYHST}
+ {-1002488400 -12600 0 UYT}
+ {-983737800 -10800 1 UYHST}
+ {-971038800 -12600 0 UYT}
+ {-952288200 -10800 1 UYHST}
+ {-938984400 -12600 0 UYT}
+ {-920838600 -10800 1 UYHST}
+ {-907534800 -12600 0 UYT}
+ {-896819400 -12600 0 UYT}
+ {-853623000 -7200 0 UYST}
+ {-845848800 -10800 0 UYT}
+ {-334789200 -7200 1 UYST}
+ {-319672800 -10800 0 UYT}
+ {-314226000 -7200 1 UYST}
+ {-309996000 -10800 0 UYT}
+ {-149720400 -7200 1 UYST}
+ {-134604000 -10800 0 UYT}
+ {-118270800 -7200 1 UYST}
+ {-100044000 -10800 0 UYT}
+ {-86821200 -7200 1 UYST}
+ {-68508000 -10800 0 UYT}
+ {-50446800 -9000 1 UYHST}
+ {-34119000 -10800 0 UYT}
+ {-18910800 -9000 1 UYHST}
+ {-2583000 -10800 0 UYT}
+ {12625200 -9000 1 UYHST}
+ {28953000 -10800 0 UYT}
+ {72932400 -7200 1 UYST}
+ {82692000 -10800 0 UYT}
+ {132116400 -9000 1 UYHST}
+ {156911400 -7200 1 UYST}
+ {212983200 -10800 0 UYT}
+ {250052400 -7200 1 UYST}
+ {260244000 -10800 0 UYT}
+ {307594800 -7200 1 UYST}
+ {325994400 -10800 0 UYT}
+ {566449200 -7200 1 UYST}
+ {574308000 -10800 0 UYT}
+ {597812400 -7200 1 UYST}
+ {605671200 -10800 0 UYT}
+ {625633200 -7200 1 UYST}
+ {636516000 -10800 0 UYT}
+ {656478000 -7200 1 UYST}
+ {667965600 -10800 0 UYT}
+ {688532400 -7200 1 UYST}
+ {699415200 -10800 0 UYT}
+ {719377200 -7200 1 UYST}
+ {730864800 -10800 0 UYT}
+}
diff --git a/library/tzdata/America/Montreal b/library/tzdata/America/Montreal
new file mode 100644
index 0000000..4ee92a2
--- /dev/null
+++ b/library/tzdata/America/Montreal
@@ -0,0 +1,367 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Montreal) {
+ {-9223372036854775808 -17656 0 LMT}
+ {-2713892744 -18000 0 EST}
+ {-1665334800 -14400 1 EDT}
+ {-1662753600 -18000 0 EST}
+ {-1640977200 -18000 0 EST}
+ {-1632070800 -14400 1 EDT}
+ {-1614794400 -18000 0 EST}
+ {-1609441200 -18000 0 EST}
+ {-1601742600 -14400 1 EDT}
+ {-1583775000 -18000 0 EST}
+ {-1567355400 -14400 1 EDT}
+ {-1554053400 -18000 0 EST}
+ {-1535907600 -14400 1 EDT}
+ {-1522603800 -18000 0 EST}
+ {-1504458000 -14400 1 EDT}
+ {-1491154200 -18000 0 EST}
+ {-1439830800 -14400 1 EDT}
+ {-1428255000 -18000 0 EST}
+ {-1409504400 -14400 1 EDT}
+ {-1396805400 -18000 0 EST}
+ {-1378054800 -14400 1 EDT}
+ {-1365355800 -18000 0 EST}
+ {-1346612400 -14400 1 EDT}
+ {-1333915200 -18000 0 EST}
+ {-1315162800 -14400 1 EDT}
+ {-1301860800 -18000 0 EST}
+ {-1283713200 -14400 1 EDT}
+ {-1270411200 -18000 0 EST}
+ {-1252263600 -14400 1 EDT}
+ {-1238961600 -18000 0 EST}
+ {-1220814000 -14400 1 EDT}
+ {-1207512000 -18000 0 EST}
+ {-1188759600 -14400 1 EDT}
+ {-1176062400 -18000 0 EST}
+ {-1157310000 -14400 1 EDT}
+ {-1144008000 -18000 0 EST}
+ {-1125860400 -14400 1 EDT}
+ {-1112558400 -18000 0 EST}
+ {-1094410800 -14400 1 EDT}
+ {-1081108800 -18000 0 EST}
+ {-1062961200 -14400 1 EDT}
+ {-1049659200 -18000 0 EST}
+ {-1031511600 -14400 1 EDT}
+ {-1018209600 -18000 0 EST}
+ {-1000062000 -14400 1 EDT}
+ {-986760000 -18000 0 EST}
+ {-968007600 -14400 1 EDT}
+ {-955310400 -18000 0 EST}
+ {-936558000 -14400 1 EDT}
+ {-880236000 -14400 0 EST}
+ {-880221600 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-765396000 -18000 0 EST}
+ {-757364400 -18000 0 EST}
+ {-747248400 -14400 1 EDT}
+ {-733946400 -18000 0 EST}
+ {-715798800 -14400 1 EDT}
+ {-702496800 -18000 0 EST}
+ {-684349200 -14400 1 EDT}
+ {-671047200 -18000 0 EST}
+ {-652899600 -14400 1 EDT}
+ {-636573600 -18000 0 EST}
+ {-620845200 -14400 1 EDT}
+ {-605124000 -18000 0 EST}
+ {-589395600 -14400 1 EDT}
+ {-576093600 -18000 0 EST}
+ {-557946000 -14400 1 EDT}
+ {-544644000 -18000 0 EST}
+ {-526496400 -14400 1 EDT}
+ {-513194400 -18000 0 EST}
+ {-495046800 -14400 1 EDT}
+ {-481744800 -18000 0 EST}
+ {-463597200 -14400 1 EDT}
+ {-450295200 -18000 0 EST}
+ {-431542800 -14400 1 EDT}
+ {-418240800 -18000 0 EST}
+ {-400093200 -14400 1 EDT}
+ {-384372000 -18000 0 EST}
+ {-368643600 -14400 1 EDT}
+ {-352922400 -18000 0 EST}
+ {-337194000 -14400 1 EDT}
+ {-321472800 -18000 0 EST}
+ {-305744400 -14400 1 EDT}
+ {-289418400 -18000 0 EST}
+ {-273690000 -14400 1 EDT}
+ {-257968800 -18000 0 EST}
+ {-242240400 -14400 1 EDT}
+ {-226519200 -18000 0 EST}
+ {-210790800 -14400 1 EDT}
+ {-195069600 -18000 0 EST}
+ {-179341200 -14400 1 EDT}
+ {-163620000 -18000 0 EST}
+ {-147891600 -14400 1 EDT}
+ {-131565600 -18000 0 EST}
+ {-116442000 -14400 1 EDT}
+ {-100116000 -18000 0 EST}
+ {-84387600 -14400 1 EDT}
+ {-68666400 -18000 0 EST}
+ {-52938000 -14400 1 EDT}
+ {-37216800 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {126248400 -18000 0 EST}
+ {136364400 -14400 1 EDT}
+ {152085600 -18000 0 EST}
+ {167814000 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Montserrat b/library/tzdata/America/Montserrat
new file mode 100644
index 0000000..7a183b0
--- /dev/null
+++ b/library/tzdata/America/Montserrat
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Montserrat) {
+ {-9223372036854775808 -14932 0 LMT}
+ {-1846266608 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Nassau b/library/tzdata/America/Nassau
new file mode 100644
index 0000000..4a7423d
--- /dev/null
+++ b/library/tzdata/America/Nassau
@@ -0,0 +1,278 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Nassau) {
+ {-9223372036854775808 -18564 0 LMT}
+ {-1825095036 -18000 0 EST}
+ {-179341200 -14400 1 EDT}
+ {-163620000 -18000 0 EST}
+ {-147891600 -14400 1 EDT}
+ {-131565600 -18000 0 EST}
+ {-116442000 -14400 1 EDT}
+ {-100116000 -18000 0 EST}
+ {-84387600 -14400 1 EDT}
+ {-68666400 -18000 0 EST}
+ {-52938000 -14400 1 EDT}
+ {-37216800 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {136364400 -14400 1 EDT}
+ {152085600 -18000 0 EST}
+ {167814000 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/New_York b/library/tzdata/America/New_York
new file mode 100644
index 0000000..72cd976
--- /dev/null
+++ b/library/tzdata/America/New_York
@@ -0,0 +1,369 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/New_York) {
+ {-9223372036854775808 -17762 0 LMT}
+ {-2717651038 -18000 0 EST}
+ {-1633280400 -14400 1 EDT}
+ {-1615140000 -18000 0 EST}
+ {-1601830800 -14400 1 EDT}
+ {-1583690400 -18000 0 EST}
+ {-1577905200 -18000 0 EST}
+ {-1570381200 -14400 1 EDT}
+ {-1551636000 -18000 0 EST}
+ {-1536512400 -14400 1 EDT}
+ {-1523210400 -18000 0 EST}
+ {-1504458000 -14400 1 EDT}
+ {-1491760800 -18000 0 EST}
+ {-1473008400 -14400 1 EDT}
+ {-1459706400 -18000 0 EST}
+ {-1441558800 -14400 1 EDT}
+ {-1428256800 -18000 0 EST}
+ {-1410109200 -14400 1 EDT}
+ {-1396807200 -18000 0 EST}
+ {-1378659600 -14400 1 EDT}
+ {-1365357600 -18000 0 EST}
+ {-1347210000 -14400 1 EDT}
+ {-1333908000 -18000 0 EST}
+ {-1315155600 -14400 1 EDT}
+ {-1301853600 -18000 0 EST}
+ {-1283706000 -14400 1 EDT}
+ {-1270404000 -18000 0 EST}
+ {-1252256400 -14400 1 EDT}
+ {-1238954400 -18000 0 EST}
+ {-1220806800 -14400 1 EDT}
+ {-1207504800 -18000 0 EST}
+ {-1189357200 -14400 1 EDT}
+ {-1176055200 -18000 0 EST}
+ {-1157302800 -14400 1 EDT}
+ {-1144605600 -18000 0 EST}
+ {-1125853200 -14400 1 EDT}
+ {-1112551200 -18000 0 EST}
+ {-1094403600 -14400 1 EDT}
+ {-1081101600 -18000 0 EST}
+ {-1062954000 -14400 1 EDT}
+ {-1049652000 -18000 0 EST}
+ {-1031504400 -14400 1 EDT}
+ {-1018202400 -18000 0 EST}
+ {-1000054800 -14400 1 EDT}
+ {-986752800 -18000 0 EST}
+ {-968000400 -14400 1 EDT}
+ {-955303200 -18000 0 EST}
+ {-936550800 -14400 1 EDT}
+ {-923248800 -18000 0 EST}
+ {-905101200 -14400 1 EDT}
+ {-891799200 -18000 0 EST}
+ {-883594800 -18000 0 EST}
+ {-880218000 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-765396000 -18000 0 EST}
+ {-757364400 -18000 0 EST}
+ {-747248400 -14400 1 EDT}
+ {-733946400 -18000 0 EST}
+ {-715798800 -14400 1 EDT}
+ {-702496800 -18000 0 EST}
+ {-684349200 -14400 1 EDT}
+ {-671047200 -18000 0 EST}
+ {-652899600 -14400 1 EDT}
+ {-639597600 -18000 0 EST}
+ {-620845200 -14400 1 EDT}
+ {-608148000 -18000 0 EST}
+ {-589395600 -14400 1 EDT}
+ {-576093600 -18000 0 EST}
+ {-557946000 -14400 1 EDT}
+ {-544644000 -18000 0 EST}
+ {-526496400 -14400 1 EDT}
+ {-513194400 -18000 0 EST}
+ {-495046800 -14400 1 EDT}
+ {-481744800 -18000 0 EST}
+ {-463597200 -14400 1 EDT}
+ {-447271200 -18000 0 EST}
+ {-431542800 -14400 1 EDT}
+ {-415821600 -18000 0 EST}
+ {-400093200 -14400 1 EDT}
+ {-384372000 -18000 0 EST}
+ {-368643600 -14400 1 EDT}
+ {-352922400 -18000 0 EST}
+ {-337194000 -14400 1 EDT}
+ {-321472800 -18000 0 EST}
+ {-305744400 -14400 1 EDT}
+ {-289418400 -18000 0 EST}
+ {-273690000 -14400 1 EDT}
+ {-257968800 -18000 0 EST}
+ {-242240400 -14400 1 EDT}
+ {-226519200 -18000 0 EST}
+ {-210790800 -14400 1 EDT}
+ {-195069600 -18000 0 EST}
+ {-179341200 -14400 1 EDT}
+ {-163620000 -18000 0 EST}
+ {-147891600 -14400 1 EDT}
+ {-131565600 -18000 0 EST}
+ {-116442000 -14400 1 EDT}
+ {-100116000 -18000 0 EST}
+ {-94676400 -18000 0 EST}
+ {-84387600 -14400 1 EDT}
+ {-68666400 -18000 0 EST}
+ {-52938000 -14400 1 EDT}
+ {-37216800 -18000 0 EST}
+ {-21488400 -14400 1 EDT}
+ {-5767200 -18000 0 EST}
+ {9961200 -14400 1 EDT}
+ {25682400 -18000 0 EST}
+ {41410800 -14400 1 EDT}
+ {57736800 -18000 0 EST}
+ {73465200 -14400 1 EDT}
+ {89186400 -18000 0 EST}
+ {104914800 -14400 1 EDT}
+ {120636000 -18000 0 EST}
+ {126687600 -14400 1 EDT}
+ {152085600 -18000 0 EST}
+ {162370800 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Nipigon b/library/tzdata/America/Nipigon
new file mode 100644
index 0000000..341530a
--- /dev/null
+++ b/library/tzdata/America/Nipigon
@@ -0,0 +1,265 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Nipigon) {
+ {-9223372036854775808 -21184 0 LMT}
+ {-2366734016 -18000 0 EST}
+ {-1632070800 -14400 1 EDT}
+ {-1614794400 -18000 0 EST}
+ {-923252400 -14400 1 EDT}
+ {-880236000 -14400 0 EST}
+ {-880221600 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-765396000 -18000 0 EST}
+ {136364400 -14400 1 EDT}
+ {152085600 -18000 0 EST}
+ {167814000 -14400 1 EDT}
+ {183535200 -18000 0 EST}
+ {199263600 -14400 1 EDT}
+ {215589600 -18000 0 EST}
+ {230713200 -14400 1 EDT}
+ {247039200 -18000 0 EST}
+ {262767600 -14400 1 EDT}
+ {278488800 -18000 0 EST}
+ {294217200 -14400 1 EDT}
+ {309938400 -18000 0 EST}
+ {325666800 -14400 1 EDT}
+ {341388000 -18000 0 EST}
+ {357116400 -14400 1 EDT}
+ {372837600 -18000 0 EST}
+ {388566000 -14400 1 EDT}
+ {404892000 -18000 0 EST}
+ {420015600 -14400 1 EDT}
+ {436341600 -18000 0 EST}
+ {452070000 -14400 1 EDT}
+ {467791200 -18000 0 EST}
+ {483519600 -14400 1 EDT}
+ {499240800 -18000 0 EST}
+ {514969200 -14400 1 EDT}
+ {530690400 -18000 0 EST}
+ {544604400 -14400 1 EDT}
+ {562140000 -18000 0 EST}
+ {576054000 -14400 1 EDT}
+ {594194400 -18000 0 EST}
+ {607503600 -14400 1 EDT}
+ {625644000 -18000 0 EST}
+ {638953200 -14400 1 EDT}
+ {657093600 -18000 0 EST}
+ {671007600 -14400 1 EDT}
+ {688543200 -18000 0 EST}
+ {702457200 -14400 1 EDT}
+ {719992800 -18000 0 EST}
+ {733906800 -14400 1 EDT}
+ {752047200 -18000 0 EST}
+ {765356400 -14400 1 EDT}
+ {783496800 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941349600 -18000 0 EST}
+ {954658800 -14400 1 EDT}
+ {972799200 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Nome b/library/tzdata/America/Nome
new file mode 100644
index 0000000..bfd0632
--- /dev/null
+++ b/library/tzdata/America/Nome
@@ -0,0 +1,276 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Nome) {
+ {-9223372036854775808 46701 0 LMT}
+ {-3225358701 -39698 0 LMT}
+ {-2188947502 -39600 0 NST}
+ {-883573200 -39600 0 NST}
+ {-880196400 -36000 1 NWT}
+ {-769395600 -36000 1 NPT}
+ {-765374400 -39600 0 NST}
+ {-757342800 -39600 0 NST}
+ {-86878800 -39600 0 BST}
+ {-31496400 -39600 0 BST}
+ {-21466800 -36000 1 BDT}
+ {-5745600 -39600 0 BST}
+ {9982800 -36000 1 BDT}
+ {25704000 -39600 0 BST}
+ {41432400 -36000 1 BDT}
+ {57758400 -39600 0 BST}
+ {73486800 -36000 1 BDT}
+ {89208000 -39600 0 BST}
+ {104936400 -36000 1 BDT}
+ {120657600 -39600 0 BST}
+ {126709200 -36000 1 BDT}
+ {152107200 -39600 0 BST}
+ {162392400 -36000 1 BDT}
+ {183556800 -39600 0 BST}
+ {199285200 -36000 1 BDT}
+ {215611200 -39600 0 BST}
+ {230734800 -36000 1 BDT}
+ {247060800 -39600 0 BST}
+ {262789200 -36000 1 BDT}
+ {278510400 -39600 0 BST}
+ {294238800 -36000 1 BDT}
+ {309960000 -39600 0 BST}
+ {325688400 -36000 1 BDT}
+ {341409600 -39600 0 BST}
+ {357138000 -36000 1 BDT}
+ {372859200 -39600 0 BST}
+ {388587600 -36000 1 BDT}
+ {404913600 -39600 0 BST}
+ {420037200 -36000 1 BDT}
+ {439030800 -32400 0 AKST}
+ {452084400 -28800 1 AKDT}
+ {467805600 -32400 0 AKST}
+ {483534000 -28800 1 AKDT}
+ {499255200 -32400 0 AKST}
+ {514983600 -28800 1 AKDT}
+ {530704800 -32400 0 AKST}
+ {544618800 -28800 1 AKDT}
+ {562154400 -32400 0 AKST}
+ {576068400 -28800 1 AKDT}
+ {594208800 -32400 0 AKST}
+ {607518000 -28800 1 AKDT}
+ {625658400 -32400 0 AKST}
+ {638967600 -28800 1 AKDT}
+ {657108000 -32400 0 AKST}
+ {671022000 -28800 1 AKDT}
+ {688557600 -32400 0 AKST}
+ {702471600 -28800 1 AKDT}
+ {720007200 -32400 0 AKST}
+ {733921200 -28800 1 AKDT}
+ {752061600 -32400 0 AKST}
+ {765370800 -28800 1 AKDT}
+ {783511200 -32400 0 AKST}
+ {796820400 -28800 1 AKDT}
+ {814960800 -32400 0 AKST}
+ {828874800 -28800 1 AKDT}
+ {846410400 -32400 0 AKST}
+ {860324400 -28800 1 AKDT}
+ {877860000 -32400 0 AKST}
+ {891774000 -28800 1 AKDT}
+ {909309600 -32400 0 AKST}
+ {923223600 -28800 1 AKDT}
+ {941364000 -32400 0 AKST}
+ {954673200 -28800 1 AKDT}
+ {972813600 -32400 0 AKST}
+ {986122800 -28800 1 AKDT}
+ {1004263200 -32400 0 AKST}
+ {1018177200 -28800 1 AKDT}
+ {1035712800 -32400 0 AKST}
+ {1049626800 -28800 1 AKDT}
+ {1067162400 -32400 0 AKST}
+ {1081076400 -28800 1 AKDT}
+ {1099216800 -32400 0 AKST}
+ {1112526000 -28800 1 AKDT}
+ {1130666400 -32400 0 AKST}
+ {1143975600 -28800 1 AKDT}
+ {1162116000 -32400 0 AKST}
+ {1175425200 -28800 1 AKDT}
+ {1193565600 -32400 0 AKST}
+ {1207479600 -28800 1 AKDT}
+ {1225015200 -32400 0 AKST}
+ {1238929200 -28800 1 AKDT}
+ {1256464800 -32400 0 AKST}
+ {1270378800 -28800 1 AKDT}
+ {1288519200 -32400 0 AKST}
+ {1301828400 -28800 1 AKDT}
+ {1319968800 -32400 0 AKST}
+ {1333278000 -28800 1 AKDT}
+ {1351418400 -32400 0 AKST}
+ {1365332400 -28800 1 AKDT}
+ {1382868000 -32400 0 AKST}
+ {1396782000 -28800 1 AKDT}
+ {1414317600 -32400 0 AKST}
+ {1428231600 -28800 1 AKDT}
+ {1445767200 -32400 0 AKST}
+ {1459681200 -28800 1 AKDT}
+ {1477821600 -32400 0 AKST}
+ {1491130800 -28800 1 AKDT}
+ {1509271200 -32400 0 AKST}
+ {1522580400 -28800 1 AKDT}
+ {1540720800 -32400 0 AKST}
+ {1554634800 -28800 1 AKDT}
+ {1572170400 -32400 0 AKST}
+ {1586084400 -28800 1 AKDT}
+ {1603620000 -32400 0 AKST}
+ {1617534000 -28800 1 AKDT}
+ {1635674400 -32400 0 AKST}
+ {1648983600 -28800 1 AKDT}
+ {1667124000 -32400 0 AKST}
+ {1680433200 -28800 1 AKDT}
+ {1698573600 -32400 0 AKST}
+ {1712487600 -28800 1 AKDT}
+ {1730023200 -32400 0 AKST}
+ {1743937200 -28800 1 AKDT}
+ {1761472800 -32400 0 AKST}
+ {1775386800 -28800 1 AKDT}
+ {1792922400 -32400 0 AKST}
+ {1806836400 -28800 1 AKDT}
+ {1824976800 -32400 0 AKST}
+ {1838286000 -28800 1 AKDT}
+ {1856426400 -32400 0 AKST}
+ {1869735600 -28800 1 AKDT}
+ {1887876000 -32400 0 AKST}
+ {1901790000 -28800 1 AKDT}
+ {1919325600 -32400 0 AKST}
+ {1933239600 -28800 1 AKDT}
+ {1950775200 -32400 0 AKST}
+ {1964689200 -28800 1 AKDT}
+ {1982829600 -32400 0 AKST}
+ {1996138800 -28800 1 AKDT}
+ {2014279200 -32400 0 AKST}
+ {2027588400 -28800 1 AKDT}
+ {2045728800 -32400 0 AKST}
+ {2059038000 -28800 1 AKDT}
+ {2077178400 -32400 0 AKST}
+ {2091092400 -28800 1 AKDT}
+ {2108628000 -32400 0 AKST}
+ {2122542000 -28800 1 AKDT}
+ {2140077600 -32400 0 AKST}
+ {2153991600 -28800 1 AKDT}
+ {2172132000 -32400 0 AKST}
+ {2185441200 -28800 1 AKDT}
+ {2203581600 -32400 0 AKST}
+ {2216890800 -28800 1 AKDT}
+ {2235031200 -32400 0 AKST}
+ {2248945200 -28800 1 AKDT}
+ {2266480800 -32400 0 AKST}
+ {2280394800 -28800 1 AKDT}
+ {2297930400 -32400 0 AKST}
+ {2311844400 -28800 1 AKDT}
+ {2329380000 -32400 0 AKST}
+ {2343294000 -28800 1 AKDT}
+ {2361434400 -32400 0 AKST}
+ {2374743600 -28800 1 AKDT}
+ {2392884000 -32400 0 AKST}
+ {2406193200 -28800 1 AKDT}
+ {2424333600 -32400 0 AKST}
+ {2438247600 -28800 1 AKDT}
+ {2455783200 -32400 0 AKST}
+ {2469697200 -28800 1 AKDT}
+ {2487232800 -32400 0 AKST}
+ {2501146800 -28800 1 AKDT}
+ {2519287200 -32400 0 AKST}
+ {2532596400 -28800 1 AKDT}
+ {2550736800 -32400 0 AKST}
+ {2564046000 -28800 1 AKDT}
+ {2582186400 -32400 0 AKST}
+ {2596100400 -28800 1 AKDT}
+ {2613636000 -32400 0 AKST}
+ {2627550000 -28800 1 AKDT}
+ {2645085600 -32400 0 AKST}
+ {2658999600 -28800 1 AKDT}
+ {2676535200 -32400 0 AKST}
+ {2690449200 -28800 1 AKDT}
+ {2708589600 -32400 0 AKST}
+ {2721898800 -28800 1 AKDT}
+ {2740039200 -32400 0 AKST}
+ {2753348400 -28800 1 AKDT}
+ {2771488800 -32400 0 AKST}
+ {2785402800 -28800 1 AKDT}
+ {2802938400 -32400 0 AKST}
+ {2816852400 -28800 1 AKDT}
+ {2834388000 -32400 0 AKST}
+ {2848302000 -28800 1 AKDT}
+ {2866442400 -32400 0 AKST}
+ {2879751600 -28800 1 AKDT}
+ {2897892000 -32400 0 AKST}
+ {2911201200 -28800 1 AKDT}
+ {2929341600 -32400 0 AKST}
+ {2942650800 -28800 1 AKDT}
+ {2960791200 -32400 0 AKST}
+ {2974705200 -28800 1 AKDT}
+ {2992240800 -32400 0 AKST}
+ {3006154800 -28800 1 AKDT}
+ {3023690400 -32400 0 AKST}
+ {3037604400 -28800 1 AKDT}
+ {3055744800 -32400 0 AKST}
+ {3069054000 -28800 1 AKDT}
+ {3087194400 -32400 0 AKST}
+ {3100503600 -28800 1 AKDT}
+ {3118644000 -32400 0 AKST}
+ {3132558000 -28800 1 AKDT}
+ {3150093600 -32400 0 AKST}
+ {3164007600 -28800 1 AKDT}
+ {3181543200 -32400 0 AKST}
+ {3195457200 -28800 1 AKDT}
+ {3212992800 -32400 0 AKST}
+ {3226906800 -28800 1 AKDT}
+ {3245047200 -32400 0 AKST}
+ {3258356400 -28800 1 AKDT}
+ {3276496800 -32400 0 AKST}
+ {3289806000 -28800 1 AKDT}
+ {3307946400 -32400 0 AKST}
+ {3321860400 -28800 1 AKDT}
+ {3339396000 -32400 0 AKST}
+ {3353310000 -28800 1 AKDT}
+ {3370845600 -32400 0 AKST}
+ {3384759600 -28800 1 AKDT}
+ {3402900000 -32400 0 AKST}
+ {3416209200 -28800 1 AKDT}
+ {3434349600 -32400 0 AKST}
+ {3447658800 -28800 1 AKDT}
+ {3465799200 -32400 0 AKST}
+ {3479713200 -28800 1 AKDT}
+ {3497248800 -32400 0 AKST}
+ {3511162800 -28800 1 AKDT}
+ {3528698400 -32400 0 AKST}
+ {3542612400 -28800 1 AKDT}
+ {3560148000 -32400 0 AKST}
+ {3574062000 -28800 1 AKDT}
+ {3592202400 -32400 0 AKST}
+ {3605511600 -28800 1 AKDT}
+ {3623652000 -32400 0 AKST}
+ {3636961200 -28800 1 AKDT}
+ {3655101600 -32400 0 AKST}
+ {3669015600 -28800 1 AKDT}
+ {3686551200 -32400 0 AKST}
+ {3700465200 -28800 1 AKDT}
+ {3718000800 -32400 0 AKST}
+ {3731914800 -28800 1 AKDT}
+ {3750055200 -32400 0 AKST}
+ {3763364400 -28800 1 AKDT}
+ {3781504800 -32400 0 AKST}
+ {3794814000 -28800 1 AKDT}
+ {3812954400 -32400 0 AKST}
+ {3826263600 -28800 1 AKDT}
+ {3844404000 -32400 0 AKST}
+ {3858318000 -28800 1 AKDT}
+ {3875853600 -32400 0 AKST}
+ {3889767600 -28800 1 AKDT}
+ {3907303200 -32400 0 AKST}
+ {3921217200 -28800 1 AKDT}
+ {3939357600 -32400 0 AKST}
+ {3952666800 -28800 1 AKDT}
+ {3970807200 -32400 0 AKST}
+ {3984116400 -28800 1 AKDT}
+ {4002256800 -32400 0 AKST}
+ {4016170800 -28800 1 AKDT}
+ {4033706400 -32400 0 AKST}
+ {4047620400 -28800 1 AKDT}
+ {4065156000 -32400 0 AKST}
+ {4079070000 -28800 1 AKDT}
+ {4096605600 -32400 0 AKST}
+}
diff --git a/library/tzdata/America/Noronha b/library/tzdata/America/Noronha
new file mode 100644
index 0000000..64809cf
--- /dev/null
+++ b/library/tzdata/America/Noronha
@@ -0,0 +1,48 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Noronha) {
+ {-9223372036854775808 -7780 0 LMT}
+ {-1767217820 -7200 0 FNT}
+ {-1206961200 -3600 1 FNST}
+ {-1191366000 -7200 0 FNT}
+ {-1175378400 -3600 1 FNST}
+ {-1159830000 -7200 0 FNT}
+ {-633823200 -3600 1 FNST}
+ {-622072800 -7200 0 FNT}
+ {-602287200 -3600 1 FNST}
+ {-591836400 -7200 0 FNT}
+ {-570751200 -3600 1 FNST}
+ {-560214000 -7200 0 FNT}
+ {-539128800 -3600 1 FNST}
+ {-531356400 -7200 0 FNT}
+ {-191368800 -3600 1 FNST}
+ {-184201200 -7200 0 FNT}
+ {-155167200 -3600 1 FNST}
+ {-150073200 -7200 0 FNT}
+ {-128901600 -3600 1 FNST}
+ {-121129200 -7200 0 FNT}
+ {-99957600 -3600 1 FNST}
+ {-89593200 -7200 0 FNT}
+ {-68421600 -3600 1 FNST}
+ {-57970800 -7200 0 FNT}
+ {499744800 -3600 1 FNST}
+ {511232400 -7200 0 FNT}
+ {530589600 -3600 1 FNST}
+ {540262800 -7200 0 FNT}
+ {562125600 -3600 1 FNST}
+ {571194000 -7200 0 FNT}
+ {592970400 -3600 1 FNST}
+ {602038800 -7200 0 FNT}
+ {624420000 -3600 1 FNST}
+ {634698000 -7200 0 FNT}
+ {653533200 -7200 0 FNT}
+ {938656800 -7200 0 FNT}
+ {938916000 -3600 1 FNST}
+ {951613200 -7200 0 FNT}
+ {970970400 -3600 1 FNST}
+ {971571600 -7200 0 FNT}
+ {1000346400 -7200 0 FNT}
+ {1003024800 -3600 1 FNST}
+ {1013907600 -7200 0 FNT}
+ {1033434000 -7200 0 FNT}
+}
diff --git a/library/tzdata/America/North_Dakota/Center b/library/tzdata/America/North_Dakota/Center
new file mode 100644
index 0000000..9ab4470
--- /dev/null
+++ b/library/tzdata/America/North_Dakota/Center
@@ -0,0 +1,279 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/North_Dakota/Center) {
+ {-9223372036854775808 -24312 0 LMT}
+ {-2717644488 -25200 0 MST}
+ {-1633273200 -21600 1 MDT}
+ {-1615132800 -25200 0 MST}
+ {-1601823600 -21600 1 MDT}
+ {-1583683200 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-769395600 -21600 1 MPT}
+ {-765388800 -25200 0 MST}
+ {-84380400 -21600 1 MDT}
+ {-68659200 -25200 0 MST}
+ {-52930800 -21600 1 MDT}
+ {-37209600 -25200 0 MST}
+ {-21481200 -21600 1 MDT}
+ {-5760000 -25200 0 MST}
+ {9968400 -21600 1 MDT}
+ {25689600 -25200 0 MST}
+ {41418000 -21600 1 MDT}
+ {57744000 -25200 0 MST}
+ {73472400 -21600 1 MDT}
+ {89193600 -25200 0 MST}
+ {104922000 -21600 1 MDT}
+ {120643200 -25200 0 MST}
+ {126694800 -21600 1 MDT}
+ {152092800 -25200 0 MST}
+ {162378000 -21600 1 MDT}
+ {183542400 -25200 0 MST}
+ {199270800 -21600 1 MDT}
+ {215596800 -25200 0 MST}
+ {230720400 -21600 1 MDT}
+ {247046400 -25200 0 MST}
+ {262774800 -21600 1 MDT}
+ {278496000 -25200 0 MST}
+ {294224400 -21600 1 MDT}
+ {309945600 -25200 0 MST}
+ {325674000 -21600 1 MDT}
+ {341395200 -25200 0 MST}
+ {357123600 -21600 1 MDT}
+ {372844800 -25200 0 MST}
+ {388573200 -21600 1 MDT}
+ {404899200 -25200 0 MST}
+ {420022800 -21600 1 MDT}
+ {436348800 -25200 0 MST}
+ {452077200 -21600 1 MDT}
+ {467798400 -25200 0 MST}
+ {483526800 -21600 1 MDT}
+ {499248000 -25200 0 MST}
+ {514976400 -21600 1 MDT}
+ {530697600 -25200 0 MST}
+ {544611600 -21600 1 MDT}
+ {562147200 -25200 0 MST}
+ {576061200 -21600 1 MDT}
+ {594201600 -25200 0 MST}
+ {607510800 -21600 1 MDT}
+ {625651200 -25200 0 MST}
+ {638960400 -21600 1 MDT}
+ {657100800 -25200 0 MST}
+ {671014800 -21600 1 MDT}
+ {688550400 -25200 0 MST}
+ {702464400 -21600 1 MDT}
+ {720003600 -21600 0 CST}
+ {733910400 -18000 1 CDT}
+ {752050800 -21600 0 CST}
+ {765360000 -18000 1 CDT}
+ {783500400 -21600 0 CST}
+ {796809600 -18000 1 CDT}
+ {814950000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972802800 -21600 0 CST}
+ {986112000 -18000 1 CDT}
+ {1004252400 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162105200 -21600 0 CST}
+ {1175414400 -18000 1 CDT}
+ {1193554800 -21600 0 CST}
+ {1207468800 -18000 1 CDT}
+ {1225004400 -21600 0 CST}
+ {1238918400 -18000 1 CDT}
+ {1256454000 -21600 0 CST}
+ {1270368000 -18000 1 CDT}
+ {1288508400 -21600 0 CST}
+ {1301817600 -18000 1 CDT}
+ {1319958000 -21600 0 CST}
+ {1333267200 -18000 1 CDT}
+ {1351407600 -21600 0 CST}
+ {1365321600 -18000 1 CDT}
+ {1382857200 -21600 0 CST}
+ {1396771200 -18000 1 CDT}
+ {1414306800 -21600 0 CST}
+ {1428220800 -18000 1 CDT}
+ {1445756400 -21600 0 CST}
+ {1459670400 -18000 1 CDT}
+ {1477810800 -21600 0 CST}
+ {1491120000 -18000 1 CDT}
+ {1509260400 -21600 0 CST}
+ {1522569600 -18000 1 CDT}
+ {1540710000 -21600 0 CST}
+ {1554624000 -18000 1 CDT}
+ {1572159600 -21600 0 CST}
+ {1586073600 -18000 1 CDT}
+ {1603609200 -21600 0 CST}
+ {1617523200 -18000 1 CDT}
+ {1635663600 -21600 0 CST}
+ {1648972800 -18000 1 CDT}
+ {1667113200 -21600 0 CST}
+ {1680422400 -18000 1 CDT}
+ {1698562800 -21600 0 CST}
+ {1712476800 -18000 1 CDT}
+ {1730012400 -21600 0 CST}
+ {1743926400 -18000 1 CDT}
+ {1761462000 -21600 0 CST}
+ {1775376000 -18000 1 CDT}
+ {1792911600 -21600 0 CST}
+ {1806825600 -18000 1 CDT}
+ {1824966000 -21600 0 CST}
+ {1838275200 -18000 1 CDT}
+ {1856415600 -21600 0 CST}
+ {1869724800 -18000 1 CDT}
+ {1887865200 -21600 0 CST}
+ {1901779200 -18000 1 CDT}
+ {1919314800 -21600 0 CST}
+ {1933228800 -18000 1 CDT}
+ {1950764400 -21600 0 CST}
+ {1964678400 -18000 1 CDT}
+ {1982818800 -21600 0 CST}
+ {1996128000 -18000 1 CDT}
+ {2014268400 -21600 0 CST}
+ {2027577600 -18000 1 CDT}
+ {2045718000 -21600 0 CST}
+ {2059027200 -18000 1 CDT}
+ {2077167600 -21600 0 CST}
+ {2091081600 -18000 1 CDT}
+ {2108617200 -21600 0 CST}
+ {2122531200 -18000 1 CDT}
+ {2140066800 -21600 0 CST}
+ {2153980800 -18000 1 CDT}
+ {2172121200 -21600 0 CST}
+ {2185430400 -18000 1 CDT}
+ {2203570800 -21600 0 CST}
+ {2216880000 -18000 1 CDT}
+ {2235020400 -21600 0 CST}
+ {2248934400 -18000 1 CDT}
+ {2266470000 -21600 0 CST}
+ {2280384000 -18000 1 CDT}
+ {2297919600 -21600 0 CST}
+ {2311833600 -18000 1 CDT}
+ {2329369200 -21600 0 CST}
+ {2343283200 -18000 1 CDT}
+ {2361423600 -21600 0 CST}
+ {2374732800 -18000 1 CDT}
+ {2392873200 -21600 0 CST}
+ {2406182400 -18000 1 CDT}
+ {2424322800 -21600 0 CST}
+ {2438236800 -18000 1 CDT}
+ {2455772400 -21600 0 CST}
+ {2469686400 -18000 1 CDT}
+ {2487222000 -21600 0 CST}
+ {2501136000 -18000 1 CDT}
+ {2519276400 -21600 0 CST}
+ {2532585600 -18000 1 CDT}
+ {2550726000 -21600 0 CST}
+ {2564035200 -18000 1 CDT}
+ {2582175600 -21600 0 CST}
+ {2596089600 -18000 1 CDT}
+ {2613625200 -21600 0 CST}
+ {2627539200 -18000 1 CDT}
+ {2645074800 -21600 0 CST}
+ {2658988800 -18000 1 CDT}
+ {2676524400 -21600 0 CST}
+ {2690438400 -18000 1 CDT}
+ {2708578800 -21600 0 CST}
+ {2721888000 -18000 1 CDT}
+ {2740028400 -21600 0 CST}
+ {2753337600 -18000 1 CDT}
+ {2771478000 -21600 0 CST}
+ {2785392000 -18000 1 CDT}
+ {2802927600 -21600 0 CST}
+ {2816841600 -18000 1 CDT}
+ {2834377200 -21600 0 CST}
+ {2848291200 -18000 1 CDT}
+ {2866431600 -21600 0 CST}
+ {2879740800 -18000 1 CDT}
+ {2897881200 -21600 0 CST}
+ {2911190400 -18000 1 CDT}
+ {2929330800 -21600 0 CST}
+ {2942640000 -18000 1 CDT}
+ {2960780400 -21600 0 CST}
+ {2974694400 -18000 1 CDT}
+ {2992230000 -21600 0 CST}
+ {3006144000 -18000 1 CDT}
+ {3023679600 -21600 0 CST}
+ {3037593600 -18000 1 CDT}
+ {3055734000 -21600 0 CST}
+ {3069043200 -18000 1 CDT}
+ {3087183600 -21600 0 CST}
+ {3100492800 -18000 1 CDT}
+ {3118633200 -21600 0 CST}
+ {3132547200 -18000 1 CDT}
+ {3150082800 -21600 0 CST}
+ {3163996800 -18000 1 CDT}
+ {3181532400 -21600 0 CST}
+ {3195446400 -18000 1 CDT}
+ {3212982000 -21600 0 CST}
+ {3226896000 -18000 1 CDT}
+ {3245036400 -21600 0 CST}
+ {3258345600 -18000 1 CDT}
+ {3276486000 -21600 0 CST}
+ {3289795200 -18000 1 CDT}
+ {3307935600 -21600 0 CST}
+ {3321849600 -18000 1 CDT}
+ {3339385200 -21600 0 CST}
+ {3353299200 -18000 1 CDT}
+ {3370834800 -21600 0 CST}
+ {3384748800 -18000 1 CDT}
+ {3402889200 -21600 0 CST}
+ {3416198400 -18000 1 CDT}
+ {3434338800 -21600 0 CST}
+ {3447648000 -18000 1 CDT}
+ {3465788400 -21600 0 CST}
+ {3479702400 -18000 1 CDT}
+ {3497238000 -21600 0 CST}
+ {3511152000 -18000 1 CDT}
+ {3528687600 -21600 0 CST}
+ {3542601600 -18000 1 CDT}
+ {3560137200 -21600 0 CST}
+ {3574051200 -18000 1 CDT}
+ {3592191600 -21600 0 CST}
+ {3605500800 -18000 1 CDT}
+ {3623641200 -21600 0 CST}
+ {3636950400 -18000 1 CDT}
+ {3655090800 -21600 0 CST}
+ {3669004800 -18000 1 CDT}
+ {3686540400 -21600 0 CST}
+ {3700454400 -18000 1 CDT}
+ {3717990000 -21600 0 CST}
+ {3731904000 -18000 1 CDT}
+ {3750044400 -21600 0 CST}
+ {3763353600 -18000 1 CDT}
+ {3781494000 -21600 0 CST}
+ {3794803200 -18000 1 CDT}
+ {3812943600 -21600 0 CST}
+ {3826252800 -18000 1 CDT}
+ {3844393200 -21600 0 CST}
+ {3858307200 -18000 1 CDT}
+ {3875842800 -21600 0 CST}
+ {3889756800 -18000 1 CDT}
+ {3907292400 -21600 0 CST}
+ {3921206400 -18000 1 CDT}
+ {3939346800 -21600 0 CST}
+ {3952656000 -18000 1 CDT}
+ {3970796400 -21600 0 CST}
+ {3984105600 -18000 1 CDT}
+ {4002246000 -21600 0 CST}
+ {4016160000 -18000 1 CDT}
+ {4033695600 -21600 0 CST}
+ {4047609600 -18000 1 CDT}
+ {4065145200 -21600 0 CST}
+ {4079059200 -18000 1 CDT}
+ {4096594800 -21600 0 CST}
+}
diff --git a/library/tzdata/America/Panama b/library/tzdata/America/Panama
new file mode 100644
index 0000000..a5f4a4a
--- /dev/null
+++ b/library/tzdata/America/Panama
@@ -0,0 +1,7 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Panama) {
+ {-9223372036854775808 -19088 0 LMT}
+ {-2524502512 -19176 0 CMT}
+ {-1946918424 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Pangnirtung b/library/tzdata/America/Pangnirtung
new file mode 100644
index 0000000..d153067
--- /dev/null
+++ b/library/tzdata/America/Pangnirtung
@@ -0,0 +1,256 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Pangnirtung) {
+ {-9223372036854775808 -15776 0 LMT}
+ {-2713894624 -14400 0 AST}
+ {-1632074400 -10800 1 ADT}
+ {-1615143600 -14400 0 AST}
+ {-1596996000 -10800 1 ADT}
+ {-1583182800 -14400 0 AST}
+ {-880221600 -10800 1 AWT}
+ {-769395600 -10800 1 APT}
+ {-765399600 -14400 0 AST}
+ {-147902400 -7200 1 ADDT}
+ {-131572800 -14400 0 AST}
+ {325663200 -10800 1 ADT}
+ {341384400 -14400 0 AST}
+ {357112800 -10800 1 ADT}
+ {372834000 -14400 0 AST}
+ {388562400 -10800 1 ADT}
+ {404888400 -14400 0 AST}
+ {420012000 -10800 1 ADT}
+ {436338000 -14400 0 AST}
+ {452066400 -10800 1 ADT}
+ {467787600 -14400 0 AST}
+ {483516000 -10800 1 ADT}
+ {499237200 -14400 0 AST}
+ {514965600 -10800 1 ADT}
+ {530686800 -14400 0 AST}
+ {544600800 -10800 1 ADT}
+ {562136400 -14400 0 AST}
+ {576050400 -10800 1 ADT}
+ {594190800 -14400 0 AST}
+ {607500000 -10800 1 ADT}
+ {625640400 -14400 0 AST}
+ {638949600 -10800 1 ADT}
+ {657090000 -14400 0 AST}
+ {671004000 -10800 1 ADT}
+ {688539600 -14400 0 AST}
+ {702453600 -10800 1 ADT}
+ {719989200 -14400 0 AST}
+ {733903200 -10800 1 ADT}
+ {752043600 -14400 0 AST}
+ {765352800 -10800 1 ADT}
+ {783493200 -14400 0 AST}
+ {796802400 -18000 0 EST}
+ {796806000 -14400 1 EDT}
+ {814946400 -18000 0 EST}
+ {828860400 -14400 1 EDT}
+ {846396000 -18000 0 EST}
+ {860310000 -14400 1 EDT}
+ {877845600 -18000 0 EST}
+ {891759600 -14400 1 EDT}
+ {909295200 -18000 0 EST}
+ {923209200 -14400 1 EDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972806400 -18000 0 EST}
+ {986108400 -14400 1 EDT}
+ {1004248800 -18000 0 EST}
+ {1018162800 -14400 1 EDT}
+ {1035698400 -18000 0 EST}
+ {1049612400 -14400 1 EDT}
+ {1067148000 -18000 0 EST}
+ {1081062000 -14400 1 EDT}
+ {1099202400 -18000 0 EST}
+ {1112511600 -14400 1 EDT}
+ {1130652000 -18000 0 EST}
+ {1143961200 -14400 1 EDT}
+ {1162101600 -18000 0 EST}
+ {1175410800 -14400 1 EDT}
+ {1193551200 -18000 0 EST}
+ {1207465200 -14400 1 EDT}
+ {1225000800 -18000 0 EST}
+ {1238914800 -14400 1 EDT}
+ {1256450400 -18000 0 EST}
+ {1270364400 -14400 1 EDT}
+ {1288504800 -18000 0 EST}
+ {1301814000 -14400 1 EDT}
+ {1319954400 -18000 0 EST}
+ {1333263600 -14400 1 EDT}
+ {1351404000 -18000 0 EST}
+ {1365318000 -14400 1 EDT}
+ {1382853600 -18000 0 EST}
+ {1396767600 -14400 1 EDT}
+ {1414303200 -18000 0 EST}
+ {1428217200 -14400 1 EDT}
+ {1445752800 -18000 0 EST}
+ {1459666800 -14400 1 EDT}
+ {1477807200 -18000 0 EST}
+ {1491116400 -14400 1 EDT}
+ {1509256800 -18000 0 EST}
+ {1522566000 -14400 1 EDT}
+ {1540706400 -18000 0 EST}
+ {1554620400 -14400 1 EDT}
+ {1572156000 -18000 0 EST}
+ {1586070000 -14400 1 EDT}
+ {1603605600 -18000 0 EST}
+ {1617519600 -14400 1 EDT}
+ {1635660000 -18000 0 EST}
+ {1648969200 -14400 1 EDT}
+ {1667109600 -18000 0 EST}
+ {1680418800 -14400 1 EDT}
+ {1698559200 -18000 0 EST}
+ {1712473200 -14400 1 EDT}
+ {1730008800 -18000 0 EST}
+ {1743922800 -14400 1 EDT}
+ {1761458400 -18000 0 EST}
+ {1775372400 -14400 1 EDT}
+ {1792908000 -18000 0 EST}
+ {1806822000 -14400 1 EDT}
+ {1824962400 -18000 0 EST}
+ {1838271600 -14400 1 EDT}
+ {1856412000 -18000 0 EST}
+ {1869721200 -14400 1 EDT}
+ {1887861600 -18000 0 EST}
+ {1901775600 -14400 1 EDT}
+ {1919311200 -18000 0 EST}
+ {1933225200 -14400 1 EDT}
+ {1950760800 -18000 0 EST}
+ {1964674800 -14400 1 EDT}
+ {1982815200 -18000 0 EST}
+ {1996124400 -14400 1 EDT}
+ {2014264800 -18000 0 EST}
+ {2027574000 -14400 1 EDT}
+ {2045714400 -18000 0 EST}
+ {2059023600 -14400 1 EDT}
+ {2077164000 -18000 0 EST}
+ {2091078000 -14400 1 EDT}
+ {2108613600 -18000 0 EST}
+ {2122527600 -14400 1 EDT}
+ {2140063200 -18000 0 EST}
+ {2153977200 -14400 1 EDT}
+ {2172117600 -18000 0 EST}
+ {2185426800 -14400 1 EDT}
+ {2203567200 -18000 0 EST}
+ {2216876400 -14400 1 EDT}
+ {2235016800 -18000 0 EST}
+ {2248930800 -14400 1 EDT}
+ {2266466400 -18000 0 EST}
+ {2280380400 -14400 1 EDT}
+ {2297916000 -18000 0 EST}
+ {2311830000 -14400 1 EDT}
+ {2329365600 -18000 0 EST}
+ {2343279600 -14400 1 EDT}
+ {2361420000 -18000 0 EST}
+ {2374729200 -14400 1 EDT}
+ {2392869600 -18000 0 EST}
+ {2406178800 -14400 1 EDT}
+ {2424319200 -18000 0 EST}
+ {2438233200 -14400 1 EDT}
+ {2455768800 -18000 0 EST}
+ {2469682800 -14400 1 EDT}
+ {2487218400 -18000 0 EST}
+ {2501132400 -14400 1 EDT}
+ {2519272800 -18000 0 EST}
+ {2532582000 -14400 1 EDT}
+ {2550722400 -18000 0 EST}
+ {2564031600 -14400 1 EDT}
+ {2582172000 -18000 0 EST}
+ {2596086000 -14400 1 EDT}
+ {2613621600 -18000 0 EST}
+ {2627535600 -14400 1 EDT}
+ {2645071200 -18000 0 EST}
+ {2658985200 -14400 1 EDT}
+ {2676520800 -18000 0 EST}
+ {2690434800 -14400 1 EDT}
+ {2708575200 -18000 0 EST}
+ {2721884400 -14400 1 EDT}
+ {2740024800 -18000 0 EST}
+ {2753334000 -14400 1 EDT}
+ {2771474400 -18000 0 EST}
+ {2785388400 -14400 1 EDT}
+ {2802924000 -18000 0 EST}
+ {2816838000 -14400 1 EDT}
+ {2834373600 -18000 0 EST}
+ {2848287600 -14400 1 EDT}
+ {2866428000 -18000 0 EST}
+ {2879737200 -14400 1 EDT}
+ {2897877600 -18000 0 EST}
+ {2911186800 -14400 1 EDT}
+ {2929327200 -18000 0 EST}
+ {2942636400 -14400 1 EDT}
+ {2960776800 -18000 0 EST}
+ {2974690800 -14400 1 EDT}
+ {2992226400 -18000 0 EST}
+ {3006140400 -14400 1 EDT}
+ {3023676000 -18000 0 EST}
+ {3037590000 -14400 1 EDT}
+ {3055730400 -18000 0 EST}
+ {3069039600 -14400 1 EDT}
+ {3087180000 -18000 0 EST}
+ {3100489200 -14400 1 EDT}
+ {3118629600 -18000 0 EST}
+ {3132543600 -14400 1 EDT}
+ {3150079200 -18000 0 EST}
+ {3163993200 -14400 1 EDT}
+ {3181528800 -18000 0 EST}
+ {3195442800 -14400 1 EDT}
+ {3212978400 -18000 0 EST}
+ {3226892400 -14400 1 EDT}
+ {3245032800 -18000 0 EST}
+ {3258342000 -14400 1 EDT}
+ {3276482400 -18000 0 EST}
+ {3289791600 -14400 1 EDT}
+ {3307932000 -18000 0 EST}
+ {3321846000 -14400 1 EDT}
+ {3339381600 -18000 0 EST}
+ {3353295600 -14400 1 EDT}
+ {3370831200 -18000 0 EST}
+ {3384745200 -14400 1 EDT}
+ {3402885600 -18000 0 EST}
+ {3416194800 -14400 1 EDT}
+ {3434335200 -18000 0 EST}
+ {3447644400 -14400 1 EDT}
+ {3465784800 -18000 0 EST}
+ {3479698800 -14400 1 EDT}
+ {3497234400 -18000 0 EST}
+ {3511148400 -14400 1 EDT}
+ {3528684000 -18000 0 EST}
+ {3542598000 -14400 1 EDT}
+ {3560133600 -18000 0 EST}
+ {3574047600 -14400 1 EDT}
+ {3592188000 -18000 0 EST}
+ {3605497200 -14400 1 EDT}
+ {3623637600 -18000 0 EST}
+ {3636946800 -14400 1 EDT}
+ {3655087200 -18000 0 EST}
+ {3669001200 -14400 1 EDT}
+ {3686536800 -18000 0 EST}
+ {3700450800 -14400 1 EDT}
+ {3717986400 -18000 0 EST}
+ {3731900400 -14400 1 EDT}
+ {3750040800 -18000 0 EST}
+ {3763350000 -14400 1 EDT}
+ {3781490400 -18000 0 EST}
+ {3794799600 -14400 1 EDT}
+ {3812940000 -18000 0 EST}
+ {3826249200 -14400 1 EDT}
+ {3844389600 -18000 0 EST}
+ {3858303600 -14400 1 EDT}
+ {3875839200 -18000 0 EST}
+ {3889753200 -14400 1 EDT}
+ {3907288800 -18000 0 EST}
+ {3921202800 -14400 1 EDT}
+ {3939343200 -18000 0 EST}
+ {3952652400 -14400 1 EDT}
+ {3970792800 -18000 0 EST}
+ {3984102000 -14400 1 EDT}
+ {4002242400 -18000 0 EST}
+ {4016156400 -14400 1 EDT}
+ {4033692000 -18000 0 EST}
+ {4047606000 -14400 1 EDT}
+ {4065141600 -18000 0 EST}
+ {4079055600 -14400 1 EDT}
+ {4096591200 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Paramaribo b/library/tzdata/America/Paramaribo
new file mode 100644
index 0000000..db316d6
--- /dev/null
+++ b/library/tzdata/America/Paramaribo
@@ -0,0 +1,10 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Paramaribo) {
+ {-9223372036854775808 -13240 0 LMT}
+ {-1861906760 -13252 0 PMT}
+ {-1104524348 -13236 0 PMT}
+ {-765317964 -12600 0 NEGT}
+ {185686200 -12600 0 SRT}
+ {465449400 -10800 0 SRT}
+}
diff --git a/library/tzdata/America/Phoenix b/library/tzdata/America/Phoenix
new file mode 100644
index 0000000..c5f933b
--- /dev/null
+++ b/library/tzdata/America/Phoenix
@@ -0,0 +1,17 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Phoenix) {
+ {-9223372036854775808 -26898 0 LMT}
+ {-2717641902 -25200 0 MST}
+ {-1633273200 -21600 1 MDT}
+ {-1615132800 -25200 0 MST}
+ {-1601823600 -21600 1 MDT}
+ {-1583683200 -25200 0 MST}
+ {-880210800 -21600 1 MWT}
+ {-820519140 -25200 0 MST}
+ {-796841940 -25200 0 MST}
+ {-94669200 -25200 0 MST}
+ {-84380400 -21600 1 MDT}
+ {-68659200 -25200 0 MST}
+ {-56221200 -25200 0 MST}
+}
diff --git a/library/tzdata/America/Port-au-Prince b/library/tzdata/America/Port-au-Prince
new file mode 100644
index 0000000..9f43cbb
--- /dev/null
+++ b/library/tzdata/America/Port-au-Prince
@@ -0,0 +1,37 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Port-au-Prince) {
+ {-9223372036854775808 -17360 0 LMT}
+ {-2524504240 -17340 0 PPMT}
+ {-1670483460 -18000 0 EST}
+ {421218000 -14400 1 EDT}
+ {436334400 -18000 0 EST}
+ {452062800 -14400 1 EDT}
+ {467784000 -18000 0 EST}
+ {483512400 -14400 1 EDT}
+ {499233600 -18000 0 EST}
+ {514962000 -14400 1 EDT}
+ {530683200 -18000 0 EST}
+ {546411600 -14400 1 EDT}
+ {562132800 -18000 0 EST}
+ {576032400 -14400 1 EDT}
+ {594176400 -18000 0 EST}
+ {607482000 -14400 1 EDT}
+ {625626000 -18000 0 EST}
+ {638931600 -14400 1 EDT}
+ {657075600 -18000 0 EST}
+ {670986000 -14400 1 EDT}
+ {688525200 -18000 0 EST}
+ {702435600 -14400 1 EDT}
+ {719974800 -18000 0 EST}
+ {733885200 -14400 1 EDT}
+ {752029200 -18000 0 EST}
+ {765334800 -14400 1 EDT}
+ {783478800 -18000 0 EST}
+ {796784400 -14400 1 EDT}
+ {814928400 -18000 0 EST}
+ {828838800 -14400 1 EDT}
+ {846378000 -18000 0 EST}
+ {860288400 -14400 1 EDT}
+ {877827600 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Port_of_Spain b/library/tzdata/America/Port_of_Spain
new file mode 100644
index 0000000..1676561
--- /dev/null
+++ b/library/tzdata/America/Port_of_Spain
@@ -0,0 +1,6 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Port_of_Spain) {
+ {-9223372036854775808 -14764 0 LMT}
+ {-1825098836 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Porto_Acre b/library/tzdata/America/Porto_Acre
new file mode 100644
index 0000000..ee22bfc
--- /dev/null
+++ b/library/tzdata/America/Porto_Acre
@@ -0,0 +1,5 @@
+# created by ../tools/tclZIC.tcl - do not edit
+if {![info exists TZData(America/Rio_Branco)]} {
+ loadTimeZoneFile America/Rio_Branco
+}
+set tzdata(:America/Porto_Acre) $TZData(:America/Rio_Branco)
diff --git a/library/tzdata/America/Porto_Velho b/library/tzdata/America/Porto_Velho
new file mode 100644
index 0000000..dbaa0f4
--- /dev/null
+++ b/library/tzdata/America/Porto_Velho
@@ -0,0 +1,35 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Porto_Velho) {
+ {-9223372036854775808 -15336 0 LMT}
+ {-1767210264 -14400 0 AMT}
+ {-1206954000 -10800 1 AMST}
+ {-1191358800 -14400 0 AMT}
+ {-1175371200 -10800 1 AMST}
+ {-1159822800 -14400 0 AMT}
+ {-633816000 -10800 1 AMST}
+ {-622065600 -14400 0 AMT}
+ {-602280000 -10800 1 AMST}
+ {-591829200 -14400 0 AMT}
+ {-570744000 -10800 1 AMST}
+ {-560206800 -14400 0 AMT}
+ {-539121600 -10800 1 AMST}
+ {-531349200 -14400 0 AMT}
+ {-191361600 -10800 1 AMST}
+ {-184194000 -14400 0 AMT}
+ {-155160000 -10800 1 AMST}
+ {-150066000 -14400 0 AMT}
+ {-128894400 -10800 1 AMST}
+ {-121122000 -14400 0 AMT}
+ {-99950400 -10800 1 AMST}
+ {-89586000 -14400 0 AMT}
+ {-68414400 -10800 1 AMST}
+ {-57963600 -14400 0 AMT}
+ {499752000 -10800 1 AMST}
+ {511239600 -14400 0 AMT}
+ {530596800 -10800 1 AMST}
+ {540270000 -14400 0 AMT}
+ {562132800 -10800 1 AMST}
+ {571201200 -14400 0 AMT}
+ {590036400 -14400 0 AMT}
+}
diff --git a/library/tzdata/America/Puerto_Rico b/library/tzdata/America/Puerto_Rico
new file mode 100644
index 0000000..639426a
--- /dev/null
+++ b/library/tzdata/America/Puerto_Rico
@@ -0,0 +1,8 @@
+# created by ../tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Puerto_Rico) {
+ {-9223372036854775808 -15865 0 LMT}
+ {-2233035335 -14400 0 AST}
+ {-873057600 -10800 1 AWT}
+ {-765399600 -14400 0 AST}
+}
diff --git a/library/tzdata/America/Rainy_River b/library/tzdata/America/Rainy_River
new file mode 100644