/* Generated by Nim Compiler v1.4.0 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
typedef struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA tySequence__PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ;
typedef struct tySequence__YWbgnI9b9a4j9aDYnupShIg3A tySequence__YWbgnI9b9a4j9aDYnupShIg3A;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg;
typedef struct tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ;
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__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__JokFGfUW6i9b6aeU7xu6xBw tySequence__JokFGfUW6i9b6aeU7xu6xBw;
typedef struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyTuple__SlmU1Ju0WFHUWkihyHMVYg;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyTuple__C1iPjdrPjiQaUrcFhIp9aGw tyTuple__C1iPjdrPjiQaUrcFhIp9aGw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA;

/* section: NIM_merge_TYPES */
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;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NU8 tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ;
typedef NU8 tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg {
NF tEnter;
tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ* tos;
};
struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tySequence__YdLNCDKYeipzJx3I8Xw82Q* code;
tySequence__PJMRIt5QxCm6bRaVyQ5CGA* debug;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* globals;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constants;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* types;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* prc;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callsite;
tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ mode;
tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
tySequence__YWbgnI9b9a4j9aDYnupShIg3A* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
NI oldErrorCount;
tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg profiler;
NI* templInstCounter;
};
typedef NU8 tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ;
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
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__SPr7N6UKfuF549bNPiUvSRw[256];
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__SPr7N6UKfuF549bNPiUvSRw 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 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU8 tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ;
struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg {
NIM_BOOL Field0;
tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ Field1;
};
typedef tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyArray__EYsuRBqqo81SUrCUzYSAKA[65536];
struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ {
tySequence__JokFGfUW6i9b6aeU7xu6xBw* blocks;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__EYsuRBqqo81SUrCUzYSAKA slots;
NI maxSlots;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc__5QC9cKfPJmKuW0XbCTd8ylA;
struct tyTuple__C1iPjdrPjiQaUrcFhIp9aGw {
NimStringDesc* Field0;
tyProc__5QC9cKfPJmKuW0XbCTd8ylA Field1;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* label;
tySequence__qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA* slots;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
  TGenericSeq Sup;
  NU64 data[SEQ_DECL_SIZE];
};
struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__JokFGfUW6i9b6aeU7xu6xBw {
  TGenericSeq Sup;
  tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__YWbgnI9b9a4j9aDYnupShIg3A {
  TGenericSeq Sup;
  tyTuple__C1iPjdrPjiQaUrcFhIp9aGw data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBody__ocxOgPRHWfivNZELIhOv7w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache);
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx__vCfZ9bElZa5k2CDWM9coPmBA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen__jht1XYyYWKYwfRpm130Gcg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__jht1XYyYWKYwfRpm130Gcg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__TIX0sFuRf3uBpOBltYp7bw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__hjogdnp59cMX1rwmjikBhqw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType__PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__duEomvr9bK43tarDYX26gsA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, genx__uIB1V7YFWyQzDYKijoL1tA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC__UIRVqkSOpk264WekB9cpXRw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
static N_INLINE(NimStringDesc*, toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, addInt__mftMOxbyu0h4yByfs3sqjA)(NimStringDesc** result, NI64 x);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__0hqyrQPuS5o8lQCNfzUziw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NimStringDesc*, X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem)(NimStringDesc** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, genLit__lTwxbV0wsOSkbi9adg16xrw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__E6EPoKGcZLyzaPi29aeeG7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__nCoAHjo16P5zqJafFfwLew)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__DlG7xpoz9cztsbek49cNKVUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__olzvRW3Qlk2DhgCa4FP0Fg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, gen__4hhMx9acAaFJrVXUkV9bC0RA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__dSCPDAfahz444v0bhbpQAA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, gABI__2Xc89bNXyQiyYVPoh9brP5Lg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__dSCPDAfahz444v0bhbpQAA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__9bocefL9bdayauH9bAGnbttOQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
static N_INLINE(void, unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__M5LvI9cd9ck3A7bD4QIkuGkA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___7c5Zw7H31uJfWmmhZe9aEqw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, genField__hsBsLv9cKR5frmhKTX7rURw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__C1MQfgDmfXqO1v69aAZbuYA)(NimStringDesc* strVal, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__3isNyHKb0U1OCnClmflXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__dSCPDAfahz444v0bhbpQAA_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard__lTwxbV0wsOSkbi9adg16xrw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genConv__5o3JB8z8Vaytpw5QzBCu2w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__dSCPDAfahz444v0bhbpQAA_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__dSCPDAfahz444v0bhbpQAA_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__QYpBvcTLkwTKaaaJK2K4LQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerSwap__8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__w6wTV78X6bUwnyRSPSSgQw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__lTwxbV0wsOSkbi9adg16xrw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCall__lTwxbV0wsOSkbi9adg16xrw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(void, clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__jht1XYyYWKYwfRpm130Gcg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__jht1XYyYWKYwfRpm130Gcg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref__jht1XYyYWKYwfRpm130Gcg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr__jht1XYyYWKYwfRpm130Gcg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf__lTwxbV0wsOSkbi9adg16xrw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase__lTwxbV0wsOSkbi9adg16xrw_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__lTwxbV0wsOSkbi9adg16xrw_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry__lTwxbV0wsOSkbi9adg16xrw_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize__vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);

/* section: NIM_merge_DATA */
extern TNimType NTI__YdLNCDKYeipzJx3I8Xw82Q_;
extern TNimType NTI__PJMRIt5QxCm6bRaVyQ5CGA_;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_2, "VM: immediate value does not fit into regBx", 43);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_4, "/home/runner/work/nightlies/nightlies/nim/compiler/vmgen.nim", 60);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_3 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 157),
((NI) 14)}
;
extern TNimType NTI__FM7mzTFsA8pyUhXVKKO6Gw_;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_5, "cannot evaluate at compile time: ", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_6 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1438),
((NI) 13)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_7, "cannot \'importc\' variable at compile time; ", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_8 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1577),
((NI) 14)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_9, "vmgen.nim(1768, 14) `obj.sym.position == currPosition` ", 55);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_10, "cannot create null element for: ", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_11 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1770),
((NI) 19)}
;
extern TNimType NTI__9a3YiReNVD0IJHWFKgXRe9ag_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_12 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1813),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_13, "VM problem: too many registers required", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_14 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 222),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_15, "(", 1);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_16, ", ", 2);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_17, ")", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_18 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1632),
((NI) 22)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_19, "*", 1);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_20, "vmgen.nim(1968, 16) `s.offset == -1` ", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_21 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 443),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_22, "cannot generate code for: ", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_23 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2005),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_24 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2007),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_25 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 179),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_26, "VM: immediate value does not fit into an int8", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_27 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 140),
((NI) 14)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_28, "not unused", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_29 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 473),
((NI) 15)}
;
extern NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Zero__1ed0M9aQUqqSQVhLxSQO9bCw;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_30 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1681),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_31 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1693),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_32, "no field symbol", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_33 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 612),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_34, "too large offset! cannot generate code for: ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_35 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 615),
((NI) 15)}
;
extern TNimType NTI__Ef05srmQTDulnBdXR4Ja6Q_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_36 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 516),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_37 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 260),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_38, "getType", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_39, "typeKind", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_40, "getTypeInst", 11);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_41, "getSize", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_42, "getAlign", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_43, "invalid bindSym usage", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_44 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 929),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_45, "getFile", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_46, "getLine", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_47, "getColumn", 9);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_48, "copyLineInfo", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_49 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1285),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_50 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1288),
((NI) 25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_51 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 595),
((NI) 21)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_52, "expandToAst requires 1 argument", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_53 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1311),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_54, "expandToAst requires a call expression", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_55 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1321),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_56, "\'$1\' requires \'.importc\' types to be \'.completeStruct\'", 54);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_58, "sizeof", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__24XApAWKNvaMkcyklm8bNA_57 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_58)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_59 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1323),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_61, "alignof", 7);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__24XApAWKNvaMkcyklm8bNA_60 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_61)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_62 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1325),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_64, "offsetof", 8);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__24XApAWKNvaMkcyklm8bNA_63 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_64)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_65 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1327),
((NI) 15)}
;
extern TNimType NTI__shZhZOdbVC5nnFvcXQAImg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_66 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1345),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_67, "cannot call method ", 19);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_68, " at compile time", 16);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_69 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2014),
((NI) 18)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_71, "stdlib", 6);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_72, "marshal", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_73, "to", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_70 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_71),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_72),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_73)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_75, "$$", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_74 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_71),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_72),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_75)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_76 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1541),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_77 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1725),
((NI) 17)}
;
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
static NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM__24XApAWKNvaMkcyklm8bNA_79 = {{0, 0 | NIM_STRLIT_FLAG}};
static NIM_CONST tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ TM__24XApAWKNvaMkcyklm8bNA_78 = {NIM_NIL, ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__24XApAWKNvaMkcyklm8bNA_79)}
;
extern TNimType NTI__JokFGfUW6i9b6aeU7xu6xBw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_80 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 171),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_81, "VM problem: cannot find \'break\' target", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_82 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 373),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_83, "invalid object constructor", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_84 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 1925),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_85, "VM does not support \'cast\' from ", 32);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_86, " to ", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_87 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 905),
((NI) 15)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_88, "cannot generate VM code for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_89 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2124),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_90 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2165),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_91, "VM problem: dest register is not set", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_92 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2150),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_93, "VM problem: dest register is set", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_94 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_4),
((NI) 2141),
((NI) 15)}
;

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return 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 = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
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;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(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__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((12288 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABx__vCfZ9bElZa5k2CDWM9coPmBA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388608) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 8388607));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) ((NI)(bx + ((NI) 8388608))))) << (NU64)(24ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_2), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__24XApAWKNvaMkcyklm8bNA_3, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, opc, a, ((NI) 0));
	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(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params) {
	NIM_BOOL colontmp_;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
	NI T4_;
	colontmp_ = NIM_TRUE;
	colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
	(*(*c).prc).slots[(((NI) 0))- 0].Field0 = colontmp_;
	(*(*c).prc).slots[(((NI) 0))- 0].Field1 = colontmp__2;
	{
		NI i;
		NI colontmp__3;
		NI i_2;
		i = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				NIM_BOOL colontmp__4;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__5;
				if (!(i_2 < colontmp__3)) goto LA3;
				i = i_2;
				colontmp__4 = NIM_TRUE;
				colontmp__5 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				(*(*c).prc).slots[(i)- 0].Field0 = colontmp__4;
				(*(*c).prc).slots[(i)- 0].Field1 = colontmp__5;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
	(*(*c).prc).maxSlots = ((T4_ >= ((NI) 1)) ? T4_ : ((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp) {
	NI base;
	NI T4_;
	base = (*(*c).prc).maxSlots;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				NIM_BOOL colontmp__2;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				param = (*(*gp)._kind_6.sons->data[i])._kind_4.sym;
				(*param).position = (NI)(base + i);
				colontmp__2 = NIM_TRUE;
				colontmp__3 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				(*(*c).prc).slots[((NI)(base + i))- 0].Field0 = colontmp__2;
				(*(*c).prc).slots[((NI)(base + i))- 0].Field1 = colontmp__3;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
	(*(*c).prc).maxSlots = (NI)(base + T4_);
}
static N_INLINE(NIM_BOOL, importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA3_;
		result = ((1792 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}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__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = (*n).info;
	T2_ = (NimStringDesc*)0;
	T3_ = (NimStringDesc*)0;
	T3_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 33);
appendString(T2_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_5));
appendString(T2_, T3_);
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, T1_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T2_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_6, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
{	s = (*n)._kind_4.sym;
	{
		if (!((134217736 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T16_;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T14_ = ((2856 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		if (!(T14_)) goto LA15_;
		T16_ = (NIM_BOOL)0;
		T16_ = isOwnedBy__WuAduAQ6byDbQit0bpfaag(s, (*(*c).prc).sym);
		T14_ = !(T16_);
		LA15_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA17_;
		T13_ = !(((*s).owner == (*c).module));
		LA17_: ;
		T12_ = T13_;
		if (!(T12_)) goto LA18_;
		T12_ = !(((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0)));
		LA18_: ;
		if (!T12_) goto LA19_;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
			if (!(T23_)) goto LA24_;
			T23_ = ((*(*c).prc).sym == NIM_NIL);
			LA24_: ;
			if (!T23_) goto LA25_;
		}
		goto LA21_;
		LA25_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA21_: ;
	}
	goto LA10_;
	LA19_: ;
	{
		NIM_BOOL T29_;
		T29_ = (NIM_BOOL)0;
		T29_ = ((126976 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		if (!(T29_)) goto LA30_;
		T29_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA30_: ;
		if (!T29_) goto LA31_;
		cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA10_;
	LA31_: ;
	LA10_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA3_;
		{
			if (!((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			result = ((*(*(*s).ast)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 43);
appendString(T1_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_7));
appendString(T1_, (*(*s).name).s);
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T1_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__24XApAWKNvaMkcyklm8bNA_8, NIM_FALSE);
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		T4_ = (((NI) 0) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		LA7_: ;
		if (!T3_) goto LA8_;
		b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(b, (*b).n, result, conf, currPosition);
	}
	LA8_: ;
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj)._kind_6.sons->data[i], result, conf, currPosition);
					i_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj)._kind_6.sons->data[((NI) 0)], result, conf, currPosition);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					if (!(i_4 < colontmp__2)) goto LA17;
					i_3 = i_4;
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*obj)._kind_6.sons->data[i_3]);
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, T18_, result, conf, currPosition);
					i_4 += ((NI) 1);
				} LA17: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		field = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), (*result).info);
		add__P8dDSotTW25BkfbyspojGg(field, obj);
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*(*obj)._kind_4.sym).typ, (*result).info, conf);
		add__P8dDSotTW25BkfbyspojGg(field, T20_);
		add__P8dDSotTW25BkfbyspojGg(result, field);
		{
			if (!!(((*(*obj)._kind_4.sym).position == (*currPosition)))) goto LA23_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_9));
		}
		LA23_: ;
		(*currPosition) += ((NI) 1);
	}
	break;
	default:
	{
		NimStringDesc* T26_;
		NimStringDesc* T27_;
		T26_ = (NimStringDesc*)0;
		T27_ = (NimStringDesc*)0;
		T27_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T26_ = rawNewString((T27_ ? T27_->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
appendString(T26_, T27_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_11, NIM_FALSE);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743169040));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), info, t);
		asgnRef((void**) (&(*result)._kind_3.strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)))) goto LA9_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T12_);
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		NI currPosition;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), info, t);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info, t);
		add__P8dDSotTW25BkfbyspojGg(result, T15_);
		currPosition = ((NI) 0);
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(t, (*t).n, result, conf, (&currPosition));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T18_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3(conf, t);
			colontmp_ = toInt__TIX0sFuRf3uBpOBltYp7bw(T18_);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T21_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(t);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA(T21_, info, conf);
					add__P8dDSotTW25BkfbyspojGg(result, T22_);
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
					if (!(i_4 < colontmp__2)) goto LA26;
					i_3 = i_4;
					T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T27_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*t).sons->data[i_3], info, conf);
					add__P8dDSotTW25BkfbyspojGg(result, T27_);
					i_4 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T31_;
		T31_ = (NimStringDesc*)0;
		T31_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T31_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
