/* Generated by Nim Compiler v0.20.0 */
/*   (c) 2019 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <time.h>
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw;
typedef struct tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ;
typedef struct tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyTuple_JfHvHzMrhKkWAUvQKe0i1A tyTuple_JfHvHzMrhKkWAUvQKe0i1A;
typedef struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg;
typedef struct RootObj RootObj;
typedef struct tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw;
typedef struct tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA;
typedef struct tySequence_6H5Oh5UUvVCLiakt9aTwtUQ tySequence_6H5Oh5UUvVCLiakt9aTwtUQ;
typedef struct tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ;
typedef struct tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw;
typedef struct tyTuple_XjuGlLf9cyYx66ViXrBCvPQ tyTuple_XjuGlLf9cyYx66ViXrBCvPQ;
typedef struct tyTuple_47w2DboNEPf69aPgubZdd7Q tyTuple_47w2DboNEPf69aPgubZdd7Q;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tyTuple_pfrdooyxJsC6cg34ebuBag tyTuple_pfrdooyxJsC6cg34ebuBag;
struct tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q {
NI64 seconds;
NI nanosecond;
};
struct tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ {
tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time;
NI utcOffset;
NIM_BOOL isDst;
};
typedef struct {
N_NIMCALL_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, ClP_0) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q x, void* ClE_0);
void* ClE_0;
} tyProc_bs1dgeTxHIjPGTR9axkkHbg;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw {
tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl;
tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromAdjTimeImpl;
NimStringDesc* name;
};
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct tyTuple_JfHvHzMrhKkWAUvQKe0i1A {
void* Field0;
tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg* Field1;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg {
  RootObj Sup;
};
typedef N_NIMCALL_PTR(void, tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA {
tySequence_6H5Oh5UUvVCLiakt9aTwtUQ* patterns;
NimStringDesc* formatStr;
};
typedef NU8 tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ;
typedef NU8 tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw;
typedef NU8 tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg;
struct tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw {
  RootObj Sup;
NI nanosecond;
NI second;
NI minute;
NI hour;
NI monthday;
tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month;
NI year;
tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg weekday;
NI yearday;
NIM_BOOL isDst;
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* timezone;
NI utcOffset;
};
typedef NimStringDesc* tyArray_3hurAvNmIXWWeqMzKryr2A[12];
typedef NimStringDesc* tyArray_O9c55L7dGQruaGz5nJ2r4rA[7];
struct tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ {
tyArray_3hurAvNmIXWWeqMzKryr2A MMM;
tyArray_3hurAvNmIXWWeqMzKryr2A MMMM;
tyArray_O9c55L7dGQruaGz5nJ2r4rA ddd;
tyArray_O9c55L7dGQruaGz5nJ2r4rA dddd;
};
typedef NU8 tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ;
typedef NI64 tyArray_pDfjTbtkTNjmi9bTcaNV32Q[8];
struct tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw {
NI64 seconds;
NI nanosecond;
};
struct tyTuple_XjuGlLf9cyYx66ViXrBCvPQ {
NI Field0;
tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw Field1;
NI Field2;
};
struct tyTuple_47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NI tyArray_Splpnswz3rudLg9bDsQoDXg[12];
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_197) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q x);
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_198) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_199) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, void* ClE_0);
struct tyTuple_pfrdooyxJsC6cg34ebuBag {
NI Field0;
NIM_BOOL Field1;
};
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_213) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_219) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, void* ClE_0);
struct tySequence_6H5Oh5UUvVCLiakt9aTwtUQ {
  TGenericSeq Sup;
  NU8 data[SEQ_DECL_SIZE];
};
static N_NIMCALL(void, Marker_tyRef_HsJiUUcO9cHBdUCi0HwkSTA)(void* p, NI op);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef_9a5v4OQPlGqsA25ioN8hFYA)(void* p, NI op);
static N_NIMCALL(void, TM_6NbDwwj5FY059b1gz2AsAZQ_4)(void);
N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
static N_NIMCALL(void, TM_6NbDwwj5FY059b1gz2AsAZQ_5)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_mJBnGHvSWAC6GZ5ELoijxg)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ* loc);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, formatPattern_S4WegiBO0BkW28IP3SncnA)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result, tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ* loc);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuIntToStr)(NI x, NI minchars);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NI, subInt)(NI a, NI b);
N_NOINLINE(void, raiseIndexError3)(NI i, NI a, NI b);
static N_INLINE(NI, convert_bBJ7N1GpubC85YlnXz3nHgtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
static N_INLINE(NI64, divInt64)(NI64 a, NI64 b);
N_NOINLINE(void, raiseDivByZero)(void);
N_NIMCALL(NI64, chckRange64)(NI64 i, NI64 a, NI64 b);
N_NIMCALL(NI64, mulInt64)(NI64 a, NI64 b);
static N_INLINE(NI, modInt)(NI a, NI b);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__uJ3ui4E9b9bOpe9bnJkEo4LvQ)(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone1, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone2);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NI, divInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, inZone_o59cT0ssqq4BC09cuUGSdJiA)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(void, initDateTime_9aNghJ6FEvB9bmfWkrG4iUag)(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ zt, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, ntSubTime)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, normalize_PiFB72i3f9cc4IO17Lz9cB7w)(NI64 seconds, NI64 nanoseconds);
static N_INLINE(NI64, convert_2z1a0DRE31bT73xgVvBfQAtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
static N_INLINE(NI, convert_vsrmXCcg8GubJb67VXeq4wtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
static N_INLINE(NI64, modInt64)(NI64 a, NI64 b);
static N_INLINE(NI64, subInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, initDuration_wcR3zetvspAUsyuvWZ07Xg)(NI64 nanoseconds, NI64 microseconds, NI64 milliseconds, NI64 seconds, NI64 minutes, NI64 hours, NI64 days, NI64 weeks);
N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, normalize_JK8O6vJVu4WsESmu0kL4aQ)(NI64 seconds, NI64 nanoseconds);
N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv_AhJW2V9aOggsJyHuT9bgq9bug)(NI64 x, NI64 y);
N_LIB_PRIVATE N_NIMCALL(tyTuple_XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay_Q6dL9aKf9alEEEm3deeqatPQ)(NI64 epochday);
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek_TMYR1EBf9be9ao182X9aB6FsQ)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
static N_INLINE(void, assertValidDate_cpvBdCYhBv8ncHGOZsJ1NAtimes)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NI, getDaysInMonth_9c0c5LEKvayZjopjsP8l54g)(tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear_fs8eIeJ5mOYFq6g12UKiwQ)(NI year);
N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay_cWHW5k8iz9aeqtjYJ7yMEUw)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_NIMCALL(NI, mulInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear_v9bv9bJVWRRmGny5jy7KFbgQ)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, zonedTimeFromTime_zT9bMgAwfe1o0G71u2tO24Q)(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, utc_qUBQvQNLA9buHXwkwhObxQg)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone_wByPoqWZicj9aruaaS1n9bFQ)(NimStringDesc* name, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromAdjTimeImpl);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, utcTzInfo_uDYZeDxzpPQoN8cxZKMtTQ)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, initTime_JIXNH9cQMG3SbZ0hXqEYDvA)(NI64 unix, NI nanosecond);
N_LIB_PRIVATE N_NIMCALL(void, local_JDUz4bfwLSZvJxYV9aiNG9bg_2)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, local_qUBQvQNLA9buHXwkwhObxQg_2)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromTime_uDYZeDxzpPQoN8cxZKMtTQ_2)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyTuple_pfrdooyxJsC6cg34ebuBag, getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA)(NI64 unix);
N_LIB_PRIVATE N_NIMCALL(NI64, clamp_4FyNK9boFeHv6A9b7jEfnv4Q)(NI64 x, NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(NI64, toAdjUnix_7gZ56sIczRw5Us60WRxM6Q)(struct tm tm);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromAdjTime_GmSlVYJeJjQvBZrTGP0v1w)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, getTime_h20mpqrwsumk6J9bRdCm6IQ)(void);
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* utcInstance_oeKVHn4dFpBJO35HhEkelw;
TNimType NTI_F8OvqlxXyGXRSiK9c1fCDVw_;
TNimType NTI_bs1dgeTxHIjPGTR9axkkHbg_;
TNimType NTI_vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_diB2NTuAIWY0FO9c5IUJRGg_;
TNimType NTI_HsJiUUcO9cHBdUCi0HwkSTA_;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
TNimType NTI_9a5v4OQPlGqsA25ioN8hFYA_;
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA;
TNimType NTI_d9cK9cyKZPJJxFXUmx8dSpPw_;
extern TNimType NTI_PpavWgyrx5odXyR89aNlcWA_;
extern TNimType NTI_rUuqTvFmkC6KKRqDAazGEA_;
extern TNimType NTI_LBgXxpmYOpS8xroRZgNvbg_;
extern TNimType NTI_Gz6vwaK0PZQIDIwfuvKsOg_;
extern TNimType NTI_DcZ5N67dL3rBj9bxGtx09bFg_;
TNimType NTI_JS0JuFvCBbC2GL3xXBnPQw_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
TNimType NTI_SVfemTA9aCOyua2TJYa6yBg_;
extern TNimType NTI_g9buja9c9aeh0rkDpqsXOJF9bA_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_10, "12", 2);
NIM_CONST tyArray_pDfjTbtkTNjmi9bTcaNV32Q unitWeights_cpugRVHYEC9bUpLa71eZMsQ = {IL64(1),
IL64(1000),
IL64(1000000),
IL64(1000000000),
IL64(60000000000),
IL64(3600000000000),
IL64(86400000000000),
IL64(604800000000000)}
;
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_17, "P", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_18, "A", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_19, "PM", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_20, "AM", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_31, "Etc/UTC", 7);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_37, ":", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_42, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/times.nim(2015, 20) `false` ", 121);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_43, "BC", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_44, "AD", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_45, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/times.nim(2018, 18) `false` ", 121);
NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM_6NbDwwj5FY059b1gz2AsAZQ_48 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 24),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 11),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 1)}};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_49, "yyyy-MM-dd", 10);
NIM_CONST tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA TM_6NbDwwj5FY059b1gz2AsAZQ_47 = {((tySequence_6H5Oh5UUvVCLiakt9aTwtUQ*)&TM_6NbDwwj5FY059b1gz2AsAZQ_48), ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_49)};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_51, "Jan", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_52, "Feb", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_53, "Mar", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_54, "Apr", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_55, "May", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_56, "Jun", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_57, "Jul", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_58, "Aug", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_59, "Sep", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_60, "Oct", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_61, "Nov", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_62, "Dec", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_63, "January", 7);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_64, "February", 8);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_65, "March", 5);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_66, "April", 5);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_67, "June", 4);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_68, "July", 4);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_69, "August", 6);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_70, "September", 9);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_71, "October", 7);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_72, "November", 8);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_73, "December", 8);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_74, "Mon", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_75, "Tue", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_76, "Wed", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_77, "Thu", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_78, "Fri", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_79, "Sat", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_80, "Sun", 3);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_81, "Monday", 6);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_82, "Tuesday", 7);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_83, "Wednesday", 9);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_84, "Thursday", 8);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_85, "Friday", 6);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_86, "Saturday", 8);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_87, "Sunday", 6);
NIM_CONST tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ TM_6NbDwwj5FY059b1gz2AsAZQ_50 = {{((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_51),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_52),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_53),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_54),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_55),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_56),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_57),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_58),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_59),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_60),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_61),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_62)}
, {((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_63),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_64),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_65),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_66),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_55),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_67),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_68),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_69),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_70),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_71),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_72),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_73)}
, {((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_74),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_75),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_76),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_77),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_78),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_79),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_80)}
, {((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_81),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_82),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_83),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_84),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_85),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_86),
((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_87)}
};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_166, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/times.nim(624, 10) `monthday <= ge"
"tDaysInMonth(month, year)` ", 154);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_167, "-", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_168, " is not a valid date", 20);
NIM_CONST tyArray_Splpnswz3rudLg9bDsQoDXg daysUntilMonthLeap_bWLQu3i9bqoFDTyygQP29aFA = {((NI) 0),
((NI) 31),
((NI) 60),
((NI) 91),
((NI) 121),
((NI) 152),
((NI) 182),
((NI) 213),
((NI) 244),
((NI) 274),
((NI) 305),
((NI) 335)}
;
NIM_CONST tyArray_Splpnswz3rudLg9bDsQoDXg daysUntilMonth_TV2R7Va3CeAXpg6eZUosdg = {((NI) 0),
((NI) 31),
((NI) 59),
((NI) 90),
((NI) 120),
((NI) 151),
((NI) 181),
((NI) 212),
((NI) 243),
((NI) 273),
((NI) 304),
((NI) 334)}
;
NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM_6NbDwwj5FY059b1gz2AsAZQ_201 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 7),
((NU8) 34),
((NU8) 1),
((NU8) 58),
((NU8) 9),
((NU8) 34),
((NU8) 1),
((NU8) 58),
((NU8) 15)}};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_202, "HH:mm:ss", 8);
NIM_CONST tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA TM_6NbDwwj5FY059b1gz2AsAZQ_200 = {((tySequence_6H5Oh5UUvVCLiakt9aTwtUQ*)&TM_6NbDwwj5FY059b1gz2AsAZQ_201), ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_202)};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_203, "LOCAL", 5);
NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[16];
} TM_6NbDwwj5FY059b1gz2AsAZQ_221 = {{16, 16 | NIM_STRLIT_FLAG}, {((NU8) 13),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 24),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 7),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 9),
((NU8) 34),
((NU8) 1),
((NU8) 45)}};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_222, "MMMM-yyyy-HH-mm-", 16);
NIM_CONST tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA TM_6NbDwwj5FY059b1gz2AsAZQ_220 = {((tySequence_6H5Oh5UUvVCLiakt9aTwtUQ*)&TM_6NbDwwj5FY059b1gz2AsAZQ_221), ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_222)};
static N_NIMCALL(void, Marker_tyRef_HsJiUUcO9cHBdUCi0HwkSTA)(void* p, NI op) {
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg* a;
	a = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg*)p;
}
static N_NIMCALL(void, Marker_tyRef_9a5v4OQPlGqsA25ioN8hFYA)(void* p, NI op) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* a;
	a = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)p;
	nimGCvisit((void*)(*a).zonedTimeFromTimeImpl.ClE_0, op);
	nimGCvisit((void*)(*a).zonedTimeFromAdjTimeImpl.ClE_0, op);
	nimGCvisit((void*)(*a).name, op);
}
static N_NIMCALL(void, TM_6NbDwwj5FY059b1gz2AsAZQ_4)(void) {
	nimGCvisit((void*)utcInstance_oeKVHn4dFpBJO35HhEkelw, 0);
}
static N_NIMCALL(void, TM_6NbDwwj5FY059b1gz2AsAZQ_5)(void) {
	nimGCvisit((void*)localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA, 0);
}

static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}

static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}

N_LIB_PRIVATE N_NIMCALL(NF, epochTime_9aodCrWXscOGeNVh2cpuZkw)(void) {
	NF result;
	struct timespec ts;
	int T1_;
	result = (NF)0;
	nimZeroMem((void*)(&ts), sizeof(struct timespec));
	T1_ = (int)0;
	T1_ = clock_gettime(CLOCK_REALTIME, (&ts));
	(void)(T1_);
	result = ((NF)(((double) (((NI64) (ts.tv_sec))))) + (NF)(((NF)(((double) (((NI64) (ts.tv_nsec))))) / (NF)(1.0000000000000000e+09))));
	return result;
}

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) + (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

static N_INLINE(void, copyMem_M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_M04YC71iJg1N7gBF3HZTngsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

static N_INLINE(NI, subInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) - (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU32) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI64, divInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	{
		if (!(b == IL64(0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (a == (IL64(-9223372036854775807) - IL64(1)));
		if (!(T7_)) goto LA8_;
		T7_ = (b == IL64(-1));
		LA8_: ;
		if (!T7_) goto LA9_;
		raiseOverflow();
	}
	LA9_: ;
	result = (NI64)(a / b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, convert_bBJ7N1GpubC85YlnXz3nHgtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity) {
	NI result;
	result = (NI)0;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_13;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_14;
		if (!(unitFrom < unitTo)) goto LA3_;
		TM_6NbDwwj5FY059b1gz2AsAZQ_13 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_14 = divInt64(((NI64) (quantity)), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_13));
		result = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_14), ((NI) 0), ((NI) 999999999)));
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_15;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_16;
		TM_6NbDwwj5FY059b1gz2AsAZQ_15 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_16 = mulInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_15), ((NI64) (quantity)));
		result = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_16), ((NI) 0), ((NI) 999999999)));
	}
	LA1_: ;
	return result;
}

static N_INLINE(NI, modInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		if (!(b == ((NI) 0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	result = (NI)(a % b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__uJ3ui4E9b9bOpe9bnJkEo4LvQ)(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone1, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone2) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(zone1 == zone2)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (zone1 == 0);
		if (T7_) goto LA8_;
		T7_ = (zone2 == 0);
		LA8_: ;
		if (!T7_) goto LA9_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA9_: ;
	result = eqStrings((*zone1).name, (*zone2).name);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, divInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		if (!(b == ((NI) 0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (a == ((NI) (-2147483647 -1)));
		if (!(T7_)) goto LA8_;
		T7_ = (b == ((NI) -1));
		LA8_: ;
		if (!T7_) goto LA9_;
		raiseOverflow();
	}
	LA9_: ;
	result = (NI)(a / b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, formatPattern_S4WegiBO0BkW28IP3SncnA)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result, tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ* loc) {
	switch (pattern) {
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 0):
	{
		NimStringDesc* T2_;
		T2_ = (NimStringDesc*)0;
		T2_ = nimIntToStr(((NI) ((*dt).monthday)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T2_ ? T2_->Sup.len : 0) + 0));
appendString((*result), T2_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 1):
	{
		NimStringDesc* T4_;
		T4_ = (NimStringDesc*)0;
		T4_ = nsuIntToStr(((NI) ((*dt).monthday)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T4_ ? T4_->Sup.len : 0) + 0));
appendString((*result), T4_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 2):
	{
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).ddd[((*dt).weekday)- 0] ? (*loc).ddd[((*dt).weekday)- 0]->Sup.len : 0) + 0));
appendString((*result), (*loc).ddd[((*dt).weekday)- 0]);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 3):
	{
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).dddd[((*dt).weekday)- 0] ? (*loc).dddd[((*dt).weekday)- 0]->Sup.len : 0) + 0));
appendString((*result), (*loc).dddd[((*dt).weekday)- 0]);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 4):
	{
		NimStringDesc* T8_;
		T8_ = (NimStringDesc*)0;
		{
			if (!(((NI) ((*dt).hour)) == ((NI) 0))) goto LA11_;
			T8_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_10));
		}
		goto LA9_;
		LA11_: ;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_11;
			if (!(((NI) 12) < ((NI) ((*dt).hour)))) goto LA14_;
			TM_6NbDwwj5FY059b1gz2AsAZQ_11 = subInt(((NI) ((*dt).hour)), ((NI) 12));
			T8_ = nimIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_11));
		}
		goto LA9_;
		LA14_: ;
		{
			T8_ = nimIntToStr(((NI) ((*dt).hour)));
		}
		LA9_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T8_ ? T8_->Sup.len : 0) + 0));
appendString((*result), T8_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 5):
	{
		NimStringDesc* T18_;
		T18_ = (NimStringDesc*)0;
		{
			if (!(((NI) ((*dt).hour)) == ((NI) 0))) goto LA21_;
			T18_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_10));
		}
		goto LA19_;
		LA21_: ;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_12;
			if (!(((NI) 12) < ((NI) ((*dt).hour)))) goto LA24_;
			TM_6NbDwwj5FY059b1gz2AsAZQ_12 = subInt(((NI) ((*dt).hour)), ((NI) 12));
			T18_ = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_12), ((NI) 2));
		}
		goto LA19_;
		LA24_: ;
		{
			T18_ = nsuIntToStr(((NI) ((*dt).hour)), ((NI) 2));
		}
		LA19_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T18_ ? T18_->Sup.len : 0) + 0));
appendString((*result), T18_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 6):
	{
		NimStringDesc* T28_;
		T28_ = (NimStringDesc*)0;
		T28_ = nimIntToStr(((NI) ((*dt).hour)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T28_ ? T28_->Sup.len : 0) + 0));
appendString((*result), T28_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 7):
	{
		NimStringDesc* T30_;
		T30_ = (NimStringDesc*)0;
		T30_ = nsuIntToStr(((NI) ((*dt).hour)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T30_ ? T30_->Sup.len : 0) + 0));
appendString((*result), T30_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 8):
	{
		NimStringDesc* T32_;
		T32_ = (NimStringDesc*)0;
		T32_ = nimIntToStr(((NI) ((*dt).minute)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T32_ ? T32_->Sup.len : 0) + 0));
appendString((*result), T32_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 9):
	{
		NimStringDesc* T34_;
		T34_ = (NimStringDesc*)0;
		T34_ = nsuIntToStr(((NI) ((*dt).minute)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T34_ ? T34_->Sup.len : 0) + 0));
appendString((*result), T34_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 10):
	{
		NimStringDesc* T36_;
		T36_ = (NimStringDesc*)0;
		T36_ = nimIntToStr((*dt).month);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T36_ ? T36_->Sup.len : 0) + 0));
appendString((*result), T36_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 11):
	{
		NimStringDesc* T38_;
		T38_ = (NimStringDesc*)0;
		T38_ = nsuIntToStr((*dt).month, ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T38_ ? T38_->Sup.len : 0) + 0));
appendString((*result), T38_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 12):
	{
		if ((*dt).month < 1 || (*dt).month > 12) raiseIndexError3((*dt).month, 1, 12);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).MMM[((*dt).month)- 1] ? (*loc).MMM[((*dt).month)- 1]->Sup.len : 0) + 0));
appendString((*result), (*loc).MMM[((*dt).month)- 1]);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 13):
	{
		if ((*dt).month < 1 || (*dt).month > 12) raiseIndexError3((*dt).month, 1, 12);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).MMMM[((*dt).month)- 1] ? (*loc).MMMM[((*dt).month)- 1]->Sup.len : 0) + 0));
appendString((*result), (*loc).MMMM[((*dt).month)- 1]);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 14):
	{
		NimStringDesc* T42_;
		T42_ = (NimStringDesc*)0;
		T42_ = nimIntToStr(((NI) ((*dt).second)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T42_ ? T42_->Sup.len : 0) + 0));
appendString((*result), T42_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 15):
	{
		NimStringDesc* T44_;
		T44_ = (NimStringDesc*)0;
		T44_ = nsuIntToStr(((NI) ((*dt).second)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T44_ ? T44_->Sup.len : 0) + 0));
appendString((*result), T44_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 16):
	{
		NI T46_;
		NimStringDesc* T47_;
		T46_ = (NI)0;
		T46_ = convert_bBJ7N1GpubC85YlnXz3nHgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), (*dt).nanosecond);
		T47_ = (NimStringDesc*)0;
		T47_ = nsuIntToStr(((NI) (T46_)), ((NI) 3));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T47_ ? T47_->Sup.len : 0) + 0));
appendString((*result), T47_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 17):
	{
		NI T49_;
		NimStringDesc* T50_;
		T49_ = (NI)0;
		T49_ = convert_bBJ7N1GpubC85YlnXz3nHgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 1), (*dt).nanosecond);
		T50_ = (NimStringDesc*)0;
		T50_ = nsuIntToStr(((NI) (T49_)), ((NI) 6));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T50_ ? T50_->Sup.len : 0) + 0));
appendString((*result), T50_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 18):
	{
		NimStringDesc* T52_;
		T52_ = (NimStringDesc*)0;
		T52_ = nsuIntToStr(((NI) ((*dt).nanosecond)), ((NI) 9));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T52_ ? T52_->Sup.len : 0) + 0));
appendString((*result), T52_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 19):
	{
		NimStringDesc* T54_;
		T54_ = (NimStringDesc*)0;
		{
			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA57_;
			T54_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_17));
		}
		goto LA55_;
		LA57_: ;
		{
			T54_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_18));
		}
		LA55_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T54_ ? T54_->Sup.len : 0) + 0));
appendString((*result), T54_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 20):
	{
		NimStringDesc* T61_;
		T61_ = (NimStringDesc*)0;
		{
			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA64_;
			T61_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_19));
		}
		goto LA62_;
		LA64_: ;
		{
			T61_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_20));
		}
		LA62_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T61_ ? T61_->Sup.len : 0) + 0));
appendString((*result), T61_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 21):
	{
		NI T68_;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_22;
		NimStringDesc* T74_;
		T68_ = (NI)0;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_21;
			if (!((*dt).year <= ((NI) 0))) goto LA71_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_21 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			T68_ = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_21);
		}
		goto LA69_;
		LA71_: ;
		{
			T68_ = (*dt).year;
		}
		LA69_: ;
		TM_6NbDwwj5FY059b1gz2AsAZQ_22 = modInt(T68_, ((NI) 10));
		T74_ = (NimStringDesc*)0;
		T74_ = nimIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_22));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T74_ ? T74_->Sup.len : 0) + 0));
appendString((*result), T74_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 22):
	{
		NI T76_;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_24;
		NimStringDesc* T82_;
		T76_ = (NI)0;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_23;
			if (!((*dt).year <= ((NI) 0))) goto LA79_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_23 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			T76_ = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_23);
		}
		goto LA77_;
		LA79_: ;
		{
			T76_ = (*dt).year;
		}
		LA77_: ;
		TM_6NbDwwj5FY059b1gz2AsAZQ_24 = modInt(T76_, ((NI) 100));
		T82_ = (NimStringDesc*)0;
		T82_ = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_24), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T82_ ? T82_->Sup.len : 0) + 0));
appendString((*result), T82_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 23):
	{
		NI T84_;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_26;
		NimStringDesc* T90_;
		T84_ = (NI)0;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_25;
			if (!((*dt).year <= ((NI) 0))) goto LA87_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_25 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			T84_ = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_25);
		}
		goto LA85_;
		LA87_: ;
		{
			T84_ = (*dt).year;
		}
		LA85_: ;
		TM_6NbDwwj5FY059b1gz2AsAZQ_26 = modInt(T84_, ((NI) 1000));
		T90_ = (NimStringDesc*)0;
		T90_ = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_26), ((NI) 3));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T90_ ? T90_->Sup.len : 0) + 0));
appendString((*result), T90_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 24):
	{
		NI year;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_27;
			if (!((*dt).year <= ((NI) 0))) goto LA94_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_27 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			year = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_27);
		}
		goto LA92_;
		LA94_: ;
		{
			year = (*dt).year;
		}
		LA92_: ;
		{
			NimStringDesc* T101_;
			if (!(year < ((NI) 10000))) goto LA99_;
			T101_ = (NimStringDesc*)0;
			T101_ = nsuIntToStr(year, ((NI) 4));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T101_ ? T101_->Sup.len : 0) + 0));
appendString((*result), T101_);
		}
		goto LA97_;
		LA99_: ;
		{
			NimStringDesc* T103_;
			NimStringDesc* T104_;
			T103_ = (NimStringDesc*)0;
			T104_ = (NimStringDesc*)0;
			T104_ = nimIntToStr(year);
			T103_ = rawNewString((T104_ ? T104_->Sup.len : 0) + 1);
appendChar(T103_, 43);
appendString(T103_, T104_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T103_ ? T103_->Sup.len : 0) + 0));
appendString((*result), T103_);
		}
		LA97_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 25):
	{
		NI T106_;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_29;
		NimStringDesc* T112_;
		T106_ = (NI)0;
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_28;
			if (!((*dt).year <= ((NI) 0))) goto LA109_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_28 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			T106_ = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_28);
		}
		goto LA107_;
		LA109_: ;
		{
			T106_ = (*dt).year;
		}
		LA107_: ;
		TM_6NbDwwj5FY059b1gz2AsAZQ_29 = modInt(T106_, ((NI) 100000));
		T112_ = (NimStringDesc*)0;
		T112_ = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_29), ((NI) 5));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T112_ ? T112_->Sup.len : 0) + 0));
appendString((*result), T112_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 26):
	{
		{
			NI TM_6NbDwwj5FY059b1gz2AsAZQ_30;
			NimStringDesc* T118_;
			if (!((*dt).year < ((NI) 1))) goto LA116_;
			if ((*dt).year == (-2147483647 -1)) raiseOverflow();
			TM_6NbDwwj5FY059b1gz2AsAZQ_30 = addInt(((*dt).year > 0? ((*dt).year) : -((*dt).year)), ((NI) 1));
			T118_ = (NimStringDesc*)0;
			T118_ = nimIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_30));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T118_ ? T118_->Sup.len : 0) + 0));
appendString((*result), T118_);
		}
		goto LA114_;
		LA116_: ;
		{
			NimStringDesc* T120_;
			T120_ = (NimStringDesc*)0;
			T120_ = nimIntToStr((*dt).year);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T120_ ? T120_->Sup.len : 0) + 0));
appendString((*result), T120_);
		}
		LA114_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 27):
	{
		NI year_2;
		year_2 = (*dt).year;
		{
			NIM_BOOL T124_;
			NimStringDesc* T128_;
			T124_ = (NIM_BOOL)0;
			T124_ = (year_2 < ((NI) 10000));
			if (T124_) goto LA125_;
			T124_ = (year_2 < ((NI) 0));
			LA125_: ;
			if (!T124_) goto LA126_;
			T128_ = (NimStringDesc*)0;
			T128_ = nsuIntToStr(year_2, ((NI) 4));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T128_ ? T128_->Sup.len : 0) + 0));
appendString((*result), T128_);
		}
		goto LA122_;
		LA126_: ;
		{
			NimStringDesc* T130_;
			NimStringDesc* T131_;
			T130_ = (NimStringDesc*)0;
			T131_ = (NimStringDesc*)0;
			T131_ = nimIntToStr(year_2);
			T130_ = rawNewString((T131_ ? T131_->Sup.len : 0) + 1);
appendChar(T130_, 43);
appendString(T130_, T131_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T130_ ? T130_->Sup.len : 0) + 0));
appendString((*result), T130_);
		}
		LA122_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 28):
	{
		NimStringDesc* T133_;
		T133_ = (NimStringDesc*)0;
		T133_ = nimIntToStr((*dt).year);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T133_ ? T133_->Sup.len : 0) + 0));
appendString((*result), T133_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 29):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 30):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 31):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 32):
	{
		{
			NIM_BOOL T137_;
			NIM_BOOL T138_;
			T137_ = (NIM_BOOL)0;
			T138_ = (NIM_BOOL)0;
			T138_ = eqeq__uJ3ui4E9b9bOpe9bnJkEo4LvQ((*dt).timezone, NIM_NIL);
			T137_ = !(T138_);
			if (!(T137_)) goto LA139_;
			T137_ = eqStrings((*(*dt).timezone).name, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_31));
			LA139_: ;
			if (!T137_) goto LA140_;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), 90));
		}
		goto LA135_;
		LA140_: ;
		{
			NIM_CHAR T143_;
			NI absOffset;
			T143_ = (NIM_CHAR)0;
			{
				if ((*dt).utcOffset == (-2147483647 -1)) raiseOverflow();
				if (!(((NI) 0) <= ((NI32)-((*dt).utcOffset)))) goto LA146_;
				T143_ = 43;
			}
			goto LA144_;
			LA146_: ;
			{
				T143_ = 45;
			}
			LA144_: ;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), T143_));
			if ((*dt).utcOffset == (-2147483647 -1)) raiseOverflow();
			absOffset = ((*dt).utcOffset > 0? ((*dt).utcOffset) : -((*dt).utcOffset));
			switch (pattern) {
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 29):
			{
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_32;
				NimStringDesc* T150_;
				TM_6NbDwwj5FY059b1gz2AsAZQ_32 = divInt(absOffset, ((NI) 3600));
				T150_ = (NimStringDesc*)0;
				T150_ = nimIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_32));
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T150_ ? T150_->Sup.len : 0) + 0));
appendString((*result), T150_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 30):
			{
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_33;
				NimStringDesc* T152_;
				TM_6NbDwwj5FY059b1gz2AsAZQ_33 = divInt(absOffset, ((NI) 3600));
				T152_ = (NimStringDesc*)0;
				T152_ = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_33), ((NI) 2));
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T152_ ? T152_->Sup.len : 0) + 0));
appendString((*result), T152_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 31):
			{
				NimStringDesc* h;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_34;
				NimStringDesc* m;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_35;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_36;
				NimStringDesc* T154_;
				TM_6NbDwwj5FY059b1gz2AsAZQ_34 = divInt(absOffset, ((NI) 3600));
				h = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_34), ((NI) 2));
				TM_6NbDwwj5FY059b1gz2AsAZQ_35 = divInt(absOffset, ((NI) 60));
				TM_6NbDwwj5FY059b1gz2AsAZQ_36 = modInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_35), ((NI) 60));
				m = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_36), ((NI) 2));
				T154_ = (NimStringDesc*)0;
				T154_ = rawNewString((h ? h->Sup.len : 0) + (m ? m->Sup.len : 0) + 1);
appendString(T154_, h);
appendString(T154_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_37));
appendString(T154_, m);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T154_ ? T154_->Sup.len : 0) + 0));
appendString((*result), T154_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 32):
			{
				NI absOffset_2;
				NimStringDesc* h_2;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_38;
				NimStringDesc* m_2;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_39;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_40;
				NimStringDesc* s;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_41;
				NimStringDesc* T156_;
				if ((*dt).utcOffset == (-2147483647 -1)) raiseOverflow();
				absOffset_2 = ((*dt).utcOffset > 0? ((*dt).utcOffset) : -((*dt).utcOffset));
				TM_6NbDwwj5FY059b1gz2AsAZQ_38 = divInt(absOffset_2, ((NI) 3600));
				h_2 = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_38), ((NI) 2));
				TM_6NbDwwj5FY059b1gz2AsAZQ_39 = divInt(absOffset_2, ((NI) 60));
				TM_6NbDwwj5FY059b1gz2AsAZQ_40 = modInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_39), ((NI) 60));
				m_2 = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_40), ((NI) 2));
				TM_6NbDwwj5FY059b1gz2AsAZQ_41 = modInt(absOffset_2, ((NI) 60));
				s = nsuIntToStr((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_41), ((NI) 2));
				T156_ = (NimStringDesc*)0;
				T156_ = rawNewString((h_2 ? h_2->Sup.len : 0) + (m_2 ? m_2->Sup.len : 0) + (s ? s->Sup.len : 0) + 2);
appendString(T156_, h_2);
appendString(T156_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_37));
appendString(T156_, m_2);
appendString(T156_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_37));
appendString(T156_, s);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T156_ ? T156_->Sup.len : 0) + 0));
appendString((*result), T156_);
			}
			break;
			default:
			{
				{
					if (!NIM_TRUE) goto LA160_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_42));
				}
				LA160_: ;
			}
			break;
			}
		}
		LA135_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 33):
	{
		NimStringDesc* T163_;
		T163_ = (NimStringDesc*)0;
		{
			if (!((*dt).year < ((NI) 1))) goto LA166_;
			T163_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_43));
		}
		goto LA164_;
		LA166_: ;
		{
			T163_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_44));
		}
		LA164_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T163_ ? T163_->Sup.len : 0) + 0));
appendString((*result), T163_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 34):
	{
		{
			if (!NIM_TRUE) goto LA172_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_45));
		}
		LA172_: ;
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_mJBnGHvSWAC6GZ5ELoijxg)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale_uNv3Dc4hHpAREXnLVqGWZQ* loc) {
	NimStringDesc* result;
	NI idx;
	result = (NimStringDesc*)0;
	idx = ((NI) 0);
	{
		while (1) {
			NI T3_;
			T3_ = ((f.patterns ? f.patterns->Sup.len : 0)-1);
			if (!(idx <= T3_)) goto LA2;
			if ((NU)(idx) >= (NU)(f.patterns ? f.patterns->Sup.len : 0)) raiseIndexError2(idx,(f.patterns ? f.patterns->Sup.len : 0)-1);
			switch (((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ)chckRange(f.patterns->data[idx], ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 0), ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 34)))) {
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 34):
			{
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_6;
				NU8 len;
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_9;
				TM_6NbDwwj5FY059b1gz2AsAZQ_6 = addInt(idx, ((NI) 1));
				idx = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_6);
				if ((NU)(idx) >= (NU)(f.patterns ? f.patterns->Sup.len : 0)) raiseIndexError2(idx,(f.patterns ? f.patterns->Sup.len : 0)-1);
				len = f.patterns->data[idx];
				{
					NU8 i;
					NI res;
					i = (NU8)0;
					res = ((NI) 1);
					{
						while (1) {
							NI TM_6NbDwwj5FY059b1gz2AsAZQ_7;
							NI TM_6NbDwwj5FY059b1gz2AsAZQ_8;
							if (!(res <= ((NI) (len)))) goto LA7;
							i = ((NU8)chckRange(res, ((NU8) 0), ((NU8) 255)));
							TM_6NbDwwj5FY059b1gz2AsAZQ_7 = addInt(idx, ((NI) 1));
							idx = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_7);
							if ((NU)(idx) >= (NU)(f.patterns ? f.patterns->Sup.len : 0)) raiseIndexError2(idx,(f.patterns ? f.patterns->Sup.len : 0)-1);
							result = addChar(result, ((NIM_CHAR) (f.patterns->data[idx])));
							TM_6NbDwwj5FY059b1gz2AsAZQ_8 = addInt(res, ((NI) 1));
							res = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_8);
						} LA7: ;
					}
				}
				TM_6NbDwwj5FY059b1gz2AsAZQ_9 = addInt(idx, ((NI) 1));
				idx = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_9);
			}
			break;
			default:
			{
				NI TM_6NbDwwj5FY059b1gz2AsAZQ_46;
				if ((NU)(idx) >= (NU)(f.patterns ? f.patterns->Sup.len : 0)) raiseIndexError2(idx,(f.patterns ? f.patterns->Sup.len : 0)-1);
				formatPattern_S4WegiBO0BkW28IP3SncnA(dt, ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ)chckRange(f.patterns->data[idx], ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 0), ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 34))), (&result), loc);
				TM_6NbDwwj5FY059b1gz2AsAZQ_46 = addInt(idx, ((NI) 1));
				idx = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_46);
			}
			break;
			}
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_0mU5LPQs7yxyhK6wdJYSkg)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format_mJBnGHvSWAC6GZ5ELoijxg(dt, TM_6NbDwwj5FY059b1gz2AsAZQ_47, (&TM_6NbDwwj5FY059b1gz2AsAZQ_50));
	return result;
}

static N_INLINE(NI64, convert_2z1a0DRE31bT73xgVvBfQAtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity) {
	NI64 result;
	result = (NI64)0;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_95;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_96;
		if (!(unitFrom < unitTo)) goto LA3_;
		TM_6NbDwwj5FY059b1gz2AsAZQ_95 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_96 = divInt64(quantity, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_95));
		result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_96);
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_97;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_98;
		TM_6NbDwwj5FY059b1gz2AsAZQ_97 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_98 = mulInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_97), quantity);
		result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_98);
	}
	LA1_: ;
	return result;
}

static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, convert_vsrmXCcg8GubJb67VXeq4wtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity) {
	NI result;
	result = (NI)0;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_100;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_101;
		if (!(unitFrom < unitTo)) goto LA3_;
		TM_6NbDwwj5FY059b1gz2AsAZQ_100 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_101 = divInt64(((NI64) (quantity)), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_100));
		result = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_101), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_102;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_103;
		TM_6NbDwwj5FY059b1gz2AsAZQ_102 = divInt64(unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0], unitWeights_cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0]);
		TM_6NbDwwj5FY059b1gz2AsAZQ_103 = mulInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_102), ((NI64) (quantity)));
		result = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_103), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	}
	LA1_: ;
	return result;
}

static N_INLINE(NI64, modInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	{
		if (!(b == IL64(0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	result = (NI64)(a % b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI64, subInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ (NI64)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, normalize_PiFB72i3f9cc4IO17Lz9cB7w)(NI64 seconds, NI64 nanoseconds) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	NI64 T1_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_99;
	NI64 nanosecond;
	NI T2_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_104;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	T1_ = (NI64)0;
	T1_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_99 = addInt64(seconds, T1_);
	result.seconds = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_99);
	T2_ = (NI)0;
	T2_ = convert_vsrmXCcg8GubJb67VXeq4wtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
	TM_6NbDwwj5FY059b1gz2AsAZQ_104 = modInt64(nanoseconds, ((NI64) (T2_)));
	nanosecond = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_104);
	{
		NI T7_;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_105;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_106;
		if (!(nanosecond < IL64(0))) goto LA5_;
		T7_ = (NI)0;
		T7_ = convert_vsrmXCcg8GubJb67VXeq4wtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
		TM_6NbDwwj5FY059b1gz2AsAZQ_105 = addInt64(nanosecond, ((NI64) (T7_)));
		nanosecond = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_105);
		TM_6NbDwwj5FY059b1gz2AsAZQ_106 = subInt64(result.seconds, ((NI) 1));
		result.seconds = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_106);
	}
	LA5_: ;
	result.nanosecond = ((NI)chckRange(((NI)chckRange64(nanosecond, ((NI) (-2147483647 -1)), ((NI) 2147483647))), ((NI) 0), ((NI) 999999999)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, ntSubTime)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw b) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_107;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_108;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	TM_6NbDwwj5FY059b1gz2AsAZQ_107 = subInt64(a.seconds, b.seconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_108 = subInt(((NI) (a.nanosecond)), ((NI) (b.nanosecond)));
	result = normalize_PiFB72i3f9cc4IO17Lz9cB7w((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_107), ((NI64) ((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_108))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, normalize_JK8O6vJVu4WsESmu0kL4aQ)(NI64 seconds, NI64 nanoseconds) {
	tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw result;
	NI64 T1_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_121;
	NI64 nanosecond;
	NI T2_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_122;
	nimZeroMem((void*)(&result), sizeof(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw));
	T1_ = (NI64)0;
	T1_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_121 = addInt64(seconds, T1_);
	result.seconds = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_121);
	T2_ = (NI)0;
	T2_ = convert_vsrmXCcg8GubJb67VXeq4wtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
	TM_6NbDwwj5FY059b1gz2AsAZQ_122 = modInt64(nanoseconds, ((NI64) (T2_)));
	nanosecond = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_122);
	{
		NI T7_;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_123;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_124;
		if (!(nanosecond < IL64(0))) goto LA5_;
		T7_ = (NI)0;
		T7_ = convert_vsrmXCcg8GubJb67VXeq4wtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
		TM_6NbDwwj5FY059b1gz2AsAZQ_123 = addInt64(nanosecond, ((NI64) (T7_)));
		nanosecond = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_123);
		TM_6NbDwwj5FY059b1gz2AsAZQ_124 = subInt64(result.seconds, ((NI) 1));
		result.seconds = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_124);
	}
	LA5_: ;
	result.nanosecond = ((NI)chckRange(((NI)chckRange64(nanosecond, ((NI) (-2147483647 -1)), ((NI) 2147483647))), ((NI) 0), ((NI) 999999999)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, initDuration_wcR3zetvspAUsyuvWZ07Xg)(NI64 nanoseconds, NI64 microseconds, NI64 milliseconds, NI64 seconds, NI64 minutes, NI64 hours, NI64 days, NI64 weeks) {
	tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw result;
	NI64 seconds_2;
	NI64 T1_;
	NI64 T2_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_109;
	NI64 T3_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_110;
	NI64 T4_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_111;
	NI64 T5_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_112;
	NI64 T6_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_113;
	NI64 T7_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_114;
	NI64 T8_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_115;
	NI nanoseconds_2;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_116;
	NI64 T9_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_117;
	NI64 T10_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_118;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_119;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_120;
	nimZeroMem((void*)(&result), sizeof(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw));
	T1_ = (NI64)0;
	T1_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 7), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), weeks);
	T2_ = (NI64)0;
	T2_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 6), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), days);
	TM_6NbDwwj5FY059b1gz2AsAZQ_109 = addInt64(T1_, T2_);
	T3_ = (NI64)0;
	T3_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 4), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), minutes);
	TM_6NbDwwj5FY059b1gz2AsAZQ_110 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_109), T3_);
	T4_ = (NI64)0;
	T4_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 5), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), hours);
	TM_6NbDwwj5FY059b1gz2AsAZQ_111 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_110), T4_);
	T5_ = (NI64)0;
	T5_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), seconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_112 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_111), T5_);
	T6_ = (NI64)0;
	T6_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), milliseconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_113 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_112), T6_);
	T7_ = (NI64)0;
	T7_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), microseconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_114 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_113), T7_);
	T8_ = (NI64)0;
	T8_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	TM_6NbDwwj5FY059b1gz2AsAZQ_115 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_114), T8_);
	seconds_2 = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_115);
	TM_6NbDwwj5FY059b1gz2AsAZQ_116 = modInt64(milliseconds, IL64(1000));
	T9_ = (NI64)0;
	T9_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_116));
	TM_6NbDwwj5FY059b1gz2AsAZQ_117 = modInt64(microseconds, IL64(1000000));
	T10_ = (NI64)0;
	T10_ = convert_2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_117));
	TM_6NbDwwj5FY059b1gz2AsAZQ_118 = addInt64(T9_, T10_);
	TM_6NbDwwj5FY059b1gz2AsAZQ_119 = modInt64(nanoseconds, IL64(1000000000));
	TM_6NbDwwj5FY059b1gz2AsAZQ_120 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_118), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_119));
	nanoseconds_2 = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_120), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	result = normalize_JK8O6vJVu4WsESmu0kL4aQ(seconds_2, ((NI64) (nanoseconds_2)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyTuple_XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay_Q6dL9aKf9alEEEm3deeqatPQ)(NI64 epochday) {
	tyTuple_XjuGlLf9cyYx66ViXrBCvPQ result;
	NI64 z;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_133;
	NI64 era;
	NI64 T1_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_135;
	NI64 doe;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_136;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_137;
	NI64 yoe;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_138;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_139;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_140;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_141;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_142;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_143;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_144;
	NI64 y;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_145;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_146;
	NI64 doy;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_147;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_148;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_149;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_150;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_151;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_152;
	NI64 mp;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_153;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_154;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_155;
	NI64 d;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_156;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_157;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_158;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_159;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_160;
	NI64 m;
	NI T7_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_161;
	NI colontmp_;
	tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw colontmp__2;
	NI colontmp__3;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_162;
{	nimZeroMem((void*)(&result), sizeof(tyTuple_XjuGlLf9cyYx66ViXrBCvPQ));
	z = epochday;
	TM_6NbDwwj5FY059b1gz2AsAZQ_133 = addInt64(z, ((NI) 719468));
	z = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_133);
	T1_ = (NI64)0;
	{
		if (!(IL64(0) <= z)) goto LA4_;
		T1_ = z;
	}
	goto LA2_;
	LA4_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_134;
		TM_6NbDwwj5FY059b1gz2AsAZQ_134 = subInt64(z, IL64(146096));
		T1_ = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_134);
	}
	LA2_: ;
	TM_6NbDwwj5FY059b1gz2AsAZQ_135 = divInt64(T1_, IL64(146097));
	era = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_135);
	TM_6NbDwwj5FY059b1gz2AsAZQ_136 = mulInt64(era, IL64(146097));
	TM_6NbDwwj5FY059b1gz2AsAZQ_137 = subInt64(z, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_136));
	doe = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_137);
	TM_6NbDwwj5FY059b1gz2AsAZQ_138 = divInt64(doe, IL64(1460));
	TM_6NbDwwj5FY059b1gz2AsAZQ_139 = subInt64(doe, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_138));
	TM_6NbDwwj5FY059b1gz2AsAZQ_140 = divInt64(doe, IL64(36524));
	TM_6NbDwwj5FY059b1gz2AsAZQ_141 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_139), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_140));
	TM_6NbDwwj5FY059b1gz2AsAZQ_142 = divInt64(doe, IL64(146096));
	TM_6NbDwwj5FY059b1gz2AsAZQ_143 = subInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_141), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_142));
	TM_6NbDwwj5FY059b1gz2AsAZQ_144 = divInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_143), IL64(365));
	yoe = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_144);
	TM_6NbDwwj5FY059b1gz2AsAZQ_145 = mulInt64(era, IL64(400));
	TM_6NbDwwj5FY059b1gz2AsAZQ_146 = addInt64(yoe, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_145));
	y = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_146);
	TM_6NbDwwj5FY059b1gz2AsAZQ_147 = mulInt64(IL64(365), yoe);
	TM_6NbDwwj5FY059b1gz2AsAZQ_148 = divInt64(yoe, IL64(4));
	TM_6NbDwwj5FY059b1gz2AsAZQ_149 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_147), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_148));
	TM_6NbDwwj5FY059b1gz2AsAZQ_150 = divInt64(yoe, IL64(100));
	TM_6NbDwwj5FY059b1gz2AsAZQ_151 = subInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_149), (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_150));
	TM_6NbDwwj5FY059b1gz2AsAZQ_152 = subInt64(doe, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_151));
	doy = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_152);
	TM_6NbDwwj5FY059b1gz2AsAZQ_153 = mulInt64(IL64(5), doy);
	TM_6NbDwwj5FY059b1gz2AsAZQ_154 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_153), IL64(2));
	TM_6NbDwwj5FY059b1gz2AsAZQ_155 = divInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_154), IL64(153));
	mp = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_155);
	TM_6NbDwwj5FY059b1gz2AsAZQ_156 = mulInt64(IL64(153), mp);
	TM_6NbDwwj5FY059b1gz2AsAZQ_157 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_156), IL64(2));
	TM_6NbDwwj5FY059b1gz2AsAZQ_158 = divInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_157), IL64(5));
	TM_6NbDwwj5FY059b1gz2AsAZQ_159 = subInt64(doy, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_158));
	TM_6NbDwwj5FY059b1gz2AsAZQ_160 = addInt64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_159), IL64(1));
	d = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_160);
	T7_ = (NI)0;
	{
		if (!(mp < IL64(10))) goto LA10_;
		T7_ = ((NI) 3);
	}
	goto LA8_;
	LA10_: ;
	{
		T7_ = ((NI) -9);
	}
	LA8_: ;
	TM_6NbDwwj5FY059b1gz2AsAZQ_161 = addInt64(mp, ((NI64) (T7_)));
	m = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_161);
	colontmp_ = ((NI)chckRange64(d, ((NI) 1), ((NI) 31)));
	colontmp__2 = ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw)chckRange64(m, ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 1), ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 12)));
	TM_6NbDwwj5FY059b1gz2AsAZQ_162 = addInt64(y, ((NI64) ((m <= IL64(2)))));
	colontmp__3 = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_162), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	result.Field0 = colontmp_;
	result.Field1 = colontmp__2;
	result.Field2 = colontmp__3;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear_fs8eIeJ5mOYFq6g12UKiwQ)(NI year) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_163;
	NIM_BOOL T3_;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_164;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_165;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	TM_6NbDwwj5FY059b1gz2AsAZQ_163 = modInt(year, ((NI) 4));
	T1_ = ((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_163) == ((NI) 0));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	TM_6NbDwwj5FY059b1gz2AsAZQ_164 = modInt(year, ((NI) 100));
	T3_ = !(((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_164) == ((NI) 0)));
	if (T3_) goto LA4_;
	TM_6NbDwwj5FY059b1gz2AsAZQ_165 = modInt(year, ((NI) 400));
	T3_ = ((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_165) == ((NI) 0));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getDaysInMonth_9c0c5LEKvayZjopjsP8l54g)(tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	NI result;
	result = (NI)0;
	switch (month) {
	case ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 2):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = isLeapYear_fs8eIeJ5mOYFq6g12UKiwQ(year);
			if (!T4_) goto LA5_;
			result = ((NI) 29);
		}
		goto LA2_;
		LA5_: ;
		{
			result = ((NI) 28);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 4):
	case ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 6):
	case ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 9):
	case ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 11):
	{
		result = ((NI) 30);
	}
	break;
	default:
	{
		result = ((NI) 31);
	}
	break;
	}
	return result;
}

static N_INLINE(void, assertValidDate_cpvBdCYhBv8ncHGOZsJ1NAtimes)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	{
		NI T3_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		NimStringDesc* T9_;
		T3_ = (NI)0;
		T3_ = getDaysInMonth_9c0c5LEKvayZjopjsP8l54g(month, year);
		if (!!((((NI) (monthday)) <= T3_))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = nimIntToStr(year);
		T8_ = (NimStringDesc*)0;
		T8_ = nsuIntToStr(month, ((NI) 2));
		T9_ = (NimStringDesc*)0;
		T9_ = nimIntToStr(((NI) (monthday)));
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + 176);
appendString(T6_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_166));
appendString(T6_, T7_);
appendString(T6_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_167));
appendString(T6_, T8_);
appendString(T6_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_167));
appendString(T6_, T9_);
appendString(T6_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_168));
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T6_);
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay_cWHW5k8iz9aeqtjYJ7yMEUw)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	NI64 result;
	tyTuple_47w2DboNEPf69aPgubZdd7Q T1_;
	NI y;
	NI m;
	NI d;
	NI era;
	NI T6_;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_171;
	NI yoe;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_172;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_173;
	NI doy;
	NI T12_;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_174;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_175;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_176;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_177;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_178;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_179;
	NI doe;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_180;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_181;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_182;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_183;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_184;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_185;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_186;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_187;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_188;
{	result = (NI64)0;
	assertValidDate_cpvBdCYhBv8ncHGOZsJ1NAtimes(monthday, month, year);
	T1_.Field0 = year;
	T1_.Field1 = month;
	T1_.Field2 = ((NI) (monthday));
	y = T1_.Field0;
	m = T1_.Field1;
	d = T1_.Field2;
	{
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_169;
		if (!(m <= ((NI) 2))) goto LA4_;
		TM_6NbDwwj5FY059b1gz2AsAZQ_169 = subInt(y, ((NI) 1));
		y = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_169);
	}
	LA4_: ;
	T6_ = (NI)0;
	{
		if (!(((NI) 0) <= y)) goto LA9_;
		T6_ = y;
	}
	goto LA7_;
	LA9_: ;
	{
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_170;
		TM_6NbDwwj5FY059b1gz2AsAZQ_170 = subInt(y, ((NI) 399));
		T6_ = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_170);
	}
	LA7_: ;
	TM_6NbDwwj5FY059b1gz2AsAZQ_171 = divInt(T6_, ((NI) 400));
	era = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_171);
	TM_6NbDwwj5FY059b1gz2AsAZQ_172 = mulInt(era, ((NI) 400));
	TM_6NbDwwj5FY059b1gz2AsAZQ_173 = subInt(y, (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_172));
	yoe = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_173);
	T12_ = (NI)0;
	{
		if (!(((NI) 2) < m)) goto LA15_;
		T12_ = ((NI) -3);
	}
	goto LA13_;
	LA15_: ;
	{
		T12_ = ((NI) 9);
	}
	LA13_: ;
	TM_6NbDwwj5FY059b1gz2AsAZQ_174 = addInt(m, T12_);
	TM_6NbDwwj5FY059b1gz2AsAZQ_175 = mulInt(((NI) 153), (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_174));
	TM_6NbDwwj5FY059b1gz2AsAZQ_176 = addInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_175), ((NI) 2));
	TM_6NbDwwj5FY059b1gz2AsAZQ_177 = divInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_176), ((NI) 5));
	TM_6NbDwwj5FY059b1gz2AsAZQ_178 = addInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_177), d);
	TM_6NbDwwj5FY059b1gz2AsAZQ_179 = subInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_178), ((NI) 1));
	doy = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_179);
	TM_6NbDwwj5FY059b1gz2AsAZQ_180 = mulInt(yoe, ((NI) 365));
	TM_6NbDwwj5FY059b1gz2AsAZQ_181 = divInt(yoe, ((NI) 4));
	TM_6NbDwwj5FY059b1gz2AsAZQ_182 = addInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_180), (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_181));
	TM_6NbDwwj5FY059b1gz2AsAZQ_183 = divInt(yoe, ((NI) 100));
	TM_6NbDwwj5FY059b1gz2AsAZQ_184 = subInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_182), (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_183));
	TM_6NbDwwj5FY059b1gz2AsAZQ_185 = addInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_184), doy);
	doe = (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_185);
	TM_6NbDwwj5FY059b1gz2AsAZQ_186 = mulInt(era, ((NI) 146097));
	TM_6NbDwwj5FY059b1gz2AsAZQ_187 = addInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_186), doe);
	TM_6NbDwwj5FY059b1gz2AsAZQ_188 = subInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_187), ((NI) 719468));
	result = ((NI64) ((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_188)));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek_TMYR1EBf9be9ao182X9aB6FsQ)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg result;
	NI64 days;
	NI64 T1_;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_189;
	NI64 weeks;
	NI64 wd;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_190;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_191;
	result = (tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg)0;
	assertValidDate_cpvBdCYhBv8ncHGOZsJ1NAtimes(monthday, month, year);
	T1_ = (NI64)0;
	T1_ = toEpochDay_cWHW5k8iz9aeqtjYJ7yMEUw(monthday, month, year);
	TM_6NbDwwj5FY059b1gz2AsAZQ_189 = subInt64(T1_, IL64(3));
	days = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_189);
	weeks = floorDiv_AhJW2V9aOggsJyHuT9bgq9bug(days, ((NI) 7));
	TM_6NbDwwj5FY059b1gz2AsAZQ_190 = mulInt64(weeks, IL64(7));
	TM_6NbDwwj5FY059b1gz2AsAZQ_191 = subInt64(days, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_190));
	wd = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_191);
	{
		if (!(wd == IL64(0))) goto LA4_;
		result = ((tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg) 6);
	}
	goto LA2_;
	LA4_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_192;
		TM_6NbDwwj5FY059b1gz2AsAZQ_192 = subInt64(wd, IL64(1));
		result = ((tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_192), ((tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg) 0), ((tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg) 6)));
	}
	LA2_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear_v9bv9bJVWRRmGny5jy7KFbgQ)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	NI result;
	result = (NI)0;
	assertValidDate_cpvBdCYhBv8ncHGOZsJ1NAtimes(monthday, month, year);
	{
		NIM_BOOL T3_;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_193;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_194;
		T3_ = (NIM_BOOL)0;
		T3_ = isLeapYear_fs8eIeJ5mOYFq6g12UKiwQ(year);
		if (!T3_) goto LA4_;
		if (month < 1 || month > 12) raiseIndexError3(month, 1, 12);
		TM_6NbDwwj5FY059b1gz2AsAZQ_193 = addInt(daysUntilMonthLeap_bWLQu3i9bqoFDTyygQP29aFA[(month)- 1], ((NI) (monthday)));
		TM_6NbDwwj5FY059b1gz2AsAZQ_194 = subInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_193), ((NI) 1));
		result = ((NI)chckRange((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_194), ((NI) 0), ((NI) 365)));
	}
	goto LA1_;
	LA4_: ;
	{
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_195;
		NI TM_6NbDwwj5FY059b1gz2AsAZQ_196;
		if (month < 1 || month > 12) raiseIndexError3(month, 1, 12);
		TM_6NbDwwj5FY059b1gz2AsAZQ_195 = addInt(daysUntilMonth_TV2R7Va3CeAXpg6eZUosdg[(month)- 1], ((NI) (monthday)));
		TM_6NbDwwj5FY059b1gz2AsAZQ_196 = subInt((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_195), ((NI) 1));
		result = ((NI)chckRange((NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_196), ((NI) 0), ((NI) 365)));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initDateTime_9aNghJ6FEvB9bmfWkrG4iUag)(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ zt, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime;
	tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw T1_;
	NI64 s;
	NI64 epochday;
	NI64 rem;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_125;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_126;
	NI64 hour;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_127;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_128;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_129;
	NI64 minute;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_130;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_131;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_132;
	NI64 second;
	tyTuple_XjuGlLf9cyYx66ViXrBCvPQ T2_;
	NI d;
	tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw m;
	NI y;
	T1_ = initDuration_wcR3zetvspAUsyuvWZ07Xg(IL64(0), IL64(0), IL64(0), ((NI64) (zt.utcOffset)), IL64(0), IL64(0), IL64(0), IL64(0));
	adjTime = ntSubTime(zt.time, T1_);
	s = adjTime.seconds;
	epochday = floorDiv_AhJW2V9aOggsJyHuT9bgq9bug(s, ((NI) 86400));
	TM_6NbDwwj5FY059b1gz2AsAZQ_125 = mulInt64(epochday, IL64(86400));
	TM_6NbDwwj5FY059b1gz2AsAZQ_126 = subInt64(s, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_125));
	rem = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_126);
	TM_6NbDwwj5FY059b1gz2AsAZQ_127 = divInt64(rem, IL64(3600));
	hour = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_127);
	TM_6NbDwwj5FY059b1gz2AsAZQ_128 = mulInt64(hour, IL64(3600));
	TM_6NbDwwj5FY059b1gz2AsAZQ_129 = subInt64(rem, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_128));
	rem = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_129);
	TM_6NbDwwj5FY059b1gz2AsAZQ_130 = divInt64(rem, IL64(60));
	minute = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_130);
	TM_6NbDwwj5FY059b1gz2AsAZQ_131 = mulInt64(minute, IL64(60));
	TM_6NbDwwj5FY059b1gz2AsAZQ_132 = subInt64(rem, (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_131));
	rem = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_132);
	second = rem;
	T2_ = fromEpochDay_Q6dL9aKf9alEEEm3deeqatPQ(epochday);
	d = T2_.Field0;
	m = T2_.Field1;
	y = T2_.Field2;
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_d9cK9cyKZPJJxFXUmx8dSpPw_));
	(*Result).Sup.m_type = (&NTI_d9cK9cyKZPJJxFXUmx8dSpPw_);
	(*Result).year = y;
	(*Result).month = m;
	(*Result).monthday = d;
	(*Result).hour = ((NI)chckRange64(hour, ((NI) 0), ((NI) 23)));
	(*Result).minute = ((NI)chckRange64(minute, ((NI) 0), ((NI) 59)));
	(*Result).second = ((NI)chckRange64(second, ((NI) 0), ((NI) 60)));
	(*Result).nanosecond = zt.time.nanosecond;
	(*Result).weekday = getDayOfWeek_TMYR1EBf9be9ao182X9aB6FsQ(d, m, y);
	(*Result).yearday = getDayOfYear_v9bv9bJVWRRmGny5jy7KFbgQ(d, m, y);
	(*Result).isDst = zt.isDst;
	unsureAsgnRef((void**) (&(*Result).timezone), zone);
	(*Result).utcOffset = zt.utcOffset;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, zonedTimeFromTime_zT9bMgAwfe1o0G71u2tO24Q)(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ));
	result = (*zone).zonedTimeFromTimeImpl.ClE_0? (*zone).zonedTimeFromTimeImpl.ClP_0(time, (*zone).zonedTimeFromTimeImpl.ClE_0):((TM_6NbDwwj5FY059b1gz2AsAZQ_197)((*zone).zonedTimeFromTimeImpl.ClP_0))(time);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, inZone_o59cT0ssqq4BC09cuUGSdJiA)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ T1_;
	T1_ = zonedTimeFromTime_zT9bMgAwfe1o0G71u2tO24Q(zone, time);
	initDateTime_9aNghJ6FEvB9bmfWkrG4iUag(T1_, zone, Result);
}

static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_Y66tOYFjgwJ0k4aLz4bc0Q((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) - (NU32)(((NI) 8)));
	{
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI) 8)))));
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef_AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone_wByPoqWZicj9aruaaS1n9bFQ)(NimStringDesc* name, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromAdjTimeImpl) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* result;
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	NimStringDesc* T2_;
	result = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*) newObj((&NTI_9a5v4OQPlGqsA25ioN8hFYA_), sizeof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw));
	T2_ = (NimStringDesc*)0;
	T2_ = (*T1_).name; (*T1_).name = copyStringRC1(name);
	if (T2_) nimGCunrefNoCycle(T2_);
	asgnRef((void**) (&(*T1_).zonedTimeFromTimeImpl.ClE_0), zonedTimeFromTimeImpl.ClE_0);
	(*T1_).zonedTimeFromTimeImpl.ClP_0 = zonedTimeFromTimeImpl.ClP_0;
	asgnRef((void**) (&(*T1_).zonedTimeFromAdjTimeImpl.ClE_0), zonedTimeFromAdjTimeImpl.ClE_0);
	(*T1_).zonedTimeFromAdjTimeImpl.ClP_0 = zonedTimeFromAdjTimeImpl.ClP_0;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, utcTzInfo_uDYZeDxzpPQoN8cxZKMtTQ)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ));
	chckNil((void*)(&result));
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ));
	result.utcOffset = ((NI) 0);
	result.isDst = NIM_FALSE;
	result.time = time;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, utc_qUBQvQNLA9buHXwkwhObxQg)(void) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* result;
	result = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	{
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T5_;
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T6_;
		if (!(utcInstance_oeKVHn4dFpBJO35HhEkelw == 0)) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T5_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_198) (utcTzInfo_uDYZeDxzpPQoN8cxZKMtTQ)); T5_.ClE_0 = NIM_NIL;
		nimZeroMem((void*)(&T6_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T6_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_199) (utcTzInfo_uDYZeDxzpPQoN8cxZKMtTQ)); T6_.ClE_0 = NIM_NIL;
		asgnRef((void**) (&utcInstance_oeKVHn4dFpBJO35HhEkelw), newTimezone_wByPoqWZicj9aruaaS1n9bFQ(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_31), T5_, T6_));
	}
	LA3_: ;
	result = utcInstance_oeKVHn4dFpBJO35HhEkelw;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, utc_JDUz4bfwLSZvJxYV9aiNG9bg)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	T1_ = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = utc_qUBQvQNLA9buHXwkwhObxQg();
	inZone_o59cT0ssqq4BC09cuUGSdJiA(t, T1_, Result);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, initTime_JIXNH9cQMG3SbZ0hXqEYDvA)(NI64 unix, NI nanosecond) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	result.seconds = unix;
	result.nanosecond = nanosecond;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, fromUnix_tTrGV9aPQsM9bPX19apdE19cAA)(NI64 unix) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	result = initTime_JIXNH9cQMG3SbZ0hXqEYDvA(unix, ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, getTime_h20mpqrwsumk6J9bRdCm6IQ)(void) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	struct timespec ts;
	int T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	nimZeroMem((void*)(&ts), sizeof(struct timespec));
	T1_ = (int)0;
	T1_ = clock_gettime(CLOCK_REALTIME, (&ts));
	(void)(T1_);
	result = initTime_JIXNH9cQMG3SbZ0hXqEYDvA(((NI64) (ts.tv_sec)), ((NI)chckRange(ts.tv_nsec, ((NI) 0), ((NI) 999999999))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_5aADVWvtnd9aihEMOlhe37A)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format_mJBnGHvSWAC6GZ5ELoijxg(dt, TM_6NbDwwj5FY059b1gz2AsAZQ_200, (&TM_6NbDwwj5FY059b1gz2AsAZQ_50));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ntLtTime)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (a.seconds < b.seconds);
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = (a.seconds == b.seconds);
	if (!(T3_)) goto LA4_;
	T3_ = (((NI) (a.nanosecond)) < ((NI) (b.nanosecond)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI64, toAdjUnix_7gZ56sIczRw5Us60WRxM6Q)(struct tm tm) {
	NI64 result;
	NI64 epochDay;
	NI32 TM_6NbDwwj5FY059b1gz2AsAZQ_204;
	NI TM_6NbDwwj5FY059b1gz2AsAZQ_205;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_206;
	NI32 TM_6NbDwwj5FY059b1gz2AsAZQ_207;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_208;
	NI32 TM_6NbDwwj5FY059b1gz2AsAZQ_209;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_210;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_211;
	result = (NI64)0;
	TM_6NbDwwj5FY059b1gz2AsAZQ_204 = addInt(tm.tm_mon, ((NI32) 1));
	TM_6NbDwwj5FY059b1gz2AsAZQ_205 = addInt(((NI) (tm.tm_year)), ((NI) 1900));
	epochDay = toEpochDay_cWHW5k8iz9aeqtjYJ7yMEUw(((NI)chckRange(tm.tm_mday, ((NI) 1), ((NI) 31))), ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw)chckRange((NI32)(TM_6NbDwwj5FY059b1gz2AsAZQ_204), ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 1), ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) 12))), (NI)(TM_6NbDwwj5FY059b1gz2AsAZQ_205));
	TM_6NbDwwj5FY059b1gz2AsAZQ_206 = mulInt64(epochDay, IL64(86400));
	result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_206);
	TM_6NbDwwj5FY059b1gz2AsAZQ_207 = mulInt(tm.tm_hour, ((NI32) 3600));
	TM_6NbDwwj5FY059b1gz2AsAZQ_208 = addInt64(result, ((NI) ((NI32)(TM_6NbDwwj5FY059b1gz2AsAZQ_207))));
	result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_208);
	TM_6NbDwwj5FY059b1gz2AsAZQ_209 = mulInt(tm.tm_min, ((NI32) 60));
	TM_6NbDwwj5FY059b1gz2AsAZQ_210 = addInt64(result, ((NI) ((NI32)(TM_6NbDwwj5FY059b1gz2AsAZQ_209))));
	result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_210);
	TM_6NbDwwj5FY059b1gz2AsAZQ_211 = addInt64(result, ((NI) (tm.tm_sec)));
	result = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_211);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyTuple_pfrdooyxJsC6cg34ebuBag, getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA)(NI64 unix) {
	tyTuple_pfrdooyxJsC6cg34ebuBag result;
	long a;
	NI64 T1_;
	struct tm* tmPtr;
	NI colontmp__3;
	NIM_BOOL colontmp__4;
{	nimZeroMem((void*)(&result), sizeof(tyTuple_pfrdooyxJsC6cg34ebuBag));
	T1_ = (NI64)0;
	T1_ = clamp_4FyNK9boFeHv6A9b7jEfnv4Q(unix, IL64(-2147483648), IL64(2147483647));
	a = ((long)chckRange64(T1_, ((long) (-2147483647 -1)), ((long) 2147483647)));
	tmPtr = localtime((&a));
	{
		struct tm tm;
		NI colontmp_;
		NI64 T6_;
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_212;
		NIM_BOOL colontmp__2;
		if (!!((tmPtr == 0))) goto LA4_;
		tm = (*tmPtr);
		T6_ = (NI64)0;
		T6_ = toAdjUnix_7gZ56sIczRw5Us60WRxM6Q(tm);
		TM_6NbDwwj5FY059b1gz2AsAZQ_212 = subInt64(((NI64) (a)), T6_);
		colontmp_ = ((NI)chckRange64((NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_212), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
		colontmp__2 = (((NI32) 0) < tm.tm_isdst);
		result.Field0 = colontmp_;
		result.Field1 = colontmp__2;
		goto BeforeRet_;
	}
	LA4_: ;
	colontmp__3 = ((NI) 0);
	colontmp__4 = NIM_FALSE;
	result.Field0 = colontmp__3;
	result.Field1 = colontmp__4;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromTime_uDYZeDxzpPQoN8cxZKMtTQ_2)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ result;
	tyTuple_pfrdooyxJsC6cg34ebuBag T1_;
	NI offset;
	NIM_BOOL dst;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ));
	T1_ = getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA(time.seconds);
	offset = T1_.Field0;
	dst = T1_.Field1;
	result.time = time;
	result.utcOffset = offset;
	result.isDst = dst;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromAdjTime_GmSlVYJeJjQvBZrTGP0v1w)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ result;
	NI64 adjUnix;
	NI64 past;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_214;
	tyTuple_pfrdooyxJsC6cg34ebuBag T1_;
	NI pastOffset;
	NIM_BOOL _;
	NI64 future;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_215;
	tyTuple_pfrdooyxJsC6cg34ebuBag T2_;
	NI futureOffset;
	NIM_BOOL __2;
	NI utcOffset;
	NI64 utcUnix;
	NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_218;
	tyTuple_pfrdooyxJsC6cg34ebuBag T13_;
	NI finalOffset;
	NIM_BOOL dst;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ));
	adjUnix = adjTime.seconds;
	TM_6NbDwwj5FY059b1gz2AsAZQ_214 = subInt64(adjUnix, IL64(86400));
	past = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_214);
	T1_ = getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA(past);
	pastOffset = T1_.Field0;
	_ = T1_.Field1;
	TM_6NbDwwj5FY059b1gz2AsAZQ_215 = addInt64(adjUnix, IL64(86400));
	future = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_215);
	T2_ = getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA(future);
	futureOffset = T2_.Field0;
	__2 = T2_.Field1;
	utcOffset = (NI)0;
	{
		if (!(pastOffset == futureOffset)) goto LA5_;
		utcOffset = pastOffset;
	}
	goto LA3_;
	LA5_: ;
	{
		NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_217;
		tyTuple_pfrdooyxJsC6cg34ebuBag T12_;
		{
			NI64 TM_6NbDwwj5FY059b1gz2AsAZQ_216;
			if (!(futureOffset < pastOffset)) goto LA10_;
			TM_6NbDwwj5FY059b1gz2AsAZQ_216 = subInt64(adjUnix, ((NI) 3600));
			adjUnix = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_216);
		}
		LA10_: ;
		TM_6NbDwwj5FY059b1gz2AsAZQ_217 = addInt64(adjUnix, ((NI64) (pastOffset)));
		adjUnix = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_217);
		T12_ = getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA(adjUnix);
		utcOffset = T12_.Field0;
	}
	LA3_: ;
	TM_6NbDwwj5FY059b1gz2AsAZQ_218 = addInt64(adjTime.seconds, ((NI64) (utcOffset)));
	utcUnix = (NI64)(TM_6NbDwwj5FY059b1gz2AsAZQ_218);
	T13_ = getLocalOffsetAndDst_wPlTAoiD9bfaYQuVXohuphA(utcUnix);
	finalOffset = T13_.Field0;
	dst = T13_.Field1;
	result.time = initTime_JIXNH9cQMG3SbZ0hXqEYDvA(utcUnix, adjTime.nanosecond);
	result.utcOffset = finalOffset;
	result.isDst = dst;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, local_qUBQvQNLA9buHXwkwhObxQg_2)(void) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* result;
	result = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	{
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T5_;
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T6_;
		if (!(localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA == 0)) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T5_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_213) (localZonedTimeFromTime_uDYZeDxzpPQoN8cxZKMtTQ_2)); T5_.ClE_0 = NIM_NIL;
		nimZeroMem((void*)(&T6_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T6_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_219) (localZonedTimeFromAdjTime_GmSlVYJeJjQvBZrTGP0v1w)); T6_.ClE_0 = NIM_NIL;
		asgnRef((void**) (&localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA), newTimezone_wByPoqWZicj9aruaaS1n9bFQ(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_203), T5_, T6_));
	}
	LA3_: ;
	result = localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, local_JDUz4bfwLSZvJxYV9aiNG9bg_2)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	T1_ = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = local_qUBQvQNLA9buHXwkwhObxQg_2();
	inZone_o59cT0ssqq4BC09cuUGSdJiA(t, T1_, Result);
}

N_LIB_PRIVATE N_NIMCALL(void, now_YmAcAi9bz5G8OQqVFWHN2uA)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q T1_;
	T1_ = getTime_h20mpqrwsumk6J9bRdCm6IQ();
	local_JDUz4bfwLSZvJxYV9aiNG9bg_2(T1_, Result);
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_ADP1KtY4gYCU9cpquETfo6A)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format_mJBnGHvSWAC6GZ5ELoijxg(dt, TM_6NbDwwj5FY059b1gz2AsAZQ_220, (&TM_6NbDwwj5FY059b1gz2AsAZQ_50));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI64, toUnix_mXmxlr1pBpariZiJTjytHg)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t) {
	NI64 result;
	result = (NI64)0;
	result = t.seconds;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesInit000)(void) {
{

	nimRegisterThreadLocalMarker(TM_6NbDwwj5FY059b1gz2AsAZQ_4);


	nimRegisterThreadLocalMarker(TM_6NbDwwj5FY059b1gz2AsAZQ_5);

	tzset();
}
}

N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesDatInit000)(void) {
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_2_3[3];
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_3_2[2];
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[12];
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_89_12[12];
NI TM_6NbDwwj5FY059b1gz2AsAZQ_91;
static char* NIM_CONST TM_6NbDwwj5FY059b1gz2AsAZQ_90[12] = {
"January", 
"February", 
"March", 
"April", 
"May", 
"June", 
"July", 
"August", 
"September", 
"October", 
"November", 
"December"};
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_92_7[7];
NI TM_6NbDwwj5FY059b1gz2AsAZQ_94;
static char* NIM_CONST TM_6NbDwwj5FY059b1gz2AsAZQ_93[7] = {
"Monday", 
"Tuesday", 
"Wednesday", 
"Thursday", 
"Friday", 
"Saturday", 
"Sunday"};
static TNimNode TM_6NbDwwj5FY059b1gz2AsAZQ_0[42];
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.size = sizeof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw);
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.kind = 18;
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.base = 0;
TM_6NbDwwj5FY059b1gz2AsAZQ_2_3[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[1];
NTI_bs1dgeTxHIjPGTR9axkkHbg_.size = sizeof(tyTuple_JfHvHzMrhKkWAUvQKe0i1A);
NTI_bs1dgeTxHIjPGTR9axkkHbg_.kind = 18;
NTI_bs1dgeTxHIjPGTR9axkkHbg_.base = 0;
TM_6NbDwwj5FY059b1gz2AsAZQ_3_2[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[3];
NTI_vr5DoT1jILTGdRlYv1OYpw_.size = sizeof(void*);
NTI_vr5DoT1jILTGdRlYv1OYpw_.kind = 26;
NTI_vr5DoT1jILTGdRlYv1OYpw_.base = 0;
NTI_vr5DoT1jILTGdRlYv1OYpw_.flags = 3;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].offset = offsetof(tyTuple_JfHvHzMrhKkWAUvQKe0i1A, Field0);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].typ = (&NTI_vr5DoT1jILTGdRlYv1OYpw_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].name = "Field0";
TM_6NbDwwj5FY059b1gz2AsAZQ_3_2[1] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[4];
NTI_diB2NTuAIWY0FO9c5IUJRGg_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg);
NTI_diB2NTuAIWY0FO9c5IUJRGg_.kind = 17;
NTI_diB2NTuAIWY0FO9c5IUJRGg_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
NTI_diB2NTuAIWY0FO9c5IUJRGg_.flags = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[5].len = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_0[5].kind = 2;
NTI_diB2NTuAIWY0FO9c5IUJRGg_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[5];
NTI_HsJiUUcO9cHBdUCi0HwkSTA_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashlibslashpureslashtimesdotnim__diB2NTuAIWY0FO9c5IUJRGg*);
NTI_HsJiUUcO9cHBdUCi0HwkSTA_.kind = 22;
NTI_HsJiUUcO9cHBdUCi0HwkSTA_.base = (&NTI_diB2NTuAIWY0FO9c5IUJRGg_);
NTI_HsJiUUcO9cHBdUCi0HwkSTA_.marker = Marker_tyRef_HsJiUUcO9cHBdUCi0HwkSTA;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].offset = offsetof(tyTuple_JfHvHzMrhKkWAUvQKe0i1A, Field1);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].typ = (&NTI_HsJiUUcO9cHBdUCi0HwkSTA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].name = "Field1";
TM_6NbDwwj5FY059b1gz2AsAZQ_0[2].len = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[2].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[2].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_3_2[0];
NTI_bs1dgeTxHIjPGTR9axkkHbg_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[2];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[1].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[1].offset = offsetof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw, zonedTimeFromTimeImpl);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[1].typ = (&NTI_bs1dgeTxHIjPGTR9axkkHbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[1].name = "zonedTimeFromTimeImpl";
TM_6NbDwwj5FY059b1gz2AsAZQ_2_3[1] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[6];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[6].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[6].offset = offsetof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw, zonedTimeFromAdjTimeImpl);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[6].typ = (&NTI_bs1dgeTxHIjPGTR9axkkHbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[6].name = "zonedTimeFromAdjTimeImpl";
TM_6NbDwwj5FY059b1gz2AsAZQ_2_3[2] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[7];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[7].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[7].offset = offsetof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw, name);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[7].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[7].name = "name";
TM_6NbDwwj5FY059b1gz2AsAZQ_0[0].len = 3; TM_6NbDwwj5FY059b1gz2AsAZQ_0[0].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[0].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_2_3[0];
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[0];
NTI_9a5v4OQPlGqsA25ioN8hFYA_.size = sizeof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*);
NTI_9a5v4OQPlGqsA25ioN8hFYA_.kind = 22;
NTI_9a5v4OQPlGqsA25ioN8hFYA_.base = (&NTI_F8OvqlxXyGXRSiK9c1fCDVw_);
NTI_9a5v4OQPlGqsA25ioN8hFYA_.marker = Marker_tyRef_9a5v4OQPlGqsA25ioN8hFYA;
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.size = sizeof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw);
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.kind = 17;
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[9];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[9].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[9].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, nanosecond);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[9].typ = (&NTI_PpavWgyrx5odXyR89aNlcWA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[9].name = "nanosecond";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[1] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[10];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[10].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[10].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, second);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[10].typ = (&NTI_rUuqTvFmkC6KKRqDAazGEA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[10].name = "second";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[2] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[11];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[11].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[11].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, minute);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[11].typ = (&NTI_LBgXxpmYOpS8xroRZgNvbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[11].name = "minute";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[3] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[12];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[12].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[12].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, hour);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[12].typ = (&NTI_Gz6vwaK0PZQIDIwfuvKsOg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[12].name = "hour";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[4] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[13];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[13].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[13].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, monthday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[13].typ = (&NTI_DcZ5N67dL3rBj9bxGtx09bFg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[13].name = "monthday";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[5] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[14];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.size = sizeof(tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw);
NTI_JS0JuFvCBbC2GL3xXBnPQw_.kind = 14;
NTI_JS0JuFvCBbC2GL3xXBnPQw_.base = 0;
NTI_JS0JuFvCBbC2GL3xXBnPQw_.flags = 3;
for (TM_6NbDwwj5FY059b1gz2AsAZQ_91 = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_91 < 12; TM_6NbDwwj5FY059b1gz2AsAZQ_91++) {
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_91+15].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_91+15].offset = TM_6NbDwwj5FY059b1gz2AsAZQ_91;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_91+15].name = TM_6NbDwwj5FY059b1gz2AsAZQ_90[TM_6NbDwwj5FY059b1gz2AsAZQ_91];
TM_6NbDwwj5FY059b1gz2AsAZQ_89_12[TM_6NbDwwj5FY059b1gz2AsAZQ_91] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_91+15];
}
TM_6NbDwwj5FY059b1gz2AsAZQ_0[15].offset = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[16].offset = 2;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[17].offset = 3;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[18].offset = 4;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[19].offset = 5;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[20].offset = 6;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[21].offset = 7;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[22].offset = 8;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[23].offset = 9;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[24].offset = 10;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[25].offset = 11;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[26].offset = 12;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[27].len = 12; TM_6NbDwwj5FY059b1gz2AsAZQ_0[27].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[27].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_89_12[0];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[27];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.flags = 1<<2;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[14].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[14].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, month);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[14].typ = (&NTI_JS0JuFvCBbC2GL3xXBnPQw_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[14].name = "month";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[6] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[28];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, year);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].name = "year";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[7] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[29];
NTI_SVfemTA9aCOyua2TJYa6yBg_.size = sizeof(tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg);
NTI_SVfemTA9aCOyua2TJYa6yBg_.kind = 14;
NTI_SVfemTA9aCOyua2TJYa6yBg_.base = 0;
NTI_SVfemTA9aCOyua2TJYa6yBg_.flags = 3;
for (TM_6NbDwwj5FY059b1gz2AsAZQ_94 = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_94 < 7; TM_6NbDwwj5FY059b1gz2AsAZQ_94++) {
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_94+30].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_94+30].offset = TM_6NbDwwj5FY059b1gz2AsAZQ_94;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_94+30].name = TM_6NbDwwj5FY059b1gz2AsAZQ_93[TM_6NbDwwj5FY059b1gz2AsAZQ_94];
TM_6NbDwwj5FY059b1gz2AsAZQ_92_7[TM_6NbDwwj5FY059b1gz2AsAZQ_94] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_94+30];
}
TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].len = 7; TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_92_7[0];
NTI_SVfemTA9aCOyua2TJYa6yBg_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[37];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, weekday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].typ = (&NTI_SVfemTA9aCOyua2TJYa6yBg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].name = "weekday";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[8] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[38];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, yearday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].typ = (&NTI_g9buja9c9aeh0rkDpqsXOJF9bA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].name = "yearday";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[9] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[39];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, isDst);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].name = "isDst";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[10] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[40];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, timezone);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].typ = (&NTI_9a5v4OQPlGqsA25ioN8hFYA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].name = "timezone";
TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[11] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[41];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, utcOffset);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].name = "utcOffset";
TM_6NbDwwj5FY059b1gz2AsAZQ_0[8].len = 12; TM_6NbDwwj5FY059b1gz2AsAZQ_0[8].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[8].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_88_12[0];
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[8];
}