appendString(T31_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_12, NIM_FALSE);
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).prc == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*c).prc).sym == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*(*(*c).prc).sym).info;
	}
	goto LA1_;
	LA5_: ;
	{
		result = (*(*c).module).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start) {
	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
	NIM_BOOL colontmp__5;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((*c).maxSlots - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*c).slots[(i)- 0].Field1 == k);
					if (!(T6_)) goto LA7_;
					T6_ = !((*c).slots[(i)- 0].Field0);
					LA7_: ;
					if (!T6_) goto LA8_;
					(*c).slots[(i)- 0].Field0 = NIM_TRUE;
					result = ((NI) (i));
					goto BeforeRet_;
				}
				LA8_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		if (!(((NI) 65535) <= (*c).maxSlots)) goto LA12_;
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)((*c).maxSlots - ((NI) 1));
			res_2 = start;
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA16;
					i_2 = res_2;
					{
						NIM_BOOL colontmp__3;
						tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__4;
						if (!!((*c).slots[(i_2)- 0].Field0)) goto LA19_;
						colontmp__3 = NIM_TRUE;
						colontmp__4 = k;
						(*c).slots[(i_2)- 0].Field0 = colontmp__3;
						(*c).slots[(i_2)- 0].Field1 = colontmp__4;
						result = ((NI) (i_2));
						goto BeforeRet_;
					}
					LA19_: ;
					res_2 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	LA12_: ;
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T25_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T26_;
		if (!(((NI) 65535) <= (*c).maxSlots)) goto LA23_;
		T25_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
		T25_ = (*cc).config;
		T26_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		liMessage__Q6JNH4uRwLyZrj0dJakHew(T25_, T26_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_13), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_14, NIM_FALSE);
	}
	LA23_: ;
	result = ((NI) ((((*c).maxSlots >= start) ? (*c).maxSlots : start)));
	colontmp__5 = NIM_TRUE;
	colontmp__6 = k;
	(*c).slots[(result)- 0].Field0 = colontmp__5;
	(*c).slots[(result)- 0].Field1 = colontmp__6;
	(*c).maxSlots = (NI)(((NI) (result)) + ((NI) 1));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__duEomvr9bK43tarDYX26gsA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt) {
	NI result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k;
	result = (NI)0;
	typ = skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2(tt, IL64(1152921504606846976));
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA(typ);
	}
	LA1_: ;
	result = getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q(cc, k, ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genx__uIB1V7YFWyQzDYKijoL1tA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		result = ((NI) (tmp));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABC__UIRVqkSOpk264WekB9cpXRw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c) {
	NU64 ins;
	NI T1_;
	NI T2_;
	ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) (c))) << (NU64)(40ULL)));
	asgnRef((void**) (&(*ctx).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*ctx).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
	T1_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T1_] = ins;
	asgnRef((void**) (&(*ctx).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*ctx).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
	T2_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T2_] = (*n).info;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy) {
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 6);
	}
	break;
	default:
	{
		{
			if (!requiresCopy) goto LA8_;
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 7);
		}
		goto LA6_;
		LA8_: ;
		{
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 14);
		}
		LA6_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r) {
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &((NU16)1<<((NU)((*c_2).slots[(r)- 0].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).slots[(r)- 0].Field0 = NIM_FALSE;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	NI cc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T2_;
	cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = n;
	T2_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T2_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, T1_, T2_, cc, value, ((NI) 0));
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, idx, cc);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
}
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NI dest;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*c).globals;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*n).info, (*c).config);
	add__P8dDSotTW25BkfbyspojGg(T1_, T2_);
	(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
	dest = getTemp__duEomvr9bK43tarDYX26gsA(c, (*s).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), dest, (*s).position);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		NI tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		if (!!((T5_ == NIM_NIL))) goto LA6_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, T8_, 0);
		genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest, ((NI) 0), tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273488));
	result = ((IL64(35182225670150) &((NU64)1<<((NU)((*T1_).kind)&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
	{
		tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ T5_;
		NI T11_;
		if (!((*v).position == ((NI) 0))) goto LA3_;
		T5_ = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
		{
			if (!((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
		}
		goto LA6_;
		LA8_: ;
		{
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
		}
		LA6_: ;
		T11_ = (NI)0;
		T11_ = getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q(c, T5_, ((NI) 1));
		(*v).position = ((NI) (T11_));
	}
	LA3_: ;
}
static N_INLINE(NimStringDesc*, toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
appendString(result, info.Field0);
	{
		if (!(((NI) 0) < info.Field1)) goto LA3_;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_15));
		addInt__mftMOxbyu0h4yByfs3sqjA((&result), ((NI64) (info.Field1)));
		{
			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
			result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_16));
			addInt__mftMOxbyu0h4yByfs3sqjA((&result), ((NI64) ((NI)(info.Field2 + ((NI) 1)))));
		}
		LA7_: ;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_17));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__0hqyrQPuS5o8lQCNfzUziw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	NI tmp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T2_;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = ri;
	T2_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T2_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(ri, requiresCopy);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, T1_, T2_, ((NI) (dest)), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__jht1XYyYWKYwfRpm130Gcg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	s = (*n)._kind_4.sym;
	{
		NIM_BOOL T3_;
		NIM_BOOL isImportcVar;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
		LA4_: ;
		if (!T3_) goto LA5_;
		isImportcVar = importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T10_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
			if (T10_) goto LA11_;
			T10_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA11_: ;
			T9_ = T10_;
			if (T9_) goto LA12_;
			T9_ = isImportcVar;
			LA12_: ;
			if (!T9_) goto LA13_;
		}
		goto LA7_;
		LA13_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA16_;
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		goto LA7_;
		LA16_: ;
		LA7_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA20_;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
				if (T24_) goto LA25_;
				T24_ = isImportcVar;
				LA25_: ;
				if (!T24_) goto LA26_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA22_;
			LA26_: ;
			{
				genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ(c, n, s);
			}
			LA22_: ;
		}
		LA20_: ;
		{
			NI T33_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA31_;
			T33_ = (NI)0;
			T33_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T33_));
		}
		LA31_: ;
		{
			if (!((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 1))&7U)))!=0)) goto LA36_;
			{
				if (!isImportcVar) goto LA40_;
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 177), ((NI) ((*dest))), (*s).position);
			}
			goto LA38_;
			LA40_: ;
			{
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 175), ((NI) ((*dest))), (*s).position);
			}
			LA38_: ;
		}
		goto LA34_;
		LA36_: ;
		{
			if (!isImportcVar) goto LA44_;
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 176), ((NI) ((*dest))), (*s).position);
		}
		goto LA34_;
		LA44_: ;
		{
			NIM_BOOL T47_;
			NI cc;
			T47_ = (NIM_BOOL)0;
			T47_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
			if (!(T47_)) goto LA48_;
			T47_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 0))&7U)))!=0));
			LA48_: ;
			if (!T47_) goto LA49_;
			cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), cc, (*s).position);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
		}
		goto LA34_;
		LA49_: ;
		{
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), ((NI) ((*dest))), (*s).position);
		}
		LA34_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NIM_BOOL T55_;
			T55_ = (NIM_BOOL)0;
			T55_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
			if (!(T55_)) goto LA56_;
			T55_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA56_: ;
			if (!T55_) goto LA57_;
			setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
		}
		LA57_: ;
		{
			NIM_BOOL T61_;
			NIM_BOOL T63_;
			T61_ = (NIM_BOOL)0;
			T61_ = (((NI) 0) < (*s).position);
			if (T61_) goto LA62_;
			T63_ = (NIM_BOOL)0;
			T63_ = ((*s).position == ((NI) 0));
			if (!(T63_)) goto LA64_;
			T63_ = ((2056 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
			LA64_: ;
			T61_ = T63_;
			LA62_: ;
			if (!T61_) goto LA65_;
			{
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA69_;
				(*dest) = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)))));
				{
					NimStringDesc* argX60gensym432_;
					if (!!(((*(*c).prc).slots[((*dest))- 0].Field1 < ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3)))) goto LA73_;
					argX60gensym432_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_18);
					internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym432_, TM__24XApAWKNvaMkcyklm8bNA_18);
				}
				LA73_: ;
			}
			goto LA67_;
			LA69_: ;
			{
				NIM_BOOL requiresCopy;
				NIM_BOOL T76_;
				T76_ = (NIM_BOOL)0;
				T76_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[((*dest))- 0].Field1);
				if (!(T76_)) goto LA77_;
				T76_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 2))&7U)))!=0));
				LA77_: ;
				requiresCopy = T76_;
				genAsgn__0hqyrQPuS5o8lQCNfzUziw(c, (*dest), n, requiresCopy);
			}
			LA67_: ;
		}
		goto LA59_;
		LA65_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA59_: ;
	}
	LA1_: ;
}
static N_INLINE(NimStringDesc*, X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem)(NimStringDesc** s, NI sLen_0, NI i) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = copyString(s[(NI)(sLen_0 - i)]);
	return result;
}
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__9bGgqEk7RXXl6eqM9c1HdELAsystem)(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__9bGgqEk7RXXl6eqM9c1HdELAsystem(((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, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x) {
	NIM_BOOL result;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (y ? y->Sup.len : 0);
		colontmp_ = T2_;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					NIM_BOOL T9_;
					NimStringDesc* T10_;
					NI T11_;
					NimStringDesc* T13_;
					T7_ = (NIM_BOOL)0;
					T7_ = (s_2 == NIM_NIL);
					if (T7_) goto LA8_;
					T9_ = (NIM_BOOL)0;
					T10_ = (NimStringDesc*)0;
					T10_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y->data, (y ? y->Sup.len : 0), i);
					T11_ = (NI)0;
					T11_ = nsuCmpIgnoreStyle(T10_, (*(*s_2).name).s);
					T9_ = !((T11_ == ((NI) 0)));
					if (!(T9_)) goto LA12_;
					T13_ = (NimStringDesc*)0;
					T13_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y->data, (y ? y->Sup.len : 0), i);
					T9_ = !(eqStrings(T13_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_19)));
					LA12_: ;
					T7_ = T9_;
					LA8_: ;
					if (!T7_) goto LA14_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA14_: ;
				s_2 = (*s_2).owner;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc** key;
		tyProc__5QC9cKfPJmKuW0XbCTd8ylA* value;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc**)0;
		value = (tyProc__5QC9cKfPJmKuW0XbCTd8ylA*)0;
		i_2 = ((NI) 0);
		T6_ = ((*c).callbacks ? (*c).callbacks->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA8;
				key = (&(*c).callbacks->data[i_2].Field0);
				value = (&(*c).callbacks->data[i_2].Field1);
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches__rZhM0XALsbmtBw4DH4NjRg(s, (*key));
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				i -= ((NI) 1);
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == NIM_NIL));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			result = ((*(*a)._kind_5.ident).Sup.id == (*(*b)._kind_5.ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T22_;
				NI T23_;
				T22_ = (NI)0;
				T22_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				T23_ = (NI)0;
				T23_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (!(T22_ == T23_)) goto LA24_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA28;
							i = i_2;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
								NIM_BOOL T32_;
								T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T31_ = (*a)._kind_6.sons->data[i];
								T32_ = (NIM_BOOL)0;
								T32_ = sameConstant__rlsxiOBKecP0t9crY75888g(T31_, (*b)._kind_6.sons->data[i]);
								if (!!(T32_)) goto LA33_;
								goto BeforeRet_;
							}
							LA33_: ;
							i_2 += ((NI) 1);
						} LA28: ;
					}
				}
				result = NIM_TRUE;
			}
			LA24_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (NI)0;
	result = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 4)) & 31);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = canonValue__yXNCtNX5XyYFmGvoC2Ryfw(n);
	add__P8dDSotTW25BkfbyspojGg((*c).constants, T1_);
	{
		NimStringDesc* argX60gensym109_;
		if (!!((result < ((NI) 8388607)))) goto LA4_;
		argX60gensym109_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_21);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym109_, TM__24XApAWKNvaMkcyklm8bNA_21);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant__rlsxiOBKecP0t9crY75888g((*(*c).constants)._kind_6.sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genLit__lTwxbV0wsOSkbi9adg16xrw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, n);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI) ((*dest))), lit);
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__E6EPoKGcZLyzaPi29aeeG7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
	asgnRef((void**) (&(*n).typ), t);
	genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__olzvRW3Qlk2DhgCa4FP0Fg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	T1_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(dest)- 0].Field1);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__4hhMx9acAaFJrVXUkV9bC0RA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI d;
	d = ((NI) (dest));
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), flags);
}
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p) {
	NI p_2;
	NI diff;
	NI T1_;
	NU64 oldInstr;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	diff = (NI)(T1_ - p_2);
	{
		NIM_BOOL T4_;
		NimStringDesc* argX60gensym51_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		argX60gensym51_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_25);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym51_, TM__24XApAWKNvaMkcyklm8bNA_25);
	}
	LA6_: ;
	oldInstr = (*c).code->data[p_2];
	(*c).code->data[p_2] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(diff + ((NI) 8388608))))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__DlG7xpoz9cztsbek49cNKVUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest) {
	NIM_BOOL copyBack;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NI tmp;
	NI lab1;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) ((*dest))) < ((NI) 0));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, (*dest));
	T1_ = !(T3_);
	LA2_: ;
	copyBack = T1_;
	{
		if (!copyBack) goto LA6_;
		tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
	}
	goto LA4_;
	LA6_: ;
	{
		tmp = ((NI) ((*dest)));
	}
	LA4_: ;
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 1)], tmp, 0);
	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, opc, tmp);
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 2)], tmp, 0);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
	{
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA11_;
		(*dest) = ((NI) (tmp));
	}
	goto LA9_;
	LA11_: ;
	{
		if (!copyBack) goto LA14_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA9_;
	LA14_: ;
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-128) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._kind_1.intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABI__2Xc89bNXyQiyYVPoh9brP5Lg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) ((NI64)(imm + IL64(128))))) << (NU64)(40ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_26), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__24XApAWKNvaMkcyklm8bNA_27, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__dSCPDAfahz444v0bhbpQAA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__9bocefL9bdayauH9bAGnbttOQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T12_)) goto LA13_;
		T12_ = ((*t).size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 95), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__dSCPDAfahz444v0bhbpQAA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n)._kind_6.sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(opc + ((NI) 1)), ((NI) ((*dest))), tmp, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
}
static N_INLINE(void, unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x) {
	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_28), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_29, NIM_FALSE);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__M5LvI9cd9ck3A7bD4QIkuGkA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA x;
		NIM_BOOL T6_;
		NI tmp;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(arr, IL64(36134350135273744));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd__hjogdnp59cMX1rwmjikBhqw((*c).config, arr);
		T6_ = (NIM_BOOL)0;
		T6_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(x, Zero__1ed0M9aQUqqSQVhLxSQO9bCw);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, n, 0);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		result = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		T9_ = (NI)0;
		T9_ = toInt__TIX0sFuRf3uBpOBltYp7bw(x);
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 31), result, tmp, ((NI64) (T9_)));
	}
	goto LA1_;
	LA7_: ;
	{
		result = genx__uIB1V7YFWyQzDYKijoL1tA(c, n, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genField__hsBsLv9cKR5frmhKTX7rURw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_32), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_33, NIM_FALSE);
	}
	LA5_: ;
	s = (*n)._kind_4.sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 65535) < (*s).position)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_34));
appendString(T11_, (*(*s).name).s);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_35, NIM_FALSE);
	}
	LA9_: ;
	result = ((NI) ((*s).position));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* checkExpr;
	NIM_BOOL negCheck;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* disc;
	NI discVal;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T14_;
	NI T15_;
	NI setLit;
	NI rs;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T16_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
	NI lab1;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T18_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* strType;
	NI fieldNameRegister;
	NI T24_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* strLit;
	NimStringDesc* T25_;
	NimStringDesc* T26_;
	{
		NimStringDesc* argX60gensym445_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46)))) goto LA3_;
		argX60gensym445_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_30);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym445_, TM__24XApAWKNvaMkcyklm8bNA_30);
	}
	LA3_: ;
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	checkExpr = (*n)._kind_6.sons->data[((NI) 1)];
	negCheck = ((*(*(*checkExpr)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
	{
		NI T9_;
		if (!negCheck) goto LA7_;
		T9_ = (NI)0;
		T9_ = len__P89cqdlERShb9alU3iC0yj8wast(checkExpr);
		checkExpr = (*checkExpr)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))];
	}
	LA7_: ;
	disc = (*checkExpr)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* argX60gensym454_;
		if (!!(((*(*disc)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA12_;
		argX60gensym454_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_31);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym454_, TM__24XApAWKNvaMkcyklm8bNA_31);
	}
	LA12_: ;
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*accessExpr)._kind_6.sons->data[((NI) 0)], dest, flags);
	discVal = getTemp__duEomvr9bK43tarDYX26gsA(c, (*disc).typ);
	T14_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T14_ = c;
	T15_ = (NI)0;
	T15_ = genField__hsBsLv9cKR5frmhKTX7rURw(c, disc);
	gABC__UIRVqkSOpk264WekB9cpXRw(T14_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), discVal, ((NI) ((*dest))), T15_);
	setLit = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*checkExpr)._kind_6.sons->data[((NI) 1)], 0);
	T16_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T16_ = c;
	T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	rs = getTemp__duEomvr9bK43tarDYX26gsA(T16_, T17_);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 82), rs, setLit, discVal);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, discVal);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, setLit);
	T18_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!negCheck) goto LA21_;
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160);
	}
	goto LA19_;
	LA21_: ;
	{
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159);
	}
	LA19_: ;
	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, T18_, rs);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, rs);
	strType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
	T24_ = (NI)0;
	T24_ = getTemp__duEomvr9bK43tarDYX26gsA(c, strType);
	fieldNameRegister = ((NI) (T24_));
	T25_ = (NimStringDesc*)0;
	T25_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*accessExpr)._kind_6.sons->data[((NI) 1)]);
	T26_ = (NimStringDesc*)0;
	T26_ = T25_;
	strLit = newStrNode__C1MQfgDmfXqO1v69aAZbuYA(T26_, (*(*accessExpr)._kind_6.sons->data[((NI) 1)]).info);
	asgnRef((void**) (&(*strLit).typ), strType);
	genLit__lTwxbV0wsOSkbi9adg16xrw(c, strLit, (&fieldNameRegister));
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 94), ((NI) (fieldNameRegister)), ((NI) 0), ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (fieldNameRegister)));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = (*le)._kind_6.sons->data[((NI) 1)];
		idx = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, T2_, (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), dest, idx, value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, le, (&objR), 1);
		idx_2 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) (objR)), idx_2, value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		dest_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx_3 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*le)._kind_6.sons->data[((NI) 1)]);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_2, idx_3, value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		dest_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_3, ((NI) 0), value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T9_;
			NI dest_4;
			T9_ = (NIM_BOOL)0;
			T9_ = (((*(*le)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !(((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA10_: ;
			if (!T9_) goto LA11_;
			dest_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, le, 2);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_4, ((NI) 0), value);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_4);
		}
		LA11_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	T5_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI result;
	NI T10_;
	NI T11_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NI i_2;
		NI L;
		NI T2_;
		i = (NI)0;
		t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		i_2 = ((NI) 0);
		T2_ = ((*c).types ? (*c).types->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA4;
				i = i_2;
				t = (*c).types->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType__3isNyHKb0U1OCnClmflXSg(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	T10_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T10_;
	asgnRef((void**) (&(*c).types), (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*c).types), (&NTI__Ef05srmQTDulnBdXR4Ja6Q_)));
	T11_ = (*c).types->Sup.len++;
	asgnRef((void**) (&(*c).types->data[T11_]), typ);
	{
		NimStringDesc* argX60gensym124_;
		if (!!((result <= ((NI) 8388607)))) goto LA14_;
		argX60gensym124_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_36);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym124_, TM__24XApAWKNvaMkcyklm8bNA_36);
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T7_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	NI T10_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	T7_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T7_ = c;
	T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T8_ = n;
	T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017424));
	T10_ = (NI)0;
	T10_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*T9_).sons->data[((NI) 0)]);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T7_, T8_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), dest, T10_);
	genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI dest;
	NI tmp;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T7_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	NI T9_;
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__duEomvr9bK43tarDYX26gsA(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	T7_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T7_ = c;
	T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T9_ = (NI)0;
	T9_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T8_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T7_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), dest, T9_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI tmp;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T1_;
	NI T2_;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
	NI T5_;
	t = (*n).typ;
	tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	T1_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T1_ = c;
	T2_ = (NI)0;
	T2_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T1_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T2_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp, ((NI) 0));
	T3_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T3_ = c;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T5_ = (NI)0;
	T5_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T4_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T3_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) ((*dest))), T5_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__dSCPDAfahz444v0bhbpQAA_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm) {
	NI tmp;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, opc, ((NI) ((*dest))), tmp, imm);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T5_;
		NI T6_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T5_ = c;
		T6_ = (NI)0;
		T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T5_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), dest, T6_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCard__lTwxbV0wsOSkbi9adg16xrw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 37), ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15423227559936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((IL64(1101659111424) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genConv__5o3JB8z8Vaytpw5QzBCu2w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	NI T15_;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T16_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
	NI T18_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n).typ).kind == (*(*arg).typ).kind);
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, arg, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, arg, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	T12_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T12_ = c;
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = n;
	T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1152921504606846976));
	T15_ = (NI)0;
	T15_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T14_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T12_, T13_, opc, ((NI) 0), T15_);
	T16_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T16_ = c;
	T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(1152921504606846976));
	T18_ = (NI)0;
	T18_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T17_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T16_, n, opc, ((NI) 0), T18_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__dSCPDAfahz444v0bhbpQAA_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 2)], tmp2);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__QYpBvcTLkwTKaaaJK2K4LQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind) {
	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 40) <= (*c).maxSlots);
		if (T3_) goto LA4_;
		T3_ = (((NI) 65535) <= (NI)((*c).maxSlots + n));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*c).maxSlots - n);
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					{
						if (!!((*c).slots[(i)- 0].Field0)) goto LA12_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								colontmp__2 = (NI)(i + ((NI) 1));
								colontmp__3 = (NI)((NI)(i + n) - ((NI) 1));
								res_2 = colontmp__2;
								{
									while (1) {
										if (!(res_2 <= colontmp__3)) goto LA17;
										j = res_2;
										{
											if (!(*c).slots[(j)- 0].Field0) goto LA20_;
											goto LA14;
										}
										LA20_: ;
										res_2 += ((NI) 1);
									} LA17: ;
								}
							}
							result = ((NI) (i));
							{
								NI k;
								NI colontmp__4;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								colontmp__4 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
								res_3 = ((NI) (result));
								{
									while (1) {
										NIM_BOOL colontmp__5;
										tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA24;
										k = ((NI) (res_3));
										colontmp__5 = NIM_TRUE;
										colontmp__6 = kind;
										(*c).slots[(k)- 0].Field0 = colontmp__5;
										(*c).slots[(k)- 0].Field1 = colontmp__6;
										res_3 += ((NI) 1);
									} LA24: ;
								}
							}
							goto BeforeRet_;
						} LA14: ;
					}
					LA12_: ;
					res += ((NI) 1);
				} LA9: ;
			}
		}
	}
	LA5_: ;
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T29_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T30_;
		if (!(((NI) 65535) <= (NI)((*c).maxSlots + n))) goto LA27_;
		T29_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
		T29_ = (*cc).config;
		T30_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		liMessage__Q6JNH4uRwLyZrj0dJakHew(T29_, T30_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_13), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_37, NIM_FALSE);
	}
	LA27_: ;
	result = ((NI) ((*c).maxSlots));
	(*c).maxSlots += n;
	{
		NI k_2;
		NI colontmp__7;
		NI res_4;
		k_2 = (NI)0;
		colontmp__7 = (NI)0;
		colontmp__7 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
		res_4 = ((NI) (result));
		{
			while (1) {
				NIM_BOOL colontmp__8;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__9;
				if (!(res_4 <= ((NI) (colontmp__7)))) goto LA33;
				k_2 = ((NI) (res_4));
				colontmp__8 = NIM_TRUE;
				colontmp__9 = kind;
				(*c).slots[(k_2)- 0].Field0 = colontmp__8;
				(*c).slots[(k_2)- 0].Field1 = colontmp__9;
				res_4 += ((NI) 1);
			} LA33: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n) {
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = ((NI) ((NI)((NI)(((NI) (start)) + n) - ((NI) 1))));
		res = ((NI) (start));
		{
			while (1) {
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				i = ((NI) (res));
				freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, i);
				res += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__dSCPDAfahz444v0bhbpQAA_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI x;
	NI T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
	NI T11_;
	NI T12_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, (NI)(T6_ - ((NI) 1)), ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI r;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				r = ((NI) ((NI)((NI)(((NI) (x)) + i) - ((NI) 1))));
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 0);
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T10_ = n;
	T11_ = (NI)0;
	T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, T10_, opc, ((NI) ((*dest))), x, ((NI) ((NI)(T11_ - ((NI) 1)))));
	T12_ = (NI)0;
	T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T12_);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(t);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 171);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	NI dest;
	NI tmp;
	x = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		x = (*x)._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	NI tmp3;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__w6wTV78X6bUwnyRSPSSgQw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode) {
	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, dest);
	tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI dest;
	NI tmp;
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__lTwxbV0wsOSkbi9adg16xrw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
			idx = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 179), ((NI) ((*dest))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_43), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__24XApAWKNvaMkcyklm8bNA_44, NIM_FALSE);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		NI T28_;
		NI tmp2;
		NI T29_;
		NI T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		NI T32_;
		NI T33_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T22_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
		tmp0 = ((NI) (x));
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			colontmp_ = (NI)(T24_ - ((NI) 2));
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					r = ((NI) ((NI)(((NI) (x)) + i)));
					gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 0);
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		tmp1 = ((NI) ((NI)((NI)(((NI) (x)) + T27_) - ((NI) 2))));
		T28_ = (NI)0;
		T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))], (&tmp1));
		T29_ = (NI)0;
		T29_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		tmp2 = ((NI) ((NI)((NI)(((NI) (x)) + T29_) - ((NI) 1))));
		T30_ = (NI)0;
		T30_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[(NI)(T30_ - ((NI) 1))], (&tmp2));
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = n;
		T32_ = (NI)0;
		T32_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, T31_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180), ((NI) ((*dest))), x, ((NI) (T32_)));
		T33_ = (NI)0;
		T33_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T33_);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__lTwxbV0wsOSkbi9adg16xrw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI x;
	NI T16_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fntyp;
	NI T41_;
{	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).typ == 0);
		LA5_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T10_)) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T10_ = !(T12_);
		LA11_: ;
		if (!T10_) goto LA13_;
		T15_ = (NI)0;
		T15_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T15_));
	}
	LA13_: ;
	T16_ = (NI)0;
	T16_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T16_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
	fntyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				if (!(i_2 < colontmp_)) goto LA19;
				i = i_2;
				r = ((NI) ((NI)(((NI) (x)) + i)));
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 4);
				{
					NI T22_;
					tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T29_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
					NI T31_;
					T22_ = (NI)0;
					T22_ = len__5mJADrRYkP3r9auuiuDZN9cQast(fntyp);
					if (!(T22_ <= i)) goto LA23_;
					{
						NimStringDesc* argX60gensym143_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA27_;
						argX60gensym143_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_51);
						internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym143_, TM__24XApAWKNvaMkcyklm8bNA_51);
					}
					LA27_: ;
					T29_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
					T29_ = c;
					T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T30_ = n;
					T31_ = (NI)0;
					T31_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[i]).typ);
					gABx__vCfZ9bElZa5k2CDWM9coPmBA(T29_, T30_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), r, T31_);
				}
				LA23_: ;
				i_2 += ((NI) 1);
			} LA19: ;
		}
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		NI T37_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA34_;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = n;
		T37_ = (NI)0;
		T37_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, T36_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 152), ((NI) 0), x, ((NI) (T37_)));
	}
	goto LA32_;
	LA34_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T39_;
		NI T40_;
		T39_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T39_ = n;
		T40_ = (NI)0;
		T40_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, T39_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 153), ((NI) ((*dest))), x, ((NI) (T40_)));
	}
	LA32_: ;
	T41_ = (NI)0;
	T41_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T41_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__nCoAHjo16P5zqJafFfwLew)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	switch (m) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
		genAndOr__DlG7xpoz9cztsbek49cNKVUg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		genAndOr__DlG7xpoz9cztsbek49cNKVUg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
	{
		genAddSubInt__dSCPDAfahz444v0bhbpQAA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	{
		genAddSubInt__dSCPDAfahz444v0bhbpQAA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30):
	{
		NIM_BOOL isUnsigned;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
		NI d;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350144710928));
		isUnsigned = ((IL64(34084860461056) &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0);
		{
			if (!!(isUnsigned)) goto LA9_;
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29))) goto LA13_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28);
			}
			goto LA11_;
			LA13_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30);
			}
			LA11_: ;
		}
		goto LA7_;
		LA9_: ;
		{
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29))) goto LA19_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 51);
			}
			goto LA17_;
			LA19_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 52);
			}
			LA17_: ;
		}
		LA7_: ;
		d = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n)._kind_6.sons->data[((NI) 2)]);
			if (!(T24_)) goto LA25_;
			T24_ = !(isUnsigned);
			LA25_: ;
			if (!T24_) goto LA26_;
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(opc + ((NI) 1)), d, d, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		}
		goto LA22_;
		LA26_: ;
		{
			NI tmp;
			tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, d, d, tmp);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		}
		LA22_: ;
		genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, (*n)._kind_6.sons->data[((NI) 1)], ((NI) (d)));
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 43):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 144):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genNew__Y59crI4YgTHHCWclw3gn72A_2(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genNewSeq__Y59crI4YgTHHCWclw3gn72A_3(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 35):
	{
		genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 145):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T35_;
		NI T36_;
		NI tmp_2;
		T35_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T35_ = c;
		T36_ = (NI)0;
		T36_ = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(T35_, T36_);
		tmp_2 = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp_2, ((NI) 0));
		{
			NI T41_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA39_;
			T41_ = (NI)0;
			T41_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T41_));
		}
		LA39_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158), ((NI) ((*dest))), tmp_2, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 33), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
	{
		NI d_2;
		NI tmp_3;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T45_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		d_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], d_2);
		T45_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40))) goto LA48_;
			T45_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 34);
		}
		goto LA46_;
		LA48_: ;
		{
			T45_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 36);
		}
		LA46_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T45_, d_2, tmp_3, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	{
		genCard__lTwxbV0wsOSkbi9adg16xrw_3(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 38));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 39));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 40));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 41));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 42));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 43));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 44));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		NI tmp_4;
		NI tmp2;
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2(c, n, ((NI) (tmp_4)));
		tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		{
			NI T64_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA62_;
			T64_ = (NI)0;
			T64_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T64_));
		}
		LA62_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 45), ((NI) ((*dest))), tmp_4, tmp2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 46));
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T68_;
			NIM_BOOL T70_;
			T68_ = (NIM_BOOL)0;
			T68_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T68_) goto LA69_;
			T70_ = (NIM_BOOL)0;
			T70_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T70_)) goto LA71_;
			T70_ = ((*t).size < IL64(8));
			LA71_: ;
			T68_ = T70_;
			LA69_: ;
			if (!T68_) goto LA72_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
		}
		goto LA66_;
		LA72_: ;
		{
			NIM_BOOL T75_;
			NIM_BOOL T77_;
			T75_ = (NIM_BOOL)0;
			T75_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T75_) goto LA76_;
			T77_ = (NIM_BOOL)0;
			T77_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			if (!(T77_)) goto LA78_;
			T77_ = ((*t).size < IL64(8));
			LA78_: ;
			T75_ = T77_;
			LA76_: ;
			if (!T75_) goto LA79_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 97), ((NI) ((*dest))), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
		}
		goto LA66_;
		LA79_: ;
		LA66_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 47));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 60):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 48));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 61):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 49));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 62):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 50));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 65):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 51));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 52));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 53));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 68):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 54));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 69):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 55));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 56));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 57));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 58));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 59));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 60));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 61));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 62));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 63));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 64));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 67));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 68));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 69));
		genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 100):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 70));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 99):
	{
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 71));
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T107_;
			NIM_BOOL T109_;
			T107_ = (NIM_BOOL)0;
			T107_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
			if (T107_) goto LA108_;
			T109_ = (NIM_BOOL)0;
			T109_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T109_)) goto LA110_;
			T109_ = ((*t_2).size < IL64(8));
			LA110_: ;
			T107_ = T109_;
			LA108_: ;
			if (!T107_) goto LA111_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)((*t_2).size * IL64(8)))), ((NI) 0));
		}
		LA111_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 101):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 104):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 105):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 106):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 107):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 108):
	{
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 72));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 73));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 74));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 75));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 76));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 77));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 78));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 79));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 124):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 80));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 125):
	{
		genVarargsABC__dSCPDAfahz444v0bhbpQAA_7(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 81));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 82));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 135):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 83));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 136):
	{
		NI tmp_5;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		tmp_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 93), tmp_5, ((NI) 0), ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 138):
	{
		NI d_3;
		NI tmp_6;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T128_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		d_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp_6 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		T128_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137))) goto LA131_;
			T128_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 84);
		}
		goto LA129_;
		LA131_: ;
		{
			T128_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 85);
		}
		LA129_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T128_, d_3, tmp_6, ((NI) 0));
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_6);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 142):
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T135_;
		tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* T136_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T137_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T143_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		T135_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T135_ = c;
		T136_ = (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ*)0;
		T136_ = (*c).graph;
		T137_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			if (!((*c).prc == NIM_NIL)) goto LA140_;
			T137_ = (*c).module;
		}
		goto LA138_;
		LA140_: ;
		{
			T137_ = (*(*c).prc).sym;
		}
		LA138_: ;
		T143_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T143_ = lowerSwap__8A4G64HByteFanrMUexmNw(T136_, n, T137_);
		gen__M9cKwar4hMj62R1lH9bydpDQ(T135_, T143_, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 147):
	{
		NI d2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d2AsNode;
		NI tmp1;
		NI tmp3;
		{
			NI T150_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA148_;
			T150_ = (NI)0;
			T150_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T150_));
		}
		LA148_: ;
		d2 = (NI)0;
		d2AsNode = (*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T153_;
			tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T156_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T157_;
			T153_ = (NIM_BOOL)0;
			T153_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2(d2AsNode);
			if (!T153_) goto LA154_;
			T156_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
			T156_ = c;
			T157_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T157_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
			d2 = getTemp__duEomvr9bK43tarDYX26gsA(T156_, T157_);
		}
		goto LA151_;
		LA154_: ;
		{
			d2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, d2AsNode, 0);
		}
		LA151_: ;
		tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), ((NI) ((*dest))), tmp1, d2);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), tmp3, ((NI) 0), ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, d2AsNode, d2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 155):
	{
		NI d_4;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T160_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
		NI T162_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		d_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T160_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T160_ = c;
		T161_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T161_ = n;
		T162_ = (NI)0;
		T162_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T160_, T161_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), d_4, T162_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), d_4, ((NI) (d_4)));
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d_4);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T169_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T170_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T171_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T172_;
		NI T173_;
		{
			NI T168_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA166_;
			T168_ = (NI)0;
			T168_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T168_));
		}
		LA166_: ;
		T169_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T169_ = c;
		T170_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T170_ = n;
		T171_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T171_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*n).typ);
		T172_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T172_ = T171_;
		T173_ = (NI)0;
		T173_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T169_, T170_, T172_, ((NI) ((*dest))), T173_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	{
		NI tmp_7;
		NI idx;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T180_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T181_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T186_;
		NI T187_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T188_;
		{
			NI T179_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA177_;
			T179_ = (NI)0;
			T179_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T179_));
		}
		LA177_: ;
		tmp_7 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T180_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T180_ = c;
		T181_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T181_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		idx = getTemp__duEomvr9bK43tarDYX26gsA(T180_, T181_);
		typ = (*(*n)._kind_6.sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15))) goto LA184_;
			typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
		}
		LA184_: ;
		T186_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T186_ = c;
		T187_ = (NI)0;
		T187_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T186_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), idx, T187_);
		T188_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15))) goto LA191_;
			T188_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 87);
		}
		goto LA189_;
		LA191_: ;
		{
			T188_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88);
		}
		LA189_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T188_, ((NI) ((*dest))), tmp_7, idx);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_7);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		NI tmp_8;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T200_;
		{
			NI T199_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA197_;
			T199_ = (NI)0;
			T199_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T199_));
		}
		LA197_: ;
		tmp_8 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T200_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T200_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017424));
		switch ((*T200_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 33), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		default:
		{
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		}
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_8);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 20):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		n_2 = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n)._kind_6.sons->data[((NI) 1)]);
		{
			NI x;
			NI T208_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T212_;
			NI T213_;
			NI T214_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA206_;
			T208_ = (NI)0;
			T208_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T208_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						if (!(i_2 < colontmp_)) goto LA211;
						i = i_2;
						r = ((NI) ((NI)(((NI) (x)) + i)));
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n_2)._kind_6.sons->data[i], r, 0);
						i_2 += ((NI) 1);
					} LA211: ;
				}
			}
			T212_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T212_ = n_2;
			T213_ = (NI)0;
			T213_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, T212_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 151), x, ((NI) (T213_)), ((NI) 0));
			T214_ = (NI)0;
			T214_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T214_);
		}
		LA206_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 131):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 98));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 132):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 99));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 100));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 25):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 139));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 26):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 140));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 13):
	{
		NI tmp_9;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T226_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T227_;
		NI T228_;
		tmp_9 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T225_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA223_;
			T225_ = (NI)0;
			T225_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T225_));
		}
		LA223_: ;
		T226_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T226_ = c;
		T227_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T227_ = n;
		T228_ = (NI)0;
		T228_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T226_, T227_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), tmp_9, T228_);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 182), ((NI) ((*dest))), tmp_9, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 22):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 137));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 23):
	{
		genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 138));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 208):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), IL64(16));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 251):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 149));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 150));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 266):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 185));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 269):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 209):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 210):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 213):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 123));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 211):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 102));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 212):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 103));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 214):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 104));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 215):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 105));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 216):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 125));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 217):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 126));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 218):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 127));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 219):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 128));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 220):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 129));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 221):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 130));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 222):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 131));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 223):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 132));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 224):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 133));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 225):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 134));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 226):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 135));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 227):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 106));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 228):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 107));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 229):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 108));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 230):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 109));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 231):
	{
		NI tmp_10;
		NI rc;
		tmp_10 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T263_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA261_;
			T263_ = (NI)0;
			T263_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T263_));
		}
		LA261_: ;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_38))) goto LA264_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39))) goto LA265_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_40))) goto LA266_;
		goto LA267_;
		LA264_: ;
		{
			rc = ((NI) 0);
		}
		goto LA268_;
		LA265_: ;
		{
			rc = ((NI) 1);
		}
		goto LA268_;
		LA266_: ;
		{
			rc = ((NI) 2);
		}
		goto LA268_;
		LA267_: ;
		{
			rc = ((NI) 3);
		}
		LA268_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 110), ((NI) ((*dest))), tmp_10, ((NI) (rc)));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_10);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 245):
	{
		NI imm;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_41))) goto LA274_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_42))) goto LA275_;
		goto LA276_;
		LA274_: ;
		{
			imm = ((NI) 0);
		}
		goto LA277_;
		LA275_: ;
		{
			imm = ((NI) 1);
		}
		goto LA277_;
		LA276_: ;
		{
			imm = ((NI) 2);
		}
		LA277_: ;
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 113), ((NI64) (imm)));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 232):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 111));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 244):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 112));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 233):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 114));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 234):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 115));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 235):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 116));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 236):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 117));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 237):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 118));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 238):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 119));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 240):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 120));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 241):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 121));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 242):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 122));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 246):
	{
		genBindSym__lTwxbV0wsOSkbi9adg16xrw_4(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 243):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 148));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 248):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 147));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 249):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 65));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 250):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 66));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 239):
	{
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_45))) goto LA298_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_46))) goto LA299_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47))) goto LA300_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_48))) goto LA301_;
		goto LA302_;
		LA298_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(0));
		}
		goto LA303_;
		LA299_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(1));
		}
		goto LA303_;
		LA300_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(2));
		}
		goto LA303_;
		LA301_: ;
		{
			{
				NI T310_;
				NimStringDesc* argX60gensym313_;
				T310_ = (NI)0;
				T310_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!!((T310_ == ((NI) 3)))) goto LA311_;
				argX60gensym313_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_49);
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym313_, TM__24XApAWKNvaMkcyklm8bNA_49);
			}
			LA311_: ;
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 146));
		}
		goto LA303_;
		LA302_: ;
		{
			{
				NimStringDesc* argX60gensym315_;
				if (!NIM_TRUE) goto LA316_;
				argX60gensym315_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_50);
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym315_, TM__24XApAWKNvaMkcyklm8bNA_50);
			}
			LA316_: ;
		}
		LA303_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 253):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 144));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 254):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 143));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 255):
	{
		{
			NI T323_;
			T323_ = (NI)0;
			T323_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T323_ <= ((NI) 1))) goto LA324_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 141), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
		}
		goto LA321_;
		LA324_: ;
		{
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 142));
		}
		LA321_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 247):
	{
		{
			NI T332_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA330_;
			T332_ = (NI)0;
			T332_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T332_));
		}
		LA330_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 252):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 124));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 127):
	{
		genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		{
			NI T338_;
			T338_ = (NI)0;
			T338_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!!((T338_ == ((NI) 2)))) goto LA339_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_52), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_53, NIM_FALSE);
		}
		LA339_: ;
		arg = (*n)._kind_6.sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA343_;
			{
				NI T349_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA347_;
				T349_ = (NI)0;
				T349_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T349_));
			}
			LA347_: ;
			genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, arg, dest);
		}
		goto LA341_;
		LA343_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_54), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_55, NIM_FALSE);
		}
		LA341_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		NimStringDesc* T352_;
		T352_ = (NimStringDesc*)0;
		T352_ = nsuFormatOpenArray(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_56), TM__24XApAWKNvaMkcyklm8bNA_57, 1);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T352_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_59, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		NimStringDesc* T354_;
		T354_ = (NimStringDesc*)0;
		T354_ = nsuFormatOpenArray(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_56), TM__24XApAWKNvaMkcyklm8bNA_60, 1);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T354_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_62, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12):
	{
		NimStringDesc* T356_;
		T356_ = (NimStringDesc*)0;
		T356_ = nsuFormatOpenArray(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_56), TM__24XApAWKNvaMkcyklm8bNA_63, 1);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T356_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_65, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2;
		NI a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T365_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T366_;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T367_;
		NI T368_;
		arg_2 = (*n)._kind_6.sons->data[((NI) 1)];
		a = genx__uIB1V7YFWyQzDYKijoL1tA(c, arg_2, 0);
		{
			NI T364_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA362_;
			T364_ = (NI)0;
			T364_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*arg_2).typ);
			(*dest) = ((NI) (T364_));
		}
		LA362_: ;
		T365_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T365_ = arg_2;
		T366_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T366_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(arg_2, NIM_FALSE);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, T365_, T366_, ((NI) ((*dest))), a, ((NI) 0));
		T367_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T367_ = c;
		T368_ = (NI)0;
		T368_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*arg_2).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T367_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), a, T368_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), a, ((NI) (a)));
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, arg_2, a);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 270):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 136));
	}
	break;
	default:
	{
		NimStringDesc* T371_;
		T371_ = (NimStringDesc*)0;
		T371_ = rawNewString((reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 26);
appendString(T371_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_22));
appendString(T371_, reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T371_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_66, NIM_FALSE);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
{	result = (NIM_BOOL)0;
	s_2 = s;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = yLen_0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					NIM_BOOL T8_;
					NimStringDesc* T9_;
					NI T10_;
					NimStringDesc* T12_;
					T6_ = (NIM_BOOL)0;
					T6_ = (s_2 == NIM_NIL);
					if (T6_) goto LA7_;
					T8_ = (NIM_BOOL)0;
					T9_ = (NimStringDesc*)0;
					T9_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y, yLen_0, i);
					T10_ = (NI)0;
					T10_ = nsuCmpIgnoreStyle(T9_, (*(*s_2).name).s);
					T8_ = !((T10_ == ((NI) 0)));
					if (!(T8_)) goto LA11_;
					T12_ = (NimStringDesc*)0;
					T12_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y, yLen_0, i);
					T8_ = !(eqStrings(T12_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_19)));
					LA11_: ;
					T6_ = T8_;
					LA7_: ;
					if (!T6_) goto LA13_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA13_: ;
				{
					if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0)) goto LA17_;
					s_2 = (*(*s_2).owner).owner;
				}
				goto LA15_;
				LA17_: ;
				{
					s_2 = (*s_2).owner;
				}
				LA15_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	NI T8_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 183), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T6_ = c;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = n;
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T6_, T7_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 183), ((NI) 0), T8_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	NI T8_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 184), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T6_ = c;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = n;
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T6_, T7_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 184), ((NI) 0), T8_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
static N_INLINE(void, clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) ((*dest))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-32768) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._kind_1.intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, ((NI) (dest)));
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, n, opc, dest, idx, value);
	}
	goto LA1_;
	LA7_: ;
	{
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, idx, value);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		NI tmp;
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = (*le)._kind_6.sons->data[((NI) 1)];
		idx = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, T2_, (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
			T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T5_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*le)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710672));
			if (!((805306368 &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0)) goto LA6_;
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 26), dest, idx, tmp);
		}
		goto LA3_;
		LA6_: ;
		{
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), dest, idx, tmp);
		}
		LA3_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		NI tmp_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, le, (&objR), 1);
		idx_2 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) (objR)), idx_2, tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		NI tmp_3;
		dest_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx_3 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*le)._kind_6.sons->data[((NI) 1)]);
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_2, idx_3, tmp_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		NI tmp_4;
		dest_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_3, ((NI) 0), tmp_4);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*le)._kind_4.sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, le);
		{
			NIM_BOOL T15_;
			NI tmp_5;
			NI val;
			T15_ = (NIM_BOOL)0;
			T15_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T15_)) goto LA16_;
			T15_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA16_: ;
			if (!T15_) goto LA17_;
			tmp_5 = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
			gen__4hhMx9acAaFJrVXUkV9bC0RA(c, le, tmp_5, 2);
			val = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), tmp_5, ((NI) 0), val);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, val);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
		}
		goto LA13_;
		LA17_: ;
		{
			NI dest_4;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21))) goto LA22_;
				setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
			}
			LA22_: ;
			{
				NIM_BOOL T26_;
				NIM_BOOL T28_;
				NimStringDesc* argX60gensym406_;
				T26_ = (NIM_BOOL)0;
				T26_ = (((NI) 0) < (*s).position);
				if (T26_) goto LA27_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*s).position == ((NI) 0));
				if (!(T28_)) goto LA29_;
				T28_ = ((2056 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA29_: ;
				T26_ = T28_;
				LA27_: ;
				if (!!(T26_)) goto LA30_;
				argX60gensym406_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_76);
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym406_, TM__24XApAWKNvaMkcyklm8bNA_76);
			}
			LA30_: ;
			dest_4 = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)))));
			{
				NIM_BOOL T34_;
				NIM_BOOL T35_;
				NIM_BOOL T36_;
				NIM_BOOL T38_;
				NI cc;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T43_;
				T34_ = (NIM_BOOL)0;
				T35_ = (NIM_BOOL)0;
				T36_ = (NIM_BOOL)0;
				T36_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, ((NI) (dest_4)));
				T35_ = !(T36_);
				if (!(T35_)) goto LA37_;
				T38_ = (NIM_BOOL)0;
				T38_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
				T35_ = !(T38_);
				LA37_: ;
				T34_ = T35_;
				if (!(T34_)) goto LA39_;
				T34_ = ((2312 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA39_: ;
				if (!T34_) goto LA40_;
				cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, ri, cc, 0);
				T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T42_ = le;
				T43_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
				T43_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
				gABC__UIRVqkSOpk264WekB9cpXRw(c, T42_, T43_, dest_4, cc, ((NI) 0));
				freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
			}
			goto LA32_;
			LA40_: ;
			{
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, ri, dest_4, 0);
			}
			LA32_: ;
		}
		LA13_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, le, 2);
		genAsgn__0hqyrQPuS5o8lQCNfzUziw(c, ((NI) (dest_5)), ri, requiresCopy);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_5);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__jht1XYyYWKYwfRpm130Gcg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	b = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*n)._kind_6.sons->data[((NI) 1)]);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		if (!!(((2 & flags) == 0))) goto LA8_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 20), ((NI) ((*dest))), a, b);
	}
	goto LA6_;
	LA8_: ;
	{
		NIM_BOOL T11_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		NI cc;
		T11_ = (NIM_BOOL)0;
		T11_ = ((3 & flags) == 0);
		if (!(T11_)) goto LA12_;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T11_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T13_);
		LA12_: ;
		if (!T11_) goto LA14_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), cc, a, b);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA6_;
	LA14_: ;
	{
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI objR;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
	NI fieldPos;
	objR = ((NI) -1);
	genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, n, (&objR), flags);
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	field = (*accessExpr)._kind_6.sons->data[((NI) 1)];
	{
		NimStringDesc* argX60gensym462_;
		if (!!(((*(*field)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA3_;
		argX60gensym462_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_77);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym462_, TM__24XApAWKNvaMkcyklm8bNA_77);
	}
	LA3_: ;
	{
		NI T9_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA7_;
		T9_ = (NI)0;
		T9_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T9_));
	}
	LA7_: ;
	fieldPos = genField__hsBsLv9cKR5frmhKTX7rURw(c, field);
	{
		if (!!(((2 & flags) == 0))) goto LA12_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 20), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	goto LA10_;
	LA12_: ;
	{
		NIM_BOOL T15_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		NI cc;
		T15_ = (NIM_BOOL)0;
		T15_ = ((3 & flags) == 0);
		if (!(T15_)) goto LA16_;
		T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T15_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T17_);
		LA16_: ;
		if (!T15_) goto LA18_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*accessExpr).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), cc, ((NI) (objR)), fieldPos);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA10_;
	LA18_: ;
	{
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	LA10_: ;
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*n)._kind_6.sons->data[((NI) 1)];
	b = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, T1_, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	{
		NI T6_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA4_;
		T6_ = (NI)0;
		T6_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T6_));
	}
	LA4_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = (opc == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16));
		if (!(T9_)) goto LA10_;
		T9_ = !(((2 & flags) == 0));
		LA10_: ;
		if (!T9_) goto LA11_;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI) ((*dest))), a, b);
	}
	goto LA7_;
	LA11_: ;
	{
		NIM_BOOL T14_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
		NI cc;
		T14_ = (NIM_BOOL)0;
		T14_ = ((3 & flags) == 0);
		if (!(T14_)) goto LA15_;
		T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T14_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T16_);
		LA15_: ;
		if (!T14_) goto LA17_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, cc, a, b);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA7_;
	LA17_: ;
	{
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), a, b);
	}
	LA7_: ;
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, b);
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__jht1XYyYWKYwfRpm130Gcg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag arrayType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710672));
	arrayType = (*T1_).kind;
	{
		if (!((805306368 &((NU64)1<<((NU)(arrayType)&63U)))!=0)) goto LA4_;
		genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 27), 0);
	}
	goto LA2_;
	LA4_: ;
	{
		if (!(arrayType == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA7_;
		genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
	}
	goto LA2_;
	LA7_: ;
	{
		genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), flags);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genDeref__jht1XYyYWKYwfRpm130Gcg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 24), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((3 & flags) == 0);
			if (!(T20_)) goto LA21_;
			T20_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA21_: ;
			if (!T20_) goto LA22_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA22_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (!((458752 &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0)) goto LA4_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	LA4_: ;
	switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		m = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA9_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, (*m)._kind_6.sons->data[((NI) 0)]);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m_2;
		m_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA14_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, (*m_2)._kind_6.sons->data[((NI) 0)]);
		}
		LA14_: ;
	}
	break;
	default:
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA19_;
			result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		}
		LA19_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddr__jht1XYyYWKYwfRpm130Gcg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ newflags;
{	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		m = canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2(n);
		if (!!((m == NIM_NIL))) goto LA3_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	newflags = ((flags & ~ 1) | 2);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5((*n)._kind_6.sons->data[((NI) 0)]);
		if (T7_) goto LA8_;
		T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		LA8_: ;
		if (!T7_) goto LA9_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, newflags);
	}
	goto LA5_;
	LA9_: ;
	{
		NI tmp;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], newflags);
		{
			NI T16_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA14_;
			T16_ = (NI)0;
			T16_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T16_));
		}
		LA14_: ;
		{
			if (!(((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(tmp)- 0].Field1)) goto LA19_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 23), ((NI) ((*dest))), tmp, ((NI) 0));
			(*(*c).prc).slots[(tmp)- 0].Field1 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 8);
		}
		goto LA17_;
		LA19_: ;
		{
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 22), ((NI) ((*dest))), tmp, ((NI) 0));
		}
		LA17_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	T2_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__lTwxbV0wsOSkbi9adg16xrw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T14_;
					NI tmp;
					NI elsePos;
					T14_ = (NI)0;
					T14_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T14_ == ((NI) 2))) goto LA15_;
					tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*it)._kind_6.sons->data[((NI) 0)]);
						if (!T19_) goto LA20_;
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], tmp, 0);
						elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), tmp);
					}
					goto LA17_;
					LA20_: ;
					{
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*it)._kind_6.sons->data[((NI) 0)], tmp, 0);
						elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp);
					}
					LA17_: ;
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 1)], dest, 0);
					{
						NI T25_;
						NI T28_;
						NI T29_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(i < (NI)(T25_ - ((NI) 1)))) goto LA26_;
						T28_ = (NI)0;
						T28_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T29_ = endings->Sup.len++;
						endings->data[T29_] = T28_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				goto LA12_;
				LA15_: ;
				{
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
				}
				LA12_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	{
		NI* endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI*)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA34;
				endPos = (&endings->data[i_3]);
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, (*endPos));
				i_3 += ((NI) 1);
			} LA34: ;
		}
	}
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__lTwxbV0wsOSkbi9adg16xrw_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					b = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, it);
					gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 163), tmp, b);
					T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, T21_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__jht1XYyYWKYwfRpm130Gcg(c, T22_, dest, 0);
					{
						NI T25_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
						NI T29_;
						NI T30_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(i < (NI)(T25_ - ((NI) 1)))) goto LA26_;
						T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						T29_ = (NI)0;
						T29_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, T28_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				LA15_: ;
				clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
				i_2 += ((NI) 1);
			} LA14: ;
		}
	}
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	{
		NI* endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI*)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA34;
				endPos = (&endings->data[i_3]);
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, (*endPos));
				i_3 += ((NI) 1);
			} LA34: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = !(((*(*n)._kind_4.sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	T7_ = !(((*n)._kind_1.intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p) {
	NI dist;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	dist = (NI)(p - T1_);
	{
		NIM_BOOL T4_;
		NimStringDesc* argX60gensym49_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		argX60gensym49_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_80);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym49_, TM__24XApAWKNvaMkcyklm8bNA_80);
	}
	LA6_: ;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 162), ((NI) 0), dist);
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen) {
	{
		NI* f;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI*)0;
		colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				f = (&colontmp_->data[i]);
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, (*f));
				i += ((NI) 1);
			} LA4: ;
		}
	}
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) setLengthSeqV2(&((*(*c).prc).blocks)->Sup, (&NTI__JokFGfUW6i9b6aeU7xu6xBw_), ((NI) (oldLen))));
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1;
	NI oldLen;
	NI T1_;
	NI T2_;
	lab1 = genLabel__ZRCO5A5eUGuEhpgXduomEQ(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T2_].label), TM__24XApAWKNvaMkcyklm8bNA_78.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM__24XApAWKNvaMkcyklm8bNA_78.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI lab2;
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], 0);
		lab2 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI lab2_2;
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		lab2_2 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2_2);
	}
	LA3_: ;
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__lTwxbV0wsOSkbi9adg16xrw_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI oldRegisterCount;
	NI oldLen;
	NI T1_;
	tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ T2_;
	NI T3_;
	oldRegisterCount = (*(*c).prc).maxSlots;
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	T2_.label = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	T2_.fixups = NIM_NIL;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T3_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T3_].label), T2_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T3_].fixups), T2_.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = oldRegisterCount;
		{
			while (1) {
				if (!(i_2 < (*(*c).prc).maxSlots)) goto LA6;
				i = i_2;
				{
					NIM_BOOL colontmp_;
					tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
					if (!!((i == ((NI) ((*dest)))))) goto LA9_;
					colontmp_ = NIM_FALSE;
					colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 0);
					(*(*c).prc).slots[(i)- 0].Field0 = colontmp_;
					(*(*c).prc).slots[(i)- 0].Field1 = colontmp__2;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA6: ;
		}
	}
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 154), dest, ((NI) 0), ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1;
{	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			colontmp_ = (NI)(T6_ - ((NI) 1));
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if (!((*(*c).prc).blocks->data[i].label == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym)) goto LA11_;
						asgnRef((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[i].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = lab1;
						goto BeforeRet_;
					}
					LA11_: ;
					res -= ((NI) 1);
				} LA8: ;
			}
		}
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_81), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_82, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[T15_].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = lab1;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__lTwxbV0wsOSkbi9adg16xrw_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI ehPos;
	NI jumpToFinally;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	ehPos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 164), ((NI) 0));
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
	jumpToFinally = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, ehPos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI endExcept;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA14_;
					endExcept = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI T17_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T17_ = (NI)0;
						T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						colontmp__2 = (NI)(T17_ - ((NI) 1));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
								tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T20_;
								NI T21_;
								if (!(i_3 < colontmp__2)) goto LA19;
								j = i_3;
								typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*it)._kind_6.sons->data[j]).typ, IL64(36275087638308880));
								T20_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
								T20_ = c;
								T21_ = (NI)0;
								T21_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
								gABx__vCfZ9bElZa5k2CDWM9coPmBA(T20_, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0), T21_);
								i_3 += ((NI) 1);
							} LA19: ;
						}
					}
					{
						NI T24_;
						T24_ = (NI)0;
						T24_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (!(T24_ == ((NI) 1))) goto LA25_;
						gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0), ((NI) 0));
					}
					LA25_: ;
					T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T27_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__jht1XYyYWKYwfRpm130Gcg(c, T27_, dest, 0);
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					{
						NI T30_;
						NI T33_;
						NI T34_;
						T30_ = (NI)0;
						T30_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(i < T30_)) goto LA31_;
						T33_ = (NI)0;
						T33_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T34_ = endings->Sup.len++;
						endings->data[T34_] = T33_;
					}
					LA31_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endExcept);
				}
				LA14_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	fin = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, jumpToFinally);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI) 0), ((NI) 0));
	{
		NI* endPos;
		NI i_4;
		NI L;
		NI T36_;
		endPos = (NI*)0;
		i_4 = ((NI) 0);
		T36_ = (endings ? endings->Sup.len : 0);
		L = T36_;
		{
			while (1) {
				if (!(i_4 < L)) goto LA38;
				endPos = (&endings->data[i_4]);
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, (*endPos));
				i_4 += ((NI) 1);
			} LA38: ;
		}
	}
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA41_;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*fin)._kind_6.sons->data[((NI) 0)], 0);
		clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
	}
	LA41_: ;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 167), ((NI) 0), ((NI) 0));
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T28_;
							tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* T29_;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T30_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								colontmp__2 = (NI)(T15_ - ((NI) 2));
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA17;
										i_3 = i_4;
										{
											if (!((*(*a)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												T24_ = (((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												T24_ = !(((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												setSlot__wdPbhGpyRtpS49bqSwMfggA(c, (*(*a)._kind_6.sons->data[i_3])._kind_4.sym);
											}
											LA26_: ;
											checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a)._kind_6.sons->data[i_3]);
										}
										LA20_: ;
										i_4 += ((NI) 1);
									} LA17: ;
								}
							}
							T28_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
							T28_ = c;
							T29_ = (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ*)0;
							T29_ = (*c).graph;
							T30_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T30_ = getOwner__ZAdOX9bNnuzwXclhv6dmGLg(c);
							T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T31_ = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2(T29_, a, T30_);
							gen__M9cKwar4hMj62R1lH9bydpDQ(T28_, T31_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
							if (!((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA33_;
							s = (*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
							checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a)._kind_6.sons->data[((NI) 0)]);
							{
								NIM_BOOL T37_;
								T37_ = (NIM_BOOL)0;
								T37_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
								if (!(T37_)) goto LA38_;
								T37_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
								LA38_: ;
								if (!T37_) goto LA39_;
								{
									if (!((*s).position == ((NI) 0))) goto LA43_;
									{
										NIM_BOOL T47_;
										T47_ = (NIM_BOOL)0;
										T47_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
										if (!T47_) goto LA48_;
										importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*a).info, s);
									}
									goto LA45_;
									LA48_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sa;
										sa = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*a).info, (*c).config);
										add__P8dDSotTW25BkfbyspojGg((*c).globals, sa);
										(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
									}
									LA45_: ;
								}
								LA43_: ;
								{
									NI tmp;
									NI val;
									if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA53_;
									tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 0)], 2);
									val = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 2)], 0);
									genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, (*a)._kind_6.sons->data[((NI) 2)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), tmp, ((NI) 0), val);
									freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, val);
									freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
								}
								LA53_: ;
							}
							goto LA35_;
							LA39_: ;
							{
								setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
								{
									tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T60_;
									tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T61_;
									tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T62_;
									NI T63_;
									NI T64_;
									if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA58_;
									T60_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
									T60_ = c;
									T61_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
									T61_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
									T62_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
									T62_ = T61_;
									T63_ = (NI)0;
									T63_ = ((NI) ((*s).position));
									T64_ = (NI)0;
									T64_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
									gABx__vCfZ9bElZa5k2CDWM9coPmBA(T60_, a, T62_, T63_, T64_);
								}
								goto LA56_;
								LA58_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
									{
										NIM_BOOL T68_;
										tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T71_;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T72_;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T73_;
										NI T74_;
										NI T75_;
										T68_ = (NIM_BOOL)0;
										T68_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
										if (!!(T68_)) goto LA69_;
										T71_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
										T71_ = c;
										T72_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T72_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
										T73_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T73_ = T72_;
										T74_ = (NI)0;
										T74_ = ((NI) ((*s).position));
										T75_ = (NI)0;
										T75_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
										gABx__vCfZ9bElZa5k2CDWM9coPmBA(T71_, a, T73_, T74_, T75_);
									}
									LA69_: ;
									le = (*a)._kind_6.sons->data[((NI) 0)];
									{
										NIM_BOOL T78_;
										NIM_BOOL T79_;
										NI cc;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T84_;
										T78_ = (NIM_BOOL)0;
										T79_ = (NIM_BOOL)0;
										T79_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
										T78_ = !(T79_);
										if (!(T78_)) goto LA80_;
										T78_ = ((2312 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
										LA80_: ;
										if (!T78_) goto LA81_;
										cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
										gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*a)._kind_6.sons->data[((NI) 2)], cc, 0);
										T83_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T83_ = le;
										T84_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T84_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
										gABC__UIRVqkSOpk264WekB9cpXRw(c, T83_, T84_, ((NI) ((*s).position)), cc, ((NI) 0));
										freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
									}
									goto LA76_;
									LA81_: ;
									{
										gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*a)._kind_6.sons->data[((NI) 2)], ((NI) ((*s).position)), 0);
									}
									LA76_: ;
								}
								LA56_: ;
							}
							LA35_: ;
						}
						goto LA10_;
						LA33_: ;
						{
							{
								NI tmp_2;
								tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T91_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
								tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T93_;
								tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T94_;
								NI T95_;
								if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA89_;
								tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 0)], 0);
								T91_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
								T91_ = c;
								T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T92_ = a;
								T93_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
								T93_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								T94_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
								T94_ = T93_;
								T95_ = (NI)0;
								T95_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								gABx__vCfZ9bElZa5k2CDWM9coPmBA(T91_, T92_, T94_, tmp_2, T95_);
								freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
							}
							goto LA87_;
							LA89_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T97_;
								T97_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T97_ = (*a)._kind_6.sons->data[((NI) 0)];
								genAsgn__441oTPupNGUtbMyisB9aUyA(c, T97_, (*a)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
							}
							LA87_: ;
						}
						LA10_: ;
					} LA5: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	NI T8_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T6_ = c;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = n;
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T6_, T7_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T8_);
	intType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	seqType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NI tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		NI T14_;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T15_;
		NI T16_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA11_;
		tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, intType);
		T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = n;
		T14_ = (NI)0;
		T14_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, T13_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp, T14_);
		T15_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T15_ = c;
		T16_ = (NI)0;
		T16_ = genType__H4AMs0GuxljbeG3aMubkXA(c, seqType);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T15_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) ((*dest))), T16_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA11_: ;
	{
		NI T19_;
		NI tmp_2;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T22_;
		NI T23_;
		T19_ = (NI)0;
		T19_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T19_)) goto LA20_;
		tmp_2 = getTemp__duEomvr9bK43tarDYX26gsA(c, intType);
		T22_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T22_ = c;
		T23_ = (NI)0;
		T23_ = genType__H4AMs0GuxljbeG3aMubkXA(c, intType);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T22_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 171), tmp_2, T23_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						if (!(i_2 < colontmp_)) goto LA27;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						a = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
						preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), ((NI) ((*dest))), tmp_2, a);
						gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 29), tmp_2, tmp_2, IL64(1));
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
						i_2 += ((NI) 1);
					} LA27: ;
				}
			}
		}
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	LA20_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	NI T8_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T6_ = c;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = n;
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T6_, T7_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T8_);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA12;
					i = i_2;
					x = (*n)._kind_6.sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA15_;
						a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*x)._kind_6.sons->data[((NI) 0)], 0);
						b = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*x)._kind_6.sons->data[((NI) 1)], 0);
						gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 35), ((NI) ((*dest))), a, b);
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, b);
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
					}
					goto LA13_;
					LA15_: ;
					{
						NI a_2;
						a_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
						gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 34), ((NI) ((*dest))), a_2, ((NI) 0));
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a_2);
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA12: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T10_;
		NI T11_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
		T10_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T10_ = c;
		T11_ = (NI)0;
		T11_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*t).sons->data[((NI) 0)]);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T10_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), ((NI) ((*dest))), T11_);
	}
	goto LA6_;
	LA8_: ;
	{
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T13_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		NI T15_;
		T13_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T13_ = c;
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = n;
		T15_ = (NI)0;
		T15_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T13_, T14_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T15_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA18;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T21_;
					NI idx;
					NI tmp;
					T21_ = (NIM_BOOL)0;
					T21_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T21_)) goto LA22_;
					T21_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA22_: ;
					if (!T21_) goto LA23_;
					idx = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*it)._kind_6.sons->data[((NI) 0)]);
					tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), idx, tmp);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
				}
				goto LA19_;
				LA23_: ;
				{
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_83), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_84, NIM_FALSE);
				}
				LA19_: ;
				i_2 += ((NI) 1);
			} LA18: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	NI T8_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
	T6_ = c;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = n;
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(T6_, T7_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T8_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI idx;
					NI tmp;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA14_;
					idx = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*it)._kind_6.sons->data[((NI) 0)]);
					tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), idx, tmp);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
				}
				goto LA12_;
				LA14_: ;
				{
					NI tmp_2;
					tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, it, 0);
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), ((NI) (i)), tmp_2);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
				}
				LA12_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag signedIntegers;
	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag unsignedIntegers;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst;
	NI64 srcSize;
	NI64 dstSize;
	signedIntegers = IL64(66571993088);
	unsignedIntegers = IL64(34084860461060);
	src = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	dst = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350136322320));
	srcSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, src);
	dstSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, dst);
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T11_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
			T11_ = (NI)0;
			T11_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T11_));
		}
		LA9_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			if (!!((dstSize == IL64(8)))) goto LA14_;
			{
				if (!((signedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA18_;
				{
					if (!(dstSize <= srcSize)) goto LA22_;
					gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 97), ((NI) ((*dest))), ((NI) ((NI64)(dstSize * IL64(8)))), ((NI) 0));
				}
				LA22_: ;
			}
			goto LA16_;
			LA18_: ;
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA25_;
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((signedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
					if (T29_) goto LA30_;
					T29_ = (dstSize < srcSize);
					LA30_: ;
					if (!T29_) goto LA31_;
					gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)(dstSize * IL64(8)))), ((NI) 0));
				}
				LA31_: ;
			}
			goto LA16_;
			LA25_: ;
			LA16_: ;
		}
		LA14_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T34_;
		NIM_BOOL T35_;
		NI tmp_2;
		T34_ = (NIM_BOOL)0;
		T35_ = (NIM_BOOL)0;
		T35_ = (srcSize == dstSize);
		if (!(T35_)) goto LA36_;
		T35_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA36_: ;
		T34_ = T35_;
		if (!(T34_)) goto LA37_;
		T34_ = ((IL64(481036337152) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA37_: ;
		if (!T34_) goto LA38_;
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T44_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA42_;
			T44_ = (NI)0;
			T44_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T44_));
		}
		LA42_: ;
		{
			if (!((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA47_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 8), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		goto LA45_;
		LA47_: ;
		{
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		LA45_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	goto LA1_;
	LA38_: ;
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NI tmp_3;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = (srcSize == dstSize);
		if (!(T52_)) goto LA53_;
		T52_ = ((IL64(481036337152) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA53_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA54_;
		T51_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA54_: ;
		if (!T51_) goto LA55_;
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			T61_ = (NI)0;
			T61_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA64_;
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 10), ((NI) ((*dest))), tmp_3, ((NI) 0));
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA68_;
				gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) 32), ((NI) 0));
			}
			LA68_: ;
		}
		goto LA62_;
		LA64_: ;
		{
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 11), ((NI) ((*dest))), tmp_3, ((NI) 0));
		}
		LA62_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
	}
	goto LA1_;
	LA55_: ;
	{
		NIM_BOOL T72_;
		NI tmp_4;
		NI64 imm;
		NI T81_;
		T72_ = (NIM_BOOL)0;
		T72_ = ((73400320 &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T72_)) goto LA73_;
		T72_ = ((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		LA73_: ;
		if (!T72_) goto LA74_;
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T80_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA78_;
			T80_ = (NI)0;
			T80_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T80_));
		}
		LA78_: ;
		T81_ = (NI)0;
		{
			if (!((69206016 &((NU64)1<<((NU)((*src).kind)&63U)))!=0)) goto LA84_;
			T81_ = ((NI) 1);
		}
		goto LA82_;
		LA84_: ;
		{
			T81_ = ((NI) 2);
		}
		LA82_: ;
		imm = ((NI64) (T81_));
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 12), ((NI) ((*dest))), tmp_4, imm);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
	}
	goto LA1_;
	LA74_: ;
	{
		NIM_BOOL T88_;
		NI tmp_5;
		tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T97_;
		NI T98_;
		T88_ = (NIM_BOOL)0;
		T88_ = ((IL64(2216689664) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T88_)) goto LA89_;
		T88_ = ((69206016 &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA89_: ;
		if (!T88_) goto LA90_;
		tmp_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T96_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA94_;
			T96_ = (NI)0;
			T96_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T96_));
		}
		LA94_: ;
		T97_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
		T97_ = c;
		T98_ = (NI)0;
		T98_ = genType__H4AMs0GuxljbeG3aMubkXA(c, dst);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(T97_, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), ((NI) ((*dest))), T98_);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI) ((*dest))), tmp_5, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
	}
	goto LA1_;
	LA90_: ;
	{
		NimStringDesc* T100_;
		T100_ = (NimStringDesc*)0;
		T100_ = rawNewString((reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + (reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 36);
appendString(T100_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_85));
appendString(T100_, reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendString(T100_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_86));
appendString(T100_, reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T100_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_87, NIM_FALSE);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((IL64(1152921504606847232) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__jht1XYyYWKYwfRpm130Gcg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*n)._kind_4.sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
		{
			genRdVar__jht1XYyYWKYwfRpm130Gcg_2(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ(c, s);
				if (!T6_) goto LA7_;
			}
			goto LA4_;
			LA7_: ;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
				if (!T10_) goto LA11_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA4_;
			LA11_: ;
			LA4_: ;
			genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constVal;
			{
				if (!!(((*s).ast == NIM_NIL))) goto LA16_;
				constVal = (*s).ast;
			}
			goto LA14_;
			LA16_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA14_: ;
			gen__jht1XYyYWKYwfRpm130Gcg(c, constVal, dest, 0);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				NI T24_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA22_;
				T24_ = (NI)0;
				T24_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T24_));
			}
			LA22_: ;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = (((NI) -32768) <= (*s).position);
				if (!(T27_)) goto LA28_;
				T27_ = ((*s).position <= ((NI) 32767));
				LA28_: ;
				if (!T27_) goto LA29_;
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI) ((*dest))), (*s).position);
			}
			goto LA25_;
			LA29_: ;
			{
				NI lit;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
				T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T32_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*s).position)));
				lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, T32_);
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI) ((*dest))), lit);
			}
			LA25_: ;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
			genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = !(((*(*c).prc).sym == NIM_NIL));
				if (!(T37_)) goto LA38_;
				T37_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
				LA38_: ;
				if (!T37_) goto LA39_;
				genRdVar__jht1XYyYWKYwfRpm130Gcg_2(c, n, dest, flags);
			}
			goto LA35_;
			LA39_: ;
			{
				NimStringDesc* T42_;
				T42_ = (NimStringDesc*)0;
				T42_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T42_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_22));
appendString(T42_, (*(*s).name).s);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T42_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_23, NIM_FALSE);
			}
			LA35_: ;
		}
		break;
		default:
		{
			NimStringDesc* T44_;
			T44_ = (NimStringDesc*)0;
			T44_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T44_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_22));
appendString(T44_, (*(*s).name).s);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T44_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_24, NIM_FALSE);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA48_;
			s_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA52_;
				genMagic__nCoAHjo16P5zqJafFfwLew(c, n, dest, (*s_2).magic);
			}
			goto LA50_;
			LA52_: ;
			{
				NimStringDesc* T57_;
				if (!((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA55_;
				T57_ = (NimStringDesc*)0;
				T57_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_67));
appendString(T57_, (*(*s_2).name).s);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_68));
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T57_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__24XApAWKNvaMkcyklm8bNA_69, NIM_FALSE);
			}
			goto LA50_;
			LA55_: ;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_70, 3);
				if (!T59_) goto LA60_;
				genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6(c, n, dest);
			}
			goto LA50_;
			LA60_: ;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_74, 3);
				if (!T63_) goto LA64_;
				genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7(c, n, dest);
			}
			goto LA50_;
			LA64_: ;
			{
				genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
				clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
			}
			LA50_: ;
		}
		goto LA46_;
		LA48_: ;
		{
			genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
			clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
		}
		LA46_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3(n);
			if (!T71_) goto LA72_;
			{
				NI T78_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA76_;
				T78_ = (NI)0;
				T78_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T78_));
			}
			LA76_: ;
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI) ((*dest))), ((NI) ((*n)._kind_1.intVal)));
		}
		goto LA69_;
		LA72_: ;
		{
			genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T84_;
			tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* T87_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T88_;
			T84_ = (NIM_BOOL)0;
			T84_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (!!(T84_)) goto LA85_;
			T87_ = (tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw*)0;
			T87_ = c;
			T88_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T88_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*n).typ, (*n).info, (*c).config);
			genLit__lTwxbV0wsOSkbi9adg16xrw(T87_, T88_, dest);
		}
		goto LA82_;
		LA85_: ;
		{
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T91_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		T91_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T91_ = (*n)._kind_6.sons->data[((NI) 0)];
		T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T92_ = (*n)._kind_6.sons->data[((NI) 1)];
		genAsgn__441oTPupNGUtbMyisB9aUyA(c, T91_, T92_, ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genObjAccess__jht1XYyYWKYwfRpm130Gcg_4(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrAccess__jht1XYyYWKYwfRpm130Gcg_6(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref__jht1XYyYWKYwfRpm130Gcg_7(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr__jht1XYyYWKYwfRpm130Gcg_8(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf__lTwxbV0wsOSkbi9adg16xrw_8(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase__lTwxbV0wsOSkbi9adg16xrw_9(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genWhile__Y59crI4YgTHHCWclw3gn72A_4(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock__lTwxbV0wsOSkbi9adg16xrw_10(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturn__Y59crI4YgTHHCWclw3gn72A_5(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise__Y59crI4YgTHHCWclw3gn72A_6(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreak__Y59crI4YgTHHCWclw3gn72A_7(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		genTry__lTwxbV0wsOSkbi9adg16xrw_11(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA111;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						gen__M9cKwar4hMj62R1lH9bydpDQ(c, x, 0);
						i_2 += ((NI) 1);
					} LA111: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI T117_;
		{
			NI i_3;
			NI colontmp__2;
			NI T114_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T114_ = (NI)0;
			T114_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			colontmp__2 = (NI)(T114_ - ((NI) 1));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA116;
					i_3 = i_4;
					gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[i_3], 0);
					i_4 += ((NI) 1);
				} LA116: ;
			}
		}
		T117_ = (NI)0;
		T117_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[(NI)(T117_ - ((NI) 1))], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T119_;
		T119_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T119_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		gen__jht1XYyYWKYwfRpm130Gcg(c, T119_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genVarSection__Y59crI4YgTHHCWclw3gn72A_8(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T127_;
		T127_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T127_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, T127_, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		tmp0 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 101), tmp0, tmp1, tmp2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T133_;
			tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T134_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA131_;
			T133_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T133_ = n;
			T134_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
			T134_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, T133_, T134_, ((NI) ((*dest))), tmp0, ((NI) 0));
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp0);
		}
		goto LA129_;
		LA131_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA129_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			if (!(((*c).features &((NU8)1<<((NU)(((tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A) 0))&7U)))!=0)) goto LA145_;
			genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92));
		}
		goto LA143_;
		LA145_: ;
		{
			genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16(c, n, dest);
		}
		LA143_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T153_;
			T153_ = (NIM_BOOL)0;
			T153_ = !(((*n).typ == NIM_NIL));
			if (!(T153_)) goto LA154_;
			T153_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*n).typ);
			LA154_: ;
			if (!T153_) goto LA155_;
			genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
		}
		goto LA151_;
		LA155_: ;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T158_;
			NimStringDesc* T159_;
			NimStringDesc* T160_;
			T158_ = (*n).info;
			T159_ = (NimStringDesc*)0;
			T160_ = (NimStringDesc*)0;
			T160_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
			T159_ = rawNewString((T160_ ? T160_->Sup.len : 0) + 28);
appendString(T159_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_88));
appendString(T159_, T160_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, T158_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T159_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_89, NIM_FALSE);
		}
		LA151_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI tmp;
	tmp = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (tmp)));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff) {
	NU64 oldInstr;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym594_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388607) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 8388607));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym594_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__24XApAWKNvaMkcyklm8bNA_90);
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*c).config, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, argX60gensym594_, TM__24XApAWKNvaMkcyklm8bNA_90);
	}
	LA5_: ;
	oldInstr = (*c).code->data[pc];
	(*c).code->data[pc] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(diff + ((NI) 8388608))))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL)));
				switch (opc) {
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160):
				{
					NI reg;
					NI d;
					reg = ((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL)));
					d = (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)));
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								switch (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)))) {
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161):
								{
									d += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
								}
								break;
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159):
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160):
								{
									{
										if (!!((((NI) (((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL))) == opc)) goto LA17_;
										d += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
									}
									goto LA15_;
									LA17_: ;
									{
										d += ((NI) 1);
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								res -= ((NI) 1);
							} LA8: ;
						}
					} LA6: ;
					{
						NI T25_;
						if (!!((d == (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)))))) goto LA23_;
						T25_ = (NI)0;
						T25_ = i;
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, T25_, (NI)(d - i));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 162):
				{
					NI d_2;
					NI iters_2;
					d_2 = (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)));
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161));
							if (!(T29_)) goto LA30_;
							T29_ = (((NI) 0) < iters_2);
							LA30_: ;
							if (!T29_) goto LA28;
							d_2 += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
							iters_2 -= ((NI) 1);
						} LA28: ;
					}
					{
						if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1))) goto LA33_;
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA31_;
					LA33_: ;
					{
						NI T38_;
						if (!!((d_2 == (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)))))) goto LA36_;
						T38_ = (NI)0;
						T38_ = i;
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, T38_, (NI)(d_2 - i));
					}
					goto LA31_;
					LA36_: ;
					LA31_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genProc__82SK3f7Ee6e9aktSfHKYXUw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	x = (*(*s).ast)._kind_6.sons->data[((NI) 5)];
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NU64 eofInstr;
		NI T14_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T21_;
		NIM_BOOL T22_;
		NI procStart;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* p;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* T23_;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* oldPrc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T3_) goto LA4_;
		T3_ = ((*(*x)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		last = (NI)(T7_ - ((NI) 1));
		eofInstr = (NU64)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			T10_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			eofInstr = (*c).code->data[last];
			asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
			asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		result = (NI)(T14_ + ((NI) 1));
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T19_[0] = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result)));
			T19_[1] = x;
			x = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result))));
		}
		LA15_: ;
		asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 5)]), x);
		T21_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T21_ = s;
		T22_ = (NIM_BOOL)0;
		T22_ = isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast(s);
		body = transformBody__ocxOgPRHWfivNZELIhOv7w((*c).graph, T21_, !(T22_));
		procStart = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
		T23_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*)0;
		T23_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*) newObj((&NTI__FM7mzTFsA8pyUhXVKKO6Gw_), sizeof(tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ));
		if ((*T23_).blocks) { nimGCunrefNoCycle((*T23_).blocks); (*T23_).blocks = NIM_NIL; }
		asgnRef((void**) (&(*T23_).sym), s);
		p = T23_;
		oldPrc = (*c).prc;
		asgnRef((void**) (&(*c).prc), p);
		genParams__yHS9cbYsE7NJ9b9appE7eVGpA(c, (*(*s).typ).n);
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
			if (!(T26_)) goto LA27_;
			T26_ = !(((*(*(*s).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA27_: ;
			if (!T26_) goto LA28_;
			genGenericParams__4wahcx9bmpD7ffT1schyhBg(c, (*(*s).ast)._kind_6.sons->data[((NI) 2)]);
		}
		LA28_: ;
		{
			NIM_BOOL colontmp_;
			tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0)) goto LA32_;
			colontmp_ = NIM_TRUE;
			colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field0 = colontmp_;
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field1 = colontmp__2;
			(*(*c).prc).maxSlots += ((NI) 1);
		}
		LA32_: ;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, body, 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, procStart);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) ((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL))), ((NI) 0), ((NI) 0));
		optimizeJumps__c4Ny4S2QTBXPlybhF7naeg(c, result);
		(*s).offset = (*(*c).prc).maxSlots;
		asgnRef((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		(*(*c).prc).maxSlots = (*s).offset;
		result = ((NI) ((*(*x)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI last;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	last = (NI)(T1_ - ((NI) 1));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		T4_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genExpr__iSa9ao3PEkzo8fCmeMa1Kvg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresValue) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_91), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_92, NIM_FALSE);
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) (d)), ((NI) 0), ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genStmt__PEuKCZcy9a56kIfBOLoHU5Q_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_93), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__24XApAWKNvaMkcyklm8bNA_94, NIM_FALSE);
	}
	LA4_: ;
	return result;
}
